/* =========================================================
   NEPTUNE PENSION — DESIGN SYSTEM
   ========================================================= */

:root{
  /* --- Brand palette --- */
  --blue:        #668DA3;
  --blue-dark:   #426779;
  --blue-light:  #B9D1DD;
  --blue-pale:   #E5F0F4;

  --wine:        #824A5A;
  --wine-dark:   #633542;
  --rose:        #B77B88;

  --apricot:     #E9A77F;
  --apricot-hover:#DF936A;
  --peach:       #F4C9AF;
  --champagne:   #E6C98D;

  --cream:       #FFF9F0;
  --ivory:       #FFFCF7;
  --sand:        #EBDCC8;
  --sand-soft:   #F4E8D7;
  --blush:       #F8E9E4;

  --ink:         #25343B;
  --slate:       #536872;
  --muted:       #78909B;
  --wine-heading:#633542;
  --white:       #FFFFFF;

  /* --- Type --- */
  --font-serif: "Newsreader", "DM Serif Display", "Lora", Georgia, serif;
  --font-sans:  "Manrope", "DM Sans", "Plus Jakarta Sans", -apple-system, sans-serif;

  /* --- Layout --- */
  --container: 1220px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --gap: clamp(1.25rem, 3vw, 2.5rem);

  /* --- Motion --- */
  --ease: cubic-bezier(.22,.61,.36,1);
  --dur: .7s;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:1rem;}
h1,h2,h3,h4,p,figure{margin:0;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

:focus-visible{
  outline:3px solid var(--wine);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- Typography ---------- */
h1,h2,h3,.serif{ font-family:var(--font-serif); font-weight:500; color:var(--wine-heading); letter-spacing:-0.01em;}
h1{ font-size:clamp(2.4rem, 5.4vw, 4.6rem); line-height:1.05; font-weight:500;}
h2{ font-size:clamp(1.9rem, 3.4vw, 3rem); line-height:1.12; }
h3{ font-size:clamp(1.3rem, 1.9vw, 1.7rem); line-height:1.25; }
h4{ font-family:var(--font-sans); font-size:1.05rem; font-weight:700; color:var(--ink);}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.8rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--wine);
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--apricot);display:inline-block;}
.lede{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--slate); max-width:42ch;}
p.body{color:var(--slate); max-width:62ch;}
.text-muted{color:var(--muted);}
.container{max-width:var(--container); margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.85rem 1.6rem;
  border-radius:var(--radius-sm);
  font-weight:700; font-size:.98rem;
  border:1.5px solid transparent;
  transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
  white-space:nowrap;
}
.btn svg{transition:transform .25s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{ background:var(--wine); color:var(--white); }
.btn-primary:hover{ background:var(--wine-dark); }
.btn-secondary{ background:var(--blue); color:var(--white); }
.btn-secondary:hover{ background:var(--blue-dark); }
.btn-light{ background:var(--apricot); color:var(--ink); }
.btn-light:hover{ background:var(--apricot-hover); }
.btn-outline{ background:transparent; border-color:var(--blue-dark); color:var(--blue-dark); }
.btn-outline:hover{ background:var(--blue-dark); color:var(--white); }
.btn-ghost{ background:transparent; color:var(--wine); padding:.4rem 0; }
.btn-ghost:hover{ color:var(--wine-dark); }
.btn:active{transform:translateY(1px);}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--cream);
  border-bottom:1px solid rgba(37,52,59,.07);
  transition:padding .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(255,249,240,.86);
  backdrop-filter:blur(10px);
  box-shadow:0 8px 24px -12px rgba(37,52,59,.18);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.35rem 0; transition:padding .3s var(--ease);
}
.site-header.is-scrolled .header-inner{padding:.85rem 0;}
.brand{ display:flex; align-items:center; gap:.6rem; margin-right:clamp(1.5rem,4vw,3.5rem); flex-shrink:0; }
.brand-logo{ height:52px; width:auto; display:block; transition:height .3s var(--ease); }
.site-header.is-scrolled .brand-logo{ height:42px; }
.main-nav{display:flex; align-items:center; gap:2.1rem;}
.main-nav > ul{display:flex; align-items:center; gap:2.1rem;}
.main-nav a.nav-link{
  color:var(--ink); font-weight:600; font-size:.98rem; position:relative; padding:.3rem 0;
}
.main-nav a.nav-link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--wine);
  transition:width .25s var(--ease);
}
.main-nav a.nav-link:hover::after,.main-nav a.nav-link.active::after{width:100%;}
.has-dropdown{position:relative;}
.dropdown-toggle{display:flex;align-items:center;gap:.35rem;background:none;border:0;color:var(--ink);font-weight:600;font-size:.98rem;padding:.3rem 0;}
.dropdown-toggle svg{transition:transform .2s var(--ease);}
.has-dropdown.open .dropdown-toggle svg{transform:rotate(180deg);}
.dropdown-panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px);
  background:var(--white); border-radius:var(--radius-md); box-shadow:0 22px 48px -16px rgba(37,52,59,.28);
  min-width:280px; padding:.6rem; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s var(--ease), transform .2s var(--ease);
}
.has-dropdown.open .dropdown-panel{opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);}
.dropdown-panel a{
  display:flex; flex-direction:column; gap:.15rem; padding:.7rem .8rem; border-radius:var(--radius-sm);
  color:var(--ink);
}
.dropdown-panel a:hover{background:var(--blue-pale);}
.dropdown-panel a strong{font-size:.94rem; font-weight:700;}
.dropdown-panel a span{font-size:.82rem; color:var(--muted);}
.header-cta{display:flex;align-items:center;gap:1.6rem;}
.nav-toggle{
  display:none; background:none; border:0; width:42px; height:42px; border-radius:10px;
  align-items:center; justify-content:center;
}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:""; display:block; width:22px; height:2px; background:var(--ink); position:relative; transition:transform .25s var(--ease), opacity .25s var(--ease);
}
.nav-toggle span::before{position:absolute; top:-7px;}
.nav-toggle span::after{position:absolute; top:7px;}
.nav-open .nav-toggle span{background:transparent;}
.nav-open .nav-toggle span::before{transform:translateY(7px) rotate(45deg);}
.nav-open .nav-toggle span::after{transform:translateY(-7px) rotate(-45deg);}

/* ---------- Mobile nav ---------- */
@media (max-width: 940px){
  .main-nav{
    position:fixed; top:0; right:auto; bottom:auto; left:0;
    width:100vw; max-width:100vw; height:100vh; height:100dvh; background:var(--ivory);
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    padding:6.2rem 1.6rem 2rem; gap:0; transform:translateX(100%); transition:transform .35s var(--ease);
    overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain;
  }
  .nav-open .main-nav{transform:translateX(0);}
  .main-nav > ul{flex-direction:column; align-items:stretch; gap:0; width:100%; flex-shrink:0;}
  .main-nav > ul > li{border-bottom:1px solid rgba(37,52,59,.08);}
  .main-nav a.nav-link,.dropdown-toggle{display:flex; padding:1.05rem .2rem; width:100%; justify-content:space-between; font-size:1.1rem;}
  .dropdown-panel{position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto; box-shadow:none; display:none; padding:0 0 .6rem;}
  .has-dropdown.open .dropdown-panel{display:block;}
  .header-cta{display:block; width:auto; min-width:0; align-self:stretch; flex-shrink:0;}
  .header-cta .btn-primary{display:flex; width:auto; max-width:none; min-width:0; justify-content:center; margin-top:1.6rem; white-space:normal; text-align:center;}
  .nav-toggle{display:flex;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; background:var(--blue-light); overflow:hidden;
  padding:clamp(3rem,7vw,5.5rem) 0 0;
}
.hero-grid{
  display:grid; grid-template-columns: 1.05fr .95fr; gap:var(--gap); align-items:center;
}
.hero-copy .eyebrow{color:var(--wine-dark);}
.hero h1{margin:1rem 0 1.3rem;}
.hero-actions{display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; margin-top:2rem;}
.hero-media{position:relative;}
.hero-media img{
  border-radius:var(--radius-lg); width:100%; height:clamp(320px,42vw,520px); object-fit:cover;
}
.hero-stat{
  position:absolute; left:-1.4rem; bottom:-1.4rem; background:var(--white);
  border-radius:var(--radius-md); padding:1.1rem 1.4rem; box-shadow:0 22px 44px -18px rgba(37,52,59,.35);
  min-width:170px;
}
.hero-stat .label{font-size:.78rem; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.05em;}
.hero-stat .value{font-family:var(--font-serif); font-size:1.9rem; color:var(--wine); margin-top:.15rem;}
.hero-stat2{
  position:absolute; right:1rem; top:-1.2rem; background:var(--apricot); color:var(--ink);
  border-radius:var(--radius-md); padding:.85rem 1.15rem; box-shadow:0 18px 36px -16px rgba(37,52,59,.3);
}
.hero-stat2 .value{font-family:var(--font-serif); font-size:1.4rem;}
.hero-stat2 .label{font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;}
@media (max-width:940px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{order:-1;}
  .hero-stat{left:0; bottom:-1rem;}
}

/* ---------- Editorial homepage hero ---------- */
.hero-editorial{
  position:relative; background:var(--cream); overflow:hidden;
  padding:clamp(2.2rem,5vw,3.6rem) 0 clamp(2rem,4vw,3rem);
  min-height:90vh; display:flex; flex-direction:column; justify-content:center;
}
.hero-color-field{
  position:absolute; top:-14%; right:-8%; width:44%; height:125%;
  background:var(--blue-light);
  border-radius:38% 62% 55% 45% / 48% 42% 58% 52%;
  z-index:0;
}
.hero-color-field.two{
  top:auto; bottom:-18%; right:auto; left:-10%; width:26%; height:60%;
  background:var(--blush); opacity:.8;
  border-radius:52% 48% 42% 58% / 55% 45% 55% 45%;
}
.hero-editorial .container{position:relative; z-index:1;}
.hero-editorial-grid{
  display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(1.4rem,3vw,3rem); align-items:start;
}
.hero-micro{
  font-family:var(--font-serif); font-style:italic; color:var(--wine-dark);
  font-size:1.08rem; margin:0 0 1.5rem; max-width:34ch;
}
.hero-heading{ font-size:clamp(2.5rem,6vw,5.2rem); line-height:1.05; margin:0; }
.hero-heading .accent-line{
  display:block; color:var(--wine); font-style:italic; font-weight:400; font-size:.6em; margin-top:.35rem;
}
.hero-support{ margin-top:2.4rem; max-width:36ch; padding-left:clamp(0px,5vw,70px); }
.hero-support .lede{ margin-bottom:1.6rem; }
.hero-cta-row{ display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.hero-secondary-link{ font-size:.96rem; }
.hero-photo-frame{ position:relative; height:clamp(360px,46vw,600px); margin-top:-.8rem; }
.hero-photo-frame img{
  width:100%; height:100%; object-fit:cover; border-radius:6px;
  clip-path:polygon(16% 0%, 100% 0%, 100% 86%, 84% 100%, 0% 100%, 0% 11%);
}
.hero-photo-frame .frame-tag{
  position:absolute; left:-1.2rem; bottom:1.6rem; background:var(--white);
  padding:.85rem 1.1rem; border-radius:var(--radius-sm); box-shadow:0 18px 38px -16px rgba(37,52,59,.3);
  max-width:190px;
}
.hero-photo-frame .frame-tag p{ font-size:.82rem; color:var(--slate); margin:0; line-height:1.5; }
.hero-line-module{ margin-top:clamp(2.4rem,5vw,3.8rem); display:flex; align-items:center; }
.hero-line-module .point{
  display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; flex-shrink:0;
  font-size:.84rem; font-weight:700; color:var(--slate); position:relative; padding-top:1.1rem; max-width:16ch;
}
.hero-line-module .point::before{
  content:""; position:absolute; top:0; left:0; width:10px; height:10px; border-radius:50%; background:var(--muted);
}
.hero-line-module .point.current::before{
  background:var(--wine); width:12px; height:12px; box-shadow:0 0 0 5px rgba(130,74,90,.15);
}
.hero-line-module .point.current{ color:var(--wine-dark); }
.hero-line-module .connector{
  flex:1; height:1.5px; background:linear-gradient(to right, var(--muted), var(--blue)); margin:0 1rem; position:relative; top:-.55rem;
}
@media (max-width:940px){
  .hero-editorial{ min-height:auto; padding-top:2.4rem; }
  .hero-editorial-grid{ grid-template-columns:1fr; }
  .hero-support{ padding-left:0; }
  .hero-photo-frame{ order:-1; height:clamp(280px,60vw,420px); margin-top:0; margin-bottom:1rem; }
  .hero-photo-frame .frame-tag{ left:0; bottom:-1rem; }
  .hero-line-module{ flex-wrap:wrap; row-gap:1.4rem; }
  .hero-line-module .connector{ display:none; }
  .hero-color-field{ width:70%; opacity:.7; }
}

/* ---------- Page hero (secondary pages) ---------- */
.page-hero{padding:clamp(2.6rem,6vw,4.2rem) 0 clamp(2.2rem,5vw,3.4rem); background:var(--blue-light);}
.page-hero .eyebrow{color:var(--wine-dark);}
.page-hero h1{margin-top:.9rem; max-width:20ch;}
.page-hero .lede{margin-top:1.1rem;}
.breadcrumb{font-size:.85rem; color:var(--blue-dark); font-weight:600; display:flex; gap:.4rem; align-items:center;}
.breadcrumb a:hover{text-decoration:underline;}

/* ---------- Sections ---------- */
section{padding:clamp(3.4rem,7vw,6.2rem) 0;}
.bg-cream{background:var(--cream);}
.bg-ivory{background:var(--ivory);}
.bg-mist{background:var(--blue-pale);}
.bg-blush{background:var(--blush);}
.bg-sand{background:var(--sand-soft);}
.bg-blue{background:var(--blue-light);}
.bg-deep{background:var(--blue-dark); color:var(--blue-pale);}
.bg-deep h2,.bg-deep h3{color:var(--white);}
.section-head{max-width:640px; margin-bottom:2.6rem;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{margin-top:.85rem;}
.section-head .lede{margin-top:1rem;}

/* ---------- Layout helpers ---------- */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:center;}
.grid-asym{display:grid; grid-template-columns:.92fr 1.08fr; gap:var(--gap); align-items:center;}
.grid-asym.reverse{grid-template-columns:1.08fr .92fr;}
.grid-asym.reverse .visual{order:2;}
@media (max-width:900px){
  .grid-2,.grid-asym,.grid-asym.reverse{grid-template-columns:1fr;}
  .grid-asym.reverse .visual{order:-1;}
}
.visual img{border-radius:var(--radius-lg); width:100%; object-fit:cover;}
.visual.tall img{height:clamp(320px,38vw,460px);}

/* ---------- Cards ---------- */
.card{
  background:var(--white); border-radius:var(--radius-md); padding:1.9rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  border:1px solid rgba(37,52,59,.06);
}
.card:hover{transform:translateY(-4px); box-shadow:0 22px 40px -20px rgba(37,52,59,.25);}
.card.mist{background:var(--blue-pale); border-color:transparent;}
.card.blush{background:var(--blush); border-color:transparent;}
.card.sand{background:var(--sand-soft); border-color:transparent;}
.card .icon-box{
  width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  margin-bottom:1.1rem;
}
.card h3{margin-bottom:.55rem; font-size:1.25rem;}
.card p{color:var(--slate); font-size:.98rem;}

.icon-mist{background:var(--blue-pale); color:var(--blue-dark);}
.icon-blush{background:var(--blush); color:var(--wine);}
.icon-sand{background:var(--sand-soft); color:var(--wine-dark);}

.feature-row{display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:1.4rem;}
.feature-row-four{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:1100px) and (min-width:901px){.feature-row-four{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:900px){.feature-row{grid-template-columns:1fr;}}
.feature-lg{grid-row:span 1;}

/* ---------- Icon list ---------- */
.icon-list{display:grid; gap:1.6rem;}
.icon-list-item{display:flex; gap:1.1rem; align-items:flex-start;}
.icon-list-item .icon-box{flex-shrink:0;}
.icon-list-item h4{margin-bottom:.3rem;}
.icon-list-item p{color:var(--slate); font-size:.96rem; margin:0;}

/* ---------- Steps ---------- */
.step-track{display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem;}
@media (max-width:1000px){.step-track{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.step-track{grid-template-columns:1fr;}}
.step{position:relative; padding-top:1.6rem; border-top:2px solid var(--sand);}
.step .num{font-family:var(--font-serif); font-size:1.6rem; color:var(--apricot); display:block; margin-bottom:.6rem;}
.step h4{margin-bottom:.4rem;}
.step p{font-size:.92rem; color:var(--slate);}

/* ---------- Quote / editorial statement ---------- */
.statement{
  font-family:var(--font-serif); color:var(--wine-heading); font-weight:500;
  font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.35; max-width:820px;
}
.statement-wrap{display:flex; gap:2rem; align-items:flex-start;}
.statement-mark{font-family:var(--font-serif); font-size:3.5rem; color:var(--apricot); line-height:1;}

/* ---------- FAQ accordion ---------- */
.faq-list{border-top:1px solid rgba(37,52,59,.12);}
.faq-item{border-bottom:1px solid rgba(37,52,59,.12);}
.faq-q{
  width:100%; text-align:left; background:none; border:0; padding:1.4rem 0; display:flex; align-items:center;
  justify-content:space-between; gap:1rem; font-family:var(--font-sans); font-weight:700; font-size:1.05rem; color:var(--ink);
}
.faq-q .plus{flex-shrink:0; width:26px; height:26px; position:relative;}
.faq-q .plus::before,.faq-q .plus::after{content:""; position:absolute; background:var(--wine); transition:transform .3s var(--ease);}
.faq-q .plus::before{top:50%; left:2px; right:2px; height:2px; transform:translateY(-1px);}
.faq-q .plus::after{left:50%; top:2px; bottom:2px; width:2px; transform:translateX(-1px);}
.faq-item.open .plus::after{transform:translateX(-1px) rotate(90deg); opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
.faq-a-inner{padding:0 0 1.5rem; color:var(--slate); max-width:70ch;}

/* ---------- Calculator ---------- */
.calc-shell{
  background:var(--white); border-radius:28px; padding:clamp(1.6rem,3.5vw,3rem);
  box-shadow:0 30px 70px -30px rgba(37,52,59,.28); display:grid; grid-template-columns:1.1fr .9fr; gap:2.6rem;
}
@media (max-width:900px){.calc-shell{grid-template-columns:1fr;}}
.field{margin-bottom:1.5rem;}
.field-label{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.55rem;}
.field-label span:first-child{font-weight:700; font-size:.94rem; color:var(--ink);}
.field-value{font-family:var(--font-serif); color:var(--wine); font-weight:600; font-size:1.05rem;}
input[type=range]{
  -webkit-appearance:none; width:100%; height:6px; border-radius:6px; background:var(--blue-pale); outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:var(--wine); border:3px solid var(--white);
  box-shadow:0 4px 10px rgba(37,52,59,.35); cursor:pointer;
}
input[type=range]::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%; background:var(--wine); border:3px solid var(--white); cursor:pointer;
}
.field-hint{font-size:.82rem; color:var(--muted); margin-top:.4rem;}
.calc-result{
  background:var(--blue-pale); border-radius:22px; padding:2rem; display:flex; flex-direction:column; justify-content:center;
}
.calc-result .r-label{font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color:var(--blue-dark);}
.calc-result .r-value{font-family:var(--font-serif); font-size:clamp(2.4rem,5vw,3.4rem); color:var(--wine); margin:.4rem 0;}
.calc-result .r-sub{font-size:.92rem; color:var(--slate); margin-bottom:1.4rem;}
.bar-compare{display:flex; flex-direction:column; gap:.8rem; margin-top:.6rem;}
.bar-row{display:flex; align-items:center; gap:.8rem;}
.bar-row .bar-label{width:88px; font-size:.82rem; color:var(--slate); flex-shrink:0;}
.bar-track{flex:1; background:rgba(66,103,121,.14); border-radius:8px; height:14px; overflow:hidden;}
.bar-fill{height:100%; border-radius:8px; background:var(--blue); transition:width 1s var(--ease);}
.bar-fill.wine{background:var(--wine);}
.bar-row .bar-num{font-size:.82rem; font-weight:700; color:var(--ink); width:70px; text-align:right;}
.calc-disclaimer{
  font-size:.83rem; color:var(--muted); background:var(--sand-soft); border-radius:var(--radius-sm);
  padding:1rem 1.2rem; margin-top:1.6rem;
}
.calc-toggle-group{display:flex; gap:.6rem; margin-top:.3rem;}
.calc-toggle{
  flex:1; text-align:center; padding:.6rem .5rem; border-radius:var(--radius-sm); border:1.5px solid var(--blue-light);
  background:var(--white); font-weight:700; font-size:.85rem; color:var(--blue-dark);
}
.calc-toggle.active{background:var(--blue-dark); color:var(--white); border-color:var(--blue-dark);}

/* ---------- Forms ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.3rem;}
.form-grid .full{grid-column:1 / -1;}
@media (max-width:640px){.form-grid{grid-template-columns:1fr;}}
label{display:block; font-weight:700; font-size:.9rem; margin-bottom:.45rem; color:var(--ink);}
.req{color:var(--wine); margin-left:.15rem;}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%; padding:.85rem 1rem; border-radius:var(--radius-sm); border:1.5px solid rgba(37,52,59,.18);
  background:var(--white); color:var(--ink); transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
input:focus,select:focus,textarea:focus{border-color:var(--blue); box-shadow:0 0 0 4px rgba(102,141,163,.18); outline:none;}
textarea{min-height:130px; resize:vertical;}
.field-error{color:var(--wine-dark); font-size:.82rem; margin-top:.4rem; display:none;}
.has-error input,.has-error select,.has-error textarea{border-color:var(--wine-dark);}
.has-error .field-error{display:block;}
.checkbox-row{display:flex; gap:.7rem; align-items:flex-start; margin:1.4rem 0;}
.checkbox-row input{margin-top:.3rem; width:18px; height:18px; accent-color:var(--wine);}
.checkbox-row label{font-weight:500; font-size:.9rem; color:var(--slate); margin:0;}
.form-success{
  display:none; background:var(--blue-pale); border-radius:var(--radius-md); padding:2rem; text-align:center;
}
.form-success h3{margin-bottom:.6rem;}
.form-success p{color:var(--slate);}
form.submitted .form-fields{display:none;}
form.submitted .form-success{display:block;}

/* ---------- Contact info blocks ---------- */
.contact-info-list{display:grid; gap:1.4rem;}
.contact-info-item{display:flex; gap:1rem; align-items:flex-start;}
.contact-info-item h4{margin-bottom:.2rem;}
.contact-info-item p,.contact-info-item a{color:var(--slate); font-size:.95rem;}

/* ---------- Table (income overview) ---------- */
.info-table{width:100%; border-collapse:collapse; margin-top:1rem;}
.info-table th,.info-table td{text-align:left; padding:.9rem 1rem; border-bottom:1px solid rgba(37,52,59,.1); font-size:.95rem;}
.info-table th{color:var(--blue-dark); font-size:.82rem; text-transform:uppercase; letter-spacing:.04em;}
.info-table td{color:var(--slate);}
.info-table tr:last-child td{border-bottom:0;}
@media (max-width:640px){
  .info-table thead{display:none;}
  .info-table tr{display:block; margin-bottom:1rem; background:var(--white); border-radius:var(--radius-sm); padding:.4rem 1rem;}
  .info-table td{display:flex; justify-content:space-between; border-bottom:1px dashed rgba(37,52,59,.1); gap:1rem;}
  .info-table td::before{content:attr(data-label); font-weight:700; color:var(--ink);}
}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--wine); border-radius:32px; padding:clamp(2.4rem,5vw,3.6rem); display:flex; align-items:center;
  justify-content:space-between; gap:2rem; flex-wrap:wrap; color:var(--white);
}
.cta-band h2{color:var(--white);}
.cta-band p{color:var(--peach); margin-top:.6rem; max-width:40ch;}
.cta-band .btn-primary{background:var(--white); color:var(--wine);}
.cta-band .btn-primary:hover{background:var(--cream);}

/* ---------- Footer ---------- */
.site-footer{background:var(--blue-dark); color:var(--blue-pale); padding:4.5rem 0 2rem;}
.footer-grid{display:grid; grid-template-columns:1.4fr .8fr .8fr 1fr; gap:2.6rem;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-brand{display:flex; align-items:center; margin-bottom:1.1rem;}
.footer-logo{height:34px; width:auto; display:block;}
.footer-col h4{color:var(--white); font-size:.86rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1.1rem;}
.footer-col ul{display:grid; gap:.75rem;}
.footer-col a{color:var(--white); opacity:.9; font-size:.95rem;}
.footer-col a:hover{opacity:1; text-decoration:underline;}
.footer-col p,.footer-col address{color:var(--blue-pale); font-size:.92rem; font-style:normal; line-height:1.7;}
.footer-bottom{
  margin-top:3.4rem; padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.16);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem; color:var(--blue-pale); opacity:.85;
}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-stagger.is-visible > *{transition-delay:calc(var(--i, 0) * 90ms);}

/* ---------- Legal pages ---------- */
.legal-content{max-width:760px;}
.legal-content h2{margin-top:2.4rem; margin-bottom:.9rem; font-size:1.5rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p,.legal-content li{color:var(--slate); margin-bottom:1rem;}
.legal-content ul{padding-left:1.3rem; list-style:disc;}
.legal-content li{margin-bottom:.5rem;}
.legal-meta{color:var(--muted); font-size:.88rem; margin-bottom:2.4rem;}

/* ---------- Misc ---------- */
.divider{height:1px; background:rgba(37,52,59,.12); margin:3rem 0;}
.tag{display:inline-block; padding:.35rem .8rem; border-radius:20px; background:var(--champagne); color:var(--ink); font-size:.78rem; font-weight:700;}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--wine); color:var(--white); padding:.8rem 1.2rem; border-radius:8px; z-index:200;}
.skip-link:focus{left:1rem; top:1rem;}
