:root{
  --ink:#16263c;
  --ink-soft:#42536b;
  --bg:#fcfdfe;
  --paper:#eef4f9;
  --blue:#006DC4;
  --blue-deep:#005CA6;
  --navy:#001E58;
  --gold:#F2B01E;
  --gstar:#fbbc04;
  --shadow:3px 3px 0 rgba(0,30,88,.9);
  --radius:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Source Sans 3",sans-serif;font-size:17px;line-height:1.65;color:var(--ink);background:var(--bg)}
h1,h2,h3{font-family:"Barlow Condensed",sans-serif;line-height:1.15;letter-spacing:-.01em}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue-deep)}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:"Source Sans 3",sans-serif;font-weight:700;font-size:1.02rem;text-decoration:none;border-radius:6px;padding:.85rem 1.5rem;min-height:52px;color:#fff;transition:transform .12s ease-out}
.btn:hover{filter:brightness(.93)}
.btn:active{transform:scale(.97)}
a[href^="tel:"]{white-space:nowrap}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.btn--call{background:var(--blue);box-shadow:var(--shadow)}
.btn--book{background:var(--navy);box-shadow:var(--shadow)}
.btn--more{background:transparent;color:var(--navy);border:2px solid var(--navy)}
/* Secondary action on a DARK panel. Pairs with the filled call button so each
   viewport keeps exactly one solid CTA. */
.btn--ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.75)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.cta-row{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
@media (max-width:640px){
  .cta-row{flex-direction:column;align-items:stretch}
  .cta-row .btn{width:100%;min-height:48px}
}

/* header */
.topbar{background:var(--bg);border-bottom:1px solid #dde6ee}
.topbar .wrap{display:flex;align-items:center;gap:1.6rem;padding-top:.7rem;padding-bottom:.7rem}
.brand img{height:44px;width:auto}
.topnav{display:flex;gap:1.4rem;margin-left:auto;font-weight:600;font-size:.98rem}
@media (max-width:1280px){.topnav{gap:.95rem;font-size:.92rem}}
.topnav a{color:var(--ink);text-decoration:none;white-space:nowrap}
.topnav a:hover{color:var(--blue-deep)}
.topbar .btn{min-height:44px;padding:.55rem 1.1rem}
.topbar-tel{font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap;font-size:1.05rem}
@media (max-width:999px){
  .topnav{display:none}
  .topbar .tel-cta{display:none}
  .topbar .wrap{justify-content:space-between}
}

/* hero */
.hero{position:relative;display:flex;align-items:center;min-height:440px;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(4,20,45,.72),rgba(4,20,45,.52))}
.hero .wrap{position:relative;z-index:1;color:#fff;padding-top:2.6rem;padding-bottom:2.6rem;max-width:1120px;width:100%}
.hero h1{font-size:clamp(2.3rem,5.2vw,3.6rem);color:#fff;max-width:16ch;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.hero p{max-width:56ch;margin:.9rem 0 1.4rem;font-size:1.12rem;text-shadow:0 1px 4px rgba(0,0,0,.55)}
.hero-trust{display:flex;align-items:center;gap:.55rem;margin-top:1.1rem;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.55)}
@media (max-width:640px){
  .hero{min-height:0}
  .hero .wrap{padding-top:2.2rem;padding-bottom:2rem}
  /* No line-clamp here. It cut the hero subhead mid-word ("the tonnage in t...") and
     hid "Only the wall height changes" from the sizes lede, which is the one line that
     explains the product. Truncated body copy reads as a bug, not as restraint. */
}

/* sizes */
.sizes{padding:3.5rem 0 3rem}
.sizes h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:.4rem}
.sizes .lede{max-width:64ch;color:var(--ink-soft);margin-bottom:2.2rem}
.size-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media (max-width:900px){.size-grid{grid-template-columns:1fr}}
.size-card{position:relative;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column}
.size-card-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;flex:1}
.size-card-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.size-card img{width:100%;aspect-ratio:2/1.1;object-fit:contain;background:#fff;border-radius:var(--radius) var(--radius) 0 0}
.size-body{padding:1.2rem 1.3rem 1rem;flex:1}
.size-body h3{font-size:1.55rem;display:flex;align-items:baseline;justify-content:space-between}
.size-body h3 .from{font-size:1.15rem;color:var(--blue-deep)}
.size-specs{list-style:none;margin:.7rem 0 0;color:var(--ink-soft)}
.size-specs li{padding:.28rem 0;border-bottom:1px solid #e7eef5;font-size:.97rem}
.size-specs li:last-child{border-bottom:0}
.size-actions{position:relative;z-index:1;padding:0 1.3rem 1.3rem}
.size-actions .btn{width:100%}
.size-note{margin-top:1.8rem;color:var(--ink-soft);max-width:72ch}
@media (max-width:640px){
  .size-card img{aspect-ratio:2.6/1}
  .size-specs li{padding:.22rem 0}
  .size-body{padding:1rem 1.1rem .8rem}
  .size-actions{padding:0 1.1rem 1.1rem}
}

.size-video{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;margin-top:2.6rem}
@media (max-width:900px){.size-video{grid-template-columns:1fr;gap:20px}}
.video-frame{aspect-ratio:16/9;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;background:var(--navy)}
.video-frame iframe{width:100%;height:100%;border:0;display:block}
.size-video h3{font-size:1.4rem;margin-bottom:.4rem}
.size-video p{color:var(--ink-soft)}
.junk h3{font-size:1.25rem;margin:1.1rem 0 .5rem}
.take-list{list-style:none;margin:.2rem 0 .4rem;display:flex;flex-wrap:wrap;gap:8px;color:var(--ink);font-size:.94rem}
.take-list li{display:flex;align-items:center;gap:.45rem;background:#fff;border:1px solid #d6e0ea;border-radius:8px;padding:.42rem .85rem .42rem .7rem;font-weight:600}
.take-list li::before{content:"\2713";color:var(--blue);font-weight:700}
/* how it works */
.how{padding:3.5rem 0}
.how h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:2rem}
.how .split{align-items:center}
.vsteps{display:flex;flex-direction:column;gap:1.7rem;margin-top:1.9rem}
.vsteps .step{display:flex;gap:1.15rem;align-items:flex-start;position:relative}
.vsteps .step:not(:last-child)::before{content:"";position:absolute;left:22px;top:52px;bottom:-27px;width:2px;background:#cfdbe7}
.step-num{flex:none;width:46px;height:46px;border-radius:50%;background:var(--navy);color:var(--gold);font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:1.45rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);position:relative}
.how-photo{border-radius:var(--radius);box-shadow:var(--shadow)}
.step h3{font-size:1.25rem;margin-bottom:.25rem}
.step p{color:var(--ink-soft);font-size:.99rem}

/* junk removal */
.junk{padding:3.5rem 0}
/* Above the one-column breakpoint, let the section photo fill its grid cell.
   Measured 2026-10-22: the image in .how, .junk and .split stopped short of the
   text column, leaving dead space bottom-right three sections running. */
@media (min-width:901px){
  .how .wrap,.junk .wrap,.split{align-items:stretch}
  .how .wrap>img,.junk .wrap>img,.split>img{height:100%;object-fit:cover;align-self:stretch}
}
.junk .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
@media (max-width:900px){.junk .wrap{grid-template-columns:1fr}}
.junk h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:.8rem}
.junk p{margin-bottom:1rem;color:var(--ink-soft)}
.junk img{border-radius:var(--radius);box-shadow:var(--shadow)}
.junk .cta-row{margin-top:1.4rem}

/* reviews */
.reviews{background:var(--paper);padding:3.5rem 0}
.reviews h2{font-size:clamp(1.9rem,3.6vw,2.5rem)}
.reviews-head{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-bottom:1.6rem}
.reviews-head .score{font-weight:700;color:var(--ink-soft)}
.rev-more{margin-top:1.2rem}
@media (max-width:700px){.rev-more .btn{width:100%}}
.stars{color:var(--gstar);letter-spacing:2px}
.rev-strip{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 4px 14px}
.rev-strip::-webkit-scrollbar{display:none}
.rev-strip>*{scroll-snap-align:start}
@media (min-width:800px){.rev-strip{grid-auto-columns:calc((100% - 44px)/3)}}
.rev-card{position:relative;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.25rem 1.35rem;display:flex;flex-direction:column}
.rev-card .g-mark{position:absolute;top:1.1rem;right:1.1rem;width:22px;height:22px}
.rev-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.55rem;padding-right:30px}
.rev-avatar{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.05rem;background:var(--navy)}
.rev-card:nth-child(3n+2) .rev-avatar{background:var(--blue)}
.rev-card:nth-child(3n) .rev-avatar{background:#4a5f7d}
.rev-who strong{display:block;line-height:1.25;font-size:1.02rem}
.rev-card .stars{font-size:.95rem;margin-bottom:.5rem}
.rev-card blockquote{font-size:.97rem;color:var(--ink-soft);flex:1}
.rev-scroll{position:relative;height:4px;border-radius:99px;background:rgba(0,30,88,.12);max-width:180px;margin:1.2rem auto 0;overflow:hidden}
.rev-scroll>span{display:block;height:100%;border-radius:99px;background:var(--blue);transition:transform .12s linear}
.rev-scroll.is-off{display:none}
@media (prefers-reduced-motion:reduce){.rev-scroll>span{transition:none}}

/* service area */
.area{background:var(--paper);padding:3.5rem 0}
.area .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:start}
@media (max-width:900px){.area .wrap{grid-template-columns:1fr}}
.area-map{aspect-ratio:4/3;max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
@media (max-width:700px){.area-map{height:auto !important}}
.area-map .lmap{width:100%;height:100%}
.area h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:.6rem}
.area .lede{max-width:64ch;color:var(--ink-soft);margin-bottom:1.6rem}
.town-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;max-width:760px}
.town-list li{background:var(--paper);border-radius:999px;padding:.45rem 1.05rem;font-weight:600;font-size:.95rem}
.area .fee-note{margin-top:1.2rem;color:var(--ink-soft);font-size:.97rem}

/* faq */
.faq{background:var(--paper);padding:3.5rem 0}
.faq h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:1.4rem}
.faq-list{max-width:780px}
.faq-list details{border-bottom:1px solid #d8e2ec;padding:.95rem 0}
.faq-list summary{font-weight:700;cursor:pointer;font-size:1.05rem;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-weight:700;color:var(--blue-deep);flex:none}
.faq-list details[open] summary::after{content:"\2212"}
.faq-list details p{margin-top:.6rem;color:var(--ink-soft)}

/* final cta */
.final{background:var(--navy);color:#fff;padding:3.5rem 0}
.final .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center}
@media (max-width:900px){.final .wrap{grid-template-columns:1fr;gap:8px}}
.final h2{font-size:clamp(2rem,4vw,2.8rem);color:#fff;margin-bottom:.7rem}
.final p{color:rgba(255,255,255,.82);max-width:58ch;margin-bottom:1.6rem}
.final .phone-big{font-family:"Barlow Condensed",sans-serif;font-size:clamp(1.9rem,4vw,2.6rem);font-weight:700}
.final .phone-big a{color:var(--gold);text-decoration:none}
.final .hours{margin-top:1rem;color:rgba(255,255,255,.82);font-size:.98rem;margin-bottom:0}
.final .cta-row{margin-top:1rem}
.final .btn--book{background:var(--blue);box-shadow:3px 3px 0 rgba(0,0,0,.55)}
.final .btn--call{background:var(--gold);color:var(--navy);box-shadow:3px 3px 0 rgba(0,0,0,.55)}

/* footer */
footer{border-top:4px solid var(--gold);background:#04122e;color:rgba(255,255,255,.75);padding:2.2rem 0 5.5rem;font-size:.94rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 3rem;align-items:center;justify-content:space-between}
footer a{color:#fff;text-decoration:none}
footer img{height:38px;width:auto}

/* mobile call pill */
.mobile-cta{position:fixed;right:1.1rem;bottom:1.1rem;z-index:50}
.mobile-cta a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--blue);color:#fff;font-weight:700;text-decoration:none;border-radius:999px;min-height:48px;padding:.7rem 1.4rem;box-shadow:0 3px 0 rgba(0,20,50,.6)}
@media (min-width:1000px){.mobile-cta{display:none}}

/* header menu: tablet / narrow-desktop band only (phone + Book stay outside it) */
.nav-toggle{display:none;align-items:center;justify-content:center;width:46px;height:44px;flex:none;
  border:1px solid #d6e0ea;border-radius:6px;background:#fff;color:var(--navy);cursor:pointer;padding:0}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px}
.nav-toggle span{position:relative}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}
.navpanel{display:none}
/* Mobile + tablet nav. This block used to start at min-width:641px, which left every
   phone (<=640px) with NO menu and NO phone in the header, just the logo and Book Now:
   .topnav is hidden at <=999px, so the toggle has to appear across that whole range. */
@media (max-width:999px){
  .topbar .wrap{flex-wrap:wrap;gap:.9rem}
  .nav-toggle{display:inline-flex}
  .navpanel{display:flex;flex-direction:column;order:9;width:100%;max-height:0;overflow:hidden;
    transition:max-height .22s ease-out}
  .navpanel.open{max-height:360px}
  .navpanel a{padding:.8rem .2rem;border-top:1px solid #dde6ee;color:var(--ink);
    text-decoration:none;font-weight:600;font-size:1rem}
  .navpanel a:hover{color:var(--blue-deep)}
}
/* Tablets have room for the header phone. Phones do not: at 375px the wrap has 335px of
   usable width and logo+Book+toggle already needs 291, so the digits ride the floating
   Call pill and the hero button instead of crowding the bar. */
@media (min-width:641px) and (max-width:999px){
  .topbar .tel-cta{display:inline-block;margin-left:auto}
}
/* Shrink the mark on phones so 137+108+46 plus gaps clears 335. */
@media (max-width:640px){
  .brand img{height:36px}
  .topbar .wrap{gap:.6rem}
}
/* 320px has only 280px usable, where 137+108+46 wraps the toggle to a second row and
   makes the header 131px tall. Tighten the mark, the button and the gutter so the bar
   stays one row: 114+88+46 plus gaps clears 292. */
@media (max-width:360px){
  .brand img{height:30px}
  .topbar .wrap{padding-left:14px;padding-right:14px;gap:.5rem}
  .topbar .btn{padding:.5rem .7rem;font-size:.9rem}
}

/* ---- full-site additions (inner pages, footer columns, blog, map) ---- */
.pagehead{background:var(--paper);padding:2.6rem 0 2.2rem}
.pagehead h1{font-size:clamp(2rem,4.4vw,3rem)}
.pagehead p{color:var(--ink-soft);max-width:62ch;margin-top:.5rem}
.crumbs{font-size:.88rem;color:var(--ink-soft);margin-bottom:.6rem}
.crumbs a{color:var(--ink-soft)}
.section{padding:3.5rem 0}
.section.alt{background:var(--paper)}
.section h2{font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:.6rem}
.section h3{font-size:1.3rem;margin:1.4rem 0 .4rem}
.copy p{margin-bottom:1rem;max-width:72ch}
.copy ul{margin:0 0 1rem 1.2rem}
.copy li{margin-bottom:.3rem}
.copy .cta-row{margin-top:1.4rem}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center}
.split.rev{grid-template-columns:1fr 1.1fr}
@media (max-width:900px){.split,.split.rev{grid-template-columns:1fr}}
.split img{border-radius:var(--radius);box-shadow:var(--shadow)}
.ladder{width:100%;border-collapse:collapse;background:#fff;box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden;max-width:560px}
.ladder th,.ladder td{padding:.7rem .95rem;text-align:left;font-size:.97rem}
.ladder thead th{background:var(--navy);color:#fff;font-family:"Barlow Condensed",sans-serif}
.ladder tbody tr:nth-child(even){background:var(--paper)}
.goodbad{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin:1.2rem 0}
@media (max-width:700px){.goodbad{grid-template-columns:1fr}}
.goodbad>div{border-radius:var(--radius);padding:1.2rem 1.3rem}
.goodbad h3{margin:0 0 .5rem;font-size:1.2rem}
.goodbad ul{list-style:none;margin:0}
.goodbad li{padding:.26rem 0 .26rem 1.35rem;position:relative;color:var(--ink-soft);font-size:.97rem}
.goodbad .yes{background:#eef7ef;border:1px solid #cfe5d2}
.goodbad .no{background:#fbeeee;border:1px solid #ecd2d2}
.goodbad .yes li::before{content:"\2713";color:#2e7d3a;font-weight:700;position:absolute;left:0}
.goodbad .no li::before{content:"\2715";color:#b3342e;font-weight:700;position:absolute;left:0}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:1.4rem 0}
.statrow>div{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.05rem 1.2rem}
.statrow b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:2.2rem;color:var(--navy);line-height:1.1}
.statrow span{color:var(--ink-soft);font-size:.95rem}
.lmap{border-radius:var(--radius);box-shadow:var(--shadow)}
footer{border-top:4px solid var(--gold);background:#04122e;color:rgba(255,255,255,.75);padding:2.6rem 0 5.5rem;font-size:.94rem}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;margin-bottom:1.6rem}
@media (max-width:900px){.footgrid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.footgrid{grid-template-columns:1fr}}
footer img{height:38px;width:auto;margin-bottom:.7rem}
footer h3{color:#fff;font-size:1.05rem;margin-bottom:.55rem;font-family:"Barlow Condensed",sans-serif;letter-spacing:.02em}
footer ul{list-style:none}
footer li{padding:.16rem 0}
@media (max-width:700px){footer li{padding:.32rem 0}}
footer a{color:rgba(255,255,255,.85);text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
.footbase{border-top:1px solid rgba(255,255,255,.14);padding-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem 2.5rem;justify-content:space-between}
.prose{max-width:72ch}
.prose p{margin-bottom:1rem}
.prose h2{font-size:1.7rem;margin:1.8rem 0 .5rem}
.prose h3{font-size:1.25rem;margin:1.3rem 0 .4rem}
.prose ul{margin:0 0 1rem 1.2rem}
.prose li{margin-bottom:.3rem}
.prose a:not(.btn):not(.btn--call):not(.btn--book):not(.btn--more){color:var(--blue-deep)}
.prose img{border-radius:var(--radius);box-shadow:var(--shadow);margin:1rem 0}
.postrows{max-width:72ch}
.postrow{padding:1.3rem 0;border-bottom:1px solid #dde6ee}
.postrow:first-child{padding-top:.2rem}
.postrow h2{font-size:1.45rem;margin-bottom:.3rem}
.postrow h2 a{color:var(--navy);text-decoration:none}
.postrow h2 a:hover{text-decoration:underline}
.postrow p{color:var(--ink-soft);margin-bottom:.3rem}
.postdate{font-size:.88rem;color:var(--ink-soft)}
.townlinks{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:.8rem 0}
.townlinks li a{display:inline-block;background:var(--paper);border-radius:999px;padding:.45rem 1.05rem;font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none}
.townlinks li a:hover{background:#e2ecf5}
form .field{margin-bottom:1rem;max-width:460px}
form label{display:block;font-weight:700;margin-bottom:.3rem}
form input,form textarea{width:100%;padding:.7rem .8rem;border:1px solid #c6d3e0;border-radius:6px;font:inherit;color:var(--ink);background:#fff}
form textarea{min-height:120px}
.hidden-field{display:none}
.jobshot{margin-top:1.6rem;border-radius:var(--radius);box-shadow:var(--shadow)}
.jobshot--flush{margin:.4rem 0 1.2rem;border-radius:var(--radius);box-shadow:var(--shadow)}
.mt1{margin-top:1.2rem}

/* ---- skill-sweep additions (hub rebuild, switcher, skip link) ---- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;font-weight:700;padding:.7rem 1.2rem;border-radius:0 0 6px 0;z-index:200;text-decoration:none}
.skip-link:focus{left:0}
.size-switch{margin-top:1.1rem;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.95rem}
.size-switch .ss-label{color:var(--ink-soft);font-weight:600;margin-right:.2rem}
.size-switch a,.size-switch .ss-cur{display:inline-block;border-radius:999px;padding:.6rem 1.05rem;font-weight:700;text-decoration:none}
.size-switch a{background:var(--paper);color:var(--ink)}
.size-switch a:hover{background:#e2ecf5}
.size-switch .ss-cur{background:var(--navy);color:#fff}
.hub-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}
@media (max-width:900px){.hub-cards{grid-template-columns:1fr}}
.hub-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1.5rem;display:flex;flex-direction:column}
.hub-card h3{font-size:1.35rem;margin-bottom:.5rem}
.hub-card h3 a{color:var(--navy);text-decoration:none}
.hub-card h3 a:hover{text-decoration:underline}
.hub-card p{color:var(--ink-soft);font-size:.98rem;margin-bottom:.8rem}
.hub-card .hub-card-meta{margin-top:auto;margin-bottom:0;color:var(--ink);font-weight:600}
.county-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:1.4rem 0}
@media (max-width:700px){.county-grid{grid-template-columns:1fr}}
.county-row{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.4rem;display:flex;flex-direction:column}
.county-row h3{font-size:1.3rem;margin-bottom:.4rem}
.county-row .cl{display:block;font-weight:700;color:var(--blue-deep);text-decoration:none;padding:.12rem 0}
.county-row .cl::after{content:" \2192"}
.county-row .cl:hover{text-decoration:underline}
.county-row .pill-row{margin-top:auto;padding-top:.95rem}
.county-row h3{font-family:"Barlow Condensed",sans-serif;font-size:1.15rem;color:var(--navy);margin-bottom:.2rem}
.county-row p{margin-bottom:.35rem}
.pill-row{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-block;background:var(--paper);border-radius:999px;padding:.3rem .85rem;font-size:.88rem;color:var(--ink-soft);cursor:default}
.related h2{font-size:1.4rem;margin-bottom:.5rem}
.related ul{list-style:none}
.related li{padding:.2rem 0}
.related a{color:var(--blue-deep);font-weight:600}
.form-note{margin-top:.8rem;font-size:.9rem;color:var(--ink-soft);max-width:460px}
.form-note a{color:var(--blue-deep)}
.fee-note{margin-top:1.2rem;color:var(--ink-soft);font-size:.97rem}
.hub-score{margin-top:.9rem;font-size:1.02rem;color:var(--ink-soft)}
.hub-score .stars{color:var(--gstar)}
.copy--wide{max-width:76ch}
.btn-inline{margin-top:1.5rem;white-space:normal}
.social-row{display:flex;gap:14px;align-items:center;padding-top:.45rem}
.social-row a{display:inline-flex;padding:8px;margin:-8px;border-radius:6px}
.social-row svg{width:25px;height:25px;fill:rgba(255,255,255,.82);transition:fill .12s}
.social-row a:hover svg{fill:#fff}
.video-poster{position:relative;display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.video-poster img{display:block;width:100%;height:auto}
.video-poster .vp-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,.45);transition:transform .12s}
.video-poster .vp-play svg{width:30px;height:30px;fill:var(--gold);margin-left:3px}
.video-poster:active .vp-play{transform:translate(-50%,-50%) scale(0.96)}
.video-poster .vp-time{position:absolute;right:12px;bottom:10px;background:rgba(0,30,88,.88);color:#fff;font-weight:700;font-size:.82rem;padding:.25rem .6rem;border-radius:999px}
.size-video .btn{margin-top:.9rem}
.size-grid-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:1.8rem}
.size-grid-cta p{font-weight:700;margin:0}
.cancant{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:1.2rem}
@media (max-width:700px){.cancant{grid-template-columns:1fr}}
.cc-col{border-radius:var(--radius);padding:1.1rem 1.3rem}
.cc-yes{background:#eef7ef;border:1px solid #cfe5d2}
.cc-no{background:#fbeeee;border:1px solid #ecd2d2}
.cc-col h3{font-size:1.1rem;margin-bottom:.5rem}
.cc-col ul{list-style:none}
.cc-col li{padding:.22rem 0 .22rem 1.5rem;position:relative}
.cc-yes li::before{content:"\2713";position:absolute;left:0;font-weight:700;color:#2e7d3a}
.cc-no li::before{content:"\2715";position:absolute;left:0;font-weight:700;color:#b3342e}
.cancant .cc-note{grid-column:1/-1;margin-top:.2rem;color:var(--ink-soft);font-size:.97rem}
.cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:1.2rem 0}
@media (max-width:760px){.cardgrid{grid-template-columns:1fr}}
.cardgrid>div{background:#fff;border:1px solid #d6e0ea;border-radius:var(--radius);padding:1.15rem 1.3rem}
.cardgrid h3{font-size:1.17rem;margin:0 0 .35rem}
.cardgrid p{color:var(--ink-soft);margin:0;font-size:.98rem}
.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1.2rem}
@media (max-width:620px){.picker-grid{grid-template-columns:1fr}}
.pick{text-align:left;padding:1rem 1.1rem;border:1px solid #d6e0ea;border-radius:var(--radius);background:#fff;font:inherit;font-size:1rem;font-weight:700;color:var(--ink);cursor:pointer;transition:border-color .12s,box-shadow .12s}
.pick:hover,.pick:focus-visible{border-color:var(--blue)}
.pick[aria-pressed="true"]{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.pick small{display:block;color:var(--ink-soft);font-weight:400;font-size:.9rem;margin-top:.2rem}
.pick-result{grid-column:1/-1;margin:.3rem 0;padding:1.4rem 1.5rem;border-radius:var(--radius);background:#fff;border:2px solid var(--navy)}
.pick-result:empty{display:none}
.pick-result .pr-size{font-family:"Barlow Condensed",sans-serif;font-size:1.7rem;color:var(--navy);margin:0 0 .3rem}
.pick-result p{margin:0 0 .4rem;max-width:70ch}
.pr-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.9rem}
@media (max-width:640px){.pr-actions{flex-direction:column;align-items:stretch;text-align:center}}
.size-grid{margin-top:1.6rem}
.price-rows{display:flex;flex-direction:column;gap:10px;margin:1.2rem 0 .9rem;max-width:460px}
.price-rows>div{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #d6e0ea;border-radius:var(--radius);padding:.8rem 1.1rem}
.price-rows span{font-weight:600}
.price-rows b{font-family:"Barlow Condensed",sans-serif;font-size:1.55rem;color:var(--navy)}
.price-incl{color:var(--ink-soft);font-size:.95rem;max-width:460px}
.spec-row{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:.3rem 0 1rem}
.spec-row li{background:var(--paper);border-radius:8px;padding:.38rem .8rem;font-weight:700;font-size:.92rem}
.sizeshot{width:100%;aspect-ratio:2.4/1;object-fit:cover;object-position:50% 58%;border-radius:var(--radius);box-shadow:var(--shadow);margin-top:1.9rem}
@media (max-width:700px){.sizeshot{aspect-ratio:4/3}}
.copy h2.sub-geo{font-size:1.4rem;margin:1.7rem 0 .4rem}
.gbadge{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #d6e0ea;border-radius:8px;padding:.5rem .95rem;margin-top:1rem;font-size:.98rem}
.gbadge svg{width:18px;height:18px;flex:none}
.gbadge .stars{color:var(--gstar);letter-spacing:.04em}
.price-promise{margin-top:1.7rem}
.price-promise p{color:var(--ink-soft);font-size:.97rem;max-width:72ch;margin-top:.6rem}
.cardgrid .btn{margin-top:.95rem}
.mini-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:1.8rem 0 .3rem}
@media (max-width:760px){.mini-steps{grid-template-columns:1fr}}
.mini-steps>div{background:#fff;border:1px solid #d6e0ea;border-radius:var(--radius);padding:1.05rem 1.2rem}
.mini-steps b{display:flex;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;align-items:center;justify-content:center;font-family:"Barlow Condensed",sans-serif;font-size:1.05rem;margin-bottom:.55rem}
.mini-steps p{margin:0;color:var(--ink-soft);font-size:.97rem}
.reviews-head .gbadge{margin-top:0}
.statnote{margin-top:.7rem;color:var(--ink-soft);font-size:.95rem}
.hero .gbadge{margin:1.2rem 0 0;font-size:1rem;text-shadow:none;background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.promise-bar{background:var(--paper);border-radius:var(--radius);padding:1.05rem 1.3rem;display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.6rem;margin-top:1.8rem}
.promise-bar .take-list{margin:0}
.promise-bar p{margin:0;color:var(--ink-soft);font-size:.96rem;flex:1;min-width:260px}
.stat-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem 2rem;background:var(--paper);border-radius:var(--radius);padding:1.15rem 1.5rem;margin-top:1.9rem}
.stat-bar b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.9rem;color:var(--navy);line-height:1.1}
.stat-bar span{color:var(--ink-soft);font-size:.92rem}
.area .townlinks li a{background:#fff;border:1px solid #d6e0ea}
.section.alt .townlinks li a{background:#fff;border:1px solid #d6e0ea}
.btn.mt1{display:inline-block}
.town-quote{border-left:4px solid var(--gold);padding:.25rem 0 .25rem 1.1rem;margin:1.5rem 0;font-size:1.06rem;max-width:62ch}
.town-quote .tq-by{display:block;color:var(--ink-soft);font-size:.9rem;margin-top:.45rem;font-style:normal}
.ladder--town{max-width:720px;margin-top:1.4rem}
.ladder--town td a{color:var(--blue-deep);font-weight:700}
@media (max-width:700px){.ladder--town th,.ladder--town td{padding:.55rem .5rem;font-size:.9rem}}
.gmap-embed iframe{width:100%;height:100%;border:0;display:block}
.cost-h2{font-size:1.4rem;margin:1.9rem 0 .4rem}
.card-more{display:block;margin-top:.9rem;color:var(--blue-deep);font-weight:700;font-size:.95rem}
.size-card-link:hover .card-more{text-decoration:underline}
.midcta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.2rem;background:#fff;
  border:1px solid #d6e0ea;border-radius:var(--radius);padding:1.1rem 1.3rem;margin-top:1.8rem}
.midcta p{margin:0;font-weight:700;font-size:1.08rem;flex:1;min-width:220px}
.pick-extra{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:.2rem}
.pick-extra>span{font-weight:700;color:var(--ink-soft);font-size:.92rem;margin-right:.2rem}
.pick--mini{padding:.42rem .8rem;border:1px solid #d6e0ea;border-radius:8px;background:#fff;
  font:inherit;font-size:.9rem;font-weight:600;color:var(--ink);cursor:pointer}
.pick--mini:hover,.pick--mini:focus-visible{border-color:var(--blue)}
.pick--mini[aria-pressed="true"]{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}

/* mobile: tap targets and decorative-image weight */
footer li a{display:inline-block;padding:.42rem 0}
@media (max-width:700px){
  footer li{padding:.05rem 0}
  .townlinks li a{min-height:44px;display:inline-flex;align-items:center}
  .pick--mini{min-height:44px;display:inline-flex;align-items:center}
  /* supporting photos: keep the proof, lose the scroll */
  .how-photo,.junk img{max-height:185px;object-fit:cover;object-position:50% 50%}
  #owner img{max-height:195px;object-fit:cover;object-position:50% 34%}
  .promise-bar{flex-direction:column;align-items:flex-start;gap:.7rem}
  .promise-bar p{min-width:0}
  .promise-bar{padding:1rem}
  .promise-bar .take-list li{padding:.4rem .6rem .4rem .55rem;font-size:.88rem;gap:.35rem}
}

@media (max-width:640px){
  .midcta{flex-direction:column;align-items:stretch}
  .midcta .btn{width:100%}
}

/* Mobile drops the homeowner/job-site split: it routes rather than sells, and
   both destinations sit in the nav and footer. Removing one tinted section
   would leave junk and owner adjacent, so the two below it swap tones. */
@media (max-width:700px){
  .audience-split{display:none}
  #owner{background:var(--paper)}
  .faq{background:var(--bg)}
}
