/* FCQV modal layer: the shared Quick View must sit above sticky cart bars,
   filter drawers and the legacy fallback Quick View without changing other Bricks popups. */
.brx-popup[data-fcqv-popup-template="1"] { z-index:1000004 !important; }

/* JS adds data-fcqv-runtime only when FCQV can preflight the hidden template.
   If Bricks exposes a popup before that preflight is ready, keep its content
   paint-hidden (layout still participates) until FCQV commits final geometry. */
.brx-popup[data-fcqv-popup-template="1"][data-fcqv-runtime="1"]:not(.hide):not([data-fcqv-layout-ready="1"]) .brx-popup-content {
  visibility:hidden !important;
}

/* FCQV is the text/purchase panel. Bricks owns the image, outer layout and modal.
   Defaults stay below the widget's responsive Style controls in the cascade. */
:where(.fcqv-popup) {
  position:relative; display:flex; flex-direction:column; gap:16px; box-sizing:border-box;
  width:100%; min-width:0; min-height:0;
  height:var(--fcqv-image-height, var(--fcqv-panel-height, min(480px, calc(100dvh - 48px))));
  padding:18px; background:#f5faf7; color:#002e25; font-family:Helvetica,Arial,sans-serif;
  overflow:hidden; overscroll-behavior:auto; scrollbar-gutter:auto;
  --fcqv-close-size:34px; --fcqv-close-icon-size:22px; --fcqv-scrollbar:#00594f;
  --fcqv-dot-size:6px; --fcqv-dot-gap:2px; --fcqv-dot-color:#00796f; --fcqv-dot-border:#6da59f; --fcqv-dot-bg:#e5f1ef;
}
:where(.fcqv-popup__title) { flex:none; margin:0; color:#000; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:26px; font-weight:700; font-style:normal; line-height:1.2; letter-spacing:0; text-align:left; text-transform:none; overflow-wrap:anywhere; }
:where(.fcqv-popup--has-close .fcqv-popup__title) { padding-inline-end:var(--fcqv-close-size); }
:where(.fcqv-popup--has-close:not(:has(.fcqv-popup__title))) { padding-block-start:calc(var(--fcqv-close-size) + 8px); }
:where(.fcqv-popup__reading) { position:relative; flex:1 1 0; min-width:0; min-height:48px; box-sizing:border-box; }
:where(.fcqv-popup__reading--dots) { padding-inline-end:22px; }
:where(.fcqv-popup__description) { height:100%; min-height:0; box-sizing:border-box; overflow:auto; overscroll-behavior:auto; scrollbar-width:thin; scrollbar-color:var(--fcqv-scrollbar) transparent; font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
:where(.fcqv-popup__reading--dots .fcqv-popup__description) { scrollbar-width:none; }
:where(.fcqv-popup__reading--dots .fcqv-popup__description)::-webkit-scrollbar { display:none; }
:where(.fcqv-popup__description > :first-child) { margin-top:0; }
:where(.fcqv-popup__description > :last-child) { margin-bottom:0; }
:where(.fcqv-popup__dots) { position:absolute; inset-inline-end:0; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; align-items:center; gap:var(--fcqv-dot-gap); max-height:100%; overflow:auto; }
:where(.fcqv-popup__dots[hidden]) { display:none; }
:where(.fcqv-popup__dot) { display:grid; place-items:center; flex:none; width:18px; height:calc(var(--fcqv-dot-size) + 4px); min-width:0; min-height:0; padding:0; margin:0; border:0; border-radius:0; background:transparent; cursor:pointer; }
:where(.fcqv-popup__dot)::before { content:''; display:block; width:var(--fcqv-dot-size); height:var(--fcqv-dot-size); border:1px solid var(--fcqv-dot-border); border-radius:50%; background:var(--fcqv-dot-bg); box-sizing:border-box; }
:where(.fcqv-popup__dot[aria-current='true'])::before { background:var(--fcqv-dot-color); border-color:var(--fcqv-dot-color); }
:where(.fcqv-popup__purchase) { flex:none; min-width:0; margin-top:auto; }
/* 7.0.293: short descriptions should not create a large artificial void before
   the purchase controls unless the author explicitly asks for bottom alignment. */
:where(.fcqv-popup[data-fcqv-purchase-placement="content"] .fcqv-popup__reading) { flex:0 1 auto; }
:where(.fcqv-popup[data-fcqv-purchase-placement="content"] .fcqv-popup__purchase) { margin-top:0; }
:where(.fcqv-popup__actions) { display:flex; flex-direction:column; gap:10px; }
:where(.fcqv-popup__button) { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; width:100%; padding:10px 16px; border:1px solid #d6e8e5; border-radius:5px; color:#002e25; font:700 14px/1 Helvetica,Arial,sans-serif; letter-spacing:.14px; text-decoration:none; cursor:pointer; box-sizing:border-box; }
:where(.fcqv-popup__add) { background:#e5f1ef; justify-content:space-between; }
:where(.fcqv-popup__view) { background:#fff; }
:where(.fcqv-popup__price) { display:flex; gap:7px; margin-inline-start:auto; white-space:nowrap; }
:where(.fcqv-popup .mlhs-old-price) { text-decoration:line-through; opacity:.65; }
:where(.fcqv-popup .fcepb-template-variant-row) { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
:where(.fcqv-popup .fcepb-template-variant) { padding:3px 10px; border:1px solid #8bbdb6; border-radius:999px; font:500 12px/1 Helvetica,Arial,sans-serif; background:white; color:#002e25; cursor:pointer; }
:where(.fcqv-popup .fcepb-template-variant[aria-checked='true']) { outline:1px solid currentColor; outline-offset:1px; }
:where(.fcqv-popup__close) { position:absolute; z-index:1; top:3px; right:3px; display:grid; place-items:center; width:var(--fcqv-close-size); height:var(--fcqv-close-size); padding:0; margin:0; border:1px solid #c8ddd7; border-radius:2px; color:#00594f; background:#fff; cursor:pointer; }
:where(.fcqv-popup__close svg) { display:block; width:var(--fcqv-close-icon-size); height:var(--fcqv-close-icon-size); pointer-events:none; transform-box:fill-box; transform-origin:center; }
:where(.fcqv-popup__status:empty, .fcqv-popup__variants:empty, .fcqv-popup__actions:empty) { display:none; }
:where(.fcqv-popup__status) { margin:0 0 10px; font-size:14px; }
:where(.fcqv-popup button:focus-visible, .fcqv-popup a:focus-visible, .fcqv-popup__description:focus-visible) { outline:2px solid #00594f; outline-offset:2px; }

/* Automatic sizing owns height; old saved Bricks height:560px must not win.
   Custom mode still uses the author's normal Bricks height controls. */
[data-fcqv-popup][data-fcqv-sizing="image"] {
  height:var(--fcqv-image-height, auto) !important;
  max-height:calc(100dvh - 48px);
}
/* A content-sized fallback stays compact until the separate image is ready. */
[data-fcqv-popup][data-fcqv-sizing="image"]:not([style*="--fcqv-image-height"]) .fcqv-popup__reading {
  flex:0 1 auto; min-height:48px; max-height:40dvh;
}
[data-fcqv-popup][data-fcqv-sizing="image"]:not([style*="--fcqv-image-height"]) .fcqv-popup__description {
  height:auto; max-height:40dvh;
}
/* Outrank the shared template defaults; Bricks ID-based Style controls still win. */
[data-fcqv-popup] [data-fcepb-qv-slot="variants"] [role="radio"] {
  display:inline-flex; align-items:center; justify-content:center;
  padding:3px 10px; min-height:0; margin:0;
  font:500 12px/1 Helvetica,Arial,sans-serif;
  border:1px solid #8bbdb6; border-radius:999px; background:#fff; color:#002e25;
  box-shadow:none; outline:none;
}
[data-fcqv-popup] [data-fcepb-qv-slot="variants"] [role="radio"] > span,
[data-fcqv-popup] [data-fcepb-qv-slot="variants"] [role="radio"] > span > span { font:inherit; color:inherit; }
[data-fcqv-popup] [data-fcepb-qv-slot="variants"] [role="radio"][aria-checked="true"] {
  background:#e5f1ef; border-color:#00594f; outline:none;
}
[data-fcqv-popup] [data-fcepb-qv-slot="variants"] [role="radio"]:focus-visible { outline:2px solid #00594f; outline-offset:2px; }
[data-fcqv-popup] [data-fcepb-qv-slot="close"] svg { transform-origin:50% 50%; transform-box:view-box; transition:none; }

/* Privacy Policy motion contract: fixed button, rotating inner glyph, then close.
   Only this owned wrapper has protected motion; Bricks Style controls retain
   ownership of the button's colour, size, border and position. */
:is([data-fcqv-popup] [data-fcepb-qv-slot="close"], [data-fcqv-portaled-close]) > .fcqv-popup__close-glyph {
  position:relative !important; display:block !important; visibility:visible !important; opacity:1 !important;
  width:var(--fcqv-close-icon-size,22px) !important; height:var(--fcqv-close-icon-size,22px) !important;
  min-width:var(--fcqv-close-icon-size,22px) !important; min-height:var(--fcqv-close-icon-size,22px) !important;
  max-width:var(--fcqv-close-icon-size,22px) !important; max-height:var(--fcqv-close-icon-size,22px) !important;
  margin:0 !important; padding:0 !important; line-height:0 !important; font-size:0 !important;
  background:transparent !important; pointer-events:none !important; overflow:visible !important; will-change:transform;
  transform-origin:50% 50% !important; transform:rotate(0deg) !important;
  transition:transform .24s ease !important; animation:none !important;
}
:is([data-fcqv-popup] [data-fcepb-qv-slot="close"], [data-fcqv-portaled-close]) {
  box-sizing:border-box; padding:0 !important; margin:0; line-height:0;
  display:grid !important; place-items:center !important; transform:none !important;
}
/* Privacy's normalizer suppresses old glyphs and button pseudo-elements so
   an unrotated theme X cannot cover the animated inner X. */
.fcqv-close-js::before, .fcqv-close-js::after { content:none !important; display:none !important; }
.fcqv-close-js > :not(.fcqv-popup__close-glyph) { display:none !important; }
/* Same two centered, rounded strokes as the Privacy Policy reader. Old cached
   SVG markup is hidden only inside this owned glyph, never elsewhere. */
.fcqv-popup__close-glyph > svg { display:none !important; }
.fcqv-popup__close-glyph::before, .fcqv-popup__close-glyph::after {
  content:"" !important; position:absolute !important; display:block !important; left:50% !important; top:50% !important;
  width:var(--fcqv-close-icon-size,22px) !important; height:2px !important; border-radius:999px !important;
  background:currentColor !important; transform-origin:50% 50% !important;
}
.fcqv-popup__close-glyph::before { transform:translate(-50%,-50%) rotate(45deg) !important; }
.fcqv-popup__close-glyph::after { transform:translate(-50%,-50%) rotate(-45deg) !important; }
:is([data-fcqv-popup] [data-fcepb-qv-slot="close"], [data-fcqv-portaled-close]).is-pressed > .fcqv-popup__close-glyph {
  transform:rotate(180deg) !important;
}
/* 7.0.289: no FCQV-specific motion override here. The visible close motion now
   follows the same effective FCACR Privacy Policy contract. */

/* Stacked layout is detected from the actual template, not a guessed device
   breakpoint. Markers are removed when the native columns return or on close. */
[data-fcqv-stack-shell] {
  overflow:hidden !important; overscroll-behavior:none;
  box-sizing:border-box !important; height:var(--fcqv-viewport-height,100dvh) !important;
  max-height:var(--fcqv-viewport-height,100dvh) !important;
  padding:0 !important; margin:0 !important; width:100% !important;
  align-items:center !important; justify-content:center !important;
}
[data-fcqv-stack-content] {
  position:relative !important; display:flex !important; flex-direction:column !important;
  box-sizing:border-box !important; min-height:0 !important;
  height:var(--fcqv-viewport-height, 100dvh) !important;
  max-height:var(--fcqv-viewport-height, 100dvh) !important;
  width:100% !important; max-width:none !important; border:0 !important; border-radius:0 !important;
  padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px) !important;
  overflow:hidden !important; overscroll-behavior:none; scrollbar-gutter:auto;
  margin-block:0 !important; flex-shrink:0 !important;
}
[data-fcqv-stack-frame], [data-fcqv-stack-layout]:not([data-fcqv-stack-content]) {
  flex:1 1 0 !important; height:auto !important; min-height:0 !important; max-height:none !important;
  box-sizing:border-box !important; overflow:hidden !important; margin-block:0 !important;
  width:100% !important; max-width:none !important;
}
[data-fcqv-stack-frame] { display:flex !important; flex-direction:column !important; }
[data-fcqv-stack-layout] {
  display:grid !important; grid-template-columns:minmax(0, 1fr) !important;
  grid-template-rows:var(--fcqv-stack-image-height, 30dvh) minmax(0, 1fr) !important;
  align-items:stretch !important;
}
[data-fcqv-stack-image], [data-fcqv-stack-panel] {
  box-sizing:border-box !important; min-width:0 !important; min-height:0 !important;
  width:100% !important; height:100% !important; max-height:none !important;
  margin-block:0 !important; overflow:hidden !important;
}
[data-fcqv-stack-layout] > [data-fcqv-stack-image] { grid-row:1 !important; grid-column:1 !important; }
[data-fcqv-stack-layout] > [data-fcqv-stack-panel] { grid-row:2 !important; grid-column:1 !important; }
img[data-fcqv-stack-image] { display:block !important; object-fit:contain !important; }
[data-fcqv-stack-panel]:not([data-fcqv-popup]) { display:flex !important; flex-direction:column !important; }
[data-fcqv-popup][data-fcqv-stack-panel] {
  flex:1 1 0 !important; height:100% !important; scrollbar-gutter:auto; overscroll-behavior:none;
}
/* Keep the authored close button in FCQV's DOM. Fixed positioning reaches the
   full-screen popup corner in stacked mode without reparenting it after paint. */
[data-fcqv-popup][data-fcqv-stack-panel] > .fcqv-popup__close {
  position:fixed !important;
  top:calc(var(--fcqv-stack-close-top,3px) + env(safe-area-inset-top,0px)) !important;
  right:calc(3px + env(safe-area-inset-right,0px)) !important;
  bottom:auto !important; left:auto !important; z-index:10 !important;
}
[data-fcqv-popup][data-fcqv-stack-panel] .fcqv-popup__title { padding-inline-end:0; }
[data-fcqv-popup][data-fcqv-stack-panel] .fcqv-popup__reading {
  flex:1 1 0 !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow:hidden;
}
[data-fcqv-popup][data-fcqv-stack-panel] .fcqv-popup__description {
  height:100% !important; min-height:0 !important; max-height:none !important;
  overflow-x:hidden !important; overflow-y:auto !important;
  overscroll-behavior:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch;
}
/* Preserve the same no-reserved-gap contract in stacked/tablet/mobile layouts.
   flex-shrink keeps long descriptions bounded; the description remains scrollable. */
[data-fcqv-popup][data-fcqv-stack-panel][data-fcqv-purchase-placement="content"] .fcqv-popup__reading {
  flex:0 1 auto !important; height:auto !important; min-height:48px !important; max-height:100% !important;
}
[data-fcqv-popup][data-fcqv-stack-panel][data-fcqv-purchase-placement="content"] .fcqv-popup__purchase { margin-top:0 !important; }

@media (max-width:767px) {
  :where(.fcqv-popup__title) { font-size:24px; line-height:1.2; }
}
[data-fcqv-portaled-close] {
  position:absolute !important; top:calc(3px + env(safe-area-inset-top,0px)) !important; right:calc(3px + env(safe-area-inset-right,0px)) !important;
  bottom:auto !important; left:auto !important; z-index:10 !important;
  display:grid !important; place-items:center; flex:none;
}
[data-fcqv-portaled-close] svg { display:block; width:var(--fcqv-close-icon-size,22px); height:var(--fcqv-close-icon-size,22px); pointer-events:none; }

/* 7.0.777: responsive Style variables are shared by editor and frontend.
   Protect size from generic theme headings and old saved 40px defaults;
   all other typography properties remain owned by the existing controls. */
[data-fcqv-popup] .fcqv-popup__title { font-size:var(--fcqv-title-size,26px) !important; }
[data-fcqv-popup] .fcqv-popup__description,
[data-fcqv-popup] .fcqv-popup__description :where(p,li) { font-size:var(--fcqv-description-size,14px) !important; }

/* 7.0.778: keep purchase controls at the image bottom, description above.
   Explicit flow placement remains available in Style. */
[data-fcqv-popup][data-fcqv-purchase-placement="bottom"] .fcqv-popup__reading { flex:1 1 0; min-height:0; overflow:hidden; }
[data-fcqv-popup][data-fcqv-purchase-placement="bottom"] .fcqv-popup__purchase { margin-top:auto; }
/* Reserve the product image's width/aspect before the decoded image arrives.
   Existing authored dimensions remain above these low-specificity defaults. */
:where(.brx-popup[data-fcqv-popup-template="1"] :is([data-fcepb-qv-slot="image"], #brxe-pawohj)) { width:100%; min-width:0; }
:where(.brx-popup[data-fcqv-popup-template="1"] :is([data-fcepb-qv-slot="image"], #brxe-pawohj) img) { display:block; width:100%; aspect-ratio:auto 1 / 1; object-fit:contain; }
/* Native entrance transforms move the already measured content after opening.
   Scope the stable opening geometry to the owned FCQV template only. */
.brx-popup[data-fcqv-popup-template="1"] .brx-popup-content { animation:none !important; transform:none !important; transition:opacity .15s ease !important; }
