:root{
  --canvas-50:#faf8f4;
  --canvas-100:#f1ece2;
  --canvas-200:#e3d9c8;
  --canvas-300:#cabca2;
  --canvas-400:#a8926f;
  --canvas-500:#8a744f;
  --canvas-600:#6b5a40;
  --canvas-700:#4c4030;
  --canvas-800:#332a1f;
  --canvas-900:#211a13;
  --ink:#241d15;
  --paper:#faf8f4;
  --accent:#c9632f;
  --accent-dark:#a44e23;
  --accent-light:#e8a672;

  --radius-sm:0.5rem;
  --radius-md:1rem;
  --radius-lg:1.5rem;
  --radius-xl:2rem;
  --radius-pill:999px;

  --sp-1:0.5rem;
  --sp-2:1rem;
  --sp-3:1.5rem;
  --sp-4:2.25rem;
  --sp-5:3.5rem;
  --sp-6:5rem;
  --sp-7:7rem;
  --sp-8:9rem;

  --shadow-sm:0 1px 2px rgba(33,26,19,0.08), 0 1px 1px rgba(33,26,19,0.04);
  --shadow-md:0 6px 16px rgba(33,26,19,0.10), 0 2px 6px rgba(33,26,19,0.08);
  --shadow-lg:0 20px 40px rgba(33,26,19,0.16), 0 8px 16px rgba(33,26,19,0.08);
  --shadow-accent:0 14px 30px rgba(201,99,47,0.30), 0 4px 10px rgba(201,99,47,0.20);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Albert Sans', sans-serif;
  background:var(--canvas-50);
  color:var(--ink);
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
.canvas{ min-height:100vh; display:flex; flex-direction:column; }
main{ flex:1; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:'Crimson Pro', serif; margin:0; color:var(--canvas-900); }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; }

.hdg-display{ font-weight:600; font-size:clamp(2.6rem, 4.5vw + 1rem, 5.2rem); line-height:1.03; letter-spacing:-0.02em; color:var(--canvas-900); }
.hdg-1{ font-weight:600; font-size:clamp(2.1rem, 2.6vw + 1rem, 3.4rem); line-height:1.1; color:var(--canvas-900); }
.hdg-2{ font-weight:600; font-size:clamp(1.6rem, 1.6vw + 1rem, 2.4rem); line-height:1.2; color:var(--canvas-900); }
.hdg-3{ font-weight:600; font-size:clamp(1.25rem, 0.6vw + 1rem, 1.55rem); line-height:1.3; color:var(--canvas-900); }
.eyebrow{ text-transform:uppercase; letter-spacing:0.14em; font-size:0.78rem; font-weight:600; color:var(--accent-dark); margin-bottom:var(--sp-2); }
.eyebrow-inverse{ color:var(--canvas-200); }
.body-lead{ font-size:1.08rem; color:var(--canvas-700); max-width:64ch; }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }


.btn-primary{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  background:var(--accent); color:var(--paper);
  padding:0.85rem 1.7rem; border-radius:var(--radius-pill);
  font-weight:600; font-size:0.98rem;
  box-shadow:var(--shadow-accent);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease;
  min-height:44px;
}
.btn-primary:hover{ background:var(--accent-dark); transform:translateY(-3px); box-shadow:0 20px 40px rgba(201,99,47,0.36), 0 6px 14px rgba(201,99,47,0.22); }
.btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  background:transparent; color:var(--canvas-900);
  padding:0.82rem 1.65rem; border-radius:var(--radius-pill);
  border:1.5px solid var(--canvas-300);
  font-weight:600; font-size:0.98rem;
  transition:border-color .35s ease, background .35s ease, transform .35s ease;
  min-height:44px;
}
.btn-ghost:hover{ border-color:var(--accent); background:var(--canvas-100); transform:translateY(-2px); }
.btn-lg{ padding:1rem 2.1rem; font-size:1.02rem; }
.btn-sm{ padding:0.55rem 1.15rem; font-size:0.86rem; min-height:38px; }
.btn-header-cta{ display:none; }
@media(min-width:900px){ .btn-header-cta{ display:inline-flex; } }


.header-frame{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:0.9rem 1.25rem;
  perspective:1800px;
}
.header-flip{
  position:relative;
  max-width:1280px; margin:0 auto;
  transform-style:preserve-3d;
  transition:transform .8s cubic-bezier(.7,0,.3,1);
  border-radius:var(--radius-xl);
}
.header-flip.is-flipped{ transform:rotateX(180deg); }
.header-face{ backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:inherit; }
.header-face-front{ position:relative; z-index:2; background:transparent; transition:background .4s ease, box-shadow .4s ease, border-color .4s ease; }
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:0.6rem 1.1rem; border-radius:var(--radius-xl);
}
.header-frame.is-glass .header-face-front{
  background:rgba(250,248,244,0.72);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:var(--shadow-md);
  border-bottom:1px solid rgba(33,26,19,0.08);
}

.brand-mark{ display:flex; align-items:center; gap:0.6rem; flex-shrink:0; }
.brand-logo{ width:36px; height:36px; }
.brand-word{ font-family:'Crimson Pro', serif; font-weight:600; font-size:1.25rem; color:var(--canvas-900); }
.brand-word em{ font-style:italic; color:var(--accent); }

.nav-pill{
  display:none;
  align-items:center; gap:0.25rem;
  background:var(--canvas-100);
  border-radius:var(--radius-pill);
  padding:0.3rem;
  box-shadow:inset 0 1px 2px rgba(33,26,19,0.06);
}
@media(min-width:1080px){ .nav-pill{ display:flex; } }
.pill-link{
  padding:0.55rem 1.1rem; border-radius:var(--radius-pill);
  font-size:0.9rem; font-weight:500; color:var(--canvas-700);
  transition:background .3s ease, color .3s ease;
  white-space:nowrap;
}
.pill-link:hover{ background:var(--canvas-200); color:var(--canvas-900); }
.pill-link.is-active{ background:var(--canvas-900); color:var(--paper); }

.hamburger-btn{
  display:flex; flex-direction:column; gap:5px; padding:10px;
  width:44px; height:44px; align-items:center; justify-content:center;
  border-radius:var(--radius-md);
}
@media(min-width:1080px){ .hamburger-btn{ display:none; } }
.hamburger-btn span{ width:22px; height:2px; background:var(--canvas-900); border-radius:2px; transition:transform .3s ease; }

.header-face-back{
  position:absolute; top:0; left:0; right:0; height:100vh;
  transform:rotateX(180deg); z-index:1;
  background:var(--canvas-900);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.2rem;
  padding:2rem;
}
.drawer-close{
  position:absolute; top:1.5rem; right:1.5rem;
  width:44px; height:44px; border-radius:var(--radius-pill);
  background:rgba(250,248,244,0.1); color:var(--paper);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
  transition:background .3s ease;
}
.drawer-close:hover{ background:rgba(250,248,244,0.2); }
.drawer-nav{ display:flex; flex-direction:column; align-items:center; gap:1.4rem; }
.drawer-nav a{ font-family:'Crimson Pro', serif; font-size:1.9rem; font-weight:600; color:var(--canvas-100); transition:color .3s ease; }
.drawer-nav a:hover{ color:var(--accent-light); }
.drawer-foot{ color:var(--canvas-400); font-size:0.85rem; text-align:center; }
body.menu-open{ overflow:hidden; }


.stage{ padding:calc(var(--sp-7) + 3rem) 1.5rem var(--sp-6); position:relative; }
.stage-inner{
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:1fr; gap:var(--sp-6);
  align-items:center;
}
@media(min-width:1024px){ .stage-inner{ grid-template-columns:1.05fr 0.95fr; gap:var(--sp-5); } }
.stage-copy{ max-width:640px; }
.stage-lead{ margin-top:var(--sp-3); font-size:1.12rem; color:var(--canvas-700); max-width:52ch; }
.stage-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:var(--sp-4); }
.stage-meta{
  margin-top:var(--sp-5); display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem 1.2rem;
  padding-top:var(--sp-3); border-top:1px solid var(--canvas-200);
}
@media(min-width:640px){ .stage-meta{ grid-template-columns:repeat(4,auto); } }
.stage-meta div{ display:flex; flex-direction:column; gap:0.2rem; }
.stage-meta strong{ font-family:'Crimson Pro', serif; font-size:1.3rem; color:var(--canvas-900); }
.stage-meta span{ font-size:0.82rem; color:var(--canvas-500); }

.stage-visual{ position:relative; }
.atropos-hero{ width:100%; height:420px; border-radius:var(--radius-xl); }
.atropos-inner{ position:relative; width:100%; height:100%; border-radius:var(--radius-xl); overflow:visible; }
.stage-photo{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); }
.floating-badge{
  position:absolute; width:58px; height:58px; border-radius:var(--radius-pill);
  background:var(--paper); box-shadow:var(--shadow-md);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:var(--accent);
  animation:floaty 5s ease-in-out infinite;
}
.badge-1{ top:-18px; left:-18px; animation-delay:0s; }
.badge-2{ bottom:20%; right:-22px; animation-delay:1.2s; }
.badge-3{ bottom:-20px; left:22%; animation-delay:2.4s; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-14px); } }

.stage-scroll-cue{ text-align:center; margin-top:var(--sp-5); color:var(--canvas-400); font-size:1.1rem; animation:bob 2.2s ease-in-out infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(8px);} }

.stage-sub{ padding:calc(var(--sp-7) + 2rem) 1.5rem var(--sp-5); }
.stage-sub-inner{ max-width:820px; margin:0 auto; text-align:left; }
.stage-sub-grid{ max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:var(--sp-5); align-items:center; }
@media(min-width:1000px){ .stage-sub-grid{ grid-template-columns:1.1fr 0.9fr; } }
.stage-sub-photo .rounded-photo{ border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); width:100%; height:340px; object-fit:cover; }
.stage-legal{ padding:calc(var(--sp-7) + 2rem) 1.5rem var(--sp-4); }


.gallery{ padding:var(--sp-6) 1.5rem; max-width:1280px; margin:0 auto; }
.gallery-head{ max-width:760px; margin-bottom:var(--sp-5); }
.gallery-intro{ padding-top:var(--sp-5); padding-bottom:var(--sp-5); }
.intro-wrap{ max-width:900px; margin:0 auto; text-align:center; display:flex; flex-direction:column; gap:1.4rem; }
.intro-wrap .body-lead{ margin:0 auto; }

.shelf{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media(min-width:640px){ .shelf{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .shelf-services{ grid-template-columns:repeat(3,1fr); } .shelf-values{ grid-template-columns:repeat(4,1fr); } }

.display-case{
  background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-lg);
  padding:var(--sp-4); box-shadow:var(--shadow-sm);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.display-case:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--canvas-300); }
.case-icon{
  width:52px; height:52px; border-radius:var(--radius-md); background:var(--canvas-900); color:var(--accent-light);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:1.1rem;
}
.display-case h3{ margin-bottom:0.6rem; }
.display-case p{ color:var(--canvas-600); font-size:0.96rem; }


.curriculum-list{ display:flex; flex-direction:column; gap:var(--sp-5); }
.curriculum-row{ display:grid; grid-template-columns:1fr; gap:1.6rem; align-items:center; }
@media(min-width:860px){ .curriculum-row{ grid-template-columns:0.9fr 1.1fr; } .curriculum-reverse{ direction:rtl; } .curriculum-reverse > *{ direction:ltr; } }
.curriculum-photo{ width:100%; height:260px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.curriculum-index{ font-family:'Crimson Pro', serif; font-size:2.4rem; color:var(--canvas-300); font-weight:600; display:block; margin-bottom:0.4rem; }
.curriculum-copy p{ color:var(--canvas-600); margin-top:0.6rem; }


.journey-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
@media(min-width:960px){ .journey-grid{ grid-template-columns:0.85fr 1.15fr; gap:var(--sp-5); } }
.journey-visual{ position:relative; }
@media(min-width:960px){ .journey-visual{ position:sticky; top:110px; height:fit-content; } }
.journey-photo{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); object-fit:cover; height:380px; }
.journey-steps{ display:flex; flex-direction:column; gap:var(--sp-5); padding:var(--sp-2) 0; }
.journey-step{ padding:var(--sp-3) 0; border-top:1px solid var(--canvas-200); }
.journey-step:first-child{ border-top:none; }
.journey-num{
  display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border-radius:var(--radius-pill); background:var(--canvas-900); color:var(--paper); font-weight:600; margin-bottom:0.9rem;
}
.journey-step p{ color:var(--canvas-600); margin-top:0.5rem; }


.dual-cta-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media(min-width:900px){ .dual-cta-grid{ grid-template-columns:1fr 1fr; } }
.dual-cta-card{ padding:var(--sp-5); border-radius:var(--radius-xl); display:flex; flex-direction:column; gap:1.1rem; align-items:flex-start; }
.dual-cta-primary{ background:var(--canvas-900); box-shadow:var(--shadow-lg); }
.dual-cta-primary h3, .dual-cta-primary p{ color:var(--canvas-100); }
.dual-cta-secondary{ background:var(--canvas-100); border:1px solid var(--canvas-200); box-shadow:var(--shadow-sm); }
.dual-cta-secondary p{ color:var(--canvas-600); }


.faq-list{ display:flex; flex-direction:column; gap:1rem; max-width:900px; }
.faq-item{ background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.faq-question{
  width:100%; display:flex; align-items:center; justify-content:space-between; text-align:left;
  padding:1.2rem 1.5rem; font-weight:600; font-size:1.02rem; color:var(--canvas-900);
}
.faq-question i{ transition:transform .35s ease; color:var(--accent); }
.faq-item.is-open .faq-question i{ transform:rotate(180deg); }
.faq-answer{ max-height:0; overflow:hidden; transition:max-height .4s ease, padding .4s ease; padding:0 1.5rem; }
.faq-item.is-open .faq-answer{ max-height:240px; padding:0 1.5rem 1.4rem; }
.faq-answer p{ color:var(--canvas-600); }


.cta-simple-card{
  background:var(--canvas-900); border-radius:var(--radius-xl); padding:var(--sp-5);
  text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; box-shadow:var(--shadow-lg);
}
.cta-simple-card h2, .cta-simple-card p{ color:var(--canvas-100); }
.cta-simple-card p{ max-width:52ch; }


.story-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); align-items:center; }
@media(min-width:900px){ .story-grid{ grid-template-columns:0.9fr 1.1fr; gap:var(--sp-5); } .story-grid-reverse{ direction:rtl; } .story-grid-reverse > *{ direction:ltr; } }
.rounded-photo{ width:100%; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); object-fit:cover; height:340px; }
.story-text p{ color:var(--canvas-600); margin-top:0.9rem; }
.gallery-story-alt{ background:var(--canvas-100); border-radius:var(--radius-xl); }


.shelf-plans{ grid-template-columns:1fr; gap:1.6rem; }
@media(min-width:820px){ .shelf-plans{ grid-template-columns:1fr 1fr; } }
.plan-card{
  background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-xl);
  padding:var(--sp-5); box-shadow:var(--shadow-sm); position:relative;
  display:flex; flex-direction:column; gap:1rem;
}
.plan-card-highlight{ background:var(--canvas-900); border-color:var(--canvas-900); box-shadow:var(--shadow-lg); }
.plan-card-highlight h3, .plan-card-highlight .plan-desc{ color:var(--canvas-100); }
.plan-tag{ position:absolute; top:-14px; left:var(--sp-4); background:var(--accent); color:var(--paper); font-size:0.78rem; font-weight:600; padding:0.35rem 0.9rem; border-radius:var(--radius-pill); }
.plan-desc{ color:var(--canvas-600); }
.plan-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.7rem; }
.plan-list li{ display:flex; align-items:center; gap:0.7rem; font-size:0.95rem; }
.plan-card-highlight .plan-list li{ color:var(--canvas-200); }
.plan-list i{ color:var(--accent); }
.plan-note{ margin-top:var(--sp-4); font-size:0.85rem; color:var(--canvas-500); max-width:70ch; }


.format-grid{ display:grid; grid-template-columns:1fr; gap:1.6rem; }
@media(min-width:700px){ .format-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .format-grid{ grid-template-columns:repeat(4,1fr); } }
.format-item{ padding:var(--sp-3); }
.format-num{ font-family:'Crimson Pro', serif; font-size:1.6rem; color:var(--accent); font-weight:600; display:block; margin-bottom:0.6rem; }
.format-item p{ color:var(--canvas-600); margin-top:0.4rem; }


.contact-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
@media(min-width:960px){ .contact-grid{ grid-template-columns:1.2fr 0.8fr; } }
.contact-form-card{ background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-xl); padding:var(--sp-5); box-shadow:var(--shadow-md); }
.form-progress-head{ display:flex; align-items:center; gap:1rem; margin-bottom:var(--sp-4); }
.form-progress-track{ flex:1; height:6px; border-radius:var(--radius-pill); background:var(--canvas-200); overflow:hidden; }
.form-progress-bar{ width:50%; height:100%; background:var(--accent); border-radius:var(--radius-pill); transition:width .5s ease; }
.form-progress-head span{ font-size:0.85rem; color:var(--canvas-500); white-space:nowrap; }
.form-step.is-hidden{ display:none; }
.form-label{ display:block; font-weight:600; font-size:0.92rem; margin:1rem 0 0.5rem; color:var(--canvas-800); }
.form-input{
  width:100%; padding:0.85rem 1.05rem; border-radius:var(--radius-md); border:1px solid var(--canvas-300);
  background:var(--paper); font-family:inherit; font-size:0.98rem; color:var(--ink);
  transition:border-color .3s ease, box-shadow .3s ease;
}
.form-input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(201,99,47,0.14); }
.form-textarea{ min-height:150px; resize:vertical; }
.form-checkbox{ display:flex; align-items:flex-start; gap:0.7rem; margin-top:1.2rem; font-size:0.9rem; color:var(--canvas-600); }
.form-checkbox input{ margin-top:0.3rem; width:18px; height:18px; accent-color:var(--accent); flex-shrink:0; }
.form-checkbox a{ color:var(--accent-dark); text-decoration:underline; }
.form-next{ margin-top:var(--sp-4); width:100%; }
.form-step-actions{ display:flex; gap:1rem; margin-top:var(--sp-4); flex-wrap:wrap; }
.form-step-actions button{ flex:1; }

.contact-info-card{ background:var(--canvas-900); border-radius:var(--radius-xl); padding:var(--sp-5); box-shadow:var(--shadow-lg); color:var(--canvas-100); display:flex; flex-direction:column; gap:1.4rem; height:fit-content; }
.contact-info-card h3{ color:var(--paper); }
.contact-info-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
.contact-info-list li{ display:flex; align-items:center; gap:0.9rem; font-size:0.95rem; }
.contact-info-list i{ color:var(--accent-light); width:20px; }
.contact-info-list a{ transition:color .3s ease; }
.contact-info-list a:hover{ color:var(--accent-light); }
.contact-map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }


.timeline-row{ display:grid; grid-template-columns:1fr; gap:1.8rem; }
@media(min-width:820px){ .timeline-row{ grid-template-columns:repeat(4,1fr); } }
.timeline-item{ padding:var(--sp-3); border-left:2px solid var(--canvas-200); position:relative; }
.timeline-num{
  display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:var(--radius-pill);
  background:var(--accent); color:var(--paper); font-weight:600; position:absolute; left:-18px; top:0;
}
.timeline-item h3, .timeline-item p{ margin-left:0.6rem; }
.timeline-item p{ color:var(--canvas-600); margin-top:0.6rem; }


.legal-stack{ display:flex; flex-direction:column; gap:1.6rem; max-width:900px; margin:0 auto; }
.legal-card{
  background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-xl);
  padding:var(--sp-4); box-shadow:var(--shadow-md);
}
.legal-card h2{ font-size:1.35rem; margin-bottom:0.8rem; }
.legal-card p{ color:var(--canvas-600); }
.legal-stack-lettered .legal-card{ border-left:3px solid var(--accent); }
.legal-stack-plain .legal-card{ background:var(--canvas-100); }


.footer-plinth{ background:var(--canvas-900); color:var(--canvas-200); margin-top:auto; }
.footer-inner{ max-width:1280px; margin:0 auto; padding:var(--sp-6) 1.5rem var(--sp-4); display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
@media(min-width:900px){ .footer-inner{ grid-template-columns:1fr 1.2fr; } }
.footer-story{ display:flex; flex-direction:column; gap:1.2rem; align-items:flex-start; max-width:440px; }
.footer-brand{ font-size:1.5rem; }
.footer-brand em{ color:var(--accent-light); }
.footer-story p{ color:var(--canvas-300); }
.footer-columns{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; }
@media(min-width:560px){ .footer-columns{ grid-template-columns:repeat(3,1fr); } }
.footer-col{ display:flex; flex-direction:column; gap:0.8rem; }
.footer-col h4{ font-family:'Albert Sans'; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--accent-light); margin-bottom:0.3rem; }
.footer-col a{ color:var(--canvas-300); font-size:0.92rem; transition:color .3s ease; }
.footer-col a:hover{ color:var(--paper); }
.footer-col p{ color:var(--canvas-300); font-size:0.92rem; }
.footer-bottom{ border-top:1px solid rgba(250,248,244,0.1); padding:1.2rem 1.5rem; text-align:center; }
.footer-bottom p{ color:var(--canvas-400); font-size:0.82rem; }


.stage-thanks{ padding:calc(var(--sp-7) + 3rem) 1.5rem var(--sp-7); display:flex; justify-content:center; }
.thanks-wrap{ max-width:560px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.4rem; }
.envelope-scene{ width:180px; height:130px; position:relative; margin-bottom:1.5rem; }
.envelope{ position:relative; width:100%; height:100%; }
.envelope-back{ position:absolute; inset:0; background:var(--canvas-200); border-radius:var(--radius-md); box-shadow:var(--shadow-md); }
.envelope-front-left, .envelope-front-right{
  position:absolute; bottom:0; width:50%; height:70%; background:var(--canvas-300); z-index:3;
}
.envelope-front-left{ left:0; clip-path:polygon(0 0, 100% 100%, 0 100%); border-bottom-left-radius:var(--radius-md); }
.envelope-front-right{ right:0; clip-path:polygon(100% 0, 100% 100%, 0 100%); border-bottom-right-radius:var(--radius-md); }
.envelope-flap{
  position:absolute; top:0; left:0; right:0; height:60%;
  background:var(--canvas-400); clip-path:polygon(0 0, 100% 0, 50% 100%);
  transform-origin:top center; z-index:4;
  animation:flapOpen 2.4s ease forwards; animation-delay:0.3s;
}
@keyframes flapOpen{ 0%{ transform:rotateX(0deg);} 100%{ transform:rotateX(180deg);} }
.letter{
  position:absolute; left:50%; bottom:22%; width:70%; height:60%;
  background:var(--paper); border-radius:0.4rem; box-shadow:var(--shadow-sm);
  transform:translate(-50%, 0) scale(0.9); z-index:2;
  display:flex; flex-direction:column; gap:8px; padding:14px 12px;
  animation:letterRise 2.4s ease forwards; animation-delay:1.1s;
}
.letter span{ display:block; height:6px; background:var(--canvas-200); border-radius:3px; }
.letter span:nth-child(2){ width:80%; }
.letter span:nth-child(3){ width:60%; }
@keyframes letterRise{ 0%{ transform:translate(-50%, 10%) scale(0.9); opacity:0;} 40%{ opacity:1;} 100%{ transform:translate(-50%, -85%) scale(1); opacity:1;} }
.thanks-heading{ opacity:0; animation:fadeUp 0.8s ease forwards; animation-delay:2.1s; }
.thanks-text{ opacity:0; animation:fadeUp 0.8s ease forwards; animation-delay:2.4s; color:var(--canvas-600); max-width:52ch; }
.thanks-wrap > .btn-ghost{ opacity:0; animation:fadeUp 0.8s ease forwards; animation-delay:2.7s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px);} to{ opacity:1; transform:translateY(0);} }


.cookie-console{
  position:fixed; bottom:1.25rem; left:50%; transform:translateX(-50%);
  z-index:300; width:min(480px,92vw);
}
.cookie-card{
  background:var(--canvas-50); border:1px solid var(--canvas-200); border-radius:var(--radius-xl);
  padding:1.3rem 1.5rem; box-shadow:var(--shadow-lg);
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.cookie-console.is-expanded{ width:min(600px,94vw); }
.cookie-compact p{ font-size:0.9rem; color:var(--canvas-700); margin-bottom:1rem; }
.cookie-compact a{ color:var(--accent-dark); text-decoration:underline; }
.cookie-actions{ display:flex; gap:0.8rem; flex-wrap:wrap; }
.cookie-panel h3{ font-size:1.2rem; margin-bottom:0.6rem; }
.cookie-panel p{ font-size:0.88rem; color:var(--canvas-600); margin-bottom:1rem; }
.cookie-categories{ display:flex; flex-direction:column; gap:0.9rem; margin-bottom:1.2rem; max-height:260px; overflow-y:auto; }
.cookie-toggle{ display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem 0.8rem; padding:0.7rem; border-radius:var(--radius-md); background:var(--canvas-100); }
.cookie-toggle input{ width:18px; height:18px; accent-color:var(--accent); }
.cookie-toggle span{ font-weight:600; font-size:0.9rem; }
.cookie-toggle small{ display:block; width:100%; color:var(--canvas-500); font-size:0.78rem; }


.rounded-photo, .stage-photo, .curriculum-photo, .journey-photo{ transition:transform .5s ease; }

@media(max-width:640px){
  .stage{ padding-top:calc(var(--sp-6) + 2.5rem); }
  .stage-actions{ flex-direction:column; align-items:stretch; }
  .stage-actions .btn-primary, .stage-actions .btn-ghost{ width:100%; }
}