/* Mobile alignment: centred introductions, left-aligned practical information.
   Loaded only at widths of 800px and below. */
:root{--mobile-gutter:clamp(20px,6vw,40px)}
.section{padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}
.section>.eyebrow,.section>h2,.section-heading,.about>div,.products>div:not(.product-art),.review-intro,.contact>div:first-child,.faq>.eyebrow,.faq>h2{text-align:center}
.section-heading>p,.about>div>p,.products>div>p,.social-block>p:not(.eyebrow){max-width:40ch;margin-left:auto;margin-right:auto}
.section-heading>p{margin-top:24px;margin-bottom:0}
.section-heading h2,.section>h2,.about h2,.products h2,.review-intro h2,.contact h2,.faq h2{max-width:100%;margin-left:auto;margin-right:auto;text-wrap:balance}
.eyebrow{line-height:1.7;text-wrap:balance}
/* Give all parts of the welcome screen the same centre line. */
.immersive{height:auto;min-height:max(790px,100svh);max-height:none}
.hero-copy{width:100%;max-width:none;margin-left:0;padding:135px var(--mobile-gutter) 105px;text-align:center}
.hero-copy h1{max-width:100%;margin-left:auto;margin-right:auto;text-wrap:balance}
.hero-copy .script{margin-left:0}
.hero-copy .eyebrow,.hero-copy .hero-motto,.hero-copy .intro{margin-left:auto;margin-right:auto;max-width:min(100%,32ch)}
.hero-copy .actions{width:100%;max-width:330px;margin-left:auto;margin-right:auto;justify-content:center;align-items:stretch;flex-direction:column}
.hero-copy .button{width:100%;text-align:center}
.hero-copy>.opening-status{margin-left:auto;margin-right:auto;text-align:left}
.hero-copy .rating{justify-content:center;flex-wrap:wrap;max-width:100%;gap:9px 12px}
.hero-scroll{right:50%;transform:translateX(50%);white-space:nowrap}
/* Lists share a text edge and keep descriptions below their own heading. */
.service-list article,.care-lines>div{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:14px;text-align:left}
.service-list article p{grid-column:2;grid-row:2}
.care-lines>div>span{grid-column:1}
.care-lines>div>p{grid-column:2}
.care-lines strong{display:inline-block}
.product-caption{text-align:center}
.products .text-link,.about .text-link{max-width:100%;text-align:center}
/* Keep controls and short captions centred within the gallery width. */
.carousel-controls{justify-content:center;flex-wrap:wrap;gap:12px 16px}
.gallery-footer{align-items:center;text-align:center}
.gallery-footer p{max-width:38ch}
.gallery figcaption{text-align:left}
/* The score and both review actions use one centre line. */
.score{justify-content:center}
.review-actions{align-items:center}
.review-actions .button{text-align:center}
.review-controls{justify-content:center}
#review-count{margin-left:0;text-align:center;flex-basis:100%}
.review-card{text-align:left}
/* Centre contact invitations; preserve day/time and service/price columns. */
.contact .actions{justify-content:center}
.contact-details{text-align:center}
.contact-details>a.button{display:flex;justify-content:center;text-align:center;width:100%}
.hours>.opening-status{margin-left:auto;margin-right:auto;text-align:left}
.hours dl{text-align:left}
.hours dl>div,.rate-row{align-items:baseline}
.hours dt,.rate-row>span{text-align:left}
.hours dd,.rate-row>strong{text-align:right}
.rate-tabs{justify-content:center}
.rate-footer{align-items:center;text-align:center}
.faq details{text-align:left}
footer{justify-content:center;text-align:center;gap:20px}
footer p{max-width:100%}
footer .brand{flex-basis:100%;display:flex;justify-content:center}

.hero-copy .hero-kicker{max-width:none;white-space:nowrap;font-size:clamp(9px,2.4vw,11px);letter-spacing:clamp(.5px,.2vw,1px)}
