/* Southwest: readable, touch-friendly layouts from small phones to wide screens. */
html{scrollbar-gutter:auto;-webkit-text-size-adjust:100%}
.menu-toggle{width:48px;height:48px;align-items:center;justify-content:center;border-radius:8px}
.menu-toggle svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.mobile-nav{box-shadow:0 20px 40px #0006;border-bottom:1px solid #383036}
.mobile-nav:not([hidden]){animation:nav-enter 180ms ease-out}
@keyframes nav-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.service-card p,.care-card>p,.process-grid p,.faq details p,.convenience-banner h2+p{font-size:16px}
.card-caption,.price-note,.coating-note,.location-grid small,.menu-footer p,.full-menu>p,.care-cta,.coating-grid .coating-action{font-size:14px;line-height:1.65}
.footer-top>p,.footer-top>a:last-child,.footer-bottom,.clean-instructions{font-size:14px}
.footer-bottom{flex-wrap:wrap}.footer-bottom a{padding:6px 0}
.footer-contact{display:flex;flex-direction:column;gap:12px;font-size:14px;overflow-wrap:anywhere}
.booking-note{padding:0;background:none;color:#b9bac4;font-size:14px;line-height:1.65;margin:0 0 22px}
.form-step .consent,.field-help,.service-pricing-note,.request-review{font-size:14px}
input:not([type=checkbox]),select,textarea,.date-toggle{font-size:16px;min-height:50px}
.form-step .consent{gap:12px}.consent input{width:22px;height:22px}
.schedule-hours strong{font-size:14px}.schedule-hours span:not(.schedule-dot),.calendar-weekdays,.schedule-calendar>p{font-size:12px}
.calendar-days button,.calendar-head button{min-height:44px;font-size:14px}
.mobile-estimate{display:none}.booking-phone{display:inline-flex;margin-top:18px;min-height:44px;align-items:center;gap:8px;color:#ff9aa3;font-size:14px}
.booking-main .form-error a{color:inherit;text-decoration:underline}
.form-actions .button{min-height:52px}.form-actions{padding-bottom:env(safe-area-inset-bottom)}
.success-mark svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.clean-touch{min-height:44px;font-size:14px}.clean-buttons button,.clean-footer button{font-size:14px;min-height:44px}.clean-amount{font-size:12px}
.clean-footer>span{font-size:12px}.finish-nav button{font-size:14px;min-height:48px}
@media(max-width:800px){
 :root{--gutter:clamp(20px,5.1vw,36px)}
 .site-header{height:76px;padding-inline:var(--gutter)}.site-header>.button{display:none}.menu-toggle{display:flex}
 .brand{font-size:15px}.brand small{font-size:9px;letter-spacing:.1em}.mobile-nav{top:76px;padding:14px var(--gutter) 22px}.mobile-nav a,.mobile-nav button{width:100%;min-height:50px;text-align:left;font-size:16px}
 .hero{height:auto;min-height:min(900px,100svh);max-height:none;display:flex;flex-direction:column;padding:116px 0 26px;gap:0}
 .hero-content{order:0;width:100%;padding:0 var(--gutter)}
 .hero-content .eyebrow{font-size:11px;letter-spacing:.055em;gap:8px;flex-wrap:wrap}.mini-cross{font-size:22px}
 .hero h1{font-size:clamp(52px,16.2vw,98px);line-height:.98;margin-top:22px;letter-spacing:-.025em}
 .hero-description{font-size:16px;line-height:1.65;max-width:none;margin:20px 0 24px}
 .hero-actions{gap:16px;align-items:center;flex-wrap:wrap}.hero-actions .button{font-size:15px;min-height:54px;padding:15px 20px;gap:22px}.hero-actions .text-link{font-size:14px;min-height:48px}
 .hero-photo{order:1;position:relative;inset:auto;z-index:0;width:100%;height:auto;aspect-ratio:16/8.7;min-height:190px;margin:12px 0 0;transform:none!important;will-change:auto}
 .hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:none;filter:none}
 .hero-bottom{order:2;position:relative;inset:auto;gap:18px;margin:12px var(--gutter) 0;min-height:52px;font-size:11px;letter-spacing:.035em;align-items:center}.scroll-cue{font-size:10px;gap:12px}.scroll-cue span{font-size:22px}
 .ticker{padding:10px var(--gutter)}.ticker>div{gap:4px}.ticker button{font-size:clamp(20px,5.3vw,28px);min-height:58px;padding:10px 2px;gap:8px}
 .section-pad{padding:72px var(--gutter)}.section-intro h2,.interior-copy h2,.locations-intro h2,.faq h2{font-size:clamp(45px,12vw,70px);line-height:.98}
 .section-intro>div{margin-top:20px}.section-intro p:not(.eyebrow){font-size:16px}.vehicle-bar{margin-top:32px;gap:16px}
 .segmented{width:100%;display:grid;grid-template-columns:.65fr 1fr 1.3fr}.segmented button{padding:12px 5px;min-height:48px;font-size:13px;line-height:1.4}.price-note{font-size:13px}
 .service-card{padding:26px;border-radius:9px}.service-card h3{font-size:clamp(50px,12vw,66px);line-height:.98}.service-card p{max-width:none;font-size:16px}.service-bottom strong{font-size:48px}.service-cta{min-height:56px;font-size:15px}.card-caption{font-size:13px}
 .care-card{padding:26px;border-radius:9px}.care-card>p{font-size:16px}.care-card-top .eyebrow,.card-top .eyebrow{font-size:11px}.care-cta{font-size:14px}
 .convenience-banner{padding-block:36px}.convenience-banner h2{font-size:clamp(43px,12vw,62px)}.convenience-banner h2+p{font-size:16px}.convenience-actions .button{font-size:14px;min-height:56px}
 .finish-story{height:235svh;min-height:0;scroll-margin-top:0}.finish-sticky{height:100svh;min-height:0}.finish-heading{padding:26px var(--gutter) 8px}.finish-heading .eyebrow{font-size:11px;margin-bottom:12px}.finish-heading h2{font-size:clamp(42px,11vw,64px)}
 .finish-stage{margin:0}.finish-caption{padding:10px var(--gutter) calc(88px + env(safe-area-inset-bottom))}.finish-line{min-height:112px}.finish-line h3{font-size:34px}.finish-line p{font-size:15px;line-height:1.6}.finish-caption .finish-hint{font-size:12px}.finish-percent{font-size:11px}.finish-nav{gap:10px;margin-top:18px}.finish-nav button{font-size:13px;padding:14px 2px 8px}.finish-nav button>span:last-child{gap:5px}
 .clean-reveal{padding:64px var(--gutter) 42px}.clean-intro .eyebrow{font-size:11px}.clean-intro h2{font-size:clamp(40px,10.8vw,70px)}.clean-instructions{font-size:16px;line-height:1.65}.clean-stage{margin-inline:calc(-1 * var(--gutter));aspect-ratio:16/11}.clean-stage>img,.clean-stage>canvas{height:81.82%}.clean-state{font-size:9px;letter-spacing:.09em}.clean-touch{min-height:44px;padding:10px 14px;bottom:4px;font-size:13px}
 .clean-controls{gap:16px;padding:20px 0}.clean-buttons button{font-size:14px}.clean-footer{flex-wrap:wrap;gap:8px}.clean-footer>span{font-size:12px;max-width:none}.clean-footer button{font-size:14px}
 .coating-grid{gap:16px;margin-top:30px}.coating-grid button,.coating-grid button:first-child{padding:28px;border-radius:9px}.coating-grid .eyebrow{font-size:12px}.coating-grid .coating-action{font-size:14px}.coating-note{font-size:14px}
 .interior-photo{min-height:260px;max-height:420px;aspect-ratio:4/3}.interior-copy{padding:56px var(--gutter)}.interior-copy p:not(.eyebrow){font-size:16px}.process-head{align-items:start;gap:22px;margin-bottom:36px}.process-head h2{font-size:clamp(42px,11.8vw,68px);line-height:1}.process-grid{gap:30px}.process-grid p{font-size:16px}.process-grid h3{margin:18px 0 12px}
 .location-grid{gap:40px}.location-grid small{font-size:14px}.location-actions button,.location-actions a{min-height:44px;display:inline-flex;align-items:center;font-size:15px}.faq{gap:30px}.faq summary{font-size:16px;min-height:44px}.faq details p{font-size:16px;padding-right:0;line-height:1.75}
 .final-cta{padding:68px var(--gutter)}.final-cta h2{font-size:clamp(44px,12.5vw,76px);line-height:1}.final-cta .button{font-size:15px;gap:20px}
 footer{padding:44px var(--gutter) calc(106px + env(safe-area-inset-bottom))}.footer-top{gap:28px}.footer-bottom{gap:14px;font-size:12px}.footer-contact{font-size:14px}.footer-top>p{font-size:14px}
 .mobile-book{padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));gap:16px;border-top:1px solid #ffffff20;backdrop-filter:blur(16px);transition:opacity .18s,transform .18s}.mobile-book>span{font-size:12px}.mobile-book .button{font-size:14px;min-height:48px;padding:12px 18px;gap:18px}.hero-visible .mobile-book,.modal-open .mobile-book{opacity:0;transform:translateY(110%);pointer-events:none}
 #booking{width:calc(100% - 16px);max-width:560px;max-height:calc(100dvh - 16px - env(safe-area-inset-top));margin:auto auto 8px;border-radius:18px 18px 10px 10px;border:1px solid #45404a;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}
 .booking-shell{display:block;min-height:0}.booking-aside{display:none}.booking-main{padding:24px 20px calc(20px + env(safe-area-inset-bottom));min-width:0}
 #booking .close{position:sticky;top:0;float:right;margin:-12px -8px 0 8px;background:#29282f;border:1px solid #4a4650;border-radius:50%;width:44px;height:44px;z-index:5;font-size:29px}
 .booking-main>h2{font-size:26px;line-height:1.25;margin:20px 0 12px;letter-spacing:-.03em}.step-label{font-size:12px;padding-right:40px}.step-label #step-name{font-size:10px;margin-left:7px}.step-label #step-number{font-size:17px}
 .booking-main .booking-note{font-size:14px;padding:0;line-height:1.65}.mobile-estimate{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 22px;padding:14px 0;border-block:1px solid #39313b;font-size:12px;color:#bbb7c1}.mobile-estimate strong{color:#ff7885;font-size:22px;line-height:1.2;white-space:nowrap}.mobile-estimate span{max-width:65%}
 .field-grid{grid-template-columns:1fr;gap:0}.form-step>label,.field-grid label{font-size:14px;margin-top:18px}.extras label{font-size:14px;min-height:46px}.form-step .consent{font-size:13px}.schedule-hours strong{font-size:13px}.schedule-hours span:not(.schedule-dot){font-size:12px}.schedule-calendar{padding:10px}.calendar-days button{min-height:40px;font-size:14px}.calendar-head button{min-width:44px}
 .request-review{font-size:14px;padding:14px;overflow-wrap:anywhere}.field-help,.service-pricing-note{font-size:14px}.form-actions{position:sticky;bottom:-20px;padding:16px 0 calc(12px + env(safe-area-inset-bottom));margin-top:20px;background:linear-gradient(#17181cee,#17181c 18%);z-index:3;gap:16px}.form-actions .button{font-size:15px;min-width:0;flex:1;justify-content:space-between}.form-actions .text-link{min-height:48px;font-size:14px;flex-shrink:0}
 #booking-success h3{font-size:27px}.booking-phone{font-size:14px}.booking-main .button{font-size:15px}
}
@media(max-width:350px){.hero h1{font-size:50px}.hero-content .eyebrow{font-size:10px}.hero-actions{gap:10px}.hero-actions .button{width:100%}.hero-bottom{font-size:10px;gap:12px}.scroll-cue{font-size:9px}.brand{font-size:13px}.brand small{font-size:8px}.segmented button{font-size:12px}.ticker>div{font-size:20px}.finish-nav b{display:none}.booking-main{padding-inline:16px}.mobile-book>span{font-size:11px}.mobile-book .button{padding-inline:13px;font-size:13px}.service-card,.care-card{padding:22px}}
@media(max-width:800px){.interior-feature{min-width:0;grid-template-columns:minmax(0,1fr)}.interior-photo{width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:4/3}.interior-photo img{width:100%;height:100%}.legal-main h1{font-size:clamp(38px,10vw,64px)}.owner-header{flex-wrap:wrap;gap:20px}.legal-main{padding:48px var(--gutter);overflow-wrap:anywhere}}
@media(max-width:800px) and (max-height:650px){.finish-story{height:auto}.finish-sticky{height:auto;position:relative}.finish-stage{height:240px}.finish-caption{padding-bottom:88px}.finish-line{min-height:100px}.finish-heading h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){.mobile-nav:not([hidden]){animation:none}.finish-story{height:auto;min-height:0}.finish-sticky{position:relative;height:auto;min-height:0}.finish-stage{height:auto}.finish-caption{padding-bottom:40px}.finish-line{min-height:0}.mobile-book{transition:none}}

/* One vector icon language across desktop and mobile; no platform emoji glyphs. */
.ui-icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.button>span[aria-hidden],.service-cta>span[aria-hidden],.text-link>span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:0}
.button .ui-icon,.service-cta .ui-icon{width:22px;height:22px}
.button.small .ui-icon{width:19px;height:19px}
.brand-icon{display:inline-flex;align-items:center;justify-content:center;min-width:51px;min-height:45px;letter-spacing:-.06em;padding:9px 10px 9px 8px}
.location-mark{display:inline-flex;align-items:center;justify-content:center;color:#f74b53;flex:none}
.location-mark .ui-icon{width:19px;height:19px;stroke-width:1.7}
.scroll-cue .ui-icon,.finish-next .ui-icon{width:24px;height:24px}
.text-link .ui-icon,.menu-items button .ui-icon,.location-actions .ui-icon,.footer-contact .ui-icon{width:18px;height:18px}
.menu-items button,.location-actions button,.location-actions a,.footer-contact a:last-child{display:inline-flex;align-items:center;gap:10px}
.mobile-nav button{display:flex;align-items:center;justify-content:space-between;gap:16px}
.close .ui-icon{width:23px;height:23px}
.faq summary>.ui-icon{width:22px;height:22px;color:#d4cbd0;margin-left:auto}
.icon-plus-vertical{transform-box:fill-box;transform-origin:center;transition:opacity .18s ease,transform .18s ease}
.faq details[open] .icon-plus-vertical,#price-toggle[aria-expanded=true] .icon-plus-vertical{opacity:0;transform:scaleY(0)}
.cta-star{display:grid;place-items:center;width:230px;height:230px}
.cta-star .ui-icon{width:100%;height:100%;stroke-width:.8}
@media(max-width:800px){.cta-star{width:120px;height:120px}.brand-icon{min-width:46px;min-height:42px}.mobile-book .ui-icon{width:19px;height:19px}}
@media(prefers-reduced-motion:reduce){.icon-plus-vertical{transition:none}}

/* Address fields follow the selected transport option. */
.transport-addresses{margin:20px 0 24px;padding:20px;border:1px solid #49323a;border-left:3px solid #e12632;border-radius:5px;background:#211b21}
.transport-address-heading{font-size:16px;font-weight:800;margin-bottom:6px}
.transport-addresses .field-help{margin:0 0 16px;line-height:1.6}
.transport-addresses>div>label{display:block;margin:16px 0 8px;font-size:14px;font-weight:800}
.transport-addresses textarea{font-size:16px;line-height:1.6;min-height:106px}
.transport-addresses .same-address{display:flex;align-items:center;gap:12px;margin:14px 0 0;min-height:44px;cursor:pointer}
.transport-addresses .same-address input{width:22px;height:22px;flex:none;margin:0}
.transport-addresses .same-address span{margin:0;color:#e6e1e6;font-size:14px;line-height:1.5}
@media(max-width:800px){.transport-addresses{padding:16px}}

/* Photos stay optional and travel with the appointment email. */
.photo-section{margin-top:24px;border:1px solid #4b343c;border-radius:10px;background:linear-gradient(125deg,#2a1c23,#1b1b21);overflow:hidden}
.photo-section>summary{list-style:none;display:flex;align-items:center;gap:13px;padding:18px;min-height:74px;cursor:pointer;font-size:15px;font-weight:700;line-height:1.45}
.photo-section>summary::-webkit-details-marker{display:none}
.photo-section>summary>.ui-icon:first-child{color:#ff7d89;width:26px;height:26px}
.photo-section>summary>span{flex:1;min-width:0}
.photo-section>summary small{display:block;color:#c7aeb7;font-size:12px;font-weight:400;margin-top:3px}
.photo-chevron{width:18px;transition:transform .18s ease}
.photo-section[open] .photo-chevron{transform:rotate(180deg)}
.photo-content{padding:0 18px 18px}.photo-content .field-help{margin:0 0 18px;line-height:1.65;color:#d1c8ce}
.photo-add{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;min-height:48px;border:1px solid #ce4c60;border-radius:6px;background:#48212c;color:#fff;font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:background .18s,border-color .18s}
.photo-add:hover{background:#652435;border-color:#ff8f9f}.photo-add:disabled{opacity:.5;cursor:default}
.photo-content .photo-hint{font-size:12px;line-height:1.65;color:#b9aeb8;margin:12px 0 0}.photo-content .photo-status{font-size:13px;line-height:1.5;color:#e6cbd3;margin:14px 0 0}
.photo-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.photo-previews figure{margin:0;min-width:0;background:#151519;border:1px solid #48333e;border-radius:7px;overflow:hidden}
.photo-previews img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#0b0b0d}
.photo-previews figcaption{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:0 8px 0 12px;font-size:12px;color:#d7cdd3}
.photo-previews button{min-height:44px;padding:8px 4px;color:#ff9fab;background:none;border:0;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.photo-previews button:disabled{opacity:.5}.photo-content .form-error{margin-bottom:0}
.photo-review{padding:16px;border:1px solid #4b343c;border-radius:7px;margin:14px 0 22px;background:#201b22}
.photo-review>p{font-size:13px;margin:0 0 12px;color:#dacbd3}
.photo-review-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.photo-review-list img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:4px;background:#0b0b0d}
.photo-section summary:focus-visible,.photo-add:focus-visible,.photo-previews button:focus-visible{outline:2px solid #ff9eaa;outline-offset:3px}
@media(max-width:800px){.photo-section>summary{padding:16px;gap:10px;font-size:14px}.photo-content{padding:0 16px 16px}.photo-add{width:100%}.photo-previews{gap:8px}.photo-previews figcaption{padding-inline:8px}.photo-review{padding:14px}}
@media(prefers-reduced-motion:reduce){.photo-chevron,.photo-add{transition:none}}
