﻿/* Hallmark · macrostructure: Photographic + Index-First · tone: clean-honest-local · anchor hue: orange
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · contrast: pass (40–41) · nav: preserved · footer: preserved · slop: pass (42–45)
 * honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34, 49, 50–57)
 */
@import url("/tokens.css");
*,*::before,*::after{box-sizing:border-box} html,body{margin:0;overflow-x:clip} html{scroll-behavior:smooth} body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.75;text-rendering:optimizeLegibility}.top-page,.top-page main{background:var(--color-page)} img{display:block;max-width:100%;height:auto} a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em} button,input,textarea,select{font:inherit} button,a{touch-action:manipulation} :focus-visible{outline:3px solid var(--color-focus);outline-offset:3px} .skip{position:fixed;z-index:999;top:var(--space-2);left:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-ink);color:var(--color-paper);transform:translateY(-150%)} .skip:focus{transform:none}
.shell{width:min(100% - 2rem,72rem);margin-inline:auto}.narrow{width:min(100% - 2rem,48rem);margin-inline:auto}.eyebrow{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;color:var(--color-accent-dark)} h1,h2,h3{font-style:normal;overflow-wrap:anywhere;min-width:0} h1,h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.035em;line-height:1.15} h1{margin:0;font-size:var(--text-display)} h2{margin:0 0 var(--space-5);font-size:var(--text-2xl)} h3{margin:0 0 var(--space-2);font-size:var(--text-xl);line-height:1.4} p{margin:0 0 var(--space-5)} .lede{max-width:44rem;font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.8}.muted{color:var(--color-muted)} .numeric{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}.section{padding-block:var(--space-16);border-top:var(--rule)}.section-soft{background:var(--color-paper-2)}.section-dark{background:var(--color-ink);color:var(--color-paper)}.section-head{display:flex;flex-direction:column;max-width:46rem;margin-bottom:var(--space-8)}
.masthead{background:var(--color-paper);border-bottom:var(--rule)}.utility{padding:.35rem 1rem;background:var(--color-ink);color:var(--color-paper);font-size:var(--text-sm);text-align:center}.nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-6);min-height:5.5rem}.brand{display:inline-flex;align-items:center}.brand img{width:min(18rem,35vw);height:auto}.nav-links{display:flex;justify-content:center;gap:var(--space-5)}.nav-links a,.nav-cta,.btn,.text-link,.footer a{white-space:nowrap}.nav-links a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:var(--text-sm);font-weight:700}.menu-btn{display:none;border:var(--rule);border-radius:var(--radius-sm);background:var(--color-paper);min-width:48px;min-height:48px;color:var(--color-ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.15rem;border:1px solid var(--color-accent-dark);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-weight:700;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--color-accent-dark)}.btn:active{transform:translateY(1px)}.btn-outline{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-outline:hover{background:var(--color-ink);color:var(--color-paper)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.text-link{display:inline-flex;min-height:44px;align-items:center;font-weight:700;color:var(--color-accent-dark)}
.hero{padding-block:var(--space-12) var(--space-20)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:end;gap:var(--space-10)}.hero-copy .lede{margin-top:var(--space-6)}.hero-copy .actions{margin-top:var(--space-8)}.assurance{border-top:3px solid var(--color-accent);padding-top:var(--space-5)}.assurance strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.4}.assurance-list{padding:0;margin:var(--space-5) 0 0;list-style:none}.assurance-list li{padding:var(--space-3) 0;border-top:var(--rule)}
.proof-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:var(--rule);background:var(--color-paper)}.proof{padding:var(--space-6)}.proof+.proof{border-left:var(--rule)}.proof b{display:block;margin-bottom:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg)}
.service-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:var(--rule)}.service-row{display:grid;grid-template-columns:3.4rem minmax(0,1fr) auto;gap:var(--space-4);align-items:center;min-height:7rem;padding:var(--space-4);border-bottom:var(--rule);text-decoration:none}.service-row:nth-child(odd){border-right:var(--rule)}.service-row:hover{background:var(--color-paper-2)}.service-row .num{color:var(--color-accent-dark);font-weight:700}.service-row strong{font-family:var(--font-display);font-size:var(--text-xl)}
.story-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:var(--space-10);align-items:start}.sticky-note{position:sticky;top:var(--space-6);padding:var(--space-6);border-left:4px solid var(--color-accent);background:var(--color-paper-2)}.ledger{border-top:2px solid var(--color-ink)}.ledger-row{display:grid;grid-template-columns:minmax(7rem,.35fr) minmax(0,1fr);gap:var(--space-6);padding:var(--space-6) 0;border-bottom:var(--rule)}.ledger-row dt{font-weight:700}.ledger-row dd{margin:0}
.case-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.case-card{min-width:0;border-top:2px solid var(--color-ink);padding-top:var(--space-4)}.case-card-media{display:block;width:100%;aspect-ratio:4/3;margin:0 0 var(--space-4);overflow:hidden;border:var(--rule);background:var(--color-paper-3)}.case-card-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.case-card-media .photo-placeholder{margin:0;border:0;width:100%;height:100%;aspect-ratio:auto}.photo-placeholder{display:grid;place-items:center;width:100%;aspect-ratio:4/3;margin:0 0 var(--space-4);overflow:hidden;border:var(--rule);background:var(--color-paper-3);color:var(--color-muted);font-size:var(--text-sm);text-align:center}.case-card a{display:block;text-decoration:none}.case-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-muted)}.tag{display:inline-flex;align-items:center;min-height:2rem;padding:0 var(--space-3);border:var(--rule);border-radius:99rem;background:var(--color-paper)}
.site-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-8)}.site-pagination a,.site-pagination span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 var(--space-3);border:var(--rule);border-radius:var(--radius-sm);background:var(--color-page);line-height:1;font-size:var(--text-sm);font-weight:700;text-decoration:none;white-space:nowrap}.site-pagination [aria-current="page"]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-page)}.site-pagination a:hover,.site-pagination a:focus-visible{background:var(--color-paper-3);color:var(--color-accent-dark);border-color:var(--color-accent-dark)}.site-pagination a:active{background:var(--color-rule)}.site-pagination .is-disabled,.site-pagination [aria-disabled="true"]{opacity:.45;cursor:not-allowed;color:var(--color-muted)}
.quote{padding:var(--space-8);border-left:4px solid var(--color-accent);background:var(--color-paper-2)}.quote blockquote{margin:0;font-family:var(--font-display);font-size:clamp(1.25rem,3vw,2rem);line-height:1.6}.quote figcaption{margin-top:var(--space-5);color:var(--color-muted)}.faq details{border-top:var(--rule)}.faq details:last-child{border-bottom:var(--rule)}.faq summary{display:flex;align-items:center;min-height:4.5rem;padding:var(--space-4) 0;font-weight:700;cursor:pointer}.faq p{padding:0 0 var(--space-5);max-width:48rem}
.top-hero{position:relative;display:grid;min-height:clamp(32rem,53vw,45rem);isolation:isolate;overflow:hidden;background:var(--color-page)}.top-hero-media{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.top-hero-veil{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,var(--color-page) 0%,var(--color-page) 26%,transparent 68%)}.top-hero-inner{display:flex;align-items:center;padding-block:var(--space-10) var(--space-16)}.top-hero-copy{width:min(46rem,58%)}.top-hero-copy h1{font-size:clamp(2.8rem,5.5vw,5rem);line-height:1.18}.top-hero-copy .lede{margin-top:var(--space-6);font-size:clamp(1.1rem,2vw,1.4rem)}.top-hero-copy .actions{margin-top:var(--space-8)}
.trust-band{border-block:var(--rule);background:var(--color-paper-2)}.trust-band-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-inline:var(--rule)}.trust-point{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);align-items:center;min-height:7.25rem;padding:var(--space-5) var(--space-6)}.trust-point+.trust-point{border-left:var(--rule)}.trust-no{font-family:var(--font-numeric);font-size:var(--text-sm);font-weight:800;color:var(--color-accent-dark)}.trust-point b,.trust-point span{display:block}.trust-point b{font-family:var(--font-display);font-size:var(--text-lg)}.trust-point div span{font-size:var(--text-sm);color:var(--color-muted)}
.top-about{position:relative;isolation:isolate;overflow:hidden;background:var(--color-about-paper);color:var(--color-ink)}.top-about::before,.top-about::after{content:"";position:absolute;z-index:-2;width:38rem;height:36rem;border-radius:42% 58% 63% 37% / 47% 38% 62% 53%;background:var(--color-about-water);filter:blur(10px);opacity:.38}.top-about::before{left:-14rem;top:5rem;transform:rotate(-12deg)}.top-about::after{right:-13rem;bottom:-7rem;transform:rotate(18deg)}.top-about-inner{position:relative}.top-about-inner::before{content:"";position:absolute;z-index:-1;inset:-4rem -8vw;background-image:radial-gradient(circle at 5% 16%,color-mix(in oklch,var(--color-page) 64%,transparent) 0 3px,transparent 4px),radial-gradient(circle at 15% 44%,color-mix(in oklch,var(--color-page) 58%,transparent) 0 5px,transparent 6px),radial-gradient(circle at 88% 22%,color-mix(in oklch,var(--color-page) 68%,transparent) 0 2px,transparent 3px),radial-gradient(circle at 95% 52%,color-mix(in oklch,var(--color-page) 62%,transparent) 0 6px,transparent 7px),radial-gradient(circle at 8% 82%,color-mix(in oklch,var(--color-page) 70%,transparent) 0 2px,transparent 3px),radial-gradient(circle at 86% 88%,color-mix(in oklch,var(--color-page) 56%,transparent) 0 4px,transparent 5px);background-repeat:no-repeat;opacity:.5;pointer-events:none}.top-about-copy{display:flex;flex-direction:column;align-items:center;text-align:center}.top-about-plaque{position:relative;display:inline-grid;place-items:center;min-width:min(31rem,82vw);min-height:5.5rem;margin:0 0 var(--space-10);padding:var(--space-4) var(--space-12);clip-path:polygon(4% 0,96% 0,96% 14%,100% 14%,100% 86%,96% 86%,96% 100%,4% 100%,4% 86%,0 86%,0 14%,4% 14%);background:var(--color-about-teal);color:var(--color-page);font-family:var(--font-display);font-size:clamp(1.35rem,3vw,2.1rem);font-weight:700;letter-spacing:.06em;box-shadow:var(--shadow-about)}.top-about-plaque::before{content:"";position:absolute;inset:var(--space-2);border:1px solid var(--color-about-gold);clip-path:inherit}.top-about-copy h2{max-width:68rem;margin:0;font-size:clamp(2rem,3.65vw,3.5rem);font-weight:700;line-height:1.45;overflow-wrap:anywhere;min-width:0}.top-about-rule{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:min(100%,64rem);gap:var(--space-5);margin-block:var(--space-6)}.top-about-rule::before,.top-about-rule::after{content:"";height:1px;background:var(--color-about-gold)}.top-about-rule span{width:.9rem;height:.9rem;background:var(--color-about-gold);transform:rotate(45deg)}.top-about-intro{max-width:56rem;margin:0;font-size:clamp(1rem,1.7vw,1.25rem);font-weight:700;line-height:1.9}.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);margin:var(--space-10) 0 0;padding:0;list-style:none}.principles li{position:relative;display:grid;align-content:start;justify-items:center;min-width:0;min-height:22rem;padding:var(--space-8) var(--space-6);border:2px solid var(--color-about-teal-soft);background:color-mix(in oklch,var(--color-about-paper-light) 70%,transparent);text-align:center;box-shadow:var(--shadow-about)}.principles li::before{content:"";position:absolute;inset:var(--space-2);border:1px solid var(--color-about-teal-soft);pointer-events:none}.about-principle-icon{position:relative;z-index:1;display:grid;place-items:center;width:7rem;height:7rem;margin-bottom:var(--space-5);border-radius:50%;background:var(--color-about-teal-soft);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-page) 56%,transparent)}.about-principle-icon svg{width:4.5rem;height:4.5rem;fill:none;stroke:var(--color-page);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.principles h3{position:relative;z-index:1;margin-bottom:var(--space-3);font-family:var(--font-display);font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.35}.principles p{position:relative;z-index:1;max-width:23rem;margin:0;font-size:var(--text-base);font-weight:700;line-height:1.75;color:var(--color-ink)}
.service-section{background:var(--color-paper-2)}.service-heading{text-align:center}.service-heading h2{display:inline-block;padding-bottom:var(--space-3);border-bottom:3px solid var(--color-accent)}.area-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--space-8);border-bottom:var(--rule)}.area-tabs button{min-height:56px;border:0;border-top:var(--rule);border-right:var(--rule);background:var(--color-paper-3);color:var(--color-muted);font-weight:700;cursor:pointer;white-space:nowrap}.area-tabs button:first-child{border-left:var(--rule)}.area-tabs button[aria-selected="true"]{border-top:2px solid var(--color-accent);background:var(--color-page);color:var(--color-accent-dark)}.area-panel{padding-top:var(--space-6)}.area-panel[hidden]{display:none}.area-panel>h3{text-align:center;font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-5)}.service-ledger{display:grid;grid-template-rows:repeat(3,12rem);border:var(--rule)}.service-entry{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:10rem;color:var(--color-ink);text-decoration:none;background:var(--color-page);overflow:hidden}.service-entry+.service-entry{border-top:var(--rule)}.service-entry img{width:100%;height:100%;min-height:10rem;object-fit:cover}.service-entry-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:var(--space-6) var(--space-12) var(--space-6) var(--space-8)}.service-entry-copy b{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.45}.service-entry-copy small{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--text-sm);line-height:1.75}.service-entry.is-reversed img{order:2}.service-entry.is-reversed .service-entry-copy{order:1}.service-arrow{position:absolute;right:var(--space-5);top:50%;color:var(--color-accent);font-size:var(--text-xl);transform:translateY(-50%)}.service-entry:hover .service-entry-copy{background:var(--color-paper)}
.reviews-section{background:var(--color-page)}.reviews-heading{text-align:center}.reviews-heading h2{margin-bottom:var(--space-2)}.reviews-heading p{margin-bottom:0;font-size:var(--text-sm);color:var(--color-muted)}.reviews-heading strong{display:block;margin-top:var(--space-2)}.reviews-heading strong span{color:var(--color-accent)}.review-carousel{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:var(--space-4);align-items:center;margin-top:var(--space-8)}.review-window{min-width:0;overflow:hidden}.review-track{display:flex;gap:var(--space-4);transition:transform var(--dur-base) var(--ease-out);will-change:transform}.review-placeholder{flex:0 0 calc((100% - 2rem)/3);min-width:0;min-height:10rem;padding:var(--space-6);border:var(--rule);background:var(--color-page);border-radius:var(--radius-sm)}.review-placeholder b{display:block;margin-bottom:var(--space-5);font-size:var(--text-sm)}.review-placeholder span{display:block;height:.35rem;margin-top:var(--space-3);border-radius:99rem;background:var(--color-rule)}.review-placeholder .short{width:62%}.carousel-control{display:grid;place-items:center;width:48px;height:48px;border:var(--rule);border-radius:50%;background:var(--color-page);color:var(--color-ink);cursor:pointer}.carousel-control:hover{border-color:var(--color-accent);color:var(--color-accent-dark)}.carousel-control:active{background:var(--color-paper-2)}.reviews-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-5)}.carousel-toggle{min-height:44px;padding:0;border:0;background:transparent;color:var(--color-muted);font-size:var(--text-sm);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em;white-space:nowrap;cursor:pointer}.carousel-toggle:hover{color:var(--color-accent-dark)}.carousel-toggle:active{color:var(--color-ink)}.is-disabled{cursor:not-allowed;opacity:.62}
.consult-section{padding:var(--space-10) 0;background:var(--color-paper-2);border-top:var(--rule)}.consult-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(24rem,.8fr);gap:var(--space-8);align-items:center;padding:var(--space-6) var(--space-8);border:2px solid var(--color-accent);border-radius:var(--radius-lg);background:var(--color-page)}.consult-copy .eyebrow{margin-bottom:var(--space-1)}.consult-copy h2{margin-bottom:var(--space-2);font-size:clamp(1.35rem,2.4vw,2rem)}.consult-copy p:last-child{margin:0;font-size:var(--text-sm);color:var(--color-muted)}.consult-phone{display:grid;gap:var(--space-2);min-width:0}.consult-number{display:flex;align-items:center;gap:var(--space-3)}.consult-number>span{font-weight:800;color:var(--color-accent-dark)}.consult-number a{font-size:clamp(1.55rem,2.8vw,2.35rem);font-weight:800;color:var(--color-accent-dark);text-decoration:none;white-space:nowrap}.consult-detail{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.consult-detail small{color:var(--color-muted);line-height:1.5}.consult-button{flex:0 0 auto;padding-inline:var(--space-8);line-height:1}
.region-hero{padding-block:var(--space-10) var(--space-16)}.region-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-8);align-items:end}.area-mark{font-family:var(--font-numeric);font-size:clamp(4rem,15vw,10rem);font-weight:800;line-height:.8;color:var(--color-paper-3)}.consult-bar{margin-top:var(--space-8);padding:var(--space-6);background:var(--color-safe-soft);border-left:4px solid var(--color-safe);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-5);align-items:center}.consult-bar p{margin:0}
.split-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:36rem}.split-copy{display:flex;flex-direction:column;justify-content:center;padding:var(--space-12) max(var(--space-6),calc((100vw - 72rem)/2)) var(--space-16) max(var(--space-4),calc((100vw - 72rem)/2))}.split-panel{display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-8);background:var(--color-paper-3);border-left:var(--rule)}.price-box{padding:var(--space-6);background:var(--color-paper);border-top:4px solid var(--color-accent)}.price{font-family:var(--font-numeric);font-size:clamp(2rem,5vw,3.5rem);font-weight:800}.symptoms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.symptom{padding:var(--space-5);border:var(--rule);background:var(--color-paper)}
.case-hero{padding-block:var(--space-10)}.case-hero h1{font-size:clamp(1.35rem,3.2vw,2.4rem);line-height:1.35;letter-spacing:-.02em}.case-hero .lede{max-width:none}.case-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);gap:var(--space-8);align-items:start}.case-cta{background:var(--color-page);color:var(--color-ink);border-top:var(--rule)}.case-cta h2{color:var(--color-ink)}.case-cta p{color:var(--color-muted)}.case-cta .btn-outline{color:var(--color-ink);border-color:var(--color-ink)}.case-cta .btn-outline:hover{background:var(--color-ink);color:var(--color-paper)}.case-photo{aspect-ratio:4/3}.case-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.case-compare-item{margin:0;min-width:0}.case-compare-frame{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;border:var(--rule);background:var(--color-paper-3)}.case-compare-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.case-compare-frame .photo-placeholder{margin:0;border:0;width:100%;height:100%;aspect-ratio:auto}.case-compare-item figcaption{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-muted)}.summary-box{padding:var(--space-6);background:var(--color-paper-2);border-top:4px solid var(--color-accent)}.summary-box dl{margin:0}.summary-box div{display:grid;grid-template-columns:7rem minmax(0,1fr);padding:var(--space-3) 0;border-bottom:var(--rule)}.summary-box dt{font-weight:700}.summary-box dd{margin:0}.article{max-width:46rem}.article h2{margin-top:var(--space-12)}
.contact-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-12);align-items:start}.contact-note{padding:var(--space-8);background:var(--color-ink);color:var(--color-paper)}.contact-note a{color:var(--color-paper)}.form{display:grid;gap:var(--space-5);scroll-margin-top:var(--space-8)}.field{display:grid;gap:var(--space-2)}.field label{font-weight:700}.field input,.field textarea,.field select{width:100%;min-height:48px;padding:.75rem;border:1px solid var(--color-muted);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink)}.field textarea{min-height:10rem;resize:vertical}.hint{font-size:var(--text-sm);color:var(--color-muted)}.field-error{display:block;margin:0;color:#c62828;font-size:var(--text-sm);font-weight:700;line-height:1.5}.field-error[hidden]{display:none}.field input.is-invalid,.field textarea.is-invalid,.field select.is-invalid,.form input[type="checkbox"][aria-invalid="true"]{border-color:#c62828;background:color-mix(in oklch,#c62828 6%,var(--color-paper))}.form-status{margin:0;padding:1rem;border:1px solid #c62828;background:color-mix(in oklch,#c62828 8%,var(--color-paper));color:#c62828;font-size:var(--text-sm);font-weight:700;line-height:1.6}.form-status[hidden]{display:none}
.footer{padding-block:var(--space-12);background:var(--color-ink);color:var(--color-paper)}.footer-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-10)}.footer-brand{font-family:var(--font-display);font-size:var(--text-2xl)}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-6)}.footer-links a{display:flex;align-items:center;min-height:44px}.footer small{display:block;margin-top:var(--space-10);color:var(--color-rule)}
@media(max-width:64rem){.principles{gap:var(--space-4)}.principles li{padding-inline:var(--space-5)}.consult-panel{grid-template-columns:minmax(0,1fr) minmax(21rem,.75fr);gap:var(--space-6)}}
@media(max-width:52rem){.nav{grid-template-columns:minmax(0,1fr) auto;min-height:4.5rem}.brand img{width:min(15rem,65vw)}.menu-btn{display:inline-grid;place-items:center}.nav-links,.nav>.nav-cta{display:none}.nav-links.is-open{display:grid;grid-column:1/-1;justify-content:stretch;gap:0;padding-bottom:var(--space-4)}.nav-links.is-open a{display:flex;align-items:center;min-height:48px;border-top:var(--rule)}.hero-grid,.story-grid,.case-layout,.contact-wrap,.footer-top,.split-hero{grid-template-columns:minmax(0,1fr)}.hero{padding-block:var(--space-10) var(--space-16)}.assurance{margin-top:var(--space-4)}.proof-strip{grid-template-columns:minmax(0,1fr)}.proof+.proof{border-left:0;border-top:var(--rule)}.service-index{grid-template-columns:minmax(0,1fr)}.service-row:nth-child(odd){border-right:0}.sticky-note{position:static}.case-list{grid-template-columns:repeat(2,minmax(0,1fr))}.case-compare{grid-template-columns:repeat(2,minmax(0,1fr))}.region-title{grid-template-columns:minmax(0,1fr)}.area-mark{display:none}.consult-bar{grid-template-columns:minmax(0,1fr)}.split-panel{border-left:0;border-top:var(--rule);min-height:24rem}.summary-box{order:-1}.footer-links{grid-template-columns:minmax(0,1fr)}.top-hero{min-height:42rem}.top-hero-media{object-position:63% center}.top-hero-veil{background:linear-gradient(180deg,var(--color-page) 0%,var(--color-page) 38%,transparent 72%)}.top-hero-inner{align-items:flex-start}.top-hero-copy{width:100%;padding-top:var(--space-4)}.top-hero-copy h1{font-size:clamp(2.35rem,9vw,4rem)}.trust-band-inner{grid-template-columns:minmax(0,1fr)}.trust-point+.trust-point{border-left:0;border-top:var(--rule)}.trust-point{min-height:auto}.principles{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.principles li{grid-template-columns:6rem minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;align-items:center;min-height:0;padding:var(--space-6);text-align:left}.about-principle-icon{grid-row:1/3;width:5.25rem;height:5.25rem;margin:0}.about-principle-icon svg{width:3.5rem;height:3.5rem}.principles h3{margin-bottom:var(--space-2)}.service-ledger{grid-template-rows:repeat(3,25rem)}.service-entry,.service-entry.is-reversed{grid-template-columns:minmax(0,1fr)}.service-entry img,.service-entry.is-reversed img{order:1;height:13rem}.service-entry-copy,.service-entry.is-reversed .service-entry-copy{order:2;justify-content:flex-start;padding:var(--space-8) var(--space-10) var(--space-5) var(--space-5)}.service-arrow{top:calc(13rem + var(--space-8));transform:none}.review-placeholder{flex-basis:calc((100% - 1rem)/2)}.consult-panel{grid-template-columns:minmax(0,1fr)}.consult-copy,.consult-phone{grid-column:1}}
@media(max-width:30rem){.shell,.narrow{width:min(100% - 1.25rem,72rem)}h1{font-size:clamp(2.1rem,13vw,3.4rem)}.section{padding-block:var(--space-12)}.case-list,.case-compare{grid-template-columns:minmax(0,1fr)}.actions{align-items:stretch}.actions .btn{width:100%}.service-row{grid-template-columns:2.4rem minmax(0,1fr)}.service-row>span:last-child{display:none}.symptoms{grid-template-columns:minmax(0,1fr)}.ledger-row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.footer-links{grid-template-columns:minmax(0,1fr)}.top-hero{min-height:39rem}.top-hero-copy .lede br{display:none}.top-about-plaque{min-width:100%;padding-inline:var(--space-8);font-size:var(--text-xl)}.top-about-copy h2{font-size:clamp(1.65rem,8vw,2.15rem);line-height:1.55}.top-about-copy h2 br{display:none}.top-about-intro{font-size:var(--text-base);font-weight:600;text-align:left}.top-about-rule{gap:var(--space-3)}.principles li{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;justify-items:center;padding:var(--space-6) var(--space-5);text-align:center}.about-principle-icon{grid-row:auto;margin-bottom:var(--space-3)}.principles h3{margin-bottom:var(--space-2)}.area-tabs{grid-template-columns:minmax(0,1fr)}.area-tabs button{border-left:var(--rule)}.area-tabs button+button{border-top:0}.review-carousel{grid-template-columns:44px minmax(0,1fr) 44px;gap:var(--space-2)}.carousel-control{width:44px;height:44px}.review-placeholder{flex-basis:100%}.consult-panel{padding:var(--space-5)}.consult-detail{align-items:stretch;flex-direction:column}.consult-button{width:100%}}
@media(max-width:22rem){.service-ledger{grid-template-rows:repeat(3,29rem)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0ms!important;animation-duration:0ms!important}}

/* Shared company and legal links — quiet Ft1 colophon row */
.footer-legal{display:flex;flex-wrap:wrap;gap:0 var(--space-6);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid color-mix(in oklch,var(--color-paper) 24%,transparent)}
.footer-legal a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-sm);text-decoration-color:color-mix(in oklch,var(--color-paper) 45%,transparent);white-space:nowrap}
.footer-legal a:hover,.footer-legal a[aria-current="page"]{text-decoration-color:var(--color-paper)}
.footer-legal+small{margin-top:var(--space-4)}
@media(max-width:30rem){.footer-legal{display:grid;grid-template-columns:minmax(0,1fr);gap:0}}

/* Hallmark · component: price estimator · genre: editorial · theme: inherited clean-white / repair-orange
 * states: default · hover · focus · active · disabled · loading · error · success
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · slop: pass (1–58) · contrast: pass (40–41) · responsive: pass (34, 49–57)
 */
.price-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:baseline;margin:0;padding:var(--space-4) 0;border-bottom:var(--rule)}
.price-summary:first-of-type{border-top:var(--rule)}
.price-summary strong{font-size:var(--text-xl);color:var(--color-accent-dark);white-space:nowrap}
.price-guide-section{background:var(--color-page)}
.price-guide-layout{display:grid;gap:var(--space-10);align-items:start}
.price-guide-intro{min-width:0}
.price-guide-intro>p{max-width:38rem;color:var(--color-muted)}
.price-policy{margin:var(--space-8) 0 0;border-top:2px solid var(--color-ink)}
.price-policy>div{display:grid;grid-template-columns:minmax(7rem,.38fr) minmax(0,1fr);gap:var(--space-4);padding:var(--space-4) 0;border-bottom:var(--rule)}
.price-policy dt{font-weight:700}
.price-policy dd{margin:0;color:var(--color-muted)}
.price-estimator{min-width:0;padding-block:var(--space-6);border-block:2px solid var(--color-ink)}
.price-controls{display:grid;gap:var(--space-5)}
.price-field{display:grid;gap:var(--space-2);min-width:0}
.price-field label{font-weight:700}
.price-select,.estimate-form input,.estimate-form textarea{width:100%;min-width:0;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-rule);border-radius:var(--radius-sm);outline:2px solid transparent;outline-offset:1px;background:var(--color-paper);color:var(--color-ink)}
.price-select{padding-inline-end:var(--space-10)}
.estimate-form textarea{min-height:7.5rem;resize:vertical}
.price-select:focus-visible,.estimate-form input:focus-visible,.estimate-form textarea:focus-visible{outline-color:var(--color-focus);border-color:var(--color-ink)}
.price-select:active,.estimate-form input:active,.estimate-form textarea:active{border-color:var(--color-ink)}
.price-select:disabled,.estimate-form input:disabled,.estimate-form textarea:disabled,.price-estimator-button:disabled,.estimate-submit:disabled{cursor:not-allowed;opacity:.55}
.price-select[aria-invalid="true"],.estimate-form input[aria-invalid="true"],.estimate-form textarea[aria-invalid="true"]{border-color:var(--color-accent-dark);background:var(--color-paper-2)}
.price-select[data-state="loading"],.estimate-form input[data-state="loading"],.estimate-form textarea[data-state="loading"]{cursor:progress}
.price-select[data-state="success"],.estimate-form input[data-state="success"],.estimate-form textarea[data-state="success"]{border-color:var(--color-safe)}
.price-estimator-button{grid-column:1/-1;width:100%;margin-top:var(--space-1)}
.price-estimator-button[data-state="loading"]{cursor:wait;opacity:.72}
.price-estimator-button[data-state="error"]{border-color:var(--color-accent-dark);background:var(--color-accent-dark)}
.price-estimator-button[data-state="success"]{border-color:var(--color-safe);background:var(--color-safe)}
.estimate-error{grid-column:1/-1;min-height:1.5em;margin:0;color:var(--color-accent-dark);font-size:var(--text-sm);font-weight:700}
.estimate-output{display:grid;gap:var(--space-10);margin-top:var(--space-10)}
.estimate-output[hidden]{display:none}
.price-result{padding:var(--space-6);border:1px solid var(--color-safe);border-radius:var(--radius-md);background:var(--color-safe-soft);color:var(--color-ink)}
.price-result h3{margin-bottom:var(--space-3)}
.estimate-selection{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--color-safe)}
.estimate-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-4);font-size:clamp(2rem,7vw,3.5rem);font-weight:800;line-height:1.2;color:var(--color-accent-dark)}
.estimate-price small{font-size:var(--text-base)}
.estimate-notes{display:grid;gap:var(--space-2);margin:var(--space-5) 0 0;padding:var(--space-4) 0 0 var(--space-5);border-top:1px solid var(--color-safe);font-size:var(--text-sm)}
.estimate-contact{display:grid;gap:var(--space-8);padding-top:var(--space-8);border-top:2px solid var(--color-ink)}
.estimate-contact-copy{min-width:0}
.estimate-contact-copy>p{max-width:34rem}
.estimate-phone-label{margin:var(--space-8) 0 var(--space-1);font-weight:700}
.estimate-phone{display:inline-flex;align-items:center;min-height:48px;font-size:clamp(1.8rem,7vw,2.8rem);font-weight:800;line-height:1.2;color:var(--color-accent-dark);text-decoration:none;white-space:nowrap}
.estimate-form{display:grid;gap:var(--space-5);min-width:0}
.estimate-form .field{gap:var(--space-2)}
.estimate-form .field label{font-size:var(--text-sm)}
.estimate-submit{width:100%}
.estimate-submit[data-state="loading"]{cursor:wait;opacity:.72}
.estimate-submit[data-state="error"]{border-color:var(--color-accent-dark);background:var(--color-accent-dark)}
.estimate-submit[data-state="success"]{border-color:var(--color-safe);background:var(--color-safe)}
.estimate-form-status{min-height:1.75em;margin:0;font-size:var(--text-sm);font-weight:700;color:var(--color-safe)}
.estimate-form-status[data-state="error"]{color:var(--color-accent-dark)}
@media(hover:hover) and (pointer:fine){.price-select:hover,.estimate-form input:hover,.estimate-form textarea:hover{background:var(--color-paper-2)}.estimate-phone:hover{color:var(--color-ink);text-decoration:underline}}
@media(min-width:52.01rem){.price-guide-layout{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:var(--space-12)}.price-guide-intro{position:sticky;top:var(--space-6)}.price-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-contact{grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);gap:var(--space-10)}}
@media(max-width:30rem){.price-policy>div{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}.price-estimator{padding-block:var(--space-5)}.estimate-price{gap:var(--space-1)}.price-result{padding:var(--space-5)}.estimate-phone{font-size:clamp(1.65rem,9vw,2.25rem)}}

/* Hallmark · component: price estimate dialog · genre: editorial · theme: inherited clean-white / repair-orange
 * states: default · hover · focus · active · disabled · loading · error · success
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass (40–41)
 */
.price-guide-section{background:var(--color-paper-2)}
.price-estimator--modal{display:grid;gap:var(--space-6);padding-block:var(--space-8);border:0}
.price-estimator-intro{min-width:0}
.price-estimator-intro h2{margin-bottom:var(--space-2);font-size:clamp(1.5rem,3vw,2rem)}
.price-estimator-intro p{margin:0;color:var(--color-muted)}
.price-estimator-action{display:grid;gap:var(--space-2);min-width:0}
.price-estimator--modal .price-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:end}
.price-estimator--modal .price-estimator-button{grid-column:auto;width:100%;min-height:48px;margin:0}
.price-estimator--modal .estimate-error{grid-column:1/-1}
.price-estimator-note{margin:0;color:var(--color-muted);font-size:var(--text-sm)}

.estimate-dialog{position:fixed;z-index:var(--z-modal);inset:0;width:min(calc(100% - var(--space-4)),60rem);height:fit-content;max-height:min(88dvh,48rem);margin:auto;padding:0;overflow:auto;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow);opacity:0;transform:scale(.96)}
.estimate-dialog[open]{animation:estimate-dialog-in var(--dur-dialog) var(--ease-out) forwards}
.estimate-dialog::backdrop{background:color-mix(in oklch,var(--color-overlay) 72%,transparent);animation:estimate-backdrop-in var(--dur-dialog) var(--ease-out) forwards}
.estimate-dialog-shell{position:relative;min-width:0}
.estimate-dialog-close{position:absolute;z-index:var(--z-raised);inset-block-start:var(--space-3);inset-inline-end:var(--space-3);display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font-family:var(--font-body);font-size:1.75rem;line-height:1;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.estimate-dialog-close:active{transform:translateY(1px)}
.estimate-dialog-close:disabled{cursor:not-allowed;opacity:.55}
.estimate-dialog-close[data-state="loading"]{cursor:wait;opacity:.72}
.estimate-dialog-close[data-state="error"]{border-color:var(--color-accent-dark);color:var(--color-accent-dark)}
.estimate-dialog-close[data-state="success"]{border-color:var(--color-safe);color:var(--color-safe)}
.estimate-dialog-header{display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-16) var(--space-5);border-bottom:var(--rule);text-align:center}
.estimate-dialog-header h2{margin-bottom:var(--space-2);font-size:clamp(1.7rem,4vw,2.4rem)}
.estimate-dialog-header p{max-width:42rem;margin:0;color:var(--color-muted)}
.estimate-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr)}
.estimate-dialog-result,.estimate-dialog-contact{min-width:0;padding:var(--space-6)}
.estimate-dialog-result{border-bottom:var(--rule)}
.estimate-dialog-result>h3,.estimate-dialog-contact>h3{font-size:var(--text-lg)}
.estimate-choice{margin:0 0 var(--space-6);border-top:var(--rule)}
.estimate-choice>div{display:grid;grid-template-columns:minmax(7rem,.7fr) minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--rule)}
.estimate-choice dt{font-weight:700}
.estimate-choice dd{margin:0}
.estimate-price-label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:700}
.estimate-dialog .estimate-price{display:flex;flex-wrap:nowrap;align-items:baseline;gap:var(--space-1);margin:0 0 var(--space-2);font-size:clamp(1.45rem,7vw,2.8rem);font-weight:800;line-height:1.2;color:var(--color-accent-dark);white-space:nowrap}
.estimate-dialog .estimate-price small{font-size:var(--text-base)}
.estimate-dialog .estimate-price--compact{font-size:clamp(.75rem,3.5vw,1.4rem)}
.estimate-dialog .estimate-price--compact small{font-size:.7em}
.estimate-caution{margin-bottom:0;color:var(--color-muted);font-size:var(--text-sm)}
.estimate-phone-block{margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--rule)}
.estimate-phone-block h3{margin-bottom:var(--space-2);font-size:var(--text-base)}
.estimate-phone-block p{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm)}
.estimate-dialog .estimate-phone{display:inline-flex;align-items:center;min-height:48px;font-size:clamp(1.55rem,7vw,2.3rem);font-weight:800;line-height:1.2;color:var(--color-accent-dark);text-decoration:none;white-space:nowrap}
.estimate-dialog .estimate-form{display:grid;gap:var(--space-4);min-width:0}
.estimate-dialog .estimate-form .field{gap:var(--space-1)}
.estimate-dialog .estimate-form .field label{font-size:var(--text-sm)}
.estimate-dialog .estimate-form input,.estimate-dialog .estimate-form select,.estimate-dialog .estimate-form textarea{width:100%;min-width:0;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-rule);border-radius:var(--radius-sm);outline:2px solid transparent;outline-offset:1px;background:var(--color-paper);color:var(--color-ink)}
.estimate-dialog .estimate-form textarea{min-height:6rem;resize:vertical}
.estimate-dialog .estimate-form input:focus-visible,.estimate-dialog .estimate-form select:focus-visible,.estimate-dialog .estimate-form textarea:focus-visible{border-color:var(--color-ink);outline-color:var(--color-focus)}
.estimate-dialog .estimate-form input:active,.estimate-dialog .estimate-form select:active,.estimate-dialog .estimate-form textarea:active{border-color:var(--color-ink)}
.estimate-dialog .estimate-form input:disabled,.estimate-dialog .estimate-form select:disabled,.estimate-dialog .estimate-form textarea:disabled{cursor:not-allowed;opacity:.55}
.estimate-dialog .estimate-form input[aria-invalid="true"],.estimate-dialog .estimate-form select[aria-invalid="true"],.estimate-dialog .estimate-form textarea[aria-invalid="true"]{border-color:var(--color-accent-dark);background:var(--color-paper-2)}
.estimate-dialog .estimate-form input[data-state="loading"],.estimate-dialog .estimate-form select[data-state="loading"],.estimate-dialog .estimate-form textarea[data-state="loading"]{cursor:progress}
.estimate-dialog .estimate-form input[data-state="success"],.estimate-dialog .estimate-form select[data-state="success"],.estimate-dialog .estimate-form textarea[data-state="success"]{border-color:var(--color-safe)}
.estimate-dialog .estimate-submit{width:100%;min-height:48px}
.estimate-dialog .estimate-form-status{min-height:1.75em;margin:0;font-size:var(--text-sm);font-weight:700;color:var(--color-safe)}
.estimate-dialog .estimate-form-status[data-state="error"]{color:var(--color-accent-dark)}
.estimate-privacy-note{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-muted);font-size:var(--text-sm)}
.estimate-privacy,.estimate-dialog .estimate-privacy{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-size:var(--text-sm);font-weight:700;line-height:1.5}
.estimate-form input[type="checkbox"],.estimate-dialog .estimate-form input[type="checkbox"]{width:1.15em;min-width:1.15em;height:1.15em;min-height:1.15em;margin-top:.2em;padding:0;border-radius:var(--radius-sm);accent-color:var(--color-teal-dark)}
@media(hover:hover) and (pointer:fine){.estimate-dialog-close:hover{background:var(--color-paper-2)}.estimate-dialog .estimate-phone:hover{color:var(--color-ink);text-decoration:underline}.estimate-dialog .estimate-form input:hover,.estimate-dialog .estimate-form select:hover,.estimate-dialog .estimate-form textarea:hover{background:var(--color-paper-2)}}
@media(min-width:40rem){.price-estimator--modal .price-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.price-estimator--modal .price-estimator-button{grid-column:1/-1}}
@media(min-width:52.01rem){.price-estimator--modal{grid-template-columns:minmax(16rem,.75fr) minmax(0,1.6fr);gap:var(--space-10);align-items:center}.price-estimator--modal .price-controls{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(12rem,.8fr)}.price-estimator--modal .price-estimator-button{grid-column:auto}.estimate-dialog-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}.estimate-dialog-result{border-right:var(--rule);border-bottom:0}.estimate-dialog-result,.estimate-dialog-contact{padding:var(--space-8)}}
@media(max-width:30rem){.estimate-dialog{width:min(calc(100% - var(--space-2)),60rem);max-height:92dvh}.estimate-dialog-header{align-items:flex-start;padding:var(--space-6) var(--space-16) var(--space-4) var(--space-4);text-align:left}.estimate-dialog-result,.estimate-dialog-contact{padding:var(--space-4)}.estimate-choice>div{grid-template-columns:minmax(6.5rem,.8fr) minmax(0,1fr)}.estimate-dialog .estimate-price{font-size:clamp(1.3rem,6.8vw,1.7rem)}.estimate-dialog .estimate-price--compact{font-size:clamp(.65rem,3.2vw,.85rem)}.estimate-dialog .estimate-phone{font-size:clamp(1.4rem,7.5vw,1.9rem)}}
@keyframes estimate-dialog-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes estimate-backdrop-in{from{opacity:0}to{opacity:1}}

/* Hallmark · component: Tokai water-service LP · centred photographic regional hero · warm-paper / repair-orange
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · sections: breadcrumb → hero → region → symptoms → estimate → repairs → process → assurance
 */
.water-lp main{background:var(--color-page)}
.water-lp .masthead{position:relative;z-index:var(--z-sticky)}
.water-breadcrumb-section{border-bottom:var(--rule);background:var(--color-page)}
.water-breadcrumb{min-height:3.5rem;display:flex;align-items:center}
.water-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;padding:0;list-style:none;font-size:var(--text-sm);font-weight:700;color:var(--color-accent-dark)}
.water-breadcrumb li{display:inline-flex;align-items:center;white-space:nowrap}
.water-breadcrumb li+li::before{content:"／";margin-inline-end:var(--space-2);color:var(--color-muted);font-weight:400}
.water-breadcrumb a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.water-hero{position:relative;display:grid;min-height:clamp(31rem,46vw,38rem);isolation:isolate;overflow:hidden;border-bottom:var(--rule);background:var(--color-overlay)}
.water-hero-media{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.water-hero-veil{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,color-mix(in oklch,var(--color-overlay) 14%,transparent) 0%,color-mix(in oklch,var(--color-overlay) 58%,transparent) 50%,color-mix(in oklch,var(--color-overlay) 14%,transparent) 100%),linear-gradient(180deg,color-mix(in oklch,var(--color-overlay) 18%,transparent) 0%,color-mix(in oklch,var(--color-overlay) 30%,transparent) 100%)}
.water-hero-inner{display:flex;align-items:center;justify-content:center;padding-block:var(--space-8) var(--space-12)}
.water-hero-copy{width:min(60rem,100%);min-width:0;margin-inline:auto;text-align:center;color:var(--color-paper)}
.water-hero h1{font-size:clamp(2.35rem,4.2vw,3.8rem);line-height:1.18;letter-spacing:-.045em;text-shadow:0 2px 18px color-mix(in oklch,var(--color-overlay) 72%,transparent)}
.water-hero h1 span{white-space:nowrap}
.water-hero-lede{margin:var(--space-6) auto 0;max-width:56ch;font-size:clamp(1rem,1.55vw,1.2rem);font-weight:700;line-height:1.85;text-shadow:0 2px 12px color-mix(in oklch,var(--color-overlay) 82%,transparent)}
.water-hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-5);margin-top:var(--space-8)}
.water-hero-phone{display:inline-flex;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-5);border:var(--rule);border-color:color-mix(in oklch,var(--color-paper) 72%,transparent);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--color-overlay) 34%,transparent);color:var(--color-paper);text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.water-hero-phone span{font-size:var(--text-sm);font-weight:700}
.water-hero-phone b{font-size:clamp(1.25rem,2.2vw,1.7rem)}
.water-hero-phone:hover{background:color-mix(in oklch,var(--color-overlay) 62%,transparent)}
.water-hero-phone:active{transform:translateY(1px)}

.water-region{background:var(--color-paper-2)}
.water-region-grid{display:grid;grid-template-columns:minmax(18rem,.8fr) minmax(0,1.2fr);gap:var(--space-12);align-items:stretch}
.water-region-mark{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:20rem;padding:var(--space-8);overflow:hidden;border:var(--rule);border-top:4px solid var(--color-accent);background:var(--color-page)}
.water-region-mark::before,.water-region-mark::after{content:"";position:absolute;border:1px solid var(--color-rule);transform:rotate(-14deg)}
.water-region-mark::before{width:11rem;height:15rem;right:2rem;bottom:-4rem}
.water-region-mark::after{width:8rem;height:11rem;right:8rem;bottom:-6rem}
.water-region-mark span{font-family:var(--font-numeric);font-size:clamp(3.3rem,8vw,6.5rem);font-weight:800;line-height:.9;letter-spacing:-.06em;color:var(--color-paper-3)}
.water-region-mark strong{position:relative;font-family:var(--font-display);font-size:var(--text-xl)}
.water-region-copy{align-self:center;min-width:0}
.water-region-copy h2{margin-bottom:var(--space-4)}
.water-region-copy>p:not(.eyebrow){max-width:62ch;color:var(--color-muted)}
.water-prefectures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:var(--space-6) 0;padding:0;border-block:var(--rule);list-style:none}
.water-prefectures li{display:grid;gap:var(--space-1);padding:var(--space-4);text-align:center}
.water-prefectures li+li{border-left:var(--rule)}
.water-prefectures span{font-family:var(--font-numeric);font-size:var(--text-sm);color:var(--color-accent-dark)}
.water-prefectures b{font-family:var(--font-display);font-size:var(--text-lg)}

.water-symptoms-section{background:var(--color-page)}
.water-section-heading{display:flex;flex-direction:column;align-items:center;max-width:52rem;margin:0 auto var(--space-8);text-align:center}
.water-section-heading h2{margin-bottom:var(--space-2)}
.water-section-heading>p:last-child:not(.eyebrow){max-width:62ch;margin:0;color:var(--color-muted)}
.water-symptoms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:var(--rule)}
.water-symptom-photo{grid-column:span 2;margin:0;min-width:0;min-height:18rem;overflow:hidden;border-right:var(--rule);border-bottom:var(--rule)}
.water-symptom-photo img{width:100%;height:100%;object-fit:cover}
.water-symptom{position:relative;min-width:0;min-height:11rem;padding:var(--space-6);border-top:0;background:var(--color-page)}
.water-symptom+.water-symptom{border-left:var(--rule)}
.water-symptom:nth-of-type(n+2){border-top:var(--rule)}
.water-symptom-feature{display:flex;flex-direction:column;justify-content:center;min-height:18rem;border-bottom:var(--rule)}
.water-symptom-no{display:block;margin-bottom:var(--space-4);font-family:var(--font-numeric);font-size:var(--text-sm);color:var(--color-accent-dark)}
.water-symptom h3{font-family:var(--font-display)}
.water-symptom p{max-width:48ch;margin:0;color:var(--color-muted);font-size:var(--text-sm)}

.water-repairs-section{background:var(--color-page)}
.water-repairs-layout{display:grid;grid-template-columns:minmax(14rem,.52fr) minmax(0,1.48fr);border-block:2px solid var(--color-ink)}
.water-repairs-photo{margin:0;min-width:0;overflow:hidden;border-right:var(--rule)}
.water-repairs-photo img{width:100%;height:100%;object-fit:cover;object-position:35% center}
.water-price-estimator{margin-top:var(--space-12);padding-top:var(--space-10);border-top:var(--rule);scroll-margin-top:var(--space-8)}
.water-repair-list{min-width:0}
.water-repair-row{display:grid;grid-template-columns:minmax(13.5rem,15rem) minmax(0,1fr) minmax(7.5rem,8.5rem);gap:var(--space-5);align-items:center;min-width:0;padding:var(--space-5) var(--space-6)}
.water-repair-row+.water-repair-row{border-top:var(--rule)}
.water-repair-row>div{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--space-3);align-items:center;min-width:0}
.water-repair-row span{font-family:var(--font-numeric);font-size:var(--text-sm);color:var(--color-accent-dark)}
.water-repair-row h3{margin:0;font-family:var(--font-display);font-size:var(--text-lg)}
.water-repair-row p{margin:0;color:var(--color-muted);font-size:var(--text-sm);min-width:0}
.water-repair-row strong{color:var(--color-accent-dark);white-space:nowrap;justify-self:end;text-align:right}

.water-process-section{background:var(--color-paper-2)}
.water-process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;border-block:var(--rule);list-style:none}
.water-process li{position:relative;min-width:0;padding:var(--space-6)}
.water-process li+li{border-left:var(--rule)}
.water-process span{display:block;margin-bottom:var(--space-5);font-family:var(--font-numeric);font-size:var(--text-xl);font-weight:800;color:var(--color-accent)}
.water-process h3{font-family:var(--font-display);font-size:var(--text-lg)}
.water-process p{max-width:44ch;margin:0;color:var(--color-muted);font-size:var(--text-sm)}

.water-assurance-section{background:var(--color-page)}
.water-assurance-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:var(--space-12);align-items:center}
.water-assurance-photo{margin:0;min-width:0;overflow:hidden}
.water-assurance-photo img{width:100%;height:27rem;object-fit:cover;object-position:73% center}
.water-assurance-copy{min-width:0}
.water-assurance-copy ul{margin:var(--space-6) 0 0;padding:0;border-top:2px solid var(--color-ink);list-style:none}
.water-assurance-copy li{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:var(--space-4);padding:var(--space-5) 0;border-bottom:var(--rule)}
.water-assurance-copy li>span{font-family:var(--font-numeric);color:var(--color-accent-dark)}
.water-assurance-copy h3{margin-bottom:var(--space-1);font-family:var(--font-display);font-size:var(--text-lg)}
.water-assurance-copy li p{max-width:62ch;margin:0;color:var(--color-muted);font-size:var(--text-sm)}

.water-reviews{background:var(--color-paper-2)}
.water-faq-section{background:var(--color-page)}
.water-faq{padding-block:var(--space-12);border-bottom:var(--rule);background:var(--color-page);color:var(--color-ink)}
.water-faq .water-section-heading--compact{margin-bottom:var(--space-6)}
.water-faq .faq summary{position:relative;padding-inline:var(--space-4) var(--space-12)}
.water-faq .faq summary::before{content:"Q.";margin-inline-end:var(--space-3);color:var(--color-accent-dark);font-weight:900}
.water-faq .faq summary::after{content:"＋";position:absolute;right:var(--space-4);color:var(--color-accent-dark);font-size:var(--text-lg)}
.water-faq .faq details[open] summary::after{content:"−"}
.water-faq .faq p{margin:0;padding:0 var(--space-4) var(--space-5) var(--space-12);max-width:none;color:var(--color-muted)}
.contact-line-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:var(--space-3);padding-inline:var(--space-5);background:#06c755;border-color:#06c755;color:#fff}
.contact-line-button:hover{background:#05b34c;border-color:#05b34c;color:#fff}
@media(max-width:52rem){
  .trust-band{margin-block:2px;box-shadow:0 -2px 0 var(--color-paper-2),0 2px 0 var(--color-paper-2)}
}
@media(max-width:30rem){
  .contact-page .hero h1{font-size:clamp(1.05rem,6.5vw,1.7rem);line-height:1.45}
  .contact-page .contact-h1-break{display:none}
}
.water-lp .consult-section{background:var(--color-paper-2)}
.water-lp .consult-copy h2{text-wrap:balance}
body:has(.estimate-dialog[open]){overflow-y:hidden}
.service-index-section{padding-block:var(--space-6);border-top:var(--rule);background:var(--color-paper-2)}
.service-index-list{display:grid;border:var(--rule);background:var(--color-page)}
.service-index-row{display:grid;grid-template-columns:10.5rem minmax(0,1fr)}
.service-index-row+.service-index-row{border-top:var(--rule)}
.service-index-label{display:flex;align-items:center;margin:0;padding:0 var(--space-4);border-right:var(--rule);background:var(--color-paper);font-size:var(--text-sm);font-weight:800;line-height:1.35}
.service-region-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.service-region-links a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:4.5rem;padding:var(--space-3) var(--space-4);border-right:var(--rule);color:inherit;text-decoration:none}
.service-region-links a:last-child{border-right:0}
.service-region-links a>span:first-child{display:grid;gap:.15rem;min-width:0}
.service-region-links b{font-family:var(--font-display);font-size:var(--text-base);line-height:1.35}
.service-region-links small{color:var(--color-muted);font-size:.75rem;line-height:1.45}
.service-region-links a>span:last-child{color:var(--color-accent-dark);font-weight:800}
.service-region-links a:hover,.service-region-links a:focus-visible{background:var(--color-paper-2);color:var(--color-accent-dark)}
.service-region-links a:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}
@media(max-width:52rem){
  .service-index-row{grid-template-columns:minmax(0,1fr)}
  .service-index-label{min-height:2.75rem;border-right:0;border-bottom:var(--rule)}
  .service-region-links{grid-template-columns:minmax(0,1fr)}
  .service-region-links a{border-right:0;border-top:var(--rule)}
  .service-region-links a:first-child{border-top:0}
}

@media(max-width:64rem){
  .water-region-grid{grid-template-columns:minmax(15rem,.7fr) minmax(0,1.3fr);gap:var(--space-8)}
  .water-repair-row{grid-template-columns:minmax(12rem,13.5rem) minmax(0,1fr) minmax(6.5rem,8rem)}
  .water-repair-row strong{grid-column:auto;justify-self:end;text-align:right}
  .water-assurance-grid{gap:var(--space-8)}
}
@media(max-width:52rem){
  .water-hero{min-height:36rem}
  .water-hero-media{object-position:center}
  .water-hero-veil{background:linear-gradient(90deg,color-mix(in oklch,var(--color-overlay) 26%,transparent) 0%,color-mix(in oklch,var(--color-overlay) 62%,transparent) 50%,color-mix(in oklch,var(--color-overlay) 26%,transparent) 100%),linear-gradient(180deg,color-mix(in oklch,var(--color-overlay) 22%,transparent) 0%,color-mix(in oklch,var(--color-overlay) 42%,transparent) 100%)}
  .water-hero-copy{width:100%}
  .water-region-grid,.water-assurance-grid{grid-template-columns:minmax(0,1fr)}
  .water-region-mark{min-height:14rem}
  .water-symptoms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .water-symptom-photo{grid-column:span 2;border-right:0}
  .water-symptom-feature{min-height:11rem;border-bottom:0}
  .water-symptom:nth-of-type(2){border-top:var(--rule)}
  .water-symptom:nth-of-type(odd){border-left:0}
  .water-repairs-layout{grid-template-columns:minmax(0,1fr)}
  .water-repairs-photo{height:18rem;border-right:0;border-bottom:var(--rule)}
  .water-process{grid-template-columns:repeat(2,minmax(0,1fr))}
  .water-process li:nth-child(3){border-left:0;border-top:var(--rule)}
  .water-process li:nth-child(4){border-top:var(--rule)}
  .water-assurance-photo{order:2}
}
@media(max-width:40rem){
  .water-breadcrumb{min-height:3.25rem}
  .water-breadcrumb ol{gap:var(--space-1);font-size:var(--text-sm)}
  .water-breadcrumb li+li::before{margin-inline-end:var(--space-1)}
  .water-hero{min-height:33rem}
  .water-hero-media{object-position:55% center;opacity:1}
  .water-hero-veil{background:color-mix(in oklch,var(--color-overlay) 58%,transparent)}
  .water-hero-inner{align-items:center;padding-block:var(--space-8) var(--space-12)}
  .water-hero-copy{width:100%}
  .water-hero h1{font-size:clamp(1.45rem,7vw,2.4rem);line-height:1.28}
  .water-hero-lede br{display:none}
  .water-hero-actions{align-items:stretch;flex-direction:column;margin-top:var(--space-6)}
  .water-hero-actions .btn{width:100%}
  .water-hero-phone{justify-content:center;width:100%}
  .water-prefectures{grid-template-columns:repeat(2,minmax(0,1fr))}
  .water-prefectures li:nth-child(3){border-left:0;border-top:var(--rule)}
  .water-prefectures li:nth-child(4){border-top:var(--rule)}
  .water-symptoms{grid-template-columns:minmax(0,1fr)}
  .water-symptom-photo{grid-column:auto;min-height:13rem}
  .water-symptom,.water-symptom-feature{min-height:auto;border-left:0!important;border-top:var(--rule)}
  .water-repair-row{grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-5)}
  .water-repair-row strong{grid-column:auto;justify-self:start;text-align:left}
  .water-process{grid-template-columns:minmax(0,1fr)}
  .water-process li+li{border-left:0;border-top:var(--rule)}
  .water-assurance-photo img{height:20rem}
}

/* Hallmark · macrostructure: Catalogue · component: regional coverage directory
 * theme: inherited warm-paper / repair-orange · motion: state change only
 * approved continuation: the user explicitly approved this Catalogue composition before implementation
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · slop: pass (changed surfaces) · contrast: pass · mobile: pass
 */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.area-page main{background:var(--color-page)}
.area-breadcrumb-section{border-bottom:var(--rule);background:var(--color-page);color:var(--color-ink)}
.area-breadcrumb{min-height:3.5rem;display:flex;align-items:center}
.area-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;padding:0;list-style:none;font-size:var(--text-sm);font-weight:700;color:var(--color-accent-dark)}
.area-breadcrumb li{display:inline-flex;align-items:center;white-space:nowrap}
.area-breadcrumb li+li::before{content:"／";margin-inline-end:var(--space-2);color:var(--color-muted);font-weight:400}
.area-breadcrumb a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}

.coverage-intro{padding-block:var(--space-12) var(--space-16);border-bottom:var(--rule);background:var(--color-page);color:var(--color-ink);text-align:center}
.coverage-intro h1{font-size:clamp(2.6rem,8vw,4.8rem)}
.coverage-lede{margin:var(--space-6) auto var(--space-2);max-width:60ch;font-size:clamp(1rem,2.2vw,1.25rem)}
.coverage-scope{margin:0;color:var(--color-muted);font-size:var(--text-sm);font-weight:700}

.coverage-directory{padding-block:var(--space-12) var(--space-16);background:var(--color-paper-2);color:var(--color-ink)}
.coverage-tabs{display:grid;grid-template-columns:minmax(0,1fr);border:var(--rule);background:var(--color-paper-3)}
.coverage-tabs button{position:relative;min-height:56px;padding:var(--space-3) var(--space-4);border:0;border-bottom:var(--rule);background:var(--color-paper-3);color:var(--color-muted);font-weight:700;cursor:pointer;white-space:nowrap}
.coverage-tabs button:last-child{border-bottom:0}
.coverage-tabs button[aria-selected="true"]{background:var(--color-page);color:var(--color-accent-dark)}
.coverage-tabs button[aria-selected="true"]::before{content:"";position:absolute;inset-inline:0;top:-1px;height:3px;background:var(--color-accent)}
.coverage-tabs button:active{background:var(--color-paper)}
.coverage-tabs button:disabled{opacity:.55;cursor:not-allowed}
.coverage-panel[hidden]{display:none}
.coverage-panel{background:var(--color-page);color:var(--color-ink)}
.coverage-panel-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-6) var(--space-4);border-inline:var(--rule)}
.coverage-panel-heading h2{margin:0;font-size:var(--text-xl)}
.coverage-panel-heading p{margin:0;color:var(--color-muted);font-size:var(--text-sm)}
.prefecture-accordions{border:var(--rule);border-top:0}
.prefecture-accordion{background:var(--color-page);color:var(--color-ink)}
.prefecture-accordion+.prefecture-accordion{border-top:var(--rule)}
.prefecture-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:5.25rem;padding:var(--space-4) var(--space-5);cursor:pointer;list-style:none}
.prefecture-accordion summary::-webkit-details-marker{display:none}
.prefecture-accordion summary>span:first-child{display:flex;align-items:baseline;gap:var(--space-4);min-width:0}
.prefecture-accordion summary strong{font-family:var(--font-display);font-size:clamp(1.25rem,3.5vw,1.65rem);line-height:1.4}
.prefecture-accordion summary small{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap}
.prefecture-accordion[open]>summary{background:var(--color-paper);color:var(--color-accent-dark)}
.prefecture-accordion summary:active{background:var(--color-paper-2)}
.accordion-mark{position:relative;flex:0 0 2.75rem;width:2.75rem;height:2.75rem;border:var(--rule);border-radius:50%;background:var(--color-page)}
.accordion-mark::before,.accordion-mark::after{content:"";position:absolute;top:50%;left:50%;width:1rem;height:1px;background:var(--color-ink);transform:translate(-50%,-50%)}
.accordion-mark::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform var(--dur-fast) var(--ease-out)}
.prefecture-accordion[open] .accordion-mark::after{transform:translate(-50%,-50%) rotate(0deg)}
.prefecture-body{padding:var(--space-2) var(--space-5) var(--space-8);border-top:var(--rule);background:var(--color-page);color:var(--color-ink)}
.municipality-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--space-8)}
.municipality-group{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:var(--space-3);align-items:start;padding-block:var(--space-4);border-bottom:var(--rule)}
.municipality-group h3{margin:0;color:var(--color-accent-dark);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.75;white-space:nowrap}
.municipality-group p{margin:0;color:var(--color-ink);font-size:var(--text-sm);line-height:2}
.coverage-note{margin:var(--space-5) 0 0;padding-inline:var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}

.coverage-help{padding-block:var(--space-10);border-top:var(--rule);background:var(--color-page);color:var(--color-ink)}
.coverage-help-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:center}
.coverage-help h2{margin-bottom:var(--space-3);font-size:clamp(1.55rem,4vw,2.25rem)}
.coverage-help p{max-width:62ch;margin:0;color:var(--color-muted)}
.coverage-help-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.coverage-help-phone{display:flex;flex-direction:column;justify-content:center;min-height:48px;color:var(--color-accent-dark);text-decoration:none;white-space:nowrap}
.coverage-help-phone span{font-size:var(--text-sm);font-weight:700}
.coverage-help-phone strong{font-size:clamp(1.35rem,5vw,1.75rem);line-height:1.25}

.water-region-compact{background:var(--color-paper);color:var(--color-ink)}
.water-region-compact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:center}
.water-region-compact-copy h2{margin-bottom:var(--space-3)}
.water-region-compact-copy p{max-width:56ch;margin:0;color:var(--color-muted)}
.water-region-compact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;border:var(--rule);list-style:none}
.water-region-compact-list li{display:flex;align-items:center;justify-content:center;min-height:4.25rem;padding:var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}
.water-region-compact-list li:nth-child(even){border-left:var(--rule)}
.water-region-compact-list li:nth-child(n+3){border-top:var(--rule)}
.water-region-compact-action{display:flex;align-items:center;min-height:48px;color:var(--color-accent-dark);font-weight:700;white-space:nowrap}
.btn:disabled,.btn[aria-disabled="true"],.menu-btn:disabled{opacity:.55;cursor:not-allowed}
.footer :focus-visible,.section-dark :focus-visible,.contact-note :focus-visible,.water-hero :focus-visible{outline-color:var(--color-focus-inverse)}

@media(hover:hover) and (pointer:fine){
  .coverage-tabs button:hover{background:var(--color-paper)}
  .prefecture-accordion summary:hover{background:var(--color-paper)}
  .coverage-help-phone:hover,.water-region-compact-action:hover{color:var(--color-ink)}
}
@media(min-width:30rem){
  .coverage-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .coverage-tabs button{border-right:var(--rule);border-bottom:0}
  .coverage-tabs button:last-child{border-right:0}
}
@media(min-width:40rem){
  .municipality-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .water-region-compact-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .water-region-compact-list li:nth-child(n){border-top:0}
  .water-region-compact-list li+li{border-left:var(--rule)}
  .water-region-compact-list--5{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(min-width:52.01rem){
  .coverage-intro{padding-block:var(--space-12) var(--space-20)}
  .coverage-directory{padding-block:var(--space-16) var(--space-20)}
  .coverage-panel-heading{padding-inline:var(--space-8)}
  .prefecture-accordion summary{padding-inline:var(--space-8)}
  .prefecture-body{padding-inline:var(--space-8)}
  .coverage-help-inner{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-10)}
  .coverage-help-actions{justify-content:flex-end}
  .water-region-compact-grid{grid-template-columns:minmax(15rem,.85fr) minmax(22rem,1.15fr) auto;gap:var(--space-8)}
}
@media(max-width:22rem){
  .coverage-help-actions{align-items:stretch;flex-direction:column}
  .coverage-help-actions .btn,.coverage-help-phone{width:100%}
  .prefecture-accordion summary>span:first-child{align-items:flex-start;flex-direction:column;gap:0}
  .water-region-compact-action{white-space:normal}
}

/* Hallmark · component: top-page centred photographic hero · genre: editorial · theme: inherited clean-white / repair-orange
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass (40–41) · responsive: pass (34, 49–57) · axis: mobile art direction
 */
.top-page .top-hero{min-height:clamp(29rem,40vw,36rem)}
.top-page .top-hero-picture{position:absolute;z-index:-2;inset:0}
.top-page .top-hero-picture .top-hero-media{position:static;width:100%;height:100%;object-fit:cover;object-position:center}
.top-page .top-hero-inner{justify-content:center;padding-block:var(--space-8) var(--space-10)}
.top-page .top-hero-copy{width:min(67rem,92%);text-align:center}
.top-page .top-hero-copy h1{font-size:clamp(2.25rem,3.45vw,3.125rem);line-height:1.28;letter-spacing:.035em;color:var(--color-teal-dark);text-shadow:0 1px 0 var(--color-page),0 0 1.125rem color-mix(in oklch,var(--color-page) 72%,transparent)}
.top-page .top-hero-copy h1 span{display:inline}
.top-page .top-hero-copy h1 span+span::before{content:" "}
.top-page .top-hero-copy .lede{max-width:none;margin-top:var(--space-4);font-size:clamp(1.05rem,1.55vw,1.2rem);font-weight:700;color:var(--color-teal-dark);text-shadow:0 1px 0 var(--color-page),0 0 1rem color-mix(in oklch,var(--color-page) 82%,transparent)}
.top-page .top-hero-copy .actions{justify-content:center;margin-top:var(--space-6)}
.top-page .top-hero-copy .btn{min-width:14rem;min-height:3.375rem;box-shadow:var(--shadow)}
.top-page .top-hero-secondary{border-color:var(--color-teal);background:color-mix(in oklch,var(--color-page) 92%,transparent);color:var(--color-teal-dark)}
.top-page .top-hero-secondary:hover{border-color:var(--color-teal-dark);background:var(--color-teal-dark);color:var(--color-page)}
@media(max-width:60rem){
  .top-page .top-hero{display:grid;min-height:clamp(22rem,60vw,30rem)}
  .top-page .top-hero-inner{position:relative;z-index:1;align-items:center;justify-content:center;padding-block:var(--space-8) var(--space-10)}
  .top-page .top-hero-copy{width:min(100%,42rem);padding-top:0;text-align:center}
  .top-page .top-hero-copy h1{font-size:clamp(2rem,4.3vw,2.8rem);line-height:1.3;text-shadow:0 1px 0 var(--color-page),0 0 1.125rem color-mix(in oklch,var(--color-page) 78%,transparent)}
  .top-page .top-hero-copy .lede{text-shadow:0 1px 0 var(--color-page),0 0 1rem color-mix(in oklch,var(--color-page) 88%,transparent)}
  .top-page .top-hero-copy .actions{justify-content:center}
}
.top-page .top-about.section{padding-block:var(--space-10) var(--space-12)}
.top-page .top-about-plaque{min-height:4rem;margin-bottom:var(--space-6);padding:var(--space-3) var(--space-8);font-size:clamp(1.25rem,2.4vw,1.75rem)}
.top-page .top-about-copy h2{font-size:clamp(1.85rem,3.15vw,3rem);line-height:1.35}
.top-page .top-about-rule{margin-block:var(--space-4)}
.top-page .top-about-rule span{width:.75rem;height:.75rem}
.top-page .top-about-intro{line-height:1.75}
.top-page .principles{gap:var(--space-6);margin-top:var(--space-8)}
.top-page .principles li{min-height:18rem;padding:var(--space-6) var(--space-5)}
.top-page .about-principle-icon{width:5.75rem;height:5.75rem;margin-bottom:var(--space-3)}
.top-page .about-principle-icon svg{width:3.75rem;height:3.75rem}
.top-page .principles h3{font-size:clamp(1.35rem,2vw,1.75rem)}
@media(max-width:52rem){
  .top-page .top-hero-copy h1{font-size:clamp(2rem,6vw,3.1rem);line-height:1.35}
  .top-page .top-hero-copy h1 span{display:block}
  .top-page .top-hero-copy h1 span+span::before{content:none}
  .top-page .top-about.section{padding-block:var(--space-8) var(--space-10)}
  .top-page .top-about-plaque{margin-bottom:var(--space-5)}
  .top-page .principles{margin-top:var(--space-6)}
  .top-page .principles li{grid-template-columns:5rem minmax(0,1fr);column-gap:var(--space-3);min-height:0;padding:var(--space-4) var(--space-5)}
  .top-page .about-principle-icon{width:4.5rem;height:4.5rem}
  .top-page .about-principle-icon svg{width:3rem;height:3rem}
}
@media(max-width:30rem){
  .top-page .top-hero{min-height:22rem}
  .top-page .top-hero-inner{padding-block:var(--space-6) var(--space-8)}
  .top-page .top-hero-copy h1{font-size:clamp(1.5rem,7vw,2rem);line-height:1.42;letter-spacing:.02em}
  .top-page .top-hero-copy .lede{font-size:var(--text-base);line-height:1.7}
  .top-page .top-hero-copy .btn{width:100%;min-width:0}
  .top-page .top-about.section{padding-block:var(--space-8) var(--space-10)}
  .top-page .top-about-plaque{min-height:4rem;padding-inline:var(--space-6);font-size:clamp(1.1rem,6vw,1.35rem);white-space:nowrap}
  .top-page .top-about-copy h2{font-size:clamp(1.45rem,7.2vw,1.85rem);line-height:1.45}
  .top-page .top-about-intro{line-height:1.7}
  .top-page .principles li{grid-template-columns:4.25rem minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;min-height:0;padding:var(--space-4);text-align:left}
  .top-page .about-principle-icon{grid-row:1/3;width:4rem;height:4rem;margin:0}
  .top-page .about-principle-icon svg{width:2.75rem;height:2.75rem}
  .top-page .principles h3{font-size:1.25rem}
  .top-page .principles p{font-size:var(--text-sm);line-height:1.65}
}

/* Hallmark · component: service selector + region dialog · genre: editorial · theme: inherited local-repair
 * states: default · hover · focus · active · disabled · loading · error · success
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · one shared modal avoids repeated panels; region remains a deliberate second decision
 */
.top-page .service-heading{display:grid;justify-items:center;gap:var(--space-2)}
.top-page .service-heading h2{margin-bottom:0}
.top-page .service-heading p{max-width:34rem;margin:0;color:var(--color-muted);text-align:center}
.top-page .service-heading+.service-ledger{margin-top:var(--space-8)}
.service-entry-button{width:100%;padding:0;border:0;border-radius:0;appearance:none;font-family:var(--font-body);text-align:start;cursor:pointer}
.service-entry-button:focus-visible{position:relative;z-index:var(--z-raised);outline:3px solid var(--color-focus);outline-offset:-3px}
.service-entry-button:active{transform:translateY(1px)}
.service-entry-button:disabled,.service-entry-button[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
.service-entry-button[data-state="loading"]{cursor:progress;opacity:.72}
.service-entry-button[data-state="error"]{box-shadow:inset 0 0 0 2px var(--color-accent-dark)}
.service-entry-button[data-state="success"]{box-shadow:inset 0 0 0 2px var(--color-safe)}
.service-entry-button[data-state="loading"] .service-arrow::before{content:"確認中 ";font-size:var(--text-sm)}
.service-entry-button[data-state="error"] .service-arrow::before{content:"再試行 ";font-size:var(--text-sm)}
.service-entry-button[data-state="success"] .service-arrow::before{content:"選択済み ";font-size:var(--text-sm)}

.region-dialog{position:fixed;z-index:var(--z-modal);inset:0;width:min(calc(100% - var(--space-4)),42rem);height:fit-content;max-height:min(86dvh,40rem);margin:auto;padding:0;overflow:auto;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-page);color:var(--color-ink);box-shadow:var(--shadow);opacity:0;transform:scale(.96)}
.region-dialog[open]{animation:region-dialog-in var(--dur-dialog) var(--ease-out) forwards}
.region-dialog::backdrop{background:color-mix(in oklch,var(--color-overlay) 72%,transparent);animation:region-backdrop-in var(--dur-dialog) var(--ease-out) forwards}
.region-dialog-panel{display:grid;gap:var(--space-5);padding:var(--space-6)}
.region-dialog-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:start;padding-bottom:var(--space-5);border-bottom:var(--rule)}
.region-dialog-service{margin:0 0 var(--space-2);color:var(--color-accent-dark);font-size:var(--text-sm);font-weight:700}
.region-dialog-head h2{max-width:16em;margin:0;font-size:clamp(1.45rem,5vw,2rem);line-height:1.4;letter-spacing:-.02em}
.region-dialog-close{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:1.75rem;line-height:1;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.region-dialog-close:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.region-dialog-close:active{transform:translateY(1px)}
.region-dialog-close:disabled,.region-dialog-close[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
.region-dialog-close[data-state="loading"]{cursor:progress;opacity:.72}
.region-dialog-close[data-state="error"]{border-color:var(--color-accent-dark)}
.region-dialog-close[data-state="success"]{border-color:var(--color-safe)}
.region-dialog-panel>#region-dialog-description{margin:0;color:var(--color-muted)}
.region-choice-list{display:grid;border-top:2px solid var(--color-ink)}
.region-choice-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;min-height:5rem;padding:var(--space-4) var(--space-2);border-bottom:var(--rule);color:var(--color-ink);text-decoration:none;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.region-choice-list a:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}
.region-choice-list a:active{transform:translateY(1px)}
.region-choice-list a[aria-disabled="true"]{pointer-events:none;cursor:not-allowed;opacity:.55}
.region-choice-list a[data-state="loading"]{cursor:progress;opacity:.72}
.region-choice-list a[data-state="error"]{box-shadow:inset 0 0 0 2px var(--color-accent-dark)}
.region-choice-list a[data-state="success"]{box-shadow:inset 0 0 0 2px var(--color-safe)}
.region-choice-list a>span:first-child{display:grid;gap:var(--space-1);min-width:0}
.region-choice-list b{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.35;white-space:nowrap}
.region-choice-list small{color:var(--color-muted);font-size:var(--text-sm);line-height:1.6}
.region-choice-list a>span:last-child{color:var(--color-accent-dark);font-size:var(--text-xl);font-weight:700;white-space:nowrap}
.region-choice-list a[data-state="loading"]>span:last-child::before{content:"移動中 ";font-family:var(--font-body);font-size:var(--text-sm)}
.region-choice-list a[data-state="error"]>span:last-child::before{content:"再試行 ";font-family:var(--font-body);font-size:var(--text-sm)}
.region-choice-list a[data-state="success"]>span:last-child::before{content:"選択済み ";font-family:var(--font-body);font-size:var(--text-sm)}
@media(hover:hover) and (pointer:fine){
  .service-entry-button:hover .service-entry-copy{background:var(--color-paper)}
  .region-dialog-close:hover{background:var(--color-paper-2)}
  .region-choice-list a:hover{background:var(--color-paper-2)}
}
@media(min-width:40rem){
  .region-dialog-panel{padding:var(--space-8)}
  .region-choice-list a{padding-inline:var(--space-4)}
}
@media(max-width:30rem){
  .top-page .service-heading p{font-size:var(--text-sm)}
  .top-page .service-ledger{grid-template-rows:repeat(3,23rem)}
  .top-page .service-entry-copy b{font-size:1.1rem;white-space:nowrap}
  .region-dialog-panel{gap:var(--space-4);padding:var(--space-5)}
  .region-dialog-head{gap:var(--space-2);padding-bottom:var(--space-4)}
  .region-dialog-head h2{font-size:1.35rem}
  .region-choice-list a{min-height:4.75rem}
  .region-choice-list b{font-size:1.2rem}
}
@keyframes region-dialog-in{to{opacity:1;transform:scale(1)}}
@keyframes region-backdrop-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  .region-dialog{transform:none}
  .region-dialog[open],.region-dialog::backdrop{animation-duration:var(--dur-fast)}
  .service-entry-button:active,.region-dialog-close:active,.region-choice-list a:active{transform:none}
}
/* CMS customer reviews */
.review-track,.heater-review-track{align-items:flex-start}
.review-card{flex:0 0 calc((100% - 2rem)/3);width:calc((100% - 2rem)/3);max-width:calc((100% - 2rem)/3);min-width:0;box-sizing:border-box;padding:var(--space-6);border:var(--rule);background:var(--color-page);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-3);align-self:flex-start}
.review-card .review-stars,.heater-review-card .review-stars{color:var(--color-accent);letter-spacing:.05em}
.review-card b,.heater-review-card b{display:block;font-size:var(--text-sm)}
.review-card p,.heater-review-card p,.review-body-text{margin:0;font-size:var(--text-sm);line-height:1.7;color:var(--color-ink)}
.review-body{display:grid;gap:var(--space-2);min-width:0;text-align:left}
.review-body-text{text-align:left}
.review-body-toggle{justify-self:start;margin:0;padding:0;border:0;background:none;color:var(--color-accent-dark,#0b6b63);font:inherit;font-size:var(--text-sm);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:.15em}
.review-body-toggle:hover{opacity:.85}
.review-meta,.review-updated,.review-count,.review-rating-line{font-size:var(--text-xs);color:var(--color-muted);font-weight:500}
.review-rating-line{margin:var(--space-2) 0 0;text-align:center}
.review-rating-line strong{font-size:inherit;font-weight:700;color:var(--color-ink)}
.review-updated{margin-top:var(--space-2);text-align:center}
.reviews-heading{text-align:center}
.reviews-heading .review-updated{margin-bottom:0}
.reviews-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6)}
.reviews-meta .carousel-toggle,.reviews-meta .heater-review-toggle{margin-right:auto}
.reviews-meta .text-link{margin-left:auto}
.reviews-meta--center{justify-content:center;margin-top:var(--space-6)}
.heater-reviews-meta{margin-top:var(--space-4)}
.review-summary .review-updated{margin-top:var(--space-2)}
.carousel-toggle{justify-self:start}
.top-hero-lede-break{display:none}
@media(max-width:48rem){
  .top-hero-lede-break{display:inline}
  .review-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}
  .review-meta-sep{display:none}
}
@media(max-width:52rem){.review-card{flex-basis:calc((100% - 1rem)/2);width:calc((100% - 1rem)/2);max-width:calc((100% - 1rem)/2)}}
@media(max-width:30rem){.review-card{flex-basis:100%;width:100%;max-width:100%}}
.review-card-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}
.review-avatar,.review-person--photo{display:inline-grid;place-items:center;width:3rem;height:3rem;flex-shrink:0;overflow:hidden;border-radius:9999px;border:1px solid var(--color-rule,#ddd);background:var(--color-paper-2,#f3f3f3)}
.review-avatar img,.review-person--photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.review-avatar--initial{font-size:var(--text-sm);font-weight:700;color:var(--color-muted)}
.reform-voice-author{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);text-align:left}
.reform-voice-name{margin:0;font-weight:700}
.heater-review-card .review-person--photo{padding:0}
.reform-voice .review-body-text{margin:0 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);line-height:1.6;text-align:left}