
:root{
  --bg:        #FBF7EF;   
  --bg-alt:    #F3E9D9;   
  --bg-deep:   #E9DCC2;   
  --fg:        #2A221B;   
  --fg-muted:  #6E6052;   
  --fg-faint:  #9C8E7A;   
  --accent:    #7A2430;   
  --accent-ink:#5A1922;   
  --accent-2:  #33513F;   
  --accent-3:  #B8863B;   
  --accent-4:  #C06B4A;   
  --line:      rgba(42,34,27,0.38);
  --line-soft: rgba(42,34,27,0.18);
  --card-bg:   #FFFDF7;   
  --shadow:    0 1px 2px rgba(42,28,12,0.06), 0 14px 34px -18px rgba(42,28,12,0.32);
  --font-display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --font-body:    'Archivo', 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-mono:    'Space Mono', 'SF Mono', Consolas, monospace;
  --step-label: .7rem;
  --tracking-label: .16em;
  color-scheme: light;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
:root[data-theme="dark"]{
  --bg:        #15110C;
  --bg-alt:    #1E1811;
  --bg-deep:   #272019;
  --fg:        #F3ECDF;
  --fg-muted:  #BFB09A;
  --fg-faint:  #8C7F6C;
  --accent:    #D98C96;
  --accent-ink:#E8ABB2;
  --accent-2:  #7FA38C;
  --accent-3:  #D8B06A;
  --accent-4:  #E09670;
  --line:      rgba(243,236,223,0.24);
  --line-soft: rgba(243,236,223,0.13);
  --card-bg:   #1C160F;
  --shadow:    0 1px 2px rgba(0,0,0,0.35), 0 16px 40px -18px rgba(0,0,0,0.65);
  color-scheme: dark;
}
*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 16.5px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; }
[hidden]{ display:none !important; }
::selection{ background: var(--accent); color:#fff; }
.wrap{
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(18px, 4vw, 48px);
}
.measure{ max-width: 62ch; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.06;
  text-wrap: balance;
  margin: 0;
  letter-spacing: -0.015em;
  font-style: normal;
}
p{ margin:0; }
.italic{ font-style: italic; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .01em;
  color: var(--accent-ink);
  font-weight: 700;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  padding: 7px 16px 7px 12px;
  border-radius: 999px;
}
.eyebrow::before{
  content:""; width: 6px; height: 6px; border-radius:50%; background: currentColor; flex-shrink:0;
}
.eyebrow.on-dark{ background: rgba(255,255,255,.14); color:#fff; }
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family: var(--font-body); font-weight: 700; font-size: .95rem;
  padding: .85em 1.6em;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  letter-spacing: .01em;
}
.btn:active{ transform: translateY(1px); }
.btn-primary{ background: var(--accent); color:#fff; }
.btn-primary:hover{ background: var(--accent-ink); }
.btn-ghost{ background: transparent; color: var(--fg); border-color: var(--line); }
.btn-ghost:hover{ border-color: var(--fg); }
.btn-oxblood{ background: var(--accent-2); color:#fff; }
.btn-oxblood:hover{ filter: brightness(1.1); }
.site-header{
  position: relative; z-index: 60;
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line-soft);
}
body.nav-open .site-header{ backdrop-filter: none; }
@media (max-width: 980px){
  body.nav-open{ overflow:hidden; height:100%; }
}
.header-inner{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding-block: 14px;
  gap: 10px;
}
.header-bottom-row{ display:flex; align-items:center; justify-content:center; gap:14px; width:100%; }
.brand{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-decoration:none; color: var(--fg);
  flex-shrink: 1; min-width:0;
}
.brand-text{ order:1; }
.brand-badge{ order:2; }
.brand-badge{
  width:144px; height:144px; flex-shrink:0; box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border-radius:16px; padding:7px;
  box-shadow:0 1px 2px rgba(20,14,6,0.12), 0 2px 8px rgba(20,14,6,0.1);
}
.brand-badge img{ width:100%; height:100%; object-fit:contain; display:block; }
.brand-badge-lg{ width:96px; height:96px; border-radius:14px; padding:6px; }
@media (max-width:640px){
  .brand-badge{ width:96px; height:96px; border-radius:12px; }
}
@media (max-width:480px){
  .brand-badge{ width:72px; height:72px; border-radius:10px; }
}
.brand-text{ display:flex; flex-direction:column; align-items:center; text-align:center; line-height:1.2; min-width:0; }
.brand-text strong{
  font-family: var(--font-display); font-size: 1.5rem; font-weight:750;
  letter-spacing: .01em;
  text-transform: uppercase;
  display:block; max-width:100%;
  color: var(--accent-ink);
}
.brand-text span{
  font-size: .72rem; letter-spacing: .12em; text-transform:uppercase; color: var(--fg-muted);
  margin-top:2px;
}
nav.primary-nav{ display:flex; align-items:center; gap: 0; flex:1; justify-content:center; min-width:0; }
nav.primary-nav > ul{ list-style:none; display:flex; gap:1px; margin:0; padding:0; flex-wrap:nowrap; }
nav.primary-nav > ul > li{ position:relative; }
nav.primary-nav a.nav-link{
  display:flex; align-items:center; gap:5px;
  padding: 10px 11px;
  text-decoration:none;
  font-size:.83rem; font-weight:700; color: var(--fg);
  letter-spacing:.005em;
  border-radius:2px;
  white-space:nowrap;
}
nav.primary-nav a.nav-link:hover,
nav.primary-nav li.open a.nav-link{ color: var(--accent); }
nav.primary-nav .caret{ width:9px; height:9px; opacity:.6; transition: transform .16s ease; flex-shrink:0; }
nav.primary-nav li.open .caret{ transform: rotate(180deg); }
.dropdown{
  position:absolute; top: calc(100% + 8px); left:0;
  min-width: 250px;
  background: var(--card-bg);
  border:1px solid var(--line);
  border-radius: 4px;
  box-shadow: var(--shadow);
  padding: 8px;
  opacity:0; visibility:hidden; transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 80;
}
li.open .dropdown{ opacity:1; visibility:visible; transform: translateY(0); }
.dropdown a{
  display:block; padding: 10px 12px; text-decoration:none;
  font-size:.86rem; color: var(--fg); border-radius:3px;
}
.dropdown a:hover{ background: var(--bg-alt); color: var(--accent); }
.dropdown a small{ display:block; color: var(--fg-muted); font-size:.74rem; margin-top:2px; font-weight:400; }
.mobile-close{ display:none; }
.mobile-nav-cta{ display:none; }
.nav-cta{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
.nav-cta .btn{ padding: .7em 1.1em; font-size:.84rem; white-space:nowrap; }
.lang-switch{
  display:flex; border:1px solid var(--line); border-radius:20px; overflow:hidden; flex-shrink:0;
}
.lang-switch button{
  border:none; background:none; padding:6px 11px; font-family:var(--font-body); font-weight:700;
  font-size:.74rem; letter-spacing:.04em; cursor:pointer; color: var(--fg-muted);
}
.lang-switch button.active{ background: var(--accent); color:#fff; }
.menu-toggle{
  display:none; background:none; border:1px solid var(--line); border-radius:3px;
  width:40px; height:40px; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
}
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{
  content:""; display:block; width:17px; height:2px; background: var(--fg); position:relative;
}
.menu-toggle span::before{ position:absolute; top:-6px; }
.menu-toggle span::after{ position:absolute; top:6px; }
.menu-toggle.is-close span{ background:transparent; }
.menu-toggle.is-close span::before{ top:0; transform: rotate(45deg); background: var(--fg); }
.menu-toggle.is-close span::after{ top:0; transform: rotate(-45deg); background: var(--fg); }
@media (max-width: 1100px){
  .brand-text span{ display:none; }
  nav.primary-nav a.nav-link{ padding: 10px 8px; font-size:.8rem; }
  .nav-cta .btn-ghost{ display:none; }
}
@media (max-width: 980px){
  .header-inner{
    flex-direction:row; align-items:center; justify-content:space-between;
    padding-block: 8px;
  }
  .header-bottom-row{ display:contents; }
  .brand{ flex:1 1 auto; flex-direction:row; align-items:center; gap:10px; min-width:0; }
  .brand-text{ align-items:flex-start; text-align:left; flex:1 1 auto; min-width:0; }
  .brand-text strong{
    font-size: clamp(.82rem, 4.4vw, 1.04rem); font-weight:650; letter-spacing:-.005em; color:var(--fg);
    white-space:normal; overflow:visible; text-overflow:clip; line-height:1.15;
  }
  .brand-text span{ font-size:.64rem; margin-top:2px; }
  .nav-cta{ flex-shrink:0; }
  .brand-badge{ order:1; } .brand-text{ order:2; }
  nav.primary-nav{ display:none; }
  .nav-cta .btn-primary{ display:none; }
  .nav-cta .lang-switch{ display:none; }
  .menu-toggle{ display:flex; }
  body.nav-open nav.primary-nav.mobile-open{
    display:flex; position:fixed; inset: env(safe-area-inset-top,0px) 0 0 0;
    background: var(--bg); z-index:70; padding: 18px; overflow-y:auto;
    justify-content:flex-start;
  }
  .mobile-open{ flex-direction:column; align-items:stretch; }
  .mobile-open > ul{ flex-direction:column; width:100%; gap:0; }
  .mobile-open a.nav-link{ padding:14px 6px; font-size:.98rem; justify-content:space-between; }
  .mobile-open .dropdown{ position:static; box-shadow:none; opacity:1; visibility:visible; transform:none; display:none; margin-left:10px; border:none; border-left:2px solid var(--line); border-radius:0; }
  .mobile-open li.open .dropdown{ display:block; }
  .mobile-close{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
  .mobile-nav-cta{
    display:flex; flex-direction:column; gap:12px;
    margin-top:18px; padding-top:18px; border-top:1px solid var(--line);
  }
  .mobile-nav-cta .btn{ justify-content:center; }
  .mobile-nav-phone{
    display:flex; align-items:center; justify-content:center; gap:8px;
    text-align:center; font-weight:700; color:var(--accent); text-decoration:none;
    font-size:.95rem; padding:10px 0;
  }
}
.hero-full{
  position:relative; overflow:hidden; background:#1C140D; color:#fff;
  height: 100svh; min-height: 600px; max-height: 960px;
  display:flex; flex-direction:column;
}
.hero-track{ position:relative; width:100%; flex:1 1 auto; min-height:0; }
.hero-slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden;
  transition: opacity 1.1s ease, visibility 1.1s;
  display:flex; align-items:center;
  overflow:hidden;
}
.hero-slide.active{ opacity:1; visibility:visible; z-index:2; }
.hero-slide-media{ position:absolute; inset:0; overflow:hidden; }
.hero-slide-media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  transform: scale(1.0); filter: brightness(.98) saturate(1.08);
}
.hero-slide.active .hero-slide-media img{
  animation: heroKenBurns 9s ease-out forwards;
}
@keyframes heroKenBurns{ from{ transform:scale(1.12); } to{ transform:scale(1); } }
.hero-slide-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(22,15,9,.74) 0%, rgba(22,15,9,.58) 50%, rgba(22,15,9,.74) 100%),
    linear-gradient(0deg, rgba(22,15,9,.6) 0%, rgba(22,15,9,.2) 45%, rgba(22,15,9,.12) 100%);
}
.hero-full::after{
  content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 160px 160px;
}
.hero-slide-content{
  position:relative; z-index:2; width:100%;
  padding-block: clamp(28px, 5vw, 56px);
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}
.hero-slide-content > *{
  opacity:0; transform: translateY(18px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}
.hero-slide.active .hero-slide-content > *{ opacity:1; transform:none; }
.hero-slide.active .hero-slide-content > *:nth-child(1){ transition-delay:.05s; }
.hero-slide.active .hero-slide-content > *:nth-child(2){ transition-delay:.12s; }
.hero-slide.active .hero-slide-content > *:nth-child(3){ transition-delay:.19s; }
.hero-slide.active .hero-slide-content > *:nth-child(4){ transition-delay:.26s; }
.hero-slide.active .hero-slide-content > *:nth-child(5){ transition-delay:.33s; }
.hero-eyebrow{ color: #E8C27E; background: rgba(255,255,255,.14); }
.hero-eyebrow::before{ background: #E8C27E; }
.hero-counter-wrap{ position:relative; display:inline-block; margin-top:14px; }
.hero-counter-fx{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:280px; height:200px; max-width:none; pointer-events:none; z-index:1;
}
.hero-counter{
  position:relative; z-index:2;
  display:flex; align-items:baseline;
  font-family: var(--font-display); font-weight:600; line-height:1;
  font-size: clamp(2.2rem, 4.8vw, 3.4rem); font-variant-numeric: tabular-nums;
}
.hero-counter-plus{ color:#E8C27E; margin-left:.08em; font-size:.7em; }
.hero-full h1{ font-size: clamp(1.8rem, 3.8vw, 3rem); margin-top: 12px; color:#fff; }
.hero-full h1 em{ font-style:normal; color: #E8C27E; }
.hero-sub{ margin-top: 14px; margin-inline:auto; font-size: 1rem; line-height:1.6; color: rgba(255,255,255,.84); max-width: 54ch; }
.hero-ctas{ display:flex; gap:14px; margin-top: 22px; flex-wrap:wrap; justify-content:center; }
.hero-full .btn-ghost{ border-color: rgba(255,255,255,.4); color:#fff; }
.hero-full .btn-ghost:hover{ border-color:#fff; }
.hero-timeline{
  position:relative; z-index:3; flex-shrink:0;
  background: #140D08;
  display:grid; grid-template-columns: repeat(4,1fr); gap: clamp(14px,2.5vw,28px);
  padding-block: 16px;
}
.hero-timeline-item{
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  background:none; border:none; padding:0; cursor:pointer; text-align:left;
  opacity:.5; transition: opacity .3s ease;
}
.hero-timeline-item:hover{ opacity:.8; }
.hero-timeline-item.active{ opacity:1; }
.hero-timeline-num{ font-family: var(--font-display); font-size:.82rem; font-weight:600; color:#fff; }
.hero-timeline-item.active .hero-timeline-num{ color:#E8C27E; }
.hero-timeline-label{ font-size:.72rem; letter-spacing:.03em; color: rgba(255,255,255,.75); }
.hero-timeline-bar{ width:100%; height:3px; border-radius:2px; background: rgba(255,255,255,.22); overflow:hidden; display:block; }
.hero-timeline-progress{ display:block; width:0%; height:100%; background:#E8C27E; border-radius:2px; }
@media (max-width: 760px){
  .hero-full{ height: 100svh; min-height: 560px; max-height:none; }
  .hero-slide-content{ padding-block: clamp(20px,5vw,32px); max-width:none; }
  .hero-counter{ font-size: clamp(1.9rem, 9vw, 2.4rem); }
  .hero-timeline-label{ display:none; }
  .hero-timeline{ gap:10px; padding-block: 12px; }
}
@media (max-width: 420px){
  .hero-ctas{ flex-direction:column; align-items:stretch; }
  .hero-ctas .btn{ justify-content:center; }
}
@media (prefers-reduced-motion: reduce){
  .hero-slide.active .hero-slide-media img{ animation:none; }
}
.trust-strip{ border-bottom:1px solid var(--line-soft); background: var(--bg-alt); }
.trust-strip .wrap{ display:flex; flex-wrap:wrap; gap: 0; padding-block: 0; }
.trust-item{ flex:1 1 200px; display:flex; align-items:center; gap:12px; padding: 18px 20px; border-right: 1px solid var(--line-soft); }
.trust-item:last-child{ border-right:none; }
.trust-item svg{ width:26px; height:26px; color: var(--accent); flex-shrink:0; }
.trust-item span{ font-size:.86rem; font-weight:700; }
.trust-item small{ display:block; font-weight:400; color: var(--fg-muted); font-size:.76rem; }
section{ padding-block: clamp(56px, 8vw, 100px); }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom: 44px; flex-wrap:wrap; }
.section-head h2{ font-size: clamp(1.7rem, 3vw, 2.4rem); margin-top:10px; }
.alt{ background: var(--bg-alt); }
.schools-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 880px){ .schools-grid{ grid-template-columns:1fr; } }
.school-card{
  border:1px solid var(--line);
  border-radius:8px; background: var(--card-bg); overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow: var(--shadow); position:relative;
}
.school-card .card-media{ aspect-ratio: 16/10; position:relative; overflow:hidden; }
.school-card .card-media svg{ width:100%; height:100%; }
.school-card .card-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.school-card .card-body{ padding: 24px 24px 26px; display:flex; flex-direction:column; gap:14px; flex:1; }
.school-card.ness .card-media{ background: var(--accent-4); }
.school-card.nescas .card-media{ background: var(--accent); }
.school-card.nescases .card-media{ background: var(--accent-2); }
.school-card .tag{ font-family: var(--font-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color: var(--fg-muted); display:flex; align-items:baseline; gap:8px; }
.school-card .tag::before{ content: attr(data-idx); font-size:.9rem; color: var(--fg); }
.school-card h3{ font-size:1.5rem; }
.school-card p{ color: var(--fg-muted); font-size:.95rem; }
.school-card ul{ margin:6px 0 0; padding-left:18px; color: var(--fg-muted); font-size:.88rem; display:flex; flex-direction:column; gap:4px; }
.school-card .motto{ margin-top:auto; padding-top:14px; border-top:1px solid var(--line-soft); font-family: var(--font-display); font-style:italic; font-size:.98rem; color: var(--fg); }
.value-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
@media (max-width:820px){ .value-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .value-grid{ grid-template-columns: 1fr; } }
.value-grid-4{ grid-template-columns: repeat(4,1fr); }
@media (max-width:980px){ .value-grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .value-grid-4{ grid-template-columns: 1fr; } }
.value-card{ padding: 22px; border:1px solid var(--line-soft); border-radius:2px; background: var(--card-bg); display:flex; flex-direction:column; gap:10px; }
.value-card > svg{
  width:22px; height:22px; padding:11px; box-sizing:content-box;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  border-radius:10px; color: var(--accent-ink);
}
.value-card .num{ font-family: var(--font-display); font-size:.85rem; color: var(--accent); font-weight:700; }
.value-card h4{ font-size:1.08rem; }
.value-card p{ color: var(--fg-muted); font-size:.9rem; }
.value-card-media{
  position:relative; width:100%; aspect-ratio:4/3; border-radius:10px; overflow:hidden;
  background: color-mix(in srgb, var(--accent) 10%, var(--bg-alt));
  display:flex; align-items:center; justify-content:center;
}
.value-card-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.value-card-media svg{ width:34px; height:34px; color: var(--accent-ink); opacity:.5; padding:0; background:none; border-radius:0; }
.quote-block{ display:grid; grid-template-columns: .38fr .62fr; gap: 48px; align-items:center; }
@media (max-width:880px){ .quote-block{ grid-template-columns:1fr; } }
.quote-figure{ position:relative; }
.quote-figure-media{ aspect-ratio: 3/3.6; border-radius:2px; overflow:hidden; background: var(--fg); }
.quote-figure-media svg{ width:100%; height:100%; display:block; }
.hero-float-badge{
  position:absolute; left:-18px; bottom:-18px; z-index:3;
  display:flex; align-items:center; gap:12px;
  background: var(--card-bg); color: var(--fg);
  border-radius:10px; padding:14px 20px; box-shadow: var(--shadow);
  max-width: 230px; border:1px solid var(--line);
}
.hero-float-badge .ring{
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  display:flex; align-items:center; justify-content:center; color: var(--accent-ink);
}
.hero-float-badge strong{ display:block; font-family: var(--font-display); font-size:1.05rem; line-height:1.2; }
.hero-float-badge span{ display:block; font-size:.72rem; color: var(--fg-muted); margin-top:2px; }
@media (max-width: 880px){ .hero-float-badge{ left:14px; bottom:-18px; } }
@media (max-width: 480px){ .hero-float-badge{ left:10px; bottom:-14px; padding:11px 16px; max-width:190px; } }
blockquote{ margin:0; font-family: var(--font-display); font-size: clamp(1.3rem,2.4vw,1.85rem); line-height:1.35; font-weight:500; }
blockquote cite{ display:block; margin-top:18px; font-style:normal; font-family: var(--font-body); font-size:.86rem; color: var(--fg-muted); font-weight:700; }
.cta-band{
  background: var(--accent); color: #fff;
  border-radius: 8px;
  padding: clamp(36px,6vw,60px);
  display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
}
.cta-band h2{ color:#fff; font-size: clamp(1.5rem,3vw,2.1rem); margin-top:10px; }
.cta-band p{ color: rgba(255,255,255,.78); margin-top:8px; max-width:48ch; }
.cta-band .eyebrow:not(.on-dark){ color: #EFD19C; }
.cta-band .eyebrow:not(.on-dark)::before{ background:#EFD19C; }
.cta-band .btn-primary{ background:#fff; color: var(--accent); }
.cta-band .btn-primary:hover{ background: #FBF0DD; }
.cta-band .btn-ghost{ border-color: rgba(255,255,255,.4); color:#fff; }
.cta-band .btn-ghost:hover{ border-color:#fff; }
footer.site-footer{ background: var(--bg-deep); border-top:1px solid var(--line-soft); padding-block: 56px 28px; }
.footer-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 36px; }
@media (max-width:820px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-grid h5{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color: var(--fg-muted); margin-bottom:14px; font-weight:700; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.footer-grid a{ text-decoration:none; font-size:.9rem; color: var(--fg); }
.footer-grid a:hover{ color: var(--accent); }
.footer-bottom{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top: 46px; padding-top: 22px; border-top:1px solid var(--line-soft); font-size:.78rem; color: var(--fg-muted); }
.footer-social{ display:flex; gap:10px; margin-top:16px; }
.footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%; border:1px solid var(--line-soft);
  color: var(--fg-muted); flex-shrink:0;
}
.footer-social a:hover{ color: var(--accent); border-color: var(--accent); }
.footer-social svg{ width:16px; height:16px; }
.copy-btn{ display:inline-flex; align-items:center; gap:6px; background:none; border:1px solid var(--line); padding: 3px 9px; border-radius:3px; font-size:.76rem; cursor:pointer; color: var(--fg-muted); }
.copy-btn:hover{ border-color: var(--fg); color: var(--fg); }
.page-hero{ padding-block: clamp(46px,7vw,76px) clamp(30px,5vw,50px); border-bottom:1px solid var(--line-soft); background: linear-gradient(180deg, var(--bg-alt), var(--bg)); }
.breadcrumb{ font-size:.8rem; color: var(--fg-muted); margin-bottom:14px; }
.breadcrumb a{ text-decoration:none; color: var(--fg-muted); }
.breadcrumb a:hover{ color: var(--accent); }
.page-hero h1{ font-size: clamp(2rem, 4vw, 3rem); margin-top:12px; }
.page-hero p{ margin-top:14px; color: var(--fg-muted); max-width:60ch; font-size:1.05rem; }
[id]{ scroll-margin-top: 92px; }
section[id]{ scroll-margin-top: 136px; }
.subnav{ position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(8px); border-bottom:1px solid var(--line-soft); overflow-x:auto; }
.subnav ul{ list-style:none; display:flex; gap:4px; margin:0; padding: 10px clamp(18px,4vw,48px); min-width:max-content; }
.subnav a{ text-decoration:none; font-size:.84rem; font-weight:700; color: var(--fg-muted); padding:8px 14px; border-radius:20px; white-space:nowrap; }
.subnav a:hover, .subnav a.active{ color: var(--fg); background: var(--bg-alt); }
.two-col{ display:grid; grid-template-columns: 1fr 1fr; gap: 36px; }
@media (max-width:820px){ .two-col{ grid-template-columns:1fr; } }
.panel{ border:1px solid var(--line); border-radius:2px; background: var(--card-bg); padding: 26px; }
.panel h3{ font-size:1.25rem; margin-top:8px; margin-bottom:6px; }
.panel > .kicker{ color: var(--accent); font-weight:700; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.steps{ counter-reset: step; list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:0; }
.steps li{ counter-increment: step; position:relative; padding: 16px 0 16px 46px; border-top:1px solid var(--line-soft); }
.steps li:first-child{ border-top:none; }
.steps li::before{ content: counter(step); position:absolute; left:0; top:16px; width:28px; height:28px; border-radius:50%; background: var(--accent); color:#fff; font-family: var(--font-display); font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:center; }
.steps h4{ font-size:1rem; margin-bottom:3px; }
.steps p{ color: var(--fg-muted); font-size:.9rem; }
.doc-list{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:0; }
.doc-list li{ display:flex; align-items:center; gap:10px; padding:11px 0; border-top:1px solid var(--line-soft); font-size:.92rem; }
.doc-list li:first-child{ border-top:none; }
.doc-list svg{ width:16px; height:16px; color: var(--accent); flex-shrink:0; }
.table-scroll{
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid var(--line); border-radius:2px; background: var(--card-bg);
}
.table-scroll table{ width:100%; min-width:560px; border-collapse:collapse; }
.table-scroll th, .table-scroll td{
  text-align:left; padding: 14px 16px; border-bottom:1px solid var(--line-soft);
  font-size:.9rem; white-space:nowrap;
}
.table-scroll thead th{
  font-family: var(--font-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  color: var(--fg-muted); font-weight:700; background: var(--bg-alt); white-space:nowrap;
}
.table-scroll tbody tr:last-child td{ border-bottom:none; }
.table-scroll td.amount, .table-scroll th.amount{ font-variant-numeric: tabular-nums; text-align:right; }
.table-scroll td.level{ font-weight:700; }
.table-scroll td.level small, .table-scroll th small{ display:block; font-weight:400; color: var(--fg-muted); font-size:.76rem; margin-top:2px; }
.table-scroll tbody tr:nth-child(even){ background: color-mix(in srgb, var(--bg-alt) 55%, transparent); }
.table-scroll th:first-child, .table-scroll td:first-child{
  position:sticky; left:0; background: var(--card-bg); z-index:1;
  box-shadow: 1px 0 0 var(--line-soft);
}
.table-scroll thead th:first-child{ background: var(--bg-alt); }
.table-scroll tbody tr:nth-child(even) td:first-child{ background: var(--bg-alt); }
.table-hint{ display:flex; align-items:center; gap:6px; font-size:.76rem; color: var(--fg-faint); margin-top:8px; }
.table-hint svg{ width:14px; height:14px; }
@media (min-width: 700px){ .table-hint{ display:none; } }
table.hours-table{ width:100%; border-collapse:collapse; margin-top:12px; }
table.hours-table th, table.hours-table td{ text-align:left; padding: 12px 10px; border-bottom:1px solid var(--line-soft); font-size:.92rem; }
table.hours-table th{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: var(--fg-muted); font-weight:700; }
table.hours-table td.time{ font-variant-numeric: tabular-nums; font-weight:700; }
.tab-buttons{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom: 26px; }
.tab-btn{ padding:10px 18px; border-radius:20px; border:1px solid var(--line); background:transparent; font-family:var(--font-body); font-weight:700; font-size:.86rem; cursor:pointer; color: var(--fg-muted); }
.tab-btn.active{ background: var(--fg); color: var(--bg); border-color: var(--fg); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.notice{ border:1px dashed var(--line); border-radius:2px; padding:18px 20px; font-size:.9rem; color: var(--fg-muted); background: var(--bg-alt); display:flex; gap:12px; align-items:flex-start; }
.notice svg{ width:20px; height:20px; flex-shrink:0; color: var(--accent); margin-top:2px; }
.event-card{ display:grid; grid-template-columns: 96px 1fr; gap:18px; padding: 20px 0; border-top:1px solid var(--line-soft); }
.event-card:first-child{ border-top:none; }
.event-date{ display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:2px; padding:10px 6px; text-align:center; background: var(--card-bg); height:fit-content; }
.event-date strong{ font-family: var(--font-display); font-size:1.6rem; line-height:1; }
.event-date span{ font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color: var(--fg-muted); }
.event-card h4{ font-size:1.08rem; margin-top:8px; }
.event-card .meta{ font-size:.82rem; color: var(--fg-muted); margin-top:4px; display:flex; flex-wrap:wrap; }
.event-card .meta span:not(:last-child)::after{ content:"\00a0\00b7\00a0"; color: var(--fg-faint); }
.event-card p{ margin-top:8px; color: var(--fg-muted); font-size:.92rem; }
.pill{ display:inline-flex; align-items:center; font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding: 3px 9px; border-radius:20px; background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.pill-nescas{ background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.pill-ness{ background: color-mix(in srgb, var(--accent-4) 18%, transparent); color: var(--accent-4); }
.pill-nescases{ background: color-mix(in srgb, var(--accent-2) 18%, transparent); color: var(--accent-2); }
.pill-all{ background: color-mix(in srgb, var(--fg) 10%, transparent); color: var(--fg-muted); }
.testi-carousel{ max-width: 740px; margin: 0 auto; }
.testi-track{ position:relative; min-height: 260px; display:flex; align-items:center; }
.testi-slide{ display:none; flex-direction:column; align-items:center; text-align:center; width:100%; animation: testiFade .5s ease; }
.testi-slide.active{ display:flex; }
@keyframes testiFade{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.testi-slide blockquote{
  margin:0; font-family: var(--font-display); font-style:italic; font-weight:500;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem); line-height:1.55; color: var(--fg);
  max-width: 58ch; position:relative; padding-top: 18px;
}
.testi-slide blockquote::before{
  content:"\201C"; position:absolute; top:-18px; left:50%; transform:translateX(-50%);
  font-family: var(--font-display); font-size:3.2rem; color: var(--accent-3); line-height:1; font-style:normal;
}
.testi-slide figcaption{ margin-top:24px; display:flex; align-items:center; gap:12px; }
.testi-avatar{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700; font-size:.95rem; color:#fff;
}
.testi-who{ display:flex; flex-direction:column; align-items:flex-start; gap:5px; text-align:left; }
.testi-who strong{ font-family: var(--font-display); font-weight:600; font-size:.98rem; }
.testi-controls{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:32px; }
.testi-arrow{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background: var(--card-bg); color: var(--fg); cursor:pointer;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition: background .2s ease, color .2s ease;
}
.testi-arrow:hover{ background: var(--accent); color:#fff; border-color:var(--accent); }
.testi-dots{ display:flex; align-items:center; gap:8px; }
.testi-dot{ width:8px; height:8px; padding:0; border-radius:4px; border:none; background: var(--line); cursor:pointer; transition: width .2s ease, background .2s ease; }
.testi-dot.active{ width:22px; background: var(--accent); }
.testi-note{ text-align:center; margin-top:22px; font-size:.76rem; color: var(--fg-faint); }
@media (max-width:600px){
  .testi-track{ min-height: 320px; }
  .testi-who{ align-items:center; text-align:center; }
  .testi-slide figcaption{ flex-direction:column; gap:8px; }
}
.newsletter-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:18px; }
@media (max-width:820px){ .newsletter-grid{ grid-template-columns: 1fr; } }
.news-card{ border:1px solid var(--line); border-radius:2px; overflow:hidden; background: var(--card-bg); box-shadow: var(--shadow); }
.news-card .thumb{ aspect-ratio: 16/10; position:relative; overflow:hidden; }
.news-card .thumb svg{ width:100%; height:100%; }
.news-card .body{ padding:18px; }
.news-card .body span.date{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color: var(--fg-muted); }
.news-card h4{ font-size:1.02rem; margin-top:6px; }
.gallery-filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.gallery-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; }
@media (max-width:900px){ .gallery-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:520px){ .gallery-grid{ grid-template-columns: 1fr 1fr; } }
.gallery-tile{ position:relative; border-radius:2px; overflow:hidden; aspect-ratio: 4/5; border:1px solid var(--line-soft); }
.gallery-tile svg{ width:100%; height:100%; }
.gallery-tile .label{ position:absolute; inset:auto 0 0 0; padding: 14px; background: linear-gradient(0deg, rgba(8,9,12,.75), transparent); color:#fff; font-size:.82rem; font-weight:700; }
.stat-band{ display:grid; grid-template-columns: repeat(4,1fr); gap:1px; background: var(--line-soft); border:1px solid var(--line-soft); border-radius:2px; overflow:hidden; }
@media (max-width:760px){ .stat-band{ grid-template-columns: repeat(2,1fr); } }
.stat-cell{ background: var(--card-bg); padding: 28px 22px; text-align:center; }
.stat-cell strong{ display:block; font-family: var(--font-display); font-size: clamp(1.6rem,3vw,2.3rem); }
.stat-cell span{ font-size:.76rem; color: var(--fg-muted); letter-spacing:.04em; }
.reveal{ opacity:1; transform:none; }
.js-ready .reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.js-ready .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
.contact-grid{ display:grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap:28px; align-items:start; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns: 1fr; } }
.contact-form h3, .contact-info h3{ font-size:1.35rem; margin:0 0 18px; }
.form-row{ margin-bottom:16px; }
.form-row.two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width: 560px){ .form-row.two{ grid-template-columns:1fr; } }
.contact-form label{ display:block; font-size:.84rem; font-weight:700; margin-bottom:6px; color: var(--fg); }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"],
.contact-form select, .contact-form textarea{
  width:100%; font:inherit; font-size:1rem; color: var(--fg); background: var(--bg);
  border:1px solid var(--line); border-radius:4px; padding:12px 14px;
}
.contact-form textarea{ resize:vertical; min-height:140px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  outline:2px solid var(--accent); outline-offset:1px; border-color: var(--accent);
}
.contact-form .btn{ border:none; cursor:pointer; }
.contact-form .btn[disabled]{ opacity:.6; cursor:default; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-status{ margin:14px 0 0; font-size:.92rem; min-height:1.2em; }
.form-status.ok{ color: var(--accent-2); font-weight:600; }
.form-status.err{ color: var(--accent); font-weight:600; }
.contact-info ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.contact-info li{ display:flex; flex-direction:column; gap:3px; font-size:.95rem; }
.contact-info a{ color:inherit; text-decoration:none; word-break:break-all; }
.contact-info a:hover{ color: var(--accent); }
.ci-label{ font-family: var(--font-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color: var(--fg-muted); font-weight:700; }
.quote-figure-photo{ background:#fff; }
.quote-figure-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.news-empty{ text-align:center; color: var(--fg-muted); padding:34px 26px; }
.news-empty p{ margin:0; font-size:1rem; }
.subnav, .table-scroll{ scrollbar-width:none; -ms-overflow-style:none; }
.subnav::-webkit-scrollbar, .table-scroll::-webkit-scrollbar{ display:none; width:0; height:0; }
.subnav.is-draggable, .table-scroll.is-draggable{ cursor:grab; }
.subnav.is-dragging, .table-scroll.is-dragging{ cursor:grabbing; user-select:none; }
.subnav.is-dragging a{ pointer-events:none; }
.home-gallery{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
@media (max-width:1100px){ .home-gallery{ grid-template-columns:repeat(2,1fr); } }
.home-gallery-item{ display:block; padding:0; border:none; background:var(--bg-deep); border-radius:4px; overflow:hidden; aspect-ratio:4/3; cursor:zoom-in; position:relative; }
.home-gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.home-gallery-item:hover img, .home-gallery-item:focus-visible img{ transform:scale(1.05); }
.home-gallery-item:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(16,11,7,.92); display:flex; align-items:center; justify-content:center; padding:56px 16px; }
.lightbox[hidden]{ display:none; }
.lightbox img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:2px; }
.lb-close, .lb-nav{ position:absolute; background:rgba(255,255,255,.14); color:#fff; border:none; cursor:pointer; border-radius:50%; width:44px; height:44px; font-size:1.7rem; line-height:1; display:flex; align-items:center; justify-content:center; }
.lb-close:hover, .lb-nav:hover{ background:rgba(255,255,255,.28); }
.lb-close{ top:14px; right:14px; }
.lb-nav{ top:50%; transform:translateY(-50%); }
.lb-prev{ left:12px; } .lb-next{ right:12px; }
.gallery-tile img{ width:100%; height:100%; object-fit:cover; object-position:55% center; display:block; }
.fee-deadline{ font-family:var(--mono, 'Space Mono', monospace); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-3); font-weight:700; margin:-6px 0 22px; }
.fee-card{ background:var(--card-bg); border:2px solid var(--fg); border-radius:12px; overflow:hidden; margin-bottom:28px; max-width:900px; }
.fee-card-head{ background:var(--fg); color:var(--bg); padding:14px 18px; }
.fee-card-head h3{ margin:0; font-size:1.1rem; color:inherit; }
.fee-pending{ margin:0; padding:20px 18px; color:var(--fg-muted); }
.fee-table{ width:100%; table-layout:fixed; border-collapse:collapse; }
.fee-table .col-level{ width:25%; } .fee-table .col-status{ width:22%; } .fee-table .col-fee{ width:18%; } .fee-table .col-inst1{ width:20%; } .fee-table .col-inst2{ width:15%; }
.fee-table th{ background:var(--bg); font-size:10px; font-weight:800; text-transform:uppercase; padding:14px 6px; border-bottom:3px solid var(--accent); border-right:1px solid var(--line-soft); text-align:left; white-space:normal; }
.fee-table td{ padding:12px 6px; border-bottom:2px solid var(--line-soft); border-right:1px solid var(--line-soft); font-size:.8rem; vertical-align:middle; white-space:normal; overflow-wrap:anywhere; }
.fee-table .cell-level{ font-weight:700; border-right:2px solid var(--accent); }
.fee-table .cell-all{ font-weight:800; font-size:10px; }
.fee-table .cell-new{ font-weight:700; color:var(--fg-muted); font-size:10px; }
.fee-table .cell-old{ font-weight:800; color:var(--accent); font-size:10px; }
.fee-table .row-split td{ border-top:1px solid var(--line-soft); }
.fee-table .cell-price{ font-weight:800; color:var(--accent); }
@media (max-width:600px){
  .fee-card{ border-radius:0; border-left:none; border-right:none; margin-left:-16px; margin-right:-16px; }
  .fee-table th, .fee-table td{ font-size:9px; padding:12px 2px 12px 4px; }
  .fee-table .cell-level{ font-size:10px; }
  .fee-table .col-level{ width:23%; } .fee-table .col-status{ width:24%; } .fee-table .col-fee{ width:19%; } .fee-table .col-inst1{ width:19%; } .fee-table .col-inst2{ width:15%; }
}
@media (max-width:600px){
  .panel:has(.hours-table){ padding:12px; }
  table.hours-table{ table-layout:fixed; }
  table.hours-table th, table.hours-table td{ padding:10px 4px; font-size:.78rem; overflow-wrap:anywhere; }
}
@media (max-width:820px){ .two-col{ grid-template-columns:minmax(0,1fr); } .two-col > *{ min-width:0; } .panel{ overflow-wrap:anywhere; } }
html{ font-size: 112.5%; }               
@media (max-width:820px){ html{ font-size: 106.25%; } }  
body{ font-size:1rem; line-height:1.75; letter-spacing:.003em; }
p{ line-height:1.8; }
h1,h2,h3,h4{ line-height:1.12; letter-spacing:-.012em; }
.wrap{ max-width:1280px; padding-inline:clamp(20px,5vw,64px); }
.measure{ max-width:66ch; }
section{ padding-block:clamp(72px,10vw,132px); }
.section-head{ margin-bottom:clamp(36px,5vw,64px); gap:28px; }
.section-head h2{ font-size:clamp(2rem,3.6vw,3rem); margin-top:16px; letter-spacing:-.018em; }
.page-hero{ padding-block:clamp(60px,9vw,104px) clamp(40px,6vw,68px); }
.page-hero h1{ font-size:clamp(2.3rem,5vw,3.8rem); }
.eyebrow{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; padding:8px 18px 8px 14px; }
.header-inner{ padding-block:18px; gap:12px; }
.brand-text strong{ font-size:1.7rem; letter-spacing:.06em; }
.brand-text span{ font-size:.8rem; letter-spacing:.2em; }
nav.primary-nav a.nav-link{ font-size:.95rem; padding:12px 16px; letter-spacing:.01em; }
.btn{ font-size:1rem; padding:.95em 1.9em; letter-spacing:.02em; }
.lang-switch button{ font-size:.82rem; }
@media (max-width:1180px){ nav.primary-nav a.nav-link{ font-size:.88rem; padding:12px 10px; } }
@media (max-width:980px){
  .header-inner{ padding-block:10px; }
  .brand-text strong{ font-size:clamp(.92rem,4.6vw,1.15rem); letter-spacing:0; }
  nav.primary-nav a.nav-link{ font-size:1rem; padding:14px 8px; }
}
.panel{ padding:clamp(24px,3.5vw,44px); }
.school-card .card-body, .school-card > div:not(.card-media){ line-height:1.7; }
.schools-grid{ gap:clamp(22px,3vw,40px); }
.cta-band{ padding:clamp(44px,7vw,84px); }
footer.site-footer{ padding-block:80px 36px; line-height:1.8; }
blockquote{ line-height:1.45; }
table.hours-table th, table.hours-table td{ padding:16px 12px; font-size:1rem; }
.fee-card-head{ padding:20px 24px; } .fee-card-head h3{ font-size:1.35rem; letter-spacing:.01em; }
.fee-table th{ font-size:.72rem; letter-spacing:.06em; padding:18px 10px; }
.fee-table td{ font-size:.95rem; padding:16px 10px; }
.fee-table .cell-all, .fee-table .cell-new, .fee-table .cell-old{ font-size:.78rem; letter-spacing:.03em; }
.fee-card{ margin-bottom:40px; }
@media (max-width:600px){
  .fee-table th{ font-size:9.5px; padding:14px 2px 14px 4px; letter-spacing:.02em; }
  .fee-table td{ font-size:11px; padding:15px 2px 15px 4px; }
  .fee-table .cell-level{ font-size:11.5px; }
  .fee-table .cell-all, .fee-table .cell-new, .fee-table .cell-old{ font-size:9.5px; letter-spacing:0; }
  .fee-card-head h3{ font-size:1.15rem; }
}
@media (max-width:600px){ .eyebrow{ letter-spacing:.08em; font-size:.7rem; } }
#testimonials .section-head{ justify-content:center; text-align:center; margin-bottom:clamp(40px,6vw,72px); }
#testimonials .section-head > div{ display:flex; flex-direction:column; align-items:center; }
#testimonials .section-head h2{ font-size:clamp(2.1rem,4.6vw,3.6rem); font-weight:400; letter-spacing:-.02em; max-width:16ch; margin-top:22px; }
#testimonials .section-head h2::after{ content:""; display:block; width:56px; height:2px; background:var(--accent-3); margin:26px auto 0; }
#testimonials .testi-carousel{ max-width:820px; }
.fee-intro{ padding:18px 24px 6px; color:var(--fg-muted); font-size:.95rem; line-height:1.7; }
.fee-5 th small{ display:block; font-weight:600; color:var(--accent); text-transform:none; letter-spacing:0; margin-top:3px; }
.fee-5 th:nth-child(1){ width:26%; } .fee-5 th:nth-child(n+2){ width:18.5%; }
.fee-5 td:nth-child(n+2){ text-align:right; padding-right:12px; } .fee-5 th:nth-child(n+2){ text-align:right; padding-right:12px; }
@media (max-width:600px){
  .fee-intro{ padding:14px 16px 4px; font-size:.85rem; }
  .fee-5 th:nth-child(1){ width:25%; } .fee-5 th:nth-child(n+2){ width:18.75%; }
  .fee-5 th:nth-child(n+2), .fee-5 td:nth-child(n+2){ padding-right:5px; }
  .fee-5 th{ font-size:8.5px; } .fee-5 td{ font-size:10.5px; } .fee-5 .cell-level{ font-size:10.5px; }
}
@media (max-width:600px){ .fee-5 th{ font-size:7.5px; letter-spacing:0; padding-left:3px; padding-right:3px; } .fee-5 th small{ font-size:8px; } }
.fee-4 th:nth-child(1){ width:34%; } .fee-4 th:nth-child(n+2){ width:22%; }
.fee-4 td{ height:56px; }
@media (max-width:600px){ .fee-4 td{ height:52px; } }
.album-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(16px,2.4vw,32px); }
.album{ position:relative; overflow:hidden; border-radius:18px; min-height:clamp(340px,40vw,500px); color:#fff; display:flex; isolation:isolate; box-shadow:0 30px 60px -34px rgba(42,34,27,.55); transition:transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s; }
.album:hover{ transform:translateY(-6px); box-shadow:0 40px 70px -32px rgba(42,34,27,.65); }
.album-1{ grid-column:span 7; } .album-2{ grid-column:span 5; } .album-3{ grid-column:span 5; } .album-4{ grid-column:span 7; }
.album > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s cubic-bezier(.16,1,.3,1); }
.album:hover > img{ transform:scale(1.05); }
.album-shade{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(20,12,8,.15) 25%,rgba(20,12,8,.88)); }
.album-2{ background:linear-gradient(150deg,#8E2B39,#4B1520); }
.album-3{ background:linear-gradient(150deg,#3E6049,#1F3328); }
.album-4{ background:linear-gradient(150deg,#C97A56,#7A3B25); }
.album-art{ position:absolute; top:clamp(24px,3vw,40px); right:clamp(24px,3vw,40px); width:clamp(72px,9vw,120px); color:rgba(255,255,255,.28); z-index:-1; }
.album-art svg{ width:100%; height:auto; }
.album::after{ content:""; position:absolute; inset:14px; border:1px solid rgba(255,255,255,.22); border-radius:12px; pointer-events:none; }
.album-body{ margin-top:auto; padding:clamp(30px,4vw,52px); width:100%; }
.album-tag{ display:inline-block; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; font-weight:700; color:#E9C98A; margin-bottom:16px; }
.album-body h2{ color:#fff; font-size:clamp(1.7rem,3vw,2.5rem); font-weight:400; letter-spacing:-.015em; margin-bottom:12px; max-width:18ch; }
.album-body p{ color:rgba(255,255,255,.82); font-size:1rem; max-width:34ch; margin-bottom:24px; }
.album-meta{ display:inline-flex; align-items:center; gap:10px; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; padding:10px 18px; border-radius:999px; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.25); }
.album-meta i{ width:6px; height:6px; border-radius:50%; background:#E9C98A; }
.album-meta.soon{ background:transparent; color:rgba(255,255,255,.8); }
@media (max-width:820px){
  .album-grid{ grid-template-columns:1fr; }
  .album-1,.album-2,.album-3,.album-4{ grid-column:auto; }
  .album{ min-height:340px; border-radius:14px; }
  .album-body{ padding:28px 24px; }
}
.album-shade{ background:linear-gradient(180deg,rgba(20,12,8,.1) 10%,rgba(20,12,8,.9) 85%); }
.album-4{ background:linear-gradient(150deg,#B0623F,#6B3220); }
.hero-full{ height:auto; max-height:none; min-height:clamp(600px, calc(100svh - 240px), 820px); }
.hero-track{ display:grid; flex:1 1 auto; }
.hero-slide{ position:relative; inset:auto; grid-area:1 / 1; min-height:0; }
.hero-slide-content{ padding-block:clamp(64px,9vw,120px); max-width:780px; }
.hero-slide-content > .hero-eyebrow{ margin-bottom:6px; }
.hero-counter-wrap{ margin-top:22px; }
.hero-full h1{ font-size:clamp(2.1rem,4.4vw,3.6rem); margin-top:18px; }
.hero-sub{ margin-top:22px; font-size:1.05rem; line-height:1.75; }
.hero-ctas{ margin-top:34px; gap:16px; }
.hero-timeline{ padding-block:20px; }
@media (max-width:760px){
  .hero-full{ height:auto; min-height:0; }
  .hero-slide-content{ padding-block:56px 64px; }
  .hero-counter{ font-size:clamp(2.2rem,11vw,2.8rem); }
  .hero-full h1{ font-size:clamp(1.9rem,8.4vw,2.4rem); }
  .hero-sub{ font-size:1rem; margin-top:18px; }
  .hero-ctas{ margin-top:28px; }
}
section.hero-full{ padding-block:0; }
.hero-slide-content{ display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-counter-wrap{ display:block; margin-top:26px; }
.hero-counter{ justify-content:center; }
.hero-timeline{ width:100%; max-width:1280px; }
.hero-eyebrow{ text-align:center; text-wrap:balance; }
@media (max-width:600px){ .hero-eyebrow{ font-size:.62rem; letter-spacing:.05em; padding:8px 14px; } }
