:root{
  --fir:#1F3D35; --fir-2:#2C5547; --porch:#F2B33D; --porch-ink:#3A2A06;
  --paper:#F6F7F4; --surface:#FFFFFF; --mist:#E3E9E5; --ink:#17211E; --muted:#56635E; --slate:#5B7A8C;
  --line:#D3DCD7; --shadow:0 18px 40px -24px rgba(23,33,30,.35);
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, -apple-system, sans-serif;
  --body:"Public Sans", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --wrap:1180px; --r-sm:8px; --r-md:14px; --r-lg:28px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --fir:#9FD3BF; --fir-2:#7FBFA8; --porch:#F5BF55; --porch-ink:#2A1D02;
    --paper:#111916; --surface:#18221F; --mist:#1F2C28; --ink:#E9EFEC; --muted:#A3B3AD; --slate:#9BB6C4;
    --line:#2C3B36; --shadow:0 18px 40px -24px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --fir:#9FD3BF; --fir-2:#7FBFA8; --porch:#F5BF55; --porch-ink:#2A1D02;
  --paper:#111916; --surface:#18221F; --mist:#1F2C28; --ink:#E9EFEC; --muted:#A3B3AD; --slate:#9BB6C4;
  --line:#2C3B36; --shadow:0 18px 40px -24px rgba(0,0,0,.8);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px);height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);line-height:1.08;margin:0 0 .5em;letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1em;max-width:65ch}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--porch);color:var(--porch-ink);padding:.6rem 1rem;z-index:100;border-radius:0 0 var(--r-sm) 0}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--porch);outline-offset:3px;border-radius:4px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--body);padding:1rem 1.4rem;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn-porch{background:var(--porch);color:var(--porch-ink)}
.btn-porch:hover{background:#E6A421}
.btn-fir{background:var(--fir);color:var(--paper)}
.btn-fir:hover{background:var(--fir-2)}
.btn-ghost{border-color:currentColor;color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--mist)}
.link{font-weight:600;color:var(--fir);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}

/* Header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:76px}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.3rem;letter-spacing:-.02em;color:var(--ink)}
.logo svg{width:42px;height:32px;flex:none}
.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.nav-links a{display:block;padding:.55rem .85rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:.98rem;color:var(--muted)}
.nav-links a:hover{color:var(--ink);background:var(--mist)}
.nav-links a[aria-current="page"]{color:var(--ink);background:var(--mist)}
.nav-cta{display:flex;align-items:center;gap:.75rem}
.nav-phone{font-weight:700;text-decoration:none;color:var(--fir);white-space:nowrap}
.menu-btn{display:none;width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.menu-btn svg{width:22px;height:22px}
@media (max-width:1180px){
  .nav-phone{display:none}
}
@media (max-width:1024px){
  .menu-btn{display:inline-flex}
  .nav-cta .btn{display:none}
  .nav-panel{position:fixed;inset:calc(env(safe-area-inset-top,0px) + 76px) 0 auto 0;max-height:calc(100dvh - 76px - env(safe-area-inset-top,0px));overflow-y:auto;background:var(--paper);border-bottom:1px solid var(--line);padding:1rem 1.25rem 1.5rem;box-shadow:var(--shadow);display:none}
  .nav-panel.open{display:block}
  .nav-links{flex-direction:column;align-items:stretch;gap:.15rem}
  .nav-links a{font-size:1.15rem;padding:.85rem 1rem;border-radius:var(--r-sm);color:var(--ink)}
  .nav-panel .btn{width:100%;margin-top:1rem}
}
@media (min-width:1025px){ .nav-panel .btn{display:none} }
.has-sub{position:relative}
.top{display:flex;align-items:center}
.sub-toggle{background:none;border:0;color:var(--muted);width:24px;height:36px;margin-left:-.55rem;cursor:pointer;display:grid;place-items:center;border-radius:6px;padding:0}
.sub-toggle:hover{color:var(--ink)}
.sub-toggle svg{width:14px;height:14px;transition:transform .2s}
.has-sub.open .sub-toggle svg{transform:rotate(180deg)}
.sub{list-style:none;margin:0;padding:.4rem}
.nav-links .sub a{display:block;padding:.6rem .85rem;border-radius:var(--r-sm);font-weight:500;color:var(--ink);font-size:.97rem;white-space:nowrap;background:none}
.nav-links .sub a:hover{background:var(--mist)}
@media (min-width:1025px){
  .sub{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);display:none;z-index:60}
  .sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
  .has-sub:hover .sub,.has-sub.open .sub{display:block}
}
@media (max-width:1024px){
  .top{justify-content:space-between}
  .top > a{flex:1}
  .sub-toggle{width:46px;height:46px;margin:0;color:var(--ink)}
  .sub-toggle svg{width:18px;height:18px}
  .sub{display:none;padding:0 0 .5rem 1rem;border-left:2px solid var(--line);margin-left:1rem}
  .has-sub.open .sub{display:block}
}

/* Pages */
.page{display:none}
.page.active{display:block}
section{padding:clamp(4rem,8vw,6.5rem) 0}
.section-head{max-width:720px;margin-bottom:2.75rem}
.section-head p{color:var(--muted);font-size:1.12rem}
.tint{background:var(--mist)}

/* Image placeholders: gradient + roofline pattern shows if the photo can't load */
.ph{position:relative;overflow:hidden;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='70' viewBox='0 0 120 70'%3E%3Cpath d='M0 50 L20 30 L40 50 L60 30 L80 50 L100 30 L120 50' fill='none' stroke='%23ffffff' stroke-opacity='.10' stroke-width='3'/%3E%3C/svg%3E"),
  linear-gradient(140deg,#2C5547 0%,#1F3D35 55%,#5B7A8C 120%)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Hero */
.hero{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,6vw,5rem);position:relative}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1{margin-bottom:.4em}
.hero-lede{font-size:1.2rem;color:var(--muted);max-width:52ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.hero-note{margin-top:1.25rem;font-size:.95rem;color:var(--muted);display:flex;align-items:flex-start;gap:.5rem}
.hero-note svg{width:18px;height:18px;color:var(--fir);flex:none;margin-top:.2rem}

/* Signature element: the "porch" quote card shaped like a house */
.quote-house{position:relative;background:var(--surface);border-radius:0 0 var(--r-lg) var(--r-lg);padding:2rem 1.75rem 1.75rem;box-shadow:var(--shadow);margin-top:70px;border:1px solid var(--line);border-top:none}
.quote-house::before{content:"";position:absolute;left:-1px;right:-1px;bottom:100%;height:70px;background:var(--surface);clip-path:polygon(0 100%,50% 0,100% 100%);}
.quote-house::after{content:"";position:absolute;left:50%;top:-36px;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:var(--porch);box-shadow:0 0 0 8px color-mix(in srgb,var(--porch) 25%,transparent)}
.quote-house h2{font-size:1.6rem;margin-bottom:.3rem;text-align:center}
.quote-house .sub{text-align:center;color:var(--muted);font-size:.98rem;margin:0 auto 1.25rem}
.chooser{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;border:0;padding:0}
.chooser legend{font-weight:600;font-size:.95rem;margin-bottom:.5rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chip span{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .4rem;border:1.5px solid var(--line);border-radius:var(--r-md);font-weight:600;font-size:.9rem;text-align:center;transition:border-color .15s,background .15s}
.chip svg{width:26px;height:26px;color:var(--fir)}
.chip input:checked + span{border-color:var(--fir);background:color-mix(in srgb,var(--fir) 10%,transparent)}
.chip input:focus-visible + span{outline:3px solid var(--porch);outline-offset:2px}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.field label{font-weight:600;font-size:.95rem}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.8rem .9rem;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--fir);box-shadow:0 0 0 3px color-mix(in srgb,var(--fir) 20%,transparent)}
.field .err{color:#B3261E;font-size:.88rem;min-height:0}
:root[data-theme="dark"] .field .err{color:#F2B8B5}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .field .err{color:#F2B8B5}}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.quote-house .btn{width:100%}
.form-fine{font-size:.85rem;color:var(--muted);text-align:center;margin:.85rem auto 0}

/* Trust strip */
.trust{background:var(--fir);color:#F6F7F4;padding:1.4rem 0}
:root[data-theme="dark"] .trust{background:#1F3D35}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .trust{background:#1F3D35}}
.trust ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem}
.trust li{display:flex;align-items:center;gap:.6rem;font-weight:600}
.trust svg{width:22px;height:22px;color:var(--porch);flex:none}

/* Benefits */
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3rem)}
.benefit{border-top:3px solid var(--fir);padding-top:1.5rem}
.benefit .ico{width:52px;height:52px;border-radius:14px;background:var(--mist);display:grid;place-items:center;margin-bottom:1.1rem;color:var(--fir)}
.benefit .ico svg{width:28px;height:28px}
.benefit p{color:var(--muted)}

/* Services preview */
.svc-layout{display:grid;grid-template-columns:repeat(12,1fr);gap:1.25rem}
.svc-card{position:relative;border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:#fff;min-height:320px;display:flex;align-items:flex-end;isolation:isolate}
.svc-card .ph{position:absolute;inset:0;z-index:-2}
.svc-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,30,25,0) 25%,rgba(15,30,25,.88) 100%)}
.svc-card .txt{padding:1.75rem}
.svc-card h3{font-size:1.75rem;margin-bottom:.3rem;color:#fff}
.svc-card p{color:rgba(255,255,255,.88);margin:0 0 .9rem;max-width:42ch}
.svc-card .go{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--porch)}
.svc-card:hover .go{text-decoration:underline;text-underline-offset:4px}
.svc-a{grid-column:span 7;min-height:420px}
.svc-b{grid-column:span 5;min-height:420px}
.svc-c{grid-column:span 5}
.svc-d{grid-column:span 7}

/* Testimonials */
.quotes{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1.25rem}
.q{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;margin:0}
.q blockquote{margin:0;font-size:1.05rem}
.q.big{background:var(--fir);color:var(--paper);border-color:transparent}
.q.big blockquote{font-family:var(--display);font-size:1.55rem;line-height:1.25;font-weight:700;letter-spacing:-.01em}
.q figcaption{margin-top:auto;display:flex;align-items:center;gap:.75rem;font-size:.95rem}
.q figcaption .ph{width:44px;height:44px;border-radius:50%;flex:none}
.q figcaption strong{display:block}
.q figcaption span{color:var(--muted)}
.q.big figcaption span{color:color-mix(in srgb,var(--paper) 75%,transparent)}
.stars{color:var(--porch);letter-spacing:2px;font-size:1.05rem}

/* Split (about preview, page intros) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split .ph{border-radius:var(--r-lg);aspect-ratio:5/4}
.ticks{list-style:none;padding:0;margin:1.25rem 0 1.75rem;display:grid;gap:.65rem}
.ticks li{display:flex;gap:.65rem;align-items:flex-start}
.ticks svg{width:22px;height:22px;color:var(--fir);flex:none;margin-top:.15rem}

/* Final CTA band with roofline */
.cta-band{position:relative;background:var(--fir);color:#F6F7F4;padding:clamp(4.5rem,9vw,7rem) 0 clamp(3.5rem,7vw,5rem);margin-top:0}
:root[data-theme="dark"] .cta-band{background:#1F3D35}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .cta-band{background:#1F3D35}}
.cta-band::before{content:"";position:absolute;left:0;right:0;top:-1px;height:48px;background:var(--paper);clip-path:polygon(0 0,100% 0,100% 0,85% 100%,70% 0,55% 100%,40% 0,25% 100%,10% 0,0 60%)}
.cta-band.after-tint::before{background:var(--mist)}
.cta-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center}
.cta-band h2{color:#F6F7F4}
.cta-band p{color:rgba(246,247,244,.85);font-size:1.12rem}
.cta-actions{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
.cta-actions .btn-ghost{color:#F6F7F4}
.cta-actions .btn-ghost:hover{background:rgba(255,255,255,.1)}

/* Service page hero */
.page-hero{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,6vw,4.5rem)}
.crumbs{font-size:.92rem;color:var(--muted);margin-bottom:1.25rem}
.crumbs a{color:var(--muted)}
.page-hero .split .ph{aspect-ratio:4/3}

/* Service grid: ruled list, not identical cards */
.grid-svc{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.grid-svc article{padding:2rem 1.75rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.grid-svc .ico{width:44px;height:44px;color:var(--fir);margin-bottom:1rem}
.grid-svc p{color:var(--muted);margin:0;font-size:1rem}
.grid-svc article{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 96px);transition:box-shadow .3s}
.grid-svc article.hl{box-shadow:inset 0 0 0 3px var(--porch)}
.grid-svc .span2{grid-column:span 2}
.grid-svc .span3{grid-column:span 3}
.grid-svc article.feature{grid-column:span 3;background:var(--fir);color:var(--paper);display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center}
.grid-svc article.feature .ico{color:var(--porch);margin:0;width:56px;height:56px}
.grid-svc article.feature p{color:color-mix(in srgb,var(--paper) 85%,transparent)}
.grid-svc article.feature h3{color:var(--paper)}
:root[data-theme="dark"] .grid-svc article.feature{background:#1F3D35;color:#F6F7F4}
:root[data-theme="dark"] .grid-svc article.feature h3{color:#F6F7F4}
:root[data-theme="dark"] .grid-svc article.feature p{color:rgba(246,247,244,.85)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .grid-svc article.feature{background:#1F3D35;color:#F6F7F4}
  :root:not([data-theme="light"]) .grid-svc article.feature h3{color:#F6F7F4}
  :root:not([data-theme="light"]) .grid-svc article.feature p{color:rgba(246,247,244,.85)}
}

/* Steps: genuine sequence, so numbered */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;counter-reset:s;position:relative}
.steps li{counter-increment:s;position:relative;padding-top:4.25rem}
.steps li::before{content:counter(s);position:absolute;top:0;left:0;width:52px;height:52px;border-radius:50%;background:var(--porch);color:var(--porch-ink);font:800 1.4rem/52px var(--display);text-align:center}
.steps li:not(:last-child)::after{content:"";position:absolute;top:26px;left:64px;right:-12px;border-top:2px dashed var(--line)}
.steps p{color:var(--muted);font-size:1rem}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.3rem 0;font-weight:700;font-size:1.1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:32px;height:32px;border-radius:50%;background:var(--mist);display:grid;place-items:center;transition:transform .2s}
.faq summary .pm svg{width:16px;height:16px}
.faq details[open] summary .pm{transform:rotate(45deg);background:var(--porch);color:var(--porch-ink)}
.faq details p{color:var(--muted);padding-bottom:1.3rem;margin:0}

/* About */
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.values > div{padding:2rem 2rem 2rem 0;border-bottom:1px solid var(--line)}
.values > div:nth-child(odd){border-right:1px solid var(--line)}
.values > div:nth-child(even){padding-left:2rem}
.values p{color:var(--muted);margin:0}
.mission{font-family:var(--display);font-weight:700;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.2;letter-spacing:-.02em;max-width:26ch;margin:0}
.compare{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--r-md);overflow:hidden;min-width:560px}
.compare th,.compare td{padding:1rem 1.1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.compare thead th{background:var(--fir);color:var(--paper);font-family:var(--display);font-size:1.05rem}
:root[data-theme="dark"] .compare thead th{background:#1F3D35;color:#F6F7F4}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .compare thead th{background:#1F3D35;color:#F6F7F4}}
.compare td:first-child{font-weight:600}
.compare .yes{color:var(--fir);font-weight:700}
.table-scroll{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.5rem)}
.form-success{display:none;background:color-mix(in srgb,var(--fir) 12%,transparent);border:1.5px solid var(--fir);border-radius:var(--r-md);padding:1.25rem;margin-top:1rem}
.form-success.show{display:block}
.info-list{list-style:none;margin:0 0 1.75rem;padding:0;display:grid;gap:1.25rem}
.info-list li{display:flex;gap:.9rem}
.info-list .ico{width:44px;height:44px;border-radius:12px;background:var(--mist);color:var(--fir);display:grid;place-items:center;flex:none}
.info-list .ico svg{width:22px;height:22px}
.info-list strong{display:block}
.info-list a,.info-list span{color:var(--muted)}
.map{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:var(--mist)}
.map svg{width:100%;height:100%;display:block}
.map .pin-card{position:absolute;left:1rem;right:1rem;bottom:1rem;background:var(--surface);border-radius:var(--r-md);padding:.9rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:var(--shadow);font-size:.95rem}
.socials{display:flex;gap:.6rem;flex-wrap:wrap}
.socials a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);color:var(--ink)}
.socials a:hover{background:var(--mist)}
.socials svg{width:20px;height:20px}

/* Footer */
.site-footer{background:#14211D;color:#C9D4CF;padding:4rem 0 2rem}
.site-footer .logo{color:#F6F7F4}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.site-footer h3{color:#F6F7F4;font-size:1.05rem;margin-bottom:1rem}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.site-footer a{color:#C9D4CF;text-decoration:none}
.site-footer a:hover{color:var(--porch);text-decoration:underline}
.site-footer .socials a{color:#F6F7F4;border-color:#34463F}
.site-footer .socials a:hover{background:#22332D;text-decoration:none}
.foot-blurb{max-width:34ch;margin-top:1rem;font-size:.98rem}
.foot-bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #2A3A34;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.9rem;color:#93A39D}

/* Carrier logo strip */
.carriers{padding:2.5rem 0 3rem;border-top:1px solid var(--line)}
.carriers-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;margin-bottom:1.5rem}
.carriers-head h2{font-size:1.35rem;margin:0}
.carriers-head p{margin:0;color:var(--muted);font-size:.98rem}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;width:max-content;list-style:none;margin:0;padding:0;animation:marquee 50s linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
.logo-chip{flex:none;width:170px;height:84px;margin-right:1.25rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);display:grid;place-items:center;padding:.9rem 1.2rem}
.logo-chip img{max-width:100%;max-height:46px;object-fit:contain}
.logo-chip.missing::after{content:"Carrier logo";color:#8A9792;font-size:.85rem}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (max-width:640px){.logo-chip{width:120px;height:64px;margin-right:.9rem;padding:.6rem .8rem}.logo-chip img{max-height:36px}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}.marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}

/* Life product pages */
.explain{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.facts{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:.4rem 1.5rem}
.facts div{display:flex;justify-content:space-between;gap:1.25rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.facts div:last-child{border-bottom:0}
.facts dt{font-weight:700}
.facts dd{margin:0;color:var(--muted);text-align:right}
.fit{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.fit-box{border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.25rem);background:var(--surface)}
.fit-box.yes{border-top:5px solid var(--fir)}
.fit-box.consider{border-top:5px solid var(--porch)}
.fit-box .ticks{margin:.5rem 0 0}
.fit-box.consider .ticks svg{color:#C48A12}
.small-note{font-size:.92rem;color:var(--muted);margin-top:1.5rem}
.related-wrap{padding:3rem 0 4.5rem}
.related-wrap h2{font-size:1.35rem;margin-bottom:1rem}
.related{display:flex;flex-wrap:wrap;gap:.6rem}
.related a{padding:.7rem 1.1rem;border:1.5px solid var(--line);border-radius:999px;text-decoration:none;font-weight:600}
.related a:hover{border-color:var(--fir);background:var(--mist)}
.grid-svc .more{display:inline-block;margin-top:.9rem;font-size:.97rem}
.grid-svc.roles{grid-template-columns:repeat(2,1fr)}
.field input[type="file"]{padding:.6rem}
@media (max-width:980px){.explain,.fit{grid-template-columns:1fr}}
@media (max-width:640px){.grid-svc.roles{grid-template-columns:1fr}.facts div{flex-direction:column;gap:.2rem}.facts dd{text-align:left}}

/* Legal pages */
.legal-hero{padding-bottom:2rem}
.updated{color:var(--muted);font-size:.95rem;margin:0}
.legal-main{padding-top:1rem}
.legal{display:grid;grid-template-columns:250px 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + 100px);font-size:.95rem;border-left:2px solid var(--line);padding-left:1.25rem}
.toc h2{font-size:1rem;margin-bottom:.75rem}
.toc ol{margin:0;padding-left:1.1rem;display:grid;gap:.5rem;color:var(--muted)}
.toc a{color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.legal-sec{padding:0 0 2rem;margin-bottom:2rem;border-bottom:1px solid var(--line);scroll-margin-top:calc(env(safe-area-inset-top,0px) + 96px)}
.legal-sec:last-child{border-bottom:0}
.legal-sec h2{font-size:1.45rem}
.legal-sec h3{font-size:1.08rem;margin-top:1.25rem}
.legal-sec ul{padding-left:1.25rem;margin:0 0 1em;max-width:68ch}
.legal-sec li{margin-bottom:.45rem}
.form-fine a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.form-fine.left{text-align:left;margin:1rem 0 0;max-width:none}
.legal-links{display:flex;gap:1.25rem;flex-wrap:wrap}
.foot-bottom .legal-links a{color:#93A39D;text-decoration:underline;text-underline-offset:3px}
@media (max-width:980px){.legal{grid-template-columns:1fr}.toc{position:static}}

/* Quote page */
[hidden]{display:none!important}
.quote-hero{padding-bottom:1.5rem}
.quote-main{padding-top:1rem}
.quote-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.qcard{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 96px)}
.qprogress{margin-bottom:1.75rem}
.qbar{height:8px;background:var(--mist);border-radius:99px;overflow:hidden}
.qbar span{display:block;height:100%;width:33%;background:var(--fir);border-radius:99px;transition:width .3s}
#qStepLabel{font-size:.92rem;color:var(--muted);margin:.6rem 0 0}
.qstep{border:0;padding:0;margin:0;min-width:0}
.qstep legend{padding:0;margin-bottom:1rem;width:100%}
.qstep legend h2{font-size:clamp(1.45rem,3vw,1.95rem);margin:0}
.qstep legend h2:focus{outline:none}
.qhint{color:var(--muted);margin:0 0 1.25rem;font-size:.98rem}
.qchoices{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.qchoices.two{grid-template-columns:repeat(2,1fr)}
.chip.qopt span{align-items:flex-start;text-align:left;padding:1.1rem 1rem;height:100%;gap:.3rem}
.qopt strong{font-size:1.02rem}
.qopt small{font-weight:400;color:var(--muted);font-size:.88rem;line-height:1.35}
.qopt svg{width:28px;height:28px;margin-bottom:.2rem}
.qgroup{margin-bottom:1.1rem}
.qlabel{display:block;font-weight:600;font-size:.95rem;margin-bottom:.5rem}
.chips-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}
.chips-inline .chip span{padding:.8rem .5rem}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.check{display:flex;align-items:center;gap:.65rem;padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:var(--r-sm);cursor:pointer;font-weight:500}
.check input{width:18px;height:18px;accent-color:var(--fir);flex:none}
.check:has(input:checked){border-color:var(--fir);background:color-mix(in srgb,var(--fir) 8%,transparent)}
.qgroup.invalid .chip span,.qgroup.invalid .check,.field .invalid{border-color:#B3261E}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.qerr{margin:.5rem 0 0;font-weight:600}
.qnav{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}
#qNext,#qSubmit{margin-left:auto}
.qdone{text-align:left}
.qdone:focus{outline:none}
.qdone-ico{width:56px;height:56px;color:var(--fir);margin-bottom:1rem}
.qaside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 100px)}
.qaside h2{font-size:1.35rem;margin-bottom:1.25rem}
.mini-steps{list-style:none;padding:0;margin:0 0 2rem;counter-reset:m;display:grid;gap:1.25rem}
.mini-steps li{counter-increment:m;display:grid;grid-template-columns:36px 1fr;gap:.85rem;align-items:start}
.mini-steps li::before{content:counter(m);width:36px;height:36px;border-radius:50%;background:var(--porch);color:var(--porch-ink);font:800 1rem/36px var(--display);text-align:center}
.mini-steps strong{display:block}
.mini-steps span{color:var(--muted);font-size:.97rem}
.qcall{background:var(--mist);border-radius:var(--r-lg);padding:1.5rem;display:grid;gap:.75rem;justify-items:start}
.qcall p{margin:0;font-weight:600}
@media (max-width:980px){.quote-grid{grid-template-columns:1fr}.qaside{position:static}}
@media (max-width:640px){.qchoices{grid-template-columns:repeat(2,1fr)}.check-grid{grid-template-columns:1fr}.row3{grid-template-columns:1fr 1fr}.row3 .field:last-child{grid-column:span 2}}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 0% floor section */
.floor{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(3rem,6vw,4.5rem);border-top:1px solid var(--line)}
.floor-copy .ticks li span{color:var(--muted)}
.floor-copy .ticks strong{color:var(--ink)}
.floor-chart{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem}
.floor-chart figcaption{font-weight:700;font-family:var(--display);font-size:1.05rem;margin-bottom:.75rem;letter-spacing:-.01em}
.floor-legend{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.9rem;margin-bottom:1rem}
.floor-legend span{display:inline-flex;align-items:center;gap:.45rem}
.floor-legend .sq{width:12px;height:12px;border-radius:3px;display:inline-block}
.sq.idx,.fb.idx{background:var(--fidx)}
.sq.cred,.fb.cred{background:var(--cv)}
.fplot{position:relative;height:220px;display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem;margin-bottom:2.2rem}
.fplot::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1.5px solid var(--muted);opacity:.55}
.fg{position:relative;height:100%}
.fg .fb{position:absolute;width:calc(50% - 3px);border-radius:4px}
.fg .fb.idx{left:0}
.fg .fb.cred{right:0}
.fg .fb.up{bottom:50%;border-bottom-left-radius:0;border-bottom-right-radius:0}
.fg .fb.down{top:50%;border-top-left-radius:0;border-top-right-radius:0}
.fg .fb.zero{bottom:50%;border-radius:1px}
.fg .fb{max-height:50%}
.fg b{position:absolute;bottom:-1.5rem;left:0;right:0;text-align:center;font-size:.78rem;font-weight:500;color:var(--muted)}
.fg .fl{position:absolute;font-style:normal;font-size:.75rem;font-weight:700;white-space:nowrap}
.fg .fl.neg{left:0;width:calc(50% - 3px);text-align:center;color:var(--muted)}
.fg .fl.zero{right:0;width:calc(50% - 3px);text-align:center;color:var(--cv);bottom:calc(50% + 6px)}
.floor-note{font-size:.8rem;color:var(--muted);margin:1rem 0 0;max-width:none;line-height:1.5}
:root{--fidx:#9AA7A2}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--fidx:#5E6E68}}
:root[data-theme="dark"]{--fidx:#5E6E68}
@media (max-width:980px){.floor{grid-template-columns:1fr}}
@media (max-width:640px){.fplot{height:190px;gap:.2rem}.fg .fl{font-size:.68rem}.floor-chart{padding:1.1rem}}

/* Calculator headline result */
.iulc-hero-stat{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;flex-wrap:wrap;background:var(--fir);color:#F6F7F4;border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,1.75rem);margin-bottom:.75rem;position:relative;overflow:hidden}
.iulc-hero-stat span{display:block;font-size:.95rem;color:rgba(246,247,244,.8)}
.iulc-hero-stat strong{display:block;font-family:var(--display);font-size:clamp(2.2rem,5vw,3.2rem);letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums;color:#fff}
.iulc-hero-stat small{display:block;font-size:.95rem;color:rgba(246,247,244,.8);margin-top:.2rem}
.iulc-mult{position:relative;z-index:1;background:var(--porch);color:var(--porch-ink);border-radius:var(--r-md);padding:.8rem 1.1rem;text-align:center}
.iulc-mult strong{color:var(--porch-ink)!important;font-size:clamp(1.7rem,3.5vw,2.2rem)!important}
.iulc-mult span{color:var(--porch-ink)!important;font-size:.82rem!important;font-weight:600}
:root[data-theme="dark"] .iulc-hero-stat{background:#1F3D35}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .iulc-hero-stat{background:#1F3D35}}
.iulc-stats.three{grid-template-columns:repeat(3,1fr)}
.iulc-floorchip{display:flex;align-items:flex-start;gap:.55rem;padding:.75rem .9rem;border-radius:var(--r-sm);border:1.5px solid color-mix(in srgb,var(--cv) 45%,transparent);background:color-mix(in srgb,var(--cv) 9%,transparent);font-size:.9rem;margin:0 0 1rem}
.iulc-floorchip svg{width:20px;height:20px;color:var(--cv);flex:none;margin-top:.05rem}
.iulc-chart .stopline{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1}
.iulc-chart .stoplbl{fill:var(--muted);font:600 11.5px var(--body)}
@media (max-width:1080px){.iulc-stats.three{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.iulc-stats.three{grid-template-columns:1fr 1fr}.iulc-stats.three .iulc-stat:last-child{grid-column:1/-1}}

/* IUL benefits */
.iulb{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.iulb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2rem)}
.iulb-card .ico{width:44px;height:44px;color:var(--fir);margin-bottom:1rem}
.iulb-card p{color:var(--muted);margin:0}
.iulb-card .ticks{margin:.5rem 0 0}
.iulb-card .ticks li{color:var(--muted)}
.iulb-carriers{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:center;background:var(--fir);border-color:transparent}
.iulb-carriers .ico{color:var(--porch);margin:0;width:56px;height:56px}
.iulb-carriers h3{color:var(--paper)}
.iulb-carriers p{color:color-mix(in srgb,var(--paper) 85%,transparent)}
:root[data-theme="dark"] .iulb-carriers{background:#1F3D35}
:root[data-theme="dark"] .iulb-carriers h3{color:#F6F7F4}
:root[data-theme="dark"] .iulb-carriers p{color:rgba(246,247,244,.85)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .iulb-carriers{background:#1F3D35}
  :root:not([data-theme="light"]) .iulb-carriers h3{color:#F6F7F4}
  :root:not([data-theme="light"]) .iulb-carriers p{color:rgba(246,247,244,.85)}
}
.iulb-note{font-size:.85rem;color:var(--muted);margin-top:1.5rem;max-width:none;line-height:1.5}
@media (max-width:980px){.iulb{grid-template-columns:1fr 1fr}.iulb-card:last-child{grid-column:1/-1}}
@media (max-width:640px){.iulb{grid-template-columns:1fr}.iulb-carriers{grid-template-columns:1fr;gap:1rem}.iulb-card:last-child{grid-column:auto}}

/* IUL calculator */
:root{--cv:#1E8A5A;--prem:#C0841F;--db:#3D6CB8}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cv:#2FA275;--prem:#BC8129;--db:#5F88D6}}
:root[data-theme="dark"]{--cv:#2FA275;--prem:#BC8129;--db:#5F88D6}
.iulc{display:grid;grid-template-columns:320px 1fr;gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.iulc-inputs{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;position:sticky;top:calc(env(safe-area-inset-top,0px) + 100px)}
.money{position:relative}
.money span{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600}
.money input{padding-left:1.8rem}
.iulc-range{width:100%;margin-top:.6rem;accent-color:var(--fir)}
.iulc-rate{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background:var(--mist);border-radius:var(--r-sm);margin:.25rem 0 1rem}
.iulc-rate strong{font-family:var(--display);font-size:1.4rem}
.iulc-design{font-size:.9rem;color:var(--muted);margin:0}
.iulc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
.iulc-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:1rem}
.iulc-stat span{display:block;font-size:.88rem;color:var(--muted);margin-bottom:.25rem}
.iulc-stat strong{font-family:var(--display);font-size:clamp(1.25rem,2.4vw,1.65rem);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.iulc-face{color:var(--muted);font-size:.95rem;margin:.9rem 0 1rem;max-width:none}
.iulc-chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.25rem 1.25rem .75rem}
.iulc-legend{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.92rem;color:var(--ink);margin-bottom:.5rem}
.iulc-legend span{display:inline-flex;align-items:center;gap:.45rem}
.iulc-legend .sw{display:inline-block;width:22px;height:0;border-top:2px solid var(--cv)}
.iulc-legend .sw.prem{border-top:2px dashed var(--prem)}
.iulc-legend .sw.db{border-top-color:var(--db)}
.iulc-chart{position:relative;height:320px}
.iulc-chart svg{display:block;width:100%;height:100%;overflow:visible}
.iulc-chart .grid line{stroke:var(--line);stroke-width:1}
.iulc-chart .tick{fill:var(--muted);font:500 12px var(--body);font-variant-numeric:tabular-nums}
.iulc-chart .endlbl{fill:var(--ink);font:600 12px var(--body)}
.iulc-chart .hit:focus{outline:none}
.iulc-chart .hit:focus-visible{outline:none;stroke:var(--porch);stroke-width:2}
.iulc-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:.6rem .75rem;font-size:.88rem;min-width:190px;z-index:2}
.iulc-tip strong{display:block;margin-bottom:.3rem}
.iulc-tip div{display:flex;justify-content:space-between;gap:1rem;font-variant-numeric:tabular-nums}
.iulc-tip i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem}
.iulc-hint{font-size:.85rem;color:var(--muted);margin:.5rem 0 0}
.iulc-warn{margin:1rem 0 0;padding:.9rem 1rem;border-radius:var(--r-sm);border:1.5px solid var(--porch);background:color-mix(in srgb,var(--porch) 12%,transparent);font-weight:500;max-width:none}
.iulc-table{margin-top:1rem}
.iulc-table summary{cursor:pointer;font-weight:600;color:var(--fir);padding:.4rem 0}
.iulc-table td,.iulc-table th{font-variant-numeric:tabular-nums}
.iulc-results .hero-actions{margin-top:1.25rem}
.iulc-disclaimer{font-size:.82rem;color:var(--muted);margin-top:1.75rem;max-width:none;line-height:1.5}
@media (max-width:1080px){.iulc-stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.iulc{grid-template-columns:1fr}.iulc-inputs{position:static}}
@media (max-width:640px){.iulc-chart{height:260px}.iulc-chart-card{padding:1rem .75rem .5rem}}

/* Responsive */
@media (max-width:980px){
  .hero-grid,.split,.faq-wrap,.contact-grid,.cta-inner{grid-template-columns:1fr}
  .quotes{grid-template-columns:1fr 1fr}
  .q.big{grid-column:span 2}
  .grid-svc{grid-template-columns:repeat(2,1fr)}
  .grid-svc article.feature{grid-column:span 2}
  .grid-svc .span2{grid-column:auto}
  .grid-svc .span3{grid-column:span 2}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:2.5rem}
  .steps li:nth-child(2)::after{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .svc-a,.svc-b,.svc-c,.svc-d{grid-column:span 6;min-height:340px}
}
@media (max-width:640px){
  body{font-size:1rem}
  .benefits,.quotes,.grid-svc,.steps,.values,.foot-grid{grid-template-columns:1fr}
  .q.big{grid-column:auto}
  .grid-svc article.feature{grid-column:auto;grid-template-columns:1fr}
  .grid-svc .span2,.grid-svc .span3{grid-column:auto}
  .steps li::after{display:none}
  .svc-a,.svc-b,.svc-c,.svc-d{grid-column:span 12;min-height:300px}
  .values > div,.values > div:nth-child(even){padding:1.5rem 0;border-right:none}
  .row2{grid-template-columns:1fr}
  .chooser{grid-template-columns:repeat(3,1fr)}
  .trust ul{justify-content:flex-start}
  .map .pin-card{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
