.product-page { background:#f5f2eb; }
.product-page .site-header { background:rgba(255,255,255,.96); }
.product-breadcrumb { display:flex; gap:.55rem; align-items:center; padding-top:8.5rem; color:#66756f; font-size:.9rem; }
.product-breadcrumb a { color:#176a52; }
.product-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:clamp(2rem,6vw,6rem); align-items:center; padding-top:2.5rem; padding-bottom:6rem; }
.product-visual { position:relative; min-height:620px; display:grid; place-items:center; overflow:hidden; border-radius:2.5rem; background:radial-gradient(circle at 50% 40%,#fff 0,#edf1ec 45%,#dce5df 100%); box-shadow:0 28px 70px rgba(23,63,53,.12); }
.product-visual::after { content:""; position:absolute; left:18%; right:18%; bottom:8%; height:12%; border-radius:50%; background:rgba(23,63,53,.18); filter:blur(24px); }
.product-visual img { position:relative; z-index:1; width:100%; height:auto; max-height:650px; object-fit:contain; transform:scale(.92); }
.product-made { position:absolute; z-index:2; top:1.6rem; left:1.6rem; padding:.65rem 1rem; border-radius:99px; background:#fff; color:#173f35; font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 8px 24px rgba(23,63,53,.1); }
.product-summary h1 { margin:.4rem 0 .25rem; font-size:clamp(2.7rem,5vw,5.2rem); line-height:.95; letter-spacing:-.045em; }
.product-size { margin:0 0 1.4rem; color:#2ca77b; font-weight:800; letter-spacing:.06em; }
.product-lead { max-width:42rem; color:#53635d; font-size:1.2rem; line-height:1.7; }
.product-highlights { margin:1.8rem 0; }
.product-purchase { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; margin-top:2.1rem; padding-top:1.5rem; border-top:1px solid #d5ddd8; }
.product-price { display:block; font-size:2rem; color:#17352d; }
.product-tax { display:block; margin-top:.2rem; color:#718079; font-size:.78rem; }
.product-availability { display:inline-flex; align-items:center; gap:.45rem; font-weight:700; }
.product-availability::before { content:""; width:.62rem; height:.62rem; border-radius:50%; background:currentColor; }
.product-availability.is-available { color:#17845f; }
.product-availability.is-unavailable { color:#a24435; }
.product-add { width:100%; margin-top:1.15rem; padding:1rem 1.5rem; }
.product-service-note { margin:1rem 0 0; color:#718079; font-size:.84rem; line-height:1.55; }
.product-details { padding:6rem 0; background:#fff; }
.product-details-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,7vw,7rem); }
.product-details h2,.product-cross-sell h2 { font-size:clamp(2rem,4vw,3.7rem); line-height:1.05; }
.product-details ol { display:grid; gap:1rem; padding-left:1.4rem; color:#53635d; font-size:1.05rem; line-height:1.65; }
.product-details aside { align-self:start; padding:2rem; border:1px solid #dbe4df; border-radius:1.5rem; background:#f6f8f6; }
.product-details aside h2 { font-size:1.5rem; }
.product-details aside p { color:#586862; font-size:.94rem; line-height:1.65; }
.product-cross-sell { padding:6rem 0; color:#fff; background:#173f35; }
.product-cross-sell .container { max-width:900px; text-align:center; }
.product-cross-sell .eyebrow { color:#7ce2ba; }
.product-cross-sell p { color:#d6e4de; font-size:1.08rem; line-height:1.7; }
.product-cross-sell .button { margin-top:1rem; color:#fff; border-color:#8eb0a4; }
@media (max-width:900px) {
  .product-breadcrumb { padding-top:7.5rem; overflow:auto; white-space:nowrap; }
  .product-hero,.product-details-grid { grid-template-columns:1fr; }
  .product-hero { gap:2.5rem; padding-top:1.5rem; padding-bottom:4rem; }
  .product-visual { min-height:460px; border-radius:1.7rem; }
  .product-visual img { max-height:500px; transform:scale(1); }
  .product-summary h1 { font-size:clamp(2.6rem,13vw,4.2rem); }
}
@media (max-width:560px) {
  .product-visual { min-height:390px; }
  .product-made { top:1rem; left:1rem; }
  .product-purchase { align-items:flex-end; }
  .product-details,.product-cross-sell { padding:4rem 0; }
  .product-details aside { padding:1.4rem; }
}

