﻿/* Nunito Sans — the single brand typeface (CI: "Schriftfamilie: Nunito Sans").
   The CI document links the Google Fonts specimen, so Google's CDN is the canonical
   source; no font binaries were supplied with the brand material.
   Faces used: Regular 400 (body), SemiBold 600 (headings), Bold 700 (rare emphasis). */
@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400;1,6..12,600&display=swap");

/* Local fallback declarations: if the ttf/woff2 files are ever added to assets/fonts/,
   drop the @import above and uncomment these.
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/NunitoSans-Regular.woff2") format("woff2")}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/fonts/NunitoSans-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/fonts/NunitoSans-Bold.woff2") format("woff2")}
*/

/* ── Brand palette (verbatim from Corporate Identity.pdf) ───────────────── */
:root{
  --brown:#875114;          /* CI Brown — RGB 135,81,20 */
  --gunmetal:#2a2f36;       /* CI Gunmetal — RGB 42,47,54 — body text colour */
  --cultured:#efefef;       /* CI Cultured — RGB 239,239,239 */
  --oxford-blue:#16243d;    /* CI Oxford Blue — RGB 22,36,61 */
  --tan:#e0c4a3;            /* CI Tan — RGB 224,196,163 */
  --russian-green:#6a8d73;  /* CI Russian Green — RGB 106,141,115 */
  --white:#ffffff;

  /* ── Ramps derived from the six CI colours (same hue, adjusted lightness) ── */
  --brown-50:#faf5ef;
  --brown-100:#f2e7d9;
  --brown-200:var(--tan);
  --brown-400:#b07a3c;
  --brown-600:var(--brown);
  --brown-700:#6e4210;
  --brown-800:#56340c;

  --navy-50:#eef1f5;
  --navy-100:#dde3ec;
  --navy-300:#8e9cb3;
  --navy-600:#28405f;
  --navy-700:var(--oxford-blue);
  --navy-900:#0d1727;

  --ink-900:#1c2025;
  --ink-800:var(--gunmetal);
  --ink-700:#3b424b;
  --ink-600:#5d656f;
  --ink-500:#79818c;
  --ink-400:#9aa1aa;

  --neutral-50:#f7f7f7;
  --neutral-100:var(--cultured);
  --neutral-200:#e2e2e2;
  --neutral-300:#cfd0d2;
  --neutral-400:#b4b6b9;

  --green-100:#e7eee9;
  --green-500:var(--russian-green);
  --green-700:#4f6d57;

  /* Derived, not in the CI sheet — muted brick red, kept in the same warm,
     desaturated family as Brown so error states stay on-brand. See readme.md. */
  --red-100:#f5e6e3;
  --red-600:#9c4034;
  --red-700:#7e3229;

  /* ── Semantic aliases — always prefer these in components ───────────────── */
  --text-body:var(--gunmetal);
  --text-heading:var(--oxford-blue);
  --text-muted:var(--ink-600);
  --text-subtle:var(--ink-500);
  --text-inverse:var(--white);
  --text-inverse-muted:#b9c0c8;
  --text-accent:var(--brown-700);
  --text-link:var(--brown-700);
  --text-link-hover:var(--brown-800);

  --surface-page:var(--white);
  --surface-muted:var(--neutral-100);
  --surface-card:var(--white);
  --surface-raised:var(--neutral-50);
  --surface-dark:var(--gunmetal);
  --surface-dark-deep:var(--oxford-blue);
  --surface-accent-soft:var(--brown-100);
  --surface-tan:var(--tan);

  --border-subtle:var(--neutral-200);
  --border-default:var(--neutral-300);
  --border-strong:var(--ink-800);
  --border-accent:var(--brown-600);
  --border-inverse:rgba(255,255,255,.26);

  --accent:var(--brown-600);
  --accent-hover:var(--brown-700);
  --accent-press:var(--brown-800);
  --accent-soft:var(--brown-100);
  --accent-on:var(--white);

  --focus-ring:var(--brown-600);
  --focus-ring-inverse:var(--tan);

  --status-positive:var(--green-500);
  --status-positive-soft:var(--green-100);
  --status-attention:var(--brown-600);
  --status-attention-soft:var(--brown-100);
  --status-critical:var(--red-600);
  --status-critical-soft:var(--red-100);
  --status-neutral:var(--ink-600);
  --status-neutral-soft:var(--neutral-100);
}

/* Dark surfaces: opt in by putting .on-dark on a container. */
.on-dark{
  --text-body:var(--white);
  --text-heading:var(--white);
  --text-muted:var(--text-inverse-muted);
  --text-subtle:#98a1ab;
  --text-link:var(--tan);
  --text-link-hover:var(--white);
  --surface-page:var(--gunmetal);
  --surface-card:#333942;
  --surface-muted:#20252b;
  --border-subtle:rgba(255,255,255,.16);
  --border-default:rgba(255,255,255,.26);
  --border-strong:var(--white);
  --accent:var(--tan);
  --accent-hover:#ecd6bc;
  --accent-press:#cfae8a;
  --accent-on:var(--oxford-blue);
  --focus-ring:var(--tan);
}

:root{
  --font-sans:"Nunito Sans",-apple-system,"Segoe UI",sans-serif;
  --font-body:var(--font-sans);
  --font-heading:var(--font-sans);
  --font-mono:ui-monospace,"SFMono-Regular","Consolas",monospace;

  --weight-regular:400;
  --weight-semibold:600;   /* all headings */
  --weight-bold:700;       /* rare, inline emphasis only */

  --text-2xs:11px;
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;
  --text-md:18px;
  --text-lg:20px;
  --text-xl:24px;
  --text-2xl:30px;
  --text-3xl:36px;
  --text-4xl:48px;
  --text-5xl:60px;
  --text-6xl:76px;

  --leading-tight:1.1;
  --leading-snug:1.25;
  --leading-normal:1.5;
  --leading-relaxed:1.65;

  --tracking-tight:-0.02em;
  --tracking-normal:0;
  --tracking-wide:0.04em;
  --tracking-caps:0.18em;   /* eyebrows, small caps labels */
  --tracking-logo:0.38em;   /* the "I N N S B R U C K" treatment */

  /* Composite heading roles */
  --display-size:var(--text-6xl);
  --display-weight:var(--weight-semibold);
  --display-leading:var(--leading-tight);
  --display-tracking:var(--tracking-tight);

  --h1-size:var(--text-4xl);
  --h2-size:var(--text-3xl);
  --h3-size:var(--text-xl);
  --h4-size:var(--text-md);
  --body-size:var(--text-base);
  --body-leading:var(--leading-relaxed);
  --small-size:var(--text-sm);
  --eyebrow-size:var(--text-xs);
}

:root{
  /* 4px base step */
  --space-0:0;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-16:64px;
  --space-20:80px;
  --space-24:96px;
  --space-32:128px;

  --gutter:var(--space-6);
  --section-y:var(--space-24);
  --container-max:1180px;
  --measure:68ch;          /* readable paragraph width */

  --radius-none:0;
  --radius-xs:2px;
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:16px;
  --radius-panel:40px;     /* the single-corner panel motif from the CI sheet */
  --radius-pill:999px;

  --border-hairline:1px;
  --border-medium:2px;
  --border-rule:3px;       /* the heavy horizontal rules on the CI sheet */
}

:root{
  /* The brand is flat and line-led: shadows are a whisper, never a lift. */
  --shadow-none:none;
  --shadow-hairline:0 0 0 1px var(--border-subtle);
  --shadow-sm:0 1px 2px rgba(42,47,54,.06);
  --shadow-card:0 1px 2px rgba(42,47,54,.05),0 10px 24px -16px rgba(42,47,54,.22);
  --shadow-raised:0 2px 4px rgba(42,47,54,.06),0 18px 40px -20px rgba(42,47,54,.28);
  --shadow-overlay:0 24px 64px -24px rgba(22,36,61,.42);
  --shadow-inset:inset 0 1px 2px rgba(42,47,54,.08);
  --focus-shadow:0 0 0 3px color-mix(in oklab,var(--focus-ring) 32%,transparent);

  /* Protection gradient for text over photography */
  --scrim-bottom:linear-gradient(to top,rgba(22,36,61,.82) 0%,rgba(22,36,61,.45) 45%,rgba(22,36,61,0) 100%); /* @kind color */
  --scrim-flat:rgba(22,36,61,.58);
  --glass:rgba(255,255,255,.72);
  --glass-blur:blur(14px); /* @kind other */
}

:root{
  --duration-fast:120ms; /* @kind other */
  --duration-base:180ms; /* @kind other */
  --duration-slow:280ms; /* @kind other */
  --duration-reveal:520ms; /* @kind other */

  /* Default easing: quick out, soft land. */
  --ease-standard:cubic-bezier(.2,.6,.2,1); /* @kind other */
  --ease-out:cubic-bezier(0,0,.2,1); /* @kind other */
  --ease-in-out:cubic-bezier(.4,0,.2,1); /* @kind other */

  --transition-color:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard); /* @kind other */
  --transition-all:all var(--duration-base) var(--ease-standard); /* @kind other */

  /* The only transform the brand uses on press. */
  --press-scale:0.985; /* @kind other */
}
@media (prefers-reduced-motion:reduce){
  :root{
    --duration-fast:0ms; /* @kind other */
    --duration-base:0ms; /* @kind other */
    --duration-slow:0ms; /* @kind other */
    --duration-reveal:0ms; /* @kind other */
  }
}

/* Minimal element defaults. Consumers get these for free by linking styles.css. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);font-size:var(--body-size);line-height:var(--body-leading);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-semibold);color:var(--text-heading);margin:0 0 var(--space-4);line-height:var(--leading-snug)}
h1{font-size:var(--h1-size);letter-spacing:var(--tracking-tight)}
h2{font-size:var(--h2-size);letter-spacing:var(--tracking-tight)}
h3{font-size:var(--h3-size)}
h4{font-size:var(--h4-size)}
p{margin:0 0 var(--space-4);text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:var(--transition-color)}
a:hover{color:var(--text-link-hover);text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
strong,b{font-weight:var(--weight-semibold)}
small{font-size:var(--small-size)}
hr{border:0;border-top:var(--border-rule) solid var(--border-strong);margin:var(--space-8) 0}
img{max-width:100%;height:auto}

/* Utility the brand leans on constantly: the letter-spaced caps eyebrow. */
.abv-eyebrow{font-size:var(--eyebrow-size);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-accent)}
.abv-rule{border:0;border-top:var(--border-rule) solid var(--border-strong);margin:0}
.abv-container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}

/* ─── Page shell ─────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--body-size);line-height:var(--body-leading);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:var(--transition-color)}
a:hover{color:var(--text-link-hover);text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
h1,h2,h3,h4{color:var(--text-heading);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);margin:0}
h1{font-size:clamp(34px,5vw,var(--h1-size))}
h2{font-size:clamp(27px,4vw,var(--h2-size))}
h3{font-size:var(--h3-size)}
h4{font-size:var(--h4-size)}
p{margin:0}
.wrap{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:74ch}
.eyebrow{display:block;font-size:var(--eyebrow-size);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-accent)}
.on-dark .eyebrow{color:var(--tan)}
.rule{height:var(--border-rule);background:var(--accent);border:0;width:72px;margin:0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-4);top:var(--space-4);z-index:100;background:var(--white);color:var(--text-heading);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm)}

/* ─── Bands ──────────────────────────────────────────────────────────────── */
.band{padding:var(--space-20) 0}
.band--tight{padding:var(--space-16) 0}
.band--muted{background:var(--cultured)}
.band--dark{background:var(--surface-dark-deep);color:var(--white)}
.band--dark h2,.band--dark h3{color:var(--white)}

/* ─── Header ─────────────────────────────────────────────────────────────── */
.head{position:sticky;top:0;z-index:50;background:var(--oxford-blue);border-bottom:1px solid rgba(255,255,255,.12)}
.head__bar{display:flex;align-items:center;gap:var(--space-6);min-height:84px}
.head__logo{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.head__logo img{height:40px;width:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}
.nav a{color:#e7ebf1;text-decoration:none;font-size:var(--small-size);font-weight:var(--weight-semibold);letter-spacing:.01em;padding:var(--space-2) var(--space-3);border-bottom:2px solid transparent}
.nav a:hover{color:var(--white);border-bottom-color:rgba(224,196,163,.6)}
.nav a[aria-current=page]{color:var(--white);border-bottom-color:var(--tan)}
.nav__cta{margin-left:var(--space-3);background:var(--tan);color:var(--oxford-blue)!important;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5)!important;border-bottom:0!important}
.nav__cta:hover{background:#ecd6bc}
.nav__toggle{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;font:inherit;font-size:var(--small-size);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer}
@media (max-width:1150px){
  .nav__toggle{display:block}
  .nav{display:none;margin-left:0;flex-direction:column;align-items:stretch;width:100%;padding-bottom:var(--space-4);gap:0}
  .nav.open{display:flex}
  .nav a{padding:var(--space-4) 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav__cta{margin:var(--space-4) 0 0;text-align:center}
  .head__bar{flex-wrap:wrap;min-height:68px}
}

/* ─── Hero ───────────────────────────────────────────────────────────────── */
.hero{position:relative;background:var(--oxford-blue);color:var(--white);overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,36,61,.45) 0%,rgba(22,36,61,.88) 100%)}
.hero__body{position:relative;z-index:1;padding:var(--space-24) 0 var(--space-20)}
.hero--page .hero__body{padding:var(--space-16) 0 var(--space-12)}
.hero h1,.hero h2{color:var(--white)}
.hero__lead{margin-top:var(--space-5);max-width:62ch;font-size:var(--text-md);color:#dbe1ea}
.hero__title{margin-top:var(--space-4);font-size:clamp(38px,6.4vw,var(--display-size));line-height:var(--leading-tight)}
.hero .eyebrow{color:var(--tan)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}

/* ─── Buttons ────────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:inherit;font-size:var(--small-size);font-weight:var(--weight-semibold);letter-spacing:.01em;padding:var(--space-4) var(--space-6);border-radius:var(--radius-sm);border:2px solid transparent;text-decoration:none;cursor:pointer;transition:var(--transition-color),transform var(--duration-fast) var(--ease-standard)}
.btn:active{transform:scale(.985)}
.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-on)}
.btn--ghost{background:transparent;border-color:currentColor;color:inherit}
.btn--ghost:hover{background:rgba(255,255,255,.12);color:inherit}
.band:not(.band--dark) .btn--ghost:hover{background:var(--brown-50)}
.btn--onlight{color:var(--text-heading)}

/* ─── Grids & cards ──────────────────────────────────────────────────────── */
.grid{display:grid;gap:var(--space-6)}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.split{display:grid;gap:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}
.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}
.card h3{margin-bottom:var(--space-3)}
.card p{color:var(--text-muted);font-size:var(--small-size)}
a.card{text-decoration:none;display:block;transition:transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
a.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-raised)}
a.card h3{color:var(--text-heading)}
a.card .more{display:inline-block;margin-top:var(--space-4);font-size:var(--small-size);font-weight:var(--weight-semibold);color:var(--text-accent)}
.panel{background:var(--cultured);border-radius:var(--radius-md);border-top-right-radius:var(--radius-panel);padding:var(--space-10)}
.band--dark .panel{background:rgba(255,255,255,.07)}

/* ─── Stats ──────────────────────────────────────────────────────────────── */
.stats{display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.stat__n{font-size:var(--text-4xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--tan);line-height:1}
.stat__l{margin-top:var(--space-3);font-size:var(--small-size);color:#c6cdd6}

/* ─── Event / schedule lists ─────────────────────────────────────────────── */
.evt{display:grid;gap:var(--space-2) var(--space-8);grid-template-columns:minmax(0,150px) minmax(0,1fr);padding:var(--space-6) 0;border-bottom:1px solid var(--border-subtle)}
.evt:first-of-type{border-top:1px solid var(--border-subtle)}
.evt__when{font-size:var(--small-size);font-weight:var(--weight-semibold);color:var(--text-accent);letter-spacing:.01em}
.evt h3{font-size:var(--text-lg)}
.evt__meta{margin-top:var(--space-3);font-size:var(--small-size);color:var(--text-muted)}
.evt__meta b{color:var(--text-body);font-weight:var(--weight-bold)}
@media (max-width:640px){.evt{grid-template-columns:1fr}}

.facts{margin:0;display:grid;gap:var(--space-3) var(--space-6);grid-template-columns:minmax(0,auto) minmax(0,1fr);font-size:var(--small-size)}
.facts dt{font-weight:var(--weight-bold);color:var(--text-heading)}
.facts dd{margin:0;color:var(--text-muted)}

/* ─── Lists ──────────────────────────────────────────────────────────────── */
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.ticks li{position:relative;padding-left:var(--space-6);font-size:var(--small-size)}
.ticks li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;background:var(--accent);border-radius:2px}
.band--dark .ticks li::before{background:var(--tan)}

/* ─── Logo wall ──────────────────────────────────────────────────────────── */
.logos{display:grid;gap:var(--space-10);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));align-items:center;justify-items:center}
.logos img{max-height:120px;max-width:100%;width:auto;object-fit:contain}
.logos a{display:block}
.logos--xl{gap:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.logos--xl img{max-height:170px}
@media (max-width:640px){.logos{gap:var(--space-8)}.logos img{max-height:96px}.logos--xl img{max-height:130px}}

/* ─── Team ───────────────────────────────────────────────────────────────── */
.person{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-card)}
.person__ph{aspect-ratio:3/4;background:var(--cultured);display:grid;place-items:center;font-size:var(--text-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-subtle);text-align:center;padding:var(--space-4)}
.person>img{aspect-ratio:3/4;width:100%;object-fit:cover;object-position:center 22%}
.person__links{display:flex;gap:var(--space-4);margin-top:var(--space-4);font-size:var(--small-size);font-weight:var(--weight-semibold)}
.person__links a{text-decoration:none}
.person__links a:hover{text-decoration:underline}
.person__b{padding:var(--space-5)}
.person__b h3{font-size:var(--text-md)}
.person__r{margin-top:var(--space-1);font-size:var(--small-size);color:var(--text-muted)}

/* ─── Instagram ──────────────────────────────────────────────────────────── */
.ig{display:grid;gap:var(--space-10);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center}
@media (max-width:860px){.ig{grid-template-columns:1fr}}
.ig__handle{display:inline-flex;align-items:center;gap:var(--space-3);margin-top:var(--space-6);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--white);text-decoration:none}
.ig__handle:hover{color:var(--tan)}
.ig__mark{width:44px;height:44px;flex:0 0 auto;border-radius:12px;background:conic-gradient(from 200deg at 30% 107%,#fdf497,#fd5949 25%,#d6249f 60%,#285aeb 90%);display:grid;place-items:center}
.ig__mark svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.ig__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.ig__tile{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius-md);background:#20252b}
.ig__tile img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-standard),opacity var(--duration-base) var(--ease-standard)}
.ig__tile:hover img{transform:scale(1.04);opacity:.82}
@media (min-width:861px){.ig__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ─── Calendar (ICS) ─────────────────────────────────────────────────────── */
.cal__state{font-size:var(--small-size);color:var(--text-muted)}
.cal__badge{display:inline-block;margin-bottom:var(--space-2);font-size:var(--text-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-subtle)}

/* ─── Media ──────────────────────────────────────────────────────────────── */
.media{border-radius:var(--radius-lg);overflow:hidden}
.media img{width:100%;height:100%;object-fit:cover}

/* ─── Subnav ─────────────────────────────────────────────────────────────── */
.subnav{display:flex;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-4)}
.subnav a{font-size:var(--small-size);font-weight:var(--weight-semibold);text-decoration:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--text-muted)}
.subnav a:hover{background:var(--brown-50);color:var(--text-accent)}
.subnav a[aria-current=page]{background:var(--oxford-blue);color:var(--white)}

/* ─── Form ───────────────────────────────────────────────────────────────── */
.form-grid{display:grid;gap:var(--space-5) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.form-full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field label{font-size:var(--small-size);font-weight:var(--weight-semibold);color:var(--text-heading)}
.field input,.field select{font-family:inherit;font-size:var(--small-size);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#fff;color:var(--text-body);width:100%;transition:border-color var(--duration-fast) var(--ease-standard)}
.field input:focus,.field select:focus{outline:2px solid var(--focus-ring);outline-offset:0;border-color:transparent}
.field input::placeholder{color:var(--text-subtle)}
.form-check{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--small-size);color:var(--text-muted);cursor:pointer;line-height:var(--leading-normal)}
.form-check input[type=checkbox]{flex:0 0 auto;margin-top:3px;width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.req{color:var(--accent)}

/* ─── Footer ─────────────────────────────────────────────────────────────── */
.foot{background:var(--gunmetal);color:#d7dbe0;font-size:var(--small-size)}
.foot h2,.foot h3{color:var(--white)}
.foot a{color:var(--tan)}
.foot a:hover{color:var(--white)}
.foot__top{display:grid;gap:var(--space-10);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));padding:var(--space-16) 0 var(--space-12)}
.foot__links{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:var(--space-3)}
.foot__links a{text-decoration:none}
.foot__links a:hover{text-decoration:underline}
.foot__legal{border-top:1px solid rgba(255,255,255,.14);padding:var(--space-6) 0;display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-8);justify-content:space-between;font-size:var(--text-xs);color:#a8afb7}
.foot__dis{border-top:1px solid rgba(255,255,255,.14);padding:var(--space-8) 0;font-size:var(--text-xs);line-height:var(--leading-normal);color:#a8afb7;max-width:100ch}
.foot__dis b{color:#d7dbe0}
.foot__social{display:flex;gap:var(--space-5);margin-top:var(--space-5);flex-wrap:wrap}
.foot__social a{text-decoration:none;font-weight:var(--weight-semibold)}
