/* =========================================================
   Russotto Custom Wood Floors, v3 (bright, conversion-first)
   Barlow Condensed (headlines) + Barlow (body)
   ========================================================= */
:root{
  --white:#fff;
  --cream:#FFF8EE;
  --sand:#F7ECDC;
  --sand-2:#EFDFC7;
  --line:#EADBC6;
  --walnut:#2A170C;
  --walnut-2:#3D2415;
  --walnut-3:#5A3A24;
  --muted:#6E5847;
  --gold:#F2A93B;
  --gold-2:#FFC562;
  --gold-deep:#C47F1C;
  --gold-tint:#FFF1D9;
  --star:#F5A623;
  --red:#C2412D;
  --radius:18px;
  --shadow-sm:0 2px 6px rgba(42,23,12,.06),0 8px 24px rgba(42,23,12,.06);
  --shadow:0 4px 10px rgba(42,23,12,.06),0 24px 60px -12px rgba(42,23,12,.22);
  --f-head:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --f-body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --hdr:84px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--walnut);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
svg{flex:none}
section[id]{scroll-margin-top:calc(var(--hdr) + 8px)}
.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--gold);padding:10px 16px;border-radius:8px;font-weight:700}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--gold-deep);outline-offset:3px}

/* ---------- type ---------- */
.h-display,.h2,h3,.promo-h,.logo-word b,.btn,.eyebrow,legend{font-family:var(--f-head)}
.h-display{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(46px,5.8vw,86px);line-height:.9;letter-spacing:-.005em;margin:18px 0 20px}
.h2{font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(38px,4.4vw,62px);line-height:.94;margin:8px 0 16px;letter-spacing:-.005em}
/* emphasised words keep the heading's own colour (no highlight block) */
.hl{color:inherit}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0;font-weight:700;font-size:16px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep)}
.eyebrow::before{content:"";width:26px;height:3px;border-radius:2px;background:currentColor}
.eyebrow.light{color:var(--gold-2)}
.eyebrow.dark{color:var(--walnut)}
.lead{font-size:clamp(17px,1.35vw,19px);color:var(--muted);max-width:620px;margin:0 0 22px}
.sec-head{margin-bottom:44px}
.sec-head.center .lead{margin-inline:auto}
.sec-head.split{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:18px}
.stars{color:var(--star);letter-spacing:2px}

/* ---------- buttons ---------- */
.btn{--sh:var(--gold-deep);display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:12px;border:2px solid transparent;font-weight:800;font-size:18px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;line-height:1.1;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease,background .2s,color .2s;position:relative}
.btn svg{width:20px;height:20px;fill:currentColor}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:var(--walnut);box-shadow:0 4px 0 var(--gold-deep),0 10px 24px -8px rgba(196,127,28,.55)}
.btn-gold:hover{background:var(--gold-2);transform:translateY(-2px);box-shadow:0 6px 0 var(--gold-deep),0 16px 28px -8px rgba(196,127,28,.6)}
.btn-gold:active{transform:translateY(3px);box-shadow:0 1px 0 var(--gold-deep)}
.btn-dark{background:var(--walnut);color:#fff;box-shadow:0 4px 0 #000,0 10px 24px -10px rgba(0,0,0,.5)}
.btn-dark:hover{background:var(--walnut-2);transform:translateY(-2px)}
.btn-dark:active{transform:translateY(3px);box-shadow:0 1px 0 #000}
.btn-ghost{background:transparent;border-color:var(--walnut);color:var(--walnut)}
.btn-ghost:hover{background:var(--walnut);color:#fff}
.btn-outline-dark{border-color:var(--walnut);color:var(--walnut)}
.btn-outline-dark:hover{background:var(--walnut);color:var(--gold-2)}
.btn-lg{padding:16px 26px;font-size:20px}
.btn-xl{padding:19px 30px;font-size:22px;border-radius:14px}
.btn-block{width:100%}
.link{font-weight:700;color:var(--walnut);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:5px}
.link:hover{color:var(--gold-deep)}

/* ---------- utility bar ---------- */
.util{background:var(--walnut);color:#F6E7D2;font-size:14.5px}
.util-in{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.util p{margin:0;display:flex;align-items:center;gap:8px}
.util b{color:var(--gold-2);font-weight:700}
.live{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:live 2s infinite}
@keyframes live{70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.sep{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--gold);margin:0 10px}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:box-shadow .25s,border-color .25s}
.hdr.scrolled{box-shadow:0 8px 30px -12px rgba(42,23,12,.25);border-color:var(--line)}
.hdr-in{display:flex;align-items:center;gap:28px;height:var(--hdr)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.logo img{width:56px;height:auto}
.logo-word{display:flex;flex-direction:column;line-height:1}
.logo-word b{font-weight:900;font-style:italic;font-size:28px;letter-spacing:.02em}
.logo-word i{font-style:normal;font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-top:3px}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav>a,.nav-dd-btn{padding:10px 12px;border-radius:8px;font-weight:600;font-size:15.5px;text-decoration:none;background:none;border:0;display:flex;align-items:center;gap:6px}
.nav>a:hover,.nav-dd-btn:hover{background:var(--gold-tint)}
.nav-dd{position:relative}
.nav-dd-btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}
.nav-dd-menu{position:absolute;top:calc(100% + 8px);left:-12px;width:300px;background:#fff;border-radius:14px;box-shadow:var(--shadow);border:1px solid var(--line);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.nav-dd:hover .nav-dd-menu,.nav-dd.open .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{opacity:1;visibility:visible;transform:none}
.nav-dd:hover .nav-dd-btn svg,.nav-dd.open .nav-dd-btn svg{transform:rotate(180deg)}
.nav-dd-menu a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none}
.nav-dd-menu a:hover{background:var(--gold-tint)}
.nav-dd-menu b{display:block;font-size:15.5px}
.nav-dd-menu span{font-size:13.5px;color:var(--muted)}
.nav-dd-menu .dd-all{border-bottom:1px solid var(--line);border-radius:10px 10px 0 0;margin-bottom:4px}
.nav-dd-menu .dd-all b{color:var(--gold-deep)}
.hdr-cta{display:flex;align-items:center;gap:12px}
.pill-phone{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 21px/1 var(--f-head);letter-spacing:.02em;padding:5px 16px 5px 5px;border:2px solid var(--line);border-radius:999px;transition:border-color .2s}
.pill-phone:hover{border-color:var(--gold)}
.pill-phone svg{width:36px;height:36px;padding:8px;border-radius:50%;background:var(--gold);fill:var(--walnut)}
.burger{display:none;width:46px;height:46px;border-radius:10px;border:2px solid var(--line);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span{width:20px;height:2.5px;background:var(--walnut);border-radius:2px;transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.mnav{display:none}

/* ---------- hero: full-bleed job-site video (Augusta-style) ---------- */
.hero{position:relative;overflow:hidden;background:#2A170C;color:#fff;min-height:min(88vh,860px);display:flex;align-items:center;padding:64px 0 140px}
.hv-media{position:absolute;inset:0;z-index:0;background:#2A170C url(../assets/video/hero-desktop-poster.webp) center/cover}
.hv-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}
/* warm walnut shade: heavy behind the copy, opening up toward the footage on the right */
.hv-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(90deg,rgba(26,13,5,.86) 0%,rgba(26,13,5,.74) 36%,rgba(26,13,5,.3) 66%,rgba(26,13,5,.06) 100%),
  linear-gradient(0deg,rgba(26,13,5,.7) 0%,rgba(26,13,5,0) 34%),
  linear-gradient(180deg,rgba(26,13,5,.45) 0%,rgba(26,13,5,0) 22%)}
.hv-inner{position:relative;z-index:2;width:min(1240px,100% - 48px);margin-inline:auto}
.hero .h-display{font-size:clamp(44px,5.5vw,82px);line-height:.9;margin:18px 0 18px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.h-q{color:var(--gold-2)}
.hero .hl{background:linear-gradient(transparent 84%,var(--gold) 84%,var(--gold) 95%,transparent 95%);padding:0;margin:0}
.br-d{display:inline}
.kicker{display:inline-flex;align-items:center;gap:8px;margin:0;padding:7px 14px 7px 10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);border-radius:999px;font-weight:700;font-size:14.5px;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.kicker svg{width:18px;height:18px;fill:var(--gold-2)}
.hero-sub{font-size:clamp(17px,1.4vw,20px);color:#F2E4D2;max-width:600px;margin:0 0 20px;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero-sub b{color:#fff}
.rating{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:16px;margin-bottom:26px;color:#fff}
.rating .stars{font-size:22px}
.g{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);font:700 15px/1 Arial,sans-serif;color:#4285F4}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px}
.btn-light{background:#fff;color:var(--walnut);box-shadow:0 4px 0 #CDB79C,0 12px 26px -10px rgba(0,0,0,.5)}
.btn-light:hover{background:var(--cream);transform:translateY(-2px)}
.btn-light:active{transform:translateY(3px);box-shadow:0 1px 0 #CDB79C}
.hero-note{margin:16px 0 0;font-size:14.5px;font-weight:600;color:#E9D8C2;display:flex;align-items:center;gap:8px}
.hero-note::before{content:"✓";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#2F9E5A;color:#fff;font-size:12px;flex:none}
@keyframes bob{50%{transform:translateY(-8px)}}

/* ---------- trust ---------- */
.trust{position:relative;z-index:3;margin-top:-58px}
.trust-in{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}
.t-item{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:22px 20px;border-right:1px solid var(--line)}
.t-item:last-child{border-right:0}
.t-ic{grid-row:span 2;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--gold-tint)}
.t-ic svg{width:26px;height:26px;fill:none;stroke:var(--gold-deep);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.t-item b{font:800 italic 20px/1.05 var(--f-head);text-transform:uppercase}
.t-item span:not(.t-ic){font-size:13.5px;color:var(--muted);line-height:1.3}

/* ---------- estimate wizard ---------- */
.estimate{background:var(--white);padding:110px 0 100px}
.est-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center}
.est-sub{font-weight:700;margin:0 0 12px}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.checks li{position:relative;padding-left:38px;font-weight:500}
.checks li::before{content:"✓";position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--walnut);font-weight:900;font-size:14px}
.est-card{position:relative;background:#fff;border-radius:24px;padding:34px;box-shadow:var(--shadow);border:1px solid var(--line);border-top:8px solid var(--gold)}
.wz-top{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.wz-step-label{font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);white-space:nowrap}
.wz-step-label b{color:var(--walnut)}
.wz-bar{flex:1;height:8px;border-radius:8px;background:var(--sand)}
.wz-bar b{display:block;height:100%;width:33.3%;border-radius:8px;background:linear-gradient(90deg,var(--gold),var(--gold-deep));transition:width .4s ease}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(26px,2.4vw,32px);line-height:1;margin-bottom:18px;padding:0}
.wz-pane{display:none}
.wz-pane.on{display:block;animation:paneIn .35s ease}
@keyframes paneIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.opt{position:relative;cursor:pointer}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt>span{display:flex;flex-direction:column;gap:3px;height:100%;padding:16px;border:2px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,background .15s,transform .15s}
.opt>span svg{width:30px;height:30px;fill:none;stroke:var(--gold-deep);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;margin-bottom:6px}
.opt b{font:800 italic 20px/1.05 var(--f-head);text-transform:uppercase}
.opt i{font-style:normal;font-size:14px;color:var(--muted);line-height:1.3}
.opt:hover>span{border-color:var(--gold);transform:translateY(-2px)}
.opt input:checked+span{border-color:var(--gold-deep);background:var(--gold-tint);box-shadow:0 0 0 3px rgba(242,169,59,.25)}
.opt input:checked+span::after{content:"✓";position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:50%;background:var(--gold-deep);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:900}
.opt input:focus-visible+span{outline:3px solid var(--gold-deep);outline-offset:2px}
.field{display:block;margin-bottom:14px}
.field>span{display:block;font-weight:700;font-size:14.5px;margin-bottom:6px}
.field em{font-style:normal;font-weight:500;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;font:500 16px/1.4 var(--f-body);color:var(--walnut);background:#FFFDF9;border:2px solid var(--line);border-radius:12px;padding:13px 14px;transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%232A170C' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:38px}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(242,169,59,.2)}
.field .bad,.field input.bad{border-color:var(--red);box-shadow:0 0 0 4px rgba(194,65,45,.12)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.form-err{color:var(--red);font-weight:600;font-size:15px;margin:0 0 12px}
.form-err a{font-weight:700}
.wz-nav{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:6px}
.wz-back{margin-right:auto;padding:12px 18px;font-size:17px}
.wz-trust{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0 0;font-size:14px;color:var(--muted)}
.wz-trust svg{width:16px;height:16px;fill:#2F9E5A}
.btn[disabled]{opacity:.7;pointer-events:none}
.form-done{text-align:center;padding:30px 10px}
.done-ic{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--gold);color:var(--walnut);font-size:38px;font-weight:900;box-shadow:0 0 0 10px var(--gold-tint);animation:pop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{from{transform:scale(.3);opacity:0}}
.form-done h3{font:900 italic 40px/1 var(--f-head);text-transform:uppercase;margin:24px 0 10px}
.form-done p{color:var(--muted);margin:0 auto 10px;max-width:380px}
.done-call a{font-weight:800;color:var(--walnut)}

/* ---------- estimate pop-up ---------- */
html.modal-open{overflow:hidden}
.est-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px}
.em-backdrop{position:absolute;inset:0;background:rgba(26,13,5,.66);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transition:opacity .24s ease}
.em-card{position:relative;width:min(640px,100%);max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:24px;border-top:8px solid var(--gold);box-shadow:0 40px 100px -20px rgba(0,0,0,.6);padding:28px 32px 22px;opacity:0;transform:translateY(26px) scale(.96);transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .24s ease}
.est-modal.show .em-backdrop{opacity:1}
.est-modal.show .em-card{opacity:1;transform:none}
.em-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:0;background:var(--sand);color:var(--walnut);font-size:26px;line-height:1;display:grid;place-items:center;transition:background .2s}
.em-close:hover{background:var(--gold)}
.em-head{padding-right:44px;margin-bottom:14px}
.em-k{margin:0 0 4px;font:800 italic 14px/1 var(--f-head);text-transform:uppercase;letter-spacing:.14em;color:var(--gold-deep)}
.em-h{font:900 italic clamp(30px,4vw,40px)/.95 var(--f-head);text-transform:uppercase;margin:0 0 6px}
.em-sub{margin:0;font-size:14.5px;color:var(--muted);font-weight:600}
.em-body .wizard legend{font-size:clamp(22px,2.4vw,26px);margin-bottom:14px}
.em-body .form-done{padding:16px 0 6px}
.em-foot{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);text-align:center;font-size:15px;color:var(--muted)}
.em-foot a{font-weight:800;color:var(--walnut)}
@media (max-width:640px){
  .est-modal{padding:10px}
  .em-card{padding:20px 16px 16px;border-radius:20px;max-height:calc(100dvh - 20px)}
  .em-head{margin-bottom:10px}
}

/* ---------- services ---------- */
.services{background:var(--cream);padding:100px 0}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform .3s ease,box-shadow .3s ease}
.svc:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.svc-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--sand)}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.svc:hover .svc-img img{transform:scale(1.06)}
.svc-img .op-install{object-position:50% 40%}.svc-img .op-dust{object-position:50% 55%}/* every service photo uses the same taller frame, so the portrait job photos show (nearly) whole */
.svc-img .op-stain{object-position:50% 55%}.svc-img .op-repair{object-position:50% 62%}
.svc-tag{position:absolute;top:14px;left:14px;background:var(--gold);color:var(--walnut);font:800 italic 15px/1 var(--f-head);text-transform:uppercase;letter-spacing:.05em;padding:7px 12px;border-radius:8px;box-shadow:var(--shadow-sm)}
.svc-body{display:flex;flex-direction:column;flex:1;padding:24px 24px 26px}
.svc h3 a{text-decoration:none}.svc h3 a:hover{color:var(--gold-deep)}
.svc h3{font-weight:800;font-style:italic;text-transform:uppercase;font-size:28px;line-height:1;margin:0 0 10px}
.svc p{color:var(--muted);margin:0 0 20px;font-size:16px}
.svc-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:auto}
.svc-cta .link{font-size:15px}
.svc-cta-card{position:relative;background:linear-gradient(160deg,var(--gold-2),var(--gold));border-color:transparent;min-height:420px}
.svc-cta-card .svc-body{position:relative;z-index:1;max-width:72%}
.svc-cta-card p{color:var(--walnut-2)}
.svc-cta-card h3{font-size:34px}
.svc-jovan{position:absolute;right:-10px;bottom:0;height:62%;width:auto;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(42,23,12,.35));transition:transform .4s ease}
.svc-cta-card:hover .svc-jovan{transform:translateY(-6px) rotate(-2deg)}
.svc-cta-card .svc-cta{margin-top:0}

/* ---------- before/after ---------- */

.ba{--p:50%;position:relative;aspect-ratio:4/5;width:100%;max-width:540px;justify-self:center;border-radius:22px;overflow:hidden;box-shadow:0 40px 80px -20px rgba(0,0,0,.6);border:6px solid #fff;user-select:none;touch-action:pan-y;cursor:ew-resize;background:#3a2414}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--p);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.4)}
.ba-handle span{position:absolute;top:50%;left:50%;width:56px;height:56px;transform:translate(-50%,-50%);border-radius:50%;background:var(--gold);display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.4);border:4px solid #fff}
.ba-handle svg{width:26px;height:26px;fill:none;stroke:var(--walnut);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ba-lab{position:absolute;top:16px;padding:7px 12px;border-radius:8px;font:800 italic 15px/1 var(--f-head);text-transform:uppercase;letter-spacing:.08em;pointer-events:none}
.ba-lab.l{left:16px;background:rgba(42,23,12,.8);color:#fff}
.ba-lab.r{right:16px;background:var(--gold);color:var(--walnut)}

/* ---------- why (gold band) ---------- */
.why{background:linear-gradient(135deg,var(--gold-2) 0%,var(--gold) 55%,#EB9F30 100%);padding:100px 0;position:relative;overflow:hidden;color:var(--walnut)}
.why .eyebrow.dark{color:var(--walnut)}
.why-grid{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center}
.why-media{position:relative}
.why-media img.legacy{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:50% 34%;border-radius:22px;border:7px solid #fff;box-shadow:0 36px 70px -24px rgba(42,23,12,.55);transform:rotate(1.2deg)}
.why-stage{aspect-ratio:1;background:url(../assets/img/splat-why.webp) center/contain no-repeat}
.why-stage img{position:absolute;left:51%;bottom:7%;width:86%;height:auto;transform:translateX(-50%);filter:drop-shadow(0 16px 14px rgba(42,23,12,.35))}
.why-badge{position:absolute;left:0;top:4%;bottom:auto;z-index:1;width:130px;height:130px;border-radius:50%;background:var(--walnut);color:#fff;display:grid;place-content:center;text-align:center;border:6px solid #fff;box-shadow:var(--shadow)}
.why-badge b{font:900 italic 48px/.9 var(--f-head);color:var(--gold-2)}
.why-badge span{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.2}
.why-list{list-style:none;padding:0;margin:8px 0 30px;display:grid;grid-template-columns:1fr 1fr;gap:18px 26px}
.why-list li{position:relative;padding-left:44px;font-size:15.5px;line-height:1.45;color:var(--walnut-2)}
.why-list li::before{content:"✓";position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--walnut);color:var(--gold-2);display:grid;place-items:center;font-weight:900}
.why-list b{display:block;font:800 italic 21px/1.05 var(--f-head);text-transform:uppercase;color:var(--walnut);margin-bottom:4px}
.why-btns{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- reviews ---------- */
.reviews{background:#fff;padding:100px 0}
.rev-grid{display:grid;grid-template-columns:.85fr 1fr 1fr 1fr;gap:22px;align-items:stretch}
.rev-score{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:8px;background:var(--walnut);color:#fff;border-radius:var(--radius);padding:30px 22px}
.g-mark{width:54px;height:54px;border-radius:50%;background:#fff;display:grid;place-items:center;font:700 30px/1 Arial,sans-serif;color:#4285F4;margin-bottom:4px}
.score{font:900 italic 76px/.9 var(--f-head)}
.stars.big{font-size:28px}
.rev-score p{margin:0 0 10px;color:#E3D2BD;font-weight:600}
.rev-score .link{color:#fff;font-size:15px}
.rev{margin:0;background:var(--cream);border-radius:var(--radius);padding:28px 26px;display:flex;flex-direction:column;border:1px solid var(--line);position:relative}
.rev::before{content:"\201C";position:absolute;right:20px;top:4px;font:900 110px/1 Georgia,serif;color:var(--gold);opacity:.35}
.rev .stars{font-size:20px}
.rev p{margin:12px 0 20px;font-size:16px;line-height:1.6}
.rev footer{display:flex;align-items:center;gap:12px;margin-top:auto}
.av{width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--walnut);display:grid;place-items:center;font:900 italic 22px/1 var(--f-head)}
.rev cite{display:block;font-style:normal;font-weight:700}
.rev small{color:var(--muted);font-size:13.5px}

/* ---------- promo band ---------- */
.promo{background:linear-gradient(90deg,rgba(42,23,12,.95) 0%,rgba(42,23,12,.82) 55%,rgba(42,23,12,.55) 100%),url(../assets/img/work03-white-oak-install-after.webp) center 55%/cover;color:#fff;padding:80px 0}
.promo-in{display:flex;align-items:center;justify-content:space-between;gap:40px}
.promo-k{margin:0 0 8px;font:800 italic 18px/1 var(--f-head);text-transform:uppercase;letter-spacing:.14em;color:var(--gold-2)}
.promo-h{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(40px,4.6vw,66px);line-height:.92;margin:0 0 14px}
.promo-h span{color:var(--gold);white-space:nowrap}
.promo p{margin:0;max-width:600px;color:#EADBC6;font-size:18px}

/* ---------- how ---------- */
.how{background:var(--cream);padding:100px 0}
.steps{list-style:none;margin:0 0 48px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:s}
.step{position:relative;background:#fff;border-radius:var(--radius);padding:14px 14px 26px;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.step img{width:100%;aspect-ratio:16/10.5;object-fit:cover;border-radius:12px;margin-bottom:20px}
.steps .step img{object-position:50% 50%}.steps .step img.op-top{object-position:50% 62%}.steps .step img.op-call{object-position:42% 45%}
.step-n{position:absolute;top:-18px;left:-12px;z-index:1;width:62px;height:62px;border-radius:16px;background:var(--gold);color:var(--walnut);display:grid;place-items:center;font:900 italic 38px/1 var(--f-head);box-shadow:0 5px 0 var(--gold-deep),var(--shadow-sm);transform:rotate(-6deg)}
.step h3{font-weight:800;font-style:italic;text-transform:uppercase;font-size:27px;line-height:1;margin:0 10px 10px}
.step p{margin:0 10px;color:var(--muted);font-size:16px}

/* ---------- work ---------- */
.work{position:relative;color:#fff;padding:100px 0;background:radial-gradient(900px 500px at 85% 0%,rgba(242,169,59,.14),transparent 65%),radial-gradient(800px 500px at 0% 100%,rgba(242,169,59,.08),transparent 65%),linear-gradient(180deg,#24130A,#1E1008)}
.work .eyebrow{color:var(--gold-2)}
.work-hint{color:#CDB9A2!important}
.work .work-filters button{background:transparent;border-color:rgba(255,255,255,.22);color:#fff}
.work .work-filters button:hover{border-color:var(--gold)}
.work .work-filters button.on{background:var(--gold);border-color:var(--gold);color:var(--walnut)}
.work .wk{box-shadow:0 18px 40px -18px rgba(0,0,0,.7);outline:1px solid rgba(255,255,255,.06)}
.work .link{color:#fff;text-decoration-color:var(--gold)}
.work .link:hover{color:var(--gold-2)}
.work-filters{display:flex;gap:8px;flex-wrap:wrap}
.work-filters button{padding:10px 18px;border-radius:999px;border:2px solid var(--line);background:#fff;font:800 italic 17px/1 var(--f-head);text-transform:uppercase;letter-spacing:.04em;transition:.2s}
.work-filters button:hover{border-color:var(--gold)}
.work-filters button.on{background:var(--walnut);border-color:var(--walnut);color:#fff}
.work-hint{margin:0 0 22px;color:var(--muted);font-size:15px}
.touch-only{display:none}
@media (hover:none){.hover-only{display:none}.touch-only{display:inline}}
.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.wk{position:relative;margin:0;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--sand);cursor:pointer}
.wk.off{display:none}
.wk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .45s ease,transform .7s ease}
.wk .b{opacity:0}
.wk.show .b{opacity:1}
@media (hover:hover){.wk:hover .a{transform:scale(1.05)}.wk:hover .b{opacity:1}}
.wk figcaption{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.wk figcaption span,.wk figcaption b{font:800 italic 14px/1 var(--f-head);text-transform:uppercase;letter-spacing:.06em;padding:7px 10px;border-radius:7px}
.wk figcaption span{background:rgba(255,255,255,.94);color:var(--walnut)}
.wk figcaption b{background:var(--walnut);color:#fff;opacity:0;transform:translateY(6px);transition:.3s}
.wk.show figcaption b{opacity:1;transform:none}
@media (hover:hover){.wk:hover figcaption b{opacity:1;transform:none}}
.work-foot{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;margin-top:40px}

/* ---------- service area ---------- */
.area{background:var(--sand);padding:100px 0}
.area-in{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.states{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}
.states span{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border-radius:999px;font:800 italic 19px/1 var(--f-head);text-transform:uppercase;box-shadow:var(--shadow-sm)}
.states span::before{content:"✓";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--gold);font:900 12px/1 var(--f-body);font-style:normal}
.map-card{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;background:#e9e2d6}
.map-svg{display:block;width:100%;height:auto}
.map-svg .ping{transform-origin:322px 200px;transform-box:view-box;animation:ping 2.4s ease-out infinite}
@keyframes ping{from{transform:scale(.6);opacity:.6}to{transform:scale(3.2);opacity:0}}
.map-svg .rings{transform-origin:322px 200px;transform-box:view-box;animation:spin2 120s linear infinite}
@keyframes spin2{to{transform:rotate(360deg)}}
.map-pin{position:absolute;left:16px;bottom:16px;right:16px;max-width:360px;display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.map-pin img{width:44px;height:auto}
.map-pin span{font-size:13.5px;color:var(--muted);line-height:1.3}
.map-pin b{display:block;color:var(--walnut);font-size:15px}

/* ---------- care ---------- */
.care{background:#fff;padding:100px 0}
.care-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.care-head{position:sticky;top:calc(var(--hdr) + 30px)}
.waits{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.waits div{background:var(--gold-tint);border:2px solid #F6DDB1;border-radius:16px;padding:18px}
.waits b{display:block;font:900 italic 42px/1 var(--f-head);text-transform:uppercase;color:var(--gold-deep)}
.waits span{font-size:14.5px;line-height:1.35;display:block;margin-top:6px}
.acc details,.faq-list details{border-bottom:2px solid var(--line)}
.acc summary,.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;position:relative;padding:20px 48px 20px 0}
.acc summary::-webkit-details-marker,.faq-list summary::-webkit-details-marker{display:none}
.acc summary{font:800 italic 23px/1.1 var(--f-head);text-transform:uppercase}
.acc summary span{font-size:17px;color:#fff;background:var(--walnut);border-radius:8px;padding:5px 0;width:38px;text-align:center;flex:none}
.acc summary::after,.faq-list summary::after{content:"";position:absolute;right:4px;top:50%;width:30px;height:30px;margin-top:-15px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 6v12M6 12h12' stroke='%232A170C' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat;transition:transform .3s}
details[open]>summary::after{transform:rotate(135deg)}
.acc ul{margin:0 0 22px;padding-left:20px;color:var(--walnut-2)}
.acc li{margin-bottom:6px}
.acc li::marker{color:var(--gold-deep)}
.no-list{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:22px}
.no-list span{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:#FCEAE6;color:#8E2A1B;font-weight:700;font-size:15px}
.no-list span::before{content:"✕";font-weight:900}

/* ---------- faq ---------- */
.faq{background:var(--cream);padding:100px 0}
.faq-in{max-width:900px}
.faq-list{margin-bottom:30px}
.faq-list details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:0 22px;box-shadow:var(--shadow-sm);transition:box-shadow .2s}
.faq-list details[open]{box-shadow:var(--shadow);border-color:var(--gold)}
.faq-list summary{font-weight:700;font-size:18px}
.faq-list p{margin:0 0 22px;color:var(--muted)}
.faq-more{font-size:18px;font-weight:600;margin:0}
.faq-more a{font-weight:800;color:var(--walnut);text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:4px}

/* ---------- contact ---------- */
.contact{background:#fff;padding:100px 0;position:relative}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.big-tel{display:inline-flex;flex-direction:column;text-decoration:none;background:var(--gold);border-radius:18px;padding:18px 28px;box-shadow:0 6px 0 var(--gold-deep),var(--shadow);margin:6px 0 30px;transition:transform .2s}
.big-tel:hover{transform:translateY(-3px)}
.big-tel span{font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.12em}
.big-tel b{font:900 italic clamp(40px,4.4vw,58px)/1 var(--f-head)}
.c-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.c-list li{display:grid;grid-template-columns:80px 1fr;gap:12px;align-items:baseline;padding-bottom:12px;border-bottom:1px solid var(--line)}
.c-list li>span{font:800 italic 15px/1 var(--f-head);text-transform:uppercase;letter-spacing:.1em;color:var(--gold-deep)}
.c-list i{color:var(--muted);font-style:normal;font-size:14.5px}
.c-list a{font-weight:600}
.contact-card{background:var(--cream);border-radius:24px;padding:34px;border:1px solid var(--line);box-shadow:var(--shadow);border-top:8px solid var(--gold)}
.cform h3{font:900 italic 34px/1 var(--f-head);text-transform:uppercase;margin:0 0 6px}
.cform-sub{margin:0 0 20px;color:var(--muted)}
.cform-note{text-align:center;font-size:14px;color:var(--muted);margin:14px 0 0}

/* ---------- footer ---------- */
.foot{background:#1E1008;color:#D9C6AF;padding:70px 0 0;font-size:15.5px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.foot .logo-word b{color:#fff}
.foot-brand p{margin:18px 0;max-width:300px}
.social{display:flex;gap:10px}
.social a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:background .2s}
.social a:hover{background:var(--gold)}
.social a:hover svg{fill:var(--walnut)}
.social svg{width:20px;height:20px;fill:#fff}
.foot h4{font:800 italic 20px/1 var(--f-head);text-transform:uppercase;letter-spacing:.06em;color:#fff;margin:6px 0 16px}
.foot-col{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.foot-col a:not(.btn){text-decoration:none}
.foot-col a:not(.btn):hover{color:var(--gold-2)}
.foot-col p{margin:6px 0 0;font-size:14.5px}
.foot-tel{font:900 italic 34px/1 var(--f-head);color:var(--gold-2)}
.foot-band{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;align-items:center;padding-bottom:64px;margin-bottom:56px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-band-copy{text-align:left;display:flex;flex-direction:column;align-items:flex-start}
.fb-ic{display:grid;place-items:center;width:66px;height:66px;border-radius:18px;color:var(--gold);margin:0 0 6px -8px}
.fb-ic svg{width:52px;height:52px;fill:currentColor}
.foot-band-h{font:900 italic clamp(38px,4.2vw,60px)/.92 var(--f-head);text-transform:uppercase;color:#fff;margin:12px 0 18px}
.foot-band-h span{display:block;color:var(--gold)}
.foot-band-copy p{margin:0 0 26px;max-width:470px;font-size:17px;color:#E9D8C2}
.foot-band-copy p a{color:var(--gold-2);font-weight:800;text-decoration:none;white-space:nowrap}
/* Augusta-style truck: the wrapped van on paint-splatter art, bleeding toward the left edge, driving in */
.fb-stage{position:relative;aspect-ratio:1.7;margin-right:clamp(-200px,calc((1240px - 100vw) / 2),0px);background:url(../assets/img/splat-van.webp) center/contain no-repeat}
.fb-van{position:absolute;right:7%;bottom:11%;width:80%;height:auto;filter:drop-shadow(0 26px 22px rgba(0,0,0,.55))}
.js .fb-stage[data-rv]{transform:none}
.foot{overflow:hidden}
.foot-band-copy{position:relative;z-index:2}
.fb-stage{z-index:1}
.fb-van{will-change:transform}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:26px 0 30px;font-size:13.5px;color:#A88F75}
.foot-bottom a{color:inherit}

/* =========================================================
   Service pages
   ========================================================= */
.sp-hero{position:relative;overflow:hidden;background:radial-gradient(1100px 600px at 8% 0%,#fff 0%,rgba(255,255,255,0) 60%),var(--cream);padding:46px 0 120px}
.sp-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--muted);margin-bottom:6px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--gold-deep)}
.crumbs b{color:var(--walnut)}
.crumbs span{color:#C9B49A}
.sp-hero .h-display{font-size:clamp(44px,5.4vw,80px);margin:14px 0 18px}
.sp-hero-media{position:relative;justify-self:center;width:100%;max-width:440px}
.sp-hero-media::before{content:"";position:absolute;z-index:-1;top:-60px;bottom:-200px;left:-24%;right:-60vw;background:url(../assets/img/wood-oak.webp) 0 0/700px;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}
.sp-hero-media::after{content:"";position:absolute;z-index:-1;top:-60px;bottom:-200px;left:-24%;right:-60vw;background:radial-gradient(60% 50% at 60% 10%,rgba(255,236,200,.4),transparent 70%),linear-gradient(90deg,rgba(60,30,10,.28),transparent 14%);clip-path:polygon(14% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.sp-hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:26px;border:7px solid #fff;box-shadow:0 40px 80px -24px rgba(42,23,12,.55);transform:rotate(1.6deg)}
.sp-badge{position:absolute;left:-26px;bottom:34px;display:flex;flex-direction:column;gap:2px;background:#fff;border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);animation:bob 5s ease-in-out infinite}
.sp-badge b{font:900 italic 24px/1 var(--f-head);text-transform:uppercase;color:var(--gold-deep)}
.sp-badge span{font-size:13.5px;font-weight:700}
.sp-hero .hero-sub{color:var(--muted)}.sp-hero .hero-sub b{color:var(--walnut)}
.sp-hero .rating{color:var(--walnut)}
.sp-hero .hero-note{color:var(--muted)}

.sp-what{background:#fff;padding:110px 0 100px}
.sp-what-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.sp-prose p{font-size:18px;color:var(--walnut-2);margin:0 0 16px;max-width:600px}
.sp-fit{background:var(--cream);border:1px solid var(--line);border-top:8px solid var(--gold);border-radius:22px;padding:30px;box-shadow:var(--shadow-sm)}
.sp-fit-k,.sp-cmp-k{margin:0 0 16px;font:900 italic 26px/1 var(--f-head);text-transform:uppercase}
.sp-fit .checks{margin-bottom:22px}
.sp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 22px}
.sp-chips span{padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:14px}
.sp-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.sp-cmp{border-radius:20px;padding:24px 22px;height:100%}
.sp-cmp ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sp-cmp li{position:relative;padding-left:30px;font-weight:600;font-size:15.5px;line-height:1.35}
.sp-cmp-a{background:#F3ECE4;color:#6A5A4C}
.sp-cmp-a .sp-cmp-k{font-size:21px;color:#8A7766}
.sp-cmp-a li::before{content:"✕";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:#D9CBBD;color:#fff;font-size:11px;display:grid;place-items:center}
.sp-cmp-b{background:var(--walnut);color:#fff;box-shadow:var(--shadow)}
.sp-cmp-b .sp-cmp-k{font-size:21px;color:var(--gold-2)}
.sp-cmp-b li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--gold);color:var(--walnut);font-size:12px;font-weight:900;display:grid;place-items:center}
.sp-cmp-arrow{font-size:30px;color:var(--gold-deep);font-weight:900}

.sp-inc{background:var(--cream);padding:100px 0}
.sp-inc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.sp-inc-grid.sp-inc-4{grid-template-columns:repeat(4,1fr)}
.sp-inc-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s}
.sp-inc-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.sp-ic{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--gold-tint);margin-bottom:16px}
.sp-ic svg{width:28px;height:28px;fill:none;stroke:var(--gold-deep);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sp-inc-card h3{font:800 italic 23px/1.05 var(--f-head);text-transform:uppercase;margin:0 0 8px}
.sp-inc-card p{margin:0;color:var(--muted);font-size:15.5px}

.sp-steps-sec{background:url(../assets/img/wood-oak.webp) center/900px;position:relative;padding:100px 0;color:#fff}
.sp-steps-sec::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,17,7,.86),rgba(34,17,7,.78))}
.sp-steps-sec .wrap{position:relative}
.sp-steps-sec .lead{color:#E9D8C2}
.sp-steps{list-style:none;margin:0 0 44px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.sp-step{position:relative;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:26px 24px 24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .3s,transform .3s}
.sp-step:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.sp-n{display:inline-grid;place-items:center;min-width:56px;height:56px;padding:0 10px;border-radius:16px;background:var(--gold);color:var(--walnut);font:900 italic 30px/1 var(--f-head);box-shadow:0 5px 0 var(--gold-deep);margin-bottom:18px}
.sp-step h3{font:800 italic 25px/1.05 var(--f-head);text-transform:uppercase;margin:0 0 8px;color:#fff}
.sp-step p{margin:0;color:#E9D8C2;font-size:15.5px}

.sp-proof{background:#fff;padding:100px 0}
.sp-proof-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:64px;align-items:center}
.sp-proof .ba{max-width:520px}
.sp-proof .rev{margin:6px 0 24px}
.sp-proof-btns{display:flex;align-items:center;gap:22px;flex-wrap:wrap}

.sp-more{background:var(--cream);padding:100px 0}
.sp-more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.sp-more-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s}
.sp-more-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.sp-more-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.sp-more-card span{display:flex;flex-direction:column;gap:6px;padding:18px 18px 20px;flex:1}
.sp-more-card b{font:800 italic 21px/1.05 var(--f-head);text-transform:uppercase}
.sp-more-card i{font-style:normal;color:var(--muted);font-size:14.5px;line-height:1.4}
.sp-more-card em{font-style:normal;font-weight:800;color:var(--gold-deep);margin-top:auto;padding-top:6px}

@media (max-width:1180px){
  .sp-inc-grid.sp-inc-4,.sp-more-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:980px){
  .sp-hero{padding:34px 0 120px}
  .sp-hero-grid,.sp-what-grid,.sp-proof-grid{grid-template-columns:1fr;gap:44px}
  .sp-hero-media{max-width:380px}
  .sp-hero-media::before,.sp-hero-media::after{top:30%;left:-60vw;clip-path:polygon(0 10%,100% 0,100% 100%,0 100%)}
  .sp-inc-grid{grid-template-columns:1fr 1fr}
  .sp-steps{grid-template-columns:1fr 1fr}
  .sp-proof .ba{justify-self:center}
}
@media (max-width:640px){
  .sp-what,.sp-inc,.sp-steps-sec,.sp-proof,.sp-more{padding:72px 0}
  .sp-hero .h-display{font-size:clamp(40px,11vw,54px)}
  .sp-hero-media{max-width:300px}
  .sp-badge{left:-10px;bottom:22px;padding:10px 12px}
  .sp-badge b{font-size:20px}
  .sp-compare{grid-template-columns:1fr}
  .sp-cmp-arrow{justify-self:center;transform:rotate(90deg)}
  .sp-inc-grid,.sp-inc-grid.sp-inc-4,.sp-steps,.sp-more-grid{grid-template-columns:1fr}
  .sp-fit{padding:24px 18px}
  .sp-fit .btn,.sp-proof-btns .btn{width:100%}
  .sp-prose p{font-size:17px}
}

/* ---------- sticky mobile bar ---------- */
.sticky-bar{display:none}

/* ---------- reveal ---------- */
.js [data-rv]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js [data-rv].in{opacity:1;transform:none}
/* above the fold: never wait on the scroll observer */
.js .hero [data-rv]{opacity:1;transform:none;transition:none;animation:heroIn .8s cubic-bezier(.2,.7,.2,1) both}
.js .hero .h-display{animation-delay:.08s}.js .hero .hero-sub{animation-delay:.16s}.js .hero .rating,.js .hero .hero-btns{animation-delay:.24s}
@keyframes heroIn{from{opacity:0;transform:translateY(22px)}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js [data-rv]{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation:none!important}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1180px){
  .nav{display:none}
  .burger{display:flex}
  .hdr-cta{margin-left:auto}
  .mnav{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);box-shadow:0 30px 40px -20px rgba(42,23,12,.3);padding:12px 24px 24px;flex-direction:column;gap:2px}
  .mnav.open{display:flex}
  .mnav>a:not(.btn){padding:14px 4px;font-weight:700;font-size:18px;text-decoration:none;border-bottom:1px solid var(--line)}
  .mnav .btn{margin-top:12px}
  .mnav>a.sub{padding:10px 4px 10px 18px;font-size:16px;font-weight:600;color:var(--muted)}
  .rev-grid{grid-template-columns:1fr 1fr}
  .trust-in{grid-template-columns:repeat(3,1fr)}
  .t-item:nth-child(3){border-right:0}
  .t-item:nth-child(n+4){border-top:1px solid var(--line)}
  .t-item:nth-child(4){grid-column:1/3;justify-content:center}
}
@media (max-width:980px){
  :root{--hdr:72px}
  .hero{padding:48px 0 130px;min-height:0}
  .br-d{display:none}
  .hv-media{background-image:url(../assets/video/hero-mobile-poster.webp)}
  .hv-shade{background:linear-gradient(180deg,rgba(26,13,5,.7) 0%,rgba(26,13,5,.62) 45%,rgba(26,13,5,.8) 100%)}
  .est-grid,.why-grid,.area-in,.care-grid,.contact-grid{grid-template-columns:1fr}
  .est-grid,.why-grid,.area-in,.care-grid,.contact-grid{gap:44px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr;max-width:560px;margin-inline:auto;gap:36px}
  .care-head{position:static}
  .work-grid{grid-template-columns:repeat(3,1fr)}
  .promo-in{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-band{grid-template-columns:1fr;gap:20px}
  .fb-stage{margin-right:0;order:-1}
  .foot-band-copy{text-align:center;align-items:center}
  .fb-ic{margin:0 0 6px}
  .foot-brand{grid-column:1/-1}
  .why-media{max-width:520px;width:100%;justify-self:center}
}
@media (max-width:900px){
  .sticky-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;box-shadow:0 -10px 30px rgba(42,23,12,.18);padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;transform:translateY(110%);transition:transform .3s ease}
  .sticky-bar.show{transform:none}
  .sticky-bar a{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;border-radius:12px;font:800 italic 20px/1 var(--f-head);text-transform:uppercase;letter-spacing:.04em;text-decoration:none}
  .sticky-bar svg{width:20px;height:20px;fill:currentColor}
  .sb-call{background:var(--walnut);color:#fff}
  .sb-est{background:var(--gold);color:var(--walnut)}
  body{padding-bottom:72px}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .wrap{width:min(1240px,100% - 32px)}
  .util{font-size:13.5px}
  .util-in{justify-content:center}
  .hide-sm{display:none!important}
  .logo img{width:44px}
  .logo-word b{font-size:23px}
  .logo-word i{font-size:9.5px;letter-spacing:.14em}
  .hdr-in{gap:10px}
  .hdr-cta{gap:8px}
  .hdr-cta>.btn{display:none}
  .pill-phone{padding:3px;border:0}
  .pill-phone span{display:none}
  .pill-phone svg{width:44px;height:44px;padding:11px}
  .burger{width:44px;height:44px}
  .h-display{font-size:clamp(42px,11.6vw,58px)}
  .hero-btns .btn{width:100%}
  .btn-xl{font-size:21px;padding:18px 22px}
  .hero-note{font-size:13.5px}
  .hv-inner{width:min(1240px,100% - 32px)}
  .trust{margin-top:-64px}
  .trust-in{grid-template-columns:1fr 1fr}
  .t-item{padding:16px 14px;border-right:0;border-top:1px solid var(--line);column-gap:10px}
  .t-item:nth-child(-n+2){border-top:0}
  .t-item:nth-child(odd){border-right:1px solid var(--line)}
  .t-item:nth-child(3){border-right:1px solid var(--line)}
  .t-item:nth-child(4){grid-column:auto;justify-content:start}
  .t-item:last-child{grid-column:1/-1;border-right:0}
  .t-item{grid-template-columns:1fr;row-gap:3px;align-content:start}
  .t-ic{grid-row:auto;width:38px;height:38px;border-radius:11px;margin-bottom:6px}
  .t-ic svg{width:21px;height:21px}
  .t-item b{font-size:18px}
  .t-item:last-child{grid-template-columns:auto 1fr;column-gap:12px}
  .t-item:last-child .t-ic{grid-row:span 2;margin:0}
  .t-item span:not(.t-ic){font-size:12.5px}
  .estimate,.services,.why,.reviews,.how,.work,.area,.care,.faq,.contact{padding:72px 0}
  .sec-head{margin-bottom:32px}
  .est-card,.contact-card{padding:24px 18px;border-radius:20px}
  .opt-grid{gap:10px}
  .opt>span{padding:14px 12px}
  .opt b{font-size:18px}
  .opt i{font-size:13px}
  .field-row{grid-template-columns:1fr;gap:0}
  .wz-nav .btn-lg{font-size:18px;padding:15px 18px}
  .svc-grid{grid-template-columns:1fr}
  .svc-cta-card{min-height:0}
  .svc-cta-card .svc-body{max-width:none;padding-bottom:0}
  .svc-jovan{position:static;order:2;align-self:flex-end;height:240px;margin:-6px 6px 0 0}
  .why-list{grid-template-columns:1fr}
  .why-badge{width:96px;height:96px;left:0;top:2%;bottom:auto}
  .why-badge b{font-size:38px}
  .why-btns .btn,.promo .btn,.area .btn,.work-foot .btn,.how .btn{width:100%}
  .rev-grid{grid-template-columns:1fr}
  .work-grid{grid-template-columns:1fr 1fr;gap:10px}
  .waits{grid-template-columns:1fr 1fr}
  .waits b{font-size:34px}
  .acc summary{font-size:20px}
  .big-tel{width:100%}
  .c-list li{grid-template-columns:64px 1fr}
  .foot-grid{grid-template-columns:1fr;gap:30px}
  .foot-band-copy .btn{width:100%}
  .promo{padding:64px 0}
}
@media (max-width:350px){
  .logo-word i{display:none}
  .h-display{font-size:40px}
}

/* ---- v4: A1-style copy additions ---- */
.est-after{margin:16px 0 0;font-size:15px;color:#6b5848}
.why .lead{color:var(--walnut);max-width:560px;margin-bottom:6px}
.work .lead{color:#CDB9A2;max-width:620px;margin:10px 0 0}
.area .lead+.lead{margin-top:-6px}

/* v4: reviews on a dark walnut band (the before/after band is gone, this keeps the light/dark rhythm) */
.reviews{background:radial-gradient(900px 500px at 12% 0%,rgba(242,169,59,.14),transparent 65%),radial-gradient(800px 500px at 100% 100%,rgba(242,169,59,.08),transparent 65%),linear-gradient(180deg,#24130A,#1E1008);color:#fff}
.reviews .eyebrow{color:var(--gold-2)}
.reviews .lead{color:#CDB9A2}
.reviews .lead a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.reviews .lead a:hover{color:var(--gold-2)}
.rev-score{background:var(--gold);color:var(--walnut);box-shadow:0 18px 40px -18px rgba(0,0,0,.7)}
.rev-score p{color:var(--walnut-2)}
.rev-score .link{color:var(--walnut)}
.rev{color:var(--walnut);border-color:transparent;box-shadow:0 18px 40px -18px rgba(0,0,0,.7)}

/* v4: a little life in the reviews band */
.reviews{background-size:100% 100%,100% 100%,100% 100%;overflow:hidden}
.reviews::before{content:"";position:absolute;inset:-20%;background:radial-gradient(500px 500px at 30% 40%,rgba(242,169,59,.16),transparent 70%),radial-gradient(600px 600px at 75% 70%,rgba(242,169,59,.1),transparent 70%);animation:revGlow 18s ease-in-out infinite alternate;pointer-events:none}
.reviews{position:relative}
.reviews .wrap{position:relative}
@keyframes revGlow{from{transform:translate(-4%,-3%) scale(1)}to{transform:translate(4%,3%) scale(1.08)}}
.rev-score .stars.big{color:var(--walnut);text-shadow:0 1px 0 rgba(255,255,255,.35);letter-spacing:4px}
.rev-score{animation:scoreThrob 2.6s ease-in-out infinite;will-change:transform,box-shadow}
@keyframes scoreThrob{0%,100%{transform:scale(1);box-shadow:0 18px 40px -18px rgba(0,0,0,.7),0 0 0 0 rgba(242,169,59,.55)}50%{transform:scale(1.025);box-shadow:0 22px 44px -18px rgba(0,0,0,.75),0 0 0 16px rgba(242,169,59,0)}}
.rev-score .score{animation:scoreGlint 2.6s ease-in-out infinite}
@keyframes scoreGlint{0%,100%{text-shadow:0 0 0 rgba(255,255,255,0)}50%{text-shadow:0 0 18px rgba(255,255,255,.45)}}
.rev{animation:revFloat 7s ease-in-out infinite}
.rev:nth-of-type(2){animation-delay:-2.3s}
.rev:nth-of-type(3){animation-delay:-4.6s}
.rev:nth-of-type(4){animation-delay:-1.2s;animation-duration:8s}
@keyframes revFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.rev::before{animation:quoteBreath 7s ease-in-out infinite;animation-delay:inherit}
@keyframes quoteBreath{0%,100%{opacity:.3}50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){.reviews::before,.rev-score,.rev-score .score,.rev,.rev::before{animation:none}}
.rev-score .rev-leave{margin-top:4px;font-size:14.5px;color:var(--walnut-2);text-decoration:none;line-height:1.4}
.rev-score .rev-leave b{display:block;color:var(--walnut);font-weight:700;text-decoration:underline;text-decoration-color:rgba(42,23,12,.35);text-underline-offset:4px;transition:text-decoration-color .2s}
.rev-score .rev-leave:hover b{text-decoration-color:var(--walnut)}
/* v4: every phone number in running copy is bold and tap-to-call */
p a[href^="tel:"],li a[href^="tel:"],.sp-prose a[href^="tel:"]{font-weight:700;white-space:nowrap;color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px}
p a[href^="tel:"]:hover,li a[href^="tel:"]:hover{color:var(--gold-deep)}
.reviews .lead a[href^="tel:"]:hover,.promo p a[href^="tel:"]:hover,.foot-band-copy p a[href^="tel:"]:hover{color:var(--gold-2)}

/* v4: five stars that pop in, then shimmer in a wave */
.reviews .stars i{display:inline-block;font-style:normal;transform-origin:50% 60%;animation:starWave 3.4s ease-in-out infinite}
.reviews .stars i:nth-child(2){animation-delay:.12s}
.reviews .stars i:nth-child(3){animation-delay:.24s}
.reviews .stars i:nth-child(4){animation-delay:.36s}
.reviews .stars i:nth-child(5){animation-delay:.48s}
@keyframes starWave{0%,55%,100%{transform:scale(1) rotate(0);filter:none}
  9%{transform:scale(1.38) rotate(-10deg);filter:drop-shadow(0 0 7px rgba(255,197,98,.95))}
  18%{transform:scale(.94) rotate(4deg)}
  26%{transform:scale(1) rotate(0);filter:none}}
.reviews .rev-score .stars i{animation-name:starWaveDark}
@keyframes starWaveDark{0%,55%,100%{transform:scale(1) rotate(0);text-shadow:0 1px 0 rgba(255,255,255,.35)}
  9%{transform:scale(1.4) rotate(-10deg);text-shadow:0 0 12px rgba(255,255,255,.95),0 0 3px #fff}
  18%{transform:scale(.94) rotate(4deg)}
  26%{transform:scale(1) rotate(0);text-shadow:0 1px 0 rgba(255,255,255,.35)}}
/* first reveal: the stars drop in one by one as the cards scroll into view */
.reviews [data-rv]:not(.in) .stars i{opacity:0;transform:scale(.2)}
.reviews [data-rv].in .stars i{animation:starPop .5s cubic-bezier(.3,1.6,.5,1) backwards,starWave 3.4s ease-in-out 1.2s infinite}
.reviews [data-rv].in .stars i:nth-child(2){animation-delay:.1s,1.32s}
.reviews [data-rv].in .stars i:nth-child(3){animation-delay:.2s,1.44s}
.reviews [data-rv].in .stars i:nth-child(4){animation-delay:.3s,1.56s}
.reviews [data-rv].in .stars i:nth-child(5){animation-delay:.4s,1.68s}
.reviews .rev-score[data-rv].in .stars i{animation-name:starPop,starWaveDark}
@keyframes starPop{from{opacity:0;transform:scale(.2) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media (prefers-reduced-motion:reduce){.reviews .stars i,.reviews [data-rv].in .stars i{animation:none!important;opacity:1;transform:none}}
/* v4: utility bar phone icon (replaces the green "live" dot) */
.util-ic{width:15px;height:15px;flex:none;fill:var(--gold-2)}
/* v4: footer headline always sits on exactly two lines (white line, gold line), sized to fit its column */
.foot-band-copy{container-type:inline-size}
.foot-band-h{font-size:min(clamp(38px,4.2vw,60px),10.2cqw)}
.foot-band-h span{white-space:nowrap}

/* v4: the gallery shows 12 projects, then "See all" reveals the rest */
.work-grid[data-collapsed] .wk:nth-child(n+13){display:none}
.work-more-wrap{margin-top:28px}
.work .btn-outline-light{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.35);box-shadow:none}
.work .btn-outline-light:hover{border-color:var(--gold);color:var(--gold-2)}

/* ======================================================================
   v4 mobile polish (Augusta-style): centered copy, pill buttons, one clean
   column, shorter sections, swipeable reviews, smoother reveals
   ====================================================================== */
.js [data-rv]{transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}
.rev-swipe{display:none}
@media (max-width:640px){
  /* rhythm + type */
  .estimate,.services,.why,.reviews,.how,.work,.area,.care,.faq,.contact{padding:64px 0}
  .h2{font-size:clamp(31px,8.8vw,38px);line-height:.96;text-wrap:balance}
  .sec-head{margin-bottom:26px}
  .lead{font-size:16.5px;line-height:1.55}
  .js [data-rv]:not(.in){transform:translateY(26px)}
  /* centered blocks, Augusta style (lists with check marks stay left-aligned) */
  .est-copy,.promo-in>div,.area-in>div:first-child,.care-head,.contact-copy,.why-copy,.work .sec-head.split>div,.sp-what-copy,.sp-proof-copy{text-align:center}
  .est-copy .eyebrow,.area-in .eyebrow,.care-head .eyebrow,.contact-copy .eyebrow,.why-copy .eyebrow,.work .eyebrow,.sp-what-copy .eyebrow,.sp-proof-copy .eyebrow{justify-content:center;display:flex}
  .est-copy .checks,.why-list,.why-list li,.c-list,.sp-prose{text-align:left}
  .est-copy .lead,.area-in .lead,.care-head .lead,.contact-copy .lead,.why-copy .lead{margin-inline:auto}
  .promo-in{align-items:center}
  .promo p{margin-inline:auto}
  .states{justify-content:center}
  .work-filters{justify-content:center;width:100%}
  .work .sec-head.split{justify-content:center}
  .why-btns{justify-content:center}
  /* pill buttons */
  .btn,.sticky-bar a,.work-more{border-radius:999px}
  .btn-xl,.btn-lg{padding-inline:26px}
  .wz-nav{justify-content:stretch}
  .wz-nav .wz-next,.wz-nav .wz-submit{flex:1}
  .wz-nav .wz-back{flex:0 0 auto}
  /* trust strip: five clean rows */
  .trust{margin-top:-56px}
  .trust-in{grid-template-columns:1fr;border-radius:18px}
  .trust-in .t-item,.trust-in .t-item:nth-child(n){grid-template-columns:auto 1fr;grid-column:auto;column-gap:14px;row-gap:1px;align-items:center;justify-content:start;padding:12px 18px;border-right:0;border-top:1px solid var(--line)}
  .trust-in .t-item:first-child{border-top:0}
  .trust-in .t-item .t-ic,.trust-in .t-item:last-child .t-ic{grid-row:span 2;width:40px;height:40px;margin:0;border-radius:12px}
  .trust-in .t-item b{font-size:18px}
  .trust-in .t-item span:not(.t-ic){font-size:13px}
  /* services: shorter cards */
  .svc-img{aspect-ratio:16/10}
  .svc-img img{object-position:50% 50%!important}
  .svc-body{padding:20px 20px 22px}
  .svc-body h3{font-size:26px}
  .svc-body p{font-size:15.5px}
  .svc-cta{justify-content:space-between}
  .svc-jovan{height:200px}
  /* reviews: swipe through them instead of a tall stack */
  .rev-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none}
  .rev-grid::-webkit-scrollbar{display:none}
  .rev-grid>*{flex:0 0 84%;scroll-snap-align:center}
  .rev-grid .rev-score{flex-basis:76%}
  .rev{animation:none}
  .rev p{font-size:15.5px}
  .rev-swipe{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0 0;font-size:13.5px;font-weight:600;color:#CDB9A2;letter-spacing:.04em}
  .rev-swipe i{display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35)}
  .rev-swipe i:first-child{background:var(--gold)}
  /* steps */
  .step img{aspect-ratio:16/9;margin-bottom:16px}
  .steps{gap:26px;margin-bottom:34px}
  /* why */
  .why-media{max-width:340px}
  .why-badge{width:88px;height:88px}
  /* contact: nothing may push past the screen edge */
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .contact-copy{min-width:0;overflow-wrap:anywhere}
  .big-tel{align-items:center;text-align:center;border-radius:22px;padding:18px 20px}
  .big-tel b{font-size:clamp(34px,10vw,44px)}
  .c-list li{grid-template-columns:1fr;gap:2px;text-align:center}
  .c-list li>span{font-size:13px}
  /* footer: two tidy columns */
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 18px}
  .foot-brand,.foot-col:nth-child(2){grid-column:1/-1;align-items:center;text-align:center}
  .foot-brand .social{justify-content:center}
  .foot-col:nth-child(2) .btn{width:100%;max-width:320px}
  .foot-bottom{text-align:center;justify-content:center;gap:4px}
}
@media (max-width:640px){
  .svc-cta{flex-direction:column;align-items:stretch;gap:12px}
  .svc-cta .btn{width:100%}
  .svc-cta .link{align-self:center}
  .svc-cta-card .svc-cta{align-items:center}
  .faq-more,.work-hint{text-align:center}
}

/* hero copy never sits shifted on phones */
@media (max-width:640px){.js .hero [data-rv]:not(.in){transform:none}}

/* ======================================================================
   Intro "The Medallion": the compass rose engraves itself in gold line work,
   the real medallion resolves over it, RUSSOTTO rises in, then an iris opens
   from the medallion's center onto the site. Once per tab (html.intro from
   the head script); never with JS off or reduced motion; tap to skip.
   No gloss or sheen sweeps (client preference).
   ====================================================================== */
@property --hole{syntax:'<length>';inherits:false;initial-value:0px}
#intro{display:none}
.intro #intro{display:block;position:fixed;inset:0;z-index:10000;background:radial-gradient(ellipse 70% 60% at 50% 46%,#2A160A 0%,#170B05 60%,#0E0603 100%);overflow:hidden;cursor:pointer;
  -webkit-mask:radial-gradient(circle at 50% var(--in-cy),transparent var(--hole),#000 calc(var(--hole) + 1px));mask:radial-gradient(circle at 50% var(--in-cy),transparent var(--hole),#000 calc(var(--hole) + 1px))}
.intro body{overflow:hidden}
.intro:not(.intro-out) .hero [data-rv]{animation-play-state:paused}
:root{--in-size:clamp(150px,27vmin,270px);--in-cy:44%}
.intro-out #intro{animation:inIris 1s cubic-bezier(.7,0,.18,1) forwards}
@keyframes inIris{to{--hole:80vmax}}
.intro-fade #intro{opacity:0;transition:opacity .3s ease}
.in-grain{position:absolute;inset:-50%;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:inGrain .5s steps(4) infinite}
@keyframes inGrain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(1%,3%)}}
/* the medallion */
.in-medal{position:absolute;left:50%;top:var(--in-cy);width:var(--in-size);aspect-ratio:1;transform:translate(-50%,-50%)}
.in-rose{position:absolute;inset:-6%;width:112%;height:112%;overflow:visible;fill:none;stroke:var(--gold-2);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(255,197,98,.45))}
.in-d1,.in-d2,.in-d4{stroke-dasharray:1;stroke-dashoffset:1}
.in-d1{stroke-width:.9;animation:inStroke 1s cubic-bezier(.6,0,.2,1) .1s forwards}
.in-d2{stroke-width:.6;opacity:.8;animation:inStroke 1s cubic-bezier(.6,0,.2,1) .25s forwards}
.in-d3{stroke-width:.7;opacity:0;animation:inShow .5s ease .75s forwards}
.in-d4{stroke-width:1;animation:inStroke 1.05s cubic-bezier(.55,0,.25,1) .45s forwards}
.in-d5{stroke-width:.45;opacity:0;animation:inShow .5s ease 1.05s forwards}
.in-d6{fill:var(--gold-2);stroke:none;opacity:0;animation:inShow .4s ease 1.1s forwards}
.in-d1,.in-d2{transform:rotate(-90deg)}
@keyframes inStroke{to{stroke-dashoffset:0}}
@keyframes inShow{to{opacity:1}}
/* the real medallion resolves over the drawing, the drawing settles back */
.in-mark{position:absolute;inset:3%;width:94%;height:auto;opacity:0;transform:scale(.94);filter:drop-shadow(0 14px 30px rgba(0,0,0,.6));animation:inMark .8s cubic-bezier(.2,.8,.2,1) 1.25s forwards}
@keyframes inMark{to{opacity:1;transform:none}}
.in-rose{animation:inRose .8s ease 1.3s forwards}
@keyframes inRose{to{opacity:.32}}
/* wordmark */
.in-word{position:absolute;left:0;right:0;top:calc(var(--in-cy) + var(--in-size) / 2 + clamp(22px,4vmin,40px));text-align:center;color:#fff}
.in-name{margin:0;display:inline-flex;overflow:hidden;padding:0 .08em .06em;font:800 italic clamp(44px,8vmin,88px)/.95 var(--f-head);letter-spacing:.06em;text-transform:uppercase}
.in-name span{display:inline-block;transform:translateY(108%);animation:inRise .7s cubic-bezier(.2,.9,.2,1) calc(1.4s + var(--k) * 45ms) forwards}
@keyframes inRise{to{transform:none}}
.in-sub{display:flex;align-items:center;justify-content:center;gap:14px;margin:clamp(10px,1.8vmin,16px) 0 0;font:600 clamp(11px,1.5vmin,14px)/1 var(--f-body);letter-spacing:.38em;text-transform:uppercase;color:var(--gold-2);opacity:0;animation:inShow .6s ease 1.8s forwards}
.in-sub i{display:block;width:clamp(24px,5vmin,48px);height:1px;background:var(--gold);transform:scaleX(0);animation:inLine .6s cubic-bezier(.6,0,.2,1) 1.85s forwards}
@keyframes inLine{to{transform:scaleX(1)}}
.in-meta{position:absolute;bottom:clamp(20px,4vmin,40px);margin:0;font:600 11px/1 var(--f-body);letter-spacing:.3em;text-transform:uppercase;color:rgba(255,236,205,.5);opacity:0;animation:inShow .6s ease .3s forwards}
.in-l{left:clamp(20px,4vmin,44px)}.in-r{right:clamp(20px,4vmin,44px)}
/* the exit: medallion and name lift away, the iris opens from the center of the star */
.in-iris{position:absolute;left:50%;top:var(--in-cy);width:0;height:0;border-radius:50%;border:2px solid #FFD58A;box-shadow:0 0 22px rgba(255,197,98,.8),inset 0 0 14px rgba(255,197,98,.45);transform:translate(-50%,-50%);opacity:0}
.intro-out .in-iris{animation:inIrisRing 1s cubic-bezier(.7,0,.18,1) forwards}
@keyframes inIrisRing{0%{width:0;height:0;opacity:1}85%{opacity:1}100%{width:160vmax;height:160vmax;opacity:0}}
.intro-out .in-medal{transition:transform .9s cubic-bezier(.7,0,.18,1),opacity .45s ease;transform:translate(-50%,-50%) scale(1.6);opacity:0}
.intro-out .in-word{transition:transform .7s cubic-bezier(.7,0,.18,1),opacity .35s ease;transform:translateY(24px);opacity:0}
.intro-out .in-meta{opacity:0!important;transition:opacity .3s ease}
@media (max-width:640px){
  :root{--in-size:clamp(150px,46vw,210px);--in-cy:40%}
  .in-meta{font-size:9.5px;letter-spacing:.22em}
  .in-sub{letter-spacing:.3em}
}

/* footer social: the two circles, in gold. When the footer comes into view they pop in,
   a gold ring ripples out twice, then again every few seconds to draw the eye.
   Hover: the circle takes its brand color and the ring keeps rippling. */
.social a{position:relative;background:var(--gold);color:var(--walnut);box-shadow:0 4px 14px -4px rgba(242,169,59,.55)}
.social a svg{fill:var(--walnut)}
.social a svg [stroke]{stroke:currentColor}
.social a::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold-2);opacity:0;pointer-events:none}
.js .social[data-rv]{opacity:1;transform:none}
.js .social[data-rv] a{transform:scale(.6);opacity:0;transition:transform .6s cubic-bezier(.2,1.6,.4,1),opacity .4s ease,background .25s}
.js .social[data-rv].in a{transform:none;opacity:1}
.js .social[data-rv].in a:nth-child(2){transition-delay:.15s,.15s,0s}
.social.in a::after{animation:socRipple 2.2s cubic-bezier(.2,.6,.3,1) .5s 2,socRipple 2.2s cubic-bezier(.2,.6,.3,1) 5.6s infinite}
.social.in a:nth-child(2)::after{animation-delay:.75s,5.85s}
.social a:hover::after,.social a:focus-visible::after{animation:socRipple 1.1s cubic-bezier(.2,.6,.3,1) infinite}
@keyframes socRipple{0%{opacity:.95;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.8)}}
.social a.soc-fb:hover{background:#1877F2;color:#fff}
.social a.soc-ig:hover{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);color:#fff}
.social a.soc-fb:hover svg,.social a.soc-ig:hover svg{fill:#fff}
@media (prefers-reduced-motion:reduce){.social a::after{animation:none!important}.js .social[data-rv] a{transform:none;opacity:1}}

/* v4: mobile footer clean-up — one centered column rhythm, tidy logo lockup, link columns centered under their headings */
@media (max-width:640px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:0 12px}
  .foot-brand .logo{justify-content:center}
  .foot-brand .logo-word{text-align:left}
  .foot-brand p{margin:14px auto 18px;max-width:300px}
  .foot-grid>.foot-brand{padding-bottom:30px}
  .foot-grid>.foot-col:nth-child(2){padding:28px 0 30px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
  .foot-grid>.foot-col:nth-child(2) h4{margin-bottom:10px}
  .foot-grid>.foot-col:nth-child(3),.foot-grid>.foot-col:nth-child(4){align-items:center;text-align:center;padding-top:28px;gap:12px}
  .foot-grid>.foot-col:nth-child(3) h4,.foot-grid>.foot-col:nth-child(4) h4{font-size:18px;margin:0 0 6px;color:var(--gold-2)}
  .foot-grid>.foot-col:nth-child(3) a,.foot-grid>.foot-col:nth-child(4) a{font-size:14.5px;line-height:1.3}
  .foot-bottom{margin-top:30px;padding:22px 0 26px;font-size:12.5px;line-height:1.6;flex-direction:column;align-items:center}
}

/* top bar tagline */
.util-promise .util-tag2{color:#F6E7D2;font-weight:500}
@media (max-width:640px){.util-promise{font-size:13px}}
.util-boards{width:17px;height:17px}
.util-meta .live{display:inline-block;margin-right:8px;vertical-align:middle}
.live.closed{background:#8C7A68;box-shadow:none;animation:none}
/* mobile: give Jovan clear space under the call button in the "Don't know where to start?" card */
@media (max-width:640px){.svc-cta-card .svc-jovan{margin:22px 6px 0 0;position:relative;z-index:0}.svc-cta-card .svc-body{position:relative;z-index:1}}
