/*
 * ============================================================================
 * theme-luxury.css — Retail V2 design system (light default + dark)
 * ============================================================================
 * WHAT: Token-driven luxury theme. ALL colors are var() tokens so light/dark
 *       is one [data-theme] swap and nothing is ever half-themed.
 * SCOPE: Loaded ONLY by V2 pages. Component rules are namespaced under
 *        body.retail-v2 so they can never touch the live V1 site.
 * MAP:  1 FONTS  2 LIGHT TOKENS  3 DARK TOKENS  4 RESET/BASE  5 TYPOGRAPHY
 *       6 LAYOUT  7 BUTTONS  8 CARDS  9 PRODUCT CARD  10 FORMS  11 BADGES
 *       12 HEADER/NAV  13 FOOTER  14 TRUST STRIP  15 PROMO BAR  16 MOTION/A11Y
 * NOTE: No em dashes in any content: strings (brand copy rule).
 * ============================================================================ */

/* ===== SECTION: FONTS =====
   Loaded via <link rel="preconnect"> + stylesheet in header.php <head> (faster
   first paint than a render-blocking @import). Families: Cormorant Garamond + Inter. */

/* ===== SECTION: LIGHT TOKENS (default) ===== */
:root{
  /* palette */
  --color-ivory:#F8F7F3; --color-soft-white:#FCFCFA; --color-pure-white:#FFFFFF;
  --color-midnight:#06172C; --color-navy:#0A1E38; --color-deep-navy:#031225;
  --color-muted-navy:#24364F; --color-slate:#58677A; --color-soft-slate:#7C899A;
  --color-ice-blue:#EAF3FF; --color-pale-blue:#DCEBFA; --color-soft-blue:#AFCBEA;
  --color-luxury-blue:#6F9FD4; --color-cobalt-muted:#2F6DAE; --color-link-blue:#174F8F;
  --color-border:#E3E8EF; --color-border-soft:#EEF2F6; --color-card:#FFFFFF;
  --color-card-muted:#FAFBFC; --color-field:#FFFFFF; --color-footer-bg:#F4F6F8;
  --color-success:#16A34A; --color-success-bg:#ECFDF3; --color-warning:#F5B301;
  --color-error:#DC2626; --color-error-bg:#FEF2F2;

  /* semantic surfaces (remapped in dark) */
  --bg-page:var(--color-soft-white);
  --bg-elevated:var(--color-ivory);
  --bg-card:var(--color-card);
  --bg-card-muted:var(--color-card-muted);
  --bg-field:var(--color-field);
  --bg-footer:var(--color-footer-bg);
  --bg-utility-bar:var(--color-midnight);
  --bg-nav:rgba(252,252,250,.92);
  --text-primary:var(--color-midnight);
  --text-secondary:var(--color-slate);
  --text-muted:var(--color-soft-slate);
  --text-on-dark:#E8EDF4;
  --border:var(--color-border);
  --border-soft:var(--color-border-soft);
  --accent:var(--color-cobalt-muted);
  --accent-soft:var(--color-luxury-blue);
  --link:var(--color-link-blue);

  /* type */
  --font-display:"Cormorant Garamond","Playfair Display",Georgia,serif;
  --font-body:"Inter","Satoshi","Helvetica Neue",Arial,sans-serif;

  /* radius */
  --radius-xs:6px; --radius-sm:10px; --radius-md:14px; --radius-lg:20px; --radius-xl:28px; --radius-pill:999px;

  /* shadow */
  --shadow-sm:0 4px 14px rgba(6,23,44,.06); --shadow-md:0 12px 30px rgba(6,23,44,.08); --shadow-lg:0 28px 70px rgba(6,23,44,.12);
  --shadow-card:0 8px 30px rgba(6,23,44,.05); --shadow-card-hover:0 16px 44px rgba(6,23,44,.09);
  --shadow-btn:0 10px 22px rgba(6,23,44,.16);

  /* layout */
  --container:1240px; --section-y:96px; --section-y-mobile:56px;
  --gradient-hero:linear-gradient(110deg,#FCFCFA,#F7FAFD 50%,#EAF3FF);
  --gradient-btn:linear-gradient(135deg,#06172C,#0D2A4C);

  color-scheme:light;
}

/* ===== SECTION: DARK TOKENS (refined navy, not harsh black) ===== */
[data-theme="dark"]{
  --bg-page:#06101E;
  --bg-elevated:#0A1320;
  --bg-card:#0F1B2D;
  --bg-card-muted:#0C1726;
  --bg-field:#0F1B2D;
  --bg-footer:#0A1320;
  --bg-utility-bar:#020A14;
  --bg-nav:rgba(10,19,32,.92);
  --text-primary:#E8EDF4;
  --text-secondary:#A7B4C6;
  --text-muted:#7C899A;
  --text-on-dark:#E8EDF4;
  --border:#1E2D40;
  --border-soft:#172336;
  --accent:#6F9FD4;
  --accent-soft:#AFCBEA;
  --link:#AFCBEA;
  --color-card-muted:#0C1726;
  --shadow-sm:0 4px 14px rgba(0,0,0,.4); --shadow-md:0 12px 30px rgba(0,0,0,.45); --shadow-lg:0 28px 70px rgba(0,0,0,.5);
  --shadow-card:0 8px 30px rgba(0,0,0,.4); --shadow-card-hover:0 16px 44px rgba(0,0,0,.5);
  --shadow-btn:0 10px 22px rgba(0,0,0,.5);
  --gradient-hero:linear-gradient(110deg,#0A1320,#0C1A2C 50%,#0F2236);
  --gradient-btn:linear-gradient(135deg,#0D2A4C,#15375F);

  color-scheme:dark;
}

/* ===== SECTION: RESET / BASE ===== */
body.retail-v2 *,
body.retail-v2 *::before,
body.retail-v2 *::after{ box-sizing:border-box; }

body.retail-v2{
  margin:0;
  font-family:var(--font-body);
  font-size:16px; line-height:1.65;
  color:var(--text-primary);
  background:var(--bg-page);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

body.retail-v2 img{ max-width:100%; height:auto; display:block; }
body.retail-v2 a{ color:var(--link); text-decoration:none; transition:color 180ms ease; }
body.retail-v2 a:hover{ color:var(--accent); }

/* ===== SECTION: TYPOGRAPHY ===== */
body.retail-v2 h1,
body.retail-v2 h2,
body.retail-v2 h3,
body.retail-v2 h4{ font-family:var(--font-display); color:var(--text-primary); margin:0 0 .4em; font-weight:600; letter-spacing:-.01em; line-height:1.05; }
body.retail-v2 .h1-hero{ font-size:clamp(44px,6vw,84px); line-height:.96; letter-spacing:-.035em; }
body.retail-v2 .h1-page{ font-size:clamp(40px,4.5vw,64px); }
body.retail-v2 h2{ font-size:clamp(32px,3.4vw,48px); }
body.retail-v2 h3{ font-size:clamp(24px,2.4vw,32px); }
body.retail-v2 h4{ font-size:clamp(20px,1.8vw,24px); }
body.retail-v2 p{ margin:0 0 1em; color:var(--text-secondary); }
body.retail-v2 .body-lg{ font-size:18px; line-height:1.65; }
body.retail-v2 .small{ font-size:13px; }
body.retail-v2 .micro{ font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--text-muted); }
body.retail-v2 .text-accent{ color:var(--accent); }

/* ===== SECTION: LAYOUT ===== */
body.retail-v2 .container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 32px; }
body.retail-v2 .section{ padding:var(--section-y) 0; }
body.retail-v2 .grid{ display:grid; gap:28px; }
body.retail-v2 .grid-2{ grid-template-columns:repeat(2,1fr); }
body.retail-v2 .grid-3{ grid-template-columns:repeat(3,1fr); }
body.retail-v2 .grid-4{ grid-template-columns:repeat(4,1fr); }
body.retail-v2 .hero-bg{ background:var(--gradient-hero); }

/* ===== SECTION: BUTTONS ===== */
body.retail-v2 .btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-body); font-weight:600; font-size:14px; cursor:pointer; border:none; border-radius:12px; padding:0 24px; height:46px; transition:all 180ms ease; text-decoration:none; }
body.retail-v2 .btn-primary{ background:var(--gradient-btn); color:#fff; box-shadow:var(--shadow-btn); }
body.retail-v2 .btn-primary:hover{ transform:translateY(-1px); filter:brightness(1.06); color:#fff; }
body.retail-v2 .btn-secondary{ background:var(--bg-card); border:1px solid var(--border); color:var(--text-primary); }
[data-theme="dark"] body.retail-v2 .btn-secondary{ border-color:var(--border); }
body.retail-v2 .btn-secondary:hover{ background:var(--color-ice-blue); }
[data-theme="dark"] body.retail-v2 .btn-secondary:hover{ background:#15243A; }
body.retail-v2 .btn-product{ height:40px; border-radius:9px; padding:0 16px; font-size:13px; background:var(--gradient-btn); color:#fff; }
body.retail-v2 .btn-product:hover{ transform:translateY(-1px); color:#fff; }
body.retail-v2 .btn-block{ width:100%; }

/* ===== SECTION: CARDS ===== */
body.retail-v2 .card{ background:var(--bg-card); border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow-card); padding:24px; transition:box-shadow 180ms ease, transform 180ms ease; }
body.retail-v2 .card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }

/* ===== SECTION: PRODUCT CARD ===== */
body.retail-v2 .product-card{ background:var(--bg-card); border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow-card); padding:20px; text-align:center; position:relative; transition:box-shadow 180ms ease, transform 180ms ease; }
body.retail-v2 .product-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
body.retail-v2 .product-card .pc-img{ aspect-ratio:1/1; object-fit:contain; margin:0 auto 14px; }
body.retail-v2 .product-card .pc-name{ font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--text-primary); }
body.retail-v2 .product-card .pc-cat{ font-size:12px; color:var(--text-muted); margin-top:2px; }
body.retail-v2 .product-card .pc-price{ font-weight:700; font-size:18px; color:var(--text-primary); margin-top:10px; }
body.retail-v2 .product-card .pc-tag{ position:absolute; top:14px; left:14px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; padding:4px 10px; border-radius:var(--radius-pill); background:var(--color-ice-blue); color:var(--accent); }
body.retail-v2 .product-card .pc-wish{ position:absolute; top:12px; right:12px; color:var(--text-muted); background:none; border:none; cursor:pointer; }

/* ===== SECTION: FORMS ===== */
body.retail-v2 label{ display:block; font-size:13px; font-weight:500; color:var(--color-muted-navy); margin-bottom:6px; }
[data-theme="dark"] body.retail-v2 label{ color:var(--text-secondary); }
body.retail-v2 input,
body.retail-v2 select,
body.retail-v2 textarea{ width:100%; height:48px; border:1px solid var(--border); background:var(--bg-field); color:var(--text-primary); border-radius:10px; padding:0 14px; font-family:var(--font-body); font-size:15px; transition:border 160ms ease, box-shadow 160ms ease; }
[data-theme="dark"] body.retail-v2 input,
[data-theme="dark"] body.retail-v2 select,
[data-theme="dark"] body.retail-v2 textarea{ border-color:var(--border); }
body.retail-v2 textarea{ height:auto; padding:12px 14px; }
body.retail-v2 input:focus,
body.retail-v2 select:focus,
body.retail-v2 textarea:focus{ outline:none; border-color:var(--color-luxury-blue); box-shadow:0 0 0 4px rgba(111,159,212,.14); }

/* ===== SECTION: BADGES ===== */
body.retail-v2 .badge{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; padding:4px 10px; border-radius:var(--radius-pill); }
body.retail-v2 .badge-success{ background:var(--color-success-bg); color:var(--color-success); }
body.retail-v2 .badge-sale{ background:var(--color-ice-blue); color:var(--accent); }
[data-theme="dark"] body.retail-v2 .badge-success{ background:rgba(22,163,74,.15); }
[data-theme="dark"] body.retail-v2 .badge-sale{ background:rgba(111,159,212,.15); }
body.retail-v2 .price-was{ text-decoration:line-through; color:var(--text-muted); font-weight:500; margin-right:8px; }
body.retail-v2 .price-save{ color:var(--color-success); font-size:13px; font-weight:600; }

/* ===== SECTION: HEADER / NAV ===== */
body.retail-v2 .v2-utility-bar{ background:var(--bg-utility-bar); color:#fff; font-size:12px; height:34px; display:flex; align-items:center; }
body.retail-v2 .v2-utility-bar .container{ display:flex; gap:24px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
body.retail-v2 .v2-utility-bar .ub-item{ display:inline-flex; align-items:center; gap:7px; color:#fff; opacity:.92; }
body.retail-v2 .v2-nav{ position:sticky; top:0; z-index:50; height:78px; background:var(--bg-nav); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--border-soft); }
body.retail-v2 .v2-nav .container{ display:flex; align-items:center; justify-content:space-between; height:100%; }
body.retail-v2 .v2-nav .nav-logo img{ max-height:42px; }
body.retail-v2 .v2-nav .nav-links{ display:flex; gap:28px; align-items:center; list-style:none; margin:0; padding:0; }
body.retail-v2 .v2-nav .nav-links a{ font-size:14px; font-weight:500; color:var(--text-primary); padding:6px 0; position:relative; }
body.retail-v2 .v2-nav .nav-links a.active::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--text-primary); }
body.retail-v2 .v2-nav .nav-actions{ display:flex; gap:16px; align-items:center; }
body.retail-v2 .theme-toggle{ background:none; border:1px solid var(--border); border-radius:var(--radius-pill); width:38px; height:38px; cursor:pointer; color:var(--text-secondary); display:inline-flex; align-items:center; justify-content:center; }
body.retail-v2 .nav-hamburger{ display:none; background:none; border:none; cursor:pointer; color:var(--text-primary); min-width:44px; min-height:44px; align-items:center; justify-content:center; font-size:22px; }

/* ===== SECTION: FOOTER ===== */
body.retail-v2 .v2-footer{ background:var(--bg-footer); border-top:1px solid var(--border); padding:64px 0 28px; color:var(--text-secondary); }
body.retail-v2 .v2-footer a{ color:var(--text-secondary); }
body.retail-v2 .v2-footer a:hover{ color:var(--text-primary); }
body.retail-v2 .v2-footer .footer-col h5{ font-family:var(--font-body); font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-primary); margin:0 0 14px; }
body.retail-v2 .v2-footer .footer-admin-link{ font-size:11px; color:var(--text-muted); opacity:.7; }

/* ===== SECTION: TRUST STRIP ===== */
body.retail-v2 .v2-trust-strip{ background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-card); display:flex; justify-content:space-between; gap:16px; padding:20px 28px; flex-wrap:wrap; }
body.retail-v2 .v2-trust-strip .ts-item{ display:flex; align-items:center; gap:10px; }
body.retail-v2 .v2-trust-strip .ts-num{ font-weight:700; color:var(--text-primary); }
body.retail-v2 .v2-trust-strip .ts-label{ font-size:12px; color:var(--text-muted); }

/* ===== SECTION: PROMO BAR ===== */
body.retail-v2 .v2-promo-bar{ background:var(--color-midnight); color:#fff; font-size:13px; text-align:center; padding:9px 16px; position:relative; }
[data-theme="dark"] body.retail-v2 .v2-promo-bar{ background:#15375F; }
body.retail-v2 .v2-promo-bar .promo-close{ position:absolute; right:14px; top:50%; transform:translateY(-50%); background:none; border:none; color:#fff; opacity:.8; cursor:pointer; }

/* ===== SECTION: DISCLAIMER ===== */
body.retail-v2 .v2-disclaimer{ font-size:12px; color:var(--text-muted); background:var(--bg-card-muted); border:1px solid var(--border-soft); border-radius:var(--radius-sm); padding:10px 14px; }

/* ===== SECTION: MOTION / A11Y ===== */
body.retail-v2 :focus-visible{ outline:2px solid var(--color-luxury-blue); outline-offset:2px; border-radius:4px; }
body.retail-v2 .skip-link{ position:absolute; left:-999px; top:0; background:var(--color-midnight); color:#fff; padding:10px 16px; z-index:100; }
body.retail-v2 .skip-link:focus{ left:0; }
@media (prefers-reduced-motion: reduce){
  body.retail-v2 *{ transition:none !important; animation:none !important; }
}

/* ===== SECTION: LAYER 2 SHELL COMPONENTS ===== */
/* logo wordmark fallback (until generated logos are dropped in) */
body.retail-v2 .nav-wordmark{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:600; font-size:20px; color:var(--text-primary); letter-spacing:-.01em; }
body.retail-v2 .nav-crest{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:var(--radius-pill); background:var(--color-midnight); color:#fff; font-family:var(--font-body); font-weight:700; font-size:12px; letter-spacing:.02em; }
[data-theme="dark"] body.retail-v2 .nav-crest{ background:var(--color-luxury-blue); color:var(--color-deep-navy); }
body.retail-v2 .nav-logo .logo-dark{ display:none; }
[data-theme="dark"] body.retail-v2 .nav-logo .logo-light{ display:none; }
[data-theme="dark"] body.retail-v2 .nav-logo .logo-dark{ display:block; }

/* nav account/sign-in/cart */
body.retail-v2 .nav-signin,
body.retail-v2 .nav-account{ font-size:14px; font-weight:500; color:var(--text-primary); }
body.retail-v2 .nav-cart{ position:relative; font-size:18px; color:var(--text-primary); display:inline-flex; align-items:center; }
body.retail-v2 .nav-cart .cart-count{ position:absolute; top:-8px; right:-10px; min-width:18px; height:18px; padding:0 5px; border-radius:var(--radius-pill); background:var(--color-cobalt-muted); color:#fff; font-family:var(--font-body); font-size:11px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }

/* nav dropdowns */
body.retail-v2 .nav-links .has-dropdown{ position:relative; }
body.retail-v2 .v2-dropdown{ position:absolute; top:calc(100% + 10px); left:0; min-width:220px; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:10px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity 160ms ease, transform 160ms ease; z-index:60; }
body.retail-v2 .nav-links .has-dropdown:hover .v2-dropdown,
body.retail-v2 .nav-links .has-dropdown:focus-within .v2-dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
body.retail-v2 .v2-dropdown a{ display:block; padding:9px 12px; border-radius:var(--radius-sm); font-size:14px; color:var(--text-primary); }
body.retail-v2 .v2-dropdown a:hover{ background:var(--color-ice-blue); color:var(--accent); }
[data-theme="dark"] body.retail-v2 .v2-dropdown a:hover{ background:#15243A; }

/* mobile drawer chrome */
body.retail-v2 .v2-mobile-menu .mm-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
body.retail-v2 .v2-mobile-menu .mm-close{ background:none; border:none; font-size:28px; line-height:1; color:var(--text-primary); cursor:pointer; min-width:44px; min-height:44px; }
body.retail-v2 .v2-mobile-menu .mm-section{ margin-top:14px; padding-top:14px; border-top:1px solid var(--border-soft); }
body.retail-v2 .v2-mobile-menu .mm-section .micro{ display:block; margin-bottom:6px; }
body.retail-v2 .v2-mobile-menu .mm-actions{ margin-top:20px; display:grid; gap:10px; }

/* footer */
body.retail-v2 .footer-grid{ gap:32px; align-items:start; }
body.retail-v2 .v2-footer .footer-col a{ display:block; padding:5px 0; font-size:14px; }
body.retail-v2 .footer-newsletter{ margin-top:40px; max-width:420px; }
body.retail-v2 .newsletter-form{ display:flex; gap:8px; margin-top:10px; }
body.retail-v2 .newsletter-form input{ flex:1; }
body.retail-v2 .newsletter-form .btn{ width:48px; padding:0; }
body.retail-v2 .footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:40px; padding-top:20px; border-top:1px solid var(--border); }
body.retail-v2 .footer-legal{ display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
body.retail-v2 .footer-legal a{ font-size:13px; }
body.retail-v2 .footer-disclaimer{ margin-top:18px; }

/* product card details */
body.retail-v2 .pc-link{ display:block; color:inherit; }
body.retail-v2 .pc-img-placeholder{ width:100%; max-width:220px; aspect-ratio:1/1; margin:0 auto 14px; border-radius:var(--radius-md); background:linear-gradient(135deg,var(--color-ice-blue),var(--color-soft-white)); border:1px dashed var(--border); }
[data-theme="dark"] body.retail-v2 .pc-img-placeholder{ background:linear-gradient(135deg,#10243C,#0C1726); }
body.retail-v2 .pc-sizes{ display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:10px 0; }
body.retail-v2 .pc-sz{ font-size:11px; font-weight:600; color:var(--text-secondary); border:1px solid var(--border); border-radius:var(--radius-sm); padding:3px 8px; }
body.retail-v2 .pc-buy{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }
body.retail-v2 .pc-pricing{ display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }

/* CTA band */
body.retail-v2 .v2-cta-band{ background:var(--bg-card-muted); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
body.retail-v2 .cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:40px 32px; flex-wrap:wrap; }
body.retail-v2 .cta-copy h3{ margin:0 0 4px; }

@media (max-width:600px){
  body.retail-v2 .footer-bottom{ flex-direction:column; align-items:flex-start; }
  body.retail-v2 .cta-inner{ flex-direction:column; align-items:flex-start; text-align:left; }
}

/* ===== SECTION: HOME (LAYER 3) ===== */
body.retail-v2 .section-muted{ background:var(--bg-card-muted); }
body.retail-v2 .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:32px; flex-wrap:wrap; }
body.retail-v2 .section-head h2{ margin:0; }
body.retail-v2 .section-link{ font-size:14px; font-weight:600; white-space:nowrap; }

/* hero */
body.retail-v2 .v2-hero{ padding:72px 0 64px; }
body.retail-v2 .hero-inner{ display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; }
body.retail-v2 .hero-eyebrow{ color:var(--accent); display:inline-block; margin-bottom:16px; }
body.retail-v2 .hero-copy h1{ margin:0 0 20px; }
body.retail-v2 .hero-sub{ max-width:520px; color:var(--text-secondary); }
body.retail-v2 .hero-cta{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
body.retail-v2 .hero-art{ display:flex; justify-content:center; }
body.retail-v2 .hero-art-placeholder{ width:100%; aspect-ratio:5/4; border-radius:var(--radius-lg); background:linear-gradient(135deg,var(--color-ice-blue),var(--color-soft-white)); border:1px dashed var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-muted); font-size:13px; }
[data-theme="dark"] body.retail-v2 .hero-art-placeholder{ background:linear-gradient(135deg,#10243C,#0C1726); }

/* trust strip wrapper (overlaps hero edge) */
body.retail-v2 .trust-wrap{ margin-top:-32px; position:relative; z-index:2; }

/* research-focus tiles */
body.retail-v2 .focus-tile{ display:block; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--border); background:var(--bg-card); box-shadow:var(--shadow-card); transition:box-shadow 180ms ease, transform 180ms ease; color:inherit; }
body.retail-v2 .focus-tile:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
body.retail-v2 .focus-img{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--color-pale-blue),var(--color-ice-blue)); background-size:cover; background-position:center; }
[data-theme="dark"] body.retail-v2 .focus-img{ background:linear-gradient(135deg,#13263F,#0E1E32); }
body.retail-v2 .focus-body{ padding:18px 20px; }
body.retail-v2 .focus-body h4{ margin:0 0 6px; }
body.retail-v2 .focus-body p{ margin:0; }

/* quality strip */
body.retail-v2 .quality-grid{ gap:24px; }
body.retail-v2 .quality-item h4{ margin:0 0 6px; font-family:var(--font-body); font-size:16px; }
body.retail-v2 .quality-item p{ margin:0; }

/* reviews */
body.retail-v2 .review-card{ display:flex; flex-direction:column; gap:12px; }
body.retail-v2 .review-stars{ color:var(--color-warning); font-size:16px; letter-spacing:2px; }
body.retail-v2 .review-card blockquote{ margin:0; color:var(--text-secondary); font-style:normal; }
body.retail-v2 .review-card figcaption{ display:flex; align-items:center; gap:10px; font-size:14px; }

@media (max-width:900px){
  body.retail-v2 .hero-inner{ grid-template-columns:1fr; }
  body.retail-v2 .hero-art{ order:-1; }
}

/* ===== SECTION: COA BADGE (toggleable) + TOAST + ACTIVE SIZE ===== */
body.retail-v2 .pc-coa{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; margin:8px 0 4px; }
body.retail-v2 .pc-coa-dot{ width:7px; height:7px; border-radius:50%; display:inline-block; }
body.retail-v2 .pc-coa.has-coa{ color:var(--color-success); }
body.retail-v2 .pc-coa.has-coa .pc-coa-dot{ background:var(--color-success); }
body.retail-v2 .pc-coa.no-coa{ color:var(--text-muted); }
body.retail-v2 .pc-coa.no-coa .pc-coa-dot{ background:var(--text-muted); }
body.retail-v2 .pc-sz-btn{ cursor:pointer; background:var(--bg-card); }
body.retail-v2 .pc-sz-btn.active{ border-color:var(--accent); color:var(--accent); background:var(--color-ice-blue); }
[data-theme="dark"] body.retail-v2 .pc-sz-btn.active{ background:#15243A; }

body.retail-v2 .v2-toast{ position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(20px); background:var(--color-midnight,#06172C); color:#fff; padding:12px 20px; border-radius:12px; box-shadow:0 12px 30px rgba(6,23,44,.3); font:600 14px/1 "Inter",sans-serif; opacity:0; transition:opacity .25s ease, transform .25s ease; z-index:200; pointer-events:none; }
.v2-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ===== SECTION: SHOP (LAYER 4) ===== */
body.retail-v2 .v2-shop-hero{ padding:56px 0 40px; }
body.retail-v2 .v2-shop-hero .body-lg{ max-width:560px; color:var(--text-secondary); }
body.retail-v2 .shop-search{ margin:24px 0 14px; max-width:560px; }
body.retail-v2 .shop-search input{ height:52px; border-radius:var(--radius-pill); padding:0 22px; }
body.retail-v2 .shop-popular{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
body.retail-v2 .chip{ border:1px solid var(--border); background:var(--bg-card); color:var(--text-primary); border-radius:var(--radius-pill); padding:6px 14px; font-size:13px; cursor:pointer; transition:all 160ms ease; }
body.retail-v2 .chip:hover{ border-color:var(--accent); color:var(--accent); }

body.retail-v2 .shop-layout{ display:grid; grid-template-columns:264px 1fr; gap:32px; align-items:start; }
body.retail-v2 .shop-filter-toggle{ display:none; width:100%; margin-bottom:14px; }
body.retail-v2 .sidebar-h{ font-family:var(--font-body); font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-primary); margin:0 0 12px; }
body.retail-v2 .cat-list{ list-style:none; margin:0 0 28px; padding:0; }
body.retail-v2 .cat-list a{ display:flex; align-items:center; justify-content:space-between; padding:9px 12px; border-radius:var(--radius-sm); color:var(--text-secondary); font-size:14px; }
body.retail-v2 .cat-list a:hover{ background:var(--bg-card-muted); color:var(--text-primary); }
body.retail-v2 .cat-list a.active{ background:var(--color-midnight); color:#fff; }
[data-theme="dark"] body.retail-v2 .cat-list a.active{ background:var(--color-luxury-blue); color:var(--color-deep-navy); }
body.retail-v2 .cat-count{ font-size:12px; opacity:.7; }
body.retail-v2 .sidebar-trust{ padding:18px; }
body.retail-v2 .sidebar-trust .st-row{ display:flex; flex-direction:column; padding:8px 0; border-bottom:1px solid var(--border-soft); }
body.retail-v2 .sidebar-trust .st-row:last-child{ border-bottom:none; }

body.retail-v2 .shop-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
body.retail-v2 .shop-sort{ display:flex; align-items:center; gap:10px; }
body.retail-v2 .shop-sort select{ width:auto; height:42px; }
body.retail-v2 .shop-grid{ gap:22px; }
body.retail-v2 .shop-empty,
body.retail-v2 .shop-empty-search{ text-align:center; padding:48px 24px; }
body.retail-v2 .shop-pagination{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:40px; }

@media (max-width:900px){
  body.retail-v2 .shop-layout{ grid-template-columns:1fr; }
  body.retail-v2 .shop-filter-toggle{ display:block; }
  body.retail-v2 .shop-sidebar-inner{ display:none; }
  body.retail-v2 .shop-sidebar-inner.open{ display:block; }
}

/* ===== SECTION: PRODUCT PAGE (LAYER 5) ===== */
body.retail-v2 .v2-breadcrumb{ padding:20px 0 0; font-size:13px; color:var(--text-muted); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
body.retail-v2 .v2-breadcrumb a{ color:var(--text-secondary); }
body.retail-v2 .v2-breadcrumb .current{ color:var(--text-primary); }
body.retail-v2 .v2-pdp{ display:grid; grid-template-columns:minmax(0,44%) 1fr; gap:48px; padding:28px 0 16px; align-items:start; }
body.retail-v2 .pdp-main-img{ background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-card); }
body.retail-v2 .pdp-main-img img{ width:100%; aspect-ratio:1/1; object-fit:contain; }
body.retail-v2 .pdp-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
body.retail-v2 .pdp-title{ margin:0 0 8px; }
body.retail-v2 .pdp-rating{ color:var(--color-warning); margin-bottom:20px; }
body.retail-v2 .pdp-rating .small{ color:var(--text-muted); margin-left:6px; }
body.retail-v2 .pdp-szs{ margin-bottom:20px; }
body.retail-v2 .pdp-sz-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
body.retail-v2 .pdp-sz{ min-width:56px; }
body.retail-v2 .pdp-buy{ padding:22px; margin-bottom:22px; }
body.retail-v2 .pdp-price-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
body.retail-v2 .pdp-price{ font-size:34px; font-weight:700; color:var(--text-primary); font-family:var(--font-body); }
body.retail-v2 .pdp-qty{ margin-bottom:16px; }
body.retail-v2 .qty-control{ display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
body.retail-v2 .qty-btn{ width:44px; height:46px; background:var(--bg-card); border:none; font-size:18px; cursor:pointer; color:var(--text-primary); }
body.retail-v2 .qty-control input{ width:64px; height:46px; text-align:center; border:none; border-left:1px solid var(--border); border-right:1px solid var(--border); border-radius:0; }
body.retail-v2 .pdp-add{ margin-bottom:10px; }
body.retail-v2 .pdp-wish.active{ border-color:var(--accent); color:var(--accent); }
body.retail-v2 .pdp-assurances{ list-style:none; margin:16px 0 0; padding:14px 0 0; border-top:1px solid var(--border-soft); }
body.retail-v2 .pdp-assurances li{ font-size:13px; color:var(--text-secondary); padding:4px 0; }
body.retail-v2 .pdp-highlights ul{ list-style:none; margin:8px 0 0; padding:0; }
body.retail-v2 .pdp-highlights li{ padding:6px 0 6px 24px; position:relative; color:var(--text-secondary); }
body.retail-v2 .pdp-highlights li::before{ content:"\2713"; position:absolute; left:0; color:var(--color-success); font-weight:700; }

/* tabs */
body.retail-v2 .v2-tabs{ display:flex; gap:6px; border-bottom:1px solid var(--border); margin-bottom:24px; flex-wrap:wrap; }
body.retail-v2 .v2-tab{ background:none; border:none; padding:12px 18px; font:600 14px/1 var(--font-body); color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
body.retail-v2 .v2-tab.active{ color:var(--text-primary); border-bottom-color:var(--accent); }
body.retail-v2 .v2-tab-panel{ display:none; max-width:820px; }
body.retail-v2 .v2-tab-panel.active{ display:block; }
body.retail-v2 .v2-tab-panel details{ border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px 16px; margin-bottom:10px; }
body.retail-v2 .v2-tab-panel summary{ cursor:pointer; font-weight:600; color:var(--text-primary); }


@media (max-width:900px){
  body.retail-v2 .v2-pdp{ grid-template-columns:1fr; gap:28px; }
}

/* ===== SECTION: CHECKOUT (LAYER 8) ===== */
body.retail-v2 .ck-steps{ display:flex; gap:8px; list-style:none; padding:0; margin:8px 0 28px; flex-wrap:wrap; }
body.retail-v2 .ck-steps li{ display:flex; align-items:center; gap:8px; color:var(--text-muted); font-size:14px; font-weight:600; padding:8px 16px; border-radius:var(--radius-pill); border:1px solid var(--border); }
body.retail-v2 .ck-steps li.active{ color:#fff; background:var(--gradient-btn); border-color:transparent; }
body.retail-v2 .ck-steps li.done{ color:var(--color-success); border-color:var(--color-success); }
body.retail-v2 .ck-step-num{ display:inline-flex; width:22px; height:22px; align-items:center; justify-content:center; border-radius:50%; background:rgba(0,0,0,.08); font-size:12px; }
body.retail-v2 .ck-steps li.active .ck-step-num{ background:rgba(255,255,255,.25); }
body.retail-v2 .ck-error{ background:var(--color-error-bg); color:var(--color-error); border:1px solid #fecaca; border-radius:var(--radius-sm); padding:12px 16px; margin-bottom:20px; font-size:14px; }
[data-theme="dark"] body.retail-v2 .ck-error{ background:rgba(220,38,38,.12); }

body.retail-v2 .ck-grid{ display:grid; grid-template-columns:1fr 380px; gap:28px; align-items:start; }
body.retail-v2 .ck-main{ padding:24px; }
body.retail-v2 .ck-main h3{ margin:0 0 16px; }
body.retail-v2 .ck-main h3 + h3,
body.retail-v2 .ck-address h3{ margin-top:28px; }
body.retail-v2 .ck-field{ margin-bottom:14px; }
body.retail-v2 .ck-row{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:12px; }
body.retail-v2 .ck-addr-note{ color:var(--color-warning); margin:-6px 0 14px; }

/* Smarty address autocomplete dropdown (checkout shipping step) */
body.retail-v2 .ck-field-street{ position:relative; }
body.retail-v2 .addr-ac{ display:none; position:absolute; top:100%; left:0; right:0; z-index:220; margin:4px 0 0; padding:4px; list-style:none; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-sm); box-shadow:var(--shadow-md); max-height:264px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
body.retail-v2 .addr-ac.show{ display:block; }
body.retail-v2 .addr-ac li{ padding:11px 12px; font-size:14px; line-height:1.4; color:var(--text-primary); border-radius:6px; cursor:pointer; }
body.retail-v2 .addr-ac li:hover, body.retail-v2 .addr-ac li:active{ background:var(--bg-card-muted); }
body.retail-v2 .addr-ac li .ac-units{ color:var(--text-muted); font-size:12px; margin-left:6px; }
body.retail-v2 .addr-ac li.ac-empty{ color:var(--text-muted); cursor:default; }
body.retail-v2 .addr-ac li.ac-empty:hover{ background:transparent; }
@media (max-width:640px){ body.retail-v2 .addr-ac{ max-height:230px; } body.retail-v2 .addr-ac li{ padding:13px 12px; font-size:15px; } }

body.retail-v2 .ck-ship-methods,
body.retail-v2 .ck-pay-methods{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
body.retail-v2 .ck-ship-opt,
body.retail-v2 .ck-pay-opt{ display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border:1px solid var(--border); border-radius:var(--radius-sm); cursor:pointer; }
body.retail-v2 .ck-ship-opt input,
body.retail-v2 .ck-pay-opt input{ width:auto; height:auto; margin-top:3px; }
body.retail-v2 .ck-pay-detail{ background:var(--bg-card-muted); border:1px solid var(--border-soft); border-radius:var(--radius-sm); padding:14px 16px; font-size:14px; line-height:1.6; margin-bottom:16px; }
body.retail-v2 .ck-pay-detail:empty{ display:none; }
body.retail-v2 .ck-surcharge-note{ color:var(--text-muted); }
body.retail-v2 .ck-express-note{ display:inline-block; margin-bottom:16px; }

body.retail-v2 .ck-summary{ position:sticky; top:96px; padding:24px; }
body.retail-v2 .ck-summary h3{ margin:0 0 16px; }
body.retail-v2 .ck-sum-items{ margin-bottom:12px; }
body.retail-v2 .ck-sum-row{ display:flex; justify-content:space-between; gap:10px; padding:6px 0; font-size:14px; color:var(--text-secondary); }
body.retail-v2 .ck-summary .btn-block{ margin-top:16px; }

body.retail-v2 .ck-cart-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; flex-wrap:wrap; }
body.retail-v2 .ck-cart-total{ font-size:15px; }
body.retail-v2 .ck-cart-cta{ display:flex; gap:10px; flex-wrap:wrap; }
body.retail-v2 .ck-express-addr{ background:var(--bg-card-muted); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px 16px; margin:10px 0 8px; line-height:1.6; }
body.retail-v2 .ck-referral{ padding:14px 16px; margin:0 0 16px; border-color:var(--color-luxury-blue); }
body.retail-v2 .ck-referral .micro{ display:block; margin-bottom:8px; color:var(--accent); }
body.retail-v2 .ck-referral-opts{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }

body.retail-v2 .ck-confirm{ max-width:640px; margin:0 auto; text-align:center; padding:40px 28px; }
body.retail-v2 .ck-confirm-badge{ width:64px; height:64px; border-radius:50%; background:var(--color-success-bg); color:var(--color-success); font-size:32px; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
body.retail-v2 .ck-order-no{ font-size:16px; }
body.retail-v2 .ck-confirm-meta{ display:flex; justify-content:center; gap:40px; margin:20px 0; }
body.retail-v2 .ck-confirm-meta span{ display:block; }
body.retail-v2 .ck-confirm-next{ text-align:left; background:var(--bg-card-muted); border-radius:var(--radius-md); padding:18px 22px; margin:20px 0; }
body.retail-v2 .ck-confirm-next ol{ margin:8px 0 0; padding-left:20px; }
body.retail-v2 .ck-confirm-next li{ padding:4px 0; color:var(--text-secondary); }
body.retail-v2 .ck-confirm-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:20px; }

@media (max-width:900px){
  body.retail-v2 .ck-grid{ grid-template-columns:1fr; }
  body.retail-v2 .ck-summary{ position:static; }
}

/* ===== SECTION: ACCOUNT + AUTH (LAYER 9) ===== */
body.retail-v2 .acct-cards{ gap:18px; margin-top:24px; }
body.retail-v2 .acct-card{ display:flex; flex-direction:column; gap:2px; text-align:left; color:inherit; }
body.retail-v2 .acct-card strong{ font-size:22px; font-family:var(--font-display); }
body.retail-v2 .acct-orders{ display:flex; flex-direction:column; gap:14px; }
body.retail-v2 .acct-order{ padding:18px 20px; }
body.retail-v2 .acct-order-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
body.retail-v2 .acct-order-date{ color:var(--text-muted); margin-left:10px; }
body.retail-v2 .status-badge{ display:inline-block; padding:4px 12px; border-radius:var(--radius-pill); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#fff; }
body.retail-v2 .acct-order-items{ color:var(--text-secondary); margin-bottom:10px; }
body.retail-v2 .acct-order-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
body.retail-v2 .acct-order-total{ font-weight:700; font-size:18px; }
body.retail-v2 .acct-order-actions{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

body.retail-v2 .v2-auth .auth-card{ max-width:440px; margin:0 auto; padding:36px 32px; }
body.retail-v2 .auth-head{ text-align:center; margin-bottom:24px; }
body.retail-v2 .auth-head h1{ margin:14px 0 6px; font-size:30px; }
body.retail-v2 .auth-row{ display:flex; justify-content:flex-end; margin-bottom:14px; }
body.retail-v2 .auth-alt{ text-align:center; margin-top:18px; }
body.retail-v2 .auth-note{ margin-top:16px; text-align:center; }
body.retail-v2 .auth-consent{ display:flex; gap:10px; align-items:flex-start; margin:8px 0 18px; color:var(--text-secondary); }
body.retail-v2 .auth-consent input{ width:auto; height:auto; margin-top:3px; }
body.retail-v2 .auth-grid{ display:grid; grid-template-columns:minmax(0,460px) 1fr; gap:32px; align-items:start; max-width:920px; margin:0 auto; }
body.retail-v2 .auth-grid .auth-card{ margin:0; max-width:none; }
body.retail-v2 .auth-benefits{ padding-top:20px; }
body.retail-v2 .auth-benefits h3{ margin:0 0 14px; }
@media (max-width:768px){ body.retail-v2 .auth-grid{ grid-template-columns:1fr; } body.retail-v2 .auth-benefits{ display:none; } }

/* ===== SECTION: CONTENT PAGES (LAYER 10) ===== */
body.retail-v2 .v2-faq-item{ border:1px solid var(--border); border-radius:var(--radius-sm); padding:16px 18px; margin-bottom:10px; background:var(--bg-card); }
body.retail-v2 .v2-faq-item summary{ cursor:pointer; font-weight:600; color:var(--text-primary); list-style:none; }
body.retail-v2 .v2-faq-item summary::-webkit-details-marker{ display:none; }
body.retail-v2 .v2-faq-item[open] summary{ margin-bottom:10px; }
body.retail-v2 .v2-faq-item p{ margin:0; color:var(--text-secondary); }
body.retail-v2 .legal-wrap{ max-width:800px; }
body.retail-v2 .legal-wrap h2{ font-size:24px; margin:32px 0 10px; }
body.retail-v2 .legal-wrap p{ color:var(--text-secondary); }
body.retail-v2 .legal-updated{ color:var(--text-muted); margin-top:-6px; }
body.retail-v2 .legal-list{ margin:0 0 8px; padding-left:22px; }
body.retail-v2 .legal-list li{ color:var(--text-secondary); padding:5px 0; }
body.retail-v2 .v2-legal .legal-header{ text-align:center; margin-bottom:32px; }
body.retail-v2 .v2-legal .legal-header h1{ font-family:var(--font-display); font-size:clamp(32px,4vw,52px); margin:0 0 8px; }
body.retail-v2 .v2-legal .legal-entity{ color:var(--accent); font-weight:600; }
body.retail-v2 .v2-legal .legal-updated{ color:var(--text-muted); font-size:13px; margin-top:6px; }
body.retail-v2 .v2-legal .legal-section{ margin-bottom:26px; }
body.retail-v2 .v2-legal .legal-section h2{ font-size:22px; margin:0 0 10px; padding-bottom:8px; border-bottom:1px solid var(--border-soft); }
body.retail-v2 .v2-legal .legal-section p,
body.retail-v2 .v2-legal .legal-section li{ color:var(--text-secondary); line-height:1.75; }
body.retail-v2 .v2-legal .legal-section ul{ padding-left:22px; }
/* V1 legal markup inlines strong color as near-white (for V1 dark UI); force readable in V2 light+dark */
body.retail-v2 .v2-legal .legal-section strong,
body.retail-v2 .v2-legal .legal-caps{ color:var(--text-primary) !important; }

/* ===== SECTION: OVERLAYS (LAYER 11) — all mobile-safe + closable ===== */
/* CRITICAL (global): the [hidden] attribute MUST win over every component display rule (display:flex
   on .sum-row, .v2-agegate, .v2-modal-overlay, .v2-cookie, .cart-layout, etc.). V2 shows/hides ~16
   elements by toggling the `hidden` attribute in JS; without this, toggling `hidden` does nothing
   (age-gate "Yes" looks dead, discount/surcharge rows show $0.00, error msgs always visible). This
   only targets the real `hidden` boolean attribute — NOT aria-hidden. */
body.retail-v2 [hidden]{ display:none !important; }
/* age gate */
body.retail-v2 .v2-agegate{ position:fixed; inset:0; z-index:300; background:rgba(6,23,44,.75); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:20px; }
body.retail-v2 .v2-agegate-card{ background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:32px 28px; max-width:440px; width:100%; text-align:center; }
body.retail-v2 .v2-agegate-card h2{ margin:14px 0 10px; }
body.retail-v2 .v2-agegate-actions{ display:flex; flex-direction:column; gap:10px; margin:20px 0 14px; }
body.retail-v2 .v2-agegate-actions .btn{ width:100%; height:52px; }
/* email modal */
body.retail-v2 .v2-modal-overlay{ position:fixed; inset:0; z-index:280; background:rgba(6,23,44,.55); display:flex; align-items:center; justify-content:center; padding:20px; }
body.retail-v2 .v2-modal{ position:relative; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:32px 28px; max-width:420px; width:100%; text-align:center; }
body.retail-v2 .v2-modal h3{ margin:0 0 8px; }
body.retail-v2 .v2-modal .newsletter-form{ margin:16px 0 10px; }
body.retail-v2 .v2-modal-close{ position:absolute; top:8px; right:8px; width:44px; height:44px; border:none; background:none; font-size:28px; line-height:1; color:var(--text-muted); cursor:pointer; border-radius:50%; }
body.retail-v2 .v2-modal-close:hover{ background:var(--bg-card-muted); color:var(--text-primary); }
body.retail-v2 .v2-modal-dismiss{ background:none; border:none; color:var(--text-muted); cursor:pointer; text-decoration:underline; padding:8px; min-height:44px; }
/* cookie banner (slim, non-blocking) */
body.retail-v2 .v2-cookie{ position:fixed; left:16px; right:16px; bottom:16px; z-index:260; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; max-width:var(--container); margin:0 auto; }
body.retail-v2 .v2-cookie-actions{ display:flex; gap:8px; flex-wrap:wrap; }
@media (max-width:600px){
  body.retail-v2 .v2-cookie{ flex-direction:column; align-items:stretch; text-align:center; }
  body.retail-v2 .v2-cookie-actions{ justify-content:center; }
  body.retail-v2 .v2-modal-close{ width:48px; height:48px; }
}
body.retail-v2 .calc-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
body.retail-v2 .calc-inputs,body.retail-v2 .calc-results{ padding:26px; }
body.retail-v2 .calc-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--border-soft); }
body.retail-v2 .calc-row strong{ font-size:18px; font-family:var(--font-display); }
body.retail-v2 .calc-highlight{ background:var(--color-ice-blue); margin:8px -12px; padding:14px 12px; border-radius:var(--radius-sm); border-bottom:none; }
[data-theme="dark"] body.retail-v2 .calc-highlight{ background:#15243A; }
body.retail-v2 .calc-highlight strong{ color:var(--accent); }
body.retail-v2 .calc-note{ margin-top:16px; }
@media (max-width:768px){ body.retail-v2 .calc-wrap{ grid-template-columns:1fr; } }
body.retail-v2 .coa-card{ text-align:center; display:flex; flex-direction:column; gap:8px; align-items:center; }
body.retail-v2 .coa-card .pc-img{ width:110px; height:110px; object-fit:contain; }
body.retail-v2 .blog-card{ display:flex; flex-direction:column; gap:10px; padding:0; overflow:hidden; }
body.retail-v2 .blog-thumb{ width:100%; aspect-ratio:16/10; object-fit:cover; }
body.retail-v2 .blog-thumb-ph{ width:100%; aspect-ratio:16/10; background:linear-gradient(135deg,var(--color-ice-blue),var(--color-soft-white)); }
[data-theme="dark"] body.retail-v2 .blog-thumb-ph{ background:linear-gradient(135deg,#13263F,#0E1E32); }
body.retail-v2 .blog-card .badge,
body.retail-v2 .blog-card .blog-card-title,
body.retail-v2 .blog-card p,
body.retail-v2 .blog-card .blog-card-meta{ margin-left:18px; margin-right:18px; }
body.retail-v2 .blog-card-title{ margin-top:6px; font-size:18px; }
body.retail-v2 .blog-card-meta{ display:flex; justify-content:space-between; color:var(--text-muted); padding-bottom:16px; }
body.retail-v2 .blogpost-hero{ width:100%; border-radius:var(--radius-md); margin:18px 0 24px; }
body.retail-v2 .blogpost-body{ font-size:17px; line-height:1.8; color:var(--text-secondary); }
body.retail-v2 .blogpost-body h2,body.retail-v2 .blogpost-body h3{ color:var(--text-primary); margin-top:28px; }
body.retail-v2 .blogpost-body img{ border-radius:var(--radius-sm); margin:16px 0; }

/* ===== SECTION: KITS & PROTOCOLS (LAYER 6) ===== */
body.retail-v2 .kits-empty{ text-align:center; padding:56px 24px; max-width:560px; margin:0 auto; }
body.retail-v2 .kits-grid{ gap:24px; }
body.retail-v2 .kit-card{ display:flex; flex-direction:column; gap:14px; border:1px solid var(--border); position:relative; overflow:hidden; }
body.retail-v2 .kit-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--color-luxury-blue),var(--color-cobalt-muted)); }
body.retail-v2 .kit-img{ width:100%; aspect-ratio:3/2; object-fit:contain; }
body.retail-v2 .kit-name{ margin:0; font-size:22px; }
body.retail-v2 .kit-contents .micro{ display:block; margin-bottom:6px; }
body.retail-v2 .kit-contents ul{ list-style:none; margin:0; padding:0; }
body.retail-v2 .kit-contents li{ padding:5px 0 5px 22px; position:relative; font-size:14px; color:var(--text-secondary); border-bottom:1px solid var(--border-soft); }
body.retail-v2 .kit-contents li::before{ content:"\2713"; position:absolute; left:0; color:var(--color-success); }
body.retail-v2 .kit-buy{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:8px; }
body.retail-v2 .pack-options{ display:flex; flex-direction:column; gap:8px; }
body.retail-v2 .pack-option{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); }

/* ===== SECTION: CART (LAYER 7) ===== */
body.retail-v2 .cart-layout{ display:grid; grid-template-columns:1fr 360px; gap:32px; align-items:start; margin-top:24px; }
body.retail-v2 .cart-items{ display:flex; flex-direction:column; gap:12px; }
body.retail-v2 .cart-row{ display:grid; grid-template-columns:72px 1fr auto auto auto auto; gap:14px; align-items:center; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px 16px; }
body.retail-v2 .cart-thumb img,
body.retail-v2 .cart-thumb-ph{ width:64px; height:64px; border-radius:var(--radius-sm); object-fit:contain; background:var(--bg-card-muted); }
body.retail-v2 .cart-name{ font-weight:600; }
body.retail-v2 .cart-price,
body.retail-v2 .cart-line{ font-weight:600; white-space:nowrap; }
body.retail-v2 .cart-qty{ transform:scale(.85); }
body.retail-v2 .cart-remove{ background:none; border:none; font-size:22px; color:var(--text-muted); cursor:pointer; line-height:1; }
body.retail-v2 .cart-remove:hover{ color:var(--color-error); }
body.retail-v2 .cart-continue{ display:inline-block; margin-top:16px; font-size:14px; font-weight:600; }
body.retail-v2 .cart-summary{ position:sticky; top:96px; }
body.retail-v2 .cart-summary h3{ margin:0 0 16px; }
body.retail-v2 .sum-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--border-soft); }
body.retail-v2 .sum-muted{ color:var(--text-muted); }
body.retail-v2 .sum-total{ font-weight:700; font-size:18px; border-bottom:none; margin-top:4px; }
body.retail-v2 .cart-summary .btn-block{ margin-top:16px; }
body.retail-v2 .cart-disclaimer{ margin-top:14px; }
body.retail-v2 .cart-empty{ text-align:center; padding:56px 24px; max-width:520px; margin:24px auto; }
body.retail-v2 .cart-freeship{ margin-bottom:14px; }
body.retail-v2 .freeship-text{ font-size:13px; color:var(--text-secondary); margin-bottom:6px; }
body.retail-v2 .freeship-track{ height:7px; background:var(--border-soft); border-radius:var(--radius-pill); overflow:hidden; }
body.retail-v2 .freeship-track span{ display:block; height:100%; background:linear-gradient(90deg,var(--color-luxury-blue),var(--color-cobalt-muted)); }
body.retail-v2 .freeship-bar.done{ font-size:13px; font-weight:600; color:var(--color-success); background:var(--color-success-bg); padding:8px 12px; border-radius:var(--radius-sm); }
[data-theme="dark"] body.retail-v2 .freeship-bar.done{ background:rgba(22,163,74,.15); }

@media (max-width:900px){
  body.retail-v2 .cart-layout{ grid-template-columns:1fr; }
  body.retail-v2 .cart-summary{ position:static; }
  body.retail-v2 .cart-row{ grid-template-columns:60px 1fr auto; grid-auto-rows:auto; row-gap:8px; }
  body.retail-v2 .cart-row .cart-qty{ grid-column:2; justify-self:start; }
  body.retail-v2 .cart-row .cart-line{ grid-column:3; }
}

/* PDP subtitle / tagline (admin-set, shown under the product name like V1) */
body.retail-v2 .pdp-subtitle{ margin:2px 0 8px; color:var(--text-secondary); font-size:15px; font-weight:500; }

/* Discount-code apply row (checkout payment step) */
body.retail-v2 .ck-discount-row{ display:flex; gap:8px; align-items:stretch; }
body.retail-v2 .ck-discount-row input{ flex:1 1 auto; }
body.retail-v2 .ck-discount-row .btn{ flex:0 0 auto; white-space:nowrap; }
body.retail-v2 .ck-discount-msg{ margin-top:6px; }

/* ===== PROMOTION / SAVINGS DISPLAY (parity with V1) ===== */
/* Promo name pill (cards + PDP) */
body.retail-v2 .promo-name-pill{ display:inline-block; margin-top:6px; font-size:11px; font-weight:600; letter-spacing:.02em; color:var(--link); background:var(--bg-card-muted); border:1px solid var(--border-soft); border-radius:var(--radius-pill); padding:3px 10px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* PDP price block: strikethrough original + sale badge + retail-compare */
body.retail-v2 .pdp-original-price{ text-decoration:line-through; color:var(--text-muted); font-size:18px; font-weight:600; margin-left:8px; }
body.retail-v2 .pdp-sale-badge{ display:inline-block; margin-left:8px; padding:4px 10px; border-radius:var(--radius-sm); font-size:12px; font-weight:800; letter-spacing:.04em; background:var(--color-error-bg); color:var(--color-error); }
body.retail-v2 .pdp-save-line{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px; font-size:13px; line-height:1.3; }
body.retail-v2 .pdp-save-line:empty{ display:none; }
body.retail-v2 .pdp-rc-label{ color:var(--text-muted); font-weight:600; }
body.retail-v2 .pdp-rc-old{ color:var(--text-muted); text-decoration:line-through; font-weight:600; }
body.retail-v2 .pdp-rc-save{ color:var(--color-success); background:var(--color-success-bg); padding:3px 8px; border-radius:var(--radius-sm); font-weight:700; font-size:12px; }

/* Site-wide active-promotions strip (under the nav) */
body.retail-v2 .v2-promo-strip{ background:linear-gradient(90deg, var(--color-navy), var(--color-deep-navy)); color:var(--text-on-dark); border-bottom:1px solid var(--border-soft); }
body.retail-v2 .v2-promo-strip-inner{ display:flex; align-items:center; justify-content:center; gap:12px; padding:16px 24px; text-align:center; }
body.retail-v2 .v2-promo-spark{ color:var(--color-luxury-blue); font-size:19px; }
body.retail-v2 .v2-promo-text{ font-size:15.5px; font-weight:700; letter-spacing:.02em; color:var(--text-on-dark); }
@media (max-width:480px){ body.retail-v2 .v2-promo-strip-inner{ padding:12px 16px; } body.retail-v2 .v2-promo-text{ font-size:13px; } body.retail-v2 .v2-promo-spark{ font-size:16px; } }

/* ===== SECTION: HOME HERO 3D (assets/js/hero3d.js) ===== */
body.retail-v2 .hero3d{ position:relative; width:100%; aspect-ratio:5/4; cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none; outline-offset:3px; }
/* soft glow behind the model: no box, border or shadow; it feathers out to nothing so it melts into the hero background */
body.retail-v2 .hero3d::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 95% at 62% 38%, #FFFFFF 0%, var(--color-ice-blue) 52%, var(--color-pale-blue) 100%);
  -webkit-mask-image:radial-gradient(closest-side, #000 0%, rgba(0,0,0,.92) 38%, rgba(0,0,0,.55) 66%, rgba(0,0,0,.2) 86%, transparent 100%);
          mask-image:radial-gradient(closest-side, #000 0%, rgba(0,0,0,.92) 38%, rgba(0,0,0,.55) 66%, rgba(0,0,0,.2) 86%, transparent 100%); }
[data-theme="dark"] body.retail-v2 .hero3d::before{ background:radial-gradient(120% 95% at 62% 38%, #1B3A5E 0%, #10243C 52%, #0C1A2C 100%); }
body.retail-v2 .hero3d.is-drag{ cursor:grabbing; }
body.retail-v2 .hero3d canvas{ position:absolute; inset:0; width:100%; height:100%; display:block;
  -webkit-mask-image:radial-gradient(closest-side, #000 72%, transparent 100%); mask-image:radial-gradient(closest-side, #000 72%, transparent 100%); }
body.retail-v2 .hero3d-chip{ position:absolute; z-index:2; padding:7px 12px; border-radius:999px; font-size:12px; font-weight:600; letter-spacing:.01em; color:var(--color-navy);
  background:rgba(255,255,255,.74); border:1px solid rgba(255,255,255,.9); box-shadow:0 6px 20px rgba(6,23,44,.10); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); pointer-events:none; animation:hero3dFloat 6.5s ease-in-out infinite alternate; }
[data-theme="dark"] body.retail-v2 .hero3d-chip{ color:#E8F1FF; background:rgba(16,36,60,.66); border-color:rgba(130,170,215,.28); box-shadow:0 6px 20px rgba(0,0,0,.35); }
body.retail-v2 .hero3d-chip.c1{ top:9%; left:6%; animation-delay:-1s; }
body.retail-v2 .hero3d-chip.c2{ top:14%; right:6%; animation-delay:-3s; }
body.retail-v2 .hero3d-chip.c3{ bottom:11%; left:9%; animation-delay:-4.5s; }
body.retail-v2 .hero3d-hint{ position:absolute; z-index:2; right:14px; bottom:12px; font-size:12px; font-weight:600; color:var(--text-secondary); opacity:.85; transition:opacity .4s ease; pointer-events:none; display:flex; align-items:center; gap:6px; }
body.retail-v2 .hero3d.is-touched .hero3d-hint{ opacity:0; }
@keyframes hero3dFloat{ from{ transform:translateY(0); } to{ transform:translateY(-9px); } }
@media (prefers-reduced-motion: reduce){ body.retail-v2 .hero3d-chip{ animation:none; } }
@media (max-width:900px){
  body.retail-v2 .hero-art{ order:0; }
  body.retail-v2 .hero3d{ aspect-ratio:4/3; }
  body.retail-v2 .hero3d-chip{ font-size:11px; padding:6px 10px; }
}

/* ===== DARK MODE: blend white product photos into the page ===== */
[data-theme="dark"] body.retail-v2 .pc-img{ border-radius:22px; box-shadow:0 0 38px 6px rgba(175,203,234,.20), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .coa-card .pc-img{ border-radius:14px; box-shadow:0 0 22px 3px rgba(175,203,234,.18), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .pdp-main-img img{ border-radius:20px; box-shadow:0 0 44px 8px rgba(175,203,234,.20), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .cart-thumb img,
[data-theme="dark"] body.retail-v2 .dr-item img{ border-radius:10px; box-shadow:0 0 12px 1px rgba(175,203,234,.16); }

/* ===== SHOP BY RESEARCH FOCUS: tile artwork (light + dark) ===== */
body.retail-v2 .focus-img{ position:relative; overflow:hidden;
  --fi-line:#2F6DAE; --fi-n1:#FFFFFF; --fi-n2:#86B5E8; --fi-n3:#2F6DAE; --fi-glow:#9CC4F0; --fi-fill:rgba(255,255,255,.55);
  background:radial-gradient(120% 110% at 30% 18%, #FFFFFF 0%, var(--color-ice-blue) 55%, var(--color-pale-blue) 100%); }
[data-theme="dark"] body.retail-v2 .focus-img{
  --fi-line:#8FB8E8; --fi-n1:#E8F1FF; --fi-n2:#5E9AD6; --fi-n3:#2A5C94; --fi-glow:#3E78B8; --fi-fill:rgba(111,159,212,.10);
  background:radial-gradient(120% 110% at 30% 18%, #1B3A5E 0%, #10243C 55%, #0C1A2C 100%); }
body.retail-v2 .focus-art{ position:absolute; inset:0; width:100%; height:100%; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
body.retail-v2 .focus-tile:hover .focus-art{ transform:scale(1.045); }
@media (prefers-reduced-motion: reduce){ body.retail-v2 .focus-tile:hover .focus-art{ transform:none; } }

/* stat bar placed below page content (not under a hero): no overlap */
body.retail-v2 .trust-wrap.trust-wrap--flow{ margin-top:48px; margin-bottom:8px; }

/* ===== MOBILE / LAYOUT POLISH (full-site audit) ===== */
/* grid children may shrink: stops the sign-up card from pushing wider than a phone */
body.retail-v2 .auth-card, body.retail-v2 .auth-grid > *{ min-width:0; max-width:100%; }
body.retail-v2 .auth-card .ck-row > *{ min-width:0; }
body.retail-v2 .auth-card input, body.retail-v2 .auth-card select{ max-width:100%; }

@media (max-width:760px){
  /* top bar: two short lines, not four */
  body.retail-v2 .v2-utility-bar .ub-item:nth-child(2),
  body.retail-v2 .v2-utility-bar .ub-item:nth-child(3),
  body.retail-v2 .v2-utility-bar .ub-item:nth-child(5){ display:none; }
  body.retail-v2 .v2-utility-bar .container{ flex-wrap:nowrap; justify-content:center; gap:14px; }
  body.retail-v2 .v2-utility-bar .ub-item{ font-size:11px; white-space:nowrap; }
  body.retail-v2 .v2-utility-bar{ padding:7px 0; }

  /* comfortable thumb targets */
  body.retail-v2 .nav-signin{ display:inline-flex; align-items:center; min-height:44px; padding:0 4px; }
  body.retail-v2 .nav-cart{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  body.retail-v2 .nav-hamburger{ min-width:44px; min-height:44px; }
  body.retail-v2 .section-link{ display:inline-block; padding:12px 0; }
  body.retail-v2 .product-card .pc-wish{ top:6px; right:6px; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; font-size:20px; }
  body.retail-v2 .pc-sz-btn{ min-height:38px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
  body.retail-v2 .v2-breadcrumb a{ display:inline-block; padding:10px 2px; }
  body.retail-v2 .v2-breadcrumb{ gap:2px 6px; }
  body.retail-v2 .v2-footer .footer-col a{ padding:11px 0; }
  body.retail-v2 .footer-legal a{ display:inline-block; padding:10px 0; }
  body.retail-v2 details > summary{ padding-top:14px; padding-bottom:14px; }
  body.retail-v2 .qty-btn{ min-width:44px; min-height:44px; }
  body.retail-v2 .chip{ min-height:40px; display:inline-flex; align-items:center; }

  /* cart page: tidy two-row card, big remove button top-right */
  body.retail-v2 .cart-row{ grid-template-columns:64px minmax(0,1fr) 44px; grid-template-areas:"thumb info remove" "thumb price remove" "qty qty line"; column-gap:12px; row-gap:10px; align-items:center; }
  body.retail-v2 .cart-row .cart-thumb{ grid-area:thumb; align-self:start; }
  body.retail-v2 .cart-row .cart-info{ grid-area:info; align-self:end; min-width:0; }
  body.retail-v2 .cart-row .cart-price{ grid-area:price; justify-self:start; align-self:start; font-size:13px; color:var(--text-muted); }
  body.retail-v2 .cart-row .cart-qty{ grid-area:qty; grid-column:auto; justify-self:start; }
  body.retail-v2 .cart-row .cart-line{ grid-area:line; grid-column:auto; justify-self:end; font-size:17px; }
  body.retail-v2 .cart-row .cart-remove{ grid-area:remove; justify-self:end; align-self:start; width:44px; height:44px; font-size:26px; display:inline-flex; align-items:center; justify-content:center; }

  /* sticky add-to-cart bar: full width button, and room so it never hides the footer */
  body.retail-v2 .v2-sticky-bar .btn{ flex:1; }
  body.retail-v2 .v2-sticky-bar .sticky-price{ font-weight:700; font-size:18px; white-space:nowrap; }
  body.retail-v2:has(.v2-sticky-bar){ padding-bottom:84px; }
}

/* very small phones (360px and under): keep the header inside the screen */
@media (max-width:400px){
  body.retail-v2 .v2-nav .container{ padding-left:12px; padding-right:12px; }
  body.retail-v2 .v2-nav .nav-actions{ gap:2px; }
  body.retail-v2 .theme-toggle{ width:40px; height:40px; }
  body.retail-v2 .v2-nav .nav-join{ padding:8px 10px; font-size:12.5px; }
  body.retail-v2 .nav-signin{ font-size:12.5px; padding:0 2px; }
  body.retail-v2 .nav-cart{ min-width:40px; }
  body.retail-v2 .nav-hamburger{ min-width:40px; }
}

/* dropdown hover bridge: the panel sits 10px below the menu word; this invisible strip keeps the menu open while the mouse crosses it */
body.retail-v2 .v2-dropdown::before{ content:""; position:absolute; left:-14px; right:-14px; top:-22px; height:22px; }
body.retail-v2 .v2-dropdown{ transition:opacity 160ms ease 200ms, transform 160ms ease 200ms, visibility 0s linear 360ms; }
body.retail-v2 .nav-links .has-dropdown:hover .v2-dropdown,
body.retail-v2 .nav-links .has-dropdown:focus-within .v2-dropdown{ transition-delay:0s, 0s, 0s; }

/* feathered bands: no hard rectangle edges where a banner / tinted section meets the page */
body.retail-v2 .hero-bg{
  background:
    linear-gradient(to bottom, var(--bg-page) 0, rgba(0,0,0,0) 72px, rgba(0,0,0,0) calc(100% - 190px), var(--bg-page) 100%),
    var(--gradient-hero); }
body.retail-v2 .section-muted{
  background:linear-gradient(to bottom, rgba(0,0,0,0) 0, var(--bg-card-muted) 110px, var(--bg-card-muted) calc(100% - 110px), rgba(0,0,0,0) 100%); }

/* ---- centred product photos: wrapper clips, the photo is nudged by its own measured centre (--cx) ---- */
body.retail-v2 .pc-media{ display:block; position:relative; overflow:hidden; background:#fff; aspect-ratio:1/1; border-radius:14px; }
body.retail-v2 .pc-media > img, body.retail-v2 .cart-thumb img{ display:block; width:100%; height:100%; object-fit:contain; margin:0; transform:translateX(calc((.5 - var(--cx,.5)) * var(--z,1) * 100%)) scale(var(--z,1)); }
body.retail-v2 .product-card .pc-media{ margin:0 auto 14px; }
body.retail-v2 .product-card .pc-media .pc-img{ margin:0; aspect-ratio:auto; }
body.retail-v2 .coa-card .pc-media{ width:110px; height:110px; margin:0 auto 10px; border-radius:12px; }
body.retail-v2 .coa-card .pc-media .pc-img{ width:100%; height:100%; }
body.retail-v2 .pdp-main-img .pc-media{ width:100%; border-radius:16px; }
body.retail-v2 .pdp-main-img .pc-media img{ width:100%; height:100%; }
body.retail-v2 .cart-thumb{ width:64px; height:64px; overflow:hidden; background:#fff; border-radius:var(--radius-sm); flex:none; }
body.retail-v2 .cart-thumb img{ border-radius:0; box-shadow:none; background:#fff; }
[data-theme="dark"] body.retail-v2 .product-card .pc-media{ border-radius:22px; box-shadow:0 0 38px 6px rgba(175,203,234,.20), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .coa-card .pc-media{ border-radius:14px; box-shadow:0 0 22px 3px rgba(175,203,234,.18), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .pdp-main-img .pc-media{ border-radius:20px; box-shadow:0 0 44px 8px rgba(175,203,234,.20), 0 0 0 1px rgba(175,203,234,.10); }
[data-theme="dark"] body.retail-v2 .cart-thumb, [data-theme="dark"] #tpsDrawer .dr-item .pc-media{ border-radius:10px; box-shadow:0 0 12px 1px rgba(175,203,234,.16); }
img[src*="/img/p/5-amino-1mq-50mg.jpg"]{--cx:0.599;--z:1.1}
img[src*="/img/p/aod-9604-10mg.jpg"]{--cx:0.599;--z:1.1}
img[src*="/img/p/aod-9604-5mg.jpg"]{--cx:0.6;--z:1.1}
img[src*="/img/p/bpc-157-10mg.jpg"]{--cx:0.633;--z:1.1}
img[src*="/img/p/bpc-157-5mg.jpg"]{--cx:0.604;--z:1.1}
img[src*="/img/p/cjc-1295-ipamorelin-5mg-10mg.jpg"]{--cx:0.599;--z:1.1}
img[src*="/img/p/cjc-1295-no-dac-10mg.jpg"]{--cx:0.604;--z:1.1}
img[src*="/img/p/dsip-10mg.jpg"]{--cx:0.597;--z:1.1}
img[src*="/img/p/epithalon-10mg.jpg"]{--cx:0.604;--z:1.1}
img[src*="/img/p/follistatin-1mg.jpg"]{--cx:0.606;--z:1.1}
img[src*="/img/p/ghk-cu-copper-peptide-50mg.jpg"]{--cx:0.617;--z:1.1}
img[src*="/img/p/ghrp-2-5mg.jpg"]{--cx:0.581;--z:1.1}
img[src*="/img/p/ghrp-6-5mg.jpg"]{--cx:0.61;--z:1.1}
img[src*="/img/p/glow-blend-70mg.jpg"]{--cx:0.588;--z:1.1}
img[src*="/img/p/gonadorelin-2mg.jpg"]{--cx:0.599;--z:1.1}
img[src*="/img/p/hexarelin-5mg.jpg"]{--cx:0.591;--z:1.1}
img[src*="/img/p/hgh-fragment-176-191-5mg.jpg"]{--cx:0.61;--z:1.1}
img[src*="/img/p/igf-1-lr3-1mg.jpg"]{--cx:0.609;--z:1.1}
img[src*="/img/p/ipamorelin-5mg.jpg"]{--cx:0.608;--z:1.1}
img[src*="/img/p/kisspeptin-10mg.jpg"]{--cx:0.606;--z:1.1}
img[src*="/img/p/klow-blend-80mg.jpg"]{--cx:0.606;--z:1.1}
img[src*="/img/p/kpv-10mg.jpg"]{--cx:0.591;--z:1.1}
img[src*="/img/p/melanotan-2-10mg.jpg"]{--cx:0.626;--z:1.1}
img[src*="/img/p/mots-c-10mg.jpg"]{--cx:0.575;--z:1.1}
img[src*="/img/p/mots-c-40mg.jpg"]{--cx:0.589;--z:1.1}
img[src*="/img/p/oxytocin-10mg.jpg"]{--cx:0.612;--z:1.1}
img[src*="/img/p/peg-mgf-5mg.jpg"]{--cx:0.606;--z:1.1}
img[src*="/img/p/pt-141-10mg.jpg"]{--cx:0.608;--z:1.1}
img[src*="/img/p/selank-10mg.jpg"]{--cx:0.613;--z:1.1}
img[src*="/img/p/semax-10mg.jpg"]{--cx:0.589;--z:1.1}
img[src*="/img/p/sermorelin-5mg.jpg"]{--cx:0.604;--z:1.1}
img[src*="/img/p/slu-pp-332-10mg.jpg"]{--cx:0.592;--z:1.1}
img[src*="/img/p/slu-pp-332-5mg.jpg"]{--cx:0.62;--z:1.1}
img[src*="/img/p/ss-31-50mg.jpg"]{--cx:0.582;--z:1.1}
img[src*="/img/p/tb-500-10mg.jpg"]{--cx:0.624;--z:1.1}
img[src*="/img/p/tb-500-5mg.jpg"]{--cx:0.615;--z:1.1}
img[src*="/img/p/tesamorelin-10mg.jpg"]{--cx:0.588;--z:1.1}
img[src*="/img/p/tesamorelin-5mg.jpg"]{--cx:0.612;--z:1.1}
img[src*="/img/p/thymosin-alpha-1-10mg.jpg"]{--cx:0.614;--z:1.1}
img[src*="/img/p/vesugen-20mg.jpg"]{--cx:0.605;--z:1.1}
img[src*="/img/p/wolverine-blend-20mg-total.jpg"]{--cx:0.609;--z:1.1}

/* the old tile styling (glow / radius) now lives on the wrapper; keep the inner photo plain so nothing doubles up */
[data-theme="dark"] body.retail-v2 .pc-media > img, [data-theme="dark"] body.retail-v2 .pc-media .pc-img,
[data-theme="dark"] body.retail-v2 .cart-thumb img, [data-theme="dark"] #tpsDrawer .dr-item .pc-media img{ box-shadow:none; border-radius:0; }

/* ===== phone polish (<=600px): two-up product grid, compact cards, tidy hero / stat strip / tiles / footer ===== */
@media (max-width:600px){
  /* product grids go two across, like a proper storefront app */
  body.retail-v2 .grid:has(> .product-card){ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body.retail-v2 .product-card{ padding:10px 10px 12px; border-radius:16px; }
  body.retail-v2 .product-card .pc-media{ margin:0 auto 10px; border-radius:12px; }
  [data-theme="dark"] body.retail-v2 .product-card .pc-media{ border-radius:14px; box-shadow:0 0 22px 3px rgba(175,203,234,.18), 0 0 0 1px rgba(175,203,234,.10); }
  body.retail-v2 .product-card .pc-name{ font-size:14px; line-height:1.25; min-height:35px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  body.retail-v2 .product-card .pc-cat{ font-size:11px; line-height:1.3; min-height:28px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  body.retail-v2 .product-card .pc-sizes{ gap:5px; margin:8px 0 6px; }
  body.retail-v2 .product-card .pc-sz{ font-size:12px; padding:2px 8px; }
  body.retail-v2 .product-card .pc-sz-btn{ min-height:34px; padding:0 10px; font-size:12.5px; }
  body.retail-v2 .product-card .pc-coa{ font-size:11px; margin:4px 0 2px; }
  body.retail-v2 .product-card .pc-buy{ flex-direction:column; align-items:stretch; gap:8px; margin-top:6px; }
  body.retail-v2 .product-card .pc-pricing{ display:flex; align-items:baseline; justify-content:center; gap:6px; }
  body.retail-v2 .product-card .pc-price{ font-size:17px; margin-top:0; }
  body.retail-v2 .product-card .btn-product{ width:100%; height:44px; font-size:14px; padding:0 8px; }
  body.retail-v2 .product-card .pc-tag{ top:8px; left:8px; font-size:10px; padding:3px 8px; }
  body.retail-v2 .product-card .pc-wish{ top:2px; right:2px; }

  /* hero buttons side by side */
  body.retail-v2 .hero-cta{ gap:10px; margin-top:22px; }
  body.retail-v2 .hero-cta .btn{ flex:1 1 calc(50% - 5px); justify-content:center; text-align:center; padding:0 12px; font-size:14px; white-space:nowrap; }

  /* stat strip: tidy 2-up grid instead of a long list */
  body.retail-v2 .v2-trust-strip{ display:grid; grid-template-columns:1fr 1fr; gap:16px 14px; padding:18px 18px; }
  body.retail-v2 .v2-trust-strip .ts-item{ flex-direction:column; align-items:flex-start; gap:2px; min-width:0; }
  body.retail-v2 .v2-trust-strip .ts-num{ font-size:19px; line-height:1.15; }
  body.retail-v2 .v2-trust-strip .ts-label{ font-size:11.5px; line-height:1.3; }
  body.retail-v2 .v2-trust-strip .ts-item:nth-child(odd):last-child{ grid-column:1 / -1; }

  /* research-focus tiles two across */
  body.retail-v2 .grid.focus-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body.retail-v2 .focus-body{ padding:12px 12px 14px; }
  body.retail-v2 .focus-body h4{ font-size:15px; line-height:1.25; margin:0 0 4px; }
  body.retail-v2 .focus-body p{ font-size:12px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

  /* headings and section rhythm */
  body.retail-v2 .section-head{ margin-bottom:20px; gap:6px 12px; }
  body.retail-v2 .section-head h2{ font-size:clamp(26px,7vw,32px); }
  body.retail-v2 .section-link{ font-size:13.5px; }

  /* footer: brand on top, link columns two across */
  body.retail-v2 .v2-footer{ padding:44px 0 24px; }
  body.retail-v2 .v2-footer .footer-grid{ grid-template-columns:1fr 1fr; gap:26px 18px; }
  body.retail-v2 .v2-footer .footer-brand{ grid-column:1 / -1; }
  body.retail-v2 .v2-footer .footer-col a{ padding:8px 0; overflow-wrap:anywhere; }
  body.retail-v2 .v2-footer .footer-col a[href^="mailto:"]{ font-size:12.5px; }

  /* cookie notice: slim bar instead of a screen-filling card */
  body.retail-v2 .v2-cookie{ left:10px; right:10px; bottom:calc(10px + env(safe-area-inset-bottom)); padding:10px 12px; gap:8px; border-radius:14px; text-align:left; }
  body.retail-v2 .v2-cookie .small{ font-size:12.5px; line-height:1.4; }
  body.retail-v2 .v2-cookie-actions{ display:grid; grid-template-columns:1fr 1fr; gap:8px; width:100%; }
  body.retail-v2 .v2-cookie-actions .btn{ height:40px; font-size:13px; padding:0 8px; }
  /* header: breathing room */
  body.retail-v2 .nav-actions{ gap:6px; }
  body.retail-v2 .nav-actions .nav-join{ padding:0 12px; height:40px; font-size:13px; }
  body.retail-v2 .nav-actions .nav-signin{ font-size:14px; padding:0 4px; }
  body.retail-v2 .nav-actions .theme-toggle{ width:38px; height:38px; }
}
@media (max-width:380px){
  body.retail-v2 .product-card .pc-sz-btn{ padding:0 8px; }
  body.retail-v2 .product-card .btn-product{ font-size:13px; }
  body.retail-v2 .hero-cta .btn{ font-size:13px; padding:0 8px; }
}

body.retail-v2 .coa-card .pc-size-line{ font-size:12px; font-weight:600; color:var(--accent); margin-top:2px; }
