html:has(.storefront) { min-width: 0; }
.storefront.color-green { --chosen-accent: #087f68; --chosen-soft: #dff3e9; }
.storefront.color-blue { --chosen-accent: #2563a8; --chosen-soft: #e2efff; }
.storefront.color-rose { --chosen-accent: #b82d4d; --chosen-soft: #fce7ee; }
.storefront.color-orange { --chosen-accent: #bd4c2f; --chosen-soft: #ffede5; }
.storefront.color-yellow { --chosen-accent: #66610c; --chosen-soft: #f1f576; }
.storefront.color-graphite { --chosen-accent: #34383d; --chosen-soft: #e9ecef; }
.storefront { --page: #fff; --brand: #0f766e; --brand-strong: #0f766e; --line: #e3e9e7; --ink: #20292a; --muted: #687570; background: var(--page); min-height: 100dvh; display: flex; flex-direction: column; }
.storefront .public-container { width: min(1120px, calc(100% - 40px)); flex: 1; margin: 0 auto; padding-bottom: 32px; min-width: 0; }
.storefront .store-topbar { width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding: 16px 0; border-bottom: 1px solid var(--line); min-height: 64px; gap: 16px; }
.storefront-home { display: flex; align-items: center; gap: 10px; color: var(--ink); font-size: 14px; font-weight: 650; min-width: 0; min-height: 44px; }
.storefront-home span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.storefront .store-topbar-label { display: inline-flex; gap: 7px; align-items: center; font-size: 12px; color: var(--muted); flex-shrink: 0; }
.storefront .store-hero { padding: 40px 0 32px; margin: 0 0 24px; border-bottom: 1px solid var(--line); gap: 20px; }
.storefront .store-hero h1, .storefront .booking-store-heading h1 { font-size: 32px; line-height: 1.2; font-weight: 650; overflow-wrap: anywhere; }
.storefront .store-hero p { max-width: 650px; font-size: 14px; line-height: 1.7; }
.storefront .store-logo, .storefront .store-logo-fallback { width: 76px; height: 76px; border-radius: 8px; flex-shrink: 0; margin: 0; object-fit: cover; }
.storefront .toolbar { margin: 0 0 24px; grid-template-columns: minmax(0, 1fr); max-width: 460px; }
.storefront input { min-height: 48px; font-size: 16px; }
.storefront .public-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.storefront .public-product { border: 0; padding: 0 0 16px; background: transparent; box-shadow: none; border-radius: 0; gap: 10px; min-width: 0; }
.storefront .public-cover { aspect-ratio: 1; border-radius: 8px; background: #f1f4f3; }
.storefront .public-cover img { object-fit: contain; }
.storefront .store-logo { object-fit: contain; background: #fff; padding: 4px; }
.storefront .public-product strong { font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; min-height: 0; }
.storefront .public-product:only-child { grid-column: 1 / -1; max-width: 520px; width: 100%; }
.storefront .search-field > .icon { bottom: 15px; top: auto; right: 14px; }
.storefront .public-product > span { font-size: 15px; font-weight: 650; margin-top: 0; }
.storefront .public-product:hover { box-shadow: none; opacity: .85; }
.storefront .button { min-height: 44px; border-radius: 6px; font-size: 13px; white-space: normal; }
.storefront .store-footer { width: min(1120px, calc(100% - 40px)); margin: 24px auto 0; padding: 20px 0 calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); display: flex; justify-content: center; }
.storefront .store-footer a { font-size: 11px; font-weight: 400; color: #89958f; min-height: 44px; display: inline-flex; align-items: center; }
.storefront .booking-store-heading { padding-top: 32px; }
.storefront .public-daily-layout { margin-top: 24px; }
.storefront .public-booking-calendar { border-radius: 6px; }
.storefront.theme-editorial { --brand: #b73e57; --brand-strong: #b73e57; --line: #e8e4e6; }
.theme-editorial .store-hero { flex-direction: column; align-items: flex-start; border-bottom: 3px solid var(--ink); }
.theme-editorial .store-hero h1, .theme-editorial .booking-store-heading h1 { font-family: Georgia, serif; font-size: 40px; font-weight: 400; }
.theme-editorial .public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.theme-editorial .public-cover { aspect-ratio: 4 / 5; border-radius: 0; }
.theme-editorial .public-product { border-bottom: 1px solid var(--line); }
.theme-editorial .booking-store-identity { flex-direction: column; align-items: flex-start; }
.theme-editorial .daily-free { border-style: solid; color: var(--brand); }
.theme-editorial .public-daily-layout .booking-day-detail { border-top: 3px solid var(--brand); }
.storefront.theme-mono { --brand: #23272b; --brand-strong: #23272b; --line: #dfe3e6; --page: #fafbfc; }
.theme-mono .store-hero { padding-block: 28px; }
.theme-mono .public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.theme-mono .public-product { display: grid; grid-template-columns: 100px minmax(0, 1fr); padding: 18px 0; border-bottom: 1px solid var(--line); align-items: center; gap: 8px 16px; }
.theme-mono .public-cover { grid-row: 1 / 3; border-radius: 4px; width: 100px; }
.theme-mono .public-product > span { grid-column: 2; }
.theme-mono .daily-free { color: var(--ink); background: white; border-style: solid; }
.theme-mono .daily-slot { background: white; }
.theme-mono .daily-heading { background: #f0f2f4; }
.theme-mono .public-booking-calendar { border: 0; border-radius: 0; }
/* Three distinct compositions shared by catalog and booking views. */
.store-catalog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 32px 0 18px; }
.store-catalog-heading h2 { font-size: 20px; margin: 0; font-weight: 650; }
.store-catalog-heading > span { color: var(--muted); font-size: 12px; }
.storefront .public-product .product-explore { display: flex; align-items: center; justify-content: space-between; min-height: 44px; border-top: 1px solid var(--line); margin-top: 8px; color: var(--ink); font-size: 12px; font-weight: 500; }
.storefront.theme-studio { --page: #f4f8f6; --brand: #087f68; --brand-strong: #087f68; }
.storefront.theme-studio .store-hero, .theme-studio .booking-store-heading { background: #fff; border: 0; border-bottom: 2px solid #111; padding: 36px 24px; margin: 0 -20px 28px; }
.theme-studio .store-hero h1, .theme-studio .booking-store-heading h1 { font-size: 38px; font-weight: 750; }
.storefront.theme-studio .public-product { background: #fff; border: 1px solid #e1e9e4; border-radius: 8px; overflow: hidden; padding: 10px 10px 0; gap: 12px; }
.theme-studio .public-product > :not(.public-cover) { margin-inline: 6px; }
.theme-studio .public-product > span:not(.product-explore) { color: #087f68; font-size: 18px; }
.theme-studio .public-cover { aspect-ratio: 4 / 3; background: #f2f6f3; }
.theme-studio .public-booking-calendar { background: #fff; border-color: #cde4d7; }
.theme-studio .daily-slot.available { background: #f7fcf9; }
.theme-studio .daily-free { background: #fff; border: 1px solid #c7dfd1; color: #087f68; }
.storefront.theme-editorial { --page: #fff; --brand: #b82d4d; --brand-strong: #b82d4d; --line: #eddee3; }
.storefront.theme-editorial .store-hero, .theme-editorial .booking-store-heading { padding-block: 44px; border-bottom: 2px solid #b82d4d; }
.theme-editorial .store-hero h1, .theme-editorial .booking-store-heading h1 { font-size: 54px; color: #89253d; }
.theme-editorial .store-catalog-heading h2 { font-family: Georgia, serif; font-size: 28px; font-weight: 400; }
.storefront.theme-editorial .public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 28px; }
.theme-editorial .public-product:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); align-items: start; gap: 16px 32px; }
.theme-editorial .public-product:first-child .public-cover { grid-row: 1 / 4; aspect-ratio: 4 / 3; }
.theme-editorial .public-product:first-child strong { padding-top: 24px; font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.theme-editorial .public-cover { background: #f9f0f3; }
.theme-editorial .public-product > span:not(.product-explore) { color: #b82d4d; }
.theme-editorial .daily-heading { background: #fff3f6; }
.theme-editorial .daily-free { border-left: 3px solid #b82d4d; background: #fff; }
.storefront.theme-mono { --page: #fff; --brand: #262a2c; --brand-strong: #262a2c; --line: #e1e4e5; }
.storefront.theme-mono .store-hero, .theme-mono .booking-store-heading { background: #f1f576; padding: 28px 24px; margin: 0 -20px 28px; border: 0; }
.theme-mono .store-logo, .theme-mono .store-logo-fallback { border-radius: 4px; }
.storefront.theme-mono .public-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
.storefront.theme-mono .public-product { grid-template-columns: 160px minmax(0, 1fr) 120px; gap: 10px 24px; padding: 24px 0; }
.theme-mono .public-cover { width: 160px; grid-row: 1 / 3; }
.theme-mono .public-product strong { font-size: 20px; }
.theme-mono .public-product > span:not(.product-explore) { grid-column: 2; }
.storefront.theme-mono .public-product .product-explore { grid-column: 3; grid-row: 1 / 3; border: 1px solid #d8dcde; padding: 10px 12px; margin: 0; border-radius: 4px; }
.theme-mono .daily-heading { background: #f1f576; }
.theme-mono .daily-free { border-color: #d7de8b; background: #fcfde9; }
.theme-mono .public-daily-layout { max-width: 100%; }
@media (max-width: 719px) {
    .storefront .store-topbar, .storefront .public-container, .storefront .store-footer { width: calc(100% - 28px); }
    .storefront .store-topbar { padding: 10px 0; gap: 8px; }
    .storefront .store-topbar-label { font-size: 11px; }
    .storefront-home { font-size: 13px; max-width: 50%; }
    .storefront .store-hero { padding-block: 28px; gap: 14px; }
    .storefront .store-hero > div { min-width: 0; }
    .storefront .store-hero h1, .storefront .booking-store-heading h1 { font-size: 27px; }
    .storefront .store-logo, .storefront .store-logo-fallback { width: 64px; height: 64px; }
    .storefront .public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
    .storefront .public-product strong, .storefront .public-product > span { font-size: 13px; }
    .storefront.theme-editorial .store-hero h1, .theme-editorial .booking-store-heading h1 { font-size: 32px; }
    .theme-editorial .public-grid { gap: 24px 14px; }
    .theme-mono .public-grid { grid-template-columns: minmax(0, 1fr); }
    .theme-mono .public-product { grid-template-columns: 86px minmax(0, 1fr); }
    .theme-mono .public-cover { width: 86px; }
    .storefront .daily-heading h2 { font-size: 18px !important; }
    .storefront .public-daily-layout .booking-day-detail { padding: 16px 0; }
    .storefront .detail-layout { grid-template-columns: minmax(0, 1fr); }
    .storefront .public-container :is(h1,h2,h3,p,strong) { overflow-wrap: anywhere; }
    .storefront.theme-studio .store-hero, .theme-studio .booking-store-heading,
    .storefront.theme-mono .store-hero, .theme-mono .booking-store-heading { margin-inline: -14px; padding: 28px 18px; }
    .storefront.theme-studio .store-hero h1, .theme-studio .booking-store-heading h1 { font-size: 32px; }
    .storefront.theme-editorial .store-hero h1, .theme-editorial .booking-store-heading h1 { font-size: 40px; }
    .storefront.theme-editorial .public-product:first-child { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .theme-editorial .public-product:first-child .public-cover { grid-row: auto; }
    .theme-editorial .public-product:first-child strong { font-size: 24px; padding-top: 0; }
    .storefront.theme-mono .public-product { grid-template-columns: 100px minmax(0, 1fr); gap: 8px 14px; padding: 20px 0; }
    .theme-mono .public-cover { width: 100px; grid-row: 1 / 4; }
    .storefront.theme-mono .public-product .product-explore { grid-column: 2; grid-row: 3; padding: 6px 10px; justify-content: space-between; }
    .theme-mono .public-product strong { font-size: 16px; }
    .storefront.theme-studio .public-product > span:not(.product-explore) { font-size: 16px; }
    .storefront.theme-editorial .public-product:only-child { max-width: none; }
}
.storefront[class*="color-"]:not(.color-auto) { --brand: var(--chosen-accent); --brand-strong: var(--chosen-accent); }
.storefront[class*="color-"]:not(.color-auto) .store-hero,
.storefront[class*="color-"]:not(.color-auto) .booking-store-heading { background: #fff; border-bottom-color: #111; }
.storefront[class*="color-"]:not(.color-auto) .store-hero h1,
.storefront[class*="color-"]:not(.color-auto) .booking-store-heading h1,
.storefront[class*="color-"]:not(.color-auto) .public-product > span:not(.product-explore) { color: var(--chosen-accent); }
.storefront[class*="color-"]:not(.color-auto) .daily-heading { background: var(--chosen-soft); }
.storefront[class*="color-"]:not(.color-auto) .daily-free { color: var(--chosen-accent); border-color: var(--chosen-accent); background: #fff; }
.storefront[class*="color-"]:not(.color-auto) .booking-day-detail { border-top-color: var(--chosen-accent); }
.storefront .product-detail { padding-top: 28px; gap: 24px; }
.storefront .detail-header { min-height: 48px; padding-bottom: 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.storefront .detail-header .back-link { min-height: 44px; }
.storefront .detail-header .badge { max-width: 100%; overflow-wrap: anywhere; }
.storefront .detail-media { min-width: 0; gap: 12px; }
.storefront .detail-main-image { border-radius: 8px; background: #fff; }
.storefront .detail-copy { border: 0; border-radius: 0; padding: 12px 0; background: transparent; gap: 16px; min-width: 0; }
.storefront .detail-copy h1 { font-size: 28px; line-height: 1.2; }
.storefront .detail-copy > p:not(.eyebrow):not(.price) { line-height: 1.7; }
@media (max-width: 719px) {
    .storefront .product-detail { padding-top: 20px; gap: 20px; }
    .storefront .detail-header { padding-bottom: 12px; gap: 8px; }
    .storefront .detail-copy h1 { font-size: 24px; }
}
