/* ==========================================================================
   PddFalcon storefront — product page
   Gallery, buy panel, variant choosers, multi-variant picker, delivery check,
   specs, reviews, sticky buy bar.
   ========================================================================== */

.s-pdp { display: grid; gap: var(--s-6); align-items: start; }
@media (min-width: 62rem) { .s-pdp { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--s-10); } }

/* Gallery */
.s-gallery { display: grid; gap: var(--s-3); }
@media (min-width: 62rem) { .s-gallery { grid-template-columns: 4.5rem minmax(0, 1fr); position: sticky; inset-block-start: 8.5rem; } .s-gallery--single { grid-template-columns: 1fr; } .s-gallery__thumbs { order: -1; flex-direction: column; } }
.s-gallery__stage { position: relative; aspect-ratio: 1; overflow: hidden; background: #fff; border: 1px solid var(--s-line); border-radius: var(--s-radius-lg); cursor: zoom-in; }
.s-gallery__photo { inline-size: 100%; block-size: 100%; object-fit: contain; padding: var(--s-4); transition: transform var(--s-base) var(--s-ease); }
.s-gallery__stage.is-zoomed { cursor: zoom-out; }
.s-gallery__stage.is-zoomed .s-gallery__photo { transform: scale(2); transform-origin: var(--zoom-x, 50%) var(--zoom-y, 50%); }
.s-gallery__shield { position: absolute; inset: 0; }
.s-gallery__thumbs { display: flex; gap: 0.5rem; overflow: auto; scrollbar-width: none; }
.s-gallery__thumb { flex: none; inline-size: 4.5rem; block-size: 4.5rem; padding: 3px; border: 1px solid var(--s-line); border-radius: var(--s-radius); background: #fff; transition: border-color var(--s-fast) var(--s-ease); }
.s-gallery__thumb img { inline-size: 100%; block-size: 100%; object-fit: contain; border-radius: 4px; }
.s-gallery__thumb.is-active, .s-gallery__thumb:hover { border-color: var(--s-brand-800); }
.s-lightbox { position: fixed; inset: 0; z-index: var(--s-z-modal); display: grid; place-items: center; background: rgb(6 16 49 / 0.92); }
.s-lightbox img { max-inline-size: 92vw; max-block-size: 90dvh; object-fit: contain; }

/* Buy panel */
.s-pdp__cat { color: var(--s-accent-600); font-weight: 700; letter-spacing: var(--s-tracking-caps); text-transform: uppercase; font-size: var(--s-text-2xs); margin-block-end: 0.35rem; }
.s-pdp__title { font-size: clamp(1.35rem, 1rem + 1.4vw, 1.9rem); margin-block-end: 0.5rem; }
.s-pdp__brand { font-size: var(--s-text-sm); color: var(--s-muted); margin-block-end: 0.5rem; }
.s-pdp__brand a { color: var(--s-brand-500); font-weight: 600; }
.s-pdp__price-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.6rem; margin-block: var(--s-3); }
.s-pdp__price { font-size: var(--s-text-3xl); font-weight: 800; color: var(--s-ink); letter-spacing: -0.02em; }
.s-pdp__mrp { color: var(--s-muted); text-decoration: line-through; font-size: var(--s-text-md); }
.s-pdp__off { color: var(--s-success); font-weight: 700; font-size: var(--s-text-md); }
.s-pdp__tax { inline-size: 100%; color: var(--s-muted); font-size: var(--s-text-xs); }
.s-stockline { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--s-text-sm); font-weight: 600; }
.s-stockline::before { content: ""; inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: currentColor; }
.s-stockline--in { color: var(--s-success); }
.s-stockline--low { color: var(--s-warn); }
.s-stockline--out { color: var(--s-danger); }
.s-pdp__block { padding-block: var(--s-4); border-block-start: 1px solid var(--s-line); }
.s-pdp__block-title { font-family: var(--s-font-body); font-size: var(--s-text-sm); font-weight: 700; color: var(--s-ink); margin-block-end: var(--s-3); }
.s-pdp__buy { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); }
.s-pdp__buy .s-btn--primary { flex: 1 1 12rem; min-block-size: 3rem; }
.s-pdp__returns { background: var(--s-cream); border-radius: var(--s-radius); padding: var(--s-4); border: 0; }
.s-pdp__returns-line { font-size: var(--s-text-sm); font-weight: 600; }

/* Choices */
.s-choices { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.s-choice { display: inline-flex; align-items: center; gap: 0.4rem; min-block-size: 2.5rem; padding: 0.4rem 0.9rem; border: 1px solid var(--s-line); border-radius: var(--s-radius); background: var(--s-surface); color: var(--s-ink); font-size: var(--s-text-sm); font-weight: 600; transition: border-color var(--s-fast) var(--s-ease), background-color var(--s-fast) var(--s-ease); }
.s-choice:hover { border-color: var(--s-brand-500); }
.s-choice.is-active, .s-choice[aria-pressed="true"] { border-color: var(--s-brand-800); background: var(--s-brand-100); color: var(--s-brand-800); box-shadow: inset 0 0 0 1px var(--s-brand-800); }
.s-choice.is-unavailable { opacity: 0.45; text-decoration: line-through; }
.s-choice--swatch { padding: 0.3rem; border-radius: 50%; }
.s-choice__dot { inline-size: 1.6rem; block-size: 1.6rem; border-radius: 50%; background: var(--s-choice-colour, #ccc); box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.1); }
.s-choices--swatch .s-choice__label { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Multi-variant picker */
.s-picker { display: grid; gap: 0.5rem; }
.s-picker__row { display: grid; grid-template-columns: auto 3.25rem minmax(0, 1fr) auto auto; align-items: center; gap: var(--s-3); padding: 0.6rem 0.75rem; border: 1px solid var(--s-line); border-radius: var(--s-radius); background: var(--s-surface); transition: border-color var(--s-fast) var(--s-ease), background-color var(--s-fast) var(--s-ease); }
.s-picker__row:has(input:checked) { border-color: var(--s-brand-800); background: var(--s-brand-100); }
.s-picker__row.is-out { opacity: 0.6; }
.s-picker__check { inline-size: 1.15rem; block-size: 1.15rem; margin: 0; accent-color: var(--s-brand-700); }
.s-picker__thumb { inline-size: 3.25rem; block-size: 3.25rem; object-fit: contain; border-radius: var(--s-radius-sm); background: #fff; border: 1px solid var(--s-line); }
.s-picker__name { font-weight: 600; font-size: var(--s-text-sm); color: var(--s-ink); }
.s-picker__meta { font-size: var(--s-text-xs); color: var(--s-muted); }
.s-picker__price { font-weight: 700; font-size: var(--s-text-sm); white-space: nowrap; text-align: end; }
.s-picker__sub { display: block; color: var(--s-muted); font-weight: 500; font-size: var(--s-text-2xs); }
.s-picker__total { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); margin-block-start: var(--s-3); padding: var(--s-4); border-radius: var(--s-radius); background: var(--s-cream); }
.s-picker__total strong { font-size: var(--s-text-xl); }
.s-picker__total small { display: block; color: var(--s-muted); font-size: var(--s-text-xs); }
@media (max-width: 39.99rem) { .s-picker__row { grid-template-columns: auto 2.75rem minmax(0, 1fr); } .s-picker__row .s-qty, .s-picker__price { grid-column: 2 / -1; } .s-picker__price { text-align: start; } }

/* Delivery check */
.s-pincode { display: grid; gap: 0.5rem; }
.s-pincode__row { display: flex; gap: 0.5rem; }
.s-pincode__row .s-input { flex: 1; max-inline-size: 12rem; }
.s-pincode__result { font-size: var(--s-text-sm); }
.s-pincode__result.is-ok { color: var(--s-success); font-weight: 600; }
.s-pincode__result.is-bad { color: var(--s-danger); font-weight: 600; }
.s-policy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); margin-block-start: var(--s-3); }
.s-policy__item { display: grid; justify-items: center; gap: 0.3rem; padding: 0.6rem 0.4rem; border: 1px solid var(--s-line); border-radius: var(--s-radius); text-align: center; font-size: var(--s-text-2xs); color: var(--s-ink-soft); background: var(--s-surface); }
.s-policy__item svg { inline-size: 1.4rem; block-size: 1.4rem; color: var(--s-brand-700); }

/* Specs */
.s-specs th, .s-specs td { padding: 0.55rem 0.75rem; font-size: var(--s-text-sm); text-align: start; vertical-align: top; }
.s-specs tr:nth-child(odd) { background: var(--s-cream); }
.s-specs th { inline-size: 36%; font-weight: 600; color: var(--s-muted); }
.s-specs td { color: var(--s-ink); }
.s-whatsapp { display: inline-flex; align-items: center; gap: 0.5rem; margin-block-start: var(--s-3); color: #128c7e; font-weight: 600; font-size: var(--s-text-sm); }

/* Reviews */
.s-reviews { display: flex; gap: var(--s-4); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-block: 0.25rem; }
.s-reviews::-webkit-scrollbar { display: none; }
.s-review { flex: 0 0 min(85vw, 20rem); scroll-snap-align: start; padding: var(--s-5); background: var(--s-surface); border: 1px solid var(--s-line); border-radius: var(--s-radius-lg); }
.s-review__title { font-family: var(--s-font-body); font-size: var(--s-text-md); margin-block: 0.35rem; }
.s-review__body { color: var(--s-ink-soft); font-size: var(--s-text-sm); }
.s-review__meta { margin-block-start: var(--s-3); color: var(--s-muted); font-size: var(--s-text-xs); }
.s-review__verified { color: var(--s-success); font-weight: 600; }
.s-review__reply { margin-block-start: var(--s-3); padding: var(--s-3); border-inline-start: 3px solid var(--s-brand-200); background: var(--s-cream); }
.s-reviews__empty { max-inline-size: 42rem; }
.s-request { display: grid; gap: var(--s-4); }
.s-request__actions { display: flex; gap: var(--s-3); }

/* Sticky buy (phone) */
.s-stickybuy { position: fixed; inset-inline: 0; inset-block-end: calc(var(--s-bottomnav-height) + var(--s-safe-bottom)); z-index: 105; display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); padding: 0.6rem var(--s-gutter); background: var(--s-surface); border-block-start: 1px solid var(--s-line); box-shadow: 0 -6px 20px rgb(6 16 49 / 0.08); translate: 0 120%; transition: translate var(--s-base) var(--s-ease); }
.s-stickybuy.is-shown, .s-stickybuy.is-on { translate: 0; }
.s-stickybuy__price { font-weight: 800; font-size: var(--s-text-lg); }
.s-stickybuy .s-btn { flex: 1; }
@media (min-width: 62rem) { .s-stickybuy { display: none; } }
.s-gallery__stage.is-zooming { cursor: zoom-in; }
.s-gallery__stage.is-zooming .s-gallery__photo { transition: none; }
.s-lightbox { opacity: 0; visibility: hidden; transition: opacity var(--s-base) var(--s-ease); }
.s-lightbox.is-open { opacity: 1; visibility: visible; }
.s-lightbox.is-zoomed img { max-inline-size: none; max-block-size: none; inline-size: 180vw; cursor: zoom-out; }
.s-band--pdp { padding: var(--s-4); }
@media (min-width: 62rem) { .s-band--pdp { padding: var(--s-6); } }
.s-pdp__panel { min-inline-size: 0; }
.s-pdp__cat a { color: inherit; }
.s-pdp__from { color: var(--s-muted); font-size: var(--s-text-sm); }
.s-pdp__summary { color: var(--s-ink-soft); font-size: var(--s-text-sm); margin-block-end: var(--s-2); }
.s-pdp__hint { font-weight: 400; color: var(--s-muted); }
.s-pdp__secondary { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block-start: var(--s-3); }
.s-pdp__policy-note { margin-block-start: var(--s-3); }
.s-gallery__badges { position: absolute; inset-block-start: 0.75rem; inset-inline-start: 0.75rem; display: flex; flex-direction: column; gap: 0.25rem; z-index: 2; }
.s-gallery__stage.is-zooming .s-gallery__photo { transition: none; }
@media (max-width: 61.99rem) { .s-gallery__thumbs { order: 1; } }
