

:root{
  --mustard:#c9962e;
  --terracotta:#bf5b3f;
  --olive:#6f7350;
  --rose:#c98a7a;
  --cream:#f5ecda;
  --ink:#2b2318;

  --paper: color-mix(in oklch, var(--cream), white 10%);
  --surface: color-mix(in oklch, var(--cream), white 30%);
  --surfaceDeep: color-mix(in oklch, var(--cream), black 4%);
  --border: color-mix(in oklch, var(--ink), white 80%);
  --borderStrong: color-mix(in oklch, var(--ink), white 65%);
  --textMuted: color-mix(in oklch, var(--ink), white 32%);
  --textFaint: color-mix(in oklch, var(--ink), white 50%);

  --mustardLight: color-mix(in oklch, var(--mustard), white 35%);
  --mustardDark: color-mix(in oklch, var(--mustard), black 22%);
  --terracottaLight: color-mix(in oklch, var(--terracotta), white 32%);
  --terracottaDark: color-mix(in oklch, var(--terracotta), black 20%);
  --oliveLight: color-mix(in oklch, var(--olive), white 45%);
  --oliveDark: color-mix(in oklch, var(--olive), black 18%);
  --roseLight: color-mix(in oklch, var(--rose), white 30%);

  --shadowSm: 0 1px 2px color-mix(in oklch, var(--ink), transparent 90%), 0 1px 1px color-mix(in oklch, var(--ink), transparent 94%);
  --shadowMd: 0 10px 24px -8px color-mix(in oklch, var(--ink), transparent 76%), 0 3px 8px -2px color-mix(in oklch, var(--ink), transparent 88%);
  --shadowLg: 0 28px 54px -14px color-mix(in oklch, var(--ink), transparent 70%), 0 10px 20px -6px color-mix(in oklch, var(--ink), transparent 84%);

  --radiusSm: 10px;
  --radiusMd: 18px;
  --radiusLg: 30px;
  --radiusPill: 999px;

  --maxWidth: 1200px;
  --sectionPad: clamp(3.5rem, 7vw, 7rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:'Work Sans', sans-serif; margin:0 0 .6em; color:var(--ink); font-weight:700; letter-spacing:-0.01em; }
p{ margin:0 0 1em; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea{ font-family:inherit; font-size:1rem; }

.sectionTag{
  display:inline-block;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--terracottaDark);
  background: color-mix(in oklch, var(--terracotta), white 88%);
  padding:.4em 1em;
  border-radius:var(--radiusPill);
  margin-bottom:1.1em;
}
.sectionTag-onDark{
  color:var(--cream);
  background: color-mix(in oklch, var(--cream), transparent 78%);
}
.sectionLead{
  font-size:clamp(1rem,.5vw + 1rem,1.15rem);
  color:var(--textMuted);
  max-width:640px;
}


.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  padding:.9em 1.7em;
  border-radius:var(--radiusMd);
  font-weight:600;
  font-size:.98rem;
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease, background .35s ease, color .35s ease, border-color .35s ease;
  min-height:48px;
  white-space:nowrap;
}
.btnPrimary{
  background:var(--terracotta);
  color:var(--cream);
  box-shadow:var(--shadowMd);
}
.btnPrimary:hover{ background:var(--terracottaDark); transform:translateY(-2px); box-shadow:var(--shadowLg); }
.btnGhost{ color:var(--ink); }
.btnGhost:hover{ color:var(--terracottaDark); transform:translateX(3px); }
.btnLight{ background:var(--cream); color:var(--terracottaDark); box-shadow:var(--shadowMd); }
.btnLight:hover{ transform:translateY(-2px); box-shadow:var(--shadowLg); }
.btnOutlineDark{ border:2px solid var(--ink); color:var(--ink); }
.btnOutlineDark:hover{ background:var(--ink); color:var(--cream); }
.btnOutlineLight{ border:2px solid var(--cream); color:var(--cream); }
.btnOutlineLight:hover{ background:var(--cream); color:var(--terracottaDark); }
.btnGhostSmall,.btnOutlineSmall,.btnPrimarySmall{
  padding:.55em 1.1em; font-size:.85rem; border-radius:var(--radiusSm); min-height:40px;
}
.btnGhostSmall{ color:var(--ink); }
.btnGhostSmall:hover{ color:var(--terracottaDark); }
.btnOutlineSmall{ border:1.5px solid var(--borderStrong); color:var(--ink); }
.btnOutlineSmall:hover{ border-color:var(--ink); }
.btnPrimarySmall{ background:var(--olive); color:var(--cream); box-shadow:var(--shadowSm); }
.btnPrimarySmall:hover{ background:var(--oliveDark); }


.siteHeader{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background: color-mix(in oklch, var(--cream), transparent 6%);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
  transition:transform .5s cubic-bezier(.3,.7,.2,1), opacity .4s ease;
}
.siteHeader-hidden{ transform:translateY(-115%); opacity:0; pointer-events:none; }
.siteHeader_inner{
  max-width:var(--maxWidth); margin:0 auto; padding:.9rem 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.siteHeader_logo{ display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1.15rem; }
.siteHeader_nav{ display:flex; gap:1.8rem; }
.siteHeader_nav a{ font-weight:500; font-size:.95rem; color:var(--textMuted); position:relative; padding:.3em 0; transition:color .3s ease; }
.siteHeader_nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--terracotta);
  transition:right .3s ease;
}
.siteHeader_nav a:hover, .siteHeader_nav a.isActive{ color:var(--ink); }
.siteHeader_nav a:hover::after, .siteHeader_nav a.isActive::after{ right:0; }
.siteHeader_burger{
  display:none; width:46px; height:46px; align-items:center; justify-content:center;
  border-radius:var(--radiusMd); background:var(--surface); font-size:1.1rem; color:var(--ink);
  transition:background .3s ease;
}
.siteHeader_burger:hover{ background:var(--borderStrong); }

.miniNav{
  position:fixed; top:1.1rem; right:1.3rem; z-index:110;
  opacity:0; transform:translateY(-16px) scale(.85); pointer-events:none;
  transition:opacity .4s ease, transform .4s cubic-bezier(.3,.7,.2,1);
}
.miniNav-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.miniNav_btn{
  width:54px; height:54px; border-radius:var(--radiusPill);
  background:var(--terracotta); color:var(--cream); font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadowLg);
  transition:transform .3s ease, background .3s ease;
}
.miniNav_btn:hover{ transform:scale(1.06); background:var(--terracottaDark); }


.mobileMenu{
  position:fixed; inset:0; z-index:300;
  background: var(--ink);
  clip-path: circle(0% at var(--originX, 90%) var(--originY, 5%));
  transition: clip-path .65s cubic-bezier(.25,.8,.25,1);
  pointer-events:none;
  display:flex; align-items:center; justify-content:center;
}
.mobileMenu.is-open{
  clip-path: circle(150% at var(--originX, 90%) var(--originY, 5%));
  pointer-events:auto;
}
.mobileMenu_close{
  position:absolute; top:1.4rem; right:1.4rem; width:46px; height:46px;
  border-radius:var(--radiusPill); background:color-mix(in oklch, var(--cream), transparent 85%);
  color:var(--cream); font-size:1.3rem; display:flex; align-items:center; justify-content:center;
  transition:background .3s ease, transform .3s ease;
}
.mobileMenu_close:hover{ background:color-mix(in oklch, var(--cream), transparent 70%); transform:rotate(90deg); }
.mobileMenu_nav{ display:flex; flex-direction:column; gap:1.6rem; text-align:center; }
.mobileMenu_nav a{
  font-size:clamp(1.6rem, 5vw, 2.4rem); font-weight:600; color:var(--cream);
  opacity:0; transform:translateY(14px);
  transition:opacity .45s ease, transform .45s ease, color .3s ease;
}
.mobileMenu.is-open .mobileMenu_nav a{ opacity:1; transform:translateY(0); }
.mobileMenu.is-open .mobileMenu_nav a:nth-child(1){ transition-delay:.15s; }
.mobileMenu.is-open .mobileMenu_nav a:nth-child(2){ transition-delay:.22s; }
.mobileMenu.is-open .mobileMenu_nav a:nth-child(3){ transition-delay:.29s; }
.mobileMenu.is-open .mobileMenu_nav a:nth-child(4){ transition-delay:.36s; }
.mobileMenu.is-open .mobileMenu_nav a:nth-child(5){ transition-delay:.43s; }
.mobileMenu_nav a:hover{ color:var(--mustardLight); }
body.noScroll{ overflow:hidden; }


.mainHero{
  position:relative; padding:clamp(8rem,14vw,11rem) 1.5rem 4rem;
  max-width:var(--maxWidth); margin:0 auto;
  display:grid; grid-template-columns:1.3fr .9fr; gap:3rem; align-items:end;
}
.mainHero_inner{ grid-column:1; }
.mainHero_eyebrow{
  font-size:.85rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--oliveDark);
}
.mainHero_title{
  font-size:clamp(2.6rem, 5vw + 1rem, 5.2rem);
  line-height:1.05; font-weight:700; margin:.3em 0 .5em;
}
.mainHero_mask{
  display:block;
  background:linear-gradient(100deg, var(--terracotta) 10%, var(--mustard) 45%, var(--rose) 80%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.mainHero_plain{ display:block; color:var(--ink); font-weight:500; font-size:.62em; margin-top:.25em; }
.mainHero_lead{ max-width:560px; font-size:clamp(1rem,.4vw + 1rem,1.2rem); color:var(--textMuted); }
.mainHero_actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.6rem; }
.mainHero_figure{
  grid-column:2; align-self:end; border-radius:var(--radiusLg) var(--radiusLg) var(--radiusSm) var(--radiusLg);
  overflow:hidden; box-shadow:var(--shadowLg); transform:translateY(1rem);
}
.mainHero_figure img{ height:100%; object-fit:cover; aspect-ratio:4/5; }


section{ padding:var(--sectionPad) 1.5rem; }
.introSplit, .servicesSection, .cascadeSection, .personaSection, .ctaSplit, .faqSection, .valuesSection, .scheduleSection, .signupSection, .contactSplit, .contactInfoStrip{
  max-width:var(--maxWidth); margin:0 auto;
}


.introSplit{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:3.5rem; align-items:center;
}
.introSplit-reverse{ direction:rtl; }
.introSplit-reverse > *{ direction:ltr; }
.introSplit_media{ border-radius:var(--radiusLg); overflow:hidden; box-shadow:var(--shadowLg); }
.introSplit_media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.introSplit_content h2{ font-size:clamp(1.7rem,2vw+1rem,2.5rem); }
.introSplit_content p{ color:var(--textMuted); max-width:560px; }
.introSplit_points{ margin-top:1.4rem; display:flex; flex-direction:column; gap:.7rem; }
.introSplit_points li{ display:flex; gap:.7em; align-items:flex-start; color:var(--ink); font-weight:500; }
.introSplit_points i{ color:var(--oliveDark); margin-top:.25em; }


.servicesSection_head{ text-align:center; max-width:680px; margin:0 auto 3rem; }
.servicesSection_head .sectionLead{ margin:0 auto; }
.servicesGrid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;
}
.serviceCard{
  background:var(--surface); border-radius:var(--radiusMd); padding:2rem 1.7rem;
  box-shadow:var(--shadowSm);
  border:1px solid var(--border);
  transition:transform .4s cubic-bezier(.25,.8,.25,1), box-shadow .4s ease, background .4s ease;
}
.serviceCard:hover{ transform:translateY(-8px); box-shadow:var(--shadowLg); background:var(--paper); }
.serviceCard_icon{
  width:54px; height:54px; border-radius:var(--radiusSm) var(--radiusMd) var(--radiusSm) var(--radiusMd);
  background:linear-gradient(135deg, var(--mustard), var(--terracotta));
  color:var(--cream); display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:1.2rem;
  box-shadow:var(--shadowSm);
}
.serviceCard_title{ font-size:1.15rem; margin-bottom:.5em; }
.serviceCard_text{ color:var(--textMuted); font-size:.95rem; margin:0; }
.servicesSection_media{ margin-top:3rem; border-radius:var(--radiusLg); overflow:hidden; box-shadow:var(--shadowLg); }
.servicesSection_media img{ width:100%; height:340px; object-fit:cover; }


.cascadeSection_head{ text-align:center; margin-bottom:3.5rem; }
.cascadeStack{ display:flex; flex-direction:column; gap:0; }
.cascadeCard{
  background:var(--cream); border:1px solid var(--border); border-radius:var(--radiusLg);
  padding:2.2rem 2.4rem; box-shadow:var(--shadowMd); max-width:760px;
  position:relative;
}
.cascadeCard_num{
  position:absolute; top:-14px; left:-14px; width:46px; height:46px; border-radius:var(--radiusSm);
  background:var(--olive); color:var(--cream); font-weight:700; font-size:.95rem;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadowMd);
}
.cascadeCard h3{ font-size:1.25rem; margin:.4em 0 .5em; }
.cascadeCard p{ color:var(--textMuted); margin:0; }
.cascadeCard-1{ margin-left:0; margin-top:1.5rem; z-index:4; }
.cascadeCard-2{ margin-left:6%; margin-top:-1.2rem; z-index:3; background:var(--surface); }
.cascadeCard-3{ margin-left:12%; margin-top:-1.2rem; z-index:2; }
.cascadeCard-4{ margin-left:18%; margin-top:-1.2rem; z-index:1; background:var(--surface); }


.personaSection_head{ text-align:center; margin-bottom:3rem; }
.personaGrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.personaCard{
  background:var(--paper); border:1px solid var(--border); border-radius:var(--radiusMd);
  padding:1.8rem; text-align:left;
  transition:transform .35s ease, box-shadow .35s ease;
}
.personaCard:hover{ transform:translateY(-6px); box-shadow:var(--shadowMd); }
.personaCard i{ font-size:1.5rem; color:var(--terracottaDark); margin-bottom:.8rem; display:block; }
.personaCard h3{ font-size:1.05rem; margin-bottom:.4em; }
.personaCard p{ color:var(--textMuted); font-size:.92rem; margin:0; }


.ctaSplit{
  display:grid; grid-template-columns:1fr 1fr; gap:1.6rem;
}
.ctaSplit_primary, .ctaSplit_secondary{
  border-radius:var(--radiusLg); padding:2.6rem; box-shadow:var(--shadowMd);
  transition:transform .35s ease, box-shadow .35s ease;
}
.ctaSplit_primary{ background:linear-gradient(135deg, var(--terracotta), var(--mustardDark)); color:var(--cream); }
.ctaSplit_primary h2{ color:var(--cream); }
.ctaSplit_primary p{ color:color-mix(in oklch, var(--cream), transparent 12%); }
.ctaSplit_secondary{ background:var(--surface); border:1px solid var(--border); }
.ctaSplit_secondary p{ color:var(--textMuted); }
.ctaSplit_primary:hover, .ctaSplit_secondary:hover{ transform:translateY(-5px); box-shadow:var(--shadowLg); }


.faqSection_head{ text-align:center; margin-bottom:3rem; }
.faqGrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.faqItem{
  background:var(--paper); border-left:3px solid var(--terracotta); border-radius:var(--radiusSm);
  padding:1.5rem 1.7rem; box-shadow:var(--shadowSm);
}
.faqItem h3{ font-size:1.05rem; margin-bottom:.4em; }
.faqItem p{ color:var(--textMuted); margin:0; font-size:.94rem; }


.valuesSection_head{ text-align:center; margin-bottom:3rem; }
.valuesGrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.valueCard{
  background:var(--cream); border:1px solid var(--border); border-radius:var(--radiusMd);
  padding:1.8rem; transition:transform .35s ease, box-shadow .35s ease;
}
.valueCard:hover{ transform:translateY(-6px); box-shadow:var(--shadowMd); }
.valueCard i{ font-size:1.5rem; color:var(--oliveDark); margin-bottom:.7rem; display:block; }
.valueCard h3{ font-size:1.05rem; margin-bottom:.4em; }
.valueCard p{ color:var(--textMuted); font-size:.92rem; margin:0; }


.pageHero{ padding:0; }
.pageHero-nested{
  padding:clamp(9rem,14vw,11.5rem) 1.5rem 4rem;
  background:linear-gradient(135deg, var(--ink), var(--terracottaDark));
  border-radius:0 0 var(--radiusLg) var(--radiusLg);
}
.pageHero_content{ max-width:720px; margin:0 auto; text-align:center; }
.pageHero_content h1{ color:var(--cream); font-size:clamp(2.2rem,4vw+1rem,3.6rem); }
.pageHero_content p{ color:color-mix(in oklch, var(--cream), transparent 15%); font-size:1.1rem; }


.scheduleSection_head{ text-align:center; margin-bottom:2.5rem; }
.scheduleTable{ display:flex; flex-direction:column; border:1px solid var(--border); border-radius:var(--radiusMd); overflow:hidden; box-shadow:var(--shadowSm); }
.scheduleRow{ display:grid; grid-template-columns:.6fr 2fr 2fr; padding:1rem 1.4rem; border-bottom:1px solid var(--border); }
.scheduleRow:last-child{ border-bottom:none; }
.scheduleRow-head{ background:var(--olive); color:var(--cream); font-weight:600; }
.scheduleRow:not(.scheduleRow-head):nth-child(odd){ background:var(--paper); }
.scheduleRow:not(.scheduleRow-head):nth-child(even){ background:var(--surface); }
.scheduleRow span:first-child{ font-weight:700; color:var(--terracottaDark); }
.scheduleRow-head span:first-child{ color:var(--cream); }


.signupSection_head, .contactSplit_form{ }
.signupSection_head{ text-align:center; max-width:640px; margin:0 auto 2.5rem; }
.signupForm{ max-width:640px; margin:0 auto; display:flex; flex-direction:column; gap:1.2rem; }
.formRow{ display:flex; flex-direction:column; gap:.45rem; }
.formRow label{ font-weight:600; font-size:.9rem; }
.formRow input, .formRow textarea{
  padding:.85em 1em; border-radius:var(--radiusSm); border:1.5px solid var(--border);
  background:var(--paper); transition:border-color .3s ease, box-shadow .3s ease;
}
.formRow input:focus, .formRow textarea:focus{
  outline:none; border-color:var(--terracotta); box-shadow:0 0 0 4px color-mix(in oklch, var(--terracotta), transparent 82%);
}
.formRow-checkbox{ flex-direction:row; align-items:flex-start; gap:.6em; }
.checkboxLabel{ display:flex; gap:.6em; align-items:flex-start; font-size:.9rem; color:var(--textMuted); cursor:pointer; }
.checkboxLabel input{ margin-top:.25em; width:20px; height:20px; accent-color:var(--terracotta); flex-shrink:0; }
.formSubmit{ align-self:flex-start; margin-top:.5rem; }

.contactSplit{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:stretch; }
.contactSplit_map{ border-radius:var(--radiusLg); overflow:hidden; box-shadow:var(--shadowLg); min-height:420px; }
.contactSplit_form{ background:var(--surface); border-radius:var(--radiusLg); padding:2.4rem; box-shadow:var(--shadowMd); }
.contactSplit_form .contactForm{ display:flex; flex-direction:column; gap:1.2rem; margin-top:1.2rem; }

.contactInfoStrip{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; padding-top:0; }
.contactInfoStrip_item{
  display:flex; gap:1rem; align-items:flex-start; background:var(--paper); border:1px solid var(--border);
  border-radius:var(--radiusMd); padding:1.4rem 1.6rem;
}
.contactInfoStrip_item i{ font-size:1.3rem; color:var(--terracottaDark); margin-top:.2rem; }
.contactInfoStrip_item h4{ margin:0 0 .2em; font-size:1rem; }
.contactInfoStrip_item p{ margin:0; color:var(--textMuted); font-size:.92rem; }


.thanksHero{
  min-height:calc(100vh - 76px); display:flex; align-items:center; justify-content:center; text-align:center;
  background:linear-gradient(150deg, var(--terracotta), var(--mustardDark) 60%, var(--oliveDark));
  padding:6rem 1.5rem 4rem;
}
.thanksHero_content{ max-width:640px; }
.thanksHero_icon{ font-size:3rem; color:var(--cream); display:block; margin-bottom:1rem; }
.thanksHero_content h1{ color:var(--cream); font-size:clamp(2.4rem,5vw,4rem); }
.thanksHero_content p{ color:color-mix(in oklch, var(--cream), transparent 10%); font-size:1.1rem; margin-bottom:2rem; }


.legalPage{ max-width:820px; margin:0 auto; padding-top:clamp(8rem,12vw,10rem); }
.legalHero{ padding-top:0; padding-bottom:1rem; border-bottom:1px solid var(--border); margin-bottom:2rem; }
.legalHero h1{ font-size:clamp(2rem,3vw+1rem,2.8rem); }
.legalHero p{ color:var(--textFaint); font-size:.9rem; }
.legalContent h2{ font-size:1.3rem; margin-top:2rem; }
.legalContent p{ color:var(--textMuted); }
.legalList{ display:flex; flex-direction:column; gap:.6rem; margin:0 0 1.2rem; }
.legalList li{ padding-left:1.4rem; position:relative; color:var(--textMuted); }
.legalList li::before{ content:'—'; position:absolute; left:0; color:var(--terracottaDark); }
.cookieTable{ width:100%; border-collapse:collapse; margin:1rem 0 1.6rem; font-size:.9rem; }
.cookieTable th, .cookieTable td{ border:1px solid var(--border); padding:.7em .9em; text-align:left; }
.cookieTable th{ background:var(--surface); }


.pageFooter{ background:var(--ink); color:var(--cream); margin-top:0; }
.pageFooter-onThanks{ margin-top:0; }
.pageFooter_top{
  max-width:var(--maxWidth); margin:0 auto; padding:4rem 1.5rem 2.5rem;
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:2.5rem;
}
.pageFooter_logo{ display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1.15rem; margin-bottom:1rem; color:var(--cream); }
.pageFooter_brand p{ color:color-mix(in oklch, var(--cream), transparent 25%); font-size:.92rem; max-width:340px; }
.pageFooter_address{ font-size:.92rem; color:color-mix(in oklch, var(--cream), transparent 15%); line-height:2; }
.pageFooter_address a{ color:var(--cream); transition:color .3s ease; }
.pageFooter_address a:hover{ color:var(--mustardLight); }
.pageFooter_links{ display:flex; flex-direction:column; gap:.7rem; }
.pageFooter_links h4{ color:var(--cream); font-size:.95rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.4rem; }
.pageFooter_links a{ color:color-mix(in oklch, var(--cream), transparent 22%); font-size:.92rem; transition:color .3s ease; }
.pageFooter_links a:hover{ color:var(--cream); }
.pageFooter_bottom{
  border-top:1px solid color-mix(in oklch, var(--cream), transparent 85%);
  padding:1.4rem 1.5rem; max-width:var(--maxWidth); margin:0 auto;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem;
  font-size:.82rem; color:color-mix(in oklch, var(--cream), transparent 35%);
}


.cookieBanner{
  position:fixed; left:0; right:0; bottom:0; z-index:400;
  background:var(--cream); border-top:2px solid var(--terracotta);
  box-shadow:0 -12px 30px -10px color-mix(in oklch, var(--ink), transparent 80%);
  display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
  padding:1.6rem 2rem;
  transform:translateY(120%); transition:transform .5s cubic-bezier(.25,.8,.25,1);
}
.cookieBanner.is-visible{ transform:translateY(0); }
.cookieBanner_text h4{ margin-bottom:.4rem; font-size:1.05rem; }
.cookieBanner_text p{ margin:0; font-size:.88rem; color:var(--textMuted); }
.cookieBanner_text a{ color:var(--terracottaDark); text-decoration:underline; }
.cookieBanner_controls{ display:flex; flex-direction:column; gap:.9rem; }
.cookieBanner_toggles{ display:flex; flex-wrap:wrap; gap:1rem; }
.cookieToggle{ display:flex; align-items:center; gap:.45em; font-size:.85rem; color:var(--ink); cursor:pointer; }
.cookieToggle input{ width:18px; height:18px; accent-color:var(--terracotta); }
.cookieBanner_buttons{ display:flex; flex-wrap:wrap; gap:.7rem; }


@media (max-width:1024px){
  .servicesGrid{ grid-template-columns:repeat(2,1fr); }
  .personaGrid{ grid-template-columns:repeat(2,1fr); }
  .valuesGrid{ grid-template-columns:repeat(2,1fr); }
  .faqGrid{ grid-template-columns:1fr; }
  .mainHero{ grid-template-columns:1fr; }
  .mainHero_figure{ grid-column:1; margin-top:2rem; }
  .cascadeCard-2, .cascadeCard-3, .cascadeCard-4{ margin-left:4%; }
}

@media (max-width:860px){
  .siteHeader_nav, .siteHeader_cta{ display:none; }
  .siteHeader_burger{ display:flex; }
  .introSplit, .introSplit-reverse{ grid-template-columns:1fr; direction:ltr; }
  .contactSplit{ grid-template-columns:1fr; }
  .ctaSplit{ grid-template-columns:1fr; }
  .pageFooter_top{ grid-template-columns:1fr 1fr; }
  .cookieBanner{ grid-template-columns:1fr; }
}

@media (max-width:640px){
  section{ padding:2.6rem 1.2rem; }
  .mainHero{ padding-top:7.5rem; }
  .servicesGrid{ grid-template-columns:1fr; }
  .personaGrid{ grid-template-columns:1fr; }
  .valuesGrid{ grid-template-columns:1fr; }
  .pageFooter_top{ grid-template-columns:1fr; }
  .scheduleRow{ grid-template-columns:1fr; gap:.2rem; }
  .scheduleRow span:first-child{ font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; }
  .contactInfoStrip{ grid-template-columns:1fr; }
  .cascadeCard-1,.cascadeCard-2,.cascadeCard-3,.cascadeCard-4{ margin-left:0; padding:1.6rem 1.6rem 1.6rem 2rem; }
  .mainHero_figure img{ aspect-ratio:16/10; }
}