:root,body.light,body.dark{--bg:#f2f2f0;--ink:#000000;--panel:#e4e4e1;--line:#d2d2ce;--line-soft:#e2e2df;--card:#ffffff;--card-hover:#f7f7f5;--dark:#000000;--dark-ink:#f4f4f3;--dark-muted:#a1a1a6;--dark-panel:#151517;--dark-line:#2a2a2e;--accent:#e3262e;--accent-deep:#b3121c;--button:#ffffff;--muted:#56565c;--soft:#e9e9e6;--cta-eyebrow:#000000;--dark-rgb:0 0 0;--bg-rgb:242 242 240;--font-display:'Unbounded';--font-body:'Jakarta';--radius:12px}
/* Unbounded + Plus Jakarta Sans are declared in style.css and shipped in assets/fonts */
/* showroom: the accepted v4 look; no overrides */

/* restyle palette (black / silver / red) — polish that only reaches jobs on this palette.
   Appended to theme.css by build.py when brand.palette (or the theme default) is "restyle". */

/* neutral silver greys in place of the v4 sage greys */
.v4heading p:not(.eyebrow),.v4lead,.v4intro>p:last-child,.v4editorial p:not(.eyebrow),.v4service-row p:not(.eyebrow),.v4twocol>div>p,.v4faq p,.v4steps p,.v4service p,.v4contact-aside p,.v4caption,.coverage-diagram small{color:var(--muted)}
.v4dark .v4heading p:not(.eyebrow),.v4dark .v4caption{color:var(--dark-muted)}
.v4service-row,.v4faq details,.v4steps article{border-top-color:var(--line)}
.footergrid p,.footerbase{color:var(--dark-muted)}.footerbase{border-top-color:var(--dark-line)}
.v4lawcards strong{color:var(--accent-deep)}

/* hexagon ceiling motif: outline honeycomb at ~6%, falling off like the bay lights */
#difference,.v4cta{position:relative;isolation:isolate}
#difference::before,.v4cta::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66v34M28 0v34L0 50v34l28 16 28-16V50L28 34' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E") 50% 0/84px 150px;opacity:.06}
#difference::before{-webkit-mask-image:linear-gradient(#000,transparent 520px);mask-image:linear-gradient(#000,transparent 520px)}
.v4cta::before{-webkit-mask-image:radial-gradient(90% 130% at 100% 0,#000,transparent 75%);mask-image:radial-gradient(90% 130% at 100% 0,#000,transparent 75%);opacity:.09}

/* closing CTA: black readout card with one red action instead of a full red slab */
.v4cta{background:var(--dark);color:var(--dark-ink);border:1px solid var(--dark-line);overflow:hidden}
.v4cta .eyebrow{color:var(--accent)}
.v4cta p:not(.eyebrow){color:var(--dark-muted)}
.v4cta .btn{background:var(--accent);color:var(--button)}

/* service rows: number | copy + spec list | photo (fixes the 4th grid child wrapping into a sliver) */
.v4service-row{grid-template-columns:72px minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:56px;row-gap:26px;align-items:start}
.v4service-row>.v4photo{grid-column:3;grid-row:1/span 2;aspect-ratio:1/1;min-height:0;height:auto}
.v4service-row>.v4photo img{height:100%}
.v4service-row>.coverage-diagram{grid-column:2;grid-row:2;background:transparent;padding:0;border-radius:0;margin:0}
.v4service-row .coverage-diagram .package-list{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;padding:0;margin:0 0 8px;max-width:560px;font-size:14px}
.v4service-row .coverage-diagram .package-list li{padding:10px 0}
.v4service-row .v4photo-empty{display:grid}

/* home service cards: less dead space under short summaries */
.v4service p{min-height:48px}.v4service h3{margin:22px 0 10px}.v4service b{margin-top:14px}

/* gallery: portrait phone shots in an even 4-up grid */
.v4gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-bottom:90px}
.v4gallery>.v4photo{aspect-ratio:4/5;min-height:0}
.v4gallery>.v4photo img{object-position:50% 55%}

@media(max-width:1049px){
 .v4service-row{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);column-gap:28px}
 .v4gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .v4service-row{grid-template-columns:34px minmax(0,1fr);grid-template-rows:none;column-gap:12px;row-gap:20px}
 .v4service-row>.v4photo{grid-column:1/-1;grid-row:auto;aspect-ratio:4/3}
 .v4service-row>.coverage-diagram{grid-column:1/-1;grid-row:auto}
 .v4service-row .coverage-diagram .package-list{grid-template-columns:1fr}
 .v4gallery{gap:10px;padding-bottom:56px}
 .v4gallery figcaption{padding:44px 10px 10px;font-size:8px;letter-spacing:1px;line-height:1.5}
 .v4cta{padding:32px 26px}
}
/* phones: the sticky Call / Text / Quote bar already carries the actions, so the header stays a clean logo + Menu row */
@media(max-width:640px){
 .customer-header .header-actions{display:none}
 .v4service{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;align-items:baseline;padding:20px 18px}
 .v4service>span{grid-column:1;grid-row:1}
 .v4service h3{grid-column:2;grid-row:1;margin:0;min-height:0;font-size:14px}
 .v4service b{grid-column:3;grid-row:1;margin:0}
 .v4service p{grid-column:2/4;grid-row:2;min-height:0;margin:6px 0 0}
}
