/* Product page (woocommerce/content-single-product.php). Layout and sizes follow the approved
   Coffee Factory prototype: the gallery holds still on the left while the buying column scrolls,
   long-form bands below. No decorative motion on this page. */

.pdp .woocommerce-breadcrumb{padding-block:20px 16px;margin:0}

/* Buy box */
.pdp{--col:100%}
.pdp .buy{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:start;padding-bottom:56px}
/* Wide screens: the buy box and every band below share one width (--col), centred, so the photo and
   the buying column keep a fixed gap and the page edges stay even at any window size. */
@media (min-width:1440px){.pdp{--col:min(100%,1560px)}.pdp .buy{max-width:var(--col);margin-inline:auto;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:64px}.pdp .woocommerce-breadcrumb{max-width:var(--col);margin-inline:auto}}
.pdp .gallery{position:sticky;top:calc(var(--hdr) + 24px);display:flex;flex-direction:column;gap:12px;min-width:0}
.pdp .gallery.no-stick{position:static}
.pdp .stage{position:relative;aspect-ratio:1/1;max-width:100%;border-radius:var(--r-xl);overflow:hidden;background:var(--panel)}
.pdp .slide{position:absolute;inset:0;margin:0}
.pdp .slide video,.pdp .slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdp .slide-cut{background:var(--stage)}
.pdp .slide-cut img{object-fit:contain;padding:8%;filter:var(--shadow-kit)}
.pdp .stage .chip{position:absolute;padding:8px 14px;border-radius:20px;background:rgba(8,13,21,.72);font-size:var(--fs-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-variant-numeric:tabular-nums}
.pdp .stage .chip-tl{left:16px;top:16px;font-weight:600}
.pdp .stage .chip-bc{left:50%;bottom:16px;transform:translateX(-50%)}
.pdp .slide[data-full]{cursor:zoom-in}
.pdp .stage-btn{position:absolute;border:0;background:rgba(8,13,21,.72);z-index:2}
.pdp .stage-btn:hover{background:rgba(8,13,21,.9)}
.pdp .stage-btn.prev{left:16px;top:50%;margin-top:-22px}
.pdp .stage-btn.prev .icon{transform:rotate(180deg)}
.pdp .stage-btn.next{right:16px;top:50%;margin-top:-22px}
.pdp .thumbs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding:2px}
.pdp .thumbs::-webkit-scrollbar{display:none}
.pdp .thumb{flex:none;width:72px;scroll-snap-align:start;position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--panel);cursor:pointer}
.pdp .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pdp .thumb-cut{background:var(--stage)}
.pdp .thumb-cut img{object-fit:contain;padding:10%}
.pdp .thumb[aria-current="true"]{border-color:var(--gold)}
.pdp .thumb .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,13,21,.35);font-size:14px}
/* Computers: the gallery always fits one window so it can hold still while the buying column scrolls.
   Thumbnails stand in a column left of the picture, and the picture is never taller than the window;
   in a short, wide window it shows whole on its panel instead of being cropped. */
@media (min-width:901px){
  .pdp .gallery{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px}
  .pdp .gallery>.stage{grid-column:2;grid-row:1;width:100%;max-height:calc(100vh - var(--hdr) - 48px)}
  .pdp .gallery>.thumbs{grid-column:1;grid-row:1;flex-direction:column;overflow:hidden auto;max-height:calc(100vh - var(--hdr) - 48px);scroll-snap-type:y proximity}
  .pdp .gallery:not(:has(.thumbs)){grid-template-columns:minmax(0,1fr)}
  .pdp .gallery:not(:has(.thumbs))>.stage{grid-column:1}
  .pdp .slide video,.pdp .slide img{object-fit:contain}
}

.pdp .info{display:flex;flex-direction:column;gap:18px;min-width:0}
.pdp .info .price-row{margin-top:-6px}
.pdp .product_title{font-size:clamp(36px,4vw,52px);line-height:1.08}
.pdp .product_title .badge{vertical-align:middle;font-family:var(--body)}
.pdp .rating{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--ink-2)}
.pdp .price-row .price{font-family:var(--display);font-size:34px;color:var(--ink);margin:0;font-variant-numeric:tabular-nums;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pdp .price-row .price .badge{font-family:var(--body)}
.pdp .rating{margin:-6px 0 0;flex-wrap:wrap}

.pdp .rating .badge{font-family:var(--body)}
.pdp .stars-none{letter-spacing:2px;color:rgba(236,196,128,.35);font-size:18px}
/* Shipping and tax in one line under the rating */
.pdp .ship-line{display:flex;align-items:flex-start;line-height:1.5;gap:8px;margin:0;font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.pdp .ship-line .icon{width:18px;height:18px;flex:none;margin-top:3px;color:var(--gold)}
.pdp .ship-line .badge{font-weight:400}
/* Pay later: a thin outlined line under the price */
.pdp .pay-later{margin:-4px 0 0;padding:9px 14px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink-2);text-align:center}
.pdp .pay-later b{color:var(--ink)}
/* Version: label and the one choice so far */
.pdp .version p{margin:0 0 10px;font-size:var(--fs-md);color:var(--ink-2)}
.pdp .version-pick{display:inline-block;width:64px;height:64px;border-radius:12px;overflow:hidden;border:2px solid var(--gold);background:var(--panel)}
.pdp .version-pick img{width:100%;height:100%;object-fit:cover;display:block}
/* Stock: a soft green pill */
.pdp .stock-pill{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;margin:0;padding:10px 18px;border-radius:var(--r-pill);background:rgba(120,190,120,.12);border:1px solid rgba(120,190,120,.3);font-size:var(--fs-md);color:#bfe3b9}
.pdp .stock-pill .dot{width:10px;height:10px;border-radius:50%;background:#6fbf68;box-shadow:0 0 0 3px rgba(111,191,104,.25)}
.pdp .subtitle{margin:-4px 0 0;font-family:var(--display);font-style:italic;font-size:clamp(18px,1.6vw,22px);line-height:1.4;color:var(--ink-2)}
.pdp .spec.is-tbc b{color:var(--warn)}
.pdp .spec.is-tbc{outline:1px dashed rgba(233,184,114,.45);outline-offset:-1px}

/* Add to cart: gift box row, quantity stepper, button */
.pdp .buy-form .stock.in-stock{display:none}
.pdp .buy-form .stock{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--ok);margin:0 0 12px}
.pdp .buy-form .stock::before{content:"";width:8px;height:8px;border-radius:4px;background:currentColor}
.pdp .buy-form .stock.out-of-stock{color:var(--ink-3)}
.pdp form.cart:not(.variations_form),.pdp .woocommerce-variation-add-to-cart{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;margin:0}
.pdp form.cart .gift-opt{grid-column:1/-1}
.gift-opt{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;border-radius:var(--r-pill);border:1px solid rgba(236,196,128,.4);cursor:pointer;font-size:var(--fs-md)}
.gift-opt b{font-weight:600}
.gift-opt>span{margin-left:auto;color:var(--ink-2);font-variant-numeric:tabular-nums}
.gift-opt input{width:20px;height:20px;min-height:0;padding:0;accent-color:var(--gold);flex:none;cursor:pointer;margin:0}
.gift-opt:has(input:checked){background:var(--gold-soft)}
.pdp form.cart .quantity{height:56px;border-radius:28px;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:space-between;padding:0 6px}
.pdp form.cart .quantity input.qty{flex:1;width:40px;min-width:0;min-height:0;height:44px;padding:0;border:0;border-radius:0;background:none;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.pdp form.cart .quantity input.qty::-webkit-inner-spin-button,.pdp form.cart .quantity input.qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pdp form.cart .quantity.hidden{display:none}
.pdp .qty-step{flex:none;width:var(--tap);height:var(--tap);border:0;background:transparent;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;cursor:pointer;color:var(--ink)}
.pdp .qty-step:hover{background:var(--panel-2)}
.pdp form.cart .single_add_to_cart_button{width:100%;height:56px;min-height:56px;border-radius:28px;margin:0;font-variant-numeric:tabular-nums}
.pdp form.cart .single_add_to_cart_button.disabled{opacity:.45;cursor:not-allowed}
.pdp form.cart .buy-now{grid-column:1/-1;width:100%;height:56px;min-height:56px;border-radius:28px;margin:0;font-size:var(--fs-md);font-weight:600}
.pdp .variations{width:100%;border-collapse:collapse;margin:0 0 16px}
.pdp .variations tr{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.pdp .variations th,.pdp .variations td{display:block;padding:0;text-align:left}
.pdp .variations label{font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.pdp .variations select{width:100%}
/* Options as buttons; the select they drive stays in the form, out of sight */
.pdp .swatches{display:flex;flex-wrap:wrap;gap:8px}
.pdp .swatch{min-height:var(--tap);padding:8px 16px;border-radius:12px;border:2px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:600;cursor:pointer}
.pdp .swatch:hover{border-color:var(--ink-3)}
.pdp .swatch[aria-pressed="true"]{border-color:var(--gold)}
.pdp .swatch:disabled{opacity:.4;border-style:dashed;cursor:not-allowed}
.pdp .swatch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.pdp .swatches + .swatch-select{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pdp .variations label .chosen{font-weight:400;color:var(--ink-2)}
/* The button carries the price, so the option's own price line is left out */
.pdp .woocommerce-variation-price{display:none}
.pdp .variations_form .buy-now.is-off{opacity:.5;pointer-events:none}
.pdp .reset_variations{display:inline-block;margin-top:8px;font-size:var(--fs-sm);color:var(--ink-3)}
.pdp .variations_form.is-fixed .reset_variations{display:none!important}
.pdp .single_variation_wrap{display:flex;flex-direction:column;gap:12px}
.pdp .woocommerce-variation-price .price{font-family:var(--display);font-size:24px;color:var(--ink)}
.pdp .woocommerce-variation-description p{margin:0;color:var(--ink-2)}
.pdp .woocommerce-variation:empty{display:none}

.pdp .secure{display:flex;flex-direction:column;gap:8px;align-items:center}
.pdp .secure p{margin:0;display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3)}
.pdp .secure p .icon{width:16px;height:16px}
.pdp .secure .pays{justify-content:center}

.pdp .eta{padding:20px;border-radius:16px;background:var(--night-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:16px}
.pdp .eta p{margin:0;font-size:var(--fs-md)}
.pdp .steps{display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.pdp .steps::before{content:"";position:absolute;left:16.6%;right:16.6%;top:15px;height:1px;background:rgba(236,196,128,.4)}
.pdp .step{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;text-align:center}
.pdp .dot{width:32px;height:32px;border-radius:16px;border:1px solid var(--gold);background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--gold)}
.pdp .dot .icon{width:16px;height:16px}
.pdp .step:first-child .dot{background:var(--gold);color:var(--gold-ink)}
.pdp .step b{font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums}
.pdp .step span{font-size:var(--fs-xs);color:var(--ink-3)}

.pdp .promises{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.pdp .promise{padding:14px 16px;border-radius:var(--r-md);background:var(--panel)}
.pdp .promise b{display:block;font-size:var(--fs-md);font-weight:600}
.pdp .promise span{font-size:var(--fs-sm);color:var(--ink-3)}
.pdp .help{font-size:var(--fs-md);color:var(--ink-3);margin:0}

/* Long-form bands */
.pdp .band{padding-block:56px}
.pdp .band-flush-top{padding-top:0}
.pdp .band.alt{background:var(--night-2)}
.pdp .h2.center{text-align:center}
/* Everything below the buy box lines up with the buy box's edges, with one heading style and one rhythm.
   Long text runs in two columns on computers so lines stay readable. */
.pdp .about{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center;gap:24px 64px;max-width:var(--col);margin:0 auto;padding:48px 56px;border-radius:var(--r-xl)}
.pdp .about-head .h2{margin:0}
.pdp .about-head .h-line{margin:16px 0 0}
.pdp .about .about-lede{margin:24px 0 0;font-family:var(--display);font-style:italic;font-size:20px;line-height:1.5;color:var(--ink)}
.pdp .about p{margin:0 0 16px;font-family:var(--display);font-size:19px;line-height:1.65;color:var(--ink-2)}
.pdp .about p:last-child{margin-bottom:0}
/* Selling points: 2 × 2 on computers */
.pdp .points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;border-radius:var(--r-md);overflow:hidden}
/* One pane, four compact cells: icon on the left, a title and a short line beside it */
.pdp .point{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:12px;align-items:center;padding:12px 14px;border-radius:0;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:none!important}
.pdp .point:nth-child(odd){border-right:1px solid var(--glass-edge)!important}
.pdp .point:nth-child(n+3){border-top:1px solid var(--glass-edge)!important}
.pdp .point .ic{grid-row:span 2;color:var(--gold);display:flex}
.pdp .point .ic .icon{width:24px;height:24px}
.pdp .point b{font-size:15px;font-weight:600;line-height:1.3}
.pdp .point>span:not(.ic){font-size:13px;line-height:1.4;color:var(--ink-3)}
.pdp .point .badge{font-family:var(--body)}
/* The shop's promises: four small panes, 2 × 2 */
.pdp .trust{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px}
.pdp .trust li{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-items:center;padding:10px 12px;border-radius:var(--r-md);font-size:13px;color:var(--ink-3);line-height:1.35}
.pdp .trust li[hidden]{display:none}
.pdp .trust .icon{grid-row:span 2;width:36px;height:36px;padding:8px;border-radius:10px;color:var(--gold);background:rgba(236,196,128,.12);border:1px solid rgba(236,196,128,.28)}
.pdp .trust b{font-size:14px;font-weight:600;color:var(--ink)}
.pdp .share-help{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px}
.pdp .share{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:var(--fs-sm)}
.pdp .share>span{color:var(--ink-3)}
.pdp .share>*{display:inline-flex;align-items:center;min-height:32px;line-height:1}
.pdp .share a,.pdp .share button{color:var(--ink-2);background:none;border:0;padding:0;font:inherit;cursor:pointer}
.pdp .share a:hover,.pdp .share button:hover{color:var(--gold)}
.pdp .help b{color:var(--ink);font-weight:600;margin-right:6px}
/* Questions with a way to ask more */
.pdp .qa{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;max-width:var(--col);margin:0 auto}
.pdp .qa .acc{max-width:none;margin:0}
.pdp .ask{padding:24px;border-radius:var(--r-lg);display:flex;flex-direction:column;gap:12px;align-items:flex-start;position:sticky;top:calc(var(--hdr) + 24px)}
.pdp .ask h3{font-size:22px;margin:0}
.pdp .ask p{margin:0;color:var(--ink-2);font-size:15px}
.pdp .ask .more{font-size:var(--fs-sm)}
.pdp .point .badge{font-family:var(--body)}

.pdp .feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;max-width:var(--col);margin:0 auto}
.pdp .feat+.feat{margin-top:56px}
.pdp .feat img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-xl);display:block}
.pdp .feat.flip img{order:2}
.pdp .feat h3{font-size:30px;margin:0 0 12px}
.pdp .feat p{margin:0;font-size:var(--fs-lg);line-height:1.65;color:var(--ink-2);max-width:46ch}

.pdp .moves{position:relative;overflow:hidden;max-width:var(--col);margin:0 auto;aspect-ratio:16/10;border-radius:var(--r-xl);background:radial-gradient(circle at 50% 55%,#2a2420,#0d1118 70%)}
.pdp .moves img{position:absolute;left:50%;top:50%;height:86%;width:auto;transform:translate(-50%,-50%);max-width:none}
.pdp .tag{position:absolute;display:flex;align-items:center;gap:10px;font-size:var(--fs-md)}
.pdp .tag span{padding:8px 14px;border-radius:20px;background:var(--panel);border:1px solid rgba(236,220,196,.25);white-space:nowrap}
.pdp .tag i{display:block;width:48px;height:1px;background:var(--gold)}
.pdp .tag i::after{content:"";display:block;width:7px;height:7px;border-radius:4px;background:var(--gold);margin-top:-3px;margin-left:auto}
.pdp .tag-right{flex-direction:row-reverse}
.pdp .tag-right i::after{margin-left:0}

.pdp .player{position:relative;max-width:var(--col);margin:32px auto 0;aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden;background:#000}
.pdp .player.is-tall{aspect-ratio:4/5}
.pdp .player video{width:100%;height:100%;object-fit:cover;display:block}
.pdp .player .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:0;width:100%;cursor:pointer;background-color:#000;background-size:cover;background-position:center;color:var(--ink)}
.pdp .player .ph::before{content:"";position:absolute;inset:0;background:rgba(8,13,21,.55)}
.pdp .player .ph b,.pdp .player .ph span{position:relative}
.pdp .player .ph b{width:88px;height:88px;border-radius:44px;background:var(--gold);color:var(--gold-ink);display:flex;align-items:center;justify-content:center;font-size:28px}
.pdp .player .ph span{font-size:var(--fs-md);color:var(--ink-2)}

.pdp .three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pdp .bstep{padding:24px;border-radius:18px;background:var(--panel);display:flex;flex-direction:column;gap:8px}
.pdp .bstep .n{font-family:var(--display);font-size:40px;color:var(--gold);line-height:1}
.pdp .bstep b{font-family:var(--display);font-weight:500;font-size:20px}
.pdp .bstep span{font-size:15px;color:var(--ink-3)}

.pdp .acc .h-line{margin-bottom:24px}
.pdp .acc .body p{margin:0 0 12px}
.pdp .acc .body p:last-child{margin:0}
.pdp .acc .grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;max-width:none}
.pdp .acc .grid>span{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.pdp .acc .grid b{font-weight:600;color:var(--ink)}
.pdp .acc .grid>[hidden]{display:none}
.pdp .acc .grid a{color:var(--gold)}

.pdp #reviews .commentlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pdp #reviews .comment_container{border-top:1px solid rgba(236,196,128,.3);padding-top:20px}
.pdp #reviews .avatar{display:none}

.pdp .recs{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:24px}
.pdp .rec{display:flex;flex-direction:column;gap:8px;color:var(--ink)}
.pdp .rec .pic{aspect-ratio:4/3;border-radius:16px;background:var(--stage);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pdp .rec .pic img{height:78%;width:auto;object-fit:contain;filter:var(--shadow-kit)}
.pdp .rec b{font-family:var(--display);font-weight:500;font-size:19px}
.pdp .rec>span{font-size:var(--fs-md);color:var(--ink-3)}
.pdp .rec:hover{color:var(--ink)}
.pdp .rec:hover b{color:var(--gold)}


/* Sticky buy bar: shows once the main button scrolls away */
.buy-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:linear-gradient(180deg,rgba(24,34,52,.72),rgba(10,17,27,.82));-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border-top:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 -10px 30px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(110%);transition:transform .3s ease;visibility:hidden}
.buy-bar.on{transform:none;visibility:visible}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.buy-bar{background:rgba(10,17,27,.97)}}
.buy-bar .wrap{height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.buy-bar .who{display:flex;align-items:center;gap:12px;min-width:0}
.buy-bar img{height:52px;width:52px;object-fit:contain;flex:none}
.buy-bar .nm{font-family:var(--display);font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buy-bar .pr{font-variant-numeric:tabular-nums;color:var(--ink-2);flex:none}
.buy-bar .btn{height:48px;padding:0 28px;flex:none}
body.single-product .ftr{padding-bottom:calc(32px + 80px)}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:95;background:rgba(3,6,11,.94);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lightbox[hidden]{display:none}
.lightbox .lb-body img,.lightbox .lb-body video{display:block;max-width:min(92vw,92vh);max-height:92vh;width:auto;height:auto;border-radius:16px}
.lightbox .lb-close{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:max(16px,env(safe-area-inset-top,0px));background:rgba(8,13,21,.72);border:0}
body.lb-open{overflow:hidden}

@media (max-width:900px){
  .pdp .buy{grid-template-columns:minmax(0,1fr);gap:24px;padding-bottom:48px}
  .pdp .gallery{position:static}
  .pdp .thumb{width:60px}
  .pdp .feat,.pdp .feat.flip{grid-template-columns:minmax(0,1fr);gap:20px}
  .pdp .feat img{max-height:300px}
  .pdp .feat+.feat{margin-top:36px}
  .pdp .about{grid-template-columns:minmax(0,1fr);padding:28px 20px}
  .pdp .about h2{font-size:28px}
  .pdp .qa{grid-template-columns:minmax(0,1fr)}
  .pdp .ask{position:static}
  .pdp .feat.flip img{order:0}
  .pdp .feat h3{font-size:24px}
  .pdp .recs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .pdp .three,.pdp #reviews .commentlist{grid-template-columns:minmax(0,1fr)}
  .pdp .band{padding-block:40px}
  .pdp .band-flush-top{padding-top:0}
  .pdp .moves{aspect-ratio:auto;display:flex;flex-direction:column;gap:8px;padding:24px 16px}
  .pdp .moves img{position:static;transform:none;height:auto;width:72%;max-width:300px;margin:0 auto 16px}
  .pdp .moves .tag{position:static!important;font-size:15px}
  .pdp .moves .tag i{display:none}
  .pdp .moves .tag span{flex:1;white-space:normal;padding:12px 16px;border-radius:12px;display:flex;align-items:center;gap:12px}
  .pdp .moves .tag span::before{content:"";flex:none;width:8px;height:8px;border-radius:4px;background:var(--gold)}
  .pdp .acc .grid{grid-template-columns:minmax(0,1fr)}
  .pdp .acc .grid>span{grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px 0}
}
@media (max-width:520px){
  .pdp .rec:nth-child(n+3){display:none}
  .pdp .rec b{font-size:16px}
  /* Short cards stay two across; cards with a sentence take the full width */
  .pdp .point{padding:10px 12px;column-gap:10px}
  .pdp .trust li{padding:10px;column-gap:8px;grid-template-columns:28px minmax(0,1fr)}
  .pdp .trust .icon{width:28px;height:28px;padding:5px;border-radius:8px}
  .pdp .point{grid-template-columns:20px minmax(0,1fr)}
  .pdp .point .ic .icon{width:20px;height:20px}
  .pdp .promises{grid-template-columns:minmax(0,1fr)}
  .pdp form.cart:not(.variations_form),.pdp .woocommerce-variation-add-to-cart{grid-template-columns:112px minmax(0,1fr)}
  .pdp .secure .pays{gap:4px;flex-wrap:nowrap}
  .pdp .secure .pays img{height:18px}
  .buy-bar .nm{display:none}
  .buy-bar .btn{padding:0 20px}
}
@media (prefers-reduced-motion:reduce){.buy-bar{transition:none}}

/* Details as tabs (product.js): a pill track whose gold highlight slides to the chosen tab */
.pdp .acc.is-tabs .body{padding:24px 0 0}
.seg{position:relative;display:flex;gap:2px;width:max-content;max-width:100%;margin:0 auto 8px;padding:4px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{position:relative;z-index:1;flex:none;min-height:40px;padding:0 16px;border:0;border-radius:var(--r-pill);background:none;color:var(--ink-2);font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:color .25s}
.seg button:hover{color:var(--ink)}
.seg button[aria-selected="true"]{color:var(--gold-ink)}
.seg button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.seg-pill{position:absolute;top:4px;bottom:4px;left:0;border-radius:var(--r-pill);background:var(--gold);transition:transform .38s cubic-bezier(.3,.8,.3,1),width .38s cubic-bezier(.3,.8,.3,1)}
.seg.still .seg-pill,.seg.still button{transition:none}
@media (max-width:420px){.seg button{padding:0 12px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.seg-pill,.seg button{transition:none}}

/* Custom modules (inc/product-modules.php) */
@media (min-width:901px){.pdp .dvm-no-desk{display:none!important}}
@media (max-width:900px){.pdp .dvm-no-mob{display:none!important}}
.pdp .dvm-band .wrap{max-width:var(--col);margin-inline:auto}
.pdp .dvm-band .dvm+.dvm{margin-top:40px}
.pdp .dvm-band .dvm--faq,.pdp .dvm-band .dvm--notice{max-width:860px;margin-inline:auto}
.pdp .dvm-title{margin:0 0 16px;font-size:26px}
.pdp .dvm-band .dvm-title{text-align:center}
.pdp .dvm-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pdp .dvm-band .dvm-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.pdp .dvm-cards li{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:12px;align-items:center;padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--glass-edge);background:var(--glass-fill);-webkit-backdrop-filter:var(--glass-frost);backdrop-filter:var(--glass-frost);box-shadow:var(--glass-light),var(--glass-shadow)}
.pdp .dvm-cards .ic{grid-row:span 2;display:flex;color:var(--gold)}
.pdp .dvm-cards .ic .icon{width:24px;height:24px}
.pdp .dvm-cards b{font-size:15px;font-weight:600;line-height:1.3}
.pdp .dvm-cards li>span:not(.ic){font-size:13px;line-height:1.4;color:var(--ink-3)}
.pdp .dvm-media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.pdp .info .dvm-media{grid-template-columns:120px minmax(0,1fr);gap:16px}
.pdp .dvm-media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-xl);display:block}
.pdp .info .dvm-media img{border-radius:var(--r-md)}
.pdp .dvm-media.flip img{order:2}
.pdp .dvm-media h3{font-size:28px;margin:0 0 10px}
.pdp .info .dvm-media h3{font-size:18px;margin:0 0 4px}
.pdp .dvm-media p{margin:0 0 10px;font-size:var(--fs-lg);line-height:1.65;color:var(--ink-2)}
.pdp .info .dvm-media p{font-size:var(--fs-md);line-height:1.5}
.pdp .dvm-video{display:block;width:100%;max-height:80vh;border-radius:var(--r-xl);background:#000}
.pdp .info .dvm-video{border-radius:var(--r-md)}
.pdp .dvm-notice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 16px;border-radius:var(--r-md);border:1px solid var(--line);font-size:var(--fs-md);line-height:1.5;color:var(--ink-2)}
.pdp .dvm-notice .icon{width:18px;height:18px;flex:none;margin-top:2px;color:var(--gold)}
.pdp .dvm-notice.dvm-gold{border-color:var(--gold-line);background:var(--gold-soft);color:var(--ink)}
.pdp .dvm-faq details{border-bottom:1px solid var(--line)}
.pdp .dvm-faq summary{cursor:pointer;padding:14px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.pdp .dvm-faq summary::-webkit-details-marker{display:none}
.pdp .dvm-faq summary::after{content:"+";color:var(--gold)}
.pdp .dvm-faq details[open] summary::after{content:"−"}
.pdp .dvm-faq .body{padding:0 0 14px;color:var(--ink-2)}
.pdp .dvm-faq .body p{margin:0 0 8px}
@media (max-width:900px){
  .pdp .dvm-media,.pdp .dvm-media.flip{grid-template-columns:minmax(0,1fr);gap:16px}
  .pdp .dvm-media.flip img{order:0}
  .pdp .dvm-media h3{font-size:22px}
  .pdp .dvm-cards,.pdp .dvm-band .dvm-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pdp .dvm-cards li{padding:10px 12px;column-gap:10px;grid-template-columns:20px minmax(0,1fr)}
  .pdp .dvm-cards .ic .icon{width:20px;height:20px}
  .pdp .dvm-cards li:last-child:nth-child(odd){grid-column:1/-1}
}
