/* Additions to the original Gaia product page only. */
body#product #main [data-gm-empty="true"] { display:none !important; }
body#product #main .product-page__title { margin:0; }
body#product #main .product-additional-info { margin:0; }
body#product #main .product-comments-additional-info { margin:8px 0 0; }
body#product #main .product-page__recap { margin:12px 0 0; }
body#product #main .product-page__recap > :first-child { margin-top:0; }
body#product #main .product-page__recap > :last-child { margin-bottom:0; }
body#product #main .product-variants { margin:18px 0 12px; }
.gm-productpage .gm-piece-label { margin:0 0 10px; font:600 var(--font-size-md)/1.4 var(--font-text); color:var(--color-secondary); }
.gm-productpage .gaia-key-infos { display:flex; flex-wrap:wrap; gap:12px 20px; list-style:none; padding:0; margin:0 0 12px; color:var(--color-secondary); }
.gm-productpage .gaia-key-infos li { display:flex; align-items:center; gap:8px; max-width:100%; font-size:var(--font-size-sm); }
.gm-productpage .gaia-key-infos img { width:32px; height:32px; object-fit:contain; flex:none; }
.gm-productpage .gaia-key-infos span { overflow-wrap:anywhere; }
.gm-productpage .gaia-reassurance { box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(330px,1.15fr); gap:clamp(18px,1.6vw,28px); width:var(--gm-banner-width,100%); max-width:100vw; margin:clamp(32px,3vw,56px) 0 28px var(--gm-banner-offset,0px); padding:clamp(20px,1.5vw,28px) 24px clamp(20px,1.5vw,28px) clamp(24px,5vw,96px); background:var(--color-secondary); color:var(--color-accent); }
.gm-productpage .gaia-reassurance__item { display:flex; align-items:center; gap:clamp(14px,1.3vw,24px); min-width:0; }
.gm-productpage .gaia-reassurance__icon { width:clamp(44px,3.4vw,64px); height:clamp(44px,3.4vw,64px); flex:none; }
.gm-productpage .gaia-reassurance__icon svg,.gm-productpage .gaia-reassurance__icon img { display:block; width:100%; height:100%; object-fit:contain; stroke-width:1.5; }
.gm-productpage .gaia-reassurance__item > :last-child { min-width:0; overflow-wrap:anywhere; }
.gm-productpage .gaia-reassurance h2 { margin:0 0 4px; color:inherit; font:600 clamp(17px,1.2vw,22px)/1.3 var(--font-text); text-transform:none; }
.gm-productpage .gaia-reassurance p { margin:0; color:inherit; opacity:.65; font:400 clamp(13px,.85vw,16px)/1.4 var(--font-text); }
.gm-productpage .gaia-reassurance [data-shipping-text] { white-space:nowrap; overflow-wrap:normal; }
@media (min-width:1100px) {
  /* A small increase from the previous 5/12 column, without changing the gallery crop. */
  body#product .product-container > .product-media-column { flex:0 0 43%; width:43%; max-width:43%; }
  body#product .product-container > .product-detail-column { flex:0 0 57%; width:57%; max-width:57%; }
}
@media (max-width:1199px) {
  /* Keep title and subtitle in one real text column, including on Safari. */
  body#product #main .gaia-reassurance__item--shipping { display:flex; align-items:center; column-gap:14px; }
  body#product #main .gaia-reassurance__item--shipping .gaia-reassurance__icon { width:44px; height:44px; flex:0 0 44px; }
  body#product #main .gaia-reassurance__item--shipping .gaia-reassurance__text { display:block; flex:1 1 0; min-width:0; }
  body#product #main .gaia-reassurance__item--shipping h2,
  body#product #main .gaia-reassurance__item--shipping [data-shipping-text] { margin-left:0; padding-left:0; text-align:left; }
}
@media (max-width:991px) {
  .gm-productpage .gaia-reassurance { grid-template-columns:1fr; gap:20px; padding:24px max(18px,4vw); }
  .gm-productpage .gaia-reassurance__item { column-gap:14px; }
  .gm-productpage .gaia-reassurance__icon { width:44px; height:44px; }
  .gm-productpage .gaia-reassurance h2 { font-size:18px; }
  .gm-productpage .gaia-reassurance p { font-size:14px; }
  .gm-productpage .gaia-reassurance [data-shipping-text] { font-size:clamp(12px,3.33vw,13px); }
}

/* Native review data, rendered by the theme: no JS sprite/width dependency. */
body#product #main .product-comments-additional-info a.link-comment,
body#product #main .product-comments-additional-info a.link-comment:is(:hover,:focus,:active),
body#product #main .product-comments-additional-info a.link-comment * { text-decoration:none !important; }
body#product #main .product-comments-additional-info a.link-comment { -webkit-tap-highlight-color:transparent; }
body#product #main .product-comments-additional-info a.link-comment:focus:not(:focus-visible) { outline:none; }
body#product #main .product-comments-additional-info a.link-comment:focus-visible { outline:2px solid var(--color-secondary); outline-offset:4px; border-radius:2px; }
body#product #main .gm-product-rating { display:inline-flex; align-items:center; gap:4px; flex-wrap:nowrap; }
body#product #main .gm-product-rating > .average-note,
body#product #main .gm-product-rating > .product-comments-average__count { margin:0; padding:0; line-height:1; }
body#product #main .gm-product-rating__stars { display:inline-flex; align-items:center; gap:2px; flex:none; color:#E3AC15; }
body#product #main .gm-product-rating__star { position:relative; display:block; width:22px; height:22px; flex:0 0 22px; color:#E3AC15; }
body#product #main .gm-product-rating__star svg { display:block; width:22px; height:22px; max-width:none; stroke:currentColor; stroke-width:1; stroke-linejoin:round; }
body#product #main .gm-product-rating__empty { fill:none; }
body#product #main .gm-product-rating__fill { position:absolute; inset:0 auto 0 0; display:block; height:22px; overflow:hidden; }
body#product #main .gm-product-rating__fill svg { fill:currentColor; }

/* One compact grid replaces the competing Bootstrap/theme review columns. */
body#product #main #product-comments-list .product-comment-list-item { display:grid; grid-template-columns:minmax(140px,170px) minmax(0,1fr); gap:16px; padding:16px !important; margin:0 0 14px; width:100%; box-sizing:border-box; }
body#product #main #product-comments-list .product-comment-list-item > .comment-infos,
body#product #main #product-comments-list .product-comment-list-item > .comment-content { width:auto; max-width:none; min-width:0; height:auto; min-height:0; margin:0; padding:0; float:none; overflow-wrap:anywhere; }
body#product #main #product-comments-list .comment-infos { font-size:14px; line-height:1.45; }
body#product #main #product-comments-list .gm-review-stars { display:flex; width:max-content; margin:0 0 8px; }
body#product #main #product-comments-list .gm-product-review__text { margin:0; line-height:1.5; }
@media (max-width:767px) {
  body#product #main #product-comments-list .product-comment-list-item { grid-template-columns:minmax(0,1fr); gap:10px; padding:14px !important; }
}

/* Stripe renders its own button: the bridge sets its supported height/radius. */
@media (max-width:1099px) {
  body#product #main .add-to-cart-wrapper .add-to-cart { min-height:55px; padding-block:8px; }
  body#product #main #stripe-express-checkout-element { display:block; box-sizing:border-box; max-width:100%; margin-top:12px; padding:0; }
}

/* Native productcomments form, styled from the Gaia theme override. */
body#product .modal-backdrop.show { opacity:.64; backdrop-filter:blur(5px); }
body#product #post-product-comment-modal { padding:0 !important; }
body#product #post-product-comment-modal .modal-dialog { width:min(1050px,calc(100vw - 48px)); max-width:none; margin:3vh auto; }
body#product #post-product-comment-modal .modal-content { padding:22px 32px 20px; overflow:visible; color:var(--color-secondary); background:var(--color-light); border:0; border-radius:16px; box-shadow:0 18px 70px rgba(0,0,0,.3); font-family:var(--font-text); }
body#product #post-product-comment-modal .gm-comment-modal__header { display:block; position:relative; padding:0 48px 16px; text-align:center; border:0; }
body#product #post-product-comment-modal .gm-comment-modal__title { margin:0; color:var(--color-secondary); font:700 clamp(24px,2.1vw,32px)/1.15 var(--font-text); letter-spacing:0; white-space:nowrap; }
body#product #post-product-comment-modal .gm-comment-modal__subtitle { margin:6px 0 0; color:var(--color-secondary); font:400 var(--font-size-sm)/1.4 var(--font-text); opacity:.72; }
body#product #post-product-comment-modal .gm-comment-modal__close { top:-12px; right:-20px; width:44px; height:44px; padding:10px; color:#111; border:0; background:transparent; }
body#product #post-product-comment-modal .gm-comment-modal__close svg { width:24px; height:24px; color:currentColor; transition:transform .2s ease,color .2s ease; }
body#product #post-product-comment-modal .gm-comment-modal__close:is(:hover,:focus-visible) svg { color:var(--color-primary); transform:rotate(90deg); }
body#product #post-product-comment-modal .modal-body { padding:0; }
body#product #post-product-comment-modal .gm-comment-modal__product { display:grid; grid-template-columns:190px minmax(0,1fr); align-items:center; gap:24px; min-height:132px; padding:16px 28px; background:color-mix(in srgb,var(--color-accent) 45%,var(--color-light)); border-radius:10px; }
body#product #post-product-comment-modal .gm-comment-modal__media { min-width:0; }
body#product #post-product-comment-modal .product-flags { display:none; }
body#product #post-product-comment-modal .product-cover,
body#product #post-product-comment-modal .product-cover img { display:block; width:100%; height:100px; margin:0; background:transparent; border:0; object-fit:contain; }
body#product #post-product-comment-modal .gm-comment-modal__summary { min-width:0; padding-left:24px; border-left:1px solid rgba(35,57,89,.16); }
body#product #post-product-comment-modal .gm-comment-modal__summary .h3 { margin:0 0 8px; color:var(--color-primary); font:700 18px/1.25 var(--font-text); letter-spacing:.025em; text-transform:uppercase; }
body#product #post-product-comment-modal .gm-comment-modal__summary [itemprop="description"] { color:var(--color-secondary); font:400 var(--font-size-sm)/1.4 var(--font-text); font-style:normal; opacity:.72; }
body#product #post-product-comment-modal .gm-comment-modal__rating-section { margin-top:16px; }
body#product #post-product-comment-modal .gm-comment-modal__question { margin:0 0 8px; color:var(--color-secondary); font:600 clamp(18px,1.4vw,22px)/1.3 var(--font-text); text-transform:none; }
body#product #post-product-comment-modal .gm-comment-modal__criteria { margin:0; }
body#product #post-product-comment-modal .gm-comment-rating { display:flex; align-items:center; gap:18px; }
body#product #post-product-comment-modal .gm-comment-rating__control { display:flex; align-items:center; gap:2px; flex:none; padding:5px; color:#E3AC15; border-radius:6px; cursor:pointer; touch-action:manipulation; }
body#product #post-product-comment-modal .gm-comment-rating__control:focus-visible { outline:2px solid var(--color-secondary); outline-offset:2px; }
body#product #post-product-comment-modal .gm-comment-rating__star { position:relative; display:block; width:30px; height:34px; padding:6px 4px; color:#E3AC15; }
body#product #post-product-comment-modal .gm-comment-rating__star svg { display:block; width:22px; height:22px; max-width:none; fill:none; color:rgba(35,57,89,.35); stroke:currentColor; stroke-width:1; stroke-linejoin:round; }
body#product #post-product-comment-modal .gm-comment-rating__fill { position:absolute; top:6px; left:4px; display:block; width:22px; height:22px; overflow:hidden; clip-path:inset(0 calc(100% - var(--gm-star-fill,0%)) 0 0); pointer-events:none; }
body#product #post-product-comment-modal .gm-comment-rating__fill svg { color:#E3AC15; fill:currentColor; }
body#product #post-product-comment-modal .gm-comment-rating__feedback { min-width:170px; padding-left:18px; border-left:1px solid rgba(35,57,89,.22); }
body#product #post-product-comment-modal .gm-comment-rating__feedback strong,
body#product #post-product-comment-modal .gm-comment-rating__feedback span { display:block; }
body#product #post-product-comment-modal .gm-comment-rating__feedback strong { color:var(--color-primary); font:700 18px/1.2 var(--font-text); }
body#product #post-product-comment-modal .gm-comment-rating__feedback span { margin-top:1px; color:var(--color-secondary); font:400 13px/1.3 var(--font-text); opacity:.7; }
body#product #post-product-comment-modal #ratingNotChosen { margin-top:8px; color:var(--color-primary); font-size:14px; }
body#product #post-product-comment-modal .gm-comment-modal__meta { display:block; margin:12px 0 0; }
body#product #post-product-comment-modal .gm-comment-modal__field { width:100%; }
body#product #post-product-comment-modal .form-label { display:block; margin:0 0 6px; color:var(--color-secondary); font:600 16px/1.3 var(--font-text); text-align:left; }
body#product #post-product-comment-modal .gm-comment-modal__review-field { position:relative; margin-top:14px; text-align:left; }
body#product #post-product-comment-modal textarea { display:block; width:100%; min-height:112px; padding:14px 16px 32px; resize:none; color:var(--color-secondary); background:var(--color-light); border:1px solid rgba(35,57,89,.42); border-radius:10px; font:400 14px/1.4 var(--font-text); }
body#product #post-product-comment-modal textarea::placeholder { color:#7b8495; opacity:1; }
body#product #post-product-comment-modal textarea:focus,
body#product #post-product-comment-modal input:focus { border-color:var(--color-secondary); outline:2px solid rgba(35,57,89,.18); outline-offset:1px; }
body#product #post-product-comment-modal .gm-comment-modal__counter { position:absolute; right:16px; bottom:12px; color:#747d8d; font:400 14px/1 var(--font-text); pointer-events:none; }
body#product #post-product-comment-modal .gm-comment-modal__footer { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:16px; padding-top:14px; border-top:1px solid rgba(35,57,89,.12); }
body#product #post-product-comment-modal .gm-comment-modal__required p { margin:0; color:#747d8d; font-size:14px; }
body#product #post-product-comment-modal .gm-comment-modal__actions { display:flex; align-items:stretch; gap:12px; }
body#product #post-product-comment-modal .gm-comment-modal__cancel,
body#product #post-product-comment-modal .post-comment-buttons .btn--primary { min-width:180px; min-height:46px; padding:10px 20px; border-radius:8px; font:500 16px/1.2 var(--font-text); }
body#product #post-product-comment-modal .gm-comment-modal__cancel { color:var(--color-secondary); background:var(--color-light); border:1px solid rgba(35,57,89,.5); }
body#product #post-product-comment-modal .gm-comment-modal__cancel:is(:hover,:focus-visible) { color:var(--color-primary); border-color:var(--color-primary); }
body#product #post-product-comment-modal .post-comment-buttons .btn--primary { color:var(--color-accent); background:var(--color-primary); border:1px solid var(--color-primary); }
body#product #post-product-comment-modal .post-comment-buttons .btn--primary:is(:hover,:focus-visible) { background:#521313; border-color:#521313; }
@media (max-width:767px) {
  body#product #post-product-comment-modal .modal-dialog { width:calc(100vw - 20px); margin:2vh auto; }
  body#product #post-product-comment-modal .modal-content { max-height:96vh; max-height:96dvh; padding:16px 14px; overflow-y:auto; scrollbar-width:none; border-radius:14px; }
  body#product #post-product-comment-modal .modal-content::-webkit-scrollbar { display:none; }
  body#product #post-product-comment-modal .gm-comment-modal__header { padding:20px 28px 14px; }
  body#product #post-product-comment-modal .gm-comment-modal__title { font-size:26px; white-space:nowrap; }
  body#product #post-product-comment-modal .gm-comment-modal__subtitle { font-size:13px; line-height:1.35; }
  body#product #post-product-comment-modal .gm-comment-modal__close { top:-12px; right:-8px; }
  body#product #post-product-comment-modal .gm-comment-modal__product { grid-template-columns:78px minmax(0,1fr); gap:12px; min-height:0; padding:12px; }
  body#product #post-product-comment-modal .product-cover,
  body#product #post-product-comment-modal .product-cover img { height:78px; }
  body#product #post-product-comment-modal .gm-comment-modal__summary { padding-left:0; border-left:0; }
  body#product #post-product-comment-modal .gm-comment-modal__summary .h3 { margin-bottom:5px; font-size:15px; }
  body#product #post-product-comment-modal .gm-comment-modal__summary [itemprop="description"] { font-size:12px; line-height:1.35; }
  body#product #post-product-comment-modal .gm-comment-modal__question { font-size:18px; }
  body#product #post-product-comment-modal .gm-comment-rating { flex-direction:row; align-items:center; gap:8px; }
  body#product #post-product-comment-modal .gm-comment-rating__control { padding-inline:0; }
  body#product #post-product-comment-modal .gm-comment-rating__star { width:27px; padding-inline:2px; }
  body#product #post-product-comment-modal .gm-comment-rating__fill { left:2px; }
  body#product #post-product-comment-modal .gm-comment-rating__feedback { min-width:0; padding-left:10px; text-align:left; border-left:1px solid rgba(35,57,89,.22); }
  body#product #post-product-comment-modal .gm-comment-rating__feedback strong { font-size:15px; }
  body#product #post-product-comment-modal .gm-comment-rating__feedback span { font-size:11px; }
  body#product #post-product-comment-modal textarea { min-height:130px; }
  body#product #post-product-comment-modal .gm-comment-modal__footer { align-items:stretch; flex-direction:column; }
  body#product #post-product-comment-modal .gm-comment-modal__actions { flex-direction:column; width:100%; }
  body#product #post-product-comment-modal .gm-comment-modal__cancel,
  body#product #post-product-comment-modal .post-comment-buttons .btn--primary { width:100%; min-width:0; }
  body#product #post-product-comment-modal .post-comment-buttons .btn--primary { order:-1; }
}
@media (min-width:768px) and (max-width:1024px) {
  body#product #post-product-comment-modal .modal-dialog { width:calc(100vw - 48px); }
  body#product #post-product-comment-modal .gm-comment-modal__product { grid-template-columns:150px minmax(0,1fr); }
}
@media (max-height:700px) and (min-width:768px) {
  body#product #post-product-comment-modal .modal-dialog { margin:2vh auto; }
  body#product #post-product-comment-modal .modal-content { max-height:96vh; max-height:96dvh; overflow-y:auto; scrollbar-width:none; }
  body#product #post-product-comment-modal .modal-content::-webkit-scrollbar { display:none; }
}

/* Weight cards are the native attribute radio inputs, with optional combination portions. */
body#product .gaia-weight-group { border:0; padding:0; margin:0 0 14px; min-width:0; }
body#product .gaia-weight-group legend { float:none; width:100%; padding:0; margin:0 0 8px; color:var(--color-secondary); font:600 clamp(22px,1.65vw,30px)/1.3 var(--font-text); }
body#product .gaia-weight-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,1.6vw,28px); }
body#product .gaia-weight-cards--single { grid-template-columns:1fr; }
body#product .gaia-weight-cards--pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
body#product .gaia-weight-card { position:relative; display:block; min-width:0; margin:0; cursor:pointer; }
body#product .gaia-weight-card > .input-radio { position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; clip-path:inset(50%); }
body#product .gaia-weight-card__body { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; height:100%; min-height:94px; padding:16px 20px; border:1px solid var(--color-secondary); border-radius:6px; background:var(--color-accent); color:var(--color-secondary); text-align:center; overflow-wrap:anywhere; }
body#product .gaia-weight-card__body strong { font:700 clamp(18px,1.3vw,24px)/1.25 var(--font-text); }
body#product .gaia-weight-card__portion { font:400 clamp(15px,1.05vw,20px)/1.3 var(--font-text); }
body#product .gaia-weight-card__check { position:absolute; top:7px; right:7px; width:14px; height:14px; visibility:hidden; }
body#product .gaia-weight-card > .input-radio:checked + .gaia-weight-card__body { color:var(--color-accent); background:var(--color-secondary); }
body#product .gaia-weight-card > .input-radio:checked + .gaia-weight-card__body .gaia-weight-card__check { visibility:visible; }
body#product .gaia-weight-card > .input-radio:focus-visible + .gaia-weight-card__body { outline:3px solid var(--color-primary); outline-offset:3px; }
@media (max-width:599px) {
  body#product .gaia-weight-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  body#product .gaia-weight-cards--single { grid-template-columns:1fr; }
  body#product .gaia-weight-card__body { min-height:88px; padding:14px 18px; }
}

/* Step 1: cart icon, compact product breadcrumb and image viewer. */
html:has(body#product),body#product { overflow-x:hidden; overflow-x:clip; }
body#product { padding-top:48px; }
body#product #wrapper { max-width:100%; overflow-x:clip; }
body#product #wrapper .breadcrumb { padding-block:0; margin-block:0 12px; font-size:14px; line-height:1.5; }
body#product #wrapper .breadcrumb ol { margin-block:0; font-size:inherit; }
body#product .gm-product-icon { display:inline-block; width:24px; height:24px; flex:none; background-color:currentColor; mask:var(--gm-icon) center / contain no-repeat; -webkit-mask:var(--gm-icon) center / contain no-repeat; pointer-events:none; }
body#product .gm-product-icon--cart { --gm-icon:url('../img/lucide/shopping-basket.svg'); width:28px; height:28px; margin-right:8px; vertical-align:middle; }
body#product .gm-product-icon--zoom { --gm-icon:url('../img/lucide/zoom-in.svg'); }
body#product .gm-product-icon--reset { --gm-icon:url('../img/lucide/zoom-out.svg'); }
body#product .gm-product-icon--prev { --gm-icon:url('../img/lucide/arrow-left.svg'); }
body#product .gm-product-icon--next { --gm-icon:url('../img/lucide/arrow-right.svg'); }
body#product .gm-product-icon--close { --gm-icon:url('../img/lucide/x.svg'); }
body#product .gm-gallery-stage { position:relative; width:100%; max-width:none; aspect-ratio:1; overflow:hidden; border-radius:var(--radius-base); background:var(--color-neutral); touch-action:pan-y; }
body#product .images-container.js-images-container.gm-gallery .product-cover--static { height:auto; }
body#product .images-container.js-images-container.gm-gallery .gm-gallery-stage picture { display:block; width:100%; height:100%; margin:0; padding:0; }
body#product .images-container.js-images-container.gm-gallery .product-cover--static .js-qv-product-cover { width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; object-position:center; background:var(--color-neutral); border:0; margin:0; padding:0; }
body#product .gm-gallery .js-qv-product-cover { display:block; transform-origin:center; cursor:zoom-in; user-select:none; -webkit-user-select:none; -webkit-user-drag:none; }
body#product :is(.gm-product-zoom,.gm-gallery-arrow,.gm-gallery-reset) { position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; padding:0; width:48px; height:48px; border:1px solid var(--color-secondary); border-radius:50%; color:var(--color-secondary); background:var(--color-accent); cursor:pointer; }
body#product .gm-product-zoom { right:14px; bottom:14px; opacity:0; pointer-events:none; transition:opacity .15s ease; }
@media (hover:hover) and (pointer:fine) {
  body#product .gm-gallery-stage:hover .gm-product-zoom { opacity:1; pointer-events:auto; }
  body#product :is(.gm-product-zoom,.gm-gallery-arrow,.gm-gallery-reset):hover { color:var(--color-primary); border-color:var(--color-primary); }
}
body#product #main[data-gm-gallery-input="keyboard"] .gm-gallery-stage:focus-within .gm-product-zoom { opacity:1; pointer-events:auto; }
body#product .gm-gallery-inline { display:none; }
/* Fixed-height centering needs no transform, so theme button states cannot move it. */
body#product .gm-gallery-arrow { top:0; bottom:0; margin-block:auto; translate:none; transform:none; }
body#product .gm-gallery-arrow--prev { left:24px; }
body#product .gm-gallery-arrow--next { right:24px; }
body#product .gm-gallery-counter { position:absolute; z-index:3; right:16px; bottom:16px; padding:6px 10px; color:var(--color-secondary); background:var(--color-accent); border-radius:var(--radius-base); font:500 14px/1.4 var(--font-text); pointer-events:none; }
body#product .gm-gallery-reset { bottom:14px; left:14px; }
body#product .gm-gallery-stage.is-zoomed { touch-action:none; }
body#product :is(.gm-gallery-stage,.gm-gallery-modal-stage).is-zoomed img { cursor:grab; }
body#product .gm-gallery-dialog { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; max-width:none; max-height:none; padding:50px 110px; margin:0; border:0; border-radius:0; overflow:hidden; background:var(--color-light); color:var(--color-secondary); }
body#product .gm-gallery-dialog[open] { display:flex; align-items:center; justify-content:center; }
body#product .gm-gallery-dialog::backdrop { background:var(--color-light); }
body#product .gm-gallery-modal-stage { display:flex; align-items:center; justify-content:center; width:100%; height:100%; overflow:hidden; touch-action:pan-y; }
body#product .gm-gallery-modal-stage.is-zoomed { touch-action:none; }
body#product .gm-gallery-modal-stage .gm-gallery-modal-image { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border:0; transform-origin:center; user-select:none; -webkit-user-select:none; -webkit-user-drag:none; }
/* Same SVG and rotation as the review/drawer close, scoped to the image viewer. */
body#product .gm-gallery-dialog .gm-product-image-close { position:absolute; z-index:3; top:max(16px,env(safe-area-inset-top)); right:max(16px,env(safe-area-inset-right)); display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:6px; margin:0; background:none; border:0; border-radius:0; box-shadow:none; cursor:pointer; }
body#product .gm-gallery-dialog .gm-product-image-close svg { width:20px; height:20px; color:var(--color-secondary); transition:transform .2s ease,color .2s ease; }
body#product .gm-gallery-dialog .gm-product-image-close:is(:hover,:focus,:active) svg { color:#521313; transform:rotate(90deg); }
body#product .gm-gallery-dialog > .gm-gallery-arrow { width:56px; height:56px; }
body#product .gm-gallery-dialog > .gm-gallery-arrow .gm-product-icon { width:32px; height:32px; }
body#product .gm-gallery-dialog .gm-gallery-counter { right:max(20px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); }
body#product .gm-gallery-error { position:absolute; left:15%; right:15%; top:45%; text-align:center; color:var(--color-primary); }
body#product #main[data-gm-gallery-input="pointer"] :is(.gm-product-zoom,.gm-gallery-arrow,.gm-product-image-close,.gm-gallery-reset,.gm-gallery .js-thumb,.gm-gallery .js-qv-product-cover):focus { outline:none !important; }
body#product #main[data-gm-gallery-input="keyboard"] :is(.gm-product-zoom,.gm-gallery-arrow,.gm-product-image-close,.gm-gallery-reset,.gm-gallery .js-thumb,.gm-gallery .js-qv-product-cover):focus-visible { outline:3px solid var(--color-primary) !important; outline-offset:-4px; }
body#product :is(.gm-gallery,.gm-gallery-dialog) [hidden] { display:none !important; }
@media (max-width:1024px), (pointer:coarse) {
  body#product .gm-gallery .js-qv-mask { display:none !important; }
  body#product .gm-gallery .gm-gallery-stage { max-width:100%; }
  body#product .gm-gallery-inline:not([hidden]) { display:flex; }
  body#product .gm-gallery-stage .gm-gallery-arrow--prev { left:12px; }
  body#product .gm-gallery-stage .gm-gallery-arrow--next { right:12px; }
  body#product .gm-gallery-stage .gm-product-zoom { bottom:auto; top:12px; }
  body#product .gm-gallery .js-qv-product-cover { max-width:100% !important; cursor:default; }
  body#product .gm-gallery-dialog { padding:64px 0; }
  body#product .gm-gallery-dialog > .gm-gallery-arrow { width:44px; height:44px; }
  body#product .gm-gallery-dialog .gm-gallery-arrow--prev { left:12px; }
  body#product .gm-gallery-dialog .gm-gallery-arrow--next { right:12px; }
}
@media (prefers-reduced-motion:reduce) {
  body#product .gm-product-zoom,body#product .gm-gallery-dialog .gm-product-image-close svg { transition:none; }
}
