/* Public storefront and information pages only; no management styles. */
[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
img, video { max-width: 100%; }
:focus-visible { outline: 2px solid #793b2d; outline-offset: 4px; }
.page-container { overflow-wrap: anywhere; }
.page-container table { display: block; max-width: 100%; overflow-x: auto; }
.page-container iframe { max-width: 100%; }
.simple-header .brand-logo { max-width: 70vw; object-fit: contain; }
@media (max-width: 900px) {
  html { scroll-padding-top: 120px; }
  input, select, textarea { font-size: 16px !important; }
  button, a, input, select, textarea { touch-action: manipulation; }
  .site-header { grid-template-columns: 1fr auto 1fr; gap: 4px; min-height: 64px; }
  .header-right { justify-content: flex-end; min-width: 0; }
  .header-right .icon-btn, .menu-btn { min-width: 44px; min-height: 44px; }
  .brand-logo { max-width: 32vw; height: 38px; object-fit: contain; }
  .announcement-bar { font-size: 10px; line-height: 1.5; padding: 7px 16px; }
  .primary-nav { position: sticky; top: 64px; box-shadow: none; overflow-x: auto; overscroll-behavior-x: contain; }
  .primary-nav a, .primary-nav button { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; }
  #dynamicCategoryNav { display: flex; flex-shrink: 0; }
  .booking-panel { min-height: 0; height: clamp(300px, 54svh, 570px); }
  .booking-cover img { object-position: center 35%; }
  .hero-left { padding-block: 30px 36px; }
  .hero-left h1 { font-size: clamp(36px, 9vw, 64px); }
  .storefront-section, .catalog-section { padding-block: 40px; }
  .section-heading h2, .catalog-intro h2 { font-size: clamp(30px, 7vw, 44px); }
  .section-heading { gap: 12px; }
  .category-tile { min-height: 0; aspect-ratio: 4 / 5; }
  .category-tile:only-child { flex-basis: min(100%, 400px); }
  .special-scroller, .themes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 12px; }
  .theme-title, .theme-meta { overflow-wrap: anywhere; }
  .theme-meta { flex-wrap: wrap; gap: 4px; font-size: 11px; }
  .theme-title { display: grid; gap: 5px; font-size: 13px; }
  .theme-title .price { font-size: 12px; line-height: 1.5; white-space: normal; }
  .product-detail-trigger { min-height: 44px; font-size: 10px; }
  .filters { min-width: 0; gap: 8px; }
  .filter-btn { min-height: 44px; flex-shrink: 0; white-space: nowrap; }
  .filters-aux { width: 100%; }
  .search-field input { min-height: 44px; }
  .campaign-copy { min-height: 0; padding-block: 48px; }
  .campaign-copy h2 { font-size: clamp(36px, 10vw, 60px); }
  .reel-card-layout { padding-bottom: 36px; }
  .catalog-product-dialog { overscroll-behavior: contain; }
  .catalog-product-thumbs { overflow-x: auto; flex-wrap: nowrap; overscroll-behavior-x: contain; }
  .catalog-product-thumbs button { flex-shrink: 0; }
  .catalog-product-info { overflow-wrap: anywhere; }
  .catalog-product-close { position: sticky; top: 10px; grid-column: 1; justify-self: end; margin: 10px 10px -54px 0; }
  .catalog-product-specs div { grid-template-columns: 80px minmax(0, 1fr); }
  .account-popover { position: fixed; top: 72px; right: 12px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 96px); overflow: auto; }
  .footer-wordmark { font-size: clamp(32px, 10vw, 64px); overflow-wrap: anywhere; }
  .footer-nav { gap: 4px 20px; }
  .footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-brand-block { padding-bottom: 28px; }
  .page-container { padding: 24px 18px; }
  .contact-section { grid-template-columns: minmax(0, 1fr); }
  .contact-card { min-width: 0; }
  .cc-value, .cc-lines a { overflow-wrap: anywhere; min-height: 44px; display: inline-flex; align-items: center; }
}
@media (max-width: 600px) {
  .catalog-product-dialog { inset: 0; margin: 0; width: 100%; height: 100dvh; max-height: 100dvh; }
  .catalog-product-gallery { padding-top: 16px; }
  .catalog-product-gallery > img { height: 52svh; }
  .catalog-product-info { padding: 24px 18px max(32px, env(safe-area-inset-bottom)); }
  .modal .modal-content { height: 92dvh !important; max-height: 92dvh; }
  #authModal .modal-body { padding: 18px !important; }
  .modal-body { min-width: 0; overflow: auto; }
  .phone-input { min-width: 0; }
  .phone-input input { min-width: 0; width: 100%; }
  .phone-cc { max-width: 100px; }
  .site-footer { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
.category-tile:only-child { grid-column: 1 / -1; width: min(100%, 420px); min-height: 0; aspect-ratio: 4 / 5; }
.category-tile:only-child img { position: absolute; inset: 0; object-position: center top; }
.category-tile:only-child::after { display: none; }
.category-tile:only-child span { left: 0; right: 0; bottom: 0; padding: 16px 22px; background: var(--charcoal); }
