/* Shared by the public storefront and its scriptless appearance preview. */
:is(body.store-body, body.product-page-body) { color: var(--color-text); background: var(--color-bg); font-family: var(--theme-font, inherit); }
:is(body.store-body, body.product-page-body) :is(h1, h2, h3, .store-brand, .public-booking > header h2) { font-family: var(--theme-heading-font, inherit); font-weight: var(--theme-heading-weight, 700); letter-spacing: var(--theme-heading-tracking, -.025em); }
:is(body.store-body, body.product-page-body) :is(.store-brand, .price, .product-detail-price, .service-showcase-facts strong, .services-showcase-header h2, .service-showcase-body h3, .public-booking > header h2) { color: var(--color-primary); }
:is(body.store-body, body.product-page-body) :is(.product-card, .service-showcase-card, .product-detail-media, .public-booking, .store-hero) { border-radius: var(--radius-lg); }
:is(body.store-body, body.product-page-body) :is(.product-grid, .services-showcase-grid) { gap: var(--theme-grid-gap); }
:is(body.store-body, body.product-page-body) :is(.product-body, .service-showcase-body) { padding: var(--theme-card-padding); }
:is(body.store-body, body.product-page-body) :is(.product-card, .service-showcase-card) { background: var(--color-surface); border-color: var(--color-border); box-shadow: var(--shadow-sm); }
:is(body.store-body, body.product-page-body) :is(.product-card, .service-showcase-card):hover { border-color: var(--color-control-border); box-shadow: var(--shadow-sm); }
:is(body.store-body, body.product-page-body) .product-meta .category-pill { color: var(--color-primary); }
:is(body.store-body, body.product-page-body) .product-card > .product-media { aspect-ratio: var(--theme-image-ratio); }
:is(body.store-body, body.product-page-body) :is(button, .btn-primary, .btn-primary-link, .secondary-button, .view-product-link, .store-hero-link) { border-radius: var(--theme-button-radius); }
:is(body.store-body, body.product-page-body) :is(.btn-primary, .btn-primary-link, .add-cart-button, .checkout-toggle, .checkout-submit, .product-add-cart, .tracking-form > button, .cart-toggle, .store-hero-link) {
  background: var(--color-brand, var(--color-primary)); color: var(--color-on-brand, var(--color-on-primary)); border-color: var(--color-brand-border, var(--color-primary)); letter-spacing: var(--theme-button-tracking); text-transform: var(--theme-button-case);
}
:is(body.store-body, body.product-page-body) :is(.btn-primary, .btn-primary-link, .add-cart-button, .checkout-toggle, .checkout-submit, .product-add-cart, .tracking-form > button, .cart-toggle, .store-hero-link):hover { background: var(--color-brand-hover, var(--color-primary-hover)); color: var(--color-on-brand, var(--color-on-primary)); border-color: var(--color-brand-border, var(--color-primary)); }
:is(body.store-body, body.product-page-body) :is(input, select, textarea, .public-booking-form input, .public-booking-form select, .public-booking-form textarea, .public-booking-slots button) { color: var(--color-text); background-color: var(--color-surface); border-color: var(--color-control-border, var(--color-border)); }
:is(body.store-body, body.product-page-body) :is(input, textarea)::placeholder { color: var(--color-text-muted); opacity: 1; }
:is(body.store-body, body.product-page-body) :is(button, a, input, select, textarea):focus-visible { outline: 2px solid var(--color-focus, var(--color-primary)); outline-offset: 3px; box-shadow: 0 0 0 5px var(--color-surface); }
:is(body.store-body, body.product-page-body) .cart-toggle #cart-count { color: var(--color-primary); background: var(--color-surface); }
:is(body.store-body, body.product-page-body) :is(.image-counter, .image-arrow) { color: var(--color-text); background: var(--color-surface); border-color: var(--color-control-border); }
:is(body.store-body, body.product-page-body) :is(.product-media, .related-product-media, .product-detail-media, .product-image-placeholder) { background: var(--color-accent-soft); color: var(--color-accent-text); }
body.store-body .store-hero { min-height: 280px; overflow: hidden; }
body.store-body .store-hero::before { background: var(--theme-hero-overlay); }
body.store-body .store-hero .hero-copy { width: var(--theme-hero-copy-width, 70%); max-width: 720px; margin: 16px 24px; padding: 24px; border-radius: var(--radius-md); background: var(--theme-hero-panel); }
body.store-body .store-hero .hero-copy :is(h1, p, .eyebrow) { color: var(--theme-hero-text, #FFFFFF); }
body.store-body .store-hero .hero-copy h1 { display: block; max-width: none; overflow: visible; font-size: clamp(1.8rem, 3.4vw, 3.2rem); line-height: 1.12; -webkit-line-clamp: unset; }
body.store-body .store-hero .hero-copy p { max-width: 48ch; font-size: .92rem; }
body.store-body .public-booking { background: var(--color-surface); }
@media (max-width: 620px) {
  body.store-body .store-header { flex-wrap: wrap; gap: 8px; }
  body.store-body .store-brand { flex: 1 1 80px; min-width: 0; }
  body.store-body .store-brand [data-store-name] { min-width: 0; max-width: 100%; }
  body.store-body .store-body-actions { flex: 0 0 auto; gap: 6px; }
  body.store-body .store-hero { min-height: 200px; }
  body.store-body .store-hero .hero-copy { width: calc(100% - 24px); margin: 12px; padding: 16px; }
  body.store-body .store-hero .hero-copy h1 { font-size: 1.6rem; }
  body.store-body .store-hero .hero-copy p { display: block; max-width: none; -webkit-line-clamp: unset; }
  body.store-body :is(.product-grid, .services-showcase-grid) { gap: calc(var(--theme-grid-gap) * .65); }
  body.store-body .product-card { height: auto; min-height: 192px; max-height: none; }
  body.store-body :is(.product-body, .service-showcase-body) { padding: calc(var(--theme-card-padding) * .72); }
}
