/* AORA webapp — Identity Bible, Edition 1.0 (September 2026).
   Luxury wellness sanctuary with medical credibility: warm, calm, refined.
   Warm cream grounds everything; dusty navy anchors; muted green and soft
   gold appear as selective accents. Gold never fills a button; serif headings pair with readable sans-serif controls. Generous whitespace, editorial pacing. */

.visit-next,.staff-next{padding:clamp(1.25rem,3vw,2.25rem);border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:var(--radius-sm);background:var(--card)}
.staff-next{padding:1.5rem;border-top-color:var(--sage-deep)}
.visit-next h3,.staff-next h3{margin:.35rem 0 .75rem;font-size:clamp(1.5rem,3vw,2rem)}
.visit-next>p:not(.eyebrow){max-width:65ch}
.visit-summary{display:grid;gap:.35rem;padding:1rem 0;margin:.5rem 0;border-block:1px solid var(--line)}
.visit-progress{display:flex;gap:.75rem;padding:1.5rem 0 0;margin:1.5rem 0 0;border-top:1px solid var(--line);list-style:none;justify-content:space-between}
.visit-progress li{display:grid;justify-items:center;gap:.5rem;color:var(--muted);font-size:.85rem}
.visit-progress li span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-full);background:var(--cream-deep)}
.visit-progress li[aria-current]{font-weight:700;color:var(--ink)}
.visit-progress li[aria-current] span{background:var(--navy);color:var(--card)}
.visit-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}
.visit-shortcuts a{display:grid;gap:.5rem;text-decoration:none}
.visit-shortcuts a span{font-size:.9rem;color:var(--muted)}
.visit-home-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem}
.text-action{font:inherit;color:var(--ink);background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.5rem .25rem;min-height:44px}
.staff-next{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:2rem;margin-block:1rem}
.staff-next-visit{border-left:1px solid var(--line);padding-left:1.5rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.5rem}
.staff-next-visit>strong{font-size:1.25rem}.staff-next-visit>span{font-size:.85rem;color:var(--muted)}
.priority-list{padding:0;list-style:none}.priority-list li{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.priority-list li>div{display:grid;gap:.35rem}.priority-list small{color:var(--muted)}
.staff-tool-search{display:grid;gap:.4rem;padding:.75rem;margin-bottom:.5rem;min-width:0}.staff-tool-search input{width:100%;min-width:0;min-height:44px;padding:.65rem .75rem;font:inherit;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--card);color:var(--ink)}.staff-tool-search span{font-size:.85rem}
.workspace-nav [hidden]{display:none!important}
.booking-steps{padding:0;display:flex;gap:1rem;list-style:none;flex-wrap:wrap;margin:1.5rem 0}.booking-steps li{font-weight:600;font-size:.9rem;border-bottom:2px solid var(--line);padding-bottom:.5rem}
.booking-review{padding:1rem;border-left:3px solid var(--sage);background:var(--card)}
.booking-review[hidden],.desk-payment-options [hidden]{display:none}
@media(max-width:44rem){.visit-shortcuts,.staff-next{grid-template-columns:1fr}.staff-next-visit{border-left:0;border-top:1px solid var(--line);padding:1rem 0 0}.visit-progress{gap:.25rem}.visit-progress li{font-size:.72rem}.priority-list li{align-items:flex-start;gap:.75rem}.priority-list li>div{min-width:0;overflow-wrap:anywhere}.priority-list .button{padding:.65rem;flex-shrink:0}}

:root {
  /* Canonical production tokens from the Identity Bible. */
  --aora-cream: #F4EEE3;
  --aora-cream-light: #FBF8F2;
  --aora-cream-deep: #E9E0D0;
  --aora-navy: #2F3E52;
  --aora-navy-light: #E1E5EA;
  --aora-navy-deep: #1E2836;
  --aora-blue: #A9BCCB;
  --aora-blue-deep: #5F7A90;
  --aora-taupe: #B7A796;
  --aora-taupe-deep: #6F6256;
  --aora-taupe-light: #E6DED4;
  --aora-green: #7E8B6F;
  --aora-green-light: #DDE2D4;
  --aora-green-deep: #56624A;
  --aora-gold: #B08A5A;
  --aora-gold-light: #EADCC6;
  --aora-gold-deep: #8A6538;

  /* Working aliases onto the canonical tokens. */
  --cream: var(--aora-cream);
  --cream-deep: var(--aora-cream-deep);
  --ink: var(--aora-navy);            /* dusty navy, words */
  --navy: var(--aora-navy);           /* dusty navy, surfaces */
  --navy-deep: var(--aora-navy-deep);
  --blue: var(--aora-blue);
  --taupe: var(--aora-taupe);         /* mushroom */
  --sage: var(--aora-green);          /* muted green */
  --sage-deep: var(--aora-green-deep);
  --gold: var(--aora-gold);           /* soft gold, selective: hairlines, numerals, the mark */
  --gold-deep: var(--aora-gold-deep);
  --line: var(--aora-taupe-light);
  --card: var(--aora-cream-light);
  --muted: #56677D;                  /* navy 500 on cream, 5.2:1 — secondary text */
  --control-border: #827867;
  --radius-zero: 0;
  --radius-xxs: 2px;
  --radius-3: 3px;
  --radius-sm: 4px;
  --radius-5: 5px;
  --radius-6: 6px;
  --radius-7: 7px;
  --radius-md: 8px;
  --radius-10: 10px;
  --radius-lg: 12px;
  --radius-14: 14px;
  --radius-xl: 16px;
  --radius-20: 20px;
  --radius-pill-compact: 99px;
  --radius-pill: 999px;
  --radius-full: 50%;
  --radius-top: var(--radius-md) var(--radius-md) var(--radius-zero) var(--radius-zero);
  --radius-arch-editorial: 48% 48% var(--radius-3) var(--radius-3);
  --radius-arch-editorial-mobile: 45% 45% var(--radius-3) var(--radius-3);
  --radius-arch-service: 42% 42% var(--radius-3) var(--radius-3);
  --radius-arch-member: 48% 48% var(--radius-sm) var(--radius-sm);
  --radius-arch-xl: 48% 48% var(--radius-xl) var(--radius-xl);
  --radius-arch-tablet: 42% 42% var(--radius-xl) var(--radius-xl);
  --control-radius: var(--radius-md);
  --label-size: .875rem;
  --label-size-small: .8rem;
  --surface-soft: #e6e8de;
  --surface-card: #faf8f2;
  --surface-input: #fffdf8;
  --text-on-dark: #ffffff;
  --text-success: #35432c;
  --text-error: #763b29;
  --surface-error: #f6e6df;
  --workspace-text: #293e4a;
  --surface-workspace-muted: #e8e4d9;
  --surface-workspace-green: #e4ece5;
  --surface-workspace-warm: #f2e8d7;
  --text-on-dark-muted: #dce5e3;
  --text-subtle: #566269;
  --text-caption: #4E5E70;
  --border-status: #b7bfb0;
  --radius: var(--radius-md);         /* Back-compatible shared control geometry. */
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
}

/* Shared brand, two presentations: editorial website and focused member app. */
.experience-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.experience-gallery figure { margin: 0; }
.experience-gallery img { width: 100%; height: 20rem; object-fit: cover; }
figcaption { color: var(--muted); font-size: .94rem; margin-top: .75rem; line-height: 1.6; }
.visit-detail { border-top: 1px solid var(--line); padding: 1.25rem 0; }
.visit-detail:last-child { border-bottom: 1px solid var(--line); }
.visit-detail summary, .install-guide summary { cursor: pointer; min-height: 44px; font-size: 1.2rem; }
.visit-detail > div { padding: .5rem 1rem; max-width: 46rem; }
.welcome-form { max-width: 42rem; }
.welcome-form fieldset { border: 1px solid var(--line); padding: 1.5rem; }
.welcome-form legend { padding: 0 .5rem; }
.welcome-option { display: flex; gap: 1rem; align-items: center; min-height: 56px; }
.welcome-option input { width: 1.25rem; height: 1.25rem; accent-color: var(--navy); }
.welcome-form select { display: block; width: 100%; max-width: 22rem; min-height: 48px; background: var(--card); color: var(--ink); border: 1px solid var(--muted); font: inherit; padding: .5rem; margin: .5rem 0; }
.welcome-card { margin-top: 2rem; }
.app-footer { border-top: 1px solid var(--line); padding-top: 1.5rem; padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
.app-footer a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: .2rem; }
.member-app .wrap { max-width: 880px; }
.member-app .page-head { padding-top: 2rem; padding-bottom: 1.5rem; }
.member-app .page-head h1 { font-size: clamp(2rem, 5vw, 3.2rem); }
.member-app .section { padding-top: 2rem; padding-bottom: 2rem; }
.member-app .band { padding: 2rem; }
.member-app .cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.member-app .nav-list { justify-content: space-between; }
.install-guide { max-width: 44rem; }
@media (max-width: 44rem) {
  .experience-gallery { grid-template-columns: 1fr; }
  .header-actions { flex-wrap: wrap; }
  .member-app .header-row { gap: .5rem; }
  .member-app .nav-list { justify-content: flex-start; }
  .member-app .nav-link { padding-left: .5rem; padding-right: .5rem; }
  .member-app .band { padding: 1.25rem; }
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--serif);
  font-optical-sizing: auto;
  font-size: 1.0625rem;   /* 17px body */
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { border-radius: var(--radius-zero); }  /* bible: images are square */

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.6em;
  color: var(--navy-deep);
}

h1 { font-size: clamp(2.75rem, 5vw, 3.5rem); line-height: 1.1; }   /* H1 56 / 1.1 · 300 */
h2 { font-size: clamp(2rem, 3.5vw, 2.5rem); }                       /* H2 40 / 1.15 · 300 */
h3 { font-size: 1.75rem; font-weight: 400; line-height: 1.25; }     /* H3 28 / 1.25 · 400 */

p { margin: 0 0 1em; }

a { color: var(--sage-deep); }
a:hover { color: var(--navy); }

.wrap {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.skip {
  position: absolute;
  left: 1rem; top: -4rem;
  background: var(--navy);
  color: #fff;
  padding: 0.6rem 1rem;
  border-radius: var(--radius);
  z-index: 100;
  transition: top 0.15s;
}
.skip:focus { top: 1rem; color: #fff; }

.eyebrow {
  font-family: var(--serif);
  font-size: 0.75rem;      /* kicker: 12px caps, +0.28em */
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--sage-deep);
  margin: 0 0 1rem;
}

.lede {
  font-size: 1.3125rem;   /* lead 21 / 1.55 · 300 */
  font-weight: 300;
  line-height: 1.55;
  max-width: 42.5rem;     /* body measure never wider than 680px */
  color: var(--muted);
}

.small { font-size: 0.875rem; color: var(--muted); }   /* caption 14 / 1.5 · 400 */

/* ---------- ribbon ---------- */
.ribbon {
  background: var(--navy);
  color: var(--cream);
  text-align: center;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.55rem 1rem;
}

/* ---------- header ---------- */
.site-header {
  background: rgba(244, 238, 227, 0.94);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 50;
}

.header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}

.wordmark img {
  height: 2.1rem;
  width: auto;
  display: block;
}
.wordmark:is(a) {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  padding-block: calc((44px - 2.1rem) / 2);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.lang-toggle {
  display: inline-flex;
  align-items: center;
  min-height: 3rem;   /* 48px target */
  font-family: var(--serif);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.4rem 0.9rem;
  background: var(--card);
}
.lang-toggle:hover { border-color: var(--gold); color: var(--navy); }

.site-nav { padding-bottom: 0.2rem; }
.nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  align-items: center;
}
.nav-item { margin: 0; }
.nav-link {
  display: inline-block;
  min-height: 2.75rem;   /* 44px accessible target */
  line-height: 1.4;
  padding: 0.6rem 0.85rem;
  border-radius: var(--radius);
  text-decoration: none;
  color: var(--ink);
  font-weight: 500;
  font-size: 0.95rem;
}
.nav-link:hover { background: var(--cream-deep); }
.nav-link[aria-current="page"], .nav-summary.is-current {
  background: var(--navy);
  color: var(--cream);
}
.nav-group { position: relative; }
.nav-group summary {
  list-style: none;
  cursor: pointer;
}
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary::after {
  content: " ▾";
  font-size: 0.8em;
  color: var(--gold);
}
.nav-panel {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0.5rem;
  position: absolute;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 12px 32px rgba(30, 40, 54, 0.12);   /* elevation: overlays only */
  min-width: 14rem;
  z-index: 60;
}
.nav-panel a {
  display: block;
  padding: 0.55rem 0.8rem;
  border-radius: var(--radius);
  text-decoration: none;
  color: var(--ink);
  font-size: 0.95rem;
}
.nav-panel a:hover { background: var(--cream-deep); }
.nav-panel a[aria-current="page"] { background: var(--navy); color: var(--cream); }

/* ---------- hero / page head ---------- */
.hero {
  padding: clamp(5rem, 12vw, 10rem) 0 clamp(4rem, 8vw, 6rem);
  text-align: center;
  position: relative;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 45% at 50% 30%, rgba(176, 138, 90, 0.12), transparent 70%);
  pointer-events: none;
}
.hero > * { position: relative; }
.hero h1 {
  font-size: clamp(3rem, 7vw, 4.5rem);   /* display 72 / 1.05 · 300 */
  line-height: 1.05;
  margin-bottom: 1.2rem;
}
.hero .lede { margin: 0 auto 2rem; }
.hero-actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.page-head {
  padding: clamp(4rem, 9vw, 8rem) 0 clamp(2rem, 5vw, 3rem);
  max-width: 52rem;
}
.page-head p { max-width: 42.5rem; }

/* ---------- buttons ---------- */
/* Bible: primary is dusty navy — one per view. Gold never fills a button. */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;   /* 48px target */
  font-family: var(--ui-font);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.02em;
  color: var(--cream);
  background: var(--navy);
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  padding: 0.85rem 2rem;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.4s ease-out, color 0.4s ease-out, border-color 0.4s ease-out;
}
.button:hover {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
  color: var(--cream);
}
.button:disabled {
  background: var(--taupe);
  border-color: var(--taupe);
  color: var(--cream);
  cursor: not-allowed;
  opacity: 0.75;
}
.button-alt {
  background: transparent;
  color: var(--navy);
  border-color: var(--control-border);
}
.button-alt:hover {
  background: var(--cream-deep);
  color: var(--navy-deep);
  border-color: var(--gold-deep);
}
/* On dark bands the primary reverses to a cream fill so it stays one clear action. */
.band .button {
  background: var(--cream);
  border-color: var(--cream);
  color: var(--navy-deep);
}
.band .button:hover {
  background: var(--cream-deep);
  border-color: var(--cream-deep);
  color: var(--navy-deep);
}

/* ---------- check-in ---------- */
.member-arrival {
  text-align: center;
  padding: clamp(2rem, 6vw, 4rem) 0 3rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.member-arrival h1 { font-size: clamp(2rem, 6vw, 3.2rem); margin-bottom: 1.25rem; }
.arrival-checkin {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  width: min(100%, 30rem);
  min-height: 112px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  background: var(--navy);
  color: var(--cream);
  text-decoration: none;
  box-shadow: 0 8px 24px rgb(47 62 82 / 10%);
  transition: background .2s ease, box-shadow .2s ease;
}
.arrival-checkin-label { font-size: clamp(1.75rem, 6vw, 2.2rem); line-height: 1.2; }
.arrival-checkin-arrow { font-size: 2rem; color: var(--aora-gold-light); }
.arrival-checkin:hover { background: var(--navy-deep); color: var(--cream); box-shadow: 0 10px 28px rgb(47 62 82 / 16%); }
.arrival-checkin:focus-visible { outline: 3px solid var(--gold-deep); outline-offset: 5px; }
.arrival-note { color: var(--muted); margin: 1rem 0 .65rem; }
.arrival-secondary { font-size: .95rem; text-underline-offset: .25em; }
@media (max-width: 480px) {
  .member-arrival { padding-top: 1.5rem; padding-bottom: 2rem; }
  .arrival-checkin { min-height: 96px; padding: 1.25rem 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { .arrival-checkin { transition: none; } }
.hero-checkin { margin: 0 0 1.25rem; }
.button-checkin {
  font-size: 1.15rem;
  padding: 1.05rem 3.25rem;
}
.purpose-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}
.purpose-card {
  font: inherit;
  text-align: left;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem 1.5rem;
  cursor: pointer;
  transition: border-color 0.4s ease-out, background 0.4s ease-out;
}
.purpose-card:hover {
  border-color: var(--gold-deep);
  background: var(--cream-deep);
}
.purpose-title { display: block; font-weight: 500; font-size: 1.1rem; margin-bottom: 0.3rem; }
.purpose-sub { display: block; color: var(--muted); font-size: 0.95rem; line-height: 1.5; }
.checkin-summary { font-size: 1.3rem; }

/* ---------- meditation library ---------- */
.med-card .eyebrow { margin-bottom: 0.25rem; }
.session-count {
  color: var(--muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.85rem;
  margin-bottom: 0;
}
.session-cue {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  line-height: 1.45;
  max-width: 42.5rem;
  margin: 1.25rem 0 1.75rem;
  min-height: 7rem;
}
.session-progress {
  height: 0.5rem;
  max-width: 42.5rem;
  background: var(--cream-deep);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.session-progress > div {
  height: 100%;
  width: 0;
  background: var(--gold);
  border-radius: var(--radius-pill);
  transition: width 1s linear;
}
.session-meta { color: var(--muted); margin-top: 0.9rem; }
.session-controls { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.25rem; }
.text-button {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.text-button:hover { color: var(--navy-deep); }

/* ---------- breath room ---------- */
.pref-rows { display: grid; gap: 0.75rem; max-width: 34rem; }
.pref-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  cursor: pointer;
}
.pref-row > span { display: flex; flex-direction: column; font-weight: 600; }
.pref-sub { font-weight: 400; color: var(--muted); font-size: 0.9rem; }
.switch {
  appearance: none;
  -webkit-appearance: none;
  width: 3.25rem;
  height: 1.75rem;
  border-radius: var(--radius-pill);
  background: var(--cream-deep);
  border: 1px solid var(--line);
  position: relative;
  cursor: pointer;
  flex: none;
  transition: background 0.2s, border-color 0.2s;
  margin: 0;
}
.switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: calc(1.75rem - 6px);
  height: calc(1.75rem - 6px);
  border-radius: var(--radius-full);
  background: var(--card);
  box-shadow: 0 1px 3px rgba(30, 40, 54, 0.3);
  transition: left 0.2s;
}
.switch:checked { background: var(--sage-deep); border-color: var(--sage-deep); }
.switch:checked::after { left: calc(100% - 1.75rem + 2px); }
.switch:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

.fire-warning { border-left: 4px solid var(--gold); margin-bottom: 1.5rem; }
.fire-warning ul { margin: 0.75rem 0 1.25rem 1.25rem; }
.fire-warning h4 { margin-top: 1.5rem; }
.ack-row {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  cursor: pointer;
  font-weight: 600;
  margin-top: 1rem;
}
.ack-row input {
  width: 1.3rem;
  height: 1.3rem;
  margin-top: 0.15rem;
  flex: none;
  accent-color: var(--sage-deep);
}

.breath-stage { display: flex; justify-content: center; padding: 1.5rem 0 0.5rem; }
.breath-circle {
  width: clamp(180px, 42vw, 240px);
  aspect-ratio: 1;
  border-radius: var(--radius-full);
  transform: scale(0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 38%, var(--card) 0%, var(--cream-deep) 58%, #D8CCB2 100%);
  border: 3px solid var(--gold);
  box-shadow: 0 0 0 14px rgba(176, 138, 90, 0.1);
}
.breath-circle.rapid { animation: breath-pulse 2s ease-in-out infinite; }
@keyframes breath-pulse {
  0%, 100% { transform: scale(0.62); }
  50% { transform: scale(0.92); }
}
.breath-word {
  font-family: var(--serif);
  font-size: 1.5rem;
  color: var(--navy);
  text-align: center;
  padding: 0 1rem;
}
@media (prefers-reduced-motion: reduce) {
  .breath-circle { transition: none !important; }
  .breath-circle.rapid { animation: none; }
  .switch::after { transition: none; }
}

[hidden] { display: none !important; }

.text-link {
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid var(--gold-deep);
  padding-bottom: 1px;
}
.text-link:hover { border-bottom-width: 2px; }

/* ---------- sections / cards / bands ---------- */
.section { padding: clamp(4rem, 9vw, 10rem) 0; }   /* sections breathe: 160px of cream */
.section-lede { max-width: 42.5rem; margin-bottom: 2.5rem; color: var(--muted); }

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1.5rem;
}

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 2rem 1.75rem;
  transition: border-color 0.4s ease-out;
}
.card:hover {
  border-color: var(--gold-deep);
}
.card h3 { margin-bottom: 0.5rem; }
.card p:last-child { margin-bottom: 0; }
/* Journey colour coding — wayfinding only: each journey owns one quiet colour. */
.journey-card { border-top: 3px solid var(--gold-deep); }
.journey-recovery { border-top-color: var(--aora-taupe); }
.journey-recovery .eyebrow { color: var(--aora-taupe-deep); }
.journey-vitamin-therapy { border-top-color: var(--sage-deep); }
.journey-vitamin-therapy .eyebrow { color: var(--sage-deep); }

.band {
  background: var(--navy);
  color: var(--cream);
  border-radius: var(--radius);
  padding: clamp(2.5rem, 6vw, 4rem) clamp(1.5rem, 5vw, 4rem);
  margin: clamp(2rem, 5vw, 4rem) 0;
  text-align: center;
}
.band h2 { color: var(--cream); }
.band .eyebrow { color: var(--gold); }
.band p { max-width: 42rem; margin-left: auto; margin-right: auto; }
.band-alt { background: var(--sage-deep); }
.band-alt .eyebrow { color: var(--aora-gold-light); }

/* ---------- soundbooth ---------- */
.headphone-notice {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: var(--navy);
  color: var(--cream);
  border-radius: var(--radius);
  padding: 1.75rem 2rem;
  margin: 0 0 3rem;
  border-left: 4px solid var(--gold);
}
.headphone-notice .hp-icon {
  font-size: 2.2rem;
  line-height: 1;
}
.headphone-notice h2 {
  color: var(--cream);
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
}
.headphone-notice p { margin: 0; color: var(--aora-navy-light); }
.headphone-notice p:last-child { margin-top: 0.5rem; }

.player-bar {
  position: sticky;
  top: 4.5rem;
  z-index: 40;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2.5rem;
  align-items: center;
}
.now-playing { min-width: 12rem; flex: 1; }
.now-playing .np-label {
  font-size: 0.75rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--sage-deep);
  font-weight: 400;
  margin-bottom: 0.2rem;
}
.now-playing .np-track {
  font-family: var(--serif);
  font-size: 1.4rem;
  color: var(--navy-deep);
}
.now-playing .np-track.is-live::after {
  content: "";
  display: inline-block;
  width: 0.55em; height: 0.55em;
  border-radius: var(--radius-full);
  background: var(--sage);
  margin-left: 0.6em;
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.8); }
}
.control { display: flex; align-items: center; gap: 0.75rem; }
.control label {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.control input[type="range"] {
  accent-color: var(--sage-deep);
  width: 9rem;
}
.control select {
  font: inherit;
  font-size: 0.9rem;
  min-height: 3rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--cream);
  color: var(--ink);
}

.freq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.freq-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color 0.4s ease-out;
}
.freq-card.is-playing {
  border-color: var(--gold-deep);
}
.freq-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}
.freq-top h3 { margin: 0; }
.freq-hz {
  font-family: var(--serif);
  font-size: 1.25rem;
  color: var(--gold-deep);
  font-weight: 500;
  white-space: nowrap;
}
.freq-blurb { font-size: 0.95rem; color: var(--muted); flex: 1; }
.freq-play {
  align-self: flex-start;
  min-height: 3rem;
  font: inherit;
  font-weight: 500;
  font-size: 0.92rem;
  border: 1px solid var(--sage-deep);
  background: transparent;
  color: var(--sage-deep);
  border-radius: var(--radius);
  padding: 0.7rem 1.6rem;
  cursor: pointer;
  transition: background 0.4s ease-out, color 0.4s ease-out;
}
.freq-play:hover { background: var(--sage-deep); color: var(--cream); }
.freq-card.is-playing .freq-play {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--cream);
}
.freq-play:focus-visible,
.button:focus-visible,
.control select:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 3px;
}

.disclaimer {
  border-top: 1px solid var(--line);
  padding-top: 1.5rem;
  margin-bottom: 4rem;
}

/* ---------- shop ---------- */
.shop-head-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1.5rem;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 1.5rem;
  margin-bottom: 4rem;
}
.product-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.4s ease-out;
}
.product-card:hover {
  border-color: var(--gold-deep);
}
.product-body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  flex: 1;
}
.product-body h3 { margin: 0; font-size: 1.3rem; }
.product-body .blurb { font-size: 0.95rem; color: var(--muted); flex: 1; }
.product-price {
  font-family: var(--serif);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--navy-deep);
}
.product-card .button { align-self: flex-start; }
.stripe-note { margin: 0.75rem 0 0; color: var(--muted); }

/* ---------- footer ---------- */
.site-footer {
  background: var(--navy-deep);
  color: var(--aora-taupe-light);
  margin-top: 4rem;
  padding: 3.5rem 0 2.5rem;
}
.site-footer a { color: var(--cream); }
.footer-crisis {
  border: 1px solid rgba(176, 138, 90, 0.5);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 2.5rem;
  max-width: 52rem;
}
.footer-crisis strong { color: var(--aora-gold-light); }
.footer-nap { margin-bottom: 2rem; }
.footer-nap-name { color: var(--cream); font-size: 1.1rem; margin-bottom: 0.5rem; }
.footer-nap p { margin-bottom: 0.35rem; }
.site-footer .small { color: var(--taupe); }
.site-footer .footer-touch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding-inline: 0.2rem;
  margin-block: -0.35rem;
}

/* ---------- language chooser ---------- */
.chooser {
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.chooser-main { max-width: 40rem; }
.lockup .wordmark-xl img { height: 4rem; margin: 0 auto 0.5rem; }
.descriptor {
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-size: 0.85rem;
  color: var(--sage-deep);
}
.horizon {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  margin: 2.5rem 0;
}
.chooser-line { font-family: var(--serif); font-size: 1.35rem; }
.chooser-links {
  list-style: none;
  display: flex;
  gap: 1rem;
  justify-content: center;
  padding: 0;
  margin: 2rem 0;
}

/* ---------- responsive ---------- */
@media (max-width: 44rem) {
  .header-row { flex-wrap: wrap; }
  .player-bar { top: 7.5rem; }
  .headphone-notice { flex-direction: column; gap: 0.75rem; }
  .hero-actions .button { width: 100%; }
  .hero-checkin .button { width: 100%; }
  .nav-panel { position: static; box-shadow: none; margin-top: 0.25rem; }
  .public-site .hero-editorial .hero-actions > a,
  .public-site .journey-card .text-link,
  .member-app #staff-reset {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0.55rem 0.25rem;
  }
}

/* ================= AORA Circle (accounts) + staff dashboard =================
   Same design language as the site: cream, dusty navy, restrained gold,
   Source Serif 4 everywhere, 2px control radius, 48px touch targets. */

.section-tight { padding: 2.5rem 0; }
.section-tight h3 { margin-bottom: 1.25rem; }
.dim { color: var(--muted); }
.num { text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- header auth slot ---------- */
#auth-slot { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; }
.staff-dashboard-link { padding: 0.65rem 1rem; min-height: 3rem; }
.auth-link {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 1px;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
}
.auth-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--ink);
  min-height: 3rem;
  padding: 0 0.25rem;
}
.auth-initial {
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--gold);
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--ink);
  background: var(--cream);
}
.auth-name { font-size: 0.95rem; font-weight: 500; }

/* ---------- footer newsletter ---------- */
.footer-newsletter {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.75rem 0;
  margin: 1.75rem 0;
  max-width: 42.5rem;
}
.footer-newsletter .eyebrow { margin-bottom: 0.5rem; }
.nl-form { display: flex; gap: 0.75rem; margin-top: 1rem; flex-wrap: wrap; }
.nl-form input {
  flex: 1 1 14rem;
  min-height: 3rem;
  font: inherit;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--cream);
  color: var(--ink);
}
.nl-form .button { min-height: 3rem; }
.nl-msg { margin-top: 0.75rem; min-height: 1.5em; }

/* ---------- toast ---------- */
#aora-toast {
  position: fixed;
  left: 50%;
  bottom: 2rem;
  transform: translate(-50%, 1rem);
  background: var(--navy);
  color: var(--cream);
  font-size: 1rem;
  padding: 0.9rem 1.4rem;
  border-radius: var(--radius);
  border: 1px solid var(--gold);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
  z-index: 60;
  max-width: min(90vw, 28rem);
  text-align: center;
}
#aora-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- forms ---------- */
.stack p { margin: 0 0 1.1rem; }
.stack label { display: block; font-weight: 500; font-size: 0.95rem; }
.stack input[type="text"],
.stack input[type="email"],
.stack input[type="password"],
.stack input[type="number"],
.stack select,
.stack textarea,
.drawer input[type="number"],
.drawer select,
.drawer textarea,
.dash-search input {
  display: block;
  width: 100%;
  margin-top: 0.4rem;
  font: inherit;
  font-size: 1rem;
  min-height: 3rem;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--cream);
  color: var(--ink);
}
.stack textarea, .drawer textarea { min-height: 5rem; resize: vertical; }
.check { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; cursor: pointer; }
.check input { width: 1.3rem; height: 1.3rem; margin-top: 0.15rem; flex: none; accent-color: var(--sage-deep); }
.check-group { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; margin: 0 0 1.1rem; }
.check-group legend { font-weight: 500; font-size: 0.95rem; padding: 0 0.4rem; }
.check-group .check { margin: 0.55rem 0; }
.form-error { color: #8a3b2e; min-height: 1.5em; }

/* ---------- auth card ---------- */
.auth-card {
  max-width: 30rem;
  margin: 0 auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 2rem;
  background: var(--cream);
}
.auth-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line); margin-bottom: 1.5rem; }
.auth-tab {
  flex: 1;
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  padding: 0.9rem 0.5rem;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  min-height: 3rem;
}
.auth-tab.is-active { color: var(--ink); border-bottom-color: var(--gold); }
.auth-div { display: flex; align-items: center; gap: 0.75rem; color: var(--muted); margin: 1.25rem 0; font-size: 0.9rem; }
.auth-div::before, .auth-div::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.auth-card .button { width: 100%; }

/* ---------- member circle ---------- */
.circle-head {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.circle-head h2 { margin: 0.5rem 0; }
.tier-progress { min-width: min(100%, 20rem); flex: 1 1 20rem; max-width: 26rem; }
.tier-bar {
  height: 0.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--cream-deep);
  overflow: hidden;
}
.tier-bar span { display: block; height: 100%; background: var(--gold); }
.tier-progress .small { margin-top: 0.5rem; }

/* ---------- badges ---------- */
.badge-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1.5rem;
  margin: 1.5rem 0;
}
.badge-grid.small-grid { grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: 1rem; }
.badge { margin: 0; text-align: center; }
.badge-medal { display: inline-block; width: 5.5rem; height: 5.5rem; }
.badge-grid.small-grid .badge-medal { width: 4rem; height: 4rem; }
.badge-medal svg { width: 100%; height: 100%; display: block; }
.badge figcaption { margin-top: 0.6rem; }
.badge figcaption strong { display: block; font-weight: 500; font-size: 0.98rem; }
.badge figcaption span { display: block; font-size: 0.85rem; color: var(--muted); margin-top: 0.2rem; }
.badge.is-locked { opacity: 0.55; }

/* ---------- rewards ---------- */
.reward-shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; margin-top: 1rem; }
.reward-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-xxs);
  background: var(--aora-cream-light, var(--card));
  padding: 1.4rem 1.3rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.reward-card.is-unlocked { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }
.reward-points { margin: 0; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.reward-points span { font-size: 1.6rem; color: var(--gold-deep); letter-spacing: 0; }
.reward-card h4 { margin: 0; font-size: 1.15rem; font-weight: 500; }
.reward-card p.small { margin: 0; }
.reward-state { margin: 0.6rem 0 0; font-size: 0.9rem; color: var(--muted); }
.reward-state.is-done { color: var(--gold-deep); }
.reward-claim { margin-top: 0.7rem; align-self: flex-start; }
.reward-defaults { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; gap: 0.8rem; }
.reward-defaults li { border-left: 2px solid var(--gold); padding-left: 0.9rem; }
.reward-defaults strong { color: var(--gold-deep); font-weight: 500; }

.act-list { list-style: none; padding: 0; margin: 0; max-width: 42.5rem; }
.act-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.98rem;
}
.act-pts { color: var(--gold-deep, #8a6a42); font-weight: 500; white-space: nowrap; }

/* ---------- dashboard ---------- */
.dash-title { margin: 0.5rem 0 1.5rem; }
.dash-tabs { display: flex; gap: 0.25rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; flex-wrap: wrap; }
.dash-tab {
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  padding: 0.9rem 1.1rem;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  min-height: 3rem;
}
.dash-tab.is-active { color: var(--ink); border-bottom-color: var(--gold); }
.kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.kpi {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem 1rem;
  background: var(--cream);
  text-align: center;
}
.kpi-num { font-size: 2rem; font-weight: 300; margin: 0 0 0.25rem; color: var(--ink); }
.kpi-label { margin: 0; font-size: 0.85rem; color: var(--muted); }
.dash-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.5rem; }
.dash-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; background: var(--cream); }
.dash-panel h3 { margin-top: 0; font-size: 1.25rem; }
.dash-list { list-style: none; padding: 0; margin: 0; }
.dash-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
}
.dash-list li:last-child { border-bottom: none; }
.dash-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.dash-actions .lede { margin: 0; }
.dash-actions .button { margin-right: 0.5rem; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.dash-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; background: var(--cream); }
.dash-table th, .dash-table td { text-align: left; padding: 0.8rem 1rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.dash-table thead th { font-weight: 500; font-size: 0.85rem; color: var(--muted); background: var(--cream-deep); }
.dash-table tbody tr[data-uid] { cursor: pointer; }
.dash-table tbody tr[data-uid]:hover { background: rgba(169, 188, 203, 0.18); }
.dash-search { max-width: 24rem; margin-bottom: 1.25rem; }
.note-dot {
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: var(--radius-full);
  background: var(--gold);
}

/* ---------- analytics bars ---------- */
.bars {
  display: flex;
  align-items: flex-end;
  gap: 0.4rem;
  height: 11rem;
  padding-top: 1rem;
}
.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 0.35rem; }
.bar { width: 100%; max-width: 2.2rem; background: var(--blue); border-radius: var(--radius-top); min-height: 2px; }
.bar-label { font-size: 0.7rem; color: var(--muted); }

/* ---------- client drawer ---------- */
.drawer-veil {
  position: fixed;
  inset: 0;
  background: rgba(30, 40, 54, 0.45);
  z-index: 70;
}
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(30rem, 94vw);
  background: var(--cream);
  border-left: 1px solid var(--line);
  z-index: 71;
  overflow-y: auto;
  padding: 2rem 1.75rem 3rem;
}
.drawer-close {
  position: absolute;
  top: 0.75rem;
  right: 1rem;
  font-size: 1.75rem;
  line-height: 1;
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  min-width: 3rem;
  min-height: 3rem;
}
.drawer h3 { margin: 0.5rem 0 0.25rem; }
.drawer h4 { margin: 1.75rem 0 0.75rem; font-size: 1.1rem; }
.drawer-row { display: flex; gap: 0.75rem; align-items: flex-end; margin-top: 1rem; flex-wrap: wrap; }
.drawer-row label { flex: 1 1 10rem; font-size: 0.9rem; font-weight: 500; }
.drawer-row .button { min-height: 3rem; }

@media (max-width: 44rem) {
  .nl-form .button { width: 100%; }
  .drawer-row .button { width: 100%; }
  .badge-grid { grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }
}

/* -- editorial photography (brand brief plates) ---------------------------- */
.photo { margin: 2.5rem 0; }
.photo img { display: block; width: 100%; height: auto; border-radius: var(--radius-xxs); }
/* Keep the homepage interior portrait within a balanced landscape frame. */
.section[aria-labelledby="space-h"] .photo img {
  height: clamp(14rem, 38vw, 24rem);
  object-fit: cover;
  object-position: center 45%;
}
.photo-hero { margin-top: 0; }
.photo-hero img { max-height: 26rem; object-fit: cover; }

/* -- journal ---------------------------------------------------------------- */
.journal-list { display: grid; gap: 3rem; margin-top: 1rem; }
.journal-item h2 { font-size: 1.75rem; margin: 0.5rem 0; font-weight: 400; }
.journal-item h2 a { color: inherit; text-decoration: none; }
.journal-item h2 a:hover { text-decoration: underline; text-decoration-color: var(--aora-gold); text-underline-offset: 0.2em; }
.journal-article h1 { margin-bottom: 1rem; }
.journal-article .lede { margin-bottom: 2rem; }
.prose { max-width: 42rem; }
.prose h2 { font-size: 1.6rem; margin: 2.5rem 0 1rem; font-weight: 400; }
.prose h3 { font-size: 1.25rem; margin: 2rem 0 0.75rem; font-weight: 500; }
.prose p { margin: 0 0 1.25rem; }
.prose ul { margin: 0 0 1.25rem; padding-left: 1.5rem; }
.prose li { margin-bottom: 0.5rem; }
.prose blockquote { margin: 2rem 0; padding-left: 1.25rem; border-left: 2px solid var(--aora-gold); font-style: italic; font-size: 1.15rem; }
.prose img { display: block; max-width: 100%; height: auto; border-radius: var(--radius-xxs); margin: 1.5rem 0; }
.prose code { font-size: 0.9em; }
.takeaway { margin: 2.5rem 0; padding: 1.75rem 2rem; background: var(--aora-cream-deep, var(--cream-deep)); border-left: 2px solid var(--aora-gold); border-radius: var(--radius-xxs); }
.takeaway h2, .takeaway h3 { margin-top: 0; font-size: 1.1rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 500; }
.takeaway ul { margin-bottom: 0; }
.takeaway li:last-child { margin-bottom: 0; }
.crumbs { margin-bottom: 1.5rem; }
.crumbs a { color: inherit; text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }

/* -- dashboard additions ----------------------------------------------------- */
.pill { display: inline-block; padding: 0.2rem 0.7rem; border: 1px solid var(--aora-taupe); border-radius: var(--radius-xxs); font-size: 0.8rem; }
.pill-on { border-color: var(--aora-green-deep); color: var(--aora-green-deep); }
.drawer-wide { max-width: 42rem; }
.drawer-sub { margin-top: 1.75rem; }
.mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 0.9rem; }
.preview-box { margin: 1rem 0; padding: 1.25rem; border: 1px solid var(--aora-taupe); border-radius: var(--radius-xxs); background: var(--aora-light, var(--card)); }
.preview-box > *:first-child { margin-top: 0; }

.article-grid { display:grid; grid-template-columns:minmax(0, 2fr) minmax(220px, 1fr); gap:2.5rem; align-items:start; }
.article-takeaways { background:var(--aora-cream-deep,var(--cream-deep)); padding:1.5rem; border-left:2px solid var(--aora-gold); position:sticky; top:1rem; }
.article-takeaways h2 {font-size:1.2rem;}
.article-faq {margin-top:3rem;}
#page-editor textarea {width:100%;} input,textarea,select {max-width:100%;font-size:1rem;}
img {max-width:100%;height:auto;}
@media(max-width:760px){.article-grid{grid-template-columns:1fr;}.article-takeaways{position:static;grid-row:1;}.drawer{max-width:100vw;} .form-row{flex-wrap:wrap;}}

.journal-article .photo {aspect-ratio:16/9; overflow:hidden;}
.journal-article .photo img {width:100%;height:100%;object-fit:cover;}
.booking-form { max-width: 38rem; }
.booking-card { border: 1px solid #b4b9b0; border-radius: var(--radius-lg); padding: 1.2rem; margin-block: 1rem; overflow-wrap: anywhere; }
.booking-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.booking-hours { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: .6rem; margin-block: .8rem; align-items: center; }
.booking-hours input { min-width: 0; width: 100%; }
.booking-hours input[type=checkbox], #booking-settings input[type=checkbox] { width: auto; min-height: 24px; }
#booking-settings fieldset { min-width: 0; padding: 1rem; }
#booking-settings label { display: block; }
#booking-settings input, #booking-settings textarea, #booking-app select { max-width: 100%; font-size: 16px; }
@media(max-width: 480px) { .booking-hours { grid-template-columns: 1fr 1fr; } .booking-hours > label:first-child { grid-column: 1/-1; } }

/* Staff workspace: compact daily operations, separate from the member experience. */
.staff-workspace .site-nav, .staff-workspace #main > .page-head { display:none; }
.staff-workspace .wrap { max-width:1380px; }
.staff-workspace #main > .section-tight { padding:1.5rem 0; }
.staff-workspace .header-row { padding-block:.85rem; }
.workspace-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1.5rem; }
.workspace-heading .eyebrow { margin:0 0 .45rem; }
.workspace-heading h1 { font-size:clamp(1.8rem,3vw,2.5rem); margin:0; line-height:1.2; }
.access-badge { padding:.45rem .8rem; border:1px solid var(--line); border-radius: var(--radius-20); font:500 .78rem/1.4 system-ui,sans-serif; }
.staff-session { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.staff-identity { max-width:18rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.85rem; color:var(--muted); }
.staff-signout { min-height:44px; }
.workspace-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:2rem; align-items:start; }
.workspace-nav { position:sticky; top:1rem; padding-right:1rem; border-right:1px solid var(--line); }
.nav-group { margin-bottom:1.4rem; }
.nav-group > p { font:600 .65rem/1.5 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin:0 0 .5rem .75rem; }
.nav-group-more { border-top:1px solid var(--line); margin:0; padding:.25rem 0; }
.nav-group-more > summary { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.7rem .75rem; min-height:44px; border-radius: var(--radius-md); color:var(--ink); font:600 .78rem/1.4 system-ui,sans-serif; list-style:none; }
.nav-group-more > summary::-webkit-details-marker { display:none; }
.nav-group-more > summary::after { content:'+'; order:2; font-size:1rem; color:var(--muted); }
.nav-group-more[open] > summary::after { content:'−'; }
.nav-group-count { order:1; margin-left:auto; min-width:1.5rem; padding:.1rem .35rem; border-radius: var(--radius-pill-compact); background:var(--surface-workspace-muted); color:var(--muted); text-align:center; font-size:.68rem; }
.nav-group-more > div { padding:.15rem 0 .55rem; }
.workspace-nav .dash-tab { display:flex; width:100%; align-items:center; gap:.7rem; text-align:left; border:0; border-radius: var(--radius-md); padding:.7rem .8rem; font:500 .88rem/1.4 system-ui,sans-serif; margin:.15rem 0; color:var(--ink); }
.workspace-nav .dash-tab > span { font-size:1.35rem; width:1.6rem; text-align:center; }
.workspace-nav .dash-tab.is-active { background:var(--ink); color:var(--cream); }
.workspace-nav .dash-tab:hover:not(.is-active) { background:var(--surface-workspace-muted); }
.member-preview { display:block; padding:.75rem; font:500 .85rem system-ui,sans-serif; }
.workspace-content { min-width:0; }
.workspace-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:.5rem; }
.workspace-toolbar h2 { margin:0; font-size:1.75rem; }
#admin-app .button, #admin-app .text-action { font:500 .85rem/1.4 system-ui,sans-serif; min-height:44px; cursor:pointer; }
#admin-app .button { padding:.7rem 1rem; border-radius: var(--control-radius); }
.today-date { font:400 .8rem system-ui,sans-serif; color:var(--muted); margin-bottom:1.5rem; }
.quick-actions,.metric-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0; }
.quick-action { display:grid; grid-template-columns:auto 1fr auto; gap:.2rem .7rem; align-items:center; text-align:left; padding:1.1rem; border:1px solid var(--line); background:var(--card); border-radius: var(--radius-10); cursor:pointer; color:var(--ink); font-family:system-ui,sans-serif; }
.quick-action small { grid-column:2; font-size: .8125rem; color:var(--muted); }
.quick-action strong { font-size:.9rem; }
.action-symbol { grid-row:1/3; font-size:1.6rem; color:#7d6748; }
.action-arrow { grid-column:3; grid-row:1/3; }
.quick-action:hover,.metric-card:hover { border-color:var(--ink); background:#eee9dd; }
.metric-card { text-align:left; padding:1rem 1.2rem; border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius: var(--radius-sm); cursor:pointer; display:grid; grid-template-columns:1fr auto; font-family:var(--ui-font); }
.metric-card > span { grid-column:1/-1; font-size:.8rem; }
.metric-card > strong { font-size:2.2rem; font-weight:400; line-height:1.6; font-variant-numeric:tabular-nums; }
.metric-card > small { align-self:end; padding-bottom:.5rem; }
.today-columns { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:1rem; margin-top:1.5rem; }
.work-card,.reward-tile { border:1px solid var(--line); border-radius: var(--radius-sm); background:var(--card); padding:1.3rem; min-width:0; }
.card-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.card-heading h3 { font-size:1.2rem; margin:0; }
.text-action { border:0; background:transparent; color:var(--ink); text-decoration:underline; }
.work-empty { text-align:center; padding:1.8rem .5rem; }
.work-empty > span { font-size:2.5rem; color:#7c8b77; }
.work-empty h4 { font-size:1.25rem; margin:.5rem 0; }
.work-empty p { font:400 .85rem/1.5 system-ui,sans-serif; color:var(--muted); }
.status-row { display:flex; align-items:center; gap:.75rem; width:100%; padding:1rem 0; border:0; border-bottom:1px solid var(--line); text-align:left; background:transparent; color:var(--ink); cursor:pointer; font-family:system-ui,sans-serif; }
.status-row > span:nth-child(2) { flex:1; }
.status-row strong,.status-row small { display:block; font-size:.82rem; }
.status-row small { font-size: .8125rem; margin-top:.25rem; color:var(--muted); }
.status-dot { width:.6rem; height:.6rem; border-radius: var(--radius-full); background:#a77a36; flex-shrink:0; }
.status-dot.ready { background:#54715d; }
.schedule-preview { list-style:none; padding:0; }
.schedule-preview li { display:flex; gap:.8rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--line); font:400 .82rem/1.5 system-ui,sans-serif; }
.schedule-preview li > div { flex:1; }
.schedule-preview small { display:block; color:var(--muted); }
#admin-app .admin-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
#admin-app .admin-head h2 { font-size:1.4rem; margin:.5rem 0; }
#admin-app .admin-head p { margin:.4rem 0; }
.reward-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:1rem; margin-bottom:1.5rem; }
.reward-tile { display:flex; flex-direction:column; }
.reward-top,.reward-bottom { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.reward-symbol { font-size:2rem; color:#8d7147; }
.reward-tile h3 { font-size:1.4rem; margin:.8rem 0 .5rem; }
.reward-tile > p { font:400 .85rem/1.6 system-ui,sans-serif; color:var(--muted); margin:0 0 1.3rem; flex:1; }
.reward-bottom { border-top:1px solid var(--line); padding-top:.8rem; }
.reward-bottom strong { font:600 1.2rem system-ui,sans-serif; }
.reward-bottom small { font-size:.8125rem; font-weight:400; }
#admin-app .admin-table { width:100%; border-collapse:collapse; font:400 .85rem/1.5 system-ui,sans-serif; }
#admin-app .admin-table th,#admin-app .admin-table td { text-align:left; padding:.85rem; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
#admin-app .linklike { min-height:44px; padding:.5rem 1rem; border:1px solid var(--line); background:var(--card); border-radius: var(--control-radius); color:var(--ink); cursor:pointer; }
#admin-app .admin-card { padding:1.2rem; border:1px solid var(--line); border-radius: var(--radius-10); margin:1rem 0; }
#admin-app #booking-day { display:flex; flex-direction:row; flex-wrap:wrap; gap:.8rem; align-items:end; }
#admin-app .section { padding-block:1.2rem; margin-top:1rem; }
#admin-app summary { cursor:pointer; min-height:44px; font-weight:500; }
#admin-app input:not([type=checkbox]),#admin-app select,#admin-app textarea { border:1px solid var(--line); border-radius: var(--control-radius); padding:.65rem; background:var(--card); }
#admin-app button:focus-visible,#admin-app a:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media(max-width:1000px){.workspace-layout{grid-template-columns:180px minmax(0,1fr);gap:1rem;}.quick-actions{grid-template-columns:1fr;}.quick-action{padding:.75rem 1rem;}.today-columns{grid-template-columns:1fr;}}
@media(max-width:700px){.workspace-layout{grid-template-columns:1fr;}.workspace-nav{position:static;border:0;padding:.5rem;display:block;overflow:visible;}.nav-group{display:block;}.nav-group-priority{margin-bottom:.5rem;}.nav-group>p{display:block;margin:.4rem .75rem .5rem;}.workspace-nav .dash-tab{width:100%;white-space:normal;}.workspace-heading{align-items:start;flex-direction:column;gap:.7rem;}.workspace-toolbar h2{font-size:1.5rem;}.metric-grid{gap:.5rem;}.metric-card{padding:.7rem;}.metric-card>span{font-size:.8125rem;}.metric-card>strong{font-size:1.7rem;}.metric-card>small{display:none;}.schedule-preview li{flex-wrap:wrap;}#admin-app .admin-head{align-items:start;flex-direction:column;}#admin-app .admin-table{display:block;overflow-x:auto;}#admin-app .admin-table th,#admin-app .admin-table td{min-width:95px;}.staff-workspace .auth-name,.staff-workspace .staff-dashboard-link{display:none;}}
.arrival-queue { margin-block:1.3rem; }
.arrival-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 0; border-top:1px solid var(--line); }
.arrival-row strong,.arrival-row small { display:block; }
.arrival-row small { color:var(--muted); font:400 .8rem/1.6 system-ui,sans-serif; margin:.3rem 0; }
.arrival-actions { display:flex; gap:.5rem; flex-wrap:wrap; }
@media(max-width:700px){.arrival-row{align-items:start;flex-direction:column;}.arrival-actions{width:100%;}.arrival-actions button{flex:1;}}
.room-board{margin:1.5rem 0}.table-scroll{overflow-x:auto;max-width:100%}.room-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.room-table{border-collapse:separate;border-spacing:3px;font-size:.8rem;width:100%}.room-table th{min-width:76px;padding:.6rem}.room-table th:first-child{position:sticky;left:0;background:#f5efe5;z-index:1}.room-slot{padding:.65rem;border-radius: var(--radius-5);text-align:center;min-width:88px}.room-slot small{display:block;font-size:.8125rem}.room-slot.free{background:#e4ebdf;color:#314635}.room-slot.booked{background:#304052;color:#fff}.room-slot.cleanup{background:#ecdec3;color:#564320}.room-slot.closed{background:#e8e5de;color:#65645d}.room-legend .room-slot{min-width:0;font-size:.8rem}

/* Account settings: reusable cards and narrow-screen navigation. */
.settings-nav { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.5rem 0; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.settings-nav a { padding:.7rem 1rem; border:1px solid var(--line); text-decoration:none; }
.settings-nav a[aria-current=page] { background:var(--navy); color:var(--cream); }
.settings-card { padding:clamp(1rem,3vw,2rem); border:1px solid var(--line); background:var(--card); }
[data-account-panel][hidden] { display:none; }
@media(max-width:480px) { .settings-nav a { flex:1 1 42%; text-align:center; } }

.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem; }
.footer-bottom p { margin:0; }
.footer-staff-link { font-size:.8rem; color:var(--muted); text-decoration:none; padding:.75rem 0 .75rem .75rem; white-space:nowrap; }
.footer-staff-link:hover { color:var(--ink); text-decoration:underline; }
.footer-staff-link:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
/* Reception workspace: calm color, actionable states, no decorative motion. */
.desk-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 30px;background:#263c49;color:#fbf8ef;border-radius: var(--radius-xl);margin-bottom:20px}.desk-banner h2{color:inherit;font-size:clamp(24px,3vw,38px);margin:8px 0}.desk-banner p{color:var(--text-on-dark-muted);margin-bottom:0}.desk-banner .eyebrow{color:#d6bd8c}.desk-clock{text-align:right;white-space:nowrap;display:grid;gap:8px}.desk-clock strong{font-size:26px;font-weight:400}.desk-clock span{font-size:14px;color:var(--text-on-dark-muted)}.desk-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.desk-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.desk-stats>button,.desk-stats>div{display:grid;text-align:left;gap:8px;padding:18px;background:#faf8f3;color:var(--workspace-text);border:1px solid #ddd9cd;border-radius: var(--radius-lg);font:inherit}.desk-stats>button{cursor:pointer}.desk-stats strong{font-size:34px;font-weight:400;line-height:1.1}.desk-stats .desk-next{font-size:25px}.desk-stats span,.desk-stats small{font-size:14px}.desk-stats .desk-stat-warm{background:var(--surface-workspace-warm)}.desk-stats .desk-stat-green{background:var(--surface-workspace-green)}.desk-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:18px;margin-bottom:18px}.desk-columns aside{display:grid;gap:18px;align-content:start}.desk-columns .work-card{margin:0}.desk-next-card{background:#e8eee7}.desk-search{display:grid;gap:7px;font-size:14px}.desk-search input{width:100%;box-sizing:border-box}.desk-filters{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}.desk-filters button{font:inherit;font-size:14px;border:1px solid #d7d4c9;background:transparent;color:var(--workspace-text);border-radius: var(--radius-20);padding:7px 12px;cursor:pointer}.desk-filters [aria-pressed=true]{background:var(--workspace-text);color:white;border-color:var(--workspace-text)}.desk-visit{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid #e5e0d7}.desk-visit time{font-size:14px;min-width:60px}.desk-avatar{width:34px;height:34px;border-radius: var(--radius-full);background:var(--surface-workspace-green);display:grid;place-items:center;flex-shrink:0}.desk-visit-info{display:grid;gap:3px;flex:1;min-width:0}.desk-visit-info span,.desk-visit-info small{font-size:14px}.desk-visit.needs-payment .pill{background:var(--surface-workspace-warm);color:#725822}.desk-client{display:flex;gap:10px;align-items:center;justify-content:space-between;width:100%;font:inherit;font-size:13px;padding:12px;border:0;border-top:1px solid #e4dfd4;background:transparent;color:var(--workspace-text);text-align:left;cursor:pointer}.desk-checkout-dialog{max-width:760px;width:calc(100% - 48px);box-sizing:border-box;border:1px solid #d8d1c3;border-radius: var(--radius-xl);padding:30px;color:var(--workspace-text);background:#faf7ef}.desk-checkout-dialog::backdrop{background:#162d3a80}.desk-checkout-dialog .drawer-close{position:absolute;top:14px;right:14px}.desk-checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.desk-checkout-grid article{border:1px solid #ddd6c8;border-radius: var(--radius-10);padding:18px}.desk-checkout-grid h3{margin-top:0}.desk-checkout-grid p{font-size:13px}.desk-actions .button:hover,.desk-stats button:hover,.desk-client:hover{filter:brightness(.97)}.desk-visit .text-action{white-space:nowrap}@media(max-width:1000px){.desk-columns{grid-template-columns:1fr}.desk-columns aside{grid-template-columns:1fr 1fr}.desk-visit{flex-wrap:wrap}}@media(max-width:620px){.desk-banner{padding:22px;align-items:start}.desk-clock{display:none}.desk-stats{grid-template-columns:1fr 1fr}.desk-columns aside,.desk-checkout-grid{grid-template-columns:1fr}.desk-client{flex-wrap:wrap}.desk-visit .pill{margin-left:auto}.desk-visit .text-action{width:100%;text-align:right}.desk-checkout-dialog{padding:24px}}

/* Public editorial imagery stays bounded and stacks on smaller screens. */
.public-site .editorial-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.public-site .editorial-split .photo { margin: 0; }
.public-site .editorial-split .photo img { height: clamp(16rem, 34vw, 24rem); object-fit: cover; object-position: center 45%; }
.public-site .editorial-copy { min-width: 0; }
.public-site .editorial-copy h2 { margin-top: 0; }
.public-site .journey-media { position: relative; margin: 0 0 1.25rem; }
.public-site .journey-image { display: block; width: 100%; height: 10rem; object-fit: cover; margin-bottom: 1.25rem; border-radius: var(--radius-xxs); }
.public-site .journey-media figcaption { margin: 0; padding: .65rem .8rem; background: var(--cream-deep); font: var(--label-size-small)/1.5 var(--ui-font); }
.public-site .service-atmosphere { float: right; width: 36%; margin: 2.5rem 0 2rem 2rem; }
.public-site .service-atmosphere img { display: block; width: 100%; height: 17rem; object-fit: cover; border-radius: var(--radius-xxs); }
.public-site .service-atmosphere ~ .section { clear: both; }
.public-site .visit-photo img { height: clamp(14rem, 32vw, 22rem); object-fit: cover; object-position: center 45%; }
.public-site .photo figcaption { margin-top: .65rem; font-size: .8rem; color: var(--muted); }
@media (max-width: 44rem) {
  .public-site .editorial-split { grid-template-columns: 1fr; }
  .public-site .editorial-copy { grid-row: 1; }
  .public-site .editorial-split .photo img { height: 16rem; }
  .public-site .service-atmosphere { float: none; width: 100%; margin: 1.5rem 0; }
  .public-site .service-atmosphere img { height: 12rem; }
  .public-site .journey-image { height: 12rem; }
}

/* 2026 public and member visual refresh. */
:root { --ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.public-site p:not(.eyebrow), .public-site .nav-list, .public-site .header-actions,
.public-site .button, .public-site figcaption, .member-app p:not(.eyebrow),
.member-app label, .member-app input, .member-app select, .member-app button,
.member-app .header-actions, .member-app .nav-list { font-family: var(--ui-font); }
.public-site p { line-height: 1.75; }
.public-site .hero-editorial { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); text-align: left; align-items: center; padding: clamp(2.5rem, 5vw, 5rem) 0; }
.hero-editorial .hero-copy { padding: 1rem 0; }
.hero-editorial h1 { font-size: clamp(2.75rem, 5.2vw, 4.5rem); letter-spacing: -.035em; line-height: 1.06; font-weight: 400; }
.hero-editorial h1 em { color: var(--sage-deep); font-weight: inherit; }
.hero-editorial .lede { font-size: 1.05rem; line-height: 1.8; margin: 1.5rem 0 2rem; max-width: 30rem; }
.hero-editorial .hero-image { margin: 0; position: relative; }
.hero-editorial .hero-image img { display: block; width: 100%; height: clamp(25rem, 46vw, 35rem); object-fit: cover; object-position: center; border-radius: var(--radius-arch-editorial); }
.hero-editorial .hero-image figcaption { font-size: .8125rem; text-align: right; margin-top: .75rem; letter-spacing: .035em; }
.public-site .hero-editorial + .section { border-top: 1px solid var(--line); padding-top: 3.5rem; }
.public-site .journey-card { border-top: 1px solid var(--gold); padding: 0 0 1.75rem; background: var(--card); box-shadow: none; overflow: hidden; }
.public-site .journey-card > :not(.journey-media) { margin-left: 1.4rem; margin-right: 1.4rem; }
.public-site .journey-card .journey-image { height: 12rem; border-radius: var(--radius-xxs); }
.public-site .journey-card h3 { font-size: 1.7rem; }
.public-site .journey-card p:not(.eyebrow) { font-size: .92rem; }
.public-site .section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.mobile-menu, .member-tabs { display: none; }
.member-app.has-member-tabs .wrap { max-width: 1080px; }
.member-home-head { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 3rem 0 2rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.member-home-head h1 { font-size: clamp(2.3rem, 4.7vw, 3.5rem); letter-spacing: -.035em; margin: 0 0 .6rem; }
.member-home-head p { margin: .35rem 0; color: var(--muted); }
.member-overview { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 1.25rem; }
.visit-focus { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--navy); color: var(--cream); border-radius: var(--radius-xl); position: relative; overflow: hidden; min-height: 20rem; }
.visit-focus .eyebrow { color: var(--aora-gold-light); }
.visit-focus h2 { color: inherit; font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.15; margin: 1.5rem 0 1rem; max-width: 28rem; }
.visit-focus p { max-width: 30rem; }
.visit-focus a { color: var(--cream); }
.visit-focus .button { background: var(--cream); border-color: var(--cream); color: var(--navy); font-family: var(--ui-font); }
.visit-emblem { position: absolute; right: 1.5rem; top: 1.5rem; opacity: .15; font: 9rem/1 var(--serif); pointer-events: none; }
.visit-card-top { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.visit-card-top p { margin: 0; }
.visit-status { font: 500 var(--label-size-small)/1.4 var(--ui-font); border: 1px solid #ffffff55; border-radius: var(--radius-pill); padding: .4rem .7rem; }
.payment-pending { background: var(--aora-gold-light); color: var(--navy-deep); border-color: transparent; }
.visit-confirmed { background: var(--aora-green-light); color: var(--text-success); border-color: transparent; }
.visit-date { font-weight: 500; text-transform: capitalize; margin-bottom: .25rem; }
.visit-time { font-size: 1.65rem; margin: 0 0 1.3rem; }
.visit-time span { font-size: .8125rem; margin-left: .4rem; opacity: .8; }
.home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.5rem; font: .85rem var(--ui-font); }
.member-side { padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--card); }
.member-side h2 { font-size: 1.5rem; margin: .6rem 0 1rem; }
.member-side a { font: .85rem var(--ui-font); }
.home-rewards { border-top: 1px solid var(--line); margin-top: 1.75rem; padding-top: 1.5rem; }
.member-side .reward-total { font: 3rem/1.1 var(--serif); margin: .5rem 0 .9rem; }
.reward-total span { font: .85rem var(--ui-font); color: var(--muted); }
.member-essentials { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin: 1.25rem 0 2.75rem; }
.member-essentials > a { display: flex; gap: 1rem; align-items: center; border: 1px solid var(--line); border-top-color: var(--gold); border-radius: var(--radius-sm); padding: 1.5rem; text-decoration: none; }
.member-essentials > a > span:first-child { font: 1.1rem var(--serif); color: var(--gold-deep); }
.member-essentials > a > span:last-child { margin-left: auto; }
.member-essentials h2 { font-size: 1.25rem; margin: 0 0 .3rem; }
.member-essentials p { font-size: .9rem; margin: 0; color: var(--muted); }
.member-practice { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); background: var(--surface-soft); border-radius: var(--radius-xl); overflow: hidden; margin-bottom: 3rem; }
.member-practice > div { padding: 2rem; }
.member-practice h2 { font-size: 2rem; margin: .6rem 0 1rem; }
.member-practice p { font-size: .95rem; }
.member-practice img { height: 100%; width: 100%; object-fit: cover; max-height: 22rem; }
.practice-links { display: flex; gap: 1rem; flex-wrap: wrap; font: .85rem var(--ui-font); }
@media (prefers-reduced-motion: no-preference) {
  .journey-card, .member-essentials > a, .button { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
  .journey-card:hover, .member-essentials > a:hover { transform: translateY(-3px); box-shadow: 0 8px 24px #2f3e5210; }
}
@media (max-width: 56rem) {
  .public-site .site-header, .member-app .site-header { position: relative; }
  .site-header .header-row { display: flex; flex-wrap: nowrap; min-height: 76px; gap: .75rem; padding-top: .7rem; padding-bottom: .7rem; }
  .site-header .wordmark { margin-right: auto; flex: 0 0 auto; }
  .site-header .wordmark img { width: 88px; }
  .site-header .header-actions { display: contents; }
  .site-header .header-actions > * { display: none; }
  .site-header .header-actions > .reservation-link { display: inline-flex; align-items: center; min-height: 44px; padding: .4rem .65rem; margin: 0; font: var(--label-size-small) var(--ui-font); border: 1px solid var(--line); border-radius: var(--radius-sm); }
  .public-site .site-header .header-actions > .lang-toggle:last-child { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .4rem .65rem; margin: 0; white-space: nowrap; }
  .staff-surface .site-header .header-actions > .lang-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .5rem .75rem; margin: 0; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu > summary { list-style: none; min-height: 44px; display: flex; align-items: center; gap: .5rem; cursor: pointer; font: .8rem var(--ui-font); padding: .5rem; }
  .mobile-menu > summary::-webkit-details-marker { display: none; }
  .menu-lines { font-size: 1.2rem; }
  .mobile-menu > nav { position: absolute; left: 0; right: 0; top: 100%; z-index: 40; background: var(--card); border-bottom: 1px solid var(--line); box-shadow: 0 14px 25px #2f3e5214; padding: 1rem 1.25rem 1.5rem; }
  .mobile-menu .nav-list { display: flex; flex-direction: column; align-items: stretch; gap: .25rem; }
  .mobile-menu .nav-list > li { width: 100%; }
  .mobile-menu .nav-link { display: block; padding: .8rem; min-height: 44px; }
  .mobile-menu .nav-panel { position: static; box-shadow: none; border: 0; min-width: 0; padding-left: 1rem; }
  .mobile-menu-extra { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 1rem; font: .85rem var(--ui-font); }
  .mobile-menu-extra a { display: inline-flex; align-items: center; min-height: 44px; }
  .public-site .hero-editorial { grid-template-columns: 1fr; gap: 1.25rem; padding: 1.75rem 0 2.5rem; }
  .hero-editorial h1 { font-size: clamp(2.8rem, 10vw, 3.8rem); }
  .hero-editorial .hero-copy { padding: 0; }
  .hero-editorial .lede { margin: 1rem 0 1.4rem; font-size: .95rem; }
  .hero-editorial .hero-image img { height: 19rem; border-radius: var(--radius-arch-editorial-mobile); object-position: center 48%; }
  .hero-editorial .hero-checkin { margin-bottom: .75rem; }
  .hero-editorial .hero-actions { margin-bottom: 0; }
  .public-site .section { padding-top: 2.25rem; padding-bottom: 2.25rem; }
  .member-home-head { display: block; padding-top: 1.75rem; }
  .member-home-head > a { display: none; }
  .member-home-head h1 { font-size: 2.35rem; }
  .member-home-head p { font-size: .85rem; }
  .member-overview, .member-essentials { grid-template-columns: 1fr; }
  .visit-focus { min-height: 0; padding: 1.5rem; }
  .member-side { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; padding: 1.25rem; }
  .member-side > .eyebrow, .member-side > h2, .member-side > p, .member-side > a { grid-column: 1/-1; margin: 0; }
  .member-side h2 { font-size: 1.2rem; }
  .home-rewards { border-top: 1px solid var(--line); margin: 0; padding: 1rem 0 0; }
  .member-practice { grid-template-columns: 1fr; }
  .member-practice img { max-height: 10rem; }
  .member-practice > div { padding: 1.5rem; }
  .member-tabs { position: fixed; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: repeat(4, 1fr); z-index: 35; padding: .4rem .5rem calc(.4rem + env(safe-area-inset-bottom)); background: var(--card); border-top: 1px solid var(--line); box-shadow: 0 -4px 20px #2f3e5208; }
  .member-tabs a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-height: 52px; text-decoration: none; font: .8125rem var(--ui-font); border-radius: var(--radius-md); }
  .member-tabs a > span { font-size: 1.35rem; }
  .member-tabs a[aria-current] { background: var(--aora-navy-light); color: var(--navy-deep); }
  .has-member-tabs { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
}
@media (max-width: 44rem) {
  .mobile-menu .nav-group { display: block; margin: 0; }
  .mobile-menu > nav { max-height: calc(100dvh - 110px); overflow-y: auto; }
}
.member-overview > *, .member-side > section { min-width: 0; }
@media (max-width: 44rem) {
  .member-overview, .member-essentials { grid-template-columns: minmax(0, 1fr); }
  .member-side .eyebrow { font-size: var(--label-size); letter-spacing: .06em; overflow-wrap: anywhere; }
}

/* Service detail pages: one editorial rhythm across all three services. */
.service-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(2rem,5vw,4rem); padding: 3rem 0; }
.service-intro h1 { font-size: clamp(2.6rem,4.4vw,4rem); line-height: 1.1; letter-spacing: -.035em; }
.service-intro .lede { font-size: 1rem; margin-bottom: 1.75rem; }
.service-hero figure { margin: 0; }
.service-hero img { width: 100%; height: 27rem; object-fit: cover; border-radius: var(--radius-arch-service); }
.service-hero figcaption { font: var(--label-size-small)/1.6 var(--ui-font); }
.service-expect { border-top: 1px solid var(--line); }
.service-expect .cards { margin-top: 1.75rem; }
.service-expect .card { border-top: 2px solid var(--gold); }
.service-expect .card p { font-size: .95rem; }
.service-preparation { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 3rem; background: var(--surface-soft); padding: clamp(1.5rem,4vw,3rem); margin: 1rem 0 3rem; border-radius: var(--radius-lg); }
.service-preparation h2 { margin-top: .5rem; }
.service-preparation ol { margin: 0; padding: 0; list-style: none; counter-reset: preparation; }
.service-preparation li { position: relative; padding: 0 0 1.5rem 3rem; counter-increment: preparation; }
.service-preparation li + li { border-top: 1px solid var(--border-status); padding-top: 1.5rem; }
.service-preparation li::before { content: '0' counter(preparation); position: absolute; left: 0; font: 1.3rem var(--serif); color: var(--sage-deep); }
.service-preparation h3 { font-size: 1.3rem; margin: 0 0 .5rem; }
.service-preparation li p { margin: 0; font-size: .9rem; }
.service-book { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 4rem; padding: 2rem 0; border-block: 1px solid var(--line); }
.service-book > div { max-width: 38rem; }
.service-book h2 { margin: .6rem 0; }
.service-book .button { flex-shrink: 0; }
.benefits-intro { background: var(--navy); color: var(--cream); padding: 2rem; border-radius: var(--radius-14); margin-bottom: 2rem; }
.benefits-intro .eyebrow { color: var(--aora-gold-light); }
.benefits-intro .benefits-balance { font: 3.75rem/1.1 var(--serif); margin: .75rem 0; }
.benefits-balance span { font: .9rem var(--ui-font); }
.benefits-intro a { color: inherit; }
.reward-card { display: flex; flex-direction: column; border-radius: var(--radius-lg); padding: 1.5rem; border: 1px solid var(--line); background: var(--card); }
.reward-card.is-unlocked { border-color: var(--sage); box-shadow: inset 0 3px var(--sage); }
.reward-meter { margin: auto 0 1.25rem; padding-top: 1rem; }
.reward-meter progress { display: block; width: 100%; height: .5rem; appearance: none; border: 0; border-radius: var(--radius-pill-compact); overflow: hidden; background: var(--line); accent-color: var(--sage-deep); }
.reward-meter progress::-webkit-progress-bar { background: var(--line); border-radius: var(--radius-pill-compact); }
.reward-meter progress::-webkit-progress-value { background: var(--sage-deep); border-radius: var(--radius-pill-compact); }
.reward-meter progress::-moz-progress-bar { background: var(--sage-deep); border-radius: var(--radius-pill-compact); }
.reward-meter span { display: block; margin-top: .6rem; font: .78rem/1.5 var(--ui-font); color: var(--muted); }
.reward-card .reward-state.is-done { color: var(--sage-deep); font-weight: 600; }
.membership-pass { position: relative; background: var(--surface-soft); padding: 2rem; border: 1px solid #c7cebd; border-radius: var(--radius-xl); margin-bottom: 2rem; overflow: hidden; }
.membership-pass > div { position: relative; z-index: 1; padding-right: 2rem; }
.membership-pass h3 { font-size: 2.25rem; margin: .75rem 0; }
.pass-mark { position: absolute; right: 1rem; top: .5rem; font: 8rem var(--serif); color: #56624a18; pointer-events: none; }
.membership-pass .session-note { border-top: 1px solid var(--border-status); padding-top: 1rem; font-size: .85rem; }
.status-message:not(:empty), .form-error:not(:empty) { padding: .85rem 1rem; margin-block: 1rem; border-radius: var(--radius-md); border-left: 3px solid var(--muted); background: var(--aora-navy-light); font: .9rem/1.6 var(--ui-font); overflow-wrap: anywhere; }
.status-message[data-state=success]:not(:empty) { background: var(--aora-green-light); color: var(--text-success); border-color: var(--sage-deep); }
.status-message[data-state=error]:not(:empty), .form-error:not(:empty) { background: var(--surface-error); color: var(--text-error); border-color: #a95738; }
button[data-busy=true]::before { content: ''; display: inline-block; width: .85em; height: .85em; border: 2px solid currentColor; border-right-color: transparent; border-radius: var(--radius-full); margin-right: .65em; vertical-align: -.1em; }
button:disabled { cursor: not-allowed; }
.reservation-card { border-radius: var(--radius-14); background: var(--card); }
.reservation-status { padding: .6rem .85rem; border-radius: var(--radius-md); font-size: .85rem; }
.reservation-status.is-confirmed { background: var(--aora-green-light); color: var(--text-success); }
.reservation-status.is-pending { background: var(--aora-gold-light); color: #654719; }
.reservation-status.is-closed { background: var(--line); }
@media (prefers-reduced-motion: no-preference) { button[data-busy=true]::before { animation: aora-busy .8s linear infinite; } @keyframes aora-busy { to { transform: rotate(360deg); } } }
@media(max-width:44rem) {
  .service-hero, .service-preparation { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .service-hero { padding-top: 1.75rem; }
  .service-hero img { height: 18rem; }
  .service-book { align-items: stretch; flex-direction: column; gap: 1rem; }
  .membership-pass, .benefits-intro { padding: 1.4rem; }
  .membership-pass h3 { font-size: 1.85rem; }
}
.site-footer .eyebrow { color: var(--aora-gold-light); }
.site-footer .footer-newsletter .button { background: var(--cream); color: var(--navy); border-color: var(--cream); }
#account-app .circle-head { padding-block: 1rem; margin-bottom: 1rem; }
#account-app .settings-nav { margin-block: 1rem; }
#account-app .settings-nav a { border-radius: var(--radius-7); font: .85rem/1.5 var(--ui-font); }
#account-app .settings-card { border-radius: var(--radius-14); margin-block: 1rem; }
#rewards-h, #my-bookings { scroll-margin-top: 11rem; }
@media(max-width:44rem) {
  #account-app .reward-shelf { grid-template-columns: minmax(0,1fr); }
  #rewards-h, #my-bookings { scroll-margin-top: 1rem; }
}

/* Member utilities and practices share the refreshed visual system. */
.member-app:not(.staff-workspace) .page-head { max-width: none; padding: 2rem 0 1rem; }
.member-app:not(.staff-workspace) .page-head .lede { font-size: 1rem; line-height: 1.75; max-width: 42rem; color: var(--muted); margin-bottom: .75rem; }
.member-app[data-page=account] #main > .section-tight { padding-top: .5rem; }
.member-app[data-page=account] .page-head h1 { font-size: 2.25rem; }
#account-app .circle-head { background: var(--surface-soft); border: 1px solid #d3d8ca; border-radius: var(--radius-14); padding: 1.5rem; align-items: center; gap: 1.25rem; }
#account-app .circle-head h2 { font-size: 1.8rem; }
#account-app .circle-head .lede { font-size: .95rem; margin-bottom: 0; }
#account-app .tier-bar { border: 0; border-radius: var(--radius-pill-compact); height: .45rem; }
#account-app .tier-bar > span { border-radius: inherit; background: var(--sage-deep); }
#account-app .auth-card { width: 100%; max-width: 31rem; border-radius: var(--radius-xl); background: var(--card); box-shadow: 0 14px 40px #2f3e5207; }
#account-app .auth-tabs { background: var(--cream-deep); border: 0; border-radius: var(--radius-md); padding: .25rem; gap: .25rem; }
#account-app .auth-tab { border: 0; border-radius: var(--radius-6); font-family: var(--ui-font); font-size: .85rem; }
#account-app .auth-tab.is-active { background: var(--navy); color: var(--cream); }
#account-app form label, #booking-app form label { font-size: .86rem; font-weight: 500; color: var(--ink); }
#account-app input:not([type=checkbox]):not([type=radio]), #account-app select,
#booking-app input, #booking-app select { display: block; width: 100%; min-height: 48px; padding: .7rem .85rem; margin-top: .45rem; border: 1px solid var(--control-border); border-radius: var(--control-radius); background: var(--card); color: var(--ink); font: 1rem var(--ui-font); }
#account-app input:focus, #account-app select:focus, #booking-app input:focus, #booking-app select:focus { border-color: var(--navy); }
#profile-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 1.5rem; max-width: 48rem; }
#profile-form > fieldset, #profile-form > [role], #profile-form > p:has(.check), #profile-form > p:last-child { grid-column: 1/-1; }
#profile-form > p { margin-top: 0; }
#profile-form fieldset { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 1rem; }
#account-app .settings-card h3 { font-size: 1.5rem; }
#booking-app { padding-top: .5rem; }
#booking-app > p:not([role]) { font-size: .82rem; color: var(--muted); }
#booking-form, #slot-form { max-width: none; padding: 1.5rem; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-14); }
#booking-form { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) auto; gap: 1rem; align-items: end; }
#booking-form > * { margin: 0; }
#booking-form .button { min-height: 48px; }
#booking-form #exit-change { grid-column: 1/-1; justify-self: start; }
#slot-form { margin-top: 1rem; border-color: var(--sage); }
#booking-app h2 { font-size: 1.85rem; }
#my-bookings:has(>p:only-child) { border: 1px dashed var(--taupe); border-radius: var(--radius-lg); padding: 2rem; color: var(--muted); }
#my-bookings > p:only-child { margin: 0; }
.member-app:is([data-page=soundbooth],[data-page=meditations],[data-page=breath]) .page-head { position: relative; padding: 2.5rem 36% 2.5rem 0; margin-bottom: 1rem; min-height: 17rem; }
.member-app:is([data-page=soundbooth],[data-page=meditations],[data-page=breath]) .page-head::after { content: ''; position: absolute; width: 28%; inset: 1.5rem 0 1.5rem auto; border-radius: var(--radius-arch-member); background: url('assets/brand/aora-olive.jpg') center 42% / cover; }
.member-app .med-card, .member-app .breath-card { border-radius: var(--radius-14); padding: 1.5rem; background: var(--card); display: flex; flex-direction: column; }
.member-app .med-card::before { content: ''; display: block; height: 6rem; border-radius: var(--radius-md); margin-bottom: 1.5rem; background: radial-gradient(ellipse at 32% 120%,#7e8b6f66,transparent 65%),linear-gradient(130deg,#ece5d7,#dfe4d6); }
.member-app .med-card:nth-child(2)::before { background: radial-gradient(ellipse at 68% 0%,#a9bccb88,transparent 65%),linear-gradient(130deg,#dce2e6,#e7e4db); }
.member-app .med-card h3, .member-app .breath-card h3 { font-size: 1.6rem; }
.member-app .med-card > p:last-child, .member-app .breath-card > p:last-child { margin-top: auto; padding-top: 1rem; }
.member-app .med-card p:not(.eyebrow), .member-app .breath-card p:not(.eyebrow) { font-size: .9rem; }
.member-app .freq-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,17rem),1fr)); gap: 1rem; }
.member-app .freq-card { border-radius: var(--radius-14); padding: 1.4rem; gap: .8rem; }
.member-app .freq-top { flex-direction: column; gap: .4rem; }
.member-app .freq-top h3 { font-size: 1.4rem; }
.member-app .freq-hz { margin: 0; font-size: 1rem; letter-spacing: .04em; }
.member-app .freq-card.is-playing { background: var(--surface-soft); border-color: var(--sage-deep); box-shadow: inset 0 3px var(--sage-deep); }
.member-app .freq-play { width: 100%; border-radius: var(--radius-7); font-family: var(--ui-font); }
.member-app .player-bar, .member-app .headphone-notice { border-radius: var(--radius-lg); }
.member-app .pref-rows { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: .5rem 1.25rem; background: var(--card); }
.member-app .fire-warning { border-radius: var(--radius-lg); }
.member-app #checkin-choose { padding: 1.5rem; border: 1px solid var(--line); background: var(--card); border-radius: var(--radius-14); margin-block: 1rem 2rem; }
.member-app #checkin-done:not([hidden]) { padding: 1rem 1.25rem; background: var(--aora-green-light); border-radius: var(--radius-10); color: var(--text-success); }
.public-site[data-page=faq] .prose { max-width: 50rem; }
.public-site[data-page=faq] .prose h2 { font-size: 1.5rem; margin: 2rem 0 .75rem; border-top: 1px solid var(--line); padding-top: 1.5rem; }
.public-site[data-page=faq] .prose p { font-size: .98rem; }
.public-site .journal-item { padding: 1.75rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card); }
.public-site .journal-list { gap: 1.25rem; }
.public-site .journal-item h2 { margin-top: .75rem; }
@media(max-width:44rem) {
  #profile-form, #booking-form { grid-template-columns: minmax(0,1fr); }
  #account-app .circle-head { padding: 1.25rem; gap: .75rem; }
  #account-app .tier-progress { min-width: 0; }
  #account-app .auth-card { padding: 1.25rem; }
  .member-app:is([data-page=soundbooth],[data-page=meditations],[data-page=breath]) .page-head { padding: 1.75rem 0 1rem; min-height: 0; }
  .member-app:is([data-page=soundbooth],[data-page=meditations],[data-page=breath]) .page-head::after { display: none; }
  .member-app .freq-grid { grid-template-columns: minmax(0,1fr); }
  .member-app .control { flex-wrap: wrap; }
  .public-site .journal-item { padding: 1.25rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .now-playing .np-track.is-live::after, button[data-busy=true]::before { animation: none; }
  .freq-card, .freq-play, .purpose-card, .button { transition: none; }
}

/* Operations finishing pass: readable controls and scannable daily work. */
.staff-workspace { font-family: var(--ui-font); }
.staff-workspace h1, .staff-workspace h2, .staff-workspace h3 { font-family: var(--serif); }
.workspace-nav { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-xl); padding: 1rem .65rem; }
.workspace-toolbar { padding-bottom: 1rem; border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.staff-workspace .work-card, .staff-workspace .admin-card { box-shadow: 0 3px 12px #293e4a05; }
.staff-workspace .admin-table th { background: #e9ebe3; font-size: .8125rem; font-weight: 600; }
.staff-workspace .admin-table tbody tr:hover { background: #f0eee5; }
.staff-workspace input:not([type=checkbox]):not([type=radio]), .staff-workspace select, .staff-workspace textarea { min-height: 44px; font: 1rem var(--ui-font); max-width: 100%; }
.staff-workspace .pill, .desk-visit .pill { border-radius: var(--radius-pill-compact); padding: .35rem .65rem; font: 500 .75rem/1.4 var(--ui-font); }
.desk-banner, .desk-actions, .desk-stats, .desk-columns, .desk-checkout-dialog { font-family: var(--ui-font); }
.desk-banner h2, .desk-columns h3, .desk-checkout-dialog h2, .desk-checkout-dialog h3 { font-family: var(--serif); font-weight: 400; }
.desk-banner { border-bottom: 4px solid #baa275; }
.desk-banner p:not(.eyebrow) { font-size: .9rem; line-height: 1.65; }
.desk-stats strong { font-variant-numeric: tabular-nums; font-size: 2.4rem; }
.desk-stats > button { border-top: 3px solid #9aa99c; }
.desk-stats > .desk-stat-warm { border-top-color: #ae874c; }
.desk-stats > .desk-stat-green { border-top-color: #597462; }
.desk-actions .button, .desk-checkout-dialog .button { border-radius: var(--radius-md); min-height: 44px; font: 500 .85rem/1.4 var(--ui-font); }
.desk-day .card-heading { margin-bottom: 1.25rem; }
.desk-search { font-size: .8rem; gap: .6rem; }
.desk-search input { min-height: 48px; padding: .8rem 1rem; border: 1px solid var(--control-border); border-radius: var(--control-radius); background: var(--surface-input); color: var(--workspace-text); font: 1rem var(--ui-font); }
.desk-filters button { min-height: 44px; padding: .65rem .9rem; font-size: .8rem; }
.desk-visit { padding: 1rem .65rem; border-left: 3px solid transparent; gap: .8rem; }
.desk-visit:nth-child(even) { background: #f1f1e9; }
.desk-visit.needs-payment { border-left-color: #ac8040; }
.desk-visit[data-arrival=in_session] { border-left-color: #56745c; }
.desk-visit[data-arrival=in_session] .pill { background: #dce9dd; color: #314d39; }
.desk-visit[data-arrival=completed] { opacity: .8; }
.desk-visit time { font-variant-numeric: tabular-nums; font-weight: 600; }
.desk-visit-info strong { font-size: .9rem; overflow-wrap: anywhere; }
.desk-visit-info small { color: #53615c; }
.desk-avatar { width: 38px; height: 38px; font-size: .85rem; border: 1px solid #c9d3c7; }
.desk-columns aside h3 { font-size: 1.65rem; line-height: 1.2; margin: .7rem 0; }
.desk-columns aside p:not(.eyebrow) { font-size: .85rem; line-height: 1.7; }
.desk-checkout-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }
.desk-checkout-grid article { display: flex; flex-direction: column; background: #fffdf7; }
.desk-checkout-grid article .button { margin-top: auto; }
.room-table { font-family: var(--ui-font); font-variant-numeric: tabular-nums; }
.room-table td { border: 1px solid #ffffff80; }
.room-table thead th { background: #f1eee5; }
.schedule-preview time { font-weight: 600; font-variant-numeric: tabular-nums; }
.visit-calendar { display: inline-grid; min-width: 4.5rem; border: 1px solid #ffffff60; border-radius: var(--radius-10); overflow: hidden; text-align: center; margin-top: 1.5rem; }
.visit-calendar span { background: #ffffff18; padding: .3rem .8rem; font: 600 .75rem var(--ui-font); text-transform: uppercase; }
.visit-calendar strong { padding: .3rem .8rem; font: 2rem/1.2 var(--serif); }
.visit-calendar + h2 { margin-top: 1rem; }
.visit-focus { box-shadow: 0 8px 24px #293e4a12; }
.member-essentials > a { background: var(--surface-card); }
:where(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid #83612f; outline-offset: 3px; }
.visit-focus :where(a,button):focus-visible, .desk-banner :where(a,button):focus-visible { outline-color: #e6c791; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .desk-stats > button, .quick-action { transition: box-shadow .18s ease, border-color .18s ease; }
  .desk-stats > button:hover, .quick-action:hover { box-shadow: 0 4px 14px #293e4a15; }
}
@media (max-width:700px) {
  .workspace-nav { padding: .5rem; border-radius: var(--radius-10); max-width: 100%; }
  .workspace-toolbar { align-items: center; }
  .desk-stats { gap: .65rem; }
  .desk-stats > button, .desk-stats > div { padding: .9rem; }
  .desk-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .desk-actions .button { text-align: center; padding: .7rem; }
  .desk-visit { gap: .6rem; }
  .desk-visit .desk-visit-info { flex-basis: calc(100% - 120px); }
  .desk-visit .text-action { width: auto; margin-left: auto; min-height: 44px; }
  .desk-visit .pill { margin-left: 0; }
  .desk-checkout-dialog { width: calc(100% - 24px); padding: 1.2rem; }
  .metric-grid { grid-template-columns: 1fr; }
  .metric-card { grid-template-columns: 1fr auto; align-items: center; }
  .metric-card > span { grid-column: auto; font-size: .85rem; }
}

/* COMPONENT-TOKEN-LAYER: shared controls use canonical geometry and color tokens. */
.ui-icon { width: 1.4rem; height: 1.4rem; display: inline-block; vertical-align: middle; flex-shrink: 0; }
.member-app .button, .public-site .button, #admin-app .button, .desk-checkout-dialog .button { font-family: var(--ui-font); border-radius: var(--control-radius); }
#admin-app input:not([type=checkbox]):not([type=radio]), #admin-app select, #admin-app textarea { border-color: var(--control-border); border-radius: var(--control-radius); }
.member-app[data-page=meditations] .page-head::after { background-image: url('assets/brand/aora-niche.jpg'); background-position: center; }
.member-app[data-page=breath] .page-head::after { background-image: url('assets/brand/aora-interior-arch.jpg'); background-position: center 35%; }
.product-card { border-radius: var(--radius-lg); border-top: 3px solid var(--sage-deep); }
.product-card:nth-child(3n+2) { border-top-color: var(--gold-deep); }
.product-card:nth-child(3n) { border-top-color: var(--aora-blue-deep); }
/* Catalogue editing stays readable on both desktop and reception tablets. */
[data-catalog] fieldset { min-width:0; padding:1.25rem; border:1px solid var(--control-border); border-radius: var(--radius-lg); }
[data-catalog] legend { padding:0 .5rem; font-size:1.15rem; }
[data-catalog] label { display:grid; gap:.4rem; font-family:var(--font-ui,sans-serif); font-size:14px; }
[data-catalog] input:not([type=checkbox]), [data-catalog] select, [data-catalog] textarea { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:.65rem; font:inherit; color:inherit; background:var(--card); border:1px solid var(--control-border); border-radius: var(--radius-md); }
/* END COMPONENT-TOKEN-LAYER */
[data-catalog] label:has(input[type=checkbox]) { display:flex; align-items:center; margin-top:1rem; }
.room-slot.out_of_service { background:#efe0dc; color:#6b302a; border-color:#b27d70; }

/* First visit — an editorial, reassuring path from arrival to reservation. */
html:has(.public-site[data-page="first-visit"]),
.public-site[data-page="first-visit"] { overflow-x: clip; }
.public-site[data-page="first-visit"] { container-type: inline-size; }
.public-site[data-page="first-visit"] main.wrap { max-width: 1240px; padding-top: 0; }
.first-visit h1, .first-visit h2, .first-visit h3 { text-wrap: balance; }
.first-visit p { text-wrap: pretty; }
.visit-hero { min-height: min(700px, calc(100svh - 112px)); display: grid; grid-template-columns: minmax(0, .85fr) minmax(460px, 1.15fr); align-items: center; gap: clamp(2.5rem, 5vw, 5rem); padding: clamp(3rem, 6vw, 6rem) 0; }
.visit-hero-copy { position: relative; z-index: 1; }
.visit-hero h1 { max-width: 10ch; margin: .5rem 0 1.5rem; font-size: clamp(3.4rem, 6.5vw, 6.5rem); font-weight: 300; line-height: .94; letter-spacing: -.045em; }
.visit-hero .lede { max-width: 38rem; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.75; }
.visit-hero .text-link { display: inline-flex; align-items: center; gap: .55rem; min-height: 48px; font-family: var(--ui-font); font-size: .85rem; font-weight: 600; text-decoration: none; }
.visit-hero .text-link span { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border: 1px solid var(--gold-deep); border-radius: var(--radius-full); transition: transform .25s ease; }
.visit-hero .text-link:hover span { transform: translateY(4px); }
.visit-hero-media { position: relative; margin: 0; }
.visit-hero-media::before { content: ""; position: absolute; inset: -1.25rem 1.5rem 1.25rem -1.5rem; border: 1px solid var(--gold); border-radius: var(--radius-arch-xl); opacity: .7; }
.visit-hero-media picture { display: block; position: relative; overflow: hidden; border-radius: var(--radius-arch-editorial); aspect-ratio: 4 / 5; }
.visit-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 1.2s cubic-bezier(.2,.8,.2,1); }
.visit-hero-media:hover img { transform: scale(1.025); }
.visit-hero-media figcaption { position: relative; margin-top: .85rem; padding: 0; color: var(--muted); font: .8125rem/1.6 var(--ui-font); }
.visit-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 2.5rem 0 0; border-block: 1px solid var(--line); }
.visit-facts div { padding: 1rem .75rem 1rem 0; }
.visit-facts div + div { padding-left: 1rem; border-left: 1px solid var(--line); }
.visit-facts dt { color: var(--gold-deep); font: 600 var(--label-size-small)/1.3 var(--ui-font); letter-spacing: .14em; text-transform: uppercase; }
.visit-facts dd { margin: .35rem 0 0; font: .86rem/1.4 var(--ui-font); }
.visit-section-intro { display: grid; grid-template-columns: minmax(12rem, .55fr) 1.45fr; column-gap: clamp(2rem, 7vw, 7rem); align-items: start; margin-bottom: clamp(2rem, 4vw, 4rem); }
.visit-section-intro .eyebrow { grid-row: 1 / span 2; }
.visit-section-intro h2 { margin: 0 0 1rem; font-size: clamp(2.5rem, 5vw, 4.8rem); font-weight: 300; line-height: 1; letter-spacing: -.035em; }
.visit-section-intro > p:last-child { max-width: 42rem; font-size: 1.05rem; line-height: 1.75; }
.visit-flow, .visit-choices, .visit-faq { padding: clamp(4rem, 8vw, 7rem) 0; }
.visit-flow { border-top: 1px solid var(--line); }
.visit-steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: visit-step; }
.visit-steps::before { content: ""; position: absolute; top: 1.35rem; right: 0; left: 0; height: 1px; background: var(--gold); }
.visit-steps li { position: relative; padding: 0 clamp(1rem, 2.5vw, 2.5rem) 0 0; }
.visit-steps li + li { padding-left: clamp(1rem, 2.5vw, 2.5rem); }
.visit-steps li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-bottom: 2rem; border: 1px solid var(--gold-deep); border-radius: var(--radius-full); background: var(--cream); color: var(--navy); font: 600 var(--label-size-small) var(--ui-font); }
.visit-steps h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
.visit-steps p { color: #4f5d65; font-size: .92rem; line-height: 1.75; }
.visit-choices { position: relative; margin-inline: calc(50% - 50cqw); padding-inline: max(1.25rem, calc((100cqw - 1200px) / 2)); overflow: hidden; background: var(--navy-deep); color: var(--cream); }
.visit-choices::after { content: "AORA"; position: absolute; right: -1vw; bottom: -6vw; color: rgb(255 255 255 / 3%); font: 300 clamp(8rem, 22vw, 22rem)/.8 var(--serif); letter-spacing: -.06em; pointer-events: none; }
.visit-choices .visit-section-intro h2 { color: var(--cream); }
.visit-choices .eyebrow, .visit-choices .visit-section-intro > p:last-child { color: #e4d9c8; }
.visit-choice-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border: 1px solid rgb(255 255 255 / 20%); background: rgb(255 255 255 / 20%); }
.visit-choice { display: flex; min-height: 29rem; flex-direction: column; align-items: flex-start; padding: clamp(2rem, 4vw, 3.75rem); background: var(--navy-deep); transition: background .35s ease, transform .35s ease; }
.visit-choice:hover { background: #354a60; }
.visit-choice .choice-number { color: #d8c49d; font: 600 var(--label-size-small)/1.4 var(--ui-font); letter-spacing: .13em; text-transform: uppercase; }
.visit-choice h3 { max-width: 12ch; margin: 2rem 0 1.25rem; color: white; font-size: clamp(2.3rem, 4vw, 4rem); font-weight: 300; line-height: 1; }
.visit-choice > p:not(.choice-number) { max-width: 33rem; color: #e3e5e2; line-height: 1.75; }
.visit-choice ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 2.5rem; padding: 0; list-style: none; }
.visit-choice li { padding: .45rem .7rem; border: 1px solid rgb(255 255 255 / 28%); border-radius: var(--radius-pill); font: var(--label-size-small) var(--ui-font); }
.visit-choice .button { margin-top: auto; border-color: #dcccae; color: white; }
.visit-choice .button:hover { background: var(--cream); color: var(--navy-deep); }
.visit-prepare { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 39rem; margin-inline: calc(50% - 50cqw); background: var(--aora-cream-light); }
.visit-prepare figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 100%; margin: 0; overflow: hidden; }
.visit-prepare picture, .visit-prepare img { display: block; width: 100%; height: 100%; }
.visit-prepare img { object-fit: cover; }
.visit-prepare figcaption { margin: 0; padding: .75rem 1rem; background: var(--cream-deep); font: var(--label-size-small)/1.5 var(--ui-font); }
.public-site .journey-media figcaption,
.public-site .photo figcaption,
.visit-prepare figcaption { color: var(--text-caption); }
.visit-prepare-copy { align-self: center; max-width: 42rem; padding: clamp(3rem, 6vw, 5.5rem); }
.visit-prepare-copy h2 { margin: .75rem 0 2rem; font-size: clamp(2.4rem, 4vw, 4.2rem); font-weight: 300; line-height: 1.03; }
.visit-checklist { margin: 0; padding: 0; list-style: none; }
.visit-checklist li { position: relative; display: grid; gap: .35rem; padding: 1.15rem 0 1.15rem 2.35rem; border-top: 1px solid #cfc3af; }
.visit-checklist li::before { content: ""; position: absolute; top: 1.15rem; left: 0; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: var(--radius-full); background: var(--navy); color: var(--text-on-dark); font: var(--label-size-small) var(--ui-font); }
.visit-checklist li::after { content: ""; position: absolute; top: 1.55rem; left: .48rem; width: .48rem; height: .24rem; border: solid white; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.visit-checklist strong { font-family: var(--serif); font-size: 1.08rem; font-weight: 500; }
.visit-checklist span { color: #5b625f; font-size: .86rem; line-height: 1.6; }
.visit-reassurance { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(3rem, 7vw, 7rem); padding: clamp(4rem, 7vw, 6rem) 0; border-bottom: 1px solid var(--line); }
.visit-reassurance h2 { max-width: 9ch; font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 300; line-height: 1; }
.reassurance-grid { display: grid; gap: 0; }
.reassurance-grid article { display: grid; grid-template-columns: minmax(10rem, .75fr) 1.25fr; gap: 2rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.reassurance-grid h3 { font-size: 1.2rem; }
.reassurance-grid p { margin: 0; color: var(--text-subtle); font-size: .9rem; line-height: 1.7; }
.visit-faq-list { max-width: 54rem; margin-left: auto; }
.visit-faq details { border-top: 1px solid var(--line); }
.visit-faq details:last-child { border-bottom: 1px solid var(--line); }
.visit-faq summary { position: relative; cursor: pointer; padding: 1.4rem 3rem 1.4rem 0; font: 400 clamp(1.25rem, 2vw, 1.65rem) var(--serif); list-style: none; }
.visit-faq summary::-webkit-details-marker { display: none; }
.visit-faq summary::after { content: "+"; position: absolute; top: 1.3rem; right: .5rem; color: var(--gold-deep); font: 300 1.8rem var(--ui-font); transition: transform .25s ease; }
.visit-faq details[open] summary::after { transform: rotate(45deg); }
.visit-faq details p { max-width: 44rem; padding: 0 3rem 1.5rem 0; color: var(--text-subtle); line-height: 1.75; }
.visit-closing { margin-inline: calc(50% - 50cqw); padding: clamp(4rem, 8vw, 7rem) max(1.25rem, calc((100cqw - 1200px) / 2)); background: var(--aora-green-light); text-align: center; }
.visit-closing h2 { margin: .6rem auto 1.5rem; font-size: clamp(3rem, 7vw, 6.7rem); font-weight: 300; letter-spacing: -.045em; }
.visit-closing .hero-actions { justify-content: center; }
.visit-motion [data-visit-reveal] { opacity: 1; transform: none; }
.visit-motion [data-visit-reveal].is-visible { opacity: 1; transform: none; }
@media (max-width: 900px) {
  .visit-choices, .visit-prepare, .visit-closing { margin-inline: calc(-1 * clamp(1.25rem, 4vw, 2.5rem)); }
  .visit-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 3.5rem; }
  .visit-hero-copy { max-width: 46rem; }
  .visit-hero-media { width: min(100%, 44rem); margin-left: auto; }
  .visit-hero-media picture { aspect-ratio: 4 / 3; border-radius: var(--radius-arch-tablet); }
  .visit-section-intro { grid-template-columns: 1fr; }
  .visit-section-intro .eyebrow { grid-row: auto; }
  .visit-steps { grid-template-columns: repeat(2, 1fr); gap: 2.5rem 0; }
  .visit-steps::before { display: none; }
  .visit-choice-grid, .visit-prepare, .visit-reassurance { grid-template-columns: 1fr; }
  .visit-choice { min-height: 29rem; }
  .visit-prepare figure { min-height: 28rem; }
  .visit-prepare-copy { max-width: none; }
}
@media (max-width: 560px) {
  .public-site[data-page="first-visit"] main.wrap { padding-inline: 1.1rem; }
  .public-site .site-header .header-actions > .reservation-link { display: none; }
  .visit-choices, .visit-prepare, .visit-closing { margin-inline: -1.1rem; }
  .visit-hero { gap: 3rem; padding-block: 3rem 4.5rem; }
  .visit-hero h1 { font-size: clamp(3rem, 15vw, 4.4rem); }
  .visit-hero .hero-actions { align-items: flex-start; flex-direction: column; }
  .visit-facts { grid-template-columns: 1fr; }
  .visit-facts div + div { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .visit-hero-media::before { inset: -.75rem .75rem .75rem -.75rem; }
  .visit-hero-media picture { aspect-ratio: 3 / 4; }
  .visit-hero-media figcaption { width: 100%; }
  .visit-flow, .visit-choices, .visit-faq { padding-block: 3.5rem; }
  .visit-steps { grid-template-columns: 1fr; gap: 0; }
  .visit-steps li, .visit-steps li + li { display: grid; grid-template-columns: 2.75rem 1fr; gap: 1.2rem; padding: 0 0 1.75rem; }
  .visit-steps li > span { margin: 0; }
  .visit-choice-grid { grid-template-columns: 1fr; }
  .visit-choice { min-height: 0; padding: 2rem 1.4rem; }
  .visit-choice h3 { margin-top: 1.4rem; }
  .visit-prepare figure { min-height: 19rem; }
  .visit-prepare-copy { padding: 3rem 1.2rem; }
  .reassurance-grid article { grid-template-columns: 1fr; gap: .5rem; }
  .visit-closing .hero-actions { align-items: stretch; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .visit-motion [data-visit-reveal] { opacity: 1; transform: none; transition: none; }
  .visit-hero-media img, .visit-hero .text-link span, .visit-choice, .visit-faq summary::after { transition: none; }
}

/* Booking calendar: native buttons preserve keyboard navigation. */
.reservation-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;max-width:30rem;margin:1rem 0}
.reservation-calendar>*{text-align:center;padding:.65rem .2rem;min-width:0}
.reservation-calendar button{min-height:44px;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--card);color:inherit;cursor:pointer}
.reservation-calendar button[aria-pressed=true]{background:var(--navy);color:var(--cream)}
.reservation-calendar button:disabled{opacity:.35;cursor:default}
.reservation-calendar button:focus-visible{outline:3px solid var(--navy-deep);outline-offset:2px}
/* The existing labeled native date input remains available at narrow widths. */
@media(max-width:480px){#reservation-calendar{display:none}}

.member-journey{min-width:0}.member-journey .visit-shortcuts{grid-template-columns:1fr}

.shift-work>section{padding-block:1rem;border-top:1px solid var(--line)}.shift-checks label{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;cursor:pointer}.shift-checks input{width:1.3rem;height:1.3rem;flex-shrink:0;margin-top:.2rem}.shift-checks small{display:block;color:var(--muted)}.shift-note{white-space:pre-wrap;overflow-wrap:anywhere}.shift-work textarea{width:100%;min-height:7rem}.shift-work select{min-height:44px;width:100%}.shift-work .card-heading{flex-wrap:wrap}.shift-work{margin-block:1rem}

.shift-work form{display:grid;gap:.8rem}.shift-work [data-shift-area]{scroll-margin-top:6rem}.shift-work form>.button{justify-self:start;max-width:100%}
