/* Photo-first storefront: geometry preserves the room marker coordinate plane. */
.storefront { background: var(--canvas); color: var(--ink); font-family: var(--sans); }
.storefront .room-app, .storefront .room-feed { background: var(--canvas); }
.storefront .room-app { scroll-snap-type: y mandatory; scroll-behavior: auto; }
.storefront { --room-gap: 8px; }
.storefront .room-slide { background: var(--canvas); box-shadow: none; height: calc(100svh - var(--room-gap)); margin-bottom: var(--room-gap); }
.storefront .room-slide .scrim { background: none; }
.storefront .room-photo { transform: none !important; }
.storefront .sidebar { background: var(--paper) !important; color: var(--ink); box-shadow: var(--shadow-float); padding: 1.75rem 1.25rem; }
.storefront .brand, .storefront .mobile-topbar-brand { color: var(--ink); font: 800 1.5rem/1 var(--sans); letter-spacing: -.07em; }
.storefront .brand i, .storefront .mobile-topbar-brand i { color: var(--purple); font-style: normal; font-size: .68em; font-weight: 600; letter-spacing: -.025em; }
.storefront .brand { margin-bottom: 3rem; }
.storefront .eyebrow { color: var(--muted); font: 650 .7rem/1.4 var(--sans); letter-spacing: .08em; }
.storefront .explore-tabs { gap: .5rem; }
.storefront .explore-tabs button, .storefront .style-nav button, .storefront .room-type-nav button, .storefront .liked-rooms-button { border: 0; border-radius: var(--radius-sm); color: var(--ink); background: #f1eef8; min-height: 48px; padding: .875rem 1rem; font: 550 .9rem/1.3 var(--sans); opacity: 1; }
.storefront .explore-back { background: transparent !important; color: var(--muted) !important; }
.storefront .explore-menu-title { color: var(--ink); font: italic 400 1.8rem/1.15 RoomzEditorial,Georgia,serif; letter-spacing: -.02em; margin: 0 0 1rem; text-transform:none; }
.storefront .explore-menu-card { border:0; padding:1rem 0 0; gap:.5rem; }
.storefront .explore-sentence { color: var(--ink); font: 550 .95rem/1.5 var(--sans); letter-spacing: 0; gap: .75rem; }
.storefront .explore-sentence-line { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items:center; white-space: normal; min-height: 48px; gap: .75rem; }
.storefront .explore-sentence-line > span { color:var(--muted); font:500 .8rem/1.3 var(--sans); }
.storefront .explore-tabs .explore-sentence-control { font: 600 .9rem/1.35 var(--sans); color: var(--purple); min-height: 48px; min-width:0; padding: .75rem 1rem; white-space:normal; text-align:left; justify-content:space-between; gap:.5rem; }
.storefront .price-mark { color: #aaa4b8; }.storefront .price-mark.is-selected { color: var(--purple); }
.storefront .explore-apply { margin-top: 1rem; background: var(--ink) !important; color: white !important; border-radius: 999px !important; font: 650 .9rem var(--sans); }
.storefront .explore-apply::before { content:none; }
.storefront .explore-apply[aria-busy="true"]::after { right:1rem; }
.storefront .explore-tabs[data-transition], .storefront .explore-subnav[data-transition] { animation: none; }
.storefront .style-nav, .storefront .room-type-nav { gap: .4rem; }
.storefront .style-nav button, .storefront .room-type-nav button { background: transparent; }
.storefront .style-nav button.active, .storefront .room-type-nav button.active { background: var(--lavender); }
.storefront .sidebar-bottom { margin-top: auto; }
.storefront .liked-rooms-button { display:flex; align-items:center; justify-content:space-between; width: 100%; text-align: left; background: var(--coral); }
.storefront .liked-rooms-button[hidden] { display:none !important; }
.storefront .room-match-debug { top: auto !important; right: 1rem; bottom: 1rem; border: 0; border-radius: .85rem; background: var(--paper); color: var(--muted); box-shadow: var(--shadow-float); font: .65rem var(--sans); min-width: 90px; }
.storefront .room-match-debug p { color: var(--muted); font: 600 .55rem var(--sans); }
.storefront .room-match-debug b { color: var(--purple); }
.storefront .hotspot::before { display: none; }
.storefront .hotspot { width: 44px; height: 44px; box-shadow: none; background: transparent; border: 0; transition: opacity 120ms ease; }
.storefront .hotspot span, .storefront .mobile-hotspot span { width: 22px; height: 22px; border: 0; background: #181610a6; color: #f5efdf; box-shadow: none; font: 400 1rem/1 var(--sans); display: grid; place-items: center; border-radius: 50%; }
.storefront .room-style-label { position:absolute; left:20px; bottom:max(22px,env(safe-area-inset-bottom)); z-index:3; max-width:calc(100% - 104px); padding:4px 2px; border:0; background:none; color:#fff7e9; font:italic 400 1.6rem/1.15 RoomzEditorial,Georgia,serif; letter-spacing:0; text-shadow:0 1px 5px #000c,0 0 16px #0008; pointer-events:none; }
.storefront .room-slide.is-clean-view .room-style-label { display:none; }
@font-face { font-family:RoomzEditorial; src:url('/assets/fonts/room-styles/warm-modern.woff2') format('woff2'); font-style:italic; font-weight:400; font-display:swap; }
.storefront .style-family-group { margin:0; min-width:0; }
.storefront .style-family-row { display:flex; align-items:center; gap:4px; }
.storefront .style-nav .style-family-card { display:flex; align-items:center; gap:12px; flex:1; min-width:0; width:100%; text-align:left; white-space:normal; padding:10px; }
.storefront .style-family-preview { width:58px; height:72px; border-radius:8px; object-fit:cover; flex:none; }
.storefront .style-card-copy { flex:1; min-width:0; }
.storefront .style-family-card strong,.storefront .substyle-card strong { display:block; font-weight:550; }
.storefront .style-family-card small,.storefront .substyle-card small { display:block; margin-top:4px; color:var(--muted); font:400 .75rem/1.4 var(--sans); }
.storefront .style-family-card i { font-style:normal; color:var(--muted); }
.storefront .style-variants { display:flex; flex-direction:column; gap:4px; margin:4px 0 10px 18px; padding-left:10px; border-left:1px solid var(--line); }
.storefront .style-nav .substyle-card { min-height:92px; border:0; }
.storefront .substyle-swatches { display:flex; gap:5px; margin:10px 0 0; }
.storefront .substyle-swatches i { width:15px; height:15px; border-radius:50%; box-shadow:inset 0 0 0 1px #ffffff18; }
.storefront .style-nav .style-family-card.active::after { content:none; }
.storefront .style-nav .style-variant-toggle { display:grid; place-items:center; flex:none; width:44px; min-height:44px; padding:0; }
.storefront .style-variant-toggle svg { width:22px; height:22px; fill:none; stroke:var(--ink); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform 160ms var(--ease-out); }
.storefront .style-variant-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
@media (prefers-reduced-motion:reduce) { .storefront .style-variant-toggle svg { transition:none; } }
html[data-input="pointer"] .storefront .hotspot:focus,
html[data-input="pointer"] .storefront .mobile-hotspot:focus { outline:none !important; box-shadow:none !important; }
.storefront .product-styling-note { color:var(--muted); font:400 .8rem/1.5 var(--sans); margin-top:14px; }
.storefront .hotspot:active, .storefront .mobile-hotspot:active { transform: translate(-50%, -50%) scale(.97); }
.storefront .mobile-hotspot { width: 44px; height: 44px; }
.storefront .mobile-room-actions { display: flex; position: absolute; right: 1.25rem; bottom: 6rem; z-index: 8; flex-direction: column; gap: .5rem; }
.storefront .mobile-room-action { position: relative; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #fff9; border-radius: 50%; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-float); transition: transform 120ms var(--ease-out), background-color 120ms ease, color 120ms ease, opacity 120ms ease; }
.storefront .mobile-room-action svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.storefront .mobile-room-action.action-purchase { background: var(--lavender); }
.storefront .mobile-room-action.is-active { background: var(--coral); color: #8e3547; }
.storefront .mobile-room-action.is-animating, .storefront .mobile-room-action.is-animating svg { animation: none; }
.storefront .mobile-room-action.is-animating::after { display: none; }
.storefront .room-slide.is-clean-view .hotspot, .storefront .room-slide.is-clean-view .mobile-hotspot, .storefront .room-slide.is-clean-view .mobile-room-action:not(.action-view) { opacity: 0 !important; pointer-events: none !important; }
.storefront .hint { color: var(--muted); text-shadow: none; font: .75rem var(--sans); }
.storefront .product-dialog { color: var(--ink); background: var(--paper); border-radius: var(--radius-lg); box-shadow: var(--shadow-sheet); width: min(640px, calc(100vw - 2rem)); max-width: none; max-height: 88svh; padding: 0; overflow: hidden; animation: none; pointer-events: auto; }
.storefront .product-dialog::backdrop { background: #25283966; backdrop-filter: blur(3px); }
.storefront .product-dialog::before { display: none; }
.storefront .product-dialog[open] { display: flex; flex-direction: column; }
.storefront .product-dialog #dialogContent { flex: 1; min-height: 0; }
.storefront .product-dialog .close { display: grid; place-items: center; top: .75rem; right: .75rem; width: 44px; height: 44px; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-float); font: 1.65rem var(--sans); }
.storefront .product-detail-card { display: flex; flex-direction: column; max-height: 86svh; height: auto; }
.storefront .product-scroll-content { display: block; overflow-y: auto; min-height: 0; flex: 1; padding: 1rem; }
.storefront .product-visual, .storefront .product-visual img { width: 100%; height: min(34svh, 280px); object-fit: contain; background: #eeecf2; border-radius: 1.25rem; }
.storefront .dialog-copy { padding: 1rem .5rem; }
.storefront .dialog-copy h2, .storefront .room-cart h2 { color: var(--ink); font: 750 clamp(1.3rem, 4vw, 1.75rem)/1.15 var(--sans); letter-spacing: -.035em; margin: .5rem 0; }
.storefront .product-type { color: var(--purple); font: 700 .7rem var(--sans); letter-spacing: .075em; }
.storefront .product-price { color: var(--ink); font: 750 1.4rem var(--sans); letter-spacing: -.04em; margin: .65rem 0; }
.storefront .product-price[aria-busy="true"] { font-size: .95rem; color: var(--muted); animation: ui-breathe 1s ease-in-out infinite alternate; }
.storefront .product-price-note, .storefront .product-reviews { color: var(--muted); font: .8rem/1.5 var(--sans); }
.storefront .product-variants { margin: 1.25rem 0; }
.storefront .product-variant-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .5rem; max-height: none; }
.storefront .product-variant-option { min-height: 48px; border-radius: .875rem; border: 1px solid var(--line); background: var(--paper); font-size: .8rem; padding: .5rem; }
.storefront .product-variant-option[aria-pressed="true"] { border: 2px solid var(--purple); background: #f0ecff; }
.storefront .product-variant-option img { border-radius: .5rem; }
.storefront .product-specs { border-color: var(--line); }
.storefront .product-specs div { padding: .6rem 0; }
.storefront .product-specs dt, .storefront .product-specs dd { font: .8rem/1.4 var(--sans); }
.storefront .product-action-bar, .storefront .room-cart-action-bar { border-top: 1px solid var(--line); background: var(--paper); padding: 1rem; box-shadow: none; flex-shrink: 0; }
.storefront .add-to-cart { min-height: 50px; border: 0; border-radius: 999px; background: var(--ink); color: white; font: 650 .9rem var(--sans); padding: .8rem 1.25rem; margin: 0; }
.storefront .add-to-cart:disabled { opacity: .5; }
.storefront .add-to-cart { padding-right: 2.75rem; }
.storefront .add-to-cart[aria-busy="true"] { opacity: 1; }
.storefront .room-item-add[aria-busy="true"]::after,.storefront .quantity-adjust[aria-busy="true"]::after,.storefront .cart-line-quantity button[aria-busy="true"]::after,.storefront .room-item-quantity button[aria-busy="true"]::after { right: calc(50% - 8px); }
.storefront .room-item-add[aria-busy="true"] svg { opacity: 0; }
.storefront .quantity-adjust[aria-busy="true"],.storefront .cart-line-quantity button[aria-busy="true"],.storefront .room-item-quantity button[aria-busy="true"] { font-size: 0; }
.storefront .add-to-cart.is-added { background: var(--mint); color: var(--ink); }
.storefront .cart-quantity-control, .storefront .cart-line-quantity, .storefront .room-item-quantity { border-radius: 999px; background: #eeebf5; border: 0; }
.storefront .quantity-adjust, .storefront .cart-line-quantity button, .storefront .room-item-quantity button { min-width: 44px; min-height: 44px; background: transparent; border: 0; color: var(--ink); }
.storefront .cart-line-quantity { grid-template-columns: 44px 30px 44px; height: 44px; }
.storefront .cart-line-quantity output { border: 0; }
.storefront .room-cart.cart-popup { padding: 2rem 1.25rem 0; height: 80svh; display: flex; flex-direction: column; }
.storefront .room-cart-body { overflow-y: auto; flex: 1; min-height: 0; }
.storefront .room-cart-list article { gap: .75rem; padding: .75rem 0; border-color: var(--line); flex-wrap: wrap; }
.storefront .room-cart-list img { width: 64px; height: 64px; border-radius: .875rem; object-fit: contain; }
.storefront .cart-line-copy { flex: 1; min-width: 120px; }
.storefront .room-cart-list h3 { font: 650 .85rem/1.35 var(--sans); }
.storefront .cart-total { padding: 1rem 0; font: 650 1rem var(--sans); color: var(--ink); }
.storefront .product-price, .storefront .cart-total, .storefront .cart-line-quantity output { font-variant-numeric: tabular-nums; }
.storefront .room-item-cart-control { flex-basis: 118px; width: 118px; height: 44px; }
.storefront .room-item-quantity { width: 118px; height: 44px; grid-template-columns: 44px 30px 44px; }
.storefront .room-item-add { width: 44px; height: 44px; border: 0; background: var(--lavender); color: var(--ink); }
.storefront .mobile-scroll-prompt { animation: none; }
.storefront .sourcing, .storefront .empty-saved { background: var(--canvas); }
.storefront .empty-saved-copy, .storefront .sourcing .room-caption { color: var(--ink); text-shadow: none; }
.storefront .sourcing .room-caption h1, .storefront .sourcing .room-caption p { color: var(--ink) !important; text-shadow: none !important; }
.storefront .sourcing .room-caption h1 { font: 750 2.5rem/1.1 var(--sans); letter-spacing: -.05em; }
.storefront .feed-status { position: fixed; z-index: 15; left: 50%; top: 5rem; transform: translateX(-50%); background: var(--paper); padding: .65rem 1rem; border-radius: 999px; box-shadow: var(--shadow-float); font: .8rem var(--sans); display: flex; gap: .75rem; align-items: center; }
.storefront .menu-close { display: none; }
.storefront .sheet-handle { display: none; }
.storefront .image-loading::before { content: ''; position: absolute; z-index: 1; width: 28px; height: 28px; top: 50%; left: 50%; border: 3px solid var(--lavender); border-right-color: var(--purple); border-radius: 50%; animation: ui-spin .7s linear infinite; }
.storefront .image-retry { position: absolute; z-index: 4; top: 50%; left: 50%; transform: translate(-50%, -50%); }
@media (hover:hover) and (pointer:fine) { .storefront .sidebar button:hover { background: var(--lavender); } .storefront .mobile-room-action:hover { background: var(--lavender); } }
@media (min-width:701px) {
  .storefront .sidebar { width: 250px; }
  .storefront .room-slide { margin-left: 250px; width: calc(100% - 250px); }
  .storefront .mobile-topbar { display: flex; position: fixed; z-index: 12; right: 1.25rem; top: 1.25rem; width: auto; height: auto; background: transparent; box-shadow: none; }
  .storefront .mobile-topbar-brand, .storefront .mobile-menu-toggle { display: none; }
  .storefront .mobile-cart-button { display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-float); position: relative; }
  .storefront .mobile-cart-button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
}
@media (max-width:700px) {
  .storefront .room-feed { padding-top: calc(72px + env(safe-area-inset-top)); }
  .storefront .room-app { scroll-padding-top: calc(72px + env(safe-area-inset-top)); }
  .storefront .room-slide { height: calc(100svh - 92px - env(safe-area-inset-top)); min-height: calc(100svh - 92px - env(safe-area-inset-top)); margin: 0 .5rem .75rem; border-radius: 1.5rem; width: calc(100% - 1rem); transition: none; }
  .storefront .room-slide.is-in-view { border-radius: 1.5rem; }
  .storefront .room-slide::after { display: none; }
  .storefront .vertical-view .mobile-image-plane { transform: translate(-50%, -50%); transition: none; }
  .storefront .mobile-topbar { height: calc(64px + env(safe-area-inset-top)); padding: calc(.5rem + env(safe-area-inset-top)) 1rem .5rem; background: var(--canvas); border: 0; box-shadow: none; }
  .storefront .mobile-topbar-brand { font-size: 1.6rem; }
  .storefront .mobile-menu-toggle, .storefront .mobile-cart-button { display: grid; place-items: center; min-height: 48px; width: 48px; background: var(--paper); color: var(--ink); box-shadow: 0 2px 6px #25283908; border-radius: 50%; position: relative; }
  .storefront .mobile-cart-button svg { width: 22px; height: 22px; }
  .storefront .sidebar { padding: calc(1.5rem + env(safe-area-inset-top)) 1.25rem 1.25rem; width: min(340px,88vw); border-radius: 0 2rem 2rem 0; transition: transform 250ms var(--ease-drawer); }
  .storefront .sidebar .brand { display: block; margin: 1.5rem 0 2rem; }
  .storefront .menu-close { display: grid; place-items: center; width: 44px; height: 44px; margin-left: auto; border: 0; border-radius: 50%; background: #eeebf5; font-size: 1.5rem; }
  .storefront .explore-tabs:not(.is-submenu) .explore-choice { border: 0; border-radius: .875rem; background: #f1eef8; font: 550 .95rem var(--sans); color: var(--ink); margin-bottom: .5rem; padding: 1rem; }
  .storefront .mobile-room-actions { right: .75rem; bottom: 5.5rem; }
  .storefront .product-dialog { inset: auto 0 0; width: 100%; max-height: 90svh; margin: 0; border-radius: 2rem 2rem 0 0; height: auto; }
  .storefront .product-dialog[open]:has(.product-detail-card), .storefront .product-dialog[open]:has(.room-cart.cart-popup) { height: 86svh; max-height: 86svh; }
  .storefront .product-dialog #dialogContent { display: flex; flex-direction: column; height: 100%; }
  .storefront .product-detail-card { height: 100%; max-height: 86svh; }
  .storefront .product-dialog::before { display: none; }
  .storefront .sheet-handle { display: grid; place-items: center; align-self: center; width: 90px; min-height: 44px; padding: 0; border: 0; background: transparent; flex-shrink: 0; touch-action: none; }
  .storefront .sheet-handle span { width: 36px; height: 4px; border-radius: 999px; background: #b5adc8; }
  .storefront .product-scroll-content { padding: .5rem 1rem 1rem; }
  .storefront .product-action-bar, .storefront .room-cart-action-bar { padding: .875rem 1rem calc(.875rem + env(safe-area-inset-bottom)); box-shadow: none; }
  .storefront .product-action-bar.is-in-cart { grid-template-columns: minmax(0,1fr) 126px; }
  .storefront .room-cart.cart-popup { height: 100%; padding-top: 2rem; }
  .storefront .room-match-debug { bottom: 1rem; right: .75rem; }
}
.storefront .mobile-cart-button[data-count]:not([data-count="0"])::after { content: attr(data-count); position: absolute; top: -2px; right: -2px; background: var(--purple); color: white; border: 2px solid var(--canvas); border-radius: 999px; min-width: 20px; height: 20px; padding: 0 3px; display: grid; place-items: center; font: 700 .65rem var(--sans); }
@media (prefers-reduced-motion:reduce) { .storefront .sidebar { transition: opacity 100ms ease !important; } .storefront .hotspot, .storefront .mobile-hotspot { transition: opacity 100ms ease !important; } }
.storefront .hotspot, .storefront .mobile-hotspot { will-change: auto; }
.storefront .room-match-debug { display: block !important; left:auto; right:.75rem !important; top:16px !important; bottom:auto; min-width:0; padding:0; pointer-events:auto; }
.storefront .room-match-debug summary { display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; list-style: none; }
.storefront .room-match-debug summary::-webkit-details-marker { display: none; }
.storefront .room-match-debug svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.storefront .room-match-debug div { padding: 0 .75rem .75rem; min-width: 128px; }
.storefront .is-clean-view .room-match-debug { display: none !important; }
/* Explicit scene-local layers; native modal top-layer owns all popup stacking. */
.storefront .room-slide { isolation: isolate; min-height: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.storefront .hotspot,.storefront .mobile-hotspot { z-index: var(--layer-marker); }
.storefront .room-match-debug { z-index: var(--layer-controls) !important; }
.storefront .mobile-room-actions { z-index: var(--layer-controls); }
.storefront .sidebar,.storefront .mobile-topbar { z-index: var(--layer-navigation); }
.storefront .explore-tabs button,.storefront .style-nav button,.storefront .room-type-nav button,.storefront .liked-rooms-button,.storefront .explore-tabs:not(.is-submenu) .explore-choice { background: var(--surface-soft); }
.storefront .explore-apply,.storefront .add-to-cart { background: var(--action) !important; color: var(--on-action) !important; }
.storefront .product-visual,.storefront .product-visual img,.storefront .cart-quantity-control,.storefront .cart-line-quantity,.storefront .room-item-quantity,.storefront .menu-close { background: var(--surface-soft); }
.storefront .product-variant-option[aria-pressed="true"] { background: var(--lavender); }
.storefront .product-detail-card,.storefront .room-cart { background: var(--paper); color: var(--ink); }
.storefront .room-cart-list img,.storefront .room-item-quantity output,.storefront .sheet-room-action { background: var(--surface-soft); color: var(--ink); }
.storefront .product-specs dd,.storefront .cart-quantity-control output,.storefront .cart-line-quantity output { color: var(--ink); }
.storefront .room-cart.cart-popup .room-cart-action-bar,.storefront .product-action-bar { box-shadow: none; }
.storefront .room-cart-list p,.storefront .room-cart-empty,.storefront .cart-line-copy small,.storefront .room-purchase-intro,.storefront .room-purchase-item p { color: var(--muted); }
.storefront .mobile-room-action { border-color: var(--line); }
.storefront .mobile-room-action.is-active { color: #e5c38d; }
.storefront .product-dialog.is-closing,.storefront .product-dialog.is-closing.is-dragging { animation: none; transition: none; }
.storefront .sheet-handle { display: grid; place-items: center; width: 90px; min-height: 44px; padding: 0; margin: 0 auto; border: 0; background: transparent; touch-action: none; flex-shrink: 0; }
.storefront .sheet-handle span { width: 36px; height: 4px; border-radius: 999px; background: var(--muted); }
.storefront .product-dialog::backdrop,.storefront .explore-dialog::backdrop { background: #0009; backdrop-filter: blur(4px); }
.storefront .explore-dialog { background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: 2rem 2rem 0 0; inset: auto 0 0; margin: 0; width: 100%; max-width: none; height: 86svh; max-height: 86svh; padding: 0; overflow: hidden; box-shadow: var(--shadow-sheet); }
.storefront .explore-dialog[open] { display: flex; flex-direction: column; }
.storefront .explore-dialog .sidebar { position: relative; inset: auto; width: 100%; height: auto; flex: 1; min-height: 0; overflow-y: auto; border-radius: 0; transform: none !important; transition: none; box-shadow: none; padding: 0 1.25rem 1.25rem; }
.storefront .explore-dialog .sidebar .brand { margin: 0 0 1.25rem; }
.storefront .explore-dialog .sidebar .menu-close { position: absolute; top: 0; right: 1rem; }
.storefront .explore-dialog .sidebar-bottom { margin-top: 1.5rem; }
.storefront .product-dialog.is-dragging,.storefront .explore-dialog.is-dragging { transition: none; will-change: transform; }
.storefront:has(dialog[open]) .room-app { overflow-y: hidden; }
/* Atelier palette: warm dark materials, editorial type, room photography first. */
.storefront .brand,.storefront .room-caption h1,.storefront .dialog-copy h2,.storefront .room-cart h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.025em; }
.storefront .brand i { color:var(--muted); }
.storefront .sidebar,.storefront .mobile-topbar { background:color-mix(in srgb,var(--canvas) 94%,transparent); }
.storefront .product-dialog[open]:has(.product-detail-card) { height:75svh; max-height:75svh; overflow:hidden; display:flex; flex-direction:column; }
.storefront .product-dialog:has(.product-detail-card) #dialogContent { flex:1; min-height:0; overflow:hidden; }
.storefront .product-dialog .product-detail-card { height:100%; max-height:100%; min-height:0; }
.storefront .product-scroll-content { overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.storefront .product-dialog .product-visual,.storefront .product-dialog .product-visual img { height:min(24svh,210px); min-height:0; border-radius:var(--radius-sm); }
.storefront .product-dialog .dialog-copy h2 { font-size:1.75rem; line-height:1.15; }
.storefront .product-price-note,.storefront .product-reviews { color:var(--muted); }
.storefront .mobile-room-action { background:#211b16d9; color:var(--ink); }
.storefront .product-dialog,.storefront .explore-dialog { border-color:var(--line); }
.storefront .mobile-topbar-brand { font-family:var(--serif); font-weight:400; letter-spacing:-.025em; }
.storefront .product-variant-option,.storefront .product-variant-picker legend { color:var(--ink); }
.storefront .price-mark { color:var(--muted); }
.storefront .price-mark.is-selected { color:var(--purple); }
.storefront .mobile-cart-button[data-count]:not([data-count="0"])::after { color:var(--on-action); }
@media(max-width:700px) {
  .storefront .room-app { scroll-padding-top: calc(72px + env(safe-area-inset-top)); }
  .storefront .room-slide { height: calc(100svh - 72px - env(safe-area-inset-top) - var(--room-gap)); min-height: 0; margin-bottom: var(--room-gap); }
  .storefront .room-feed { padding-bottom: 0; }
  .storefront .menu-open .mobile-menu-toggle { background: var(--lavender); color: var(--ink); }
}
/* One quiet sheet header, not overlapping ornamental lines. The handle keeps
   its full gesture target; image/details scroll independently of checkout. */
.storefront #productDialog::before,.storefront #productDialog::after { content:none; display:none !important; }
.storefront #productDialog .sheet-handle { width:90px; height:40px; min-height:40px; outline-offset:-5px; }
.storefront #productDialog .sheet-handle span { width:28px; height:3px; background:var(--muted); }
.storefront #productDialog .close { top:4px; right:8px; width:44px; height:44px; border:0; background:transparent; box-shadow:none; font-size:1.5rem; }
.storefront #productDialog .product-scroll-content { padding:8px 22px 26px; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.storefront #productDialog .product-scroll-content::-webkit-scrollbar { width:3px; }
.storefront #productDialog .product-scroll-content::-webkit-scrollbar-thumb { background:var(--line); border-radius:8px; }
.storefront #productDialog .product-visual { display:grid; place-items:center; height:min(26svh,230px); border-radius:14px; overflow:hidden; background:var(--surface-soft); }
.storefront #productDialog .product-visual img { height:100%; max-height:100%; width:100%; object-fit:contain; }
.storefront #productDialog .dialog-copy { padding:20px 0 0; }
.storefront #productDialog .dialog-copy h2 { font:400 clamp(1.4rem,5.6vw,1.75rem)/1.15 var(--serif); letter-spacing:-.025em; margin:0 0 12px; text-wrap:balance; }
.storefront #productDialog .product-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 18px; }
.storefront #productDialog .product-price { font:650 1.25rem/1.3 var(--sans); letter-spacing:-.02em; margin:0; }
.storefront #productDialog .product-reviews { font:400 .75rem/1.4 var(--sans); margin:0; }
.storefront #productDialog .product-price-note { font:400 .75rem/1.5 var(--sans); margin:6px 0 20px; }
.storefront #productDialog .product-price-note:empty { display:none; }
.storefront #productDialog .product-variant-picker { margin:0 0 20px; border:0; padding:0; }
.storefront #productDialog .product-variant-picker legend { margin:0 0 10px; font:550 .8rem/1.4 var(--sans); color:var(--ink); }
.storefront #productDialog .product-variant-options { grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; }
.storefront #productDialog .product-variant-option { padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:transparent; min-height:52px; gap:10px; font:400 .8rem/1.4 var(--sans); text-align:left; }
.storefront #productDialog .product-variant-option[aria-pressed="true"] { border-color:var(--purple); background:var(--surface-soft); box-shadow:inset 0 0 0 1px var(--purple); }
.storefront #productDialog .product-variant-option img { width:32px; height:32px; object-fit:contain; border-radius:6px; }
.storefront #productDialog .product-specs { display:grid; grid-template-columns:1fr; gap:10px; border:0; margin:0; }
.storefront #productDialog .product-specs div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:14px; padding:0; border:0; align-items:baseline; }
.storefront #productDialog .product-specs dt { color:var(--muted); font:400 .8rem/1.5 var(--sans); margin:0; }
.storefront #productDialog .product-specs dd { color:var(--ink); font:500 .85rem/1.5 var(--sans); margin:0; }
.storefront #productDialog .product-styling-note { font-size:.75rem; margin:18px 0 0; }
.storefront #productDialog .product-action-bar { border:0; padding:14px 22px calc(14px + env(safe-area-inset-bottom)); }
.storefront #productDialog .product-action-bar .add-to-cart { min-height:50px; padding:12px 20px; font-weight:600; }
@media(min-width:701px) {
  .storefront #productDialog:has(.product-detail-card) { width:min(600px,calc(100vw - 3rem)); }
  .storefront #productDialog .product-scroll-content { padding-left:30px; padding-right:30px; }
  .storefront #productDialog .product-action-bar { padding-left:30px; padding-right:30px; }
}
/* Keep the recognizable grab bar and close circle, but never draw a focus
   outline or halo on these controls, including native dialog autofocus. */
.storefront .sheet-handle,.storefront .sheet-handle:hover,.storefront .sheet-handle:active { background:transparent; box-shadow:none; border:0; }
.storefront #closeExplore,.storefront #closeExplore:hover,.storefront #closeExplore:active { background:var(--surface-soft) !important; color:var(--ink); box-shadow:none; border:0; }
.storefront .sheet-handle,.storefront .sheet-handle:focus,.storefront .sheet-handle:focus-visible,
.storefront #closeExplore,.storefront #closeExplore:focus,.storefront #closeExplore:focus-visible { outline:none !important; box-shadow:none !important; }
.storefront .sidebar { overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.storefront .brand,.storefront .mobile-topbar-brand,.storefront .room-caption h1,.storefront .dialog-copy h2,.storefront .room-cart h2 { font-family:RoomzEditorial,Georgia,serif; font-style:italic; font-weight:400; }
.storefront .style-nav .style-family-card strong,.storefront .style-nav .substyle-card strong { font:italic 400 1.18rem/1.2 RoomzEditorial,Georgia,serif; overflow-wrap:normal; }
