:root {
  --background:#ffffff; --foreground:#1c1917; --muted:#f5f5f4; --muted-foreground:#6b6560;
  --border:#e7e5e4; --input:#e7e5e4; --ring:#5e3024; --primary:#5e3024; --primary-foreground:#fff8f3;
  --accent:#f0a884; --accent-soft:#fdeee6; --green:#24392d; --green-soft:#e9efe9;
  --warning:#b45309; --warning-soft:#fef3c7; --danger:#b91c1c; --radius:8px;
  --font-body:Inter,Arial,sans-serif; --font-heading:'Space Grotesk',Arial,sans-serif;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:100px}
body {margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
[hidden] {display:none!important}
img {display:block;max-width:100%;object-fit:cover}
figure,p,h1,h2,h3,h4,blockquote {margin:0}
p+p {margin-top:16px}
h1,h2,h3,h4 {font-family:var(--font-heading);font-weight:600;line-height:1.15;letter-spacing:-.035em}
h1 {font-size:clamp(38px,4.4vw,58px);line-height:1.05}
h2 {font-size:clamp(28px,3.2vw,38px)}
h3 {font-size:20px;letter-spacing:-.025em}
a {color:inherit;text-underline-offset:4px}
a:hover {text-decoration-thickness:2px}
button,input,select,textarea {font:inherit}
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent}
button {cursor:pointer}
button:disabled,[aria-disabled="true"] {opacity:.5;cursor:not-allowed}
:focus-visible {outline:2px solid var(--ring);outline-offset:4px}
address {font-style:normal}
button {touch-action:manipulation}
.ico {width:18px;height:18px;flex-shrink:0;vertical-align:middle}
.wrap {width:min(1120px,calc(100% - 40px));margin-inline:auto}
.section {padding-block:64px}
.section-heading {display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}
.section-heading>.text-link {flex-shrink:0;margin-bottom:3px}
.eyebrow {font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:14px}
.section-heading .eyebrow {margin-bottom:10px}
.muted {color:var(--muted-foreground)}
.small,small {font-size:13px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link {position:fixed;z-index:100;top:8px;left:8px;padding:10px 16px;background:white;transform:translateY(-180%)}
.skip-link:focus {transform:none}
.btn {height:36px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color .15s,border-color .15s}
.btn:hover {background:#47241b;text-decoration:none}
.btn-primary,.btn-default {background:var(--primary);color:var(--primary-foreground)}
.btn-secondary {background:var(--muted);color:var(--foreground)}
.btn-secondary:hover {background:var(--border)}
.btn-outline {background:var(--background);color:var(--foreground);border-color:var(--border)}
.btn-outline:hover,.btn-ghost:hover {background:var(--muted);border-color:var(--border)}
.btn-ghost {background:transparent;color:var(--foreground)}
.btn-link {background:transparent;color:var(--primary);padding-inline:0}
.btn-link:hover {background:transparent;text-decoration:underline}
.btn-danger {background:var(--danger);color:white}
.btn-sm {height:30px;padding-inline:10px;font-size:12px}
.btn-lg {height:44px;padding-inline:20px}
.btn-icon {width:36px;padding:0}
.button-row {display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.text-link {display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;color:var(--primary);text-decoration:none}
.text-link:hover {text-decoration:underline}
.badge {display:inline-flex;align-items:center;gap:4px;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:3px 7px;font-size:11px;font-weight:500;line-height:1.3;white-space:nowrap;background:var(--accent-soft);color:var(--primary)}
.badge-muted,.badge-secondary {background:var(--muted);color:var(--muted-foreground)}
.badge-warning {background:var(--warning-soft);color:#914109}
.badge-green,.badge-success {background:var(--green-soft);color:var(--green)}
.badge-outline {border-color:var(--border);background:transparent;color:var(--foreground)}
.sample-tag {display:inline-block;padding:1px 5px;background:var(--muted);color:var(--muted-foreground);border-radius:var(--radius);font-size:10px;line-height:1.5;white-space:nowrap;vertical-align:middle;letter-spacing:0}
label,.label {display:block;font-size:14px;font-weight:500;margin-bottom:6px}
input:not([type=checkbox]):not([type=radio]),select,textarea,.input {width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius);padding:7px 11px;background:var(--background);color:var(--foreground);font-size:16px;line-height:1.3}
input::placeholder,textarea::placeholder {color:var(--muted-foreground)}
textarea {min-height:100px;resize:vertical}
input[type=checkbox],input[type=radio] {width:16px;height:16px;accent-color:var(--primary);flex-shrink:0;margin:3px 0}
.check-label,.radio-label {display:flex;align-items:start;gap:9px;font-weight:400}
[aria-invalid=true] {border-color:var(--danger)!important}
.field {margin-bottom:18px}
.field-hint {font-size:12px;color:var(--muted-foreground);margin-top:5px}
.field-error {font-size:12px;color:var(--danger);margin-top:5px}
.card {border:1px solid var(--border);border-radius:12px;background:var(--background);overflow:hidden}
.card-header,.card-content,.card-footer {padding:20px}
.card-header+.card-content {padding-top:0}
.card-title {font-size:20px}
.card-description {margin-top:6px;color:var(--muted-foreground);font-size:14px}
.card-footer {border-top:1px solid var(--border)}
.tabs,.tabs-list,[role=tablist] {display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius);background:var(--muted);max-width:100%;overflow-x:auto}
.tab,[role=tab] {border:0;border-radius:var(--radius);background:transparent;color:var(--muted-foreground);padding:7px 12px;white-space:nowrap;font-size:14px;font-weight:500;text-decoration:none}
.tab.active,[role=tab][aria-selected=true] {background:var(--background);color:var(--foreground)}
.separator,hr {height:1px;border:0;background:var(--border);margin-block:24px}
.table-wrap {max-width:100%;overflow-x:auto}
table,.table {width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
th,td {padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th {font-weight:500;color:var(--muted-foreground)}
thead {background:var(--muted)}
.table tbody tr:hover {background:var(--muted)}
dialog {color:var(--foreground);background:var(--background);border:1px solid var(--border);padding:24px;border-radius:12px;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto}
dialog::backdrop,.sheet-overlay,.dialog-overlay {background:#1c191766}
.dialog-header,.sheet-header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.dialog-footer,.sheet-footer {display:flex;justify-content:end;gap:8px;margin-top:24px}
.sheet {position:fixed;inset:0 0 0 auto;margin:0;width:min(380px,90vw);max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border-width:0 0 0 1px}
.sheet[open] {animation:sheet-in .18s ease-out}
@keyframes sheet-in {from{transform:translateX(100%)}to{transform:translateX(0)}}
.toast-region {position:fixed;bottom:24px;right:24px;width:min(380px,calc(100% - 32px));z-index:80;display:grid;gap:8px;pointer-events:none}
.toast {padding:12px 12px 12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:12px;background:white;font-size:14px;pointer-events:auto;overflow-wrap:anywhere}
.toast .btn {padding:0;width:30px;flex-shrink:0}
.clipboard-fallback {position:fixed;left:-9999px}
.demo-banner {background:var(--green);color:#fff8f3;font-size:12px}
.banner-inner {height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.demo-brand,.banner-actions {display:flex;align-items:center;gap:8px}
.demo-brand img {object-fit:contain;background:var(--accent-soft);border-radius:50%}
.demo-brand strong {font-weight:500;white-space:nowrap}
.banner-actions {gap:24px}
.banner-actions button {display:flex;align-items:center;gap:5px;padding:6px 0;color:inherit;background:none;border:0;font-size:12px}
.banner-actions a {text-decoration:none}
.banner-actions .ico {width:14px;height:14px}
.banner-actions [aria-expanded=true] .ico {transform:rotate(180deg)}
.demo-banner :focus-visible {outline-color:var(--accent)}
.demo-panel {border-bottom:1px solid var(--border);background:white}
.demo-panel>.wrap {padding-block:32px}
.demo-intro {max-width:760px;margin-bottom:28px}
.demo-intro h2 {font-size:28px;max-width:680px;margin-bottom:12px}
.demo-intro p {color:var(--muted-foreground);font-size:14px}
.demo-columns,.demo-row {display:grid;grid-template-columns:1.1fr 1.15fr .7fr;gap:28px}
.demo-columns {background:var(--muted);padding:10px 16px;font-size:12px;font-weight:600;border-radius:var(--radius)}
.demo-row {padding:20px 16px;border-bottom:1px solid var(--border);font-size:13px;align-items:start}
.demo-row h3 {font-size:16px;letter-spacing:-.02em;margin-bottom:8px}
.demo-row p {color:var(--muted-foreground)}
.demo-row>.text-link {font-size:13px}
.mobile-label {display:none}
.demo-extras {display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:28px}
.demo-extras h3 {font-size:17px;margin-bottom:14px}
.demo-extras ul {padding-left:18px;font-size:13px;color:var(--muted-foreground)}
.demo-extras li+li {margin-top:9px}
.demo-code {display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:10px 0}
.demo-code code {font-size:12px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted)}
.demo-code small {display:block;margin-top:5px;font-size:11px;color:var(--muted-foreground)}
.demo-code .btn {font-size:12px;padding-inline:10px}
.demo-panel-bottom {display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}
.demo-panel-bottom p {max-width:760px}
.site-header {position:sticky;top:0;z-index:30;background:var(--background);border-bottom:1px solid var(--border)}
.header-inner {height:80px;display:flex;align-items:center;gap:28px}
.brand {display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:21px;font-weight:600;letter-spacing:-.05em;text-decoration:none;white-space:nowrap}
.brand img {object-fit:contain;flex-shrink:0}
.desktop-nav {display:flex;align-items:center;gap:28px;margin-left:auto}
.desktop-nav a {font-size:13px;font-weight:500;text-decoration:none;color:var(--muted-foreground)}
.desktop-nav a:hover,.desktop-nav [aria-current=page] {color:var(--primary)}
.header-actions {display:flex;gap:8px;align-items:center}
.menu-toggle {display:none;padding:0;width:36px}
.nav-sheet h2 {font-size:22px}
.nav-sheet nav {display:grid;gap:8px}
.nav-sheet nav>a:not(.btn) {padding:12px 8px;border-bottom:1px solid var(--border);text-decoration:none}
.nav-sheet nav>.btn {margin-top:12px}
.nav-sheet>p {margin-top:28px}
.hero {display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding-block:48px 52px}
.hero-copy {padding-block:10px}
.hero .eyebrow {font-size:11px;margin-bottom:20px}
.hero-description {max-width:460px;color:var(--muted-foreground);line-height:1.7;margin-block:24px}
.hero .button-row .btn {height:42px}
.next-class {margin-top:28px;max-width:480px}
.next-class>h2 {font-family:var(--font-body);font-size:13px;letter-spacing:0;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--muted)}
.next-class .session-row {display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px 16px;padding:18px;align-items:start}
.next-class .session-date {grid-row:1 / 3}
.next-class .session-action {grid-column:2;justify-content:space-between;gap:8px}
.next-class .session-action .btn {margin-left:auto}
.hero-photo {position:relative;min-width:0}
.hero-photo>img {width:100%;height:auto;aspect-ratio:4/5;border-radius:12px;object-position:50% 12%}
.award-card {position:absolute;bottom:18px;left:18px;right:18px;width:max-content;max-width:calc(100% - 36px);display:flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;border:1px solid var(--border);border-radius:12px;background:white}
.award-card img {width:56px;height:56px;object-fit:contain}
.award-card strong {font-size:12px;font-weight:600;display:block}
.award-card small {font-size:11px;color:var(--muted-foreground)}
.upcoming {padding-top:32px}
.session-list {border:1px solid var(--border);border-radius:12px;overflow:hidden}
.session-row {display:flex;align-items:center;gap:22px;padding:20px 24px;background:var(--background);font-variant-numeric:tabular-nums}
.session-row+.session-row {border-top:1px solid var(--border)}
.session-date {flex-shrink:0;width:58px;text-align:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;line-height:1.2}
.session-date>span {display:block;padding:4px;background:var(--muted);font-size:10px;font-weight:600;text-transform:uppercase;color:var(--muted-foreground)}
.session-date strong {display:block;font-family:var(--font-heading);font-size:23px;font-weight:500;padding-top:3px}
.session-date small {display:block;font-size:10px;padding-bottom:5px;color:var(--muted-foreground)}
.session-info {flex:1;min-width:0}
.session-time {font-size:12px;margin-bottom:5px;color:var(--muted-foreground)}
.session-time .sample-tag {margin-left:6px}
.session-info h3 {font-size:17px;line-height:1.25;letter-spacing:-.02em}
.session-info p {font-size:12px;color:var(--muted-foreground);margin-top:5px}
.session-action {display:flex;gap:16px;align-items:center;flex-shrink:0}
.session-action .btn {min-width:84px}
.session-action .ico {width:14px;height:14px}
.sold-out {margin-top:16px;line-height:1.8}
.sold-out>a:not(.text-link) {text-decoration:none}
.sold-out>a:hover {text-decoration:underline}
.sold-out .text-link {font-size:inherit}
.empty-state {padding:24px;color:var(--muted-foreground);font-size:14px}
.class-section {background:var(--muted);border-block:1px solid var(--border)}
.class-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.class-card {display:block;position:relative;text-decoration:none}
.class-card:hover {background:var(--accent-soft)}
.class-card>img {width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.class-card .card-content {padding:24px}
.class-card h3 {font-size:25px;line-height:1.25}
.class-card p {font-size:14px;color:var(--muted-foreground);margin-top:10px;line-height:1.6}
.class-card .class-price {margin-top:6px;color:var(--foreground);font-size:13px;font-variant-numeric:tabular-nums}
.class-card .text-link {margin-top:18px;font-size:13px}
.class-card .badge {position:absolute;top:16px;left:16px;max-width:calc(100% - 32px);background:var(--background);color:var(--green)}
.class-options {list-style:none;padding:0;margin:28px 0 0;border-top:1px solid var(--border)}
.class-options li {border-bottom:1px solid var(--border)}
.class-option {display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:24px;padding:22px 8px;text-decoration:none}
.class-option:hover {background:var(--background)}
.class-option h3 {font-size:20px}
.class-option p {font-size:13px;color:var(--muted-foreground);margin:6px 0 0}
.class-option .class-option-price {margin:0;text-align:right;color:var(--foreground);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}
.class-option-price small {display:block;font-size:12px;font-weight:400;color:var(--muted-foreground)}
.class-option>.ico {color:var(--primary)}
.gift-layout {display:grid;grid-template-columns:.9fr 1.1fr;background:var(--green);color:var(--primary-foreground);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.gift-photo {width:100%;height:340px}
.gift-copy {padding:44px;align-self:center}
.gift-copy h2 {font-size:38px;margin-bottom:16px}
.gift-copy>p {max-width:430px;font-size:14px;line-height:1.8;color:var(--primary-foreground);margin-bottom:24px}
.gift-copy .eyebrow {color:var(--primary);font-size:10px}
.gift-copy .button-row {gap:20px}
.gift-copy .text-link {font-size:12px;color:var(--primary-foreground)}
.gift-copy .btn-primary {background:var(--accent);color:var(--primary)}
.gift-copy .btn-primary:hover {background:var(--accent-soft)}
.gift-copy :focus-visible {outline-color:var(--accent)}
.split-section {display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.split-section figure {min-width:0}
.section-photo {width:100%;border-radius:12px;object-fit:cover}
.kim-photo {max-width:420px;height:520px;object-position:center 35%}
.about-section {padding-top:12px;padding-bottom:80px}
.section-copy h2 {margin-bottom:24px}
.section-copy>p:not(.eyebrow) {color:var(--muted-foreground);font-size:14px;line-height:1.8}
blockquote {padding-left:20px;margin-block:28px;border-left:1px solid var(--border)}
blockquote p {font-family:var(--font-heading);font-size:20px;line-height:1.5;letter-spacing:-.02em}
blockquote cite {display:block;font-size:12px;font-style:normal;color:var(--muted-foreground);margin-top:10px}
.about-links {display:flex;flex-wrap:wrap;gap:20px}
.about-links .text-link {font-size:12px}
.visit-section {background:var(--muted);border-block:1px solid var(--border)}
.visit-section address {font-size:15px}
.directions-link {margin-block:12px 22px}
.hours-table {max-width:360px;font-size:13px}
.hours-table th,.hours-table td {padding:6px 0;border:0;font-weight:400}
.hours-table th {color:var(--foreground)}
.hours-table td {text-align:right;color:var(--muted-foreground)}
.closure {display:flex;align-items:center;gap:8px;margin-block:18px 24px!important;color:var(--primary)!important;font-size:12px!important}
.visit-section .section-copy>.text-link:last-child {margin-top:18px}
.storefront-photo {height:520px;object-position:center}
.site-footer {padding-top:56px}
.footer-grid {display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:70px}
.footer-grid .brand {font-size:20px}
.footer-grid h3 {font-size:16px;margin-bottom:18px}
.footer-grid p,.footer-grid address {font-size:13px;color:var(--muted-foreground);margin-block:14px}
.footer-grid a {text-decoration:none}
.footer-grid a:hover {text-decoration:underline}
.footer-contact {display:flex;align-items:center;gap:9px;font-size:12px;margin-top:12px;overflow-wrap:anywhere}
.footer-contact .ico {width:15px;height:15px}
.footer-grid ul {list-style:none;margin:0;padding:0;font-size:13px;display:grid;gap:10px}
.footer-grid .hours-table {font-size:12px}
.footer-grid .hours-table th,.footer-grid .hours-table td {padding:3px 0}
.footer-grid .small {font-size:11px}
.footer-note {border-top:1px solid var(--border);padding-block:22px;margin-top:40px;font-size:11px;color:var(--muted-foreground)}
@media (min-width:768px) {input:not([type=checkbox]):not([type=radio]),select,textarea {font-size:14px}}
@media (max-width:1000px) {
  .desktop-nav {gap:18px}.header-inner {gap:20px}.brand {font-size:19px}
  .hero {gap:28px}
  .split-section {gap:40px}.gift-copy {padding:32px}.footer-grid {gap:35px}
}
@media (max-width:767px) {
  html {scroll-padding-top:85px}.wrap {width:calc(100% - 36px)}.section {padding-block:44px}
  .desktop-only,.desktop-nav {display:none!important}.menu-toggle {display:inline-flex}
  .banner-inner {height:42px}.banner-actions {gap:0}.demo-brand {gap:7px}.demo-brand strong {font-size:11px}.banner-actions button {font-size:11px}
  .header-inner {height:70px;gap:10px;justify-content:space-between}.header-actions {gap:4px}.header-actions>.btn {font-size:12px;padding-inline:12px}
  .brand {font-size:17px;gap:7px}.brand img {width:29px;height:32px}.header-actions .menu-toggle {width:30px;padding:0}
  .demo-panel {max-height:80dvh;overflow-y:auto;overscroll-behavior:contain}.demo-panel>.wrap {padding-block:24px}
  .demo-intro h2 {font-size:24px}.demo-intro p {font-size:13px}.demo-columns {display:none}.demo-row {display:block;border:1px solid var(--border);border-radius:12px;padding:16px;margin-top:12px}
  .demo-row>div+div {margin-top:14px}.demo-row>.text-link {margin-top:14px}.mobile-label {display:block;font-weight:600;font-size:11px;margin-bottom:5px}
  .demo-extras {grid-template-columns:1fr;gap:24px}.demo-extras ul {margin-bottom:0}.demo-panel-bottom {align-items:start;gap:12px}.demo-panel-bottom p {font-size:11px}
  .hero {grid-template-columns:1fr;gap:26px;padding-block:34px 24px}.hero-copy {padding:0}.hero .eyebrow {font-size:10px;margin-bottom:16px}
  h1 {font-size:40px}.hero-description {font-size:14px;line-height:1.75;margin-block:18px 22px}.hero .button-row {gap:10px}.hero .button-row .btn {height:40px;padding-inline:14px;font-size:13px}
  .next-class {margin-top:24px}.next-class>h2 {padding:12px}.next-class .session-row {grid-template-columns:46px minmax(0,1fr);gap:10px 12px;padding:14px 12px}.hero-photo>img {height:auto;aspect-ratio:1/1}.award-card {bottom:12px;left:12px;right:12px;padding:7px 12px 7px 7px;gap:10px}.award-card img {width:44px;height:44px}.award-card strong {font-size:11px}.award-card small {font-size:10px}
  .upcoming {padding-top:24px}.section-heading {gap:12px;margin-bottom:20px}.section-heading h2 {font-size:26px}.section-heading .eyebrow {font-size:9px;letter-spacing:.07em;margin-bottom:8px}.section-heading>.text-link {font-size:11px;gap:4px}.section-heading .ico {width:14px;height:14px}
  .session-row {display:grid;grid-template-columns:46px minmax(0,1fr);gap:9px 12px;padding:16px 12px;align-items:start}.session-date {width:46px;grid-row:1 / 3}.session-date strong {font-size:22px}.session-time {font-size:13px;line-height:1.5;margin-bottom:2px}.session-time .sample-tag {margin-left:2px;font-size:9px}.session-info h3 {font-size:16px}.session-info p {font-size:13px;line-height:1.5}.session-action {grid-column:2;justify-content:space-between;gap:8px}.session-action .btn {height:40px;min-width:92px;margin-left:auto;font-size:14px;padding-inline:14px}.session-action .badge {font-size:10px}.session-row-compact {grid-template-columns:minmax(0,1fr)}.session-row-compact .session-action {grid-column:1}.sold-out {font-size:11px}
  .class-grid {grid-template-columns:1fr;gap:20px}.class-card .card-content {padding:20px}.class-card h3 {font-size:23px}.class-card .badge {font-size:10px}
  .class-options {margin-top:24px}.class-option {gap:12px;padding:20px 0;grid-template-columns:minmax(0,1fr) auto 16px}.class-option h3 {font-size:17px}.class-option p {font-size:12px}.class-option .class-option-price {font-size:14px}.class-option-price small {font-size:11px}.class-option>.ico {width:16px}
  .scroll-row {display:flex;flex-wrap:nowrap;max-width:100%;min-width:0;overflow-x:auto;gap:8px;scrollbar-width:none;scroll-padding-inline:12px;padding:6px;overscroll-behavior-x:contain}
  .scroll-row>* {flex:0 0 auto}.scroll-row::-webkit-scrollbar {display:none}
  .gift-layout {grid-template-columns:1fr}.gift-photo {height:230px}.gift-copy {padding:28px 24px 32px}.gift-copy h2 {font-size:32px}.gift-copy>p {font-size:13px}.gift-copy .button-row {gap:16px}.gift-copy .btn {font-size:12px;padding-inline:12px}.gift-copy .text-link {font-size:11px}
  .split-section {grid-template-columns:1fr;gap:30px}.about-section {padding-top:0}.kim-photo {height:380px}.section-copy h2 {margin-bottom:18px}.section-copy>p:not(.eyebrow) {font-size:13px}.section-copy .eyebrow {font-size:10px}blockquote p {font-size:19px}.about-links {gap:16px}.about-links .text-link {font-size:11px}.storefront-photo {height:360px}.visit-section .split-section {gap:32px}
  .site-footer {padding-top:38px}.footer-grid {grid-template-columns:1fr;gap:30px}.footer-grid .brand {font-size:21px}.footer-grid h3 {margin-bottom:12px}.footer-grid .hours-table {max-width:none}.footer-grid>div:last-child ul {grid-template-columns:1fr 1fr;gap:12px}.footer-note {margin-top:30px;line-height:1.8;font-size:10px}
  .toast-region {bottom:16px;left:16px;right:16px;width:auto}
}
@media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto}*,*::before,*::after {animation:none!important;transition:none!important}}

.spots-left {font-size:13px;color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap}

/* Sold-out rows: keep them visible for the waitlist, but quieter than bookable rows. */
.session-row.is-full {padding-block:12px;background:var(--muted)}
.session-row.is-full h3 {font-size:15px;color:var(--muted-foreground)}
.session-row.is-full .session-info p {display:none}
.session-row.is-full .session-date {opacity:.6}

/* Headings and containers focused by script (tabindex=-1) shouldn't draw a focus box. */
[tabindex="-1"]:focus {outline:none}
@media (max-width:767px){#demoPanel{max-height:70svh;overflow-y:auto;overscroll-behavior:contain}}
