.product-page { padding-bottom: 2rem; }
.product-page.container { width: min(calc(100% - 2rem), 1500px); }
.product-page .breadcrumb { padding-block: .45rem .7rem; }
.product-detail { grid-template-columns: minmax(0, .98fr) minmax(0, 1.08fr); gap: clamp(1rem, 2.2vw, 2rem); padding-bottom: 1.25rem; }
.product-gallery { display: flex; min-width: 0; flex-direction: column; gap: .55rem; }
.product-main-image { width: 100%; margin: 0; aspect-ratio: 1.32 / 1; border: 1px solid rgb(91 56 61 / 9%); border-radius: 15px; box-shadow: 0 8px 24px rgb(69 42 42 / 5%); }
.product-main-image > img { object-fit: cover; transition: object-position 220ms ease; }
.product-thumbnails { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row; gap: .55rem; }
.product-thumbnails button { width: 100%; height: auto; aspect-ratio: 1.35 / 1; border-radius: 10px; }
.product-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.product-thumbnails button:nth-child(1) img { object-position: 50% 24%; }
.product-thumbnails button:nth-child(2) img { object-position: 50% 50%; }
.product-thumbnails button:nth-child(3) img { object-position: 50% 76%; }
.product-thumbnails button:focus-visible { outline-offset: 3px; }
.product-main-image .image-zoom-button { right: .65rem; bottom: .65rem; min-height: 36px; padding: .4rem .65rem; border-radius: 999px; font-size: .67rem; }
.product-favorite { position: absolute; z-index: 2; top: .7rem; right: .7rem; display: grid; width: 42px; height: 42px; place-items: center; color: #c74e69; background: rgb(255 255 255 / 95%); border: 1px solid #efdfe0; border-radius: 50%; cursor: pointer; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.product-favorite:hover { transform: scale(1.05); }
.product-favorite[aria-pressed="true"] { color: #fff; background: #bd5970; }
.product-favorite svg, .product-secondary-actions svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.product-favorite[aria-pressed="true"] svg, .product-secondary-actions [aria-pressed="true"] svg { fill: currentColor; }
.product-gallery .image-note { margin: 0; font-size: .66rem; line-height: 1.45; }
.product-info { position: static; min-width: 0; padding: clamp(1.2rem, 2vw, 1.8rem); background: rgb(255 255 255 / 85%); border: 1px solid rgb(161 103 115 / 11%); border-radius: 16px; box-shadow: 0 8px 25px rgb(74 42 42 / 4%); }
.product-info > .product-category { margin-bottom: .25rem; font-size: .74rem; letter-spacing: .14em; }
.product-info h1 { margin: 0 0 .3rem; font-size: clamp(1.9rem, 2.9vw, 2.65rem); line-height: 1.13; letter-spacing: -.045em; }
.product-sale-badge { display: inline-flex; align-items: center; margin: .35rem 0 .15rem; padding: .2rem .55rem; color: #fff; background: #bd526a; border-radius: 999px; font-size: .64rem; font-weight: 700; }
.product-info > .product-price { gap: .55rem; margin: .3rem 0 .35rem; }
.product-info > .product-price strong { color: #bf3f59; font-size: clamp(1.55rem, 2.25vw, 2rem); line-height: 1.2; }
.product-info > .product-price del { color: #898185; font-size: .92rem; }
.product-description { margin: 0; color: #656066; font-size: .9rem; line-height: 1.65; }
.status-line { margin: .45rem 0 .7rem; color: #5a7962; font-size: .8rem; }
.status-line--unavailable { color: #965768; }
.product-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; margin: .6rem 0 .8rem; }
.product-benefits span { display: flex; min-height: 40px; align-items: center; gap: .42rem; padding: .4rem .6rem; color: #645b60; background: #fbefef; border-radius: 999px; font-size: .72rem; line-height: 1.3; }
.product-benefits svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: #c34f68; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.product-options { grid-template-columns: .72fr 1.15fr 1.15fr; gap: .55rem .65rem; margin: .75rem 0 .65rem; }
.product-options .field { min-width: 0; gap: .25rem; }
.product-options .field label { font-size: .78rem; font-weight: 650; }
.product-options .field label span { color: #81777c; font-weight: 400; }
.product-options .field input, .product-options .field textarea { min-width: 0; min-height: 44px; padding: .5rem .65rem; border-radius: 9px; font-size: .82rem; }
.quantity-stepper { display: grid; min-height: 44px; grid-template-columns: 34px minmax(28px, 1fr) 34px; overflow: hidden; background: #fff; border: 1px solid var(--color-line); border-radius: 9px; }
.quantity-stepper button { padding: 0; color: #b54d65; background: #fbefef; border: 0; font-size: 1rem; cursor: pointer; }
.quantity-stepper input { width: 100%; min-height: 42px; padding: .25rem 0; border: 0; border-radius: 0; text-align: center; appearance: textfield; }
.quantity-stepper input::-webkit-inner-spin-button, .quantity-stepper input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.product-options .product-card-note { position: relative; grid-column: 1 / -1; }
.product-options .product-card-note textarea { min-height: 68px; padding-bottom: 1.2rem; resize: vertical; }
.product-card-note > small { position: absolute; right: .55rem; bottom: .35rem; color: #938a8d; font-size: .58rem; }
.product-options > .button { grid-column: 1 / -1; min-height: 48px; padding: .65rem .9rem; border-radius: 999px; font-size: .86rem; }
.product-secondary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; grid-column: 1 / -1; }
.product-secondary-actions button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: .4rem; padding: .45rem .75rem; color: #5f555a; background: #fff; border: 1px solid #f0dfe1; border-radius: 10px; font-size: .78rem; cursor: pointer; }
.product-secondary-actions button:hover, .product-secondary-actions button[aria-pressed="true"] { color: #a53f58; background: #fff5f6; border-color: #e5bfc6; }
.product-secondary-actions button svg { width: 16px; height: 16px; color: #c34f68; }
.product-secondary-actions p { margin: 0; color: #6f6268; font-size: .65rem; }
.product-share-fallback { color: #994b5d; font-size: .65rem; text-decoration: underline; text-underline-offset: .15em; }
.product-accordions { grid-column: 2; display: grid; gap: .4rem; margin-top: .7rem; }
.product-accordions details { overflow: hidden; background: #fff; border: 1px solid #f0e5e5; border-radius: 10px; }
.product-accordions summary { position: relative; min-height: 44px; padding: .65rem 2rem .65rem .85rem; color: #39363a; font-size: .8rem; font-weight: 650; cursor: pointer; list-style: none; }
.product-accordions summary::-webkit-details-marker { display: none; }
.product-accordions summary::after { position: absolute; top: 50%; right: .8rem; color: #bd526a; content: '+'; font-size: 1rem; transform: translateY(-50%); }
.product-accordions details[open] summary::after { content: '−'; }
.product-accordions details > p { margin: 0; padding: 0 .85rem .75rem; color: #70666b; font-size: .78rem; line-height: 1.6; }
.product-accordions a { color: #a2465b; text-decoration: underline; text-underline-offset: .15em; }
.product-related { padding-block: 1rem 1.25rem; }
.product-related .section-heading { margin-bottom: .75rem; }
.product-related .section-heading h2 { margin-bottom: 0; font-size: clamp(1.3rem, 2vw, 1.7rem); letter-spacing: -.035em; }
.product-related .section-heading .eyebrow { margin-bottom: .2rem; font-size: .62rem; }
.product-related .section-heading .text-link { min-height: 36px; font-size: .7rem; }
.product-related .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.product-related .product-card { border-color: rgb(160 115 121 / 10%); border-radius: 13px; box-shadow: 0 4px 14px rgb(65 42 42 / 3%); }
.product-related .product-card-media { aspect-ratio: 1.72 / 1; }
.product-related .product-card-body { padding: .5rem .65rem .6rem; }
.product-related .product-category { display: none; }
.product-related .product-card h3 { min-height: 2.2em; margin: 0 0 .08rem; font-size: .76rem; line-height: 1.4; }
.product-related .product-card-description { display: -webkit-box; min-height: 1.3em; margin: 0; overflow: hidden; color: #777176; font-size: .65rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.product-related .product-card .product-price { gap: .35rem; margin: .25rem 0 .35rem; font-size: .72rem; }
.product-related .product-card .product-price strong { color: #a73750; font-size: .86rem; }
.product-related .product-card .text-link { display: flex; width: 100%; min-height: 30px; justify-content: center; padding: .25rem .4rem; color: #963f54; background: #fbe9e9; border-radius: 999px; font-size: .65rem; }
.product-related .product-card .text-link::after { content: '→'; }

@media (max-width: 1000px) {
  .product-detail { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 12px; }
  .product-info { padding: 1rem; }
  .product-related .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .product-detail { grid-template-columns: 1fr; }
  .product-accordions { grid-column: 1; }
}
@media (max-width: 720px) {
  .product-detail { grid-template-columns: 1fr; gap: .8rem; padding-bottom: .7rem; }
  .product-gallery { display: flex; flex-direction: column; }
  .product-main-image { aspect-ratio: 1.3 / 1; }
  .product-thumbnails { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-thumbnails button { min-width: 0; }
  .product-info { padding: .9rem; }
  .product-info h1 { font-size: clamp(1.65rem, 7vw, 2.3rem); }
  .product-benefits { gap: .3rem; }
  .product-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-benefits span { min-height: 32px; padding: .3rem .45rem; font-size: .59rem; }
  .product-options { grid-template-columns: .72fr 1fr 1fr; gap: .55rem; }
  .product-accordions { grid-column: 1; }
  .product-related .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-related .product-card-media { aspect-ratio: 1.35 / 1; }
  .product-page { padding-bottom: 6.2rem; }
}
@media (max-width: 400px) {
  .product-options { grid-template-columns: 1fr 1fr; }
  .quantity-control { grid-column: 1 / -1; }
  .product-benefits { grid-template-columns: 1fr 1fr; }
}
