/* ============================================================
   Breath Out Moving — design system v2
   Evergreen PNW premium · brand red-orange · photographic
   ============================================================ */
:root{
  --pine:#0e3b2e; --pine-deep:#0b2b21; --pine-black:#081f17;
  --moss:#1d5c44; --mint:#8fd9b6; --mint-soft:#dff0e7;
  --paper:#f7f5ef; --mist:#eef1ea; --card:#ffffff;
  --ink:#122019; --ink-2:#41544a; --ink-3:#6b7d73;
  --brand:#e8631c; --brand-deep:#c24a10; --brand-soft:#fdeadd;
  --gold:#d9a441;
  --radius:20px; --radius-sm:14px;
  --shadow-sm:0 1px 2px rgba(12,32,25,.06),0 4px 16px rgba(12,32,25,.07);
  --shadow-lg:0 18px 50px rgba(12,32,25,.16);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Outfit",system-ui,-apple-system,sans-serif;
  --container:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.55'/></svg>");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:16px/1.65 var(--font-body);color:var(--ink);background:var(--paper);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--moss)}
::selection{background:var(--mint);color:var(--pine-black)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;color:var(--ink);letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.6vw,4.3rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:clamp(1.25rem,2vw,1.55rem)}
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(18px,4vw,32px)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--pine);color:#fff;padding:10px 18px;z-index:200;border-radius:0 0 10px 0}
.skip-link:focus{left:0}
.accent{color:var(--brand);font-style:italic;position:relative;white-space:nowrap}
.accent .squiggle{position:absolute;left:0;right:0;bottom:-.14em;width:100%;height:.22em;overflow:visible}
.accent .squiggle path{stroke:var(--brand);stroke-width:5;fill:none;stroke-linecap:round;stroke-dasharray:620;stroke-dashoffset:620;animation:draw 1s .7s var(--ease) forwards;opacity:.85}
@keyframes draw{to{stroke-dashoffset:0}}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:800;letter-spacing:2.6px;text-transform:uppercase;color:var(--moss);margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--brand);border-radius:2px}
.lead-text{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--ink-2);max-width:640px}
section{position:relative}
.section{padding:clamp(64px,9vw,120px) 0}
.section-mist{background:var(--mist)}
.section-pine{background:var(--pine);color:#eaf3ee;position:relative;overflow:hidden}
.section-pine::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.05;pointer-events:none}
.section-pine h2,.section-pine h3{color:#fff}
.section-pine .lead-text{color:#b9d2c6}
.center{text-align:center}
.center .lead-text{margin:0 auto}
.center .eyebrow{justify-content:center}

/* ---------- buttons ---------- */
.btn-primary,.btn-ghost,.btn-light{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:15.5px;border-radius:999px;padding:15px 30px;text-decoration:none;border:none;cursor:pointer;font-family:var(--font-body);transition:transform .2s var(--ease-spring),box-shadow .2s var(--ease),background .18s;will-change:transform}
.btn-primary{background:linear-gradient(135deg,#f0763a,var(--brand) 45%,var(--brand-deep));color:#fff;box-shadow:0 6px 20px rgba(232,99,28,.38),inset 0 1px 0 rgba(255,255,255,.25);position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.4) 50%,transparent 60%);transform:translateX(-130%);transition:transform .55s}
.btn-primary:hover{box-shadow:0 12px 30px rgba(232,99,28,.5),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-primary:hover::after{transform:translateX(130%)}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{background:transparent;color:var(--pine);border:2px solid rgba(14,59,46,.22)}
.btn-ghost:hover{border-color:var(--pine);background:rgba(14,59,46,.04)}
.btn-light{background:#fff;color:var(--pine);box-shadow:var(--shadow-sm)}
.btn-light:hover{box-shadow:var(--shadow-lg)}
.btn-lg{padding:18px 38px;font-size:17px}
.btn-header{padding:12px 24px}

/* ---------- topbar + header ---------- */
.topbar{background:var(--pine-black);color:#cfe5da;font-size:13px;position:relative;z-index:60}
.topbar-in{display:flex;align-items:center;gap:22px;height:40px;overflow:hidden}
.topbar-item{white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.live-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;display:inline-block;box-shadow:0 0 0 0 rgba(74,222,128,.5);animation:pulse 2.2s infinite}
.live-dot.closed{background:var(--gold);animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.45)}70%{box-shadow:0 0 0 7px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.topbar-special{color:var(--gold);font-weight:600;flex:1;justify-content:center;overflow:hidden;text-overflow:ellipsis}
.topbar-phone{color:#fff;font-weight:700;text-decoration:none;margin-left:auto}
.topbar-phone:hover{color:var(--mint)}
@media(max-width:700px){.topbar-open{display:none}}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,245,239,.82);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid rgba(14,59,46,.08);transition:box-shadow .25s,transform .35s var(--ease)}
.site-header.scrolled{box-shadow:0 6px 28px rgba(12,32,25,.09)}
.site-header.hidden{transform:translateY(-110%)}
.header-in{display:flex;align-items:center;gap:24px;height:80px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--pine)}
.logo-mark{width:52px;height:36px;--lg-main:var(--pine);--lg-accent:var(--brand);--lg-glass:var(--paper)}
.brand:hover .lm-l1{animation:zoom1 .7s var(--ease)}
.brand:hover .lm-l2{animation:zoom1 .7s .08s var(--ease)}
.brand:hover .lm-l3{animation:zoom1 .7s .16s var(--ease)}
@keyframes zoom1{40%{transform:translateX(-5px);opacity:1}100%{transform:none}}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text b{font-family:var(--font-display);font-size:21px;font-weight:700;color:var(--pine);letter-spacing:-.02em}
.brand-text i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:1.9px;text-transform:uppercase;color:var(--ink-3)}
.main-nav{display:flex;gap:2px;margin-left:auto}
.main-nav a{color:var(--ink-2);text-decoration:none;font-weight:600;font-size:15px;padding:9px 14px;border-radius:99px;transition:background .15s,color .15s;white-space:nowrap;position:relative}
.main-nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;background:var(--brand);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.main-nav a:hover{color:var(--pine)}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav a[aria-current]{color:var(--pine);background:var(--mint-soft)}
.header-cta{display:flex;align-items:center;gap:14px}
.header-phone{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap}
.hp-ic{width:38px;height:38px;border-radius:50%;background:var(--mint-soft);color:var(--moss);display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease-spring)}
.header-phone:hover .hp-ic{transform:rotate(-12deg) scale(1.08);background:var(--pine);color:#fff}
.hp-tx{display:flex;flex-direction:column;line-height:1.15}
.hp-tx b{color:var(--pine);font-size:15px;font-weight:800}
.hp-tx i{font-style:normal;font-size:11px;color:var(--ink-3);font-weight:600}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:10px;cursor:pointer}
.nav-toggle span{width:24px;height:2.5px;background:var(--pine);border-radius:2px;transition:transform .25s,opacity .25s}
@media(max-width:1060px){
  .main-nav{position:fixed;inset:0 0 auto 0;top:0;padding:130px 24px 30px;background:var(--paper);flex-direction:column;gap:2px;border-bottom:1px solid rgba(14,59,46,.1);transform:translateY(-105%);transition:transform .35s var(--ease);box-shadow:var(--shadow-lg);z-index:-1}
  .main-nav.open{transform:translateY(0)}
  .main-nav a{font-size:18px;padding:14px 16px}
  .main-nav a::after{display:none}
  .nav-toggle{display:flex}
  .header-phone .hp-tx{display:none}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
}
@media(max-width:560px){.header-cta .btn-header{padding:11px 18px;font-size:14px}.brand-text i{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;background:url(/assets/hero.webp) center 30%/cover no-repeat;z-index:-3;transform:scale(1.06)}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(100deg,rgba(8,31,23,.96) 0%,rgba(11,43,33,.88) 38%,rgba(11,43,33,.55) 68%,rgba(14,59,46,.65) 100%),
  linear-gradient(0deg,rgba(8,31,23,.55),transparent 40%)}
.hero-grain{position:absolute;inset:0;background-image:var(--grain);opacity:.055;z-index:-1;pointer-events:none}
.fog{position:absolute;border-radius:50%;filter:blur(70px);background:rgba(223,240,231,.12);pointer-events:none;animation:drift 26s ease-in-out infinite alternate;z-index:-1}
.fog.f2{animation-duration:36s;animation-delay:-12s}
.fog.f3{animation-duration:46s;animation-delay:-22s}
@keyframes drift{from{transform:translateX(-5%) translateY(1%)}to{transform:translateX(5%) translateY(-2%)}}
.hero-ridge{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:2;pointer-events:none}
.ridge3{width:100%;height:clamp(70px,11vw,160px);display:block}
.hero-in{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(30px,5vw,70px);align-items:center;padding:clamp(54px,7vw,100px) 0 clamp(120px,15vw,190px)}
.hero h1{color:#fff;margin:18px 0 20px;font-size:clamp(2.3rem,4.3vw,3.55rem)}
.hero h1 .wd{display:inline-block;opacity:0;transform:translateY(26px) rotate(2deg);animation:wdIn .7s var(--ease) forwards;animation-delay:calc(var(--i)*70ms + 120ms)}
@keyframes wdIn{to{opacity:1;transform:none}}
.hero .lead-text{color:#cfe0d7;margin-bottom:32px;font-size:clamp(1.05rem,1.5vw,1.18rem)}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px}
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);padding:8px 16px;border-radius:99px;font-size:13.5px;font-weight:600;color:#e7f2ec}
.badge svg{color:var(--mint);flex-shrink:0}
.badge-gold{color:var(--gold)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.hero-call{color:#fff;text-decoration:none;font-weight:700;font-size:17px;display:inline-flex;align-items:center;gap:11px}
.hero-call .hp-ic{background:rgba(255,255,255,.12);color:var(--mint);width:44px;height:44px}
.hero-call:hover .hp-ic{background:var(--mint);color:var(--pine)}
.hero-call small{display:block;font-weight:500;font-size:12px;color:#9dbcae}
.hero-proof{display:flex;gap:clamp(22px,3.4vw,44px);margin-top:34px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.14);padding-top:24px}
.proof{min-width:90px}
.proof b{display:block;font-family:var(--font-display);font-size:clamp(1.7rem,2.6vw,2.3rem);color:#fff;font-weight:700}
.proof b em{font-style:normal;color:var(--mint)}
.proof span{font-size:12.5px;color:#9dbcae;font-weight:600;letter-spacing:.3px}
@media(max-width:920px){.hero-in{grid-template-columns:1fr;padding-bottom:150px}.hero-card-wrap{max-width:560px}}

/* hero estimator card */
.hero-card{background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(4,18,12,.55),0 2px 0 rgba(255,255,255,.6) inset;color:var(--ink);padding:28px 28px 24px;position:relative}
.hero-card h2{font-size:1.35rem;margin-bottom:4px}
.hero-card .hc-sub{font-size:13.5px;color:var(--ink-3);margin-bottom:18px}
.hc-note{font-size:12.5px;color:var(--ink-3);text-align:center;margin-top:13px}

/* ---------- estimator ---------- */
.est-row{margin-bottom:16px}
.est-label{font-size:12.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px;display:flex;justify-content:space-between}
.est-label output{color:var(--brand);font-weight:800}
.seg{display:flex;background:var(--mist);border-radius:13px;padding:4px;gap:4px;flex-wrap:wrap}
.seg button{flex:1;min-width:58px;border:none;background:transparent;font:600 13.5px var(--font-body);color:var(--ink-2);padding:10px 6px;border-radius:10px;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s,transform .18s var(--ease-spring)}
.seg button:active{transform:scale(.95)}
.seg button.on{background:#fff;color:var(--pine);box-shadow:var(--shadow-sm);font-weight:800}
.est-slider{width:100%;appearance:none;-webkit-appearance:none;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--brand) var(--fill,30%),#e2e8e3 var(--fill,30%));outline:none}
.est-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 2px 10px rgba(0,0,0,.22);cursor:grab;transition:transform .15s}
.est-slider::-webkit-slider-thumb:hover{transform:scale(1.12)}
.est-slider::-moz-range-thumb{width:21px;height:21px;border-radius:50%;background:#fff;border:3px solid var(--brand);cursor:grab}
.truckfill{display:none;align-items:center;gap:12px;margin:2px 0 4px}
.estimator[data-service="junk"] .truckfill{display:flex}
.truckfill svg{width:86px;flex-shrink:0}
.truckfill .tf-note{font-size:12.5px;color:var(--ink-3);line-height:1.4}
.tf-cargo{transition:height .45s var(--ease),y .45s var(--ease)}
.est-result{background:linear-gradient(130deg,var(--pine-deep),var(--moss));border-radius:16px;color:#fff;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;position:relative;overflow:hidden}
.est-result::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.06;pointer-events:none}
.est-result .er-label{font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:#a9cbbc;font-weight:700}
.est-result .er-price{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.est-result .er-note{font-size:11.5px;color:#a9cbbc;text-align:right}
.est-cta{width:100%;margin-top:14px}

/* ---------- ticker ---------- */
.ticker{background:var(--pine-black);color:#cfe5da;overflow:hidden;padding:15px 0;position:relative;z-index:3}
.ticker-track{display:flex;gap:0;width:max-content;animation:marquee 36s linear infinite}
.ticker span{display:inline-flex;align-items:center;gap:26px;padding-right:26px;font-size:13px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;white-space:nowrap}
.ticker i{font-style:normal;color:var(--brand);font-size:15px}

/* ---------- specials banner ---------- */
.special-banner{position:relative;z-index:4;margin-top:-64px}
.special-card{background:linear-gradient(120deg,#12302633,#0e3b2e00),linear-gradient(120deg,#132e25,#0e3b2e 55%,#175243);border:1px solid rgba(143,217,182,.28);border-radius:22px;box-shadow:var(--shadow-lg);color:#fff;display:flex;align-items:center;gap:clamp(16px,3vw,34px);padding:22px clamp(20px,3.5vw,38px);flex-wrap:wrap;position:relative;overflow:hidden}
.special-card::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(232,99,28,.22),transparent 65%);top:-140px;right:-60px;pointer-events:none}
.special-flame{font-size:36px;filter:drop-shadow(0 4px 12px rgba(232,99,28,.55));animation:flick 2.4s ease-in-out infinite}
@keyframes flick{0%,100%{transform:rotate(-4deg) scale(1)}50%{transform:rotate(4deg) scale(1.08)}}
.special-copy{flex:1;min-width:230px}
.special-kicker{font-size:11.5px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold)}
.special-title{font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.65rem);font-weight:700}
.special-sub{font-size:13.5px;color:#b9d2c6}
.countdown{display:flex;gap:8px}
.cd{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:9px 11px;text-align:center;min-width:56px}
.cd b{display:block;font-size:20px;font-variant-numeric:tabular-nums;font-family:var(--font-display)}
.cd span{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#9dbcae}

/* ---------- cards / grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid-3,.grid-2,.grid-4{grid-template-columns:1fr}}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:30px 28px;transition:transform .3s var(--ease),box-shadow .3s var(--ease);position:relative;overflow:hidden}
.card:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg)}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a::after{content:"";position:absolute;inset:0}
.card .icon{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--mint-soft),#eef7f1);color:var(--moss);display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:transform .3s var(--ease-spring),background .3s,color .3s}
.card .icon svg{width:27px;height:27px}
.card:hover .icon{transform:scale(1.1) rotate(-6deg);background:var(--pine);color:var(--mint)}
.card p{color:var(--ink-2);font-size:15px;margin-top:8px}
.card .card-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-weight:700;color:var(--brand);text-decoration:none;font-size:14.5px;transition:gap .2s}
.card:hover .card-link{gap:11px}
.card-imgwrap{margin:-30px -28px 20px;overflow:hidden;aspect-ratio:16/9}
.card-img{width:100%;height:100%;object-fit:cover;max-width:none;transition:transform .6s var(--ease)}
.card:hover .card-img{transform:scale(1.07)}

/* price card */
.price-cards{align-items:stretch}
.price-card{display:flex;flex-direction:column;text-align:center;padding:38px 28px}
.price-card.featured{background:var(--pine);color:#e7f2ec;transform:scale(1.04);z-index:1}
.price-card.featured h3{color:#fff}
.price-card.featured:hover{transform:scale(1.04) translateY(-7px)}
.price-card .from{font-size:11.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-3);font-weight:800;margin-top:14px}
.price-card .amount{font-family:var(--font-display);font-size:2.8rem;font-weight:700;color:var(--brand);line-height:1;margin:4px 0 2px}
.price-card .per{font-size:13px;color:var(--ink-3)}
.price-card.featured .from,.price-card.featured .per{color:#9dbcae}
.price-card ul{list-style:none;text-align:left;margin:22px 0 26px;flex:1}
.price-card li{padding:7px 0 7px 30px;position:relative;font-size:14.5px;color:var(--ink-2)}
.price-card.featured li{color:#c6dcd1}
.price-card li::before{content:"✓";position:absolute;left:2px;color:var(--brand);font-weight:800}
.price-card.featured li::before{color:var(--mint)}

/* ---------- steps ---------- */
.steps-wrap{position:relative}
.steps-track{position:absolute;top:34px;left:8%;right:8%;height:2px;border-top:2.5px dashed rgba(14,59,46,.22)}
.steps-truck{position:absolute;top:-25px;left:0%;width:56px;color:var(--brand);transition:left .15s linear;filter:drop-shadow(0 4px 8px rgba(232,99,28,.3))}
@media(max-width:960px){.steps-track{display:none}}
.steps{counter-reset:step;position:relative}
.step .num{font-family:var(--font-display);font-size:3.6rem;font-weight:700;color:transparent;-webkit-text-stroke:1.5px var(--brand);line-height:1;margin-bottom:14px;background:var(--paper);display:inline-block;padding-right:12px;position:relative}
.section-mist .step .num{background:var(--mist)}
.section-pine .step .num{-webkit-text-stroke-color:var(--mint);background:var(--pine)}

/* ---------- reviews ---------- */
.review-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.review-track{display:flex;gap:22px;width:max-content;animation:marquee 60s linear infinite;padding:8px 0}
.review-marquee:hover .review-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.review-card{width:min(370px,84vw);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:26px;flex-shrink:0;position:relative}
.review-card::before{content:"“";position:absolute;top:6px;right:20px;font-family:var(--font-display);font-size:70px;line-height:1;color:var(--mint-soft);pointer-events:none}
.stars{color:var(--gold);letter-spacing:2.5px;font-size:14px;margin-bottom:10px}
.review-card p{font-size:14.5px;color:var(--ink-2);font-style:italic;position:relative}
.review-card .who{margin-top:16px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:10px}
.review-card .who span{font-weight:500;color:var(--ink-3);font-size:12.5px}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--moss),var(--pine));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;letter-spacing:.5px;flex-shrink:0}
.gbadge{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:11.5px;font-weight:700;color:var(--ink-3)}
.gbadge svg{width:14px;height:14px}

/* ---------- before/after ---------- */
.ba{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10;box-shadow:0 24px 60px rgba(4,18,12,.5);user-select:none;touch-action:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .ba-after{clip-path:inset(0 0 0 var(--split,50%))}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--split,50%);width:3px;background:#fff;cursor:ew-resize;box-shadow:0 0 16px rgba(0,0,0,.45)}
.ba-handle::after{content:"⟷";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:var(--pine);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;box-shadow:var(--shadow-lg);transition:transform .2s var(--ease-spring)}
.ba:hover .ba-handle::after{transform:translate(-50%,-50%) scale(1.1)}
.ba-tag{position:absolute;top:16px;background:rgba(8,31,23,.75);color:#fff;font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:7px 16px;border-radius:99px;backdrop-filter:blur(5px)}
.ba-tag.before{left:16px}
.ba-tag.after{right:16px;background:rgba(232,99,28,.85)}

/* ---------- faq ---------- */
.faq-list{max-width:780px;margin:0 auto}
.faq-item{background:var(--card);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:12px;overflow:hidden;transition:box-shadow .2s}
.faq-item[open]{box-shadow:var(--shadow-lg)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 58px 20px 26px;font-weight:700;font-size:16.5px;position:relative;font-family:var(--font-body)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:27px;font-weight:300;color:var(--brand);transition:transform .3s var(--ease);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);border-radius:50%}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-item .faq-a{padding:0 26px 22px;color:var(--ink-2);font-size:15px}

/* ---------- quote wizard ---------- */
.wizard{max-width:660px;margin:0 auto;background:#fff;border-radius:26px;box-shadow:var(--shadow-lg);overflow:hidden}
.wiz-head{background:linear-gradient(120deg,var(--pine-deep),var(--moss));color:#fff;padding:28px 32px 24px;position:relative;overflow:hidden}
.wiz-head::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.06;pointer-events:none}
.wiz-head h2{color:#fff;font-size:1.5rem}
.wiz-head p{color:#b9d2c6;font-size:14px;margin-top:4px}
.wiz-progress{height:6px;background:rgba(255,255,255,.15);border-radius:99px;margin-top:18px;overflow:hidden;position:relative;z-index:1}
.wiz-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--gold));border-radius:99px;transition:width .5s var(--ease)}
.wiz-body{padding:32px}
.wiz-step{display:none;animation:wizIn .4s var(--ease)}
.wiz-step.on{display:block}
@keyframes wizIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
.wiz-title{font-weight:800;font-size:19px;margin-bottom:16px;font-family:var(--font-body)}
.opt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(max-width:520px){.opt-grid{grid-template-columns:1fr}}
.opt{border:2px solid #e5eae4;border-radius:16px;padding:16px;cursor:pointer;display:flex;align-items:center;gap:13px;transition:border-color .18s,background .18s,transform .18s var(--ease-spring);background:#fff;font:inherit;text-align:left;width:100%}
.opt:hover{transform:translateY(-2px);border-color:#cdd8d0}
.opt:active{transform:scale(.97)}
.opt.on{border-color:var(--brand);background:var(--brand-soft)}
.opt .oi{width:42px;height:42px;border-radius:12px;background:var(--mint-soft);color:var(--moss);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.opt .oi svg{width:22px;height:22px}
.opt.on .oi{background:var(--brand);color:#fff}
.opt b{display:block;font-size:15px}
.opt span{font-size:12.5px;color:var(--ink-3)}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:700;letter-spacing:.3px;color:var(--ink-2);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;border:2px solid #e5eae4;border-radius:13px;padding:13px 16px;font:15px var(--font-body);color:var(--ink);background:#fff;outline:none;transition:border-color .18s,box-shadow .18s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--moss);box-shadow:0 0 0 4px rgba(29,92,68,.1)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.field-row{grid-template-columns:1fr}}
.wiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
.wiz-back{background:none;border:none;color:var(--ink-3);font:600 14.5px var(--font-body);cursor:pointer;padding:10px}
.wiz-back:hover{color:var(--pine)}
.wiz-done{text-align:center;padding:28px 10px}
.wiz-done .big{font-size:64px;line-height:1;animation:pop .55s var(--ease-spring)}
@keyframes pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1)}}
.wiz-done h3{margin:14px 0 8px}
.wiz-done p{color:var(--ink-2);max-width:400px;margin:0 auto}
.err-msg{color:#c0392b;font-size:13.5px;min-height:18px;margin-top:8px}

/* ---------- page hero (inner pages) ---------- */
.page-hero{background:linear-gradient(180deg,var(--pine-deep),var(--pine));color:#fff;padding:clamp(46px,6.5vw,84px) 0 clamp(90px,12vw,140px);position:relative;overflow:hidden;isolation:isolate}
.page-hero.has-img::before{content:"";position:absolute;inset:0;background-image:var(--hero-img);background-size:cover;background-position:center 35%;z-index:-2}
.page-hero.has-img::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(8,31,23,.95) 0%,rgba(11,43,33,.9) 40%,rgba(11,43,33,.66) 75%,rgba(11,43,33,.8) 100%)}
.page-hero h1{color:#fff;max-width:840px}
.page-hero .lead-text{color:#cfe0d7;margin-top:16px}
.page-hero .hero-ctas{margin-top:30px}
.page-hero .hero-ridge{z-index:2}
.crumbs{font-size:13px;color:#9dbcae;margin-bottom:20px}
.crumbs a{color:#c6dcd1;text-decoration:none}
.crumbs a:hover{color:#fff}

/* ---------- misc ---------- */
.checklist{list-style:none}
.checklist li{padding:9px 0 9px 36px;position:relative;font-size:15.5px;color:var(--ink-2)}
.checklist li::before{content:"";position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;background:var(--mint-soft) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%231d5c44" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') center/12px no-repeat}
.section-pine .checklist li{color:#c6dcd1}
.chip-row{display:flex;flex-wrap:wrap;gap:10px}
.chip-link{background:#fff;border:1px solid rgba(14,59,46,.14);color:var(--pine);text-decoration:none;font-weight:600;font-size:14px;padding:10px 19px;border-radius:99px;transition:background .2s,color .2s,transform .2s var(--ease-spring),box-shadow .2s;display:inline-flex;align-items:center;gap:8px}
.chip-link svg{width:16px;height:16px;color:var(--moss);transition:color .2s}
.chip-link:hover{background:var(--pine);color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px rgba(14,59,46,.22)}
.chip-link:hover svg{color:var(--mint)}
.section-pine .chip-link{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#e7f2ec}
.section-pine .chip-link:hover{background:#fff;color:var(--pine)}
.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,64px);align-items:center}
@media(max-width:880px){.two-col{grid-template-columns:1fr}}
.img-frame{border-radius:24px;overflow:hidden;box-shadow:var(--shadow-lg);position:relative}
.img-frame img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s var(--ease)}
.img-frame:hover img{transform:scale(1.04)}
.img-frame.tall img{aspect-ratio:3/4}
.floating-tag{position:absolute;bottom:18px;left:18px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-radius:16px;padding:13px 19px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px}
.floating-tag b{font-family:var(--font-display);font-size:21px;color:var(--pine)}
.floating-tag span{font-size:12px;color:var(--ink-3);display:block;line-height:1.35}
/* photo stack */
.photo-stack{position:relative;padding:20px 26px 30px 0}
.photo-stack .img-frame{width:88%}
.photo-stack .ps-back{position:absolute;top:0;right:0;width:62%;z-index:0;transform:rotate(3.5deg);opacity:.98}
.photo-stack .ps-front{position:relative;z-index:1;transform:rotate(-1.6deg);transition:transform .4s var(--ease)}
.photo-stack:hover .ps-front{transform:rotate(0)}
.stat-chip{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:11px 16px;display:flex;align-items:center;gap:10px;z-index:2;font-size:13px;font-weight:700;color:var(--pine)}
.stat-chip svg{width:20px;height:20px;color:var(--brand)}
.ridge{line-height:0}
.ridge svg{width:100%;height:clamp(34px,6vw,80px);display:block}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--brand-deep),var(--brand) 60%,#f08a4b);color:#fff;border-radius:28px;padding:clamp(38px,6vw,66px);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;width:380px;height:380px;border-radius:50%;background:rgba(255,255,255,.1);top:-180px;right:-90px}
.cta-band::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.05;pointer-events:none}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem);max-width:540px}
.cta-band p{color:#ffe1cd;margin-top:8px}
.cta-band .btn-light{color:var(--brand-deep)}
.cta-band>*{position:relative;z-index:1}
.cta-truck{position:absolute;right:clamp(10px,4vw,60px);bottom:-14px;width:clamp(120px,16vw,210px);opacity:.16;z-index:0;transform:translateX(140px);transition:transform 1.1s var(--ease)}
.rv.in .cta-truck,.cta-band.in .cta-truck{transform:translateX(0)}

/* ---------- area map ---------- */
.map-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,60px);align-items:center}
@media(max-width:880px){.map-wrap{grid-template-columns:1fr}}
.area-map{width:100%;max-width:520px;height:auto;margin:0 auto;display:block;--map-land:#e9efe7;--map-water:#c6ddd2;--map-hill:#dde8dc;--map-stroke:rgba(14,59,46,.15)}
.map-dot{fill:var(--pine);transition:r .2s var(--ease),fill .2s}
.map-city{cursor:pointer}
.map-city:hover .map-dot{fill:var(--brand);r:6.5}
.map-label{font:600 12.5px var(--font-body);fill:var(--ink-2);transition:fill .2s}
.map-city:hover .map-label{fill:var(--brand-deep);font-weight:800}
.map-label-home{font-weight:800;fill:var(--brand-deep);font-size:13.5px}
.map-pulse{fill:rgba(232,99,28,.3);animation:mapPulse 2.4s ease-out infinite}
@keyframes mapPulse{0%,100%{opacity:.15}50%{opacity:.75}}

/* footer */
.site-footer{background:var(--pine-black);color:#a9c4b7;font-size:14.5px;position:relative;overflow:hidden}
.footer-ridge{background:var(--paper);line-height:0}
.footer-ridge .ridge3{height:clamp(50px,8vw,110px)}
.section-mist + footer .footer-ridge,.section-mist~footer .footer-ridge{background:var(--mist)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(26px,4vw,54px);padding:clamp(48px,6vw,74px) clamp(18px,4vw,32px) clamp(30px,4vw,44px);position:relative;z-index:1}
@media(max-width:880px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.footer-grid{grid-template-columns:1fr}}
.footer-brand .logo-mark{width:66px;height:46px;margin-bottom:16px;--lg-main:var(--mint);--lg-accent:var(--brand);--lg-glass:var(--pine-black)}
.footer-tag{max-width:300px;line-height:1.6}
.footer-phone{display:inline-block;font-family:var(--font-display);font-size:27px;font-weight:700;color:#fff;text-decoration:none;margin-top:18px}
.footer-phone:hover{color:var(--mint)}
.footer-sub{font-size:12.5px;color:#6f8a7d}
.footer-social{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.footer-social a{color:#a9c4b7;text-decoration:none;font-weight:600;font-size:13px;border:1px solid rgba(255,255,255,.14);padding:8px 15px;border-radius:99px;transition:all .2s}
.footer-social a:hover{color:#fff;border-color:var(--mint);transform:translateY(-2px)}
.footer-col h3{color:#fff;font-family:var(--font-body);font-size:12.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}
.footer-col a{display:block;color:#a9c4b7;text-decoration:none;padding:5px 0;transition:color .15s,padding-left .2s var(--ease)}
.footer-col a:hover{color:var(--mint);padding-left:5px}
.footer-word{font-family:var(--font-display);font-weight:700;font-size:clamp(4rem,13vw,11.5rem);line-height:.8;text-align:center;color:rgba(143,217,182,.055);letter-spacing:.02em;user-select:none;pointer-events:none;white-space:nowrap;margin-top:-10px}
.footer-bottom{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.09);padding-top:22px;padding-bottom:28px;font-size:13px;color:#6f8a7d;position:relative;z-index:1}

/* mobile bar */
.mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:70;display:none;background:rgba(8,31,23,.96);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.1);padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.mobile-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;text-decoration:none;font-weight:700;font-size:14.5px;padding:13px;border-radius:13px;background:rgba(255,255,255,.08)}
.mobile-bar .mb-quote{background:linear-gradient(135deg,var(--brand),var(--brand-deep));flex:1.4;box-shadow:0 4px 14px rgba(232,99,28,.4)}
@media(max-width:760px){.mobile-bar{display:flex;gap:8px}body{padding-bottom:76px}}

/* reveal animations */
.rv{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv-left{transform:translateX(-36px)}
.rv-right{transform:translateX(36px)}
.rv-scale{transform:scale(.92)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}.rv-d4{transition-delay:.36s}
[data-plx]{will-change:transform}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .rv,.hero h1 .wd{opacity:1;transform:none}
  [data-plx]{transform:none !important}
  .ticker-track,.review-track{animation:none;flex-wrap:wrap}
}
