@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Baloo+2:wght@500;600;700;800&display=swap');

:root{
  --bg: #fff8ec;
  --bg2: #fdefd8;
  --fg: #4a3b33;
  --muted: #8a7a6d;
  --accent: #e1573a;
  --accent2: #b73f26;
  --accent3: #3fa34d;
  --accent4: #f2b705;
  --accent5: #3e8ede;
  --line: rgba(74,59,51,0.12);
  --nav-h: 96px;

  /* Per-page theme system — mirrors the real site's body.theme-* pattern */
  --red: #e1573a; --red-dark: #b73f26; --red-soft: #fde3dc; --red-glow: rgba(225,87,58,0.1);
  --blue: #3e8ede; --blue-dark: #2a689f; --blue-soft: #dcebfa; --blue-glow: rgba(62,142,222,0.1);
  --yellow: #f2b705; --yellow-dark: #a97a00; --yellow-soft: #fff3d1; --yellow-glow: rgba(242,183,5,0.12);
  --purple: #8b5fbf; --purple-dark: #6a3f9e; --purple-soft: #ece1f7; --purple-glow: rgba(139,95,191,0.12);
  --teal: #229c94; --teal-dark: #17726c; --teal-soft: #dcf2ef; --teal-glow: rgba(34,156,148,0.12);
  --green: #4c9a4c; --green-dark: #367336; --green-soft: #e2f2e2; --green-glow: rgba(76,154,76,0.12);

  --theme: var(--red);
  --theme-dark: var(--red-dark);
  --theme-soft: var(--red-soft);
  --theme-glow: var(--red-glow);

  --cursor-crayon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'><defs><linearGradient id='cg' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23ff6fa5'/><stop offset='0.2' stop-color='%233e8ede'/><stop offset='0.4' stop-color='%23ef5b3b'/><stop offset='0.6' stop-color='%238b5fbf'/><stop offset='0.8' stop-color='%23229c94'/><stop offset='1' stop-color='%23f2911e'/></linearGradient></defs><g transform='rotate(-40 18 18)'><path d='M18,3 L22,10 L22,29 Q22,31 20,31 L16,31 Q14,31 14,29 L14,10 Z' fill='url(%23cg)' stroke='%234a3b33' stroke-width='1.4' stroke-linejoin='round'/><path d='M18,3 L22,10 L14,10 Z' fill='%234a3b33' fill-opacity='0.18'/></g></svg>") 8 7, auto;
}

body.theme-red{ --theme: var(--red); --theme-dark: var(--red-dark); --theme-soft: var(--red-soft); --theme-glow: var(--red-glow); }
body.theme-blue{ --theme: var(--blue); --theme-dark: var(--blue-dark); --theme-soft: var(--blue-soft); --theme-glow: var(--blue-glow); }
body.theme-yellow{ --theme: var(--yellow); --theme-dark: var(--yellow-dark); --theme-soft: var(--yellow-soft); --theme-glow: var(--yellow-glow); }
body.theme-purple{ --theme: var(--purple); --theme-dark: var(--purple-dark); --theme-soft: var(--purple-soft); --theme-glow: var(--purple-glow); }
body.theme-teal{ --theme: var(--teal); --theme-dark: var(--teal-dark); --theme-soft: var(--teal-soft); --theme-glow: var(--teal-glow); }
body.theme-green{ --theme: var(--green); --theme-dark: var(--green-dark); --theme-soft: var(--green-soft); --theme-glow: var(--green-glow); }

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; background:var(--bg); }

body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Inter', sans-serif;
  overflow-x:hidden;
  cursor:var(--cursor-crayon);
}

/* Custom cursor stays on links/buttons too (browsers default those to a plain
   pointer, overriding inheritance) — form fields keep the normal text cursor. */
a, button, .nav__toggle, .faq-item__q{ cursor:var(--cursor-crayon); }
input, textarea, select{ cursor:auto; }

h1,h2,h3{
  font-family:'Baloo 2', sans-serif;
  font-weight:700;
  letter-spacing:-0.01em;
}

a{ color:inherit; }

.accent{ color:var(--theme-dark); }

#grain{
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0.03;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------------- NAV ---------------- */
.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  height:var(--nav-h);
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 40px;
  background:rgba(255,248,236,0.65);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:background 0.3s ease, border-color 0.3s ease;
}
.nav.is-scrolled{
  background:rgba(255,248,236,0.94);
  border-bottom-color:var(--line);
}

.nav__logo{ display:flex; align-items:center; }
.nav__logo img{ height:70px; width:auto; display:block; }

.nav__links{ display:flex; gap:32px; }
.nav__links a{
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  color:var(--fg);
  opacity:0.75;
  position:relative;
  padding-bottom:4px;
  transition:opacity 0.25s ease;
}
.nav__links a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0%;
  height:2px;
  border-radius:2px;
  background:var(--theme);
  transition:width 0.3s ease;
}
.nav__links a:hover{ opacity:1; }
.nav__links a:hover::after, .nav__links a.active::after{ width:100%; }
.nav__links a.active{ opacity:1; }

.nav__cta{
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  color:#fff;
  background:var(--theme-dark);
  padding:11px 22px;
  border-radius:999px;
  transition:background 0.25s ease, transform 0.25s ease;
}
.nav__cta:hover{ background:var(--fg); transform:translateY(-1px); }

.nav__toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  padding:8px;
}
.nav__toggle span{ width:22px; height:2px; background:var(--fg); border-radius:2px; transition:transform 0.25s ease, opacity 0.25s ease; }
.nav.is-open .nav__toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav__toggle span:nth-child(2){ opacity:0; }
.nav.is-open .nav__toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

main{ position:relative; z-index:2; }

/* ---------------- BUTTONS ---------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 30px;
  border-radius:999px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  transition:background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}
.btn--solid{ background:var(--fg); color:var(--bg); }
.btn--solid:hover{ background:var(--theme-dark); color:#fff; transform:translateY(-2px); }
.btn--ghost{ border:1.5px solid var(--line); color:var(--fg); }
.btn--ghost:hover{ border-color:var(--fg); transform:translateY(-2px); }
.btn--lg{ padding:19px 38px; font-size:15px; }
.cta .btn{ position:relative; z-index:2; }

/* ---------------- HERO ---------------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:calc(var(--nav-h) + 20px) 40px 0;
  overflow:hidden;
  background:
    radial-gradient(ellipse 40% 40% at 85% 20%, rgba(225,87,58,0.1), transparent 65%),
    radial-gradient(ellipse 40% 40% at 15% 70%, rgba(62,142,222,0.08), transparent 65%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}

.hero__grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:48px;
  align-items:center;
  width:100%;
}

.hero__content{ max-width:600px; }

.eyebrow{
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:22px;
  font-weight:600;
}

.hero__title{
  font-size:clamp(38px, 5.4vw, 72px);
  line-height:1.08;
}
.hero__title .line{ display:block; overflow:hidden; }

.hero__sub{
  margin-top:26px;
  font-size:17px;
  color:var(--muted);
  max-width:460px;
  line-height:1.5;
}

.hero__actions{
  margin-top:38px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.hero__status{
  margin-top:28px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--muted);
  font-weight:500;
}
.status-dot{
  width:8px; height:8px;
  border-radius:50%;
  background:var(--accent3);
  box-shadow:0 0 0 4px rgba(63,163,77,0.15);
}
.status-dot.closed{ background:var(--muted); box-shadow:0 0 0 4px rgba(138,122,109,0.15); }

.hero__art{
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 30px 60px rgba(74,59,51,0.18);
}
.hero__art img{ width:100%; height:100%; object-fit:contain; background:var(--bg2); display:block; aspect-ratio:4/5; }

.scroll-cue{
  position:absolute;
  bottom:40px;
  left:40px;
  z-index:2;
  display:flex;
  align-items:center;
  gap:12px;
}
.scroll-cue span{
  width:1px; height:44px;
  background:var(--line);
  position:relative;
  overflow:hidden;
  display:block;
}
.scroll-cue span::after{
  content:'';
  position:absolute;
  top:-100%; left:0;
  width:100%; height:100%;
  background:var(--theme-dark);
  animation:scrollDown 1.8s ease-in-out infinite;
}
.scroll-cue p{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); font-weight:600; }
@keyframes scrollDown{ 0%{top:-100%;} 50%{top:0%;} 100%{top:100%;} }

/* ---------------- CONFETTI SHAPES ---------------- */
.confetti{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:visible; }
.confetti__shape{ position:absolute; opacity:0.85; }

.shape--circle{ border-radius:50%; }
.shape--ring{ border-radius:50%; background:transparent !important; border-width:6px; border-style:solid; }
.shape--block{ border-radius:16px; transform:rotate(-8deg); }
.shape--blob{ border-radius:62% 38% 55% 45% / 48% 55% 45% 52%; }
.shape--star{ clip-path:polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }

.c-red{ background:var(--accent); border-color:var(--accent); }
.c-yellow{ background:var(--accent4); border-color:var(--accent4); }
.c-blue{ background:var(--accent5); border-color:var(--accent5); }
.c-green{ background:var(--accent3); border-color:var(--accent3); }

@media (prefers-reduced-motion: no-preference){
  .float-a{ animation-name:floatA; animation-timing-function:ease-in-out; animation-iteration-count:infinite; }
  .float-b{ animation-name:floatB; animation-timing-function:ease-in-out; animation-iteration-count:infinite; }
}
@keyframes floatA{ 0%,100%{ transform:translateY(0) rotate(0deg); } 50%{ transform:translateY(-18px) rotate(8deg); } }
@keyframes floatB{ 0%,100%{ transform:translateY(0) rotate(-8deg); } 50%{ transform:translateY(16px) rotate(2deg); } }

/* ---------------- MARQUEE ---------------- */
.marquee{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
  padding:16px 0;
  background:var(--bg2);
  position:relative;
  z-index:2;
}
.marquee__track{
  display:flex;
  gap:48px;
  width:max-content;
  animation:marquee 24s linear infinite;
}
.marquee__track span{
  font-family:'Baloo 2', sans-serif;
  font-weight:600;
  font-size:14px;
  color:var(--muted);
  white-space:nowrap;
}
.marquee__track span:nth-child(6n+1){ color:var(--theme-dark); }
.marquee__track span:nth-child(6n+2){ color:var(--accent3); }
.marquee__track span:nth-child(6n+3){ color:var(--accent5); }
.marquee__track span:nth-child(6n+4){ color:var(--accent4); }
.marquee__track span:nth-child(6n+5){ color:var(--purple); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------------- RAIL ---------------- */
.rail-section{ padding:100px 0 80px; position:relative; z-index:2; }
.rail-section__header{ padding:0 40px; margin-bottom:36px; display:flex; align-items:baseline; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.rail-section__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }

.rail{ padding-left:40px; }
.rail__track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  padding-bottom:20px;
  padding-right:40px;
  scrollbar-width:thin;
  scrollbar-color:var(--theme-dark) transparent;
}
.rail__track::-webkit-scrollbar{ height:6px; }
.rail__track::-webkit-scrollbar-thumb{ background:var(--line); border-radius:99px; }

.rail__card{
  flex:0 0 auto;
  width:240px;
  scroll-snap-align:start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  padding-bottom:18px;
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1), border-color 0.3s ease, box-shadow 0.4s ease;
}
.rail__card:hover{ transform:translateY(-6px); border-color:var(--theme-dark); box-shadow:0 20px 40px rgba(74,59,51,0.1); }
.rail__photo{ width:100%; aspect-ratio:4/3; overflow:hidden; margin-bottom:16px; background:var(--bg2); }
.rail__photo img{ width:100%; height:100%; object-fit:contain; display:block; transition:transform 0.5s ease; }
.rail__card:hover .rail__photo img{ transform:scale(1.06); }
.rail__card h3{ font-size:17px; padding:0 18px; }
.rail__card p{ color:var(--muted); font-size:13px; margin-top:6px; padding:0 18px; font-family:'Inter', sans-serif; font-weight:500; }

/* ---------------- PROGRAMS GRID ---------------- */
.styles{ padding:80px 40px 100px; position:relative; z-index:2; }
.styles__header{ margin-bottom:44px; }
.styles__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }

.styles__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}

.style-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  aspect-ratio:4/3;
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  color:#fff;
  border:1px solid var(--line);
  padding:30px;
  isolation:isolate;
}
.style-card__photo{ position:absolute; inset:0; z-index:0; background:var(--bg2); }
.style-card__photo img{ width:100%; height:100%; object-fit:contain; display:block; transition:transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.style-card:hover .style-card__photo img{ transform:scale(1.08); }

.style-card__scrim{ position:absolute; inset:0; z-index:0; opacity:0.55; mix-blend-mode:multiply; transition:opacity 0.4s ease; }
.style-card:hover .style-card__scrim{ opacity:0.4; }
.style-card__scrim--red{ background:linear-gradient(180deg, transparent 20%, var(--accent) 100%); }
.style-card__scrim--yellow{ background:linear-gradient(180deg, transparent 20%, var(--accent4) 100%); }
.style-card__scrim--blue{ background:linear-gradient(180deg, transparent 20%, var(--accent5) 100%); }
.style-card__scrim--green{ background:linear-gradient(180deg, transparent 20%, var(--accent3) 100%); }

.style-card__label{ position:relative; z-index:1; }
.style-card__label h3{ font-size:clamp(22px,2.6vw,28px); text-shadow:0 2px 12px rgba(0,0,0,0.35); }
.style-card__label p{
  font-size:14px;
  margin-top:8px;
  max-width:300px;
  font-family:'Inter', sans-serif;
  font-weight:500;
  text-shadow:0 1px 8px rgba(0,0,0,0.35);
}
.style-card__arrow{
  display:inline-block;
  margin-top:18px;
  font-size:18px;
  font-weight:700;
  transform:translateX(0);
  transition:transform 0.3s ease;
}
.style-card:hover .style-card__arrow{ transform:translateX(8px); }

/* ---------------- BANNER ---------------- */
.banner{
  position:relative;
  z-index:2;
  padding:140px 40px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--bg2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.banner__text{
  font-size:clamp(32px, 5.6vw, 62px);
  line-height:1.15;
  max-width:900px;
}

/* ---------------- PROCESS ---------------- */
.process{ padding:100px 40px; position:relative; z-index:2; }
.process__header{ margin-bottom:48px; }
.process__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }

.process__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.step{ border-top:2px solid var(--line); padding-top:22px; }
.step__num{ display:block; font-family:'Baloo 2', sans-serif; font-weight:700; color:var(--theme-dark); font-size:14px; margin-bottom:14px; }
.step:nth-child(1) .step__num{ color:var(--accent); }
.step:nth-child(2) .step__num{ color:var(--accent4); }
.step:nth-child(3) .step__num{ color:var(--accent5); }
.step:nth-child(4) .step__num{ color:var(--accent3); }
.step h3{ font-size:19px; margin-bottom:10px; }
.step p{ color:var(--muted); font-size:14px; line-height:1.55; font-family:'Inter', sans-serif; font-weight:500; }

/* ---------------- FINAL CTA ---------------- */
.cta{
  position:relative;
  z-index:2;
  padding:140px 40px 100px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
}
.cta__title{ position:relative; z-index:2; font-size:clamp(36px, 6.6vw, 74px); line-height:1.08; margin-bottom:40px; }

/* ---------------- FOOTER ---------------- */
.footer{
  position:relative;
  z-index:2;
  padding:60px 40px 40px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:32px;
  background:var(--bg2);
}
.footer__logo{ height:60px; width:auto; margin-bottom:14px; }
.footer__col p{ color:var(--muted); font-size:13px; margin-top:10px; line-height:1.6; }
.footer__heading{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-bottom:14px !important; font-weight:700; }
.footer__col a{ display:block; text-decoration:none; color:var(--fg); font-size:14px; margin-bottom:10px; opacity:0.85; font-weight:500; }
.footer__col a:hover{ opacity:1; color:var(--theme-dark); }
.footer__bottom{ grid-column:1 / -1; margin-top:24px; padding-top:24px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }

/* ---------------- PAGE HEADER (inner pages) ---------------- */
.page-header{
  position:relative;
  padding:calc(var(--nav-h) + 64px) 40px 60px;
  background:
    radial-gradient(ellipse 45% 55% at 85% 10%, var(--theme-glow), transparent 65%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
  border-bottom:1px solid var(--line);
}
.page-header h1{ font-size:clamp(34px, 5.6vw, 60px); max-width:760px; }
.page-header p{ margin-top:18px; color:var(--muted); font-size:16px; max-width:560px; }

/* ---------------- VALUES / CHECKLIST GRID (About) ---------------- */
.values{ padding:90px 40px; }
.values__header{ margin-bottom:44px; max-width:640px; }
.values__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }
.values__grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.value-card{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px 28px; }
.value-card__icon{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:20px; font-size:18px; font-weight:700; color:#fff; }
.value-card:nth-child(1) .value-card__icon{ background:var(--accent); }
.value-card:nth-child(2) .value-card__icon{ background:var(--accent5); }
.value-card:nth-child(3) .value-card__icon{ background:var(--accent3); }
.value-card h3{ font-size:19px; margin-bottom:10px; }
.value-card p{ color:var(--muted); font-size:14px; line-height:1.6; }

.checklist{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:14px 32px; padding:40px; margin:0 40px 90px; background:var(--bg2); border-radius:24px; }
.checklist li{ display:flex; align-items:flex-start; gap:12px; font-size:15px; color:var(--fg); }
.checklist li::before{ content:'✓'; flex-shrink:0; width:24px; height:24px; border-radius:50%; background:var(--accent3); color:#fff; font-size:13px; display:flex; align-items:center; justify-content:center; font-weight:700; }

/* ---------------- PROVIDER BIO (About) ---------------- */
.provider{ padding:0 40px 100px; display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center; }
.provider__photo{ border-radius:28px; overflow:hidden; box-shadow:0 30px 60px rgba(74,59,51,0.15); background:var(--bg2); }
.provider__photo img{ width:100%; height:100%; object-fit:contain; display:block; aspect-ratio:4/5; }

.provider__photo--placeholder{
  aspect-ratio:4/5;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:linear-gradient(160deg, var(--bg2), #fff);
}
.flower-anim{ width:44%; height:auto; overflow:visible; }
.flower-anim__center{ transform-origin:100px 100px; }
.provider__photo-caption{ font-size:13px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); }

@media (prefers-reduced-motion: no-preference){
  .flower-anim__petals{ transform-origin:100px 100px; animation:flowerSpin 14s linear infinite; }
  .flower-anim__center{ animation:flowerPulse 2.4s ease-in-out infinite; }
}
@keyframes flowerSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
@keyframes flowerPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.1); } }
.provider__eyebrow{ font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:16px; }
.provider h2{ font-size:clamp(28px,4vw,42px); margin-bottom:18px; }
.provider p{ color:var(--muted); font-size:15px; line-height:1.7; margin-bottom:16px; }
.provider p:last-child{ margin-bottom:0; }

/* ---------------- SCHEDULE TABLE (Programs) ---------------- */
.schedule{ padding:0 40px 100px; }
.schedule__header{ margin-bottom:36px; max-width:640px; }
.schedule__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }
.schedule-table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.schedule-table th, .schedule-table td{ text-align:left; padding:16px 24px; border-bottom:1px solid var(--line); font-size:14px; }
.schedule-table th{ background:var(--bg2); font-family:'Baloo 2', sans-serif; font-weight:700; color:var(--fg); text-transform:uppercase; font-size:12px; letter-spacing:0.06em; }
.schedule-table td:first-child{ font-weight:600; color:var(--theme-dark); white-space:nowrap; }
.schedule-table tr:last-child td{ border-bottom:none; }
.schedule-table tr:hover td{ background:var(--bg2); }

/* ---------------- PHOTO BANNER (Tuition) ---------------- */
.photo-banner{
  margin:0 40px 60px;
  border-radius:24px;
  overflow:hidden;
  background:var(--bg2);
  box-shadow:0 20px 50px rgba(74,59,51,0.1);
}
.photo-banner img{ width:100%; max-height:360px; object-fit:contain; display:block; }

/* ---------------- PRICING CARDS (Tuition) ---------------- */
.pricing{ padding:90px 40px; }
.pricing__header{ margin-bottom:44px; max-width:640px; }
.pricing__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }
.pricing__grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.price-card{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:36px 30px; position:relative; }
.price-card--featured{ border-color:var(--theme-dark); box-shadow:0 20px 50px rgba(74,59,51,0.1); }
.price-card__badge{ position:absolute; top:-13px; left:30px; background:var(--theme-dark); color:#fff; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:6px 14px; border-radius:999px; }
.price-card h3{ font-size:19px; margin-bottom:6px; }
.price-card__amount{ font-family:'Baloo 2', sans-serif; font-size:38px; font-weight:700; color:var(--theme-dark); margin:14px 0 4px; }
.price-card__amount span{ font-size:14px; font-weight:500; color:var(--muted); font-family:'Inter', sans-serif; }
.pricing__note{ text-align:center; margin-top:32px; font-family:'Baloo 2', sans-serif; font-size:22px; font-weight:700; color:var(--theme-dark); }
.price-card p{ color:var(--muted); font-size:14px; line-height:1.6; }

.policy-list{ list-style:none; padding:0 40px 90px; margin:0; max-width:820px; }
.policy-list li{ padding:16px 0; border-top:1px solid var(--line); font-size:14px; color:var(--muted); line-height:1.6; }
.policy-list li strong{ color:var(--fg); }

/* ---------------- FAQ ACCORDION (Tuition) ---------------- */
.faq{ padding:0 40px 100px; }
.faq__header{ margin-bottom:36px; max-width:640px; }
.faq__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }
.faq-item{ border-top:1px solid var(--line); }
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item__q{ width:100%; text-align:left; background:none; border:none; padding:22px 4px; font-family:'Baloo 2', sans-serif; font-size:16px; font-weight:600; color:var(--fg); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-item__q::after{ content:'+'; font-size:22px; color:var(--theme-dark); flex-shrink:0; transition:transform 0.3s ease; }
.faq-item.is-open .faq-item__q::after{ transform:rotate(45deg); }
.faq-item__a{ max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.faq-item__a p{ padding:0 4px 22px; color:var(--muted); font-size:14px; line-height:1.65; max-width:700px; }

/* ---------------- DOWNLOADS (Tuition) ---------------- */
.downloads{ padding:0 40px 100px; }
.downloads__header{ margin-bottom:32px; max-width:640px; }
.downloads__header h2{ font-size:clamp(28px,4vw,44px); margin-top:8px; }
.downloads__grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.download-card{ display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; text-decoration:none; color:var(--fg); transition:border-color 0.3s ease, transform 0.3s ease; }
.download-card:hover{ border-color:var(--theme-dark); transform:translateY(-3px); }
.download-card__icon{ width:40px; height:40px; border-radius:12px; background:var(--bg2); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; color:var(--theme-dark); flex-shrink:0; }
.download-card h4{ font-size:14px; margin-bottom:2px; }
.download-card span{ font-size:12px; color:var(--muted); }

/* ---------------- GALLERY GRID ---------------- */
.gallery{ padding:90px 40px 100px; }
.gallery__grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.gallery__item{ border-radius:18px; overflow:hidden; aspect-ratio:1/1; background:var(--bg2); }
.gallery__item img{ width:100%; height:100%; object-fit:contain; display:block; transition:transform 0.5s ease; }
.gallery__item:hover img{ transform:scale(1.08); }

/* ---------------- CONTACT ---------------- */
.contact-grid{ padding:0 40px 100px; display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; }
.contact-info{ display:flex; flex-direction:column; gap:28px; }
.contact-info__photo{ border-radius:20px; overflow:hidden; background:var(--bg2); box-shadow:0 20px 50px rgba(74,59,51,0.1); }
.contact-info__photo img{ width:100%; height:100%; object-fit:contain; display:block; aspect-ratio:4/3; }
.contact-info__item h3{ font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; font-weight:700; }
.contact-info__item p{ font-size:16px; color:var(--fg); line-height:1.6; }
.map-placeholder{ margin-top:8px; border-radius:20px; background:var(--bg2); border:1px dashed var(--line); padding:40px; text-align:center; color:var(--muted); font-size:14px; }

.contact-form{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:36px; display:flex; flex-direction:column; gap:18px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field label{ font-size:13px; font-weight:600; color:var(--fg); }
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--line); border-radius:12px; padding:12px 14px; font-family:'Inter', sans-serif;
  font-size:14px; color:var(--fg); background:var(--bg); resize:vertical;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ outline:2px solid var(--accent5); outline-offset:1px; }

/* ---------------- 404 ---------------- */
.error-page{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:calc(var(--nav-h) + 40px) 40px 60px; }
.error-page__code{ font-family:'Baloo 2', sans-serif; font-size:clamp(80px,14vw,160px); font-weight:800; color:var(--theme-dark); line-height:1; }
.error-page h1{ font-size:clamp(26px,4vw,38px); margin:12px 0 16px; }
.error-page p{ color:var(--muted); font-size:16px; max-width:440px; margin-bottom:32px; }

/* ---------------- REVEAL BASE STATE ---------------- */
.reveal{ opacity:0; transform:translateY(40px); }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 900px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__art{ order:-1; max-width:420px; margin:0 auto; }
  .styles__grid{ grid-template-columns:1fr; }
  .process__grid{ grid-template-columns:1fr 1fr; }
  .footer{ grid-template-columns:1fr 1fr; }
  .values__grid{ grid-template-columns:1fr; }
  .checklist{ grid-template-columns:1fr; margin:0 20px 60px; padding:28px; }
  .provider{ grid-template-columns:1fr; padding:0 20px 60px; }
  .pricing__grid{ grid-template-columns:1fr; }
  .downloads__grid{ grid-template-columns:1fr; }
  .gallery__grid{ grid-template-columns:repeat(2, 1fr); }
  .contact-grid{ grid-template-columns:1fr; padding:0 20px 60px; }
  .form-row{ grid-template-columns:1fr; }
  .schedule-table{ font-size:13px; }
  .schedule-table th, .schedule-table td{ padding:12px 14px; }
}

@media (max-width: 640px){
  .nav{ padding:0 20px; }
  .nav__toggle{ display:flex; }
  .nav__links{
    position:absolute;
    top:100%; left:0; right:0;
    flex-direction:column;
    gap:0;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    max-height:0;
    overflow:hidden;
    transition:max-height 0.35s ease;
  }
  .nav.is-open .nav__links{ max-height:400px; }
  .nav__links a{ padding:16px 20px; opacity:1; }
  .nav__links a::after{ display:none; }
  .nav__links a.active{ color:var(--theme-dark); font-weight:700; }
  .nav__cta{ font-size:12px; padding:9px 16px; }
  .hero{ padding:calc(var(--nav-h) + 16px) 20px 0; }
  .rail-section__header, .styles, .process, .banner, .cta, .footer, .page-header, .values, .schedule, .pricing, .policy-list, .faq, .downloads, .gallery{ padding-left:20px; padding-right:20px; }
  .rail{ padding-left:20px; }
  .process__grid{ grid-template-columns:1fr; }
  .footer{ grid-template-columns:1fr; }
  .gallery__grid{ grid-template-columns:repeat(2, 1fr); gap:10px; }
}
