/* Reading comfort: preserve the editorial display scale and enlarge functional copy. */
:root{--reading:1.0625rem;--support:.9375rem;--small-text:.875rem}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--reading);line-height:1.7}
.hero .intro,.intro-section p,.section-heading p,.service p,.step p,.approach-text>p,.approach-detail p,.local-section p,.faq-heading p,.faq-list p,.page-hero p,.page-copy p,.page-copy li,.work-intro p,.care-values-grid p,.faq-answer p,.legal p,.legal li,.hours-drawer-content p,.hours-drawer-content li,.booking-head>p,.contact-intro>p,.success-panel p{font-size:var(--reading);line-height:1.7}
.hero .intro{max-width:29rem;color:#f5f0df}
.section-heading p{max-width:24rem}.intro-section p{max-width:39rem}
.page-copy p,.page-copy li,.legal p,.legal li,.faq-answer p{max-width:68ch}
.hero .quiet-note,.closing p,.side-note p,.side-note li,.notice,.principles>div,.included-care,.payment-clarity,.hours-suggestion,.time-guidance>p,.check-label,.time-guidance .check-label,.form-help,.request-recap,.no-time,.calendar-help,.date-label{font-size:var(--support);line-height:1.65}
.form-help{color:#465660}.service p,.section-heading p{color:#465660}
.service .service-price-note{font-size:var(--support);line-height:1.65;min-height:0}
small,.small,.check-label small,.estimate-qualifier,.booking-summary .estimate-qualifier,.estimate-lines div,.estimate-date,.summary-note,.booking-summary .summary-note,.summary-trust,.booking-reassurance,.submit-button small,.guide-table caption,.guide-table thead th,.services-foot,.review figcaption,.review figcaption span,.service .tag,.service-choice,.contact-email,.contact-phone{font-size:var(--small-text);line-height:1.6}
.summary-trust span{display:block}.booking-reassurance{gap:12px 20px}
.field label,legend,.hours-label label,.contact-field label{font-size:1rem;line-height:1.5}
input,select,textarea,.contact-field input,.contact-field textarea,.work-form input,.work-form textarea,#hours{font-size:1rem;line-height:1.5;min-height:50px}
.choice span,.time-choice,.calendar-grid button,.calendar-nav strong{font-size:1rem}
.choice span,.time-choice{min-height:50px}.calendar-grid button{min-height:44px}
.calendar-grid .weekday{font-size:.875rem;color:#465660}.calendar-nav button{min-width:44px;min-height:44px}
.faq-list summary,.faq-topic summary{font-size:1.0625rem;line-height:1.55;padding-right:32px;min-height:52px}
.button,.hero .button,.closing .button,.service .service-booking,.submit-button,.message-panel .contact-send{font-size:1rem;line-height:1.5;min-height:54px}
.text-link,.service .service-actions .text-link,.guide-link,.booking-summary>.guide-link,.small-action,.estimate-toggle,.area-actions .area-enquire,.area-details,.local-page-layout .side-note .text-link,.local-service-links,.faq-topics>a,.faq-topics .text-link,.guide-jumps{font-size:var(--support);line-height:1.5;min-height:44px}
.local-service-links{align-items:center}.area-actions{gap:24px;flex-wrap:wrap;justify-content:flex-start}.area-actions .area-enquire{font-weight:600}.area-details{white-space:normal}
.eyebrow,.hero .eyebrow,.section-label,.care-values-grid .eyebrow,.booking-summary .eyebrow,.hours-drawer-header .eyebrow{font-size:.8125rem;letter-spacing:.12em;line-height:1.6}
.service-no{color:#52616a}.step>span,.form-heading>span,.breadcrumb,.hero-bottom,.approach-photo .caption,.area-list a small{font-size:var(--small-text);line-height:1.6}
.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.breadcrumb span[aria-hidden]{margin:0 6px}
.approach-detail h3{font-size:1rem;line-height:1.5}
.brand-label,.nav .brand-label{font-size:.75rem;letter-spacing:.09em;line-height:1.6}
.menu-toggle,.language-switch,.menu .menu-phone{font-size:.9375rem;line-height:1.5;min-height:44px}
.menu{overflow:auto;max-height:calc(100dvh - 120px)}
.footer h3,.footer-areas h3{font-size:.8125rem;line-height:1.6}.footer p,.footer a,.footer button,.footer-links a,.footer-brand p,.footer-area-links a,.footer-bottom,.footer-bottom a,.footer-bottom button{font-size:var(--small-text);line-height:1.65}
.footer-grid>*{min-width:0}.footer a{overflow-wrap:anywhere}.footer-links{gap:12px}.footer-legal{flex-wrap:wrap}
.action-dock .floating-cta,.floating-cta{font-size:1rem;line-height:1.5;min-height:56px}
.message-launcher-label,.message-greeting [data-open-message],.message-greeting span,.message-panel-header p,.message-book-link{font-size:var(--small-text);line-height:1.6}
.message-panel-header .eyebrow{font-size:.75rem}.message-greeting{width:270px}
.contact-privacy,.message-panel .contact-privacy{font-size:var(--small-text)!important;line-height:1.65!important}
.contact-status,.message-panel .contact-status{font-size:var(--support)!important;line-height:1.6!important}
.contact-secure-send{font-size:var(--support)}.privacy-dialog p,.privacy-dialog button{font-size:var(--support);line-height:1.65}
.guide-table{font-size:1rem;line-height:1.6}.hours-drawer-content .small{font-size:var(--small-text)}
:focus-visible{outline-color:#456b89}.mesh :focus-visible,.site-header :focus-visible,.footer :focus-visible{outline-color:#e7cd86}
@media(max-width:720px){
 :root{--reading:1.0625rem}
 .nav{gap:8px}.brand{gap:9px}.nav .brand-label{font-size:.6875rem;letter-spacing:.045em;padding-left:9px}.brand img{width:38px;height:51px}
 .language-switch{margin-left:auto;padding:8px 4px;min-width:30px;justify-content:center}.menu-toggle{font-size:.875rem;gap:8px;padding-left:0}.menu-toggle i{width:18px}
 .hero-bottom{gap:18px}.hero-bottom span:last-child{max-width:42%}.hero-bottom span:first-child{max-width:55%}
 .footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px}.footer-brand p{max-width:none}.footer-brand{gap:24px}
 .field-grid{gap:24px 14px}.field-grid>*{min-width:0}.choice-row{flex-wrap:wrap}.choice{flex:1 1 120px}
 .action-dock .floating-cta{font-size:.9375rem;gap:14px;padding:15px 19px;max-width:calc(100vw - 96px)}
 .action-dock .floating-cta .arrow{width:25px;flex-shrink:0}.area-actions{gap:14px 26px}.area-actions .area-enquire,.area-details{font-size:.9375rem}
 .message-greeting{width:250px}.message-panel{max-height:calc(100dvh - 24px)}
 .faq-topics>a{font-size:.9375rem}.chinese-page .page-copy p{font-size:var(--reading)}
}
@media(max-width:360px){.nav .brand-label{font-size:.65625rem}.nav{gap:6px}.brand img{width:34px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.section-label{letter-spacing:.06em}}

.button{max-width:100%;gap:24px}.button .arrow{flex-shrink:0}.side-note .button{width:100%;gap:16px;padding-inline:18px}
.page-copy p a,.legal p a{text-decoration:underline;text-underline-offset:4px}
.guide-lead{font-size:var(--reading)!important}.brand{min-width:0}
.area-actions{flex-wrap:nowrap}.area-actions .area-enquire{flex:0 1 auto;min-width:0}.area-details{flex:0 0 auto}.area-actions .area-enquire .arrow{flex-shrink:0}

/* Let paired labels share the available row height, so their controls align. */
@media(max-width:720px){
 .booking-form .field-grid>.field:not(.full):not([hidden]){display:flex;flex-direction:column;align-self:stretch}
 .booking-form .field-grid>.field:not(.full)>label{flex:1}
 .booking-form .field-grid>.field:not(.full)>input,.booking-form .field-grid>.field:not(.full)>select{flex-shrink:0}
}
