/* Inner pages for Concept 02: same tokens as c2.css (--bg --ink --navy --blue --sky --tint --line --muted). */

/* page hero */
.pg-hero{position:relative;isolation:isolate;padding-block:clamp(28px,4vw,56px) clamp(32px,4.4vw,64px)}
.pg-hero::before{content:"";position:absolute;inset:-100px 0 0;z-index:-1;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;background-position:center top;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 90%);mask-image:linear-gradient(180deg,#000 0%,transparent 90%);opacity:.7}
.pg-hero-in{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center}
.pg-hero-in.has-img{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.pg-hero h1{font-size:clamp(34px,4.4vw,62px);margin:18px 0 16px;max-width:20ch}
.pg-hero h1 em{font-style:normal;color:var(--blue)}
.pg-hero .lede{font-size:clamp(17px,1.4vw,20px);color:var(--muted);max-width:52ch}
.pg-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.pg-actions .btn{min-height:52px}
.pg-hero-img{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--navy)}
.pg-hero-img img{width:100%;height:100%;object-fit:cover}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);align-items:center}
.crumbs a{text-decoration:none;color:var(--blue)}.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* body layout */
.pg-body{padding-top:0}
.pg-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.pg-grid.with-aside{grid-template-columns:minmax(0,1fr) 340px}
.prose{max-width:76ch;font-size:18px;line-height:1.7}
.prose-wide{max-width:none;margin-bottom:32px}
.prose>*+*{margin-top:1.1em}
.prose h1,.prose h2,.prose h3,.prose h4{margin-top:1.8em;margin-bottom:.1em;color:var(--ink);line-height:1.1}
.prose h1{font-size:clamp(28px,3vw,40px)}
.prose h2{font-size:clamp(26px,2.8vw,38px)}
.prose h3{font-size:clamp(21px,2vw,26px)}
.prose h4{font-size:19px}
.prose>:first-child{margin-top:0}
.prose p,.prose li{color:#27345a}
.prose a{color:var(--blue);font-weight:600;text-underline-offset:3px}
.prose a:hover{color:var(--blue-h)}
.prose ul,.prose ol{padding-left:1.3em;display:grid;gap:.5em}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li::marker{color:var(--blue)}
.prose img{border-radius:12px;margin-block:1.4em}
.prose figure{margin:1.4em 0}
.prose table{margin-block:1.4em;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;display:block;overflow-x:auto}
.prose blockquote{border-left:3px solid var(--blue);padding:4px 0 4px 18px;font-weight:600}
.prose span[style]{font-size:inherit!important}
.post-meta{color:var(--muted);margin-bottom:18px}
.prose-post{font-size:18px}

/* side column */
.side{position:sticky;top:104px;display:grid;gap:16px}
.side-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;display:grid;gap:12px}
.side-card .mono{color:var(--blue)}
.side-card.hi{background:var(--navy);border-color:var(--navy);color:#fff}
.side-card.hi .mono{color:var(--sky)}
.side-card.hi p{color:#cbd6ec;font-size:15px}
.side-card h2{font-size:26px;letter-spacing:-.025em;line-height:1.08}
.side-tel{display:inline-flex;align-items:center;gap:12px;font-size:26px;font-weight:800;letter-spacing:-.03em;text-decoration:none;color:inherit}
.side-tel svg{width:22px;height:22px;color:var(--sky)}
.side-tel:hover{color:var(--sky)}
.side-w{display:grid;gap:8px;font-weight:600}
.side-w b{font-size:24px;font-weight:800;letter-spacing:-.04em;color:var(--blue);margin-right:6px}
.side-lic{font-size:14px;color:var(--muted)}
.side-list{display:grid;gap:2px}
.side-list a{display:flex;align-items:center;min-height:44px;padding:0 10px;margin-inline:-10px;border-radius:8px;text-decoration:none;font-weight:600;font-size:15px}
.side-list a:hover{background:var(--tint);color:var(--blue-h)}

/* parent listing cards */
.kids{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.kids a{position:relative;display:flex;flex-direction:column;gap:10px;min-height:150px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.kids a .mono{color:var(--blue)}
.kids a strong{font-size:22px;letter-spacing:-.02em;line-height:1.15;padding-right:44px}
.kids .go{position:absolute;right:18px;top:20px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff;transition:.2s}
.kids .go svg{width:16px;height:16px}
.kids a:hover,.kids a:focus-visible{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(13,26,56,.6);border-color:var(--sky)}
.kids a:hover .go{background:var(--ink);color:#fff;border-color:var(--ink)}
.kids-areas{grid-template-columns:repeat(4,minmax(0,1fr))}
.kids-areas a{min-height:120px}

/* testimonials page */
.tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tgrid .rc{flex:initial}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,56px);align-items:start}
.contact-form.ff{padding:clamp(18px,2.4vw,30px);border:1px solid var(--line)}
.contact-form h2{font-size:28px}
.contact-info{display:grid;gap:16px}
.hours{width:100%}.hours th,.hours td{padding:9px 0;font-size:15px;border-bottom:1px solid var(--line);width:auto}
.hours th{color:var(--muted);font-weight:600;width:40%}.hours td{font-weight:700}
.map-wrap{margin-top:clamp(28px,4vw,56px)}
.map-wrap iframe{width:100%;height:clamp(280px,36vw,460px);border:0;border-radius:14px;background:var(--tint)}

/* closing estimate band */
.cta-band{padding-top:0}
.cta-band .fin h2{font-size:clamp(30px,3.6vw,50px)}
.cta-box{align-self:stretch;align-content:start}
.steps3{display:grid;gap:0;border-top:1px solid var(--line)}
.steps3 li{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}
.steps3 b{font-family:var(--m);color:var(--blue)}
.steps3 strong{display:block}.steps3 span{color:var(--muted);font-size:15px}
.cta-box .btn{width:100%}

/* blog cards */
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pcards a{display:flex;flex-direction:column;gap:10px;height:100%;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 12px 22px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.pcards a:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(13,26,56,.6);border-color:var(--sky)}
.pc-img{display:block;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:var(--tint)}
.pc-img img{width:100%;height:100%;object-fit:cover}
.pcards .mono{color:var(--blue);padding-inline:10px;margin-top:6px}
.pcards strong{font-size:20px;letter-spacing:-.02em;line-height:1.2;padding-inline:10px}
.pcards .ex{color:var(--muted);font-size:15px;padding-inline:10px}
.pager{margin-top:36px}
.pager .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:0 16px;border:1.5px solid var(--line);border-radius:9px;text-decoration:none;font-weight:700;background:#fff}
.pager .current,.pager .page-numbers:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* imported content: FAQ, team, gallery, forms */
.prose details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0}
.prose details+details{margin-top:10px}
.prose summary{cursor:pointer;list-style:none;min-height:56px;padding:16px 52px 16px 20px;font-weight:800;font-size:18px;letter-spacing:-.01em;position:relative}
.prose summary::-webkit-details-marker{display:none}
.prose summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:26px;color:var(--blue);font-weight:600}
.prose details[open] summary::after{content:"\2212"}
.prose details>div{padding:0 20px 20px}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;padding:0}
.team-grid li{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;list-style:none}
.team-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;margin:0;border-radius:0}
.team-grid strong{display:block;padding:16px 18px;font-size:20px;letter-spacing:-.02em}
.gal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0}
.gal-grid li{list-style:none;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--navy)}
.gal-grid img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0}
.prose iframe{max-width:100%}
.pg-gallery,.pg-the-team,.pg-frequently-asked-questions{max-width:none}
.pg-frequently-asked-questions{max-width:76ch}

@media (max-width:1100px){
  .pg-grid.with-aside{grid-template-columns:1fr}
  .side{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg-hero-in.has-img{grid-template-columns:1fr}
  .kids,.pcards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kids-areas{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contact-grid{grid-template-columns:1fr}
  .team-grid,.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .pg-hero h1{font-size:clamp(32px,9.4vw,44px)}
  .pg-actions .btn{flex:1 1 100%}
  .side{grid-template-columns:1fr}
  .kids,.pcards,.tgrid,.team-grid,.gal-grid{grid-template-columns:1fr}
  .kids-areas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prose{font-size:17px}
}

/* restored live blocks: FAQ / All About city, About page How It Works */
.prose .faq-sec{margin-top:44px}
.prose .faq-sec h2{margin-bottom:16px}
.prose .faq-sec details>div p:first-child{margin-top:0}
.how-it-works{margin-top:48px}
.how-it-works .hw{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.how-it-works .hw li{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}
.how-it-works .hw-n{position:absolute;right:20px;top:16px;font-family:var(--m);font-weight:700;font-size:28px;color:var(--sky)}
.how-it-works .hw img{width:64px;height:64px;object-fit:contain;margin:0 0 14px;display:block}
.how-it-works .hw h3{font-size:20px;margin:0 0 8px}.how-it-works .hw p{margin:0;color:var(--muted)}
@media (max-width:820px){.how-it-works .hw{grid-template-columns:1fr}}

/* ===== photo hero on every inner page ===== */
.pg-hero-v{margin-top:-100px;padding-top:calc(100px + clamp(22px,3vw,44px));padding-bottom:clamp(34px,4.2vw,60px);min-height:clamp(360px,44vh,480px);display:flex;align-items:center;overflow:hidden;color:#fff;background:#0d1a38}
.pg-hero-v::before{display:none}
.pg-hero-v>.wrap{position:relative;z-index:2;width:100%}
.pg-hbg{position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,rgba(8,20,46,.94) 0%,rgba(13,26,56,.78) 48%,rgba(13,26,56,.45) 100%),var(--hbg) center/cover no-repeat;transform:scale(1.04);animation:pgKb 26s ease-in-out infinite alternate}
@keyframes pgKb{to{transform:scale(1.12) translate(-1%,-.8%)}}
.pg-hbg::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='42' viewBox='0 0 64 42'%3E%3Cg fill='none' stroke='%239cc9ee' stroke-opacity='.14' stroke-width='1.2'%3E%3Cpath d='M0 21a32 21 0 0 0 64 0'/%3E%3Cpath d='M-32 42a32 21 0 0 0 64 0'/%3E%3Cpath d='M32 42a32 21 0 0 0 64 0'/%3E%3C/g%3E%3C/svg%3E");background-size:64px 42px;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000);mask-image:linear-gradient(90deg,transparent 30%,#000)}
.pg-hero-v .crumbs{color:#b9cdea}
.pg-hero-v .crumbs a{color:#9cd0ff}
.pg-hero-v .crumbs [aria-current]{color:#fff}
.pg-hero-v h1{color:#fff;max-width:22ch;font-size:clamp(36px,4.8vw,70px);text-shadow:0 4px 28px rgba(0,0,0,.35)}
.pg-hero-v h1 em{background:linear-gradient(100deg,#9cd0ff,#4d97d2);-webkit-background-clip:text;background-clip:text;color:transparent}
.pg-hero-v .lede{color:#dbe5f5;max-width:54ch}
.pg-hero-v .btn-g{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:12px;border:1.5px solid rgba(255,255,255,.5);background:rgba(255,255,255,.1);backdrop-filter:blur(8px);color:#fff;font-weight:800;text-decoration:none;transition:background .2s,border-color .2s,transform .2s}
.pg-hero-v .btn-g svg{width:20px;height:20px}
.pg-hero-v .btn-g:hover,.pg-hero-v .btn-g:focus-visible{background:rgba(255,255,255,.22);border-color:#fff;transform:translateY(-2px)}
.pg-chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0}
.pg-chips li{padding:8px 14px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);font:700 12px/1 var(--m);letter-spacing:.06em;text-transform:uppercase;color:#e8f0fb}
.pg-hero-v .crumbs,.pg-hero-v h1,.pg-hero-v .lede,.pg-hero-v .pg-actions,.pg-hero-v .pg-chips{animation:pgIn .8s cubic-bezier(.2,.7,.2,1) both}
.pg-hero-v h1{animation-delay:.08s}.pg-hero-v .lede{animation-delay:.16s}.pg-hero-v .pg-actions{animation-delay:.24s}.pg-hero-v .pg-chips{animation-delay:.32s}
@keyframes pgIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media (max-width:640px){.pg-hero-v{padding-top:calc(84px + 28px);min-height:0}.pg-hero-v .btn-g{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.pg-hbg{animation:none}.pg-hero-v .crumbs,.pg-hero-v h1,.pg-hero-v .lede,.pg-hero-v .pg-actions,.pg-hero-v .pg-chips{animation:none}}

.pg-hero-v+.pg-body{padding-top:clamp(32px,3.6vw,52px)}
.pg-hero-v h1{font-size:clamp(32px,3.5vw,52px);line-height:1.06;max-width:26ch}
@media (max-width:640px){.pg-hero-v h1{font-size:clamp(30px,8.4vw,38px)}}

/* heroes: no wave / scale pattern overlay */
.pg-hbg::after{display:none;content:none;background:none}

/* blog sidebar: guides with thumbnails */
.side-guides{display:grid;gap:4px;margin-top:2px}
.side-guides a{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:8px;margin-inline:-8px;border-radius:10px;text-decoration:none;transition:background .2s}
.side-guides a:hover{background:var(--tint)}
.side-guides img,.sg-ph{width:72px;height:72px;border-radius:8px;object-fit:cover;background:var(--tint)}
.sg-t{display:grid;gap:4px;min-width:0}
.sg-t b{font-size:15px;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sg-t time{font-family:var(--m);font-size:12px;letter-spacing:.04em;color:var(--muted)}
.side-guides a:hover b{color:var(--blue-h)}
.side-all{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--blue);text-decoration:none;margin-top:4px}
.side-all svg{width:16px;height:16px}
.side-all:hover{color:var(--blue-h)}

/* blog post H1: two lines, full hero width */
.single-post .pg-hero-v h1{max-width:none;font-size:clamp(22px,2.75vw,42px);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
@media (max-width:1100px){.single-post .pg-hero-v h1{font-size:clamp(20px,3.3vw,32px)}}
@media (max-width:700px){.single-post .pg-hero-v h1{font-size:clamp(17px,4.6vw,22px);letter-spacing:-.02em}}

/* hero: badges now sit under the CTA buttons */
.pg-hero-v .tb{margin:26px 0 0}
.pg-hero-v .lede{margin:0 0 24px}
@media (max-width:700px){.single-post .pg-hero-v h1{font-size:clamp(15px,4.1vw,19px)}}

/* long tables or strings in a post must not widen the page */
.pg-grid>*{min-width:0}
.prose-post{overflow-wrap:break-word}
.prose-post table{max-width:100%}

/* contact page without a form: three info cards across */
.contact-grid.nf{grid-template-columns:1fr}
.contact-grid.nf .contact-info{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
@media (max-width:1100px){.contact-grid.nf .contact-info{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.contact-grid.nf .contact-info{grid-template-columns:1fr}}
.contact-grid.nf .side-card{align-content:start}

/* blog cards: identical structure so every card reads the same height */
.pcards strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:calc(3 * 1.2em)}
.pcards .ex{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:calc(3 * 1.6em);line-height:1.6}

/* Residential / Commercial boxes: photo background with a navy wash */
.kids a.has-img{min-height:210px;justify-content:flex-end;border-color:transparent;color:#fff;overflow:hidden;isolation:isolate;background:var(--navy) var(--kimg) center/cover no-repeat}
.kids a.has-img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,56,.35) 0%,rgba(13,26,56,.78) 62%,rgba(13,26,56,.92) 100%);transition:background .3s}
.kids a.has-img .mono{color:#9fcdf1}
.kids a.has-img strong{color:#fff;padding-right:0;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.kids a.has-img .go{background:rgba(255,255,255,.95);color:var(--ink);border-color:transparent}
.kids a.has-img:hover::before,.kids a.has-img:focus-visible::before{background:linear-gradient(180deg,rgba(31,109,181,.3) 0%,rgba(13,26,56,.72) 60%,rgba(13,26,56,.9) 100%)}
.kids a.has-img:hover .go{background:var(--blue);color:#fff}

/* ===== About page ===== */
.ab-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
.ab-copy h2{font-size:clamp(28px,3.2vw,44px);line-height:1.08;letter-spacing:-.03em;margin:10px 0 18px}
.ab-copy .mono{color:var(--blue)}
.ab-copy p{color:var(--muted);margin-bottom:14px;max-width:56ch}
.ab-copy .ab-lic{font-weight:700;color:var(--ink);font-size:15px;margin-bottom:22px}
.ab-copy .pg-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.ab-photo{position:relative;isolation:isolate}
.ab-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:0 40px 70px -40px rgba(13,26,56,.7)}
.ab-photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--sky);border-radius:22px;z-index:-1;opacity:.55}
.ab-chip{position:absolute;left:-18px;bottom:28px;background:var(--navy);color:#fff;border-radius:14px;padding:14px 20px;display:grid;box-shadow:0 22px 40px -20px rgba(13,26,56,.8)}
.ab-chip b{font-size:26px;letter-spacing:-.03em;line-height:1}
.ab-chip span{font-size:13px;color:#cbd6ec;margin-top:4px}
.ab-warr{background:var(--navy);color:#fff;background-image:linear-gradient(90deg,rgba(77,151,210,.12) 1px,transparent 1px);background-size:64px 100%}
.ab-warr-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-block:clamp(28px,4vw,48px)}
.ab-w{display:grid;gap:6px;align-content:start;padding:6px clamp(14px,2vw,28px);border-left:1px solid rgba(255,255,255,.16)}
.ab-w:first-child{border-left:0;padding-left:0}
.ab-w b{font-size:clamp(40px,4.6vw,64px);font-weight:800;letter-spacing:-.05em;line-height:1;color:#fff}
.ab-w span{font-size:15px;color:#cbd6ec;max-width:20ch}
.ab-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ab-cards li{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;padding:26px;border-radius:18px;overflow:hidden;color:#fff;background:var(--navy) var(--ab) center/cover no-repeat}
.ab-cards li::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,56,.25),rgba(13,26,56,.82) 58%,rgba(13,26,56,.94))}
.ab-cards .mono{color:#9fcdf1}
.ab-cards h3{font-size:24px;letter-spacing:-.025em;line-height:1.12;margin:8px 0 10px}
.ab-cards p{color:#e1e9f6;font-size:16px}
.ab-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ab-tiles a{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:300px;padding:28px;border-radius:18px;overflow:hidden;color:#fff;text-decoration:none;background:var(--navy) var(--ab) center/cover no-repeat;transition:transform .25s,box-shadow .25s}
.ab-tiles a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,56,.1),rgba(13,26,56,.85));transition:background .3s}
.ab-tiles a:hover{transform:translateY(-4px);box-shadow:0 28px 50px -28px rgba(13,26,56,.8)}
.ab-tiles a:hover::before{background:linear-gradient(180deg,rgba(31,109,181,.25),rgba(13,26,56,.85))}
.ab-tiles .mono{color:#9fcdf1}
.ab-tiles strong{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.03em;line-height:1.1}
.ab-tiles .go{position:absolute;right:22px;top:22px;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center}
.ab-tiles .go svg{width:18px;height:18px}
.ab-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ab-steps li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 0 26px;overflow:hidden}
.ab-steps img{width:100%;aspect-ratio:3/2;object-fit:cover}
.ab-steps b{display:grid;width:52px;height:52px;margin:-26px 0 0 24px;position:relative;border-radius:50%;background:var(--blue);color:#fff;place-items:center;font-family:var(--m);font-size:15px;border:4px solid #fff}
.ab-steps h3{font-size:22px;letter-spacing:-.02em;margin:14px 24px 8px}
.ab-steps p{color:var(--muted);margin-inline:24px;font-size:16px}
.ab-faces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ab-faces img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px;background:var(--tint)}
.ab-faces span{display:block;margin-top:10px;font-weight:700;text-align:center}
.ab-cta{position:relative;isolation:isolate;color:#fff;background:var(--navy) var(--ab) center/cover no-repeat fixed;padding-block:clamp(64px,9vw,128px);text-align:center}
.ab-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(13,26,56,.92),rgba(26,43,86,.78))}
.ab-cta .mono{color:var(--sky)}
.ab-cta h2{font-size:clamp(34px,5vw,68px);line-height:1.02;letter-spacing:-.04em;margin:12px auto 16px;max-width:16ch}
.ab-cta p{color:#dbe5f5;max-width:46ch;margin-inline:auto}
.ab-cta .pg-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}
.ab-cta .ab-hrs{margin-top:20px;font-size:14px;color:#aebfdc}
@media (max-width:1100px){
  .ab-split{grid-template-columns:1fr}
  .ab-photo{order:-1}.ab-chip{left:14px}.ab-photo::before{display:none}
  .ab-warr-in{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .ab-w:nth-child(3){border-left:0;padding-left:0}
  .ab-cards,.ab-steps{grid-template-columns:1fr}
  .ab-cards li{min-height:280px}
  .ab-cta{background-attachment:scroll}
}
@media (max-width:700px){.ab-tiles{grid-template-columns:1fr}.ab-tiles a{min-height:240px}.ab-faces{gap:8px}.ab-cta .pg-actions .btn{flex:1 1 100%}}
.ab-steps>li,.ab-cards>li,.ab-split>*{min-width:0}.ab-steps,.ab-cards{width:100%}
.ab-story,.ab-str,.ab-serve,.ab-how,.ab-team,.ab-cta{overflow-x:clip}
.ab-str .sh h2,.ab-serve .sh h2,.ab-how .sh h2{white-space:normal}
.kids-areas a.has-img{min-height:190px}.kids-areas a.has-img strong{font-size:20px}

/* Service-page content images: imported WP align classes + fixed width/height attrs left 400px thumbnails stranded on the left */
.prose img.alignleft,.prose img.alignright,.prose img.aligncenter,.prose img.alignnone,.prose img.size-full,.prose img.size-large,.prose img.size-medium{float:none;display:block;margin-inline:0}
.prose img[class*="wp-image-"]{width:100%;max-width:100%;height:auto;aspect-ratio:3/2;max-height:440px;object-fit:cover;object-position:center 40%;margin:0 0 1.2em;box-shadow:0 10px 28px rgba(17,28,64,.12)}
@media(max-width:700px){.prose img[class*="wp-image-"]{aspect-ratio:3/2;max-height:260px}}

/* FAQ page: looping roof repair clip, right column */
.vid-aside{position:sticky;top:124px}
.vid-card{position:relative;margin:0;border-radius:18px;overflow:hidden;background:#0d1a38;box-shadow:0 24px 50px -24px rgba(13,26,56,.55);aspect-ratio:3/4}
.vid-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;color:#fff;font-weight:700;font-size:15px;background:linear-gradient(to top,rgba(8,16,38,.85),transparent)}
.vid-pp{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(8,16,38,.6);color:#fff;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(4px)}
.vid-pp svg{width:18px;height:18px;fill:#fff}.vid-pp .p2{display:none}.vid-pp[data-state="paused"] .p1{display:none}.vid-pp[data-state="paused"] .p2{display:inline}
@media (max-width:900px){.vid-aside{position:static}.vid-card{aspect-ratio:16/10}}

/* pages without a side column: centre the article */
.pg-grid:not(.with-aside)>.prose{margin-left:auto;margin-right:auto;width:100%}

/* service-area pages: "Areas We Serve" side column */
.area-aside{position:static}
.as-card{padding:0;gap:0;overflow:hidden;border-color:#d5e1f1;box-shadow:0 18px 40px -26px rgba(13,26,56,.45)}
.as-h{position:relative;padding:22px 22px 18px;background:linear-gradient(135deg,#1a2b56 0%,#1f4a86 100%);color:#fff}
.as-h::after{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(77,151,210,.45),transparent 70%)}
.as-h .mono{color:var(--sky);position:relative}
.as-h h2{color:#fff;margin:4px 0 6px;position:relative}
.as-sub{margin:0;color:#cbd6ec;font-size:14px;position:relative}.as-sub b{color:#fff}
.as-list{list-style:none;margin:0;padding:8px;display:grid;gap:2px}
.as-list a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink);transition:background .18s,transform .18s}
.as-pin{flex:0 0 auto;width:34px;height:34px;padding:7px;border-radius:50%;background:var(--tint);color:var(--blue);transition:background .18s,color .18s}
.as-t{flex:1;min-width:0;display:grid;line-height:1.2}
.as-n{font-weight:800;font-size:16px;letter-spacing:-.01em}
.as-p{font-size:12.5px;color:var(--muted,#5b6b86)}
.as-go{flex:0 0 auto;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;color:#9db3d3;opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s}
.as-list a:hover,.as-list a:focus-visible{background:var(--tint);transform:translateX(2px)}
.as-list a:hover .as-pin,.as-list a:focus-visible .as-pin{background:var(--blue);color:#fff}
.as-list a:hover .as-go,.as-list a:focus-visible .as-go{opacity:1;transform:none;color:var(--blue)}
.as-list .cur a{background:var(--blue);color:#fff;pointer-events:none}
.as-list .cur .as-pin{background:#fff;color:var(--blue)}
.as-list .cur .as-p{color:#d6e7fa}
.as-here{flex:0 0 auto;font:700 10.5px/1 var(--m,monospace);letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:6px 8px;border-radius:99px}
.as-all{display:flex;align-items:center;justify-content:center;gap:8px;margin:2px 8px 10px;padding:12px;border-radius:10px;border:1.5px dashed #b9cde6;color:var(--blue);font-weight:800;font-size:14px;text-decoration:none}
.as-all svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.as-all:hover{background:var(--tint);border-style:solid}
.as-cta h2{font-size:24px}
@media (max-width:1100px){.area-aside{position:static;grid-template-columns:1fr}.as-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.as-list{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.as-list a,.as-go,.as-pin{transition:none}}

/* Areas We Serve: stays in view while scrolling (desktop); the city list scrolls inside the card */
@media (min-width:1101px){
  .area-aside{position:sticky;top:124px;align-self:start;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 144px)}
  .area-aside .as-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .area-aside .as-h{flex:0 0 auto;padding:16px 20px 14px}
  .area-aside .as-h h2{font-size:23px;margin:2px 0 4px}
  .area-aside .as-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--blue) #e6eef8;scroll-behavior:smooth}
  .area-aside .as-list::-webkit-scrollbar{width:7px}.area-aside .as-list::-webkit-scrollbar-track{background:#e6eef8;border-radius:8px}.area-aside .as-list::-webkit-scrollbar-thumb{background:var(--blue);border-radius:8px}
  .area-aside .as-all{flex:0 0 auto;margin:6px 8px 8px;padding:9px}
  .area-aside .as-cta{flex:0 0 auto;padding:16px 18px;gap:8px}
  .area-aside .as-cta h2{font-size:20px}
  .area-aside .as-cta>p:not(.mono){display:none}
  .area-aside .as-cta .side-tel{font-size:22px}
}

/* Service pages: sticky photo in the right column, follows the reader while scrolling */
.svc-img-aside{position:sticky;top:104px;align-self:start}
.svc-img-card{margin:0;border-radius:18px;overflow:hidden;background:#0d1a38;box-shadow:0 24px 50px -24px rgba(13,26,56,.55);aspect-ratio:4/5}
.svc-img-card img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.svc-img-aside{position:static}.svc-img-card{aspect-ratio:16/10}}

/* Long live-site H1s: scale the hero heading by length so 60 to 110 character keyword headings stay readable */
.pg-hero-v h1.h1-l{font-size:clamp(28px,2.9vw,42px);max-width:30ch;line-height:1.1}
.pg-hero-v h1.h1-xl{font-size:clamp(25px,2.4vw,36px);max-width:36ch;line-height:1.12}
@media (max-width:640px){.pg-hero-v h1.h1-l{font-size:clamp(25px,7vw,31px)}.pg-hero-v h1.h1-xl{font-size:clamp(22px,6.2vw,27px)}}

/* Buttons inside article text keep their own colours (prose links are blue) */
.prose a.btn,.prose a.btn:hover{color:#fff;text-decoration:none}
