/* ==========================================================================
   LCBAT Institutional Website — Design System v1.0
   Tokens → base → layout → components → pages → motion → print
   Documented in /docs/DESIGN-SYSTEM.md
   ========================================================================== */

/* ---------- 1. Fonts (self-hosted, SIL OFL 1.1) ---------- */
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/eb-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/eb-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/eb-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/eb-garamond-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/eb-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/source-sans-3-latin-700-normal.woff2) format("woff2")}

/* ---------- 2. Design tokens ---------- */
:root{
  /* Brand colour — sampled from the official logo */
  --navy-950:#07182b;
  --navy-900:#0d2a48;      /* logo navy */
  --navy-800:#143757;
  --navy-700:#21486f;
  --burgundy-800:#4d1520;
  --burgundy-700:#691d29;  /* logo burgundy */
  --gold-400:#d3b87e;
  --gold-500:#bfa165;      /* logo gold */
  --gold-700:#7a5f27;      /* AA text gold on ivory */
  --ivory-100:#f5f3e7;     /* logo background */
  --ivory-50:#faf8f1;
  --ivory-200:#ece8d8;
  --stone-300:#d9d3c0;
  --stone-500:#6b7380;
  --ink:#14263a;
  --ink-soft:#3f4f60;      /* body secondary, AA on ivory */

  /* Semantic */
  --bg:var(--ivory-50);
  --surface:#ffffff;
  --text:var(--ink);
  --text-soft:var(--ink-soft);
  --rule:#ddd7c5;
  --accent:var(--burgundy-700);
  --eyebrow:var(--gold-700);
  --focus:var(--navy-900);

  /* Type */
  --font-display:"EB Garamond","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --font-ui:"Source Sans 3","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --fs-0:clamp(.8125rem,.79rem + .1vw,.875rem);   /* eyebrow / meta */
  --fs-1:clamp(1rem,.97rem + .15vw,1.0625rem);    /* body */
  --fs-2:clamp(1.125rem,1.08rem + .25vw,1.3rem);  /* lead */
  --fs-3:clamp(1.375rem,1.25rem + .6vw,1.75rem);  /* h3 */
  --fs-4:clamp(1.9rem,1.5rem + 1.8vw,3rem);       /* h2 */
  --fs-5:clamp(2.6rem,1.7rem + 4.2vw,5.4rem);     /* h1 hero */

  /* Space (8px rhythm) */
  --s-1:.5rem;--s-2:1rem;--s-3:1.5rem;--s-4:2rem;--s-5:3rem;--s-6:4.5rem;--s-7:clamp(4rem,8vw,7.5rem);
  --gutter:clamp(1.25rem,4.2vw,3.25rem);
  --max:1240px;
  --measure:66ch;

  /* Motion */
  --ease:cubic-bezier(.2,.7,.2,1);
  --t-fast:160ms;--t-med:280ms;
}

/* ---------- 3. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:7rem;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-1)/1.65 var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.12;margin:0 0 var(--s-2);color:inherit;text-wrap:balance}
h1{font-size:var(--fs-5);letter-spacing:-.012em}
h2{font-size:var(--fs-4);letter-spacing:-.008em}
h3{font-size:var(--fs-3);line-height:1.2}
h4{font-family:var(--font-ui);font-size:var(--fs-0);font-weight:700;letter-spacing:.12em;text-transform:uppercase}
p{margin:0 0 var(--s-2);text-wrap:pretty}
em{font-style:italic}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
ul,ol{margin:0;padding:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.on-dark :focus-visible,.hero :focus-visible,.site-footer :focus-visible,.utility :focus-visible{outline-color:var(--gold-400)}
::selection{background:var(--navy-900);color:var(--ivory-100)}
.skip{position:absolute;left:var(--gutter);top:-4rem;z-index:100;background:var(--navy-900);color:#fff;padding:.9rem 1.2rem;font-weight:600;transition:top var(--t-fast)}
.skip:focus{top:.75rem}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 4. Layout ---------- */
.wrap{width:100%;max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--s-7)}
.section--tint{background:var(--ivory-100);border-block:1px solid var(--rule)}
.section--navy{background:var(--navy-900);color:var(--ivory-100)}
.section--burgundy{background:var(--burgundy-700);color:var(--ivory-100)}
.split{display:grid;gap:var(--s-5);grid-template-columns:1fr}
@media(min-width:900px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(3rem,7vw,7rem)}.split--even{grid-template-columns:1fr 1fr}}
.prose{max-width:var(--measure)}
.prose p{color:var(--text-soft)}
.prose h2{margin-top:var(--s-5)}
.prose h3{margin-top:var(--s-4)}
.prose ul{padding-left:1.2rem;color:var(--text-soft)}
.prose li{margin-bottom:.5rem}
.lead{font:400 var(--fs-2)/1.6 var(--font-display);font-size:clamp(1.3rem,1.15rem + .8vw,1.75rem);line-height:1.45;color:var(--text)}
.section--navy .prose p,.section--navy .lead,.on-dark p{color:#d7dfe8}

/* ---------- 5. Utility bar + masthead ---------- */
.utility{background:var(--navy-950);color:#c9d3de;font-size:var(--fs-0);letter-spacing:.06em}
.utility .wrap{display:flex;justify-content:space-between;gap:var(--s-2);padding-block:.55rem;align-items:center}
.utility a{text-decoration:none;color:#e9e3cf;border-bottom:1px solid rgba(211,184,126,.5);transition:border-color var(--t-fast)}
.utility a:hover{border-color:var(--gold-400)}
.utility .u-loc{display:none}
@media(min-width:640px){.utility .u-loc{display:inline}}
.masthead{position:sticky;top:0;z-index:50;background:var(--ivory-100);border-bottom:1px solid var(--rule)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:4.75rem}
.brand{display:block;line-height:0;flex:none}
.brand img{height:3.6rem;width:auto}
@media(min-width:1024px){.brand img{height:4.4rem}.masthead .wrap{min-height:6rem}}
.nav{display:none}
.nav ul{list-style:none;display:flex;align-items:center;gap:clamp(1rem,2.2vw,2.4rem)}
.nav a{display:inline-block;padding:.6rem 0;font-weight:600;font-size:.97rem;text-decoration:none;position:relative;color:var(--ink)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:.15rem;height:2px;background:var(--gold-500);transform:scaleX(0);transform-origin:left;transition:transform var(--t-med) var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a.nav-cta{background:var(--burgundy-700);color:#fff;padding:.8rem 1.25rem;transition:background var(--t-fast)}
.nav a.nav-cta::after{display:none}
.nav a.nav-cta:hover{background:var(--burgundy-800)}
.menu-btn{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;min-width:48px;padding:.5rem .9rem;background:transparent;border:1px solid var(--navy-900);color:var(--navy-900);font:600 .95rem var(--font-ui);cursor:pointer}
.menu-btn svg{width:20px;height:20px}
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
@media(min-width:1040px){.nav{display:block}.menu-btn{display:none}}
.drawer{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ivory-100);border-bottom:1px solid var(--rule);box-shadow:0 24px 40px -24px rgba(7,24,43,.35)}
.drawer.is-open{display:block}
.drawer ul{list-style:none;padding:var(--s-2) var(--gutter) var(--s-4)}
.drawer li{border-bottom:1px solid var(--rule)}
.drawer a{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:.5rem 0;font:500 1.55rem/1.2 var(--font-display);text-decoration:none}
.drawer a[aria-current="page"]{color:var(--burgundy-700)}
@media(min-width:1040px){.drawer{display:none!important}}

/* ---------- 6. Buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;min-height:52px;padding:.85rem 1.6rem;font:600 .97rem/1.2 var(--font-ui);letter-spacing:.02em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.btn svg{width:18px;height:18px;transition:transform var(--t-med) var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--primary{background:var(--burgundy-700);color:#fff}
.btn--primary:hover{background:var(--burgundy-800)}
.btn--gold{background:var(--gold-400);color:var(--navy-950)}
.btn--gold:hover{background:#e1c98f}
.btn--ghost{border-color:currentColor;color:inherit}
.btn--ghost:hover{background:rgba(255,255,255,.1)}
.btn--ghost-dark{border-color:var(--navy-900);color:var(--navy-900)}
.btn--ghost-dark:hover{background:var(--navy-900);color:#fff}
.link-arrow{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;text-decoration:none;border-bottom:1px solid var(--gold-500);padding-block:.4rem;min-height:44px}
.link-arrow svg{width:16px;height:16px;transition:transform var(--t-med) var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}
.text-link{color:var(--burgundy-700);font-weight:600}
.section--navy .text-link,.on-dark .text-link{color:var(--gold-400)}

/* ---------- 7. Editorial primitives ---------- */
.eyebrow{display:flex;align-items:center;gap:.9rem;margin:0 0 var(--s-3);font:700 var(--fs-0)/1.3 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--eyebrow)}
.eyebrow::before{content:"";width:2.25rem;height:1px;background:currentColor;flex:none}
.on-dark .eyebrow,.section--navy .eyebrow,.section--burgundy .eyebrow,.hero .eyebrow{color:var(--gold-400)}
h1 em,h2 em{color:var(--burgundy-700);font-style:italic;font-weight:400}
.on-dark h1 em,.on-dark h2 em,.section--navy h2 em,.section--burgundy h2 em,.hero h1 em{color:var(--gold-400)}
.rule{border:0;border-top:1px solid var(--rule);margin:var(--s-4) 0}

/* ---------- 8. Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(120% 90% at 85% 40%,var(--navy-800) 0%,var(--navy-900) 45%,var(--navy-950) 100%);color:var(--ivory-100)}
.hero__field{position:absolute;inset:0 0 0 auto;width:min(100%,86rem);height:100%;z-index:-1;object-fit:cover;object-position:right center;opacity:.9;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 55%);mask-image:linear-gradient(90deg,transparent 0,#000 55%)}
@media(max-width:899px){.hero__field{opacity:.45;-webkit-mask-image:none;mask-image:none}}
.hero__inner{padding-block:clamp(4rem,10vw,9rem) clamp(3rem,6vw,5.5rem)}
.hero__inner>*{max-width:52rem}
.hero h1{font-weight:400;font-size:clamp(2.55rem,1.6rem + 4.6vw,5.5rem);line-height:1.03;margin-bottom:var(--s-3)}
.hero p.lede{font-size:clamp(1.1rem,1.04rem + .4vw,1.35rem);line-height:1.6;max-width:40rem;color:#dbe3ec;margin-bottom:var(--s-4)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.hero__facts{border-top:1px solid rgba(211,184,126,.35);background:rgba(7,24,43,.55);backdrop-filter:blur(2px)}
.hero__facts dl{margin:0;display:grid;grid-template-columns:1fr}
@media(min-width:760px){.hero__facts dl{grid-template-columns:repeat(3,1fr)}}
.hero__facts dl>div{padding:1.15rem 0;border-bottom:1px solid rgba(211,184,126,.2)}
@media(min-width:760px){.hero__facts dl>div{padding:1.5rem 1.75rem;border-bottom:0;border-left:1px solid rgba(211,184,126,.2)}.hero__facts dl>div:first-child{border-left:0;padding-left:0}}
.hero__facts dt{font:700 var(--fs-0) var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-400);margin-bottom:.2rem}
.hero__facts dd{margin:0;font:400 1.25rem/1.35 var(--font-display);color:var(--ivory-100)}
.geo{position:absolute;right:var(--gutter);top:1.25rem;font:600 .72rem var(--font-ui);letter-spacing:.2em;color:rgba(233,227,207,.7)}
@media(max-width:899px){.geo{display:none}}

/* Page header (inner pages) */
.page-head{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-900);color:var(--ivory-100)}
.page-head__field{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:right center;opacity:.55}
.page-head .wrap{padding-block:clamp(3.5rem,8vw,6.5rem)}
.page-head h1{font-size:clamp(2.3rem,1.5rem + 3.6vw,4.4rem);font-weight:400;max-width:20ch;margin-bottom:var(--s-2)}
.page-head p{font-size:var(--fs-2);color:#d7dfe8;max-width:46rem;margin:0}
.crumbs{font-size:var(--fs-0);letter-spacing:.06em;margin-bottom:var(--s-3);color:#c9d3de}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--gold-400)}
.crumbs a{text-decoration:none;border-bottom:1px solid rgba(211,184,126,.5)}

/* ---------- 9. Notice (2027/28) ---------- */
.notice{background:var(--ivory-200);border-bottom:1px solid var(--stone-300)}
.notice .wrap{display:grid;gap:var(--s-3);padding-block:var(--s-4);align-items:center}
@media(min-width:900px){.notice .wrap{grid-template-columns:auto 1fr auto;gap:var(--s-5)}}
.notice__year{font:500 clamp(2.4rem,2rem + 2vw,3.6rem)/1 var(--font-display);color:var(--burgundy-700);letter-spacing:-.01em;padding-right:var(--s-4);border-right:0}
@media(min-width:900px){.notice__year{border-right:1px solid var(--stone-300)}}
.notice h2{font-size:clamp(1.3rem,1.15rem + .7vw,1.75rem);margin:0 0 .35rem}
.notice p{margin:0;color:var(--text-soft);max-width:60ch}

/* ---------- 10. Components ---------- */
/* At-a-glance definition list */
.glance{margin:0;border-top:2px solid var(--navy-900)}
.glance div{display:grid;grid-template-columns:minmax(7rem,.8fr) 2fr;gap:var(--s-2);padding:1.05rem 0;border-bottom:1px solid var(--rule)}
.glance dt{font:700 var(--fs-0) var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--eyebrow);padding-top:.2rem}
.glance dd{margin:0;font:400 1.18rem/1.4 var(--font-display)}

/* Fields of study (editorial list) */
.fields{list-style:none;border-top:2px solid var(--navy-900)}
.fields li{border-bottom:1px solid var(--rule)}
.field{display:grid;grid-template-columns:3.2rem 1fr;gap:var(--s-2) var(--s-3);padding:var(--s-4) 0;text-decoration:none;position:relative;transition:background var(--t-med),padding var(--t-med) var(--ease)}
@media(min-width:900px){.field{grid-template-columns:5rem minmax(0,5fr) minmax(0,6fr) 2.5rem;align-items:start;padding-inline:0}.field:hover{background:var(--ivory-100);padding-inline:1.25rem}}
.field__no{font:400 clamp(1.6rem,1.3rem + 1vw,2.4rem)/1 var(--font-display);color:var(--gold-700)}
.field__title{font:500 clamp(1.5rem,1.3rem + 1vw,2.2rem)/1.15 var(--font-display);margin:0}
.field__text{margin:0;color:var(--text-soft);grid-column:2}
@media(min-width:900px){.field__text{grid-column:auto}}
.field__arrow{display:none;color:var(--burgundy-700)}
@media(min-width:900px){.field__arrow{display:block;justify-self:end;transition:transform var(--t-med) var(--ease)}.field:hover .field__arrow{transform:translateX(6px)}}
.field__arrow svg{width:26px;height:26px}

/* Principles (numbered columns) */
.principles{list-style:none;display:grid;gap:var(--s-4);margin-top:var(--s-5)}
@media(min-width:900px){.principles{grid-template-columns:repeat(3,1fr);gap:var(--s-5)}}
.principle{border-top:1px solid rgba(211,184,126,.55);padding-top:var(--s-3)}
.principle__no{display:block;font:400 2.4rem/1 var(--font-display);color:var(--gold-400);margin-bottom:var(--s-2)}
.principle h3{font-size:1.65rem;margin-bottom:.6rem}
.principle p{color:#d0d9e3;margin:0}

/* Values */
.values{list-style:none;display:grid;gap:0 var(--s-5);grid-template-columns:1fr}
@media(min-width:760px){.values{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.values{grid-template-columns:repeat(3,1fr)}}
.value{border-top:1px solid var(--rule);padding:var(--s-3) 0 var(--s-4)}
.value h3{font-size:1.6rem;margin-bottom:.5rem}
.value p{color:var(--text-soft);margin:0}
.value__no{font:700 var(--fs-0) var(--font-ui);letter-spacing:.16em;color:var(--gold-700);display:block;margin-bottom:.6rem}

/* Statement band */
.statement{font:400 clamp(1.6rem,1.2rem + 2vw,2.9rem)/1.28 var(--font-display);max-width:26ch;margin:0}
.statement-wrap{display:grid;gap:var(--s-4)}
@media(min-width:900px){.statement-wrap{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end}}

/* Vision / Mission panels */
.pair{display:grid;gap:var(--s-4)}
@media(min-width:900px){.pair{grid-template-columns:1fr 1fr;gap:0}}
.pair__item{padding:var(--s-5) clamp(1.25rem,4vw,4rem) var(--s-5) 0}
@media(min-width:900px){.pair__item+.pair__item{padding-left:clamp(1.25rem,4vw,4rem);border-left:1px solid rgba(245,243,231,.28)}}
.pair__item h2{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.7rem)}
.pair__item p{color:#f0e6df;font-size:var(--fs-2);font-family:var(--font-display);line-height:1.5}

/* Cards used sparingly (information, contact) */
.panel{background:var(--surface);border:1px solid var(--rule);padding:clamp(1.5rem,3vw,2.5rem)}
.panel h3{font-size:1.5rem}
.panel address{font-style:normal;line-height:1.7}
.datalist{margin:0;border-top:2px solid var(--navy-900)}
.datalist div{display:grid;gap:.15rem var(--s-3);padding:1rem 0;border-bottom:1px solid var(--rule)}
@media(min-width:640px){.datalist div{grid-template-columns:14rem 1fr}}
.datalist dt{font:700 var(--fs-0) var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--eyebrow);padding-top:.2rem}
.datalist dd{margin:0}
.callout{border-left:3px solid var(--gold-500);background:var(--ivory-100);padding:var(--s-3) var(--s-3);margin:var(--s-4) 0}
.callout p{margin:0;color:var(--ink)}

/* Emblem figure (About) */
.emblem{display:grid;gap:var(--s-4);align-items:center;background:var(--ivory-100);border:1px solid var(--rule);padding:clamp(1.5rem,4vw,3rem)}
@media(min-width:760px){.emblem{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}}
.emblem img{width:100%;height:auto}
.emblem ul{list-style:none;margin:var(--s-2) 0 0}
.emblem li{padding:.7rem 0;border-top:1px solid var(--rule);color:var(--text-soft)}
.emblem li strong{color:var(--ink);font-weight:600}

/* Sibling page navigation */
.next{display:grid;gap:0;border-top:2px solid var(--navy-900)}
@media(min-width:760px){.next{grid-template-columns:1fr 1fr}}
.next a{display:block;padding:var(--s-4) 0;text-decoration:none;border-bottom:1px solid var(--rule);transition:background var(--t-med),padding var(--t-med) var(--ease)}
@media(min-width:760px){.next a+a{border-left:1px solid var(--rule);padding-left:var(--s-4)}.next a:hover{background:var(--ivory-100);padding-inline:var(--s-3)}.next a+a:hover{padding-left:var(--s-4)}}
.next small{display:block;font:700 var(--fs-0) var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--eyebrow);margin-bottom:.4rem}
.next span{font:500 1.7rem/1.2 var(--font-display)}

/* CTA band */
.cta{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-950);color:var(--ivory-100)}
.cta__field{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:right center;opacity:.6}
.cta .wrap{display:grid;gap:var(--s-4);padding-block:var(--s-7);align-items:end}
@media(min-width:900px){.cta .wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.cta p{color:#d7dfe8;font-size:var(--fs-2);max-width:40rem}
.cta__actions{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}

/* ---------- 11. Forms ---------- */
.form{display:grid;gap:var(--s-3)}
.form-row{display:grid;gap:var(--s-3)}
@media(min-width:640px){.form-row--2{grid-template-columns:1fr 1fr}}
.field-group label{display:block;font-weight:600;margin-bottom:.4rem}
.field-group .hint{display:block;font-size:.9rem;color:var(--text-soft);margin-bottom:.4rem;font-weight:400}
.field-group input,.field-group select,.field-group textarea{width:100%;min-height:52px;padding:.8rem .95rem;font:400 1rem/1.4 var(--font-ui);color:var(--ink);background:#fff;border:1px solid #7a8492;border-radius:0;appearance:none}
.field-group select{background-image:linear-gradient(45deg,transparent 50%,var(--navy-900) 50%),linear-gradient(135deg,var(--navy-900) 50%,transparent 50%);background-position:calc(100% - 1.3rem) 50%,calc(100% - .95rem) 50%;background-size:.4rem .4rem;background-repeat:no-repeat;padding-right:2.6rem}
.field-group textarea{min-height:10rem;resize:vertical}
.field-group input:focus-visible,.field-group select:focus-visible,.field-group textarea:focus-visible{outline:3px solid var(--navy-900);outline-offset:1px;border-color:var(--navy-900)}
.req{color:var(--burgundy-700)}
.form-status{min-height:1.5rem;font-weight:600}
.form-status[data-state="error"]{color:#9b1c1c}
.form-status[data-state="ok"]{color:#1d5c3a}
.form-note{font-size:.92rem;color:var(--text-soft)}

/* ---------- 12. Footer ---------- */
.site-footer{background:var(--navy-950);color:#c9d3de;font-size:.97rem}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--gold-400);text-decoration:underline}
.footer__top{display:grid;gap:var(--s-5);padding-block:var(--s-6) var(--s-5)}
@media(min-width:900px){.footer__top{grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,3fr);gap:var(--s-6)}}
.footer__brand{display:inline-block;background:var(--ivory-100);padding:.9rem 1.1rem;line-height:0;margin-bottom:var(--s-3)}
.footer__brand img{height:3.8rem;width:auto}
.site-footer h2{font:700 var(--fs-0) var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-400);margin-bottom:var(--s-2)}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.15rem}
.site-footer li a{display:inline-block;padding:.4rem 0;min-height:32px}
.site-footer address{font-style:normal;line-height:1.7}
.footer__bottom{border-top:1px solid rgba(255,255,255,.14);padding-block:var(--s-3) var(--s-4);font-size:.88rem;color:#aebbc9}
.footer__bottom .wrap{display:flex;flex-wrap:wrap;gap:.6rem var(--s-4);justify-content:space-between}
.footer__legal{max-width:70ch;margin:0 0 var(--s-2)}

/* ---------- 13. Motion (opt-in, reduced-motion safe) ---------- */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes drift{from{transform:translateY(22px)}to{transform:none}}
@media(prefers-reduced-motion:no-preference){
  .hero__inner>*{animation:rise .9s var(--ease) both}
  .hero__inner>*:nth-child(2){animation-delay:.08s}.hero__inner>*:nth-child(3){animation-delay:.16s}.hero__inner>*:nth-child(4){animation-delay:.24s}
  @supports (animation-timeline:view()){
    .reveal{animation:drift linear both;animation-timeline:view();animation-range:entry 4% entry 38%}
  }
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- 14. Print ---------- */
@media print{
  .utility,.menu-btn,.nav,.drawer,.cta,.hero__field,.page-head__field,.skip{display:none!important}
  body{background:#fff;color:#000}.hero,.page-head,.section--navy,.section--burgundy{background:#fff!important;color:#000!important}
  a{text-decoration:underline}
}

/* ---------- 15. Modifiers (kept in CSS so the site can run a strict CSP with no inline styles) ---------- */
.fields--plain .field{padding-block:1.6rem}
.fields--plain .field__text{grid-column:2/-1;font-size:1.12rem;color:var(--ink)}
@media(min-width:900px){.fields--plain .field{grid-template-columns:4rem 1fr}.fields--plain .field:hover{background:transparent;padding-inline:0}}
.principles--single{grid-template-columns:1fr!important;gap:var(--s-4)}
@media(min-width:900px){.principles--single .principle{display:grid;grid-template-columns:5rem minmax(0,4fr) minmax(0,7fr);gap:var(--s-3) var(--s-4);align-items:start}.principles--single .principle__no{margin:0}.principles--single .principle h3{margin:0}}
.values--spaced{margin-top:var(--s-5)}
.panel--spaced{margin-top:var(--s-4)}
.panel__note{margin:var(--s-2) 0 0}
.h1-compact{font-size:var(--fs-4)}

.prose h3.label{font:700 var(--fs-0) var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--eyebrow);margin-top:var(--s-4)}

/* ---------- 16. V4.1 — photography (rendered only when photos are installed) ---------- */
picture{display:block}
.hero--photo .hero__media{position:absolute;inset:0;z-index:-2}
.hero--photo .hero__media picture,.hero--photo .hero__media img{width:100%;height:100%}
.hero--photo .hero__media img{object-fit:cover;object-position:62% 55%}
.hero--photo .hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,24,43,.95) 0%,rgba(7,24,43,.80) 36%,rgba(7,24,43,.32) 70%,rgba(7,24,43,.12) 100%),linear-gradient(0deg,rgba(7,24,43,.55),transparent 38%)}
.hero--photo .hero__field{opacity:.22;mix-blend-mode:screen}
.hero--photo{background:var(--navy-950)}
.hero__credit p{margin:0}
.hero__credit{padding-block:.65rem;font-size:.76rem;letter-spacing:.03em;color:rgba(233,227,207,.82);background:var(--navy-950)}
.hero__credit a,.photo figcaption a,.band__cap a{text-underline-offset:.2em}
@media(max-width:899px){
  .hero--photo{display:flex;flex-direction:column}
  .hero--photo .hero__media{position:relative;inset:auto;order:-1;height:clamp(15rem,64vw,26rem);z-index:0;flex:none}
  .hero--photo .hero__scrim{inset:0 0 auto 0;height:clamp(15rem,64vw,26rem);z-index:0;background:linear-gradient(0deg,var(--navy-900) 0%,rgba(13,42,72,0) 45%),linear-gradient(180deg,rgba(7,24,43,.35),transparent 30%)}
  .hero--photo .hero__field{display:none}
  .hero--photo .hero__inner{padding-top:clamp(1.5rem,5vw,2.5rem);margin-top:-3.5rem;position:relative;z-index:1}
  .hero--photo .geo{display:none}
}
@media(max-width:560px){.hero__actions .btn{width:100%}}

.photo{margin:var(--s-4) 0 0}
.photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--ivory-200)}
.photo--portrait img{aspect-ratio:3/4;max-height:36rem}
.photo figcaption,.band__cap{font-size:.8rem;line-height:1.5;color:var(--text-soft);padding-top:.55rem}
.band{background:var(--bg)}
.band__img{width:100%;height:15rem;overflow:hidden;background:var(--ivory-200)}
@media(min-width:760px){.band__img{height:auto;aspect-ratio:21/8;max-height:34rem}}
.band__img picture,.band__img img{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.band__cap{margin:0;padding-bottom:.9rem}

/* Home field list with photographs */
.fields--photo .field__img{display:block;overflow:hidden;aspect-ratio:16/9;background:var(--ivory-200)}
.fields--photo .field__img picture,.fields--photo .field__img img{width:100%;height:100%;object-fit:cover}
.fields--photo .field__img img{transition:transform .6s var(--ease)}
.fields--photo .field:hover .field__img img{transform:scale(1.045)}
@media(max-width:899px){.fields--photo .field{grid-template-columns:1fr}.fields--photo .field__no{display:none}.fields--photo .field__text{grid-column:auto}}
@media(min-width:900px){.fields--photo .field{grid-template-columns:3.5rem 15rem minmax(0,4fr) minmax(0,5fr) 2rem;align-items:center;padding-block:var(--s-3)}.fields--photo .field__img{aspect-ratio:4/3}}

/* Contact by email */
.mailto{margin:0 0 var(--s-2)}
.mailto__link{font:500 clamp(1.25rem,1rem + 1.4vw,1.9rem)/1.25 var(--font-display);color:var(--burgundy-700);overflow-wrap:anywhere;text-decoration-thickness:1px}
.mailto__link:hover{color:var(--burgundy-800)}
.label-h{font:700 var(--fs-0) var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--eyebrow);margin-bottom:var(--s-2)}
.fields--mail .field{grid-template-columns:3.2rem 1fr 2rem;align-items:center;padding-block:1.35rem}
.fields--mail .field__title{font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem)}
.fields--mail .field__arrow{display:block;justify-self:end;color:var(--burgundy-700)}
.fields--mail .field:hover{background:var(--ivory-100)}
@media(min-width:900px){.fields--mail .field{grid-template-columns:4rem 1fr 2rem;padding-inline:0}.fields--mail .field:hover{padding-inline:1rem}}
button[hidden]{display:none}

@media(max-width:759px){.hero__facts dl>div{padding:.8rem 0}}

/* V4.2 editorial: legal-status link in footer bottom bar */
.footer__bottom a{color:inherit;text-decoration:underline;text-underline-offset:.2em}
.footer__bottom a:hover{color:#fff}
