/* Product: 16 columns, gallery stacked in 9, info sticky in 7. Everything is text and 2px rules. */
.kv-pdp { padding-top: 12px; padding-bottom: 160px; }
.kv-pdp__grid { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: var(--gut); align-items: start; }
.kv-pdp__media { grid-column: 1 / span 9; min-width: 0; display: grid; gap: var(--gut); align-content: start; }
.kv-pdp__gallery { display: grid; gap: var(--gut); }
.kv-pdp__gallery[hidden] { display: none; }
.kv-pdp__tabs { display: flex; gap: 10px; }
.kv-pdp__tab { padding: 2px 10px; }
.kv-pdp__shot--scene { aspect-ratio: 4 / 5; }
.kv-pdp__shot { position: relative; margin: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.kv-pdp__shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kv-pdp__shot img.is-contain { object-fit: contain; mix-blend-mode: multiply; filter: contrast(1.04); }
html[data-theme="gece"] .kv-pdp__shot:has(img.is-contain), html[data-theme="lacivert"] .kv-pdp__shot:has(img.is-contain) { background: var(--photo); }
html[data-theme="gece"] .kv-pdp__shot img.is-contain, html[data-theme="lacivert"] .kv-pdp__shot img.is-contain { mix-blend-mode: normal; padding: 6%; }
.kv-pdp__info { grid-column: 10 / span 7; position: sticky; top: 112px; display: grid; gap: 0; min-width: 0; }
.kv-pdp__info .kv-back { margin-bottom: 16px; }
.kv-pdp__title { font-size: var(--t-h1); font-weight: 500; line-height: 0.9; letter-spacing: -0.025em; margin-bottom: 20px; text-wrap: balance; }
.kv-pdp__price { font-size: var(--t-price); line-height: 1; letter-spacing: -0.025em; margin-bottom: 40px; font-variant-numeric: tabular-nums; }
.kv-pdp__price del { color: var(--ink-2); margin-right: 0.3em; } .kv-pdp__price ins { text-decoration: none; }
.kv-pdp__price .screen-reader-text { display: none; }
.kv-pdp__desc { font-size: var(--t-ui); line-height: 1.25; letter-spacing: -0.025em; max-width: 491px; margin-bottom: 40px; }
.kv-pdp__row { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 16px 0; margin: 0; border-top: 2px solid currentColor; font-size: var(--t-ui); letter-spacing: -0.025em; line-height: 1.33; }
.kv-pdp__row dt { flex: none; }
.kv-pdp__row dd { min-width: 0; }
.kv-pdp__qtyrow { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 12px 0; margin-bottom: 32px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; font-size: var(--t-ui); letter-spacing: -0.025em; }
.kv-pdp__qtyrow .quantity { font-size: var(--t-ui); gap: 16px; }
.kv-pdp__qtyrow .kv-qty-btn { width: 28px; height: 28px; }
.kv-pdp__actions { display: grid; gap: 12px; justify-items: start; }
.kv-pdp__quote-title { font-size: var(--t-ui); letter-spacing: -0.025em; line-height: 1.25; }
.kv-pdp__status { font-size: 16px; letter-spacing: -0.01em; min-height: 24px; }
.kv-pdp__status a { text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 2px; }
.kv-pdp__links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 40px; font-size: 16px; }
.kv-pdp__meta { font-size: var(--t-meta); font-weight: 700; margin-bottom: 24px; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.kv-pdp__below { margin-top: var(--block); display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: var(--gut); }
.kv-pdp__below .kv-pdp__intro { grid-column: 1 / span 6; font-size: var(--t-ui); line-height: 1.25; letter-spacing: -0.025em; max-width: 24ch; }
.kv-pdp__below .kv-acc { grid-column: 8 / span 9; }
.kv-pdp__inquiry { margin-top: var(--block); display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: var(--gut); }
.kv-pdp__inquiry > div:first-child { grid-column: 1 / span 6; display: grid; gap: 24px; align-content: start; }
.kv-pdp__inquiry .kv-inquiry { grid-column: 8 / span 9; }
.kv-related { margin-top: var(--block); }
@media (max-width: 1023px) {
  .kv-pdp__media, .kv-pdp__info, .kv-pdp__below .kv-pdp__intro, .kv-pdp__below .kv-acc, .kv-pdp__inquiry > div:first-child, .kv-pdp__inquiry .kv-inquiry { grid-column: 1 / -1; }
  .kv-pdp__grid { grid-template-columns: 1fr; }
  /* Mobile order: name, the photo, then price, options and the rest. */
  .kv-pdp__info { display: contents; }
  .kv-pdp__info-top { order: -2; display: grid; gap: 16px; }
  .kv-pdp__media { order: -1; margin-bottom: 32px; }
  .kv-pdp__gallery[data-set="scene"] { display: flex; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--margin) * -1); padding-inline: var(--margin); }
  .kv-pdp__gallery[hidden] { display: none; }
  .kv-pdp__tabs { margin-bottom: 0; }
  .kv-pdp__gallery::-webkit-scrollbar { display: none; }
  .kv-pdp__gallery[data-set="scene"] .kv-pdp__shot { flex: none; width: 85vw; aspect-ratio: 4 / 5; }
  .kv-pdp__gallery[data-set="product"] { margin-inline: 0; padding-inline: 0; }
  .kv-pdp { padding-bottom: 96px; }
}

/* WooCommerce variations rendered as rows of chips. The hidden select keeps Woo's JS working. */
.variations_form, form.cart { display: contents; }
.variations { width: 100%; border-collapse: collapse; display: block; }
.variations tbody, .variations tr, .variations th, .variations td { display: block; }
.variations tr { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 16px 0; margin: 0; border-top: 2px solid currentColor; }
.variations th { padding: 0; text-align: left; font-weight: 400; font-size: var(--t-ui); letter-spacing: -0.025em; line-height: 1.5; }
.variations th label .kv-var-value { display: none; }
.variations td { padding: 0; min-width: 0; }
.variations select { display: none !important; }
.variations .reset_variations { display: none !important; }
.single_variation_wrap { display: contents; }
.woocommerce-variation { display: grid; gap: 4px; font-size: 16px; }
.woocommerce-variation-price { display: none; }
.woocommerce-variation-availability { font-size: 16px; color: var(--ink-2); }
.woocommerce-variation-availability p { margin: 0; }
.woocommerce-variation-add-to-cart, .kv-pdp__simple { display: contents; }
.single_add_to_cart_button { position: relative; display: inline-flex; align-items: center; overflow: hidden; font-size: var(--t-cta); line-height: 1.1; letter-spacing: -0.02em; white-space: nowrap; background: none; border: 0; padding: 0; color: inherit; transition: opacity 300ms var(--e-io); }
.single_add_to_cart_button > svg { width: 0.5em; height: 0.5em; fill: currentColor; flex: none; transition: translate var(--d-hover) var(--e-cta); }
.single_add_to_cart_button > svg:first-child { position: absolute; left: 0; top: 50%; translate: -1em -50%; }
.single_add_to_cart_button > span { margin-right: 0.5em; transition: translate var(--d-hover) var(--e-cta); }
.single_add_to_cart_button:hover > span, .single_add_to_cart_button:hover > svg:last-child { translate: 1em 0; }
.single_add_to_cart_button:hover > svg:first-child { translate: 0 -50%; }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled, .single_add_to_cart_button.wc-variation-selection-needed { opacity: 0.45; }
.single_add_to_cart_button.is-busy { opacity: 0.45; pointer-events: none; }
.quantity { display: inline-flex; align-items: center; gap: 24px; font-size: var(--t-cta); line-height: 1.1; }
.quantity .qty { width: 2ch; text-align: center; border: 0; background: transparent; font: inherit; padding: 0; -moz-appearance: textfield; }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; }
.kv-qty-btn { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-size: inherit; line-height: 1; transition: opacity 100ms, transform 100ms; }
.kv-qty-btn:hover { opacity: 0.8; } .kv-qty-btn:active { transform: scale(0.9); }
.stock.out-of-stock { font-size: var(--t-cta); }

/* Inquiry form: rules, no boxes. */
.kv-inquiry { display: grid; gap: 32px; }
.kv-inquiry__hp { position: absolute; left: -9999px; }
.kv-inquiry__context { font-size: 16px; display: flex; gap: 12px; }
.kv-inquiry__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 24px; }
.kv-inquiry__grid .kv-field--full { grid-column: 1 / -1; }
.kv-inquiry .kv-pills { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.kv-inquiry .kv-pill { font-size: 24px; letter-spacing: -0.025em; padding: 0 8px; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow 300ms; }
.kv-inquiry .kv-pill:hover { box-shadow: inset 0 0 0 1px currentColor; }
.kv-pill-radio { position: relative; }
.kv-pill-radio input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.kv-pill-radio input:checked + .kv-pill { background: var(--ink); color: var(--paper); }
.kv-inquiry__actions { display: grid; gap: 16px; justify-items: start; }
.kv-inquiry__fine { font-size: 12px; font-weight: 700; color: var(--ink-2); }
.kv-inquiry__notice { font-size: 24px; letter-spacing: -0.025em; }
@media (max-width: 767px) { .kv-inquiry__grid { grid-template-columns: 1fr; } }

/* WooCommerce appends its own "View cart" link after an AJAX add; the status line already says it. */
.added_to_cart { display: none; }

.kv-pdp__row + .kv-pdp__actions { border-top: 2px solid currentColor; padding-top: 16px; }
.kv-pdp__desc { margin-bottom: 24px; }
/* Colour chips: label column on the left, chips flow left-aligned in one block so wrapped rows stay in a column. */
.variations th { flex: 0 0 30%; }
.variations td { flex: 1; }
.variations .kv-chips { justify-content: flex-start; gap: 10px; }
.variations .kv-chip { white-space: nowrap; max-width: 100%; }
@media (min-width: 1024px) { .variations th { flex-basis: 22%; } }
/* Space between the add-to-cart button and the line under it. */
.kv-pdp__status { margin-top: 16px; }
.kv-pdp__status:empty { display: none; }

.kv-pdp__shot:has(img.is-alpha) { background: none !important; }

/* rooms on the left (fixed), cutouts of the chosen colour on the right */
.kv-pdp__media.has-scene { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.kv-pdp__media.has-scene .kv-pdp__gallery[data-set="product"] { grid-template-columns: 1fr; gap: calc(var(--gut) / 2); }
.kv-pdp__media.has-scene .kv-pdp__scenecol { position: sticky; top: 88px; }
.kv-pdp__media:not(.has-scene) .kv-pdp__gallery[data-set="product"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--gut) / 2); }
.kv-pdp__gallery[data-set="product"] .kv-pdp__shot { aspect-ratio: 4 / 5; }
.kv-pdp__shot[hidden] { display: none; }
.kv-pdp__scenecol .kv-pdp__gallery { gap: calc(var(--gut) / 2); }
@media (max-width: 900px) { .kv-pdp__media.has-scene { grid-template-columns: 1fr; } .kv-pdp__media.has-scene .kv-pdp__gallery[data-set="product"] { order: -1; } .kv-pdp__media.has-scene .kv-pdp__scenecol { position: static; } }
.kv-pdp__gallery--detail .kv-pdp__shot { background: none; }
.kv-pdp__gallery--detail .kv-pdp__shot img { object-fit: cover !important; mix-blend-mode: normal !important; filter: none !important; padding: 0 !important; }
