/* ========= Buddy's Plumbing — warm local-hero system ========= */
:root{
  --red:#C8202A;
  --red-deep:#9A1117;
  --red-ink:#5e0c0f;
  --blue:#1F5FA0;
  --gold:#E8A317;
  --ink:#1e1a16;
  --ink-soft:#5b534a;
  --ink-faint:#8c8278;
  --paper:#FFFFFF;
  --paper-2:#F4F5F6;
  --card:#FFFFFF;
  --white:#ffffff;
  --line:rgba(30,26,22,0.12);
  --line-soft:rgba(30,26,22,0.07);
  --shadow-sm:0 1px 2px rgba(60,40,20,0.06), 0 2px 8px rgba(60,40,20,0.05);
  --shadow-md:0 8px 28px rgba(80,40,20,0.10), 0 2px 6px rgba(80,40,20,0.06);
  --shadow-lg:0 24px 60px rgba(70,30,15,0.16), 0 6px 18px rgba(70,30,15,0.08);
  --shadow-red:0 14px 30px rgba(200,32,42,0.28);
  --r-sm:10px; --r:16px; --r-lg:24px; --r-xl:34px;
  --maxw:1200px;
  --font-display:"Roboto", system-ui, sans-serif;
  --font-body:"Roboto", system-ui, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:150px;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body);
  font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
::selection{background:var(--red); color:#fff;}

h1,h2,h3,h4{font-family:var(--font-display); font-weight:900; line-height:1.04; letter-spacing:-0.025em; margin:0; color:var(--ink); text-wrap:balance;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.section{padding:96px 0;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-weight:800; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--red);
}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--red); border-radius:2px;}
.eyebrow.center{justify-content:center;}
.lead{font-size:19px; color:var(--ink-soft); max-width:60ch; text-wrap:pretty;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body); font-weight:800; font-size:16px;
  padding:15px 26px; border-radius:999px; border:2px solid transparent;
  transition:transform .16s ease, box-shadow .2s ease, background .2s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-red{background:var(--red); color:#fff; box-shadow:var(--shadow-red);}
.btn-red:hover{background:var(--red-deep); transform:translateY(-2px); box-shadow:0 18px 38px rgba(200,32,42,.34);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--ink); background:rgba(30,26,22,.04);}
.btn-white{background:#fff; color:var(--red); box-shadow:var(--shadow-md);}
.btn-white:hover{transform:translateY(-2px);}
.btn-lg{padding:18px 32px; font-size:17px;}

/* ---------- Financing CTA ---------- */
.finance-cta{display:inline-flex; flex-direction:row; align-items:center; gap:11px; background:var(--gold); color:#1e1a16; border-radius:12px; padding:11px 22px; margin-top:22px; box-shadow:var(--shadow-sm);}
.finance-cta>svg{flex-shrink:0;}
.finance-cta .fc-txt{display:flex; flex-direction:column; gap:1px; text-align:left;}
.finance-cta strong{font-family:var(--font-display); font-weight:800; font-size:15px; letter-spacing:.01em;}
.finance-cta span{font-size:11.5px; opacity:.82;}
.brand{flex-shrink:0;}
@media (max-width:640px){
  .brand img{height:46px; width:auto; max-width:none;}
  .hdr-cta .btn-red{display:none;}
}

/* ---------- Header ---------- */
.hdr{position:sticky; top:0; z-index:60; transition:box-shadow .25s, background .25s, padding .25s;}
.hdr-top{background:var(--ink); color:#f6efe6; font-size:13.5px; font-weight:600;}
.hdr-top .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:9px; padding-bottom:9px; gap:16px;}
.hdr-top .ht-l{display:flex; gap:22px; align-items:center; color:#cfc6ba;}
.hdr-top .ht-l span{display:inline-flex; align-items:center; gap:7px;}
.hdr-top a{color:#fff; font-weight:800; display:inline-flex; align-items:center; gap:7px;}
.hdr-main{background:rgba(255,255,255,0.88); backdrop-filter:blur(12px); border-bottom:1px solid transparent; transition:border-color .25s, box-shadow .25s;}
.hdr.scrolled .hdr-main{border-bottom-color:var(--line); box-shadow:0 6px 24px rgba(60,40,20,.07);}
.hdr-main .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:18px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:74px; width:auto; max-width:none;}
.nav{display:flex; gap:30px; align-items:center;}
.nav a{font-weight:700; font-size:15.5px; color:var(--ink-soft); position:relative; padding:4px 0;}
.nav a:hover{color:var(--ink);}
.nav a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--red); transition:right .25s;}
.nav a:hover::after{right:0;}
.hdr-cta{display:flex; align-items:center; gap:14px;}
.hdr-phone{display:flex; flex-direction:column; align-items:flex-end; line-height:1.05;}
.hdr-phone small{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:800;}
.hdr-phone b{font-family:var(--font-display); font-size:20px; color:var(--ink); white-space:nowrap;}
.hdr-phone small{white-space:nowrap;}
.burger{display:none; width:46px; height:46px; border-radius:12px; border:1px solid var(--line); background:#fff; flex-direction:column; gap:5px; align-items:center; justify-content:center;}
.burger i{width:20px; height:2px; background:var(--ink); border-radius:2px; transition:.2s;}

/* ---------- Hero ---------- */
.hero{position:relative; overflow:hidden; padding:64px 0 80px;}
.hero-bg{position:absolute; inset:0; z-index:0; pointer-events:none;}
.hero-bg .blob{position:absolute; border-radius:50%; filter:blur(10px); opacity:.5;}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center;}
.hero-kicker{display:inline-flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--line); padding:8px 15px 8px 11px; border-radius:999px; font-weight:700; font-size:13.5px; color:var(--ink-soft); box-shadow:var(--shadow-sm); white-space:nowrap;}
.hero-kicker .dot{width:9px; height:9px; border-radius:50%; background:#1ea65a; box-shadow:0 0 0 4px rgba(30,166,90,.18);}
.hero h1{font-size:clamp(42px,5.6vw,78px); margin:22px 0 0;}
.hero h1 .hl{color:var(--red); display:inline-block; position:relative;}
.hero p.lead{margin:22px 0 0;}
.hero-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; align-items:center;}
.hero-actions .callnum{font-family:var(--font-display); font-weight:800;}
.hero-proof{display:flex; gap:26px; margin-top:34px; flex-wrap:wrap; align-items:center;}
.hero-proof .stars{color:var(--gold); font-size:18px; letter-spacing:2px;}
.hero-proof small{display:block; color:var(--ink-faint); font-weight:600; font-size:13px;}
.hero-proof b{font-family:var(--font-display);}
.hero-proof .sep{width:1px; height:34px; background:var(--line);}

.hero-media{position:relative;}
.hero-photo{position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:3/4; background:var(--paper-2); border:6px solid #fff;}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
.hero-photo .ph-fallback{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.float-card{position:absolute; background:#fff; border-radius:18px; box-shadow:var(--shadow-lg); padding:16px 18px; display:flex; align-items:center; gap:13px;}
.float-card .fc-ic{width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.float-card b{display:block; font-family:var(--font-display); font-size:17px; line-height:1.1;}
.float-card small{color:var(--ink-faint); font-weight:600; font-size:12.5px;}
.fc-rating{bottom:24px; left:-26px;}
.fc-license{top:30px; right:-22px;}

/* ---------- Stat strip ---------- */
.stats{background:var(--ink); color:#f4ede3;}
.stats .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:46px; padding-bottom:46px;}
.stat{text-align:center; position:relative;}
.stat:not(:last-child)::after{content:""; position:absolute; right:-12px; top:50%; transform:translateY(-50%); height:54px; width:1px; background:rgba(255,255,255,.13);}
.stat .num{font-family:var(--font-display); font-weight:800; font-size:clamp(36px,4vw,54px); color:#fff; line-height:1;}
.stat .num .u{color:var(--red); margin-left:1px;}
.stat .lbl{margin-top:8px; font-size:14px; color:#bdb3a6; font-weight:600; letter-spacing:.02em;}

/* ---------- Services ---------- */
.svc-head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:46px;}
.svc-head h2{font-size:clamp(32px,3.6vw,46px); margin-top:14px;}
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.svc-card{background:var(--card); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .22s, box-shadow .22s, border-color .22s; display:flex; flex-direction:column;}
.svc-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--line);}
.svc-photo{aspect-ratio:16/10; position:relative; overflow:hidden; background:var(--paper-2);}
.svc-photo img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.svc-card:hover .svc-photo img{transform:scale(1.06);}
.svc-tag{position:absolute; top:13px; left:13px; background:rgba(255,255,255,.94); color:var(--red); font-weight:800; font-size:12px; padding:6px 11px; border-radius:999px; letter-spacing:.04em; box-shadow:var(--shadow-sm);}
.svc-body{padding:22px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1;}
.svc-body h3{font-size:21px;}
.svc-body p{margin:0; color:var(--ink-soft); font-size:15px; line-height:1.55;}
.svc-link{margin-top:auto; padding-top:8px; font-weight:800; color:var(--red); font-size:14.5px; display:inline-flex; align-items:center; gap:7px;}
.svc-link span{transition:transform .2s;}
.svc-card:hover .svc-link span{transform:translateX(4px);}

/* striped placeholder */
.ph{position:absolute; inset:0; background:
  repeating-linear-gradient(135deg, var(--paper-2) 0 14px, #e7e9ec 14px 28px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#9aa1a8;}
.ph .ph-ic{opacity:.7;}
.ph code{font-family:ui-monospace,Menlo,monospace; font-size:11.5px; letter-spacing:.02em; color:#7c828a; background:rgba(255,255,255,.7); padding:3px 8px; border-radius:6px;}

/* ---------- Why ---------- */
.why{background:var(--paper-2);}
.why-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:60px; align-items:center;}
.why h2{font-size:clamp(32px,3.8vw,48px); margin-top:14px;}
.why-list{margin-top:30px; display:flex; flex-direction:column; gap:18px;}
.why-item{display:flex; gap:16px; align-items:flex-start;}
.why-item .wic{width:48px; height:48px; border-radius:14px; background:#fff; color:var(--red); display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:var(--shadow-sm); border:1px solid var(--line-soft);}
.why-item b{font-family:var(--font-display); font-size:18px; display:block; margin-bottom:2px;}
.why-item p{margin:0; color:var(--ink-soft); font-size:15px;}
.why-media{position:relative;}
.why-photo{border-radius:var(--r-lg); overflow:hidden; aspect-ratio:1/1; box-shadow:var(--shadow-lg); border:6px solid #fff; position:relative; background:var(--paper);}
.why-photo img{width:100%; height:100%; object-fit:cover;}
.why-badge{position:absolute; left:-22px; bottom:34px; background:var(--red); color:#fff; border-radius:18px; padding:18px 22px; box-shadow:var(--shadow-red); max-width:220px;}
.why-badge b{font-family:var(--font-display); font-size:32px; display:block; line-height:1;}
.why-badge small{font-size:13px; opacity:.92; font-weight:600;}

/* ---------- How it works ---------- */
.how-head{text-align:center; max-width:620px; margin:0 auto 56px;}
.how-head h2{font-size:clamp(32px,3.8vw,48px); margin-top:14px;}
.how-head .lead{margin:16px auto 0;}
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; position:relative;}
.steps::before{content:""; position:absolute; top:34px; left:11%; right:11%; height:2px; background:repeating-linear-gradient(90deg,var(--line) 0 8px, transparent 8px 16px); z-index:0;}
.step{position:relative; z-index:1; text-align:center;}
.step .sn{width:68px; height:68px; margin:0 auto 18px; border-radius:50%; background:#fff; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:24px; color:var(--red); box-shadow:var(--shadow-sm); position:relative;}
.step.active .sn{background:var(--red); color:#fff; border-color:var(--red);}
.step h4{font-size:19px; margin-bottom:8px;}
.step p{margin:0; color:var(--ink-soft); font-size:14.5px; padding:0 6px;}

/* ---------- Reviews ---------- */
.reviews{background:var(--ink); color:#f4ede3; overflow:hidden;}
.reviews .eyebrow{color:#ff8a8a;}
.rev-top{text-align:center; max-width:680px; margin:0 auto 14px;}
.rev-top h2{color:#fff; font-size:clamp(32px,3.8vw,48px); margin-top:14px;}
.rev-rating{display:flex; align-items:center; justify-content:center; gap:14px; color:#cdbfb0; font-weight:600; margin:18px 0 44px; flex-wrap:wrap;}
.rev-rating .stars{color:var(--gold); font-size:22px; letter-spacing:3px;}
.rev-stage{position:relative; max-width:820px; margin:0 auto;}
.rev-card{background:#26211c; border:1px solid rgba(255,255,255,.08); border-radius:var(--r-lg); padding:40px 44px; text-align:center; box-shadow:var(--shadow-lg);}
.rev-card .qmark{font-family:var(--font-display); font-size:56px; line-height:.5; color:var(--red); height:30px;}
.rev-card p{font-size:clamp(19px,2.2vw,25px); line-height:1.5; color:#f6efe6; font-weight:500; margin:18px 0 24px; font-family:var(--font-display); letter-spacing:-.01em;}
.rev-who{display:flex; align-items:center; justify-content:center; gap:13px;}
.rev-who .av{width:46px; height:46px; border-radius:50%; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:18px;}
.rev-who b{display:block; color:#fff; font-size:15.5px;}
.rev-who small{color:#a99e90; font-size:13px;}
.rev-nav{display:flex; align-items:center; justify-content:center; gap:10px; margin-top:28px;}
.rev-dot{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.22); border:none; padding:0; transition:.2s;}
.rev-dot.on{background:var(--red); width:26px; border-radius:5px;}
.rev-arrow{width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#fff; display:flex; align-items:center; justify-content:center; transition:.2s;}
.rev-arrow:hover{background:var(--red); border-color:var(--red);}

/* ---------- Service area ---------- */
.area-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:54px; align-items:center;}
.area h2{font-size:clamp(32px,3.8vw,46px); margin-top:14px;}
.area-towns{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.town{background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 16px; font-weight:700; font-size:14px; display:inline-flex; align-items:center; gap:8px; box-shadow:var(--shadow-sm);}
.town .pin{color:var(--red);}
.area-map{position:relative; aspect-ratio:4/3; border-radius:var(--r-lg); overflow:hidden; border:6px solid #fff; box-shadow:var(--shadow-lg); background:
  radial-gradient(circle at 30% 30%, #e9f1f6, #dfe9f0);}
.map-grid{position:absolute; inset:0; background-image:linear-gradient(rgba(31,95,160,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(31,95,160,.10) 1px,transparent 1px); background-size:38px 38px;}
.map-roads{position:absolute; inset:0;}
.pin-marker{position:absolute; transform:translate(-50%,-100%); display:flex; flex-direction:column; align-items:center; filter:drop-shadow(0 6px 8px rgba(0,0,0,.18));}
.pin-marker .pm-dot{width:26px; height:26px; border-radius:50% 50% 50% 0; background:var(--red); transform:rotate(-45deg); border:3px solid #fff;}
.pin-marker.hq .pm-dot{width:34px; height:34px; background:var(--ink);}
.pin-marker .pm-lbl{margin-top:9px; background:#fff; padding:3px 9px; border-radius:8px; font-size:11.5px; font-weight:800; box-shadow:var(--shadow-sm); white-space:nowrap;}
.map-note{position:absolute; bottom:10px; right:10px; font-family:ui-monospace,monospace; font-size:10.5px; color:#5d7791; background:rgba(255,255,255,.8); padding:3px 8px; border-radius:6px;}

/* ---------- Quote / CTA ---------- */
.quote{background:linear-gradient(160deg,#C8202A,#921318); color:#fff; position:relative; overflow:hidden;}
.quote::before{content:""; position:absolute; right:-160px; top:-160px; width:520px; height:520px; border-radius:50%; background:rgba(255,255,255,.06);}
.quote::after{content:""; position:absolute; left:-120px; bottom:-180px; width:440px; height:440px; border-radius:50%; background:rgba(0,0,0,.08);}
.quote-grid{position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.02fr; gap:56px; align-items:center;}
.quote .eyebrow{color:#ffd5d5;}
.quote .eyebrow::before{background:#ffd5d5;}
.quote h2{color:#fff; font-size:clamp(34px,4.4vw,56px); margin-top:14px;}
.quote .lead{color:rgba(255,255,255,.9); margin-top:18px;}
.quote-contact{margin-top:30px; display:flex; flex-direction:column; gap:16px;}
.qc-row{display:flex; align-items:center; gap:14px;}
.qc-row .qc-ic{width:48px; height:48px; border-radius:14px; background:rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.qc-row b{font-family:var(--font-display); font-size:20px; display:block; line-height:1.1;}
.qc-row small{color:rgba(255,255,255,.78); font-weight:600; font-size:13px;}
.qc-row a b:hover{text-decoration:underline;}

.form-card{background:#fff; border-radius:var(--r-lg); padding:30px; box-shadow:var(--shadow-lg); color:var(--ink);}
.form-card h3{font-size:23px;}
.form-card .fc-sub{color:var(--ink-soft); font-size:14.5px; margin:6px 0 22px;}
.field{margin-bottom:15px;}
.field label{display:block; font-weight:700; font-size:13.5px; margin-bottom:6px; color:var(--ink);}
.field label .req{color:var(--red);}
.field input, .field select, .field textarea{
  width:100%; font-family:inherit; font-size:15px; color:var(--ink);
  padding:13px 14px; border:1.5px solid var(--line); border-radius:12px; background:var(--paper);
  transition:border-color .18s, box-shadow .18s; outline:none;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--red); box-shadow:0 0 0 4px rgba(200,32,42,.12); background:#fff;}
.field.err input, .field.err select, .field.err textarea{border-color:var(--red); background:#fff5f5;}
.field .msg{color:var(--red); font-size:12.5px; font-weight:700; margin-top:5px; display:none;}
.field.err .msg{display:block;}
.field textarea{resize:vertical; min-height:88px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.form-success{text-align:center; padding:26px 10px;}
.form-success .ok{width:66px; height:66px; border-radius:50%; background:#eafaf0; color:#1ea65a; display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.form-success h3{font-size:24px;}
.form-success p{color:var(--ink-soft); margin-top:8px;}
.form-note{font-size:12.5px; color:var(--ink-faint); text-align:center; margin-top:14px;}

/* ---------- Footer ---------- */
.ftr{background:#16120f; color:#cfc5b8; padding:64px 0 28px;}
.ftr-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px;}
.ftr-brand img{height:48px; margin-bottom:16px;}
.ftr-brand p{font-size:14.5px; max-width:34ch; color:#a89e90;}
.ftr h5{font-family:var(--font-display); color:#fff; font-size:16px; margin:0 0 16px;}
.ftr ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
.ftr ul a, .ftr ul li{font-size:14.5px; color:#a89e90;}
.ftr ul a:hover{color:#fff;}
.ftr-contact b{color:#fff;}
.ftr-bottom{margin-top:46px; padding-top:22px; border-top:1px solid rgba(255,255,255,.09); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:#8c8276;}
.ftr-bottom a{color:#cfc5b8; font-weight:700;}

/* ---------- Floating call ---------- */
.fab{position:fixed; right:22px; bottom:22px; z-index:80; display:none; align-items:center; gap:10px; background:var(--red); color:#fff; font-family:var(--font-display); font-weight:800; padding:14px 20px; border-radius:999px; box-shadow:var(--shadow-red); animation:fabpulse 2.4s infinite;}
@keyframes fabpulse{0%,100%{box-shadow:0 14px 30px rgba(200,32,42,.34);}50%{box-shadow:0 14px 30px rgba(200,32,42,.34),0 0 0 12px rgba(200,32,42,0);}}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1; transform:none;}

/* ---------- Mobile menu ---------- */
.mobile-menu{position:fixed; inset:0; z-index:90; background:rgba(20,16,12,.5); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .25s;}
.mobile-menu.open{opacity:1; pointer-events:auto;}
.mm-panel{position:absolute; top:0; right:0; width:min(82vw,340px); height:100dvh; max-height:100dvh; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; background:#fff; padding:26px 24px 60px; display:flex; flex-direction:column; gap:6px; transform:translateX(100%); transition:transform .3s; box-shadow:var(--shadow-lg);}
.mobile-menu.open .mm-panel{transform:none;}
.mm-panel > *{flex-shrink:0;}
.mobile-menu.open ~ .fab, .mobile-menu.open + .fab{display:none;}
.mm-panel a{padding:14px 4px; font-weight:700; font-size:18px; border-bottom:1px solid var(--line-soft);}
.mm-close{align-self:flex-end; width:42px; height:42px; border-radius:12px; border:1px solid var(--line); background:#fff; font-size:22px; line-height:1; color:var(--ink);}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .hero-media{max-width:460px;}
  .why-grid,.area-grid,.quote-grid{grid-template-columns:1fr; gap:40px;}
  .nav{display:none;}
  .burger{display:flex;}
  .ftr-grid{grid-template-columns:1fr 1fr; gap:32px;}
  .stats .wrap{grid-template-columns:repeat(2,1fr); gap:34px;}
  .stat:nth-child(2)::after{display:none;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:900px){
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:repeat(2,1fr); gap:34px 22px;}
  .steps::before{display:none;}
  .hdr-phone{display:none;}
}
@media (max-width:640px){
  .section{padding:64px 0;}
  .wrap{padding:0 18px;}
  .hdr-top .ht-l{display:none;}
  .hdr-top .wrap{justify-content:center;}
  .svc-grid{grid-template-columns:1fr;}
  .row2{grid-template-columns:1fr;}
  .ftr-grid{grid-template-columns:1fr 1fr;}
  .stat:nth-child(3)::after{display:none;}
  .fab{display:flex;}
  .hero h1{font-size:clamp(36px,9vw,52px);}
  .float-card{display:none;}
  .why-badge{left:10px; right:auto; bottom:14px; max-width:62%;}
  .quote .form-card{padding:22px;}
}


/* ---------- WPForms skin — makes any embedded WPForms form match the Buddy's design ---------- */
.wpforms-container{margin:0 !important;}
.wpforms-container .wpforms-field{padding:0 0 15px !important;}
.wpforms-container .wpforms-field-label{display:block !important; font-weight:700 !important; font-size:13.5px !important; margin-bottom:6px !important; color:var(--ink) !important; font-family:var(--font-body) !important;}
.wpforms-container .wpforms-required-label{color:var(--red) !important;}
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container select,
.wpforms-container textarea{
  width:100% !important; font-family:var(--font-body) !important; font-size:15px !important; color:var(--ink) !important;
  padding:13px 14px !important; border:1.5px solid var(--line) !important; border-radius:12px !important; background:var(--paper) !important;
  transition:border-color .18s, box-shadow .18s !important; outline:none !important; box-shadow:none !important; max-width:none !important;
}
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus{border-color:var(--red) !important; box-shadow:0 0 0 4px rgba(200,32,42,.12) !important; background:#fff !important;}
.wpforms-container textarea{resize:vertical; min-height:88px !important;}
.wpforms-container .wpforms-field input.wpforms-error,
.wpforms-container .wpforms-field textarea.wpforms-error,
.wpforms-container .wpforms-field select.wpforms-error{border-color:var(--red) !important; background:#fff5f5 !important;}
.wpforms-container label.wpforms-error{color:var(--red) !important; font-size:12.5px !important; font-weight:700 !important; margin-top:5px !important; display:block;}
.wpforms-container .wpforms-submit-container{padding:0 !important;}
.wpforms-container button[type=submit]{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; width:100% !important;
  font-family:var(--font-body) !important; font-weight:800 !important; font-size:17px !important;
  padding:18px 32px !important; border-radius:999px !important; border:none !important;
  background:var(--red) !important; color:#fff !important; box-shadow:var(--shadow-red) !important; cursor:pointer;
  transition:transform .16s ease, box-shadow .2s ease, background .2s ease !important; line-height:1 !important; height:auto !important;
}
.wpforms-container button[type=submit]:hover{background:var(--red-deep) !important; transform:translateY(-2px);}
.wpforms-container .wpforms-confirmation-container-full{background:#eafaf0 !important; border:1px solid #b9ecd0 !important; border-radius:14px !important; color:#14693c !important; font-weight:600;}
