/* ILCL — redesigned site stylesheet.
   Built on the ILCL design system (tokens, type, components). Shared by every page under /redesign.
   Paths to images are relative to /redesign; see README.md in this folder for promotion notes. */

/* ───────────── Tokens ───────────── */
:root{
  /* Brand — same names and values as index.html */
  --navy:#1C2951;
  --navy-mid:#243363;
  --navy-light:#2D3F7A;
  --gold:#C9A664;
  --gold-light:#E2C98A;
  --gold-pale:#F5EDD8;
  --white:#FFFFFF;
  --off-white:#FAFAF8;
  --warm-gray:#F4F2EE;
  --warm-gray-2:#E8E4DC;
  --text-primary:var(--navy);
  --text-secondary:#3D4A6B;
  --text-muted:#7A849E;
  --border:rgba(28,41,81,.1);
  --border-gold:rgba(201,166,100,.25);

  /* Contrast-safe additions (design system "Added" tokens) */
  --gold-deep:#85652A;          /* gold text on light grounds */
  --text-muted-aa:#5F6985;      /* readable muted text */
  --on-navy-muted:#BFC3CE;      /* body copy on navy */
  --on-navy-subtle:#A4A9B9;     /* fine print on navy */
  --focus-ring:var(--navy);
  --focus-ring-on-navy:var(--gold);
  --whatsapp:#25D366;

  --font-serif:"Cormorant Garamond",serif;
  --font-sans:"DM Sans",sans-serif;

  --gutter:max(5%,1.25rem);
  --container:1240px;

  --radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-card:14px;
  --radius-xl:16px;--radius-2xl:18px;--radius-3xl:20px;--radius-pill:30px;--radius-full:50%;

  --shadow-panel:0 4px 30px rgba(28,41,81,.07);
  --shadow-card-hover:0 8px 30px rgba(28,41,81,.09);
  --shadow-card-lift:0 12px 35px rgba(28,41,81,.08);
  --shadow-popup:0 12px 48px rgba(28,41,81,.45);

  --header-h:76px;
}

/* ───────────── Base ───────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--text-primary);background:var(--white);overflow-x:hidden}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit}
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}
.on-navy :where(a,button,summary,[tabindex]):focus-visible{outline-color:var(--focus-ring-on-navy)}
[hidden]{display:none!important}

.sprite{position:absolute;width:0;height:0;overflow:hidden}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:var(--gutter);top:-4rem;z-index:2000;padding:.7rem 1.1rem;background:var(--navy);color:var(--white);border-radius:var(--radius-md);text-decoration:none;font-weight:500;transition:top .2s}
.skip-link:focus{top:.75rem}

.container{width:100%;max-width:calc(var(--container) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:clamp(3.5rem,8vw,6.5rem)}
.section--tint{background:var(--off-white)}
.section--warm{background:var(--warm-gray)}
.on-navy{background:var(--navy);color:var(--white)}

.icon{width:1.5rem;height:1.5rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.icon--fill{fill:currentColor;stroke:none}
.icon--sm{width:1.125rem;height:1.125rem}

/* ───────────── Type ───────────── */
.eyebrow{display:inline-flex;align-items:center;gap:.65rem;margin-bottom:1rem;font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep)}
.eyebrow::before{content:"";width:1.5rem;height:1px;background:var(--gold)}
.title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,3.7vw,3.1rem);line-height:1.12;letter-spacing:-.005em;color:var(--navy)}
.title em{font-style:italic;color:var(--gold-deep)}
.lede{margin-top:1rem;max-width:36rem;font-size:1.0625rem;font-weight:300;line-height:1.75;color:var(--text-secondary)}
.on-navy .eyebrow{color:var(--gold)}
.on-navy .title{color:var(--white)}
.on-navy .title em{color:var(--gold)}
.on-navy .lede{color:var(--on-navy-muted)}
.title+.prose{margin-top:1.5rem}
.prose+.check-list{margin-top:1.75rem}
.prose p{font-size:1rem;font-weight:300;line-height:1.85;color:var(--text-secondary)}
.prose p+p{margin-top:1.15rem}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem 3rem;margin-bottom:clamp(2rem,4vw,3.25rem)}
.section-head--center{flex-direction:column;align-items:center;text-align:center}
.section-head--center .lede{margin-inline:auto}

/* ───────────── Buttons, chips, tags ───────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.9rem;padding:.8rem 1.6rem;border:1.5px solid transparent;border-radius:var(--radius-md);font:500 .9375rem/1.3 var(--font-sans);text-decoration:none;cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s}
.btn .icon{width:1rem;height:1rem;transition:transform .2s}
.btn:hover .icon--arrow{transform:translateX(4px)}
.btn--primary{background:var(--navy);color:var(--white)}
.btn--primary:hover{background:var(--navy-light);transform:translateY(-2px)}
.btn--outline{background:transparent;color:var(--navy);border-color:var(--border-gold)}
.btn--outline:hover{background:var(--gold-pale);border-color:var(--gold)}
.btn--gold{background:var(--gold);color:var(--navy);font-weight:600}
.btn--gold:hover{background:var(--gold-light);transform:translateY(-2px)}
.btn--ghost-navy{background:transparent;color:var(--on-navy-muted);border-color:var(--on-navy-subtle)}
.btn--ghost-navy:hover{color:var(--white);border-color:var(--white)}
.btn--whatsapp{background:var(--whatsapp);color:var(--navy)}
.btn--whatsapp:hover{transform:translateY(-1px);text-decoration:underline}
.btn--sm{min-height:2.5rem;padding:.55rem 1.3rem;border-radius:var(--radius-sm);font-size:.8125rem}
.btn--block{width:100%}
.btn[disabled]{opacity:.6;cursor:not-allowed;transform:none}

.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem 1rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-pill);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.badge__dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--gold)}
.tag-list{display:flex;flex-wrap:wrap;gap:.375rem}
a.tag{text-decoration:none}
.tag{display:inline-block;padding:.25rem .65rem;background:var(--warm-gray);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:.6875rem;line-height:1.6;color:var(--text-secondary)}
.chip{min-height:2.5rem;padding:.45rem 1.15rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-3xl);font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--gold)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--white)}

.check-list{display:grid;gap:.85rem}
.check-list li{display:flex;align-items:flex-start;gap:.8rem;font-size:.9375rem;color:var(--text-secondary)}
.check-list .icon{width:1.375rem;height:1.375rem;padding:.2rem;margin-top:.1rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-full);color:var(--navy);stroke-width:2.2}

/* decorative nested arcs (echoes the monogram's nested "C") */
.arcs{position:absolute;aspect-ratio:1/2;height:auto;pointer-events:none;color:var(--gold);opacity:.4;fill:none;stroke:currentColor;stroke-width:1.5}

/* ───────────── Header ───────────── */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.is-scrolled{border-bottom-color:var(--border);box-shadow:var(--shadow-panel)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand__logo{width:150px;height:58px;object-fit:cover}
.brand__name{font-family:var(--font-serif);font-size:.95rem;font-weight:600;line-height:1.25;letter-spacing:.01em;color:var(--navy)}
.nav__links{display:flex;align-items:center;gap:clamp(1.1rem,2.2vw,2.1rem)}
.nav__links a{position:relative;padding-block:.5rem;font-size:.8438rem;color:var(--text-secondary);text-decoration:none;transition:color .2s}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:.15rem;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav__links a:hover{color:var(--navy)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__toggle{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:none;border:0;border-radius:var(--radius-md);color:var(--navy);cursor:pointer}
.nav__toggle .icon{width:1.5rem;height:1.5rem}
.nav__toggle .icon--close{display:none}
.nav__toggle[aria-expanded="true"] .icon--menu{display:none}
.nav__toggle[aria-expanded="true"] .icon--close{display:block}
.mobile-menu{display:none;position:absolute;left:0;right:0;top:100%;padding:1rem var(--gutter) 1.5rem;background:var(--navy);box-shadow:0 18px 40px rgba(28,41,81,.35)}
.mobile-menu.is-open{display:block}
.mobile-menu a{display:block;padding:.95rem 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:1rem;color:var(--on-navy-muted);text-decoration:none}
.mobile-menu a:hover{color:var(--white)}
.mobile-menu .btn{margin-top:1.1rem;border-bottom:0;color:var(--navy)}

/* ───────────── Hero ───────────── */
.hero{position:relative;padding-block:clamp(2rem,5vw,4.5rem) clamp(3.5rem,8vw,6.5rem);overflow:hidden}
.hero__bg{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(28,41,81,.055) 1px,transparent 1.5px);background-size:28px 28px;mask-image:linear-gradient(to bottom,#000 0%,transparent 85%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 85%);pointer-events:none}
.hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:center;gap:clamp(2.5rem,6vw,5.5rem)}
.hero__title{margin:1.6rem 0 1.4rem;font-family:var(--font-serif);font-weight:400;font-size:clamp(2.7rem,5.7vw,5rem);line-height:1.03;letter-spacing:-.012em;color:var(--navy)}
.hero__title em{font-style:italic;color:var(--gold-deep)}
.hero__sub{max-width:34rem;margin-bottom:2.2rem;font-size:1.0938rem;font-weight:300;line-height:1.8;color:var(--text-secondary)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem 1.1rem}
.hero__trust{display:flex;flex-wrap:wrap;gap:.7rem 1.75rem;margin-top:2.75rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.8125rem;color:var(--text-muted-aa)}
.hero__trust li{display:flex;align-items:center;gap:.5rem}
.hero__trust .icon{width:1rem;height:1rem;color:var(--gold-deep);stroke-width:2.2}

.hero__visual{position:relative;width:100%;max-width:31rem;margin-left:auto;aspect-ratio:4/5}
.arch{border-radius:50% 50% var(--radius-2xl) var(--radius-2xl)/40% 40% var(--radius-2xl) var(--radius-2xl)}
.hero__ring{position:absolute;border:1.5px solid var(--gold)}
.hero__ring--1{inset:-.9rem;opacity:.6}
.hero__ring--2{inset:-1.8rem;opacity:.32}
.hero__frame{position:absolute;inset:0;overflow:hidden;background:var(--gold-pale);box-shadow:var(--shadow-card-lift)}
.hero__frame img{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%}
.hero__frame img.is-scene{object-fit:cover;object-position:60% 50%}
.hero__frame img.is-low{height:106%;bottom:-7%;transform:scale(1.18);transform-origin:72% 100%}
.hero__frame img.is-fill{object-fit:cover;object-position:50% 100%}
.hero__note{position:absolute;left:-1.5rem;bottom:2.25rem;display:flex;align-items:center;gap:.8rem;max-width:17rem;padding:.85rem 1.1rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card-lift)}
.hero__note-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;flex:none;background:var(--navy);border-radius:var(--radius-full);color:var(--gold)}
.hero__note-mark .icon{width:1.05rem;height:1.05rem}
.hero__note strong{display:block;font-size:.8438rem;font-weight:600;color:var(--navy)}
.hero__note span{display:block;font-size:.75rem;line-height:1.45;color:var(--text-muted-aa)}

@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.js .hero__content>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.js .hero__content>:nth-child(2){animation-delay:.08s}
.js .hero__content>:nth-child(3){animation-delay:.18s}
.js .hero__content>:nth-child(4){animation-delay:.28s}
.js .hero__content>:nth-child(5){animation-delay:.4s}
.js .hero__visual{animation:rise .9s cubic-bezier(.2,.7,.2,1) .2s both}

/* ───────────── Stats ───────────── */
.stats{padding-block:clamp(2.25rem,5vw,3.5rem)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:.5rem 1.25rem;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.stat:last-child{border-right:0}
.stat__num{font-family:var(--font-serif);font-size:clamp(2.4rem,4.4vw,3.4rem);font-weight:400;line-height:1;font-variant-numeric:lining-nums;color:var(--gold)}
.stat__label{margin-top:.55rem;font-size:.75rem;letter-spacing:.06em;color:var(--on-navy-muted)}

/* ───────────── About ───────────── */
.about__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.about__copy{position:sticky;top:calc(var(--header-h) + 2rem)}
.pullquote{margin-top:2rem;padding-left:1.4rem;border-left:2px solid var(--gold);font-family:var(--font-serif);font-size:1.5rem;font-style:italic;line-height:1.5;color:var(--navy)}
.women-led{display:flex;align-items:flex-start;gap:1rem;margin-top:2.25rem;padding:1.15rem 1.35rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-xl)}
.women-led .icon{width:1.25rem;height:1.25rem;margin-top:.15rem;color:var(--gold-deep)}
.women-led p{font-size:.875rem;line-height:1.65;color:var(--navy)}
.women-led strong{font-weight:700}
.people{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.person{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;transition:transform .3s,box-shadow .3s}
.person:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.person__photo{position:relative;margin:.75rem .75rem 0;aspect-ratio:5/5.4;overflow:hidden;background:var(--gold-pale);border-radius:50% 50% var(--radius-lg) var(--radius-lg)/36% 36% var(--radius-lg) var(--radius-lg)}
.person__photo img{width:100%;height:100%;object-fit:cover}
.person__body{display:flex;flex:1;flex-direction:column;padding:1.25rem 1.4rem 1.5rem}
.person__role{margin-bottom:.35rem;font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.person__name{font-family:var(--font-serif);font-size:1.55rem;font-weight:500;line-height:1.15;color:var(--navy)}
.person__bio{margin:.75rem 0 1rem;font-size:.84rem;line-height:1.7;color:var(--text-secondary)}
.person .tag-list{margin-top:auto}
.team{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:.25rem}
.team__label{grid-column:1/-1;display:flex;align-items:center;gap:1rem;font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted-aa)}
.team__label::after{content:"";flex:1;height:1px;background:var(--border)}
.team__item{position:relative;aspect-ratio:4/4.4;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--warm-gray)}
.team__item img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform .6s}
.team__item:hover img{transform:scale(1.04)}
.team__item figcaption{position:absolute;left:.7rem;right:.7rem;bottom:.7rem;padding:.55rem .8rem;background:var(--navy);border-radius:var(--radius-md);font-size:.78rem;font-weight:500;text-align:center;color:var(--white)}

/* ───────────── Programs ───────────── */
.filter{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.filter__label{margin-right:.4rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted-aa)}
.programs__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.program{position:relative;display:flex;flex-direction:column;overflow:hidden;padding:1.9rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);transition:transform .3s,box-shadow .3s,border-color .3s}
.program::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.program:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-lift);border-color:var(--border-gold)}
.program:hover::after{transform:scaleX(1)}
.program__icon{display:grid;place-items:center;width:3rem;height:3rem;margin-bottom:1.25rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-full);color:var(--gold-deep)}
.program__cat{margin-bottom:.4rem;font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep)}
.program__name{margin-bottom:.7rem;font-family:var(--font-serif);font-size:1.4rem;font-weight:500;line-height:1.2;color:var(--navy)}
.program__desc{margin-bottom:1.25rem;font-size:.84rem;line-height:1.7;color:var(--text-muted-aa)}
.program .tag-list{margin-top:auto}
.program--lead{background:var(--navy);border-color:var(--navy);color:var(--white)}
.program--lead .program__icon{background:rgba(255,255,255,.08);border-color:var(--border-gold);color:var(--gold)}
.program--lead .program__cat{color:var(--gold)}
.program--lead .program__name{color:var(--white)}
.program--lead .program__desc{color:var(--on-navy-muted)}
.program--lead .tag{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:var(--on-navy-muted)}
.program--lead:hover{border-color:var(--gold)}
.programs__empty{padding:2rem 0;color:var(--text-muted-aa)}

/* ───────────── Pathways ───────────── */
.pathways{overflow:hidden}
.pathways .arcs{right:0;top:1.5rem;width:min(13rem,26%)}
.pathways__grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden;background:rgba(255,255,255,.1);border-radius:var(--radius-card)}
.path{padding:2.1rem 1.75rem 2.25rem;background:var(--navy);transition:background .3s}
.path:hover{background:var(--navy-mid)}
.path__num{margin-bottom:1.1rem;font-family:var(--font-serif);font-size:3rem;line-height:1;font-variant-numeric:lining-nums;color:var(--gold);opacity:.7}
.path__name{margin-bottom:.65rem;font-family:var(--font-serif);font-size:1.3rem;font-weight:500;line-height:1.2;color:var(--white)}
.path__desc{font-size:.84rem;line-height:1.75;color:var(--on-navy-muted)}

/* ───────────── Online (global) ───────────── */
.global__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.global__quote{margin-top:2rem;font-family:var(--font-serif);font-size:1.45rem;font-style:italic;line-height:1.45;color:var(--navy)}
.global-card{position:relative;overflow:hidden;padding:clamp(2rem,4vw,2.75rem);background:var(--navy);border-radius:var(--radius-2xl);color:var(--white)}
.global-card .arcs{right:-1px;bottom:-5rem;width:7.5rem}
.global-card__title{position:relative;margin-bottom:.8rem;font-family:var(--font-serif);font-size:1.9rem;font-weight:400;line-height:1.15;color:var(--gold)}
.global-card p{position:relative;font-size:.9375rem;line-height:1.75;color:var(--on-navy-muted)}
.global-card .tag-list{position:relative;margin:1.5rem 0 1.75rem}
.global-card .tag{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:var(--on-navy-muted)}
.global-card .btn{position:relative}

/* ───────────── Timetable ───────────── */
.timetable__panel{overflow:hidden;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-panel)}
.timetable__panel iframe{width:100%;height:30rem;border:0;background:var(--off-white)}
.timetable__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem;padding:1.4rem 1.75rem;background:var(--off-white);border-top:1px solid var(--border)}
.hours{display:grid;gap:.15rem;font-size:.84rem;color:var(--text-secondary)}
.hours strong{font-weight:600;color:var(--navy)}
.hours small{margin-top:.35rem;font-size:.75rem;color:var(--text-muted-aa)}

/* ───────────── Reviews ───────────── */
.reviews__widget{min-height:12rem}

/* ───────────── Gallery ───────────── */
.gallery__bar{display:flex;gap:.6rem}
.round-btn{display:grid;place-items:center;width:2.9rem;height:2.9rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--navy);cursor:pointer;transition:background .2s,border-color .2s}
.round-btn:hover{background:var(--gold-pale);border-color:var(--gold)}
.gallery__track{display:flex;gap:1.25rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:thin}
.reel{position:relative;flex:none;height:min(22rem,64vw);padding:0;overflow:hidden;background:var(--navy);border:0;border-radius:var(--radius-xl);cursor:pointer;scroll-snap-align:start;text-align:left}
.reel--wide{aspect-ratio:16/9}
.reel--tall{aspect-ratio:9/16}
.reel img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.reel:hover img{transform:scale(1.04)}
.reel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(28,41,81,.85),transparent 55%)}
.reel__play{position:absolute;top:50%;left:50%;z-index:1;display:grid;place-items:center;width:3.6rem;height:3.6rem;background:var(--gold);border-radius:var(--radius-full);color:var(--navy);transform:translate(-50%,-50%);transition:transform .3s}
.reel:hover .reel__play{transform:translate(-50%,-50%) scale(1.12)}
.reel__play .icon{width:1.3rem;height:1.3rem;margin-left:.15rem}
.reel__title{position:absolute;left:1.1rem;right:1.1rem;bottom:1rem;z-index:1;font-size:.9375rem;font-weight:500;color:var(--white)}
.video-dialog{width:min(56rem,94vw);max-height:94vh;padding:0;overflow:visible;background:transparent;border:0}
.video-dialog::backdrop{background:rgba(10,16,38,.88)}
.video-dialog__box{position:relative;overflow:hidden;background:#000;border-radius:var(--radius-xl)}
.video-dialog__frame{aspect-ratio:16/9;width:100%}
.video-dialog__frame.is-tall{aspect-ratio:9/16;max-width:min(26rem,100%);max-height:82vh;margin-inline:auto}
.video-dialog__frame iframe{width:100%;height:100%;border:0}
.video-dialog__close{position:absolute;top:.75rem;right:.75rem;z-index:2;display:grid;place-items:center;width:2.75rem;height:2.75rem;background:var(--white);border:0;border-radius:var(--radius-full);color:var(--navy);cursor:pointer}

/* ───────────── FAQ ───────────── */
.faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.faq__aside{position:sticky;top:calc(var(--header-h) + 2rem)}
.faq__aside .btn{margin-top:1.75rem}
.faq__list{display:grid;gap:.75rem}
.faq-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s,box-shadow .2s}
.faq-item[open]{border-color:var(--border-gold);box-shadow:var(--shadow-panel)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.4rem;font-size:1rem;font-weight:500;line-height:1.4;color:var(--navy);cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";display:grid;place-items:center;width:1.75rem;height:1.75rem;flex:none;background:var(--warm-gray);border-radius:var(--radius-full);font-size:1.2rem;line-height:1;color:var(--gold-deep);transition:transform .3s,background .3s}
.faq-item[open] summary::after{background:var(--gold-pale);transform:rotate(45deg)}
.faq-item p{padding:0 1.4rem 1.3rem;font-size:.9375rem;font-weight:300;line-height:1.75;color:var(--text-secondary)}

/* ───────────── Blog teaser ───────────── */
.blog__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.topic{position:relative;display:flex;flex-direction:column;gap:1.5rem;min-height:13rem;padding:1.9rem;overflow:hidden;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s}
.topic:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-lift);border-color:var(--gold)}
.topic__cat{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.topic__title{font-family:var(--font-serif);font-size:1.45rem;font-weight:500;line-height:1.25;color:var(--navy)}
.topic__more{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;font-size:.84rem;font-weight:500;color:var(--gold-deep)}
.topic__more .icon{width:1rem;height:1rem;transition:transform .2s}
.topic:hover .topic__more .icon{transform:translateX(4px)}
.blog__cta{margin-top:2.25rem}

/* ───────────── Contact ───────────── */
.contact__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.contact-list{display:grid;gap:1.25rem;margin-top:2.25rem}
.contact-item{display:flex;align-items:flex-start;gap:1rem}
.contact-item__icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex:none;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--navy)}
.contact-item__label{display:block;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted-aa)}
.contact-item__value{display:block;margin-top:.1rem;font-size:.9375rem;color:var(--navy)}
.contact-item a{text-decoration:none}
.contact-item a:hover{color:var(--gold-deep)}
.contact-item__phone{display:block;font-family:var(--font-serif);font-size:2rem;font-weight:500;line-height:1.1;letter-spacing:.01em;font-variant-numeric:lining-nums}
.socials{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}
.social{display:inline-flex;align-items:center;gap:.55rem;min-height:2.6rem;padding:.5rem 1rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.8125rem;color:var(--text-secondary);text-decoration:none;transition:border-color .2s,color .2s,transform .2s}
.social:hover{border-color:var(--gold);color:var(--navy);transform:translateY(-2px)}
.social .icon{width:1.1rem;height:1.1rem}
.cta-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:1.75rem;padding:clamp(1.75rem,4vw,2.75rem);background:var(--navy);border-radius:var(--radius-2xl);color:var(--white)}
.cta-card .arcs{right:-1px;top:-2.5rem;width:6.5rem}
.cta-card__eyebrow{position:relative;font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.cta-card__title{position:relative;margin-top:.7rem;font-family:var(--font-serif);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:400;line-height:1.15;color:var(--white)}
.cta-card__title em{font-style:italic;color:var(--gold)}
.cta-card__desc{position:relative;margin:.9rem 0 1.4rem;font-size:.9375rem;line-height:1.75;color:var(--on-navy-muted)}
.cta-card__direct{position:relative;display:grid;gap:.75rem}
.cta-row{display:flex;align-items:center;gap:.95rem;padding:1rem 1.25rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);color:var(--white);text-decoration:none;transition:background .2s}
.cta-row:hover{background:rgba(255,255,255,.1)}
.cta-row .icon{width:1.5rem;height:1.5rem}
.cta-row .icon--wa{color:var(--whatsapp)}
.cta-row .icon--mail{color:var(--gold)}
.cta-row small{display:block;font-size:.6875rem;color:var(--on-navy-muted)}
.cta-row b{font-size:.9375rem;font-weight:500}
.location{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:clamp(3rem,6vw,4.5rem)}
.location__photo,.location__map{position:relative;min-height:22rem;overflow:hidden;border-radius:var(--radius-2xl)}
.location__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.location__photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1.5rem 1.25rem;background:linear-gradient(transparent,rgba(28,41,81,.88));color:var(--white)}
.location__photo strong{display:block;font-size:.84rem;font-weight:500}
.location__photo span{display:block;margin-top:.15rem;font-size:.78rem;color:var(--on-navy-muted)}
.location__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.location__map .btn{position:absolute;right:1rem;bottom:1rem}

/* ───────────── Footer ───────────── */
.site-footer{padding-block:clamp(3rem,6vw,4.5rem) 1.75rem}
.footer__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(2rem,4vw,3rem);padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.1)}
.footer__logo{width:170px;height:66px;margin-bottom:1rem;object-fit:cover}
.footer__brand p{max-width:17rem;font-size:.84rem;line-height:1.75;color:var(--on-navy-muted)}
.site-footer h3{margin-bottom:1.1rem;font-family:var(--font-sans);font-size:.625rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--on-navy-subtle)}
.site-footer ul{display:grid;gap:.6rem}
.site-footer a{font-size:.84rem;color:var(--on-navy-muted);text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--gold)}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;padding-top:1.75rem;font-size:.72rem;color:var(--on-navy-subtle)}
.footer__legal{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}
.footer__legal a{font-size:.72rem;color:var(--gold)}
.footer__legal a:hover{text-decoration:underline}
.footer__credit{margin-top:1.1rem;font-size:.72rem;color:var(--on-navy-subtle)}
.footer__credit a{font-size:.72rem;color:var(--on-navy-muted)}

/* ───────────── Floating UI ───────────── */
.wa-float{position:fixed;right:1.5rem;bottom:1.5rem;z-index:997;display:inline-flex;align-items:center;gap:.6rem;min-height:3rem;padding:.7rem 1.25rem;background:var(--whatsapp);border-radius:50px;box-shadow:0 4px 20px rgba(37,211,102,.38);font-size:.84rem;font-weight:500;color:var(--navy);text-decoration:none;transition:transform .3s}
.wa-float:hover{transform:translateY(-2px)}
.wa-float .icon{width:1.35rem;height:1.35rem}
.consent{position:fixed;left:1.5rem;bottom:1.5rem;z-index:9999;width:min(26rem,calc(100% - 3rem));padding:1.25rem 1.35rem;background:var(--navy);border:1px solid var(--gold);border-radius:var(--radius-xl);box-shadow:var(--shadow-popup);color:var(--on-navy-muted)}
.consent strong{display:block;margin-bottom:.3rem;font-size:.9375rem;font-weight:600;color:var(--white)}
.consent p{font-size:.8125rem;line-height:1.6}
.consent a{color:var(--gold)}
.consent__actions{display:flex;gap:.6rem;margin-top:1rem}
.consent__actions .btn{flex:1}

/* ───────────── Reveal ───────────── */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.is-visible{opacity:1;transform:none}
.reveal--2{transition-delay:.1s!important}
.reveal--3{transition-delay:.2s!important}

/* ───────────── Responsive ───────────── */
@media (max-width:1320px){
  .brand__name{display:none}
}
@media (max-width:1040px){
  .nav__links,.nav__cta{display:none}
  .nav__toggle{display:inline-flex}
}
@media (max-width:1100px){
  .programs__grid,.blog__grid{grid-template-columns:repeat(2,1fr)}
  .pathways__grid{grid-template-columns:repeat(2,1fr)}
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media (max-width:900px){
  .hero__grid,.about__grid,.global__grid,.faq__grid,.contact__grid{grid-template-columns:1fr}
  .hero__visual{margin:1.75rem auto 0;max-width:26rem}
  .hero__note{left:.5rem}
  .about__copy,.faq__aside{position:static}
  .location{grid-template-columns:1fr}
  .location__photo,.location__map{min-height:18rem}
  .stats__grid{grid-template-columns:repeat(2,1fr);row-gap:1.75rem}
  .stat:nth-child(2){border-right:0}
}
@media (max-width:640px){
  :root{--header-h:68px}
  .brand__logo{width:120px;height:46px}
  .brand__name{display:none}
  .people,.programs__grid,.blog__grid,.pathways__grid,.footer__top{grid-template-columns:1fr}
  .team{grid-template-columns:repeat(3,1fr);gap:.6rem}
  .team__item{aspect-ratio:3/4}
  .team__item figcaption{left:.35rem;right:.35rem;bottom:.35rem;padding:.4rem .3rem;font-size:.66rem}
  .hero__visual{width:calc(100% - 2.75rem);margin-inline:auto}
  .pathways .arcs,.cta-card .arcs{display:none}
  .timetable__panel iframe{height:26rem}
  .timetable__foot .btn{width:100%}
  .hero__actions .btn{flex:1 1 100%}
  .wa-float span{display:none}
  .wa-float{padding:.8rem;border-radius:var(--radius-full)}
  .consent{left:.75rem;right:.75rem;bottom:.75rem;width:auto}
  .section-head{align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
}

/* ═════════════════ Shared page chrome (blog, article, enrollment) ═════════════════ */
:root{--shadow-post:0 12px 40px rgba(28,41,81,.1);--red:#B3382C;--green:#2E7D4F;--danger-tint:#FBEAE8;--success-tint:#E7F4EC}

.nav__links a[aria-current="page"]{color:var(--navy)}
.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.nav__simple{display:flex;align-items:center;gap:1.25rem}
.nav__help{display:inline-flex;align-items:center;gap:.5rem;font-size:.8438rem;color:var(--text-secondary);text-decoration:none;transition:color .2s}
.nav__help:hover{color:var(--navy)}
.nav__help .icon{width:1.1rem;height:1.1rem;color:var(--navy)}

.page-hero{position:relative;overflow:hidden;padding-block:clamp(3rem,7vw,5.5rem)}
.page-hero .arcs{right:0;top:50%;width:min(11rem,26%);transform:translateY(-50%)}
.page-hero__inner{position:relative}
.page-hero .title{max-width:40rem;font-size:clamp(2.3rem,4.8vw,3.9rem);line-height:1.06}
.page-hero .lede{max-width:34rem}

.site-footer--compact{padding-block:2rem}
.footer__compact{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;font-size:.75rem;color:var(--on-navy-subtle)}
.footer__compact p{margin:0}

.empty-page{padding-block:clamp(4rem,10vw,7rem);text-align:center}
.empty-page .title{margin-bottom:1rem}
.empty-page p{max-width:30rem;margin:0 auto 2rem;color:var(--text-muted-aa)}

/* ───────────── Blog list ───────────── */
.blog-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2rem}
.tag-banner{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 1.75rem;padding:.35rem .4rem .35rem 1rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-3xl);font-size:.8125rem;color:var(--navy)}
.tag-banner button{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;background:var(--white);border:1px solid var(--border-gold);border-radius:var(--radius-full);color:var(--navy);cursor:pointer}
.tag-banner .icon{width:.9rem;height:.9rem}

.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20.5rem),1fr));gap:1.5rem}
.post{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);transition:transform .25s,box-shadow .25s,border-color .25s}
.post:hover{transform:translateY(-4px);box-shadow:var(--shadow-post);border-color:var(--gold)}
.post__media{position:relative;height:11.5rem;overflow:hidden;background:var(--gold-pale)}
.post__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.post:hover .post__media img{transform:scale(1.04)}
.post__media .arcs{right:0;top:0;width:5.75rem;opacity:.7}
.post__body{display:flex;flex:1;flex-direction:column;padding:1.5rem}
.post__cat{margin-bottom:.6rem;font-size:.6563rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.post__title{margin-bottom:.7rem;font-family:var(--font-serif);font-size:1.45rem;font-weight:500;line-height:1.22;color:var(--navy)}
.post__link{color:inherit;text-decoration:none}
.post__link::after{content:"";position:absolute;inset:0;z-index:1}
.post__excerpt{display:-webkit-box;margin-bottom:1.25rem;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.7;color:var(--text-secondary)}
.post__tags{position:relative;z-index:2;margin-bottom:1.25rem}
.post__tags .tag{text-decoration:none;transition:background .15s,border-color .15s}
.post__tags .tag:hover{background:var(--gold-pale);border-color:var(--border-gold)}
.post__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--text-muted-aa)}
.post__byline{min-width:0}
.post__byline b{font-weight:500;color:var(--navy)}
.post__more{display:inline-flex;align-items:center;gap:.4rem;flex:none;font-size:.8125rem;font-weight:500;color:var(--gold-deep)}
.post__more .icon{width:.95rem;height:.95rem;transition:transform .2s}
.post:hover .post__more .icon{transform:translateX(4px)}
.post--featured{grid-column:1/-1;flex-direction:row}
.post--featured .post__media{flex:0 0 44%;height:auto;min-height:19rem}
.post--featured .post__media .arcs{width:9rem}
.post--featured .post__body{justify-content:center;padding:clamp(1.75rem,3.5vw,2.75rem)}
.post--featured .post__title{font-size:clamp(1.8rem,3vw,2.5rem)}
.post--featured .post__excerpt{-webkit-line-clamp:4;font-size:.9688rem}
.posts__state{grid-column:1/-1;padding:4rem 1rem;text-align:center}
.posts__state h2{margin-bottom:.5rem;font-family:var(--font-serif);font-size:1.9rem;font-weight:400;color:var(--navy)}
.posts__state p{margin:0 auto;max-width:28rem;color:var(--text-muted-aa)}
.blog__more{margin-top:2.5rem;text-align:center}

@keyframes shimmer{to{background-position:-200% 0}}
.post--skeleton{min-height:21rem;pointer-events:none}
.sk{background:linear-gradient(90deg,var(--warm-gray) 25%,var(--off-white) 50%,var(--warm-gray) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.sk--media{height:11.5rem}
.sk--line{height:.85rem;margin:1.4rem 1.5rem 0;border-radius:var(--radius-sm)}
.sk--line.is-short{width:40%}

/* ───────────── Article ───────────── */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-block:1.25rem;font-size:.8125rem;color:var(--text-muted-aa)}
.crumbs a{color:inherit;text-decoration:none}
.crumbs a:hover{color:var(--navy)}
.crumbs [aria-current]{color:var(--navy)}
.article{max-width:46rem;margin-inline:auto}
.article__head{padding-top:clamp(1.5rem,4vw,2.75rem)}
.article__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.08;letter-spacing:-.01em;color:var(--navy)}
.article__meta{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:1.4rem;padding-bottom:1.6rem;border-bottom:1px solid var(--border);font-size:.8125rem;color:var(--text-muted-aa)}
.article__meta b{font-weight:500;color:var(--navy)}
.article__cover{margin-block:2rem 0;overflow:hidden;border-radius:var(--radius-2xl);background:var(--gold-pale)}
.article__cover img{width:100%;max-height:27rem;object-fit:cover}
.article__body{padding-top:2rem;font-size:1.0625rem;line-height:1.9;color:var(--text-secondary)}
.article__body p{margin-bottom:1.35rem}
.article__body>p:first-child{font-size:1.1875rem;line-height:1.8;color:var(--navy)}
.article__body h2{margin:2.6rem 0 .9rem;font-family:var(--font-serif);font-size:1.75rem;font-weight:500;line-height:1.2;color:var(--navy)}
.article__body a{color:var(--gold-deep);text-underline-offset:3px}
.article__body strong{font-weight:600;color:var(--navy)}
.article__tags{margin-top:2.25rem}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid var(--border)}
.share__label{margin-right:.4rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted-aa)}
.share .btn .icon{width:1rem;height:1rem}
.article-cta{margin-top:clamp(3rem,6vw,4.5rem)}
.related{padding-block:clamp(3rem,7vw,5rem)}
.related .blog__grid{margin-top:2rem}

/* ───────────── Enrollment ───────────── */
.enroll-hero{padding-block:clamp(2.5rem,6vw,4.25rem) clamp(1.5rem,3vw,2.25rem)}
.enroll{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:2rem;align-items:start;padding-bottom:clamp(3rem,7vw,5.5rem)}
.form-card{padding:clamp(1.4rem,3vw,2rem);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card)}
.form-card+.form-card{margin-top:1.25rem}
.form-card__head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}
.form-card__num{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:none;background:var(--navy);border-radius:var(--radius-full);font-family:var(--font-serif);font-size:1.1rem;font-weight:500;line-height:1;font-variant-numeric:lining-nums;color:var(--gold)}
.form-card h2{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;line-height:1.15;color:var(--navy)}
.form-card__sub{margin-top:.3rem;font-size:.8125rem;color:var(--text-muted-aa)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field--full{grid-column:1/-1}
.field label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}
.field .req{color:var(--gold-deep)}
.input{width:100%;min-height:2.85rem;padding:.65rem .85rem;background:var(--off-white);border:1px solid var(--text-muted);border-radius:var(--radius-md);font:400 .9375rem/1.5 var(--font-sans);color:var(--navy);transition:border-color .2s,background .2s}
.input:hover{border-color:var(--text-muted-aa)}
.input:focus{border-color:var(--navy);background:var(--white)}
.input[aria-invalid="true"]{border-color:var(--red)}
textarea.input{min-height:5rem;resize:vertical}
select.input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 1.15rem) 1.2rem,calc(100% - .85rem) 1.2rem;background-size:.3rem .3rem;background-repeat:no-repeat;padding-right:2.2rem}
.field__hint{font-size:.75rem;color:var(--text-muted-aa)}
.field__error{margin:0;font-size:.75rem;font-weight:500;color:var(--red)}
.terms+.field__error{margin:-.9rem 0 1.2rem}
.hp-wrap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.catalog__group+.catalog__group{margin-top:1.75rem}
.catalog__group h3{margin-bottom:.8rem;font-family:var(--font-serif);font-size:1.25rem;font-weight:500;color:var(--navy)}
.catalog__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr));gap:.75rem}
.catalog__empty{padding:1rem 0;color:var(--text-muted-aa)}
.subject{position:relative;display:block;cursor:pointer}
.subject__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.subject__body{display:block;height:100%;padding:.95rem 2.8rem .95rem 1.05rem;background:var(--off-white);border:1.5px solid var(--border-gold);border-radius:var(--radius-lg);transition:border-color .18s,background .18s}
.subject:hover .subject__body{border-color:var(--gold)}
.subject__input:checked~.subject__body{background:var(--gold-pale);border-color:var(--gold)}
.subject__input:focus-visible~.subject__body{outline:3px solid var(--focus-ring);outline-offset:2px}
.subject__name{display:block;margin-bottom:.25rem;font-size:.9rem;font-weight:500;line-height:1.35;color:var(--navy)}
.subject__desc{display:block;margin-bottom:.5rem;font-size:.75rem;line-height:1.5;color:var(--text-muted-aa)}
.subject__price{display:flex;align-items:baseline;gap:.35rem;font-size:.8125rem;font-weight:600;color:var(--gold-deep)}
.subject__price small{font-size:.6875rem;font-weight:400;color:var(--text-muted-aa)}
.subject__tick{position:absolute;top:.85rem;right:.85rem;display:grid;place-items:center;width:1.45rem;height:1.45rem;background:var(--white);border:1.5px solid var(--text-muted);border-radius:var(--radius-full);color:transparent;transition:background .18s,border-color .18s,color .18s;pointer-events:none}
.subject__tick .icon{width:.85rem;height:.85rem;stroke-width:2.6}
.subject__input:checked~.subject__tick{background:var(--navy);border-color:var(--navy);color:var(--gold)}

.terms{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.4rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}
.terms input{flex:none;width:1.2rem;height:1.2rem;margin:.15rem 0 0;accent-color:var(--navy)}
.terms a{color:var(--gold-deep)}
.msg{margin-top:1rem;padding:.8rem 1rem;border-radius:var(--radius-md);font-size:.9rem;line-height:1.55;text-align:center}
.msg--error{background:var(--danger-tint);color:var(--red)}
.msg--success{background:var(--success-tint);color:var(--green)}

.enroll__aside{position:sticky;top:calc(var(--header-h) + 1.5rem);align-self:start}
.summary{position:relative;overflow:hidden;padding:1.75rem;background:var(--navy);border-radius:var(--radius-2xl);color:var(--white)}
.summary .arcs{right:-1px;top:-2.75rem;width:4.5rem;opacity:.3}
.summary__eyebrow{position:relative;margin-bottom:.9rem;font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.summary__count{position:relative;font-family:var(--font-serif);font-size:1.5rem;line-height:1.2;font-variant-numeric:lining-nums;color:var(--white)}
.summary__list{position:relative;display:grid;gap:.5rem;margin:1.1rem 0 0;padding:1.1rem 0 0;border-top:1px solid rgba(255,255,255,.14);font-size:.8438rem;color:var(--on-navy-muted)}
.summary__list:empty{display:none}
.summary__list li{display:flex;justify-content:space-between;gap:1rem}
.summary__list li span:last-child{flex:none;color:var(--white)}
.summary__total{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14);font-size:.8125rem;color:var(--on-navy-muted)}
.summary__total strong{font-family:var(--font-serif);font-size:1.9rem;font-weight:500;line-height:1;font-variant-numeric:lining-nums;color:var(--gold-light)}
.summary__note{position:relative;margin-top:.7rem;font-size:.75rem;line-height:1.55;color:var(--on-navy-muted)}
.summary__points{position:relative;display:grid;gap:.6rem;margin:1.4rem 0 0;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.14);font-size:.8125rem;color:var(--on-navy-muted)}
.summary__points li{display:flex;gap:.6rem}
.summary__points .icon{width:1rem;height:1rem;margin-top:.15rem;color:var(--gold);stroke-width:2.2}
.summary__help{position:relative;display:inline-flex;align-items:center;gap:.5rem;margin-top:1.4rem;font-size:.8125rem;color:var(--gold);text-decoration:none}
.summary__help:hover{text-decoration:underline}
.summary__help .icon{width:1.1rem;height:1.1rem}

@media (max-width:1000px){
  .enroll{grid-template-columns:1fr}
  .enroll__aside{position:sticky;top:auto;bottom:.75rem;z-index:50}
  .summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem 1rem;padding:.85rem 1.1rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-popup)}
  .summary .arcs,.summary__eyebrow,.summary__list,.summary__points,.summary__help{display:none}
  .summary__count{font-size:1.05rem}
  .summary__total{margin:0;padding:0;border:0;gap:.6rem}
  .summary__total span{display:none}
  .summary__total strong{font-size:1.3rem}
  .summary__note{flex-basis:100%;margin:0}
}
@media (max-width:800px){
  .post--featured{flex-direction:column}
  .post--featured .post__media{flex:none;height:13rem;min-height:0}
}
@media (max-width:640px){
  .form-grid{grid-template-columns:1fr}
  .nav__help span{display:none}
  .page-hero .arcs{display:none}
}

/* ═════════════════ Legal pages (privacy, refund, terms) ═════════════════ */
.legal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:1.5rem;font-size:.8125rem;color:var(--on-navy-subtle)}
.legal-meta p{margin:0}

.legal{display:grid;grid-template-columns:15.5rem minmax(0,46rem);justify-content:center;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.toc-wrap{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.toc summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.4rem;font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted-aa);cursor:pointer;list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"";width:.5rem;height:.5rem;margin-right:.25rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s;display:none}
.toc ol{display:grid;gap:.1rem;counter-reset:toc;margin-top:.75rem}
.toc a{display:flex;gap:.7rem;padding:.45rem .65rem;border-radius:var(--radius-md);font-size:.8125rem;line-height:1.4;color:var(--text-secondary);text-decoration:none;transition:background .2s,color .2s}
.toc a::before{counter-increment:toc;content:counter(toc);flex:none;min-width:1.2rem;font-variant-numeric:tabular-nums;color:var(--gold-deep)}
.toc a:hover{background:var(--gold-pale);color:var(--navy)}
.toc a[aria-current="true"]{background:var(--gold-pale);font-weight:500;color:var(--navy)}

.legal__doc{padding:clamp(1.5rem,4vw,3rem);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-2xl)}
.notice{display:flex;gap:1rem;margin-bottom:.5rem;padding:1.15rem 1.35rem;background:var(--gold-pale);border:1px solid var(--border-gold);border-radius:var(--radius-xl);font-size:.9375rem;line-height:1.75;color:var(--navy)}
.notice p{margin:0}
.notice .icon{width:1.35rem;height:1.35rem;margin-top:.2rem;color:var(--gold-deep)}
.notice a{color:var(--navy);font-weight:500;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

.legal__section{margin-top:2.25rem;padding-top:2.25rem;border-top:1px solid var(--border)}
.legal__section h2{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.1rem;font-family:var(--font-serif);font-size:1.7rem;font-weight:500;line-height:1.2;color:var(--navy)}
.legal__num{flex:none;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.12em;font-variant-numeric:lining-nums;color:var(--gold-deep)}
.legal__section p,.legal__section li{font-size:1rem;line-height:1.85;color:var(--text-secondary)}
.legal__section p+p,.legal__section p+ul,.legal__section ul+p{margin-top:.9rem}
.legal__section ul{margin:.9rem 0 0;padding-left:1.3rem;list-style:disc}
.legal__section p+ul{margin-top:.6rem}
.legal__section li+li{margin-top:.45rem}
.legal__section li::marker{color:var(--gold)}
.legal__section a{font-weight:500;color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;transition:color .2s}
.legal__section a:hover{color:var(--gold-deep)}
.legal__section strong{font-weight:600;color:var(--navy)}
.legal__section .points{list-style:none;margin:1.25rem 0 0;padding:0}
.legal__section .points li{margin:0}
.after-points{margin-top:1.25rem!important}
.points{display:flex;flex-wrap:wrap;gap:.6rem}
.point{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem .4rem .75rem;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-3xl);font-size:.8125rem!important;line-height:1.5!important;color:var(--text-secondary)!important}
.point .icon{width:1rem;height:1rem;stroke-width:2.4}
.point--yes .icon{color:var(--green)}
.point--no .icon{color:var(--red)}

.legal-more{display:grid;grid-template-columns:repeat(2,minmax(0,22rem));justify-content:center;gap:1.25rem;margin-top:clamp(2.5rem,5vw,3.5rem)}
.legal-more .topic{min-height:0}

@media (max-width:1000px){
  .legal{grid-template-columns:minmax(0,1fr)}
  .toc-wrap{position:static}
  .toc{padding:.9rem 1.1rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg)}
  .toc summary{margin:0}
  .toc summary::after{display:block}
  .toc[open] summary::after{transform:rotate(225deg)}
  .legal-more{grid-template-columns:minmax(0,1fr)}
}

@media print{
  .site-header,.site-footer,.toc-wrap,.consent,.wa-float,.page-hero .arcs,.legal-more,[data-print],.skip-link{display:none!important}
  body{background:#fff;color:#000}
  .on-navy{background:none;color:#000}
  .on-navy .eyebrow,.on-navy .title,.on-navy .title em{color:#000}
  .legal-meta{color:#444}
  .page-hero{padding:0 0 1rem}
  .section{padding:0}
  .legal{display:block}
  .legal__doc{padding:0;border:0}
  .legal__section{break-inside:avoid-page}
  .legal__section a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em;color:#444}
}
