/* Product page 1.1: carousel gallery beside a short buying column, then the full description in the page. */

/* Layout ---------------------------------------------------------------- */
/* The floating logo and menu sit 24px from the top here (no announcement bar); content starts below them. */
body.single-product { --nav-top:24px; }
body.single-product #main.shop-shell { max-width:none; padding:calc(var(--nav-top) + var(--header-h) + 18px) 0 80px; }
body.single-product #main > .woocommerce-breadcrumb { position:static; display:block; max-width:1720px; margin:0 auto 18px; padding:0 var(--gutter); background:none; border-radius:0; font-size:var(--text-label); line-height:1.5; color:var(--muted); z-index:auto; }
body.single-product .woocommerce-notices-wrapper:not(:empty) { max-width:1720px; margin:0 auto 18px; padding:0 var(--gutter); }
.single-product .woocommerce-notices-wrapper:not(:empty) ~ div.product > .product-layout > .summary { padding-top:0; }
.woocommerce div.product { max-width:1720px; margin:0 auto; }
.woocommerce div.product .product-layout { display:grid; grid-template-columns:minmax(0,56fr) minmax(0,44fr); gap:clamp(28px,3.6vw,88px); align-items:start; padding:0 var(--gutter); }
.woocommerce div.product .product-layout > .vr-gallery { grid-column:1; grid-row:1; position:sticky; top:calc(var(--nav-top) + var(--header-h) + 18px); min-width:0; }
.woocommerce div.product .product-layout > div.summary {
  --dossier-space:clamp(20px,1.6vw,40px); --dossier-copy:var(--text-ui); --dossier-small:var(--text-caption); --dossier-radius:16px;
  grid-column:2; grid-row:1; float:none; position:static; top:auto; width:100%; max-width:640px; margin:0; padding:4px 0 24px; align-self:start;
}

/* Gallery carousel --------------------------------------------------------- */
.vr-gallery { --stage-h:min(calc(100svh - var(--nav-top) - var(--header-h) - 56px), 1040px); }
.vr-gallery--multiple { display:grid; grid-template-columns:clamp(64px,5vw,104px) minmax(0,1fr); gap:clamp(10px,.9vw,18px); align-items:start; }
.vr-gallery-stage { position:relative; grid-column:2; grid-row:1; min-width:0; border-radius:18px; overflow:hidden; background:#f1ece5; }
.vr-gallery:not(.vr-gallery--multiple) .vr-gallery-stage { grid-column:auto; }
.vr-gallery .vr-gallery-images { display:flex; gap:0; position:relative; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; scroll-behavior:auto; outline-offset:-3px; }
.vr-gallery .vr-gallery-images::-webkit-scrollbar { display:none; }
.vr-gallery .vr-gallery-image, .vr-gallery .vr-gallery-video { flex:0 0 100%; width:100%; height:auto; aspect-ratio:1/1; max-height:var(--stage-h); min-height:0; scroll-snap-align:start; scroll-snap-stop:always; position:relative; display:grid; place-items:center; background:transparent; cursor:zoom-in; overflow:hidden; }
/* Pinned to the square slide, so portrait photos (the wallets) show whole instead of overflowing it. */
.vr-gallery .vr-gallery-image > img { position:absolute; inset:0; width:100%; height:100%; max-height:none; aspect-ratio:auto; object-fit:contain; mix-blend-mode:multiply; padding:clamp(10px,2.4%,36px); background:transparent; }
.vr-gallery .vr-gallery-video { cursor:auto; background:#e9e2d9; }
.vr-gallery .vr-gallery-video video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#e9e2d9; }
.vr-gallery-arrow { position:absolute; top:50%; z-index:2; width:46px; height:46px; margin-top:-23px; display:grid; place-items:center; border:1px solid #cbbcae; border-radius:50%; background:rgba(247,244,239,.92); color:var(--ink); box-shadow:0 6px 18px -10px rgba(36,26,20,.45); transition:background-color .25s, opacity .25s, transform .25s var(--ease); }
.vr-gallery-arrow svg { width:20px; height:20px; }
.vr-gallery-arrow--prev { left:16px; }
.vr-gallery-arrow--next { right:16px; }
.vr-gallery-arrow:hover { background:var(--ivory); transform:scale(1.06); }
.vr-gallery-counter { position:absolute; right:16px; bottom:16px; z-index:2; padding:6px 12px; border-radius:30px; background:rgba(247,244,239,.92); font-size:var(--text-label); font-variant-numeric:tabular-nums; letter-spacing:.04em; pointer-events:none; }
.vr-gallery .gallery-open-label { position:absolute; left:16px; bottom:16px; z-index:2; width:auto; height:auto; padding:6px 12px 6px 9px; gap:6px; display:flex; align-items:center; border-radius:30px; border:0; background:rgba(247,244,239,.92); font-size:var(--text-label); pointer-events:none; }
.vr-gallery .gallery-open-label svg { width:14px; height:14px; }
.vr-gallery .gallery-open-label > span { display:inline; margin:0; font-size:inherit; }
.vr-gallery-thumbs { grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:10px; max-height:var(--stage-h); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; padding:2px; }
.vr-gallery-thumbs::-webkit-scrollbar { display:none; }
.vr-gallery-thumbs button { position:relative; flex:0 0 auto; width:100%; aspect-ratio:1/1; padding:0; border:1px solid transparent; border-radius:10px; background:#f1ece5; overflow:hidden; cursor:pointer; opacity:.62; transition:opacity .25s, border-color .25s; }
.vr-gallery-thumbs button img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; padding:6%; }
.vr-gallery-thumbs button:hover { opacity:.9; }
.vr-gallery-thumbs button[aria-current="true"] { opacity:1; border-color:var(--ink); }
.vr-gallery-play { position:absolute; inset:0; display:grid; place-items:center; background:rgba(36,26,20,.28); color:var(--ivory); }
.vr-gallery-play svg { width:26px; height:26px; fill:currentColor; }
.vr-gallery-empty { border-radius:18px; overflow:hidden; }
/* On the video, its own controls take the bottom edge. */
.vr-gallery.is-video .gallery-open-label { display:none; }
.vr-gallery.is-video .vr-gallery-counter { top:16px; bottom:auto; }

/* Summary ------------------------------------------------------------------ */
.product-overline { display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; padding-bottom:var(--dossier-space); font-size:var(--text-label); line-height:1.6; letter-spacing:.045em; }
.product-overline > span:first-child { text-transform:uppercase; }
.product-overline > span > span { color:var(--taupe); margin-inline:.5em; }
.product-reference { color:var(--muted); white-space:nowrap; }
.product-overline .product-reference.product_meta { display:inline; margin:0; padding:0; border:0; font-size:inherit; color:var(--muted); }
.product-reference .sku { display:inline; letter-spacing:.02em; }
.product-heading { border-top:1px solid var(--line); padding-top:var(--dossier-space); }
.product-heading .price:empty { display:none; }
.woocommerce div.product .product_title { font-weight:450; font-size:clamp(30px,2.15vw,60px); line-height:1.12; letter-spacing:-.045em; max-width:20ch; margin:0; }
.woocommerce div.product .summary p.price { display:flex; align-items:baseline; flex-wrap:wrap; gap:.25em .5em; font-size:clamp(24px,1.5vw,42px); letter-spacing:-.025em; margin:16px 0 0; color:var(--ink); }
.woocommerce div.product p.price .woocommerce-price-suffix { display:inline; font-size:var(--dossier-small); letter-spacing:0; margin:0; color:var(--muted); }
.woocommerce div.product p.price del { font-size:.7em; color:var(--muted); }
.woocommerce div.product p.price ins { text-decoration:none; }
.stock-badge { display:inline-flex; align-items:center; gap:8px; margin:12px 0 0; padding:5px 12px 5px 10px; border-radius:30px; font-size:var(--dossier-small); line-height:1.4; background:#e7eee3; color:#3c5134; }
.stock-badge__dot { width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--stock-in); box-shadow:0 0 0 3px #56704d26; }
.stock-badge--out { background:#ece6e0; color:var(--muted); }
.stock-badge--out .stock-badge__dot { background:#a69a8f; box-shadow:none; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size:var(--dossier-copy); line-height:1.7; margin-top:20px; max-width:46ch; color:var(--ink); }
.woocommerce-product-details__short-description > :last-child { margin-bottom:0; }
.key-benefits { list-style:none; margin:18px 0 0; padding:0; display:grid; gap:9px; max-width:48ch; }
.key-benefits li { display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; align-items:start; font-size:var(--dossier-small); line-height:1.5; }
.key-benefits svg { width:18px; height:18px; margin-top:.1em; color:var(--stock-in); stroke-width:1.8; }
.product-preview-note { display:flex; align-items:baseline; gap:10px; margin:18px 0 0; font-size:var(--dossier-small); color:var(--muted); }
.product-preview-note strong { font-weight:550; color:var(--ink); margin-right:.35em; }
.status-dot { display:inline-block; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--taupe); }
.product-availability { display:flex; align-items:baseline; gap:12px; padding:18px 0 0; font-size:var(--dossier-copy); }
.product-availability strong { font-weight:500; }
.product-availability p { font-size:var(--dossier-small); color:var(--muted); line-height:1.7; margin:.35em 0 0; max-width:38ch; }

/* Colour picker -------------------------------------------------------------- */
.colour-picker { margin-top:var(--dossier-space); }
.colour-picker__head { display:flex; align-items:baseline; gap:10px; margin:0 0 14px; }
.colour-picker__label { font-size:var(--text-label); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.colour-picker__value { font-size:var(--dossier-copy); font-weight:550; }
.colour-swatches { display:flex; flex-wrap:wrap; gap:14px 8px; }
.colour-swatch { --dot:44px; display:flex; flex-direction:column; align-items:center; gap:7px; width:calc(var(--dot) + 38px); padding:0; border:0; background:none; color:var(--muted); cursor:pointer; text-align:center; border-radius:12px; }
.colour-swatch__dot { position:relative; display:block; width:var(--dot); height:var(--dot); border-radius:50%; background:var(--swatch); box-shadow:inset 0 0 0 1px rgba(36,26,20,.16), 0 0 0 3px var(--ivory), 0 0 0 4px transparent; transition:box-shadow .25s, transform .25s var(--ease); }
.colour-swatch__name { font-size:var(--text-label); line-height:1.25; max-width:100%; overflow-wrap:normal; word-break:normal; }
.colour-swatch:hover .colour-swatch__dot { transform:scale(1.06); box-shadow:inset 0 0 0 1px rgba(36,26,20,.16), 0 0 0 3px var(--ivory), 0 0 0 4px #b7a596; }
.colour-swatch[aria-checked="true"] { color:var(--ink); }
.colour-swatch[aria-checked="true"] .colour-swatch__dot { box-shadow:inset 0 0 0 1px rgba(36,26,20,.16), 0 0 0 3px var(--ivory), 0 0 0 5px var(--ink); }
.colour-swatch[aria-checked="true"] .colour-swatch__name { font-weight:600; }
.colour-swatch.is-unavailable .colour-swatch__dot { opacity:.45; }
.colour-swatch.is-unavailable .colour-swatch__dot::after { content:''; position:absolute; left:50%; top:-2px; bottom:-2px; width:1.5px; background:var(--ink); transform:rotate(45deg); }
.colour-swatch.is-unavailable .colour-swatch__name { text-decoration:line-through; }
.colour-picker--many .colour-swatch { --dot:36px; }
.colour-picker--single .colour-swatch { cursor:default; width:auto; }
.colour-picker--single .colour-swatch__dot { box-shadow:inset 0 0 0 1px rgba(36,26,20,.16), 0 0 0 3px var(--ivory), 0 0 0 5px var(--ink); }
.colour-swatch:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }

/* Purchase ----------------------------------------------------------------- */
.product-purchase { --purchase-height:clamp(56px,2.1vw,76px); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; margin-top:var(--dossier-space); }
.product-purchase--quiet { grid-template-columns:1fr; }
.product-cart { min-width:0; }
.product-cart:empty { display:none; }
.woocommerce div.product .product-purchase form.cart { margin:0; min-width:0; gap:8px; }
.woocommerce .product-purchase .button { border-radius:999px; font-size:var(--text-ui); height:var(--purchase-height); min-height:var(--purchase-height); padding:0 1.3em; transition:background .3s,box-shadow .3s; }
.woocommerce .product-purchase .single_add_to_cart_button:hover { background:#594436; box-shadow:0 4px 18px #3b2e2612; }
.woocommerce .product-purchase .single_add_to_cart_button.disabled { opacity:.45; cursor:not-allowed; }
.woocommerce .product-purchase .quantity input.qty { min-height:var(--purchase-height); height:var(--purchase-height); width:var(--purchase-height); border-radius:999px; padding:10px 6px; font-size:var(--text-ui); }
.product-purchase .product-cart > .stock, .product-purchase .woocommerce-variation-availability { display:none; }
.product-purchase .variations_form { display:block; }
.product-purchase table.variations { margin:0 0 var(--dossier-space); width:100%; border:0; }
.product-purchase table.variations tr { display:block; }
.product-purchase table.variations th.label { display:none; }
.product-purchase table.variations td { display:block; padding:0; border:0; }
.product-purchase table.variations select { border-radius:16px; width:100%; min-height:56px; padding:12px 18px; background:var(--ivory); }
.product-purchase table.variations select[data-swatch-source] { position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); border:0; opacity:0; pointer-events:none; }
.product-purchase .reset_variations { display:none !important; }
.product-purchase .woocommerce-variation-price .price { margin:0 0 14px; font-size:var(--text-ui); }
.product-purchase .woocommerce-variation-add-to-cart { display:flex; flex-wrap:nowrap; align-items:end; gap:8px; }
.product-purchase .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex:1; }
.summary-favorite { border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--ink); width:var(--purchase-height); height:var(--purchase-height); min-width:var(--purchase-height); min-height:var(--purchase-height); padding:14px; display:flex; align-items:center; justify-content:center; gap:12px; transition:background .3s,border-color .3s; }
.summary-favorite svg { width:22px; height:22px; flex-shrink:0; }
.summary-favorite > span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.product-purchase--quiet .summary-favorite { width:100%; font-size:var(--text-ui); }
.product-purchase--quiet .summary-favorite > span { position:static; width:auto; height:auto; margin:0; overflow:visible; clip-path:none; white-space:normal; }
.summary-favorite:hover, .summary-favorite[aria-pressed="true"] { background:#ebe3d9; border-color:var(--taupe); }
.summary-favorite[aria-pressed="true"] svg { fill:var(--ink); }

/* Reassurance next to the button --------------------------------------------- */
.trust-list { list-style:none; margin:var(--dossier-space) 0 0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #d6cbc0; border-radius:var(--dossier-radius); background:#eee7de; overflow:hidden; }
.trust-list li { min-width:0; border-top:1px solid #d6cbc0; }
.trust-list li:nth-child(-n+2) { border-top:0; }
.trust-list li:nth-child(even) { border-left:1px solid #d6cbc0; }
.trust-list li:last-child:nth-child(odd) { grid-column:1/-1; }
.trust-list a { display:grid; grid-template-columns:30px minmax(0,1fr); gap:12px; align-items:center; height:100%; padding:clamp(14px,1vw,24px) clamp(14px,1.1vw,26px); transition:background-color .3s; }
.trust-list a:hover { background:#e7ddd1; }
.trust-list__icon svg { width:26px; height:26px; }
.trust-list strong { display:block; font-size:var(--dossier-small); font-weight:600; line-height:1.35; }
.trust-list small { display:block; font-size:var(--text-label); line-height:1.45; color:#655548; margin-top:2px; }

/* Full description, in the page ---------------------------------------------- */
.product-story { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(28px,5vw,130px); max-width:1720px; margin:clamp(56px,6vw,120px) auto 0; padding:clamp(40px,4.4vw,96px) var(--gutter); background:#eee7de; border-block:1px solid #ddd2c6; }
.product-story__aside { position:sticky; top:calc(var(--nav-top) + var(--header-h) + 28px); align-self:start; }
.product-story__aside h2 { font-size:clamp(30px,2.5vw,64px); line-height:1.08; letter-spacing:-.045em; font-weight:450; margin:12px 0 0; max-width:14ch; }
.product-story__aside .text-link { display:inline-flex; align-items:center; gap:8px; margin-top:22px; font-size:var(--text-ui); border-bottom:1px solid currentColor; padding-bottom:2px; }
.product-story__aside .text-link svg { width:16px; height:16px; }
.product-story__body { max-width:74ch; font-size:var(--text-body); line-height:1.8; }
.product-story__body h3 { margin:clamp(34px,2.6vw,56px) 0 14px; font-size:var(--text-label); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.product-story__text > h3:first-child { margin-top:0; }
.product-story__text p { margin:0 0 1.1em; }
.product-story__text ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 34px; }
.product-story__text li { position:relative; padding-left:24px; line-height:1.55; }
.product-story__text li::before { content:''; position:absolute; left:0; top:.78em; width:10px; height:1.5px; background:var(--ink); }
.product-story__facts .woocommerce-product-attributes { width:100%; margin:0; border-collapse:collapse; }
.product-story__facts .woocommerce-product-attributes th, .product-story__facts .woocommerce-product-attributes td { padding:14px 0; border-bottom:1px solid #d6cbc0; font-size:var(--text-caption); vertical-align:top; text-align:left; }
.product-story__facts .woocommerce-product-attributes th { width:32%; font-weight:500; color:var(--muted); padding-right:16px; }
.product-story__facts .woocommerce-product-attributes td p { margin:0; }
.product-story__facts .woocommerce-product-attributes tr:last-child > * { border-bottom:0; }

/* Reviews stay folded, below the description ------------------------------------ */
.woocommerce div.product > .product-details-accordion { max-width:1720px; margin:clamp(28px,2.6vw,56px) auto 0; padding:0 var(--gutter); --dossier-radius:16px; --dossier-small:var(--text-caption); --dossier-copy:var(--text-ui); }
.product-details-accordion { display:grid; gap:10px; }
.product-details-accordion .product-detail-item { border:1px solid var(--line); border-radius:var(--dossier-radius); background:#ffffff45; transition:background .35s,border-color .35s; }
.product-details-accordion .product-detail-item[open] { border-color:#b7a596; background:#fffdf8; }
.product-details-accordion .product-detail-item:hover { border-color:#b7a596; }
.product-details-accordion .product-detail-item summary { display:grid; grid-template-columns:36px minmax(0,1fr) 30px; align-items:center; gap:14px; padding:22px; letter-spacing:0; text-transform:none; list-style:none; border-radius:var(--dossier-radius); }
.detail-emblem { color:#766354; display:grid; place-items:center; }
.product-details-accordion .product-detail-item summary .detail-emblem svg { width:25px; height:25px; }
.detail-heading { display:grid; gap:4px; }
.detail-heading strong { font-size:var(--text-ui); font-weight:500; line-height:1.4; letter-spacing:-.015em; }
.detail-heading small { font-size:var(--dossier-small); line-height:1.5; color:var(--muted); }
.detail-toggle { width:30px; height:30px; display:grid; place-items:center; border:1px solid #c9bbaf; border-radius:50%; transition:background .35s,color .35s; }
.product-detail-item[open] .detail-toggle { background:var(--ink); color:var(--ivory); border-color:var(--ink); }
.product-details-accordion .product-detail-item summary .detail-toggle svg { width:14px; height:14px; }
.product-details-accordion .product-detail-copy { padding:12px 22px 24px; max-width:900px; font-size:var(--dossier-copy); line-height:1.75; }
.product-detail-copy .woocommerce-Reviews-title,.product-detail-copy .woocommerce-noreviews { display:none; }
.review-invitation { display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--line); margin-bottom:22px; padding:8px 0 24px; }
.review-invitation > span { border:1px solid var(--line); border-radius:50%; width:50px; height:50px; flex:0 0 50px; display:grid; place-items:center; }
.review-invitation svg { width:23px; height:23px; }
.review-invitation strong { font-size:var(--text-ui); font-weight:500; letter-spacing:-.02em; }
.review-invitation p { font-size:var(--dossier-small); margin:3px 0 0; color:var(--muted); }
.product-detail-copy .comment-reply-title { display:block; font-size:var(--text-ui); font-weight:500; line-height:1.4; margin-bottom:18px; }
.product-detail-copy .comment-form label { display:block; font-size:var(--dossier-small); margin-bottom:8px; }
.product-detail-copy .comment-form input:not([type=checkbox]):not([type=submit]),.product-detail-copy textarea { width:100%; font-size:var(--dossier-copy); border-color:#c9bbaf; background:var(--ivory); border-radius:6px; padding:12px; }
.product-detail-copy textarea { min-height:140px; }
.product-detail-copy .comment-form p { margin-bottom:18px; }
.product-detail-copy .comment-form-cookies-consent label { display:inline; }
.product-detail-copy .comment-notes,.product-detail-copy .woocommerce-verification-required { font-size:var(--dossier-small); }
.product-detail-copy .comment-form .submit { width:100%; border-radius:8px; font-size:var(--text-ui); }
.product-detail-copy .commentlist { padding:0; margin:0 0 24px; list-style:none; }
.product-detail-copy .commentlist li { padding:20px 0; border-bottom:1px solid var(--line); }
.product-detail-copy .commentlist .avatar { width:40px; height:40px; border-radius:50%; float:left; margin:0 14px 10px 0; }
.product-detail-copy .commentlist .meta { font-size:var(--dossier-small); }
.product-detail-copy .stars > span { display:flex; gap:5px; }
.product-detail-copy .stars a { width:38px; height:42px; display:grid; place-items:center; font-size:0; text-decoration:none; }
.product-detail-copy .stars a:before { content:'☆'; font-size:32px; line-height:1; color:var(--ink); }
.product-detail-copy .stars.selected a:is(.active,:has(~ .active)):before { content:'★'; }
.product-detail-copy .stars > span:hover a:before { content:'☆'; }
.product-detail-copy .stars > span a:is(:hover,:has(~ a:hover)):before { content:'★'; }
.single-product .star-rating { display:inline-block; position:relative; width:5.5em; height:1.2em; line-height:1.2; font-size:20px; letter-spacing:.1em; overflow:hidden; }
.single-product .star-rating:before { content:'☆☆☆☆☆'; }
.single-product .star-rating > span { position:absolute; inset:0 auto auto 0; overflow:hidden; white-space:nowrap; height:100%; font-size:0; }
.single-product .star-rating > span:before { content:'★★★★★'; font-size:20px; letter-spacing:.1em; }
.woocommerce-product-rating { display:flex; align-items:center; gap:12px; margin-top:18px; font-size:var(--dossier-small); }
.woocommerce div.product > .related.products, .woocommerce div.product > .up-sells { max-width:1720px; margin:0 auto; }

/* Phone buy bar --------------------------------------------------------------- */
.sticky-cart { position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; gap:12px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(247,244,239,.97); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-top:1px solid var(--line); box-shadow:0 -14px 30px -24px rgba(36,26,20,.6); transform:translateY(110%); visibility:hidden; transition:transform .35s var(--ease), visibility 0s .35s; }
.sticky-cart.is-visible { transform:none; visibility:visible; transition:transform .35s var(--ease), visibility 0s; }
.sticky-cart__info { min-width:0; flex:1; display:grid; gap:2px; }
.sticky-cart__info strong { font-size:13px; font-weight:500; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sticky-cart__info > span { display:flex; align-items:baseline; gap:8px; font-size:13px; min-width:0; }
.sticky-cart__info .woocommerce-price-suffix { display:none; }
.sticky-cart__colour { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sticky-cart .button { flex:0 0 auto; min-height:48px; padding:0 22px; border-radius:999px; font-size:14px; }

/* Responsive ------------------------------------------------------------------- */
@media (min-width:1025px) { .sticky-cart { display:none; } }
@media (min-width:2200px) {
  .vr-gallery-arrow { width:60px; height:60px; margin-top:-30px; }
  .vr-gallery-arrow svg { width:26px; height:26px; }
  .colour-swatch { --dot:56px; }
  .colour-picker--many .colour-swatch { --dot:46px; }
  .trust-list__icon svg { width:34px; height:34px; }
  .trust-list a { grid-template-columns:40px minmax(0,1fr); }
  .product-purchase .summary-favorite svg { width:28px; height:28px; }
  .product-details-accordion .product-detail-item summary { grid-template-columns:44px minmax(0,1fr) 38px; padding:28px; gap:20px; }
}
@media (max-width:1024px) {
  .woocommerce div.product .product-layout { grid-template-columns:minmax(0,1fr); gap:28px; padding:0; }
  .woocommerce div.product .product-layout > .vr-gallery { position:static; grid-row:auto; }
  .woocommerce div.product .product-layout > div.summary { grid-column:1; grid-row:auto; max-width:760px; margin:0 auto; padding:0 var(--gutter) 10px; }
  .vr-gallery { --stage-h:min(78svh, 900px); }
  .vr-gallery--multiple { display:block; }
  .vr-gallery-stage { border-radius:0; }
  .vr-gallery .vr-gallery-image, .vr-gallery .vr-gallery-video { max-height:var(--stage-h); }
  .vr-gallery-thumbs { flex-direction:row; max-height:none; overflow-x:auto; overflow-y:hidden; gap:8px; padding:10px var(--gutter) 2px; }
  .vr-gallery-thumbs button { width:64px; flex:0 0 64px; border-radius:8px; }
  .product-story { grid-template-columns:minmax(0,1fr); gap:18px; margin-top:44px; }
  .product-story__aside { position:static; }
}
@media (max-width:760px) {
  /* Phones keep the original full-width bar at the very top of the product page. */
  body.single-product { --nav-top:0px; }
  .single-product .site-header { top:0; padding-block:14px; background:var(--ivory); }
  body.single-product #main.shop-shell { padding-top:calc(var(--header-h) + 10px); }
  body.single-product #main > .woocommerce-breadcrumb { margin-bottom:12px; padding:0 16px; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .woocommerce div.product .product-layout > div.summary { padding:0 18px 6px; --dossier-small:13px; --dossier-copy:15px; --dossier-radius:12px; --dossier-space:20px; }
  .vr-gallery .vr-gallery-image > img { padding:12px; }
  .vr-gallery-arrow { display:none; }
  .vr-gallery-counter { right:12px; bottom:12px; font-size:11px; }
  .vr-gallery .gallery-open-label { left:12px; bottom:12px; font-size:11px; }
  .vr-gallery-thumbs { padding-inline:16px; }
  .vr-gallery-thumbs button { width:56px; flex-basis:56px; }
  .product-overline { font-size:11px; gap:5px 15px; padding-bottom:16px; }
  .product-heading { padding-top:18px; }
  .woocommerce div.product .product_title { font-size:30px; }
  .woocommerce div.product .summary p.price { font-size:24px; margin-top:12px; }
  .colour-swatches { gap:12px 4px; }
  .colour-swatch { --dot:40px; }
  .colour-picker--many .colour-swatch { --dot:34px; }
  .product-purchase { gap:8px; }
  .woocommerce .product-purchase .button { font-size:15px; padding-inline:12px; }
  .trust-list a { grid-template-columns:24px minmax(0,1fr); gap:10px; padding:13px 12px; }
  .trust-list__icon svg { width:22px; height:22px; }
  .trust-list strong { font-size:13px; }
  .trust-list small { font-size:11.5px; }
  .product-story { padding:34px 18px; margin-top:36px; }
  .product-story__aside h2 { font-size:28px; }
  .product-story__body { font-size:15px; }
  .product-story__text ul { grid-template-columns:minmax(0,1fr); gap:10px; }
  .woocommerce div.product > .product-details-accordion { padding:0 16px; }
  .product-details-accordion .product-detail-item summary { padding:19px 15px; grid-template-columns:28px minmax(0,1fr) 28px; gap:10px; }
  .detail-heading strong { font-size:16px; }
  .detail-toggle { width:28px; height:28px; }
  .product-details-accordion .product-detail-copy { padding-inline:15px; }
  body.single-product:has(.sticky-cart.is-visible) .toast { bottom:84px; }
}
@media (prefers-reduced-motion:reduce) {
  .vr-gallery-arrow, .vr-gallery-thumbs button, .colour-swatch__dot, .trust-list a, .summary-favorite, .product-details-accordion .product-detail-item, .detail-toggle, .sticky-cart { transition:none; }
}
