/* generated by tools/fh2oc - do not hand-edit */
.fp[data-fv] img.fh2oc-dyn-image,
img.fh2oc-dyn-image{
  position:absolute;
  left:0; top:0;
  width:100%; height:100%;
  max-width:none;
  /* cover, not contain. OpenCart pads a thumbnail out to the exact requested
     box, so `contain` fits the PADDING into the frame and the product ends up
     small and ringed with white. `cover` crops that padding away instead, which
     is what the design's own zoomed crop was doing. */
  object-fit:cover;
  /* The design's own framing, measured per image at build time
     (blocks.framing_style): focus, zoom and zoom origin. Defaults = plain
     centred cover. The design's baked matrix is still overridden. */
  object-position:var(--fh-px,50%) var(--fh-py,50%);
  transform:scale(var(--fh-z,1)) !important;
  transform-origin:var(--fh-ox,50%) var(--fh-oy,50%);
}
/* Bootstrap 3 (layered, for pages still on stock templates) sets
   html{font-size:10px}. The design sizes text in rem against the browser's
   16px, and a layer cannot shield a root rule the design never declares -
   every heading shrank ~2.5x. Unlayered, this restores the default. */
html{ font-size:100%; }
/* Real <input>s made from the design's placeholder spans (lib/blocks.py).
   They keep the span's classes, so font, size and colour stay the design's;
   :where() keeps these resets at zero specificity. */
:where(input.fh2oc-input){ border:0; background:transparent; outline:0;
  padding:0; margin:0; min-width:0; width:100%; box-sizing:border-box;
  font:inherit; color:inherit; -webkit-appearance:none; appearance:none; }
:where(input.fh2oc-input)::placeholder{ color:inherit; opacity:1; }
/* Ratings: the design only draws filled stars; unfilled ones are faded. */
.fp[data-fv] .fh2oc-star-off{ filter:grayscale(1); opacity:.3; }
/* Popovers, toast and overlay that ctheme.js appends to <body> live OUTSIDE
   .fp, so they inherit <body> - which on the storefront carries stock
   OpenCart's font-size:12px / line-height:20px (layered, for pages not yet
   converted). The design's own popovers inherit the browser defaults, and its
   CSS relies on that: rows came out 62px instead of 53. Restore the defaults. */
body > :where(.fse-popover, .fse-action-toast, .fse-interaction-overlay){
  font-size:16px; line-height:normal;
}
/* Language popover (ctheme.js) borrows the contacts popover's look, but not
   its fixed 280px: a list of language names is sized to its content. */
#fse-language-popover.fse-contact-popover{ width:max-content; min-width:160px; }
/* Partner logos (lib/blocks.py): fit whole, never crop a logo. */
.fp[data-fv] img.fh2oc-dyn-image.fh2oc-contain{ object-fit:contain; }
/* Menu links (lib/menus.py) turn the design's styled <div>s into <a>.
   :where() keeps these at zero specificity, so every display/colour the
   design declares on its own classes still wins; they only replace the
   browser's (and Bootstrap's) link look. */
:where(a.fh2oc-link, a.fh2oc-link:hover, a.fh2oc-link:focus){
  display:block; color:inherit; text-decoration:none;
}
/* Figma fixes each footer column's height to its design content; an
   admin-edited menu can hold more links than that. */
.fp[data-fv] .fh2oc-menu-col{ height:auto !important; }
/* ctheme.js builds the mega-menu from real <a> links where the export's
   prototype used <button>s; keep them looking like the design's buttons. */
.fse-popover a{ text-decoration:none; }
a.fse-category-item, a.fse-subcategory-item{ display:block; }


/* replaceable images framed like the design, per breakpoint (blocks.apply_framing) */
.fp[data-fv] img.n53-image-paint.fh2oc-dyn-image{ object-fit:fill; object-position:50% 50%; transform:none !important; object-view-box:inset(0.000% 9.615% 0.000% 8.974%); }
.fp[data-fv] img.n484-image-paint.fh2oc-dyn-image{ object-fit:fill; object-position:50% 50%; transform:none !important; object-view-box:inset(0.750% 0.000% 0.000% 8.974%); }

/* card names: at most 2 lines, ending in an ellipsis (the design cuts
   them in its copy). The clamp sits on an INNER span: the name element
   is a flex item, and a flex item's display is blockified - -webkit-box
   becomes flow-root and -webkit-line-clamp silently does nothing. */
.fh2oc-clamp{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; white-space:normal; }

/* translated labels may be longer than the design's copy: these boxes
   keep their design width but grow instead of overflowing, and the
   ones too wide to grow wrap inside it
   (measure-fit.cjs, blocks.fit_css) */
@media (min-width:1439.98px){
  .fp[data-fv] :is(.n46,.n45,.n43,.n42,.n36,.n117,.n116,.n115,.n112,.n111){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n39,.n38,.n37,.n36,.n85,.n84,.n81,.n95,.n94,.n93,.n101,.n100,.n108,.n102,.n114,.n113,.n112,.n111,.n137,.n136,.n135,.n174,.n173,.n170,.n197,.n196,.n195,.n200,.n199,.n203,.n202,.n207,.n210,.n209,.n221,.n236,.n235,.n232,.n259,.n258,.n257,.n262,.n261,.n265,.n264,.n269,.n272,.n271,.n283,.n298,.n297,.n294,.n321,.n320,.n319,.n324,.n323,.n327,.n326,.n331,.n334,.n333,.n345,.n360,.n359,.n356,.n383,.n382,.n381,.n386,.n385,.n389,.n388,.n393,.n396,.n395,.n407,.n422,.n421,.n418,.n445,.n444,.n443,.n448,.n447,.n451,.n450,.n455,.n458,.n457,.n469,.n569,.n585,.n575,.n570){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] .n88{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n92{ height:auto; min-height:52px; }
  html:not([lang="lt"]) .fp[data-fv] .n110{ height:auto; min-height:42px; }
  html:not([lang="lt"]) .fp[data-fv] .n205{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n208{ height:auto; min-height:72px; }
  html:not([lang="lt"]) .fp[data-fv] .n211{ height:auto; min-height:48px; }
  html:not([lang="lt"]) .fp[data-fv] .n267{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n270{ height:auto; min-height:72px; }
  html:not([lang="lt"]) .fp[data-fv] .n273{ height:auto; min-height:48px; }
  html:not([lang="lt"]) .fp[data-fv] .n329{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n332{ height:auto; min-height:72px; }
  html:not([lang="lt"]) .fp[data-fv] .n335{ height:auto; min-height:48px; }
  html:not([lang="lt"]) .fp[data-fv] .n391{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n394{ height:auto; min-height:72px; }
  html:not([lang="lt"]) .fp[data-fv] .n397{ height:auto; min-height:48px; }
  html:not([lang="lt"]) .fp[data-fv] .n453{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n456{ height:auto; min-height:72px; }
  html:not([lang="lt"]) .fp[data-fv] .n459{ height:auto; min-height:48px; }
  html:not([lang="lt"]) .fp[data-fv] .n568{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n88,.n92,.n110,.n205,.n208,.n211,.n267,.n270,.n273,.n329,.n332,.n335,.n391,.n394,.n397,.n453,.n456,.n459,.n568), html:not([lang="lt"]) .fp[data-fv] :is(.n88,.n92,.n110,.n205,.n208,.n211,.n267,.n270,.n273,.n329,.n332,.n335,.n391,.n394,.n397,.n453,.n456,.n459,.n568) *{ white-space:pre-wrap; overflow-wrap:anywhere; }
}
@media (min-width:1024px) and (max-width:1439.98px){
  .fp[data-fv] :is(.n46,.n45,.n43,.n42,.n36,.n117,.n116,.n115){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n39,.n38,.n37,.n36,.n85,.n84,.n81,.n88,.n87,.n86,.n95,.n94,.n93,.n101,.n100,.n108,.n102,.n137,.n136,.n174,.n173,.n170,.n197,.n196,.n195,.n200,.n199,.n203,.n202,.n207,.n210,.n236,.n235,.n232,.n259,.n258,.n257,.n262,.n261,.n265,.n264,.n269,.n272,.n298,.n297,.n294,.n321,.n320,.n319,.n324,.n323,.n327,.n326,.n331,.n334,.n360,.n359,.n356,.n383,.n382,.n381,.n386,.n385,.n389,.n388,.n393,.n396,.n422,.n421,.n418,.n445,.n444,.n443,.n448,.n447,.n451,.n450,.n455,.n458,.n569,.n585,.n575,.n570){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] .n80{ height:auto; min-height:44px; }
  html:not([lang="lt"]) .fp[data-fv] .n92{ height:auto; min-height:52px; }
  html:not([lang="lt"]) .fp[data-fv] .n110{ height:auto; min-height:42px; }
  html:not([lang="lt"]) .fp[data-fv] .n205{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n209{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n221{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n267{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n271{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n283{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n329{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n333{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n345{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n391{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n395{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n407{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n453{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n457{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n469{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n568{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n80,.n92,.n110,.n205,.n209,.n221,.n267,.n271,.n283,.n329,.n333,.n345,.n391,.n395,.n407,.n453,.n457,.n469,.n568), html:not([lang="lt"]) .fp[data-fv] :is(.n80,.n92,.n110,.n205,.n209,.n221,.n267,.n271,.n283,.n329,.n333,.n345,.n391,.n395,.n407,.n453,.n457,.n469,.n568) *{ white-space:pre-wrap; overflow-wrap:anywhere; }
}
@media (min-width:768px) and (max-width:1023.98px){
  .fp[data-fv] :is(.n46,.n45,.n43,.n42,.n36,.n117,.n116,.n115){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n39,.n38,.n37,.n36,.n85,.n84,.n95,.n94,.n93,.n101,.n100,.n108,.n102,.n174,.n173,.n197,.n196,.n195,.n200,.n199,.n203,.n202,.n207,.n205,.n210,.n209,.n208,.n221,.n211,.n236,.n235,.n259,.n258,.n257,.n262,.n261,.n265,.n264,.n269,.n267,.n272,.n271,.n270,.n283,.n273,.n298,.n297,.n321,.n320,.n319,.n324,.n323,.n327,.n326,.n331,.n329,.n334,.n333,.n332,.n345,.n335,.n360,.n359,.n383,.n382,.n381,.n386,.n385,.n389,.n388,.n393,.n391,.n396,.n395,.n394,.n407,.n397,.n422,.n421,.n445,.n444,.n443,.n448,.n447,.n451,.n450,.n455,.n453,.n458,.n457,.n456,.n469,.n459,.n585,.n575){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] .n81{ height:auto; min-height:44px; }
  html:not([lang="lt"]) .fp[data-fv] .n88{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n92{ height:auto; min-height:46px; }
  html:not([lang="lt"]) .fp[data-fv] .n110{ height:auto; min-height:31px; }
  html:not([lang="lt"]) .fp[data-fv] .n170{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n232{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n294{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n356{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n418{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n570{ height:auto; min-height:40px; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n81,.n88,.n92,.n110,.n170,.n232,.n294,.n356,.n418,.n570), html:not([lang="lt"]) .fp[data-fv] :is(.n81,.n88,.n92,.n110,.n170,.n232,.n294,.n356,.n418,.n570) *{ white-space:pre-wrap; overflow-wrap:anywhere; }
}
@media (max-width:767.98px){
  .fp[data-fv] :is(.n46,.n45,.n43,.n42){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n39,.n38,.n37,.n85,.n84,.n95,.n94,.n108,.n102,.n114,.n113,.n137,.n136,.n174,.n173,.n197,.n196,.n195,.n200,.n199,.n203,.n202,.n236,.n235,.n259,.n258,.n257,.n262,.n261,.n265,.n264,.n298,.n297,.n321,.n320,.n319,.n324,.n323,.n327,.n326,.n360,.n359,.n383,.n382,.n381,.n386,.n385,.n389,.n388,.n422,.n421,.n445,.n444,.n443,.n448,.n447,.n451,.n450,.n585,.n575){ min-width:max-content; }
  html:not([lang="lt"]) .fp[data-fv] .n36{ height:auto; min-height:19px; }
  html:not([lang="lt"]) .fp[data-fv] .n81{ height:auto; min-height:44px; }
  html:not([lang="lt"]) .fp[data-fv] .n88{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n93{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n101{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n92{ height:auto; min-height:78px; }
  html:not([lang="lt"]) .fp[data-fv] .n110{ height:auto; min-height:36px; }
  html:not([lang="lt"]) .fp[data-fv] .n112{ height:auto; min-height:39px; }
  html:not([lang="lt"]) .fp[data-fv] .n170{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n207{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n210{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n221{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n232{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n269{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n272{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n283{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n294{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n331{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n334{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n345{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n356{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n393{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n396{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n407{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n418{ height:auto; min-height:241px; }
  html:not([lang="lt"]) .fp[data-fv] .n455{ height:auto; min-height:24px; }
  html:not([lang="lt"]) .fp[data-fv] .n458{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n469{ height:auto; min-height:20px; }
  html:not([lang="lt"]) .fp[data-fv] .n569{ height:auto; min-height:16px; }
  html:not([lang="lt"]) .fp[data-fv] .n570{ height:auto; min-height:40px; }
  html:not([lang="lt"]) .fp[data-fv] :is(.n36,.n81,.n88,.n93,.n101,.n92,.n110,.n112,.n170,.n207,.n210,.n221,.n232,.n269,.n272,.n283,.n294,.n331,.n334,.n345,.n356,.n393,.n396,.n407,.n418,.n455,.n458,.n469,.n569,.n570), html:not([lang="lt"]) .fp[data-fv] :is(.n36,.n81,.n88,.n93,.n101,.n92,.n110,.n112,.n170,.n207,.n210,.n221,.n232,.n269,.n272,.n283,.n294,.n331,.n334,.n345,.n356,.n393,.n396,.n407,.n418,.n455,.n458,.n469,.n569,.n570) *{ white-space:pre-wrap; overflow-wrap:anywhere; }
}

/* card texts showing store data (blocks.data_css): the design's line count
   and, for boxes that hug their sample copy, its width */
@media (min-width:1439.98px){
  .fp[data-fv] .n190 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n190{ max-width:321px; min-width:0; }
  .fp[data-fv] .n252 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n252{ max-width:321px; min-width:0; }
  .fp[data-fv] .n314 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n314{ max-width:321px; min-width:0; }
  .fp[data-fv] .n376 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n376{ max-width:321px; min-width:0; }
  .fp[data-fv] .n438 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n438{ max-width:321px; min-width:0; }
}
@media (min-width:1024px) and (max-width:1439.98px){
  .fp[data-fv] .n190 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n190{ max-width:321px; min-width:0; }
  .fp[data-fv] .n252 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n252{ max-width:321px; min-width:0; }
  .fp[data-fv] .n314 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n314{ max-width:321px; min-width:0; }
  .fp[data-fv] .n376 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n376{ max-width:321px; min-width:0; }
  .fp[data-fv] .n438 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n438{ max-width:321px; min-width:0; }
}
@media (min-width:768px) and (max-width:1023.98px){
  .fp[data-fv] .n190 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n252 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n314 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n376 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n438 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
}
@media (max-width:767.98px){
  .fp[data-fv] .n190 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n252 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n314 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n376 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
  .fp[data-fv] .n438 > .fh2oc-clamp{ -webkit-line-clamp:2; line-clamp:2; }
}

/* row pager arrows (blocks.mark_pagers, ctheme.js) */
.fp[data-fv] [data-fh2oc-pager-prev], .fp[data-fv] [data-fh2oc-pager-next]{ cursor:pointer; }
.fp[data-fv] [data-fh2oc-flip]{ transform:scaleX(-1); }

/* design icons repaired: one inline SVG per icon over the hidden original
   pieces, strokes unclipped (lib/icons.py) */
.fp[data-fv] .fh2oc-icon-root > :not(svg.fh2oc-icon):is(img, :has(img)){ visibility:hidden; }
.fp[data-fv] .fh2oc-icon-rel{ position:relative; }
.fp[data-fv] svg.fh2oc-icon{ position:absolute; left:0; top:0; display:block; width:100%; height:100%; overflow:visible; pointer-events:none; }
.fp[data-fv] svg.fh2oc-icon svg{ overflow:visible; }
.fp[data-fv] svg.fh2oc-icon path[stroke="none"]{ stroke:none !important; }

/* cart badge: the real item count (lib/links.py) - none when empty */
.fp[data-fv] [data-ct="cart-count"][data-count="0"]{ visibility:hidden; }

/* property table rows render in data order (lib/attributes.py) */
.fp[data-fv] [data-fh2oc-attr-row]{ order:0 !important; }

/* breadcrumb (lib/breadcrumb.py): crumbs sized to their own text; the
   page's own crumb ends in an ellipsis when the row runs out of room */
.fp[data-fv] [data-ct="crumb"], .fp[data-fv] [data-ct="crumb-text"]{ width:auto !important; }
.fp[data-fv] [data-ct="crumb"][data-last]{ min-width:0 !important; flex-shrink:1 !important; }
.fp[data-fv] [data-last] > [data-ct="crumb-text"]{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap !important; }

/* review form (lib/reviews.py): real fields in the design's placeholder
   spans; :where() keeps the resets at zero specificity */
:where(textarea.fh2oc-input){ border:0; background:transparent; outline:0; padding:0; margin:0; min-width:0; width:100%; box-sizing:border-box; font:inherit; color:inherit; resize:none; display:block; -webkit-appearance:none; appearance:none; }
:where(textarea.fh2oc-input)::placeholder{ color:inherit; opacity:1; }
.fp[data-fv] [data-ct="review-star"]{ cursor:pointer; }
.fp[data-fv] :is(input, textarea).fh2oc-input[data-ct^="review-"]{ width:100% !important; max-width:none !important; flex:1 1 auto !important; align-self:stretch; }
.fp[data-fv] [data-review-box]{ flex:1 1 auto !important; min-width:0 !important; }

/* gallery dots: one per photo, the row sized to them (lib/gallery.py) */
.fp[data-fv] [data-ct="gallery-dots"]{ width:auto !important; flex-wrap:nowrap !important; }

/* product description (lib/product.py): the store's own HTML in the
   design's text box - its outer margins removed, text wraps normally */
.fp[data-fv] .fh2oc-desc{ white-space:normal !important; }
.fp[data-fv] .fh2oc-desc > :first-child{ margin-top:0; }
.fp[data-fv] .fh2oc-desc > :last-child{ margin-bottom:0; }
.fp[data-fv] .fh2oc-desc img{ max-width:100%; height:auto; }
.fp[data-fv] .fh2oc-desc table{ max-width:100%; }
/* leasing months dropdown (lib/product.py): a real <select> in the
   design's value span; zero-specificity resets */
:where(select.fh2oc-input){ border:0; background:transparent; outline:0; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer; -webkit-appearance:none; appearance:none; }
.fp[data-fv] select.fh2oc-input[data-ct="leasing-term"]{ width:auto !important; }
.fp[data-fv] [data-ct="leasing-calc"]{ cursor:pointer; }
.fp[data-fv] [data-leasing-fit="box"]{ width:auto !important; min-width:max-content !important; }
.fp[data-fv] [data-leasing-fit="group"]{ min-width:max-content !important; }
.fp[data-fv] a.fh2oc-link.fh2oc-inline{ display:inline; }

/* listing (lib/listing.py): data-ordered rows, hidden extra categories,
   real selects in the design's value boxes */
.fp[data-fv] [data-fh2oc-row]{ order:0 !important; }
.fp[data-fv] .fh2oc-more{ display:none !important; }
:where(select.fh2oc-input){ border:0; background:transparent; outline:0; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer; -webkit-appearance:none; appearance:none; }
.fp[data-fv] [data-fh2oc-select-host]{ position:relative; }
.fp[data-fv] [data-fh2oc-fit]{ width:auto !important; min-width:max-content !important; }
@media (min-width: 992px){ .fp[data-fv] [data-fh2oc-yield]{ flex:1 1 auto !important; min-width:0 !important; width:auto !important; } }
.fp[data-fv] select.fh2oc-select-overlay{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; border:0; margin:0; padding:0; font:inherit; z-index:1; }
.fp[data-fv] a[aria-disabled="true"]{ pointer-events:none; }
.fp[data-fv] a[data-ct^="view-"]{ visibility:visible !important; border-radius:6px; transition:background-color .15s; }
.fp[data-fv] a[data-ct^="view-"] *{ visibility:hidden !important; }
.fp[data-fv] a[data-ct^="view-"]:hover{ background-color:rgba(0,0,0,.06); }
.fp[data-fv] a.fh2oc-view-active{ background-color:rgba(123,193,67,.22); }
.fp[data-fv] a.fh2oc-view-active:hover{ background-color:rgba(123,193,67,.3); }
.fp[data-fv] a[data-ct^="view-"]{ position:relative; color:rgb(82,82,91); }
.fp[data-fv] a[data-ct^="view-"] svg.fh2oc-view-icon, .fp[data-fv] a[data-ct^="view-"] svg.fh2oc-view-icon *{ visibility:visible !important; }
.fp[data-fv] a[data-ct^="view-"] svg.fh2oc-view-icon{ position:absolute; left:50%; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; display:block; pointer-events:none; }
.fp[data-fv] a.fh2oc-view-active{ color:rgb(24,24,27); }

/* filter sidebar (lib/filters.py) */
.fp[data-fv] [data-ct="range-start"], .fp[data-fv] [data-ct="range-end"]{ cursor:grab; touch-action:none; }

/* no products (lib/listing.py): stock's text_empty across the whole grid */
.fp[data-fv] [data-fh2oc-grid="fit"]{ height:auto !important; }
.fp[data-fv]:has([data-fh2oc-grid="fit"]), .fp[data-fv] :has([data-fh2oc-grid="fit"]){ height:auto !important; min-height:0 !important; }
.fp[data-fv] .fh2oc-empty{ grid-column:1 / -1; flex:1 1 100%; padding:48px 0; text-align:center; color:#737373; font-size:1rem; }

/* cart page (lib/cart.py) */
.fp[data-fv] [data-fh2oc-money]{ min-width:max-content; }
.fp[data-fv] [data-fh2oc-seq] > *{ order:0 !important; }
.fp[data-fv] [data-ct^="qty-"], .fp[data-fv] [data-ct="cart-remove"], .fp[data-fv] [data-ct="cart-clear"], .fp[data-fv] [data-ct="coupon-toggle"], .fp[data-fv] [data-ct$="-apply"]{ cursor:pointer; user-select:none; }
.fp[data-fv] [data-ct="qty-dec"][aria-disabled="true"]{ opacity:.4; cursor:default; }
:where(input.fh2oc-input){ border:0; background:transparent; outline:0; padding:0; margin:0; min-width:0; font:inherit; color:inherit; -webkit-appearance:none; appearance:none; }
:where(input.fh2oc-input)::placeholder{ color:inherit; opacity:1; }
.fp[data-fv] input.fh2oc-input[data-ct^="cart-"]{ width:100% !important; max-width:none !important; flex:1 1 auto !important; }
.fp[data-fv] [data-cart-box]{ flex:1 1 auto !important; min-width:0 !important; }
.fp[data-fv] [data-ct="coupon-fields"][hidden]{ display:none !important; }
.fp[data-fv] [data-ct="coupon-toggle"][aria-expanded="false"] [data-fold-icon]{ transform:rotate(180deg); }

/* checkout (lib/checkout.py) */
.fp[data-fv] [data-ct="ship-method"]{ cursor:pointer; }
.fp[data-fv] [data-ct="ship-method"][aria-checked="true"]{ cursor:default; }
.fp[data-fv] [data-ct="ship-method"] [data-ship-text]{ width:auto !important; flex:1 1 auto !important; min-width:0 !important; }

/* the chosen address under a delivery method / the billing row */
.fp[data-fv] :has(> .fh2oc-ship-addr){ flex-wrap:wrap !important; height:auto !important; }
.fp[data-fv] .fh2oc-ship-addr{ order:99; flex-basis:100%; margin-top:4px; font-size:14px; line-height:1.4; font-weight:400; color:#6f6f6f; white-space:normal; }
.fp[data-fv] [role="radio"]:has(.fh2oc-ship-addr), .fp[data-fv] :has(> [role="radio"] .fh2oc-ship-addr), .fp[data-fv] [data-ct="bill-row"]:has(.fh2oc-ship-addr){ height:auto !important; min-height:0; }

/* form fields (lib/forms.py): real inputs in the design's placeholder spans */
:where(input.fh2oc-field, select.fh2oc-field){ border:0; background:transparent; outline:0; padding:0; margin:0; min-width:0; font:inherit; color:inherit; -webkit-appearance:none; appearance:none; }
:where(input.fh2oc-field)::placeholder{ color:inherit; opacity:1; }
.fp[data-fv] :is(input, select).fh2oc-field{ width:100% !important; max-width:none !important; flex:1 1 auto !important; align-self:stretch; }
.fp[data-fv] [data-field-box]{ flex:1 1 auto !important; min-width:0 !important; }
.fp[data-fv] [data-ct="pw-toggle"]{ cursor:pointer; }
.fp[data-fv] [data-form][role="button"]{ cursor:pointer; }
.fp[data-fv] .fh2oc-error{ display:block; width:100%; margin-top:4px; color:#e03131; font-size:13px; line-height:1.3; }
.fp[data-fv] form.fh2oc-form{ margin:0; }
:where(textarea.fh2oc-field){ border:0; background:transparent; outline:0; padding:0; margin:0; min-width:0; font:inherit; color:inherit; resize:vertical; display:block; }
:where(textarea.fh2oc-field)::placeholder{ color:inherit; opacity:1; }
.fp[data-fv] textarea.fh2oc-field{ width:100% !important; max-width:none !important; flex:1 1 auto !important; align-self:stretch; min-height:3em; }
.fp[data-fv] [data-ct="check"]{ cursor:pointer; user-select:none; }
.fp[data-fv] [data-ct="check"] [data-check-box]{ visibility:visible !important; }
.fp[data-fv] [data-ct="check"] [data-check-box] img, .fp[data-fv] [data-ct="check"] svg.fh2oc-icon{ visibility:hidden !important; }
.fp[data-fv] [data-ct="check"][aria-checked="false"] :is([data-check-box], [data-check-base]){ background:#fff !important; box-shadow:inset 0 0 0 1px #c9cdd2 !important; }
.fp[data-fv] [data-ct="check"][aria-checked="true"] :is([data-check-box], [data-check-base]){ background:#7BC143 !important; border-color:#7BC143 !important; position:relative; }
.fp[data-fv] [data-ct="check"][aria-checked="true"] [data-check-box]::after{ content:""; position:absolute; left:50%; top:45%; width:30%; height:55%; border:solid #fff; border-width:0 2px 2px 0; transform:translate(-50%,-50%) rotate(45deg); }
.fp[data-fv] .fh2oc-field-error{ color:#e5484d; font-size:12px; line-height:16px; margin-top:4px; }

/* filter groups fold (lib/filters.py emit_folds, ctheme.js) */
.fp[data-fv] [data-ct="filter-fold"]{ cursor:pointer; user-select:none; }
.fp[data-fv] [data-ct="filter-fold"]:focus:not(:focus-visible){ outline:none; }
.fp[data-fv] [data-fold-part][hidden]{ display:none !important; }
.fp[data-fv] [data-fold-icon]{ transition:transform .2s; }
.fp[data-fv] [data-ct="filter-fold"][aria-expanded="false"] [data-fold-icon]{ transform:rotate(180deg); }
.fp[data-fv] [data-fold-group].is-folded, .fp[data-fv] :has(> [data-fold-group].is-folded){ height:auto !important; }

/* hover / focus effects for the body (lib/hover.py; the example theme's system) */
.fp[data-fv] [data-hover="card"], .fp[data-fv] .fh2oc-hover-primary, .fp[data-fv] .fh2oc-hover-outline, .fp[data-fv] .fh2oc-hover-soft{ transition:transform .2s, background-color .15s, box-shadow .2s, border-color .15s, color .15s; }
.fp[data-fv] [data-hover="card"]:hover{ transform:translateY(-4px); }
.fp[data-fv] :is([data-sr="button"], a[href], [role="button"], [role="radio"], [role="option"], [role="switch"], [role="checkbox"], [data-hover="card"], .fh2oc-hover-primary, .fh2oc-hover-outline, .fh2oc-hover-soft):not([data-ct="locker-list"], [aria-disabled="true"]){ cursor:pointer; }
.fp[data-fv] .fh2oc-hover-primary:hover{ background-color:#6aac38 !important; transform:translateY(-2px); }
.fp[data-fv] .fh2oc-hover-primary:active, .fp[data-fv] .fh2oc-hover-outline:active, .fp[data-fv] .fh2oc-hover-soft:active{ transform:translateY(0); }
.fp[data-fv] .fh2oc-hover-outline:hover{ background-color:#f4f9f0 !important; transform:translateY(-1px); }
.fp[data-fv] .fh2oc-hover-soft:hover{ transform:translateY(-1px); box-shadow:-4px -4px 10px rgba(255,255,255,.95), 4px 4px 10px rgba(163,177,198,.7) !important; }
.fp[data-fv] a[data-fh2oc-row]:not([aria-current]):hover :is(span, h3, h4){ color:#639e36 !important; }
.fp[data-fv] a[data-fh2oc-row] :is(span, h3, h4){ transition:color .15s; }
.fp[data-fv] [role="radio"][aria-checked="false"]{ transition:box-shadow .15s; }
.fp[data-fv] [role="radio"][aria-checked="false"]:hover{ box-shadow:inset 0 0 0 1px rgba(123,193,67,.55); }
.fp[data-fv] :is([data-field-box], [data-cart-box]){ transition:box-shadow .15s; }
.fp[data-fv] :is(:has(> [data-field-box]:focus-within), :has(> [data-cart-box]:focus-within)){ box-shadow:0 0 0 2px rgba(123,193,67,.45) !important; }
.fp[data-fv] a.fh2oc-inline:hover{ text-decoration:underline; }
@media (prefers-reduced-motion: reduce){ .fp[data-fv] :is([data-hover="card"], .fh2oc-hover-primary, .fh2oc-hover-outline, .fh2oc-hover-soft):hover{ transform:none !important; } }


