/* ============ CARPET DR — CENTRAL PA CARPET CLEANING RESOURCE ============ */
:root{
  --teal:#0f4c5c;
  --teal-deep:#0a3541;
  --teal-dark:#082932;
  --cream:#ffffff;
  --cream-soft:#f5f7fa;
  --cream-dim:#d9e0e8;
  --copper:#cf1f2c;
  --copper-bright:#e12b38;
  --ink:#10213a;
  --paper:#ffffff;
  --muted:#5e6877;
  --line:rgba(15,76,92,.14);
  --line-dark:rgba(255,255,255,.14);
  --head:"Fraunces",Georgia,serif;
  --body:"Inter","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block;height:auto}
a{color:var(--copper);text-decoration:none;transition:color .15s}
a:hover{color:var(--copper-bright)}
h1,h2,h3,h4,h5{font-family:var(--head);font-weight:500;letter-spacing:-.02em;line-height:1.02;margin:0 0 .5em}
h1{font-size:clamp(46px,8vw,96px);font-weight:500;line-height:.95;letter-spacing:-.03em}
h2{font-size:clamp(34px,5.2vw,64px);font-weight:500;line-height:1.02;letter-spacing:-.025em}
h3{font-size:clamp(20px,2.4vw,28px);font-weight:600;letter-spacing:-.015em}
/* Italic accent — beautiful Fraunces italic for editorial emphasis */
.italic-accent{font-style:italic;font-weight:400;color:var(--copper)}
h5{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin-bottom:16px}
p{margin:0 0 1em}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}

/* ---- Top strip ---- */
.top-strip{background:var(--teal-deep);color:var(--cream);font-size:12px;letter-spacing:.08em;overflow:hidden;padding:8px 0;text-transform:uppercase;font-weight:500;border-bottom:1px solid rgba(255,255,255,.08)}
.marquee{display:flex;gap:32px;white-space:nowrap;animation:scroll 25s linear infinite;font-family:var(--body)}
.marquee span{opacity:.85}
.marquee .dot{color:var(--copper);opacity:1}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---- Header ---- */
.site-header{background:var(--teal);color:var(--cream);position:sticky;top:0;z-index:50;box-shadow:0 1px 0 rgba(0,0,0,.15)}
.header-shell{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;color:var(--cream)}
.brand-txt{display:flex;flex-direction:column;line-height:1;position:relative;padding-left:14px;border-left:2px solid var(--copper)}
.brand-txt strong{font-family:var(--head);font-size:22px;font-weight:600;letter-spacing:-.01em}
.brand-txt small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-dim);margin-top:3px;opacity:.85}
.main-nav{margin-left:auto;display:flex;gap:6px}
.main-nav a{color:var(--cream);padding:8px 14px;font-size:14px;font-weight:500;letter-spacing:.02em;border-radius:6px;transition:background .15s,color .15s}
.main-nav a:hover{background:rgba(255,255,255,.1);color:var(--cream)}
.main-nav a.active{background:var(--copper);color:#fff}
.header-cta{background:var(--copper);color:#fff;padding:10px 18px;border-radius:6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.header-cta:hover{background:var(--copper-bright);color:#fff}
.menu-button{display:none;background:transparent;color:var(--cream);border:1px solid rgba(255,255,255,.4);padding:8px 14px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:6px;margin-left:auto}

/* ---- Mobile panel ---- */
.mobile-panel{display:none;position:fixed;inset:0;background:var(--teal-deep);z-index:100;padding:24px;flex-direction:column;overflow-y:auto}
.mobile-panel.open{display:flex}
.mp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.mp-close{background:none;border:none;color:var(--cream);font-size:32px;cursor:pointer;padding:0;width:40px;height:40px}
.mobile-panel a{color:var(--cream);padding:14px 8px;font-size:16px;border-bottom:1px solid rgba(255,255,255,.08);display:block}
.mp-sa-group{border-bottom:1px solid rgba(255,255,255,.08)}
.mp-sa-row{display:flex;align-items:center}
.mp-sa-row .mp-sa-link{flex:1;border-bottom:none}
.mp-sa-toggle{background:none;border:none;color:var(--cream);font-size:20px;padding:14px 12px;cursor:pointer}
.mp-counties{display:none;padding-left:20px}
.mp-counties.open{display:block}
.mp-counties a{font-size:14px;padding:10px 8px;color:var(--cream-dim)}

/* ---- Breadcrumb ---- */
.crumb{padding:16px 24px;font-size:13px;color:var(--muted);max-width:1240px;margin:0 auto}
.crumb a{color:var(--teal);font-weight:500}
.crumb a:hover{color:var(--copper)}
.crumb .sep{margin:0 8px;color:var(--cream-dim)}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:6px;font-family:var(--body);font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:none;transition:all .18s}
.btn-arrow{transition:transform .18s}
.btn:hover .btn-arrow{transform:translateX(4px)}
.btn-primary{background:var(--copper);color:#fff}
.btn-primary:hover{background:var(--copper-bright);color:#fff}
.btn-dark{background:var(--teal);color:var(--cream)}
.btn-dark:hover{background:var(--teal-deep);color:var(--cream)}
.btn-outline{background:transparent;color:var(--cream);border:1.5px solid var(--cream);}
.btn-outline:hover{background:var(--cream);color:var(--teal-deep)}
.full{width:100%;justify-content:center}

/* Honeypot: hidden from real users, visible to naive bots */
.hp-field{position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;height:0;width:0;overflow:hidden}

/* File upload UI */
.file-wrap{position:relative}
.file-help{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.file-previews{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.file-previews:empty{display:none}
.file-preview{position:relative;width:82px;height:82px;border-radius:8px;overflow:hidden;background:rgba(15,76,92,.1);box-shadow:0 3px 10px rgba(15,76,92,.18);flex-shrink:0}
.file-preview img{width:100%;height:100%;object-fit:cover;display:block}
.file-preview-remove{position:absolute;top:-7px;right:-7px;width:24px;height:24px;border-radius:50%;background:#c14a3d;color:#fff;border:2px solid var(--cream);font-size:16px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .15s,background .15s;font-family:var(--body)}
.file-preview-remove:hover{background:#a53a2f;transform:scale(1.12)}
.file-preview-remove:focus{outline:2px solid var(--copper);outline-offset:2px}

.kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--copper);margin-bottom:24px}
.kicker::before{content:"";width:32px;height:1px;background:var(--copper);display:inline-block}

/* ---- Hero ---- */
.hero{position:relative;color:var(--cream);overflow:hidden;background:var(--teal-deep)}
.hero-bg,.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35}
.hero-slide{opacity:0;transition:opacity 1.5s;will-change:opacity}
.hero-slide.on{opacity:.35}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,53,65,.85) 0%,rgba(15,76,92,.75) 60%,rgba(10,53,65,.85) 100%);pointer-events:none}
.hero .wrap{position:relative;z-index:2;padding:80px 24px 90px}
.hero-one{max-width:820px}
.hero-two{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;max-width:1240px}
.hero-eyebrow{color:var(--copper-bright)}
.hero h1{color:var(--cream)}
.hero h1 .y{color:var(--copper-bright);display:inline-block}
.hero-sub{font-size:clamp(16px,1.8vw,19px);color:rgba(255,255,255,.85);max-width:640px;margin-bottom:32px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.hero-features{display:flex;gap:24px;margin-top:36px;flex-wrap:wrap}
.hero-feat{font-size:13px;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:8px;letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.hero-feat::before{content:"";width:6px;height:6px;background:var(--copper);border-radius:50%;display:inline-block}

/* ---- Quick form (hero side) ---- */
.quick-form{background:var(--cream-soft);color:var(--ink);padding:28px;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.25);border-top:4px solid var(--copper)}
.quick-form h3{color:var(--teal-deep);font-size:22px;margin-bottom:6px;font-family:var(--head)}
.qf-sub{font-size:13px;color:var(--muted);margin-bottom:18px}
.qf-note{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 0;line-height:1.4}
.field{margin-bottom:12px}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:4px}
.field input,.field textarea,.field select{width:100%;padding:11px 13px;border:1.5px solid rgba(15,76,92,.15);border-radius:6px;font-family:var(--body);font-size:14px;background:#fff;color:var(--ink);transition:border-color .15s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--copper)}
.field textarea{resize:vertical;min-height:80px}

/* ---- Sections ---- */
.sec{padding:80px 0}
.sec-paper{background:var(--paper)}
.sec-cream{background:var(--cream-soft)}
.sec-teal{background:var(--teal);color:var(--cream)}
.sec-teal-deep{background:var(--teal-deep);color:var(--cream)}
.sec-teal-dark{background:var(--teal-dark);color:var(--cream)}
.on-dark h2,.on-dark h3{color:var(--cream)}
.on-dark .kicker{color:var(--copper-bright)}
.on-dark p{color:rgba(255,255,255,.82)}
.sec-head{max-width:820px;margin-bottom:44px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head p{font-size:17px;color:var(--muted)}
.on-dark .sec-head p{color:rgba(255,255,255,.75)}

/* ---- County grid ---- */
.county-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.county-card{background:var(--cream-soft);color:var(--ink);padding:36px 32px;border-radius:12px;border-left:4px solid var(--copper);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.county-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(10,53,65,.15);color:var(--ink)}
.county-card h3{color:var(--teal-deep);font-size:26px;margin-bottom:8px}
.county-card p{color:var(--muted);font-size:15px;margin-bottom:16px}
.county-card .cc-cta{color:var(--copper);font-weight:700;letter-spacing:.06em;font-size:13px;text-transform:uppercase;font-family:var(--body)}

/* ---- Split content ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.split-body h2{margin-top:6px}
.split-media{position:relative;border-radius:12px;overflow:hidden;min-height:420px;background-size:cover;background-position:center;box-shadow:0 20px 60px rgba(10,53,65,.2)}
.sm-badge{position:absolute;bottom:20px;left:20px;background:var(--copper);color:#fff;padding:10px 18px;border-radius:6px;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.local-body p{margin-bottom:1.1em}
.local-body p.lead{font-size:18px;font-weight:500;color:var(--teal-deep);line-height:1.55}
.on-dark .local-body p.lead{color:var(--cream)}
.split-list{list-style:none;padding:0;margin:0}
.split-list li{padding:14px 0 14px 32px;border-bottom:1px solid var(--line-dark);position:relative;color:rgba(255,255,255,.9);font-size:16px}
.split-list li::before{content:"→";position:absolute;left:0;color:var(--copper-bright);font-weight:700}

/* ---- Service split (residential vs commercial) ---- */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.svc-card{background:var(--cream-soft);padding:36px 32px;border-radius:12px;border-left:4px solid var(--copper);transition:transform .2s,box-shadow .2s}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(10,53,65,.12)}
.svc-card .svc-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin-bottom:12px}
.svc-card h3{color:var(--teal-deep);font-size:24px;margin-bottom:12px}
.svc-card ul{list-style:none;padding:0;margin:16px 0 0}
.svc-card ul li{padding:8px 0 8px 24px;position:relative;font-size:15px;color:var(--ink)}
.svc-card ul li::before{content:"";position:absolute;left:0;top:16px;width:12px;height:2px;background:var(--copper)}

/* ---- Problem-solve cards (replaces step-number layout) ---- */
.problems{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}
.problem{background:rgba(255,255,255,.06);padding:36px 30px;border-radius:12px;border-left:3px solid var(--copper);transition:all .25s;position:relative}
.problem:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.problem-num{position:absolute;top:20px;right:24px;font-family:var(--head);font-size:44px;color:rgba(207,31,44,.18);font-weight:500;line-height:1;letter-spacing:-.02em}
.problem h4{font-size:20px;letter-spacing:-.02em;margin-bottom:12px;padding-right:60px}
.problem:hover{background:rgba(255,255,255,.09)}
.problem h4{color:var(--cream);font-size:19px;margin-bottom:12px;font-family:var(--head);font-weight:600;line-height:1.3}
.problem p{color:rgba(255,255,255,.78);font-size:14.5px;line-height:1.6;margin:0}
.problem .fix{display:block;margin-top:12px;color:var(--copper-bright);font-size:13px;font-weight:600;letter-spacing:.02em}

/* Advice list — used for "what to know" / "signs you need cleaning" */
.advice-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 32px;margin-top:20px;padding:0;list-style:none}
.advice-list li{padding:14px 0 14px 28px;border-bottom:1px solid var(--line);position:relative;font-size:15.5px;color:var(--ink);line-height:1.5}
.advice-list li::before{content:"";position:absolute;left:0;top:20px;width:14px;height:2px;background:var(--copper)}
.advice-list li strong{color:var(--teal-deep);display:block;margin-bottom:2px;font-weight:600}

/* Price band — dedicated section */
.price-band{background:var(--cream-soft);border-radius:12px;padding:40px;margin-top:20px;border-top:4px solid var(--copper)}
.price-rows{display:grid;grid-template-columns:1fr 1fr;gap:36px 60px;margin-top:24px}
.price-row h4{color:var(--teal-deep);font-size:17px;margin-bottom:6px;font-family:var(--body);font-weight:700}
.price-row .price{font-family:var(--head);font-size:26px;color:var(--copper);font-weight:600;margin-bottom:6px;display:block}
.price-row p{color:var(--muted);font-size:14px;line-height:1.55;margin:0}
.price-note{font-size:13px;color:var(--muted);margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-style:italic}

/* ---- Included / not included ---- */
.dual-col{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:20px}
.dual-col-item{background:rgba(255,255,255,.05);padding:32px;border-radius:10px}
.dual-col-item h3{font-size:20px;margin-bottom:16px;color:var(--cream);display:flex;align-items:center;gap:10px}
.dual-col-item ul{list-style:none;padding:0;margin:0}
.dual-col-item li{padding:8px 0 8px 26px;color:rgba(255,255,255,.85);font-size:15px;position:relative;border-bottom:1px solid rgba(255,255,255,.08)}
.dual-col-item.yes li::before{content:"✓";position:absolute;left:0;color:var(--copper-bright);font-weight:700}
.dual-col-item.no li::before{content:"✕";position:absolute;left:0;color:rgba(255,255,255,.4);font-weight:700}

/* ---- FAQ ---- */
.faq-img-strip{height:220px;background-size:cover;background-position:center;border-radius:10px;margin-bottom:44px;box-shadow:0 20px 40px rgba(10,53,65,.15)}
.faq{max-width:840px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line);padding:0}
.faq-q{width:100%;background:none;border:none;padding:22px 8px;font-family:var(--head);font-size:19px;font-weight:600;color:var(--teal-deep);text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px}
.fq-ic{color:var(--copper);font-size:22px;transition:transform .2s;flex:none}
.faq-item.open .fq-ic{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease-out}
.faq-item.open .faq-a{max-height:400px}
.faq-a p{padding:0 8px 22px;color:var(--muted);font-size:15px;line-height:1.6;margin:0}

/* ---- Trust / stats ---- */
.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:20px}
.trust-item{text-align:center;padding:24px 16px}
.trust-num{font-family:var(--head);font-size:42px;font-weight:700;color:var(--copper);line-height:1;margin-bottom:8px}
.trust-lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75);font-weight:600}

/* ---- Town cols (nearby links) ---- */
.town-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.town-cols a{color:var(--cream);padding:12px 16px;font-size:14px;background:rgba(255,255,255,.06);border-radius:6px;transition:background .15s;border-left:2px solid transparent}
.town-cols a:hover{background:rgba(207,31,44,.12);border-left-color:var(--copper);color:var(--cream)}

/* ---- Big form ---- */
.bigform-wrap{background:var(--cream-soft);padding:44px;border-radius:14px;box-shadow:0 30px 80px rgba(10,53,65,.2);border-top:5px solid var(--copper)}
.bigform-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;color:var(--ink)}
.bigform-grid .field{margin:0}
.bigform-grid .field.full{grid-column:1/-1}
.bigform-grid button{grid-column:1/-1;margin-top:8px}
.bigform-grid .form-note{grid-column:1/-1;font-size:12px;color:#5e6877;text-align:center;margin:4px 0 0}

/* ---- Local sticky ---- */
.local-sticky{position:fixed;bottom:0;left:0;right:0;background:var(--teal-deep);color:var(--cream);padding:14px 24px;display:none;justify-content:space-between;align-items:center;z-index:40;border-top:2px solid var(--copper);box-shadow:0 -8px 20px rgba(0,0,0,.15)}
.local-sticky-text{font-size:14px;font-weight:600}
.local-sticky-text span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:2px;font-weight:400}
.has-local-sticky .local-sticky{display:flex}
.sticky-cta{position:fixed;bottom:20px;right:20px;z-index:40;display:none}
body:not(.has-local-sticky) .sticky-cta{display:block}
.sticky-cta .btn{box-shadow:0 12px 30px rgba(207,31,44,.32)}

/* ---- Reveal ---- */
/* Default: fully visible (SEO, no-JS, and pre-JS render all get content). */
/* When JS boots, it adds html.js — then .reveal starts hidden and animates in on scroll. */
.reveal{transition:opacity .6s,transform .6s}
html.js .reveal{opacity:0;transform:translateY(20px)}
html.js .reveal.in{opacity:1;transform:translateY(0)}

/* ---- Footer ---- */
.site-footer{background:var(--teal-dark);color:var(--cream);padding:64px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4, 1fr) .8fr;gap:32px;margin-bottom:44px}
.footer-brand strong{font-family:var(--head);font-size:22px;color:var(--cream);display:block;margin-bottom:12px}
.footer-brand p{color:rgba(255,255,255,.7);font-size:14px;line-height:1.55}
.site-footer h5{color:var(--copper-bright);margin-bottom:16px}
.site-footer a{display:block;color:rgba(255,255,255,.75);padding:5px 0;font-size:14px}
.site-footer a:hover{color:var(--copper-bright)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:rgba(255,255,255,.55)}
.footer-bottom a{display:inline;padding:0}
.footer-disclaimer{margin-top:20px;font-size:12px;color:rgba(255,255,255,.5);line-height:1.6;max-width:900px}

/* ---- Grain overlay ---- */
.grain{position:relative}
.grain::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.03;background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");mix-blend-mode:multiply}

/* ---- Hero Image Band — full-width image at top of local context section ---- */
.hero-image-band{position:relative;height:440px;background-size:cover;background-position:center;border-radius:12px;overflow:hidden;margin-bottom:60px;box-shadow:0 20px 60px -20px rgba(15,76,92,.35)}
.hero-image-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(15,76,92,.4) 100%)}
.hero-image-band .sm-badge{position:absolute;bottom:22px;left:22px;z-index:2}
.hero-content-block{max-width:900px;margin:0 auto;text-align:left}

/* ---- Process Steps — 4-card grid, side-scroll on mobile ---- */
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.process-step{background:rgba(255,255,255,.08);padding:36px 30px;border-radius:12px;border-left:3px solid var(--copper);position:relative;transition:background .25s}
.process-step:hover{background:rgba(255,255,255,.12)}
.process-step .step-num{position:absolute;top:20px;right:24px;font-family:var(--head);font-size:44px;color:rgba(207,31,44,.25);font-weight:500;line-height:1;letter-spacing:-.02em;font-style:italic}
.process-step h3{font-size:19px;color:var(--cream);padding-right:60px;margin:0 0 12px;letter-spacing:-.015em}
.process-step p{color:rgba(255,255,255,.78);font-size:14px;line-height:1.65;margin:0}

/* ---- Editorial Gallery — asymmetric, magazine-style (bulletproof heights) ---- */
.editorial-gallery{display:grid;grid-template-columns:1.8fr 1fr;grid-template-rows:520px;gap:14px;margin-top:56px}
.eg-feature{position:relative;overflow:hidden;border-radius:12px;background-size:cover;background-position:center;height:100%;min-height:520px;box-shadow:0 20px 60px -20px rgba(15,76,92,.35)}
.eg-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(10,53,65,.65) 100%)}
.eg-side{display:grid;grid-template-rows:1fr 1fr;gap:14px;height:100%;min-height:520px}
.eg-small{position:relative;overflow:hidden;border-radius:12px;background-size:cover;background-position:center;height:100%;min-height:250px}
.eg-small::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,53,65,.6) 100%)}
.eg-caption{position:absolute;bottom:20px;left:22px;right:22px;color:#fff;z-index:1}
.eg-caption small{display:block;font-family:var(--body);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:6px;font-weight:600}
.eg-caption span{font-family:var(--head);font-size:22px;font-weight:500;line-height:1.15;letter-spacing:-.015em}
.eg-small .eg-caption span{font-size:16px}
.eg-small .eg-caption{bottom:14px;left:16px;right:16px}
.eg-small .eg-caption small{font-size:10px;margin-bottom:3px}

/* ---- Photo Gallery (older 4-across) — keep for possible fallback ---- */
.photo-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px}
.gallery-item{aspect-ratio:4/3;background-size:cover;background-position:center;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 4px 16px rgba(15,76,92,.12);transition:transform .2s}
.gallery-item:hover{transform:translateY(-4px)}
.gallery-item::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,76,92,.6) 100%)}
.gallery-caption{position:absolute;bottom:14px;left:14px;color:#fff;font-family:var(--head);font-size:14px;font-weight:600;letter-spacing:.02em;z-index:1}

/* ---- Photo Band (full-width photo break between sections) ---- */
.photo-band{position:relative;height:480px;background-size:cover;background-position:center;overflow:hidden}
.photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,76,92,.7) 0%,rgba(15,76,92,.1) 60%,transparent 100%)}
.photo-band-inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;color:#fff}
.photo-band-inner .kicker{color:#e12b38}
.photo-band-inner h2{color:#fff;max-width:520px;font-size:clamp(28px,3.4vw,44px);margin:0}

/* ---- Town tile grid (used on home page) ---- */
.town-tile-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:24px}
.town-tile{background:var(--cream-soft);padding:16px 18px;border-radius:8px;border-left:3px solid var(--copper);color:var(--teal-deep);font-weight:600;font-size:15px;transition:all .15s;display:flex;justify-content:space-between;align-items:center}
.town-tile:hover{background:var(--copper);color:#fff;border-left-color:var(--teal-deep);transform:translateX(2px)}
.town-tile .tt-arrow{color:var(--copper);font-weight:700;transition:all .15s;font-size:14px;margin-left:8px}
.town-tile:hover .tt-arrow{color:#fff;transform:translateX(3px)}
.town-tile-county{margin-top:44px}
.town-tile-county h3{color:var(--teal-deep);font-size:22px;font-family:var(--head);margin-bottom:4px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.town-tile-county h3 small{font-family:var(--body);font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;display:block;margin-top:4px;letter-spacing:.14em}

/* ---- CTA Bar (mid-page conversion strip) ---- */
.cta-bar{background:linear-gradient(135deg,var(--copper) 0%,var(--copper-bright) 100%);color:#fff;padding:36px 24px;text-align:center;position:relative;overflow:hidden}
.cta-bar::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,.15)}
.cta-bar-content{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-bar-text{text-align:left;flex:1}
.cta-bar h3{font-family:var(--head);font-size:clamp(20px,2.4vw,28px);color:#fff;margin:0 0 4px;font-weight:600;line-height:1.2}
.cta-bar p{color:rgba(255,255,255,.9);font-size:14.5px;margin:0}
.cta-bar .btn{flex:none;background:var(--teal-deep);color:#fff;font-size:14px;padding:16px 28px;box-shadow:0 8px 24px rgba(10,53,65,.3)}
.cta-bar .btn:hover{background:var(--teal-dark);color:#fff}

/* ---- Also serving (unpaged town pills for SEO) ---- */
.also-serving{background:var(--cream-soft);padding:44px 0}
.also-serving-inner{max-width:1100px;margin:0 auto;padding:0 24px;text-align:center}
.also-serving h4{font-family:var(--body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0 0 16px;font-weight:700}
.also-serving p{font-size:15px;color:var(--muted);margin:0 0 20px;line-height:1.6}
.serving-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.serving-pill{display:inline-block;padding:8px 16px;background:#fff;border:1px solid var(--line);border-radius:20px;font-size:13px;color:var(--teal-deep);font-weight:500}

/* ---- Responsive ---- */
@media (max-width:960px){
  .hero-two,.split,.dual-col,.svc-grid,.county-grid{grid-template-columns:1fr;gap:36px}
  .split-media{min-height:300px}
  .problems{grid-template-columns:1fr 1fr;gap:16px}
  .town-tile-grid{grid-template-columns:repeat(3,1fr)}
  .price-rows,.advice-list{grid-template-columns:1fr;gap:12px}
  .trust-row{grid-template-columns:1fr 1fr;gap:16px}
  .town-cols{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .bigform-grid{grid-template-columns:1fr}
  .sec{padding:60px 0}
  .hero .wrap{padding:60px 24px 70px}
  .main-nav{display:none}
  .menu-button{display:block}
  .header-cta{display:none}
  .brand-txt strong{font-size:18px}
  .brand-txt small{font-size:10px}
  .bigform-wrap{padding:28px 20px}
  .price-band{padding:28px 20px}
}
@media (max-width:640px){
  .marquee{animation-duration:15s}
  /* Horizontal-scrolling problems grid on mobile — cuts perceived length dramatically */
  .problems{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:8px 24px 24px;margin:0 -24px;-webkit-overflow-scrolling:touch;scrollbar-width:none;grid-template-columns:none !important}
  .problems::-webkit-scrollbar{display:none}
  .problems > .problem{flex:0 0 82%;scroll-snap-align:start;margin:0}
  .problems::after{content:"";flex:0 0 12px}

  .town-tile-grid{grid-template-columns:1fr 1fr}
  .cta-bar-content{flex-direction:column;text-align:center;gap:20px}
  .cta-bar-text{text-align:center}
  .cta-bar .btn{width:100%;justify-content:center}

  /* Editorial gallery: stack + horizontal-scroll on mobile */
  .editorial-gallery{grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;margin-top:32px}
  .eg-feature{height:280px;min-height:280px}
  .eg-side{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:180px;min-height:180px}
  .eg-small{height:180px;min-height:180px}

  /* Hero image band shorter on mobile */
  .hero-image-band{height:260px;margin-bottom:36px}

  /* Process steps: horizontal scroll on mobile — same pattern as .problems */
  .process-steps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:8px 24px 24px;margin:36px -24px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;grid-template-columns:none}
  .process-steps::-webkit-scrollbar{display:none}
  .process-steps > .process-step{flex:0 0 82%;scroll-snap-align:start;margin:0}
  .process-steps::after{content:"";flex:0 0 12px}

  .photo-gallery{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
  .photo-band{height:320px}
  .photo-band-inner h2{font-size:32px}
}
@media (max-width:520px){
  .trust-row,.town-cols,.footer-grid{grid-template-columns:1fr}
  .hero .wrap{padding:44px 20px 60px}
  h1{font-size:34px}
  h2{font-size:26px}
  .quick-form{padding:22px}
  .has-local-sticky{padding-bottom:70px}
}

/* ---- Print ---- */
@media print{.top-strip,.site-header,.mobile-panel,.local-sticky,.sticky-cta,.site-footer{display:none}}

/* Inline form success — replaces form in place after submit */
.form-success{padding:60px 44px;text-align:center;background:#ffffff;border:2px solid var(--copper);border-radius:12px;box-shadow:0 20px 60px -20px rgba(15,76,92,.4);animation:successFadeIn .45s cubic-bezier(.2,.9,.3,1);position:relative;overflow:hidden}
.form-success::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--copper),#e12b38)}
@keyframes successFadeIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.form-success .fs-icon{width:72px;height:72px;margin:0 auto 24px;background:var(--copper);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(207,31,44,.28);animation:iconPop .55s cubic-bezier(.2,.9,.3,1) .1s both}
@keyframes iconPop{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
.form-success .fs-icon svg{width:38px;height:38px;stroke:#fff}
.form-success h3{font-family:var(--head);font-size:32px;font-weight:500;margin:0 0 14px;color:var(--teal-deep);letter-spacing:-.015em;line-height:1.15}
.form-success h3 em{font-style:italic;color:var(--copper);font-weight:500}
.form-success p{color:var(--muted);font-size:16px;line-height:1.6;margin:0 auto;max-width:440px}
.form-success .fs-note{margin-top:24px;font-size:13px;color:var(--muted);opacity:.75;font-style:italic}

/* Inline error message — appears above submit button on retry */
.form-error-msg{color:#a53a2f;font-size:14px;font-weight:500;padding:14px 18px;background:rgba(193,74,61,.08);border-left:3px solid #c14a3d;border-radius:4px;margin-bottom:16px;line-height:1.5}

/* Sending state on submit button */
button[type="submit"]:disabled{opacity:.65;cursor:wait;pointer-events:none}


/* SEO IMG PATTERN: <img> replaces CSS background-image inside these containers.
   Google indexes <img> tags with alt text; it ignores background-image. */
.hero-image-band > img,
.eg-feature > img,
.eg-small > img,
.photo-band > img,
.hero-slide > img,
.split-media > img,
.faq-img-strip > img,
.hero-bg > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:0;
  display:block
}
.hero-image-band::after,
.eg-feature::after,
.eg-small::after{z-index:1}
.hero-image-band .sm-badge,
.eg-caption,
.split-media .sm-badge,
.photo-band-inner{z-index:2}
.hero-slide{position:absolute;inset:0}
.faq-img-strip{position:relative;overflow:hidden}
.split-media{position:relative;overflow:hidden;border-radius:12px}
.hero-bg{position:absolute;inset:0;overflow:hidden}



/* v20 — service architecture, mobile service-area fix, form/accessibility polish */
.service-area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 60px;margin-top:20px}
.service-area-grid>div{min-width:0}
.service-area-list{columns:2;column-gap:24px;overflow-wrap:anywhere}
.service-link-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-link-card{display:block;background:var(--cream-soft);border:1px solid var(--line);border-top:3px solid var(--copper);border-radius:10px;padding:28px 24px;color:var(--ink);transition:transform .18s,box-shadow .18s,border-color .18s;min-width:0}
.service-link-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,76,92,.12);border-color:rgba(207,31,44,.35)}
.service-link-card h3{color:var(--teal-deep);font-size:20px;margin:0 0 10px}
.service-link-card p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 14px}
.service-link-card span{color:var(--copper);font-weight:700;font-size:13px}
.local-guide-grid>*{min-width:0}
.service-advice{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.service-advice .advice-item{background:var(--cream-soft);padding:26px;border-radius:10px;border-left:3px solid var(--copper)}
.service-advice .advice-item h3{color:var(--teal-deep);margin:0 0 10px;font-size:19px}
.service-advice .advice-item p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.7}
.hero-service .hero-copy{max-width:790px}
.form-success.compact-success{padding:34px 24px}
.form-error-msg[role="alert"]{outline:0}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.btn:focus-visible,.faq-q:focus-visible,.menu-button:focus-visible,.mp-close:focus-visible,a:focus-visible{outline:3px solid rgba(207,31,44,.32);outline-offset:2px}
img[width][height]{height:auto}
@media(max-width:960px){.service-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-area-grid{gap:36px 32px}.service-advice{grid-template-columns:1fr}}
@media(max-width:640px){
 html,body{max-width:100%;}
 .service-area-grid{grid-template-columns:1fr;gap:34px;margin-top:16px}
 .service-area-list{columns:1;column-gap:0;line-height:2!important}
 .service-area-grid p{overflow-wrap:anywhere}
 .service-link-grid{grid-template-columns:1fr;gap:12px}
 .service-link-card{padding:22px 20px}
 .local-guide-image{min-height:300px!important}
 .form-success{padding:38px 22px}
 .form-success h3{font-size:28px}
}

.service-text-hero{grid-template-columns:minmax(0,900px)!important;max-width:980px;margin-inline:auto}

/* ======================================================================
   V23 VISUAL REDESIGN — PROFESSIONAL REFERRAL / LEAD-GEN DIRECTION
   Content, routing, SEO copy and form behavior remain unchanged.
   ====================================================================== */
:root{
  --teal:#102846;
  --teal-deep:#0b1f3a;
  --teal-dark:#07172d;
  --cream:#ffffff;
  --cream-soft:#f5f7fa;
  --cream-dim:#d9e0e8;
  --copper:#cf1f2c;
  --copper-bright:#e12b38;
  --ink:#10213a;
  --paper:#ffffff;
  --muted:#5e6877;
  --line:rgba(16,40,70,.12);
  --line-dark:rgba(255,255,255,.14);
  --head:"Inter","Helvetica Neue",Arial,sans-serif;
  --body:"Inter","Helvetica Neue",Arial,sans-serif;
}
html{background:#fff}
body{background:#fff;color:var(--ink);line-height:1.62}
a{color:var(--copper)}
a:hover{color:#ad1722}
.wrap{max-width:1240px;padding-left:28px;padding-right:28px}
.grain::before{display:none}

/* Typography — intentionally restrained, not editorial/template-like */
h1,h2,h3,h4,h5{font-family:var(--head);letter-spacing:-.03em;line-height:1.12}
h1{font-size:clamp(40px,5vw,64px);font-weight:700;line-height:1.03}
h2{font-size:clamp(30px,3.6vw,48px);font-weight:700;line-height:1.08}
h3{font-size:clamp(19px,2vw,25px);font-weight:700}
h5{font-family:var(--body);font-weight:700;color:var(--copper)}
.italic-accent{font-style:normal;font-weight:inherit;color:var(--copper)}
.kicker{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--copper);margin-bottom:18px}
.kicker::before{width:24px;background:var(--copper)}

/* Top information strip */
.top-strip{background:#f4f6f8;color:#24364f;border-bottom:1px solid #e1e6ec;padding:8px 0;text-transform:none;letter-spacing:.015em;font-size:11px;font-weight:600}
.marquee{animation:scroll 34s linear infinite;gap:30px}
.marquee span{opacity:.9}
.marquee .dot{color:var(--copper);font-size:8px}

/* White professional header */
.site-header{background:rgba(255,255,255,.97);color:var(--ink);box-shadow:0 1px 0 rgba(16,40,70,.10),0 6px 20px rgba(16,40,70,.035);backdrop-filter:blur(12px)}
.header-shell{max-width:1240px;padding:15px 28px;gap:24px;min-height:78px}
.brand{color:var(--teal-deep)}
.brand:hover{color:var(--teal-deep)}
.brand-txt{padding-left:0;border-left:0}
.brand-txt strong{font-family:var(--body);font-size:25px;font-weight:700;letter-spacing:-.045em;color:var(--teal-deep)}
.brand-txt strong .brand-accent{color:var(--copper)}
.brand-txt small{font-size:10px;font-weight:600;letter-spacing:.10em;color:#738092;margin-top:5px;opacity:1}
.main-nav{gap:4px}
.main-nav a{color:#27364c;padding:9px 13px;font-size:13px;font-weight:600;border-radius:5px}
.main-nav a:hover{background:#f4f6f8;color:var(--copper)}
.main-nav a.active{background:transparent;color:var(--copper);box-shadow:inset 0 -2px 0 var(--copper);border-radius:0}
.header-cta{background:var(--copper);color:#fff;padding:11px 18px;border-radius:7px;font-size:12px;font-weight:700;letter-spacing:.035em;box-shadow:0 5px 14px rgba(207,31,44,.18)}
.header-cta:hover{background:#b91925;color:#fff;transform:translateY(-1px)}
.menu-button{color:var(--teal-deep);border:1px solid #d8dee6;background:#fff;border-radius:7px}

/* Mobile menu */
.mobile-panel{background:#fff;color:var(--ink)}
.mobile-panel a{color:var(--teal-deep);border-bottom:1px solid var(--line)}
.mobile-panel a:hover{color:var(--copper)}
.mp-close{color:var(--teal-deep)}
.mp-top strong{color:var(--teal-deep)!important;font-family:var(--body)!important}

/* Breadcrumb */
.crumb{padding:13px 28px;font-size:12px;color:#788496}
.crumb a{color:#52657c}
.crumb a:hover{color:var(--copper)}
.crumb .sep{color:#b8c0ca}

/* Hero — bright residential image with white gradient, referral-first */
.hero{background:#eef1f4;color:var(--ink);border-bottom:1px solid #e5e9ee}
.hero-bg,.hero-slide{opacity:1!important}
.hero-bg img,.hero-slide img{object-position:center center}
.hero::after{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 34%,rgba(255,255,255,.36) 61%,rgba(255,255,255,.16) 100%)}
.hero .wrap{padding-top:62px;padding-bottom:68px}
.hero-two{grid-template-columns:minmax(0,1.13fr) minmax(350px,.72fr);gap:56px;max-width:1240px}
.hero h1{color:var(--teal-deep);text-shadow:none;margin-bottom:20px;max-width:720px}
.hero-sub{font-size:17px;line-height:1.65;color:#32445b;max-width:650px;margin-bottom:25px}
.hero-eyebrow{color:var(--copper)}
.hero-cta{margin-top:18px}
.hero-features{gap:18px;margin-top:28px}
.hero-feat{color:#43536a;font-size:12px;letter-spacing:.025em;text-transform:none;font-weight:600}
.hero-feat::before{background:var(--copper)}

/* Buttons */
.btn{border-radius:7px;font-size:13px;font-weight:700;letter-spacing:.025em;text-transform:none;padding:13px 22px;box-shadow:none}
.btn-primary{background:var(--copper);color:#fff;box-shadow:0 6px 16px rgba(207,31,44,.18)}
.btn-primary:hover{background:#b81824;color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(207,31,44,.20)}
.btn-dark{background:var(--teal-deep);color:#fff}
.btn-dark:hover{background:#07172d;color:#fff}
.btn-outline{border-color:#fff;color:#fff}

/* Callback card */
.quick-form{background:rgba(255,255,255,.985);color:var(--ink);padding:28px 30px;border-radius:14px;border:1px solid rgba(16,40,70,.12);border-top:1px solid rgba(16,40,70,.12);box-shadow:0 18px 48px rgba(15,31,54,.16)}
.quick-form h3{font-family:var(--body);color:var(--teal-deep);font-size:23px;font-weight:700;letter-spacing:-.025em;margin-bottom:5px}
.qf-sub{font-size:13px;color:#5e6c7e;margin-bottom:18px;line-height:1.5}
.qf-note{font-size:11px;color:#768294;margin-top:10px}
.field{margin-bottom:11px}
.field label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:none;color:#46566a;margin-bottom:5px}
.field input,.field textarea,.field select{padding:11px 12px;border:1px solid #d5dce5;border-radius:6px;font-size:13px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 1px rgba(16,40,70,.015)}
.field input::placeholder,.field textarea::placeholder{color:#8a95a4}
.field input:focus,.field textarea:focus,.field select:focus{border-color:#7e8da0;box-shadow:0 0 0 3px rgba(16,40,70,.06)}
.quick-form .btn.full{min-height:46px;text-transform:uppercase;letter-spacing:.045em;font-size:12px}

/* General sections */
.sec{padding:72px 0}
.sec-paper{background:#fff}
.sec-cream{background:#f5f7f9}
.sec-teal{background:var(--teal);color:#fff}
.sec-teal-deep{background:var(--teal-deep);color:#fff}
.sec-teal-dark{background:var(--teal-dark);color:#fff}
.on-dark h2,.on-dark h3,.on-dark h4{color:#fff}
.on-dark p{color:rgba(255,255,255,.78)}
.on-dark .kicker{color:#ff6a74}
.sec-head{margin-bottom:38px}
.sec-head p{font-size:16px;color:#5c6979}

/* Remove overly 'AI template' card effects; use restrained bordered panels */
.county-card,.svc-card,.service-link-card,.problem,.process-step,.price-band,.town-tile,.bigform-wrap{box-shadow:none}
.county-card,.svc-card,.service-link-card{background:#fff;border:1px solid #e0e5eb;border-left:1px solid #e0e5eb;border-top:1px solid #e0e5eb;border-radius:10px}
.county-card:hover,.svc-card:hover,.service-link-card:hover{transform:none;box-shadow:0 8px 22px rgba(16,40,70,.07);border-color:#cdd5df}
.county-card h3,.svc-card h3,.service-link-card h3{color:var(--teal-deep)}
.county-card .cc-cta,.service-link-card span{color:var(--copper)}

/* Image/content blocks */
.hero-image-band{height:380px;border-radius:12px;box-shadow:none;border:1px solid #e0e5eb;margin-bottom:54px}
.hero-image-band::after{background:linear-gradient(180deg,transparent 62%,rgba(8,23,45,.42) 100%)}
.sm-badge{background:var(--copper);border-radius:5px;padding:9px 15px;font-size:11px}
.hero-content-block{max-width:930px}
.local-body p.lead{color:#24364f}
.split{gap:52px}
.split-media{border-radius:12px;box-shadow:none;border:1px solid #e1e6ec}

/* Photo/editorial areas */
.editorial-gallery{gap:14px}
.eg-feature,.eg-small{border-radius:10px;box-shadow:none}
.eg-feature::after,.eg-small::after{background:linear-gradient(180deg,transparent 50%,rgba(7,23,45,.66) 100%)}
.eg-caption span{font-family:var(--body);font-weight:700;letter-spacing:-.02em}

/* Service/problem cards */
.problems{gap:14px}
.problem{border:1px solid rgba(255,255,255,.13);border-left:1px solid rgba(255,255,255,.13);border-radius:9px;padding:30px 26px;background:rgba(255,255,255,.045)}
.problem:hover{transform:none;background:rgba(255,255,255,.07)}
.problem-num{font-family:var(--body);font-style:normal;font-size:34px;color:rgba(255,255,255,.14);font-weight:700}
.problem h4{font-family:var(--body);font-weight:700}
.problem .fix{color:#ff7a83}
/* city sections contain inline light problem backgrounds */
.sec-paper .problem{background:#fff!important;border:1px solid #e0e5eb!important;color:var(--ink)}
.sec-paper .problem h4{color:var(--teal-deep)}
.sec-paper .problem p{color:#5f6d7e}
.sec-paper .problem-num{color:rgba(207,31,44,.16)}
.sec-paper .problem .fix{color:var(--copper)}

/* Advice / pricing */
.advice-list li{border-bottom:1px solid #e5e9ee;color:#35465c}
.advice-list li::before{background:var(--copper)}
.advice-list li strong{color:var(--teal-deep)}
.price-band{background:#fff;border:1px solid #e0e5eb;border-top:3px solid var(--copper);border-radius:10px;padding:36px}
.price-row h4{color:var(--teal-deep)}
.price-row .price{font-family:var(--body);font-weight:700;color:var(--copper);font-size:23px}
.price-row p,.price-note{color:#687587}

/* Homepage town directory */
.town-tile-county{margin-top:36px}
.town-tile-county h3{font-family:var(--body);font-size:20px;font-weight:700;color:var(--teal-deep);border-bottom:1px solid #dde3ea}
.town-tile{background:#fff;padding:14px 16px;border:1px solid #dfe5eb;border-left:1px solid #dfe5eb;border-radius:7px;color:#253950;font-size:14px;font-weight:600}
.town-tile:hover{background:#f9fafb;color:var(--copper);border-color:#ccd4dd;transform:none}
.town-tile .tt-arrow{color:var(--copper)}
.town-tile:hover .tt-arrow{color:var(--copper)}

/* Process */
.process-steps{gap:14px}
.process-step{border:1px solid rgba(255,255,255,.13);border-left:1px solid rgba(255,255,255,.13);border-radius:9px;background:rgba(255,255,255,.045);padding:30px 26px}
.process-step:hover{background:rgba(255,255,255,.07)}
.process-step .step-num{font-family:var(--body);font-style:normal;color:rgba(255,255,255,.16);font-size:34px;font-weight:700}
.process-step h3{font-family:var(--body);font-weight:700}
/* homepage inline light process-step background should stay light */
.sec-paper .process-step{background:#fff!important;border:1px solid #e0e5eb!important}
.sec-paper .process-step h3{color:var(--teal-deep)}
.sec-paper .process-step p{color:#657386}
.sec-paper .process-step .step-num{color:rgba(207,31,44,.16)}

/* CTA band — serious conversion strip */
.cta-bar{background:var(--teal-deep);padding:30px 28px;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.cta-bar::before{display:none}
.cta-bar h3{font-family:var(--body);font-weight:700;letter-spacing:-.025em}
.cta-bar p{color:rgba(255,255,255,.78)}
.cta-bar .btn{background:var(--copper);box-shadow:none;border-radius:7px}
.cta-bar .btn:hover{background:#b81824}

/* Full quote cards */
.bigform-wrap{background:#fff;padding:38px;border-radius:12px;border:1px solid #dde3ea;border-top:1px solid #dde3ea;box-shadow:0 14px 36px rgba(16,40,70,.08)}
.bigform-grid{gap:14px}
.bigform-grid .form-note{color:#768294}
.bigform-grid button{min-height:47px;text-transform:uppercase;letter-spacing:.04em;font-size:12px}
.sec-teal-deep .bigform-wrap{background:#fff}

/* FAQ */
.faq-img-strip{border-radius:10px;box-shadow:none;border:1px solid #e1e6ec}
.faq{max-width:900px}
.faq-item{border-bottom:1px solid #e0e5eb}
.faq-q{font-family:var(--body);font-size:16px;font-weight:700;color:var(--teal-deep);padding:19px 6px}
.faq-a p{color:#657386}
.fq-ic{color:var(--copper)}

/* Also serving */
.also-serving{background:#f5f7f9;border-top:1px solid #e6eaef;border-bottom:1px solid #e6eaef}
.also-serving h4{color:var(--copper)}
.serving-pill{border-color:#dfe5eb;color:#35475d;background:#fff}

/* Success/error */
.form-success{background:#fff;border:1px solid #dce3ea;border-radius:10px;box-shadow:none}
.form-success::before{background:var(--copper)}
.form-success .fs-icon{background:var(--copper);box-shadow:none}
.form-success h3{font-family:var(--body);font-weight:700;color:var(--teal-deep)}
.form-success h3 em{font-style:normal;color:var(--copper)}
.form-error-msg{color:#9f1721;background:#fff4f5;border-left-color:var(--copper)}

/* Footer */
.site-footer{background:var(--teal-dark);color:#fff;padding-top:56px}
.footer-grid{gap:28px}
.footer-brand strong{font-family:var(--body);font-weight:700;color:#fff}
.footer-brand p{color:rgba(255,255,255,.66)}
.site-footer h5{color:#ff7580;font-family:var(--body)}
.site-footer a{color:rgba(255,255,255,.72)}
.site-footer a:hover{color:#fff}
.footer-bottom{border-top-color:rgba(255,255,255,.10);color:rgba(255,255,255,.52)}
.footer-disclaimer{color:rgba(255,255,255,.50)}

/* Mobile sticky CTA */
.sticky-cta .btn,.local-sticky .btn{background:var(--copper)!important;box-shadow:0 8px 24px rgba(7,23,45,.22)!important}

/* Focus */
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.btn:focus-visible,.faq-q:focus-visible,.menu-button:focus-visible,.mp-close:focus-visible,a:focus-visible{outline:3px solid rgba(207,31,44,.22);outline-offset:2px}

/* Responsive */
@media(max-width:960px){
  .header-shell{padding:13px 22px;min-height:68px}
  .hero-two{grid-template-columns:1fr;gap:30px}
  .hero::after{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.78) 52%,rgba(255,255,255,.88) 100%)}
  .hero .wrap{padding:52px 22px 58px}
  .quick-form{max-width:620px;width:100%}
  .sec{padding:58px 0}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .wrap{padding-left:20px;padding-right:20px}
  .top-strip{font-size:10px}
  .header-shell{padding:11px 18px;min-height:64px}
  .brand-txt strong{font-size:20px}
  .brand-txt small{font-size:8.5px}
  .hero .wrap{padding:40px 20px 48px}
  .hero::after{background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.88) 58%,rgba(255,255,255,.94) 100%)}
  .hero-bg img,.hero-slide img{object-position:center center}
  h1{font-size:36px}
  h2{font-size:28px}
  .hero-sub{font-size:15px}
  .quick-form{padding:22px 20px;border-radius:11px}
  .quick-form h3{font-size:21px}
  .town-tile-grid{grid-template-columns:1fr 1fr}
  .town-tile{padding:12px 13px;font-size:13px}
  .bigform-wrap{padding:24px 18px;border-radius:10px}
  .price-band{padding:24px 18px}
  .cta-bar{padding:26px 20px}
  .footer-grid{grid-template-columns:1fr}
  .crumb{padding-left:20px;padding-right:20px}
  .editorial-gallery{gap:10px}
}
@media(max-width:430px){
  .town-tile-grid{grid-template-columns:1fr}
  .hero-image-band{height:230px}
  .quick-form .field input,.quick-form .field select{font-size:16px}
}
/* V23 hero image visibility refinement */
.hero::after{background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.82) 34%,rgba(255,255,255,.22) 64%,rgba(255,255,255,.06) 100%)}
/* Existing hero images are preserved; CSS background mirrors the same image for the redesigned treatment. */
.hero-bg,.hero-slide{background-size:cover;background-position:center center;background-repeat:no-repeat;z-index:0}
.hero-bg>img,.hero-slide>img{opacity:0}
.hero::after{z-index:1}
.hero .wrap{z-index:2}
/* Keep original image elements active for broad browser compatibility. */
.hero-bg>img,.hero-slide>img{opacity:1}

/* =========================================================
   V34 — ONE WIDTH / ONE ALIGNMENT / ONE RHYTHM
   This is the only responsive override layer after the base CSS.
   ========================================================= */

:root{
  --navy:#0b1f3a;
  --navy-2:#102846;
  --red:#d91f2d;
  --red-dark:#b81724;
  --text:#20334d;
  --muted-2:#647286;
  --line-2:#dfe5ec;
  --soft:#f5f7f9;
  --content-max:1200px;
  --section-y:68px;
  --section-y-mobile:48px;
}

/* ---------- One site-wide width and alignment ---------- */
html{scroll-padding-top:92px}
body{background:#fff;color:var(--text)}
.wrap,
.header-shell,
.crumb,
.cta-bar-content,
.also-serving-inner,
.final-callback-shell,
.photo-band-inner{
  width:min(calc(100% - 48px),var(--content-max))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}
.sec{padding:var(--section-y) 0!important}
.sec-paper{background:#fff!important}
.sec-cream{background:var(--soft)!important}
.sec-head,
.sec-head.center{
  max-width:820px!important;
  margin:0 0 34px!important;
  text-align:left!important;
}
.sec-head h2{margin-bottom:14px!important}
.sec-head>p,
.local-body p,
.local-body p.lead,
.hero-content-block .local-body p,
.problem p,.process-step p,.price-row p,.also-serving p{
  font-family:var(--body)!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.68!important;
}
.sec:not(.on-dark) .sec-head>p,
.sec:not(.on-dark) .local-body p,
.sec:not(.on-dark) .local-body p.lead,
.hero-content-block .local-body p,
.sec-paper .problem p,.sec-cream .problem p,.price-row p,.also-serving p{color:#4e5e72!important}
.on-dark p,.on-dark .sec-head>p,.on-dark .local-body p,.on-dark .process-step p,.on-dark .problem p{color:rgba(255,255,255,.80)!important}
.italic-accent{font-style:normal!important;color:var(--red)!important;font-weight:inherit!important}
.kicker{color:var(--red)!important;margin-bottom:16px!important;letter-spacing:.15em!important}
.kicker::before{background:var(--red)!important;width:24px!important}
.on-dark .kicker{color:#e7edf4!important}.on-dark .kicker::before{background:#e7edf4!important}
.hero-content-block{max-width:900px!important;margin-left:0!important;margin-right:0!important;text-align:left!important}
.faq{max-width:900px!important;margin-left:0!important;margin-right:0!important}

/* ---------- Header ---------- */
.site-header{background:rgba(255,255,255,.98)!important;color:var(--navy)!important;box-shadow:0 1px 0 rgba(11,31,58,.10)!important;backdrop-filter:blur(10px)}
.header-shell{min-height:76px!important;padding-top:13px!important;padding-bottom:13px!important;gap:26px!important}
.brand{color:var(--navy)!important;margin-right:auto}
.brand-txt{border:0!important;padding-left:0!important}.brand-txt strong{font-family:var(--body)!important;font-size:25px!important;font-weight:750!important;letter-spacing:-.045em!important;color:var(--navy)!important}.brand-txt strong .brand-accent{color:var(--red)!important}.brand-txt small{font-size:10px!important;font-weight:650!important;letter-spacing:.11em!important;color:#6c798b!important;margin-top:5px!important;opacity:1!important}
.main-nav{margin-left:0!important;gap:8px!important}.main-nav a{color:#2f4057!important;padding:9px 11px!important;font-size:13px!important;font-weight:650!important;background:transparent!important}.main-nav a:hover{color:var(--red)!important;background:#f6f8fa!important}.main-nav a.active{color:var(--red)!important;box-shadow:inset 0 -2px 0 var(--red)!important;border-radius:0!important}
.header-cta{margin-left:8px!important;min-width:126px!important;padding:12px 20px!important;text-align:center!important;background:var(--red)!important;color:#fff!important;border-radius:7px!important;box-shadow:0 5px 14px rgba(217,31,45,.14)!important}.header-cta:hover{background:var(--red-dark)!important;color:#fff!important}
.menu-button{color:var(--navy)!important;border:1px solid #d3dbe5!important;background:#fff!important;border-radius:7px!important}
.crumb{padding-top:12px!important;padding-bottom:12px!important;color:#758295!important}

/* ---------- Desktop hero: keep the photograph visible much farther left ---------- */
.hero{position:relative!important;background:#fff!important;color:var(--text)!important;border-bottom:1px solid #e3e8ee!important;overflow:hidden!important;isolation:isolate}
.hero-bg,.hero-slides{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important;z-index:0!important;background:#e8edf2!important}
.hero-slide{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;transition:opacity 1.2s ease!important}.hero-slide.on{opacity:1!important}
.hero-bg>img,.hero-slide>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;object-fit:cover!important;object-position:center center!important;opacity:1!important}
.hero::after{content:""!important;display:block!important;position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none!important;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.88) 16%,rgba(255,255,255,.66) 31%,rgba(255,255,255,.36) 44%,rgba(255,255,255,.12) 55%,rgba(255,255,255,0) 66%)!important}
.hero .wrap{position:relative!important;z-index:2!important;width:min(calc(100% - 48px),var(--content-max))!important;max-width:none!important;margin:0 auto!important;padding:58px 0 60px!important}
.hero-two{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,405px)!important;gap:58px!important;align-items:center!important;max-width:none!important;min-height:430px!important}
.hero-two>div.reveal:first-of-type{max-width:610px!important;padding:0!important}
.hero h1{color:var(--navy)!important;max-width:650px!important;margin-bottom:20px!important;font-size:clamp(42px,4.55vw,65px)!important;line-height:1.02!important;letter-spacing:-.045em!important}
.hero-sub{font-size:17px!important;line-height:1.68!important;color:#344860!important;max-width:600px!important;margin-bottom:24px!important}.has-local-sticky .hero-sub{margin-bottom:0!important}.has-local-sticky .hero-cta{display:none!important}.hero-eyebrow{color:var(--red)!important}
.hero .quick-form{justify-self:end!important;width:100%!important;max-width:405px!important;margin:0!important;padding:25px 26px 23px!important;background:rgba(255,255,255,.98)!important;border:1px solid rgba(203,213,225,.92)!important;border-radius:11px!important;box-shadow:0 16px 38px rgba(7,23,45,.15)!important;backdrop-filter:blur(4px)}
.hero .quick-form h3{font-size:22px!important;margin:0 0 5px!important;color:var(--navy)!important}.hero .quick-form .qf-sub{margin:0 0 16px!important;color:#5f6e81!important;line-height:1.5!important}.hero .quick-form .field{margin:0 0 10px!important}.hero .quick-form button[type="submit"]{width:100%!important;min-height:46px!important;margin-top:2px!important}.hero .quick-form .qf-note{margin:9px 0 0!important;color:#6d7a8b!important;text-align:left!important}

/* ---------- Buttons / fields ---------- */
.btn{border-radius:7px!important}.field label{color:#42536a!important}.field input,.field textarea,.field select{border-color:#d5dce5!important;border-radius:6px!important;background:#fff!important;color:var(--text)!important}

/* ---------- Full quote forms: wide, balanced and visually quiet ---------- */
.bigform-wrap{width:100%!important;max-width:none!important;background:#fff!important;padding:32px 34px!important;border:1px solid #dce3ea!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(16,40,70,.05)!important}
.bigform-grid.compact-quote{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:13px 14px!important;align-items:end!important}
.compact-quote .field{min-width:0!important;margin:0!important}.compact-quote .quote-name-field,.compact-quote .quote-phone-field,.compact-quote .quote-email-field{grid-column:span 4!important}.compact-quote .quote-address-field{grid-column:span 6!important}.compact-quote .quote-city-field{grid-column:span 4!important}.compact-quote .quote-zip-field{grid-column:span 2!important}
.compact-quote .quote-details-field{grid-column:1/-1!important;grid-row:auto!important}.compact-quote textarea.auto-grow{min-height:112px!important;height:112px;overflow:hidden!important;resize:none!important}
.compact-quote .quote-photo-field{grid-column:1/9!important;grid-row:auto!important;align-self:end!important}.bigform-grid.compact-quote>button[type="submit"]{grid-column:9/13!important;grid-row:auto!important;width:100%!important;min-height:47px!important;align-self:end!important;margin:0!important}.compact-quote .form-note{grid-column:1/-1!important;margin:0!important;text-align:left!important;color:#748195!important;font-size:12px!important}
.compact-quote input[type="file"]{width:100%!important;min-height:46px!important;padding:7px 8px!important;border:1px solid #d5dce5!important;border-radius:6px!important;background:#f8fafc!important;color:#64748b!important;font-size:12px!important}.compact-quote input[type="file"]::file-selector-button{margin-right:9px!important;border:0!important;border-radius:5px!important;padding:8px 10px!important;background:#e9eef4!important;color:#20334d!important;font-weight:700!important;cursor:pointer!important}
.file-previews{gap:8px!important;margin-top:8px!important}.file-preview{width:72px!important;height:72px!important;border-radius:7px!important;overflow:visible!important;box-shadow:none!important;background:#edf2f6!important;border:1px solid #dce3ea!important;padding:2px!important}.file-preview img{border-radius:5px!important}.bigform-grid .file-preview-remove{position:absolute!important;top:-7px!important;right:-7px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;max-width:24px!important;max-height:24px!important;padding:0!important;margin:0!important;border:2px solid #fff!important;border-radius:50%!important;background:var(--red)!important;color:#fff!important;display:grid!important;place-items:center!important;font:700 16px/1 Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important;box-shadow:0 2px 5px rgba(11,31,58,.18)!important;transform:none!important}

/* ---------- Homepage Simple Setup: not cards, one clean sequence ---------- */
.home-simple-setup .sec-head{margin-bottom:28px!important}
.home-simple-setup .process-steps{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;margin:0!important;padding:0!important;border-top:1px solid var(--line-2)!important;border-bottom:1px solid var(--line-2)!important;background:#fff!important;overflow:visible!important}
.home-simple-setup .process-step{position:relative!important;display:block!important;min-width:0!important;margin:0!important;padding:28px 30px!important;border:0!important;border-right:1px solid var(--line-2)!important;border-radius:0!important;background:transparent!important;color:var(--text)!important;box-shadow:none!important;transform:none!important}
.home-simple-setup .process-step:first-child{padding-left:0!important}.home-simple-setup .process-step:last-child{border-right:0!important;padding-right:0!important}.home-simple-setup .process-step .step-num{position:static!important;display:block!important;margin:0 0 10px!important;font:700 11px/1 var(--body)!important;letter-spacing:.08em!important;color:var(--red)!important}.home-simple-setup .process-step h3{margin:0 0 8px!important;padding:0!important;font-family:var(--body)!important;font-size:20px!important;font-weight:700!important;line-height:1.25!important;color:var(--navy)!important}.home-simple-setup .process-step p{margin:0!important;color:#657386!important;font-size:15px!important;line-height:1.62!important}

/* ---------- Photography / visual blocks ---------- */
.hero-image-band,.split-media,.faq-img-strip,.eg-feature,.eg-small,.photo-band,.local-guide-visual-v33{background:#e8edf2!important;overflow:hidden!important}.hero-image-band>img,.split-media>img,.faq-img-strip>img,.eg-feature>img,.eg-small>img,.photo-band>img,.local-guide-visual-v33>img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}.eg-feature::after,.eg-small::after,.photo-band::after{display:none!important}.eg-caption,.photo-band-inner{display:none!important}.editorial-gallery{gap:12px!important;margin-top:34px!important}.eg-feature,.eg-small{border-radius:9px!important;box-shadow:none!important}.photo-band{height:280px!important;width:min(calc(100% - 48px),var(--content-max))!important;max-width:none!important;margin:0 auto!important;border-radius:9px!important;position:relative!important}.faq-img-strip{border-radius:9px!important;box-shadow:none!important;border:1px solid #e1e6ec!important}

/* ---------- Flat, consistent section components ---------- */
.county-card,.svc-card,.service-link-card,.problem,.process-step,.price-band,.town-tile,.bigform-wrap{box-shadow:none!important}.county-card,.svc-card,.service-link-card{background:#fff!important;border:1px solid #e0e5eb!important;border-radius:9px!important}.county-card:hover,.svc-card:hover,.service-link-card:hover{transform:none!important;box-shadow:0 7px 18px rgba(16,40,70,.05)!important;border-color:#cdd5df!important}.county-card h3,.svc-card h3,.service-link-card h3{color:var(--navy)!important}.county-card .cc-cta,.service-link-card span{color:var(--red)!important}
.problems{gap:14px!important}.problem{border:1px solid rgba(255,255,255,.13)!important;border-radius:8px!important;padding:28px 25px!important;background:rgba(255,255,255,.04)!important}.problem:hover{transform:none!important;background:rgba(255,255,255,.06)!important}.problem-num{font-family:var(--body)!important;font-style:normal!important;font-size:34px!important;color:rgba(255,255,255,.14)!important;font-weight:700!important}.problem h4{font-family:var(--body)!important;font-weight:700!important}.problem .fix{color:#ff7a83!important}.sec-paper .problem,.sec-cream .problem{background:#fff!important;border:1px solid #e0e5eb!important;color:var(--text)!important}.sec-paper .problem h4,.sec-cream .problem h4{color:var(--navy)!important}.sec-paper .problem p,.sec-cream .problem p{color:#5f6d7e!important}.sec-paper .problem-num,.sec-cream .problem-num{color:rgba(217,31,45,.14)!important}.sec-paper .problem .fix,.sec-cream .problem .fix{color:var(--red)!important}
.process-steps{gap:14px!important}.sec-teal-deep .process-step,.sec-teal .process-step,.on-dark .process-step{border:1px solid rgba(255,255,255,.13)!important;border-radius:8px!important;background:rgba(255,255,255,.04)!important;padding:28px 25px!important}.process-step .step-num{font-family:var(--body)!important;font-style:normal!important;font-size:34px!important;font-weight:700!important}.on-dark .process-step .step-num{color:rgba(255,255,255,.15)!important}.process-step h3{font-family:var(--body)!important;font-weight:700!important}
.price-band{background:#fff!important;border:1px solid #e0e5eb!important;border-top:3px solid var(--red)!important;border-radius:9px!important;padding:34px!important}.price-row h4{color:var(--navy)!important}.price-row .price{font-family:var(--body)!important;font-weight:700!important;color:var(--red)!important;font-size:23px!important}.price-row p,.price-note{color:#687587!important}
.town-tile-county{margin-top:34px!important}.town-tile-county h3{font-family:var(--body)!important;font-size:20px!important;font-weight:700!important;color:var(--navy)!important;border-bottom:1px solid #dde3ea!important}.town-tile{background:#fff!important;padding:14px 16px!important;border:1px solid #dfe5eb!important;border-radius:7px!important;color:#253950!important;font-size:14px!important;font-weight:600!important}.town-tile:hover{background:#f9fafb!important;color:var(--red)!important;border-color:#ccd4dd!important;transform:none!important}.town-tile .tt-arrow{color:var(--red)!important}

/* ---------- Two-column content / CTA / guide ---------- */
.split{gap:48px!important}.split-media{border-radius:9px!important;box-shadow:none!important;border:1px solid #e1e6ec!important}.dual-col{gap:42px!important}.dual-col-item{background:transparent!important;border:0!important;border-top:1px solid rgba(255,255,255,.18)!important;border-radius:0!important;padding:24px 0 0!important}.dual-col-item li{border-bottom:1px solid rgba(255,255,255,.09)!important}
.cta-bar{background:var(--navy)!important;padding:28px 0!important;border-top:1px solid rgba(255,255,255,.06)!important;border-bottom:1px solid rgba(255,255,255,.06)!important}.cta-bar::before{display:none!important}.cta-bar h3{font-family:var(--body)!important;font-weight:700!important}.cta-bar p{color:rgba(255,255,255,.78)!important}.cta-bar .btn{background:var(--red)!important;border-radius:7px!important}.cta-bar .btn:hover{background:var(--red-dark)!important}
.also-serving{background:var(--soft)!important;border-top:1px solid #e6eaef!important;border-bottom:1px solid #e6eaef!important}.also-serving-inner{text-align:left!important}.also-serving h4{color:var(--red)!important}.serving-pill{border-color:#dfe5eb!important;color:#35475d!important;background:#fff!important}
.local-context-section .sec-head{margin-bottom:28px!important}.local-guide-v33{border-top:1px solid #dce3ea!important;padding-top:20px!important}.guide-tabs-v33{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-bottom:18px!important}.guide-tab-v33{min-width:0!important;border:1px solid #dce3ea!important;border-radius:7px!important;background:#fff!important;color:#394b62!important;padding:12px!important;text-align:left!important;font:700 13px/1.3 var(--body)!important;cursor:pointer!important;display:flex!important;gap:9px!important;align-items:flex-start!important}.guide-tab-v33:hover{border-color:#c5d0dc!important;background:#fafbfd!important}.guide-tab-v33.is-active{border-color:var(--navy)!important;background:var(--navy)!important;color:#fff!important}.guide-tab-num-v33{color:var(--red)!important;font-size:10px!important;letter-spacing:.08em!important;line-height:1.7!important;flex:0 0 auto!important}.guide-tab-v33.is-active .guide-tab-num-v33{color:#ff7a84!important}.guide-stage-v33{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr)!important;gap:24px!important;align-items:stretch!important}.guide-copy-v33{background:#fff!important;border:1px solid #dce3ea!important;border-radius:8px!important;padding:28px 30px!important;min-height:300px!important;display:flex!important;align-items:center!important}.guide-panel-v33{display:none!important}.guide-panel-v33.is-active{display:block!important}.guide-panel-v33 p{margin:0!important;color:#46566a!important;font-size:16px!important;line-height:1.74!important;font-weight:400!important}.local-guide-visual-v33{position:relative!important;min-height:300px!important;border-radius:8px!important;border:0!important}.local-guide-visual-v33 .sm-badge{position:absolute!important;left:14px!important;bottom:14px!important;z-index:2!important;background:var(--red)!important;color:#fff!important}

/* ---------- Final callback / footer ---------- */
.final-callback-section{padding:42px 0!important;background:#fff!important;border-top:1px solid #e1e7ee!important}.final-callback-shell{display:grid!important;grid-template-columns:minmax(210px,.65fr) minmax(0,2fr)!important;gap:34px!important;align-items:end!important}.final-callback-copy h2{font-family:var(--body)!important;font-size:24px!important;color:var(--navy)!important;margin:0 0 5px!important}.final-callback-copy p{font-size:14px!important;color:#687689!important;margin:0!important}.final-callback-form.quick-form{max-width:none!important;width:100%!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;display:grid!important;grid-template-columns:1fr 1fr 1fr auto!important;gap:10px!important;align-items:end!important}.final-callback-form .field{margin:0!important}.final-callback-form input,.final-callback-form select{height:45px!important;background:#fff!important}.final-callback-form button[type="submit"]{height:45px!important;min-width:180px!important;margin:0!important;white-space:nowrap!important}
.site-footer{background:#07172d!important;padding-top:54px!important;color:#fff!important}.footer-grid{width:min(100%,var(--content-max))!important;margin-left:auto!important;margin-right:auto!important;gap:28px!important}.site-footer h5{color:#fff!important}.site-footer a{color:#c9d3df!important}.site-footer a:hover{color:#fff!important}.footer-brand p{color:#c9d3df!important}.footer-bottom,.footer-disclaimer{color:#aab7c7!important}

/* ---------- Mobile/tablet: same rhythm, stacked presentation ---------- */
@media (max-width:960px){
  :root{--section-y-mobile:48px}
  .wrap,.header-shell,.crumb,.cta-bar-content,.also-serving-inner,.final-callback-shell,.photo-band{width:calc(100% - 40px)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
  .sec{padding:var(--section-y-mobile) 0!important}.sec-head,.sec-head.center{margin:0 0 24px!important;max-width:none!important;text-align:left!important}.sec-head h2{margin-bottom:11px!important}
  .header-shell{min-height:70px!important;padding-top:12px!important;padding-bottom:12px!important}.main-nav,.header-cta{display:none!important}.menu-button{display:block!important;margin-left:auto!important}
  .hero{background:#fff!important;min-height:0!important}.hero::after{display:none!important}.hero-bg,.hero-slides{position:relative!important;inset:auto!important;width:100%!important;height:250px!important;display:block!important;overflow:hidden!important}.hero-slide{position:absolute!important;inset:0!important}.hero .wrap{width:calc(100% - 40px)!important;padding:34px 0 42px!important;background:#fff!important}.hero-two{display:grid!important;grid-template-columns:1fr!important;gap:26px!important;min-height:0!important}.hero-two>div.reveal:first-of-type{max-width:none!important}.hero h1{font-size:38px!important;line-height:1.04!important;margin-bottom:16px!important}.hero-sub{font-size:15px!important;line-height:1.65!important;margin-bottom:18px!important}.hero .quick-form{justify-self:stretch!important;max-width:none!important;padding:21px 20px!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(16,40,70,.07)!important}
  .hero-image-band{height:auto!important;aspect-ratio:16/9!important;margin-bottom:30px!important}.editorial-gallery{grid-template-columns:1fr!important;grid-template-rows:auto!important;gap:10px!important;margin-top:28px!important}.eg-feature{height:auto!important;min-height:0!important;aspect-ratio:16/10!important}.eg-side{grid-template-columns:1fr 1fr!important;grid-template-rows:1fr!important;gap:10px!important;height:auto!important;min-height:0!important}.eg-small{height:auto!important;min-height:0!important;aspect-ratio:1/1!important}.photo-band{height:auto!important;aspect-ratio:16/7!important;border-radius:8px!important;margin-top:0!important;margin-bottom:0!important}.faq-img-strip{height:auto!important;aspect-ratio:16/7!important;margin-bottom:30px!important}
  .problems{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;gap:12px!important;padding:4px 20px 18px!important;margin:0 -20px!important;scrollbar-width:none!important}.problems::-webkit-scrollbar{display:none!important}.problems>.problem{flex:0 0 82%!important;scroll-snap-align:start!important;background:#fff!important;border:1px solid #dfe5ec!important;border-radius:9px!important;padding:22px 42px 22px 18px!important}.problem-num{right:15px!important;top:23px!important}
  .dual-col{grid-template-columns:1fr!important;gap:28px!important}.on-dark .process-steps{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;gap:12px!important;margin:0 -20px!important;padding:0 20px 16px!important;scrollbar-width:none!important}.on-dark .process-steps::-webkit-scrollbar{display:none!important}.on-dark .process-steps>.process-step{flex:0 0 82%!important;scroll-snap-align:start!important}
  .home-simple-setup .process-steps{grid-template-columns:1fr!important;border-top:1px solid var(--line-2)!important;border-bottom:0!important}.home-simple-setup .process-step{padding:20px 0 20px 50px!important;border-right:0!important;border-bottom:1px solid var(--line-2)!important;min-height:0!important}.home-simple-setup .process-step:first-child{padding-left:50px!important}.home-simple-setup .process-step:last-child{padding-right:0!important}.home-simple-setup .process-step .step-num{position:absolute!important;left:0!important;top:23px!important;margin:0!important;width:32px!important}.home-simple-setup .process-step h3{font-size:18px!important;margin-bottom:5px!important}.home-simple-setup .process-step p{font-size:15px!important;line-height:1.55!important}
  .price-rows{grid-template-columns:1fr!important}.price-band{padding:24px 18px!important}
  .bigform-wrap{padding:23px 18px!important;border-radius:9px!important}.bigform-grid.compact-quote{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important}.compact-quote .quote-name-field,.compact-quote .quote-phone-field,.compact-quote .quote-email-field,.compact-quote .quote-address-field{grid-column:1/-1!important;grid-row:auto!important}.compact-quote .quote-city-field,.compact-quote .quote-zip-field{grid-column:span 1!important;grid-row:auto!important}.compact-quote .quote-details-field,.compact-quote .quote-photo-field,.bigform-grid.compact-quote>button[type="submit"],.compact-quote .form-note{grid-column:1/-1!important;grid-row:auto!important}.compact-quote textarea.auto-grow{min-height:96px!important;height:96px}
  .local-guide-v33{padding-top:14px!important}.guide-tabs-v33{grid-template-columns:1fr!important;gap:7px!important;margin-bottom:12px!important}.guide-tab-v33{padding:13px 14px!important;font-size:14px!important;border-radius:8px!important}.guide-stage-v33{grid-template-columns:1fr!important;gap:12px!important}.guide-copy-v33{padding:18px!important;min-height:0!important;border-radius:8px!important}.guide-panel-v33 p{font-size:15px!important;line-height:1.7!important}.local-guide-visual-v33{min-height:0!important;aspect-ratio:16/9!important;border-radius:8px!important}
  .cta-bar{padding:26px 0!important}.cta-bar-content{gap:16px!important}.cta-bar-content{flex-direction:column!important;text-align:left!important;align-items:flex-start!important}.cta-bar-text{text-align:left!important}.cta-bar .btn{width:100%!important;justify-content:center!important}
  .also-serving-inner{text-align:left!important}.final-callback-section{padding:40px 0!important}.final-callback-shell{grid-template-columns:1fr!important;gap:18px!important}.final-callback-form.quick-form{grid-template-columns:1fr!important;gap:10px!important}.final-callback-form button[type="submit"]{width:100%!important;min-width:0!important}
}

@media (max-width:640px){
  :root{--section-y-mobile:46px}
  .hero-bg,.hero-slides{height:220px!important}.hero .wrap{padding:30px 0 38px!important}.hero h1{font-size:35px!important}.hero .quick-form{padding:20px 18px!important}.photo-band{aspect-ratio:16/8!important}.sec-head h2{font-size:28px!important}.sec-head>p,.local-body p,.local-body p.lead{font-size:15px!important;line-height:1.7!important}.footer-grid{grid-template-columns:1fr!important}
}

/* Persistent conversion controls are mobile-only. */
.local-sticky,.sticky-cta{display:none!important}
@media (max-width:760px){.has-local-sticky .local-sticky{display:flex!important}body:not(.has-local-sticky) .sticky-cta{display:block!important}.has-local-sticky{padding-bottom:70px!important}.form-focus .local-sticky,.form-focus .sticky-cta{opacity:0!important;transform:translateY(105%)!important;pointer-events:none!important;transition:opacity .16s ease,transform .16s ease!important}.local-sticky,.sticky-cta{transition:opacity .16s ease,transform .16s ease!important}}
