/* Hot Water Systems layout applied around the original service-page content. */
.service-template { --brand-rgb:7 139 255; --brand-deep:#031d38; background:#fff; }
.service-template h1,.service-template h2,.service-template h3 { font-family:"Plus Jakarta Sans",Arial,sans-serif; }
.service-template .text-custom { color:#078bff; }
.service-template > section:first-child { position:relative; background:linear-gradient(90deg,#009eda,#0578c6); }
.service-template > section:first-child p { margin:0; }
.service-header { position:relative;z-index:50;background:linear-gradient(90deg,#031c37,#062a4a);border:0; }
.service-header > nav { min-height:88px; }
.service-header a,.service-header button { color:#fff; }
.service-header .services-dropdown > div { background:#05253e; }
.service-header [data-mobile-menu] { background:#031d38; }
.service-template .service-hero,.service-template .hw-hero-inner { min-height:720px; }
.service-template .hw-hero-inner { padding:50px 0 90px; }
.service-hero-layout { position:relative;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start; }
.service-template .hw-hero-copy { width:100%;max-width:680px; }
.service-template .hw-hero h1 { font-size:clamp(42px,4.5vw,67px);line-height:1.02;letter-spacing:-2.5px;overflow-wrap:normal; }
.service-template .hw-hero-copy > p { margin:20px 0 24px;font-size:15px;line-height:1.65;color:#fff; }
.service-badges { margin:0 0 24px;justify-content:flex-start;gap:28px; }
.service-badges > div { margin:0;align-items:center; }
.service-badges p { margin:0;color:#fff; }
.service-badges img { max-height:44px;width:auto; }
.service-template .hw-actions { flex-wrap:wrap;justify-content:flex-start;margin:24px 0 22px; }
.service-template .hw-actions a { padding:13px 20px;font-size:13px;text-align:center;white-space:normal;line-height:1.45; }
.service-system-list { display:flex;flex-wrap:wrap;gap:12px 20px; }
.service-system-list > div { display:flex;align-items:center;gap:8px;font-size:12px;color:#fff; }
.service-system-list svg { width:18px;height:18px;color:#078bff; }
.service-help-column { padding-top:42px;display:flex;flex-direction:column;align-items:center;gap:18px; }
.service-template .service-help-card { position:relative;inset:auto;width:100%;max-width:none;padding:28px 25px 18px; }
.service-help-content > p:first-child { font-size:20px;font-weight:700;line-height:1.3; }
.service-help-content > div:first-of-type p { font-size:12px;color:#cfdeea;margin-bottom:9px; }
.service-help-content svg { flex-shrink:0; }
.service-help-content .svc-tile { border-radius:6px; }
.service-help-content .svc-tile svg { width:28px;height:28px; }
.service-template .service-help-quote { display:flex;width:100%;margin-top:14px;font-size:13px; }
.service-help-content > p:last-child { margin-bottom:0;font-size:10px;color:#bdcad7; }
.service-template .service-van { position:relative;inset:auto;width:430px;max-width:calc(100% + 70px);max-height:none;transform:none;object-fit:contain; }
.service-template .hw-hero-wave { height:84px; }
.service-template .hw-signs { padding:64px 0; }
.service-template .hw-heading { max-width:none; }
.service-template .hw-heading h2 { margin:0 0 12px;color:#071426; }
.service-template .hw-heading p { margin:0 auto;color:#63738a;font-size:15px;line-height:1.7; }
.service-template .hw-heading.light h2 { color:#fff; }
.service-template .hw-heading.light p { color:#c6d6e4; }
.service-template .service-card-grid { margin:32px 0 0;max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.service-content-card { min-width:0;padding:25px 30px;border:1px solid #edf4fa;border-radius:11px;background:#f7faff;box-shadow:0 10px 28px #0f4b8012;text-align:left; }
.service-template .service-content-card h3 { font-size:17px;line-height:1.35;color:#071426;margin:0 0 10px; }
.service-template .service-content-card p { font-size:14px;line-height:1.65;color:#586a82;margin:0; }
.service-template .service-content-card > p:has(+h3) { color:#078bff;font-size:32px;margin-bottom:14px; }
.service-template .hw-expertise .service-content-card { background:rgba(11,48,79,.73);border-color:#278bd32b;box-shadow:0 10px 24px #0002; }
.service-template .hw-expertise .service-content-card h3 { color:#fff; }
.service-template .hw-expertise .service-content-card p { color:#cfdae4; }
.service-content-card img { max-width:100%; }
.service-sign-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:34px 0 0;padding:0;list-style:none; }
.service-sign { position:relative;text-align:center;padding:24px 20px;border-right:1px solid #d7e4ef;color:#63738a;font-size:14px;line-height:1.6; }
.service-sign:last-child { border:0; }
.service-sign::before { content:"";display:block;width:24px;height:24px;margin:0 auto 18px;border:3px solid #ff512f;border-radius:50%;box-shadow:inset 0 0 0 5px #fff;background:#ff512f; }
.service-sign span { display:block;margin-bottom:8px;color:#071426;line-height:1.4;font-weight:700; }
.service-template .service-faq-list { max-width:850px;margin:0 auto;border:1px solid #cfdae6;border-radius:6px;overflow:hidden; }
.service-template .faq-item { margin:0;padding:0;border-top:1px solid #cfdae6; }
.service-template .faq-item:first-child { border:0; }
.service-template .faq-button { padding:17px 20px;align-items:center; }
.service-template .faq-button span { font-size:14px;line-height:1.5; }
.service-template .faq-answer { margin:0;padding:0 20px 18px; }
.service-template .faq-answer p { color:#607187;font-size:14px;line-height:1.7;margin:0; }
.service-template .hw-coast-cta { padding:40px 0; }
.service-template .hw-coast-cta h2 { font-size:26px;line-height:1.3;margin:0 0 12px; }
.service-template .hw-coast-cta p { font-size:14px;line-height:1.7; }
.service-template .hw-coast-cta a { margin-top:8px;font-size:13px;white-space:normal;text-align:center; }
.service-template .service-contact { border:0; }
.service-contact > div { padding:0;margin:auto;width:min(1240px,calc(100% - 48px));max-width:none; }
.service-contact > div > div { padding:0;background:transparent; }
.service-template .service-contact-card { width:100%;display:grid;grid-template-columns:minmax(0,370px) minmax(0,1fr);border-radius:9px; }
.service-template .hw-contact-info { padding:32px 35px;grid-column:auto; }
.service-template .hw-contact-info > :is(span,svg) { display:none; }
.service-template .hw-contact-info h3 { color:#fff;font-size:20px; }
.service-template .hw-contact-info p { margin-top:18px;font-size:13px; }
.service-template .hw-contact-info dd { font-size:12px;overflow-wrap:anywhere; }
.service-template .hw-contact-info a,.service-template .hw-contact-info span { font-size:12px;overflow-wrap:anywhere;margin:0; }
.service-template .service-form-column { padding:28px 38px;grid-column:auto; }
.service-template .service-form-column h3 { font-size:20px; }
.service-template .hw-contact-card form { display:block;padding:0;max-width:none; }
.service-template .hw-contact-card form > *+* { margin-top:12px; }
.service-template .hw-contact-card input:not([type=checkbox]),.service-template .hw-contact-card textarea { font-size:14px;padding:12px 13px; }
.service-template .hw-contact-card label.sr-only { position:absolute; }
.service-template .hw-contact-card label:not(.sr-only) { font-size:11px;line-height:1.55; }
.service-template .hw-contact-card button { font-size:14px;min-height:48px; }
.service-template .service-footer { background:#031d38;color:#d3e2ee; }
.service-template .service-footer :is(h3,a,p) { color:inherit; }
.service-template .service-footer h3 { color:#fff; }
.service-template .service-footer a:hover { color:#069fe9; }
.service-template .service-footer [class*="border"] { border-color:#ffffff20; }
@media(max-width:1100px){
 .service-hero-layout { grid-template-columns:minmax(0,1fr) 310px;gap:36px; }
 .service-template .hw-hero h1 { font-size:50px; }
 .service-template .service-help-card { padding:24px 20px; }
 .service-template .service-van { max-width:100%; }
}
@media(max-width:1024px){
 .service-template .service-van { display:none; }
 .service-template .hw-hero,.service-template .hw-hero-inner { min-height:0; }
 .service-template .hw-hero-inner { padding:42px 0 78px; }
 .service-hero-layout { grid-template-columns:1fr;gap:30px; }
 .service-template .hw-hero-copy { max-width:none; }
 .service-help-column { padding:0;align-items:flex-start; }
 .service-template .service-help-card { max-width:600px; }
 .service-template .service-contact-card { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
}
@media(max-width:760px){
 .service-template .hw-hero h1 { font-size:clamp(36px,9vw,50px);letter-spacing:-1.6px; }
 .service-template .hw-hero-wave { display:block;position:absolute;bottom:-2px;width:100%;height:45px; }
 .service-template .service-card-grid { grid-template-columns:1fr; }
 .service-template .hw-signs,.service-template .hw-expertise,.service-template .hw-why { padding:44px 0; }
 .service-template .hw-heading h2 { font-size:28px; }
 .service-template .hw-heading p { font-size:14px; }
 .service-sign-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .service-sign { padding:20px 14px;border-bottom:1px solid #d7e4ef; }
 .service-sign:nth-child(2n) { border-right:0; }
 .service-template .service-contact-card { grid-template-columns:1fr; }
 .service-template .service-contact { padding:36px 0 54px; }
 .service-template .hw-contact-info,.service-template .service-form-column { padding:28px 24px; }
 .service-badges { gap:16px; }
}
@media(max-width:480px){
 .service-template .hw-actions { align-items:stretch; }
 .service-template .hw-actions a { width:100%; }
 .service-sign-grid { grid-template-columns:1fr; }
 .service-sign { border-right:0; }
 .service-content-card { padding:24px 20px; }
 .service-template .service-system-list { gap:12px; }
}
/* Resolve legacy utility rules without changing the original copy or controls. */
.service-template { --gc-navy:#031d38; }
.service-template .service-header { position:relative;top:auto;background:linear-gradient(90deg,#031c37,#062a4a); }
.service-template h1 { font-weight:800; }
.service-template h2,.service-template h3 { font-weight:700; }
.service-template .service-help-content { display:block; }
.service-template .service-help-card .service-help-quote { display:flex;flex-direction:row;justify-content:center;padding:13px 18px;color:#fff;background:linear-gradient(100deg,#ff8a18,#ff2638);border-radius:999px; }
.service-template .faq-item { padding:0!important; }
