/* ===== Polish v2 ===== */

/* Sticky header that shrinks + gains shadow on scroll */
.site-header { position: sticky; top: 0; z-index: 900; transition: box-shadow .25s, padding .25s; }
body.scrolled .site-header { box-shadow: 0 4px 18px rgba(13,34,66,0.14); }

/* Back-to-top button */
#backTop { position: fixed; right: 22px; bottom: 88px; width: 44px; height: 44px;
  border-radius: 50%; border: none; cursor: pointer; z-index: 950;
  background: var(--navy, #14305C); color: var(--gold, #F2B705); font-size: 1.15rem;
  box-shadow: 0 6px 18px rgba(13,34,66,0.28); opacity: 0; pointer-events: none;
  transform: translateY(8px); transition: all .3s; }
#backTop.show { opacity: 1; pointer-events: auto; transform: none; }
#backTop:hover { background: var(--leaf, #1C7A34); }

/* Image hover zoom inside cards / news */
.card img, .news-card img { transition: transform .5s ease; }
.card:hover img, .news-card:hover img { transform: scale(1.05); }
.card:has(img), .news-card { overflow: hidden; }

/* Stat numbers: bolder, navy, mono */
.stat strong, .stat-number { font-family: 'IBM Plex Mono', monospace; color: var(--navy, #14305C); }

/* Wave divider */
.wave-divider { display: block; width: 100%; height: 34px; margin: -1px 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 20 Q 150 0 300 20 T 600 20 T 900 20 T 1200 20 V34 H0 Z' fill='%23f6f5f1'/%3E%3C/svg%3E") repeat-x; background-size: 1200px 34px; }

/* Focus visibility for keyboard users (WCAG) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--gold, #F2B705); outline-offset: 2px; border-radius: 4px; }
