:root{--c-bg:#f4f1f4;--c-surface:#ffffff;--c-surface-2:#faeeee;--c-ink:#0d1520;--c-muted:#656971;--c-line:#d8d7db;--c-brand:#be1010;--c-on-brand:#ffffff;--c-brand-text:#be1010;--c-accent:#225d99;--c-on-accent:#ffffff;--c-dark:#390a0e;--c-on-dark:#f5f7fa;--c-muted-on-dark:#bdb0b3;--c-accent-on-dark:#5b87b3;--c-card:var(--c-surface);--c-card-2:var(--c-bg);--c-band:var(--c-surface);--c-chip:var(--c-bg);--c-chip-2:var(--c-surface);--c-muted-card:var(--c-muted);--c-muted-band:var(--c-muted);--c-link:var(--c-brand-text);--c-link-card:var(--c-brand-text);--c-link-band:var(--c-brand-text);--c-link-chip:var(--c-brand-text);--c-link-chip-2:var(--c-brand-text);--c-star:var(--c-accent);--c-field:var(--c-muted);--c-fill:var(--c-brand);--c-on-fill:var(--c-on-brand);--c-fill-icon:var(--c-on-brand);--c-act:var(--c-accent);--c-on-act:var(--c-on-accent);--c-act-dark:var(--c-accent);--c-on-act-dark:var(--c-on-accent);--c-hero:var(--c-dark);--p:var(--c-brand-text);--pd:var(--c-dark);--a:var(--c-accent);--ink:var(--c-ink);--soft:var(--c-surface);--line:var(--c-line);--muted:var(--c-muted);--f-body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-head:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--fs-base:17px;--lh-body:1.55;--fw-body:400;--fw-med:400;--fw-semi:700;--fw-bold:700;--fw-black:700;--fw-head:700;--fw-h3:700;--ls-head:0;--lh-head:1.15;--case-head:none;--fs-h1:clamp(32px,3.261vw + 20.26px,62px);--fs-h2:clamp(30px,1.739vw + 23.74px,46px);--fs-h3:30px;--fs-h1p:clamp(30px,1.196vw + 25.7px,41px);--fs-h2p:clamp(24px,0.87vw + 20.87px,32px);--case-btn:none;--ls-btn:normal;--fs-btn:1rem;--ls-label:.06em;--w-max:1060px;--w-text:70ch;--gutter:20px;--r-sm:12px;--r-md:14px;--r-lg:20px;--r-img:0px;--r-in:10px;--r-btn:10px;--sp-section:88px;--sp-block:40px;--gap:22px;--sp-hero:110px;--sp-hero-b:90px;--sp-phero:64px;--sp-phero-b:56px;--hdr-h:70px;--sh-card:0 14px 34px -26px rgba(0,0,0,.35);--sh-lift:0 18px 40px -22px rgba(0,0,0,.35);--sh-photo:none;--sh-form:0 30px 60px -30px rgba(0,0,0,.5);--step--1:15.1px;--step-0:clamp(17px,0vw + 17px,17px);--step-1:clamp(19px,0.217vw + 18.22px,21px);--step-2:clamp(21px,0.543vw + 19.04px,26px);--step-3:clamp(23px,0.978vw + 19.48px,32px);--step-4:clamp(26px,1.522vw + 20.52px,40px);--step-5:clamp(29px,2.283vw + 20.78px,50px);--step-6:clamp(32px,3.261vw + 20.26px,62px);--w-head:700;--track-head:0;--wrap:1060px;--measure:70ch;--r-s:12px;--r-m:14px;--r-l:20px;--sec-y:88px;--density:1}
@media (max-width:900px){:root{--sp-section:64px;--sec-y:64px;--sp-hero:80px;--sp-hero-b:70px;--sp-phero:64px;--sp-phero-b:56px}}
body{--r:var(--r-md)}
body,.tone-base,.mnav-panel{background-color:var(--c-bg);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted);--t-link:var(--c-link);--t-glass:var(--c-band);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.sec-soft,.tone-band,.tone-tint,.side-call{background-color:var(--c-band);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted-band);--t-link:var(--c-link-band);--t-glass:var(--c-card-2);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.card,.form,.area-card,.side-card,.faq,.review.light,.stat,.dd-menu{background-color:var(--c-card);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted-card);--t-link:var(--c-link-card);--t-glass:var(--c-chip);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.sec-soft .card,.sec-soft .form,.sec-soft .area-card,.sec-soft .side-card,.sec-soft .faq,.sec-soft .review.light,.sec-soft .stat,.sec-soft .dd-menu,.tone-band .card,.tone-band .form,.tone-band .area-card,.tone-band .side-card,.tone-band .faq,.tone-band .review.light,.tone-band .stat,.tone-band .dd-menu,.tone-tint .card,.tone-tint .form,.tone-tint .area-card,.tone-tint .side-card,.tone-tint .faq,.tone-tint .review.light,.tone-tint .stat,.tone-tint .dd-menu{background-color:var(--c-card-2);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted);--t-link:var(--c-link);--t-glass:var(--c-chip-2);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.sec-dark,.tone-deep,.foot{background-color:var(--c-dark);background-image:none;color:var(--c-on-dark);--t-fg:var(--c-on-dark);--t-fg-2:var(--c-muted-on-dark);--t-link:var(--c-accent-on-dark);--t-glass:rgba(255,255,255,.07);--t-glass-line:rgba(255,255,255,.16);--t-outline:rgba(255,255,255,.7);--t-star:var(--c-accent-on-dark);--t-star-off:rgba(255,255,255,.3);--t-edge:var(--c-on-dark);--t-act:var(--c-act-dark);--t-on-act:var(--c-on-act-dark);--t-fill:var(--c-act-dark);--t-on-fill:var(--c-on-act-dark);--t-fill-icon:var(--c-on-act-dark)}
.hero,.phero,.sec-cta{background-color:var(--c-dark);background-image:none;color:var(--c-on-dark);--t-fg:var(--c-on-dark);--t-fg-2:var(--c-on-dark);--t-link:var(--c-on-dark);--t-glass:rgba(255,255,255,.12);--t-glass-line:rgba(255,255,255,.24);--t-outline:rgba(255,255,255,.7);--t-star:var(--c-accent-on-dark);--t-star-off:rgba(255,255,255,.3);--t-edge:var(--c-on-dark);--t-act:var(--c-act-dark);--t-on-act:var(--c-on-act-dark);--t-fill:var(--c-act-dark);--t-on-fill:var(--c-on-act-dark);--t-fill-icon:var(--c-on-act-dark)}
.tone-brand,.th-keystone .foot{background-color:var(--c-brand);background-image:none;color:var(--c-on-brand);--t-fg:var(--c-on-brand);--t-fg-2:var(--c-on-brand);--t-link:var(--c-on-brand);--t-glass:transparent;--t-glass-line:var(--c-on-brand);--t-outline:var(--c-on-brand);--t-star:var(--c-on-brand);--t-star-off:transparent;--t-edge:var(--c-on-brand);--t-act:var(--c-on-brand);--t-on-act:var(--c-brand);--t-fill:var(--c-on-brand);--t-on-fill:var(--c-brand);--t-fill-icon:var(--c-brand)}
.tone-accent{background-color:var(--c-accent);background-image:none;color:var(--c-on-accent);--t-fg:var(--c-on-accent);--t-fg-2:var(--c-on-accent);--t-link:var(--c-on-accent);--t-glass:transparent;--t-glass-line:var(--c-on-accent);--t-outline:var(--c-on-accent);--t-star:var(--c-on-accent);--t-star-off:transparent;--t-edge:var(--c-on-accent);--t-act:var(--c-on-accent);--t-on-act:var(--c-accent);--t-fill:var(--c-on-accent);--t-on-fill:var(--c-accent);--t-fill-icon:var(--c-accent)}
.hero,.phero,.sec-cta{background-image:linear-gradient(135deg,var(--c-hero),var(--c-dark))}.sec-cta{--t-fg-2:var(--c-muted-on-dark);--t-link:var(--c-accent-on-dark)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--hdr-h);-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--f-body);font-size:var(--fs-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--t-link);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--f-head);line-height:var(--lh-head);margin:0 0 .5em;letter-spacing:var(--ls-head);font-weight:var(--fw-head);text-transform:var(--case-head);text-wrap:balance}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);font-weight:var(--fw-h3)}h4{font-weight:var(--fw-h3)}p{text-wrap:pretty}
.wrap{max-width:var(--w-max);margin:0 auto;padding:0 var(--gutter)}.narrow{max-width:820px}.center{text-align:center}.nw{white-space:nowrap}
.ic{flex:none}
.preview-bar{background:#111;color:#fff;text-align:center;font:.85rem/1.5 system-ui,sans-serif;padding:8px 14px}.preview-bar a{color:#ffd66b}.preview-bar .pv-go{display:inline-block;margin:4px 0 0 6px;background:#ffd66b;color:#111;font-weight:700;padding:3px 12px;border-radius:999px;text-decoration:none;white-space:nowrap}
.top{position:sticky;top:0;z-index:40;background:var(--c-bg);border-bottom:1px solid var(--c-line)}
@supports (backdrop-filter:blur(8px)) and (background:color-mix(in srgb,red 50%,blue)){.top{background:color-mix(in srgb,var(--c-bg) 94%,transparent);backdrop-filter:saturate(1.4) blur(8px)}}
.top-in{display:flex;align-items:center;gap:22px;min-height:70px;position:relative}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:var(--fw-black);font-size:1.08rem;min-width:0}
.brand-name{font-family:var(--f-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo{height:42px;width:auto}.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);background:var(--t-fill);color:var(--t-fill-icon);flex:none}
.nav{display:flex;align-items:center;gap:22px;margin-left:auto;font-weight:var(--fw-semi);font-size:.95rem}.nav>a,.dd>a{text-decoration:none;color:var(--t-fg-2);display:inline-flex;align-items:center;gap:4px;padding:24px 0}
.nav>a:hover,.dd>a:hover,.nav>a[aria-current],.dd>a[aria-current]{color:var(--t-link)}.nav>a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
.dd{position:relative}.dd-menu{display:none;position:absolute;top:100%;left:-18px;min-width:280px;border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:0 24px 50px -20px rgba(0,0,0,.35);padding:8px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}.dd-menu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);text-decoration:none;font-weight:var(--fw-semi)}.dd-menu a:hover{background:var(--c-chip);color:var(--c-link-chip)}.dd-menu .ic{color:var(--t-link)}.dd-menu .dd-all{border-top:1px solid var(--c-line);border-radius:0 0 var(--r-sm) var(--r-sm);margin-top:4px;color:var(--t-link)}
.mnav{display:none}.mnav summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-sm);border:1px solid var(--t-glass-line)}.mnav summary::-webkit-details-marker{display:none}
.mnav-panel{position:absolute;left:0;right:0;top:100%;border-bottom:1px solid var(--c-line);box-shadow:0 24px 40px -24px rgba(0,0,0,.4);padding:10px var(--gutter) 18px;display:grid;max-height:75vh;overflow:auto}
.mnav-panel a{padding:12px 0;text-decoration:none;font-weight:var(--fw-bold);border-bottom:1px solid var(--c-line)}.mnav-panel a[aria-current]{color:var(--t-link)}.mnav-sub{display:grid;padding-left:14px}.mnav-sub a{font-weight:var(--fw-med);color:var(--t-fg-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--r-btn);padding:11px 20px;min-height:44px;text-decoration:none;border:2px solid transparent;cursor:pointer;font:inherit;font-size:var(--fs-btn);font-weight:var(--fw-bold);text-transform:var(--case-btn);letter-spacing:var(--ls-btn);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px)}.btn-lg{padding:15px 26px;font-size:calc(var(--fs-btn) * 1.05)}.btn-block{width:100%}
.btn-call{background:var(--t-fill);color:var(--t-on-fill)}.btn-accent{background:var(--t-act);color:var(--t-on-act);box-shadow:0 10px 24px -10px var(--t-act)}.btn-ghost{border-color:var(--t-outline);color:var(--t-fg)}.btn-outline{border-color:var(--t-outline);color:var(--t-fg);background:transparent}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.hero,.phero{position:relative;background-size:cover;background-position:center;overflow:hidden}.hero{padding:calc(var(--sp-hero) + var(--hdr-over,0px)) 0 var(--sp-hero-b)}.phero{padding:calc(var(--sp-phero) + var(--hdr-over,0px)) 0 var(--sp-phero-b)}
.hero-shade{position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.1),transparent 45%)}
.has-photo>.hero-shade{background:linear-gradient(100deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.72) 55%,rgba(0,0,0,.66) 100%)}.phero.has-photo>.hero-shade{background:linear-gradient(100deg,rgba(0,0,0,.88),rgba(0,0,0,.74))}
.has-photo>.hero-shade::after{content:"";position:absolute;inset:0;background:var(--c-dark);opacity:.35}
.hero-in{position:relative}.hero h1{max-width:15ch}.phero h1{font-size:var(--fs-h1p);max-width:24ch}.kicker{display:inline-flex;align-items:center;gap:7px;background:var(--t-glass);border:1px solid var(--t-glass-line);padding:6px 13px;border-radius:999px;font-weight:var(--fw-semi);font-size:.9rem;margin:0 0 18px}
.lead{font-size:clamp(1.05rem,1.8vw,1.25rem);max-width:60ch;color:var(--t-fg-2);margin:0 0 28px}.phero .lead{margin-bottom:20px}.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.88rem;margin:0 0 14px;color:var(--t-fg-2)}.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.chips{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:10px}.chips li{display:flex;align-items:center;gap:8px;background:var(--t-glass);border:1px solid var(--t-glass-line);padding:8px 14px;border-radius:var(--r-sm);font-size:.92rem}
.chips-list{display:grid;gap:8px;max-width:640px;margin:0 0 28px}.chips-list li{justify-content:flex-start;font-size:1rem}
.is-funnel .hero{padding:calc(80px + var(--hdr-over,0px)) 0 70px}.is-funnel .foot{padding:28px 0 40px}
.stars{color:var(--t-star-off);letter-spacing:1px;white-space:nowrap}.stars .on{color:var(--t-star)}
.sec{padding:var(--sp-section) 0}.sec-dark a:not(.btn),.tone-deep a:not(.btn){color:var(--t-link)}
.sec-head{max-width:720px;margin:0 0 var(--sp-block)}.sec-head p{color:var(--t-fg-2);font-size:1.08rem;margin:0}
.row-head{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}.row-head>div{max-width:720px}
.more{display:inline-flex;align-items:center;gap:6px;font-weight:var(--fw-bold);color:var(--t-link);text-decoration:none}.more:hover{text-decoration:underline}.more-line{margin:22px 0 0}
.grid{display:grid;gap:var(--gap)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.card{border:1px solid var(--c-line);border-radius:var(--r);padding:26px;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column}.card:hover{box-shadow:var(--sh-lift);transform:translateY(-3px)}
.card-link{text-decoration:none}.card p{color:var(--t-fg-2);margin:0 0 16px}.card-more{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-weight:var(--fw-bold);color:var(--t-link);font-size:.95rem}
.card-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r);background:var(--c-chip);color:var(--c-link-chip);margin-bottom:16px}.sec-soft .card-ic,.tone-band .card-ic{background:var(--c-chip-2);color:var(--c-link-chip-2)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.split-top{align-items:start}.split-text p{color:var(--t-fg-2);font-size:1.05rem}.split-photo{margin:0}.split-photo img{border-radius:var(--r-img);box-shadow:var(--sh-photo);aspect-ratio:4/3;object-fit:cover;width:100%}
.why{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:16px}.split.solo{grid-template-columns:1fr}.split.solo .split-text{max-width:820px}.split.solo .why{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}.why li{display:flex;gap:14px}.why-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);background:var(--c-fill);color:var(--c-fill-icon);flex:none}.why strong{display:block}.why span{color:var(--t-fg-2);font-size:.95rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}.stat{border:1px solid var(--c-line);border-radius:var(--r);padding:26px;text-align:center}.stat strong{display:block;font-family:var(--f-head);font-size:2.2rem;font-weight:var(--fw-head);color:var(--t-link);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat span{color:var(--t-fg-2);font-weight:var(--fw-semi)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gallery figure{margin:0}.gallery img{border-radius:var(--r-sm);aspect-ratio:1/1;object-fit:cover;width:100%}
.rating-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rating-line.big{font-size:1.1rem;margin:0}.reviews{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.review{margin:0;background:var(--t-glass);border:1px solid var(--t-glass-line);border-radius:var(--r);padding:24px}.review p{margin:12px 0 16px;font-size:1.02rem}.review footer{font-weight:var(--fw-bold)}.review footer span{font-weight:var(--fw-body)}
.review.light{box-shadow:var(--sh-card);border-color:var(--c-line)}.wall{columns:3 300px;column-gap:22px;margin-bottom:36px}.wall .review{break-inside:avoid;margin:0 0 22px}
.towns{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px}.towns li{display:flex;align-items:center;gap:6px;background:var(--t-glass);color:var(--t-fg);border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:var(--fw-semi)}
.towns li a{display:flex;align-items:center;gap:6px;text-decoration:none}.towns li:has(a):hover{background:var(--c-fill);color:var(--c-on-fill)}.towns-big li{font-size:1rem;padding:9px 16px}
.area-card{border:1px solid var(--c-line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--sh-card)}.area-line{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;font-weight:var(--fw-semi)}.area-line a{text-decoration:none}.area-line .ic{color:var(--t-link)}
.hours{width:100%;border-collapse:collapse;margin-top:14px;font-size:.95rem;font-variant-numeric:tabular-nums}.hours th{text-align:left;font-weight:var(--fw-semi);padding:6px 0;color:var(--t-fg-2)}.hours td{text-align:right;padding:6px 0}.hours tr+tr{border-top:1px solid var(--c-line)}
.faq{border:1px solid var(--c-line);border-radius:var(--r-sm);padding:0 20px;margin:0 0 10px}.faq summary{cursor:pointer;font-weight:var(--fw-bold);padding:18px 0;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";float:right;font-size:1.3rem;line-height:1.2;color:var(--t-link)}.faq[open] summary::after{content:"–"}.faq p{margin:0 0 18px;color:var(--t-fg-2)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.prose{font-size:1.07rem}.prose p{margin:0 0 1.1em}.prose h2{font-size:var(--fs-h2p);margin-top:0}.prose .faq-head{margin-top:44px}.prose a{color:var(--t-link);font-weight:var(--fw-semi)}.prose-photo{margin:0 0 30px}.prose-photo img{border-radius:var(--r-img);aspect-ratio:16/9;object-fit:cover;width:100%}
.side{position:sticky;top:96px;display:grid;gap:18px}.side-card{border:1px solid var(--c-line);border-radius:var(--r-lg);padding:24px;display:grid;gap:12px;box-shadow:var(--sh-card)}.side-card h3{margin:0}
.side-links{list-style:none;padding:0;margin:0;display:grid}.side-links a{display:flex;align-items:center;gap:10px;padding:9px 0;text-decoration:none;font-weight:var(--fw-semi);border-top:1px solid var(--c-line)}.side-links li:first-child a{border-top:0}.side-links .ic{color:var(--t-link)}.side-links a:hover{color:var(--t-link)}
.sec-cta .split-text p{color:var(--t-fg-2)}
.form{border-radius:var(--r-lg);padding:30px;display:grid;gap:14px;box-shadow:var(--sh-form)}.form-light{border:1px solid var(--c-line);box-shadow:var(--sh-card)}.form label{display:grid;gap:6px;font-weight:var(--fw-semi);font-size:.92rem}.form label span{font-weight:var(--fw-body);color:var(--t-fg-2)}
.form input,.form textarea{font:inherit;font-size:1rem;font-weight:var(--fw-body);color:var(--c-ink);border:1px solid var(--c-field);border-radius:var(--r-in);padding:12px 14px;background:var(--c-bg);min-height:48px}.form input:focus,.form textarea:focus{outline:2px solid var(--t-link);outline-offset:1px;border-color:transparent}
.addr{position:relative;display:block}.addr-list{position:absolute;left:0;right:0;top:100%;z-index:40;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-in);box-shadow:var(--sh-card,0 8px 24px rgba(0,0,0,.16));max-height:280px;overflow:auto}.addr-list li{padding:10px 14px;cursor:pointer;color:var(--c-ink);font-size:.95rem;line-height:1.35}.addr-list li[aria-selected=true],.addr-list li:hover{background:var(--c-bg)}.addr-list .addr-by{cursor:default;padding:4px 14px 2px;font-size:.72rem;color:var(--c-muted);text-align:right}.addr-list .addr-by:hover{background:none}
.form-note{margin:0;font-size:.88rem;color:var(--c-muted-band);background:var(--c-band);border-radius:var(--r-in);padding:10px 12px}.form-msg{margin:0;font-weight:var(--fw-semi)}.form-consent{margin:0;grid-column:1/-1;font-size:.74rem;line-height:1.45;opacity:.78}.hp{position:absolute;left:-9999px}
.form .pl-sms-box{grid-column:1/-1;margin:0}.form .consent.pl-sms-box label.cb{display:flex;gap:10px;align-items:flex-start;font-family:var(--f-body,inherit);font-weight:var(--fw-body);font-size:.8rem;line-height:1.45;letter-spacing:normal;text-transform:none;cursor:pointer}.form .consent.pl-sms-box .cb input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;border:0;background:none;accent-color:var(--t-link)}.form .pl-sms-box .fine{margin:6px 0 0 28px;font-size:.74rem;line-height:1.45;opacity:.78}.form .pl-sms-box .fine a{color:inherit;text-decoration:underline}.form .pl-one-box label.cb{font-size:.9rem;font-weight:600}.form .pl-one-box details.fine summary{cursor:pointer;text-decoration:underline;width:max-content;max-width:100%}.form .pl-one-box details.fine p{margin:6px 0 0}
.pay-line{display:flex;gap:10px;align-items:flex-start;font-weight:var(--fw-med);color:var(--t-fg-2)}.pay-line strong{color:var(--t-fg)}.pay-line .ic{color:var(--t-link);margin-top:3px}
.social-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.foot{padding:64px 0 0;color:var(--t-fg-2)}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}.foot strong{display:block;color:var(--t-fg);font-size:1.1rem;margin-bottom:8px}.foot h4{color:var(--t-fg);font-size:.95rem;margin:0 0 14px}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}.foot a{text-decoration:none}.foot a:hover{color:var(--t-fg);text-decoration:underline}.foot-brand p{margin:0 0 16px}.foot-contact li{display:flex;gap:9px;align-items:flex-start}
.social{display:flex;gap:14px}.social a{color:var(--t-fg)}.foot-base{border-top:1px solid var(--t-glass-line);margin-top:44px;padding-top:22px;padding-bottom:40px}.made{margin:0;font-size:.85rem}.made a{color:var(--t-link)}.legal{margin:0 0 12px;font-size:.8rem;line-height:1.55;max-width:var(--measure,72ch);color:var(--t-fg-2)}
.callbar{display:none}
@media (max-width:980px){.layout{grid-template-columns:1fr}.side{position:static}.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.split.solo .why{grid-template-columns:1fr}.nav{display:none}.btn-call{margin-left:auto}.mnav{display:block}.split{grid-template-columns:1fr;gap:36px}.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.btn-call span{display:none}.btn-call{padding:11px}.callbar{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;justify-content:center;align-items:center;gap:10px;background:var(--c-act);color:var(--c-on-act);font-weight:var(--fw-black);text-decoration:none;border-radius:var(--r-btn);padding:15px;min-height:52px;box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}.foot-grid{grid-template-columns:1fr}.foot-base{padding-bottom:100px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
body{font-synthesis:none}
.th-keystone .util{background:var(--c-dark);color:var(--c-on-dark);font-size:.875rem;line-height:1.3}.th-keystone .util-in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;min-height:38px;padding-block:6px}.th-keystone .util-in>*{display:inline-flex;align-items:center;gap:7px}.th-keystone .util .ic{opacity:.8;flex:none}.th-keystone .util-247{font-weight:var(--fw-semi,600);padding:2px 10px;border-radius:999px;background:var(--c-accent);color:var(--c-on-accent)}.th-keystone .util-tel,.th-keystone .util-mail{margin-left:auto;font-weight:var(--fw-semi,600);color:inherit;text-decoration:none;min-height:32px}.th-keystone .util-tel:hover,.th-keystone .util-mail:hover{text-decoration:underline}@media (max-width:640px){.th-keystone .util-area,.th-keystone .util-tel,.th-keystone .util-mail{display:none}.th-keystone .util-in{min-height:32px}}
/* hero */
.s-hero{position:relative;padding:var(--sec-y,clamp(64px,8vw,112px)) 0;color:var(--t-fg,var(--c-ink))}.s-hero:not([class*="tone-"]){background:var(--c-bg)}.s-hero .s-head{max-width:760px;margin:0 0 clamp(32px,4vw,52px)}.s-hero .s-head--row{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px}.s-hero .s-head--row .s-head-in{max-width:720px}.s-hero .s-head--center{margin-inline:auto;text-align:center}.s-hero .s-head--center .s-eyebrow{justify-content:center}.s-hero .s-head h2{margin:0;text-wrap:balance}.s-hero .s-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:var(--step--1,.8125rem);font-weight:var(--fw-semi,600);letter-spacing:.12em;text-transform:uppercase;color:var(--t-link,var(--c-brand-text))}.s-hero .s-eyebrow::before{content:"";width:22px;height:2px;background:currentColor;flex:none}.s-hero .s-lead{margin:16px 0 0;font-size:var(--step-1,1.125rem);line-height:1.6;color:var(--t-fg-2,var(--c-muted));max-width:var(--measure,62ch);text-wrap:pretty}.s-hero .s-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text));text-decoration:none;text-underline-offset:4px}.s-hero .s-link:hover{text-decoration:underline}.s-hero .s-link .ic{transition:transform .2s}.s-hero .s-link:hover .ic{transform:translateX(3px)}.s-hero .s-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.s-hero .s-num{font-variant-numeric:tabular-nums}.s-hero p{text-wrap:pretty}.s-hero img{display:block;max-width:100%}@media (prefers-reduced-motion:reduce){.s-hero *{transition:none!important}}.s-hero{overflow:hidden;padding:0}.s-hero h1{margin:0;font-size:var(--step-6,clamp(2.5rem,1.35rem + 4.2vw,4.5rem));line-height:var(--lh-head,1.02);letter-spacing:var(--track-head,-.025em);max-width:17ch;text-wrap:balance}.s-hero .s-hero-kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;font-size:var(--step--1,.9375rem);font-weight:var(--fw-semi,600);color:var(--c-brand-text)}.s-hero .s-hero-lead{margin:24px 0 0;font-size:var(--step-1,clamp(1.0625rem,1rem + .45vw,1.3125rem));line-height:1.55;color:var(--t-fg-2,var(--c-muted));max-width:46ch}.s-hero .s-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 0}.s-hero .s-hero-cta .btn{min-height:52px}.s-hero .s-hero-cta .btn:first-child{background:var(--t-act,var(--c-act,var(--c-accent)));color:var(--t-on-act,var(--c-on-act,var(--c-on-accent)));border-color:transparent}.s-hero .s-hero-cta .btn+.btn{background:transparent;color:var(--c-ink);border-color:currentColor;box-shadow:none}.s-hero .s-hero-facts{list-style:none;margin:36px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:var(--step--1,.9375rem);color:var(--c-muted)}.s-hero .s-hero-facts li{display:flex;align-items:center;gap:8px}.s-hero .s-hero-fi{display:grid;color:var(--c-brand-text)}.s-hero .s-hero-fv{display:inline-flex;align-items:center;gap:6px;color:var(--c-ink)}.s-hero .s-hero-fv strong{font-weight:var(--fw-bold,700)}.s-hero figure{margin:0}.s-hero .s-hero-media img,.s-hero .s-hero-tile img,.s-hero .s-hero-bg img{width:100%;height:100%;object-fit:cover}.s-hero .s-hero-bg{position:absolute;inset:0;z-index:-2}@media (max-width:639px){.s-hero .s-hero-cta .btn{flex:1 1 100%}.s-hero .s-hero-facts{gap:10px 20px}}.s-hero .s-hero-wash{position:absolute;inset:0;z-index:-1}.s-hero .s-accent{font-style:inherit;color:inherit}
.s-hero--billboard{isolation:isolate;position:relative;text-align:center;padding:calc(clamp(40px,5.5vw,84px) + var(--hdr-over,0px)) 0 clamp(44px,5.5vw,84px)}.s-hero--billboard .s-hero-in{max-width:var(--wrap,1120px)}.s-hero--billboard h1,.s-hero--billboard .s-hb-head{margin:0;font-size:var(--step-6,clamp(2.3rem,6.4vw,4.6rem));line-height:1.02;text-wrap:balance;color:inherit}.s-hero--billboard h1.s-hb-name{font-size:var(--hb-name-size,var(--step-1,1.2rem));font-weight:var(--hb-name-weight,400);line-height:1.3}.s-hero--billboard h3.s-hb-count{line-height:1.3}.s-hero--billboard .s-hero-what{display:block;font-size:var(--step-0,1rem);font-weight:var(--fw-semi,600);letter-spacing:.1em;text-transform:uppercase;opacity:.85;margin-bottom:14px}.s-hero--billboard .s-hero-lead{margin:18px auto 0;font-size:var(--step-1,1.125rem);line-height:1.55;opacity:.94;max-width:54ch;text-wrap:pretty}.s-hero--billboard .s-hero-portrait{margin:20px auto 0;max-width:310px}.s-hero--billboard .s-hero-portrait img{display:block;width:100%;height:auto;border-radius:5px}.s-hero--billboard .s-hero-proof{margin:clamp(20px,2.6vw,32px) auto 0;padding-top:clamp(16px,2vw,24px);max-width:44ch;border-top:1px solid color-mix(in srgb,currentColor 35%,transparent)}.s-hero--billboard .s-hb-count{margin:0;font-size:var(--step-1,1.15rem);font-weight:var(--fw-semi,600)}.s-hero--billboard .s-hb-stars{display:flex;justify-content:center;gap:3px;margin:10px 0 0;color:var(--hb-stars,var(--c-accent))}.s-hero--billboard .s-hb-stars svg,.s-hero--billboard .s-hb-stars path{fill:var(--hb-stars,var(--c-accent));stroke:none}.s-hero--billboard .s-hb-name{margin:8px 0 0;font-size:var(--step-0,1rem);opacity:.9}.s-hero--billboard .s-hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:clamp(22px,2.6vw,32px) 0 0}@media (max-width:639px){.s-hero--billboard .s-hero-cta .btn{width:100%}}
/* block */
.s-block{position:relative;padding:var(--sec-y,clamp(64px,8vw,112px)) 0;color:var(--t-fg,var(--c-ink))}.s-block:not([class*="tone-"]){background:var(--c-bg)}.s-block .s-head{max-width:760px;margin:0 0 clamp(32px,4vw,52px)}.s-block .s-head--row{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px}.s-block .s-head--row .s-head-in{max-width:720px}.s-block .s-head--center{margin-inline:auto;text-align:center}.s-block .s-head--center .s-eyebrow{justify-content:center}.s-block .s-head h2{margin:0;text-wrap:balance}.s-block .s-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:var(--step--1,.8125rem);font-weight:var(--fw-semi,600);letter-spacing:.12em;text-transform:uppercase;color:var(--t-link,var(--c-brand-text))}.s-block .s-eyebrow::before{content:"";width:22px;height:2px;background:currentColor;flex:none}.s-block .s-lead{margin:16px 0 0;font-size:var(--step-1,1.125rem);line-height:1.6;color:var(--t-fg-2,var(--c-muted));max-width:var(--measure,62ch);text-wrap:pretty}.s-block .s-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text));text-decoration:none;text-underline-offset:4px}.s-block .s-link:hover{text-decoration:underline}.s-block .s-link .ic{transition:transform .2s}.s-block .s-link:hover .ic{transform:translateX(3px)}.s-block .s-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.s-block .s-num{font-variant-numeric:tabular-nums}.s-block p{text-wrap:pretty}.s-block img{display:block;max-width:100%}@media (prefers-reduced-motion:reduce){.s-block *{transition:none!important}}.s-block .s-bk-in,.s-block .s-bk-text{max-width:var(--measure,66ch)}.s-block--band .s-bk-band{max-width:760px;margin-inline:auto;text-align:center}.s-block .s-head{margin-bottom:clamp(18px,2.4vw,28px)}.s-block--band .s-head{margin-inline:auto;text-align:center}.s-block .s-bk-words p{margin:0 0 14px;line-height:1.65}.s-block .s-bk-words p:last-child{margin-bottom:0}.s-block .s-bk-words ul{margin:0 0 14px;padding-left:1.15em}.s-block .s-bk-words li{margin:0 0 6px}.s-block .s-bk-words.s-bk-numbers ul{list-style:decimal}.s-block .s-bk-points.s-bk-days{grid-template-columns:repeat(auto-fit,minmax(min(118px,100%),1fr));gap:8px}.s-block .s-bk-days .s-bk-point{padding:10px 6px;text-align:center}.s-block .s-bk-media{margin:22px 0 0}.s-block .s-bk-media img{width:100%;height:auto;border-radius:var(--r-img,var(--r-md,12px))}.s-block .s-bk-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:var(--gap,18px);grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}.s-block--plain .s-bk-points,.s-block--beside .s-bk-points{grid-template-columns:1fr}.s-block .s-bk-point{padding:16px 18px;border:1px solid var(--t-outline,var(--c-line));border-radius:var(--r-md,12px)}.s-block .s-bk-point strong{display:block;font-size:var(--step-1,1.05rem);line-height:1.25}.s-block .s-bk-point span{display:block;margin:6px 0 0;color:var(--t-fg-2,var(--c-muted));font-size:.95rem;line-height:1.5}.s-block--band .s-bk-points{justify-items:center;text-align:center}.s-block .s-bk-do{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin:26px 0 0}.s-block--band .s-bk-do{justify-content:center}.s-block .s-bk-vid{display:inline-flex;align-items:center;gap:9px;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text));text-decoration:none;text-underline-offset:4px}.s-block .s-bk-vid:hover{text-decoration:underline}.s-block--beside .s-bk-grid{display:grid;gap:clamp(24px,4vw,56px);align-items:center;grid-template-columns:1fr}@media (min-width:860px){.s-block--beside .s-bk-grid{grid-template-columns:1fr 1fr}.s-block--beside .s-bk-media{margin:0}.s-block.s-bk-flip .s-bk-media{order:-1}}.s-block .s-bk-pt{margin:0;font:inherit}.s-block .s-bk-words .s-accent{font-style:normal;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text))}.s-block--beside .s-head{max-width:none}.s-block .s-bk-map{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:16/9;margin:22px 0 0;background:var(--c-band,#eef1f5);border:1px solid var(--c-line)}.s-block .s-bk-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.s-block .s-bk-map-go{display:inline-flex;align-items:center;gap:8px}
.s-block--details .s-bk-dt{border-bottom:2px dashed var(--c-ink);margin:0 0 10px}.s-block--details .s-bk-dt-h{margin:20px 0 10px}.s-block--details .s-bk-dt-h a{color:var(--c-brand-text);text-decoration:none}.s-block--details .s-bk-dt-h a:hover{text-decoration:underline}.s-block--details .s-bk-words p{margin:0 0 10px}.s-block--details.s-bk-look-pages>.wrap{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 22px;padding-top:10px;border-top:2px dashed var(--c-ink)}.s-block--details.s-bk-look-pages .s-bk-dt{border:0;margin:0}.s-block--details.s-bk-look-pages .s-bk-dt-h{margin:0;font-size:1.15rem;font-weight:400}.s-block--details.s-bk-look-pages .s-bk-words p{margin:0;font-size:1.15rem}
.s-block--heading .s-bk-hd-h{margin:0}
.s-block--cards .s-bk-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.s-block--cards .s-bk-card{box-sizing:border-box;padding:0 3%;border-bottom:1px solid var(--c-ink)}.s-block--cards .s-bk-card img{box-sizing:border-box;width:98%;height:auto;padding:10px 1% 0}.s-block--cards .s-bk-cd-h{margin:20px 0 10px}.s-block--cards .s-bk-cd-h a{color:var(--c-brand-text);text-decoration:none}.s-block--cards .s-bk-cd-h a:hover{text-decoration:underline}.s-block--cards .s-bk-cd-sub{margin:0 0 10px}.s-block--cards .s-bk-words p{margin:0 0 10px}.s-block--cards.s-bk-look-team .s-bk-words{height:150px;overflow:auto}.s-block--cards.s-bk-look-list .s-bk-cards{grid-template-columns:minmax(0,1fr)}.s-block--cards.s-bk-look-list .s-bk-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,125px);column-gap:16px;align-items:start;padding:14px 0;border:0}.s-block--cards.s-bk-look-list .s-bk-card>img{grid-column:2;grid-row:1/span 3;width:100%;padding:0}.s-block--cards.s-bk-look-list .s-bk-card>:not(img){grid-column:1}.s-block--cards.s-bk-look-list .s-bk-cd-h{margin:0 0 6px}@media (max-width:765px){.s-block--cards .s-bk-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:479px){.s-block--cards .s-bk-cards{grid-template-columns:minmax(0,1fr)}}
.s-block--pairs .s-bk-pairs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.s-block--pairs .s-bk-pr-h{margin:20px 0 10px;padding-left:4%}.s-block--pairs .s-bk-pr-pics{box-sizing:border-box;max-height:700px;overflow:auto;padding:10px 5px;margin:0 0 10px;background:var(--c-surface,var(--c-bg))}.s-block--pairs .s-bk-pr-pics img{display:block;width:96%;height:auto;margin:0 2% 10px}
.s-block--story .s-bk-story{display:flow-root}.s-block--story .s-bk-st-h,.s-block--story .s-bk-sh{margin:5px 0}.s-block--story .s-bk-words p{margin:0 0 10px}.s-block--story .s-bk-float{float:right;width:35%;margin:0 10px 0 0}.s-block--story .s-bk-float img{box-sizing:border-box;width:90%;height:auto;padding:0 2%}.s-block--story .s-bk-rowpic{clear:right;width:min(46%,300px);margin:0 0 10px 12px}.s-block--story .s-bk-rowpic img{width:100%;padding:0}.s-block--story .s-bk-more{clear:both;display:flex;flex-wrap:wrap;justify-content:flex-start}.s-block--story .s-bk-more img{box-sizing:border-box;width:32.7%;height:auto;padding:0 1.83% 15px}@media (max-width:640px){.s-block--story .s-bk-float{float:none;width:100%;margin:10px 0}.s-block--story .s-bk-float img{width:100%;padding:0}.s-block--story .s-bk-more img{width:50%}}.s-block--story.s-bk-gallery .s-bk-gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 2%;box-sizing:border-box;padding:28px 2%;border-radius:10px;max-height:560px;overflow:auto;background:var(--c-surface,#fcfcfc);box-shadow:0 0 6px rgba(0,0,0,.35)}.s-block--story.s-bk-gallery .s-bk-gal-pic{display:block;min-width:0}.s-block--story.s-bk-gallery .s-bk-gal-pic img{display:block;width:100%;max-width:200px;height:auto;aspect-ratio:1/1;object-fit:cover;margin:0 auto}.s-block--story.s-bk-gallery .s-bk-gal-note{margin:10px 0 0;text-align:right;font-weight:700;letter-spacing:1px}@media (max-width:640px){.s-block--story.s-bk-gallery .s-bk-gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 4%;padding:16px 4%}}
.s-block--twocol .s-bk-tc{display:flow-root}.s-block--twocol .s-bk-tc-h{margin:0 0 10px}.s-block--twocol .s-bk-tc-h a{color:var(--c-brand-text);text-decoration:none}.s-block--twocol .s-bk-tc-pt{margin:0 0 10px}.s-block--twocol .s-bk-tc-pb{margin:10px 0 15px;font-weight:400}.s-block--twocol .s-bk-tc-pic{margin:0}.s-block--twocol .s-bk-tc--right .s-bk-tc-pic{float:right;width:35%;margin-right:10px}.s-block--twocol .s-bk-tc--left .s-bk-tc-pic{float:left;width:35%;margin-right:0}.s-block--twocol .s-bk-tc--right .s-bk-tc-pic img,.s-block--twocol .s-bk-tc--left .s-bk-tc-pic img{box-sizing:border-box;width:90%;height:auto;padding:0 2%}.s-block--twocol .s-bk-tc--icon .s-bk-tc-pic{float:right;width:18%;padding:0 2%;box-sizing:border-box}.s-block--twocol .s-bk-tc--icon .s-bk-tc-pic img{width:100%;height:auto}.s-block--twocol .s-bk-tc-line{width:75%;margin:20px auto;border:0;border-top:2px dashed var(--c-brand-text)}.s-block--twocol .s-bk-do{margin:16px 0 0}@media (max-width:640px){.s-block--twocol .s-bk-tc--right .s-bk-tc-pic,.s-block--twocol .s-bk-tc--left .s-bk-tc-pic{float:none;width:100%;margin:0 0 12px}.s-block--twocol .s-bk-tc--right .s-bk-tc-pic img,.s-block--twocol .s-bk-tc--left .s-bk-tc-pic img{width:100%;padding:0}}
/* statement */
.s-statement{position:relative;padding:var(--sec-y,clamp(64px,8vw,112px)) 0;color:var(--t-fg,var(--c-ink))}.s-statement:not([class*="tone-"]){background:var(--c-bg)}.s-statement .s-head{max-width:760px;margin:0 0 clamp(32px,4vw,52px)}.s-statement .s-head--row{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px}.s-statement .s-head--row .s-head-in{max-width:720px}.s-statement .s-head--center{margin-inline:auto;text-align:center}.s-statement .s-head--center .s-eyebrow{justify-content:center}.s-statement .s-head h2{margin:0;text-wrap:balance}.s-statement .s-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:var(--step--1,.8125rem);font-weight:var(--fw-semi,600);letter-spacing:.12em;text-transform:uppercase;color:var(--t-link,var(--c-brand-text))}.s-statement .s-eyebrow::before{content:"";width:22px;height:2px;background:currentColor;flex:none}.s-statement .s-lead{margin:16px 0 0;font-size:var(--step-1,1.125rem);line-height:1.6;color:var(--t-fg-2,var(--c-muted));max-width:var(--measure,62ch);text-wrap:pretty}.s-statement .s-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text));text-decoration:none;text-underline-offset:4px}.s-statement .s-link:hover{text-decoration:underline}.s-statement .s-link .ic{transition:transform .2s}.s-statement .s-link:hover .ic{transform:translateX(3px)}.s-statement .s-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.s-statement .s-num{font-variant-numeric:tabular-nums}.s-statement p{text-wrap:pretty}.s-statement img{display:block;max-width:100%}@media (prefers-reduced-motion:reduce){.s-statement *{transition:none!important}}.s-statement .s-stm-kicker{margin:0 0 clamp(16px,2vw,24px)}.s-statement .s-stm-text{margin:0;font-family:var(--f-head);font-weight:var(--fw-head);line-height:var(--stm-lh,1.14);letter-spacing:var(--track-head,-.02em);text-transform:var(--stm-case,none);text-wrap:balance;color:var(--t-fg,var(--c-ink));overflow-wrap:break-word}.s-statement .s-stm-text--s{font-size:min(var(--step-5,clamp(2.25rem,1.6rem + 2.6vw,3.5rem)),3.75rem)}.s-statement .s-stm-text--m{font-size:min(var(--step-4,clamp(1.875rem,1.4rem + 1.9vw,2.75rem)),2.875rem)}.s-statement .s-stm-text--l{font-size:min(var(--step-3,clamp(1.5rem,1.2rem + 1.2vw,2.125rem)),2.25rem);line-height:var(--stm-lh,1.22)}.s-statement .s-accent{font-style:inherit}.s-statement .s-stm-body{margin:clamp(20px,2.4vw,28px) 0 0;max-width:var(--measure,58ch);font-size:var(--step-1,1.125rem);line-height:1.6;color:var(--t-fg-2,var(--c-muted))}.s-statement .s-stm-body p{margin:0}.s-statement .s-stm-body p+p{margin-top:.8em}.s-statement .s-stm-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(26px,3vw,36px)}.s-statement .s-stm-cta .btn{min-height:46px;padding:10px 22px;box-shadow:none}@media (max-width:639px){.s-statement .s-stm-cta .btn{flex:1 1 auto}}.s-statement--band{padding:clamp(24px,3.2vw,42px) 0;text-align:center}.s-statement--band .s-stm-in{max-width:none}.s-statement--band .s-stm-text{margin:0;font-size:var(--stm-band,clamp(1.6rem,4.2vw,2.9rem));line-height:1.06;text-wrap:balance}
/* reviews */
.s-reviews{position:relative;padding:var(--sec-y,clamp(64px,8vw,112px)) 0;color:var(--t-fg,var(--c-ink))}.s-reviews:not([class*="tone-"]){background:var(--c-bg)}.s-reviews .s-head{max-width:760px;margin:0 0 clamp(32px,4vw,52px)}.s-reviews .s-head--row{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px}.s-reviews .s-head--row .s-head-in{max-width:720px}.s-reviews .s-head--center{margin-inline:auto;text-align:center}.s-reviews .s-head--center .s-eyebrow{justify-content:center}.s-reviews .s-head h2{margin:0;text-wrap:balance}.s-reviews .s-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:var(--step--1,.8125rem);font-weight:var(--fw-semi,600);letter-spacing:.12em;text-transform:uppercase;color:var(--t-link,var(--c-brand-text))}.s-reviews .s-eyebrow::before{content:"";width:22px;height:2px;background:currentColor;flex:none}.s-reviews .s-lead{margin:16px 0 0;font-size:var(--step-1,1.125rem);line-height:1.6;color:var(--t-fg-2,var(--c-muted));max-width:var(--measure,62ch);text-wrap:pretty}.s-reviews .s-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:var(--fw-semi,600);color:var(--t-link,var(--c-brand-text));text-decoration:none;text-underline-offset:4px}.s-reviews .s-link:hover{text-decoration:underline}.s-reviews .s-link .ic{transition:transform .2s}.s-reviews .s-link:hover .ic{transform:translateX(3px)}.s-reviews .s-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.s-reviews .s-num{font-variant-numeric:tabular-nums}.s-reviews p{text-wrap:pretty}.s-reviews img{display:block;max-width:100%}@media (prefers-reduced-motion:reduce){.s-reviews *{transition:none!important}}.s-reviews figure{margin:0}.s-reviews blockquote{margin:0}.s-reviews .stars{font-size:1rem;letter-spacing:2px}.s-reviews-card{display:flex;flex-direction:column;gap:14px;padding:clamp(22px,2.4vw,30px);background:var(--c-card,var(--c-bg));border:1px solid var(--c-line);border-radius:var(--r-md,var(--r))}.s-reviews-card blockquote p{margin:0;font-size:var(--step-0,1.0625rem);line-height:1.6}.s-reviews-card figcaption{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-top:auto;padding-top:4px;font-size:var(--step--1,.9375rem)}.s-reviews-card figcaption span{color:var(--c-muted-card,var(--c-muted))}.s-reviews-agg{display:flex;align-items:center;gap:14px;margin:0}.s-reviews-score{font-family:var(--f-head,var(--hf));font-size:var(--step-4,clamp(2.25rem,1.6rem + 2vw,3rem));font-weight:var(--fw-head,700);line-height:1;letter-spacing:-.02em}.s-reviews-agg-in{display:grid;gap:2px;font-size:var(--step--1,.9375rem);color:var(--c-muted)}.s-reviews-side{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px}
/* page_hero */

.s-page_hero--billboard{position:relative;background:var(--c-brand);color:var(--c-on-brand);text-align:left}.s-page_hero--billboard .s-pbh-h1{margin:0;color:inherit;text-wrap:balance}.s-page_hero--billboard .s-pbh-kick{margin:0;color:inherit;font-weight:400}.s-page_hero--billboard{padding:10px 0}.s-page_hero--billboard .s-pbh-kick{padding-top:10px;margin-bottom:10px}.s-page_hero--billboard .s-pbh-h1{margin:5px 0 10px;color:var(--c-accent)}.s-page_hero--billboard .s-pbh-icons{display:flex;flex-wrap:wrap;padding:10px;border-radius:10px;background:rgba(255,255,255,.52)}.s-page_hero--billboard .s-pbh-icon{flex:1 1 0;min-width:0;color:inherit;text-decoration:none;text-align:center}.s-page_hero--billboard .s-pbh-icon img{display:block;width:80%;height:auto;margin:0 auto}.s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon{padding-top:30px}.s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon img{width:60%}.s-page_hero--billboard .s-pbh-icon-t{margin:5px 0 20px;font-weight:400;color:inherit}.s-page_hero--billboard a.s-pbh-icon:hover .s-pbh-icon-t{text-decoration:underline}@media (max-width:640px){.s-page_hero--billboard .s-pbh-icon{flex:0 0 33.33%}}
.s-page_hero--billboard_box{position:relative;background:var(--c-brand);color:var(--c-on-brand);text-align:left}.s-page_hero--billboard_box .s-pbh-h1{margin:0;color:inherit;text-wrap:balance}.s-page_hero--billboard_box .s-pbh-kick{margin:0;color:inherit;font-weight:400}.s-page_hero--billboard_box{padding:20px 0}.s-page_hero--billboard_box .s-pbh-h1{margin:20px 0 10px}.s-page_hero--billboard_box .s-pbh-box{padding:20px;border-radius:5px;background:var(--c-bg);color:var(--c-ink);box-shadow:2px 2px 2px rgba(0,0,0,1)}.s-page_hero--billboard_box .s-pbh-box p{margin:0 0 10px}
:root{--f-head:"Arimo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-body:"Arimo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-accent:var(--f-head)}
body{font-family:var(--f-body)}h1,h2,h3,h4,.brand-name,.stat strong{font-family:var(--f-head)}
.th-keystone{--bb-blue:#225d99;--bb-lit:var(--c-accent);--bb-field:var(--c-brand);
  --bb-rule:color-mix(in srgb,var(--c-ink) 14%,transparent)}
.th-keystone h1,.th-keystone h2{letter-spacing:-.02em}

/* The lit word. One rule lights every hero and every band. */
.th-keystone .s-accent{font-style:normal;color:var(--bb-lit)}
.th-keystone section:not([class*="tone-"]) .s-accent,.th-keystone .tone-base .s-accent{color:var(--c-brand-text)}

/* ── the top: a WHITE strip with the phone loud, then a BLUE nav bar. Guru's, exactly. ── */
.th-keystone .util{background:#fff;color:var(--c-ink);font-weight:var(--fw-bold,700);padding:8px 0}
.th-keystone .util a{color:var(--c-brand-text)}
.th-keystone .util-tel{font-size:clamp(1.15rem,2.4vw,1.85rem);font-weight:800;letter-spacing:-.02em;color:var(--c-brand-text)}
.th-keystone .top{background:var(--bb-blue);color:#fff;border-bottom:0}
.th-keystone .top a,.th-keystone .nav a{color:#fff;font-weight:700}
.th-keystone .top-in{min-height:46px}
.th-keystone .nav a:hover{color:var(--bb-lit)}

/* ── buttons: solid blue and solid yellow, chunky, square-shouldered ── */
.th-keystone .btn{font-weight:800;border-radius:8px;padding:15px 26px;border-width:3px}
.th-keystone .btn-lg{padding:17px 30px;font-size:1.1rem}
.th-keystone .s-hero--billboard .btn-accent{background:var(--bb-lit);border-color:var(--bb-lit);color:#111}
.th-keystone .s-hero--billboard .btn-outline,
.th-keystone .s-hero--billboard .btn-ghost{background:var(--bb-blue);border-color:var(--bb-blue);color:#fff}

/* ── the hero: a FLAT field, tight, the proof rule thin and white ── */
.th-keystone .s-hero--billboard{--hb-stars:var(--bb-lit);background:var(--bb-field);padding-top:clamp(34px,4vw,60px);padding-bottom:clamp(34px,4vw,60px)}
.th-keystone .s-hero--billboard h1{font-size:clamp(2.4rem,6.6vw,4.9rem);line-height:1.04}
.th-keystone .s-hero--billboard .s-hero-proof{border-top-color:rgba(255,255,255,.55);max-width:38ch}
.th-keystone .s-hero--billboard .s-hb-count{font-size:clamp(1.05rem,2.2vw,1.45rem);font-weight:700}

/* ── a full-bleed band says one thing ── */
.th-keystone .s-statement--band{--stm-band:clamp(1.6rem,4.2vw,3rem);padding:clamp(18px,2.4vw,32px) 0}
.th-keystone .s-statement--band .s-stm-text{font-weight:800}

/* ── coupons read as coupons: a white card, a dashed rule, the amount huge ── */
.th-keystone .s-offers--coupons .s-of-card{border:2px dashed var(--c-brand);border-radius:4px;background:#fff}
.th-keystone .s-offers--coupons .s-of-amount{font-weight:800;letter-spacing:-.03em;color:var(--c-brand-text)}

/* ── the photo grid is TIGHT and square: these are job photos, not art ── */
.th-keystone .s-gallery--grid{--gal-gap:8px;--gal-min:150px}
.th-keystone .s-gallery img{border-radius:3px}

/* ── denser than the house default, and square-shouldered throughout ── */
.th-keystone .s-next_steps--tiles .s-ns-item,
.th-keystone .s-portfolio .s-pf-item,
.th-keystone .s-reviews .s-rv-card{border-radius:6px}
.th-keystone .s-stats--row{--stats-rule:var(--bb-rule)}

/* ════ Guru's own values, read from guruguttercleaning.com's stylesheet (style-big.css) on 2026-10-05 — Garret: "we are making
   them exact matches as much as possible" (28-GURU-EXACT-MATCH-STATUS.md). Billboard was drawn from this site; these rules
   close the distance. ════ */

/* White page: Guru's sections sit on white, and the gaps between them (a band's 40px top margin) must not show a tint. */
body.th-keystone,.th-keystone main{background:#fff}

/* Type: Guru sets no web font — Bootstrap 3's Helvetica stack — so neither does this look. */
.th-keystone{--f-head:"Helvetica Neue",Helvetica,Arial,sans-serif;--f-body:"Helvetica Neue",Helvetica,Arial,sans-serif}
.th-keystone h1,.th-keystone h2{letter-spacing:normal}

/* The top: white, the logo left and the phone loud on the right; under it the full-width blue menu bar, sticky. The header's
   own markup is unchanged — the utility strip's phone becomes the right-hand side, the menu its own row. */
.th-keystone .top{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto 1fr;align-items:center;background:#fff;
  color:var(--c-ink);border-bottom:0;padding-inline:max(16px,calc((100% - var(--wrap,1120px)) / 2))}
.th-keystone .top .top-in{display:contents}
.th-keystone .top .brand{grid-column:1;grid-row:1;padding:10px 0;color:var(--c-ink)}
.th-keystone .top .brand .logo{height:clamp(46px,5vw,64px);width:auto}
.th-keystone .top .brand .logo+.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.th-keystone .top .util{grid-column:2;grid-row:1;justify-self:end;background:transparent;padding:10px 0}
.th-keystone .top .util .wrap{max-width:none;padding:0}
.th-keystone .top .util-hours,.th-keystone .top .util-area,.th-keystone .top .util-247{display:none}
.th-keystone .top .util-tel{display:inline-flex;align-items:center;gap:6px;color:#be1010;font-size:clamp(1.4rem,2.9vw,2.5rem);font-weight:700;letter-spacing:normal}
.th-keystone .top .util-tel svg{width:.8em;height:.8em}
/* The bar runs edge to edge by its border-image (painted 100vmax out to each side, never up or down). It was a 100vmax box-shadow cut
   back with clip-path:inset(0 -100vmax), and that clip also cut the Services dropdown off at the bar's bottom edge: a hover showed
   only a white strip (suckmyguttersclean.com, #74, 2026-10-20). */
.th-keystone .top .nav{grid-column:1/-1;grid-row:2;justify-self:stretch;margin:0;display:flex;justify-content:center;gap:0;background:var(--bb-blue);
  border-image:linear-gradient(var(--bb-blue) 0 0) fill 0 / / 0 100vmax;padding:10px 0}
.th-keystone .top .nav a{color:#fff;font-weight:400;font-size:16px;padding:0 20px}
.th-keystone .top .nav a:hover{color:#fff;text-decoration:underline}
/* The dropdown is a white card: its links in the page's ink, not the bar's white. */
.th-keystone .top .nav .dd-menu a{color:var(--c-ink);font-size:15px;padding:10px 12px}
.th-keystone .top .nav .dd-menu a:hover{color:var(--c-ink);text-decoration:none}
.th-keystone .top .btn-call,.th-keystone .top .btn-go{display:none}
.th-keystone .top .mnav{grid-column:2;grid-row:1;justify-self:end}
@media (max-width:900px){.th-keystone .top .nav{display:none}}
/* The phone menu's links in Guru's link blue at weight 400 (its navbar, measured 2026-10-08). The white of the menu bar above
   (`.top a`) reached them too, and on the menu's pale panel they could not be read. */
.th-keystone .top .mnav-panel a{color:#006ab5;font-weight:400}

/* The phone with the site's line under it (header word `tagline` — pl_sg_header_line): Guru's <h2> phone over its <h3> "Call The
   *Gutter Cleaning* Professionals!", right-aligned — measured at 1280px: the phone 40px at weight 500, the line 21.33px blue with its
   linked words red, the block 84px tall between 10px margins. On a phone the line isn't shown (Guru's phone header has none). */
.th-keystone .top .util-in:has(.util-call){padding-block:0}
.th-keystone .top .util-call{display:block;text-align:right}
.th-keystone .top .util-h{margin:6.67px 0 0;font-family:inherit;font-size:inherit;line-height:44px;font-weight:500;letter-spacing:normal}
.th-keystone .top .util-call .util-tel{font-size:40px;font-weight:500;line-height:44px;vertical-align:top}
.th-keystone .top .util-line{margin:0 0 10px;font-family:inherit;font-size:21.33px;line-height:23.47px;font-weight:500;letter-spacing:normal;color:#225d99}
.th-keystone .top .util-line a{color:#be1010;font-weight:inherit;text-decoration:none}
.th-keystone .top .util-line a:hover{text-decoration:underline}
@media (max-width:900px){
  .th-keystone .top .util-line{display:none}
  .th-keystone .top .util-call{text-align:center}
  .th-keystone .top .util-h{margin:0;line-height:inherit}
  .th-keystone .top .util-call .util-tel{font-size:clamp(1.15rem,5.4vw,1.6rem);font-weight:700;line-height:inherit}
}

/* The hero, at Guru's sizes: a 60pt headline spaced wide, the count in 24pt, the <h1> name in 22pt, buttons 10px round. */
.th-keystone .s-hero--billboard{background:#be1010;padding:40px 0}
.th-keystone .s-hero--billboard .s-hb-head,.th-keystone .s-hero--billboard h1:not(.s-hb-name){font-size:clamp(2.2rem,6.25vw,80px);
  line-height:1.28;letter-spacing:.2rem;font-weight:700}
.th-keystone .s-hero--billboard .s-hero-proof{max-width:60%;border-top:1px solid rgba(255,255,255,.6);margin-top:20px;padding-top:20px}
.th-keystone .s-hero--billboard .s-hb-count{font-size:clamp(1.2rem,2.5vw,2rem);font-weight:400;letter-spacing:.15rem;margin:0}
.th-keystone .s-hero--billboard .s-hb-stars{gap:6px;margin:14px 0}
.th-keystone .s-hero--billboard .s-hb-stars svg{width:34px;height:34px}
.th-keystone .s-hero--billboard .s-hero-proof h1.s-hb-name{font-size:clamp(1.15rem,2.3vw,1.85rem);font-weight:400;line-height:1.3;letter-spacing:normal;opacity:1;margin:0 auto 6px;max-width:none;text-align:center;text-wrap:nowrap}
.th-keystone .s-hero--billboard .s-hero-cta{gap:24px;margin-top:24px}
.th-keystone .s-hero--billboard .s-hero-cta .btn{border-radius:10px;font-size:clamp(1.15rem,2vw,1.7rem);font-weight:700;letter-spacing:.1rem;
  padding:.55em 1.1em;min-width:min(100%,340px);justify-content:center;border-width:2px}
.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-call{background:#225d99;border-color:#1a4778;color:#fff;box-shadow:none}
.th-keystone .s-hero--billboard .s-hero-call svg{display:none}
.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-act,.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-second{background:#a21327;border-color:#7e0f1f;color:#fff;box-shadow:none}

/* The red bands: Guru's .red-main-sections — a shadow, edge to edge; the heading at the level the old page used (pl_sgs_kit_levels),
   each level at Guru's own size (measured on guruguttercleaning.com at 1280px, 2026-10-05): h2 56px white · h3 48px yellow ·
   h5 35px white; the line under it h4 31px / h6 27px white. Lit words yellow. */
.th-keystone .s-statement--band{background:#be1010;box-shadow:0 0 6px #000;padding:20px 0;margin:40px 0 0;position:relative;z-index:1}
.th-keystone .s-statement--band .wrap{max-width:none}
.th-keystone .s-statement--band .s-stm-in{text-align:center;max-width:none}
.th-keystone .s-statement--band .s-stm-text{font-size:clamp(1.8rem,4.4vw,56px);line-height:1.19;letter-spacing:.1rem;color:#fff;
  text-shadow:1px 1px 2px #000;font-weight:500;padding:20px;margin:0;max-width:none}
.th-keystone .s-statement--band .s-stm-text.s-stm-lv3,.th-keystone .s-statement--band .s-stm-text.s-stm-lv4{font-size:clamp(1.6rem,3.75vw,48px);line-height:1.17;color:#a21327;letter-spacing:normal;padding:20px 10px 0}
.th-keystone .s-statement--band .s-stm-text.s-stm-lv5,.th-keystone .s-statement--band .s-stm-text.s-stm-lv6{font-size:clamp(1.4rem,2.7vw,34.67px);line-height:1.15}
.th-keystone .s-statement--band .s-stm-sub{margin:0;color:#fff;font-size:clamp(1.1rem,2.4vw,30.67px);line-height:1.43;font-weight:400;padding:0 10px 20px}
.th-keystone .s-statement--band h6.s-stm-sub{font-size:clamp(1rem,2.1vw,26.67px);line-height:1.5;letter-spacing:.1rem;text-shadow:1px 1px 2px #000;padding:0 3px 20px}
/* E3: a band whose second line outranks its first (an h3, then an h2) — the small line first, at the top of the band, then the big one. */
.th-keystone .s-statement--band .s-stm-sub.s-stm-first{padding:20px 10px 0}
.th-keystone .s-statement--band .s-stm-first+.s-stm-text{padding-top:4px}

/* Section headings in the white sections — Guru's are left, bold, dark; a centred red one where Guru centres it (the gallery). */
.th-keystone section:not([class*="tone-"]){background:#fff}
.th-keystone section:not([class*="tone-"]) h2{color:#333;font-weight:700}
.th-keystone #work .sec-head,.th-keystone #work .s-head{text-align:center;margin-inline:auto;max-width:none}
.th-keystone #work h2{color:#be1010;font-size:clamp(1.8rem,3.4vw,2.5rem);letter-spacing:.1rem}
.th-keystone #work .s-gal-intro{font-size:clamp(1.05rem,1.9vw,24px);line-height:1.43;text-align:left;margin:10px 0 0;color:#333;max-width:none}

/* The photo grid, Guru's: five across, square, a small shadow. */
.th-keystone .gallery{grid-template-columns:repeat(5,1fr);gap:12px 2.4%}
.th-keystone .gallery img{border-radius:0;box-shadow:1px 1px 2px #000;filter:none}
@media (max-width:700px){.th-keystone .gallery{grid-template-columns:repeat(3,1fr);gap:10px 3%}}

/* Coupons, Guru's: white cards inside a 3px grey dashed line, red (the second blue), everything centred, a barcode at the foot. */
.th-keystone .s-offers--coupons{background:#fff}
.th-keystone .s-offers--coupons .s-of-tkt{background:#fff;border:3px dashed #888;border-radius:0;box-shadow:none;text-align:center;color:#be1010}
.th-keystone .s-offers--coupons li:nth-child(even) .s-of-tkt{color:#225d99}
.th-keystone .s-offers--coupons .s-of-top{background:transparent;color:inherit;text-align:center}
.th-keystone .s-offers--coupons .s-of-top *,.th-keystone .s-offers--coupons .s-of-body *{color:inherit}
.th-keystone .s-offers--coupons .s-of-big{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:700;letter-spacing:normal}
.th-keystone .s-offers--coupons .s-of-body{text-align:center;font-weight:700}
.th-keystone .s-offers--coupons .s-of-coupon::before{display:none}
.th-keystone .s-offers--coupons .s-of-tkt{filter:none}
.th-keystone .s-offers--coupons .s-of-body{background:#fff}
.th-keystone .s-offers--coupons .s-of-claim,.th-keystone .s-offers--coupons .s-of-more{display:none}
.th-keystone .s-offers--coupons .s-of-body{align-items:center;color:inherit}
.th-keystone .s-offers--coupons .s-of-detail{font-size:clamp(1.05rem,1.6vw,1.4rem);line-height:1.4;font-weight:700}
.th-keystone .s-offers--coupons .s-of-body::after{content:"";display:block;align-self:stretch;margin-top:auto;height:56px;margin:22px 4% 14px;
  background:repeating-linear-gradient(90deg,#111 0 3px,transparent 3px 5px,#111 5px 6px,transparent 6px 9px,#111 9px 13px,transparent 13px 14px,#111 14px 15px,transparent 15px 19px)}

/* Coupons, PRINTED (this design's `coupon` word — pl_sgs_offers_printed): Guru's .coupon-section, measured on guruguttercleaning.com
   2026-10-08 (Garret: "the coupons i am not a fan off the ui is bad" — v-1008-065805-1). At 1280px: two cards across 760px (each
   365 × 520, 30px apart), a 3px grey dashed line, 5px inside, everything centred at weight 500, the first red and the second blue;
   label 38.67px, amount 74.67px, lines 40 / 22.67 / 22.67px (the second card 30.67 / 40 / 13.33px, its lower lines black); the barcode
   (342 × 74) 375px down, the card's last 71px under it. On a phone the cards stay side by side and every size steps down (style-800m … 400m). */
.th-keystone .s-of-printed{padding:30px 0 0}
.th-keystone .s-of-print{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;max-width:760px;margin:0 auto}
.th-keystone .s-of-print--1{grid-template-columns:minmax(0,1fr);max-width:365px}
.th-keystone .s-of-pc{display:flex;flex-direction:column;min-height:520px;padding:5px;border:3px dashed #888;background:#fff;color:#be1010;text-align:center}
.th-keystone .s-of-pc:nth-child(even){color:#225d99}
.th-keystone .s-of-pc>*{margin:0;color:inherit;font-family:inherit;font-weight:500;letter-spacing:normal;text-wrap:wrap}
.th-keystone .s-of-pc-l{font-size:38.67px;line-height:53.33px;margin-top:5px}
.th-keystone .s-of-pc-big{font-size:74.67px;line-height:88px;margin-top:15px}
.th-keystone .s-of-pc-ln1{font-size:40px;line-height:60px;margin-top:15px}
.th-keystone .s-of-pc-ln2{font-size:22.67px;line-height:40px;margin-top:20px}
.th-keystone .s-of-pc-ln3{font-size:22.67px;line-height:24.93px;margin-top:16px;color:#000}
.th-keystone .s-of-pc:nth-child(even) .s-of-pc-big{margin-top:5px}
.th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:30.67px;line-height:44px;margin-top:30px}
.th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{font-size:40px;line-height:44px;margin-top:37px;color:#000}
.th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln3{font-size:13.33px;line-height:14.67px;margin-top:5px;color:#000}
.th-keystone .s-of-pc-ends{font-size:17.33px;line-height:1.3;margin-top:16px;color:#000}
.th-keystone .s-of-pc>:nth-last-child(2){margin-bottom:30px}
.th-keystone .s-of-pc-bar{display:block;align-self:center;width:98%;aspect-ratio:342/74;margin:auto 0 63px;
  background:repeating-linear-gradient(90deg,#111 0px 3px,transparent 3px 5px,#111 5px 6px,transparent 6px 8px,#111 8px 12px,transparent 12px 13px,#111 13px 14px,transparent 14px 17px,#111 17px 19px,transparent 19px 20px,#111 20px 23px,transparent 23px 26px,#111 26px 27px,transparent 27px 29px,#111 29px 33px,transparent 33px 35px,#111 35px 36px,transparent 36px 37px,#111 37px 39px,transparent 39px 42px,#111 42px 43px,transparent 43px 45px,#111 45px 48px,transparent 48px 49px,#111 49px 51px,transparent 51px 52px,#111 52px 56px,transparent 56px 58px,#111 58px 59px,transparent 59px 61px)}
@media (max-width:765px){
  .th-keystone .s-of-printed{padding-top:10px}
  .th-keystone .s-of-printed .wrap{padding-inline:2.5%}
  .th-keystone .s-of-print{gap:20px 4%}
  .th-keystone .s-of-pc{min-height:375px}
  .th-keystone .s-of-pc>*,.th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln{line-height:1.1}
  .th-keystone .s-of-pc>:nth-last-child(2){margin-bottom:29px}
  .th-keystone .s-of-pc:nth-child(even)>:nth-last-child(2){margin-bottom:25px}
  .th-keystone .s-of-pc-bar{width:95%;margin:0}
  .th-keystone .s-of-pc-l{font-size:30.67px}
  .th-keystone .s-of-pc-big,.th-keystone .s-of-pc:nth-child(even) .s-of-pc-big{font-size:62.67px;margin-top:15px}
  .th-keystone .s-of-pc-ln1{font-size:36px}
  .th-keystone .s-of-pc-ln2{font-size:21.33px;margin-top:15px}
  .th-keystone .s-of-pc-ln3{font-size:21.33px;margin-top:20px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:26.67px;margin-top:25px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{font-size:33.33px;margin-top:48px}
}
@media (max-width:700px){
  .th-keystone .s-of-pc{min-height:344px}
  .th-keystone .s-of-pc-l{font-size:24px}
  .th-keystone .s-of-pc-ln1{font-size:32px}
  .th-keystone .s-of-pc-ln2,.th-keystone .s-of-pc-ln3{font-size:18.67px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:24px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{margin-top:43px}
}
@media (max-width:600px){
  .th-keystone .s-of-pc{min-height:300px}
  .th-keystone .s-of-pc-l{font-size:20px}
  .th-keystone .s-of-pc-big,.th-keystone .s-of-pc:nth-child(even) .s-of-pc-big{font-size:48px}
  .th-keystone .s-of-pc-ln1{font-size:24px}
  .th-keystone .s-of-pc-ln2,.th-keystone .s-of-pc-ln3{font-size:14.67px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:18.67px;margin-top:20px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{font-size:26.67px}
}
@media (max-width:500px){
  .th-keystone .s-of-pc{min-height:242px}
  .th-keystone .s-of-pc-bar{width:98%}
  .th-keystone .s-of-pc-l{font-size:17.33px}
  .th-keystone .s-of-pc-big{font-size:32px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-big{font-size:41.33px;margin-top:5px}
  .th-keystone .s-of-pc-ln1{font-size:18.67px}
  .th-keystone .s-of-pc-ln2,.th-keystone .s-of-pc-ln3{font-size:13.33px}
  .th-keystone .s-of-pc-ln3{margin-top:5px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:16px;margin-top:17px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{font-size:18.67px;margin-top:33px}
}
@media (max-width:400px){
  .th-keystone .s-of-pc-l{font-size:14.67px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-big{font-size:37.33px;margin-top:10px}
  .th-keystone .s-of-pc-ln2,.th-keystone .s-of-pc-ln3{font-size:10.67px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln1{font-size:13.33px;margin-top:19px}
  .th-keystone .s-of-pc:nth-child(even) .s-of-pc-ln2{margin-top:26px}
}

/* Guru's text blocks (.two-column-section): the heading ACROSS the top in 40px bold dark, then 21px words with the photo
   (504px) beside them — on the left when the old page put it there (style `left` → s-bk-flip). A dashed blue line between.
   Plain blocks: a centred 33px blue heading (.white-section h2), or a 29px blue one on the left when the old page made it an
   <h3> (.promise-section h3 — "1. Risk Free"). Words lit with *stars* are bold, blue beside a photo and red in a plain block. */
.th-keystone .s-block{padding-block:10px}
.th-keystone .s-block .s-bk-in,.th-keystone .s-block .s-bk-text,.th-keystone .s-block .s-bk-words,.th-keystone .s-block .s-head{max-width:none}
.th-keystone .s-block .s-head{margin:0 0 10px}
.th-keystone .s-block h2{color:#333;font-size:clamp(1.6rem,3.2vw,40px);line-height:1.2;font-weight:700;letter-spacing:normal;margin:20px 0 0}
.th-keystone .s-block .s-bk-words{font-size:clamp(1.05rem,1.7vw,21.33px);line-height:1.25;color:#333}
.th-keystone .s-block .s-bk-words p{margin:0 0 10px;line-height:inherit}
.th-keystone .s-block .s-bk-words .s-accent{font-weight:700;color:#225d99}
.th-keystone section.s-block--plain .s-bk-words .s-accent{color:#be1010}
.th-keystone .s-block .s-bk-media{margin:0}
.th-keystone .s-block .s-bk-media img{border-radius:0}
@media (min-width:766px){
  .th-keystone .s-block--beside .s-bk-grid{grid-template-columns:minmax(0,1fr) min(504px,45%);column-gap:30px;row-gap:0;align-items:start}
  .th-keystone .s-block--beside .s-bk-text{display:contents}
  .th-keystone .s-block--beside .s-head{grid-column:1/-1;grid-row:1}
  .th-keystone .s-block--beside .s-bk-words,.th-keystone .s-block--beside .s-bk-points,.th-keystone .s-block--beside .s-bk-do{grid-column:1}
  .th-keystone .s-block--beside .s-bk-media{grid-column:2;grid-row:2/span 3}
  .th-keystone .s-block.s-bk-flip .s-bk-grid{grid-template-columns:min(504px,45%) minmax(0,1fr)}
  .th-keystone .s-block.s-bk-flip .s-bk-words,.th-keystone .s-block.s-bk-flip .s-bk-points,.th-keystone .s-block.s-bk-flip .s-bk-do{grid-column:2}
  .th-keystone .s-block.s-bk-flip .s-bk-media{grid-column:1;order:0}
}
.th-keystone section.s-block--plain h2{color:#225d99;font-size:clamp(1.5rem,2.6vw,33.33px);line-height:1.4;font-weight:500;text-align:center;margin:30px 0 0}
.th-keystone section.s-block--plain h3{color:#225d99;font-size:clamp(1.35rem,2.3vw,29.33px);line-height:1.27;font-weight:700;margin:20px 0 0}
/* E2 (43-KEEP-THE-EMPHASIS-PLAN.md, v-1009-085844-1): a brought-over block's smaller heading (h4–h6) is a sub-heading — bold, in the
   design's blue, sized by level — as the old town websites drew theirs ("Fast Results That Are Fabulous."), never the browser's own
   13–17px near-black. papapros.com has none (its are h3, styled above). A band block's heading is the band's, not this. */
.th-keystone .s-block:not(.s-block--band) .s-head :is(h4,h5,h6){color:#225d99;font-weight:700;letter-spacing:normal;line-height:1.25;margin:0}
.th-keystone .s-block:not(.s-block--band) .s-head h4{font-size:clamp(1.25rem,2vw,24px)}
.th-keystone .s-block:not(.s-block--band) .s-head h5{font-size:clamp(1.15rem,1.8vw,21.33px)}
.th-keystone .s-block:not(.s-block--band) .s-head h6{font-size:clamp(1.05rem,1.6vw,18.67px)}
/* …and a band block's small heading ("Use Any Of The Methods Below To Reach Us", an h5 under a band) is the old pages' quiet grey
   line — readable size, normal weight — not 14px bold black. */
.th-keystone .s-block--band .s-head :is(h4,h5,h6){color:#555;font-weight:400;font-size:clamp(1.1rem,1.9vw,22px);line-height:1.35;letter-spacing:normal;margin:0}
/* E4: the old town websites' arrow list ("Are Your Gutters Full Of Gunk?" → "➥ Water Barely Flows Out Anymore"…): bold grey lines,
   each with a red ➥, in a white box with a soft shadow — as the old pages drew it. Only a list the converter marked (s-bk-arrows). */
.th-keystone .s-bk-words.s-bk-arrows ul{list-style:none;margin:12px auto;padding:12px 28px;max-width:560px;background:#fff;border:1px solid #a3a3a3;border-radius:7px;box-shadow:0 1px 6px rgba(0,0,0,.35)}
.th-keystone .s-bk-words.s-bk-arrows li{position:relative;margin:13px 0;padding-left:40px;font-weight:700;color:#7d7d7d;font-size:clamp(1rem,1.6vw,19px);line-height:1.35}
.th-keystone .s-bk-words.s-bk-arrows li::before{content:"\27A5";position:absolute;left:0;top:-.12em;color:#c4161c;font-size:1.45em;line-height:1}
.th-keystone section.s-block--plain .s-bk-words{line-height:1.375}
.th-keystone .s-space--small{height:0}
.th-keystone .s-space--line{height:auto;padding:20px 0}
.th-keystone .s-space--line .s-sp-rule{width:55%;margin:0 auto;border:0;border-top:1px dashed #225d99}

/* Guru's contact lines (.contact-section h2): 51px bold red, the number a link, a short line under each. */
.th-keystone section.s-block--points .s-bk-points{display:block;margin:0}
.th-keystone section.s-block--points .s-bk-point{border:0;border-radius:0;padding:0;margin:20px 0 0;max-width:none}
.th-keystone section.s-block--points .s-bk-point:not(:last-child)::after{content:"";display:block;width:40%;min-width:min(100%,456px);margin-top:15px;border-bottom:1px solid #000}
.th-keystone section.s-block--points .s-bk-point>*{display:block;margin:0;color:#be1010;font-size:clamp(1.6rem,3.95vw,50.67px);line-height:1.16;font-weight:700}
.th-keystone section.s-block--points .s-bk-point strong,.th-keystone section.s-block--points .s-bk-point span{display:inline;margin:0;color:inherit;font:inherit}
.th-keystone section.s-block--points .s-bk-point a,.th-keystone section.s-block--points .s-bk-point a span{color:#006ab5;text-decoration:none}
.th-keystone section.s-block--points .s-bk-point a:hover{text-decoration:underline}
.th-keystone section.s-block--points .s-bk-do{margin:20px 0 0}
.th-keystone section.s-block--points .s-bk-btn{background:#a21327;border:2px solid #7e0f1f;color:#fff;border-radius:10px;font-size:clamp(1.15rem,2vw,1.7rem);font-weight:700;letter-spacing:.1rem;padding:.55em 1.1em;box-shadow:none}
/* "Email Us:" with the form right under it (pl_sgs_block_form) — Guru's old page had its email form there (a call-tracking frame:
   plain fields across the page with a thin grey line, a light-blue button the full width, #5c9de4 measured 2026-10-08). The form
   is the site's own; only its look is set here. In a two-column part (the Contact page) it starts under the icon. */
.th-keystone section.s-block--points .s-bk-point>.s-bk-form,.th-keystone .s-block--twocol .s-bk-form{display:block;clear:both;margin:16px 0 0;
  font-size:16px;line-height:1.4;font-weight:400;color:#333;letter-spacing:normal}
.th-keystone .s-bk-form .form{padding:0;border:0;border-radius:0;box-shadow:none;background:none;gap:12px;max-width:none}
.th-keystone .s-bk-form .form label{display:block;font-size:14px;font-weight:400;color:#555}
.th-keystone .s-bk-form .form input,.th-keystone .s-bk-form .form textarea{display:block;box-sizing:border-box;width:100%;margin-top:4px;border:1px solid #ccc;border-radius:4px;min-height:40px;padding:8px 12px;font-size:16px;background:#fff}
.th-keystone .s-bk-form .form .btn{background:#5c9de4;border:0;border-radius:4px;color:#fff;font-size:16px;font-weight:400;letter-spacing:normal;min-height:40px;padding:8px 12px;box-shadow:none}
.th-keystone .s-bk-form .form .btn:hover{background:#4a8ad6}

/* Any other block's button (a recent job's "see the job" link): a plain blue link, the way Guru links its job pages. */
.th-keystone .s-block:not(.s-block--points) .s-bk-btn{background:none;border:0;box-shadow:none;padding:0;min-height:0;color:#006ab5;font-size:clamp(1rem,1.6vw,20px);font-weight:400;text-decoration:underline;text-underline-offset:3px}

/* The F.A.Q. (.faq-section): every answer showing, each question a 29px bold black heading, 21px answers. */
.th-keystone #faq .wrap{max-width:var(--wrap,1120px)}
.th-keystone .faq-open h3{color:#000;font-size:clamp(1.25rem,2.3vw,29.33px);line-height:1.36;margin:20px 0 10px;font-weight:700}
.th-keystone .faq-open p{font-size:clamp(1.05rem,1.7vw,21.33px);line-height:1.625;margin:0 0 10px;color:#333}

/* Hours (.hours-section): a box 60% wide with a thin black line, each day bold, its hours beside. */
.th-keystone .s-hours_location--days .s-hl-days{max-width:684px;width:60%;min-width:min(100%,320px);padding:20px;border:1px solid #000;margin-top:30px}
.th-keystone .s-hours_location--days .s-hl-table th,.th-keystone .s-hours_location--days .s-hl-table td{font-size:clamp(1.05rem,1.7vw,21.33px);line-height:1.43;padding:0;color:#333}
.th-keystone .s-hours_location--days .s-hl-table th{width:42%;font-weight:700}
.th-keystone .s-hours_location--days .s-hl-table .is-closed td{color:#333;text-transform:uppercase}
.th-keystone .s-hours_location--days .s-hl-table tr th,.th-keystone .s-hours_location--days .s-hl-table tr td{border:0}

/* Reviews: Guru shows them as one long list on white (its Papalocal widget) — a column of plain entries, not a wall of cards. */
.th-keystone .s-reviews--wall{background:#fff}
.th-keystone .s-reviews--wall .s-reviews-wall{columns:auto;display:grid;gap:0;max-width:1094px;margin:20px auto 0}
.th-keystone .s-reviews--wall .s-reviews-card,.th-keystone .s-reviews--wall .s-reviews-card--lead{background:#fff;color:#333;border:0;border-bottom:1px solid #ddd;border-radius:0;padding:18px 0;box-shadow:none}
.th-keystone .s-reviews--wall .s-reviews-card blockquote p{font-size:clamp(1rem,1.4vw,18px);line-height:1.55;color:#333}
.th-keystone .s-reviews--wall .s-reviews-card .stars{color:#f5b301}
.th-keystone .s-reviews--wall .s-head--row{justify-content:center}

/* A recent job (block `job`, Guru's .recent-jobs): a 29px bold blue title, When / Services as 21px lines with the label bold, the
   story in 20px, the photo 30% wide on the right, a thin black line under each job. */
.th-keystone .s-block.s-bk-job{padding-bottom:0}
.th-keystone .s-block.s-bk-job .wrap>.s-bk-grid{border-bottom:1px solid #000;padding-bottom:12px}
.th-keystone .s-block.s-bk-job h2{color:#225d99;font-size:clamp(1.35rem,2.3vw,29.33px);line-height:1.36;font-weight:700;margin:20px 0 0}
.th-keystone .s-block.s-bk-job .s-bk-points{display:block;margin:0 0 10px}
.th-keystone .s-block.s-bk-job .s-bk-point{border:0;padding:0;margin:0 0 10px;border-radius:0}
.th-keystone .s-block.s-bk-job .s-bk-pt{font-size:clamp(1.05rem,1.7vw,21.33px);line-height:1.375;font-weight:400;color:#000}
.th-keystone .s-block.s-bk-job .s-bk-pt strong{display:inline;font-size:inherit;font-weight:700}
.th-keystone .s-block.s-bk-job .s-bk-pt span{display:inline;color:inherit;font-size:inherit;margin:0}
.th-keystone .s-block.s-bk-job .s-bk-words{font-size:clamp(1rem,1.6vw,20px);line-height:1.2}
@media (min-width:766px){
  .th-keystone .s-block.s-bk-job .s-bk-grid{grid-template-columns:minmax(0,1fr) min(321px,30%)}
  .th-keystone .s-block.s-bk-job .s-bk-points{grid-column:1}
}

/* Reviews, live: Papalocal's own widget draws itself here (its own look, in its own shadow root); until it does — or for a
   reader without scripts — the real reviews written into the page, as a plain list. */
.th-keystone .s-reviews--live{background:#fff}
/* …straight under its red band, 30px down as on Guru's page, and the next band 40px under it (measured 2026-10-08: the section's own
   padding made them 118px and 128px). */
.th-keystone .s-statement--band + .s-reviews--live{padding-top:0}
.th-keystone .s-reviews--live:has(+ .s-statement--band){padding-bottom:0}
.th-keystone .s-reviews--live .s-reviews-live{max-width:1094px;margin:30px auto 0}
.th-keystone .s-reviews--live .s-reviews-wall{display:grid;gap:0;columns:auto}
.th-keystone .s-reviews--live .s-reviews-card{background:#fff;color:#333;border:0;border-bottom:1px solid #ddd;border-radius:0;padding:18px 0;box-shadow:none}

/* A town's own Google map, behind "Show the map" (nothing loads from Google until it is pressed). */
.th-keystone .s-block .s-bk-map{border:0;background:#e9eef3;margin-top:20px}
.th-keystone .s-block .s-bk-map-go{background:#225d99;border:2px solid #1a4778;color:#fff;border-radius:10px;font-size:clamp(1rem,1.6vw,1.3rem);font-weight:700;padding:.5em 1.1em}

/* The map / any picture in a plain block runs the width of the page, as Guru's map does. */
.th-keystone section.s-block--plain .s-bk-media{margin:20px 0 0}
.th-keystone section.s-block--plain .s-bk-media img{width:100%}

/* A red band NAMES the section under it (Guru: "Customer Reviews", "F.A.Q.", "Hours of Operation" are bands, with nothing
   repeated beneath). That is done in the page itself now — this design's `band_heads` (kind-home-services.php) leaves the
   section's own heading out (pl_sg_resolve_sections → pl_sgs_kit_head) — so nothing here hides anything. */

/* On a phone Guru's header is the logo and, under it, a full-width blue "Call Us: (855) 497-1457" bar. */
@media (max-width:900px){
  .th-keystone .top .util{display:block;grid-column:1/-1;grid-row:2;justify-self:stretch;padding:8px 0;background:#225d99;
    box-shadow:0 0 0 100vmax #225d99;clip-path:inset(0 -100vmax)}
  .th-keystone .top .util-in{justify-content:center}
  .th-keystone .top .util-tel{color:#fff;font-size:clamp(1.15rem,5.4vw,1.6rem);margin:0 auto}
  .th-keystone .top .util-tel svg{display:none}
  .th-keystone .top .util-tel::before{content:"Call Us: "}
}

/* ════ Guru's OTHER pages (29-GURU-INNER-PAGES-PLAN.md Phase B, 2026-10-06): the title bands, the services list, the "About:" words,
   About and Contact's own parts, the cards, a job's page, the Locations columns. Read off guruguttercleaning.com's stylesheet
   (style-big.css) and measured with getComputedStyle at 1280px. Each rule names only the new styles' own classes — no page that
   was already drawn changes. ════ */

/* Guru's lines break where the words run out — no balancing, no "pretty" last lines (this design's own headings balance). */
.th-keystone :is(.s-page_hero--billboard,.s-page_hero--billboard_box,.s-page_hero--billboard_job,.s-block--boxes,.s-block--details,.s-block--story,
  .s-block--heading,.s-block--twocol,.s-block--cards,.s-block--pairs,.s-block--facts,.s-block--towns) :is(h1,h2,h3,h4,h5,h6,p,li){text-wrap:wrap}

/* The title band (.about-main-sections): a red field with Guru's shadow; a 16pt white line, then the 21pt yellow <h1> spaced wide.
   About and Contact: the round pictures on a half-white panel, a word under each (11pt; 18pt when there are three). */
.th-keystone .s-page_hero--billboard{background:#be1010;box-shadow:0 0 6px #000;padding:10px 0;z-index:1}
.th-keystone .s-page_hero--billboard .s-pbh-kick{font-size:21.33px;line-height:1.1;font-weight:400;color:#fff;letter-spacing:1px;padding-top:10px;margin:0 0 10px}
.th-keystone .s-page_hero--billboard .s-pbh-h1{font-size:28px;line-height:1.1;font-weight:700;color:#a21327;letter-spacing:2px;margin:5px 0 10px}
.th-keystone .s-page_hero--billboard .s-pbh-icons{background:rgba(255,255,255,.52);border-radius:10px;padding:10px}
.th-keystone .s-page_hero--billboard .s-pbh-icon-t{font-size:14.67px;line-height:1.1;font-weight:400;color:#fff;letter-spacing:normal;margin:5px 0 20px}
.th-keystone .s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon-t{font-size:24px}

/* …with the <h1> in white and the opening words in a white box (.location-details + .location-description: /service, /locations, /reviews). */
.th-keystone .s-page_hero--billboard_box{background:#be1010;padding:20px 0;font-size:17.33px;line-height:26.67px}
.th-keystone .s-page_hero--billboard_box .s-pbh-h1{font-size:34.67px;line-height:1.1;font-weight:700;color:#fff;text-shadow:1px 1px 1px #000;letter-spacing:normal;margin:20px 0 10px}
.th-keystone .s-page_hero--billboard_box .s-pbh-box{background:#f9f9f9;color:#000;border-radius:5px;padding:20px;box-shadow:2px 2px 2px #000;font-size:17.33px;line-height:26.67px}

/* A job's band (.red-title-job-sections): 18pt yellow words on 26pt lines, the second line white, a dark shadow under them. */
.th-keystone .s-page_hero--billboard_job{background:#be1010;box-shadow:0 0 6px #000;padding:0;z-index:1}
.th-keystone .s-page_hero--billboard_job .s-pbh-h1{font-size:24px;line-height:34.67px;font-weight:500;color:#a21327;text-shadow:1px 1px 2px #000;letter-spacing:1px;padding:0 10px 10px;margin:0;text-wrap:wrap}
.th-keystone .s-page_hero--billboard_job .s-pbh-h1 .s-accent{color:#fff}

/* The services list (.services ul li): 12pt links in 2px dashed black boxes, three across. */
.th-keystone .s-block--boxes{padding:10px 0 0}
.th-keystone .s-block--boxes .s-bk-box{font-size:16px;line-height:22.86px;border:2px dashed #000}
.th-keystone .s-block--boxes .s-bk-box a{color:#006ab5}

/* The services, one each (.services-more-sections): a 26pt heading in the link blue, 14px words, a 2px dashed black line under each. */
.th-keystone .s-block--details{padding:0}
.th-keystone .s-block .s-bk-dt-h{font-size:34.67px;line-height:38.13px;font-weight:500;color:#333;letter-spacing:normal;margin:20px 0 10px}
.th-keystone .s-block .s-bk-dt-h a{color:#006ab5}
.th-keystone .s-block--details .s-bk-dt{border-bottom:2px dashed #000}
.th-keystone .s-block--details .s-bk-words{font-size:14px;line-height:20px;color:#333}
.th-keystone .s-block--details .s-bk-words p{margin:0 0 10px}

/* "About: …" (.equip-white-section): 20px down; a 16pt blue heading, 13pt red sub-headings, 11pt words; the photo a third wide on the
   right; more photos three across. A coloured word in the words (the About history's years) bold and red. */
.th-keystone .s-block--story{padding:20px 0 0}
.th-keystone .s-block .s-bk-st-h,.th-keystone .s-block .s-bk-sh{font-size:21.33px;line-height:23.47px;font-weight:500;color:#225d99;letter-spacing:normal;margin:5px 0}
.th-keystone .s-block h3.s-bk-sh,.th-keystone .s-block h4.s-bk-sh{font-size:17.33px;line-height:19.07px;color:#be1010}
.th-keystone .s-block--story .s-bk-words{font-size:14.67px;line-height:18.67px;color:#333}
.th-keystone .s-block--story .s-bk-words p{margin:0 0 10px}
.th-keystone .s-block--story .s-bk-words .s-accent{font-weight:700;color:#be1010}
/* …a job's short story (.job-brief-explanation, 12pt on 15pt) and its long one (.project-additional-info, 12pt on 16pt, its headings
   17pt blue); an article typed into the theme (Bootstrap's own sizes); a landing page (its own navy, a column 800px wide). */
.th-keystone .s-block--story.s-bk-look-brief{padding:10px 0 0}
.th-keystone .s-block--story.s-bk-look-brief .s-bk-words{font-size:16px;line-height:20px}
.th-keystone .s-block--story.s-bk-look-info{padding:10px 0}
.th-keystone .s-block--story.s-bk-look-info .s-bk-words{font-size:16px;line-height:21.33px;letter-spacing:.2px}
.th-keystone .s-block.s-bk-look-info .s-bk-sh{font-size:22.67px;line-height:24.93px;font-weight:500;color:#0075b2;letter-spacing:.2px;margin:20px 0 10px}
.th-keystone .s-block.s-bk-look-plain .s-bk-sh{font-size:30px;line-height:33px;font-weight:500;color:#333;margin:20px 0 10px}
.th-keystone .s-block--story.s-bk-look-plain .s-bk-words{font-size:14px;line-height:20px}
.th-keystone .s-block--story.s-bk-look-landing .wrap{max-width:800px}
.th-keystone .s-block.s-bk-look-landing .s-bk-sh{font-size:22px;line-height:1.25;font-weight:900;color:#0e3b6a;margin:26px 0 10px}
.th-keystone .s-block.s-bk-look-landing h2.s-bk-sh{font-size:28px;text-align:center}
.th-keystone .s-block--story.s-bk-look-landing .s-bk-words{font-size:16.5px;line-height:1.6;color:#0f172a}

/* Just a heading (.about-column-section): 22pt bold blue. */
.th-keystone .s-block--heading{padding:10px 0}
.th-keystone .s-block .s-bk-hd-h{font-size:29.33px;line-height:32.27px;font-weight:700;color:#225d99;letter-spacing:normal;margin:20px 0 10px}

/* About / Contact's two columns (.about-two-column-section): a 22pt bold red heading (a number in it the link blue); 16pt bold names,
   13pt lines under them; the photo a third wide to one side (Contact: a small round icon); a dashed blue rule three-quarters wide. */
.th-keystone .s-block--twocol{padding:0 0 0}
.th-keystone .s-block .s-bk-tc-h{font-size:29.33px;line-height:32.27px;font-weight:700;color:#be1010;letter-spacing:normal;margin:0 0 10px}
.th-keystone .s-block .s-bk-tc-h a{color:#006ab5}
.th-keystone .s-block--twocol .s-bk-tc{padding:0 0 0 10px}
.th-keystone .s-block--twocol .s-bk-tc--left{padding:0 10px 0 0}
.th-keystone .s-block .s-bk-tc-pt{font-size:21.33px;line-height:23.47px;font-weight:700;color:#333;letter-spacing:normal;margin:0 0 10px}
.th-keystone .s-block .s-bk-tc-pb{font-size:17.33px;line-height:24px;font-weight:400;color:#333;letter-spacing:normal;margin:10px 0 15px}
.th-keystone .s-block--twocol .s-bk-words{font-size:14px;line-height:20px;color:#333}
.th-keystone .s-block--twocol .s-bk-tc-line{border-top:2px dashed #225d99}
.th-keystone .s-block.s-block--twocol .s-bk-btn{background:#a21327;border:2px solid #7e0f1f;color:#fff;border-radius:10px;font-size:clamp(1.15rem,2vw,1.7rem);font-weight:700;letter-spacing:.1rem;padding:.55em 1.1em;box-shadow:none;text-decoration:none}

/* Cards (.equip-feed-section): a third wide, a thin black line under each; 11pt titles in the link blue, 10pt words; the team's bios in
   a short box that scrolls (.team-brief-bio). */
.th-keystone .s-block--cards{padding:0}
.th-keystone .s-block--cards .s-bk-card{font-size:13.33px;line-height:19.05px;color:#333;border-bottom:1px solid #000}
.th-keystone .s-block .s-bk-cd-h{font-size:14.67px;line-height:16.13px;font-weight:500;color:#333;letter-spacing:normal;margin:20px 0 10px}
.th-keystone .s-block .s-bk-cd-h a{color:#006ab5}
.th-keystone .s-block .s-bk-cd-sub{font-size:13.33px;line-height:14.67px;font-weight:500;color:#333;letter-spacing:normal;margin:0 0 10px}
.th-keystone .s-block--cards .s-bk-words{font-size:13.33px;line-height:19.05px;color:#333}
.th-keystone .s-block--cards .s-bk-words p{margin:0 0 10px}

/* A job's Before | After (.before-after-titles h3 · .gallery-custom-box): 16pt bold blue; two boxes up to 700px tall that scroll. */
.th-keystone .s-block--pairs{padding:0}
.th-keystone .s-block .s-bk-pr-h{font-size:21.33px;line-height:23.47px;font-weight:700;color:#225d99;letter-spacing:normal;margin:20px 0 10px}
.th-keystone .s-block--pairs .s-bk-pr-pics{background:#fcfcfc}
.th-keystone .s-block--pairs .s-bk-pr-pics img{box-shadow:0 0 4px #828282}

/* A job's facts (.about-project-section): the red box with the shadow; a 16pt white heading; 11pt lines — the name yellow and bold, the
   value white — a dashed white line under each, the link mark yellow. */
.th-keystone .s-block--facts{background:#be1010;color:#fff;box-shadow:0 0 6px #000;padding:30px 0;position:relative;z-index:1}
.th-keystone .s-block .s-bk-fx-h{font-size:21.33px;line-height:23.47px;font-weight:500;color:#fff;letter-spacing:normal;margin:0;padding:5px 0}
.th-keystone .s-block--facts .s-bk-fact{border-bottom:1px dashed #fff}
.th-keystone .s-block .s-bk-fx-k,.th-keystone .s-block .s-bk-fx-v{font-size:14.67px;line-height:16.13px;letter-spacing:1px;margin:0;padding:10px 5px}
.th-keystone .s-block .s-bk-fx-k{font-weight:700;color:#a21327}
.th-keystone .s-block .s-bk-fx-v{font-weight:400;color:#fff}
.th-keystone .s-block .s-bk-fx-v a{color:#fff;text-decoration:none}
.th-keystone .s-block--facts .s-bk-fx-ic{color:#a21327}

/* Locations (.col-sm-2): five columns, 30px states in the link blue; their towns 14px links. */
.th-keystone .s-block--towns{padding:0 0 10px}
.th-keystone .s-block .s-bk-tw-h{font-size:30px;line-height:33px;font-weight:500;color:#006ab5;letter-spacing:normal;margin:20px 0 10px}
.th-keystone .s-block--towns .s-bk-tw-list{font-size:14px;line-height:20px}
.th-keystone .s-block--towns .s-bk-tw-list a{color:#006ab5}

/* On a phone Guru's inner pages keep their shape — the photo stays floated a third wide, the cards stay three across, a job's
   Before | After stay side by side, its facts stay name | value — and only the sizes step down (style-800m … style-400m.css). */
@media (max-width:765px){
  .th-keystone .s-block--story .s-bk-float,.th-keystone .s-block--twocol .s-bk-tc--right .s-bk-tc-pic{float:right;width:35%;margin:0 10px 0 0}
  .th-keystone .s-block--twocol .s-bk-tc--left .s-bk-tc-pic{float:left;width:35%;margin:0}
  .th-keystone .s-block--story .s-bk-float img,.th-keystone .s-block--twocol .s-bk-tc--right .s-bk-tc-pic img,
  .th-keystone .s-block--twocol .s-bk-tc--left .s-bk-tc-pic img{width:90%;padding:0 2%}
  .th-keystone .s-block--story .s-bk-more img{width:32.7%}
  .th-keystone .s-block--cards .s-bk-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .th-keystone .s-block--pairs .s-bk-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .th-keystone .s-block--pairs .s-bk-pr-pics{max-height:400px}
  .th-keystone .s-block .s-bk-fx-k{width:25%;padding-bottom:10px}
  .th-keystone .s-block .s-bk-fx-v{width:75%;padding-top:10px}
  .th-keystone .s-block--boxes .s-bk-box{width:32.3%;font-size:14.67px}
  .th-keystone .s-page_hero--billboard_box .s-pbh-h1{font-size:29.33px}
  .th-keystone .s-page_hero--billboard .s-pbh-icon{flex:0 0 33.33%}
  .th-keystone .s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon-t{font-size:20px}
  .th-keystone .s-block .s-bk-tc-h{font-size:24px;line-height:1.1}
  .th-keystone .s-block .s-bk-tc-pt{font-size:16px;line-height:1.1}
  .th-keystone .s-block .s-bk-tc-pb{font-size:13.33px;line-height:16px}
  .th-keystone .s-block--twocol .s-bk-tc-line{width:55%}
}
@media (max-width:700px){
  .th-keystone .s-block--boxes .s-bk-box{width:49%;font-size:17.33px}
  .th-keystone .s-page_hero--billboard_box{font-size:16px;line-height:26.67px}
  .th-keystone .s-page_hero--billboard_box .s-pbh-h1{font-size:26.67px}
  .th-keystone .s-block--pairs .s-bk-pr-pics{max-height:313px}
  .th-keystone .s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon-t{font-size:18.67px}
}
@media (max-width:600px){
  .th-keystone .s-block--boxes .s-bk-box{font-size:16px}
}
@media (max-width:500px){
  .th-keystone .s-block--boxes .s-bk-box{width:99%;font-size:20px;border:0;border-bottom:2px dashed #000}
  .th-keystone .s-page_hero--billboard_box .s-pbh-h1{font-size:24px}
  .th-keystone .s-page_hero--billboard .s-pbh-icons--3 .s-pbh-icon-t{font-size:17.33px}
}
@media (max-width:400px){
  .th-keystone .s-page_hero--billboard_box .s-pbh-h1{font-size:22.67px}
  .th-keystone .s-block--twocol .s-bk-tc--icon .s-bk-tc-pic{width:30%}
}

/* /reviews: the live box straight under the page's own heading (.reviews-section: 30px down, no heading of ours). */
.th-keystone .s-reviews--bare{padding-top:0;padding-bottom:0}

/* An F.A.Q. with its own heading (a job page's .faq-section h2): 19pt bold blue, centred. On a town page the band says it instead. */
.th-keystone .s-space--small + #faq{padding-top:10px}
.th-keystone #faq .sec-head{text-align:center;margin:0}
.th-keystone #faq .sec-head h2{font-size:25.33px;line-height:27.87px;font-weight:700;color:#225d99;letter-spacing:normal;margin:20px 0 10px}

/* A town website's benefits list (go-local #bluesection-main-wrapper h2 + #blue-benefits h2): the heading 42pt bold #225D99,
   centred; each point one 20pt line in #69a2db, normal weight, a 2px dashed #989898 line under it — never the contact lines'
   51px red (Garret, 2026-10-19, of Fairburn: "huge on website looks terrible"). */
.th-keystone section.s-block--points.s-bk-benefits .s-head{text-align:center}
.th-keystone section.s-block--points.s-bk-benefits .s-head h2,.th-keystone section.s-block--points.s-bk-benefits .s-head h3{font-size:clamp(1.8rem,5.4vw,56px);line-height:1.24;font-weight:700;color:#225d99;text-shadow:1px 1px 1px #a8a8a8;letter-spacing:normal;margin:0}
.th-keystone section.s-block--points.s-bk-benefits .s-bk-point{margin:0;padding:15px 0;border-bottom:2px dashed #989898}
.th-keystone section.s-block--points.s-bk-benefits .s-bk-point:not(:last-child)::after{content:none}
.th-keystone section.s-block--points.s-bk-benefits .s-bk-point>*{color:#69a2db;font-size:clamp(1.1rem,2.6vw,26.67px);line-height:1.6;font-weight:400;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.s-block--points.s-bk-benefits .s-bk-point strong{font-weight:400}

/* A town website's photo gallery (go-local #graysection-main-wrapper h2 + .gallery-custom-box): the heading 42pt bold #be1010,
   centred; the pictures in a near-white rounded box, each with a soft grey edge; the note under it on the right, bold. */
.th-keystone .s-block--story.s-bk-gallery{padding:40px 0}
.th-keystone .s-block.s-bk-gallery .s-bk-st-h{text-align:center;font-size:clamp(1.8rem,5.4vw,56px);line-height:1.24;font-weight:700;color:#be1010;text-shadow:1px 1px 1px #a8a8a8;margin:0 0 16px}
.th-keystone .s-bk-gallery .s-bk-gal{background:#fcfcfc}
.th-keystone .s-bk-gallery .s-bk-gal-pic img{box-shadow:0 0 4px #828282}
.th-keystone .s-bk-gallery .s-bk-gal-note{color:#232323;font-size:16px}
.th-keystone .s-block--story.s-bk-gallery .s-bk-words{margin:0 0 18px;font-size:clamp(1rem,1.6vw,20px);line-height:1.5;color:#333}

/* A town website's testimonials (go-local #main-home-testimonials): a #efefef card with a #bcbcbc edge and round corners; the name
   32pt bold #006ab5 and the town 20pt #383838 on the left; five stars and "Date: …" (14pt bold #636363) on the right; the words
   18pt italic #7b7b7b; the title in quotes, 18pt #79A7DB. */
.th-keystone .s-block--details.s-bk-reviews{padding:10px 0}
.th-keystone .s-bk-reviews .s-bk-rv{background:#efefef;border:1px solid #bcbcbc;border-radius:10px;margin:15px 0 0;padding:10px 12px}
.th-keystone .s-bk-reviews .s-bk-rv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.th-keystone .s-bk-reviews .s-bk-rv-who{min-width:0}
.th-keystone .s-block .s-bk-reviews .s-bk-rv-name,.th-keystone .s-bk-reviews .s-bk-rv-name{font-size:clamp(1.5rem,3.4vw,42.67px);line-height:1.12;font-weight:700;color:#006ab5;text-shadow:1px 1px 1px #a8a8a8;margin:0}
.th-keystone .s-bk-reviews .s-bk-rv-name a{color:#006ab5;text-decoration:none}
.th-keystone .s-bk-reviews .s-bk-rv-name a:hover{color:#be1010}
.th-keystone .s-bk-reviews .s-bk-rv-town{margin:2px 0 0;font-size:clamp(1.1rem,2.1vw,26.67px);line-height:1.1;font-weight:700;color:#383838;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone .s-bk-reviews .s-bk-rv-side{flex:none;text-align:right}
.th-keystone .s-bk-reviews .s-bk-rv-side .stars{font-size:30px;line-height:1;letter-spacing:2px}
.th-keystone .s-bk-reviews .s-bk-rv-side .stars .st{color:#a21327;text-shadow:0 0 1px #555,1px 1px 1px #8a8a8a}
.th-keystone .s-bk-reviews .s-bk-rv-date{margin:6px 0 0;font-size:18.67px;font-weight:700;color:#636363}
.th-keystone .s-bk-reviews .s-bk-rv-text{margin:14px 10px 0;font-size:clamp(1.05rem,1.9vw,24px);line-height:1.45;font-style:italic;color:#7b7b7b}
.th-keystone .s-bk-reviews .s-bk-rv-text p{margin:0 0 8px}
.th-keystone .s-bk-reviews .s-bk-rv-sum{margin:6px 10px 6px;font-size:clamp(1.05rem,1.9vw,24px);line-height:1.3;font-weight:700;font-style:italic;color:#79a7db}
@media (max-width:640px){.th-keystone .s-bk-reviews .s-bk-rv-top{flex-direction:column;gap:4px}.th-keystone .s-bk-reviews .s-bk-rv-side{text-align:left}}

/* "➜ Click Here To Read More Reviews" (h3.click-read-more-reviews-link a): centred, 22pt bold #878787, red on hover; no line under it. */
.th-keystone .s-block--details.s-bk-rv-more{padding:10px 0 0}
.th-keystone .s-block--details.s-bk-rv-more .s-bk-dt{border-bottom:0;text-align:center;margin:0}
.th-keystone .s-block--details.s-bk-rv-more .s-bk-dt-h{margin:0}
.th-keystone .s-block--details.s-bk-rv-more .s-bk-dt-h a{font-size:clamp(1.2rem,2.4vw,29.33px);line-height:1.6;font-weight:700;color:#878787;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone .s-block--details.s-bk-rv-more .s-bk-dt-h a:hover{color:#be1010}
/* ════ Keystone: go-local's own look (All Glass Peachtree City, 2026-10-20) ════ */
.th-keystone{--ks-red:#be1010;--ks-red-2:#a21327;--ks-blue:#225d99;--ks-blue-2:#006ab5;--ks-ink:#5f5f5f;--ks-grey:#686868;--ks-pill:#919191;
  --ks-bar:#f0f0f0;--ks-rule:#878787;--f-head:Arimo,Arial,Helvetica,sans-serif;--f-body:Arimo,Arial,Helvetica,sans-serif;--bb-lit:var(--ks-red)}
body.th-keystone,.th-keystone main{background:#fff;color:#333}
.th-keystone h1,.th-keystone h2,.th-keystone h3,.th-keystone h4{letter-spacing:normal}

/* ── the header: a red bar with the "Serving …" line, the grey row (logo · Call Now! + number + line), the grey menu bar ── */
.th-keystone .top{position:relative;background:linear-gradient(#e9e9e9,#ececec);color:#333;grid-template-columns:auto 1fr;border-bottom:0}
.th-keystone .top .util,.th-keystone .top .util .util-in{display:contents}
.th-keystone .top .util-area{display:block;grid-column:1/-1;grid-row:1;margin:0;padding:6px 0;text-align:center;color:#f8f8f8;font-size:17px;
  font-style:italic;font-weight:700;letter-spacing:1px;text-shadow:1px 1px 6px #000;background:var(--ks-red);
  border-image:linear-gradient(var(--ks-red) 0 0) fill 0 / / 0 100vmax}
.th-keystone .top .util-area svg{display:none}
.th-keystone .top .brand{grid-column:1;grid-row:2;padding:14px 0}
.th-keystone .top .brand .logo{height:clamp(64px,10vw,140px);max-width:320px;width:auto;object-fit:contain}
.th-keystone .top .util-call,.th-keystone .top>.util .util-tel{grid-column:2;grid-row:2;justify-self:end;text-align:center;padding:12px 0}
.th-keystone .top .util-call::before{content:"Call Now!";display:block;color:var(--ks-blue-2);font-size:30px;font-style:italic;font-weight:700;line-height:1.1}
.th-keystone .top .util-h{margin:2px 0 0;font-size:inherit}
.th-keystone .top .util-tel{color:var(--ks-red-2);font-size:clamp(1.5rem,2.6vw,2.3rem);font-weight:700;text-shadow:1px 1px 1px #a8a8a8;letter-spacing:normal}
.th-keystone .top .util-tel svg{display:none}
.th-keystone .top .util-line{margin:2px 0 0;color:var(--ks-grey);font-size:24px;font-weight:700;text-shadow:1px 1px 1px #fff}
.th-keystone .top .util-line a{color:inherit;text-decoration:none}
.th-keystone .top .nav{grid-row:3;justify-content:center;padding:0;background:var(--ks-bar);
  border-image:linear-gradient(#fff 1px,var(--ks-bar) 1px calc(100% - 2px),var(--ks-rule) calc(100% - 2px)) fill 0 / / 0 100vmax}
.th-keystone .top .nav a,.th-keystone .top .nav .dd>a{color:var(--ks-blue-2);font-weight:700;font-size:18px;letter-spacing:1px;padding:.8em 1.3em .7em;
  border-left:1px solid #c6c6c6;border-right:1px solid #fff;text-decoration:none}
.th-keystone .top .nav>a:last-child,.th-keystone .top .nav>.dd:last-child>a{border-right-color:#c6c6c6}
.th-keystone .top .nav a:hover,.th-keystone .top .nav .dd>a:hover{background:#c4c4c4;color:#fff;text-decoration:none}
.th-keystone .top .nav .dd-menu{background:#c4c4c4;box-shadow:0 0 4px #000;border:0;border-radius:0}
.th-keystone .top .nav .dd-menu a{color:var(--ks-blue-2);border:0;font-size:16px}

/* ── buttons: the theme's blue Call and dark-red action, square-ish with a dark shadow ── */
.th-keystone .btn{border-radius:5px;font-weight:700;letter-spacing:normal;box-shadow:0 0 5px #000;border:0}
.th-keystone .btn-call,.th-keystone .s-hero-call,.th-keystone .btn-outline,.th-keystone .btn-ghost{background:var(--ks-blue);color:#fff}
.th-keystone .btn-act,.th-keystone .btn-accent,.th-keystone .s-hero-act,.th-keystone .s-hero-second{background:var(--ks-red-2);color:#fff}

/* ── the home hero: the photo, its words in a white card ── */
.th-keystone .s-hero--billboard.has-bgphoto{position:relative;isolation:isolate;background:#555;padding:30px 0;text-align:center}
.th-keystone .s-hero--billboard .s-hero-bg,.th-keystone .s-page_hero--billboard .s-hero-bg,.th-keystone .s-page_hero--billboard_box .s-hero-bg{position:absolute;inset:0;
  width:100%;height:100%;max-width:none;object-fit:cover;z-index:-2;border-radius:0}
.th-keystone .s-hero--billboard .s-hero-in{max-width:1060px}
.th-keystone .s-hero-card{display:flex;flex-direction:column;background:rgba(255,255,255,.82);border:3px solid #c1c1c1;border-radius:10px;padding:16px 20px 22px;
  margin:10px auto;color:var(--ks-grey);text-align:center}
.th-keystone .s-hero--billboard .s-hb-head,.th-keystone .s-hero--billboard h1:not(.s-hb-name){order:1;color:var(--ks-red);font-size:clamp(2rem,4.6vw,61px);font-weight:700;
  line-height:1.15;text-shadow:1px 1px 2px #000;letter-spacing:normal;margin:0;text-align:center}
.th-keystone .s-hero--billboard .s-accent{color:inherit}
.th-keystone .s-hero--billboard .s-hero-proof{order:2;border:0;margin:10px auto 0;padding:0;max-width:none}
.th-keystone .s-hero--billboard .s-hero-proof h1.s-hb-name{color:var(--ks-grey);font-size:clamp(1.4rem,3.1vw,42px);font-weight:700;line-height:1.3;text-shadow:none;margin:0;
  white-space:normal;text-wrap:wrap;overflow-wrap:anywhere}
.th-keystone .s-hero--billboard .s-hero-proof{min-width:0;max-width:100%}
/* a service page's hero (the same section, without the home page's towns pill): as the old theme drew it — the line over it grey,
   the page's <h1> ("Windows Peachtree City, GA") big and red */
.th-keystone .s-hero--billboard .s-hero-card:not(:has(.s-hero-lead)) .s-hb-head{color:var(--ks-grey);font-size:clamp(1.4rem,3vw,42px);text-shadow:none}
.th-keystone .s-hero--billboard .s-hero-card:not(:has(.s-hero-lead)) .s-hero-proof h1.s-hb-name{color:var(--ks-red);font-size:clamp(2rem,4.6vw,61px);line-height:1.15;text-shadow:1px 1px 2px #000}
.th-keystone .s-hero--billboard .s-hero-lead{order:3;margin:16px 0 0;max-width:none;background:var(--ks-pill);color:#fff;border-radius:5px;padding:10px 18px;
  box-shadow:0 0 5px #000;font-size:20px;font-weight:700;line-height:1.5;letter-spacing:1px;text-shadow:1px 1px 1px #6d6d6d;text-align:left;opacity:1}
.th-keystone .s-hero--billboard .s-hero-cta{order:4;display:grid;grid-template-columns:1fr 1fr;gap:16px 60px;margin:24px 0 0}
.th-keystone .s-hero--billboard .s-hero-cta .btn{justify-content:center;padding:20px;font-size:clamp(1.25rem,2.6vw,37px);font-weight:700;letter-spacing:normal;
  border-radius:5px;box-shadow:0 0 5px #000;border:0}
.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-call{background:var(--ks-blue);color:#fff}
.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-act,.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-second{background:var(--ks-red-2);color:#fff}
.th-keystone .s-hero--billboard.is-plain{background:linear-gradient(#e9e9e9,#ececec)}
.th-keystone .s-hero--billboard.is-plain .s-hb-head{color:var(--ks-red)}

/* ── a page's hero: the same photo, its words in the same white card — the line over the title grey, the title red, its town blue.
   Every rule here names .s-page_hero .s-pbh-in: Billboard's own (renamed above) name the hero's style, and must lose. ── */
.th-keystone .s-page_hero--billboard,.th-keystone .s-page_hero--billboard_box{position:relative;isolation:isolate;background:#555;color:var(--ks-grey);padding:26px 0;text-align:center}
.th-keystone .s-page_hero .s-pbh-in{display:flex;flex-direction:column;align-items:center;
  background:rgba(255,255,255,.82);border:3px solid #c1c1c1;border-radius:10px;padding:18px 24px 22px;max-width:1060px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-kick{order:1;color:var(--ks-grey);font-size:clamp(1.3rem,2.9vw,40px);font-weight:700;line-height:1.2;text-transform:none;letter-spacing:normal;text-shadow:none;padding:0;margin:0 0 6px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-h1{order:2;color:var(--ks-red);font-size:clamp(2rem,4.4vw,58px);font-weight:700;line-height:1.1;letter-spacing:normal;text-shadow:1px 1px 1px #a8a8a8;text-align:center;margin:0}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-h1 .s-accent{display:inline-block;color:var(--ks-blue-2);font-size:.7em;font-style:normal;margin-top:4px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-box{order:3;color:var(--ks-ink);background:none;border:0;box-shadow:none;padding:0;margin:12px 0 0;text-align:center;font-size:19px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-box p{color:inherit}

/* a page whose <h1> leads (slot `lead` = h1 — pro-local's job pages): the small <h1> first, the big line after it */
.th-keystone .s-page_hero .s-pbh-in.h1-leads .s-pbh-h1{order:1;color:var(--ks-grey);font-size:clamp(1.05rem,1.6vw,20px);line-height:1.3;text-shadow:none}
.th-keystone .s-page_hero .s-pbh-in.h1-leads .s-pbh-kick{order:2;color:var(--ks-blue);font-size:clamp(1.8rem,3.6vw,48px);font-weight:700;margin:4px 0 0}

/* the contact page: its question big and blue in the card, the promise under it red, and under the card a second, clearer one
   holding the ways to reach them — the round light-blue pictures drawn here (pl_sgt_keystone_reach_css), white words under each */
.th-keystone .s-page_hero .s-pbh-in:has(.s-pbh-icons){display:grid;grid-template-columns:minmax(0,1fr);background:none;border:0;padding:0;isolation:isolate}
.th-keystone .s-page_hero .s-pbh-in:has(.s-pbh-icons)::before{content:"";grid-area:1/1/3/2;align-self:stretch;justify-self:stretch;background:rgba(255,255,255,.82);border:3px solid #c1c1c1;border-radius:10px;z-index:-1}
.th-keystone .s-page_hero .s-pbh-in:has(.s-pbh-icons) .s-pbh-kick{grid-area:1/1;color:var(--ks-blue);font-size:clamp(1.7rem,3.4vw,46px);text-shadow:1px 1px 1px #a8a8a8;padding:22px 24px 0;margin:0}
.th-keystone .s-page_hero .s-pbh-in:has(.s-pbh-icons) .s-pbh-h1{grid-area:2/1;font-size:clamp(1.3rem,2.6vw,36px);padding:12px 24px 26px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-icons{grid-area:3/1;justify-content:center;margin:26px 0 0;background:rgba(255,255,255,.4);border:3px solid #c1c1c1;border-radius:10px;padding:22px 10px 4px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-icon{flex:1 1 0;display:flex;flex-direction:column;align-items:center;padding:0 4px}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-icon img{width:88%;border-radius:50%}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-icon .s-pbh-icon-t{color:#fff;text-shadow:1px 1px 3px #000;font-weight:400;font-size:clamp(15px,1.75vw,24px);line-height:1.15;margin:8px 0 18px}

/* ── a band heads the section under it: grey, a blue line over the red heading ── */
.th-keystone .s-statement.s-statement--band,.th-keystone .s-statement.s-statement--band.tone-brand{background:linear-gradient(#ececec,#e4e4e4);color:#333;box-shadow:0 2px 4px #000;margin:40px 0 0;padding:24px 0}
.th-keystone .s-statement--band .s-stm-text{color:var(--ks-red);font-size:clamp(1.9rem,4.2vw,56px);font-weight:700;letter-spacing:normal;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone .s-statement--band .s-stm-text.s-stm-lv3,.th-keystone .s-statement--band .s-stm-text.s-stm-lv4{color:var(--ks-blue);font-size:clamp(1.5rem,3vw,40px)}
.th-keystone .s-statement--band .s-stm-sub,.th-keystone .s-statement--band h6.s-stm-sub{color:var(--ks-blue);font-size:clamp(1.2rem,2.4vw,32px);font-weight:700;letter-spacing:normal;text-shadow:none}
.th-keystone .s-statement--band .s-stm-sub.s-stm-first{padding-top:8px}
.th-keystone .s-statement--band .s-accent{color:var(--ks-blue-2)}

/* ── section heads and words ── */
.th-keystone .s-block.s-bk-gallery .s-bk-st-h,.th-keystone .s-bk-st-h,.th-keystone .s-head h2,.th-keystone .s-bk-hd-h{color:var(--ks-blue);font-weight:700;text-shadow:1px 1px 1px #a8a8a8;text-align:center;letter-spacing:normal}
.th-keystone .s-head h3,.th-keystone .s-head h4{color:var(--ks-blue);letter-spacing:normal}
.th-keystone .s-bk-words,.th-keystone .s-bk-text{color:var(--ks-ink);font-size:19px;line-height:1.55}
.th-keystone .s-bk-words strong{color:#333}
.th-keystone .s-block a:not(.btn){color:var(--ks-blue-2)}
.th-keystone .s-bk-job .s-bk-pt,.th-keystone .s-bk-point>strong{color:var(--ks-red-2)}

/* ── the band of words in the old theme's red ("Call Today!" strip) ── */
.th-keystone .s-bk-band{background:var(--ks-red);color:#fff}
/* ── opening hours as a row of day boxes (slots.list = days): Keystone's points are big lines, a day box is small ── */
.th-keystone section.s-block--points .s-bk-points.s-bk-days{display:grid;margin:16px 0 0}
.th-keystone section.s-block--points .s-bk-days .s-bk-point{margin:0;padding:10px 6px;border:1px solid #c6c6c6;border-radius:6px;background:#fff;text-align:center}
.th-keystone section.s-block--points .s-bk-days .s-bk-point::after{content:none}
.th-keystone section.s-block--points .s-bk-days .s-bk-point>*{font-size:16px;line-height:1.35;font-weight:400;color:var(--ks-ink);text-shadow:none}
.th-keystone section.s-block--points .s-bk-days .s-bk-pt strong{display:block;font-size:17px;font-weight:700;margin-bottom:6px}

/* ── a brought-over page's column beside its words (slot `side` — pro-local's job pages: the write-up on the left, its "Call Today"
   and "Patient Reviews" boxes on the right, in a 1020px page): side by side on a wide screen, one under the other on a phone ── */
@media (min-width:900px){
.th-keystone main > section.side-main{float:left;clear:left;box-sizing:border-box;width:calc(min(1020px,100% - 32px) - 370px);margin-left:max(16px,calc((100% - 1020px) / 2))}
.th-keystone main > section.side-right{float:right;clear:right;box-sizing:border-box;width:345px;margin-right:max(16px,calc((100% - 1020px) / 2))}
.th-keystone main:has(> .side-right) > section:not(.side-main,.side-right){clear:both}
.th-keystone main > section:is(.side-main,.side-right) > .wrap{max-width:none;padding-inline:0}
}

/* ── the footer: light grey, blue links ── */
.th-keystone .foot{background:#ececec;color:#444;border-top:1px solid #d2d2d2}
.th-keystone .foot a{color:var(--ks-blue-2)}
.th-keystone .foot h4,.th-keystone .foot strong{color:#333}
.th-keystone .foot .ic{stroke:currentColor}

/* ── phones: the header as Billboard's, the hero card full width, the two buttons stacked ── */
@media (max-width:1100px){
.th-keystone .s-page_hero .s-pbh-in{margin-inline:var(--gutter,16px)}
}
@media (max-width:900px){
.th-keystone .top{grid-template-columns:auto 1fr auto}
.th-keystone .top .mnav{grid-column:3;grid-row:2;align-self:center;margin-left:14px}
.th-keystone .top .util-call::before{font-size:20px}
.th-keystone .top .util-line{font-size:17px}
.th-keystone .s-hero--billboard .s-hero-cta{grid-template-columns:1fr;gap:14px}
}
@media (max-width:640px){
.th-keystone .top .util-area,.th-keystone .top .util-call{display:none}
.th-keystone .top .brand,.th-keystone .top .mnav{grid-row:1;align-self:center}
.th-keystone .top .brand{padding:10px 0}
.th-keystone .top .brand .logo{height:72px}
.th-keystone .s-hero-card,.th-keystone .s-page_hero--billboard .s-pbh-in,.th-keystone .s-page_hero--billboard_box .s-pbh-in{padding:14px 14px 18px}
.th-keystone .s-hero--billboard .s-hero-lead{font-size:16px}
}
.th-keystone a.s-pbh-icon[href="#call"],.th-keystone section#call{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3Cpath fill='%23fff' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[href="#text"],.th-keystone section#text{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3Cpath fill='%23fff' d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3Cg fill='%234a5866'%3E%3Ccircle cx='8' cy='10' r='1.3'/%3E%3Ccircle cx='12' cy='10' r='1.3'/%3E%3Ccircle cx='16' cy='10' r='1.3'/%3E%3C/g%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[href="#email"],.th-keystone section#email{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3Cpath fill='%23fff' d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[href="#letter"],.th-keystone section#letter{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3Cpath fill='%23fff' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[href="#facebook"],.th-keystone section#facebook{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M14 8h3V4h-3c-2.76 0-5 2.24-5 5v2H7v4h2v8h4v-8h3l1-4h-4V9c0-.55.45-1 1-1z'/%3E%3Cpath fill='%23fff' d='M14 8h3V4h-3c-2.76 0-5 2.24-5 5v2H7v4h2v8h4v-8h3l1-4h-4V9c0-.55.45-1 1-1z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[href="#other"],.th-keystone section#other{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f7fa6' transform='translate(.7 .7)' d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3Cpath fill='%23fff' d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E")}
.th-keystone .s-page_hero .s-pbh-in a.s-pbh-icon:not(:has(img))::before{content:"";display:block;width:88%;max-width:150px;aspect-ratio:1;border-radius:50%;
  background:var(--ks-ico,none) center/56% no-repeat,linear-gradient(#90c2de,#6fa9cf)}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) > .wrap{display:grid;grid-template-columns:clamp(110px,19vw,254px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:clamp(20px,4vw,52px);
  align-items:start;padding-block:24px;border-bottom:1px solid #a8a8a8}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) > .wrap::before{content:"";grid-area:1/1/3/2;width:100%;aspect-ratio:1;border-radius:50%;
  background:var(--ks-ico,none) center/52% no-repeat,linear-gradient(#90c2de,#6fa9cf)}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) > .wrap > *{grid-column:2;min-width:0}
.th-keystone section.s-block--twocol:is(#text,#letter,#other) > .wrap{grid-template-columns:minmax(0,1fr) clamp(110px,19vw,254px)}
.th-keystone section.s-block--twocol:is(#text,#letter,#other) > .wrap::before{grid-area:1/2/3/3}
.th-keystone section.s-block--twocol:is(#text,#letter,#other) > .wrap > *{grid-column:1}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) .s-bk-tc-h{color:var(--ks-red);text-decoration:underline;text-shadow:1px 1px 1px #a8a8a8;margin-top:0}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) .s-bk-tc-h a{color:inherit}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) .s-bk-tc{padding:0}
@media (max-width:640px){
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) > .wrap{display:block}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) > .wrap::before{display:none}
.th-keystone .s-page_hero .s-pbh-in .s-pbh-icon{flex:0 0 33.33%}
}
/* ════ Keystone in pro-local's colours: blue, taupe and tan (E.M. Blue Roofing, 2026-10-22) ════ */
.th-keystone{--ks-red:#9E948A;--ks-red-2:#5A5249;--ks-blue:#6197CE;--ks-blue-2:#6197CE;--ks-ink:#5A5249;--ks-grey:#5A5249;--ks-pill:#6197CE;
  --ks-bar:#6197CE;--ks-rule:#3f6286;--bb-lit:#6197CE;--pl-tan:#D6CABA;--pl-light:#B4D7FD;--pl-top:#E0EFFF;
  --c-brand:#6197CE;--c-brand-text:#4f84bd;--c-accent:#5A5249;--c-accent-on-dark:#B4D7FD;--c-star:#f2b01e}
.th-keystone section.s-block--points .s-bk-point>*{color:#5A5249}
/* on tan: a box of its own ("Call Us: …") white; points under their own title ("What You Can Expect From E.M. Blue") dark, the title white */
.th-keystone section.s-block--points.g-tan:not(:has(.s-head)) .s-bk-point>*{color:#fff;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.g-tan .s-head h2,.th-keystone section.g-tan .s-bk-st-h{color:#fff;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.s-block--points.g-tan:has(.s-head) .s-bk-point>*{color:#5A5249;font-weight:400;font-size:clamp(1.15rem,2vw,27px);line-height:1.6;text-shadow:none}
.th-keystone section.s-block--points.g-tan:has(.s-head) .s-bk-point:not(:last-child)::after{width:100%;min-width:0;border-bottom:2px dashed #989898}
.th-keystone section.s-block--points.g-light .s-bk-point>*{color:#6197CE;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.s-block--points.g-blue .s-bk-point>*{color:#fff;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.s-block--points.g-blue .s-bk-point span{display:block;color:#eaeaea;font-size:.62em;line-height:1.4;text-shadow:none;margin-top:8px}
.th-keystone section.s-block--points:is(.g-tan,.g-blue) .s-bk-point a{color:inherit}
/* the testimonials' five stars: the old theme's gold ones, not Keystone's dark red */
.th-keystone .s-bk-reviews .s-bk-rv-side .stars .st{color:#f2b01e;text-shadow:0 0 1px #8a6d00}
.th-keystone .top .util-area{background:var(--pl-top);color:#a0a0a0;font-style:normal;font-size:15px;letter-spacing:1px;text-shadow:none;
  border-image:linear-gradient(var(--pl-top) 0 0) fill 0 / / 0 100vmax}
.th-keystone .top .util-call::before{content:none}
.th-keystone .top .util-tel{color:#387ed6;text-shadow:none}
/* the header as the old one: its line in the top bar on the left, the number big and blue on the right, the town under it */
.th-keystone .top .util-area.util-area--line{text-align:left;padding-inline:max(16px,calc((100% - 1020px) / 2));color:#a0a0a0;font-size:16px}
.th-keystone .top .util-area.util-area--line a{color:inherit;font-weight:700;text-decoration:underline}
.th-keystone .top .util-call{text-align:right}
.th-keystone .top .util-tel{font-size:clamp(1.6rem,2.8vw,40px);font-weight:700}
.th-keystone .top .util-nap{margin:4px 0 0;color:#000;line-height:1.25}
.th-keystone .top .util-nap strong{display:block;font-size:clamp(1.2rem,2vw,28px);font-weight:700}
.th-keystone .top .util-nap span{display:block;font-size:clamp(1rem,1.6vw,22px)}
.th-keystone .top .nav{border-image:linear-gradient(#fff 1px,var(--ks-bar) 1px calc(100% - 2px),var(--ks-rule) calc(100% - 2px)) fill 0 / / 0 100vmax}
.th-keystone .top .nav a,.th-keystone .top .nav .dd>a{color:#fff;font-weight:400;border-left-color:#7aa8d8;border-right-color:#4f84bd}
.th-keystone .top .nav a:hover,.th-keystone .top .nav .dd>a:hover{background:#3f6286}
.th-keystone .top .nav .dd-menu{background:#6197CE}
.th-keystone .top .nav .dd-menu a{color:#fff}
/* the menu bar as pro-local's own (.sf-menu, its style.css): from the left of its 1020px column, the words 13pt, spaced 2px, a grey
   shadow, the light edge on the right; pointed at, cream with grey words; its drop-down tan */
.th-keystone .top .nav{justify-content:flex-start;padding-inline:max(0px,calc((100% - 1020px) / 2))}
.th-keystone .top .nav a,.th-keystone .top .nav .dd>a{font-size:13pt;letter-spacing:2px;line-height:.72;text-shadow:1px 1px 1px #6b6b6b;border-left-color:#4f7faf;border-right-color:#7cafe2}
.th-keystone .top .nav .dd>a svg{width:12px;height:12px}
.th-keystone .top .nav a:hover,.th-keystone .top .nav .dd>a:hover,.th-keystone .top .nav .dd:hover>a,.th-keystone .top .nav .dd-menu a:hover{background:#ECE8DF;color:#686868}
.th-keystone .top .nav .dd-menu{background:#D6CABA;min-width:22em;padding:0;left:0}
.th-keystone .top{background:linear-gradient(#fff,#f1f1f1 75%)}
.th-keystone .top .nav .dd-menu a{line-height:24px;padding:.4em 1.3em}
.th-keystone .top .util-call .util-tel{font-weight:700}
.th-keystone .s-hero--billboard .s-hb-head,.th-keystone .s-hero--billboard h1:not(.s-hb-name){color:#5A5249;text-shadow:none}
.th-keystone .s-hero--billboard .s-hero-lead{background:#6197CE}
.th-keystone .s-statement.s-statement--band,.th-keystone .s-statement.s-statement--band.tone-brand{background:var(--pl-tan);box-shadow:none;
  border-top:1px solid #fff;border-bottom:2px solid #878787}
/* a band's two lines, as the old pages drew them — by PLACE, not by tag (the first line is an <h3> on some bands, an <h2> on others):
   on tan the first white, the second dark taupe ("If Your Roof Needs Fixed...Fix It!" / "It Rains A Lot In Georgia"); on white the
   first blue, the second taupe ("1,000s Of Roofs Since 1995!" / "What Can We Help You With?", "Is Our Work On Display?" / "Absolutely…") */
.th-keystone .s-statement--band .s-stm-in>h2{font-size:clamp(1.7rem,3.8vw,48px);line-height:1.2;font-weight:700}
.th-keystone .s-statement--band .s-stm-in>:is(h3,h4,h5,h6){font-size:clamp(1.35rem,2.9vw,38px);line-height:1.25;font-weight:700}
.th-keystone .s-statement--band .s-stm-in>:first-child{color:#fff;text-shadow:1px 1px 2px #544b42}
.th-keystone .s-statement--band .s-stm-in>:nth-child(2){color:#5A5249;font-weight:400;text-shadow:none;margin-top:8px}
.th-keystone .s-statement--band.g-tan:has(+ section.g-tan){border-bottom:0}
.th-keystone .s-statement.g-white,.th-keystone .s-statement.s-statement--band.g-white{background:#fff;border:0}
.th-keystone .s-statement--band.g-white .s-stm-in>:first-child{color:#6197CE;text-shadow:1px 1px 2px #707070}
.th-keystone .s-statement--band.g-white .s-stm-in>:nth-child(2){color:#9E948A;font-weight:700;text-shadow:1px 1px 2px #b9b0a6}
.th-keystone .s-statement--band .s-stm-in>* strong{font-weight:inherit}
/* …and, where the converter read them off the old page (slots top_line / sub_line), each line's own colour, size and italics */
.th-keystone .s-statement--band.l1-blue .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-blue .s-stm-in>:nth-child(2){color:#6197CE;text-shadow:1px 1px 2px #707070}
.th-keystone .s-statement--band.l1-taupe .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-taupe .s-stm-in>:nth-child(2){color:#9E948A;text-shadow:1px 1px 2px #b9b0a6}
.th-keystone .s-statement--band.l1-dark .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-dark .s-stm-in>:nth-child(2){color:#5A5249;text-shadow:none}
.th-keystone .s-statement--band.l1-grey .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-grey .s-stm-in>:nth-child(2){color:#686868;text-shadow:none}
.th-keystone .s-statement--band.l1-white .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-white .s-stm-in>:nth-child(2){color:#fff;text-shadow:1px 1px 2px #544b42}
.th-keystone .s-statement--band.l1-small .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-small .s-stm-in>:nth-child(2){font-size:clamp(1.05rem,1.9vw,30px);letter-spacing:.5px}
.th-keystone .s-statement--band.l1-italic .s-stm-in>:first-child,.th-keystone .s-statement--band.l2-italic .s-stm-in>:nth-child(2){font-style:italic;font-weight:400}
/* a band's third line ("Our Hours & Contact Methods Below"): a heading of its own, taupe, not a strip */
.th-keystone .s-block--band .s-bk-band{background:none;color:#5A5249;padding:0}
.th-keystone .s-block--band .s-bk-band :is(h2,h3,h4,h5,h6){color:#5A5249;font-size:clamp(1.4rem,2.6vw,42px);font-weight:700;text-shadow:1px 1px 1px #a8a8a8}
/* the hours: a tall grey box a day, the day's name on a blue bar */
.th-keystone section.s-block--points .s-bk-days .s-bk-point{padding:0 0 12px;overflow:hidden;border:1px solid #9a9a9a;border-radius:3px;background:#e8e8e8;min-height:150px;
  box-shadow:0 0 3px rgba(0,0,0,.3)}
.th-keystone section.s-block--points .s-bk-days .s-bk-pt strong{margin:0 0 8px;padding:10px 4px;background:#6197CE;color:#fff;font-weight:400;letter-spacing:.5px}
.th-keystone section.s-block--points .s-bk-days .s-bk-pt span{color:#3d7f12;font-size:14px;font-weight:700}
/* the ways to reach them, as the old boxes: each centred, the number as white as its words */
.th-keystone section.s-block--points[id^="reach"] .s-bk-point{text-align:center}
.th-keystone section.s-block--points[id^="reach"] .s-bk-point form{text-align:left}
.th-keystone section.s-block--points[id^="reach"]:not(.g-tan,.g-light,.g-blue) .s-bk-point>.s-bk-pt{color:#6197CE;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone section.s-block--points[id^="reach"].g-tan .s-bk-point :is(a,span,.nw){color:#fff}
.th-keystone section.g-tan{background:var(--pl-tan)}
.th-keystone section.g-light{background:var(--pl-light)}
.th-keystone section.g-blue{background:#6197CE;color:#fff}
.th-keystone section.g-blue :is(h2,h3,h4,p,.s-bk-words,.s-bk-text,strong){color:#eaeaea}
.th-keystone .s-bk-st-h,.th-keystone .s-head h2,.th-keystone .s-bk-hd-h{text-shadow:1px 1px 2px #707070}
.th-keystone .s-bk-band{background:var(--pl-tan);color:#5A5249}
.th-keystone .s-bk-job .s-bk-pt,.th-keystone .s-bk-point>strong{color:#5A5249}
.th-keystone .s-bk-words.s-bk-numbers ul{list-style:decimal inside;margin:12px auto;padding:14px 26px;max-width:640px;background:var(--pl-light);
  border:2px solid #8faed0;border-radius:8px;box-shadow:0 1px 6px rgba(0,0,0,.25)}
.th-keystone .s-bk-words.s-bk-numbers li{margin:14px 0;color:#7E7274;font-size:clamp(1rem,1.7vw,21px);font-weight:700;line-height:1.35}
.th-keystone .btn-act,.th-keystone .btn-accent,.th-keystone .s-hero-act,.th-keystone .s-hero-second,
.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-act,.th-keystone .s-hero--billboard .s-hero-cta .btn.s-hero-second{background:#76b82a;color:#fff}
/* a service page's title ("Roofing Repairs" / "Peachtree City, GA"): its own photo behind a see-through blue box (the old blue.png),
   the words white */
.th-keystone .s-page_hero--billboard_box .s-pbh-in{background:rgba(132,173,219,.86);border:0;border-radius:0;box-shadow:0 0 4px #000;max-width:1020px;width:auto}
.th-keystone .s-page_hero--billboard_box .s-pbh-in .s-pbh-h1{color:#fff;font-size:clamp(1.3rem,2.4vw,27px);letter-spacing:2px;text-shadow:none;padding-bottom:5px;border-bottom:1px solid #e8e8e8}
.th-keystone .s-page_hero--billboard_box .s-pbh-in .s-pbh-h1 .s-accent{display:block;color:#fff;font-weight:400;font-size:.7em;letter-spacing:2px}
.th-keystone .s-page_hero--billboard_box .s-pbh-in .s-pbh-box{color:#efefef}
/* a job's title: on white between two tan rules, the small <h1> taupe, the big line under it blue, to the left — as the old page */
.th-keystone .s-page_hero--billboard:has(.h1-leads){background:#fff;padding:20px 0 10px}
.th-keystone .s-page_hero--billboard:has(.h1-leads) .s-hero-bg{display:none}
.th-keystone .s-page_hero .s-pbh-in.h1-leads{align-items:flex-start;text-align:left;background:none;border:0;border-radius:0;border-block:8px solid var(--pl-tan);
  max-width:1020px;width:auto;padding:6px 10px 14px}
.th-keystone .s-page_hero .s-pbh-in.h1-leads .s-pbh-h1{color:#5A5249;font-size:clamp(1.05rem,1.6vw,19px);text-align:left}
.th-keystone .s-page_hero .s-pbh-in.h1-leads .s-pbh-kick{color:#6197CE;font-size:clamp(1.8rem,3.6vw,48px);text-align:left;text-shadow:none}
/* the home page's title over its rows ("Duane From E.M. Blue Roofing Can Fix Your Roof"), and the rows: a taupe heading on the left,
   grey words, a rule under each */
.th-keystone .s-block--heading .s-bk-hd-h{color:#6197CE;font-size:clamp(1.5rem,3.1vw,40px);font-weight:700;text-shadow:1px 1px 2px #707070;
  padding-bottom:20px;border-bottom:1px solid #d3d2cd}
.th-keystone section.s-block--beside .s-head,.th-keystone section.s-block--beside .s-head h2{text-align:left}
.th-keystone section.s-block--beside .s-head h2{color:#5A5249;font-size:clamp(1.2rem,2vw,25px);font-weight:700;text-shadow:none;margin:0 0 6px}
.th-keystone section.s-block--beside .s-bk-words{font-size:clamp(1rem,1.4vw,17.5px);line-height:1.65;color:#616161}
.th-keystone section.s-block--beside>.wrap{padding-bottom:22px;border-bottom:1px solid #d3d2cd}
/* "What You Can Expect From E.M. Blue": its title white on the tan (Billboard's own rule names the benefits list — this must out-name it) */
.th-keystone section.s-block--points.s-bk-benefits.g-tan .s-head h2{color:#fff;text-shadow:1px 1px 2px #544b42}
/* "Customer Reviews" under the hero: the label on the left, the quote in small grey italics on the right */
.th-keystone section.s-block--plain.g-light[id^="rating"]>.wrap>.s-bk-in{display:grid;grid-template-columns:minmax(0,30%) minmax(0,1fr);gap:24px;align-items:start}
.th-keystone section.s-block--plain.g-light[id^="rating"] .s-head h2{color:#fff;font-weight:400;font-size:clamp(1.3rem,2.2vw,29px);letter-spacing:2px;text-shadow:none;
  text-align:center;margin:0;padding-bottom:8px;border-bottom:1px solid #989898}
.th-keystone section.s-block--plain.g-light[id^="rating"] .s-bk-words{font-style:italic;color:#7d7d7d;font-size:15px;line-height:1.6;letter-spacing:.5px}
.th-keystone section.s-block--plain.g-light[id^="rating"] .s-bk-words p:last-child{font-style:normal;font-weight:700;font-size:13px}
@media (max-width:640px){.th-keystone section.s-block--plain.g-light[id^="rating"]>.wrap>.s-bk-in{display:block}}
/* the home page's recent jobs: three across, each job's name over its photo, its "Brief Explanation:" bold and underlined (look brief);
   a service page's list: a row each, the name big and blue, the words, the photo on the right (look list) */
.th-keystone .s-block--cards .s-bk-cd-title{text-align:center;color:#6197CE;font-size:clamp(1.4rem,2.6vw,36px);font-weight:700;text-shadow:1px 1px 2px #707070}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-card{display:flex;flex-direction:column;border:0}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-cd-h{order:-1;margin:10px 0 8px;text-align:center;font-size:clamp(1rem,1.5vw,20px);font-weight:700}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-cd-h :is(a,.s-accent){color:#9E948A;font-style:normal}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-words{font-size:15px;line-height:1.45;color:#000}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-words p:first-child{margin:8px 0;font-size:19px;font-weight:700;text-decoration:underline}
.th-keystone .s-block--cards.s-bk-look-list .s-bk-cd-h{font-size:clamp(1.2rem,2.1vw,29px);font-weight:700}
.th-keystone .s-block--cards.s-bk-look-list .s-bk-cd-h a{color:#6197CE}
.th-keystone .s-block--cards.s-bk-look-list .s-bk-words{font-size:16px;line-height:1.4;color:#000}
.th-keystone .s-block--cards.s-bk-look-list .s-bk-card img{box-shadow:0 0 4px rgba(0,0,0,.6);border-radius:2px}
/* a town's or category's featured job: a grey framed card, its name between blue rules, each detail's label blue beside its value,
   its explanation cut short as the old box was (all of it is on the job's own page, which its button opens) */
.th-keystone section.s-bk-job>.wrap{box-sizing:border-box;background:#efefef;border:1px solid #bcbcbc;border-radius:6px;padding:14px 18px 18px}
.th-keystone section.s-bk-job .s-head,.th-keystone section.s-bk-job .s-head :is(h2,h3,h4){text-align:left}
.th-keystone section.s-bk-job .s-head :is(h2,h3,h4){margin:0 0 10px;padding:8px 0;border-block:4px solid #1f6fc5;color:#6197CE;font-size:clamp(1.3rem,2.4vw,34px);font-weight:700;
  text-shadow:1px 1px 2px #707070}
.th-keystone section.s-bk-job .s-head .s-accent{color:inherit;font-style:normal}
.th-keystone section.s-bk-job .s-bk-points{display:block;margin:6px 0 10px}
.th-keystone section.s-bk-job .s-bk-point{margin:0 0 6px;padding:0;border:0}
.th-keystone section.s-bk-job .s-bk-point::after{content:none}
.th-keystone section.s-bk-job .s-bk-point>:is(strong,span){display:inline;margin:0;font-size:clamp(1rem,1.4vw,18px);line-height:1.4;text-shadow:none}
.th-keystone section.s-bk-job .s-bk-point>strong{color:#6197CE;font-weight:700}
.th-keystone section.s-bk-job .s-bk-point>span{color:#616161;font-weight:400;margin-left:5px}
.th-keystone section.s-bk-job .s-bk-words{max-height:10.2em;overflow:hidden;font-size:16px;line-height:1.45;color:#7a7a7a}
.th-keystone section.s-bk-job .s-bk-media img{border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.5)}
/* a list's page numbers on one line under a dashed rule */
.th-keystone .s-block--details.s-bk-look-pages .s-bk-dt{border:0;margin:0}
.th-keystone .s-block--details.s-bk-look-pages :is(.s-bk-dt-h,.s-bk-words p){margin:0;font-size:19px;font-weight:400;line-height:1.4;text-shadow:none}
.th-keystone .s-block--details.s-bk-look-pages :is(.s-bk-dt-h a,.s-bk-words){color:#1675c9;letter-spacing:1px}
.th-keystone .s-block--cards.s-bk-look-list .s-bk-card{border:0}
.th-keystone .s-block--cards.s-bk-look-brief .s-bk-cd-h{line-height:1.25}
/* words of their own (the jobs band's lead-in, a service's own words under its list): the old 19px grey, a heading over them grey and
   to the left ("Roofing Repairs") */
.th-keystone section.s-block--plain:not([id^="rating"]):not(.side-right) .s-bk-words>p{font-size:clamp(1rem,1.5vw,19px);line-height:1.65;color:#616161}
.th-keystone section.s-block--plain:not([id^="rating"]):not(.side-right) .s-head,
.th-keystone section.s-block--plain:not([id^="rating"]):not(.side-right) .s-head h2{text-align:left}
.th-keystone section.s-block--plain:not([id^="rating"]):not(.side-right) .s-head h2{color:#737373;font-size:clamp(1.5rem,2.8vw,36px);font-weight:700;text-shadow:none;margin:0 0 6px}
/* the testimonials on tan: the words grey italics, the title line under them dark italics, as the old cards */
.th-keystone .s-bk-reviews .s-bk-rv-text{font-style:italic;color:#8a8a8a}
.th-keystone .s-bk-reviews .s-bk-rv-sum{font-style:italic;font-weight:400;color:#5a5a5a;font-size:clamp(1.05rem,1.6vw,22px)}
.th-keystone .s-block--details.s-bk-rv-more .s-bk-dt-h a{color:#6197CE;text-shadow:none;font-weight:700}
.th-keystone .s-block--details.s-bk-rv-more{padding-top:0}
/* the hero (pro-local's home page): the cover photo, and on its right a box — the <h1>, the lines under it in blue, the owner's photo */
.th-keystone .s-hero--billboard.has-portrait{padding:0;text-align:right}
.th-keystone .s-hero--billboard.has-portrait .s-hero-in{max-width:1020px}
.th-keystone .s-hero--billboard.has-portrait .s-hero-card{box-sizing:border-box;width:min(100%,347px);min-height:480px;margin:0 0 0 auto;padding:17px;
  background:linear-gradient(to right,#fff,#efefef);border:0;border-radius:0;box-shadow:0 0 4px #000;text-align:right;align-items:stretch}
.th-keystone .s-hero--billboard.has-portrait .s-hb-head{color:#5A5249;font-size:clamp(1.3rem,2vw,27px);letter-spacing:2px;text-align:right;text-shadow:none;
  padding-bottom:5px;border-bottom:1px solid #9E948A}
.th-keystone .s-hero--billboard.has-portrait .s-hero-lead{order:2;margin:6px 0 0;padding:0;background:none;box-shadow:none;border-radius:0;color:#6197CE;
  font-weight:400;font-size:clamp(1rem,1.7vw,22px);letter-spacing:normal;text-shadow:none;text-align:right}
.th-keystone .s-hero--billboard.has-portrait .s-hero-portrait{order:3;margin:20px 0 0 auto;width:100%;max-width:310px}
.th-keystone .s-hero--billboard.has-portrait .s-hero-portrait img{box-shadow:2px 2px 6px #6b6052}
.th-keystone .s-hero--billboard.has-portrait .s-hero-cta{display:none}
@media (max-width:640px){.th-keystone .s-hero--billboard.has-portrait .s-hero-card{width:100%;min-height:0;margin:0}}
/* a job's write-up: the old 14pt words, its sub-headings bold blue, each paragraph's photo on the right with a soft shadow */
.th-keystone .s-block--story .s-bk-words{font-size:clamp(1rem,1.5vw,18.7px);line-height:1.7;color:#333}
.th-keystone .s-block--story .s-bk-sh{color:#6197CE;font-weight:700;font-size:clamp(1.25rem,2vw,26px);line-height:1.25;text-shadow:none;margin:14px 0 6px}
.th-keystone .s-block--story .s-bk-float img{border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.45)}
/* the column beside it: "Call Today" under a taupe bar, "Patient Reviews" under a blue one, its quote in a tan bubble */
.th-keystone section.side-right{padding-block:10px}
.th-keystone section.side-right .s-head{margin:0}
.th-keystone section.side-right .s-head h2{margin:0;padding:15px 10px;background:#5A5249;color:#fff;font-size:clamp(1.2rem,1.9vw,26px);font-weight:700;letter-spacing:1px;
  text-align:center;text-shadow:none}
.th-keystone section.side-right .s-bk-words{padding:10px;font-size:clamp(1rem,1.5vw,21px);line-height:1.45;color:#616161;border-bottom:1px solid #e3e3e3}
.th-keystone section.side-right .s-bk-words strong{color:#5A5249}
.th-keystone section.side-right + section.side-right .s-head h2{background:#6197CE}
.th-keystone section.side-right + section.side-right .s-bk-words{border:0;padding:12px 0 0}
.th-keystone section.side-right + section.side-right .s-bk-words p:first-child{margin:0;padding:14px 22px;border-radius:10px;background:var(--pl-tan);color:#fff;
  font-style:italic;font-size:clamp(1rem,1.4vw,18.7px);letter-spacing:1px;text-shadow:1px 1px 1px #6b6052}
.th-keystone section.side-right + section.side-right .s-bk-words p:not(:first-child){margin:8px 20px 0;color:#a0a0a0;font-size:15px}
/* About and Contact: the photo, a see-through blue box on its right holding the small line and the <h1>; under it the round pictures
   in a row on tan, their words white */
.th-keystone .s-page_hero--billboard:not(.g-white):not(:has(.h1-leads)){padding:34px 0 0}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads){display:grid;grid-template-columns:minmax(0,1fr) min(100%,360px);max-width:1020px;width:auto;
  background:none;border:0;border-radius:0;padding:0;align-items:stretch}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads)::before{content:"";grid-area:1/2/3/3;background:rgba(97,151,206,.82);border:1px solid #8fb5dc;
  border-radius:0;box-shadow:0 0 4px #000;z-index:-1}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-kick{grid-area:1/2;margin:0;padding:18px 20px 0;color:#fff;text-align:right;
  font-size:clamp(1.5rem,2.6vw,34px);font-weight:700;letter-spacing:1px;text-shadow:1px 1px 1px #5d7fa3}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-h1{grid-area:2/2;margin:0;padding:6px 20px 24px;color:#dce9f6;text-align:right;
  font-size:clamp(1.1rem,1.9vw,24px);font-weight:400;letter-spacing:2px;text-shadow:none}
.th-keystone .s-page_hero--billboard:not(.g-white):has(.s-pbh-icons){padding-bottom:0}
.th-keystone .s-page_hero--billboard:not(.g-white):has(.s-pbh-icons) + section{border-top:0;margin-top:0}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-icons{grid-area:3/1/4/3;margin:clamp(80px,14vw,190px) 0 0;padding:0 0 10px;background:none;border:0;
  border-radius:0;border-image:linear-gradient(var(--pl-tan) 0 0) fill 0 / / 0 100vmax}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-icon{margin-top:-60px}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-icon-t{color:#fff;font-size:clamp(.95rem,1.5vw,20px);text-shadow:none;margin:6px 0 14px}
.th-keystone .s-page_hero .s-pbh-in a.s-pbh-icon:not(:has(img))::before{background:var(--ks-ico,none) center/56% no-repeat,#6197CE;box-shadow:0 0 0 4px #8fb5dc}
@media (max-width:640px){
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads){grid-template-columns:minmax(0,1fr)}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads)::before{grid-area:1/1/3/2}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) :is(.s-pbh-kick,.s-pbh-h1){grid-column:1}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-icons{grid-area:3/1/4/2}
.th-keystone .s-page_hero--billboard:not(.g-white) .s-pbh-in:not(.h1-leads) .s-pbh-icon{margin-top:0}
}
/* a team member's and a piece of equipment's page: the title on white between blue rules, the small line grey capitals, the <h1> blue */
.th-keystone .s-page_hero--billboard.g-white{background:#fff;padding:22px 0 8px}
.th-keystone .s-page_hero--billboard.g-white .s-pbh-in{align-items:flex-start;text-align:left;background:none;border:0;border-radius:0;border-block:6px solid #6197CE;
  max-width:1020px;width:auto;padding:10px 10px 12px}
.th-keystone .s-page_hero--billboard.g-white .s-pbh-in .s-pbh-kick{color:#5A5249;font-size:clamp(1.05rem,1.8vw,25px);font-weight:700;text-transform:uppercase;text-align:left;text-shadow:none;margin:0}
.th-keystone .s-page_hero--billboard.g-white .s-pbh-in .s-pbh-h1{color:#6197CE;font-size:clamp(1.8rem,3.6vw,48px);text-align:left;text-shadow:1px 1px 2px #707070}
/* a testimonial's page: the old grey card on white — its title blue, the words grey italics, the date on the right */
.th-keystone .s-page_hero--billboard_box.g-white{background:#fff;padding:12px 0}
.th-keystone .s-page_hero--billboard_box.g-white .s-pbh-in{align-items:stretch;text-align:left;background:#f3f3f3;border:3px solid #bdbdbd;border-radius:10px;box-shadow:none;
  max-width:1020px;width:auto;padding:14px 12px 22px}
.th-keystone .s-page_hero--billboard_box.g-white .s-pbh-in .s-pbh-h1{color:#6197CE;font-size:clamp(1.6rem,3vw,40px);letter-spacing:normal;text-align:left;border:0;text-shadow:none}
.th-keystone .s-page_hero--billboard_box.g-white .s-pbh-in .s-pbh-box{color:#7a7a7a;font-style:italic;font-size:clamp(1.1rem,2vw,26px);text-align:left}
.th-keystone .s-page_hero--billboard_box.g-white .s-pbh-in .s-pbh-box p:nth-last-child(2){font-weight:700}
.th-keystone .s-page_hero--billboard_box.g-white .s-pbh-in .s-pbh-box p:last-child{text-align:right;font-style:normal;font-weight:700;font-size:20px;color:#666}
/* About's team card: the name over the photo, the lines small under it */
.th-keystone .s-block--cards.s-bk-look-bio .s-bk-card{display:flex;flex-direction:column;border:0;max-width:300px}
.th-keystone .s-block--cards.s-bk-look-bio .s-bk-cd-h{order:-1;margin:10px 0;text-align:center;font-size:clamp(1.1rem,1.8vw,24px);font-weight:700}
.th-keystone .s-block--cards.s-bk-look-bio .s-bk-cd-h a{color:#6197CE;text-shadow:1px 1px 1px #a8a8a8}
.th-keystone .s-block--cards.s-bk-look-bio .s-bk-words{font-size:14px;line-height:1.45;color:#333}
.th-keystone .s-block--cards.s-bk-look-bio .s-bk-words p{margin:0 0 6px}
/* a list of reasons that was an <ol>: numbered, each title underlined, its line under it */
.th-keystone .s-bk-points.s-bk-numbers{display:block;list-style:decimal;padding-left:34px;margin:12px 0 0}
.th-keystone .s-bk-points.s-bk-numbers .s-bk-point{display:list-item;margin:0 0 10px;padding:2px 0;border:0;border-radius:0;color:#000;font-size:19px}
.th-keystone .s-bk-points.s-bk-numbers .s-bk-point strong{color:#000;text-decoration:underline;font-size:19px}
.th-keystone .s-bk-points.s-bk-numbers .s-bk-point span{color:#000;font-size:18px;margin-top:2px}
/* a button only (the Reviews page's "Google", under its title): centred, the old white pill */
.th-keystone section.s-block--plain.no-head:not(:has(.s-bk-words)) .s-bk-do{justify-content:center}
.th-keystone section.s-block--plain.no-head:not(:has(.s-bk-words)) .s-bk-btn{background:#f6f6f6;color:#4285f4;border:1px solid #ddd;border-bottom-width:3px;border-radius:10px;
  font-size:22px;font-weight:700;padding:10px 30px}
/* Contact's ways to reach them: each heading blue and underlined, the words under it black and larger, as the old page */
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) .s-bk-tc-h{color:#6197CE}
.th-keystone section.s-block--twocol:is(#call,#text,#email,#letter,#facebook,#other) .s-bk-words{color:#000;font-size:clamp(1rem,1.5vw,19px);line-height:1.5}
/* a row on tan (About's tools): its heading white, as the old */
.th-keystone section.s-block--beside.g-tan .s-head :is(h2,h3,h4){color:#fff;text-shadow:1px 1px 2px #544b42}
.th-keystone section.s-block--beside.g-tan .s-bk-words{color:#3d3d3d}.th-keystone a.s-pbh-icon[data-ico="resume"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3Cpath fill='%23fff' d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[data-ico="tools"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3Cpath fill='%23fff' d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[data-ico="reviews"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3Cpath fill='%23fff' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[data-ico="team"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3Cpath fill='%23fff' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[data-ico="history"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z'/%3E%3Cpath fill='%23fff' d='M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z'/%3E%3C/svg%3E")}
.th-keystone a.s-pbh-icon[data-ico="local"]{--ks-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f6286' transform='translate(.7 .7)' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3Cpath fill='%23fff' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E")}

.tone-base.tone-base{background-color:var(--c-bg);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted);--t-link:var(--c-link);--t-glass:var(--c-band);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.tone-band.tone-band{background-color:var(--c-band);background-image:none;color:var(--c-ink);--t-fg:var(--c-ink);--t-fg-2:var(--c-muted-band);--t-link:var(--c-link-band);--t-glass:var(--c-card-2);--t-glass-line:var(--c-line);--t-outline:var(--c-line);--t-star:var(--c-star);--t-star-off:var(--c-line);--t-edge:var(--c-ink);--t-act:var(--c-act);--t-on-act:var(--c-on-act);--t-fill:var(--c-fill);--t-on-fill:var(--c-on-fill);--t-fill-icon:var(--c-fill-icon)}
.tone-brand.tone-brand{background-color:var(--c-brand);background-image:none;color:var(--c-on-brand);--t-fg:var(--c-on-brand);--t-fg-2:var(--c-on-brand);--t-link:var(--c-on-brand);--t-glass:transparent;--t-glass-line:var(--c-on-brand);--t-outline:var(--c-on-brand);--t-star:var(--c-on-brand);--t-star-off:transparent;--t-edge:var(--c-on-brand);--t-act:var(--c-on-brand);--t-on-act:var(--c-brand);--t-fill:var(--c-on-brand);--t-on-fill:var(--c-brand);--t-fill-icon:var(--c-brand)}
.tone-deep.tone-deep{background-color:var(--c-dark);background-image:none;color:var(--c-on-dark);--t-fg:var(--c-on-dark);--t-fg-2:var(--c-muted-on-dark);--t-link:var(--c-accent-on-dark);--t-glass:rgba(255,255,255,.07);--t-glass-line:rgba(255,255,255,.16);--t-outline:rgba(255,255,255,.7);--t-star:var(--c-accent-on-dark);--t-star-off:rgba(255,255,255,.3);--t-edge:var(--c-on-dark);--t-act:var(--c-act-dark);--t-on-act:var(--c-on-act-dark);--t-fill:var(--c-act-dark);--t-on-fill:var(--c-on-act-dark);--t-fill-icon:var(--c-on-act-dark)}
.tone-accent.tone-accent{background-color:var(--c-accent);background-image:none;color:var(--c-on-accent);--t-fg:var(--c-on-accent);--t-fg-2:var(--c-on-accent);--t-link:var(--c-on-accent);--t-glass:transparent;--t-glass-line:var(--c-on-accent);--t-outline:var(--c-on-accent);--t-star:var(--c-on-accent);--t-star-off:transparent;--t-edge:var(--c-on-accent);--t-act:var(--c-on-accent);--t-on-act:var(--c-accent);--t-fill:var(--c-on-accent);--t-on-fill:var(--c-accent);--t-fill-icon:var(--c-accent)}
.o-size-sm{--fs-base:15.3px;--step--1:13.6px;--step-0:clamp(15px,0vw + 15px,15px);--step-1:clamp(17px,0.217vw + 16.22px,19px);--step-2:clamp(19px,0.543vw + 17.04px,24px);--step-3:clamp(21px,0.87vw + 17.87px,29px);--step-4:clamp(23px,1.413vw + 17.91px,36px);--step-5:clamp(26px,2.065vw + 18.57px,45px);--step-6:clamp(29px,2.935vw + 18.43px,56px)}.o-size-sm.o-size-sm h1{font-size:calc(var(--fs-h1) * .9)}.o-size-sm.o-size-sm h2{font-size:calc(var(--fs-h2) * .9)}.o-size-sm.o-size-sm h3{font-size:calc(var(--fs-h3) * .9)}.o-size-lg{--fs-base:19.6px;--step--1:17.4px;--step-0:clamp(20px,0vw + 20px,20px);--step-1:clamp(22px,0.217vw + 21.22px,24px);--step-2:clamp(24px,0.652vw + 21.65px,30px);--step-3:clamp(27px,1.087vw + 23.09px,37px);--step-4:clamp(30px,1.739vw + 23.74px,46px);--step-5:clamp(33px,2.609vw + 23.61px,57px);--step-6:clamp(37px,3.696vw + 23.7px,71px)}.o-size-lg.o-size-lg h1{font-size:calc(var(--fs-h1) * 1.15)}.o-size-lg.o-size-lg h2{font-size:calc(var(--fs-h2) * 1.15)}.o-size-lg.o-size-lg h3{font-size:calc(var(--fs-h3) * 1.15)}.o-size-xl{--fs-base:22.4px;--step--1:20px;--step-0:clamp(22px,0vw + 22px,22px);--step-1:clamp(25px,0.326vw + 23.83px,28px);--step-2:clamp(28px,0.761vw + 25.26px,35px);--step-3:clamp(31px,1.304vw + 26.3px,43px);--step-4:clamp(34px,2.065vw + 26.57px,53px);--step-5:clamp(38px,3.043vw + 27.04px,66px);--step-6:clamp(42px,4.348vw + 26.35px,82px)}.o-size-xl.o-size-xl h1{font-size:calc(var(--fs-h1) * 1.32)}.o-size-xl.o-size-xl h2{font-size:calc(var(--fs-h2) * 1.32)}.o-size-xl.o-size-xl h3{font-size:calc(var(--fs-h3) * 1.32)}
.o-space-tight{--sec-y:48px;--sp-section:48px}.o-space-roomy{--sec-y:128px;--sp-section:128px}@media (max-width:900px){.o-space-tight{--sec-y:38px;--sp-section:38px}.o-space-roomy{--sec-y:86px;--sp-section:86px}}
.o-wide{--w-max:1280px}.o-full{--w-max:100%}
.o-align-center.o-align-center{text-align:center}.o-align-center.o-align-center h1,.o-align-center.o-align-center h2,.o-align-center.o-align-center h3,.o-align-center.o-align-center h4,.o-align-center.o-align-center p,.o-align-center.o-align-center li,.o-align-center.o-align-center .s-lead,.o-align-center.o-align-center .s-eyebrow,.o-align-center.o-align-center .s-head,.o-align-center.o-align-center .sec-head,.o-align-center.o-align-center .s-head-in{text-align:center}.o-align-center.o-align-center .s-head,.o-align-center.o-align-center .sec-head,.o-align-center.o-align-center .s-lead,.o-align-center.o-align-center .s-head-in{margin-inline:auto}.o-align-center.o-align-center .s-eyebrow{justify-content:center}.o-align-center.o-align-center .s-eyebrow::before{display:none}
.o-align-left.o-align-left{text-align:left}.o-align-left.o-align-left h1,.o-align-left.o-align-left h2,.o-align-left.o-align-left h3,.o-align-left.o-align-left h4,.o-align-left.o-align-left p,.o-align-left.o-align-left li,.o-align-left.o-align-left .s-lead,.o-align-left.o-align-left .s-eyebrow,.o-align-left.o-align-left .s-head,.o-align-left.o-align-left .sec-head,.o-align-left.o-align-left .s-head-in{text-align:left}.o-align-left.o-align-left .s-head,.o-align-left.o-align-left .sec-head,.o-align-left.o-align-left .s-lead,.o-align-left.o-align-left .s-head-in{margin-inline:0}.o-align-left.o-align-left .s-eyebrow{justify-content:flex-start}

