/* Launch fixes preserve the existing design system. */
[hidden] { display: none !important; }
.logo { display: inline-flex; align-items: center; flex-shrink: 0; }
.logo .brand-image { width: 220px; height: 64px; object-fit: cover; object-position: 50% 62%; mix-blend-mode: multiply; }
.site-footer .logo { background: white; border-radius: 4px; }
.site-footer .logo .brand-image { mix-blend-mode: normal; }
@media (max-width: 560px) { .logo .brand-image { width: 150px; height: 48px; } }
html, body { overflow-x: clip; }
.product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product-card, .product-body { min-width: 0; }
.product-name { overflow-wrap: anywhere; }
.bag-items { min-height: 0; }
.social-placeholder { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.policy-content { max-width: 820px; padding-top: 48px; padding-bottom: 64px; }
.policy-content h2 { font-size: 1.65rem; margin: 28px 0 12px; }
.policy-content p { line-height: 1.85; margin-bottom: 18px; }
.policy-content a:not(.btn) { color: var(--plum); text-decoration: underline; text-underline-offset: 4px; }
.policy-contact { border-top: 1px solid var(--rose-soft); margin-top: 32px; }
.no-script { padding: 20px; background: var(--cream); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.bag-drawer { max-height: 100dvh; }
.bag-drawer:not(.open) { visibility: hidden; pointer-events: none; }
.bag-drawer.open { visibility: visible; }
@media (max-width: 860px) {
  .main-nav:not(.open) { visibility: hidden; }
  .main-nav.open { visibility: visible; }
}
.bag-foot { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
.product-visual .product-image { aspect-ratio: 1; }
@media (max-width: 1024px) { .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .product-foot { flex-wrap: wrap; }
  .product-foot .add-btn { width: 100%; }
  .bag-item { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; }
  .bag-thumb { width: 48px; height: 48px; }
  .bag-item-info { overflow-wrap: anywhere; }
}
@media (max-width: 400px) {
  .slider-controls { gap: 2px; padding-inline: 4px; }
  .slider-controls button { min-width: 32px; }
  .slider-dots button { min-width: 22px; width: 22px; }
  .slider-count { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
