/* Enhancements layered on the existing navy/gold identity. */
html{scroll-behavior:smooth;scroll-padding-top:90px}

/* Header: compact + active link */
.site-header{position:sticky;top:0;z-index:50;transition:height .25s ease,box-shadow .25s ease}
.site-header.is-scrolled{height:68px;box-shadow:0 6px 24px rgba(16,36,58,.08)}
.site-nav>a.is-active{color:var(--teal)}
.site-nav>a.is-active:after{right:0}

/* Hero trust strip */
.hero-trust{list-style:none;margin:40px 0 0;padding:24px 0 0;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:620px}
.hero-trust li{display:flex;flex-direction:column;gap:4px}
.hero-trust strong{font:500 22px/1 var(--display);color:#fff;letter-spacing:-.02em}
.hero-trust span{font-size:11px;line-height:1.4;color:#a9bac5;letter-spacing:.02em}

/* Programme cards */
.program-item{transition:background .25s ease,padding .25s ease}
.program-item:hover{background:#f1f6f8}
.program-meta{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.program-meta li{font-size:12px;line-height:1.4;color:var(--muted);background:#edf3f5;border:1px solid #dbe6ea;border-radius:999px;padding:5px 11px}
.program-cta{display:inline-flex;align-items:center;gap:8px;margin-top:16px;min-height:44px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--teal);text-decoration:none}
.program-cta span{transition:transform .2s ease}
.program-cta:hover span{transform:translateX(4px)}

/* Events: countdown badge + past state */
.event-card{position:relative;transition:transform .25s ease,box-shadow .25s ease}
.event-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(16,36,58,.1)}
.event-countdown{position:absolute;top:16px;left:16px;z-index:2;background:var(--navy);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border-radius:3px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.event-countdown.is-soon{background:var(--gold);color:var(--navy)}
.events-empty{margin:40px 0 0;font-size:16px;color:var(--muted)}
.events-empty a{color:var(--teal);font-weight:700}
.events-grid.is-single{grid-template-columns:minmax(0,560px)}

/* Gallery dialog navigation */
.dialog-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);font-size:20px;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.2)}
.dialog-prev{left:14px}.dialog-next{right:14px}
.dialog-nav:hover{background:#fff}
.gallery-dialog{position:relative}

/* Full-width feature photo */
.gallery-tile-full{grid-column:1/-1}
.gallery-tile-full .gallery-art{height:460px}
.gallery-tile-full .gallery-art img{object-position:center 55%}
@media(max-width:640px){.gallery-tile-full .gallery-art{height:auto;aspect-ratio:4/3}}

/* Floating CTA + back to top */
.float-cta{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 20px;background:var(--gold);color:var(--navy);font-size:12px;font-weight:700;letter-spacing:.03em;text-decoration:none;border-radius:999px;box-shadow:0 10px 28px rgba(16,36,58,.25);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.float-cta.is-visible{opacity:1;transform:none;pointer-events:auto}
.to-top{position:fixed;left:22px;bottom:22px;z-index:60;width:46px;height:46px;border:1px solid rgba(16,36,58,.15);border-radius:50%;background:#fff;color:var(--navy);font-size:18px;cursor:pointer;box-shadow:0 6px 18px rgba(16,36,58,.12);opacity:0;pointer-events:none;transition:opacity .3s ease}
.to-top.is-visible{opacity:1;pointer-events:auto}

/* Scroll reveal (only when JS is on) */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.is-in{opacity:1;transform:none}

@media(max-width:850px){.hero-trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .hero-trust{margin-top:32px;gap:16px}
  .hero-trust strong{font-size:19px}
  .float-cta{right:14px;bottom:14px;min-height:46px;padding:0 16px}
  .to-top{left:14px;bottom:14px}
  .dialog-nav{width:40px;height:40px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .event-card:hover{transform:none}
}
