/* All Six interface contract 1.0.0. Shared verbatim by theme and application shells.
   Font files and font-face declarations remain owned by each existing surface.
   Performance's reference composition and metric styles are deliberately outside
   the component selectors below. */
:root {
  --all-six-ui-version: "1.0.0";
  --all-six-paper: #f3eee6;
  --all-six-surface: #fbf8f3;
  --all-six-ink: #171714;
  --all-six-muted: #625d56;
  --all-six-cocoa: #6b4b3e;
  --all-six-blush: #ead8d1;
  --all-six-rule: #c5b9ad;
  --all-six-focus: #6b4b3e;
  --all-six-error: #8c3f35;
  --all-six-control-radius: 2px;
  --all-six-control-height: 44px;
  --all-six-space-1: 4px;
  --all-six-space-2: 8px;
  --all-six-space-3: 12px;
  --all-six-space-4: 16px;
  --all-six-space-6: 24px;
  --all-six-space-8: 32px;
  --all-six-font-body: var(--font-body-family, inherit);
  --all-six-font-heading: var(--font-heading-family, inherit);
  --all-six-text-body: 16px;
  --all-six-text-label: 14px;
  --all-six-text-small: 12px;
  --all-six-leading-body: 1.55;
  --all-six-duration: 160ms;
  --all-six-ease: cubic-bezier(.2,.7,.2,1);
}

[data-all-six-ui] ::selection { background: var(--all-six-blush); color: var(--all-six-ink); }
[data-all-six-ui] :focus-visible {
  outline: 2px solid var(--all-six-focus);
  outline-offset: 3px;
}
[data-all-six-ui] :is(input,textarea) { caret-color: var(--all-six-cocoa); }

/* Public sign-in and authenticated client actions share control behavior. */
body.as-safe-public-shell {
  --cream: var(--all-six-paper);
  --card: var(--all-six-surface);
  --ink: var(--all-six-ink);
  --muted: var(--all-six-muted);
  --line: var(--all-six-rule);
}
.as-safe-public-shell .as-safe-card {
  border-radius: 0;
  box-shadow: none;
}
.as-safe-public-shell :is(.as-safe-kicker,.as-safe-copy) { color: var(--all-six-muted); }
.as-safe-public-shell .as-safe-card h1 { font-size: clamp(30px,5vw,46px); line-height: 1.1; }
.as-safe-public-shell :is(button,input,select,textarea,.as-safe-site-book),
body.as-client-signed-in :is(.as-button,.as-client-refresh-link) {
  min-height: var(--all-six-control-height);
  border-radius: var(--all-six-control-radius);
}
.as-safe-public-shell :is(input,select,textarea) { font-size: var(--all-six-text-body); }
.as-safe-public-shell .as-safe-site-header nav a { display: inline-flex; align-items: center; min-height: 44px; }
.as-safe-public-shell .as-safe-status { color: var(--all-six-muted); }
.as-safe-public-shell [role="alert"] { color: var(--all-six-error); }

/* Shop: retain existing product layouts, imagery, cart and variation logic. */
.as-shop-beta {
  --as-ink: var(--all-six-ink);
  --as-muted: var(--all-six-muted);
  --as-paper: var(--all-six-paper);
  --as-soft: var(--all-six-surface);
  --as-line: var(--all-six-rule);
  --as-sage: var(--all-six-cocoa);
  background: var(--all-six-paper);
}
.as-shop-beta :is(button,input,select,textarea) {
  min-height: var(--all-six-control-height);
  border-radius: var(--all-six-control-radius);
}
.as-shop-beta :is(input,select,textarea) { font-size: 16px; }
.as-shop-beta :is(button,a):focus-visible { outline: 2px solid var(--all-six-focus); outline-offset: 3px; }
.as-shop-beta :is(button,input,select):disabled { cursor: not-allowed; }
.as-shop-beta :is([role="status"],[role="alert"]) { overflow-wrap: anywhere; }
.as-shop-beta :is(.as-shop-beta__hero,.as-shop-beta__product-card,.as-shop-beta__product-media,.as-shop-beta__product-placeholder) { border-radius: 0; box-shadow: none; }
.as-shop-beta .as-shop-beta__hero-overlay { background: rgba(23,23,20,.65); }
.as-shop-beta .as-shop-beta__hero-placeholder { background: var(--all-six-ink); }
.as-shop-beta .as-shop-beta__product-placeholder { background: var(--all-six-surface); }
.as-shop-beta :is(.as-shop-beta__eyebrow,.as-shop-beta__label,.as-shop-beta__product-collection) { font-size: var(--all-six-text-small); }
.as-shop-beta .as-shop-beta__hero .as-shop-beta__eyebrow { color: var(--all-six-blush); }
.shop-navigation a { min-height: 44px; display: inline-flex; align-items: center; }

/* The existing booking drawer keeps its grid, step logic and media framing. */
.as-booking-drawer {
  --as-ink: var(--all-six-ink);
  --as-muted: var(--all-six-muted);
  --as-paper: var(--all-six-surface);
  --as-soft: var(--all-six-paper);
  --as-line: var(--all-six-rule);
}
.as-booking-drawer :is(button,input,select,textarea) {
  min-height: var(--all-six-control-height);
  border-radius: var(--all-six-control-radius);
}
.as-booking-drawer :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { font-size: 16px; }
.as-booking-drawer :is(input[type="checkbox"],input[type="radio"]) { min-height: auto; }
.as-booking-drawer :is(button,input,select):focus-visible { outline: 2px solid var(--all-six-focus); outline-offset: 3px; }
.as-booking-drawer :is([role="status"],[role="alert"]) { overflow-wrap: anywhere; }

/* Server-rendered Staff tools: dense task layout, shared controls and readable states. */
[data-all-six-ui] .shell {
  --paper: var(--all-six-paper);
  --card: var(--all-six-surface);
  --ink: var(--all-six-ink);
  --muted: var(--all-six-muted);
  --wine: var(--all-six-cocoa);
  --line: var(--all-six-rule);
}
[data-all-six-ui] .shell :is(.button,.menu-button,.return-link,.session button,.nav-head button,.utility a,.health-item__action) {
  min-height: var(--all-six-control-height);
  border-radius: var(--all-six-control-radius);
}
[data-all-six-ui] .shell :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  min-height: var(--all-six-control-height);
  border-radius: var(--all-six-control-radius);
  font-size: 16px;
}
[data-all-six-ui] .shell :is(.staff-nav a,.button,.menu-button,.utility a):focus-visible {
  outline: 2px solid var(--all-six-focus);
  outline-offset: 3px;
}
[data-all-six-ui] .shell :is(.empty,.notice,.sync-result,.form-status) { overflow-wrap: anywhere; }
[data-all-six-ui] .shell :is(.panel,.notice,.empty,.sync-result) { border-radius: 0; box-shadow: none; }
[data-all-six-ui] .shell .sync-result[data-state="success"] { background: var(--all-six-surface); color: var(--all-six-ink); }
[data-all-six-ui] .shell .sync-result[data-state="error"] { background: var(--all-six-blush); color: var(--all-six-error); }

@media (prefers-reduced-motion: reduce) {
  [data-all-six-ui] { scroll-behavior: auto; }
  [data-all-six-ui] :is(.as-shop-beta,.as-booking-drawer,.as-safe-public-shell,.shell) *,
  [data-all-six-ui].as-safe-public-shell * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
