:root { --mobile-nav-height: 68px; --safe-bottom: env(safe-area-inset-bottom, 0px); }
html { -webkit-text-size-adjust: 100%; }
body { overscroll-behavior-y: none; -webkit-tap-highlight-color: transparent; }
button, a, input, select, textarea { touch-action: manipulation; }
.brand-logo { display:block; width:clamp(142px,15vw,196px); height:auto; }
.pwa-install { min-height:38px; align-items:center; gap:6px; padding:0 13px; border:1px solid #c9c4bb; border-radius:999px; background:#fff; color:#1b1720; font:800 .67rem/1 Arial,sans-serif; cursor:pointer; }
.pwa-install:not([hidden]) { display:inline-flex; }
.pwa-install:focus-visible, .mobile-app-nav a:focus-visible { outline:3px solid #ff675d; outline-offset:3px; }
.mobile-app-nav { display:none; }
.connectivity-toast { position:fixed; z-index:100; left:50%; bottom:calc(86px + var(--safe-bottom)); width:min(calc(100% - 32px),520px); transform:translateX(-50%); padding:13px 16px; border-radius:14px; background:#1b1720; color:#fff; box-shadow:0 14px 45px rgba(0,0,0,.25); text-align:center; font-size:.78rem; font-weight:700; }
.connectivity-toast.is-offline { background:#a93b32; }
.ios-install-tip { position:fixed; z-index:95; left:14px; right:14px; bottom:calc(78px + var(--safe-bottom)); display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:12px; padding:12px; border:1px solid #d8d0c8; border-radius:18px; background:#fffaf4; box-shadow:0 16px 50px rgba(27,23,32,.2); }
.ios-install-tip[hidden] { display:none; }
.ios-install-tip img { border-radius:13px; }
.ios-install-tip p { margin:0; font-size:.75rem; line-height:1.45; }
.ios-install-tip button { min-height:44px; padding:0 12px; border:0; border-radius:999px; background:#1b1720; color:#fff; font-weight:800; }

@media (display-mode: standalone) {
  .pwa-install { display:none !important; }
  .site-header { padding-top:env(safe-area-inset-top, 0px); }
}

@media (max-width:700px) {
  html, body { width:100%; max-width:100%; overflow-x:clip; }
  body { padding-bottom:calc(var(--mobile-nav-height) + var(--safe-bottom)); }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea { min-width:0; max-width:100%; font-size:16px !important; }
  form, fieldset, main { min-width:0; max-width:100%; }
  .site-header { height:64px; grid-template-columns:1fr auto; padding:0 16px; background:rgba(255,250,244,.97); }
  .wordmark { min-height:44px; display:flex; align-items:center; }
  .brand-logo { width:142px; }
  .site-header .utility { display:flex; align-items:center; gap:9px; }
  .site-header .utility>.utility-link { display:none; }
  .site-header .language-switch { display:inline-flex; min-height:38px; }
  .site-header .language-switch a { display:grid !important; min-width:34px; place-items:center; }
  .pwa-install span:last-child { display:none; }
  .pwa-install { min-width:38px; justify-content:center; padding:0; }
  main { min-height:calc(100svh - 64px - var(--mobile-nav-height)); }
  footer { display:none; }

  .mobile-app-nav { position:fixed; z-index:90; left:0; right:0; bottom:0; height:calc(var(--mobile-nav-height) + var(--safe-bottom)); display:grid; grid-template-columns:repeat(5,1fr); align-items:start; padding:7px 8px var(--safe-bottom); border-top:1px solid rgba(27,23,32,.14); background:rgba(255,250,244,.96); box-shadow:0 -10px 32px rgba(27,23,32,.08); backdrop-filter:blur(20px); }
  .mobile-app-nav a { position:relative; min-width:0; min-height:54px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:14px; color:#746c69; font-size:.62rem; font-weight:800; }
  .mobile-app-nav svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
  .mobile-app-nav a.is-active { background:#1b1720; color:#fff; }
  .mobile-app-nav b { position:absolute; top:2px; left:calc(50% + 9px); min-width:18px; height:18px; display:grid; place-items:center; padding:0 5px; border:2px solid #fffaf4; border-radius:999px; background:#e50072; color:#fff; font-size:.55rem; }

  .rainbo-hero__photo { min-height:0; }
  .rainbo-hero__copy { padding:38px 24px 42px; }
  .rainbo-hero h1 { font-size:clamp(2.75rem,12.5vw,3.55rem); }
  .section-shell { padding:48px 14px; }
  .premium-heading h2, .featured-editorial h2 { font-size:clamp(2.35rem,11vw,3.25rem); }
  .premium-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 10px; }
  .premium-product-card__body { padding-top:10px; }
  .premium-product-card__body h3 { min-height:2.35em; margin-bottom:8px; font-size:.88rem; }
  .product-card-footer { align-items:flex-start; flex-direction:column; gap:6px; padding-top:8px; }
  .product-card-footer strong { font-size:.8rem; }
  .product-card-footer span { font-size:.53rem; }

  .premium-product-detail { min-height:auto; }
  .premium-gallery { padding:14px; }
  .premium-gallery .detail-visual { height:min(50svh,430px); min-height:330px; border-radius:16px; }
  .premium-gallery .detail-image { padding:22px; }
  .gallery-index { left:28px; top:28px; }
  .product-gallery-thumbs { grid-auto-columns:70px; gap:8px; padding:10px 1px 3px; }
  .product-gallery-thumb { width:70px; border-radius:10px; }
  .detail-notes { padding:10px 3px 0; }
  .premium-buy-panel { padding:34px 18px 46px; }
  .premium-buy-panel h1 { font-size:clamp(2.5rem,13vw,4rem); }
  .premium-buy-panel fieldset { margin-top:26px; }
  .variant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .purchase-form .variant-option { min-height:76px; padding:12px 10px; }
  .purchase-form .button { min-height:52px; }
  .assurance div { grid-template-columns:76px 1fr; }

  .search-page { width:auto; padding:38px 14px 58px; }
  .search-page__intro h1 { font-size:clamp(2.7rem,13vw,4rem); }
  .search-form { position:sticky; z-index:4; top:72px; margin-bottom:28px; box-shadow:0 8px 28px rgba(27,23,32,.08); }
  .cart-page { padding:38px 14px 58px; }
  .cart-page__title h1 { font-size:clamp(3rem,15vw,4.6rem); }
  .cart-layout { gap:22px; }
  .cart-line { grid-template-columns:82px 1fr; gap:14px; padding:12px; border-radius:14px; }
  .cart-line>img { width:82px; height:92px; }
  .cart-line h2 { font-size:1.05rem; }
  .cart-summary { padding:22px; border-radius:18px; }
  .legacy-content-page, .legacy-private-state { width:auto; padding:48px 18px; }
  .legacy-content-page h1 { margin-bottom:28px; }
}

@media (max-width:420px) {
  .premium-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 8px; }
  .premium-product-card__media { aspect-ratio:1/1.18; }
  .premium-product-card__body .eyebrow { font-size:.48rem; }
  .variant-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
