/* Shared layout and navigation, from small phones to wide desktops. */
:root{--muted:#626b60;--page-gutter:clamp(20px,4vw,56px)}
html{scroll-padding-top:110px}
.wrap,.header{width:min(1240px,calc(100% - var(--page-gutter)*2))}
.site-header{position:sticky;top:0;z-index:20;background:rgba(247,246,242,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.header{height:92px;border:0;gap:28px;position:relative}
.header .brand{flex-shrink:0;gap:13px}
.header .brand-mark{width:42px;height:42px;line-height:41px;font-size:30px;border-radius:12px}
.header .brand-name{font-size:26px}
.header .brand-name>span{font-size:11px;letter-spacing:1.8px}
.header .main-navigation{display:flex;align-items:center;gap:8px}
.main-navigation>a{display:flex;align-items:center;min-height:46px;padding:12px 17px;font-size:13px;font-weight:600;border-radius:8px;white-space:nowrap;transition:background .2s,color .2s}
.main-navigation>a:not(.button):hover,.main-navigation>a[aria-current="location"]:not(.button){background:#e9ede4;color:var(--green)}
.main-navigation .nav-contact{margin-left:17px;padding-inline:21px;gap:23px;color:white;background:var(--green)}
.main-navigation .nav-contact:hover{background:#253b2e}
.nav-location,.menu-toggle{display:none}
.skip-link{position:fixed;top:10px;left:20px;z-index:30;background:var(--green);color:white;padding:14px 20px;border-radius:6px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
main:focus{outline:none}
.hero{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);padding-block:clamp(44px,6vw,85px)}
.hero-copy{min-width:0}
h1{font-size:clamp(43px,4.8vw,67px);letter-spacing:-.055em}
.hero-copy>p{font-size:16px;max-width:480px}
.hero-actions{flex-wrap:wrap;gap:12px 24px}
.hero-actions .text-link{min-height:44px}
.hero-note{font-size:12px;line-height:1.7;align-items:flex-start}
.eyebrow{line-height:1.7}.status-dot{flex-shrink:0}
.section{padding-block:clamp(48px,6vw,80px)}
.section-heading{gap:30px}.section-heading>p{flex-shrink:0;font-size:14px}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card{padding:26px;min-width:0}.service-card h3{font-size:20px}.service-card p,.steps p{font-size:14px}.card-bottom{font-size:11px}
.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.about{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,85px)}
.about-copy>p{font-size:15px}
.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(30px,6vw,85px)}
.contact-layout>div{min-width:0}.contact-layout>div>.text-link{display:inline-block;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.contact-note{font-size:13px}.contact-note svg{flex-shrink:0}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
label{font-size:13px}.form-intro{font-size:14px;line-height:1.7}
input,select,textarea{min-width:0;font-size:16px;min-height:46px}
.privacy-note{font-size:12px}.button{min-height:46px}
.repair-slideshow{aspect-ratio:1.08}
.repair-slides{position:absolute;inset:0}.repair-slide{width:100%}
.repair-slide figcaption{bottom:90px}.repair-slide figcaption>span:last-child{font-size:11px;line-height:1.6;display:block}
.slideshow-controls button{min-width:44px;min-height:44px}.slideshow-controls .slide-pause{font-size:12px}.slide-counter{font-size:12px}
footer{gap:24px;flex-wrap:wrap}footer>span{display:block;line-height:1.6}footer small{font-size:11px;line-height:1.7}
@media(max-width:980px){
  .header{height:auto;min-height:80px;flex-wrap:wrap;gap:0;justify-content:space-between}
  .header .brand{min-height:80px}
  .header .brand-name{font-size:24px}
  .menu-toggle:not([hidden]){display:flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:10px 14px;border:1px solid #d4dacf;border-radius:8px;background:transparent;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}
  .menu-icon{position:relative;width:18px;height:16px}.menu-icon i{position:absolute;left:0;right:0;height:2px;background:currentColor;top:4px;transition:transform .2s}.menu-icon i+ i{top:11px}
  .menu-toggle[aria-expanded="true"] .menu-icon i{top:7px;transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-icon i+i{transform:rotate(-45deg)}
  .header .main-navigation{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:12px 0 20px;border-top:1px solid var(--line);max-height:calc(100dvh - 100px);overflow-y:auto}
  .header .main-navigation>a{display:flex;font-size:15px;min-height:48px;padding:13px 16px}
  .main-navigation .nav-contact{margin:6px 0 0;justify-content:space-between}
  .nav-location{display:flex;align-items:center;justify-content:center;gap:9px;font-size:11px;color:var(--muted);padding:14px 0 0;line-height:1.7}
  .header.nav-ready .main-navigation:not(.is-open){display:none}
  .hero{gap:28px}.hero h1{font-size:clamp(40px,5.3vw,52px)}
  .hero-copy>p{font-size:15px}.service-card{padding:21px}.service-card h3{font-size:18px}
  .form-row{grid-template-columns:1fr;gap:0}.form-panel{padding:26px}
}
@media(min-width:681px) and (max-width:800px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .repair-slideshow{aspect-ratio:.83}.repair-slide figcaption{left:21px;right:21px}.repair-slide figcaption strong{font-size:21px}
  .service-grid{gap:14px}.service-card{padding:20px 16px}.service-card h3{font-size:17px}
  .contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
}
@media(max-width:680px){
  html{scroll-padding-top:94px}
  .header .brand-mark{width:36px;height:36px;line-height:35px;font-size:27px}.header .brand{gap:10px}.header .brand-name{font-size:23px}.header .brand-name>span{font-size:10px}
  .hero{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:36px 42px}.hero-copy{max-width:none}.hero h1{font-size:clamp(42px,9.5vw,60px);margin-top:20px}
  .hero-copy>p{font-size:16px}.hero .eyebrow{font-size:9px;letter-spacing:1.2px}.hero-actions .button{font-size:14px;padding:14px 20px;gap:20px}.hero-actions .text-link{font-size:13px}.hero-note{font-size:11px}
  .repair-slideshow{aspect-ratio:1.1}.repair-slide figcaption{bottom:88px;left:22px;right:22px}.repair-slide figcaption strong{font-size:23px}.repair-slide figcaption>span:last-child{font-size:11px}
  .promise-strip>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px;padding-block:20px}.promise-strip span{font-size:11px;gap:8px}
  .section-heading{display:block}.section-heading>p{max-width:none;margin-top:18px}.section-heading>p br{display:none}
  h2{font-size:clamp(28px,6.4vw,36px);letter-spacing:-1.2px}
  .service-grid,.steps,.about,.contact-layout{grid-template-columns:minmax(0,1fr)}
  .service-card{padding:25px}.service-card h3{font-size:20px}.service-card p{font-size:14px}.card-bottom{font-size:12px}
  .steps{gap:28px}.steps article{position:relative;padding-left:55px}.step-number{position:absolute;left:0;top:0}.steps p{max-width:none}.steps h3{font-size:18px}
  .about{gap:30px}.about-tile{min-height:290px}.contact-layout{gap:30px}.contact h2{font-size:44px}.contact-layout>div>p{font-size:15px}
  .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-panel{padding:25px}
  footer{display:grid;grid-template-columns:1fr;gap:18px;padding-block:30px}footer small{max-width:none;text-align:left;padding:0}footer>span{font-size:12px}
}
@media(max-width:420px){
  .form-row{grid-template-columns:1fr;gap:0}.form-panel{padding:21px}.hero-actions{gap:8px 16px}.hero-actions .button{padding-inline:16px;font-size:13px}
  .repair-slideshow{aspect-ratio:.93}.repair-slide figcaption strong{font-size:21px}.hero-note{font-size:10px}.promise-strip span{font-size:10px}
  .header .brand-name{font-size:21px}.menu-toggle:not([hidden]){gap:9px;padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){.main-navigation>a,.menu-icon i{transition:none}}
