/* Shared page system and the phone-first refinement.
   Loaded after style.css so the original desktop identity is retained. */
body{font-size:16px}
.header{background:var(--paper)}
.form-card>.eyebrow{color:var(--red-dark);font-size:12px;letter-spacing:1px}
.navigation nav a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.navigation nav a[aria-current="page"]{color:var(--red-dark);text-decoration:underline;text-underline-offset:7px}
.navigation nav .mobile-home-link,.navigation nav .mobile-nav-book{display:none}
.hero-description{font-size:16px}
.hero h1 span{display:block}
.hero .microcopy{font-size:12px}
.button{font-size:16px;min-height:52px}
.button-small{font-size:14px}
.text-link{font-size:15px;min-height:44px}
.section-heading>p,.service-card p,.section-copy,.steps p,.pricing>div>p:not(.eyebrow),.area-grid>div>p:not(.eyebrow),.faq-grid>div>p:not(.eyebrow),details p,.booking-copy>p:not(.eyebrow),.form-card>p{font-size:16px;line-height:1.7}
.service-card a{font-size:15px;min-height:49px;gap:16px}
.service-card .card-book{color:var(--red-dark);border-top:0;padding-top:9px;min-height:44px}
.service-note,.area-panel p:not(.area-panel-label),.booking-expect p{font-size:14px;line-height:1.65}
.card-top,.area-panel-label,.form-heading .eyebrow,.family-label{font-size:11px}
.area-tags span{font-size:14px}
.area-panel small{font-size:13px}
.area-detail-link{display:flex;align-items:center;justify-content:space-between;font-size:15px;min-height:48px;margin-top:13px;text-decoration:none;border-top:1px solid #ffffff4a;padding-top:10px}
.area-detail-link:hover{text-decoration:underline}
.faq-list summary{font-size:16px;line-height:1.5}
.family{gap:30px}
.family p{font-size:15px}
.family-label{max-width:140px}
.footer-top>p,.footer-top .text-link{font-size:14px}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:36px;padding-top:30px;border-top:1px solid #424944}
.footer-links h2{font:700 14px/1.4 var(--body);letter-spacing:0;margin-bottom:12px;color:white}
.footer-links a{display:flex;align-items:center;min-height:44px;color:#bdc6bf;text-decoration:none;font-size:14px}
.footer-links a:hover{color:white;text-decoration:underline;text-underline-offset:5px}
.footer-bottom{font-size:12px;align-items:center;gap:20px;margin-top:25px;padding-top:23px;border-top:1px solid #424944}
.footer-bottom a{min-height:44px;display:flex;align-items:center;gap:10px}
.inner-hero{background:#eaece7;border-bottom:1px solid var(--line);padding:27px 0 55px}
.breadcrumbs{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#606761;font-size:13px;margin-bottom:35px}
.breadcrumbs a{min-height:44px;display:flex;align-items:center;text-underline-offset:4px}
.inner-hero h1{max-width:900px;font-size:clamp(46px,5vw,68px)}
.inner-intro{max-width:780px;margin:25px 0;font-size:18px;line-height:1.7;color:#4f5953}
.inner-hero .button{margin-top:3px}
.content-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:85px}
.content-grid h2{max-width:490px}
.prose p{font-size:16px;line-height:1.8;color:#505a53}
.prose h2+p{margin-top:25px}
.prose a,.section-follow a,.note-panel a,.legal-content a{text-underline-offset:4px}
.check-list{list-style:none;padding:0;margin:0 0 25px}
.check-list li{position:relative;padding:11px 0 11px 29px;border-bottom:1px solid #d6dbd3;font-size:16px;line-height:1.6}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--red-dark);font-weight:700}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:38px}
.info-grid article{border-top:2px solid var(--red);padding-top:24px}
.info-grid h3{font-size:31px;margin-bottom:15px}
.info-grid p{font-size:16px;color:#505a53;line-height:1.75}
.info-grid a{display:flex;justify-content:space-between;gap:15px;align-items:center;min-height:48px;font-size:15px;font-weight:700;text-underline-offset:4px}
.number{display:block;font:600 35px var(--heading);color:var(--red-dark);margin-bottom:15px}
.note-panel{border:1px solid #d5dcd2;border-left:4px solid var(--red);background:#eaece7;padding:32px 38px;margin-bottom:65px}
.note-panel h2{font-size:35px;margin-bottom:18px}
.note-panel p{font-size:16px;max-width:880px;line-height:1.8;margin-bottom:0}
.bottom-cta{background:var(--red-dark);color:white;padding:55px 0}
.bottom-cta .container{display:flex;justify-content:space-between;align-items:center;gap:40px}
.bottom-cta h2{font-size:46px;max-width:740px}
.bottom-cta p:not(.eyebrow){font-size:16px;margin:19px 0 0;max-width:630px;color:#ffe9e3}
.bottom-cta .button{flex-shrink:0}
.coverage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px;margin-top:35px}
.coverage-grid article{background:white;border:1px solid var(--line);padding:30px;display:flex;flex-direction:column}
.coverage-grid h3{font-size:31px;margin-bottom:20px}
.coverage-grid p{font-size:16px;line-height:1.75;color:#505a53}
.coverage-grid a{font-size:15px;display:flex;align-items:center;gap:15px;justify-content:space-between;min-height:50px;margin-top:auto;font-weight:600;text-underline-offset:4px}
.section-follow{font-size:16px;margin:28px 0 0;max-width:1000px;line-height:1.8}
.caption{font-size:14px!important;margin:8px 0 0!important}
.faq-page{display:grid;grid-template-columns:1.4fr .8fr;gap:70px;align-items:start}
.side-card{border:1px solid var(--line);background:#eaece7;padding:30px}
.side-card h2{font-size:38px;margin-bottom:20px}
.side-card p:not(.eyebrow){font-size:16px;line-height:1.75}
.side-card .button{width:100%;margin-top:10px}
.compact-hero{padding-bottom:25px}
.compact-hero .breadcrumbs{margin-bottom:15px}
.compact-hero .inner-intro{margin-bottom:12px}
.booking-page{padding:50px 0 75px}
.booking-page .booking-grid{gap:70px}
.booking-copy h2{font-size:51px}
.booking-copy>p:not(.eyebrow){max-width:440px}
.calendar-panel{padding:23px;margin-top:25px;border:1px solid #cbd3c8;background:#f7f8f3}
.calendar-panel h3{font:700 18px/1.5 var(--body);letter-spacing:0}
.calendar-panel .scheduler-notice{font-size:15px!important;line-height:1.7;margin:14px 0 0;padding:0;border:0;background:none}
.calendar-panel .button{margin-top:20px;width:100%;font-size:15px}
.booking-grid>.calendar-panel{grid-column:1/-1;margin-top:0}
.booking-checks{list-style:none;padding:0;margin:26px 0;color:#455248}
.booking-checks li{font-size:15px;line-height:1.7;margin:12px 0;padding-left:25px;position:relative}
.booking-checks li:before{content:"✓";position:absolute;left:0;color:var(--red-dark)}
.safety-note{padding:18px 0;border-top:1px solid #cbd3c8;font-size:14px!important;line-height:1.75!important}
.form-card{padding:32px}
.form-card h2{font-size:35px}
.form-card>p:not(.eyebrow){font-size:15px;line-height:1.6;margin:12px 0 25px}
.field label{font-size:14px;margin-bottom:8px}
.field{margin-bottom:20px}
input:not([type=checkbox]),select,textarea{font-size:16px;min-height:52px;padding:12px}
.consent{font-size:14px;line-height:1.6;gap:12px;margin:20px 0}
.consent input{width:20px;height:20px;margin-top:2px}
.submit-button{font-size:16px;min-height:55px}
.form-fine{font-size:13px!important;line-height:1.7}
.form-status{font-size:14px;line-height:1.7}
.form-success h3{font-size:31px}
.form-success p{font-size:16px;line-height:1.7}
.contact-options{display:grid;gap:0;margin:25px 0}
.contact-options a{display:flex;justify-content:space-between;gap:15px;font-weight:600;text-decoration:none;padding:14px 0;border-bottom:1px solid #d4dacf;min-height:50px}
.location-card{background:#eaece7;border:1px solid var(--line);padding:25px;margin:30px 0}
.location-card h3{font-size:28px;margin-bottom:15px}
.location-card a{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px}
.legal-content{max-width:820px}
.legal-content h2{font-size:33px;margin:35px 0 18px}
.legal-content h2:first-child{margin-top:0}
.legal-content p{font-size:16px;line-height:1.8;color:#505a53}
.utility-page{max-width:850px;min-height:490px}
.utility-page h1{font-size:58px;margin-bottom:25px}
.utility-page>p:not(.eyebrow){font-size:17px;line-height:1.75}
.utility-page .button{margin-top:15px}
.mobile-book.is-hidden{display:none}
@media(max-width:1050px){
  .navigation{gap:22px}.navigation nav{gap:18px}
  .navigation nav a{font-size:13px}
  .content-grid{gap:45px}
  .booking-page .booking-grid{gap:35px}
  .coverage-grid article{padding:23px}
  .faq-page{gap:35px}
}
@media(max-width:900px){
  .navigation{min-height:80px;gap:18px}
  .navigation .header-book{display:none}
  .menu-toggle{display:flex;align-items:center;gap:10px;order:3;margin-left:auto;border:1px solid #cbd2c8;padding:10px 13px;min-height:46px;background:transparent;font-size:15px}
  .menu-toggle>span{font-size:15px}
  .navigation nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:15px 24px;margin:0;max-height:calc(100dvh - 180px);overflow:auto}
  .navigation nav.open{display:flex;flex-direction:column;gap:0}
  .navigation nav a{font-size:16px;min-height:51px;padding:12px 0}
  .navigation nav .mobile-home-link{display:flex}
  .navigation nav .mobile-nav-book{display:flex;justify-content:space-between;color:var(--red-dark);font-weight:700;border-top:1px solid var(--line);margin-top:7px}
  .mobile-book{display:flex;position:fixed;bottom:0;left:0;right:0;background:#f6f5f1;border-top:1px solid #c7cec4;align-items:center;justify-content:space-between;gap:20px;z-index:25;padding:11px 20px max(11px,env(safe-area-inset-bottom))}
  .mobile-book>span{font-size:13px;line-height:1.5;color:#545d55}
  .mobile-book strong{color:var(--ink)}
  .mobile-book .button{min-height:52px;width:176px;font-size:16px;padding:12px 19px;gap:25px}
  .mobile-book.is-hidden{display:none}
  footer{padding-bottom:115px}
  .footer-top{flex-wrap:wrap}
  .footer-bottom{align-items:start}
}
@media(max-width:760px){
  html{scroll-padding-top:96px}
  body{font-size:16px;line-height:1.65}
  .container{width:calc(100% - 40px)}
  .utility .container{justify-content:center;padding:8px 0}
  .utility{font-size:11px;line-height:1.5;letter-spacing:.7px}
  .navigation{min-height:80px}
  .brand{gap:10px}
  .brand img{width:38px;height:38px}
  .brand strong{font-size:27px;letter-spacing:.5px}
  .brand small{font-size:10px;letter-spacing:2.4px}
  .hero-copy{padding:32px 0 28px}
  .hero .eyebrow{font-size:11px;letter-spacing:.8px;line-height:1.6;gap:9px;margin-bottom:20px}
  h1,.inner-hero h1{font-family:var(--body);font-size:35px;font-weight:700;line-height:1.16;letter-spacing:-1.3px;max-width:620px;text-wrap:balance}
  .hero h1 span{display:block;margin-top:6px}
  .hero-sub{font-size:19px;line-height:1.5;margin:22px 0 16px;letter-spacing:-.2px}
  .hero-description{font-size:16px;line-height:1.75;max-width:100%;color:#c4ccc7}
  .hero-actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:25px}
  .hero-actions .button{font-size:16px;min-height:56px;padding:15px 20px;gap:20px}
  .hero-actions .text-link{font-size:15px;justify-content:center;min-height:48px;gap:14px}
  .microcopy{display:none}
  .hero-art{height:245px;margin:0 -20px;justify-content:center}
  .brake-illustration{width:330px;max-width:none;margin:0 0 -13px 65px;transform:rotate(-7deg)}
  .art-top,.art-bottom,.art-label{display:none}
  .promise-strip .container{display:grid;grid-template-columns:1fr;gap:8px;padding:19px 0;font-size:14px;line-height:1.6}
  .promise-strip span{display:flex;gap:11px;align-items:center}
  .promise-strip i{display:inline;margin:0;font-size:17px}
  .section{padding-top:49px;padding-bottom:49px}
  .eyebrow{font-size:11px;letter-spacing:1px;line-height:1.6;margin-bottom:14px}
  h2,.area-grid h2,.booking-copy h2,.bottom-cta h2,.side-card h2,.note-panel h2{font:700 29px/1.2 var(--body);letter-spacing:-.8px;text-wrap:balance}
  h2 br{display:none}
  h2 br:after{content:" "}
  h3,.service-card h3,.steps h3,.info-grid h3,.coverage-grid h3,.location-card h3{font:700 22px/1.25 var(--body);letter-spacing:-.5px}
  .section-heading>p,.service-card p,.section-copy,.steps p,.pricing>div>p:not(.eyebrow),.area-grid>div>p:not(.eyebrow),.faq-grid>div>p:not(.eyebrow),details p,.booking-copy>p:not(.eyebrow),.form-card>p{font-size:16px;line-height:1.75}
  .section-heading>p{margin-top:18px}
  .service-grid{gap:18px}
  .service-card{padding:24px}
  .card-top{font-size:11px;letter-spacing:.8px;margin-bottom:21px;gap:15px}
  .service-card h3{margin-bottom:15px}
  .service-card p{margin-bottom:18px}
  .service-card a{font-size:15px;min-height:50px;line-height:1.5;padding-top:13px}
  .service-card .card-book{min-height:47px}
  .service-note{font-size:14px;line-height:1.75;margin-top:22px}
  .process-grid,.pricing,.area-grid,.faq-grid,.booking-grid,.content-grid,.faq-page{grid-template-columns:1fr;gap:29px}
  .section-copy{margin:20px 0;max-width:100%}
  .steps li{gap:19px;padding:23px 0}
  .steps li>span{font-size:30px}
  .steps h3{margin-bottom:10px}
  .area-section{padding:48px 0}
  .area-panel{padding:23px}
  .area-panel p:not(.area-panel-label){font-size:15px;line-height:1.75}
  .area-panel-label{font-size:12px;letter-spacing:.8px}
  .area-tags{gap:8px}
  .area-tags span{font-size:14px;line-height:1.5;padding:8px 11px}
  .area-panel small{font-size:13px;line-height:1.7}
  .area-detail-link{font-size:15px}
  .faq-list summary{font-size:16px;padding:20px 0;line-height:1.55;gap:20px}
  .faq-list summary span{flex-shrink:0;font-size:24px}
  details p{padding-right:0}
  .bottom-cta{padding:43px 0}
  .bottom-cta .container{display:block}
  .bottom-cta h2{font-size:30px}
  .bottom-cta p:not(.eyebrow){font-size:16px;line-height:1.75;margin-top:18px}
  .bottom-cta .button{width:100%;margin-top:25px}
  .family{padding:32px 0;display:block}
  .family-label{font-size:11px;max-width:none;margin-bottom:15px}
  .family p{font-size:16px}
  .family .text-link{font-size:14px;line-height:1.5;margin-top:17px;gap:12px;min-height:48px}
  .footer-top{align-items:start;flex-direction:column;gap:23px}
  .footer-top>p{font-size:15px;line-height:1.75}
  .footer-top .text-link{font-size:15px;min-height:48px}
  .footer-links{grid-template-columns:1fr;gap:25px;margin-top:27px;padding-top:27px}
  .footer-links h2{font-size:15px}
  .footer-links a{font-size:15px;min-height:44px}
  .footer-bottom{font-size:13px;align-items:start;flex-direction:column;gap:12px}
  .footer-bottom a{font-size:13px;line-height:1.65;min-height:44px}
  .inner-hero{padding:15px 0 35px}
  .breadcrumbs{font-size:13px;line-height:1.5;gap:9px;margin-bottom:20px}
  .inner-hero h1{font-size:34px;line-height:1.2;letter-spacing:-1.1px}
  .inner-intro{font-size:16px;line-height:1.75;margin:21px 0}
  .inner-hero .button{width:100%;margin-top:2px}
  .info-grid,.coverage-grid{grid-template-columns:1fr;gap:26px;margin-top:28px}
  .info-grid h3,.coverage-grid h3{margin-bottom:14px}
  .info-grid article{padding-top:23px}
  .info-grid p,.coverage-grid p,.prose p{font-size:16px;line-height:1.75}
  .number{font-size:30px;margin-bottom:16px}
  .check-list li{font-size:16px;padding-top:13px;padding-bottom:13px}
  .note-panel{padding:25px;margin-bottom:48px}
  .note-panel h2{font-size:25px}
  .note-panel p{font-size:16px}
  .section-follow{font-size:16px}
  .coverage-grid article{padding:25px}
  .side-card{padding:25px}
  .side-card h2{font-size:28px}
  .compact-hero{padding-bottom:23px}
  .compact-hero .breadcrumbs{margin-bottom:12px}
  .compact-hero .inner-intro{margin-bottom:0}
  .booking-page{padding:25px 0 50px}
  .booking-page .booking-grid{gap:32px}
  .booking-page .form-card{order:-1}
  .booking-page .booking-grid>.calendar-panel{order:-2}
  .booking-copy{padding:0}
  .booking-copy>p:not(.eyebrow){max-width:100%;font-size:16px}
  .calendar-panel{padding:22px}
  .calendar-panel h3{font-size:18px;line-height:1.4}
  .calendar-panel .scheduler-notice{font-size:15px!important}
  .booking-checks li{font-size:15px;line-height:1.7}
  .form-card{padding:24px 20px}
  .form-card h2{font:700 24px/1.25 var(--body);letter-spacing:-.6px}
  .form-card>p:not(.eyebrow){font-size:15px;line-height:1.65;margin:12px 0 23px}
  .form-row{grid-template-columns:1fr;gap:0}
  .field{margin-bottom:21px}
  .field label{font-size:14px;line-height:1.5;margin-bottom:8px}
  input:not([type=checkbox]),select,textarea{font-size:16px;min-height:54px;padding:12px;max-width:100%}
  .consent{font-size:14px;line-height:1.7;gap:12px}
  .submit-button{font-size:16px;min-height:56px}
  .form-fine{font-size:13px!important;line-height:1.75}
  .form-status{font-size:14px;line-height:1.75}
  .form-success h3{font:700 25px/1.25 var(--body)}
  .form-success p{font-size:16px}
  .contact-copy h2{font-size:29px}
  .location-card{padding:24px}
  .location-card h3{font-size:22px}
  .legal-content h2{font-size:25px;margin:30px 0 17px}
  .legal-content p{font-size:16px;line-height:1.8}
  .utility-page{min-height:420px}
  .utility-page h1{font-family:var(--body);font-size:34px;line-height:1.2;letter-spacing:-1px}
  .utility-page>p:not(.eyebrow){font-size:16px}
  .button:hover{transform:none}
}
.button{justify-content:center}
.location-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:30px}
.coverage-label{font:700 11px/1.5 var(--body);letter-spacing:1px;color:#526454}
.coverage-label.conditional{color:#9a452b}
.location-summary>a,.prose a,.section-follow a{text-underline-offset:4px}
.city-search{max-width:520px;margin:28px 0}
.city-search label{display:block;font-weight:600;margin-bottom:8px}
.city-search input{width:100%;font:400 16px/1.5 var(--body);padding:14px 16px;border:1px solid #b6b8b9;border-radius:4px;background:white;color:#171a1d}
.city-search p{font-size:14px;margin:10px 0}
.city-directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.city-tile{border:1px solid #dededb;padding:26px;border-radius:6px;background:#fff}
.city-tile[hidden],.city-empty[hidden]{display:none}
.city-tile h3{font:700 23px/1.25 var(--body);margin:10px 0}
.city-tile h3 a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;text-decoration:none;color:#171a1d}
.city-tile h3 a:hover{color:#c63229}
.city-tile p{font-size:16px;line-height:1.65;margin:8px 0 0}
.city-services{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:#f3f2ee;padding:38px;border-radius:6px}
.city-services p{font-size:16px;line-height:1.7}
.city-services h2{font-size:34px}
.city-service-options>div{border-bottom:1px solid #d3d3ce;padding:8px 0 15px}
.city-service-book{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:50px;font-weight:700;color:#171a1d;text-decoration:none}
.city-service-learn{display:inline-flex;align-items:center;min-height:44px;font-size:15px;color:#8f302b;text-underline-offset:4px}
.nearby-locations{padding-bottom:60px}
.nearby-locations h2{font:700 22px/1.4 var(--body);margin:0 0 18px}
.nearby-locations>div{display:flex;gap:12px;flex-wrap:wrap}
.nearby-locations a{padding:13px 18px;min-height:48px;border:1px solid #ccc;border-radius:3px;text-decoration:none;color:#171a1d}
.area-tags a{display:inline-flex;padding:9px 14px;border:1px solid #d7d7d2;border-radius:4px;text-decoration:none;color:inherit;min-height:44px;align-items:center}
@media(max-width:800px){.city-directory-grid{grid-template-columns:repeat(2,1fr)}.city-services{gap:24px;padding:26px}}
@media(max-width:600px){
 .location-summary{align-items:flex-start;flex-direction:column;gap:12px;padding-top:24px}
 .location-summary>a{display:inline-flex;align-items:center;min-height:44px}
 .city-directory-grid,.city-services{grid-template-columns:1fr}
 .city-tile{padding:20px}.city-tile h3{font-size:22px}
 .city-services{padding:24px 20px}.city-services h2{font-size:28px}
 .city-service-book{font-size:16px}.local-context .prose{font-size:16px}
 .nearby-locations{padding-bottom:40px}.nearby-locations>div{display:grid;grid-template-columns:1fr}
 .nearby-locations a{display:flex;justify-content:space-between}
}
@media(max-width:370px){
  .container{width:calc(100% - 32px)}
  .brand strong{font-size:25px}
  .brand small{font-size:10px;letter-spacing:2px}
  .brand img{width:35px;height:35px}
  .brand{gap:8px}
  .menu-toggle{padding:10px;gap:8px}
  h1,.inner-hero h1{font-size:31px;letter-spacing:-1px}
  .hero-art{margin-left:-16px;margin-right:-16px}
  .mobile-book{padding-left:16px;padding-right:16px;gap:12px}
  .mobile-book .button{width:163px}
  .service-card{padding:21px}
}
