/* Shared refinements and service pages. Original artwork and colour palette retained. */
html{scroll-padding-top:110px}
.home-modern{overflow-x:clip}
.hydro-crop>img,.hydro-logo>img,.hydro-picto>img{position:static;width:100%;height:100%;max-width:100%;inset:auto;object-fit:contain;transform:none}
.hydro-logo{aspect-ratio:960/155}
.hydro-picto-ballon>img{width:116%;height:116%;max-width:none;margin:-8%}
.brand-hitachi img,.brand-saunier img{position:static;width:100%;height:auto;max-width:100%;inset:auto}
.v2-primary-button,.v2-quote-button,.v2-floating-call{animation:none}
.v2-status i::after,.v2-scroll-hint i::after{animation-iteration-count:3}
.js .reveal{opacity:1;transform:none}
.v2-hero h1{font-size:clamp(43px,4.5vw,66px);line-height:1.04;letter-spacing:-.05em}
.v2-hero-grid{gap:48px;padding-top:68px;padding-bottom:85px}
.v2-hero-lead strong{font-weight:650;color:var(--v2-ink)}
.v2-hero-visual{min-height:480px}
.v2-hero-visual>img{height:480px}
.review-date{display:block;margin-top:3px;font-size:10px;color:#617080;font-weight:400}
.v2-hero-meta small,.v2-contact-form>small,.v2-brand-note,.v2-price-disclaimer{color:#536776}
.v2-kicker,.v2-eyebrow{color:#076b9f}
.v2-quote-button,.v2-form-submit{background:linear-gradient(135deg,#0877b1,#075e8e);color:white}
.v2-service-card>a{line-height:1.45}
.v2-contact-list strong{overflow-wrap:anywhere}
.v2-footer a{display:block;padding-block:3px;overflow-wrap:anywhere}
.v2-footer p{line-height:1.7}
.v2-footer-grid{grid-template-columns:1.2fr 1fr 1.2fr 1fr;gap:32px}
.v2-footer-grid>div:last-child{grid-column:auto}
.v2-footer-title{color:white}
.v2-contact-form .honey{display:none}
.form-feedback{border-radius:10px;padding:15px;font-weight:600;font-size:15px;line-height:1.5;background:#eef7f2;color:#20573e}
.form-feedback[data-state="error"]{background:#fff0ee;color:#95291d}
.form-feedback[data-state="pending"]{background:#edf6fa;color:#234f67}
.v2-contact-form .form-fallback{font-size:14px;line-height:1.6;margin:0}
.form-fallback a,.legal-content a,.response-page p a{color:#096da4;text-decoration:underline;text-underline-offset:3px}
.form-feedback[hidden],.form-fallback[hidden]{display:none}
button:disabled{cursor:wait;opacity:.75;transform:none}
.new-request{border:1px solid #bad0dc;border-radius:9px;padding:12px;background:white;color:#175675;cursor:pointer}
.maintenance-band{padding:52px 0;background:#eef5f8;border-block:1px solid #e0e9ee}
.maintenance-band .container{display:flex;gap:48px;align-items:center;justify-content:space-between}
.maintenance-band h2{margin:9px 0 12px;max-width:650px;font-size:clamp(27px,3vw,39px);line-height:1.15;letter-spacing:-.035em;color:var(--v2-ink)}
.maintenance-band p{max-width:670px;margin:0;color:#475d6d}
.maintenance-actions{display:grid;gap:20px;flex-shrink:0}
.maintenance-actions .text-link{font-size:14px}
.v2-local{padding-block:72px}
.v2-local h2{font-size:clamp(31px,4vw,46px);line-height:1.1;letter-spacing:-.04em;margin:15px 0 35px;color:white}
.region-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}
.v2-local a{white-space:normal}
.v2-thermo-grid>*,.v2-story-grid>*,.v2-contact-grid>*,.region-grid>*{min-width:0}
.region-grid>a{display:block;padding:26px;border:1px solid #3a5366;border-radius:16px;transition:background .2s;background:#102c40}
.region-grid>a:hover{background:#17384d}
.region-grid h3{display:flex;justify-content:space-between;color:white;margin:0;font-size:23px}
.region-grid p{font-weight:400;font-size:16px;line-height:1.6;margin:15px 0}
.region-grid>a>span{color:#b8e5fa;font-size:14px}
.v2-local>.container>p a{text-decoration:underline}
.breadcrumbs{padding-top:30px;font-size:13px;color:#536b7d}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px 12px;padding:0;margin:0}
.breadcrumbs li+li:before{content:'›';margin-right:12px;color:#8293a0}
.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.detail-hero{display:grid;grid-template-columns:1.12fr 1fr;gap:58px;align-items:center;padding-block:45px 65px}
.detail-hero h1{font-size:clamp(38px,4.1vw,59px);line-height:1.06;letter-spacing:-.045em;color:var(--v2-ink);margin:12px 0 24px}
.detail-hero .v2-eyebrow{line-height:1.7;margin-bottom:0}
.detail-lead{font-size:18px;line-height:1.65;color:#465c6b;margin:0 0 28px}
.detail-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.detail-actions .text-link{font-size:15px}
.detail-visual{margin:0;border-radius:20px;overflow:hidden;background:#f2f5f6}
.detail-visual img{width:100%;height:390px;object-fit:cover}
.detail-visual figcaption{padding:14px 20px;font-size:13px;color:#4a5f6d}
.detail-intro-note{padding:38px;background:#edf4f8;border:1px solid #dfebf1;border-radius:22px}
.detail-intro-note h2{font-size:29px;line-height:1.18;letter-spacing:-.03em;color:var(--v2-ink);margin:5px 0 18px}
.detail-intro-note p{color:#4a6070}
.detail-intro-note a{font-size:19px;font-weight:750;color:#076da6}
.page-summary{border-block:1px solid #dce5ea;display:flex;gap:8px 22px;flex-wrap:wrap;padding-block:18px;margin-bottom:54px}
.page-summary a{padding:5px 0;font-size:13px;font-weight:650;color:#416278;text-decoration:underline;text-underline-offset:4px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:68px;align-items:start;padding-bottom:80px}
.detail-content section+section{margin-top:54px}
.detail-content h2{font-size:clamp(26px,2.6vw,35px);line-height:1.2;letter-spacing:-.025em;color:var(--v2-ink);margin:0 0 20px}
.detail-content h3{font-size:19px;line-height:1.3;color:var(--v2-ink);margin:0 0 12px}
.detail-content p{line-height:1.8;margin:14px 0;color:#42596a}
.detail-content a{color:#086ca2;text-decoration:underline;text-underline-offset:3px}
.detail-content ul,.detail-content ol{padding-left:23px}
.detail-content li{margin-bottom:12px;color:#42596a}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-block:22px}
.choice-grid article{background:#f4f7f9;border-radius:14px;padding:24px}
.choice-grid article p{font-size:15px;margin:0}
.choice-grid article p+p{margin-top:12px}
.choice-grid article:last-child:nth-child(odd){grid-column:1/-1}
.detail-aside{position:sticky;top:116px;padding:28px;border:1px solid #dce7ec;background:#f7f9fa;border-radius:18px}
.detail-aside h2{margin:7px 0 17px;font-size:27px;line-height:1.15;letter-spacing:-.025em;color:var(--v2-ink)}
.detail-aside h3{font-size:17px;line-height:1.35;margin:25px 0 10px}
.detail-aside p{font-size:14px;line-height:1.7;color:#4c6270}
.detail-aside .btn{width:100%;font-size:14px;margin-top:7px}
.aside-hours{border-top:1px solid #dce7ec;padding-top:18px;margin-top:24px}
.faq-list{border-top:1px solid #dce5ea}
.faq-list details{border-bottom:1px solid #dce5ea}
.faq-list summary{cursor:pointer;font-weight:650;color:#173449;padding:20px 30px 20px 0;line-height:1.5}
.faq-list details p{margin:0 0 22px;padding-right:20px}
.related-section{padding:60px 0;background:#edf4f8}
.related-section h2{color:var(--v2-ink);font-size:31px;line-height:1.2;margin:10px 0 28px;letter-spacing:-.03em}
.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.related-grid a{display:flex;justify-content:space-between;align-items:center;gap:16px;background:white;border:1px solid #dbe6ec;padding:20px 23px;border-radius:12px;color:#173f56;font-weight:650}
.related-grid a:hover{border-color:#1983b9}
.regional-links{margin:25px 0 0;font-size:15px}
.regional-links a{text-decoration:underline;text-underline-offset:3px}
.legal-content{max-width:850px;padding-block:55px 80px}
.legal-content h1,.response-page h1{color:var(--v2-ink);font-size:clamp(32px,4vw,52px);line-height:1.12;letter-spacing:-.04em}
.legal-content h2{margin-top:35px;font-size:24px;color:var(--v2-ink)}
.response-page{max-width:900px;padding-block:75px 95px}
.response-page p{max-width:650px;margin-bottom:28px}
.response-page .related-grid{margin:30px 0}
.mobile-contact{display:none}
@media(min-width:941px){.v2-brand{flex-basis:290px;width:290px}.v2-main-nav{gap:22px}}
@media(max-width:1120px){.v2-footer-grid{grid-template-columns:1fr 1fr}.detail-layout{gap:38px}.detail-hero{gap:35px}.v2-main-nav{gap:15px}.v2-nav-wrap{gap:20px}}
@media(max-width:940px){
 .v2-hero-grid{padding-block:48px 68px;gap:42px}.v2-hero-visual{min-height:0}.v2-hero-visual>img{height:420px}
 .v2-story-visual>div{right:20px;left:20px}
 .detail-hero{grid-template-columns:1fr;gap:35px}.detail-hero h1{max-width:780px}.detail-visual img{height:390px}.detail-hero{padding-block:34px 45px}
 .detail-layout{grid-template-columns:1fr;gap:40px}.detail-aside{position:static}.detail-aside .btn{max-width:310px}
 .maintenance-band .container{align-items:flex-start;flex-direction:column;gap:28px}.maintenance-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px}
 .v2-main-nav.open{max-height:calc(100dvh - 180px);overflow:auto}
 .mobile-contact{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid #dce5ea;box-shadow:0 -5px 22px #071b2d0a;z-index:101;padding:9px 15px calc(9px + env(safe-area-inset-bottom));gap:10px}
 .mobile-contact a{display:flex;flex-direction:column;justify-content:center;text-align:center;font-size:14px;font-weight:750;line-height:1.4;min-height:46px;border-radius:10px;color:#153a50;background:#eaf2f6;padding:7px}
 .mobile-contact a:last-child{color:white;background:#0874ac}.mobile-contact a span{display:block;font-size:10px;font-weight:500}
 body{padding-bottom:76px}.v2-footer{padding-bottom:30px}html{scroll-padding-top:92px;scroll-padding-bottom:85px}
}
@media(max-width:680px){
 .home-modern .container{width:calc(100% - 36px)}.v2-nav-wrap{min-height:77px;gap:10px}.v2-brand{width:235px;flex-basis:235px}
 .v2-hero h1{font-size:clamp(36px,9.7vw,52px);line-height:1.06}.v2-hero-grid{padding-top:34px}.v2-hero-lead{margin-top:21px}
 .v2-status-row{gap:7px}.v2-status{font-size:10px;padding:8px 10px;letter-spacing:.03em}
 .v2-hero-meta{gap:10px}.v2-hero-meta small{font-size:11px}.v2-hero-meta strong{font-size:14px}.review-date{font-size:9px}
 .v2-hero-visual>img{height:330px}.v2-hero-card{width:100px;padding:10px}.v2-hero-visual figcaption{font-size:12px}
 .v2-service-rail{display:grid;grid-template-columns:1fr;grid-auto-flow:row;grid-auto-columns:auto;width:100%;gap:16px;overflow:visible;margin:0;padding:0;scroll-snap-type:none}
 .v2-service-card,.v2-service-card:nth-child(n){min-height:0;padding:24px;display:grid;grid-template-columns:58px 1fr;column-gap:18px;grid-auto-flow:row;position:relative}
 .v2-service-card .hydro-picto{width:58px;height:58px;grid-row:1/3}.v2-service-number{display:none}.v2-service-card h3{font-size:22px;margin:3px 0 8px;grid-column:2}.v2-service-card p{font-size:14px;margin:0;grid-column:2}.v2-service-card>a{position:static;margin:16px 0 0;grid-column:2;font-size:13px}
 .v2-section{padding-block:64px}.maintenance-band{padding-block:38px}.maintenance-actions{display:grid;gap:19px}.region-grid{grid-template-columns:1fr;gap:16px}.region-grid>a{padding:23px}.region-grid h3{font-size:22px}
 .v2-heading h2,.v2-thermo-copy h2,.v2-story-copy h2,.v2-contact-copy h2,.v2-local h2{font-size:clamp(30px,8vw,39px);overflow-wrap:break-word}
 .v2-footer-grid{grid-template-columns:1fr;gap:28px}.v2-footer-brand .hydro-logo-plaque{width:260px}.v2-footer a{font-size:14px;padding-block:5px}
 .detail-hero h1{font-size:38px}.detail-lead{font-size:16px}.detail-visual img{height:300px}.detail-intro-note{padding:27px}.detail-intro-note h2{font-size:25px}.detail-hero .v2-eyebrow{font-size:11px}
 .detail-actions{gap:20px}.page-summary{margin-bottom:36px;gap:5px 16px}.page-summary a{font-size:12px}.choice-grid{grid-template-columns:1fr}.choice-grid article{padding:22px}.detail-content section+section{margin-top:40px}
 .detail-content h2{font-size:28px}.detail-content p{font-size:16px;line-height:1.75}.detail-layout{padding-bottom:55px}.related-grid{grid-template-columns:1fr}.related-section h2{font-size:28px}
 .legal-content{padding-top:35px}.response-page{padding-block:48px 60px}.v2-contact-form{padding:26px 22px}
}
@media(max-width:380px){.v2-brand{width:211px;flex-basis:211px}.v2-hero h1{font-size:35px}.v2-hero-meta{gap:9px}.v2-hero-meta>i{display:none}.v2-status{font-size:11px}.detail-hero h1{font-size:34px}.mobile-contact{padding-inline:10px;gap:8px}.mobile-contact a{font-size:12px}.v2-service-card{padding:22px 18px;column-gap:12px}.v2-service-card h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
