/*
 * WEBGLOBE MAINTAINER NOTES
 *
 * Present a shareable product page with variants, gallery, stock and purchase information.
 *
 * The selectors form a contract with the rendered markup and browser interactions. Preserve
 * keyboard focus, disabled/hidden states and the smaller-screen rules when adjusting the
 * cascade; an attractive desktop layout is not sufficient evidence of usable mobile forms.
 *
 * Keep stable product and variant identities distinct from editable labels and presentation.
 * Prices, availability and discount eligibility used for an order must be checked by the server
 * when the customer acts.
 */
/* Product detail pages share the store's typography, bag and navigation. */
.kp-main { max-width:1440px; }
.kp-breadcrumb { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:24px 32px;font-size:12px;color:#62675a; }
.kp-breadcrumb a:hover { text-decoration:underline;text-underline-offset:4px; }
.kp-breadcrumb [aria-current] { color:var(--k-ink); }
.kp-layout { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:clamp(32px,5vw,76px);align-items:start; }
.kp-heading { grid-column:2;grid-row:1; }
.kp-label { display:inline-block;margin-bottom:12px;padding:3px 9px;border-radius:3px;font-size:11px;background:#e9ede1;color:#354521; }
.kp-gallery { min-width:0;grid-column:1;grid-row:1 / span 2; }
.kp-photo-stage { position:relative;background:#eeeadf;border-radius:4px;overflow:hidden; }
.kp-main-photo { display:block;padding:0;width:100%;cursor:zoom-in; }
.kp-main-photo>img { width:100%;height:auto;aspect-ratio:1;object-fit:contain; }
.kp-zoom-hint { position:absolute;bottom:18px;right:18px;display:flex;align-items:center;gap:7px;padding:8px 13px;background:#fffef9ed;border:1px solid #dedbd1;border-radius:24px;font-size:11px; }
.kp-zoom-hint .k-icon { width:15px;height:15px; }
.kp-photo-count { position:absolute;left:20px;bottom:23px;font-size:11px;background:#fffef9ed;padding:4px 9px;border-radius:20px; }
.kp-thumbnails { display:flex;gap:12px;margin-top:16px;overflow-x:auto;padding:3px; }
.kp-thumbnails button { flex:0 0 76px;padding:3px;border:1px solid transparent;border-radius:3px; }
.kp-thumbnails button[aria-pressed=true] { border-color:var(--k-olive); }
.kp-thumbnails img { width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:2px; }
.kp-image-note { font-size:11px;color:#62675a;line-height:1.6;margin-top:14px;max-width:520px; }
.kp-gallery-signature { margin-top:28px;padding-block:22px;border-top:1px solid var(--k-line);display:flex;align-items:center;gap:24px; }
.kp-gallery-signature>span { font:italic 24px var(--k-serif);white-space:nowrap; }
.kp-gallery-signature p { font-size:12px;color:#62675a; }
.kp-purchase { position:sticky;top:24px;grid-column:2;grid-row:2; }
.kp-overline { display:flex;justify-content:space-between;gap:12px;font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin-block:3px 15px;color:#62675a; }
.kp-heading h1 { font:400 clamp(35px,3.6vw,52px)/1.08 var(--k-serif);letter-spacing:-.045em;max-width:560px; }
.kp-intro { font-size:14px;color:#62675a;margin-top:20px;line-height:1.8; }
.kp-price-line { display:flex;align-items:baseline;gap:15px;flex-wrap:wrap;margin-top:24px; }
.kp-price-line .k-price { font-size:27px;line-height:1.4; }
.kp-price-line .k-price del { font-size:17px;font-weight:400;color:#777268; }
.kp-tax { font-size:11px;color:#62675a; }
.kp-offer { background:#edf0e7;border:1px solid #d8dfcc;border-radius:4px;padding:13px 16px;margin-top:16px;font-size:12px; }
.kp-offer strong { font-size:14px;color:#354521; }
.kp-offer p:empty { display:none; }.kp-bundle { padding:8px 0;text-decoration:underline;text-underline-offset:4px;font-weight:600; }
.kp-variants { min-width:0;margin:25px 0 20px;padding:0;border:0; }
.kp-variants legend { display:flex;flex-direction:column;font-size:12px;font-weight:600;margin-bottom:12px;width:100%; }
.kp-variants legend span { font-weight:400;font-size:13px;color:#62675a;margin-top:3px; }
.kp-variant-options { display:flex;flex-wrap:wrap;gap:9px; }
.kp-variant { display:grid;grid-template-columns:42px 1fr;align-items:center;column-gap:10px;min-width:min(100%,145px);max-width:100%;flex:1 1 140px;padding:8px 11px;border:1px solid #d9d9cf;border-radius:4px;font-size:12px;background:#fffefa; }
.kp-variant[aria-current] { border-color:var(--k-olive);box-shadow:inset 0 0 0 1px var(--k-olive);background:#f0f2e9; }
.kp-variant:hover { border-color:var(--k-olive); }
.kp-variant img { grid-row:span 2;width:42px;height:42px;object-fit:cover;border-radius:2px; }
.kp-variant-price { font-size:11px;color:#62675a; }
.kp-stock { display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px; }
.kp-stock>span { width:6px;height:6px;border-radius:50%;background:#667844; }
.kp-stock.is-backorder>span { background:#93622d; }
.kp-stock small { color:#62675a;font-size:11px; }
.kp-delivery { margin-top:7px;color:#62675a;font-size:12px;line-height:1.7; }
.kp-stock-alert { margin-top:18px;padding:16px;border:1px solid #d8dfcc;border-radius:4px;background:#f0f2e9;min-width:0; }
.kp-stock-alert h2 { font-family:inherit;font-weight:600;font-size:14px;line-height:1.5;margin:0; }
.kp-stock-alert p { margin-top:8px;font-size:12px;line-height:1.65;overflow-wrap:anywhere; }
.kp-stock-alert .kp-stock-alert-version { margin-top:3px;font-weight:600;color:#46523a; }
.kp-stock-alert-actions { display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:14px; }
.kp-stock-alert-actions .k-button { min-height:44px;max-width:100%;padding:10px 14px;border-radius:4px;font-size:12px;white-space:normal;text-align:center; }
.kp-stock-alert-actions .k-text-link { font-size:12px;white-space:normal; }
.kp-stock-alert-actions small { flex-basis:100%;font-size:11px;line-height:1.6;color:#62675a; }
.kp-stock-alert [data-stock-alert-toggle]:disabled { cursor:wait;opacity:.65; }
.kp-stock-alert-status:empty { display:none; }.kp-stock-alert-status.is-error { color:#8a3425; }
.kp-buy { display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:23px; }
.kp-quantity { flex:0 0 116px; }.kp-quantity label { display:block;font-size:11px;margin-bottom:6px; }
.kp-quantity>div { display:flex;height:50px;border:1px solid #cecec3;border-radius:4px;background:#fffefa; }
.kp-quantity button { width:36px;padding:0;flex-shrink:0; }.kp-quantity button:disabled { opacity:.3;cursor:default; }
.kp-quantity input { min-width:0;width:42px;text-align:center;border:0;background:none;appearance:textfield;-moz-appearance:textfield;font-size:14px; }
.kp-quantity input::-webkit-inner-spin-button,.kp-quantity input::-webkit-outer-spin-button { -webkit-appearance:none;margin:0; }
.kp-quantity > div { height: auto; min-height: 50px; }
.kp-quantity input { min-height: 2.5em; }
.kp-add { flex:1 1 10em;border-radius:4px;min-height:50px;gap:12px;font-size:14px; }
.kp-quantity-note { font-size:12px;margin-top:10px;color:#715326; }
.kp-secondary-actions { display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--k-line);padding-block:13px 18px; }
.kp-secondary-actions button { display:inline-flex;align-items:center;gap:8px;min-height:35px;padding:0;font-size:12px; }
.kp-secondary-actions .k-icon { width:16px;height:16px; }.kp-secondary-actions [aria-pressed=true] .k-icon { fill:#dce1d0;stroke:var(--k-olive); }
.kp-assurances { padding:0;list-style:none;margin:19px 0 15px;display:grid;gap:12px; }
.kp-assurances li { display:flex;align-items:flex-start;gap:11px;font-size:12px; }.kp-assurances .k-icon { width:18px;height:18px;flex:0 0 18px;color:var(--k-olive); }
.kp-demo-disclosure { font-size:11px;color:#62675a;line-height:1.7; }
.kp-information { margin-top:75px;padding-block:48px 20px;border-top:1px solid var(--k-line);display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(32px,6vw,90px); }
.kp-information h2 { font:400 clamp(32px,3vw,43px)/1.16 var(--k-serif);letter-spacing:-.035em;white-space:pre-line;margin-block:17px; }
.kp-information-intro>p:not(.k-eyebrow) { font-size:13px;color:#62675a;max-width:310px; }.kp-information-intro>.k-text-link { margin-top:23px;font-size:12px;white-space:normal; }
.kp-accordions details { border-bottom:1px solid var(--k-line); }.kp-accordions details:first-child { border-top:1px solid var(--k-line); }
.kp-accordions summary { list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:14px;padding:20px 0;font-size:14px;font-weight:500; }
.kp-accordions summary::-webkit-details-marker { display:none; }.kp-accordions summary>span { font-size:21px;font-weight:300;line-height:1; }
.kp-accordions details[open]>summary>span { transform:rotate(45deg); }
.kp-detail-content { padding-bottom:25px;font-size:13px;line-height:1.85;color:#565c4e; }.kp-detail-content p { white-space:pre-line; }.kp-detail-content p+p { margin-top:14px; }.kp-detail-content a { margin-top:12px; }
.kp-specifications { margin:0; }.kp-specifications>div { display:grid;grid-template-columns:1fr 1.4fr;gap:20px;padding:10px 13px;font-size:12px; }.kp-specifications>div:nth-child(odd) { background:#f0f0e9; }.kp-specifications dt { font-weight:500;color:var(--k-ink); }.kp-specifications dd { margin:0;overflow-wrap:anywhere; }
.kp-fine-print { margin-top:15px;font-size:11px;line-height:1.6; }
.kp-continue { padding-block:40px 60px;display:flex;justify-content:space-between;align-items:center;gap:20px; }.kp-continue p { font:24px var(--k-serif); }
.kp-mobile-buy { display:none; }.kp-share-fallback { margin-block:12px;font-size:12px; }.kp-share-fallback label { display:block; }.kp-share-fallback input { width:100%;padding:8px;border:1px solid #cecec3; }
.kp-zoom { border:0;padding:0;width:min(96vw,1100px);height:min(96dvh,1100px);max-height:96dvh;background:var(--k-paper);color:var(--k-ink);border-radius:5px; }
/* Keep photo controls clear of the notch and home indicator in the top layer. */
.kp-zoom { padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.kp-zoom::backdrop { background:#171b16bb; }.kp-zoom[open] { display:flex;flex-direction:column; }
.kp-zoom header { display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:15px;border-bottom:1px solid var(--k-line); }.kp-zoom h2 { font:22px var(--k-serif); }
.kp-zoom-scroll { flex:1;min-height:0;overflow:auto;display:flex; }.kp-zoom-scroll img { width:100%;height:100%;object-fit:contain;max-width:none; }.kp-zoom.is-enlarged .kp-zoom-scroll img { width:150%;height:auto;max-height:none;object-fit:contain;align-self:flex-start; }
.kp-zoom-controls { display:flex;justify-content:center;gap:20px;align-items:center;padding:8px 15px;font-size:12px; }.kp-zoom-controls button { min-height:44px;padding:8px 12px; }.kp-zoom-controls button:disabled { opacity:.35; }.kp-zoom-controls [data-zoom-toggle] { text-decoration:underline; }
.kp-unavailable { padding-block:100px;max-width:800px; }.kp-unavailable h1 { font:42px var(--k-serif);margin-block:15px; }.kp-unavailable .k-button { margin-top:25px; }
@media(min-width:961px) and (max-height:850px) { .kp-purchase { position:static; } }
@media(max-width:960px) { .kp-layout { column-gap:28px; }.kp-purchase { position:static; }.kp-heading h1 { font-size:37px; }.kp-variant { flex-basis:100%; }.kp-gallery-signature { flex-direction:column;align-items:flex-start;gap:6px; }.kp-information { grid-template-columns:1fr 1.3fr;gap:30px; } }
@media(max-width:700px) {
  .kp-main { padding-inline:20px; }.kp-breadcrumb { padding-block:18px;font-size:11px;gap:8px; }.kp-breadcrumb [aria-current] { display:none; }.kp-breadcrumb>span:last-of-type:not([aria-current]) { display:none; }
  .kp-layout { display:flex;flex-direction:column;gap:25px; }.kp-gallery,.kp-purchase { width:100%; }.kp-photo-stage { margin-inline:-4px; }.kp-gallery-signature { display:none; }.kp-thumbnails { margin-top:10px;gap:8px; }.kp-thumbnails button { flex-basis:61px; }.kp-image-note { font-size:10px;margin-top:8px; }
  .kp-heading { width:100%; }.kp-heading h1 { font-size:35px; }.kp-overline { font-size:10px; }.kp-intro { margin-top:10px;font-size:14px; }.kp-price-line { margin-top:0; }.kp-variant { flex-basis:140px; }.kp-variants { margin-top:19px; }
  .kp-information { display:block;margin-top:40px;padding-top:30px; }.kp-information-intro { margin-bottom:25px; }.kp-information h2 { white-space:normal;font-size:32px; }.kp-information-intro>p:not(.k-eyebrow) { max-width:none; }.kp-continue { flex-direction:column;align-items:flex-start;padding-bottom:35px;gap:12px; }
  .kitchen-product { padding-bottom:88px; }.kp-mobile-buy { position:fixed;bottom:0;left:0;right:0;background:#faf9f6f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #dadcd1;padding:12px 20px calc(12px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;justify-content:space-between;gap:15px; }.kp-mobile-buy>div { min-width:0; }.kp-mobile-buy strong { font-size:17px; }.kp-mobile-buy small { display:block;font-size:10px;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.kp-mobile-buy .k-button { border-radius:4px;min-height:44px;font-size:12px;padding:10px 16px;gap:9px;white-space:nowrap; }
  .kp-zoom { width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0; }.kp-zoom h2 { font-size:19px; }.kp-zoom-controls { gap:6px; }.kp-specifications>div { grid-template-columns:1fr 1.35fr;gap:12px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media(max-width:700px) {
  /* Let the price and action occupy separate rows when enlarged text needs it. */
  .kp-mobile-buy { flex-wrap: wrap; }
  .kp-mobile-buy > div { flex: 1 1 90px; }
  .kp-mobile-buy .k-button { flex: 1 1 160px; white-space: normal; }
}
/* Short landscape screens need room for the gallery and in-page purchase form. */
@media(max-width:700px) and (max-height:450px) {
  .kp-mobile-buy { display:none; }
  .kitchen-product { padding-bottom:0; }
}
