.p2-quantity{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;min-height:46px}.p2-quantity button{width:42px;height:46px;border:0;background:transparent;cursor:pointer}.p2-quantity input{width:42px;border:0;background:transparent;text-align:center;outline:0}.product-share-feedback{min-height:20px;margin:9px 0 0;font-size:11px}
/* =========================================================
   P5 — Product experience, Quick View and gallery
   ========================================================= */
.product-back-row { margin: 6px 0 24px; }
.product-back { display:inline-flex; align-items:center; gap:8px; color:var(--ink-soft); font-size:12px; letter-spacing:.04em; }
.product-back:hover { color:var(--ink); }
.product-back .icon { width:16px; height:16px; }

.product-gallery { min-width:0; }
.product-gallery-main { position:relative; overflow:hidden; border-radius:var(--radius-xl); background:var(--surface-2); }
.product-gallery-image { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--surface-2); transition:opacity 180ms ease, transform 420ms var(--ease-out); }
.product-gallery-main:hover .product-gallery-image { transform:scale(1.008); }
.product-gallery-counter { position:absolute; right:14px; bottom:14px; padding:7px 10px; border:1px solid rgba(247,244,238,.46); border-radius:var(--radius-pill); background:rgba(20,25,43,.74); color:var(--paper); font-size:10px; letter-spacing:.08em; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.product-gallery-arrow { position:absolute; top:50%; translate:0 -50%; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(247,244,238,.45); border-radius:var(--radius-md); background:rgba(247,244,238,.88); color:var(--ink); cursor:pointer; opacity:0; transition:opacity 180ms ease, transform 180ms var(--ease-out); }
.product-gallery-arrow:disabled { display:none; }
.product-gallery-prev { left:14px; }
.product-gallery-next { right:14px; }
.product-gallery-main:hover .product-gallery-arrow,
.product-gallery-arrow:focus-visible { opacity:1; }
.product-gallery-arrow:hover { transform:scale(1.03); }
.product-gallery-thumbs { display:flex; gap:8px; overflow-x:auto; padding-top:10px; scrollbar-width:none; }
.product-gallery-thumbs::-webkit-scrollbar { display:none; }
.product-gallery-dots { display:none; align-items:center; justify-content:center; gap:6px; padding-top:9px; }
.product-gallery-dot { width:6px; height:6px; padding:0; border:0; border-radius:50%; background:var(--line); cursor:pointer; }
.product-gallery-dot.is-active { width:18px; border-radius:var(--radius-pill); background:var(--ink); }
.product-gallery-thumb { flex:0 0 62px; width:62px; height:76px; padding:0; border:1px solid transparent; border-radius:var(--radius-md); background:var(--surface-2); overflow:hidden; cursor:pointer; opacity:.72; }
.product-gallery-thumb.is-active { border-color:var(--ink); opacity:1; }
.product-gallery-thumb img { width:100%; height:100%; object-fit:cover; }
.product-gallery-empty { display:grid; place-items:center; aspect-ratio:4/5; border:1px solid var(--line); border-radius:var(--radius-xl); color:var(--muted); font-size:13px; }

.product-page-copy { min-width:0; }
.product-page-kicker { flex-wrap:wrap; }
.product-page-material { margin:0; color:var(--ink-soft); font-size:12px; }
.product-options { display:grid; gap:20px; margin-top:28px; }
.product-option-group { display:grid; gap:10px; }
.product-option-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; font-size:12px; }
.product-option-heading > span { color:var(--ink-soft); text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.product-option-heading > strong { font-size:12px; font-weight:600; }
.product-swatch-row, .product-size-row { display:flex; flex-wrap:wrap; gap:8px; }
.product-swatch { min-height:40px; display:inline-flex; align-items:center; gap:8px; padding:6px 11px; border:1px solid var(--line); border-radius:var(--radius-md); background:var(--paper); color:var(--ink); cursor:pointer; font-size:12px; }
.product-swatch > span:first-child { width:18px; height:18px; flex:0 0 18px; border:1px solid rgba(20,25,43,.18); border-radius:50%; background:var(--swatch-color, #b6b0a4); box-shadow:inset 0 0 0 2px rgba(247,244,238,.88); }
.product-swatch.is-selected { border-color:var(--ink); box-shadow:0 0 0 2px rgba(198,149,47,.18); }
.product-swatch.is-selected > span:first-child { box-shadow:inset 0 0 0 2px var(--paper), 0 0 0 1px var(--ink); }
.product-size-option { min-width:44px; min-height:42px; padding:8px 11px; border:1px solid var(--line); border-radius:var(--radius-md); background:var(--paper); color:var(--ink); cursor:pointer; font-size:12px; }
.product-size-option:hover { border-color:var(--ink-soft); }
.product-size-option.is-selected { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.product-quantity-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:3px; font-size:12px; }
.product-primary-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-top:24px; }
.product-add-main { min-height:54px; }
.product-share { min-height:54px; }
.product-service-note { display:flex; align-items:flex-start; gap:9px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); color:var(--ink-soft); font-size:11px; line-height:1.5; }
.product-service-note .icon { width:15px; height:15px; flex:0 0 15px; margin-top:1px; }

.related-products-section { padding:clamp(70px,9vw,120px) 0; border-top:1px solid var(--line); margin-top:clamp(60px,8vw,110px); }
.related-header { align-items:end; margin-bottom:26px; }
.related-header h2 { font-size:clamp(40px,5vw,68px); }
.related-products-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); }
.related-product-card { min-width:0; }
.related-product-media { display:block; overflow:hidden; border-radius:var(--radius-xl); background:var(--surface-2); }
.related-product-media img { width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform var(--duration-slow) var(--ease-out); }
.related-product-media:hover img { transform:scale(1.015); }
.related-product-info { padding-top:13px; }
.related-product-info > span { display:block; color:var(--ink-soft); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.related-product-info h3 { margin:5px 0 6px; font-family:var(--serif); font-size:22px; line-height:1; }
.related-product-info strong { font-family:var(--serif); font-size:17px; }

/* Quick View */
.quickview-dialog { width:min(1040px, calc(100% - 36px)); max-width:none; max-height:min(90vh, 820px); border-radius:var(--radius-xl); }
.quickview-inner { padding:26px; }
.quickview-head { margin-bottom:18px; }
.quickview-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.8fr); gap:clamp(24px,4vw,46px); align-items:start; }
.quickview-gallery { min-width:0; }
.quickview-gallery .product-gallery-main { border-radius:var(--radius-lg); }
.quickview-gallery .product-gallery-image { aspect-ratio:4/5; }
.quickview-gallery .product-gallery-arrow { opacity:0; }
.quickview-gallery .product-gallery-thumbs { padding-top:8px; }
.quickview-gallery .product-gallery-thumb { flex-basis:50px; width:50px; height:62px; }
.quickview-copy { padding-top:3px; }
.quickview-category { color:var(--ink-soft); font-size:10px; text-transform:uppercase; letter-spacing:.14em; }
.quickview-copy h2 { margin:7px 0 7px; font-size:clamp(38px,5vw,60px); }
.quickview-copy .price { display:block; margin-bottom:12px; font-size:26px; }
.quickview-copy > p:not(.quickview-material):not(.quickview-feedback) { max-width:520px; margin:16px 0 0; color:var(--ink-soft); }
.quickview-material { margin:12px 0 0; color:var(--ink-soft); font-size:12px; }
.quickview-copy .availability-pill { margin-top:10px; }
.quickview-quantity-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:12px; }
.quickview-quantity { display:flex; align-items:center; min-height:44px; border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.quickview-quantity button { width:42px; height:42px; display:grid; place-items:center; border:0; background:transparent; cursor:pointer; }
.quickview-quantity input { width:42px; height:42px; border:0; outline:0; background:transparent; text-align:center; color:var(--ink); }
.quickview-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; margin-top:18px; }
.quickview-actions .button { min-height:52px; }
.quickview-feedback { min-height:18px; margin:8px 0 0; color:var(--ink-soft); font-size:11px; }
.quickview-product-link { display:inline-flex; align-items:center; gap:7px; margin-top:14px; color:var(--ink); font-size:11px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.quickview-product-link .icon { width:13px; height:13px; }

@media (max-width: 900px) {
  .product-page-shell { gap:34px; }
  .related-products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quickview-dialog { width:min(900px, calc(100% - 28px)); }
  .quickview-grid { grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); gap:24px; }
}

@media (max-width: 760px) {
  .product-page-shell { grid-template-columns:1fr; gap:26px; }
  .product-page-copy { position:static; }
  .product-gallery-main { border-radius:var(--radius-lg); }
  .product-gallery-counter { right:10px; bottom:10px; }
  .product-gallery-arrow { opacity:1; width:38px; height:38px; }
  .product-gallery-prev { left:10px; }
  .product-gallery-next { right:10px; }
  .product-gallery-thumbs { display:none; }
  .product-gallery-dots { display:flex; }
  .product-primary-actions { grid-template-columns:minmax(0,1fr) auto; }
  .product-share { min-width:54px; padding:0 14px; }
  .product-share span:last-child { display:none; }
  .related-products-section { margin-top:58px; }
  .related-products-grid { display:flex; overflow-x:auto; gap:12px; padding-bottom:8px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .related-products-grid::-webkit-scrollbar { display:none; }
  .related-product-card { flex:0 0 min(66vw,250px); scroll-snap-align:start; }

  .quickview-dialog { position:fixed; inset:auto 0 0 0; width:100%; max-width:none; max-height:92svh; margin:0; border:0; border-top:1px solid var(--line); border-radius:var(--radius-xl) var(--radius-xl) 0 0; animation:product-sheet-in .28s var(--ease-out); }
  .quickview-inner { padding:10px 18px calc(18px + env(safe-area-inset-bottom)); max-height:92svh; overflow:auto; }
  .quickview-head { margin-bottom:10px; }
  .quickview-head .eyebrow { margin-bottom:0; font-size:9px; }
  .quickview-grid { grid-template-columns:1fr; gap:16px; }
  .quickview-gallery .product-gallery-main { border-radius:var(--radius-lg); }
  .quickview-gallery .product-gallery-image { aspect-ratio:4/4.6; max-height:42svh; }
  .quickview-gallery .product-gallery-arrow { display:none; }
  .quickview-copy { padding:0 1px; }
  .quickview-copy h2 { font-size:clamp(34px,11vw,50px); }
  .quickview-copy > p:not(.quickview-material):not(.quickview-feedback) { font-size:13px; line-height:1.45; }
  .quickview-actions { position:sticky; bottom:-1px; grid-template-columns:minmax(0,1fr) auto; padding:9px 0 max(9px, env(safe-area-inset-bottom)); background:linear-gradient(to bottom, rgba(247,244,238,0), var(--paper) 22%); }
  .quickview-actions .button { min-height:50px; }
  .quickview-actions .button.secondary { min-width:52px; padding:0 14px; }
  .quickview-actions .button.secondary span:last-child { display:none; }
  .quickview-product-link { margin-top:9px; }
}

@media (prefers-reduced-motion: reduce) {
  .product-gallery-image,
  .product-gallery-arrow,
  .related-product-media img,
  .quickview-dialog { transition:none !important; animation:none !important; }
}

@keyframes product-sheet-in {
  from { transform:translateY(100%); }
  to { transform:translateY(0); }
}

body.modal-open .floating-cart { opacity:0; pointer-events:none; }


/* P5.1 — single-image galleries stay visually clean */
.product-gallery-thumbs[hidden], .product-gallery-counter[hidden], .product-gallery-dots[hidden] { display:none !important; }
.product-gallery-arrow:disabled { pointer-events:none; }
.p2-quantity button:disabled, .quickview-quantity button:disabled { opacity:.38; cursor:not-allowed; }
