/* Impluse product page (doc 107). Tokens only, logical properties, no important-flags. Selectors are prefixed (.imp-pdp ...) so they out-rank the platform's generic .size-lists / .quantity rules. */
.imp-pdp { padding-block: 1.25rem 3rem; }
.imp-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-block-end: 1.5rem; }
.imp-crumbs a:hover { text-decoration: underline; }
.imp-pdp-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }

.imp-gallery { display: grid; gap: 1rem; }
.imp-gallery-main { position: relative; border-radius: var(--imp-radius); overflow: hidden; background: var(--imp-surface); aspect-ratio: 1 / 1.05; }
.imp-gallery-main img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imp-gallery-thumbs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr)); gap: .75rem; }
.imp-thumb { display: block; inline-size: 100%; aspect-ratio: 1; padding: 0; border: 1px solid var(--imp-line); border-radius: var(--imp-radius-sm); overflow: hidden; background: var(--imp-surface); cursor: pointer; }
.imp-thumb img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imp-thumb:hover, .imp-thumb:focus-visible { border-color: var(--imp-ink); outline: 0; box-shadow: var(--imp-focus); }

.imp-pdp-details { display: grid; gap: 1.25rem; position: sticky; inset-block-start: 1.5rem; }
.imp-pdp-title { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 300; line-height: 1.1; letter-spacing: -.02em; margin: 0; }
.imp-badge--inline { position: static; display: inline-block; vertical-align: middle; margin-inline-start: .5rem; }
.imp-pdp-price { display: flex; align-items: baseline; gap: .75rem; }
.imp-pdp-price .flash-prices { font-size: 1.6rem; font-weight: 500; margin: 0; }
.imp-pdp-price .flash-old-prices { color: var(--imp-ink-soft); text-decoration: line-through; font-size: 1.05rem; }
.imp-pdp-stock { display: flex; gap: .75rem; align-items: center; margin: 0; font-size: .9rem; }
.imp-in { color: #1d7a3a; font-weight: 500; }
.imp-out { color: var(--imp-danger); font-weight: 500; }
.imp-campaign { border: 1px solid var(--imp-line); border-radius: var(--imp-radius-sm); padding: 1rem; }

.imp-pdp .imp-variants { display: grid; gap: 1.25rem; }
.imp-pdp .imp-variant-title { display: flex; align-items: center; gap: .6rem; margin-block-end: .6rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.imp-pdp .imp-variant-value { border: 0; padding: 0; min-block-size: 0; inline-size: auto; flex: 1; background: transparent; color: var(--imp-ink-soft); text-transform: none; letter-spacing: 0; font-size: .85rem; }
.imp-pdp .imp-variant-value:focus { box-shadow: none; }
.imp-pdp ul.size-lists { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.imp-pdp ul.size-lists.imp-chips li.list { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 2.75rem; min-block-size: 40px; padding: .3rem .9rem; border: 1px solid var(--imp-line); border-radius: 999px; background: var(--imp-white); color: var(--imp-ink); font-size: .8rem; cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.imp-pdp ul.size-lists.imp-chips li.list:hover { border-color: var(--imp-ink); }
.imp-pdp ul.size-lists.imp-chips li.list.active, .imp-pdp ul.size-lists.imp-chips li.list.selected { background: var(--imp-ink); color: var(--imp-white); border-color: var(--imp-ink); }
.imp-pdp ul.size-lists.imp-swatches li { inline-size: 2.2rem; block-size: 2.2rem; border-radius: 50%; border: 1px solid var(--imp-line); cursor: pointer; padding: 0; }
.imp-pdp ul.size-lists.imp-swatches li.active, .imp-pdp ul.size-lists.imp-swatches li.selected { outline: 2px solid var(--imp-ink); outline-offset: 2px; }

.imp-buy { display: grid; gap: 1rem; }
.imp-qty-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.imp-qty.product-quantity { display: inline-flex; align-items: center; border: 1px solid var(--imp-line); border-radius: 999px; overflow: hidden; background: var(--imp-white); }
.imp-qty .substract, .imp-qty .plus { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; cursor: pointer; user-select: none; }
.imp-qty .substract:hover, .imp-qty .plus:hover { background: var(--imp-surface); }
.imp-qty .quantity-input { inline-size: 3.2rem; block-size: 2.75rem; min-block-size: 0; border: 0; border-radius: 0; text-align: center; padding: 0; background: transparent; appearance: textfield; }
.imp-buy-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.imp-buy-actions .imp-btn { flex: 1 1 10rem; }
.imp-icon-btn { display: grid; place-items: center; inline-size: 2.9rem; block-size: 2.9rem; border: 1px solid var(--imp-line); border-radius: 50%; font-size: 1.15rem; color: var(--imp-ink); transition: border-color .2s, background .2s, color .2s; }
.imp-icon-btn:hover { border-color: var(--imp-ink); background: var(--imp-ink); color: var(--imp-white); }

.imp-delivery { list-style: none; margin: 0; padding: 1rem 0 0; border-block-start: 1px solid var(--imp-line); display: grid; gap: .9rem; }
.imp-delivery li { display: flex; gap: .9rem; align-items: start; }
.imp-delivery i { font-size: 1.4rem; }
.imp-delivery strong { display: block; font-size: .9rem; font-weight: 500; }
.imp-meta { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; margin: 0; padding-block-start: 1rem; border-block-start: 1px solid var(--imp-line); font-size: .85rem; }
.imp-meta dt { color: var(--imp-ink-soft); }
.imp-meta dd { margin: 0; }
.imp-meta a:hover { text-decoration: underline; }
.imp-share { display: flex; align-items: center; gap: 1rem; }
.imp-share .social_share_wrapper_item { display: flex; gap: .5rem; list-style: none; margin: 0; padding: 0; }

.imp-pdp-tabs { padding-block: 2rem 3rem; }
.imp-pdp-tabs .imp-tabs { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0 0 1.5rem; padding: 0; border: 0; }
.imp-pdp-tabs .imp-tabs li { padding: .55rem 1.4rem; border: 1px solid var(--imp-line); border-radius: 999px; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.imp-pdp-tabs .imp-tabs li.active { background: var(--imp-ink); color: var(--imp-white); border-color: var(--imp-ink); }
.imp-pdp-tabs .tab-content-item { max-inline-size: 60rem; color: var(--imp-ink-soft); line-height: 1.7; }
.imp-pdp-tabs .review-form { margin-block: 0 2rem; }
.imp-pdp-tabs .about-seller-flex-content { display: flex; gap: 1rem; padding-block: 1.25rem; border-block-end: 1px solid var(--imp-line); }
.imp-pdp-tabs .about-seller-thumb img { inline-size: 3rem; block-size: 3rem; border-radius: 50%; object-fit: cover; }

.imp-related { padding-block: 2rem 4rem; }
.imp-related .imp-h2 { margin-block-end: 1.5rem; }

@media (max-width: 991px) {
    .imp-pdp-grid { grid-template-columns: minmax(0, 1fr); }
    .imp-pdp-details { position: static; }
}

/* digital product page */
.imp-gallery-main--cover { aspect-ratio: 4 / 5; }
.imp-pdp-summary { margin: 0; line-height: 1.6; }
.imp-instant { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .88rem; }
.imp-instant i { margin-inline-end: .5rem; font-size: 1.1rem; vertical-align: middle; }
.imp-related-side { display: grid; gap: 1rem; }
.imp-related-side .imp-h3 { margin: 0; }
.imp-related-list { display: grid; gap: .75rem; }
.imp-related-item { display: flex; gap: 1rem; align-items: center; padding: .6rem; border: 1px solid var(--imp-line); border-radius: var(--imp-radius-sm); transition: border-color .2s; }
.imp-related-item:hover { border-color: var(--imp-ink); }
.imp-related-thumb { flex: none; inline-size: 4rem; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--imp-surface); }
.imp-related-thumb img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imp-related-text { display: grid; gap: .15rem; font-size: .88rem; }
