/* =========================================================
   Product-page add-ons  (v1.0 • 2025-06-27)
   ========================================================= */

/* ---------- Hero ---------- */
.product-hero{
  position:relative;
  height:0;               /* same look as site hero but shorter */
  min-height:360px;
  overflow:hidden;
}
.product-hero img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transform:translate3d(0, var(--hero-shift, 0px), 0) scale(1.14);
  transform-origin:center;
  will-change:transform;
  filter:grayscale(.28) brightness(.32) saturate(.72) blur(8px);
}
.product-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.74) 100%);
  z-index:0;
}
.product-hero .overlay{
  position:relative;
  z-index:1;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom:4rem;
  text-shadow:0 4px 8px rgba(0,0,0,.6);
}
.product-hero h1{
  font-size:clamp(2.5rem,5.5vw,4rem);
  line-height:1.15;
}
.product-hero .subtitle{
  font-size:1.25rem;
  font-weight:300;
  color:var(--c-grey-light);
}

/* ---------- Checklist bullets ---------- */
.checklist{
  list-style:none;
  margin:1.25rem 0 2rem;
}
.checklist li{
  position:relative;
  padding-left:2rem;
  margin-bottom:.5rem;
}
.checklist li::before{
  content:"✔";
  position:absolute; left:0; top:0;
  color:var(--c-red);
}

/* ---------- Specs table ---------- */
.spec-table{
  width:100%;
  border-collapse:collapse;
  margin-top:1.5rem;
  font-size:1rem;
}
.spec-table th,
.spec-table td{
  padding:.75rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  text-align:left;
}
.spec-table th{
  width:220px;                 /* label column */
  font-weight:600;
  color:var(--c-red);
  background:var(--c-charcoal-2);
}

/* ---------- CTA block tint ---------- */
.product-page .cta .col:first-child{
  background:var(--c-red);
  color:#fff;
}
.product-page .cta .col:last-child{
  background:var(--c-charcoal-2);
}

.product-page .cta{
  margin-top:clamp(2.4rem,6vw,4.25rem);
  padding-top:64px;
  padding-bottom:120px;
}

.product-page .asym.container.gap-2 .col:last-child{
  padding-left:2rem;
}

/* ---------- Product overview media card sizing + edge fade ---------- */
.product-page #overview.asym{
  align-items:center;
  overflow:visible;
}
.product-page #overview.asym .col:first-child{
  margin-top:0 !important;
  margin-left:clamp(-6rem,-9vw,-2.25rem);
  flex:0 0 clamp(52%,56vw,62%) !important;
  max-width:none !important;
  height:auto;
  min-height:clamp(25rem,36vw,34rem);
  padding:clamp(1rem,2vw,1.35rem) !important;
  overflow:hidden;
  position:relative;
}
.product-page #overview.asym .col:first-child img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:calc(var(--asym-radius) - 2px);
  -webkit-mask-image:radial-gradient(125% 125% at 50% 50%, #000 48%, rgba(0,0,0,.75) 66%, rgba(0,0,0,.35) 82%, transparent 100%);
  mask-image:radial-gradient(125% 125% at 50% 50%, #000 48%, rgba(0,0,0,.75) 66%, rgba(0,0,0,.35) 82%, transparent 100%);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}
.product-page #overview.asym .col:first-child::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 48%, rgba(244,245,247,0) 38%, rgba(244,245,247,.38) 70%, rgba(244,245,247,.92) 100%);
}

/* ---------- Feature grid (2-up, symmetrical) ---------- */
.features { padding-top: 1rem; }
.features-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap:1.5rem;
}
.feature-card{
  background: var(--c-charcoal-2);
  border-radius: 10px;
  padding: 1.5rem 1.5rem 1.2rem;
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
}
.feature-card h3{
  margin-bottom: .6rem;
  font-weight: 600;
}
.feature-card .checklist li{ margin-bottom: .35rem; }

/* Mobile: stack feature cards */
@media (max-width: 800px){
  .features-grid{ grid-template-columns: 1fr; }
}

/* ---------- Variant tabs (dual template) ---------- */
.variant-tabs{
  display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem;
}
.variant-tabs .tab{
  appearance:none; border:1px solid var(--c-charcoal-2);
  background: var(--c-charcoal-2);
  color: var(--c-grey-light);
  padding:.6rem 1rem; border-radius: 999px; cursor:pointer;
  font-weight:600; letter-spacing:.02em;
}
.variant-tabs .tab.active{
  background: var(--c-red);
  border-color: var(--c-red);
  color:#fff;
}

.variant-panel{ margin-top: 1rem; }
.variant-panel[hidden]{ display:none; }

/* Tighten spec table top margin when nested under variant panels */
.variant-panel .spec-table{ margin-top: .75rem; }

/* ---------- Responsive tweaks ---------- */
@media (max-width: 900px){
  .product-hero{min-height:320px;}
  .product-hero .overlay{padding-bottom:3rem;}
  .product-page .cta{
    margin-top:clamp(1.25rem,4vw,2rem);
    padding-top:64px;
    padding-bottom:120px;
  }
  .product-page .asym.container.gap-2 .col:last-child{padding-left:1.25rem;}
  .product-page #overview.asym .col:first-child{
    margin-left:0;
    flex:1 1 auto !important;
    min-height:clamp(19rem,55vw,24rem);
  }
}

@media (max-width: 640px){
  .product-hero{min-height:260px;}
  .product-hero img{transform:none;}
  .product-hero h1{font-size:clamp(2.1rem,6.5vw,2.8rem);}
  .spec-table th{width:46%;}
}
