.top-bar{background:#061222;color:#fff;padding:0;font-family:var(--f-ui,"Source Sans 3",sans-serif);font-size:11.5px;line-height:1.1;overflow:hidden;position:relative;border-bottom:1px solid rgba(255,255,255,.06)}.top-bar::before,.top-bar::after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}.top-bar::before{left:0;background:linear-gradient(90deg,#061222 0%,rgba(6,18,34,0) 100%)}.top-bar::after{right:0;background:linear-gradient(270deg,#061222 0%,rgba(6,18,34,0) 100%)}.tb-marquee{display:flex;width:max-content;animation:tbScroll 48s linear infinite;will-change:transform}.top-bar:hover .tb-marquee{animation-play-state:paused}.tb-track{display:flex;align-items:center;flex-shrink:0;padding:5px 0}.tb-item{display:inline-flex;align-items:center;gap:8px;padding:0 26px;white-space:nowrap;color:rgba(255,255,255,.95);letter-spacing:.3px}.tb-item strong{color:#fff;font-weight:700;letter-spacing:.4px}.tb-item-dot{width:4px;height:4px;border-radius:50%;background:var(--red,#c41e23);flex-shrink:0;display:inline-block}.tb-item-star{color:var(--red,#c41e23);font-size:13px;line-height:1}@keyframes tbScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (max-width:768px){.top-bar{font-size:12px}.tb-item{padding:0 18px;gap:6px}.tb-marquee{animation-duration:36s}.top-bar::before,.top-bar::after{width:32px}}@media (prefers-reduced-motion:reduce){.tb-marquee{animation:none}.top-bar{overflow-x:auto;-webkit-overflow-scrolling:touch}}.tb-left,.tb-right,.tb-phone,.tb-btn,.tb-pulse,.tb-text{display:none !important}:root{--navy:#0a0f16;--navy-mid:#121a26;--navy-deep:#070b11;--red:#4B9CD3;--red-dark:#3d84b8;--red-light:#7BAFD4;--red-rgb:75,156,211;--blue:#13294B;--blue-light:#7BAFD4;--cream:#f4f6f8;--cream-warm:#eef2f6;--border:#e2e6ea;--border-light:#eaeef2;--text:#1a1e25;--muted:#5a6070;--muted-light:#8a8f99;--f-display:"Oswald","Helvetica Neue",Arial,sans-serif;--f-body:"Lora",Georgia,"Times New Roman",serif;--f-ui:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--pad-x:48px;--pad-y:72px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0 0 60px;font-family:var(--f-body);color:var(--text);line-height:1.65;font-size:16px;background:#fff;-webkit-font-smoothing:antialiased}img,svg{max-width:100%;height:auto;display:block}a{color:var(--red);text-decoration:none}a:hover{color:var(--red-dark)}button{font-family:inherit;cursor:pointer}*:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:2px}.section-navy *:focus-visible,.hero *:focus-visible,.cta-banner *:focus-visible,.top-bar *:focus-visible,footer *:focus-visible,.sticky-cta *:focus-visible,.page-header *:focus-visible{outline-color:var(--red-light)}h1,h2,h3,h4,h5,h6{font-family:var(--f-display);font-weight:700;letter-spacing:.3px;margin:0 0 16px;color:var(--navy);line-height:1.15}h1{font-size:clamp(34px,5vw,54px)}h2{font-size:clamp(28px,3.6vw,40px)}h3{font-size:clamp(20px,2.4vw,26px)}h4{font-size:18px}p{margin:0 0 14px}.section,.section-alt,.section-navy{padding:var(--pad-y) var(--pad-x)}.section-alt{background:var(--cream)}.section-navy{background:var(--navy);color:#fff}.section-navy h1,.section-navy h2,.section-navy h3,.section-navy h4{color:#fff}.wrap{max-width:1280px;margin:0 auto}.sk,.sk-lite{font-family:var(--f-display);font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:var(--red);margin-bottom:12px}.sk-lite{color:var(--red-light)}.st,.sec-title{font-family:var(--f-display);font-size:clamp(28px,3.6vw,40px);font-weight:700;color:var(--navy);line-height:1.15;margin:0 0 14px}.st-w,.sec-title-w{font-family:var(--f-display);font-size:clamp(28px,3.6vw,40px);font-weight:700;color:#fff;line-height:1.15;margin:0 0 14px}.ss,.sec-sub{font-family:var(--f-body);font-size:17px;color:var(--muted);max-width:720px;margin:0 0 36px}.section-navy .ss,.section-navy .sec-sub{color:rgba(255,255,255,.92)}.btn-primary,.btn-outline,.nav-cta,.svc-link,.fs-btn,.cb-btn,.tb-btn{display:inline-block;font-family:var(--f-display);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;padding:14px 24px;border-radius:2px;border:0;text-decoration:none;transition:background .15s,color .15s,transform .15s}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark);color:#fff}.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.82)}.btn-outline:hover{background:rgba(255,255,255,.12);color:#fff}.top-bar{background:var(--navy-deep);color:#fff;padding:8px var(--pad-x);display:flex;align-items:center;justify-content:space-between;font-family:var(--f-ui);font-size:13px}.tb-left{display:flex;align-items:center;gap:10px}.tb-pulse{width:9px;height:9px;border-radius:50%;background:var(--red)}.tb-text{color:rgba(255,255,255,.95);letter-spacing:.3px}.tb-right{display:flex;align-items:center;gap:16px}.tb-phone{color:#fff;font-weight:600;letter-spacing:.3px}.tb-btn{background:var(--red);color:#fff;padding:7px 14px;font-size:11px}.tb-btn:hover{background:var(--red-dark);color:#fff}nav.main-nav{background:#fff;border-bottom:1px solid var(--border);padding:14px var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(13,31,53,.04)}.logo-wrap{display:flex;align-items:center}.logo-img{height:54px;width:auto}.nav-links{display:flex;align-items:center;gap:22px;flex:1;justify-content:center}.nav-links a{font-family:var(--f-display);font-weight:500;font-size:14px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy);padding:6px 0;border-bottom:2px solid transparent}.nav-links a:hover,.nav-links a.active{color:var(--red);border-bottom-color:var(--red)}.nav-dropdown{position:relative}.nav-dropdown-toggle{background:none;border:0;cursor:pointer;font-family:var(--f-display);font-weight:500;font-size:14px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy);padding:6px 0}.nav-dropdown-toggle:hover{color:var(--red)}.nav-dropdown-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--border);border-top:3px solid var(--red);min-width:240px;padding:8px 0;box-shadow:0 8px 28px rgba(13,31,53,.12);z-index:110}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:block}.nav-dropdown-menu a{display:block;padding:9px 18px;font-size:13px;letter-spacing:.8px;border-bottom:0}.nav-dropdown-menu a:hover{background:var(--cream);color:var(--red);border-bottom:0}.nav-right{display:flex;align-items:center;gap:14px}.nav-phone{font-family:var(--f-display);font-weight:700;color:var(--navy);font-size:16px;letter-spacing:.5px}.nav-phone:hover{color:var(--red)}.nav-cta{background:var(--red);color:#fff;padding:10px 18px;font-size:12px}.nav-cta:hover{background:var(--red-dark);color:#fff}.mobile-nav-toggle{display:none;background:none;border:0;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;padding:0}.mobile-nav-toggle span{display:block;width:26px;height:2px;background:var(--navy);border-radius:2px}.mobile-nav-open{display:none;position:fixed;top:0;left:0;right:0;background:var(--navy);padding:80px 32px 32px;z-index:90;flex-direction:column;gap:8px;max-height:100vh;overflow-y:auto}.mobile-nav-open.is-open{display:flex}.mobile-nav-open a{font-family:var(--f-display);font-weight:500;font-size:18px;letter-spacing:1.5px;text-transform:uppercase;color:#fff;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.mobile-nav-open a.mn-sub{font-size:14px;padding:8px 0 8px 16px;color:rgba(255,255,255,.88);letter-spacing:.8px}.mobile-nav-close{position:absolute;top:18px;right:22px;background:none;border:0;color:#fff;font-size:32px;line-height:1}.anchor-strip{background:var(--navy-mid);padding:12px var(--pad-x);display:flex;gap:22px;overflow-x:auto;scrollbar-width:none}.anchor-strip::-webkit-scrollbar{display:none}.anchor-strip a{flex:0 0 auto;font-family:var(--f-display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.92);white-space:nowrap;padding:4px 2px;border-bottom:2px solid transparent}.anchor-strip a:hover{color:#fff;border-bottom-color:var(--red)}.hero{position:relative;background:var(--navy-deep);color:#fff;padding:60px var(--pad-x);overflow:hidden;isolation:isolate;min-height:640px;display:flex;align-items:center;contain:layout paint}.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center right;display:block}.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient( 90deg,rgba(6,18,34,.92) 0%,rgba(13,31,53,.85) 30%,rgba(18,40,68,.55) 60%,rgba(18,40,68,.20) 85%,rgba(18,40,68,.05) 100% ),linear-gradient( 180deg,rgba(6,18,34,.20) 0%,transparent 30%,transparent 70%,rgba(6,18,34,.30) 100% )}.hero-inner{position:relative;z-index:1;max-width:1280px;width:100%;margin:0}.hero-content{max-width:640px}.hero-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);padding:7px 14px;border-radius:99px;margin-bottom:22px;font-family:var(--f-ui);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.hb-dot{width:8px;height:8px;border-radius:50%;background:var(--red)}.hb-text{color:rgba(255,255,255,.95)}.hero h1{color:#fff;font-size:clamp(36px,5.4vw,62px);font-weight:700;margin:0 0 18px;line-height:1.06;letter-spacing:.3px;text-shadow:0 2px 16px rgba(0,0,0,.45)}.hero h1 em{display:block;color:var(--red-light);font-style:normal;font-size:.62em;margin-top:10px;font-weight:500;text-shadow:0 2px 12px rgba(0,0,0,.55)}.hero-sub{font-family:var(--f-body);font-size:18px;color:rgba(255,255,255,.95);margin:0 0 24px;max-width:580px;text-shadow:0 1px 8px rgba(0,0,0,.45)}.trust-row{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:22px}.tbadge{display:inline-block;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);padding:6px 12px;border-radius:4px;font-family:var(--f-ui);font-size:13px;color:rgba(255,255,255,.95);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.hero-credentials{display:flex;align-items:center;gap:18px;margin:22px 0 28px;flex-wrap:wrap}.hero-credentials img{display:block;height:88px;width:auto;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45))}.hero-credentials .hc-copy{font-family:var(--f-ui);font-size:13px;line-height:1.5;color:rgba(255,255,255,.95);max-width:320px;text-shadow:0 1px 6px rgba(0,0,0,.5)}.hero-credentials .hc-copy strong{font-family:var(--f-display);font-size:15px;letter-spacing:.5px;color:#fff;display:block;margin-bottom:2px}.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}.lead-section{background:var(--cream-warm);padding:80px var(--pad-x);position:relative;border-bottom:1px solid var(--border-light)}.lead-section::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent)}.lead-wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 480px;gap:64px;align-items:start}.lead-copy{padding-top:6px}.lead-section .ls-kicker{font-family:var(--f-display);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red);margin-bottom:14px}.lead-section h2{font-family:var(--f-display);font-size:clamp(34px,4.4vw,56px);color:var(--navy);margin:0 0 18px;line-height:1.04;letter-spacing:-.5px;text-transform:uppercase;min-height:130px}.lead-section h2 .ls-h2-line2{display:block}.lead-section .ls-sub{font-family:var(--f-body);font-size:17px;line-height:1.6;color:var(--text);margin:0 0 28px;max-width:560px}.lead-checklist{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:14px}.lead-checklist li{display:flex;align-items:flex-start;gap:14px;font-family:var(--f-ui);font-size:15px;line-height:1.45;color:var(--text)}.lead-checklist .lc-check{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1;margin-top:1px}.lead-checklist .lc-check svg{width:13px;height:13px;display:block}.lead-call-strip{margin-top:32px;padding:18px 22px;background:var(--navy);color:#fff;border-radius:6px;display:flex;align-items:center;gap:16px;max-width:560px}.lead-call-strip .lcs-icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.10);display:inline-flex;align-items:center;justify-content:center}.lead-call-strip .lcs-icon svg{width:20px;height:20px;fill:#fff}.lead-call-strip .lcs-body{flex:1}.lead-call-strip .lcs-label{font-family:var(--f-display);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:2px}.lead-call-strip .lcs-phone{font-family:var(--f-display);font-size:22px;color:#fff;text-decoration:none;letter-spacing:.5px;display:block;line-height:1.1}.lead-call-strip .lcs-phone:hover{color:var(--red-light)}.lead-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:36px 36px;box-shadow:0 14px 40px rgba(13,31,53,.10);text-align:left}.lead-card-header{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border-light)}.lead-card-header h3{font-family:var(--f-display);font-size:22px;color:var(--navy);margin:0 0 4px;letter-spacing:.3px}.lead-card-header p{font-family:var(--f-body);font-style:italic;font-size:14px;color:var(--muted);margin:0}@media (max-width:1024px){.lead-wrap{grid-template-columns:1fr;gap:40px;max-width:760px}.lead-section h2{font-size:clamp(30px,6vw,44px)}}@media (max-width:768px){.lead-section{padding:52px 20px}.lead-card{padding:24px 22px}.lead-call-strip{padding:14px 16px;gap:12px}.lead-call-strip .lcs-icon{width:38px;height:38px}.lead-call-strip .lcs-phone{font-size:19px}}.hero-form{background:#fff;border-radius:6px;padding:28px;color:var(--text);box-shadow:0 18px 60px rgba(0,0,0,.35);position:relative;z-index:2}.hero-form h3{margin:0 0 6px;font-size:24px;letter-spacing:.5px;color:var(--navy)}.hero-form .hf-sub{font-family:var(--f-body);font-style:italic;font-size:14px;color:var(--muted);margin:0 0 18px}.lead-form{font-family:var(--f-ui)}.lead-form label{display:block;margin-bottom:12px;font-size:12px;font-weight:600;letter-spacing:.5px;color:var(--navy);text-transform:uppercase}.lead-form input,.lead-form textarea,.lead-form select{display:block;width:100%;margin-top:6px;padding:11px 12px;font-family:var(--f-ui);font-size:15px;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:3px;text-transform:none;letter-spacing:0;font-weight:400}.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(var(--red-rgb),.12)}.lead-form textarea{resize:vertical;min-height:86px}.next-btn,.submit-btn,.back-btn{font-family:var(--f-display);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;padding:13px 22px;border-radius:3px;border:0;cursor:pointer;margin-top:6px}.next-btn,.submit-btn{background:var(--red);color:#fff;width:100%}.next-btn:hover,.submit-btn:hover{background:var(--red-dark)}.back-btn{background:transparent;color:var(--muted);border:1px solid var(--border)}.back-btn:hover{color:var(--navy);border-color:var(--navy)}.form-step-actions{display:flex;gap:10px;align-items:stretch;margin-top:6px}.form-step-actions .submit-btn{flex:1}.hc-note{margin:12px 0 0;font-family:var(--f-body);font-style:italic;font-size:13px;color:var(--muted);text-align:center}.hc-error{margin-top:14px;padding:10px 12px;background:#fdecea;color:#9a181c;border-radius:3px;font-size:13px}.form-progress{margin-bottom:18px}.form-progress-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:600}.form-progress-hint{color:var(--red)}.form-progress-bar{height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.form-progress-fill{height:100%;background:var(--red);width:50%;transition:width .25s}.form-step[hidden]{display:none}.form-step{display:block}._gotcha{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0}.proof-bar{background:var(--navy);color:#fff;padding:32px var(--pad-x);display:grid;grid-template-columns:repeat(4,auto) 1fr auto;gap:28px;align-items:center}.ps{display:flex;flex-direction:column;align-items:center;text-align:center}.ps-num{font-family:var(--f-display);font-size:36px;font-weight:700;color:var(--red-light);line-height:1}.ps-label{font-family:var(--f-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.88);margin-top:6px}.pdiv{width:1px;height:50px;background:rgba(255,255,255,.12)}.pq{padding:0 12px}.pq-stars{color:#ffb547;font-size:16px;letter-spacing:2px;margin-bottom:6px}.pq-text{font-family:var(--f-body);font-style:italic;font-size:15px;color:rgba(255,255,255,.92);margin:0 0 6px;line-height:1.5}.pq-name{font-family:var(--f-ui);font-size:12px;color:rgba(255,255,255,.82);letter-spacing:.5px}.pb-logos{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.pb-logo{font-family:var(--f-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.18);padding:6px 10px;border-radius:3px}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.svc-card{background:#fff;border:1px solid var(--border);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.svc-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(13,31,53,.12)}.svc-img{width:100%;height:180px;object-fit:cover}.svc-body{padding:22px;flex:1;display:flex;flex-direction:column}.svc-icon{width:42px;height:42px;background:rgba(var(--red-rgb),.10);border-radius:4px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--red)}.svc-icon svg{width:22px;height:22px;fill:currentColor}.svc-card h3{font-size:20px;margin:0 0 8px;color:var(--navy)}.svc-card p{font-size:14px;color:var(--muted);margin:0 0 12px;line-height:1.55}.svc-bullets{list-style:none;padding:0;margin:0 0 16px;font-family:var(--f-ui);font-size:14px}.svc-bullets li{padding:4px 0 4px 22px;position:relative;color:var(--text)}.svc-bullets li::before{content:"✓";position:absolute;left:0;top:4px;color:var(--red);font-weight:700}.svc-link{color:var(--red);font-family:var(--f-display);font-weight:600;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;margin-top:auto;padding:0;background:transparent}.svc-link:hover{color:var(--red-dark)}.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}.about-img{width:100%;height:100%;max-height:540px;object-fit:cover;border-radius:4px}.owner-block{display:flex;align-items:center;gap:16px;margin:18px 0;padding:16px 18px;background:var(--cream);border-left:4px solid var(--red);border-radius:0 4px 4px 0}.owner-ava{width:56px;height:56px;background:var(--navy);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;letter-spacing:1px;font-size:16px}.owner-name{font-family:var(--f-display);font-weight:600;color:var(--navy);font-size:16px}.owner-title{font-family:var(--f-ui);font-size:13px;color:var(--muted)}.owner-since{font-family:var(--f-ui);font-size:12px;color:var(--muted-light);margin-top:2px}.about-body{font-size:16px;color:var(--text);margin:0 0 14px}.cred-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.cred-item{background:#fff;border:1px solid var(--border);padding:12px 14px;border-radius:4px}.cred-label{font-family:var(--f-display);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.cred-val{font-family:var(--f-display);font-weight:600;color:var(--navy);font-size:15px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}.stat-box{background:var(--cream-warm);border:1px solid var(--border-light);border-radius:4px;padding:14px 12px;text-align:center}.stat-num{display:block;font-family:var(--f-display);font-size:24px;font-weight:700;color:var(--red)}.stat-label{display:block;font-family:var(--f-display);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:4px}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.why-item{display:flex;gap:14px;align-items:flex-start}.why-check{width:32px;height:32px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.why-check svg{width:14px;height:14px}.why-title{font-family:var(--f-display);font-weight:600;font-size:16px;color:#fff;margin-bottom:4px;letter-spacing:.5px}.why-desc{font-family:var(--f-body);font-size:14px;color:rgba(255,255,255,.92);line-height:1.55}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;margin-top:36px}.process-grid::before{content:"";position:absolute;top:28px;left:12%;right:12%;height:2px;background:rgba(255,255,255,.12);z-index:0}.proc-step{position:relative;z-index:1;text-align:center}.proc-circle{width:56px;height:56px;border-radius:50%;background:var(--navy-mid);border:2px solid var(--red);margin:0 auto 12px;display:flex;align-items:center;justify-content:center}.proc-num{font-family:var(--f-display);font-weight:700;font-size:18px;color:var(--red-light);letter-spacing:1px}.proc-title{font-family:var(--f-display);font-weight:600;font-size:15px;color:#fff;letter-spacing:.5px;margin-bottom:6px}.proc-desc{font-family:var(--f-body);font-size:13px;color:rgba(255,255,255,.88);line-height:1.5}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery-grid figure{margin:0;position:relative;overflow:hidden;border-radius:4px;aspect-ratio:4/3;background:var(--cream)}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-grid figure:hover img{transform:scale(1.04)}.gallery-grid figcaption{position:absolute;inset:auto 0 0 0;background:linear-gradient(to top,rgba(13,31,53,.85),transparent);color:#fff;font-family:var(--f-body);font-style:italic;font-size:13px;padding:28px 12px 10px}.gallery-cta{text-align:center;margin-top:26px}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.rev-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:26px 22px 20px;position:relative}.rev-mark{position:absolute;top:8px;right:16px;font-family:var(--f-body);font-size:64px;color:var(--red);opacity:.12;line-height:1}.rev-stars{color:#ffb547;font-size:16px;letter-spacing:2px;margin-bottom:10px}.rev-text{font-family:var(--f-body);font-style:italic;color:var(--text);font-size:15px;margin:0 0 18px;line-height:1.6}.rev-bottom{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border-light);padding-top:14px}.rev-ava{width:38px;height:38px;background:var(--navy);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;font-size:13px;flex-shrink:0}.rev-name{font-family:var(--f-display);font-weight:600;color:var(--navy);font-size:14px;letter-spacing:.3px}.rev-service{font-family:var(--f-ui);font-size:12px;color:var(--muted)}.rev-src{margin-left:auto;font-family:var(--f-display);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted-light)}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}.faq-item{border-top:1px solid var(--border);padding:18px 0}.faq-item:last-child{border-bottom:1px solid var(--border)}.faq-q{font-family:var(--f-display);font-weight:600;color:var(--navy);font-size:17px;margin:0 0 8px;letter-spacing:.3px}.faq-a{font-family:var(--f-body);color:var(--text);font-size:15px;margin:0;line-height:1.65}.faq-block{background:#fff;padding:0}.faq-block h3{font-size:22px;margin-bottom:10px}.faq-q-block{padding:16px 0;border-top:1px solid var(--border)}.faq-q-block:last-child{border-bottom:1px solid var(--border)}.faq-q-block h4{margin:0 0 6px;font-family:var(--f-display);font-weight:600;color:var(--navy);font-size:16px}.faq-q-block p{margin:0;font-family:var(--f-body);font-size:15px;color:var(--text)}.area-intro{max-width:760px;margin:0 0 32px;color:rgba(255,255,255,.95);font-family:var(--f-body);font-size:16px}.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.area-card{background:var(--navy-mid);border:1px solid rgba(255,255,255,.08);border-top:3px solid var(--red);border-radius:4px;padding:20px 18px}.area-card h4{color:#fff;font-size:16px;margin:0 0 10px;letter-spacing:.5px}.area-card ul{list-style:none;padding:0;margin:0;font-family:var(--f-ui);font-size:13px;color:rgba(255,255,255,.92);columns:1}.area-card li{padding:3px 0}.location-map{max-width:1200px;margin:36px auto 0;border-radius:4px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);background:#122844}.location-map iframe{display:block;width:100%;height:300px;border:0}.location-map-caption{font-family:var(--f-ui);font-size:13px;color:rgba(255,255,255,.88);text-align:center;padding:10px 14px;background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.06)}.location-map-caption strong{color:#fff}.section-alt .location-map{background:#fff;box-shadow:0 6px 20px rgba(13,31,53,.10)}.section-alt .location-map-caption{background:#fff;color:var(--muted);border-top-color:var(--border-light)}.section-alt .location-map-caption strong{color:var(--navy)}.section .location-map{background:#fff;box-shadow:0 6px 20px rgba(13,31,53,.10)}.section .location-map-caption{background:var(--cream-warm);color:var(--muted);border-top-color:var(--border-light)}.section .location-map-caption strong{color:var(--navy)}@media (max-width:768px){.location-map iframe{height:240px}}.cta-banner{background:var(--red);color:#fff;padding:44px var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:32px}.cta-banner .cb-title{font-family:var(--f-display);font-weight:700;font-size:clamp(24px,3vw,32px);letter-spacing:.3px;margin-bottom:6px}.cb-sub{font-family:var(--f-body);font-size:16px;margin:0;color:rgba(255,255,255,.92)}.cb-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.cb-phone{font-family:var(--f-display);font-weight:700;color:#fff;font-size:28px;letter-spacing:.5px;line-height:1}.cb-phone:hover{color:rgba(255,255,255,.95)}.cb-phone-sub{font-family:var(--f-body);font-size:12px;color:rgba(255,255,255,.95);margin-bottom:8px}.cb-btn{background:var(--navy);color:#fff;padding:12px 22px;font-size:12px}.cb-btn:hover{background:var(--navy-deep)}footer{background:#080a0d;color:rgba(255,255,255,.9);padding:56px var(--pad-x) 24px;font-family:var(--f-ui);font-size:14px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;max-width:1280px;margin:0 auto}.fg-col h4{font-family:var(--f-display);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#fff;margin:0 0 14px}.footer-logo{width:240px;height:auto;margin-bottom:16px;background:rgba(255,255,255,.04);padding:8px;border-radius:3px}.fg-nap strong{color:#fff}.fg-nap a{color:rgba(255,255,255,.92)}.fg-nap a:hover{color:var(--red-light)}.fg-lic{font-size:12px;color:rgba(255,255,255,.8);margin-top:14px;line-height:1.55}.fg-col ul{list-style:none;padding:0;margin:0}.fg-col ul li{padding:4px 0}.fg-col a{color:rgba(255,255,255,.9)}.fg-col a:hover{color:var(--red-light)}.footer-bottom{max-width:1280px;margin:36px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:rgba(255,255,255,.8);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.footer-bottom a{color:rgba(255,255,255,.88)}.page-header{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);color:#fff;padding:56px var(--pad-x) 44px}.ph-kicker{font-family:var(--f-display);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red-light);margin-bottom:10px}.ph-title{color:#fff;margin:0 0 12px;font-size:clamp(30px,4vw,44px)}.ph-sub{font-family:var(--f-body);font-size:17px;color:rgba(255,255,255,.82);max-width:720px;margin:0 0 16px}.breadcrumbs{font-family:var(--f-ui);font-size:13px;color:rgba(255,255,255,.82)}.breadcrumbs a{color:rgba(255,255,255,.82)}.breadcrumbs a:hover{color:#fff}.breadcrumbs span{padding:0 8px}.svc-detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;align-items:start}.svc-detail-body p{font-size:16px}.svc-detail-body h2{margin-top:32px}.svc-detail-body ul{padding-left:0;list-style:none;margin:0 0 18px}.svc-detail-body ul li{position:relative;padding:4px 0 4px 26px;font-family:var(--f-body);font-size:15px;color:var(--text)}.svc-detail-body ul li::before{content:"✓";position:absolute;left:0;top:4px;color:var(--red);font-weight:700}.svc-detail-img{width:100%;height:auto;border-radius:4px;margin:0 0 22px}.svc-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 28px}.svc-feature-card{background:var(--cream);border-left:3px solid var(--red);padding:16px 18px;border-radius:0 4px 4px 0}.svc-feature-card h4{margin:0 0 6px;font-size:15px;color:var(--navy);letter-spacing:.3px}.svc-feature-card p{margin:0;font-size:14px;color:var(--muted)}.svc-feature-grid--openers{grid-template-columns:repeat(2,1fr)}.svc-feature-card--opener{background:#fff;border:1px solid var(--border);border-left:3px solid var(--red);padding:0;border-radius:0 4px 4px 0;overflow:hidden;display:flex;flex-direction:column}.svc-feature-card--opener img{display:block;width:100%;height:180px;object-fit:cover;object-position:center;background:#f4f1e8}.svc-feature-card--opener .svc-feature-body{padding:14px 18px 18px}.svc-feature-card--opener .svc-feature-tier{font-family:var(--f-display);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--red);margin-bottom:4px}.svc-feature-card--opener h4{margin:0 0 8px;font-size:16px;color:var(--navy);letter-spacing:.3px}.svc-feature-card--opener p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.55}.svc-feature-brochure{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--f-display);font-size:11.5px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--red);text-decoration:none;border-bottom:1px solid rgba(var(--red-rgb),.35);padding-bottom:2px;transition:color .15s,border-color .15s}.svc-feature-brochure:hover{color:var(--red-dark);border-bottom-color:var(--red-dark)}.svc-feature-brochure svg{flex-shrink:0;opacity:.85}@media (max-width:768px){.svc-feature-grid--openers{grid-template-columns:1fr}.svc-feature-card--opener img{height:200px}}.pricing-table{border:1px solid var(--border);border-radius:4px;overflow:hidden;margin:14px 0 24px}.pricing-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-light);font-family:var(--f-ui);font-size:14px}.pricing-row:last-child{border-bottom:0}.pricing-row.header{background:var(--cream);font-family:var(--f-display);text-transform:uppercase;letter-spacing:1px;font-size:12px;color:var(--muted);font-weight:600}.pr-size strong{color:var(--navy)}.pr-price{color:var(--red);font-weight:600}.svc-side-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:24px 22px;position:sticky;top:100px}.svc-side-card--form h3{font-size:22px;margin:0 0 6px}.svc-side-card--form .hf-sub{font-family:var(--f-body);font-style:italic;font-size:14px;color:var(--muted);margin:0 0 16px}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.value-card{background:#fff;border:1px solid var(--border);border-top:4px solid var(--red);border-radius:0 0 4px 4px;padding:24px 22px}.value-icon{width:44px;height:44px;background:rgba(var(--red-rgb),.10);color:var(--red);border-radius:4px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.value-icon svg{width:22px;height:22px;fill:currentColor}.value-card h3{margin:0 0 8px;font-size:18px;color:var(--navy)}.value-card p{margin:0;font-size:14px;color:var(--muted);line-height:1.6}.cred-strip{background:var(--navy);color:#fff;padding:36px var(--pad-x);display:grid;grid-template-columns:repeat(4,1fr);gap:18px;border-top:3px solid var(--red);border-bottom:3px solid var(--red)}.cs-item{text-align:center}.cs-num{display:block;font-family:var(--f-display);font-size:36px;font-weight:700;color:var(--red-light);line-height:1}.cs-label{display:block;font-family:var(--f-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.88);margin-top:8px}.contact-quick-row{background:var(--cream);padding:28px var(--pad-x);display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-bottom:1px solid var(--border)}.cqr-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:4px;padding:16px 18px}.cqr-icon{width:44px;height:44px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cqr-icon svg{width:20px;height:20px;fill:currentColor}.cqr-label{font-family:var(--f-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.cqr-value{font-family:var(--f-display);font-size:17px;color:var(--navy);font-weight:600}.cqr-value a{color:var(--navy)}.cqr-value a:hover{color:var(--red)}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;align-items:start}.contact-form-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:28px}.contact-form-card h2{margin-top:0}.contact-info-card{background:var(--navy);color:#fff;border-radius:4px;padding:26px 24px}.contact-info-card h3{color:#fff;margin:0 0 16px;font-size:20px}.cic-row{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid rgba(255,255,255,.10)}.cic-row:first-of-type{border-top:0;padding-top:4px}.cic-icon{width:36px;height:36px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.cic-icon svg{width:16px;height:16px;fill:currentColor}.cic-label{font-family:var(--f-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--red-light);margin-bottom:4px}.cic-value{font-family:var(--f-body);font-size:15px;color:rgba(255,255,255,.92);line-height:1.5}.cic-value a{color:rgba(255,255,255,.92);border-bottom:1px dotted rgba(255,255,255,.3)}.cic-value a:hover{color:var(--red-light);border-bottom-color:var(--red-light)}.location-map.map-tall iframe{height:420px}@media (max-width:768px){.location-map.map-tall iframe{height:280px}}.inline-form-section{background:var(--cream);padding:var(--pad-y) var(--pad-x)}.inline-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;max-width:1100px;margin:0 auto}.inline-form-grid .lead-form-wrap{background:#fff;border:1px solid var(--border);border-radius:4px;padding:26px 24px}.industry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.industry-card{background:var(--cream-warm);border:1px solid var(--border-light);border-left:3px solid var(--red);border-radius:0 4px 4px 0;padding:14px 16px;font-family:var(--f-ui)}.industry-card strong{display:block;font-family:var(--f-display);font-size:14px;color:var(--navy);letter-spacing:.3px;margin-bottom:2px}.industry-card span{font-size:13px;color:var(--muted)}@media (max-width:1100px){.services-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}.reviews-grid,.why-grid,.area-grid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:repeat(2,1fr)}.process-grid::before{display:none}}@media (max-width:1024px){:root{--pad-x:32px;--pad-y:56px}.hero{padding:48px var(--pad-x);min-height:560px}.hero-content{max-width:100%}.hero-bg img{object-position:75% center}.about-grid{grid-template-columns:1fr;gap:32px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.anchor-strip{display:none}.nav-links,.nav-right{display:none}.mobile-nav-toggle{display:flex}.proof-bar{grid-template-columns:1fr 1fr;gap:18px;padding:22px 24px}.proof-bar .pdiv,.pb-logos{display:none}.proof-bar .pq{grid-column:1 / -1;padding:0}.cta-banner{flex-direction:column;align-items:flex-start}.cb-actions{align-items:flex-start;text-align:left}.svc-detail-grid{grid-template-columns:1fr;gap:28px}.svc-side-card{position:static}.contact-grid{grid-template-columns:1fr;gap:28px}.contact-quick-row{grid-template-columns:1fr;gap:12px}.values-grid{grid-template-columns:1fr 1fr}.inline-form-grid{grid-template-columns:1fr;gap:24px}.industry-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){:root{--pad-x:20px;--pad-y:44px}.services-grid,.gallery-grid,.reviews-grid,.why-grid,.area-grid,.faq-grid{grid-template-columns:1fr;gap:18px}.stat-row,.cred-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr}.hero{padding:36px 20px;min-height:500px}.hero h1{font-size:36px}.hero-form{padding:22px}.proof-bar{grid-template-columns:1fr 1fr;padding:22px 18px}.ps-num{font-size:26px}.nav-cta{display:none}.logo-img{height:44px}.cb-phone{font-size:22px}.values-grid{grid-template-columns:1fr}.cred-strip{grid-template-columns:1fr 1fr;padding:24px 18px}.cs-num{font-size:28px}.svc-feature-grid{grid-template-columns:1fr}.industry-grid{grid-template-columns:1fr}}
/* COVERAGE MAP (inline SVG) */
.coverage-map{width:100%;background:var(--cream,#f5f2ec)}
.coverage-map-inner{width:100%;max-width:1280px;margin:0 auto;padding:8px 16px 0}
.coverage-svg{width:100%;height:auto;display:block}
.coverage-svg .base{fill:#e3e7ee;stroke:#fff;stroke-width:.6}
.coverage-svg .served{fill:#0d1f35;stroke:#fff;stroke-width:.9;transition:fill .15s}
.coverage-svg .served.linked{fill:#1a3f6f;cursor:pointer}
.coverage-svg a:hover .served.linked{fill:#c41e23}
.coverage-svg .cty-label{fill:#fff;font-family:'Oswald',sans-serif;font-size:9px;text-anchor:middle;font-weight:600;pointer-events:none}
.coverage-svg .office-dot{fill:#c41e23;stroke:#fff;stroke-width:1.6}
.coverage-svg .office-name{fill:#f5c518;font-family:'Oswald',sans-serif;font-size:12px;font-weight:700;pointer-events:none;paint-order:stroke;stroke:#061222;stroke-width:2.5px;stroke-linejoin:round}
.coverage-map-caption{text-align:center;font-family:'Oswald',sans-serif;font-size:13px;color:var(--muted,#5a6070);padding:12px 16px 16px;background:var(--cream,#f5f2ec)}
.coverage-map-caption strong{color:var(--navy,#011668)}
@media(max-width:600px){.coverage-svg .cty-label{font-size:7px}.coverage-svg .office-name{font-size:9px}}

/* Client override: marquee blue bg, black text */
.top-bar{background:var(--red)!important;color:#0a0f16!important}
.top-bar::before{background:linear-gradient(90deg,var(--red),rgba(20,151,235,0))!important}
.top-bar::after{background:linear-gradient(270deg,var(--red),rgba(20,151,235,0))!important}
.tb-item{color:#0a0f16!important}.tb-item strong{color:#000!important}.tb-item-dot{background:#0a0f16!important}.tb-item-star{color:#0a0f16!important}
/* coverage map brand */
.coverage-svg .served.linked{fill:#4B9CD3}
.coverage-svg a:hover .served.linked{fill:#3d84b8}
.coverage-svg .office-dot{fill:#4B9CD3}
.coverage-svg .office-name{fill:#fff;stroke:#0a0f16}

/* Footer off-black to match logo */
footer,.footer-bottom{background:#080a0d}
.footer-logo{background:transparent}

/* ============================================================
   REV 8: hero form card, county grid, county pages
   ============================================================ */

/* Hero with form: two-column split */
.hero--form .hero-inner--split{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:center;width:100%}
.hero-form-card{background:rgba(255,255,255,.98);border-radius:12px;padding:26px 26px 24px;box-shadow:0 24px 60px rgba(0,0,0,.35);backdrop-filter:blur(2px)}
.hero-form-card .hfc-head{margin-bottom:14px}
.hero-form-card .hfc-head h2{font-family:var(--f-display);color:var(--navy);font-size:1.5rem;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 4px}
.hero-form-card .hfc-head p{color:var(--muted);font-size:.9rem;margin:0;font-family:var(--f-ui)}
.hero-form-card .lead-form label{color:var(--navy)}
.hero-form-card .lead-form input,.hero-form-card .lead-form select{background:#fff}
@media(max-width:960px){
  .hero--form .hero-inner--split{grid-template-columns:1fr;gap:28px}
  .hero-form-card{max-width:520px}
}

/* County grid (home) */
.county-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:8px}
.county-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s}
.county-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(10,15,22,.14)}
.cc-img{aspect-ratio:16/10;overflow:hidden;background:var(--cream)}
.cc-img img{width:100%;height:100%;object-fit:cover;display:block}
.cc-body{padding:20px 22px 24px}
.cc-eyebrow{font-family:var(--f-display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.cc-name{font-family:var(--f-display);font-size:1.35rem;text-transform:uppercase;letter-spacing:-.01em;color:var(--navy);margin:0 0 10px}
.cc-towns{color:var(--muted);font-size:.95rem;line-height:1.55;margin:0 0 16px;font-family:var(--f-body)}
.cc-link{font-family:var(--f-display);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
@media(max-width:900px){.county-grid{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(max-width:560px){.county-grid{grid-template-columns:1fr}}

/* County detail page */
.county-detail{display:grid;grid-template-columns:1fr 360px;gap:44px;align-items:start}
.county-detail-main h2{font-family:var(--f-display);color:var(--navy);text-transform:uppercase;font-size:1.5rem;margin:32px 0 14px}
.county-hero-img{width:100%;border-radius:10px;margin-bottom:22px;height:auto}
.town-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px}
.town-list li{padding:7px 0 7px 24px;position:relative;font-family:var(--f-ui);border-bottom:1px solid var(--border)}
.town-list li::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--red)}
.county-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.county-svc{display:block;padding:12px 16px;background:var(--cream);border:1px solid var(--border);border-radius:6px;text-decoration:none;color:var(--navy);font-family:var(--f-display);font-weight:600;font-size:.95rem;transition:background .15s}
.county-svc:hover{background:var(--red);color:#fff;border-color:var(--red)}
.county-side .svc-side-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:22px}
@media(max-width:900px){.county-detail{grid-template-columns:1fr;gap:32px}.town-list{grid-template-columns:1fr}.county-svc-grid{grid-template-columns:1fr}}

/* ============================================================
   REV 10: Oversized logo that overlaps up into the marquee
   ============================================================ */
.main-nav{overflow:visible}
.logo-wrap{position:relative;z-index:120;display:flex;align-items:center;
  /* pull the logo up so it overlaps the ticker above */
  margin-top:-46px;margin-bottom:-22px}
.logo-img{
  height:150px;width:auto;             /* ~3x the old 54px */
  position:relative;z-index:121;
  /* white glow so the dark logo reads against the blue marquee */
  filter:
    drop-shadow(0 0 6px rgba(255,255,255,.95))
    drop-shadow(0 0 14px rgba(255,255,255,.85))
    drop-shadow(0 0 26px rgba(255,255,255,.6))
    drop-shadow(0 3px 10px rgba(0,0,0,.28));
}
/* keep the nav from growing too tall now that the logo is bigger */
.main-nav{padding-top:10px;padding-bottom:10px}

@media(max-width:1100px){
  .logo-img{height:112px}
  .logo-wrap{margin-top:-34px;margin-bottom:-16px}
}
@media(max-width:760px){
  .logo-img{height:86px}
  .logo-wrap{margin-top:-24px;margin-bottom:-12px}
}
@media(max-width:480px){
  .logo-img{height:68px}
  .logo-wrap{margin-top:-16px;margin-bottom:-8px}
}

/* Harden logo overlap (higher specificity than nav.main-nav base rules) */
nav.main-nav{overflow:visible;padding-top:10px;padding-bottom:10px}
nav.main-nav .logo-wrap{position:relative;z-index:120;margin-top:-46px;margin-bottom:-22px}
nav.main-nav .logo-img{
  height:150px;width:auto;position:relative;z-index:121;
  filter:
    drop-shadow(0 0 6px rgba(255,255,255,.95))
    drop-shadow(0 0 14px rgba(255,255,255,.85))
    drop-shadow(0 0 26px rgba(255,255,255,.6))
    drop-shadow(0 3px 10px rgba(0,0,0,.28));
}
/* Marquee keeps overflow:hidden (needed for scroll + edge fade).
   The logo sits in the nav below and paints UP over the ticker via z-index,
   so no overflow change is needed on .top-bar. */
.top-bar{position:relative;z-index:1}

@media(max-width:1100px){
  nav.main-nav .logo-img{height:112px}
  nav.main-nav .logo-wrap{margin-top:-34px;margin-bottom:-16px}
}
@media(max-width:768px){
  nav.main-nav .logo-img{height:86px}
  nav.main-nav .logo-wrap{margin-top:-24px;margin-bottom:-12px}
}
@media(max-width:480px){
  nav.main-nav .logo-img{height:68px}
  nav.main-nav .logo-wrap{margin-top:-16px;margin-bottom:-8px}
}

/* ============================================================
   REV 11: MOBILE logo fills the marquee + navbar
   ============================================================ */
@media(max-width:768px){
  nav.main-nav{padding-top:8px;padding-bottom:8px;min-height:96px}
  nav.main-nav .logo-wrap{
    margin-top:-52px;      /* rise up through the full ticker */
    margin-bottom:-24px;
  }
  nav.main-nav .logo-img{
    height:168px;          /* was 86px — now spans ticker + navbar */
    filter:
      drop-shadow(0 0 7px rgba(255,255,255,.97))
      drop-shadow(0 0 16px rgba(255,255,255,.9))
      drop-shadow(0 0 30px rgba(255,255,255,.65))
      drop-shadow(0 3px 12px rgba(0,0,0,.3));
  }
  /* keep the hamburger clear of the bigger logo */
  .mobile-nav-toggle{position:relative;z-index:130}
}
@media(max-width:480px){
  nav.main-nav{min-height:88px}
  nav.main-nav .logo-wrap{margin-top:-46px;margin-bottom:-20px}
  nav.main-nav .logo-img{height:150px}
}
@media(max-width:380px){
  nav.main-nav .logo-wrap{margin-top:-42px;margin-bottom:-18px}
  nav.main-nav .logo-img{height:132px}
}

/* REV 12 item 1: full-width region map on home */
.region-map-full{line-height:0;margin-top:24px;margin-left:calc(var(--pad-x) * -1);margin-right:calc(var(--pad-x) * -1)}
.region-map-full iframe{width:100%;height:520px;border:0;display:block}
@media(max-width:768px){.region-map-full iframe{height:400px}}

/* REV 12 item 2: About "Why Choose Us" = clean 2x2 (4 cards) */
.values-grid{grid-template-columns:1fr 1fr;max-width:900px}
@media(max-width:640px){.values-grid{grid-template-columns:1fr}}

/* ============================================================
   REV 12 item 6: service-page hero with compact form (black hero)
   ============================================================ */
.page-header--form{padding-bottom:44px}
.page-header--form .ph-split{
  display:grid;grid-template-columns:1fr 360px;gap:44px;align-items:center;
  max-width:var(--maxw);margin:0 auto;
}
.page-header--form .ph-copy{min-width:0}
.page-header--form .ph-copy .breadcrumbs{margin-bottom:12px}
/* compact form card sitting in the black hero */
.ph-form-card{
  background:rgba(255,255,255,.97);border-radius:12px;padding:20px 20px 18px;
  box-shadow:0 20px 50px rgba(0,0,0,.4);
}
.ph-form-head{margin-bottom:12px}
.ph-form-head h2{font-family:var(--f-display);color:var(--navy);font-size:1.3rem;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 2px}
.ph-form-head p{color:var(--muted);font-size:.85rem;margin:0;font-family:var(--f-ui)}
/* size the form down: tighter fields, smaller labels */
.ph-form-card .lead-form label{font-size:.8rem;margin-bottom:9px;color:var(--navy)}
.ph-form-card .lead-form input,
.ph-form-card .lead-form select{padding:9px 11px;font-size:.9rem;background:#fff}
.ph-form-card .lead-form .submit-btn{padding:11px;font-size:.92rem;margin-top:2px}
@media(max-width:860px){
  .page-header--form .ph-split{grid-template-columns:1fr;gap:26px}
  .ph-form-card{max-width:460px}
}

/* REV 12 item 4: full work gallery on projects page */
.gallery-grid--all{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.gallery-grid--all figure{margin:0;border-radius:8px;overflow:hidden;position:relative;background:var(--cream)}
.gallery-grid--all img{width:100%;height:240px;object-fit:cover;display:block;transition:transform .3s}
.gallery-grid--all figure:hover img{transform:scale(1.05)}
.gallery-grid--all figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 14px 10px;color:#fff;font-family:var(--f-display);font-size:.85rem;font-weight:600;background:linear-gradient(transparent,rgba(10,15,22,.85))}
@media(max-width:860px){.gallery-grid--all{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.gallery-grid--all{grid-template-columns:1fr}.gallery-grid--all img{height:220px}}

/* REV 12 item 5: contact GBP map full-width at bottom */
.contact-map-full{margin-top:32px;margin-bottom:calc(var(--pad-y) * -1);margin-left:calc(var(--pad-x) * -1);margin-right:calc(var(--pad-x) * -1);overflow:hidden;line-height:0}
.contact-map-full iframe{width:100%;height:480px;border:0;display:block}
.contact-map-full .location-map-caption{padding:12px 16px;background:var(--cream);font-size:.9rem;text-align:center;line-height:1.4}
@media(max-width:768px){.contact-map-full iframe{height:360px}}

/* ===== Rev 13: service hero image, home 8-grid, other-services grid ===== */
.page-header--hero-img{position:relative;padding:0;overflow:hidden;isolation:isolate;min-height:440px;display:flex;align-items:center}
.page-header--hero-img .ph-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.page-header--hero-img .ph-bg img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.page-header--hero-img .ph-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,18,34,.92) 0%,rgba(13,31,53,.82) 34%,rgba(18,40,68,.5) 62%,rgba(18,40,68,.22) 100%)}
.page-header--hero-img .ph-split{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr .95fr;gap:40px;align-items:center;max-width:1280px;width:100%;margin:0 auto;padding:52px var(--pad-x)}
.page-header--hero-img .ph-copy{min-width:0}
.page-header--hero-img .ph-copy .breadcrumbs{margin-bottom:12px}
.page-header--hero-img .ph-title{text-shadow:0 2px 16px rgba(0,0,0,.45)}
.page-header--hero-img .ph-sub{color:rgba(255,255,255,.92);text-shadow:0 1px 8px rgba(0,0,0,.4)}
.page-header--hero-img .ph-form-card{background:#fff;border-radius:6px;padding:22px 22px 24px;box-shadow:0 18px 60px rgba(0,0,0,.35);max-width:400px;justify-self:end;width:100%}
.page-header--hero-img .ph-form-head{margin-bottom:14px}
.page-header--hero-img .ph-form-head h2{font-size:20px;margin:0;color:var(--navy);letter-spacing:.3px}
.page-header--hero-img .ph-form-card .lead-form label{font-size:.78rem;margin-bottom:8px;color:var(--navy)}
.page-header--hero-img .ph-form-card .lead-form input,.page-header--hero-img .ph-form-card .lead-form select{padding:9px 11px;font-size:.9rem;background:#fff;margin-top:5px}
.page-header--hero-img .ph-form-card .lead-form .submit-btn{padding:11px;font-size:.9rem;margin-top:2px}
@media (max-width:900px){.page-header--hero-img .ph-split{grid-template-columns:1fr;gap:24px;padding:40px var(--pad-x)}.page-header--hero-img .ph-form-card{max-width:460px;justify-self:stretch}.page-header--hero-img .ph-bg::after{background:linear-gradient(180deg,rgba(6,18,34,.86) 0%,rgba(13,31,53,.78) 100%)}}
/* single-column service detail body (sidebar removed) */
.svc-detail-single{max-width:900px}
/* other-services photo card grid */
.other-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.other-svc-card{background:#fff;border:1px solid var(--border);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.other-svc-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(13,31,53,.12)}
.other-svc-card img{width:100%;height:170px;object-fit:cover;background:var(--cream)}
.other-svc-body{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column}
.other-svc-tier{font-family:var(--f-display);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--red);margin-bottom:4px}
.other-svc-body h3{font-size:18px;margin:0 0 10px;color:var(--navy)}
.other-svc-link{color:var(--red);font-family:var(--f-display);font-weight:600;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;margin-top:auto}
.other-svc-card:hover .other-svc-link{color:var(--red-dark)}
@media (max-width:1100px){.other-svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.other-svc-grid{grid-template-columns:1fr}}

/* ===== Rev 14: proof bar rebuilt (shorter, aligned) ===== */
.proof-bar{background:var(--navy);color:#fff;padding:22px var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.proof-bar .pb-stats{display:flex;align-items:center;gap:22px;flex:0 0 auto}
.proof-bar .ps{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:74px}
.proof-bar .ps-num{font-family:var(--f-display);font-size:30px;font-weight:700;color:var(--red-light);line-height:1}
.proof-bar .ps-label{font-family:var(--f-display);font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.85);margin-top:6px;white-space:nowrap}
.proof-bar .pdiv{width:1px;height:40px;background:rgba(255,255,255,.14)}
.proof-bar .pb-quote{flex:1 1 320px;min-width:260px;padding:0 8px;border-left:1px solid rgba(255,255,255,.12);padding-left:28px}
.proof-bar .pq-stars{color:#ffb547;font-size:14px;letter-spacing:2px;margin-bottom:5px}
.proof-bar .pq-text{font-family:var(--f-body);font-style:italic;font-size:14px;color:rgba(255,255,255,.9);margin:0 0 5px;line-height:1.45}
.proof-bar .pq-name{font-family:var(--f-ui);font-size:11.5px;color:rgba(255,255,255,.72);letter-spacing:.4px}
.proof-bar .pb-logos{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex:0 0 auto}
.proof-bar .pb-logo{font-family:var(--f-display);font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.18);padding:5px 10px;border-radius:3px;white-space:nowrap}
@media (max-width:1100px){.proof-bar{gap:20px}.proof-bar .pb-logos{display:none}.proof-bar .pb-quote{flex-basis:280px}}
@media (max-width:820px){.proof-bar{justify-content:center}.proof-bar .pb-quote{flex-basis:100%;border-left:0;border-top:1px solid rgba(255,255,255,.12);padding-left:0;padding-top:14px;margin-top:4px;text-align:center}}
@media (max-width:560px){.proof-bar .pb-stats{gap:12px;flex-wrap:wrap;justify-content:center}.proof-bar .pdiv{display:none}.proof-bar .ps{min-width:64px}.proof-bar .ps-num{font-size:24px}}
/* long-form service content */
.svc-longform{max-width:820px}
.svc-longform h2{margin:30px 0 12px;font-size:clamp(22px,2.6vw,28px)}
.svc-longform p{font-family:var(--f-body);font-size:16px;line-height:1.7;color:var(--text);margin:0 0 15px}
.svc-longform .sk{margin-bottom:10px}

/* ===== Rev 17: owner photo + owner feature section ===== */
.owner-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:center 22%;flex:0 0 auto;border:2px solid var(--red-light)}
.owner-feature{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:44px;align-items:start}
.owner-feature-media{position:relative;border-radius:6px;overflow:hidden;box-shadow:0 18px 50px rgba(13,31,53,.18)}
.owner-feature-media img{width:100%;height:100%;object-fit:cover;display:block}
.owner-feature-badge{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(8,12,18,0) 0%,rgba(8,12,18,.88) 55%);padding:34px 18px 16px;display:flex;flex-direction:column}
.owner-feature-badge strong{font-family:var(--f-display);font-size:19px;color:#fff;letter-spacing:.4px}
.owner-feature-badge span{font-family:var(--f-ui);font-size:12.5px;color:var(--red-light);letter-spacing:1.2px;text-transform:uppercase;margin-top:2px}
.owner-feature-copy .sk{margin-bottom:8px}
.owner-quote{font-family:var(--f-body);font-size:16.5px;line-height:1.72;color:var(--text);margin:0 0 15px;font-style:italic}
.owner-sig{font-family:var(--f-display);font-size:14px;letter-spacing:.6px;color:var(--navy);margin-top:4px}
.owner-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.owner-chip{font-family:var(--f-display);font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:var(--navy);background:var(--cream);border:1px solid var(--border);border-radius:3px;padding:7px 12px}
@media (max-width:900px){.owner-feature{grid-template-columns:1fr;gap:26px}.owner-feature-media{max-width:420px}}

/* ===== Rev 18: compact hero forms, story media stack, google rating card ===== */
/* --- 1. Hero forms sized down (home + service pages) --- */
.hero--form .hero-inner--split{grid-template-columns:1fr 360px;gap:40px}
.hero-form-card{max-width:360px;padding:20px 20px 18px;border-radius:8px}
.hero-form-card .hfc-head h2{font-size:19px;margin:0 0 2px}
.hero-form-card .hfc-head p{font-size:12.5px;margin:0 0 12px}
.hero-form-card .lead-form label{font-size:.72rem;margin-bottom:7px;letter-spacing:.4px}
.hero-form-card .lead-form input,.hero-form-card .lead-form select{padding:8px 10px;font-size:.88rem;margin-top:4px}
.hero-form-card .submit-btn{padding:10px;font-size:.86rem}
.page-header--hero-img .ph-split{grid-template-columns:1.55fr .8fr;gap:34px}
.page-header--hero-img .ph-form-card{max-width:340px;padding:18px 18px 16px}
.page-header--hero-img .ph-form-head h2{font-size:18px}
.page-header--hero-img .ph-form-card .lead-form label{font-size:.72rem;margin-bottom:7px}
.page-header--hero-img .ph-form-card .lead-form input,.page-header--hero-img .ph-form-card .lead-form select{padding:8px 10px;font-size:.88rem;margin-top:4px}
.page-header--hero-img .ph-form-card .submit-btn{padding:10px;font-size:.86rem}
@media (max-width:1100px){.hero--form .hero-inner--split{grid-template-columns:1fr 320px;gap:30px}.hero-form-card{max-width:320px}}
@media (max-width:900px){.hero--form .hero-inner--split{grid-template-columns:1fr}.hero-form-card{max-width:440px}.page-header--hero-img .ph-form-card{max-width:440px}}

/* --- 2/3. Our Story media column: tall stacked images --- */
.story-media{display:flex;flex-direction:column;gap:16px}
.story-fig{margin:0;position:relative;border-radius:5px;overflow:hidden;box-shadow:0 14px 40px rgba(13,31,53,.14)}
.story-fig img{width:100%;display:block;object-fit:cover}
.story-fig--main img{aspect-ratio:4/5;object-position:center 20%}
.story-fig:not(.story-fig--main) img{aspect-ratio:4/3}
.story-fig figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(8,12,18,0),rgba(8,12,18,.86) 60%);color:#fff;font-family:var(--f-ui);font-size:12.5px;letter-spacing:.3px;padding:26px 14px 11px}
@media (max-width:900px){.story-media{flex-direction:row;gap:14px}.story-fig{flex:1}}
@media (max-width:560px){.story-media{flex-direction:column}}

/* --- 4. Google rating card (replaces invented testimonials) --- */
.google-rating-card{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:6px;padding:30px 34px;box-shadow:0 10px 32px rgba(13,31,53,.07)}
.grc-score{display:flex;flex-direction:column;align-items:center;text-align:center;padding-right:34px;border-right:1px solid var(--border);min-width:150px}
.grc-num{font-family:var(--f-display);font-size:52px;font-weight:700;color:var(--navy);line-height:1}
.grc-stars{color:#f5b400;font-size:20px;letter-spacing:3px;margin-top:6px}
.grc-label{font-family:var(--f-display);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin-top:8px}
.grc-copy p{font-family:var(--f-body);font-size:16px;line-height:1.65;color:var(--text);margin:0 0 16px}
@media (max-width:760px){.google-rating-card{grid-template-columns:1fr;gap:22px;padding:26px}.grc-score{border-right:0;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:20px}}

/* --- 5. FAQ symmetry --- */
.faq-grid{align-items:start}
.faq-col{display:flex;flex-direction:column}
.faq-col .faq-item:last-child{border-bottom:0}

/* ===== Rev 19: two real Google review cards ===== */
.reviews-grid--two{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;max-width:940px;margin:0 auto}
.reviews-grid--two .rev-card{display:flex;flex-direction:column}
.reviews-grid--two .rev-text{flex:1}
.rev-meta{font-family:var(--f-ui);font-size:12px;color:var(--muted);margin:-4px 0 12px;letter-spacing:.2px}
.reviews-cta{text-align:center;margin-top:28px}
@media (max-width:760px){.reviews-grid--two{grid-template-columns:1fr;gap:20px}}

/* ===== Rev 20: rich nav dropdowns (Services + Reviews) ===== */
.nav-dropdown-toggle{display:inline-flex;align-items:center;gap:6px}
.dd-caret{font-size:10px;line-height:1;transition:transform .18s ease}
.nav-dropdown:hover .dd-caret,.nav-dropdown:focus-within .dd-caret{transform:rotate(180deg)}
.nav-dropdown:hover .nav-dropdown-toggle,.nav-dropdown:focus-within .nav-dropdown-toggle{color:var(--red)}
.ddm{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:10px;
  background:#fff;border:1px solid var(--border);border-top:3px solid var(--red);border-radius:10px;
  min-width:340px;padding:0;overflow:hidden;box-shadow:0 22px 54px rgba(13,31,53,.20);z-index:130}
.ddm--wide{min-width:660px}
.nav-dropdown:hover .ddm,.nav-dropdown:focus-within .ddm{display:block}
/* hover bridge so the menu doesn't close in the gap */
.nav-dropdown::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.ddm-head{background:linear-gradient(180deg,rgba(75,156,211,.16),rgba(75,156,211,.06));
  padding:16px 22px 14px;border-bottom:1px solid var(--border)}
.ddm-head-title{display:block;font-family:var(--f-display);font-size:15px;font-weight:700;
  letter-spacing:1.3px;text-transform:uppercase;color:var(--red-dark)}
.ddm-head-sub{display:inline-block;margin-top:4px;font-family:var(--f-ui);font-size:12.5px;
  letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-decoration:none;border:0}
.ddm-head-sub:hover{color:var(--red)}
.ddm-body{padding:10px}
.ddm-body--2col{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.ddm-item{display:flex;align-items:center;gap:14px;padding:11px 14px;border-radius:7px;
  text-decoration:none;border:0;transition:background .15s ease}
.ddm-item:hover{background:var(--cream)}
.ddm-ico{flex:0 0 auto;width:40px;height:40px;border-radius:9px;background:rgba(75,156,211,.14);
  color:var(--red);display:flex;align-items:center;justify-content:center}
.ddm-ico svg{width:19px;height:19px;fill:currentColor}
.ddm-item:hover .ddm-ico{background:rgba(75,156,211,.24)}
.ddm-txt{display:flex;flex-direction:column;min-width:0}
.ddm-txt strong{font-family:var(--f-display);font-size:14.5px;font-weight:600;letter-spacing:.6px;
  text-transform:uppercase;color:var(--navy);line-height:1.25}
.ddm-txt em{font-family:var(--f-ui);font-style:normal;font-size:12.5px;color:var(--muted);margin-top:2px}
.ddm-item:hover .ddm-txt strong{color:var(--red-dark)}
@media (max-width:1180px){.ddm--wide{min-width:520px}}
@media (max-width:1024px){.ddm,.ddm--wide{min-width:320px}.ddm-body--2col{grid-template-columns:1fr}}

/* ===== Rev 21: compact dropdowns + split sticky CTA bar ===== */
/* --- 1. Dropdowns sized down --- */
.ddm{min-width:290px;margin-top:8px;border-radius:8px;box-shadow:0 16px 40px rgba(13,31,53,.18)}
.ddm--wide{min-width:520px}
.ddm-head{padding:10px 16px 9px}
.ddm-head-title{font-size:12px;letter-spacing:1.1px}
.ddm-head-sub{margin-top:2px;font-size:11px;letter-spacing:.7px}
.ddm-body{padding:6px}
.ddm-body--2col{gap:1px}
.ddm-item{gap:10px;padding:7px 10px;border-radius:5px}
.ddm-ico{width:28px;height:28px;border-radius:6px}
.ddm-ico svg{width:14px;height:14px}
.ddm-txt strong{font-size:12.5px;letter-spacing:.4px;line-height:1.2}
.ddm-txt em{font-size:11px;margin-top:1px;line-height:1.25}
@media (max-width:1180px){.ddm--wide{min-width:460px}}
@media (max-width:1024px){.ddm,.ddm--wide{min-width:280px}.ddm-body--2col{grid-template-columns:1fr}}

/* --- 2. Split sticky CTA bar, ALL devices --- */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:200;display:grid;
  grid-template-columns:1fr 1fr;align-items:stretch;box-shadow:0 -4px 18px rgba(0,0,0,.22)}
.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-display);font-weight:700;font-size:15px;letter-spacing:1.1px;
  text-transform:uppercase;text-decoration:none;border:0;padding:16px 18px;line-height:1.15;
  text-align:center;transition:background .18s ease}
.sticky-cta .sc-call{background:var(--navy);color:#fff}
.sticky-cta .sc-call:hover{background:var(--navy-deep);color:#fff}
.sticky-cta .sc-call svg{width:17px;height:17px;fill:currentColor;flex:0 0 auto}
.sticky-cta .sc-quote{background:var(--red);color:#fff}
.sticky-cta .sc-quote:hover{background:var(--red-dark);color:#fff}
body{padding-bottom:56px}
@media (max-width:768px){body{padding-bottom:52px}
  .sticky-cta a{font-size:12.5px;letter-spacing:.6px;padding:13px 10px;gap:7px}
  .sticky-cta .sc-call svg{width:15px;height:15px}}
@media (max-width:380px){.sticky-cta a{font-size:11px;padding:12px 6px;gap:5px}
  .sticky-cta .sc-call svg{display:none}}

/* ===== Rev 27: natural internal link line ===== */
.county-links{font-family:var(--f-body);font-size:15.5px;line-height:1.7;color:var(--text);
  background:var(--cream);border-left:3px solid var(--red);padding:14px 18px;margin:24px 0;border-radius:0 4px 4px 0}
.county-links a{color:var(--red-dark);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.county-links a:hover{color:var(--red)}
.town-list a{color:var(--navy);text-decoration:none;border-bottom:1px solid transparent}
.town-list a:hover{color:var(--red);border-bottom-color:var(--red)}

/* ===== Rev 29: button contrast by background ===== */
/* light-background outline button (navy text) */
.btn-outline-dark{display:inline-block;background:transparent;color:var(--navy);
  border:2px solid var(--navy);font-family:var(--f-display);font-weight:600;font-size:13px;
  letter-spacing:1.6px;text-transform:uppercase;padding:14px 26px;border-radius:3px;
  text-decoration:none;transition:background .18s ease,color .18s ease,border-color .18s ease}
.btn-outline-dark:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
/* brand-accent variant for light backgrounds */
.btn-outline-brand{display:inline-block;background:transparent;color:var(--red-dark);
  border:2px solid var(--red);font-family:var(--f-display);font-weight:600;font-size:13px;
  letter-spacing:1.6px;text-transform:uppercase;padding:14px 26px;border-radius:3px;
  text-decoration:none;transition:background .18s ease,color .18s ease}
.btn-outline-brand:hover{background:var(--red);color:#fff}


/* ===== Rev 32: county sidebar sticky — CORRECTED ===== */
/* Rev 31 put position:sticky on .svc-side-card, but sticky only travels within its PARENT
   box. .county-side had no CSS at all, so as a grid item under align-items:start it
   collapsed to exactly the card's height — zero scroll distance — and the card behaved as
   if it were static. The sticky must go on the WRAPPER, and the wrapper must be allowed to
   stretch to the full row height. */

/* let the sidebar column fill the row so there is distance to stick across */
.county-detail{align-items:stretch}
.county-detail-main{min-width:0}

.county-side{
  position:sticky;
  top:100px;
  align-self:start;              /* stick from the top of the column */
  max-height:calc(100vh - 180px);/* nav (~100) + bottom CTA bar (~56) + breathing room */
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(13,31,53,.25) transparent;
}
.county-side::-webkit-scrollbar{width:8px}
.county-side::-webkit-scrollbar-track{background:transparent}
.county-side::-webkit-scrollbar-thumb{background:rgba(13,31,53,.18);border-radius:4px}
.county-side::-webkit-scrollbar-thumb:hover{background:rgba(13,31,53,.32)}

/* the inner card must NOT be sticky or height-capped — the wrapper handles both now */
.county-side .svc-side-card{position:static;max-height:none;overflow:visible;top:auto}


/* stacked layout: kill sticky + caps entirely */
@media (max-width:900px){
  .county-side{
    position:static;max-height:none;overflow:visible;top:auto;align-self:auto;
  }
}
/* short viewports */
@media (max-height:760px) and (min-width:901px){
  .county-side{top:88px;max-height:calc(100vh - 160px)}
}

/* --- sticky bottom CTA: make the CALL half clearly visible --- */
/* it was var(--navy) sitting on dark page chrome, so it read as one dark mass */
.sticky-cta .sc-call{
  background:var(--navy);
  color:#fff;
  border:2px solid var(--red-light);
  border-right:0;                        /* the two halves meet in the middle */
}
.sticky-cta .sc-quote{border:2px solid var(--red);border-left:0}
.sticky-cta{border-top:1px solid rgba(255,255,255,.16)}
.sticky-cta .sc-call:hover{background:var(--navy-deep);border-color:#fff}
@media (max-width:768px){
  .sticky-cta .sc-call,.sticky-cta .sc-quote{border-width:2px}
}

/* menu is now 17 items tall — make sure the last one clears the fixed bottom CTA bar */
.mobile-nav-open{padding-bottom:96px}

/* ===== Rev 38: mobile services submenu — max-height animation (robust) ===== */
/* Rev 34 used grid-template-rows 0fr->1fr, which older iOS Safari does not animate
   reliably, and the nested submenu did not inherit the parent flex gap, so the first
   two rows sat flush together while every other row had 8px. Rewritten with max-height,
   which is universally supported, and explicit spacing that matches the top-level items. */
.mnav-group{display:flex;flex-direction:column;gap:8px}
.mnav-toggle{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  background:none;border:0;cursor:pointer;text-align:left;-webkit-appearance:none;
  font-family:var(--f-display);font-weight:500;font-size:18px;letter-spacing:1.5px;
  text-transform:uppercase;color:#fff;padding:12px 0;margin:0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mnav-caret{font-size:13px;line-height:1;color:var(--red-light);transition:transform .22s ease}
.mnav-group.is-open .mnav-caret{transform:rotate(180deg)}

.mnav-sub{
  display:flex;flex-direction:column;gap:8px;   /* same rhythm as the top-level list */
  max-height:0;overflow:hidden;
  transition:max-height .28s ease, opacity .2s ease;
  opacity:0;
}
.mnav-group.is-open .mnav-sub{
  max-height:720px;      /* comfortably taller than 9 items */
  opacity:1;
}
.mnav-sub a{
  display:block;font-size:15px;letter-spacing:1px;text-transform:uppercase;
  color:rgba(255,255,255,.86);
  padding:11px 0 11px 16px;
  border-bottom:1px solid rgba(255,255,255,.06);
  border-left:2px solid var(--red);
}
.mnav-sub a:first-child{color:var(--red-light);font-weight:600}
.mnav-sub a:active,.mnav-sub a:hover{color:#fff;background:rgba(255,255,255,.05)}
/* first submenu row needs a little air under the toggle */
.mnav-group.is-open .mnav-sub{padding-top:2px}
