/* Preserve the existing design while constraining layouts to the viewport. */
*, *::before, *::after { box-sizing: border-box; }
:root { --announcement-height: 40px; --navigation-bottom: 110px; }
html { scroll-padding-top: calc(var(--navigation-bottom) + 16px); }
body { margin: 0; }
img, video { max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, [tabindex] { touch-action: manipulation; }
:focus-visible { outline: 2px solid #c4aa76; outline-offset: 4px; }
.announcement-bar { width: 100%; padding-inline: 12px; line-height: 1.4; }
header { top: var(--announcement-height) !important; overflow: visible; }
.navbar { height: 70px; }
#menu-toggle { min-height: 44px; padding: 6px; border: 0; background: transparent; font: inherit; color: #fff; }
#nav-menu { top: var(--navigation-bottom); height: calc(100dvh - var(--navigation-bottom)); max-height: calc(100dvh - var(--navigation-bottom)); display: flex; overflow-y: auto; overscroll-behavior: contain; padding: 20px 16px; }
#nav-menu li { flex-shrink: 0; margin: clamp(4px, 1.5vh, 15px) 0; }
#nav-menu li a { font-size: clamp(1.6rem, min(6vw, 6vh), 4rem); }
#nav-menu.active { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
body.apw-menu-open { overflow: hidden !important; }
#loading { animation: apw-loader-dismiss .4s .15s forwards; pointer-events: none; }
@keyframes apw-loader-dismiss { to {opacity:0;visibility:hidden;} }
.product-layout > *, .footer-container > *, .apw-build-inner > * { min-width: 0; }
main:has(> .page-title) { padding-top: calc(var(--navigation-bottom) + 12px); }
.page-title { padding: 36px 20px 28px; }
.side-cart, #cart-modal { max-width: 100vw; }
.cart-item-details { min-width: 0; overflow-wrap: anywhere; }
.cart-modal-content { min-height: 0; overflow-y: auto; }
input, select, textarea { max-width: 100%; }
.site-footer a { overflow-wrap: anywhere; }
.apw-build-video { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
@media(max-width:600px) {
  .announcement-bar { font-size:.75rem; }
  .watch-section .text-container { width:calc(100% - 32px); max-width:calc(100% - 32px); }
  .cart-item { gap:10px; }
  input, select, textarea { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  #loading { display:none !important; }
}

.hero-rating-text { color:#fff; text-shadow:0 1px 4px #000; }
