:root{--slate:#527997}
body{font-size:16px}
[hidden]{display:none!important}
.skip-link{position:absolute;left:12px;top:-100px;background:#fff;padding:12px;z-index:100}
.skip-link:focus{top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ad790e;outline-offset:4px}
main,[id]{scroll-margin-top:140px}
.site-header{gap:22px;padding-inline:clamp(20px,4vw,64px)}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{width:230px;height:auto;max-height:66px}
.site-header nav{margin-left:auto;gap:20px}
.header-actions{display:flex;gap:16px;align-items:center;flex-shrink:0}
.translate-button{font:700 14px/1.4 inherit;text-decoration:underline;text-underline-offset:4px;min-height:44px;display:flex;align-items:center}
.nav-cta{font-size:14px;font-weight:750;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:44px}
.menu{font-size:14px;min-height:44px}
.hero{min-height:580px;grid-template-columns:minmax(0,1.5fr) minmax(250px,.65fr);padding-block:68px;gap:5vw;background:#fff}
.hero h1{font-size:clamp(42px,4.8vw,68px);line-height:1.08;letter-spacing:-.035em}
.hero-mark{aspect-ratio:auto;text-align:center;padding:36px 24px;border-block:1px solid var(--line);background:#fff}
.hero-mark img{display:block;position:static;width:min(100%,330px);height:auto;object-fit:contain;margin:auto;filter:none}
.hero-mark p{font-size:16px;color:#52687a;margin:26px 0 0}
.page-hero{padding:44px clamp(22px,7vw,110px) 32px}
.page-hero h1{font-size:clamp(34px,4.2vw,54px);line-height:1.12;max-width:1000px}
.page-hero>p:last-child{margin-bottom:0;max-width:850px}
.eyebrow,.trust-row{font-size:14px}
.section,.service-detail{padding-block:64px}
.compact{padding-block:48px}
.section-head{margin-bottom:30px}
.service-cards h2{font-size:30px;line-height:1.2;margin:14px 0}
.service-cards h2 a{text-decoration:none}
.service-cards h2 a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.service-number{color:#8b640f;font-size:14px;font-weight:800}
.service-aside h2{font-size:30px}
.service-aside h3{font-size:22px;margin:30px 0 12px}
.service-aside .button{display:flex}
.owner-note{padding:32px;border-top:3px solid var(--gold);background:var(--mist)}
.owner-note li{margin:14px 0}
.contact-info{margin-top:36px;max-width:800px}
.contact-info h2{font-size:32px}
.contact-info p{font-size:17px}
.policy-document{padding-top:36px}
.policy-document>h2{font:700 30px/1.2 Georgia,serif;color:var(--navy);margin:36px 0 16px}
.checklist-group{border:1px solid var(--line);margin:16px 0;background:#fff}
summary{cursor:pointer;color:var(--navy);font-weight:750;font-size:17px;padding:16px 0}
.checklist-group summary{padding:18px 22px;background:var(--mist)}
.checklist-group ol{margin:20px 24px 24px 58px;padding-left:0}
.checklist-group li{padding-left:6px;margin:10px 0}
.table-scroll{overflow-x:auto;margin:24px 0;max-width:100%;border:1px solid var(--line)}
.price-table{border-collapse:collapse;width:100%;min-width:780px;font-size:15px;text-align:left}
.price-table caption{text-align:left;padding:14px 18px;font-weight:700;color:var(--navy)}
.price-table th,.price-table td{padding:16px;border:1px solid var(--line);vertical-align:top}
.price-table thead{background:var(--navy);color:white}
.price-table tbody tr:nth-child(even){background:var(--mist)}
.price-table th[scope=row]{font-weight:650}
.addon-table{min-width:580px}
.addon-table td:nth-child(2){white-space:nowrap}
.pricing-section h2{font-size:38px;margin-top:22px}
.pricing-section h3{font:700 26px/1.2 Georgia,serif;color:var(--navy);margin-top:36px}
.pricing-section>p{max-width:1040px}
.booking-layout{gap:30px;padding-top:40px;grid-template-columns:minmax(0,1fr) 350px}
.booking-layout fieldset{min-width:0;padding:24px}
.form-grid{margin-bottom:18px}
.form-grid>*,.form-stack{min-width:0}
.booking-layout label,.fine-print,.field-help,.availability-note,.error{font-size:14px;line-height:1.6}
.booking-layout input,.booking-layout select,.booking-layout textarea{font-size:16px;max-width:100%}
.check-label{display:flex!important;align-items:flex-start;gap:10px;padding:13px;background:var(--mist)}
.booking-layout .check-label input{width:20px;height:20px;flex:0 0 20px;margin:3px 0 0}
.check-grid label{display:flex}
.check-grid label span{min-width:0}
.acceptance label{display:flex;line-height:1.6}
.acceptance input{width:20px;height:20px;flex:0 0 20px}
.acceptance a{text-decoration:underline}
.estimate-card{top:112px;padding:24px}
.estimate-card .fine-print,.estimate-card #estimate span{color:#d2dfe9;font-size:14px;line-height:1.6}
.estimate-card #estimate strong{font-size:23px;line-height:1.3}
.estimate-line{font-size:15px;align-items:flex-start}
.estimate-line strong{white-space:nowrap}
.estimate-card .button{font:800 16px/1.4 inherit}
.submission-status:not(:empty){padding:16px;margin-top:14px;border:1px solid #d7a22a;background:#fff;color:#082a52;font-size:15px}
.submission-status.failure{border-color:#a33423}
button:disabled{cursor:wait;opacity:.7}
.honeypot{position:absolute;left:-10000px;overflow:hidden;width:1px;height:1px}
footer{font-size:14px}
footer p{margin:6px 0}
footer img{height:auto}
.email-link{overflow-wrap:anywhere}
@media(max-width:1150px){.site-header{gap:14px}.site-header nav{gap:12px}.brand img{width:205px}.header-actions{gap:10px}.site-header nav a{font-size:13px}.booking-layout{padding-inline:30px}}
@media(max-width:1000px){
 .site-header{height:84px}.menu{display:inline-block}.site-header nav{display:none;position:absolute;top:84px;left:0;right:0;background:white;padding:22px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}
 .site-header nav.open{display:flex}.site-header nav a{font-size:16px;padding:8px}.header-actions{margin-left:auto}.translate-button{width:auto;text-align:center}
 .booking-layout{grid-template-columns:1fr;max-width:820px;margin:auto}.estimate-card{position:static;grid-row:auto}
 .hero{grid-template-columns:minmax(0,1fr) 250px;gap:32px}
}
@media(max-width:700px){
 .hero{grid-template-columns:1fr;padding:42px 24px;gap:30px;min-height:0}.hero h1{font-size:44px}.hero-mark{width:min(100%,330px);padding:22px;margin:auto}.hero-mark img{width:240px}.hero-mark p{margin-top:16px}
 .lead{font-size:18px}.trust-row{margin-top:28px}.page-grid,.service-detail-grid,.home-paths,.about-card{grid-template-columns:1fr}
 .home-paths article{padding:28px}.section h2{font-size:34px}.service-cards h2{font-size:29px}
 .booking-layout{padding:28px 18px 56px}.booking-layout fieldset{padding:20px 16px}.booking-layout legend{font-size:23px}.form-grid,.check-grid{grid-template-columns:1fr}
 .span-2{grid-column:auto}.estimate-line{font-size:16px}.estimate-card{padding:24px}
 .policy-document{padding-inline:22px}.price-table th,.price-table td{padding:13px}.section,.service-detail{padding-inline:22px}
}
@media(max-width:560px){
 .site-header{height:auto;min-height:116px;flex-wrap:wrap;justify-content:center;padding:12px 16px;gap:9px}
 .brand{width:100%;justify-content:center}.brand img{width:185px;max-height:48px}
 .header-actions{margin:0;width:100%;justify-content:center;gap:18px}.site-header nav{top:100%;margin:0}
 .hero-actions{flex-direction:column;align-items:flex-start}.hero h1{font-size:39px}
 .page-hero{padding-top:30px}.page-hero h1{font-size:36px}
 footer{padding:30px 22px}.contact-grid strong{font-size:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Booking controls use a lighter, consistent reading weight. */
.booking-layout label,.booking-layout legend,.booking-layout summary,.booking-layout input,.booking-layout select,.booking-layout textarea,.booking-layout .eyebrow,.booking-layout #estimate strong,.booking-layout .estimate-line strong{font-weight:400}
.booking-layout .button{font-weight:500}
.appliance-grid{align-items:end}
.booking-layout .appliance-grid .check-label{margin:0;min-height:54px;align-items:center;border:1px solid var(--line);border-radius:4px;box-sizing:border-box}
.booking-layout .appliance-grid .check-label input{margin:0}
.booking-layout .availability-note.error,.booking-layout .error{color:#b42318}
.booking-layout .no-times{background:#fff1f0;border-left:4px solid #b42318;padding:14px 16px}
#schedule-request-wrap{margin-block:18px}
#regular-schedule{margin-top:18px}
.one-time-callout{background:var(--mist)}

.promotion-banner{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;background:#082e4d;color:white;padding:1.25rem clamp(1rem,5vw,5rem);border-bottom:4px solid #cda13b}.promotion-banner div{flex:1 1 22rem}.promotion-banner strong{font-size:1.25rem}.promotion-banner p{margin:.4rem 0;font-size:1rem}.promotion-banner a:not(.button){color:white;font-size:1rem}#offer-preview{border-left:3px solid #cda13b;padding-left:1rem;color:#183b53}
