/* Canterbury Aerials & Satellites: site stylesheet.
   Heavy Poppins, Canterbury crimson with hop gold for small highlights, and a soft wave as the section edge. */

@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins-400.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins-500.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins-600.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins-700.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/poppins-800.woff2') format('woff2')}

:root{
  --blue:#a8102f;        /* brand crimson */
  --blue-mid:#cf2a47;    /* lighter crimson */
  --cyan:#e8a317;        /* hop gold, for small highlights only */
  --deep:#3a0d18;        /* darkest crimson: headings, footer */
  --tint:#fbf2ef;        /* pale warm band */
  --ink:#22161a;         /* body text */
  --muted:#5d4c50;
  --line:#ecd9d4;
  --paper:#ffffff;
  --wa:#167a41;          /* WhatsApp green */
  --radius:6px;
  --wrap:1180px;
  --font:'Poppins',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;font-family:var(--font);font-size:1.03rem;line-height:1.7;color:var(--ink);background:var(--paper)}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:.18em}
a:hover{color:var(--deep)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
h1,h2,h3{line-height:1.05;text-wrap:balance;margin:0 0 .5em;color:var(--deep);font-weight:800;letter-spacing:-.03em}
h1{font-size:clamp(2.3rem,5.6vw,4.3rem);letter-spacing:-.035em;word-spacing:.04em}
@media (max-width:560px){h1,h2{letter-spacing:-.02em;word-spacing:.06em}}
h2{font-size:clamp(1.9rem,3.8vw,3rem)}
h3{font-size:1.2rem;font-weight:700;letter-spacing:-.015em;line-height:1.25}
p{margin:0 0 1em}
strong{font-weight:600}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.skip{position:absolute;left:-999px;top:0;background:var(--cyan);color:var(--ink);padding:.6em 1em;z-index:100}
.skip:focus{left:8px}

/* Buttons: square-shouldered, heavy */
.btn{display:inline-flex;align-items:center;gap:.6em;font:inherit;font-weight:700;font-size:1.02rem;text-decoration:none;border:2px solid transparent;border-radius:var(--radius);padding:.85em 1.3em;cursor:pointer;line-height:1.15;transition:background .15s,color .15s}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn-call{background:var(--blue);color:#fff}
.btn-call:hover{background:var(--deep);color:#fff}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#126b38;color:#fff}

/* Status line */
.status{background:var(--deep);color:#ebd0cb;font-size:.8rem}
.status .wrap{display:flex;justify-content:space-between;gap:1rem;padding-block:.45rem;flex-wrap:wrap}
.status strong{color:#fff;font-weight:600}
.status a{color:#fff;text-decoration:none;font-weight:600}
.status .dot{display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--cyan);margin-right:.45em;vertical-align:.08em}
.status .dot.closed{background:#c48e97}

/* Header */
.site-head{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:50}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.7rem}
.logo img{width:230px;transition:width .2s}
.head-actions{display:flex;align-items:center;gap:1.4rem}
.head-phone{text-decoration:none;color:var(--deep);font-weight:800;font-size:1.6rem;letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}
.head-phone:hover{color:var(--blue)}
.head-wa{font-weight:700;font-size:.92rem;text-decoration:none;color:var(--wa);display:inline-flex;gap:.4em;align-items:center}
.head-wa svg{width:1.2em;height:1.2em}
.menu-toggle{display:none;background:none;border:2px solid var(--deep);border-radius:var(--radius);padding:.4rem .85rem;font:inherit;font-weight:700;color:var(--deep);cursor:pointer}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 1.5rem}
.nav a{display:block;color:var(--deep);text-decoration:none;font-weight:600;font-size:.9rem;padding:.35rem 0 .6rem;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--blue);color:var(--blue)}
.site-head.is-compact .head-row{padding-block:.35rem}
.site-head.is-compact .logo img{width:170px}
.site-head.is-compact .head-phone{font-size:1.3rem}
@media (max-width:960px){
  .logo img{width:180px}
  .head-phone{font-size:1.2rem}
  .menu-toggle{display:inline-block}
  .nav{display:none;border-top:1px solid var(--line)}
  .nav.open{display:block}
  .nav ul{flex-direction:column;padding-block:.4rem}
  .nav a{padding:.6rem 0;border-bottom:1px solid var(--line)}
  .status .hide-sm{display:none}
}
@media (max-width:560px){.head-phone,.head-wa{display:none}.status .wrap{justify-content:center}.status .hide-xs{display:none}}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--paper)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:2.5rem;padding-block:clamp(2.2rem,5vw,4.2rem) clamp(2rem,4vw,3.2rem)}
.hero-copy{min-width:0}
.hero .lede{font-size:1.16rem;max-width:31em}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.hero-actions .btn{font-size:1.1rem;padding:1em 1.45em}
.creds{margin:1.7rem 0 0;padding-top:1.1rem;border-top:3px solid var(--deep);font-size:.93rem;color:var(--muted);max-width:36em}
.creds b{color:var(--deep);font-weight:700}
.hero-art{position:relative;aspect-ratio:1/0.86;max-width:540px;width:100%;justify-self:end}
.hero-art svg.blob{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hero-art .blob .b1{fill:var(--blue)}
.hero-art .blob .b2{fill:var(--cyan)}
.hero-art .photo{position:absolute;inset:0}
.hero-art .photo img{width:100%;height:100%;object-fit:cover;object-position:30% center;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 480' preserveAspectRatio='none'%3E%3Cpath d='M300 22c98-8 196 44 232 132 36 88 6 192-64 250-70 58-178 76-262 44C122 416 46 350 28 262 10 174 58 90 134 52 182 28 240 26 300 22z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 480' preserveAspectRatio='none'%3E%3Cpath d='M300 22c98-8 196 44 232 132 36 88 6 192-64 250-70 58-178 76-262 44C122 416 46 350 28 262 10 174 58 90 134 52 182 28 240 26 300 22z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:1.6rem}
  .hero-art{justify-self:center;max-width:400px;order:-1;width:80%}
}

/* Wave edges */
.wave{display:block;width:100%;height:clamp(26px,4vw,54px)}
.wave path{fill:var(--fill,var(--tint))}
.wave.flip{transform:scaleY(-1)}

/* Bands */
.band{padding-block:clamp(2.8rem,6vw,4.8rem)}
.band-tint{background:var(--tint)}
.head-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 3rem;align-items:end;margin-bottom:2rem}
.head-split h2{margin:0}
.head-split p{margin:0;color:var(--muted);max-width:32em}
@media (max-width:860px){.head-split{grid-template-columns:1fr}}

/* Services: a rate card, not a card grid */
.rates-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.rates-photo{position:sticky;top:8rem}
.rates-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:44% 56% 8px 8px / 26% 30% 8px 8px}
.rates-photo p{font-size:.82rem;color:var(--muted);margin:.6rem 0 0}
.rates{list-style:none;margin:0;padding:0;border-top:3px solid var(--deep)}
.rates li{border-bottom:1px solid var(--line)}
.rates a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1.5rem;align-items:baseline;padding:1.05rem 0;text-decoration:none;color:var(--ink)}
.rates h3{margin:0;font-size:1.3rem;font-weight:800;color:var(--deep);transition:color .15s}
.rates p{grid-column:1;margin:0;color:var(--muted);font-size:.95rem;line-height:1.55;max-width:34em}
.rates .price{grid-column:2;grid-row:1/span 2;align-self:center;font-weight:800;font-size:1.05rem;color:var(--blue);white-space:nowrap;letter-spacing:-.01em;text-align:right}
.rates .price small{display:block;font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:0}
.rates a:hover h3{color:var(--blue)}
.rates .new{font-size:.66rem;font-weight:700;color:var(--blue-mid);letter-spacing:.08em;text-transform:uppercase;vertical-align:.4em;margin-left:.5em}
.rates-more{margin:1.3rem 0 0;color:var(--muted);font-size:.95rem}
@media (max-width:860px){.rates-layout{grid-template-columns:1fr}.rates-photo{position:static;max-width:420px}.rates-photo img{aspect-ratio:3/2}}
@media (max-width:480px){.rates h3{font-size:1.15rem}.rates .price{font-size:.95rem}}

/* Heights band: solid brand blue between two wave edges */
.heights{background:var(--blue);color:#f5e8e5}
.heights .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:1.5rem 3rem;align-items:center;padding-block:clamp(1.4rem,3.5vw,2.4rem)}
.heights h2{color:#fff}
.heights p{margin:0;max-width:36em;font-size:1.05rem}
.big-tel{display:block;color:#fff;text-decoration:none;font-weight:800;font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.big-tel:hover{color:#fff}
.big-tel small{display:block;font-size:.85rem;font-weight:500;letter-spacing:0;color:#edd3ce;margin-bottom:.5rem}
@media (max-width:860px){.heights .wrap{grid-template-columns:1fr}}

/* About */
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.split-copy{min-width:0}
.split-copy p{max-width:36em}
.split-media img{width:100%;border-radius:46% 54% 42% 58% / 40% 44% 56% 60%;aspect-ratio:1.1/1;object-fit:cover}
@media (max-width:860px){.split{grid-template-columns:1fr}.split-media{max-width:400px}}

/* Questions: plain ruled list */
.faq-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:2rem 3.5rem;align-items:start}
.faq{border-top:3px solid var(--deep)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.12rem;color:var(--deep);padding:1.1rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;line-height:1;color:var(--blue);font-weight:500}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 1.2rem;margin:0;max-width:42em;color:var(--muted)}
.photo-tip h3{font-size:1.35rem;font-weight:800}
.photo-tip p{color:var(--muted);font-size:.95rem}
@media (max-width:900px){.faq-layout{grid-template-columns:1fr}}

/* Area directory: plain columns, like a printed index */
.directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 3rem}
.directory .col{display:grid;gap:2rem;align-content:start;min-width:0}
.directory section{min-width:0}
.directory h3{font-size:1.05rem;font-weight:800;margin:0 0 .4rem;padding-bottom:.45rem;border-bottom:3px solid var(--deep)}
.directory ul{list-style:none;margin:0;padding:0}
.directory li{border-bottom:1px solid var(--line)}
.directory a{display:flex;justify-content:space-between;gap:.6rem;padding:.32rem 0;text-decoration:none;color:var(--ink);font-size:.92rem}
.directory a:hover{color:var(--blue)}
.directory a span{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}
@media (max-width:1000px){.directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.directory{grid-template-columns:1fr}}

/* Contact */
.contact{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem 4rem;align-items:start}
.contact .lede{font-size:1.08rem;max-width:34em}
.contact .tels{display:grid;gap:1.2rem;margin:1.6rem 0}
.contact .tels a{text-decoration:none;color:var(--deep);font-weight:800;font-size:clamp(1.8rem,3.6vw,2.6rem);letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.contact .tels a:hover{color:var(--blue)}
.contact .tels small{display:block;font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:0;margin-bottom:.35rem}
.contact dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.7rem 1.4rem;border-top:3px solid var(--deep);padding-top:1.2rem}
.contact dt{font-weight:700;color:var(--deep)}
.contact dd{margin:0}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:420px){.contact dl{grid-template-columns:1fr;gap:.1rem}.contact dd{margin-bottom:.7rem}}

/* Footer */
.site-foot{background:var(--deep);color:#e6b7bf;font-size:.9rem}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem;padding-block:3rem}
.foot-h{font-weight:700;color:#fff;font-size:.95rem;margin:0 0 .8rem}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.site-foot a{color:#f4e4e1;text-decoration:none}
.site-foot a:hover{color:#fff;text-decoration:underline}
.site-foot address{font-style:normal}
.foot-base{border-top:1px solid rgba(255,255,255,.12);padding-block:1.1rem;font-size:.78rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}

/* Mobile call bar */
.callbar{display:none}
@media (max-width:760px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
  .callbar{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(95,6,21,.12);padding:.55rem max(12px,env(safe-area-inset-right,0px)) calc(.55rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
  .callbar .btn{justify-content:center;padding:.8em .6em;font-size:.98rem}
}

/* Fault finder: pick a symptom, see the screen and where the fault usually is */
.ff{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:2rem 3rem;align-items:start}
.ff-tabs{display:grid;border-top:3px solid var(--deep)}
.ff-tabs button{font:inherit;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:1rem 2rem 1rem 0;color:var(--deep);font-weight:700;font-size:1.05rem;letter-spacing:-.01em;line-height:1.3;cursor:pointer;position:relative}
.ff-tabs button::after{content:"→";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);color:var(--line);transition:color .15s,right .15s}
.ff-tabs button:hover{color:var(--blue)}
.ff-tabs button[aria-selected="true"]{color:var(--blue)}
.ff-tabs button[aria-selected="true"]::after{color:var(--blue);right:0}
.ff-tabs button[aria-selected="true"]::before{content:"";position:absolute;left:-1rem;top:.9rem;bottom:.9rem;width:4px;background:var(--blue);border-radius:2px}
.ff-stage{min-width:0;display:grid;gap:1.4rem}
.ff-visual{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1.2rem;align-items:end}
.ff-tv{position:relative;aspect-ratio:16/9;background:#180b0d;border:10px solid #301b1f;border-bottom-width:14px;border-radius:10px;overflow:hidden;box-shadow:0 18px 40px -22px rgba(95,6,21,.6)}
.ff-tv::after{content:"";position:absolute;left:50%;bottom:-14px;width:22%;height:4px;transform:translateX(-50%);background:#5a333a;border-radius:2px}
.ff-screen{position:absolute;inset:0;display:none;place-items:center;color:#f7ecea;font-size:.82rem;text-align:center}
.ff-screen:first-child{display:grid}
.ff[data-active] .ff-screen{display:none}
.ff[data-active="nosignal"] [data-screen="nosignal"],
.ff[data-active="breakup"] [data-screen="breakup"],
.ff[data-active="missing"] [data-screen="missing"],
.ff[data-active="satellite"] [data-screen="satellite"],
.ff[data-active="oneroom"] [data-screen="oneroom"]{display:grid}
.ff-screen canvas{width:100%;height:100%;display:block}
.osd{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:.8rem 1.2rem;display:grid;gap:.15rem;animation:ff-float 6s ease-in-out infinite alternate}
.osd b{font-size:1.05rem;font-weight:700}
.osd span{font-size:.72rem;color:#cfaab0}
@keyframes ff-float{from{transform:translate(-12%,-10%)}to{transform:translate(12%,12%)}}
.retune{width:82%;display:grid;gap:.45rem;text-align:left}
.retune b{font-size:.95rem}
.retune .bar{height:6px;background:rgba(255,255,255,.15);border-radius:3px;overflow:hidden}
.retune .bar i{display:block;height:100%;width:34%;background:var(--cyan)}
.retune span{font-size:.72rem;color:#cfaab0}
.retune ol{list-style:none;margin:.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
.retune li{background:rgba(232,163,23,.35);border-radius:2px;text-align:center;font-size:.62rem;padding:.15rem 0}
.retune li.x{background:transparent;outline:1px dashed rgba(255,255,255,.25);color:transparent}
.rooms{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr}
.rooms div{display:grid;place-content:center;gap:.2rem;position:relative}
.rooms .ok{background:linear-gradient(160deg,#d83d57 0%,#ef7f92 55%,#d9e9c8 56%,#9cc27a 100%)}
.rooms .bad{background:#180b0d;border-left:3px solid #301b1f}
.rooms small{position:absolute;top:.4rem;left:.5rem;font-size:.62rem;color:#fff;background:rgba(0,0,0,.35);padding:.05rem .35rem;border-radius:3px}
.rooms b{font-size:.85rem}
.ff-house{width:100%;height:auto;overflow:visible}
.ff-house .roof{fill:var(--tint);stroke:var(--deep);stroke-width:3;stroke-linejoin:round}
.ff-house .body{fill:var(--paper);stroke:var(--deep);stroke-width:3}
.ff-house .chim{fill:var(--paper);stroke:var(--deep);stroke-width:3}
.ff-house .floor{stroke:var(--deep);stroke-width:2;fill:none}
.ff-house .ant path,.ff-house .sky-tx{stroke:var(--deep);stroke-width:3;fill:none;stroke-linecap:round}
.ff-house .tx-waves path{stroke:var(--line);stroke-width:2.5;fill:none;stroke-linecap:round}
.ff-house .cab{stroke:var(--blue-mid);stroke-width:2;fill:none;stroke-dasharray:5 4}
.ff-house .cab.sat{stroke:var(--cyan)}
.ff-house .dish path{stroke:var(--deep);stroke-width:3;fill:none;stroke-linecap:round}
.ff-house .dish circle{fill:var(--deep)}
.ff-house .amp{fill:var(--deep)}
.ff-house .plate{fill:var(--paper);stroke:var(--deep);stroke-width:2}
.ff-house .tvset{fill:var(--deep)}
.ff-house text{font:600 11px var(--font);fill:var(--muted)}
.ff-house .spot circle{fill:rgba(232,163,23,.18);stroke:var(--cyan);stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .2s}
.ff-house .spot.on circle{opacity:1;animation:ff-pulse 1.6s ease-out infinite}
@keyframes ff-pulse{0%{transform:scale(.7)}70%{transform:scale(1.15)}100%{transform:scale(1.15);opacity:.35}}
.ff-panel h3{font-size:1.3rem;font-weight:800;margin-bottom:.6rem}
.ff-panel dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.4rem;border-top:3px solid var(--deep);padding-top:.9rem}
.ff-panel dt{font-weight:700;color:var(--deep)}
.ff-panel dd{margin:0;color:var(--muted)}
.ff[data-active] .ff-panel{display:none}
.ff[data-active] .ff-panel.on{display:block}
.ff:not([data-active]) .ff-panel+.ff-panel{margin-top:1.4rem}
.faults-foot{margin:1.6rem 0 0;font-size:.95rem;color:var(--muted)}
@media (max-width:960px){.ff{grid-template-columns:1fr}.ff-tabs button[aria-selected="true"]::before{display:none}}
@media (max-width:560px){.ff-visual{grid-template-columns:1fr}.ff-house{max-width:300px;justify-self:center}.ff-panel dl{grid-template-columns:1fr;gap:.1rem}.ff-panel dd{margin-bottom:.6rem}}
@media (prefers-reduced-motion:reduce){.osd{animation:none}.ff-house .spot.on circle{animation:none}}

/* ---------- Local area pages ---------- */
.crumbs{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.85rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.35rem;color:var(--line)}
.hero-tag{position:absolute;left:2%;bottom:6%;margin:0;background:var(--deep);color:#fff;padding:.55rem .9rem .6rem;border-radius:var(--radius);font-size:.85rem;line-height:1.2;box-shadow:0 10px 24px rgba(95,6,21,.25)}
.hero-tag b{display:block;font-size:1.7rem;font-weight:800;letter-spacing:-.03em;color:var(--cyan)}

/* Home-type picker */
.hp-tabs{display:flex;flex-wrap:wrap;gap:0 2rem;border-bottom:1px solid var(--line);margin-bottom:1.6rem}
.hp-tabs button{font:inherit;font-weight:700;font-size:1.08rem;color:var(--muted);background:none;border:0;padding:.7rem 0 .8rem;cursor:pointer;position:relative}
.hp-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:4px;background:transparent;transition:background .15s}
.hp-tabs button:hover{color:var(--deep)}
.hp-tabs button[aria-selected="true"]{color:var(--deep)}
.hp-tabs button[aria-selected="true"]::after{background:var(--blue)}
.hp-panel{display:none;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.4rem,4vw,3rem);align-items:center}
.hp-panel.on{display:grid;animation:hpIn .35s ease}
@keyframes hpIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hp-photo img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:38% 62% 10px 10px / 18% 22% 10px 10px}
.hp-copy h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;letter-spacing:-.03em;margin:0 0 .7rem}
.hp-copy p{max-width:32em}
.hp-do{border-left:4px solid var(--cyan);padding-left:1rem;color:var(--ink)}
.hp-do b{display:block;color:var(--deep);margin-bottom:.15rem}
@media (max-width:860px){.hp-panel{grid-template-columns:1fr}.hp-tabs{gap:0 1.3rem}.hp-tabs button{font-size:.98rem}}
@media (max-width:560px){.hp-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}.hp-tabs button{white-space:nowrap}}

/* Services with a photo that follows the row you point at */
.sv{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.sv-stage{position:sticky;top:8rem;aspect-ratio:5/4;border-radius:40% 60% 8px 8px / 30% 34% 8px 8px;overflow:hidden;background:var(--tint)}
.sv-img{position:absolute;inset:0;opacity:0;transition:opacity .35s ease}
.sv-img.on{opacity:1}
.sv-img img{width:100%;height:100%;object-fit:cover;object-position:var(--fx,50%) center}
.sv .rates li{transition:background .2s}
.sv .rates li.on h3{color:var(--blue)}
.sv-thumb{display:none}
@media (max-width:860px){
  .sv{grid-template-columns:1fr}.sv-stage{display:none}
  .sv .rates a{grid-template-columns:92px minmax(0,1fr) auto;column-gap:1rem}
  .sv-thumb{display:block;grid-row:1/span 2;align-self:center}
  .sv-thumb img{width:92px;height:70px;object-fit:cover;border-radius:6px}
  .sv .rates h3,.sv .rates p{grid-column:2}.sv .rates .price{grid-column:3}
}
@media (max-width:480px){.sv .rates a{grid-template-columns:72px minmax(0,1fr)}.sv-thumb img{width:72px;height:60px}.sv .rates .price{grid-column:2;grid-row:auto;text-align:left}.sv .rates .price[aria-hidden]{display:none}}

/* Signal map */
.sig .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.sig p+p{margin-top:.8rem}
.sig .big-tel{margin-top:1.6rem}
.sigmap{width:100%;max-width:460px;height:auto;justify-self:center;overflow:visible}
.sigmap .water{fill:none;stroke:#e03d58;stroke-width:14;stroke-linecap:round;opacity:.55}
.sigmap .river{font:500 11px var(--font);fill:#edd3ce}
.sigmap .beam{fill:none;stroke:rgba(255,255,255,.35);stroke-width:3;stroke-dasharray:4 7}
.sigmap .beam.pulse{stroke:var(--cyan);stroke-width:4;stroke-dasharray:28 400;stroke-dashoffset:428;animation:beam 2.4s linear infinite}
@keyframes beam{to{stroke-dashoffset:0}}
.sigmap .mast path{stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round}
.sigmap .ring{fill:none;stroke:var(--cyan);stroke-width:2;transform-origin:0 -30px;transform:translateY(-30px);animation:ring 2.4s ease-out infinite;opacity:0}
.sigmap .ring.r2{animation-delay:1.2s}
@keyframes ring{0%{opacity:.9;r:4}100%{opacity:0;r:34}}
.sigmap .home path{fill:#fff;stroke:#fff;stroke-width:2;stroke-linejoin:round}
.sigmap .home .ant{fill:none;stroke-linecap:round}
.sigmap .lbl{font:800 16px var(--font);fill:#fff}
.sigmap .sub{font:500 12px var(--font);fill:#edd3ce}
.sigmap .dist{font:600 12px var(--font);fill:#f5e8e5;text-anchor:middle}
@media (max-width:860px){.sig .wrap{grid-template-columns:1fr}}
.directory-row{display:block}
.directory-row ul{columns:3 14rem;column-gap:3rem}
.directory-row li{break-inside:avoid}
.ff-panel .ff-h3{font-size:1.3rem;font-weight:800;color:var(--deep);line-height:1.2;letter-spacing:-.02em;margin:0 0 .6rem}
.photo-tip .tip-h{font-size:1.35rem;font-weight:800;color:var(--deep);line-height:1.2;letter-spacing:-.02em;margin:0 0 .5rem}

/* Service pages */
.prose-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:start}
.prose h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.prose h2:not(:first-child){margin-top:2.2rem}
.prose p{max-width:38em;font-size:1.04rem}
.glance{position:sticky;top:8rem;border-top:3px solid var(--deep);padding-top:.4rem}
.glance dl{margin:0 0 1.4rem}
.glance div{padding:.8rem 0;border-bottom:1px solid var(--line)}
.glance dt{font-weight:800;color:var(--deep);font-size:.95rem}
.glance dd{margin:.15rem 0 0;color:var(--muted);font-size:.93rem;line-height:1.5}
.glance dd a{font-weight:800;font-size:1.25rem;color:var(--blue);text-decoration:none}
.band-photo .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.band-photo h2{margin-bottom:.8rem}
.band-photo p{margin-bottom:1.4rem}
.bp-img img{width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:10px 10px 46% 54% / 10px 10px 22% 26%;display:block}
.rates .rt{margin:0;font-size:1.3rem;font-weight:800;color:var(--deep);transition:color .15s;line-height:1.25}
.rates a:hover .rt,.sv .rates li.on .rt{color:var(--blue)}
.directory .dir-h{font-size:1.05rem;font-weight:800;color:var(--deep);margin:0 0 .4rem;padding-bottom:.45rem;border-bottom:3px solid var(--deep)}
@media (max-width:860px){.prose-grid,.band-photo .wrap{grid-template-columns:1fr}.glance{position:static}.sv .rates .rt{grid-column:2}}
@media (max-width:480px){.rates .rt{font-size:1.15rem}}

.local-photo img{width:100%;height:auto;display:block;border-radius:40% 60% 8px 8px / 26% 30% 8px 8px;margin-top:.8rem}
.local-photo .cap{font-size:.82rem;color:var(--muted);margin:.6rem 0 0}
/* regional sections on service pages */
.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,3vw,2.5rem);margin-top:1.25rem}
.regions>div{border-top:3px solid var(--deep);padding-top:1rem}
.regions h3{font-size:1.15rem;margin:0 0 .5rem}
.regions p{margin:0 0 .75rem}
.regions .near{font-size:.9rem;color:var(--muted)}
@media (max-width:860px){.regions{grid-template-columns:1fr}}
/* coverage + contact pages */
.cov-split{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.cov-list{display:block}
.cov-list ul{columns:2;column-gap:1.5rem}
.contact-teams{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.25rem,4vw,3rem);margin-top:1.25rem}
.contact-teams>div{border-top:3px solid var(--deep);padding-top:1rem}
.contact-teams h3{margin:0 0 .5rem}
.contact-teams .big-num{display:block;font-weight:800;font-size:clamp(1.6rem,3.5vw,2.2rem);color:var(--deep);text-decoration:none;margin:.5rem 0 1rem;letter-spacing:-.01em}
.steps{padding-left:1.25rem;margin:0 0 1.25rem}
.steps li{margin:.4rem 0}
@media (max-width:860px){.cov-split,.contact-teams{grid-template-columns:1fr}}
/* nav drop-down (TV Aerials) */
.nav .has-sub{position:relative;display:flex;align-items:flex-start}
.nav .sub-toggle{background:none;border:0;padding:.45rem .2rem .6rem .3rem;color:var(--deep);cursor:pointer;line-height:0}
.nav .sub-toggle svg{width:.7rem;height:.5rem;transition:transform .15s}
.nav .has-sub.open .sub-toggle svg{transform:rotate(180deg)}
.nav .sub{display:none;position:absolute;top:100%;left:-1rem;z-index:60;background:var(--paper);min-width:15rem;padding:.4rem 1rem .6rem;flex-direction:column;gap:0;border-top:3px solid var(--blue);box-shadow:0 14px 30px rgba(79,11,22,.16)}
.nav .sub a{font-weight:500;padding:.55rem 0;border-bottom:1px solid var(--line)}
.nav .sub li:last-child a{border-bottom:0}
.nav .sub a:hover{border-bottom-color:var(--line)}
.nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub,.nav .has-sub.open .sub{display:flex}
@media (max-width:960px){
  .nav .has-sub{flex-wrap:wrap}
  .nav .has-sub>a{flex:1}
  .nav .sub-toggle{padding:.75rem .6rem;border-bottom:1px solid var(--line)}
  .nav .sub{position:static;box-shadow:none;border-top:0;min-width:0;width:100%;padding:0 0 0 1rem}
  .nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub{display:none}
  .nav .has-sub.open .sub{display:flex}
}
.directory.dir4{grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 2rem}
@media (max-width:960px){.directory.dir4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.directory.dir4{grid-template-columns:1fr}}
#repair-areas,#reg-title{scroll-margin-top:8rem}
/* Areas directory as one accordion per region */
.directory.acc-dir{display:block;border-top:2px solid var(--deep)}
.acc{border-bottom:1px solid var(--line)}
.acc summary{display:flex;align-items:center;gap:1rem;padding:1.35rem 0;cursor:pointer;list-style:none}
.acc summary::-webkit-details-marker{display:none}
.acc summary h3,.acc summary .dir-h{flex:1;margin:0;padding:0;border:0;font-size:clamp(1.1rem,1.8vw,1.3rem);font-weight:800;color:var(--deep)}
.acc summary:hover h3,.acc summary:hover .dir-h{color:var(--blue)}
.acc-n{color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}
.acc-i{position:relative;width:14px;height:14px;flex:none}
.acc-i::before,.acc-i::after{content:"";position:absolute;background:var(--blue);border-radius:1px;transition:transform .2s}
.acc-i::before{left:0;right:0;top:6px;height:3px}
.acc-i::after{top:0;bottom:0;left:6px;width:3px}
.acc[open] .acc-i::after{transform:scaleY(0)}
.acc summary:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.acc ul{columns:4 11rem;column-gap:2.5rem;padding-bottom:1.4rem}
.acc li{break-inside:avoid}
/* Arch photo frames, sitewide (taken from John's Lovable review, 2026-11-10) */
.hero-art{aspect-ratio:4/5;max-width:420px}
.hero-art svg.blob{display:none}
.hero-art .photo{inset:0;border-radius:210px 210px 8px 8px;overflow:hidden;border-bottom:8px solid var(--blue)}
.hero-art .photo img{-webkit-mask:none;mask:none;object-position:center}
.rates-photo img{border-radius:220px 220px 8px 8px;border-bottom:6px solid var(--blue)}
.split-media img{border-radius:240px 240px 8px 8px;aspect-ratio:4/5;border-bottom:6px solid var(--blue)}
@media (max-width:860px){.hero-art{max-width:320px;width:80%}.rates-photo img{border-radius:180px 180px 8px 8px}}
@media (max-width:560px){.hero-art{max-width:260px}}
/* Homepage contact band in brand blue */
#contact{background:var(--blue);color:#fff;padding-block:clamp(2.5rem,6vw,4rem)!important}
#contact h2,#contact .lede,#contact dt,#contact dd,#contact .tels a,#contact dd a{color:#fff}
#contact .tels a:hover,#contact dd a:hover{color:var(--tint)}
#contact .tels small{color:var(--tint)}
#contact dl{border-top-color:var(--cyan)}
#contact .tels a{white-space:nowrap}
.contact-h{font-weight:800;font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.05;letter-spacing:-.035em;margin:0 0 .9rem;color:#fff}
/* Full-width photo hero (.hero-full), added by tools/hero_full.py */
.hero-full{background:var(--deep);color:#fff;isolation:isolate}
.hero-full .hero-bg{position:absolute;inset:0;z-index:-1}
.hero-full .hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-full .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(74,7,18,.94) 0%,rgba(74,7,18,.82) 38%,rgba(74,7,18,.35) 70%,rgba(74,7,18,.1) 100%)}
.hero-full .hero-grid{grid-template-columns:minmax(0,40rem) 1fr;min-height:clamp(30rem,64vh,40rem);padding-block:clamp(3rem,7vw,5.5rem) clamp(3.5rem,8vw,6rem)}
.hero-full h1{color:#fff}
.hero-full .lede{color:#f6eae8}
.hero-full .crumbs,.hero-full .crumbs a{color:#ebd0cb}
.hero-full .creds{color:#ecd3ce;border-top-color:var(--cyan)}
.hero-full .creds b{color:#fff}
.hero-full .hero-art{aspect-ratio:auto;max-width:none;align-self:end;justify-self:end}
.hero-full .hero-art .hero-tag{position:static}
.hero-full .hero-wave{position:absolute;left:0;right:0;bottom:-1px}
@media (max-width:860px){
  .hero-full .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-full .hero-bg::after{background:linear-gradient(180deg,rgba(74,7,18,.55) 0%,rgba(74,7,18,.88) 45%,rgba(74,7,18,.95) 100%)}
  .hero-full .hero-art{order:0;width:auto;justify-self:start}
}
.hero-full .hero-tag{width:auto;max-width:16rem;justify-self:end;align-self:end}
/* wide screens: photo sits on the right so it isn't cropped to a thin strip (John, 2026-11-10) */
@media (min-width:1200px){
  .hero-full{background:#4a0712}
  .hero-full .hero-bg{left:auto;width:max(64%,calc(100% - 560px))}
  .hero-full .hero-bg::after{background:linear-gradient(90deg,#4a0712 0%,rgba(74,7,18,.82) 22%,rgba(74,7,18,.4) 52%,rgba(74,7,18,.08) 100%)}
}
.band-deep{background:var(--deep);color:#fff}
.band-deep h2{color:#fff}
/* prices table and grouped FAQs */
.pt-wrap{overflow-x:auto;border-top:3px solid var(--deep);margin-top:1.25rem}
.price-table{border-collapse:collapse;width:100%;min-width:560px}
.price-table th,.price-table td{text-align:left;vertical-align:top;padding:1rem 1.2rem 1rem 0;border-bottom:1px solid var(--line)}
.price-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.price-table tbody th{font-weight:800;color:var(--deep);font-size:1.05rem}
.price-table .pt-p{font-weight:800;color:var(--blue);white-space:nowrap}
.faq-group{font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin:2rem 0 .6rem}
.faq-group:first-child{margin-top:0}
