/* ====== Base & Vars ====================================================== */
:root{
  --bg: #ffffff;
  --fg: #131415;
  --muted: #6b7280;
  --border: #e5e7eb;
  --brand: #111827;         /* near-black, feels premium */
  --accent: #2563eb;        /* blue for links/buttons */
  --accent-2: #0ea5e9;      /* secondary hover shimmer */
  --card: #ffffff;
  --shadow: 0 1px 3px rgba(0,0,0,.08), 0 6px 24px rgba(0,0,0,.05);
  --btn-secondary-color: var(#fff);
  --btn-secondary-border: var(--border);
  --btn-secondary-hover-bg: color-mix(in srgb, var(--accent) 12%, transparent);

  --radius: 14px;
  --radius-sm: 10px;

  --cont: 1120px;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 3rem;
  --space-10: 4rem;

  --lh: 1.6;
}

body[data-storefront="grey"]{
  --btn-secondary-color: #f3f4f6;
  --btn-secondary-border: color-mix(in srgb, #f3f4f6 45%, var(--border));
  --btn-secondary-hover-bg: color-mix(in srgb, #f3f4f6 16%, transparent);
}

@media (prefers-color-scheme: dark){
  :root{
    --bg: #0b0c0d;
    --fg: #e7e9ea;
    --muted: #9aa0a6;
    --border: #1f2937;
    --brand: #e7e9ea;
    --accent: #60a5fa;
    --accent-2: #38bdf8;
    --card: #0f1113;
    --shadow: 0 1px 3px rgba(0,0,0,.6), 0 6px 24px rgba(0,0,0,.45);
  }
}

*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji",
               "Segoe UI Emoji";
  color:var(--fg);
  background:var(--bg);
  line-height:var(--lh);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.container{max-width:var(--cont); margin:0 auto; padding:0 var(--space-4)}
main.container{padding-top:var(--space-6); padding-bottom:var(--space-10)}

img{max-width:100%; height:auto; display:block}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
hr{border:0; border-top:1px solid var(--border); margin:var(--space-6) 0}

/* ====== Site Banner ===================================================== */
.site-banner{
  background:var(--accent);
  color:#fff;
}
.site-banner[hidden]{display:none !important}
.site-banner__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  padding-top:var(--space-2);
  padding-bottom:var(--space-2);
}
.site-banner__content{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:var(--space-3);
  width:100%;
}
.site-banner__text{
  font-weight:600;
  font-size:.95rem;
}
.site-banner__link{
  color:#fff;
  font-weight:600;
  text-decoration:underline;
}
.site-banner__link:hover{
  color:#fff;
  text-decoration:none;
}
@media (max-width:640px){
  .site-banner__inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .site-banner__content{
    justify-content:flex-start;
  }
}

/* ====== Canary =========================================================== */
.site-canary{
  margin-top:var(--space-6);
  padding-top:var(--space-4);
  border-top:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
  font-size:.9rem;
  color:color-mix(in srgb, var(--fg) 85%, var(--muted));
}
.site-canary__eyebrow{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:color-mix(in srgb, var(--accent) 80%, #fff);
  margin:0 0 var(--space-2);
}
.site-canary__statement{
  margin:0 0 .5rem;
  font-weight:500;
}
.site-canary__note{
  margin:0;
  color:color-mix(in srgb, var(--muted) 85%, var(--fg));
}

/* ====== Newsletter CTA ================================================== */
.newsletter-cta{
  margin-top:var(--space-10);
  padding:clamp(1.5rem,4vw,3rem);
  border-radius:var(--radius);
  border:1px solid color-mix(in srgb,var(--accent) 25%, var(--border));
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%, var(--card)) 0%, var(--card) 70%);
  box-shadow:var(--shadow);
}
.newsletter-cta--restock{
  margin-top:var(--space-6);
  padding:clamp(1rem,2.5vw,1.75rem);
  width:100%;
  max-width:var(--cont);
  margin-left:auto;
  margin-right:auto;
  box-shadow:none;
  border-style:dashed;
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 6%, var(--card)) 0%, var(--card) 80%);
}
.newsletter-cta[hidden]{display:none!important;}
.newsletter-cta__inner{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:var(--space-5);
  align-items:center;
}
.newsletter-cta--restock .newsletter-cta__inner{
  grid-template-columns:minmax(0,1fr);
  max-width:780px;
  margin:0 auto;
}
.newsletter-cta__copy h2{
  margin:0 0 .25rem;
  font-size:clamp(1.6rem,2vw + 1rem,2.3rem);
}
.newsletter-cta__copy p{
  margin:.25rem 0 0;
  color:color-mix(in srgb,var(--fg) 75%, var(--muted));
}
.newsletter-cta__eyebrow{
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.75rem;
  margin:0 0 .5rem;
  color:color-mix(in srgb,var(--accent) 80%, #fff);
}
.newsletter-cta__form{ margin:0; }
.newsletter-cta__input{
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
.newsletter-cta__input input{
  flex:1;
  min-width:0;
  border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb,var(--accent) 25%, var(--border));
  padding:.85rem 1rem;
  font-size:1rem;
  font-family:inherit;
  background:var(--card);
  color:var(--fg);
}
.newsletter-cta__input input:focus{
  outline:2px solid color-mix(in srgb,var(--accent) 60%, var(--accent-2));
  outline-offset:2px;
}
.newsletter-cta__input .btn{
  flex:0 0 auto;
  white-space:nowrap;
}
.newsletter-cta--restock .newsletter-cta__input{
  flex-direction:column;
  align-items:stretch;
  gap:var(--space-2);
}
.newsletter-cta--restock .newsletter-cta__input input{
  width:100%;
  padding:1rem 1.1rem;
  font-size:1.05rem;
}
.newsletter-cta--restock .newsletter-cta__input .btn{
  width:100%;
}
.newsletter-cta__message{
  margin:.5rem 0 0;
  font-size:.95rem;
}
.newsletter-cta__error{
  color:#b91c1c;
}
.newsletter-cta__success{
  color:color-mix(in srgb,var(--accent) 75%, var(--fg));
  font-weight:600;
}
.newsletter-cta__message[hidden]{display:none!important;}
.newsletter-cta--success .newsletter-cta__success{
  display:block;
}
.newsletter-cta--restock.newsletter-cta--active{
  animation:newsletter-pop .6s ease;
}
@keyframes newsletter-pop{
  0%{transform:translateY(30px); opacity:0;}
  100%{transform:translateY(0); opacity:1;}
}
@media (max-width:640px){
  .newsletter-cta__inner{
    grid-template-columns:1fr;
  }
  .newsletter-cta__input{
    flex-direction:column;
    align-items:stretch;
  }
  .newsletter-cta__input .btn{
    width:100%;
  }
}

/* ====== Deals & Combos ============================================ */
.deals-hero{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--space-6);
  padding:clamp(2rem,5vw + 1rem,4rem) 0;
  border-bottom:1px solid var(--border);
  position:relative;
  overflow:hidden;
}
.snow-overlay{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:5;
}
.snowflake{
  position:absolute;
  color:rgba(255,255,255,.8);
  font-size:1rem;
  animation:snowfall 12s linear infinite;
  top:-5vh;
}
.snowflake:nth-child(odd){font-size:1.2rem; animation-duration:14s;}
.snowflake:nth-child(even){font-size:.8rem; animation-duration:10s;}
.snowflake:nth-child(1){left:10%; animation-delay:0s;}
.snowflake:nth-child(2){left:25%; animation-delay:1s;}
.snowflake:nth-child(3){left:40%; animation-delay:2s;}
.snowflake:nth-child(4){left:55%; animation-delay:3s;}
.snowflake:nth-child(5){left:70%; animation-delay:4s;}
.snowflake:nth-child(6){left:85%; animation-delay:5s;}
.snowflake:nth-child(7){left:15%; animation-delay:6s;}
.snowflake:nth-child(8){left:30%; animation-delay:7s;}
.snowflake:nth-child(9){left:50%; animation-delay:8s;}
.snowflake:nth-child(10){left:65%; animation-delay:9s;}
.snowflake:nth-child(11){left:80%; animation-delay:10s;}
.snowflake:nth-child(12){left:5%; animation-delay:11s;}
@keyframes snowfall{
  0%{transform:translate(-5vw,-10vh);}
  100%{transform:translate(5vw,110vh);}
}
.deals-hero__copy h1{
  margin:0 0 var(--space-3);
  font-size:clamp(2rem,3vw + 1rem,3.4rem);
}
.deals-hero__copy .lead{
  font-size:1.1rem;
  color:var(--muted);
}
.deals-hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
  margin-top:var(--space-4);
}
.deals-hero__highlight{
  padding:var(--space-4);
  border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--border));
  border-radius:var(--radius);
  background:color-mix(in srgb,var(--accent) 6%,var(--card));
  font-weight:600;
}
.deals-hero__image img{
  width:100%;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  display:block;
}
.deals-content{
  display:grid;
  gap:var(--space-6);
  padding:var(--space-6) 0 var(--space-8);
}
.deals-combos{
  display:grid;
  gap:var(--space-4);
}
.deals-combos__head{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.deals-combos__head h2{
  margin:0;
  font-size:clamp(1.8rem,2vw + 1rem,2.6rem);
}
.deals-combos__intro{
  color:var(--muted);
  max-width:70ch;
}
.combo-filter{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-3);
  padding:var(--space-2) 0;
}
.combo-filter span{
  font-weight:600;
}
.combo-filter--secondary{
  border-top:1px solid var(--border);
  padding-top:var(--space-3);
  margin-top:-.5rem;
}
.combo-grid{
  display:grid;
  gap:var(--space-4);
}
@media (min-width: 768px){
  .combo-grid{
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  }
}
.combo-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  background:var(--card);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.combo-card[hidden]{display:none;}
.combo-card__media{
  padding:var(--space-3);
  background:color-mix(in srgb,var(--accent) 8%,var(--card));
}
.combo-card__media img{
  width:100%;
  border-radius:var(--radius-sm);
  display:block;
}
.combo-card__body{
  padding:var(--space-4);
  display:grid;
  gap:var(--space-3);
  position:relative;
}
.combo-card__deal{
  position:absolute;
  top:var(--space-2);
  right:var(--space-2);
  background:#b91c1c;
  color:#fff;
  padding:.2rem .7rem;
  border-radius:999px;
  font-size:.85rem;
  font-weight:600;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.combo-card__labels{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  font-size:.9rem;
  color:var(--muted);
}
.combo-card__badge{
  display:inline-flex;
  align-items:center;
  padding:.1rem .6rem;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.75rem;
  color:var(--accent);
}
.combo-card__tagline{
  font-weight:600;
}
.combo-card__lead{
  margin:0;
  color:var(--muted);
}
.combo-card__features{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.4rem;
}
.combo-card__features li::before{
  content:"•";
  margin-right:.4rem;
  color:var(--accent);
}
.combo-card__price{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  flex-wrap:wrap;
}
.combo-card__price-label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  color:color-mix(in srgb,var(--accent) 70%, var(--muted));
}
.combo-card__price strong{
  font-size:2rem;
  font-weight:700;
  color:#fff;
  background:#111827;
  padding:.2rem .7rem;
  border-radius:var(--radius-sm);
}
.combo-card__marked{
  font-size:1.2rem;
  color:#b91c1c;
  text-decoration:line-through;
  font-weight:600;
}
.combo-card__price small{
  color:var(--muted);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.combo-card__price small.has-deal{
  color:#b91c1c;
}
.combo-card__includes ul{
  list-style:none;
  margin:.5rem 0 0;
  padding:0;
  display:grid;
  gap:.2rem;
}
.combo-card__includes li{
  display:flex;
  align-items:center;
  gap:.6rem;
  }
.combo-card__include-link{
  display:flex;
  align-items:center;
  gap:.6rem;
  text-decoration:none;
  color:inherit;
}
.combo-card__includes img{
  width:64px;
  height:64px;
  object-fit:cover;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
}
.combo-card__include-copy{
  display:flex;
  flex-direction:column;
  gap:.1rem;
}
.combo-card__includes p{
  margin:0;
  font-weight:600;
}
.combo-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
}
.combo-card__link{
  font-weight:600;
  color:var(--accent);
}
.deals-catalog-cta{
  text-align:center;
  margin:var(--space-4) 0;
}
.bundle-button-group{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}
.bundle-button__status{
  font-size:.85rem;
  color:var(--muted);
}
.bundle-control{
  display:grid;
  gap:.35rem;
  align-items:center;
  grid-template-columns:auto auto;
}
.bundle-control[data-bundle-state="empty"]{
  grid-template-columns:1fr;
}
.bundle-control__inputs{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:1px solid var(--border);
  border-radius:999px;
  overflow:hidden;
  background:var(--card);
  width:100%;
  min-height:48px;
  padding:0 .4rem;
  gap:.35rem;
}
.bundle-control[data-bundle-state="empty"] .bundle-control__inputs{
  background:var(--accent);
  border-color:var(--accent);
  padding:0;
  justify-content:center;
  gap:0;
}
.bundle-control__btn{
  border:0;
  background:var(--card);
  color:var(--fg);
  font-size:1.1rem;
  width:2.4rem;
  height:2.4rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.bundle-control__btn[hidden]{
  display:none;
}
.bundle-control__btn:disabled{
  opacity:.4;
  cursor:not-allowed;
}
.bundle-control[data-bundle-state="empty"] [data-bundle-plus]{
  flex:1;
  width:auto;
  font-weight:600;
  background:transparent;
  color:#fff;
}
.bundle-control__count{
  min-width:2.25rem;
  text-align:center;
  font-weight:700;
}
.bundle-control[data-bundle-state="empty"] .bundle-control__count{
  display:none;
}
.bundle-control__checkout{
  justify-self:end;
}
.bundle-control__checkout[hidden]{
  display:none;
}
.bundle-control__status{
  grid-column:1 / -1;
  font-size:.85rem;
  color:var(--muted);
  margin-top:.35rem;
}
.bundle-control--compact{
  max-width:420px;
  width:100%;
  justify-self:flex-start;
}
.bundle-control--compact .bundle-control__inputs{
  min-height:58px;
  padding:0 .6rem;
}
.bundle-control--compact .bundle-control__btn{
  width:2.85rem;
  height:2.85rem;
  font-size:1.3rem;
}
.bundle-control--compact .bundle-control__count{
  font-size:1.1rem;
}
.product-add-control{
  max-width:430px;
  width:100%;
}
.combo-empty{
  text-align:center;
  color:var(--muted);
  margin:var(--space-4) 0 0;
}
.deals-faq{
  border-top:1px solid var(--border);
  padding-top:var(--space-4);
}
.deals-faq__head p{
  margin:0 0 var(--space-2);
}
.deals-faq__list{
  display:grid;
  gap:var(--space-2);
}
.deals-faq details{
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:var(--space-2) var(--space-3);
  background:var(--card);
}
.deals-faq summary{
  cursor:pointer;
  font-weight:600;
}
.deals-faq__answer{
  margin-top:.75rem;
  color:var(--muted);
}

/* ====== Header =========================================================== */
.site-header{
  position:sticky; top:0; z-index:10;
  background:rgba(255,255,255,.7);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--border);
  transition:transform .25s ease, background .2s ease;
  will-change:transform;
}
.site-header.header-hidden{
  transform:translateY(-105%);
}
@media (prefers-color-scheme: dark){
  .site-header{background:rgba(11,12,13,.6)}
}
.site-header .brand{
  display:flex; align-items:center; gap:.6rem; padding:var(--space-3) 0;
  color:var(--brand); font-weight:700; letter-spacing:.2px;
  font-size:1.1rem;
}
.site-header nav{
  margin-left:auto; display:flex; gap:1rem; align-items:center;
}
.site-header .container{
  display:flex; align-items:center; gap:1rem;
}
img.brand-logo{
  max-height:72px;
  width:auto;
  display:block;
}
.brand-logo--circle{
  width:72px;
  height:72px;
  border-radius:50%;
  object-fit:cover;
}
@media (max-width: 640px){
  .site-header{
    padding:.85rem 0 1rem;
    border-width:1px 0;
  }
  .site-header .container{
    flex-direction:column;
    align-items:stretch;
    gap:.65rem;
  }
  .site-header .brand{
    width:100%;
    padding:0;
    justify-content:center;
    font-size:1.3rem;
    text-align:center;
  }
  .primary-nav{
    width:100%;
  }
  .nav-list{
    width:100%;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
    gap:.5rem;
    justify-content:stretch;
  }
  .primary-nav li{
    width:100%;
  }
  .primary-nav a{
    display:block;
    width:100%;
    text-align:center;
    padding:.9rem .75rem;
    font-size:1rem;
    border-radius:14px;
    border:1px solid color-mix(in srgb, var(--border) 80%, transparent);
    background:color-mix(in srgb, var(--accent) 8%, var(--card));
    box-shadow:0 4px 12px rgba(0,0,0,.08);
  }
  .primary-nav a[href*="/cart"]{
    grid-column:1 / -1;
    font-weight:650;
    background:color-mix(in srgb, var(--accent) 22%, transparent);
    border-color:color-mix(in srgb, var(--accent) 40%, var(--border));
  }
  .nav-list li:not(:last-child)::after{
    display:none;
    content:none;
  }
}

/* ====== Footer =========================================================== */
.site-footer{
  border-top:1px solid var(--border);
  padding: var(--space-6) 0;
  color:var(--muted);
  font-size:.95rem;
}
.site-footer a{color:inherit}
.site-footer a:hover{color:var(--fg); text-decoration:underline}

/* ====== Hero (home) ====================================================== */
.hero{
  padding: var(--space-10) 0 var(--space-8);
  display:grid; gap: var(--space-4);
}
.hero h1{
  margin:0;
  font-size: clamp(1.8rem, 2.8vw + 1rem, 3rem);
  letter-spacing:.2px;
}
.hero p{max-width:65ch; color:var(--muted); margin:0}
.holiday-promo{
  display:grid;
  gap:var(--space-4);
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  align-items:center;
  padding:var(--space-6);
  margin:var(--space-6) 0;
  background:var(--card);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.holiday-promo__copy h2{
  margin:.2rem 0 var(--space-2);
  font-size:clamp(1.75rem,3vw,2.6rem);
}
.holiday-promo__copy p{
  color:var(--muted);
}
.holiday-promo__media img{
  display:block;
  width:100%;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
}
.btn{
  display:inline-block; padding:.7rem 1rem; border-radius:999px;
  background:var(--accent); color:#fff; font-weight:600;
  border:1px solid transparent; box-shadow:var(--shadow);
}
.btn:hover,
.btn:focus{
  background:var(--accent-2);
  color:#fff;
  text-decoration:none;
}

/* ====== Cards & Product Grid ============================================ */
.grid{
  list-style:none; margin:0; padding:0;
  display:grid; gap: var(--space-5);
  grid-template-columns: repeat( auto-fit, minmax(240px, 1fr) );
}
.product-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition: transform .08s ease, box-shadow .2s ease;
}
.product-card:hover{ transform: translateY(-2px) }
.product-card > a{ display:block; color:inherit; text-decoration:none; padding:var(--space-4) }
.product-card img{ border-radius: var(--radius-sm); margin-bottom: var(--space-4) }
.product-card h2{ margin:.2rem 0 .25rem; font-size:1.05rem }
.product-card p{ margin:0 0 .4rem; color:var(--muted) }
.product-card strong{ font-weight:700 }
.product-card .thumb{ position:relative; }
.product-card .thumb img{ display:block; width:100%; height:auto; }
.product-card.is-soldout{ opacity:.75; }
.product-card .badge-soldout{
  position:absolute; top:.5rem; left:.5rem;
  background:#111; color:#fff; padding:.25rem .5rem;
  border-radius:6px; font-size:.85rem; font-weight:700;
  letter-spacing:.02em;
}
.product-card [aria-disabled="true"]{ pointer-events:none; opacity:.6; }
.product-card--embed{
  display:flex;
  flex-direction:column;
  height:100%;
}
.product-card--embed .product-card__link{
  display:block;
  padding:var(--space-4);
  color:inherit;
  text-decoration:none;
}
.product-card--embed .product-card__link:hover{
  text-decoration:none;
}
.product-card--embed .product-card__actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:var(--space-3);
  padding:var(--space-4);
  border-top:1px solid var(--border);
  margin-top:auto;
}
.product-card--embed .product-card__price{
  font-weight:700;
  font-size:1rem;
}
.product-card--embed .product-card__cta{
  width:100%;
  text-align:center;
}
.product-card--embed .product-card__details{
  display:block;
  padding:0 var(--space-4) var(--space-4);
  font-weight:600;
  color:var(--accent);
}
.product-card--embed .product-card__details:hover{
  text-decoration:underline;
}
.product-card--embed .product-card__coming-soon{
  font-weight:600;
  color:var(--muted);
}
.product-card--embed .product-card__rating{
  margin:.4rem 0 .6rem;
  font-size:.95rem;
}
.product-card--embed .product-rating__stars{
  font-size:1rem;
}
.product-card--embed .product-rating__stars[data-review-stars-state="empty"],
.product-card--embed .product-rating__stars[data-review-stars-state="error"]{
  color:var(--muted);
  font-weight:600;
  letter-spacing:0;
}
.product-card--embed .product-rating__text{
  display:none;
}

.guides-hero{
  padding:var(--space-8) 0;
}
.guides-hero__wrap{
  display:flex;
  gap:var(--space-6);
  align-items:center;
  flex-wrap:wrap;
  padding:var(--space-6);
  border-radius:calc(var(--radius) + 4px);
  background:color-mix(in srgb, var(--card) 85%, var(--accent) 15%);
  border:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));
  box-shadow:var(--shadow);
}
.guides-hero__copy{
  flex:1 1 320px;
  max-width:520px;
}
.guides-hero__copy .eyebrow{
  text-transform:uppercase;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--muted);
  margin:0 0 var(--space-2);
}
.guides-hero__copy h1{
  margin:0 0 var(--space-3);
  font-size:clamp(2rem, 2vw + 1.5rem, 3rem);
}
.guides-hero__copy .lead{
  font-size:1.05rem;
  color:var(--muted);
  margin:0 0 var(--space-4);
}
.guides-hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
}
.guides-hero__gallery{
  flex:1 1 260px;
  display:grid;
  gap:var(--space-3);
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
}
.guides-hero__gallery img{
  width:100%;
  border-radius:var(--radius);
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  object-fit:cover;
  aspect-ratio:3/2;
  border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);
}

.guides-overview{
  padding:var(--space-6) 0;
}
.guides-overview__grid{
  display:grid;
  gap:var(--space-4);
  grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
}
.guides-overview__card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:var(--space-4);
  background:var(--card);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  transition:transform .1s ease, box-shadow .2s ease;
}
.guides-overview__card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(15,23,42,.12);
}
.guides-overview__card .emoji{
  font-size:1.75rem;
}
.guides-overview__card h2{
  margin:0;
  font-size:1.2rem;
}
.guides-overview__card p{
  margin:0;
  color:var(--muted);
}
.guides-overview__count{
  display:block;
  font-size:.85rem;
  font-weight:600;
  color:var(--muted);
}
.guides-overview__card .guide-link{
  font-weight:600;
  color:var(--accent);
}
.guides-overview__card .guide-link.disabled{
  color:var(--muted);
  cursor:default;
}
.guides-overview__card.is-empty{
  opacity:.6;
}

.guides-carousel-section{
  padding:var(--space-4) 0 var(--space-6);
}
.guides-carousel__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--space-4);
  margin-bottom:var(--space-3);
}
.guides-carousel__header > div:first-child{
  max-width: min(520px, 70%);
}
.guides-carousel__header h2{
  margin:.25rem 0 0;
  font-size:1.8rem;
}
.guides-carousel__header p{
  margin:0;
  color:var(--muted);
}
.guides-carousel__controls{
  display:flex;
  gap:.75rem;
  align-items:center;
}
.guides-carousel__counter{
  font-size:.85rem;
  font-weight:600;
  color:var(--muted);
}
.carousel-button{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  background:var(--card);
  color:var(--accent);
  font-size:1.2rem;
  cursor:pointer;
}
.carousel-button:hover{
  background:color-mix(in srgb, var(--accent) 12%, var(--card));
}
.carousel-button:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 80%, #ffffff);
  outline-offset:2px;
}
.guides-carousel{
  position:relative;
  overflow:hidden;
  border-radius:calc(var(--radius) + 6px);
  background:linear-gradient(135deg, color-mix(in srgb, var(--card) 92%, var(--accent) 8%), color-mix(in srgb, var(--card) 96%, var(--accent) 4%));
  padding:var(--space-2);
  touch-action:pan-y;
}
.guides-carousel__track{
  display:flex;
  width:100%;
  transform:translateX(0);
  will-change:transform;
  gap:var(--space-3);
}
.guides-carousel__track:focus{
  outline:2px solid color-mix(in srgb, var(--accent) 60%, #ffffff);
  outline-offset:4px;
}
.guides-carousel__track.is-static{
  display:grid;
  grid-auto-flow:row;
  gap:var(--space-3);
  transform:none;
}
.guides-carousel__track.is-static .guides-carousel__item{
  flex:initial;
}
.guides-carousel__item{
  flex:0 0 100%;
  max-width:100%;
  border-radius:calc(var(--radius) + 4px);
  border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
  background:var(--card);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.guides-carousel__link{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
  border-radius:calc(var(--radius) + 2px);
  overflow:hidden;
}
.guides-carousel__link img,
.guides-carousel__placeholder{
  width:100%;
  height:220px;
  object-fit:cover;
}
.guides-carousel__placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  background:color-mix(in srgb, var(--accent) 18%, var(--card));
  color:var(--fg);
  font-weight:600;
}
.guides-carousel__body{
  padding:var(--space-4);
  display:flex;
  flex-direction:column;
  gap:.65rem;
  flex:1 1 auto;
}
.guides-carousel__badge{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
  font-weight:600;
}
.guides-carousel__cta{
  font-weight:600;
  color:var(--accent);
}

.review-add{
  padding:var(--space-6) 0 var(--space-8);
}
.review-add__wrap{
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}
.review-add__header h1{
  margin:0 0 var(--space-3);
  font-size:clamp(1.8rem, 1.5vw + 1.2rem, 2.4rem);
}
.review-add__header p{
  margin:0 0 var(--space-2);
  max-width:620px;
}
.review-add__card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--card);
  box-shadow:var(--shadow);
  padding:var(--space-4);
}
.review-add__card--compact{
  padding:var(--space-3);
}
.review-add__card-header{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-bottom:var(--space-2);
}
.review-add__card-header h2{
  margin:0;
}
.review-add__card h2{
  margin:0 0 var(--space-3);
  font-size:1.4rem;
}
.review-add__form{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  max-width:520px;
}
.review-add__form label{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  font-weight:600;
}
.review-add__form input,
.review-add__form select,
.review-add__form textarea{
  font:inherit;
  padding:.65rem .75rem;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--fg);
}
.review-add__form textarea{ resize:vertical; }
.review-add__actions{
  display:flex;
  gap:var(--space-3);
  align-items:center;
  flex-wrap:wrap;
}
.review-add__results{
  margin-top:var(--space-3);
}
.review-add__results--dense .review-add__purchases{
  gap:.5rem;
}
.review-add__results--dense .review-add__purchases li{
  padding:.6rem .75rem;
}
.review-add__purchases{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.review-add__purchases li{
  padding:.75rem;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--card) 85%, var(--bg) 15%);
  display:flex;
  flex-direction:column;
  gap:.25rem;
}
.review-add__message{
  margin:0;
}
.review-add__message[data-state="error"]{ color:#dc2626; }
.review-add__message[data-state="success"]{ color:#16a34a; }
.review-add__message[data-state="loading"]{ color:var(--muted); }
.review-add__email{
  margin:0;
  font-size:.95rem;
}
.review-add__rating{
  border:0;
  margin:var(--space-3) 0 var(--space-2);
  padding:var(--space-3);
  background:color-mix(in srgb, var(--accent) 8%, transparent);
  border-radius:var(--radius-sm);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
}
.review-add__rating legend{
  padding:0;
  margin:0;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.9rem;
  color:color-mix(in srgb, var(--fg) 75%, var(--muted) 25%);
}
.review-add__rating .rating-options{
  display:flex;
  flex-direction:row-reverse;
  gap:.35rem;
  align-items:center;
  justify-content:center;
}
.review-add__rating input[type="radio"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.review-add__rating .rating-star{
  font-size:clamp(1.45rem, 2vw + 1rem, 1.9rem);
  line-height:1;
  color:color-mix(in srgb, var(--muted) 80%, var(--border) 20%);
  cursor:pointer;
  transition:color .15s ease, transform .15s ease;
  display:inline-flex;
  user-select:none;
}
.review-add__rating .rating-star:hover,
.review-add__rating .rating-star:hover ~ .rating-star{
  color:#f59e0b;
}
.review-add__rating input[type="radio"]:checked + .rating-star,
.review-add__rating input[type="radio"]:checked + .rating-star ~ .rating-star{
  color:#f59e0b;
}
.review-add__rating input[type="radio"]:focus-visible + .rating-star{
  outline:2px solid color-mix(in srgb, #f59e0b 45%, transparent);
  outline-offset:4px;
}
.review-add__rating .rating-star:active{
  transform:scale(.92);
}
.review-add__dashboard{
  display:grid;
  gap:var(--space-3);
  margin-bottom:var(--space-3);
}

@media (max-width: 640px){
  .review-add{
    padding:var(--space-4) 0 var(--space-6);
  }
  .review-add__card{
    padding:var(--space-3);
  }
  .review-add__card--compact{
    padding:var(--space-3);
  }
  .review-add__form{
    gap:var(--space-2);
  }
  .review-add__rating{
    padding:var(--space-2) var(--space-3);
  }
}

.review-manage__card{
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:var(--space-3);
  background:color-mix(in srgb, var(--card) 90%, var(--bg) 10%);
  box-shadow:var(--shadow);
}
.review-manage__card header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--space-3);
  margin-bottom:.35rem;
}
.review-manage__rating{
  font-size:1.1rem;
  color:#f59e0b;
  letter-spacing:.08em;
  margin-bottom:.25rem;
}
.review-manage__actions{
  display:flex;
  gap:var(--space-2);
  flex-wrap:wrap;
  margin-top:var(--space-2);
}

.age-gate-overlay{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.88);
  backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--space-4);
  z-index:9999;
}
.age-gate-overlay[hidden]{ display:none !important; }
.age-gate{
  max-width:420px;
  width:100%;
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:0 20px 45px rgba(0,0,0,.2);
  padding:var(--space-5);
  text-align:center;
}
.age-gate h2{
  margin:0 0 var(--space-3);
  font-size:1.8rem;
}
.age-gate p{
  margin:0 0 var(--space-4);
  color:var(--muted);
}
.age-gate__actions{
  display:flex;
  gap:var(--space-3);
  justify-content:center;
  flex-wrap:wrap;
}
.age-gate-active{
  overflow:hidden;
}
.review-add__form [data-state="error"]{ color:#dc2626; }
.review-add__form [data-state="success"]{ color:#16a34a; }
.review-add__form [data-state="loading"]{ color:var(--muted); }

.thanks-order-summary{
  margin:var(--space-6) auto;
  padding:var(--space-4);
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--card);
  box-shadow:var(--shadow);
  max-width:620px;
}
.thanks-order-summary.is-loading{
  opacity:.75;
}
.thanks-order-summary h2{
  margin-top:0;
  font-size:1.5rem;
}
.order-summary__meta{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
  font-size:.95rem;
  color:var(--muted);
}
.order-summary__items{
  list-style:none;
  margin:var(--space-3) 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.order-summary__item{
  display:flex;
  justify-content:space-between;
  gap:var(--space-3);
  border-bottom:1px solid var(--border);
  padding-bottom:.5rem;
}
.order-summary__item:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.order-summary__item strong{
  font-weight:600;
}
.order-summary__totals{
  margin-top:var(--space-3);
  border-top:1px solid var(--border);
  padding-top:var(--space-3);
  display:flex;
  flex-direction:column;
  gap:.35rem;
}
.order-summary__totals span{
  display:flex;
  justify-content:space-between;
  font-weight:600;
}

.guide-section{
  padding:var(--space-6) 0 var(--space-8);
}
.guide-section__header{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-4);
  margin-bottom:var(--space-4);
}
.guide-section__title{
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
.guide-section__icon{
  font-size:1.75rem;
}
.guide-section__header h2{
  margin:0;
  font-size:1.75rem;
}
.guide-section__header p{
  margin:0;
  max-width:420px;
  color:var(--muted);
}
.guide-grid{
  display:grid;
  gap:var(--space-4);
  grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
}
.guide-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:var(--space-4);
  background:var(--card);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  transition:transform .1s ease, box-shadow .2s ease;
}
.guide-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(15,23,42,.12);
}
.guide-card__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-2);
  font-size:.8rem;
  font-weight:600;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.12em;
}
.guide-card h3{
  margin:0;
}
.guide-card h3 a{
  text-decoration:none;
  color:inherit;
}
.guide-card p{
  margin:0;
  color:var(--muted);
}
.guide-card__cta{
  margin-top:auto;
  font-weight:600;
  color:var(--accent);
}
.guide-card__takeaways{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  font-size:.9rem;
  color:var(--fg);
}
.guide-card__takeaways li::before{
  content:"•";
  color:var(--accent);
  margin-right:.4rem;
}
.guide-card__time{
  font-weight:500;
  color:var(--muted);
  text-transform:none;
  letter-spacing:0;
}

.guides-cta{
  padding:var(--space-6) 0 var(--space-8);
}
.guides-cta__wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--space-4);
  padding:var(--space-5);
  border-radius:calc(var(--radius) + 4px);
  background:color-mix(in srgb, var(--card) 90%, var(--accent) 10%);
  border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
  box-shadow:var(--shadow);
}
.guides-cta h2{
  margin:0 0 .4rem;
  font-size:1.8rem;
}
.guides-cta p{
  margin:0;
  color:var(--muted);
  max-width:520px;
}
.guides-cta__actions{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
}

@media (max-width: 720px){
  .guides-hero__gallery{
    order:-1;
  }
  .guides-hero__cta{
    width:100%;
  }
  .guides-cta__wrap{
    flex-direction:column;
    align-items:flex-start;
  }
  .guides-carousel__link img,
  .guides-carousel__placeholder{
    height:190px;
  }
}

@media (min-width: 720px) and (max-width: 959px){
  .guides-carousel__item{
    flex:0 0 calc((100% - var(--space-3)) / 2);
    max-width:calc((100% - var(--space-3)) / 2);
  }
  .guides-carousel__link img,
  .guides-carousel__placeholder{
    height:220px;
  }
}

@media (min-width: 960px){
  .guides-carousel__item{
    flex:0 0 calc((100% - var(--space-3)*2) / 3);
    max-width:calc((100% - var(--space-3)*2) / 3);
  }
  .guides-carousel__link img,
  .guides-carousel__placeholder{
    height:260px;
  }
}

/* ====== Product Page ===================================================== */
.product h1{ margin-top:0; font-size: clamp(1.6rem, 1.6vw + 1rem, 2.4rem) }
.product .gallery{
  display:grid; gap: var(--space-4);
  grid-template-columns: repeat( auto-fit, minmax(220px, 1fr) );
  margin: var(--space-5) 0;
}
.product .sku{ color:var(--muted); font-size:.95rem }
.product .price{ font-size:1.25rem; font-weight:700; margin:.75rem 0 1.25rem }
.price--has-marked{
  display:inline-flex;
  align-items:baseline;
  gap:.45rem;
}
.price__marked{
  color:var(--muted);
  text-decoration:line-through;
  font-weight:500;
  font-size:.95em;
}
.price__current{
  color:inherit;
  font-weight:700;
}
.product-rating{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin:-.25rem 0 1.25rem;
  font-weight:600;
  font-size:1rem;
}
.product-rating__stars{
  color:#f59e0b;
  font-size:1.2rem;
  letter-spacing:.08em;
}
.product-rating.is-empty .product-rating__stars{
  color:var(--border);
}
.product-rating__text{
  color:var(--accent);
  font-weight:600;
  font-size:.98rem;
}
.product-rating__text:hover{
  text-decoration:underline;
}
.build-complete{
  margin:var(--space-8) 0;
  padding:var(--space-5);
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--card);
  box-shadow:var(--shadow);
}
.build-complete[hidden]{ display:none; }
.build-complete__grid{
  list-style:none;
  margin:var(--space-4) 0 0;
  padding:0;
  display:grid;
  gap:var(--space-4);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.build-complete__card{
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--bg);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.build-complete__media{
  display:block;
}
.build-complete__media{
  display:block;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--border);
  background:var(--card);
}
.build-complete__media img{
  display:block;
  width:100%;
  height:auto;
  max-height:220px;
  object-fit:contain;
  padding:var(--space-2);
}
.build-complete__body{
  padding:var(--space-4);
  display:flex;
  flex-direction:column;
  gap:.65rem;
}
.build-complete__body h3{
  margin:0;
  font-size:1.1rem;
  color:var(--fg);
}
.build-complete__body p{
  margin:0;
  color:var(--muted);
  font-size:.95rem;
}
.build-complete__price{
  display:flex;
  align-items:center;
  gap:.75rem;
  font-size:1.05rem;
}
.build-complete__price strong{
  font-size:1.25rem;
}
.build-complete__price-old{
  text-decoration:line-through;
  color:var(--muted);
  font-size:1rem;
}
.build-complete__actions{
  margin-top:var(--space-3);
}
.build-complete__actions .bundle-control{
  width:100%;
  max-width:320px;
}
.build-complete__footer{
  margin-top:var(--space-4);
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
}
.build-complete:not(.is-visible) .build-complete__footer{
  display:none;
}

/* ====== Markdown / Policies ============================================= */
article, .prose { max-width: 75ch; }
article h1, .prose h1 { font-size:1.75rem; margin:1.2em 0 .4em }
article h2, .prose h2 { font-size:1.35rem; margin:1.2em 0 .4em }
article h3, .prose h3 { font-size:1.15rem; margin:1em 0 .4em }
article p, .prose p   { margin:.7em 0 }
article ul, article ol { padding-left:1.25rem; margin:.6em 0 }
article li + li { margin-top:.25em }
article blockquote{
  margin:1rem 0; padding:.75rem 1rem;
  border-left:4px solid var(--accent);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
}
code, pre{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:.95em; background: color-mix(in oklab, var(--fg) 8%, var(--bg));
  border:1px solid var(--border); border-radius:8px;
}
code{ padding: .15em .35em }
pre{ padding: .85rem; overflow:auto }

/* Tables (for policy docs) */
table{ width:100%; border-collapse:collapse; margin:1rem 0; font-size:.98rem }
th, td{ padding:.6rem .5rem; border:1px solid var(--border) }
th{ text-align:left; background: color-mix(in oklab, var(--fg) 8%, var(--bg)) }

/* ====== Forms (basic) ==================================================== */
input, select, textarea, button{
  font: inherit; color: inherit;
}
input, select, textarea{
  width:100%; padding:.6rem .75rem; border-radius:10px;
  border:1px solid var(--border); background:var(--card);
}
button, .btn-primary{
  display:inline-block; padding:.65rem 1rem; border-radius:10px;
  background:var(--accent); color:#fff; border:1px solid transparent;
}
button:hover, .btn-primary:hover{ background:var(--accent-2) }

/* ====== Utilities ======================================================== */
.hidden{display:none !important}
.center{ text-align:center }
.muted{ color:var(--muted) }
.mt-4{ margin-top: var(--space-4) }
.mb-4{ margin-bottom: var(--space-4) }
.btn-secondary{
  color:#fff;
  background:transparent;
  border:1px solid var(--btn-secondary-border);
  box-shadow:none;
}
.btn-secondary:hover{
  background:var(--btn-secondary-hover-bg);
  text-decoration:none;
}
.btn-secondary[data-age-gate],
.btn-secondary[data-review-trigger],
.btn-secondary[data-review-close]{
  background:var(--accent);
  border-color:var(--accent);
}
.btn-secondary[data-age-gate]:hover,
.btn-secondary[data-review-trigger]:hover,
.btn-secondary[data-review-close]:hover{
  background:var(--accent-2);
  color:#fff;
}
.btn-outline{
  background:transparent;
  color:var(--accent);
  border:1px solid color-mix(in srgb, var(--accent) 65%, var(--border));
  box-shadow:none;
}
.btn-outline:hover,
.btn-outline:focus{
  background:color-mix(in srgb, var(--bg) 88%, var(--accent) 12%);
  color:var(--accent);
  text-decoration:none;
}

/* ====== Reviews ========================================================== */
.reviews-block{
  margin: var(--space-10) auto 0;
}
.reviews-section{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:var(--space-5);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.reviews-section__header{
  display:flex;
  justify-content:space-between;
  gap:var(--space-4);
  flex-wrap:wrap;
  align-items:flex-end;
}
.reviews-section__actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
.reviews-section__list{
  display:grid;
  gap:var(--space-4);
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.reviews-section__error{
  margin:0;
  font-size:.95rem;
  color:#b91c1c;
}
.reviews-cta{
  margin:var(--space-6) auto var(--space-10);
  display:flex;
  justify-content:center;
}
.reviews-cta .btn{
  min-width:220px;
  text-align:center;
}
.review-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:var(--space-4);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:.75rem;
  min-height:220px;
}
.review-card__header{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-weight:600;
  color:#f59e0b;
}
.review-card__stars{
  font-size:1.15rem;
  letter-spacing:.08em;
}
.review-card__score{
  color:var(--muted);
  font-size:.95rem;
}
.review-card__name{
  margin:0;
  font-size:1.05rem;
  color:var(--fg);
}
.review-card__product{
  font-size:.85rem;
  color:var(--accent);
  text-decoration:none;
}
.review-card__product:hover{
  text-decoration:underline;
}
.review-card__text{
  margin:0;
  color:var(--fg);
  font-size:.98rem;
}
.review-card__reply{
  margin:0;
  padding:.75rem;
  border-left:3px solid var(--accent);
  background:color-mix(in oklab, var(--accent) 10%, transparent);
  border-radius:0 10px 10px 0;
  font-size:.9rem;
}
.review-card__footer{
  margin-top:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.5rem;
  color:var(--muted);
  font-size:.85rem;
  flex-wrap:wrap;
}
.review-card__qty{
  font-weight:600;
}

.review-modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--space-4);
  background:rgba(15,23,42,.55);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:1000;
}
.review-modal.hidden{ display:none; }
.review-modal.is-active{
  opacity:1;
  pointer-events:auto;
}
.review-modal__backdrop{
  position:absolute;
  inset:0;
}
.review-modal__dialog{
  position:relative;
  background:var(--card);
  border-radius:var(--radius);
  padding:var(--space-5);
  box-shadow:var(--shadow);
  width:min(100%,500px);
  max-height:90vh;
  overflow:auto;
}
.review-modal__close{
  position:absolute;
  top:var(--space-3);
  right:var(--space-3);
  background:none;
  border:0;
  font-size:1.5rem;
  line-height:1;
  color:var(--muted);
  cursor:pointer;
}
.review-modal__close:hover{ color:var(--fg); }
.review-modal__title{
  margin-top:0;
  margin-bottom:var(--space-3);
}
.review-modal__intro{
  margin-top:0;
  margin-bottom:var(--space-4);
  color:var(--muted);
  font-size:.95rem;
}
.review-form__label{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-bottom:var(--space-4);
  font-weight:600;
}
.review-form__note{
  margin:.5rem 0 var(--space-4);
  font-size:.92rem;
  color:var(--muted);
}
.review-form__body{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.review-form__body[hidden]{
  display:none !important;
}
.review-form__label input,
.review-form__label textarea,
.review-form__label select{
  margin-top:.1rem;
  font-weight:400;
}
.review-form__label-text{
  font-weight:600;
}
.review-form__rating{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-bottom:var(--space-4);
}
.review-form__stars{
  display:flex;
  gap:.25rem;
}
.review-form__star{
  border:0;
  background:none;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
  color:var(--border);
  transition:transform .08s ease, color .12s ease;
}
.review-form__star.is-active{
  color:#f9c23d;
}
.review-form__star:hover{
  transform:scale(1.05);
}
.review-form__star:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.review-form__rating-hint{
  margin:0;
  font-size:.85rem;
  color:var(--muted);
}
.review-form__actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  align-items:center;
}
.review-form__message{
  margin:var(--space-2) 0 0;
  min-height:1.1rem;
}
.review-form__message.is-error{ color:#b91c1c; }
.review-form__message.is-success{ color:#047857; }

body.modal-open{
  overflow:hidden;
}

@media (max-width: 640px){
  .reviews-section{
    padding:var(--space-4);
  }
  .reviews-section__header{
    flex-direction:column;
    align-items:flex-start;
  }
  .reviews-section__actions{
    width:100%;
    justify-content:flex-start;
  }
  .review-modal{
    padding:var(--space-3);
  }
  .review-modal__dialog{
    width:100%;
    border-radius:var(--radius-sm);
  }
}

/* ====== Print-friendly for Policies ===================================== */
@media print{
  .site-header, .site-footer, nav, .hero { display:none !important }
  main.container{ padding:0 }
  body{ background:#fff; color:#000 }
  a{ color:#000; text-decoration:underline }
}

/* --- Header nav: inline, no bullets --- */
.primary-nav { margin-left: auto; }
.nav-list{
  list-style: none;            /* remove bullets */
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 1rem;                   /* space between links */
}
.nav-list li{ margin: 0; padding: 0; }
.primary-nav a{
  color: inherit;
  text-decoration: none;
  padding: .5rem .25rem;
  border-radius: 8px;
}
.primary-nav a:hover{ text-decoration: underline; }
.primary-nav a[aria-current="page"]{ font-weight: 600; text-decoration: underline; }

/* Optional: add separators without extra markup */
.nav-list li:not(:last-child)::after{
  content: "·";
  margin-left: 1rem;
  color: var(--muted);
}

/* --- Content lists (policy pages) --- */
.prose ul, .prose ol{
  padding-left: 1.25rem;       /* readable indent */
  margin: .6em 0;
}
.prose li + li{ margin-top: .25em; }  /* tighten stacked bullets */

/* --- Footer: centered, tidy separators --- */
.site-footer{ text-align: center; }
.site-footer .container{
  display: inline-flex;         /* shrink to content then center via text-align */
  gap: .75rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.site-footer a{
  color: inherit;
  text-decoration: none;
}
.site-footer a:hover{
  color: var(--fg);
  text-decoration: underline;
}
/* dot separators for footer links (works with your existing markup) */
.site-footer .container a + a::before{
  content: "·";
  margin: 0 .5rem 0 .25rem;
  color: var(--muted);
}

.site-footer { text-align: center; }
.site-footer .container{
  display: flex;
  flex-direction: column;
  gap: .5rem;   /* space between lines */
  align-items: center;
  justify-content: center;
}
.footer-links{
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.footer-links a{
  color: inherit;
  text-decoration: none;
}
.footer-links a:hover{
  color: var(--fg);
  text-decoration: underline;
}

.row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.qty-label {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .95rem;
  font-weight: 500;
  color: var(--fg);
}

.qty-input {
  width: 4.5rem;        /* keeps it compact */
  padding: .4rem .5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  font: inherit;
}

/* product nudge */
.product-nudge{
  display:flex; align-items:center; gap:.75rem;
  margin: var(--space-4) 0 var(--space-3);
}
.product-nudge .back{
  display:inline-flex; align-items:center; justify-content:center;
  width:2rem; height:2rem; border-radius:999px;
  border:1px solid var(--border);
  color:var(--accent); text-decoration:none;
}
.product-nudge .back:hover{
  background: color-mix(in oklab, var(--accent) 10%, transparent);
}
.product-nudge .product-title{
  margin:0; font-size:1.25rem; letter-spacing:.2px;
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* custom radio: always a perfect circle */
.checkout input[type="radio"]{
  appearance: none;
  -webkit-appearance: none;

  /* lock square shape */
  inline-size: 18px;         /* width */
  block-size: 18px;          /* height */
  aspect-ratio: 1 / 1;       /* extra guard */
  flex: 0 0 18px;            /* don't stretch in the flex row */
  box-sizing: border-box;

  border: 2px solid var(--border);
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-content: center;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
  color: var(--accent, #111); /* used by ::before dot */
}

.checkout input[type="radio"]::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: scale(0);
  transition: transform .12s ease-in-out;
  background: currentColor;
}

.checkout input[type="radio"]:checked{ border-color: var(--accent, #111); }
.checkout input[type="radio"]:checked::before{ transform: scale(1); }
.checkout input[type="radio"]:focus-visible{
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #111) 30%, transparent);
}

/* if you previously used transform: scale(...) on radios, remove it */
.product-card > a{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  height:100%;
}
.product-card > a img{
  margin-bottom:0;
}
.product-card > a .thumb{
  margin:0;
}
.product-card > a .price{
  margin-top:auto;
}
.product-grid__list{
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  justify-content:center;
  justify-items:center;
}
.product-grid__list > li{
  width:100%;
  max-width:320px;
}
.product-hero{
  padding: clamp(2.5rem, 5vw + 1rem, 5rem) 0 clamp(2rem, 4vw + 1rem, 3.5rem);
}
.product-hero__wrap{
  display:grid;
  gap: var(--space-5);
  align-items:center;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  background: color-mix(in oklab, var(--accent) 6%, var(--card));
  border:1px solid color-mix(in oklab, var(--accent) 18%, var(--border));
  border-radius: calc(var(--radius) * 1.1);
  box-shadow: 0 22px 45px rgba(15,23,42,.08);
  padding: clamp(2rem, 4vw + 1rem, 3rem);
  overflow:hidden;
}
.product-hero__copy .eyebrow{
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:700;
  margin-bottom:.35rem;
}
.product-hero__title{
  margin:0 0 .75rem;
  font-size: clamp(1.9rem, 2.4vw + 1.4rem, 2.9rem);
}
.product-hero__copy .lead{
  margin:0 0 var(--space-3);
  font-size:1.05rem;
  color:var(--muted);
}
.product-hero__price{
  display:flex;
  align-items:baseline;
  gap:.75rem;
  margin-bottom:var(--space-3);
}
.product-hero__price-current{
  font-size: clamp(1.8rem, 1.2vw + 1.6rem, 2.3rem);
  font-weight:700;
}
.product-hero__price-marked{
  font-size:1.1rem;
  color:var(--muted);
  text-decoration:line-through;
  font-weight:500;
}
.product-hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.product-hero__media{
  justify-self:end;
  max-width:520px;
}
.product-hero__media img{
  width:100%;
  height:auto;
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:none;
}
.product-platform-filter{
  padding: clamp(1rem, 3vw + .5rem, 2rem) 0;
}
.product-platform-filter__label{
  display:block;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--muted);
  margin-bottom:.65rem;
}
.product-platform-filter__empty{
  margin:var(--space-3) 0 0;
  color:var(--muted);
  font-weight:600;
}
.platform-filter__chips{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}
.platform-chip{
  border:1px solid var(--border);
  background:var(--card);
  color:var(--fg);
  border-radius:999px;
  padding:.35rem 1rem;
  font-weight:600;
  font-size:.9rem;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.platform-chip:hover{
  border-color:var(--accent);
  color:var(--accent);
}
.platform-chip.is-active{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.18);
}
.product-overview{
  padding: clamp(1.5rem, 4vw + .5rem, 3rem) 0;
}
.product-overview__grid{
  display:grid;
  gap:var(--space-4);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.product-overview__card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:var(--space-5);
  background:color-mix(in oklab, var(--accent) 5%, var(--card));
  display:grid;
  gap:var(--space-3);
  position:relative;
  overflow:hidden;
}
.product-overview__card h2{
  margin:0;
  font-size:1.4rem;
}
.product-overview__card p{
  margin:0;
  color:var(--muted);
}
.product-overview__count{
  font-weight:600;
  color:var(--accent);
}
.product-overview__cta{
  font-weight:600;
  color:var(--accent);
}
.product-overview__cta:hover{
  text-decoration:underline;
}
.product-overview__card.is-empty{
  opacity:.65;
}
.product-overview__card.is-empty .product-overview__cta{
  color:var(--muted);
  pointer-events:none;
}
.product-category{
  padding: clamp(2.5rem, 6vw + 1rem, 4.5rem) 0;
  border-top:1px solid var(--border);
}
.product-category:first-of-type{
  border-top:0;
}
.product-category__header{
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  margin-bottom:var(--space-4);
}
.product-category__title{
  margin:0;
  font-size: clamp(1.6rem, 2vw + 1rem, 2.1rem);
}
.product-category__header p{
  margin:0;
  color:var(--muted);
  max-width:60ch;
}
.product-family{
  margin-top:var(--space-4);
}
.product-family + .product-family{
  margin-top:var(--space-6);
  padding-top:var(--space-4);
  border-top:1px solid var(--border);
}
.product-family__header{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin-bottom:var(--space-3);
}
.product-family__title{
  margin:0;
  font-size:1.25rem;
}
.product-family__header p{
  margin:0;
  color:var(--muted);
  max-width:50ch;
}
.cart-toast{
  visibility:hidden;
  opacity:0;
  transition:opacity .3s ease,bottom .3s ease;
  position:fixed;
  bottom:-40px;
  left:50%;
  transform:translateX(-50%);
  background:#111827;
  color:#fff;
  padding:.75rem 1rem;
  border-radius:8px;
  font-size:.95rem;
  z-index:999;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.cart-toast.show{
  visibility:visible;
  opacity:1;
  bottom:24px;
}
