/* Life After Life — Queens T.R.Y.
   Design tokens, base, components, sections. Mobile-first. */

@font-face{font-family:"DM Serif Display";src:url("/assets/fonts/dm-serif-display-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url("/assets/fonts/dm-serif-display-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Public Sans";src:url("/assets/fonts/public-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  /* Color — black matches the logo artwork (#090909) so the mark sits seamlessly */
  --ink:#090909;
  --ink-2:#14120f;
  --ink-3:#1e1b16;
  --gold:#d9ae5f;          /* on black only: 9.6:1 */
  --gold-bright:#ecc77f;
  --gold-deep:#7a5410;     /* text/links on light: 6.1:1 on paper, 6.8:1 on white */
  --paper:#f6f3ec;
  --white:#ffffff;
  --stone:#57524a;         /* secondary text on light: 7.0:1 */
  --stone-dark:#b8b1a3;    /* secondary text on black: 9.3:1 */
  --line:#ddd5c5;
  --line-dark:#2f2b24;
  --danger:#a1261d;
  --danger-dark:#ff9f92;
  --ok:#1e6a3b;
  --ok-dark:#8fd8a9;

  --f-display:"DM Serif Display",Georgia,"Times New Roman",serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  /* Type scale (fluid, ~1.25 ratio at mobile → ~1.333 at desktop) */
  --t-xs:.8125rem;
  --t-sm:.9375rem;
  --t-base:1.0625rem;
  --t-lead:clamp(1.15rem,1.05rem + .45vw,1.375rem);
  --t-h4:clamp(1.25rem,1.15rem + .5vw,1.5rem);
  --t-h3:clamp(1.5rem,1.3rem + 1vw,2.125rem);
  --t-h2:clamp(2rem,1.55rem + 2.2vw,3.5rem);
  --t-h1:clamp(2.5rem,1.7rem + 4vw,5.25rem);
  --t-mega:clamp(3rem,1.6rem + 7vw,8.5rem);

  --space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4.5rem;--space-8:clamp(4.5rem,3rem + 6vw,8.5rem);
  --wrap:76rem;
  --gutter:clamp(1rem,.6rem + 2vw,2.5rem);
  --header-h:64px;
  --radius:6px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:64em){:root{--header-h:76px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--t-base);line-height:1.6;font-variant-numeric:lining-nums;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
picture{display:contents}
a{color:var(--gold-deep);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.08;letter-spacing:-.01em;margin:0 0 .5em;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0;padding:0}
main{display:block}
main:focus{outline:none}
:focus-visible{outline:3px solid var(--gold-deep);outline-offset:3px;border-radius:2px}
.on-dark :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.nl-modal :focus-visible{outline-color:var(--gold-bright)}
::selection{background:var(--gold);color:var(--ink)}

.skip-link{position:absolute;left:1rem;top:-100px;z-index:200;background:var(--gold);color:var(--ink);padding:.75rem 1rem;font-weight:700;border-radius:var(--radius);text-decoration:none}
.skip-link:focus{top:1rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:52rem}
.section{padding-block:var(--space-8)}
.section--tight{padding-block:var(--space-7)}
.on-dark{background:var(--ink);color:var(--white)}
.on-dark a{color:var(--gold)}
.on-dark .muted{color:var(--stone-dark)}
.muted{color:var(--stone)}
.lead{font-size:var(--t-lead);line-height:1.55}
.label{font-family:var(--f-body);letter-spacing:0;line-height:1.4;font-size:var(--t-sm);font-weight:600;color:var(--gold-deep);margin-bottom:var(--space-3);display:block}
.on-dark .label{color:var(--gold)}

/* ——— Buttons ——— */
.btn{--bg:var(--ink);--fg:var(--white);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.8rem 1.4rem;border:2px solid var(--bg);border-radius:var(--radius);background:var(--bg);color:var(--fg);font:600 1rem/1.2 var(--f-body);text-decoration:none;cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .15s var(--ease)}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--gold{--bg:var(--gold);--fg:var(--ink)}
.btn--gold:hover{--bg:var(--gold-bright)}
.btn--ink:hover{--bg:var(--ink-3)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--white)}
.on-dark .btn--ghost,.btn--ghost-dark{background:transparent;color:var(--white);border-color:rgba(255,255,255,.55)}
.on-dark .btn--ghost:hover,.btn--ghost-dark:hover{border-color:var(--gold);color:var(--gold)}
.on-dark a.btn--gold{color:var(--ink)}
.btn--sm{min-height:44px;padding:.55rem 1rem;font-size:.9375rem}
.btn--block{width:100%}
.btn[aria-busy="true"]{opacity:.75;cursor:progress}
.btn[aria-busy="true"] .btn__label::after{content:"…"}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

.text-link{font-weight:600;color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:.3em}
.text-link:hover{text-decoration-color:currentColor}

/* ——— Header ——— */
.site-header{position:sticky;top:0;z-index:100;background:var(--ink);color:var(--white);border-bottom:1px solid var(--line-dark)}
.site-header__inner{display:flex;align-items:center;gap:1rem;height:var(--header-h);max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.brand{display:flex;flex-direction:column;justify-content:center;gap:.2rem;text-decoration:none;color:var(--white);margin-right:auto;min-width:0;min-height:44px}
.brand__name{font-family:var(--f-display);font-size:1.45rem;line-height:1;letter-spacing:.01em;color:var(--white);white-space:nowrap}
.brand__sub{font-size:.6875rem;font-weight:600;line-height:1.2;letter-spacing:.04em;color:var(--gold);white-space:nowrap}
@media (min-width:64em){.brand__name{font-size:1.7rem}.brand__sub{font-size:.75rem}}

.menu-toggle{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.4rem .8rem;background:transparent;color:var(--white);border:1px solid var(--line-dark);border-radius:var(--radius);font:600 .9375rem var(--f-body);cursor:pointer}
.menu-toggle__bars{display:grid;gap:4px;width:18px}
.menu-toggle__bars span{display:block;height:2px;background:var(--gold);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.site-nav{position:fixed;inset:var(--header-h) 0 auto 0;background:var(--ink);border-bottom:1px solid var(--line-dark);padding:1rem var(--gutter) 1.75rem;max-height:calc(100dvh - var(--header-h));overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .3s var(--ease),visibility 0s linear .3s}
.site-nav.is-open{visibility:visible;opacity:1;transform:none;transition:opacity .25s var(--ease),transform .3s var(--ease),visibility 0s}
.site-nav__list{list-style:none}
.site-nav__list a{display:block;padding:.9rem 0;border-bottom:1px solid var(--line-dark);color:var(--white);text-decoration:none;font-family:var(--f-display);font-size:1.6rem;line-height:1.2}
.site-nav__list a[aria-current="page"]{color:var(--gold)}
.site-nav__phone{margin-top:1.25rem;display:flex;flex-direction:column;gap:.15rem;color:var(--stone-dark);font-size:var(--t-sm)}
.site-nav__phone a{color:var(--gold);font-size:1.25rem;font-weight:600;text-decoration:none}
.header-cta{display:none}

@media (min-width:64em){
  .menu-toggle{display:none}
  .site-nav{position:static;visibility:visible;opacity:1;transform:none;padding:0;border:0;background:transparent;max-height:none;overflow:visible;transition:none}
  .site-nav__list{display:flex;gap:.25rem}
  .site-nav__list a{border:0;font-family:var(--f-body);font-size:.9375rem;font-weight:500;padding:.6rem .8rem;position:relative;color:#e9e5dc}
  .site-nav__list a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.3rem;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
  .site-nav__list a:hover{color:var(--white)}
  .site-nav__list a:hover::after,.site-nav__list a[aria-current="page"]::after{transform:scaleX(1)}
  .site-nav__list a[aria-current="page"]{color:var(--white)}
  .site-nav__mobile-only{display:none!important}
  .header-cta{display:inline-flex;margin-left:.75rem}
}

/* ——— Hero (home) ——— */
.hero{background:var(--ink);color:var(--white);position:relative;overflow:hidden}
.hero__grid{display:grid;gap:var(--space-6);padding-block:var(--space-6) var(--space-7)}
.hero__copy{max-width:40rem;position:relative;z-index:1}
.hero__title{font-size:clamp(2.5rem,1.6rem + 3.6vw,4.6rem);line-height:1.06;margin-bottom:.45em}
.hero__title .line{display:block}
.hero__title .line--gold{color:var(--gold)}
.hero__rule{display:block;width:min(14rem,45%);height:3px;background:var(--gold);margin:0 0 var(--space-4);transform-origin:left}
.hero__lead{font-size:var(--t-lead);color:#e7e2d8;max-width:34rem}
.hero__meta{margin-top:var(--space-4);font-size:var(--t-sm);color:var(--stone-dark)}
.hero__meta a{color:var(--white);font-weight:600;white-space:nowrap}
.hero__art{position:relative;aspect-ratio:4/5;max-height:52vh;width:100%;justify-self:center;max-width:30rem;display:grid;place-items:end center;isolation:isolate}
.door{position:absolute;inset:6% 22% 14%;border:2px solid var(--gold);border-bottom:0;border-radius:999px 999px 0 0;overflow:hidden}
.door::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 50% 100%,#fff6df 0%,#f1cf85 22%,rgba(217,174,95,.35) 48%,rgba(9,9,9,0) 78%)}
.door__ground{position:absolute;left:-10%;right:-10%;bottom:14%;height:2px;background:var(--gold)}
.door__glow{position:absolute;left:50%;top:86%;width:110%;height:12%;transform:translateX(-50%);background:radial-gradient(50% 100% at 50% 0%,rgba(236,199,127,.35),rgba(9,9,9,0) 75%);z-index:-1}
.door__words{position:absolute;left:0;right:0;bottom:2%;display:flex;justify-content:center;gap:.6rem 1.1rem;flex-wrap:wrap;font-size:var(--t-sm);font-weight:600;color:var(--stone-dark)}
.door__words span:nth-child(odd){color:var(--gold)}
@media (min-width:56em){
  .hero__grid{grid-template-columns:1.05fr .95fr;align-items:center;min-height:calc(100svh - var(--header-h));padding-block:var(--space-6)}
  .hero__copy{order:2}
  .hero__art{order:1;max-height:calc(100svh - var(--header-h) - 6rem);max-width:34rem}
  .hero__grid{grid-template-columns:.9fr 1.1fr}
}

/* Orchestrated load sequence (one moment, home hero only) */
@media (prefers-reduced-motion:no-preference){
  .js .hero__title .line{opacity:0;transform:translateY(.4em);animation:rise .9s var(--ease) forwards}
  .js .hero__title .line:nth-child(2){animation-delay:.12s}
  .js .hero__title .line:nth-child(3){animation-delay:.24s}
  .js .hero__title .line:nth-child(4){animation-delay:.36s}
  .js .hero__rule{transform:scaleX(0);animation:draw 1s .55s var(--ease) forwards}
  .js .hero__lead,.js .hero .btn-row,.js .hero__meta{opacity:0;animation:fade .8s .75s var(--ease) forwards}
  .js .door{clip-path:inset(100% 0 0 0);animation:open 1.4s .15s var(--ease) forwards}
  .js .door::before{opacity:0;animation:fade 1.6s .9s var(--ease) forwards}
  .js .door__ground{transform:scaleX(0);animation:draw 1.1s var(--ease) forwards}
  .js .door__words{opacity:0;animation:fade .8s 1.3s var(--ease) forwards}
}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes draw{to{transform:scaleX(1)}}
@keyframes fade{to{opacity:1}}
@keyframes open{to{clip-path:inset(0 0 0 0)}}

/* ——— Page hero (inner pages) ——— */
.page-hero{background:var(--ink);color:var(--white);padding-block:var(--space-7) var(--space-7);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;top:0;bottom:0;left:clamp(55%,62%,70%);width:1px;background:linear-gradient(to bottom,transparent,rgba(217,174,95,.55),transparent);display:none}
@media (min-width:56em){.page-hero::before{display:block}}
.page-hero__title{font-size:var(--t-h1);max-width:16ch;margin-bottom:.35em}
.page-hero__lead{font-size:var(--t-lead);color:#e7e2d8;max-width:38rem;margin:0}
.page-hero .label{margin-bottom:var(--space-4)}
.crumb{font-size:var(--t-sm);color:var(--stone-dark);margin-bottom:var(--space-4)}
.crumb a{color:var(--stone-dark)}

/* ——— Intro / statement ——— */
.statement{display:grid;gap:var(--space-6)}
.statement__big{font-family:var(--f-display);font-size:var(--t-h3);line-height:1.22;margin:0}
.statement__big em{font-style:italic;color:var(--gold-deep)}
@media (min-width:56em){.statement{grid-template-columns:1.25fr 1fr;gap:var(--space-7);align-items:start}}

.who-list{list-style:none;border-top:1px solid var(--line)}
.who-list li{display:grid;grid-template-columns:1.5rem 1fr;gap:.75rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.who-list li::before{content:"";width:9px;height:9px;margin-top:.55em;border:2px solid var(--gold-deep);border-radius:50%}
.on-dark .who-list,.on-dark .who-list li{border-color:var(--line-dark)}
.on-dark .who-list li::before{border-color:var(--gold)}

/* ——— Growth • Support • Connect (signature) ——— */
.pillars{background:var(--ink);color:var(--white);overflow:hidden}
.pillars__intro{max-width:40rem;margin-bottom:var(--space-7)}
.pillars__intro h2{font-size:var(--t-h2)}
.pillars__track{position:relative;display:grid;gap:var(--space-6);padding-left:2.25rem}
.pillars__line{position:absolute;left:7px;top:.6rem;bottom:.6rem;width:2px;background:var(--line-dark)}
.pillars__line span{position:absolute;inset:0;background:var(--gold);transform-origin:top;transform:scaleY(var(--p,1))}
.pillar{position:relative}
.pillar::before{content:"";position:absolute;left:calc(-2.25rem + 1px);top:.55em;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid var(--gold);box-shadow:0 0 0 6px var(--ink)}
.pillar__word{font-family:var(--f-display);font-size:clamp(3.25rem,2rem + 6vw,5.75rem);line-height:.95;color:var(--gold);margin:0 0 .15em;letter-spacing:-.02em}
.pillar__text{max-width:26rem;color:#e7e2d8;margin:0}
@media (min-width:56em){
  .pillars__track{grid-template-columns:repeat(3,1fr);gap:var(--space-5);padding-left:0;padding-top:2.5rem}
  .pillars__line{left:0;right:0;top:6px;bottom:auto;width:auto;height:2px}
  .pillars__line span{transform-origin:left;transform:scaleX(var(--p,1))}
  .pillar::before{left:0;top:-2.5rem}
}
.pillars__close{margin-top:var(--space-7);font-family:var(--f-display);font-size:var(--t-h4);color:var(--stone-dark);max-width:36rem}
@media (prefers-reduced-motion:no-preference){
  .js .pillars__line span{--p:0;transition:transform 1.6s var(--ease)}
  .js .pillars.is-in .pillars__line span{--p:1}
  .js .pillar{opacity:0;transition:opacity .8s var(--ease)}
  .js .pillars.is-in .pillar{opacity:1}
  .js .pillars.is-in .pillar:nth-child(3){transition-delay:.4s}
  .js .pillars.is-in .pillar:nth-child(4){transition-delay:.8s}
}

/* ——— First 90 days ——— */
.ninety{display:grid;gap:var(--space-6)}
.ninety__num{font-family:var(--f-display);font-size:clamp(7rem,4rem + 16vw,15rem);line-height:.8;color:var(--ink);margin:0;letter-spacing:-.04em}
.ninety__num span{display:block;font-family:var(--f-body);font-size:var(--t-sm);letter-spacing:0;line-height:1.4;color:var(--stone);margin-top:1rem;font-weight:600}
.ninety h2{font-size:var(--t-h2)}
.check-list{list-style:none;display:grid;gap:.1rem;margin:var(--space-4) 0}
.check-list li{position:relative;padding:.55rem 0 .55rem 2rem;border-bottom:1px solid var(--line)}
.check-list li::before{content:"";position:absolute;left:.15rem;top:1.05rem;width:.85rem;height:.45rem;border-left:2px solid var(--gold-deep);border-bottom:2px solid var(--gold-deep);transform:rotate(-45deg)}
.on-dark .check-list li{border-color:var(--line-dark)}
.on-dark .check-list li::before{border-color:var(--gold)}
@media (min-width:56em){.ninety{grid-template-columns:.9fr 1.1fr;align-items:center;gap:var(--space-7)}}

/* ——— Program index (home + programs page) ——— */
.prog-index{list-style:none;border-top:1px solid var(--line-dark);counter-reset:none}
.prog-index li{border-bottom:1px solid var(--line-dark)}
.prog-index a{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1.15rem 0;color:var(--white);text-decoration:none}
.prog-index__name{font-family:var(--f-display);font-size:var(--t-h4);line-height:1.2}
.prog-index__hint{display:block;font-family:var(--f-body);font-size:var(--t-sm);color:var(--stone-dark);margin-top:.2rem}
.prog-index__icon{width:2.5rem;height:2.5rem;border:1px solid var(--line-dark);border-radius:50%;display:grid;place-items:center;color:var(--gold);transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s}
.prog-index a:hover .prog-index__name{color:var(--gold)}
.prog-index a:hover .prog-index__icon{background:var(--gold);color:var(--ink);border-color:var(--gold)}
@media (min-width:56em){.prog-index{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-6)}}
.split-head{display:grid;gap:var(--space-4);margin-bottom:var(--space-6)}
.split-head h2{font-size:var(--t-h2);margin:0}
.split-head p{margin:0;max-width:30rem}
@media (min-width:56em){.split-head{grid-template-columns:1fr 1fr;align-items:end}}

/* ——— Program flyer ——— */
.flyer{display:grid;gap:var(--space-6);align-items:center}
.flyer__fig{margin:0}
.flyer__fig img{width:100%;border-radius:var(--radius);box-shadow:0 1px 0 var(--line),0 24px 48px -24px rgba(9,9,9,.45)}
.flyer__fig figcaption{font-size:var(--t-sm);color:var(--stone);margin-top:.75rem}
.on-dark .flyer__fig figcaption{color:var(--stone-dark)}
.flyer__copy h2{font-size:var(--t-h2)}
@media (min-width:60em){.flyer{grid-template-columns:1.35fr 1fr;gap:var(--space-7)}}

/* ——— FAQ ——— */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 0;font-family:var(--f-display);font-size:var(--t-h4);line-height:1.25;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:.7rem;height:.7rem;border-right:2px solid var(--gold-deep);border-bottom:2px solid var(--gold-deep);transform:rotate(45deg);transition:transform .25s var(--ease);margin-right:.3rem}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details>div{padding:0 0 1.25rem;max-width:44rem}

/* ——— Beliefs ——— */
.beliefs{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.beliefs li{font-family:var(--f-display);font-size:var(--t-h3);line-height:1.2;padding:1.25rem 0;border-bottom:1px solid var(--line)}
@media (min-width:56em){.beliefs{grid-template-columns:1fr 1fr;column-gap:var(--space-6)}}

.pull{font-family:var(--f-display);font-size:var(--t-h2);line-height:1.12;margin:0;max-width:22ch}
.pull span{display:block}
.pull span:nth-child(2){color:var(--gold-deep)}
.on-dark .pull span:nth-child(2){color:var(--gold)}

/* ——— Get involved paths ——— */
.paths{list-style:none;display:grid;gap:0;border-top:2px solid var(--ink)}
.path{display:grid;gap:.75rem;padding:var(--space-5) 0;border-bottom:1px solid var(--line)}
.path h3{font-size:var(--t-h3);margin:0}
.path p{margin:0;max-width:34rem}
.path__go{justify-self:start}
@media (min-width:56em){.path{grid-template-columns:minmax(12rem,18rem) 1fr 13rem;align-items:center;gap:var(--space-5)}.path__go{justify-self:end}}

/* ——— Team ——— */
.team{list-style:none;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:1fr}
.member{background:var(--paper);padding:var(--space-5);display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}
.member__mono{width:3.25rem;height:3.25rem;border-radius:50%;background:var(--ink);color:var(--gold);display:grid;place-items:center;font-family:var(--f-display);font-size:1.25rem}
.member__name{font-family:var(--f-display);font-size:var(--t-h4);margin:0;line-height:1.2}
.member__role{margin:0;color:var(--stone);font-size:var(--t-sm)}
.member__tel{grid-column:2;font-weight:600;margin:0}
@media (min-width:40em){.team{grid-template-columns:1fr 1fr}}
@media (min-width:64em){.team{grid-template-columns:repeat(4,1fr)}.member{grid-template-columns:1fr;align-items:start}.member__tel{grid-column:1}}

/* ——— Closing CTA ——— */
.closing{background:var(--ink);color:var(--white);position:relative;overflow:hidden}
.closing__grid{display:grid;gap:var(--space-6)}
.closing h2{font-size:var(--t-h1);max-width:14ch;margin:0}
.closing__lines{display:grid;gap:var(--space-4);align-content:end}
.closing__big{display:block;font-family:var(--f-display);font-size:var(--t-h2);color:var(--gold);text-decoration:none;line-height:1.05}
.closing__big:hover{color:var(--gold-bright);text-decoration:underline;text-decoration-thickness:2px}
.closing__email{font-size:var(--t-lead);word-break:break-word}
@media (min-width:56em){.closing__grid{grid-template-columns:1.2fr 1fr;align-items:end}}

/* ——— Programs page ——— */
.jump{position:sticky;top:var(--header-h);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.jump__list{list-style:none;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:thin;padding-block:.6rem;-webkit-overflow-scrolling:touch}
.jump__list a{display:block;white-space:nowrap;padding:.5rem .8rem;border-radius:999px;font-size:var(--t-sm);font-weight:600;color:var(--ink);text-decoration:none;border:1px solid transparent}
.jump__list a:hover{border-color:var(--line)}
.jump__list a.is-active{background:var(--ink);color:var(--gold)}
.service{display:grid;gap:var(--space-4);padding-block:var(--space-7);border-bottom:1px solid var(--line)}
.service:last-of-type{border-bottom:0}
.service__head h2{font-size:var(--t-h2);margin-bottom:.3em}
.service__head p{max-width:32rem}
.service__goal{margin:var(--space-4) 0 0;padding:1rem 1.15rem;background:var(--ink);color:var(--white);border-left:4px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;max-width:34rem}
.service__goal strong{color:var(--gold);font-weight:600}
.service__body .check-list{margin-top:0}
.service__body .note{font-size:var(--t-sm);color:var(--stone);margin-top:var(--space-3)}
@media (min-width:56em){.service{grid-template-columns:1fr 1.15fr;gap:var(--space-7);align-items:start}.service__head{position:sticky;top:calc(var(--header-h) + 5rem)}}

.cols{display:grid;gap:var(--space-6)}
@media (min-width:56em){.cols{grid-template-columns:1fr 1fr;gap:var(--space-7)}}
.cols h2{font-size:var(--t-h3)}

.notice{border:1px solid var(--line);background:var(--white);padding:var(--space-5);border-radius:var(--radius)}
.notice h2,.notice h3{font-size:var(--t-h4)}
.notice p:last-child{margin:0}
.on-dark .notice{background:var(--ink-2);border-color:var(--line-dark)}

/* ——— Contact ——— */
.contact-grid{display:grid;gap:var(--space-7)}
@media (min-width:60em){.contact-grid{grid-template-columns:.85fr 1.15fr;gap:var(--space-7)}}
.reach{list-style:none;display:grid;gap:0;border-top:2px solid var(--ink)}
.reach li{padding:1.1rem 0;border-bottom:1px solid var(--line)}
.reach__who{display:block;font-size:var(--t-sm);color:var(--stone)}
.reach__how{font-family:var(--f-display);font-size:var(--t-h4);color:var(--ink);text-decoration:none;word-break:break-word}
.reach__how:hover{text-decoration:underline;text-decoration-color:var(--gold-deep)}
.form-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.25rem,1rem + 2vw,2.5rem)}
.form-card h2{font-size:var(--t-h3)}

/* ——— Forms ——— */
.field{display:grid;gap:.35rem;margin-bottom:1.1rem}
.field label,.fieldset legend{font-weight:600;font-size:.9375rem}
.field .hint{font-size:var(--t-sm);color:var(--stone);margin:0}
.req{color:var(--danger);font-weight:700}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;min-height:48px;padding:.7rem .85rem;border:1.5px solid #8f887b;border-radius:var(--radius);background:var(--white);color:var(--ink);font:inherit;font-size:1rem}
textarea{min-height:9rem;resize:vertical;line-height:1.5}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23090909' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.5rem}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold-deep);outline-offset:1px;border-color:var(--ink)}
[aria-invalid="true"]{border-color:var(--danger)!important;box-shadow:0 0 0 1px var(--danger)}
.field__error{color:var(--danger);font-size:var(--t-sm);font-weight:600;margin:0}
.field__error:not([hidden])::before{content:"! ";}
.fieldset{border:0;padding:0;margin:0 0 1.1rem}
.fieldset legend{padding:0;margin-bottom:.5rem}
.choices{display:flex;flex-wrap:wrap;gap:.5rem}
.choice{position:relative}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice label{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1rem;border:1.5px solid #8f887b;border-radius:999px;cursor:pointer;font-size:.9375rem}
.choice input:checked+label{background:var(--ink);color:var(--gold);border-color:var(--ink)}
.choice input:focus-visible+label{outline:3px solid var(--gold-deep);outline-offset:2px}
.check{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;margin:.25rem 0 .9rem;font-size:var(--t-sm)}
.check input{width:1.35rem;height:1.35rem;margin:.1rem 0 0;accent-color:var(--ink)}
.form-privacy{font-size:var(--t-sm);background:var(--paper);border-left:3px solid var(--gold-deep);padding:.85rem 1rem;margin:0 0 1.25rem}
.form-status{margin:.9rem 0 0;font-weight:600;font-size:var(--t-sm)}
.form-status:empty{display:none}
.form-status[data-state="error"]{color:var(--danger)}
.form-status[data-state="success"]{color:var(--ok)}
.form-success{padding:var(--space-5);background:var(--ink);color:var(--white);border-radius:var(--radius);border-left:4px solid var(--gold)}
.form-success h3{color:var(--gold);font-size:var(--t-h3)}
.form-success p:last-child{margin:0}

/* Dark variants (footer + modal) */
.field--dark label{color:var(--white)}
.field--dark input{background:var(--ink-2);color:var(--white);border-color:#6d665a}
.field--dark input:focus-visible{outline-color:var(--gold-bright);border-color:var(--gold)}
.check--dark{color:#ddd7cb}
.check--dark input{accent-color:var(--gold)}
.site-footer .field__error,.nl-modal .field__error,.on-dark .field__error{color:var(--danger-dark)}
.site-footer [aria-invalid="true"],.nl-modal [aria-invalid="true"]{border-color:var(--danger-dark)!important;box-shadow:0 0 0 1px var(--danger-dark)}
.site-footer .form-status[data-state="error"],.nl-modal .form-status[data-state="error"]{color:var(--danger-dark)}
.site-footer .form-status[data-state="success"],.nl-modal .form-status[data-state="success"]{color:var(--ok-dark)}

/* ——— Footer ——— */
.site-footer{background:var(--ink);color:#ddd7cb;border-top:1px solid var(--line-dark);padding-top:var(--space-7);font-size:var(--t-sm)}
.site-footer a{color:var(--white)}
.site-footer a:hover{color:var(--gold)}
.site-footer__grid{display:grid;gap:var(--space-6)}
.site-footer__word{font-family:var(--f-display);font-size:2.2rem;line-height:1;color:var(--white);margin:0 0 .4rem}
.site-footer__word i{font-style:normal;color:var(--gold)}
.site-footer__prog{color:var(--gold);font-weight:600;margin:0}
.site-footer__motto{color:var(--white);font-weight:600;letter-spacing:.04em;margin:0}
.site-footer__tag{margin-top:var(--space-3);max-width:22rem;color:var(--stone-dark)}
.site-footer__h{font-family:var(--f-body);font-size:var(--t-sm);font-weight:700;color:var(--gold);margin-bottom:.9rem;letter-spacing:.02em}
.site-footer ul{list-style:none;display:grid;gap:.6rem}
.site-footer__news p{color:var(--stone-dark)}
.site-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:var(--space-7);padding-block:var(--space-4);border-top:1px solid var(--line-dark);color:var(--stone-dark);font-size:var(--t-xs)}
.site-footer__base p{margin:0}
@media (min-width:44em){.site-footer__grid{grid-template-columns:1fr 1fr}}
@media (min-width:64em){.site-footer__grid{grid-template-columns:1.1fr .7fr 1fr 1.3fr}}

/* ——— Newsletter modal ——— */
.nl-modal{border:0;padding:0;margin:auto;width:min(30rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);background:transparent;color:var(--white);overflow:visible}
.nl-modal::backdrop{background:rgba(9,9,9,.72);backdrop-filter:blur(2px)}
.nl-modal__inner{position:relative;background:var(--ink);border:1px solid #3a342a;border-top:4px solid var(--gold);border-radius:var(--radius);padding:2.25rem clamp(1.25rem,1rem + 2vw,2.25rem) 1.5rem;max-height:calc(100dvh - 2rem);overflow-y:auto}
.nl-modal__kicker{font-size:var(--t-xs);font-weight:600;color:var(--gold);letter-spacing:.06em;margin-bottom:.75rem}
.nl-modal__title{font-size:clamp(1.75rem,1.4rem + 1.6vw,2.4rem);color:var(--white);margin-bottom:.4em}
.nl-modal__desc{color:#ddd7cb}
.nl-modal__close{position:absolute;top:.6rem;right:.6rem;width:44px;height:44px;display:grid;place-items:center;background:transparent;border:0;border-radius:50%;color:var(--white);cursor:pointer}
.nl-modal__close:hover{background:var(--ink-3);color:var(--gold)}
.nl-modal__later{display:block;margin:.75rem auto 0;background:none;border:0;color:var(--stone-dark);font:500 var(--t-sm) var(--f-body);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;min-height:44px;padding:0 1rem}
.nl-modal__later:hover{color:var(--white)}
.nl-modal a{color:var(--gold)}
@media (prefers-reduced-motion:no-preference){
  .nl-modal[open]{animation:modalIn .5s var(--ease)}
  .nl-modal[open]::backdrop{animation:fade .4s var(--ease)}
}
@keyframes modalIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* ——— Reveal (used on a few key blocks only) ——— */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .js [data-reveal].is-in{opacity:1;transform:none}
}

/* ——— Prose (privacy etc.) ——— */
.prose{max-width:44rem}
.prose h2{font-size:var(--t-h3);margin-top:1.6em}
.prose ul{padding-left:1.25rem;margin-bottom:1em}
.prose li{margin-bottom:.4em}

/* ——— 404 ——— */
.lost{min-height:60vh;display:grid;align-content:center}
.lost h1{font-size:var(--t-h1)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
@media print{.site-header,.site-footer,.nl-modal,.jump{display:none}body{background:#fff}.on-dark,.hero,.page-hero,.pillars,.closing{background:#fff;color:#000}}
