/* Shared readable type and touch layout for storefront, booking and team pages. */
html{font-size:18px;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
body{font-size:1rem;line-height:1.65}
button,input,select,textarea{font:inherit}
button,.button,input:not([type=checkbox]):not([type=radio]),select{min-height:48px}
button,.button,a,input,select{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #285c49;outline-offset:4px}
.container{width:calc(100% - 48px)}
.site-header{height:auto;min-height:96px;padding:16px 0}.site-nav{font-size:1rem;gap:24px}.site-nav a{min-height:48px;display:flex;align-items:center}.wordmark{font-size:1.2rem}
.hero .hero-intro,.hero .button,.hero-phone,.location-grid p,.about p{font-size:1rem}.hero-phone{min-height:48px}.hero .kicker,.kicker{font-size:.89rem!important;letter-spacing:1.5px}
.button.small,.cash,.price-label,.fact small,.summary small,.hint,.booking-notice,.booking-title-note,.form-field label,.check-row,.check-row small,.error,.start-over,.footer h4,.copyright,.copyright>a,.included-treatments p,.review-list small,.note{font-size:.89rem;line-height:1.65}
.fact span,.price-card .price,.times button{font-size:1.11rem}.fact small,.summary small,.hint,.booking-notice,.check-row small,.review-list small,.cash{color:#4f624f}
.price-card h3,.location-grid h3,.included-treatments h3,.service-group .included-treatments h3{font-size:1.17rem;line-height:1.4}
.price-card{min-width:0;flex-wrap:wrap}.price-card .price{margin-left:auto}.about p{line-height:1.8}
.address-line{font-size:1rem;flex-wrap:wrap}.address-line .map-address{text-decoration:underline;text-underline-offset:4px}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.contact-actions a{min-height:48px;display:inline-flex;align-items:center;padding:8px 15px;border:1px solid #b4c4ac;border-radius:50px;font-size:.89rem}
.booking-content{scroll-margin-top:24px}.booking-content h2[tabindex]{outline:none}.booking-layout{grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr)}.booking-layout>*{min-width:0}.book-card{padding:24px}.service-group{grid-template-columns:minmax(180px,.8fr) minmax(0,1.65fr);gap:30px}.service-option h3{font-size:1.35rem;line-height:1.35}.service-option .facts{gap:16px}.service-option .button{min-width:125px;font-size:1rem}
.booking-progress{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-progress li{display:flex;align-items:center;gap:8px;font-size:.89rem;color:#52614d;border-bottom:3px solid #d7e2d0;padding:10px 0}.booking-progress b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#eaf0e1}.booking-progress [aria-current=step]{border-color:#285c49;color:#244b36;font-weight:600}.booking-progress [aria-current=step] b{background:#285c49;color:white}
.service-jump{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.service-jump a{padding:10px 16px;border:1px solid #b4c4ac;border-radius:50px;min-height:48px;font-size:.89rem;background:#f1f5e9}.service-group{scroll-margin-top:20px}
.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar{max-width:440px;width:100%;padding:14px}.calendar-days button{font-size:1rem;min-height:48px;padding:6px 0}.calendar-days small{font-size:.89rem}.month-nav button{min-width:48px}.times{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.times button{padding:12px 5px;min-height:52px;white-space:nowrap;font-size:1rem;color:#314b37}.calendar-days button:disabled{color:#727d6b;background:#f5f7f2}.mobile-date-field{display:none}.time-zone{font-size:.89rem;color:#4f624f;margin:8px 0 18px}
.form-field input,.phone-field input{font-size:1rem;min-height:54px;color:#263e33}.form-field label{font-size:1rem;margin-bottom:8px}.contact-grid{gap:24px}.check-row{padding:8px 0;min-height:48px;font-size:1rem;gap:13px}.check-row input{width:24px;height:24px;margin-top:4px}.check-row small{font-size:.89rem;color:#536350}.review-list p{overflow-wrap:anywhere}.next-row .button{font-size:1rem;min-height:54px}.summary{top:20px;padding:28px}.summary p{overflow-wrap:anywhere}.start-over{min-height:48px}.summary-row{gap:12px}
.team-header{flex-wrap:wrap}.team-header nav{flex-wrap:wrap}.team-main{max-width:1160px}.team-main section{overflow-wrap:anywhere}.team-main .booking-row .button{font-size:1rem;min-height:48px}.team-main .check{min-height:48px}.team-main .check input{width:24px;height:24px;flex-shrink:0}.user-row select{width:100%;max-width:260px}.team-main .permission-list{gap:6px 22px}.login-card{max-width:600px}.login-card .button{font-size:1rem}.credential{font-size:.95rem;overflow-wrap:anywhere}
@media(max-width:1000px){.booking-layout{grid-template-columns:minmax(0,1fr)}.summary{position:static}.summary-row{max-width:480px}.service-group{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.container{width:calc(100% - 32px)}.site-header .container{gap:12px}.site-nav{padding-left:0;gap:24px;width:100%}.wordmark{font-size:1.1rem;letter-spacing:-.3px}.hero .hero-intro,.hero .button,.hero-phone,.location-grid p,.about p{font-size:1rem}.hero h1{font-size:clamp(42px,12vw,58px)}.hero-phone{display:table;margin:16px 0 0}.hero{padding-bottom:250px}.location-grid{grid-template-columns:1fr}.banner{height:auto;min-height:150px;padding:25px 16px}.banner h1{font-size:clamp(34px,9vw,46px)}.address-line{padding:14px 16px;align-items:stretch;gap:12px;text-align:left}.address-line .map-address{line-height:1.6}.contact-actions{justify-content:flex-start}.contact-actions a{flex:1;text-align:center;justify-content:center}.booking-content{padding:30px 0 48px}.booking-content>h2{font-size:1.8rem;line-height:1.25;margin-bottom:22px}.book-card{padding:18px}.service-group{padding:25px 0;gap:16px}.service-group h2{font-size:1.8rem}.service-option h3{font-size:1.3rem}.service-option .facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.service-option .button{grid-column:1/-1;width:100%}.fact span{font-size:1.05rem}.fact small{font-size:.89rem}.contact-grid{grid-template-columns:minmax(0,1fr)}.next-row{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}.next-row .button{padding:12px 14px}.review-list{grid-template-columns:1fr}.price-card h3{font-size:1.17rem}.price-card .price{font-size:1.1rem}.footer-grid{min-width:0}.footer .wordmark{font-size:1.2rem}.footer nav a{padding:8px 0;min-height:48px}.booking-progress{gap:6px}.booking-progress li{flex-direction:column;align-items:flex-start;gap:5px;font-size:.89rem}.booking-progress b{min-width:32px;height:32px}.team-header{padding:18px 16px;gap:16px}.team-main{margin-top:28px;padding:0 16px}.team-main section{padding:18px}.team-main h1{font-size:2rem}.team-main h2{font-size:1.7rem}.team-main .booking-row{align-items:flex-start}.team-main .user-grid{grid-template-columns:1fr}.login-card{margin:20px 16px;padding:24px}.login-card h1{font-size:2rem}}
@media(max-width:600px){.calendar{display:none}.mobile-date-field{display:block;margin:0 0 20px}.mobile-date-field label{display:block;margin-bottom:8px}.mobile-date-field input{display:block;width:100%;max-width:100%;min-width:0;min-height:54px;padding:12px;border:1px solid #a7b99b;border-radius:8px;font-size:1rem;background:white;color:#263e33}.times{grid-template-columns:repeat(2,minmax(0,1fr))}.book-card{padding:16px}.booking-progress li{font-size:.83rem}.phone-field span{padding:0 12px}.phone-field input{min-width:0}.team-main form{min-width:0}.login-card{padding:20px}.service-jump{display:grid;grid-template-columns:1fr 1fr}.service-jump a{padding:10px 12px;display:flex;align-items:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.footer{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}.booking-content{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))}
