/* =========================================================
   And More — product page v2
   ========================================================= */
.pdp, #pdpBuy { --t: #0abab5; --ink: #111; --mut: #6b7280; --ln: #ececec; }
.pdp { background: #fff; padding: 28px 0 40px; color: var(--ink); }
.pdp *, .pdp *::before, .pdp *::after, #pdpBuy, #pdpBuy * { box-sizing: border-box; border-radius: 0; }
.pdp-wrap { max-width: 1280px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: start; }

/* gallery */
.pdp-gallery { display: flex; gap: 14px; position: sticky; top: 96px; }
.pdp-thumbs { display: flex; flex-direction: column; gap: 10px; flex: 0 0 76px; max-height: 620px; overflow-y: auto; scrollbar-width: none; }
.pdp-thumbs::-webkit-scrollbar { display: none; }
.pdp-thumb { width: 76px; height: 76px; padding: 4px; border: 1px solid var(--ln); background: #fff; cursor: pointer; opacity: .65; transition: opacity .15s, border-color .15s; }
.pdp-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pdp-thumb.is-active, .pdp-thumb:hover { opacity: 1; border-color: var(--ink); }
.pdp-stage { position: relative; flex: 1; min-width: 0; background: #f6f6f6; overflow: hidden; }
.pdp-slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.pdp-slides::-webkit-scrollbar { display: none; }
.pdp-slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 1 / 1; display: block; padding: 0; cursor: zoom-in; overflow: hidden; }
.pdp-slide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.pdp-stage:hover .pdp-slide img { transform: scale(1.04); }
.pdp-badge { position: absolute; top: 16px; inset-inline-start: 16px; background: #e0353b; color: #fff; font-weight: 800; font-size: 13px; padding: 5px 10px; }
.pdp-stage-actions { position: absolute; top: 14px; inset-inline-end: 14px; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; padding: 0; }
.pdp-stage-actions > * { margin: 0 !important; position: static !important; transform: none !important; }
.pdp-icon-btn { width: 42px !important; height: 42px !important; padding: 0 !important; box-shadow: 0 2px 8px rgba(0,0,0,.06); display: flex !important; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--ln); color: var(--ink) !important; cursor: pointer; transition: border-color .15s, color .15s; }
.pdp-icon-btn:hover { border-color: var(--ink); }
.pdp-icon-btn.addToWishlist:hover { color: #e0353b !important; border-color: #e0353b; }
.pdp-dots { display: none; }

/* info */
.pdp-form { display: flex; flex-direction: column; text-align: start; }
.pdp-brand { align-self: flex-start; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--t) !important; text-decoration: none !important; margin-bottom: 8px; }
.pdp-brand:hover { text-decoration: underline !important; }
.pdp-title { font-size: 30px; line-height: 1.3; font-weight: 800; margin: 0 0 12px; color: var(--ink); }
.pdp-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; font-size: 13px; }
.pdp-stars { display: inline-flex; gap: 2px; }
.pdp-rating-count { color: var(--mut); }
.pdp-rate-link { background: none; border: 0; padding: 0; color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-size: 13px; }
.pdp-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; padding: 18px 0; border-top: 1px solid var(--ln); }
.pdp-price-now { font-size: 30px; font-weight: 800; }
.pdp-price-now small { font-size: 15px; color: var(--mut); font-weight: 700; }
.pdp-price-was { font-size: 17px; color: #9a9a9a; text-decoration: line-through; }
.pdp-price-save { font-size: 13px; font-weight: 800; color: #e0353b; background: #fdecec; padding: 4px 8px; }
.pdp-stock { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: #16a34a; margin-bottom: 22px; }
.pdp-stock::before { content: ""; width: 8px; height: 8px; border-radius: 50% !important; background: currentColor; }
.pdp-stock.is-low { color: #d97706; }
.pdp-stock.is-out { color: #e0353b; }

.pdp-option { margin-bottom: 20px; }
.pdp-option-label { font-size: 14px; font-weight: 800; margin-bottom: 10px; }
.pdp-radio { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.pdp-swatches, .pdp-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.pdp-swatch { width: 40px; height: 40px; margin: 0; cursor: pointer; background: var(--sw); border: 1px solid #d4d4d4; box-shadow: inset 0 0 0 3px #fff; transition: border-color .15s; }
.pdp-radio:checked + .pdp-swatch { border: 2px solid var(--ink); }
.pdp-chip { min-width: 52px; height: 44px; padding: 0 16px; margin: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #d4d4d4; background: #fff; font-size: 14px; font-weight: 700; cursor: pointer; transition: all .15s; }
.pdp-chip:hover { border-color: var(--ink); }
.pdp-radio:checked + .pdp-chip { background: var(--ink); border-color: var(--ink); color: #fff; }

.pdp-buy { display: flex; gap: 10px; align-items: stretch; margin: 6px 0 22px; }
.pdp-buy-price { display: none; }
.pdp-qty { display: flex; align-items: center; border: 1px solid #d4d4d4; height: 54px; flex: 0 0 auto; background: #fff; }
.pdp-qty button { width: 44px; height: 100%; border: 0; background: transparent; font-size: 20px; cursor: pointer; color: var(--ink); }
.pdp-qty input { width: 40px; height: 100%; border: 0; text-align: center; font-size: 16px; font-weight: 800; background: transparent; outline: 0; }
.pdp-cta { flex: 1; height: 54px; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--ink); color: #fff; border: 0; font-size: 16px; font-weight: 800; cursor: pointer; transition: background .15s; }
.pdp-cta:hover { background: #000; }
.pdp-cta.is-loading { opacity: .7; pointer-events: none; }
.pdp-cta.is-disabled { background: #eee; color: #9a9a9a; cursor: not-allowed; }

.pdp-perks { list-style: none; padding: 16px 0; margin: 0 0 8px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; border-top: 1px solid var(--ln); border-bottom: 1px solid var(--ln); }
.pdp-perks li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: #374151; }
.pdp-perks svg { flex: 0 0 auto; color: var(--t); }

.pdp-acc-item { border-bottom: 1px solid var(--ln); }
.pdp-acc-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font-size: 16px; font-weight: 800; }
.pdp-acc-item summary::-webkit-details-marker { display: none; }
.pdp-acc-item summary::after { content: "+"; font-size: 22px; font-weight: 400; line-height: 1; }
.pdp-acc-item[open] summary::after { content: "−"; }
.pdp-acc-body { padding: 0 0 18px; font-size: 14.5px; line-height: 1.9; color: #4b5563; }
.pdp-specs { display: grid; grid-template-columns: max-content 1fr; gap: 8px 24px; margin: 0; }
.pdp-specs dt { color: var(--mut); font-weight: 600; }
.pdp-specs dd { margin: 0; font-weight: 700; color: var(--ink); }

.pdp-related { background: #fff; padding-top: 10px; }

/* tablet */
@media (max-width: 991.98px) {
    .pdp-wrap { gap: 32px; padding: 0 16px; }
    .pdp-title { font-size: 24px; }
    .pdp-perks { grid-template-columns: 1fr; }
}

/* mobile */
@media (max-width: 767.98px) {
    .pdp { padding: 0 0 110px; }
    .pdp-wrap { grid-template-columns: 1fr; gap: 18px; padding: 0; }
    .pdp-gallery { position: static; display: block; }
    .pdp-thumbs { display: none; }
    .pdp-stage { border: 0; border-bottom: 1px solid var(--ln); }
    .pdp-stage:hover .pdp-slide img { transform: none; }
    .pdp-dots { display: flex; justify-content: center; gap: 6px; position: absolute; bottom: 12px; left: 0; right: 0; }
    .pdp-dot { width: 7px; height: 7px; border-radius: 50% !important; background: #d4d4d4; transition: width .2s, background .2s; }
    .pdp-dot.is-active { width: 20px; border-radius: 4px !important; background: var(--ink); }
    .pdp-info { padding: 0 16px; }
    .pdp-title { font-size: 21px; }
    .pdp-price-now { font-size: 24px; }

    .pdp-buy {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000003; margin: 0;
        background: #fff; border-top: 1px solid var(--ln); box-shadow: 0 -8px 24px rgba(0,0,0,.08);
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); gap: 8px; align-items: center;
    }
    .pdp-buy-price { display: flex; flex-direction: column; justify-content: center; font-weight: 800; font-size: 16px; white-space: nowrap; padding-inline-end: 2px; }
    .pdp-buy-price small { font-size: 11px; color: var(--mut); }
    .pdp-qty { height: 48px; }
    .pdp-qty button { width: 34px; }
    .pdp-qty input { width: 28px; }
    .pdp-cta { height: 48px; font-size: 15px; }
    .pdp-cta svg { display: none; }
}

/* zoom hint */
.pdp-zoom-hint { position: absolute; bottom: 14px; inset-inline-start: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.92); padding: 6px 10px; font-size: 12px; font-weight: 700; color: #111; pointer-events: none; }
@media (max-width: 767.98px) { .pdp-zoom-hint { display: none; } }

/* lightbox */
.pdp-lb { position: fixed; inset: 0; z-index: 2000000; background: rgba(10,10,10,.94); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s; }
.pdp-lb.is-open { opacity: 1; visibility: visible; }
.pdp-lb-img { max-width: min(92vw, 1100px); max-height: 86vh; object-fit: contain; user-select: none; -webkit-user-drag: none; transition: transform .25s ease; cursor: zoom-in; }
.pdp-lb-img.is-zoomed { transform: scale(1.8); cursor: zoom-out; }
.pdp-lb-btn { position: absolute; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer; font-size: 26px; line-height: 1; transition: background .15s; padding: 0; }
.pdp-lb-btn:hover { background: rgba(255,255,255,.25); }
.pdp-lb-close { top: 18px; right: 18px; }
.pdp-lb-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.pdp-lb-next { right: 18px; top: 50%; transform: translateY(-50%); }
.pdp-lb-count { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .05em; }
@media (max-width: 767.98px) { .pdp-lb-prev, .pdp-lb-next { display: none; } .pdp-lb-img { max-width: 100vw; } }
