/* Shared fluid frame. Full-width backgrounds, bounded reading and working areas. */
:root { --site-content-width:1600px; --site-gutter:clamp(16px,4vw,64px); --site-inline:max(var(--site-gutter),calc((100% - var(--site-content-width))/2)); }
body,body.showcase-v2 { width:100%; max-width:none; min-width:0; margin:0; }
.clinic-header { padding-inline:var(--site-inline); }
.clinic-header :is(.clinic-nav,.clinic-header-actions) { min-width:0; }
.clinic-footer { margin-inline:var(--site-inline); }
.clinic-footer .clinic-footer-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.55fr) minmax(0,.8fr); }
.clinic-footer .clinic-footer-grid > * { min-width:0; }
.clinic-footer .clinic-footer-brand { min-width:0; }
.clinic-footer .clinic-footer-bottom { overflow-wrap:anywhere; }
body .source-content { width:calc(100% - 2 * var(--site-gutter)); max-width:1440px; margin-inline:auto; min-width:0; }
body :is(.customer-page,.booking-page,.visit-page,.staff-page) { width:calc(100% - 2 * var(--site-gutter)); margin-inline:auto; min-width:0; }
body .customer-page { max-width:1280px; }
body :is(.booking-page,.visit-page) { max-width:1240px; }
body .manage-page { max-width:900px; }
body .staff-page { max-width:1440px; }
body :is(.catalogue-inner,.catalogue-shortcut) { width:calc(100% - 2 * var(--site-gutter)); }
:is(.source-content,.customer-page,.booking-page,.visit-page,.staff-page) :is(h1,h2,h3,h4,p,li,legend,a,button) { overflow-wrap:anywhere; }
:is(.customer-page,.booking-page,.visit-page,.staff-page) :is(button,input,select,textarea) { max-width:100%; }
.customer-page .account-heading { flex-wrap:wrap; }
.customer-page .account-heading > .customer-button { width:auto; }
.customer-page .customer-photo-preview-row { flex-wrap:wrap; }
#customer-google-button { width:100%; overflow:visible; }
.staff-page .staff-button { min-width:0; max-width:100%; white-space:normal; }
.clinic-catalogue .catalogue-intro { flex-wrap:wrap; }
.clinic-catalogue .catalogue-pagination { flex-wrap:wrap; }
.source-content :is(.actions,.ulc-cta-row,.page-cta,.post-meta) { flex-wrap:wrap; }

@media(max-width:960px) {
  .clinic-header { padding-inline:var(--site-gutter); }
  .clinic-footer .clinic-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px) {
  .clinic-header { padding-inline:16px; }
  .clinic-header .clinic-nav { max-height:calc(100vh - 76px); max-height:calc(100svh - 76px); overflow-y:auto; overscroll-behavior:contain; }
  .clinic-footer .clinic-footer-brand { flex-wrap:wrap; }
  .customer-page .customer-intro h1,.booking-page .booking-intro h1,.visit-page h1,.staff-page .staff-heading h1 { font-size:clamp(32px,8vw,48px); }
}
@media(max-width:360px) {
  .clinic-header { padding-inline:12px; gap:7px; }
  .clinic-footer .clinic-footer-grid { grid-template-columns:minmax(0,1fr); }
  .clinic-footer .clinic-footer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .clinic-footer .clinic-footer-brand { gap:16px; }
  .customer-page :is(.customer-card,.account-card,.account-contact,.account-pending) { padding:18px 14px; }
  .customer-page .customer-card h2 { font-size:28px; }
  .customer-page .customer-visit-links a { padding:16px; }
  .customer-page .account-heading { gap:10px; }
  .customer-page .account-card-heading h3 { min-width:0; flex-basis:100%; }
  .clinic-catalogue .catalogue-filters { grid-template-columns:minmax(0,1fr); }
  .clinic-catalogue .catalogue-pagination { gap:10px; }
  .catalogue-pagination span { flex:1 1 100%; order:1; text-align:center; }
  .catalogue-detail dl>div { flex-wrap:wrap; }
  .catalogue-detail dd { text-align:left; }
  .booking-page .booking-progress { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .booking-page .booking-review-list > div { grid-template-columns:minmax(0,1fr); gap:4px; }
  .booking-page .booking-aside { padding:20px 16px; }
  .staff-page :is(.staff-booking-hours-row,.staff-booking-readiness,.staff-status-control) { grid-template-columns:minmax(0,1fr); }
  .staff-page :is(.staff-booking-editor,.staff-booking-review,.staff-booking-pending,.staff-settings-form,.staff-invite-form,.staff-team-card,.staff-activation) { padding:16px 12px; }
  .staff-page :is(.staff-heading,.staff-queue-heading) { flex-wrap:wrap; }
  .staff-page .staff-account { text-align:left; max-width:100%; }
  .staff-page .staff-queue-heading > .staff-button { margin-left:0; }
  .source-content :is(.ulc-cta-band,.close,.booking-handoff,.privacy-notice) { padding-inline:16px; }
  .source-content :is(.btn,.button) { max-width:100%; white-space:normal; }
}
/* Small windows and zoomed layouts keep every header action available. */
@media(max-width:310px) {
  .clinic-header { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:8px 12px; height:auto; min-height:112px; padding:8px 12px; }
  .clinic-header .clinic-logo-link { width:96px; min-width:0; grid-column:1; grid-row:1; }
  .clinic-header .clinic-menu-toggle { grid-column:2; grid-row:1; }
  .clinic-header .clinic-header-actions { grid-column:1/-1; grid-row:2; width:100%; margin:0; gap:8px; }
  .clinic-header .clinic-book { flex:1; }
  .clinic-header .clinic-nav { max-height:calc(100svh - 118px); }
}
