/** Shopify CDN: Minification failed

Line 6237:16 Unexpected "--sale"
Line 7805:0 All "@import" rules must come first
Line 9605:66 Expected identifier but found "text("

**/
/* Liberation @font-face declarations removed — fonts no longer referenced. */

* {
  box-sizing: border-box;
}
/* Brand typography — Soria Natural uses Montserrat (body/headings) and Barlow (accent).
   Fonts are configured in the theme customizer (Theme settings → Typography) and
   exposed via --font-body--family / --font-heading--family / --font-accent--family.
   The previous overrides forcing Liberation Sans/Serif have been removed so the
   normal theme cascade resolves to the brand fonts. */
body, p, button, .button, a, input, fieldset { font-family: var(--font-body--family); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading--family); }
.custom-typography p { font-family: var(--font-heading--family); font-weight: var(--font-heading--weight); }
body {
  color: var(--color-foreground);
  background: var(--color-background);
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 100svh;
  font-variation-settings: 'slnt' 0;
}

:root {
  --hover-lift-amount: 4px;
  --hover-scale-amount: 1.03;
  --hover-subtle-zoom-amount: 1.015;
  --hover-shadow-color: var(--color-shadow);
  --hover-transition-duration: 0.25s;
  --hover-transition-timing: ease-out;
  --surface-transition-duration: 0.3s;
  --surface-transition-timing: var(--ease-out-quad);
  --submenu-animation-speed: 360ms;
  --submenu-animation-easing: cubic-bezier(0.25, 0.1, 0.25, 1);
}

html {
  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)) var(--color-background);
  scroll-behavior: smooth;
}

html[scroll-lock] {
  overflow: hidden;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

img {
  width: 100%;
  height: auto;
}

input,
textarea,
select {
  font: inherit;
  border-radius: var(--style-border-radius-inputs);
}

input:hover,
textarea:hover {
  background-color: var(--color-input-hover-background);
}

/** override ios and firefox defaults */
select {
  background-color: var(--color-background);
  color: currentcolor;
}

.collection-card,
.featured-blog-posts-card {
  width: 100%;
  position: relative;
  height: 100%;
}

/* Editorial layout */
.resource-list:not(.hidden--desktop) .collection-card--flexible-aspect-ratio,
.resource-list:not(.hidden--desktop) .blog-post-card--flexible-aspect-ratio {
  .collection-card__image,
  .featured-blog-posts-card__image,
  .blog-placeholder-svg {
    aspect-ratio: 99;
    height: 100%;
  }

  .collection-card__inner,
  .featured-blog-posts-card__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .collection-card__content,
  .featured-blog-posts-card__content {
    flex-shrink: 0;
  }

  &:not(.collection-card--image-bg) .collection-card__content,
  .featured-blog-posts-card__content {
    height: auto;
  }
}

.collection-card__inner,
.featured-blog-posts-card__inner {
  width: 100%;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  z-index: var(--layer-flat);
  pointer-events: none;
}

.collection-card__content,
.featured-blog-posts-card__content {
  display: flex;
  position: relative;
  height: 100%;
  width: 100%;
  gap: var(--gap);
}

.collection-card__link,
.featured-blog-posts-card__link {
  position: absolute;
  inset: 0;

  /* allows focus outline to have radius in supported browsers */
  border-radius: var(--border-radius);
}

.product-card,
.collection-card,
.resource-card,
.predictive-search-results__card--product,
.predictive-search-results__card {
  position: relative;
  transition: transform var(--hover-transition-duration) var(--hover-transition-timing),
    box-shadow var(--hover-transition-duration) var(--hover-transition-timing);
  z-index: var(--layer-flat);
}

.product-card__link {
  position: absolute;
  inset: 0;
}

.product-card__content {
  position: relative;
}

.product-card__content {
  cursor: pointer;
}

.product-card__content slideshow-component {
  --cursor: pointer;
}

.predictive-search-results__card .product-card,
.predictive-search-results__card .collection-card,
.predictive-search-results__card .resource-card {
  transition: none;
  will-change: auto;
}

@media (any-pointer: fine) and (prefers-reduced-motion: no-preference) {
  .card-hover-effect-lift .product-card:hover,
  .card-hover-effect-lift .collection-card:hover,
  .card-hover-effect-lift .resource-card:hover,
  .card-hover-effect-lift .predictive-search-results__card:hover {
    transform: translateY(calc(-1 * var(--hover-lift-amount)));
  }

  .card-hover-effect-lift .header .product-card:hover,
  .card-hover-effect-lift .header .collection-card:hover,
  .card-hover-effect-lift .header .resource-card:hover,
  .card-hover-effect-lift .header-drawer .product-card:hover,
  .card-hover-effect-lift .header-drawer .collection-card:hover,
  .card-hover-effect-lift .header-drawer .resource-card:hover {
    transform: none;
  }

  .card-hover-effect-scale .product-card:hover,
  .card-hover-effect-scale .collection-card:hover,
  .card-hover-effect-scale .resource-card:hover,
  .card-hover-effect-scale .predictive-search-results__card:hover {
    transform: scale(var(--hover-scale-amount));
  }

  .card-hover-effect-scale .header .product-card:hover,
  .card-hover-effect-scale .header .collection-card:hover,
  .card-hover-effect-scale .header .resource-card:hover,
  .card-hover-effect-scale .header-drawer .product-card:hover,
  .card-hover-effect-scale .header-drawer .collection-card:hover,
  .card-hover-effect-scale .header-drawer .resource-card:hover {
    transform: none;
  }

  .card-hover-effect-subtle-zoom .card-gallery,
  .card-hover-effect-subtle-zoom .collection-card__image,
  .card-hover-effect-subtle-zoom .product-card__image,
  .card-hover-effect-subtle-zoom .resource-card__image {
    overflow: hidden;
    transition: transform var(--hover-transition-duration) var(--hover-transition-timing);
  }

  .predictive-search-results__card .card-gallery,
  .predictive-search-results__card .collection-card__image,
  .predictive-search-results__card .product-card__image,
  .predictive-search-results__card .resource-card__image {
    transition: none;
  }

  .card-hover-effect-subtle-zoom .product-card:hover .card-gallery,
  .card-hover-effect-subtle-zoom .collection-card:hover .collection-card__image,
  .card-hover-effect-subtle-zoom .product-card:hover .product-card__image,
  .card-hover-effect-subtle-zoom .resource-card:hover .resource-card__image,
  .card-hover-effect-subtle-zoom .predictive-search-results__card:hover {
    transform: scale(var(--hover-subtle-zoom-amount));
  }

  .card-hover-effect-subtle-zoom .header .product-card:hover .card-gallery,
  .card-hover-effect-subtle-zoom .header .collection-card:hover .collection-card__image,
  .card-hover-effect-subtle-zoom .header .product-card:hover .product-card__image,
  .card-hover-effect-subtle-zoom .header .resource-card:hover .resource-card__image,
  .card-hover-effect-subtle-zoom .header-drawer .product-card:hover .card-gallery,
  .card-hover-effect-subtle-zoom .header-drawer .collection-card:hover .collection-card__image,
  .card-hover-effect-subtle-zoom .header-drawer .product-card:hover .product-card__image,
  .card-hover-effect-subtle-zoom .header-drawer .resource-card:hover .resource-card__image {
    transform: none;
  }

  .predictive-search-results__card .product-card:hover,
  .predictive-search-results__card .collection-card:hover,
  .predictive-search-results__card .resource-card:hover,
  .header .product-card:hover,
  .header .collection-card:hover,
  .header .resource-card:hover,
  .header-drawer .product-card:hover,
  .header-drawer .collection-card:hover,
  .header-drawer .resource-card:hover {
    transform: none;
    box-shadow: none;
  }
}

dialog {
  /* the ::backdrop inherits from the originating element, custom properties must be set on the dialog element */
  --backdrop-color-rgb: var(--color-shadow-rgb);

  background-color: var(--color-background);
  color: var(--color-foreground);
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

.wrap-text {
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

p:empty {
  display: none;
}

:first-child:is(p, h1, h2, h3, h4, h5, h6),
:first-child:empty + :where(p, h1, h2, h3, h4, h5, h6) {
  margin-block-start: 0;
}

/* Remove bottom margin from last text item, or previous to last if the last is empty */
:last-child:is(p, h1, h2, h3, h4, h5, h6),
:where(p, h1, h2, h3, h4, h5, h6):nth-child(2):has(+ :last-child:empty) {
  margin-block-end: 0;
}

/* view transitions */
@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }

  /* Keep page interactive while view transitions are running */
  :root {
    view-transition-name: none;
  }

  /* Have the root transition during page navigation */
  html:active-view-transition-type(page-navigation),
  html:active-view-transition-type(product-image-transition) {
    view-transition-name: root-custom;
  }

  ::view-transition {
    pointer-events: none;
  }

  html:active-view-transition-type(page-navigation) main[data-page-transition-enabled='true'] {
    view-transition-name: main-content;
  }

  html:active-view-transition-type(page-navigation) main[data-product-transition='true'][data-template*='product'] {
    view-transition-name: none;
  }

  ::view-transition-old(main-content) {
    animation: var(--view-transition-old-main-content);
  }

  ::view-transition-new(main-content) {
    animation: var(--view-transition-new-main-content);
  }

  html:active-view-transition-type(product-image-transition) {
    [data-view-transition-type='product-image-transition'] {
      view-transition-name: product-image-transition;
    }

    [data-view-transition-type='product-details'] {
      view-transition-name: product-details;
    }
  }

  ::view-transition-group(product-image-transition) {
    z-index: 1;
  }

  ::view-transition-group(product-image-transition),
  ::view-transition-group(product-details) {
    animation-duration: var(--animation-speed);
    animation-timing-function: var(--animation-easing);
  }

  ::view-transition-old(product-image-transition),
  ::view-transition-new(product-image-transition) {
    block-size: 100%;
    overflow: hidden;
    object-fit: cover;
    animation-duration: 0.25s;
    animation-timing-function: var(--animation-easing);
  }

  ::view-transition-new(product-details) {
    animation: var(--view-transition-new-main-content);
  }
}

/* Focus */
*:focus-visible {
  outline: var(--focus-outline-width) solid currentcolor;
  outline-offset: var(--focus-outline-offset);
}

@supports not selector(:focus-visible) {
  *:focus {
    outline: var(--focus-outline-width) solid currentcolor;
    outline-offset: var(--focus-outline-offset);
  }
}

.focus-inset {
  outline-offset: calc(var(--focus-outline-width) * -1);
}

/* Layout */
.content-for-layout {
  flex: 1;
}

/* Set up page widths & margins */
.page-width-wide,
.page-width-normal,
.page-width-narrow,
.page-width-content {
  --page-margin: 16px;
}

@media screen and (min-width: 750px) {
  .page-width-wide,
  .page-width-normal,
  .page-width-narrow,
  .page-width-content {
    --page-margin: 40px;
  }
}

.page-width-wide {
  /* NOTE: This results in a page width of 2400px because of how we set up margins with grid */
  --page-content-width: var(--wide-page-width);
  --page-width: calc(var(--page-content-width) + (var(--page-margin) * 2));
}

.page-width-normal {
  --page-content-width: var(--normal-page-width);
  --page-width: calc(var(--page-content-width) + (var(--page-margin) * 2));
}

.page-width-narrow,
.page-width-content {
  /* NOTE: This results in a page width of 1400px because of how we set up margins with grid */
  --page-content-width: var(--narrow-page-width);
  --page-width: calc(var(--page-content-width) + (var(--page-margin) * 2));
}

.page-width-content {
  --page-content-width: var(--normal-content-width);
  --page-width: calc(var(--page-content-width) + (var(--page-margin) * 2));
}

/* Section width full vs. page
   The reason we use a grid to contain the section is to allow for the section to have a
   full-width background image even if the section content is constrained by the page width. Do not try
   to rewrite this to max-width: --page-width; margin: 0 auto;, it doesn't work. */
.section {
  --full-page-grid-central-column-width: min(
    var(--page-width) - var(--page-margin) * 2,
    calc(100% - var(--page-margin) * 2)
  );
  --full-page-grid-margin: minmax(var(--page-margin), 1fr);
  --full-page-grid-with-margins: var(--full-page-grid-margin) var(--full-page-grid-central-column-width)
    var(--full-page-grid-margin);

  /* Utility variable gives the grid's first column width. Provides an offset width for components like carousels */
  --util-page-margin-offset: max(
    var(--page-margin),
    calc((100% - min(var(--page-content-width), 100% - var(--page-margin) * 2)) / 2)
  );

  /* Offset for full-width sections to account for the page margin,
  used for Marquee — note that --util-page-margin-offset doesn't work here */
  --full-page-margin-inline-offset: calc(((100vw - var(--full-page-grid-central-column-width)) / 2) * -1);

  width: 100%;

  /* This is required to make background images work, which are <img> rendered absolutely */
  position: relative;

  /* Set up the grid */
  display: grid;
  grid-template-columns: var(--full-page-grid-with-margins);
  min-height: var(--section-min-height, 'auto');
  
}
.section--full-width-margin {max-width:1220px;margin:0 auto}
/* Place all direct children in the center column by default */
.section > * {
  grid-column: 2;
}

/* Make the actual section background transparent, and instead apply it to a separate sibling element to enable stacking with hero shadow  */
.shopify-section:not(.header-section) :is(.section, .cart-summary) {
  background: transparent;
}

.shopify-section:not(.header-section):has(.section) {
  position: relative;
}

.shopify-section:not(.header-section) .section-background {
  content: '';
  position: absolute;
  inset: 0;
  z-index: var(--layer-section-background);
}

/* For page-width sections, all content goes in the center column */
.section--page-width > * {
  grid-column: 2;
}

/* For full-width sections, content spans all columns */
.section--full-width > * {
  grid-column: 1 / -1;
}

@media screen and (max-width: 749px) {
  .section--mobile-full-width > * {
    grid-column: 1 / -1;
  }
}

/* Some page-width sections should still extend all the way to the right edge of the page, e.g. collection carousel */
.section--page-width.section--full-width-right > * {
  grid-column: 2 / 4;
}

/* For full-width sections with margin, content still spans full width but with space on the sides */
.section--full-width.section--full-width-margin > * {
  grid-column: 1 / -1;

  @media screen and (min-width: 750px) {
    padding-left: var(--page-margin);
    padding-right: var(--page-margin);
  }
}

/* Some section content break out to full width of the page */
.section > .force-full-width {
  grid-column: 1 / -1;
}

.section--height-small {
  --section-min-height: var(--section-height-small);
}

.section--height-medium {
  --section-min-height: var(--section-height-medium);
}

.section--height-large {
  --section-min-height: var(--section-height-large);
}

.section--height-full-screen {
  --section-min-height: 100svh;
}

.section-content-wrapper.section-content-wrapper {
  min-height: calc(var(--section-min-height, 'auto') - var(--section-height-offset, 0px));
  position: relative;
  width: 100%;
  height: 100%;
}

/* Utility */

.hidden {
  /* stylelint-disable-next-line declaration-no-important */
  display: none !important;
}

@media screen and (max-width: 749px) {
  .hidden--mobile,
  .mobile\:hidden {
    /* stylelint-disable-next-line declaration-no-important */
    display: none !important;
  }
}

@media screen and (min-width: 750px) {
  .hidden--desktop,
  .desktop\:hidden {
    /* stylelint-disable-next-line declaration-no-important */
    display: none !important;
  }
}

.hide-when-empty:empty {
  /* stylelint-disable-next-line declaration-no-important */
  display: none !important;
}

.visually-hidden:not(:focus, :active) {
  /* stylelint-disable-next-line declaration-no-important */
  position: absolute !important;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  /* stylelint-disable-next-line declaration-no-important */
  word-wrap: normal !important;
}

@media screen and (max-width: 749px) {
  .is-visually-hidden-mobile:not(:focus, :active) {
    /* stylelint-disable-next-line declaration-no-important */
    position: absolute !important;
    overflow: hidden;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    /* stylelint-disable-next-line declaration-no-important */
    word-wrap: normal !important;
  }
}

.contents {
  display: contents;
}

.flex {
  display: flex;
  gap: var(--gap-md);
}

.grid {
  --centered-column-number: 12;
  --full-width-column-number: 14;
  --centered: column-1 / span var(--centered-column-number);
  --full-width: column-0 / span var(--full-width-column-number);

  display: flex;
  flex-direction: column;
}

@media screen and (min-width: 750px) {
  .grid {
    display: grid;
    gap: 0;
    grid-template-columns: var(--margin-4xl) repeat(var(--centered-column-number), minmax(0, 1fr)) var(--margin-4xl);
    grid-template-areas: 'column-0 column-1 column-2 column-3 column-4 column-5 column-6 column-7 column-8 column-9 column-10 column-11 column-12 column-13';
  }
}

@media screen and (min-width: 1400px) {
  .grid {
    grid-template-columns:
      1fr repeat(
        var(--centered-column-number),
        minmax(0, calc((var(--page-width) - var(--page-margin) * 2) / var(--centered-column-number)))
      )
      1fr;
  }
}

.flex {
  display: flex;
  gap: var(--gap-md);
}

.flip-x {
  scale: -1 1;
}

.flip-y {
  scale: 1 -1;
}

.list-unstyled {
  margin: 0;
  padding: 0;
  list-style: none;
}

.text-left {
  --text-align: left;

  text-align: left;
}

.text-center {
  --text-align: center;

  text-align: center;
}

.text-right {
  --text-align: right;

  text-align: right;
}

.text-inherit {
  color: inherit;
}

.user-select-text {
  user-select: text;
}

.justify-left {
  justify-content: left;
}

.justify-center {
  justify-content: center;
}

.justify-right {
  justify-content: right;
}

.title--aligned-center {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.background-image-container {
  overflow: hidden;
  position: absolute;
  inset: 0;
  opacity: var(--image-opacity);
}

.background-image-container img,
.background-image-container svg {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.background-image-fit img,
.background-image-fit svg {
  object-fit: contain;
}

.svg-wrapper {
  color: currentcolor;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: var(--icon-size-sm);
  height: var(--icon-size-sm);
  pointer-events: none;
}

.svg-wrapper--smaller {
  width: var(--icon-size-2xs);
  height: var(--icon-size-2xs);
}

.svg-wrapper--small {
  width: var(--icon-size-xs);
  height: var(--icon-size-xs);
}

.svg-wrapper > svg {
  width: var(--icon-size-sm);
  height: var(--icon-size-sm);
}

.relative {
  position: relative;
}

/* Icons */
.icon-success,
.icon-error {
  width: var(--icon-size-md);
  height: var(--icon-size-md);
  flex-shrink: 0;
}

.icon-success {
  color: var(--color-success);
}

.icon-error {
  fill: var(--color-error);
}

.icon-default {
  fill: currentColor;
}

[data-placeholder='true'] * {
  cursor: default;
}

slideshow-component [data-placeholder='true'] * {
  cursor: grab;
}

/* Base text and heading styles */
body,
.paragraph:not(.button),
.paragraph > *,
.text-block.paragraph :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-paragraph--family);
  font-style: var(--font-paragraph--style);
  font-weight: var(--font-paragraph--weight);
  font-size: var(--font-paragraph--size);
  line-height: var(--font-paragraph--line-height);
  text-transform: var(--font-paragraph--case);
  -webkit-font-smoothing: antialiased;
  color: var(--color, var(--color-foreground));
}

/* Ensure inputs with type presets maintain minimum 16px on mobile to prevent iOS zoom */
@media screen and (max-width: 1200px) {
  input.paragraph.paragraph,
  input.paragraph.paragraph:not([type]),
  textarea.paragraph.paragraph,
  select.paragraph.paragraph {
    font-size: max(1rem, var(--font-paragraph--size));
  }
}

.paragraph > small {
  font-size: smaller;
}

/* Typography presets */

h1,
.h1.h1,
.text-block.h1 > *,
.text-block.h1 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h1--family);
  font-style: var(--font-h1--style);
  font-weight: var(--font-h1--weight);
  font-size: var(--font-h1--size);
  line-height: var(--font-h1--line-height);
  letter-spacing: var(--font-h1--letter-spacing);
  text-transform: var(--font-h1--case);
  color: var(--color, var(--font-h1-color));
}

@media screen and (max-width: 1200px) {
  input.h1.h1,
  textarea.h1.h1,
  select.h1.h1 {
    font-size: max(1rem, var(--font-h1--size));
  }
}

h2,
.h2.h2,
.text-block.h2 > *,
.text-block.h2 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h2--family);
  font-style: var(--font-h2--style);
  font-weight: var(--font-h2--weight);
  font-size: var(--font-h2--size);
  line-height: var(--font-h2--line-height);
  letter-spacing: var(--font-h2--letter-spacing);
  text-transform: var(--font-h2--case);
  color: var(--color, var(--font-h2-color));
}

@media screen and (max-width: 1200px) {
  input.h2.h2,
  textarea.h2.h2,
  select.h2.h2 {
    font-size: max(1rem, var(--font-h2--size));
  }
}

h3,
.h3,
.h3.h3,
.text-block.h3 > *,
.text-block.h3 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h3--family);
  font-style: var(--font-h3--style);
  font-weight: var(--font-h3--weight);
  font-size: var(--font-h3--size);
  line-height: var(--font-h3--line-height);
  letter-spacing: var(--font-h3--letter-spacing);
  text-transform: var(--font-h3--case);
  color: var(--color, var(--font-h3-color));
}

@media screen and (max-width: 1200px) {
  input.h3,
  textarea.h3,
  select.h3 {
    font-size: max(1rem, var(--font-h3--size));
  }
}

h4,
.h4.h4,
.text-block.h4 > *,
.text-block.h4 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h4--family);
  font-style: var(--font-h4--style);
  font-weight: var(--font-h4--weight);
  font-size: var(--font-h4--size);
  line-height: var(--font-h4--line-height);
  letter-spacing: var(--font-h4--letter-spacing);
  text-transform: var(--font-h4--case);
  color: var(--color, var(--font-h4-color));
}

@media screen and (max-width: 1200px) {
  input.h4.h4,
  textarea.h4.h4,
  select.h4.h4 {
    font-size: max(1rem, var(--font-h4--size));
  }
}

h5,
.h5.h5,
.text-block.h5 > *,
.text-block.h5 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h5--family);
  font-style: var(--font-h5--style);
  font-weight: var(--font-h5--weight);
  font-size: var(--font-h5--size);
  line-height: var(--font-h5--line-height);
  letter-spacing: var(--font-h5--letter-spacing);
  text-transform: var(--font-h5--case);
  color: var(--color, var(--font-h5-color));
}

@media screen and (max-width: 1200px) {
  input.h5.h5,
  textarea.h5.h5,
  select.h5.h5 {
    font-size: max(1rem, var(--font-h5--size));
  }
}

h6,
.h6.h6,
.text-block.h6 > *,
.text-block.h6 :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-h6--family);
  font-style: var(--font-h6--style);
  font-weight: var(--font-h6--weight);
  font-size: var(--font-h6--size);
  line-height: var(--font-h6--line-height);
  letter-spacing: var(--font-h6--letter-spacing);
  text-transform: var(--font-h6--case);
  color: var(--color, var(--font-h6-color));
}

@media screen and (max-width: 1200px) {
  input.h6.h6,
  textarea.h6.h6,
  select.h6.h6 {
    font-size: max(1rem, var(--font-h6--size));
  }
}

:first-child:is(.h1, .h2, .h3, .h4, .h5, .h6) {
  margin-block-start: 0;
}

:last-child:is(.h1, .h2, .h3, .h4, .h5, .h6) {
  margin-block-end: 0;
}

/* Links */
a {
  --button-color: var(--color, var(--color-primary));

  color: var(--button-color);
  text-decoration-color: transparent;
  text-decoration-thickness: 0.075em;
  text-underline-offset: 0.125em;
  transition: text-decoration-color var(--animation-speed) var(--animation-easing),
    color var(--animation-speed) var(--animation-easing);
}

:is(h1, h2, h3, h4, h5, h6, p) > a:hover {
  --button-color: var(--color, var(--color-primary-hover));
}

/* Add underline to text using our paragraph styles only. */
p:not(.h1, .h2, .h3, .h4, .h5, .h6) a:where(:not(.button, .button-secondary)),
.rte :is(p, ul, ol, table):not(.h1, .h2, .h3, .h4, .h5, .h6) a:where(:not(.button, .button-secondary)) {
  text-decoration-color: currentcolor;

  &:hover {
    text-decoration-color: transparent;
    color: var(--color-primary-hover);
  }
}

.container-background-image {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

details[open] .summary-closed {
  display: none;
}

details:not([open]) .summary-open {
  display: none;
}

details[open] > summary .icon-animated > svg {
  transform: rotate(180deg);
}

/* iOS fix: hide the default arrow on the summary */
summary::-webkit-details-marker {
  display: none;
}

/* When header is transparent, pull the first main content section up to sit under the floating header */
body:has(.header[transparent]) .content-for-layout > .shopify-section:first-child {
  margin-top: calc(var(--header-group-height) * -1);
}

body:has(.header[transparent]) #header-group > .header-section {
  z-index: var(--layer-sticky);
}

/* All other header group content should be beneath the floating header,
but above the rest of the page content */
body:has(.header[transparent]) #header-group > *:not(.header-section) {
  z-index: calc(var(--layer-sticky) - 1);
}

/* Featured collection block */
.featured-collection-block {
  width: 100%;
}

/* Product grid */
.product-grid-container {
  display: block;
  width: 100%;
  padding-block: var(--padding-block-start) var(--padding-block-end);

  @media screen and (min-width: 750px) {
    display: grid;
  }
}

.product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--product-grid-gap);
  margin: auto;
  padding: 0;
  list-style: none;
}

@media screen and (min-width: 750px) {
  .product-grid {
    grid-template-columns: var(--product-grid-columns-desktop);
  }
}

.product-grid :is(h3, p) {
  margin: 0;
}

.product-grid__item {
  border: var(--product-card-border-width) solid rgb(var(--color-border-rgb) / var(--product-card-border-opacity));
}

.product-grid--organic[product-grid-view='default'] .product-grid__item {
  height: fit-content;
}

.product-grid__card.product-grid__card {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--product-card-gap);
  align-items: var(--product-card-alignment);
  text-decoration: none;
  color: var(--color, var(--color-foreground));
  padding-block: var(--padding-block-start) var(--padding-block-end);
  padding-inline: var(--padding-inline-start) var(--padding-inline-end);
  overflow: hidden;border: 1px solid #e6e6e6;
}

[product-grid-view='zoom-out'] .product-grid__card {
  row-gap: var(--padding-xs);
}

[product-grid-view='default'] {
  --product-grid-gap: 16px;
  --padding-block-start: 24px;
  --padding-block-end: 24px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
}

[product-grid-view='default'] .product-grid__item {
  padding-block: 0;
}

[product-grid-view='mobile-single'],
.product-grid-mobile--large {
  @media screen and (max-width: 749px) {
    grid-template-columns: 1fr;
  }
}

.product-grid__card .group-block > * {
  @media screen and (max-width: 749px) {
    flex-direction: column;
  }
}

ul[product-grid-view='zoom-out'] .product-grid__card > * {
  display: none;
}

ul[product-grid-view='zoom-out'] .product-grid__card .card-gallery {
  display: block;
}

[product-grid-view='zoom-out']
  .card-gallery
  > :is(quick-add-component, .product-badges, slideshow-component > slideshow-controls) {
  display: none;
}

ul[product-grid-view='zoom-out'] .card-gallery > img {
  display: block;
}

[product-grid-view='zoom-out'] {
  --product-grid-columns-desktop: repeat(
    10,
    minmax(clamp(50px, calc(100% - 9 * var(--product-grid-gap)) / 10, 80px), 1fr)
  );
}

.product-grid-view-zoom-out--details {
  display: none;
}

.product-grid-view-zoom-out--details .h4,
.product-grid-view-zoom-out--details span,
.product-grid-view-zoom-out--details s {
  font-size: var(--font-size--xs);
  font-family: var(--font-paragraph--family);
}

.product-grid-view-zoom-out--details span {
  font-weight: 500;
}

.product-grid-view-zoom-out--details .h4 {
  line-height: 1.3;
  font-weight: 400;
}

.product-grid-view-zoom-out--details > span.h6,
.product-grid-view-zoom-out--details > div.h6 > product-price {
  display: inline-block;
  line-height: 0;
  margin-top: var(--margin-2xs);
}

.product-grid-view-zoom-out--details > span.h6 > *,
.product-grid-view-zoom-out--details > div.h6 > * > * {
  line-height: 1.2;
}

@media (prefers-reduced-motion: no-preference) {
  :root:active-view-transition-type(product-grid) {
    details[open] floating-panel-component {
      view-transition-name: panel-content;

      .checkbox *,
      .facets__pill-label {
        transition: none;
      }

      .facets--vertical & {
        view-transition-name: none;
      }
    }

    .product-grid {
      view-transition-name: product-grid;
    }

    footer {
      view-transition-name: footer;
    }

    .product-grid__item,
    floating-panel-component {
      transition: none;
    }
  }
}

::view-transition-group(panel-content) {
  z-index: 1;
}

::view-transition-new(product-grid) {
  animation-delay: 150ms;
  animation-name: fadeInUp;
  animation-duration: var(--animation-speed);
  animation-timing-function: var(--animation-easing);
}

results-list[initialized] {
  .product-grid__item {
    transition: opacity var(--animation-speed) var(--animation-easing),
      transform var(--animation-speed) var(--animation-easing);

    @starting-style {
      opacity: 0;
      transform: translateY(10px);
    }
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Collection and product list cards have equal heights */
:is(.product-grid__item, .resource-list__item) .product-card {
  display: grid;
  height: 100%;
}

/* Video background */
.video-background,
.video-background * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.video-background--cover * {
  object-fit: cover;
}

.video-background--contain * {
  object-fit: contain;
}

.text-block {
  width: 100%;
}

.text-block > *:first-child,
.text-block > *:first-child:empty + * {
  margin-block-start: 0;
}

.text-block > *:last-child,
.text-block > *:has(+ *:last-child:empty) {
  margin-block-end: 0;
}

/* This is to deal with the margin applied to the p when custom styles are enabled. The p isn't the first child anymore due to the style tag */
.text-block > style + * {
  margin-block-start: 0;
}

/* Dialog */
.dialog-modal {
  border: none;
  box-shadow: var(--shadow-popover);
.featured-article-text p {
    font-size: 16px;
    line-height: 27.2px;
}
  @media screen and (min-width: 750px) {
    border-radius: var(--style-border-radius-popover);
    max-width: var(--normal-content-width);
  }

  @media screen and (max-width: 749px) {
    max-width: 100%;
    max-height: 100%;
    height: 100dvh;
    width: 100dvw;
    padding: var(--padding-md);
  }
}

.dialog-modal::backdrop {
  transition: backdrop-filter var(--animation-speed) var(--animation-easing);
  backdrop-filter: brightness(1);
  background: rgb(var(--backdrop-color-rgb) / var(--backdrop-opacity));
}

.dialog-modal[open] {
  animation: elementSlideInTop var(--animation-speed) var(--animation-easing) forwards;

  &::backdrop {
    animation: backdropFilter var(--animation-speed) var(--animation-easing) forwards;
    transition: opacity var(--animation-speed) var(--animation-easing);
  }
}

.dialog-modal.dialog-closing {
  animation: elementSlideOutTop var(--animation-speed) var(--animation-easing) forwards;

  &::backdrop {
    opacity: 0;
  }
}

/* stylelint-disable value-keyword-case */
.dialog-drawer {
  --dialog-drawer-opening-animation: move-and-fade;
  --dialog-drawer-closing-animation: move-and-fade;
}

.dialog-drawer--right {
  --dialog-drawer-opening-animation: move-and-fade;
  --dialog-drawer-closing-animation: move-and-fade;
}
/* stylelint-enable value-keyword-case */

.dialog-drawer[open] {
  --start-x: var(--custom-transform-from, 100%);
  --end-x: var(--custom-transform-to, 0px);
  --start-opacity: 1;

  animation: var(--dialog-drawer-opening-animation) var(--animation-speed) var(--animation-easing) forwards;
}

.dialog-drawer[open].dialog-closing {
  --start-x: 0px;
  --end-x: 100%;
  --start-opacity: 1;
  --end-opacity: 1;

  animation: var(--dialog-drawer-closing-animation) var(--animation-speed) var(--animation-easing);
}

.dialog-drawer--right[open] {
  --start-x: -100%;
  --start-opacity: 1;
}

.dialog-drawer--right[open].dialog-closing {
  --start-x: 0px;
  --end-x: -100%;
  --start-opacity: 1;
  --end-opacity: 1;

  animation: var(--dialog-drawer-closing-animation) var(--animation-speed) var(--animation-easing);
}

/* Buttons */
.button,
.button-secondary,
button.shopify-payment-button__button--unbranded {
  --text-align: center;

  display: grid;
  align-content: center;
  text-decoration: none;
  text-align: var(--text-align);
  color: var(--button-color);
  appearance: none;
  background-color: var(--button-background-color);
  border: none;
  font-family: var(--font-paragraph--family);
  font-style: var(--font-paragraph--style);
  letter-spacing:1.44px;
  font-weight: 700;
  font-size: var(--font-paragraph--size);
  line-height: var(--font-paragraph--line-height);
  margin-block: 0;
  transition: color var(--animation-speed) var(--animation-easing),
    box-shadow var(--animation-speed) var(--animation-easing),
    background-color var(--animation-speed) var(--animation-easing);
  cursor: pointer;
  width: fit-content;
  box-shadow: inset 0 0 0 var(--button-border-width) var(--button-border-color);
  padding-block: var(--button-padding-block);
  padding-inline: var(--button-padding-inline);
}

.button {
  font-family: var(--button-font-family-primary);
  text-transform: var(--button-text-case-primary);
  border-radius: var(--style-border-radius-buttons-primary);
}

.button:not(.button-secondary, .button-unstyled) {
  outline-color: var(--button-background-color);
}

.button-secondary {
  font-family: var(--button-font-family-secondary);
  text-transform: var(--button-text-case-secondary);
  border-radius: var(--style-border-radius-buttons-secondary);
}

button.shopify-payment-button__button--unbranded {
  font-family: var(--button-font-family-primary);
  text-transform: var(--button-text-case-primary);
}

textarea,
input:not([type='checkbox'], [type='radio']) {
  background-color: var(--color-input-background);
  border-color: var(--color-input-border);
}

textarea::placeholder,
input::placeholder {
  color: var(--color-input-text);
}

textarea:not(:placeholder-shown)::placeholder,
input:not(:placeholder-shown)::placeholder {
  opacity: 0;
}

/* The declaration above is messing with buttons that have an attribute of hidden as it overwrites the display value */
.button[hidden] {
  display: none;
}

.button[aria-disabled='true'],
.button-secondary[aria-disabled='true'],
.button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.button,
button.shopify-payment-button__button--unbranded {
  --button-color: var(--color-primary-button-text);
  --button-background-color: var(--color-primary-button-background);
  --button-border-color: var(--color-primary-button-border);
  --button-border-width: var(--style-border-width-primary);
}

.button:hover,
button.shopify-payment-button__button--unbranded:hover:not([disabled]) {
  --button-color: var(--color-primary-button-hover-text);
  --button-background-color: var(--color-primary-button-hover-background);
  --button-border-color: var(--color-primary-button-hover-border);
}

.button-secondary {
  --button-color: var(--color-secondary-button-text);
  --button-background-color: var(--color-secondary-button-background);
  --button-border-color: var(--color-secondary-button-border);
  --button-border-width: var(--style-border-width-secondary);
}

.button-secondary:hover {
  --button-color: var(--color-secondary-button-hover-text);
  --button-background-color: var(--color-secondary-button-hover-background);
  --button-border-color: var(--color-secondary-button-hover-border);
}

/* Needed to override the default Shopify styles */
button.shopify-payment-button__button--unbranded:hover:not([disabled]) {
  background-color: var(--button-background-color);
}

.button-unstyled {
  display: block;
  padding: 0;
  background-color: inherit;
  color: inherit;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  font-family: var(--font-paragraph--family);
  font-style: var(--font-paragraph--style);
  font-size: var(--font-paragraph--size);
}

.button-unstyled:hover {
  background-color: inherit;
}

.button-unstyled--with-icon {
  color: var(--color-foreground);
  display: flex;
  gap: var(--gap-2xs);
  align-items: center;
}

.button-unstyled--transparent {
  background-color: transparent;
  box-shadow: none;
}

/* Show more */

.show-more__button {
  color: var(--color-primary);
  cursor: pointer;
}

.show-more__button:hover {
  @media screen and (min-width: 750px) {
    color: var(--color-primary-hover);
  }
}

.show-more__label {
  text-align: start;
  font-size: var(--font-size--body-md);
  font-family: var(--font-paragraph--family);
}

.show-more__button .svg-wrapper {
  width: var(--icon-size-xs);
  height: var(--icon-size-xs);
}

.show-more[data-expanded='true'] .show-more__label--more,
.show-more[data-expanded='false'] .show-more__label--less {
  display: none;
}

.link {
  display: inline-block;
  text-align: center;
}

shopify-accelerated-checkout,
shopify-accelerated-checkout-cart {
  --shopify-accelerated-checkout-button-border-radius: var(--style-border-radius-buttons-primary);
  --shopify-accelerated-checkout-button-block-size: var(--height-buy-buttons);
}

.product-form-buttons:has(.add-to-cart-button.button-secondary)
  :is(shopify-accelerated-checkout, shopify-accelerated-checkout-cart) {
  --shopify-accelerated-checkout-button-border-radius: var(--style-border-radius-buttons-secondary);
  --shopify-accelerated-checkout-button-block-size: var(--height-buy-buttons);
}

/* Collapsible row */

.icon-caret svg {
  transition: transform var(--animation-speed) var(--animation-easing);
}

.icon-caret--forward svg {
  transform: rotate(-90deg);
}

.icon-caret--backward svg {
  transform: rotate(90deg);
}

summary {
  display: flex;
  align-items: center;
  cursor: pointer;
  list-style: none;
  padding-block: var(--padding-sm);
}

summary:hover {
  color: var(--color-primary-hover);
}

summary .svg-wrapper {
  margin-inline-start: auto;
  height: var(--icon-size-xs);
  width: var(--icon-size-xs);
  transition: transform var(--animation-speed) var(--animation-easing);
}

/* Shared plus/minus icon animations */
summary .icon-plus :is(.horizontal, .vertical),
.show-more__button .icon-plus :is(.horizontal, .vertical) {
  transition: transform var(--animation-speed) var(--animation-easing);
  transform: rotate(0deg);
  transform-origin: 50% 50%;
  opacity: 1;
}

details[open] > summary .icon-plus .horizontal,
.details-open > summary .icon-plus .horizontal,
.show-more:where([data-expanded='true']) .show-more__button .icon-plus .horizontal {
  transform: rotate(90deg);
}

details[open] > summary .icon-plus .vertical,
.details-open > summary .icon-plus .vertical,
.show-more:where([data-expanded='true']) .show-more__button .icon-plus .vertical {
  transform: rotate(90deg);
  opacity: 0;
}

/* Product Media */
media-gallery {
  display: block;
  width: 100%;
}

:where(media-gallery, .product-grid__item) {
  .media-gallery__grid {
    grid-template-columns: 1fr;
    gap: var(--image-gap);
  }
}

.product-media-gallery__slideshow--single-media slideshow-container {
  @media screen and (max-width: 749px) {
    grid-area: unset;
  }
}

:not(.dialog-zoomed-gallery) > .product-media-container {
  --slide-width: 100%;

  display: flex;
  aspect-ratio: var(--gallery-aspect-ratio, var(--media-preview-ratio));
  max-height: var(--constrained-height);
  width: var(--slide-width, 100%);

  /* Relative position needed for video and 3d models */
  position: relative;
  overflow: hidden;

  &:where(.constrain-height) {
    /* arbitrary offset value based on average theme spacing and header height */
    --viewport-offset: 400px;
    --constrained-min-height: 300px;
    --constrained-height: max(var(--constrained-min-height), calc(100vh - var(--viewport-offset)));

    margin-right: auto;
    margin-left: auto;
  }

  @supports (--test: round(up, 100%, 1px)) {
    /* width and overflow forces children to shrink to parent width */
    --slide-width: round(up, 100%, 1px);
  }
}

media-gallery:where(.media-gallery--grid) .media-gallery__grid {
  display: none;
}

media-gallery.media-gallery--grid .media-gallery__grid .product-media-container {
  /* Needed for safari to stretch to full grid height */
  height: 100%;
}

.product-media :is(deferred-media, product-model) {
  position: absolute;
}

@media screen and (max-width: 749px) {
  .product-media-container.constrain-height {
    max-height: none;
  }
}

@media screen and (min-width: 750px) {
  .product-media-container.constrain-height {
    --viewport-offset: var(--header-height, 100px);
    --constrained-min-height: 500px;
  }

  body:has(header-component[transparent]) .product-media-container.constrain-height {
    --viewport-offset: 0px;
  }

  .media-gallery--two-column .media-gallery__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .media-gallery--large-first-image .product-media-container:first-child,
  .media-gallery--two-column .product-media-container:only-child {
    /* First child spans 2 columns */
    grid-column: span 2;
  }

  /* Display grid view as a carousel on mobile, grid on desktop */
  media-gallery:is(.media-gallery--grid) slideshow-component {
    display: none;
  }

  media-gallery:where(.media-gallery--grid) .media-gallery__grid {
    display: grid;
  }
}

.product-media-container--model {
  /* Usefull when view in your space is shown */
  flex-direction: column;
}

.shopify-model-viewer-ui__controls-area {
  bottom: calc(var(--minimum-touch-target) + var(--padding-sm));
}

.product-media-container img {
  aspect-ratio: inherit;
  object-fit: contain;
}

.product-media-container.media-fit-contain img {
  object-position: center center;
}

.product-media-container.media-fit {
  --product-media-fit: cover;

  img {
    object-fit: var(--product-media-fit);
  }
}

/* Media gallery zoom dialog */
.product-media-container__zoom-button {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: var(--layer-flat);
  cursor: zoom-in;
  background-color: transparent;

  &:hover {
    background-color: transparent;
  }
}

zoom-dialog dialog {
  width: 100vw;
  height: 100vh;
  border: none;
  margin: 0;
  padding: 0;
  max-width: 100%;
  max-height: 100%;
  background: #fff;
  opacity: 0;
  transition: opacity var(--animation-speed) var(--animation-easing);
  scrollbar-width: none;

  &[open] {
    opacity: 1;
  }

  @media (prefers-reduced-motion: no-preference) {
    scroll-behavior: smooth;
  }

  &::backdrop {
    background: transparent;
  }
}

/* Animate the UI elements in only after the view transition is complete */
.close-button {
  position: fixed;
  top: var(--margin-lg);
  right: var(--margin-lg);
  width: var(--minimum-touch-target);
  height: var(--minimum-touch-target);
  z-index: var(--layer-flat);
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;

  /* For the outline radius */
  border-radius: 50%;
}

/* This triggers iOS < 16.4. The outline bug is not recognized as a lack of @supports */

@supports not (background-color: rgb(from red 150 g b / alpha)) {
  /**
    There is a bug in safari < 16.4 that causes the outline to not follow the elements border radius. This is a workaround.
    Using element selector to increase specificity.
  **/

  .close-button:focus-visible {
    outline: none;
    overflow: visible;
  }

  .close-button:focus-visible::after {
    content: '';
    position: absolute;
    inset: calc(-1 * var(--focus-outline-offset));
    border: var(--focus-outline-width) solid currentColor;
    border-radius: 50%;
    display: inherit;
  }
}

.dialog--closed .close-button {
  animation: elementSlideOutBottom calc(var(--animation-speed) * 0.5) var(--animation-easing) forwards;
}

.dialog-thumbnails-list-container {
  position: fixed;
  width: 100%;
  bottom: 0;
  display: flex;
  z-index: var(--layer-raised);
}

.dialog-thumbnails-list {
  --active-thumbnail-border-color: rgb(var(--color-border-rgb) / var(--media-border-opacity));

  position: relative;
  display: inline-flex;
  flex-direction: row;
  gap: 8px;
  bottom: 0;
  overflow-x: auto;
  opacity: 0;
  padding: var(--padding-lg);
  margin-inline: auto;
  scrollbar-width: none;
  animation: thumbnailsSlideInBottom calc(var(--animation-speed) * 0.75) var(--animation-easing) forwards;
  animation-delay: calc(var(--animation-speed) * 1.5);
}

.dialog--closed .dialog-thumbnails-list {
  animation: thumbnailsSlideOutBottom var(--animation-speed) var(--animation-easing) forwards;
}

@media screen and (min-width: 750px) {
  .dialog-thumbnails-list {
    position: fixed;
    flex-direction: column;
    inset: 50% var(--margin-lg) auto auto;
    right: 0;
    max-height: calc(100vh - 200px);
    overflow-y: auto;
    animation: thumbnailsSlideInTop var(--spring-d220-b0-duration) var(--spring-d220-b0-easing) forwards;
    animation-delay: calc(var(--spring-d220-b0-duration) * 0.5);
  }

  .dialog--closed .dialog-thumbnails-list {
    animation: thumbnailsSlideOutTop var(--animation-speed) var(--animation-easing) forwards;
  }
}

.dialog-thumbnails-list__thumbnail {
  width: var(--thumbnail-width);
  height: auto;
  transition: transform var(--animation-speed) var(--animation-easing);
  flex-shrink: 0;
  border-radius: var(--media-radius);

  img {
    height: 100%;
    object-fit: cover;
    border-radius: var(--media-radius);
    aspect-ratio: var(--aspect-ratio);
  }

  &:is([aria-selected='true']) {
    outline: var(--focus-outline-width) solid currentcolor;
    outline-offset: calc(var(--focus-outline-offset) / 2);
    border: var(--style-border-width) solid var(--active-thumbnail-border-color);
  }
}

@supports (anchor-name: --test) {
  .dialog-thumbnails-list:has(.dialog-thumbnails-list__thumbnail:is([aria-selected='true']))::after {
    --inset-offset: calc(var(--focus-outline-offset) / 2);

    content: '';
    position: absolute;
    inset: anchor(top) anchor(right) anchor(bottom) anchor(left);
    position-anchor: --selected-thumbnail;
    outline: var(--focus-outline-width) solid currentcolor;
    outline-offset: calc(var(--focus-outline-offset) / 2);
    border: var(--style-border-width) solid var(--active-thumbnail-border-color);
    border-radius: var(--media-radius);
    z-index: var(--layer-raised);
  }

  @media (prefers-reduced-motion: no-preference) {
    .dialog-thumbnails-list:has(.dialog-thumbnails-list__thumbnail:is([aria-selected='true']))::after {
      transition-property: inset;
      transition-duration: var(--spring-d180-b0-duration);
      transition-timing-function: var(--spring-d180-b0-easing);
    }
  }

  .dialog-thumbnails-list__thumbnail:is([aria-selected='true']) {
    outline: none;
    border: none;
    anchor-name: --selected-thumbnail;
  }
}

.close-button:hover {
  background-color: transparent;
  opacity: 0.8;
}

.close-button svg {
  width: var(--icon-size-xs);
  height: var(--icon-size-xs);
}

/* Product media */
.product-media {
  display: flex;
  flex: 1;
}

/* If the product media is already providing an image cover, hide images provided by sibling deferred-media */
.product-media__image ~ * .deferred-media__poster-image {
  display: none;
}

/* If the product media is playing, hide the preview image */
.product-media-container:has(.deferred-media__playing) .product-media__image {
  opacity: 0;
  transition: opacity var(--animation-speed) var(--animation-easing);
}

/* Deferred media & Product model  */
:is(product-model, deferred-media) {
  /* Height needed to make sure when it's set to be stretched, it takes the full height */
  height: 100%;
  width: 100%;
  position: relative;
}

product-model model-viewer,
/* Media that have a poster button sibling providing the size should be absolute-positioned.
Otherwise, it should be a block to rely on its own size */
:is(deferred-media, product-model) > .deferred-media__poster-button ~ *:not(template) {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;

  /* Required to make sure the absolute position respects the padding of the wrapper: */
  padding: inherit;
}

slideshow-slide .shopify-model-viewer-ui__controls-area.shopify-model-viewer-ui__controls-area {
  bottom: var(--padding-sm);
  right: var(--padding-sm);
}

.dialog-zoomed-gallery .shopify-model-viewer-ui__controls-area.shopify-model-viewer-ui__controls-area {
  /* Move the controls above the thumbnails. Need to calculate the height of the thumbnails list */
  bottom: calc(var(--thumbnail-width) / var(--media-preview-ratio) + var(--padding-lg) * 2);
  right: var(--padding-lg);
}

@media screen and (max-width: 749px) {
  slideshow-component:has(:not(.mobile\:hidden) :is(.slideshow-controls__dots, .slideshow-controls__counter))
    .shopify-model-viewer-ui__controls-area {
    /* Position the controls just above the counter */
    bottom: calc(var(--minimum-touch-target) + var(--padding-sm));
  }
}

@media screen and (min-width: 750px) {
  slideshow-component:has(:not(.desktop\:hidden) :is(.slideshow-controls__dots, .slideshow-controls__counter))
    .shopify-model-viewer-ui__controls-area {
    /* Position the controls just above the counter */
    bottom: calc(var(--minimum-touch-target) + var(--padding-sm));
  }

  .dialog-zoomed-gallery .shopify-model-viewer-ui__controls-area.shopify-model-viewer-ui__controls-area {
    /* Move the controls up to match the padding on the thumbnails */
    bottom: var(--padding-lg);

    /* Move the controls to the left of the thumbnails list on the right */
    right: calc(var(--thumbnail-width) + var(--padding-lg) * 2);
  }
}

:is(deferred-media, .video-placeholder-wrapper).border-style {
  /* Apply the border radius to the video */
  overflow: hidden;
}

deferred-media {
  /* The overflow hidden in the deferred-media won't let the button show the focus ring */
  &:has(:focus-visible) {
    outline: var(--focus-outline-width) solid currentcolor;
    outline-offset: var(--focus-outline-offset);
  }

  @supports not selector(:focus-visible) {
    &:has(:focus) {
      outline: var(--focus-outline-width) solid currentcolor;
      outline-offset: var(--focus-outline-offset);
    }
  }
}

.deferred-media__poster-button {
  width: 100%;
  height: 100%;
  aspect-ratio: var(--video-aspect-ratio, auto);
}

.deferred-media__poster-button.deferred-media__playing {
  opacity: 0;
  transition: opacity 0.3s ease;
}

deferred-media img {
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
}

deferred-media iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
  aspect-ratio: var(--size-style-aspect-ratio, auto);
}

deferred-media[data-media-loaded] img {
  opacity: 0;
}

.deferred-media__poster-icon,
.video-placeholder-wrapper__poster-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.deferred-media__poster-icon svg,
.video-placeholder-wrapper__poster-icon svg {
  width: var(--button-size);
  height: var(--button-size);
  color: var(--color-white);
  filter: drop-shadow(var(--shadow-button));

  &:hover {
    color: rgb(var(--color-white-rgb) / var(--opacity-80));
  }

  @media screen and (min-width: 750px) {
    width: 4rem;
    height: 4rem;
  }
}

deferred-media[class] :is(.deferred-media__poster-button img, .deferred-media__poster-button ~ video) {
  /* only apply this on the video block not product media */
  object-fit: cover;
  height: 100%;
  aspect-ratio: var(--size-style-aspect-ratio, auto);
}

.button-shopify-xr {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: var(--padding-md);
}

.button-shopify-xr > svg {
  width: var(--icon-size-sm);
  height: var(--icon-size-sm);
  margin-inline-end: var(--margin-md);
}

.button-shopify-xr[data-shopify-xr-hidden] {
  display: none;
}

/* Swatches */
.swatch {
  --color-border: rgb(var(--color-foreground-rgb) / var(--style-border-swatch-opacity));
  --min-width-unitless: 15.9999; /* want to avoid division by 0 */
  --min-height-unitless: 15.9999; /* want to avoid division by 0 */
  --min-height: 16px;
  --min-width: 16px;

  /* mobile values */
  --scaling-factor: 0.5;
  --max-swatch-size: 28px;
  --max-pill-size: 20px;
  --max-filter-size: 32px;

  /* From the settings */
  --offset-swatch-width: calc(var(--variant-picker-swatch-width-unitless) - var(--min-width-unitless));
  --offset-swatch-height: calc(var(--variant-picker-swatch-height-unitless) - var(--min-height-unitless));

  /**
    Offset values are obtained from the following formulas:
      offset-width = width - min-width
      offset-height = height - min-height

    The offset-scaled-width and heigth are obtained by extending the line from
    [min,min] to [W,H] and taking the intersection with a square that starts at
    [min,min] and ends at [max,max].

    The extending line forms right angle triangles with the [min,min]->[max,max]
    box that enable us to derive the following formulas

    We also want the result to always be smaller than the input (pdp > everywhere else)
    by some scaling factor.
  */
  --offset-scaled-width: calc(
    var(--scaling-factor) * var(--offset-swatch-width) / var(--offset-swatch-height) * var(--offset-max-swatch-size)
  );
  --offset-scaled-height: calc(
    var(--scaling-factor) * var(--offset-swatch-height) / var(--offset-swatch-width) * var(--offset-max-swatch-size)
  );
  --offset-max-swatch-size: calc(var(--max-swatch-size) - var(--min-width));

  /* width = min(m + sU, (m + s * W'/H' * M'), M) */
  --swatch-width: min(
    calc(var(--min-width) + var(--scaling-factor) * var(--offset-swatch-width) * 1px),
    calc(var(--min-width) + var(--offset-scaled-width)),
    var(--max-swatch-size)
  );

  /* height = min(m + sV, (m + s * H'/W' * M'), M) */
  --swatch-height: min(
    calc(var(--min-height) + var(--scaling-factor) * var(--offset-swatch-height) * 1px),
    calc(var(--min-height) + var(--offset-scaled-height)),
    var(--max-swatch-size)
  );

  display: block;
  background: var(--swatch-background);
  background-position: var(--swatch-focal-point, center);
  border-radius: var(--variant-picker-swatch-radius);
  border: var(--style-border-swatch-width) var(--style-border-swatch-style) var(--color-border);
  width: var(--swatch-width);
  height: var(--swatch-height);

  /* This is different than `background-size: cover` because we use `box-sizing: border-box`,
   * doing it like makes the background clip under the border without repeating.
   */
  background-size: var(--swatch-width) var(--swatch-height);

  &.swatch--unavailable {
    border-style: dashed;
  }

  &.swatch--unscaled {
    /* for when you want fixed sizing (e.g. pdp) */
    --swatch-width: var(--variant-picker-swatch-width);
    --swatch-height: var(--variant-picker-swatch-height);
  }

  &.swatch--filter {
    --swatch-width: var(--max-filter-size);
    --swatch-height: var(--max-filter-size);

    border-radius: var(--variant-picker-swatch-radius);
  }

  &.swatch--pill {
    --swatch-width: var(--max-pill-size);
    --swatch-height: var(--max-pill-size);

    border-radius: var(--variant-picker-swatch-radius);
  }

  /* swatches in filters and pills always have a border  */
  &.swatch--filter,
  &.swatch--pill {
    --style-border-swatch-width: var(--variant-picker-border-width);
    --style-border-swatch-style: var(--variant-picker-border-style);
    --color-border: rgb(var(--color-foreground-rgb) / var(--variant-picker-border-opacity));
  }

  &.swatch--variant-image {
    background-size: cover;
  }

  @media screen and (min-width: 750px) {
    /* desktop values */
    --max-swatch-size: 32px;
    --max-pill-size: 16px;
    --max-filter-size: 28px;
    --scaling-factor: 0.65;
  }
}

.variant-picker .variant-option--buttons label:has(.swatch) {
  border-radius: var(--variant-picker-swatch-radius);
}

/* Variant option component */
.variant-option {
  --options-border-radius: var(--variant-picker-button-radius);
  --options-border-width: var(--variant-picker-button-border-width);
  --variant-option-padding-inline: var(--padding-md);
}

.variant-option + .variant-option {
  margin-top: var(--padding-lg);
}

.variant-option--swatches {
  --options-border-radius: var(--variant-picker-swatch-radius);

  width: 100%;

  overflow-list::part(list) {
    padding-block: var(--overflow-list-padding-block, 0);
    padding-inline: var(--overflow-list-padding-inline, 0);
  }
}

.variant-option--swatches > overflow-list {
  justify-content: var(--product-swatches-alignment);

  @media screen and (max-width: 749px) {
    justify-content: var(--product-swatches-alignment-mobile);
  }
}

.variant-option--buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-sm);
  margin: 0;
  padding: 0;
  border: none;
}

.variant-option--buttons legend {
  padding: 0;
  margin-block-end: var(--margin-xs);
}

.variant-option__swatch-value {
  padding-inline-start: var(--padding-xs);
  color: rgb(var(--color-foreground-rgb) / var(--opacity-70));
}

@media (prefers-reduced-motion: no-preference) {
  .variant-option__button-label,
  .variant-option__select-wrapper,
  .variant-option__button-label::before,
  .variant-option__button-label::after,
  .variant-option__button-label:has([data-previous-checked='true'], [data-current-checked='true'])
    .variant-option__button-label__pill,
  .variant-option__button-label:not(.variant-option__button-label--has-swatch) svg line:last-of-type {
    transition-duration: var(--animation-speed);
    transition-timing-function: var(--animation-easing);
  }

  .variant-option__button-label__pill {
    transition-property: transform;
  }

  .variant-option__button-label:not(.variant-option__button-label--has-swatch) svg line:last-of-type {
    transition-property: clip-path;
  }

  .variant-option__button-label:has([data-previous-checked='true'], [data-current-checked='true'])
    .variant-option__button-label__pill {
    transition-property: transform;
  }

  .variant-option__button-label::after {
    transition-property: clip-path;
  }

  .variant-option__button-label::before {
    transition-property: border-color;
  }

  .variant-option__select-wrapper,
  .variant-option__button-label {
    transition-property: background-color, border-color, color;
  }
}

.variant-option__button-label {
  --variant-picker-stroke-color: var(--color-variant-border);

  cursor: pointer;
  display: flex;
  flex: 0 0 3.25em;
  align-items: center;
  position: relative;
  padding-block: var(--padding-sm);
  padding-inline: var(--padding-lg);
  border: var(--options-border-width) solid var(--color-variant-border);
  border-radius: var(--options-border-radius);
  overflow: clip;
  justify-content: center;
  min-height: 3.25em;
  min-width: fit-content;
  white-space: nowrap;
  background-color: var(--color-variant-background);
  color: var(--color-variant-text);
  gap: 0;

  &:hover,
  &:hover:has([aria-disabled='true']):has([data-option-available='false']) {
    background-color: var(--color-variant-hover-background);
    border-color: var(--color-variant-hover-border);
    color: var(--color-variant-hover-text);
  }

  /* we need something like overflow-clip-margin to use the pseudoelement but it doesn't work in Safari */

  /* so instead use the layered background image trick */
  &:not(.variant-option__button-label--has-swatch):has([data-option-available='false']) {
    border-width: 0;
  }

  /* ::after/::before act as a fake border for the button style variant */

  /* ::after is the unavailable variant border that clips in */
  &:not(.variant-option__button-label--has-swatch)::before,
  &:has([data-option-available='false']):not(.variant-option__button-label--has-swatch)::after {
    content: '';
    position: absolute;
    inset: 0;
    border: var(--options-border-width) solid var(--color-selected-variant-border);
    border-radius: inherit;
    pointer-events: none;
    z-index: 2;
    /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
    clip-path: inset(var(--clip, 0 0 0 0));
  }

  &:has([data-option-available='false']):not(.variant-option__button-label--has-swatch)::before {
    inset: 0;
  }

  &:not(.variant-option__button-label--has-swatch)::before {
    /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
    clip-path: inset(0 0 0 0);
    border-color: var(--color-variant-border);
    inset: calc(var(--options-border-width) * -1);
  }

  &:has(:checked):not(.variant-option__button-label--has-swatch, :has([data-option-available='false']))::before {
    border-color: var(--color-selected-variant-border);
  }

  /* setting left/right accounts for variant buttons of different widths */
  &:not(:has(:checked)):has(~ label > :checked),
  &:has(:checked):has(~ label > [data-previous-checked='true']) {
    .variant-option__button-label__pill {
      right: 0;
      left: unset;
    }
  }

  &:has([data-previous-checked='true']) ~ label:has([data-current-checked='true']),
  &:has(:checked) ~ label {
    .variant-option__button-label__pill {
      left: 0;
      right: unset;
    }
  }

  &:not(:has(:checked)):has(~ label > :checked) {
    --pill-offset: calc(100% + 1px);
  }

  &:has(:checked) ~ label {
    --pill-offset: calc(-100% - 1px);
  }

  &:has([data-current-checked='true']):first-of-type
    ~ label:last-of-type:not(.variant-option__button-label--has-swatch),
  &:not(:has(:checked)):has(~ label > :checked):not(.variant-option__button-label--has-swatch) {
    --clip: 0 0 0 100%;
  }

  &:not(:has([data-current-checked='true'])):first-of-type:has(~ label:last-of-type > :checked):not(
      .variant-option__button-label--has-swatch
    ),
  &:has(:checked) ~ label:not(.variant-option__button-label--has-swatch) {
    --clip: 0 100% 0 0;
  }

  &:has([data-previous-checked='true'], [data-current-checked='true']) .variant-option__button-label__pill {
    width: max(var(--pill-width-current, 100%), var(--pill-width-previous, 100%));
  }

  @media screen and (min-width: 750px) {
    padding: var(--padding-xs) var(--variant-option-padding-inline);
  }
}

/* wrap around only for 3 or more variants in a row */

/* the more complex selector rules here produce the wrap around effect for first/last variants */
.variant-option--buttons:has(:nth-of-type(3)) {
  .variant-option__button-label:has([data-current-checked='true']):first-of-type ~ label:last-of-type {
    --pill-offset: calc(100% + 1px);
  }

  .variant-option__button-label:not(:has([data-current-checked='true'])):first-of-type:has(
      ~ label:last-of-type > :checked
    ) {
    --pill-offset: calc(-100% - 1px);
  }
}

.variant-option__button-label__pill {
  /* background: var(--color-selected-variant-background); */
  background:#eef9f1;
  position: absolute;
  top: calc(var(--options-border-width) * -1);
  bottom: calc(var(--options-border-width) * -1);
  border-radius: inherit;
  pointer-events: none;
  width: 100%;
  transform: translateX(var(--pill-offset, 0));
  color:#005a28;
}

.variant-option__button-label__text {
  pointer-events: none;
  text-align: start;
  text-wrap: auto;
  z-index: 2;
}

.variant-option--equal-width-buttons {
  --variant-min-width: clamp(44px, calc(var(--variant-option-padding-inline) * 2 + var(--variant-ch)), 100%);

  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--variant-min-width), 1fr));

  .variant-option__button-label {
    min-width: var(--variant-min-width);
  }

  .variant-option__button-label__text {
    text-align: center;
    text-wrap: balance;
  }
}

.variant-option__button-label:has(:focus-visible) {
  --variant-picker-stroke-color: var(--color-foreground);

  border-color: var(--color-foreground);
  outline: var(--focus-outline-width) solid var(--color-foreground);
  outline-offset: var(--focus-outline-offset);
}

.variant-option__button-label--has-swatch {
  --focus-outline-radius: var(--variant-picker-swatch-radius);

  padding: 0;
  border: none;
  flex-basis: auto;
  min-height: auto;
}

/* Override global label:has(input) display rule with higher specificity */
.variant-option__button-label--has-swatch:has(input) {
  display: block;
}

.variant-option__button-label:has(:checked) {
  /* color: var(--color-selected-variant-text);
  border-color: var(--color-selected-variant-border); */
  color:#005a28;
   border-color: #00893e;
}

.variant-option__button-label:has(:checked):hover {
  border-color: var(--color-selected-variant-hover-border);
  color: var(--color-selected-variant-hover-text);

  .variant-option__button-label__pill {
    background-color: var(--color-selected-variant-hover-background);
  }
}

.variant-option__button-label:has([data-option-available='false']) {
  color: rgb(var(--color-variant-text-rgb) / var(--opacity-60));
}

.variant-option__button-label--has-swatch:hover {
  outline: var(--focus-outline-width) solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55));
  outline-offset: var(--focus-outline-offset);
}

.variant-option__button-label--has-swatch:has(:checked) {
  --focus-outline: var(--focus-outline-width) solid var(--color-foreground);

  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

/* This triggers iOS < 16.4. The outline bug is not recognized as a lack of @supports */
@supports not (background-color: rgb(from red 150 g b / alpha)) {
  /** There is a bug in safari < 16.4 that causes the outline to not follow the elements border radius. This is a workaround. **/
  .variant-option__button-label--has-swatch:has(:checked),
  .variant-option__button-label:has(:focus-visible) .swatch {
    outline: none;
    position: relative;
    overflow: visible;
  }

  .variant-option__button-label--has-swatch:has(:checked)::after,
  .variant-option__button-label:has(:focus-visible) .swatch::after {
    content: '';
    position: absolute;
    inset: calc(-1 * var(--focus-outline-offset));
    border: var(--focus-outline);
    border-radius: var(--focus-outline-radius, 50%);
    background-color: transparent;
    display: inherit;
  }
}

.variant-option__button-label:has([data-option-available='false']):has(:checked) {
  background-color: inherit;
  color: rgb(var(--color-variant-text-rgb) / var(--opacity-60));
}

.variant-option__button-label input {
  /* remove the checkbox from the page flow */
  position: absolute;

  /* set the dimensions to match those of the label */
  inset: 0;

  /* hide it */
  opacity: 0;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: unset;
  border: none;
  border-radius: 0;
  background: transparent;
  appearance: auto;
  display: block;
  cursor: pointer;
}

.variant-option__button-label svg {
  position: absolute;
  left: var(--options-border-width);
  top: var(--options-border-width);
  height: calc(100% - (var(--options-border-width) * 2));
  width: calc(100% - (var(--options-border-width) * 2));
  cursor: pointer;
  pointer-events: none;
  stroke-width: var(--style-border-width);
  stroke: var(--variant-picker-stroke-color);
}

.variant-option__button-label:not(.variant-option__button-label--has-swatch) svg {
  stroke: var(--color-variant-border);

  line {
    stroke-width: var(--options-border-width);
  }

  line:last-of-type {
    /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
    clip-path: inset(var(--clip, 0 0 0 0));
    stroke: rgb(var(--color-variant-text-rgb) / 1);
  }
}

.sticky-content {
  position: sticky;
  top: var(--sticky-header-offset, 0);
  z-index: var(--layer-flat);
}

@media screen and (min-width: 750px) {
  .sticky-content--desktop,
  .sticky-content--desktop.full-height--desktop > .group-block {
    position: sticky;
    top: var(--sticky-header-offset, 0);
    z-index: var(--layer-flat);
  }
}

.price,
.compare-at-price,
.unit-price {
  white-space: nowrap;
}

.unit-price {
  display: block;
  font-size: min(0.85em, var(--font-paragraph--size));
  color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
}

.tax-note.tax-note.tax-note {
  font-size: min(0.85em, var(--font-paragraph--size));
  font-weight: var(--font-paragraph--weight);
  color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
}

product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > *:not(.tax-note) {
  margin-block: 0;
}

.compare-at-price {
  opacity: 0.4;
  text-decoration-line: line-through;
  text-decoration-thickness: 1.5px;
}

.card-gallery {
  position: relative;
}

@container (max-width: 70px) {
  .card-gallery:hover .quick-add__button {
    display: none;
  }
}

/* Hide "Add" button when "Choose" button is shown */
[data-quick-add-button='choose'] add-to-cart-component {
  display: none;
}

/* Hide "Choose" button when "Add" button is shown */
[data-quick-add-button='add'] .quick-add__button--choose {
  display: none;
}

/* Drawer */
.drawer {
  background-color: var(--color-background);
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--sidebar-width);
  z-index: var(--layer-raised);
  transform: translateX(-120%);
  transition: transform var(--animation-speed) var(--animation-easing);
}

.drawer[data-open='true'] {
  transform: translateX(0);
}

.drawer-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.drawer__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--drawer-header-block-padding) var(--drawer-inline-padding);
}

.drawer__title {
  font-size: var(--font-h2--size);
  margin: 0;
}

.drawer__close {
  width: var(--minimum-touch-target);
  height: var(--minimum-touch-target);
}

.drawer__content {
  display: block;
  padding: var(--drawer-content-block-padding) var(--drawer-inline-padding);
  width: 100%;
}

/* Background overlay */
.background-overlay {
  position: relative;

  &::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--background-overlay-color, rgb(0 0 0 / 15%));
  }
}

/* Spacing style */
.spacing-style {
  --spacing-scale: var(--spacing-scale-md);

  @media screen and (min-width: 990px) {
    --spacing-scale: var(--spacing-scale-default);
  }

  /* Must disable this, when you use these with calc and another unit type, things break — see logo.liquid */
  /* stylelint-disable length-zero-no-unit */
  --padding-block: 0px;
  --padding-block-start: var(--padding-block, 0px);
  --padding-block-end: var(--padding-block, 0px);
  --padding-inline: 0px;
  --padding-inline-start: var(--padding-inline, 0px);
  --padding-inline-end: var(--padding-inline, 0px);
  --margin-block: 0px;
  --margin-block-start: var(--margin-block, 0px);
  --margin-block-end: var(--margin-block, 0px);
  --margin-inline: 0px;
  --margin-inline-start: var(--margin-inline, 0px);
  --margin-inline-end: var(--margin-inline, 0px);
}

.spacing-style,
.inherit-spacing {
  padding-block: calc(var(--padding-block-start) + var(--section-top-offset, 0px)) var(--padding-block-end);
  padding-inline: var(--padding-inline-start) var(--padding-inline-end);
  margin-block: var(--margin-block-start) var(--margin-block-end);
  margin-inline: var(--margin-inline-start) var(--margin-inline-end);
}

/* Size style */
.size-style {
  width: var(--size-style-width-mobile, var(--size-style-width));
  height: var(--size-style-height-mobile, var(--size-style-height));

  @media screen and (min-width: 750px) {
    width: var(--size-style-width);
    height: var(--size-style-height);
  }
}

/* Custom Typography style */
.custom-typography,
.custom-typography > * {
  font-family: var(--font-family);
  font-weight: var(--font-weight);
  text-transform: var(--text-transform);
  text-wrap: var(--text-wrap);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
}

.custom-typography {
  h1 {
    line-height: var(--line-height--display, var(--line-height));
  }

  h2,
  h3,
  h4 {
    line-height: var(--line-height--heading, var(--line-height));
  }

  p {
    line-height: var(--line-height--body, var(--line-height));
  }
}

.custom-font-size,
.custom-font-size > * {
  font-size: var(--font-size);
}

.custom-font-weight,
.custom-font-weight > * {
  font-weight: var(--font-weight);
}

/* Border override style */
.border-style {
  border-width: var(--border-width);
  border-style: var(--border-style);
  border-color: var(--border-color);
  border-radius: var(--border-radius);
}

/* Gap scaling style */
.gap-style,
.layout-panel-flex {
  --gap-scale: var(--spacing-scale-md);

  @media screen and (min-width: 990px) {
    --gap-scale: var(--spacing-scale-default);
  }
}

.layout-panel-flex {
  display: flex;
  gap: var(--gap);
  height: 100%;
}

.layout-panel-flex--row {
  flex-flow: row var(--flex-wrap);
  justify-content: var(--horizontal-alignment);
  align-items: var(--vertical-alignment);
}

.layout-panel-flex--column {
  flex-flow: column var(--flex-wrap);
  align-items: var(--horizontal-alignment);
  justify-content: var(--vertical-alignment);
}

@media screen and (max-width: 749px) {
  .mobile-column {
    flex-flow: column nowrap;
    align-items: var(--horizontal-alignment);
    justify-content: var(--vertical-alignment-mobile);
  }

  .layout-panel-flex--row:not(.mobile-column) {
    flex-wrap: var(--flex-wrap-mobile);

    > .menu {
      flex: 1 1 min-content;
    }

    > .text-block {
      flex: 1 1 var(--max-width--display-tight);
    }

    > .image-block {
      flex: 1 1 var(--size-style-width-mobile-min);
    }

    > .button {
      flex: 0 0 fit-content;
    }
  }
}

@media screen and (min-width: 750px) {
  .layout-panel-flex {
    flex-direction: var(--flex-direction);
  }
}

/* Form fields */
.field {
  position: relative;
  width: 100%;
  display: flex;
  transition: box-shadow var(--animation-speed) ease;
}

.field__input {
  flex-grow: 1;
  text-align: left;
  border-radius: var(--style-border-radius-inputs);
  transition: box-shadow var(--animation-speed) ease, background-color var(--animation-speed) ease;
  padding: var(--input-padding);
  box-shadow: var(--input-box-shadow);
  background-color: var(--color-input-background);
  color: var(--color-input-text);
  border: none;
  outline: none;
  font-size: var(--font-paragraph--size);

  &:autofill {
    background-color: var(--color-input-background);
    color: var(--color-input-text);
  }
}

.field__input:is(:focus, :hover) {
  box-shadow: var(--input-box-shadow-focus);
  background-color: var(--color-input-hover-background);
}

.field__input--button-radius {
  border-radius: var(--style-border-radius-buttons-primary);
}

.field__input--button-padding {
  padding-inline: var(--padding-3xl);
}

.field__label {
  color: rgb(var(--color-input-text-rgb) / var(--opacity-80));
  font-size: var(--font-paragraph--size);
  left: var(--input-padding-x);
  top: 50%;
  transform: translateY(-50%);
  margin-bottom: 0;
  pointer-events: none;
  position: absolute;
  transition: top var(--animation-speed) ease, font-size var(--animation-speed) ease;
}

/* RTE styles */
.rte,
.shopify-policy__title {
  :is(h1, h2, h3, h4, h5, h6) {
    margin-block: clamp(1.5rem, 1em * 3.3, 2.5rem) var(--font-heading--spacing);
  }

  :first-child:is(p, h1, h2, h3, h4, h5, h6),
  :first-child:empty + :is(p, h1, h2, h3, h4, h5, h6) {
    margin-block-start: 0;
  }

  ul,
  ol {
    margin-block-start: 0;
    padding-inline-start: 1.5em;
  }

  /* Only apply margin-block-end to the higher level list, not nested lists */
  :is(ul, ol):not(:is(ul, ol) :is(ul, ol)) {
    margin-block-end: 1em;
  }

  blockquote {
    margin-inline: 1.5em 2.3em;
    margin-block: 3.8em;
    padding-inline-start: 0.8em;
    border-inline-start: 1.5px solid rgb(var(--color-foreground-rgb) / var(--opacity-25));
    font-style: italic;
    font-weight: 500;
  }

  .rte-table-wrapper {
    overflow-x: auto;
  }

  table {
    /* stylelint-disable-next-line declaration-no-important */
    width: 100% !important;
    border-collapse: collapse;
  }

  tr:not(:has(td)),
  thead {
    background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
    font-weight: bold;
    text-transform: uppercase;
  }

  tr:has(td) {
    border-bottom: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-10));
  }

  th,
  td {
    text-align: start;
    padding-inline: var(--padding-md);
    padding-block: var(--padding-sm);
  }
}

.shopify-policy__container {
  padding-block: var(--padding-xl);
}

.checkbox {
  --checkbox-top: 50%;
  --checkbox-left: 1.5px;
  --checkbox-offset: 3px;
  --checkbox-path-opacity: 0;
  --checkbox-cursor: pointer;

  position: relative;
  display: flex;
  align-items: center;

  &:has(.checkbox__input:checked) {
    --checkbox-path-opacity: 1;
  }

  &.checkbox--disabled {
    --checkbox-cursor: not-allowed;
  }
}

.checkbox__input {
  position: absolute;
  opacity: 0;
  margin: 0;
  padding: 0;
  width: var(--checkbox-size);
  height: var(--checkbox-size);
  aspect-ratio: unset;
  border: none;
  border-radius: 0;
  background: transparent;
  appearance: auto;
  display: block;
  cursor: pointer;

  /* Outline is on the SVG instead, to allow it to have border-radius */
  &:focus-visible {
    outline: none;
  }

  &:focus-visible + .checkbox__label .icon-checkmark {
    outline: var(--focus-outline-width) solid currentcolor;
    outline-offset: var(--focus-outline-offset);
  }

  &:checked + .checkbox__label .icon-checkmark {
    background-color: #00893e;
    border-color: #00893e;
  }

  &:disabled + .checkbox__label .icon-checkmark {
    background-color: var(--input-disabled-background-color);
    border-color: var(--input-disabled-border-color);
  }
}

.checkbox__label {
  position: relative;
  display: inline-flex;
  cursor: var(--checkbox-cursor);
  line-height: var(--checkbox-size);
  min-width: var(--minimum-touch-target);
}

.checkbox .icon-checkmark {
  height: var(--checkbox-size);
  width: var(--checkbox-size);
  flex-shrink: 0;
  border: var(--checkbox-border);
  border-radius: var(--checkbox-border-radius);
  background-color: var(--color-background);
}

.checkbox__label-text {
  padding-inline-start: var(--checkbox-label-padding);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.checkbox .icon-checkmark path {
  stroke: var(--color-background);
  opacity: var(--checkbox-path-opacity);
  transition: opacity var(--animation-speed) var(--animation-easing);
}

.checkbox__input:disabled + .checkbox__label {
  color: var(--input-disabled-text-color);
}

/* Radio buttons and checkboxes - shared base styles */
:where(input[type='radio']),
:where(input[type='checkbox']) {
  width: var(--checkbox-size);
  height: var(--checkbox-size);
  aspect-ratio: 1;
  margin: 0;
  margin-inline-end: var(--padding-3xs);
  padding: 0;
  border: var(--checkbox-border);
  appearance: none;
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
}

/* Radio buttons */
input[type='radio'] {
  border-radius: var(--style-border-radius-50);
  background: transparent;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

:where(input[type='radio']):checked {
  border-color: var(--color-foreground);
  background: var(--color-background);
}

:where(input[type='radio']):checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(var(--checkbox-size) / 2);
  height: calc(var(--checkbox-size) / 2);
  background: var(--color-foreground);
  border-radius: var(--style-border-radius-50);
  transition: background 0.2s ease;
}

:where(input[type='radio']):disabled {
  border-color: var(--input-disabled-border-color);
  background-color: var(--input-disabled-background-color);
  cursor: not-allowed;
}

:where(input[type='radio']):disabled:checked::after {
  background: var(--input-disabled-background-color);
}

:where(input[type='radio']):not(:disabled):hover {
  border-color: rgb(var(--color-foreground-rgb) / var(--opacity-40-60));
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
}

:where(input[type='radio']):not(:disabled):hover:checked {
  border-color: var(--color-foreground);
  background-color: var(--color-background);
}

:where(input[type='radio']):not(:disabled):hover:checked::after {
  background: rgb(var(--color-foreground-rgb) / var(--opacity-85));
}

/* Checkboxes */
:where(input[type='checkbox']) {
  border-radius: var(--checkbox-border-radius);
  background-color: var(--color-background);
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

:where(input[type='checkbox']):checked {
  background-color: var(--color-foreground);
  border-color: var(--color-foreground);
}

:where(input[type='checkbox']):checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: var(--checkbox-size);
  height: var(--checkbox-size);
  background-color: var(--color-background);
  mask-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.75439 10.7485L7.68601 14.5888C7.79288 14.7288 7.84632 14.7988 7.91174 14.8242C7.96907 14.8466 8.03262 14.8469 8.09022 14.8253C8.15596 14.8007 8.21026 14.7314 8.31886 14.5927L15.2475 5.74658' stroke='black' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

:where(input[type='checkbox']):not(:disabled):hover {
  border-color: rgb(var(--color-foreground-rgb) / var(--opacity-40-60));
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
}

:where(input[type='checkbox']):not(:disabled):hover:checked {
  border-color: var(--color-foreground);
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-85));
}

:where(input[type='checkbox']):disabled {
  background-color: var(--input-disabled-background-color);
  border-color: var(--input-disabled-border-color);
  cursor: not-allowed;
}

:where(input[type='checkbox']):disabled:checked::after {
  background-color: var(--input-disabled-text-color);
}

/* Shared styles for radio buttons and checkboxes */
:where(input[type='radio']) + label,
:where(input[type='checkbox']) + label {
  display: inline;
  vertical-align: middle;
  cursor: pointer;
}

:where(input[type='radio']):disabled + label,
:where(input[type='checkbox']):disabled + label {
  color: var(--input-disabled-text-color);
  cursor: not-allowed;
}

/* Flexbox for labels wrapping radio buttons or checkboxes */
label:has(input[type='radio']),
label:has(input[type='checkbox']) {
  display: inline-flex;
  align-items: center;
  gap: var(--padding-2xs);
  cursor: pointer;
}

label:has(input[type='radio']:disabled),
label:has(input[type='checkbox']:disabled) {
  cursor: not-allowed;
}

/* Override for swatch labels to maintain block display */
.variant-option__button-label--has-swatch:has(input[type='radio']) {
  display: block;
}

/* Add to cart button */
.button[id^='BuyButtons-ProductSubmitButton-'] {
  position: relative;
  overflow: hidden;
}

/* Cart items component */
.cart-items-component {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Cart bubble */
.cart-bubble {
  --cart-padding: 0.2em;

  position: relative;
  width: 20px;
  aspect-ratio: 1;
  border-radius: 50%;
  border-width: 0;
  display: flex;
  line-height: normal;
  align-items: center;
  justify-content: center;
  color: var(--color-primary-button-text);
  padding-inline: var(--cart-padding);
}

.cart-bubble[data-maintain-ratio] {
  aspect-ratio: 1;
}

.cart-bubble[data-maintain-ratio] .cart-bubble__background {
  border-radius: var(--style-border-radius-50);
}

.cart-bubble__background {
  position: absolute;
  inset: 0;
  background-color: var(--color-primary-button-background);
  border-radius: var(--style-border-radius-lg);
}

.cart-bubble__text {
  font-size: var(--font-size--3xs);
  z-index: var(--layer-flat);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Cart typography */
.cart-primary-typography {
  font-family: var(--cart-primary-font-family);
  font-style: var(--cart-primary-font-style);
  font-weight: var(--cart-primary-font-weight);
}

.cart-secondary-typography {
  font-family: var(--cart-secondary-font-family);
  font-style: var(--cart-secondary-font-style);
  font-weight: var(--cart-secondary-font-weight);
}

/* Quantity selector */
.quantity-selector {
  --quantity-selector-width: 124px;

  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--color-input-text);
  background-color: var(--color-input-background);
  border: none;
  border-radius: var(--style-border-radius-inputs);
  flex: 1 1 var(--quantity-selector-width);
  align-self: stretch;
  transition: background-color var(--animation-speed) var(--animation-easing);

  &:hover {
    /* background-color: var(--color-input-hover-background); */
  }
}

.product-form-buttons:has(.add-to-cart-button.button-secondary) .quantity-selector {
  border-radius: var(--style-border-radius-buttons-secondary);
}

.quantity-selector :is(.quantity-minus, .quantity-plus) {
  /* Unset button styles */
  padding: 0;
  background: transparent;
  box-shadow: none;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  width: var(--minimum-touch-target);
  height: var(--minimum-touch-target);
  flex-shrink: 0;
  color: var(--color-input-text);
}

.quantity-selector .quantity-minus {
  border-start-start-radius: var(--style-border-radius-inputs);
  border-end-start-radius: var(--style-border-radius-inputs);
}

.quantity-selector .quantity-plus {
  border-start-end-radius: var(--style-border-radius-inputs);
  border-end-end-radius: var(--style-border-radius-inputs);
}

.product-details .quantity-selector,
.quick-add-modal .quantity-selector {
  border-radius: var(--style-border-radius-buttons-primary);
}

.product-details .quantity-selector .quantity-minus,
.quick-add-modal .quantity-selector .quantity-minus {
  border-start-start-radius: var(--style-border-radius-buttons-primary);
  border-end-start-radius: var(--style-border-radius-buttons-primary);
}

.product-details .quantity-selector .quantity-plus,
.quick-add-modal .quantity-selector .quantity-plus {
  border-start-end-radius: var(--style-border-radius-buttons-primary);
  border-end-end-radius: var(--style-border-radius-buttons-primary);
}

.quantity-selector .svg-wrapper {
  transition: transform var(--animation-speed) var(--animation-easing);
}

.quantity-selector svg {
  width: var(--icon-size-xs);
  height: var(--icon-size-xs);
}

:is(.quantity-minus, .quantity-plus):active .svg-wrapper {
  transform: scale(0.9);
}

.quantity-selector input[type='number'] {
  margin: 0;
  text-align: center;
  border: none;
  appearance: none;
  max-width: calc(var(--quantity-selector-width) - var(--minimum-touch-target) * 2);
  border-radius: var(--style-border-radius-buttons);
  color: var(--color-input-text);
  background-color: transparent;min-width:60px;font-weight:700;
}

/* Chrome, Safari, Edge, Opera */
.quantity-selector input[type='number']::-webkit-inner-spin-button,
.quantity-selector input[type='number']::-webkit-outer-spin-button {
  appearance: none;
}

/* Firefox */
.quantity-selector input[type='number'] {
  appearance: textfield;
}

/* Pills (used in facets and predictive search) */

.pills__pill {
  --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));

  color: var(--color-foreground);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--gap-sm);
  min-width: 48px;
  padding: 6px 12px;
  border-radius: var(--style-border-radius-pills);
  cursor: pointer;
  background-color: var(--pills-pill-background-color);
  transition: background-color var(--animation-speed) var(--animation-easing);

  &:hover {
    --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25));
  }

  @media screen and (max-width: 749px) {
    padding: var(--padding-xs) var(--padding-md);
  }
}

.pills__pill > .svg-wrapper {
  --close-icon-opacity: 0.4;
  --icon-stroke-width: 1px;

  color: var(--color-foreground);
}

.pills__pill--swatch {
  @media screen and (max-width: 749px) {
    padding-inline-start: var(--padding-sm);
  }
}

.pills__pill--swatch .swatch {
  margin-right: -4px;
}

.pills__pill--desktop-small {
  @media screen and (min-width: 750px) {
    font-size: var(--font-size--xs);
  }
}

/* Fly to cart animation */
fly-to-cart {
  --offset-y: 10px;

  position: fixed;
  width: var(--width, 40px);
  height: var(--height, 40px);
  left: 0;
  top: 0;
  z-index: calc(infinity);
  pointer-events: none;
  border-radius: var(--style-border-radius-buttons-primary);
  overflow: hidden;
  object-fit: cover;
  background-size: cover;
  background-position: center;
  opacity: 0;
  background-color: var(--color-foreground);
  translate: var(--start-x, 0) var(--start-y, 0);
  transform: translate(-50%, -50%);
  animation-name: travel-x, travel-y, travel-scale;
  animation-timing-function: var(--x-timing), var(--y-timing), var(--scale-timing);
  animation-duration: 0.6s;
  animation-composition: accumulate;
  animation-fill-mode: both;
}

fly-to-cart.fly-to-cart--main {
  --x-timing: cubic-bezier(0.7, -5, 0.98, 0.5);
  --y-timing: cubic-bezier(0.15, 0.57, 0.9, 1.05);
  --scale-timing: cubic-bezier(0.85, 0.05, 0.96, 1);
}

fly-to-cart.fly-to-cart--quick {
  --x-timing: cubic-bezier(0, -0.1, 1, 0.32);
  --y-timing: cubic-bezier(0, 0.92, 0.92, 1.04);
  --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98);

  animation-duration: 0.6s;
}

fly-to-cart.fly-to-cart--sticky {
  --x-timing: cubic-bezier(0.98, -0.8, 0.92, 0.5);
  --y-timing: cubic-bezier(0.14, 0.56, 0.92, 1.04);
  --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98);
  --radius: var(--style-border-radius-buttons-primary);

  @media screen and (max-width: 749px) {
    --x-timing: cubic-bezier(0.98, -0.1, 0.92, 0.5);
  }

  animation-duration: 0.8s;
}

@keyframes travel-scale {
  0% {
    opacity: var(--start-opacity, 1);
  }

  5% {
    opacity: 1;
  }

  100% {
    border-radius: 50%;
    opacity: 1;
    transform: translate(-50%, calc(-50% + var(--offset-y))) scale(0.25);
  }
}

@keyframes travel-x {
  to {
    translate: var(--travel-x, 0) 0;
  }
}

@keyframes travel-y {
  to {
    translate: 0 var(--travel-y, 0);
  }
}

/* ------------------------------------------------------------------------------ */

/* Collection Wrapper - Shared layout CSS for collection and search pages */

/* ------------------------------------------------------------------------------ */

.collection-wrapper {
  @media screen and (min-width: 750px) {
    --facets-vertical-col-width: 6;

    grid-template-columns:
      1fr repeat(
        var(--centered-column-number),
        minmax(0, calc((var(--page-width) - var(--page-margin) * 2) / var(--centered-column-number)))
      )
      1fr;
  }

  @media screen and (min-width: 990px) {
    --facets-vertical-col-width: 5;
  }
}

.collection-wrapper:has(.facets-block-wrapper--full-width),
.collection-wrapper:has(.collection-wrapper--full-width) {
  @media screen and (min-width: 750px) {
    grid-column: 1 / -1;
    grid-template-columns:
      minmax(var(--page-margin), 1fr) repeat(
        var(--centered-column-number),
        minmax(0, calc((var(--page-width) - var(--page-margin) * 2) / var(--centered-column-number)))
      )
      minmax(var(--page-margin), 1fr);
  }
}

.collection-wrapper:has(.facets--vertical) .facets-block-wrapper--vertical:not(.hidden) ~ .main-collection-grid {
  @media screen and (min-width: 750px) {
    grid-column: var(--facets-vertical-col-width) / var(--full-width-column-number);
  }
}

.collection-wrapper:has(.facets-block-wrapper--vertical:not(#filters-drawer)):has(.collection-wrapper--full-width) {
  @media screen and (min-width: 750px) {
    grid-column: 1 / -1;
    grid-template-columns: 0fr repeat(var(--centered-column-number), minmax(0, 1fr)) 0fr;
  }
}

:is(.collection-wrapper--full-width, .collection-wrapper--full-width-on-mobile)
  [product-grid-view='default']
  .product-grid__card {
  @media screen and (max-width: 749px) {
    padding-inline-start: max(var(--padding-xs), var(--padding-inline-start));
    padding-inline-end: max(var(--padding-xs), var(--padding-inline-end));
  }
}

:is(.collection-wrapper--full-width, .collection-wrapper--full-width-on-mobile)
  [product-grid-view='mobile-single']
  .product-grid__card {
  @media screen and (max-width: 749px) {
    padding-inline-start: max(var(--padding-xs), var(--padding-inline-start));
    padding-inline-end: max(var(--padding-xs), var(--padding-inline-end));
  }
}

/* Make product media go edge-to-edge by using negative margins */
:is(.collection-wrapper--full-width) .card-gallery,
:is(.collection-wrapper--full-width-on-mobile) .card-gallery {
  @media screen and (max-width: 749px) {
    margin-inline-start: calc(-1 * max(var(--padding-xs), var(--padding-inline-start)));
    margin-inline-end: calc(-1 * max(var(--padding-xs), var(--padding-inline-end)));
  }
}

.collection-wrapper--full-width .main-collection-grid__title {
  margin-left: var(--page-margin);
}

.collection-wrapper--full-width-on-mobile .main-collection-grid__title {
  @media screen and (max-width: 749px) {
    margin-left: var(--page-margin);
  }
}

.collection-wrapper--grid-full-width .facets--vertical:not(.facets--drawer) {
  @media screen and (min-width: 750px) {
    padding-inline-start: max(var(--padding-sm), var(--padding-inline-start));
  }
}

.collection-wrapper:has(.product-grid-mobile--large) .facets-mobile-wrapper.facets-controls-wrapper {
  @media screen and (max-width: 749px) {
    display: none;
  }
}

.collection-wrapper:has(> .facets--horizontal) .facets__panel[open] {
  @media screen and (min-width: 750px) {
    z-index: var(--facets-open-z-index);
  }
}

/* ------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------ */

/* Animation declarations - to be kept at the bottom of the file for ease of find */
@keyframes grow {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.2);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes move-and-fade {
  from {
    transform: translate(var(--start-x, 0), var(--start-y, 0));
    opacity: var(--start-opacity, 0);
  }

  to {
    transform: translate(var(--end-x, 0), var(--end-y, 0));
    opacity: var(--end-opacity, 1);
  }
}

@keyframes slideInTopViewTransition {
  from {
    transform: translateY(100px);
  }
}

@keyframes elementSlideInTop {
  from {
    margin-top: var(--padding-sm);
    opacity: 0;
  }

  to {
    margin-top: 0;
    opacity: 1;
  }
}

@keyframes elementSlideOutTop {
  from {
    transform: translateY(0);
    opacity: 1;
  }

  to {
    transform: translateY(var(--padding-sm));
    opacity: 0;
  }
}

@keyframes elementSlideInBottom {
  from {
    transform: translateY(calc(-1 * var(--padding-sm)));
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes elementSlideOutBottom {
  from {
    transform: translateY(0);
    opacity: 1;
  }

  to {
    transform: translateY(calc(-1 * var(--padding-sm)));
    opacity: 0;
  }
}

@keyframes thumbnailsSlideInTop {
  from {
    transform: translateY(calc(-50% + var(--margin-lg)));
    opacity: 0;
  }

  to {
    transform: translateY(-50%);
    opacity: 1;
  }
}

@keyframes thumbnailsSlideOutTop {
  from {
    transform: translateY(-50%);
    opacity: 1;
  }

  to {
    transform: translateY(calc(-50% + var(--margin-lg)));
    opacity: 0;
  }
}

@keyframes thumbnailsSlideInBottom {
  from {
    transform: translateY(100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes thumbnailsSlideOutBottom {
  from {
    transform: translateY(0);
    opacity: 1;
  }

  to {
    transform: translateY(100%);
    opacity: 0;
  }
}

@keyframes search-element-slide-in-bottom {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes search-element-slide-out-bottom {
  0% {
    transform: translateY(0);
    opacity: 1;
  }

  100% {
    transform: translateY(20px);
    opacity: 0;
  }
}

@keyframes dialogZoom {
  from {
    opacity: 1;
    transform: scale(1) translateY(0);
  }

  to {
    opacity: 0;
    transform: scale(0.95) translateY(1em);
  }
}

@keyframes thumbnail-selected {
  0%,
  100% {
    box-shadow: 0 0 0 2px transparent;
    scale: 0.9;
  }

  50% {
    box-shadow: 0 0 0 2px #000;
    scale: 1;
  }
}

@keyframes backdropFilter {
  from {
    backdrop-filter: brightness(1);
  }

  to {
    backdrop-filter: brightness(0.75);
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes modalSlideInTop {
  from {
    transform: translateY(var(--padding-sm));
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes modalSlideOutTop {
  from {
    transform: translateY(0);
    opacity: 1;
  }

  to {
    transform: translateY(var(--padding-sm));
    opacity: 0;
  }
}

.bubble {
  display: inline-flex;
  height: calc(var(--variant-picker-swatch-height) / 1.5);
  font-size: var(--font-size--xs);
  border-radius: 20px;
  min-width: 20px;
  padding: 0 6px;
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25));
  color: var(--color-foreground);
  align-items: center;
  justify-content: center;
}

.bubble svg {
  width: 12px;
  height: 12px;
}

.top-shadow::before {
  content: '';
  box-shadow: 0 0 10px var(--color-shadow);
  position: absolute;
  z-index: var(--layer-lowest);
  inset: 0;
  clip-path: inset(-50px 0 0 0); /* stylelint-disable-line */
}

@media screen and (min-width: 750px) {
  .top-shadow--mobile::before {
    display: none;
  }
}

.bottom-shadow::before {
  content: '';
  box-shadow: 0 0 10px var(--color-shadow);
  position: absolute;
  z-index: var(--layer-lowest);
  inset: 0;
  clip-path: inset(0 0 -50px 0); /* stylelint-disable-line */
}

@media screen and (min-width: 750px) {
  .bottom-shadow--mobile::before {
    display: none;
  }
}

.video-placeholder-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  aspect-ratio: var(--size-style-aspect-ratio, auto);
}

:not(deferred-media) > .video-placeholder-wrapper {
  width: var(--video-placeholder-width);
}

.video-placeholder-wrapper > * {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/*
 * Slideshow Component
 */
slideshow-component {
  --cursor: grab;
  --slide-offset: 6px;

  position: relative;
  display: flex;
  flex-direction: column;
  timeline-scope: var(--slideshow-timeline);
}

slideshow-component.slideshow--content-below-media slideshow-slide {
  display: grid;
}

.slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) {
  position: static;
}

.slideshow--content-below-media slideshow-slide {
  grid-template-rows: var(--grid-template-rows);

  @media screen and (min-width: 750px) {
    grid-template-rows: var(--grid-template-rows-desktop);
  }
}

.slide__content {
  @supports (animation-timeline: auto) {
    opacity: 0;
    animation: slide-reveal both linear;
    animation-timeline: var(--slideshow-timeline);
  }

  @media (prefers-reduced-motion) {
    opacity: 1;
    animation: none;
  }
}

/*
 * Force Safari to recalculate the timeline state on timeline refresh (after loop)
*/
slideshow-component[refreshing-timeline] .slide__content {
  animation: none;
}

.slideshow--single-media {
  --cursor: default;
}

a slideshow-component {
  --cursor: pointer;
}

/*
 * Slideshow Slides
 */
slideshow-slides {
  width: 100%;
  position: relative;
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-color: transparent transparent;
  scrollbar-width: none;
  gap: var(--slideshow-gap, 0);
  cursor: var(--cursor);
  min-height: var(--slide-min-height);

  @media (prefers-reduced-motion) {
    scroll-behavior: auto;
  }

  &::-webkit-scrollbar {
    width: 0;
  }

  &::-webkit-scrollbar-track {
    background: transparent;
  }

  &::-webkit-scrollbar-thumb {
    background: transparent;
    border: none;
  }

  @media screen and (min-width: 750px) {
    min-height: var(--slide-min-height-desktop);
  }
}

slideshow-component[disabled='true'] slideshow-slides {
  overflow: hidden;
}

/**
 * By default, slideshows have overflow: hidden (no compositor layer).
 * When the slideshow enters the viewport, JavaScript adds [in-viewport] which enables scrolling.
 */
slideshow-component:not([in-viewport]) slideshow-slides {
  overflow: hidden;
}

slideshow-component[mobile-disabled] slideshow-slides {
  @media screen and (max-width: 749px) {
    overflow: hidden;
  }
}

slideshow-slide {
  position: relative;
  scroll-snap-align: center;
  width: var(--slide-width, 100%);
  max-height: 100%;
  flex-shrink: 0;
  view-timeline-name: var(--slideshow-timeline);
  view-timeline-axis: inline;
  content-visibility: auto;
  contain-intrinsic-size: auto none;
  border-radius: var(--corner-radius, 0);
  overflow: hidden;

  slideshow-component[actioned] &,
  &[aria-hidden='false'] {
    content-visibility: visible;
  }

  slideshow-component slideshow-slide:not([aria-hidden='false']) {
    content-visibility: hidden;
  }

  &[hidden]:not([reveal]) {
    display: none;
  }

  /* Make inactive slides appear clickable */
  &[aria-hidden='true'] {
    cursor: pointer;
  }
}

slideshow-slide .slide__image-container--rounded {
  border-radius: var(--corner-radius, 0);
}

slideshow-slide.product-media-container--tallest {
  content-visibility: visible;
}

@media screen and (max-width: 749px) {
  /* Media gallery has a peeking slide on the right side always, and on the left side when the current slide is the last one */
  .media-gallery--hint
    :is(
      slideshow-slide:has(+ slideshow-slide[aria-hidden='false']:last-of-type),
      slideshow-slide[aria-hidden='false'] + slideshow-slide
    ) {
    content-visibility: auto;

    slideshow-component[actioned] & {
      content-visibility: visible;
    }
  }
}

/*
 * Collection and Resource list carousels have peeking slides on both sides.
 * Card galleries preview the next or previous images on 'pointerenter', so we
 * try to kick load them beforehand (they are lazy loaded otherwise).
 */
:is(.resource-list__carousel, .card-gallery)
  :is(
    slideshow-slide:has(+ slideshow-slide[aria-hidden='false']),
    slideshow-slide[aria-hidden='false'] + slideshow-slide
  ) {
  content-visibility: auto;

  slideshow-component[actioned] & {
    content-visibility: visible;
  }
}

/*
 * Be specific about HTML children structure to avoid targeting nested slideshows.
 * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari.
 */
slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide {
  content-visibility: visible;
}

slideshow-slides[gutters*='start'] {
  padding-inline-start: var(--gutter-slide-width, 0);
  scroll-padding-inline-start: var(--gutter-slide-width, 0);
}

slideshow-slides[gutters*='end'] {
  padding-inline-end: var(--gutter-slide-width, 0);
}

slideshow-component[dragging] {
  --cursor: grabbing;

  * {
    pointer-events: none;
  }
}

slideshow-component[dragging] slideshow-arrows {
  display: none;
}

slideshow-container {
  width: 100%;
  display: block;
  position: relative;
  grid-area: container;
  container-type: inline-size;
  background-color: var(--color-background);
}

@media screen and (min-width: 750px) {
  .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) {
    &:has(slideshow-controls[pagination-position='right']) {
      display: grid;
      grid-template:
        'container controls' auto
        'arrows controls' min-content
        / 1fr auto;
    }

    &:has(slideshow-controls[pagination-position='left']) {
      display: grid;
      grid-template:
        'controls container' auto
        'controls arrows' min-content
        / auto 1fr;
    }

    slideshow-controls[pagination-position='left'] {
      order: -1;
    }
  }
}

/* Slideshow Play/Pause */
.slideshow-control:is(.icon-pause, .icon-play) {
  color: var(--color-active);

  &:hover {
    color: var(--color-hover);
  }

  svg {
    display: none;
  }
}

slideshow-component:is([autoplay]) {
  &:is([paused]) {
    .icon-play > svg {
      display: block;
    }
  }

  &:not([paused]) {
    .icon-pause > svg {
      display: block;
    }
  }
}

/* Slideshow Arrows */
slideshow-arrows {
  --cursor-previous: w-resize;
  --cursor-next: e-resize;

  position: absolute;
  inset: 0;
  display: flex;
  z-index: var(--layer-heightened);
  pointer-events: none;
  mix-blend-mode: difference;
  align-items: flex-end;

  &[position='left'] {
    justify-content: flex-start;
    padding-inline: var(--padding-xs);
  }

  &[position='right'] {
    justify-content: flex-end;
    padding-inline: var(--padding-xs);
  }

  &[position='center'] {
    justify-content: space-between;
    align-items: center;
  }
}

slideshow-arrows:has(.slideshow-control--shape-square),
slideshow-arrows:has(.slideshow-control--shape-circle) {
  mix-blend-mode: normal;
}

slideshow-component[disabled='true'] slideshow-arrows {
  display: none;
}

slideshow-arrows .slideshow-control {
  pointer-events: auto;
  opacity: 0;
  min-height: var(--minimum-touch-target);
  min-width: var(--minimum-touch-target);
  padding: 0 var(--padding-xs);
  color: var(--color-white);
}

slideshow-arrows .slideshow-control.slideshow-control--style-none {
  display: none;
}

.media-gallery--carousel slideshow-arrows .slideshow-control {
  padding-inline: 0 var(--padding-md);
  opacity: 1;
}

.card-gallery slideshow-arrows .slideshow-control {
  /* Align icons with quick-add button */
  padding-inline: var(--padding-xl);

  @container (max-width: 249px) {
    padding-inline: 0 var(--padding-sm);
  }
}

:not(.media-gallery--carousel)
  > :is(slideshow-component:hover, slideshow-component:focus-within):not(:has(slideshow-controls:hover))
  > slideshow-container
  > slideshow-arrows
  .slideshow-control {
  animation: arrowsSlideIn var(--animation-speed) var(--animation-easing) forwards;
}

@keyframes arrowsSlideIn {
  from {
    transform: translate(var(--padding-sm), 0);
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes slide-reveal {
  0% {
    translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0;
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0;
    opacity: 0;
  }
}

.section-resource-list,
.section-carousel {
  row-gap: var(--gap);
}

.section-resource-list__content {
  display: flex;
  flex-direction: column;
  align-items: var(--horizontal-alignment);
  gap: var(--gap);
  width: 100%;
}

.section-resource-list__content:empty {
  display: none;
}

.section-resource-list__header:is(:empty, :has(.group-block-content:empty)),
.section-resource-list__content:empty {
  display: none;
}

:where(.section-resource-list.section--full-width) product-card[data-product-transition] > .group-block,
:where(.section-carousel.section--full-width) product-card[data-product-transition] > .group-block {
  @media screen and (max-width: 749px) {
    padding-inline: max(var(--padding-xs), var(--padding-inline-start))
      max(var(--padding-xs), var(--padding-inline-end));
  }
}

.resource-list--carousel-mobile {
  display: block;

  @media screen and (min-width: 750px) {
    display: none;
  }
}

.resource-list {
  --resource-list-mobile-gap-max: 9999px;
  --resource-list-column-gap: min(var(--resource-list-column-gap-desktop), var(--resource-list-mobile-gap-max));
  --resource-list-row-gap: min(var(--resource-list-row-gap-desktop), var(--resource-list-mobile-gap-max));

  width: 100%;

  @media screen and (max-width: 749px) {
    --resource-list-mobile-gap-max: 12px;
  }

  @container resource-list (max-width: 749px) {
    --resource-list-mobile-gap-max: 12px;
  }
}

.resource-list--grid {
  display: grid;
  gap: var(--resource-list-row-gap) var(--resource-list-column-gap);
  grid-template-columns: var(--resource-list-columns-mobile);

  @media screen and (min-width: 750px) {
    grid-template-columns: var(--resource-list-columns);
  }

  @container resource-list (max-width: 449px) {
    grid-template-columns: var(--resource-list-columns-mobile);
  }

  @container resource-list(min-width: 450px) and (max-width: 749px) {
    --resource-list-columns-per-row: 3;

    grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr);

    /* Avoid orphan in last row when there are 4, 7, or 10 items */
    &:has(.resource-list__item:first-child:nth-last-child(3n + 1)),
    /* Clean two full rows when there are 8 items */
    &:has(.resource-list__item:first-child:nth-last-child(8n)) {
      --resource-list-columns-per-row: 4;
    }
  }

  @container resource-list (min-width: 750px) {
    grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr);

    &:has(.resource-list__item:first-child:nth-last-child(n + 9)) {
      --resource-list-columns-per-row: 5;
    }

    &:has(.resource-list__item:first-child:nth-last-child(n + 7):nth-last-child(-n + 8)) {
      --resource-list-columns-per-row: 4;
    }

    &:has(.resource-list__item:first-child:nth-last-child(6)) {
      --resource-list-columns-per-row: 3;
    }

    &:has(.resource-list__item:first-child:nth-last-child(5)) {
      --resource-list-columns-per-row: 5;
    }

    &:has(.resource-list__item:first-child:nth-last-child(-n + 4)) {
      --resource-list-columns-per-row: 4;
    }
  }

  @container resource-list (min-width: 1200px) {
    &:has(.resource-list__item:first-child:nth-last-child(6)) {
      --resource-list-columns-per-row: 6;
    }
  }
}

.resource-list__item {
  height: 100%;
  color: var(--color-foreground);
  text-decoration: none;
}

.resource-list__carousel {
  --slide-width: 60vw;

  width: 100%;
  position: relative;
  container-type: inline-size;
  container-name: resource-list-carousel;

  .slideshow-control[disabled] {
    display: none;
  }

  .slideshow-control--next {
    margin-inline-start: auto;
  }
}

@container resource-list-carousel (max-width: 749px) {
  .resource-list__carousel .resource-list__slide {
    --slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max));
  }
}

@container resource-list-carousel (min-width: 750px) {
  .resource-list__carousel .resource-list__slide {
    --section-slide-width: calc(
      (100% - (var(--resource-list-column-gap) * (var(--column-count) - 1)) - var(--peek-next-slide-size)) /
        var(--column-count)
    );
    --fallback-slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max));
    --slide-width: var(--section-slide-width, var(--fallback-slide-width));
  }
}

.resource-list__carousel slideshow-slides {
  gap: var(--resource-list-column-gap);

  /* Add padding to prevent hover animations from being clipped in slideshow
     15px accommodates:
     - Scale effect (9px on each side from 1.03 scale)
     - Lift effect (4px upward movement)
     - Shadow (15px spread with -5px offset)
     Using 16px for better alignment with our spacing scale */

  margin-block: -16px;
  padding-block: 16px;
}

.resource-list__carousel slideshow-arrows {
  padding-inline: var(--util-page-margin-offset);
}

.resource-list__carousel .resource-list__slide {
  width: var(--slide-width);
  flex: 0 0 auto;
  scroll-snap-align: start;
  min-width: 0;
}

/* Base styles */
.group-block,
.group-block-content {
  position: relative;
}

.group-block:has(> video-background-component),
.group-block:has(> .background-image-container) {
  overflow: hidden;
}

.group-block-content {
  height: 100%;
  width: 100%;
}

/* Container styles */
.section-content-wrapper.section-content-wrapper:where(.layout-panel-flex) .group-block--fill {
  flex: 1;
}

/* Flex behavior for width variants */
.layout-panel-flex--row > .group-block--width-fit {
  flex: 0;
}

.layout-panel-flex--row > .group-block--width-fill {
  flex: 1;
}

.layout-panel-flex--row > .group-block--width-custom {
  flex-basis: var(--size-style-width);
}

/* Dimension utilities - Height */
.group-block--height-fit {
  height: auto;
}

.group-block--height-custom,
.group-block--height-fill {
  height: var(--size-style-height);
}

/* Flex behavior for height variants */
.layout-panel-flex--column > .group-block--height-fit {
  flex: 0 1 auto;
}

.layout-panel-flex--column > .group-block--height-fill {
  flex: 1;
}

.layout-panel-flex--column > .group-block--height-custom {
  flex-basis: var(--size-style-height);
}

accordion-custom {
  details {
    &::details-content,
    .details-content {
      block-size: 0;
      overflow-y: clip;
      opacity: 0;
      interpolate-size: allow-keywords;
      transition: content-visibility var(--animation-speed-slow) allow-discrete,
        padding-block var(--animation-speed-slow) var(--animation-easing),
        opacity var(--animation-speed-slow) var(--animation-easing),
        block-size var(--animation-speed-slow) var(--animation-easing);
    }

    /* Disable transitions when the content toggle is not caused by the direct user interaction, e.g. opening the filters on mobile. */
    &:not(:focus-within)::details-content,
    &:not(:focus-within) .details-content {
      transition: none;
    }

    &:not([open]) {
      &::details-content,
      .details-content {
        padding-block: 0;
      }
    }

    &[open] {
      &::details-content,
      .details-content {
        opacity: 1;
        block-size: auto;

        @starting-style {
          block-size: 0;
          opacity: 0;
          overflow-y: clip;
        }

        &:focus-within {
          overflow-y: visible;
        }
      }
    }
  }
}

accordion-custom[data-disable-on-mobile='true'] summary {
  @media screen and (max-width: 749px) {
    cursor: auto;
  }
}

accordion-custom[data-disable-on-desktop='true'] summary {
  @media screen and (min-width: 750px) {
    cursor: auto;
  }
}

text-component {
  --shimmer-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
  --shimmer-color-light: rgb(var(--color-foreground-rgb) / var(--opacity-10));
  --shimmer-speed: 1.25s;

  display: inline-block;
  position: relative;
  transition: color var(--animation-speed-slow) ease;
  line-height: 1;

  &::after {
    content: attr(value);
    position: absolute;
    inset: 0;
    color: transparent;
    opacity: 0;
    transition: opacity var(--animation-speed-slow) var(--animation-easing);
    pointer-events: none;
    background-image: linear-gradient(
      -85deg,
      var(--shimmer-text-color) 10%,
      var(--shimmer-color-light) 50%,
      var(--shimmer-text-color) 90%
    );
    background-clip: text;
    background-size: 200% 100%;
    background-position: 100% 0;
    place-content: center;
  }

  &[shimmer] {
    color: transparent;

    &::after {
      opacity: 1;
      animation: text-shimmer var(--shimmer-speed) infinite linear;
    }
  }
}

@keyframes text-shimmer {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}

/* Animation transitions */
.transition-background-color {
  transition: background-color var(--animation-speed-medium) ease-in-out;
}

.transition-transform {
  transition: transform var(--animation-speed-medium) var(--animation-timing-bounce);
}

.transition-border-color {
  transition: border-color var(--animation-speed-medium) var(--animation-timing-hover);
}

/* Global scrollbar styles */

/* Webkit browsers */
::-webkit-scrollbar {
  width: 20px;
}

::-webkit-scrollbar-track {
  background-color: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-40));
  border-radius: 20px;
  border: 6px solid transparent;
  background-clip: content-box;
  transition: background-color 0.2s;
}

::-webkit-scrollbar-thumb:hover {
  background-color: rgb(var(--color-foreground-rgb) / var(--opacity-60));
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* Product card title truncation - applied only to zoom-out view */
[product-grid-view='zoom-out'] :is(.product-card, .product-grid__card) :is(h4, .h4) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 3;
}

/* Product card title truncation - applied on mobile regardless of view */
@media screen and (max-width: 749px) {
  :is(.product-card, .product-grid__card) :is(h4, .h4) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 3;
  }
}

.product-card:hover,
.collection-card:hover,
.resource-card:hover,
.predictive-search-results__card--product:hover,
.predictive-search-results__card:hover {
  position: relative;
  z-index: var(--layer-raised);
  transition: transform var(--hover-transition-duration) var(--hover-transition-timing),
    box-shadow var(--hover-transition-duration) var(--hover-transition-timing);
}

.header .product-card:hover,
.header .collection-card:hover,
.header .resource-card:hover,
.header-drawer .product-card:hover,
.header-drawer .collection-card:hover,
.header-drawer .resource-card:hover {
  z-index: auto;
  transform: none;
  box-shadow: none;
}

.predictive-search-results__inner {
  flex-grow: 1;
  overflow-y: auto;
  padding-block: var(--padding-lg);
  container-type: inline-size;
  color: var(--color-foreground);
}

/* Prevent iOS zoom on input focus by ensuring minimum 16px font size on mobile */
@media screen and (max-width: 1200px) {
  input,
  textarea,
  select,
  /* Higher specificity to override type preset classes like .paragraph, .h1, etc. */
  .paragraph.paragraph input,
  .paragraph.paragraph textarea,
  .paragraph.paragraph select,
  .h1.h1 input,
  .h1.h1 textarea,
  .h1.h1 select,
  .h2.h2 input,
  .h2.h2 textarea,
  .h2.h2 select,
  .h3.h3 input,
  .h3.h3 textarea,
  .h3.h3 select,
  .h4.h4 input,
  .h4.h4 textarea,
  .h4.h4 select,
  .h5.h5 input,
  .h5.h5 textarea,
  .h5.h5 select,
  .h6.h6 input,
  .h6.h6 textarea,
  .h6.h6 select {
    font-size: max(1rem, 100%);
  }
}

.product-recommendations {
  display: block;
}

.product-recommendations__skeleton-item {
  aspect-ratio: 3 / 4;
  background-color: var(--color-foreground);
  opacity: var(--skeleton-opacity);
  border-radius: 4px;
}

@media screen and (max-width: 749px) {
  .product-recommendations__skeleton-item:nth-child(2n + 1) {
    display: none;
  }
}

product-recommendations:has([data-has-recommendations='false']) {
  display: none;
}

.add-to-cart-button {
  --text-speed: 0.26;
  --base-delay: calc(var(--text-speed) * 0.25);
  --tick-speed: 0.1;
  --ring-speed: 0.2;
  --check-speed: 0.2;
  --burst-speed: 0.32;
  --step-delay: 3;
  --speed: 1;

  user-select: none;
  transition-property: color, box-shadow, background-color, scale, translate;
  transition-duration: var(--animation-speed);
  transition-timing-function: var(--ease-out-cubic);

  &:active {
    /* scale: 0.99;
    translate: 0 1px; */
  }
}

.add-to-cart-button .svg-wrapper .checkmark-burst {
  width: 30px;
  height: 30px;
}

.add-to-cart-text {
  --atc-opacity: 0;
  --atc-destination: -1em;

  display: flex;
  gap: var(--gap-2xs);
  align-items: center;
  justify-content: center;
  animation-duration: var(--animation-speed);
  animation-timing-function: var(--animation-easing);
  animation-fill-mode: forwards;
  transition: width var(--animation-speed) var(--animation-easing),
    opacity var(--animation-speed) var(--animation-easing);
}

.add-to-cart__added {
  --atc-opacity: 1;
  --atc-destination: 0px;

  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
}

.add-to-cart__added-icon {
  width: 32px;
  height: 32px;
}

[data-added='true'] .add-to-cart-text,
[data-added='true'] .add-to-cart__added {
  animation-name: atc-slide;
}

.checkmark-burst {
  opacity: 0;
  overflow: visible;

  .burst {
    rotate: 20deg;
  }

  .check {
    opacity: 0.2;
    scale: 0.8;
    filter: blur(2px);
    transform: translateZ(0);
  }

  :is(.ring, .line, .check, .burst, .tick) {
    transform-box: fill-box;
    transform-origin: center;
  }

  :is(.line) {
    stroke-dasharray: 1.5 1.5;
    stroke-dashoffset: -1.5;
    translate: 0 -180%;
  }

  g {
    transform-origin: center;
    rotate: calc(var(--index) * (360 / 8) * 1deg);
  }
}

.add-to-cart-button[data-added='true'] .checkmark-burst {
  opacity: 1;
}

.add-to-cart-button[data-added='true'] {
  .check {
    opacity: 1;
    scale: 1;
    filter: blur(0);
  }

  .tick {
    scale: 1.75;
  }

  .ring {
    opacity: 0;
    scale: 1;
  }

  .line {
    stroke-dashoffset: 1.5;
  }

  .add-to-cart-text {
    /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
    clip-path: circle(0% at 50% 50%);
    filter: blur(2px);
    opacity: 0;
    translate: 0 4px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .add-to-cart-button[data-added='true'] {
    .check {
      transition-property: opacity, scale, filter;
      transition-duration: calc(calc(var(--check-speed) * 1s));
      transition-delay: calc((var(--base-delay) * 1s));
      transition-timing-function: var(--ease-out-quad);
    }

    .tick {
      transition-property: scale;
      transition-duration: calc((calc(var(--tick-speed) * 1s)));
      transition-delay: calc(((var(--base-delay) + (var(--check-speed) * (var(--step-delay) * 1.1))) * 1s));
      transition-timing-function: ease-out;
    }

    .ring {
      transition-property: opacity, scale;
      transition-duration: calc((calc(var(--ring-speed) * 1s)));
      transition-delay: calc(((var(--base-delay) + (var(--check-speed) * var(--step-delay))) * 1s));
      transition-timing-function: var(--ease-out-quad);
    }

    .line {
      transition-property: stroke-dashoffset;
      transition-duration: calc((calc(var(--burst-speed) * 1s)));
      transition-delay: calc(((var(--base-delay) + (var(--check-speed) * var(--step-delay))) * 1s));
      transition-timing-function: var(--ease-out-cubic);
    }
  }

  .add-to-cart-text {
    transition-property: clip-path, opacity, filter, translate;
    transition-duration: calc((var(--text-speed) * 0.6s)), calc((var(--text-speed) * 1s));
    transition-timing-function: ease-out;
  }
}

.add-to-cart-text {
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
  clip-path: circle(100% at 50% 50%);
}

@keyframes atc-slide {
  to {
    opacity: var(--atc-opacity, 1);
    translate: 0px var(--atc-destination, 0px);
  }
}
.hero .custom-typography p{color:#7fc9a0!important}
 .custom-typography p {text-transform:uppercase; letter-spacing:2.4px; }
 .cstm-subhead .custom-typography p, .cstm-subhead p{color:#00893e!important}
.hero-wrapper .hero h1 span{color:#7fc9a0; font-style:italic}
.hero-wrapper .hero rte-formatter p{font-size:18.4px; letter-spacing:0; line-height:31.28px; opacity:.85}
.hero {--hero-min-height: 118svh!important;}
.menu-list__link > span.menu-list__link-title{border-bottom:solid 2px transparent}
.menu-list__link:hover > span.menu-list__link-title{border-bottom:solid 2px #00893e}
.menu-list__link.menu-list__link--active > span.menu-list__link-title{border-bottom:solid 2px #00893e}
.announcement-bar__slide p.announcement-bar__text {
    font-weight: 400;
    text-transform: none;
    font-family: var(--font-body--family);
    letter-spacing: 0.64px;font-size:12.8px;line-height:21.76px;
}
p.announcement-bar__text a {
    color: #7fc9a0;
}
.icon-with-text__section {
    max-width: 905px;
    margin: 0 auto;
    width: 100%;
}
.icon-with-text__section p {
    font-size: 12.8px;
    letter-spacing: 0;
}
.icon-with-text__section .icon-block .icon-block__media {
    max-width: 12px;margin-right:5px
}
.icon-with-text__section .group-block {max-width:fit-content}
.icon-with-text__section .section-content-wrapper{justify-content:space-between}
.home-solutions {max-width:760px; width:100%; margin:0 auto}
.home-solutions .section-content-wrapper {
  display: flex;
    flex-wrap: wrap;flex-direction:row;justify-content:center
}
.home-solutions .section-content-wrapper > * {
    min-width: calc(25% - 18px);
    max-width: 173px;
}
.solutions-box .image-block {width:56px; height:56px; aspect-ratio:1;    margin: 0 auto 15px auto; background:#e6f3ec; display:flex; align-items:center; justify-content:center;border-radius:50%; }
.solutions-box .image-block img{height:26px; display:block;width:auto}

.solutions-box  .text-block p {font-size:13.6px;line-height:23.2px; }
.shop-health rte-formatter p {
    font-size: 18.4px;
    color: #5a5c59;
    letter-spacing: 0;
    line-height: 33.12px;
   
}
.grade-box .image-block {
    background: #e6f3ec;
    border: 2px solid #b3dfc4;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.grade-box .image-block img {
    height: 26px;
    width: auto;
    display: block;
}
.home-bestselling-formula .resource-list--grid {
    max-width: 1135px;
    margin: auto;
}

.product-card__content a .text-block p {
    font-family: var(--font-heading--family);
    font-weight: var(--font-heading--weight);
    font-size: 15.2px;
    line-height: 21.28px;
}
.product-card__content span.price {
    font-family: var(--font-heading--family);
    font-weight: var(--font-heading--weight);
    color: var(--color-foreground-heading);
    font-size: 16px;
    line-height: 27.2px;
    letter-spacing: 0;
}
.product-card__content .custom-typography p {letter-spacing:0.9px; line-height:19.04px; color:11.2px; color:#00893e }
.section--page-width {max-width:1220px;margin:0 auto;}
.home-txt-img rte-formatter p {
    min-width: 100%;
}
.home-txt-img h3:after{margin-left: 0;margin-bottom: 20px;}
.home-txt-img rte-formatter p {font-size: 16px;line-height: 27.2px;}
.number-block .num-txt > div {
    font-family: var(--font-heading--family);
    font-weight: var(--font-heading--weight);
    color: var(--color-foreground-heading);
    font-size: 48px;
}
.number-block .num-txt {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.number-block .group-block-content {
    justify-content: space-between;
    max-width: 500px;
}
.number-block .num-txt>p {
    margin-top: 0;
}
.home-txt-img .number-block{margin-bottom:45px;}
.group-block.flex-wrap .group-block-content {
    flex-wrap: wrap;
}

.quality-left .divider {
    justify-content: flex-start;
}
.quality-right .detail-box strong {
    color: #fff;
    font-weight: 700;
    font-size: 16px;
}
.quality-right .detail-box {
    position: relative;
    padding: 25px 0 25px  80px;
}
.quality-right .detail-box:before{
content: "";
    color: #7fc9a0;
    background: #ffffff1a;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--font-heading--family);
    font-weight: var(--font-heading--weight);
    font-size: 19px;position:absolute;left:0;
}
.quality-right .detail-box.one:before{content: "1";}
.quality-right .detail-box.two:before{content: "2";}
.quality-right .detail-box.three:before{content: "3";}
.quality-right .detail-box.four:before{content: "4";}
.r-nickname {
    background: #e6f3ec;
    color: #00893e;
    width: 44px;
    height: 44px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.author .name {
    color: #363835;
    font-weight: 700;
}

.author .position {
    font-size: 12px;
    color: #5a5c59;
    font-weight: 400;
}

.author .verify {
    color: #00893e;
    font-size: 11px;
    font-weight: 700;
}
.home-blog-info p strong {
    font-weight: 700;
    color: #00893e;
    font-size: 11.2px;
}
.home-blog .home-blog-info h4 {
    font-size: 17.6px;
}
.footer-content h2 {
    font-size: 20.8px;
    color: #fff;
    line-height: 35.6px;
}
.menu__heading .menu__heading__default {
    color: #fff;
    font-weight: 700;
    font-size: 13.6px;
    line-height: 16.32px;
    letter-spacing: 1.36px;
}

.footer-main-block .group-block-content > rte-formatter {
    width: 25%;
    min-width: 25%;
}

.breadcrumbs ol.breadcrumbs__list {
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
}
.breadcrumbs ol.breadcrumbs__list li.breadcrumbs__item a.breadcrumbs__link {
    color: #00893e;
    padding: 0 5px;
    display: flex;
}

.breadcrumbs ol.breadcrumbs__list li.breadcrumbs__item a:after {
    content: "/";
    padding-left: 5px;
}
.facets.facets--horizontal.facets-controls-wrapper.spacing-style {
grid-column: var(--facets-vertical-col-width) / var(--full-width-column-number);
}
.facets h4.facets--filters-title {
    display: none;
}
.facets--vertical .facets__filters-wrapper .facets__item:first-child:before {
    content: none;
}
.facets__filters-wrapper accordion-custom.facets__item details[open] .svg-wrapper svg.minus-icon {
    display: none;
}
.facets__filters-wrapper accordion-custom.facets__item details .svg-wrapper svg.plus-icon {
    display: none;
}
.facets__filters-wrapper accordion-custom.facets__item details[open] .svg-wrapper svg.plus-icon {
    display: block;
}
li.breadcrumbs__item {
    color: #5a5c59;
    font-size: 12.8px;
}
.pdp-intro p {
    color: #5a5c59;
    font-style: italic;
    font-size: 16px;
    /* letter-spacing: 0; */
}
.prdct-points {
    background: #eef9f1;
    border-radius: 8px;
    border: solid 1px #e6f3ec;
    padding: 25px;
    min-width: 100%;
    margin: 30px 0 !important;
}
.prdct-points ul {
  list-style: none;
  padding-left: 0;
  margin:0!important
}

.prdct-points ul li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px;color:#363835; font-size:14.08px; line-height:23.94px
}
.prdct-points ul li:last-child{margin-bottom:0;}

.prdct-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 12px;
  height: 13px;

  background-image: url("data:image/svg+xml,%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.528 12.32C2.528 12.1813 2.50133 12.112 2.448 12.112L2.08 12.288C2.08 12.2133 2.03733 12.16 1.952 12.128L1.824 12.112C1.73867 12.112 1.632 12.1493 1.504 12.224C1.48267 12.1707 1.456 12.1173 1.424 12.064C1.392 12.0107 1.36533 11.9627 1.344 11.92C1.20533 11.6533 1.06667 11.36 0.928 11.04C0.8 10.7093 0.677333 10.3947 0.56 10.096C0.453333 9.79733 0.368 9.56267 0.304 9.392C0.261333 9.25333 0.213333 9.04533 0.16 8.768C0.106667 8.49067 0.0533333 8.13867 0 7.712C0.117333 7.78667 0.208 7.824 0.272 7.824C0.346667 7.824 0.416 7.712 0.48 7.488C0.512 7.53067 0.570667 7.552 0.656 7.552C0.72 7.552 0.768 7.53067 0.8 7.488L1.056 7.104L1.344 7.2H1.36C1.38133 7.2 1.40267 7.18933 1.424 7.168C1.44533 7.14667 1.47733 7.12533 1.52 7.104C1.60533 7.05067 1.66933 7.024 1.712 7.024L1.76 7.04C2.02667 7.168 2.19733 7.40267 2.272 7.744C2.464 8.55467 2.656 8.96 2.848 8.96C3.04 8.96 3.264 8.75733 3.52 8.352C3.648 8.14933 3.776 7.91467 3.904 7.648C4.04267 7.38133 4.18133 7.08267 4.32 6.752C4.34133 6.88 4.36267 6.944 4.384 6.944C4.43733 6.944 4.528 6.81067 4.656 6.544C4.79467 6.27733 5.01333 5.90933 5.312 5.44C5.48267 5.152 5.696 4.82667 5.952 4.464C6.21867 4.10133 6.50133 3.728 6.8 3.344C7.09867 2.96 7.38667 2.59733 7.664 2.256C7.952 1.91467 8.208 1.62133 8.432 1.376C8.656 1.13067 8.82133 0.970666 8.928 0.896C9.33333 0.618666 9.65333 0.352 9.888 0.0959997C9.87733 0.170666 9.86133 0.239999 9.84 0.304C9.82933 0.357333 9.824 0.394666 9.824 0.415999C9.824 0.458666 9.84533 0.48 9.888 0.48L10.336 0.256V0.32C10.336 0.405333 10.3573 0.448 10.4 0.448C10.432 0.448 10.496 0.4 10.592 0.304C10.688 0.208 10.7413 0.138666 10.752 0.0959997L10.72 0.32L11.264 0L11.136 0.288C11.3067 0.170666 11.4293 0.112 11.504 0.112C11.5467 0.112 11.5787 0.138666 11.6 0.191999C11.6213 0.234666 11.632 0.277333 11.632 0.32C11.632 0.384 11.6053 0.458666 11.552 0.544C11.4987 0.629333 11.4293 0.730666 11.344 0.848Z' fill='%23357A56'/%3E%3C/svg%3E");

  background-size: contain;
  background-repeat: no-repeat;
}
product-price span.price {
    font-size: 24px;
    font-weight: 700;
}
product-price span.price_details {
    font-size: 13.6px;
    color: #5a5c59;
}
.recommended {
    border: 1px solid #e6e6e6;
    min-width: 100%;
    background: #fafafa;
    padding: 24px;
    border-radius: 8px;
}
.recommended p {
    size: 14.08px;
    color: #5a5c59;
    line-height: 23.94px;
}
.recommended strong{font-size:13.6px; font-weight:700; color:#005a28; line-height:16.32px}
.product-details .quantity-selector button {
    border: solid 2px #D4CCC6;border-radius:4px;width:40px; height:40px;
}
.pdp-box-point p {
    color: #5a5c59;
    font-size: 11.52px;
    line-height: 14.98px;
}
.pdp-box-point .group-block-content .group-block {
    border-color: #e6e6e6;
}
.pdp-box-point {border-bottom:solid 1px #e6e6e6;}
/* UL reset */
.stock-detail {padding-top:25px;}
/* UL reset */
.stock-detail ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

/* LI styling */
.stock-detail ul li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px;color:#5a5c59; font-size:13.12px; line-height:22.3px;
}

/* SAME SVG as prdct-points */
.stock-detail ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 12px;
  height: 13px;

  background-image: url("data:image/svg+xml,%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.528 12.32C2.528 12.1813 2.50133 12.112 2.448 12.112L2.08 12.288C2.08 12.2133 2.03733 12.16 1.952 12.128L1.824 12.112C1.73867 12.112 1.632 12.1493 1.504 12.224C1.48267 12.1707 1.456 12.1173 1.424 12.064C1.392 12.0107 1.36533 11.9627 1.344 11.92C1.20533 11.6533 1.06667 11.36 0.928 11.04C0.8 10.7093 0.677333 10.3947 0.56 10.096C0.453333 9.79733 0.368 9.56267 0.304 9.392C0.261333 9.25333 0.213333 9.04533 0.16 8.768C0.106667 8.49067 0.0533333 8.13867 0 7.712C0.117333 7.78667 0.208 7.824 0.272 7.824C0.346667 7.824 0.416 7.712 0.48 7.488C0.512 7.53067 0.570667 7.552 0.656 7.552C0.72 7.552 0.768 7.53067 0.8 7.488L1.056 7.104L1.344 7.2H1.36C1.38133 7.2 1.40267 7.18933 1.424 7.168C1.44533 7.14667 1.47733 7.12533 1.52 7.104C1.60533 7.05067 1.66933 7.024 1.712 7.024L1.76 7.04C2.02667 7.168 2.19733 7.40267 2.272 7.744C2.464 8.55467 2.656 8.96 2.848 8.96C3.04 8.96 3.264 8.75733 3.52 8.352C3.648 8.14933 3.776 7.91467 3.904 7.648C4.04267 7.38133 4.18133 7.08267 4.32 6.752C4.34133 6.88 4.36267 6.944 4.384 6.944C4.43733 6.944 4.528 6.81067 4.656 6.544C4.79467 6.27733 5.01333 5.90933 5.312 5.44C5.48267 5.152 5.696 4.82667 5.952 4.464C6.21867 4.10133 6.50133 3.728 6.8 3.344C7.09867 2.96 7.38667 2.59733 7.664 2.256C7.952 1.91467 8.208 1.62133 8.432 1.376C8.656 1.13067 8.82133 0.970666 8.928 0.896C9.33333 0.618666 9.65333 0.352 9.888 0.0959997C9.87733 0.170666 9.86133 0.239999 9.84 0.304C9.82933 0.357333 9.824 0.394666 9.824 0.415999C9.824 0.458666 9.84533 0.48 9.888 0.48L10.336 0.256V0.32C10.336 0.405333 10.3573 0.448 10.4 0.448C10.432 0.448 10.496 0.4 10.592 0.304C10.688 0.208 10.7413 0.138666 10.752 0.0959997L10.72 0.32L11.264 0L11.136 0.288C11.3067 0.170666 11.4293 0.112 11.504 0.112C11.5467 0.112 11.5787 0.138666 11.6 0.191999C11.6213 0.234666 11.632 0.277333 11.632 0.32C11.632 0.384 11.6053 0.458666 11.552 0.544C11.4987 0.629333 11.4293 0.730666 11.344 0.848Z' fill='%23357A56'/%3E%3C/svg%3E");

  background-size: contain;
  background-repeat: no-repeat;
}
section.pdp-tabs{margin-bottom:45px;}

   section.pdp-tabs.section--page-width .pdp-tabs-nav{
   padding-top:60px; margin-top:60px; border-top:solid 1px #e6e6e6;    border-bottom: 2px solid #e6e6e6;
   display:flex;
}
 section.pdp-tabs.section--page-width .pdp-tabs-nav .tab-btn {
    padding: 20px 30px;border-bottom:solid 2px transparent;font-weight:700; color:#5a5c59; font-size:13.6px;    position: relative;
    bottom: -2px;
}
 section.pdp-tabs.section--page-width .pdp-tabs-nav .tab-btn.active{border-bottom: 2px solid #00893e; color:#00893e}
 .tab-content{display:none;    grid-template-columns: 1fr ;padding-top:45px;
}
.tab-content:has(.ingre-left) {grid-template-columns: 1fr 1fr;}
.tab-content.active{display:grid;}
.ing-heading{font-size:20.85px; color:#005a28}
table.ingredient-table thead th {
    text-align: left;
}
.ingredient-table tbody tr td {
    text-align: right;
}
.ingredient-table tbody tr td:first-child {
    text-align: left;
}
.ingredient-table thead th {
    border-bottom: 1px solid #e6e6e6;
    padding: 10px 0;color:#363835; font-size:14.8px;line-height:23.94px;
}
.ingredient-table thead th:last-child {padding-left:8px}
.ingredient-table tbody tr td:last-child {padding-left:8px}
.ingredient-table tbody td {
    border-bottom: 1px solid #F5F2EF;
    padding: 10px 0;font-size:14.8px;line-height:23.94px;
}
.ingredient_img {
    max-width: 240px;
    aspect-ratio: 1;
    margin: auto;
}
.ingredient-content{margin-top:30px}
.ingredient-content p br{margin-bottom:10px;display:block}
.ingredient-content p{color:#363835; font-size:14.4px; line-height:24.48px;}
h3.faq-heading {
    font-size: 28px;
    color: #005a28;
    line-height: 33.6px;
}
.Product_faq {
    margin-top: 60px;padding-bottom:60px;
}
.pdp-guarntee {
    border: 1px solid #e6e6e6;
    background: #fafafa;
    border-radius: 12px;
}
.body-txt-16 p {
    font-size: 16px;line-height:27.2px
}
.full-width-para p, .full-width-para{ min-width:100%;}
.divider-left span.divider__line {
    margin-left: 0;
    margin-right: auto;
}
.divider-green_1 .divider__line {
    border-color: #5AAD7E;
}

.newsletter-text {margin-bottom:25px;}
/*----timeline-----*/
.timeline {
  /* position: relative;
  padding-left: 60px;  */
  
  /* more space like mockup */
}

/* Vertical line */
.timeline::before {
  /* content: "";
  position: absolute;
  left: 18px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #c7d8cf; 
  
  */
}
.timeline-item:after {
    content: "";
    width: 2px;
    height: 100%;
    top: 0;
    bottom: 0;
    display: block;
    position: absolute;
    background: #b3dfc4;
    left: -34px;
}
/* Each item */
.timeline-item {
  position: relative;
  padding-bottom: 50px;
}

/* Dot */
.timeline-item::before {
     content: "";
    position: absolute;
    left: -38px;
    top: 4px;
    width: 7px;
    height: 7px;
    background: #2e5f4d;
    border-radius: 50%;
    border: 2px solid #b3dfc4;
    z-index: 9;
}

/* Year */
.timeline-item .year {
    font-size: 12px;
    color: #00893e;
    letter-spacing: 2px;
    margin-bottom: 8px;
    font-weight: 700;
}

/* Title */
.timeline-item .title {
  font-size: 16px;
  font-weight: 700;
  color: #363835;
  margin-bottom: 10px;
}

/* Description */
.timeline-item p {
  font-size: 14.8px;
  color: #5a5c59;
  line-height: 22.53px;
  margin: 0;
  max-width: 700px;
}

/*----end timeline-----*/
.me-text p {
    max-width: 700px;
    color: #5a5c59;
    font-size: 18.4px;
    letter-spacing: 0;
    line-height: 33.12px;
}
/*----- feature bullet------*/
.feature-list {
  max-width: 700px;
  margin: 0 auto;
}

/* Each item */
.feature-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 25px 0;
  border-bottom: 1px solid #e5e5e5;
}

/* Remove last border */
.feature-item:last-child {
  border-bottom: none;
}

/* Number circle */
.feature-number {
  min-width: 50px;
  height: 50px;
  background: #e6efe9;
  color: #2e5f4d;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 16px;
}

/* Content */
.feature-content h4 {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-foreground-heading);
  font-family: var(--font-heading--family);
}

.feature-content p {
  margin: 0;
  font-size: 14.8px;
  color: #5a5c59!important;
  line-height: 22.53px;
  font-weight:400;
  max-width: 500px;
}
/*----- end -----*/
.font-28 h4 {
    font-size: 28px !important;
}
.cstm-subhead.subhead-green-2 p {
    color: #7fc9a0 !important;
}
.color-3 p{color:#b3dfc4!important}
.color-4 p{color:#00893e}
.dr-post p{font-size:13.12px; line-height:22.3px}
.dr-text p{font-size:13.6px; line-height:23.12px; color:#5a5c59}
rte-formatter.dr-text {
    max-width: 300px;
}
.crtfct-icon {
    text-align: center;
    margin: 15px auto;
    min-width: 100%;
    font-size: 40px;
}
div:has(.crtfct-icon) {
    width: 100%;
}
.crtfct-text p {
    font-size: 13.6px;
    line-height: 23.12px;
    max-width: 152px;
}
.exp-sec rte-formatter.body-txt-16 p {
    min-width: calc(100% - 80px);
}
.exp-sec a {
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 1.36px;
    min-width: 264px;
}
.page-hero-text p{font-size:17.6px;line-height:29.92px;}
rte-formatter.health-journal-text {
    max-width: 700px;
}
.scientists-name{width:100px; height:100px; background:#e6f3ec; border-radius:50%; display:flex; align-items:center; justify-content:center;font-size:24px; font-weight:700; color:#00893e}
.search-bar input {
    border: 1px solid #e6e6e6;
    border-radius: 12px;
    display: block;
    width: 100%;
    padding: 15px 50px;
    box-sizing: border-box;font-size: 15.2px;
    line-height: 18.4px;
}
.search-bar {
    margin-bottom: 45px;
}
.alphabet button {
    width: 32px;
    height: 32px;
    color: #5a5c59;
    background: transparent;
    border: none;
    font-size: 12px;
    padding: 0;border-radius:4px;font-weight:700;
}
.alphabet button.active{color:#fff; background:#00893e}
.alphabet {
    max-width: 735px;width:100%;
}
.concerns-heading h3 {
    color: #005a28;
    font-size: 24px;
    font-weight: 700;
    line-height: 28.8px;
}

.concerns-heading {
    padding: 30px 0 20px 0;
    border-bottom: solid 1px #e6e6e6;
    margin-bottom: 25px;
}
.concerns .layout .cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}
.concerns .layout .cards .card{border: 1px solid #e6e6e6; border-radius:12px;padding:30px;}
.concerns .layout .cards .card h3 {
    color: #005a28;
    font-size: 18.4px;
    font-weight: 700;
    line-height: 23.92px;
    margin: 10px 0 0 0;
}
.concerns .layout .cards .card h3 {
    color: #005a28;
    font-size: 18.4px;
    font-weight: 700;
    line-height: 23.92px;
    margin: 10px 0 0 0;
}

.concerns .layout .cards .card .stream {
    text-transform: uppercase;
    background: #eef9f1;
    display: flex;
    max-width: fit-content;
    padding: 3px 10px;
    line-height: 19.04px;
    border-radius: 999px;
    color: #00893e;
    font-size: 11.2px;
    font-weight: 700;
    letter-spacing: 1.12px;
}
.concerns .layout .cards .card p {
    font-size: 13.6px;
    color: #5a5c59;
    line-height: 21.76px;
}
.recommend-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.recommend-link small {
    color: #5a5c59;
    font-size: 12.48px;
    line-height: 21.22px;
}

.recommend-link .h-arrow {
    background: #eef9f1;
    color: #00893e;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.picto .diagram {
    border-color: #e6e6e6;
    box-shadow: 0px 1px 3px 0px #0000000F;
}
.picto .shopify-block:has(.sidebar) {
    margin: auto;
}

.picto .sidebar > ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    row-gap: 6px;
}

.picto .sidebar ul li {
    background: #fafafa;
    border-radius: 8px;
    padding: 10px 15px;
    display: flex;
    column-gap: 15px;
    justify-content: flex-start;align-items:center;border:solid 1px transparent;width: 214px;
    height: 62px;cursor:pointer;
}
.picto .sidebar ul li span.icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background: #e6f3ec;
    border-radius: 50%;
    padding-right: 3px;
}

.picto .sidebar ul li span.icon img {
    max-width: 18px;
    height: auto;
}
.picto .sidebar ul li span.count {
    margin: 0 0 0 auto;
    color: #B8ADA5;
    font-size: 12px;
    line-height: 14.4px;
}
.picto .sidebar ul li .name {
    color: #363835;
    font-size: 14.08px;
    line-height: 16.9px;
}
.picto .diagram img {
    max-width: 240px;
    display: block;
    margin: auto;
}

.picto .sidebar ul li.active {
    background: #e6f3ec;
    border-color: #5AAD7E;
}
.picto .sidebar ul li.active .name {
    color: #005a28;
    font-weight: 700;
}
.picto .sidebar ul li.active  .icon {
    background: #00893e;
}
.certification p{font-size:13.6px; line-height:23.12px}

@media(min-width:750px){
.ing-heading{font-size:28px; }
.product-details .pdp-intro .text-block h3 {
    font-size: 32px;
}
  .facets--vertical .facets__filters-wrapper .facets__item:before {margin:40px 0;}
  .facets-block-wrapper.facets-block-wrapper--vertical {margin-top:-50px;}

}
.cstm-subhead p {
    line-height: 20.4px;
    letter-spacing: 1.8px;
}
.newsletter-sec .cstm-subhead p {color:#7fc9a0!important}
.Product_faq accordion-custom details summary.details__header {
    font-size: 15.2px;
    font-weight: 800;
    line-height: 25.84px;
    color: #363835;
}
.Product_faq accordion-custom details .details-content {
    color: #5a5c59;
    font-size: 14.4px;
    line-height: 24.48px;
}
.Product_faq accordion-custom {
    border-bottom: 1px solid #e6e6e6;
    margin-bottom: 15px;
}
.Product_faq svg {
    color: #B8ADA5;
}
.ingredient-txt {
    margin-top: 13px;
}

.ingredient-txt .nvr_txt {
    color: #5a5c59;
    font-size: 12px;
    line-height: 20.4px;
}
.ingredient-txt .in-detail {
    color: #5a5c59;
    font-size: 13.12px;
    line-height: 22.3px;
}
@media(min-width:992px){
  .newsletter-text p {
    min-width: 730px;
}
  .page-sec .page-sec-head h2, .library-header h2{line-height: 48px;letter-spacing: -0.4px;font-size:40px}
  .page-hero-line h2 {
    letter-spacing: -1.12px;
    line-height: 67.2px;
}
.diagram {
    margin: 290px 0 60px 0;
}
}
@media(max-width:991px) and (min-width:750px){

  product-recommendations.product-recommendations .resource-list--grid {
    grid-template-columns: 1fr 1fr;
}
   .team-points .layout-panel-flex > * h4{font-size:33.36px; line-height:33.36px}
  .certification-icons .layout-panel-flex > *, .team-points .layout-panel-flex > * {
    min-width: calc(50% - 6px);
}

.certification-icons .layout-panel-flex, .team-points .layout-panel-flex {
    flex-wrap: wrap;
}

.certification-icons .layout-panel-flex > * p {
    min-width: calc(100% - 61px);
}
  .page-sec .page-sec-head h2, .library-header h2 {font-size:29.19px; line-height:35.03px; letter-spacing:-0.29px}
  .page-img-text .image-block {
    margin-top: 60px;
}
  .timeline-sec {
    max-width: calc(100% - 110px);
    margin: auto;
}
  .picto > .layout-panel-flex {
    flex-direction:column-reverse;margin-top:300px;
}
  .page-content-body .section-content-wrapper {
    gap: 35px;
}
.cstm-subhead p {
    line-height: 20.4px;
    letter-spacing: 1.8px;
    white-space:nowrap;
}
  .page-hero-line h2 {
    letter-spacing: -0.83px;
    line-height: 50.04px;
    font-size:41.7px;
}

.text-block.h3 h3 {
    font-size: 29.19px;
}
  .icon-with-text__section .section-content-wrapper {
    column-gap: 30px;
    justify-content: space-between;
}

}
p.page-body-text {
    font-size: 16px;
    line-height: 27.2px;
    letter-spacing: 0;
}
.certificate-text-para p {
    font-size: 18.4px;
    line-height: 33.12px;
}
.small-gray-text{color:#5a5c59; font-size:13.6px; line-height:23.12px}
@media(max-width:749px){
  .tab-content {grid-template-columns:1fr; row-gap:30px;}
  .team-points > .layout-panel-flex {
    row-gap: 60px;
}
  .certification-icons .layout-panel-flex > * p {
    min-width: calc(100% - 96px);
}
    .team-points .layout-panel-flex > * h4{font-size:32px; line-height:32px}
  .timeline-sec {
    max-width: calc(100% - 65px);
}
  .page-sec .page-sec-head h2, .library-header h2 {font-size:28.8px; line-height:34.56px; letter-spacing:-0.29px}
  .concerns .layout .cards{grid-template-columns:1fr;}
.page-hero-text p br{display:none;}
    .page-hero-line h2 {
    letter-spacing: -0.7px;
    line-height: 42.24px;
    font-size:35.2px;
    
}

  .announcement-bar__slides {min-width:calc(100% - 30px)}
  .product-information {margin-top:0;padding-top:0;}
  .pdp-box-point .group-block {
    padding: 10px 5px;
}
  .variant-option__button-label {padding-block: var(--padding-xs);
    padding-inline: var(--padding-xs);}
 main .main-collection-grid {padding:0 15px;}
  .grade-item .group-block-content {
    gap: 15px;
  }

.grade-item .group-block-content > * {
    min-width: calc(50% - 10px);
}
  .grade-item .image-block {
    max-width: 64px;min-width:initial;
}
  .botanicals-grid .group-block-content {
    gap: 15px;
}
.botanicals-grid .group-block-content > * {
    min-width: calc(50% - 10px);
    max-width: 164px;
}
  .button, .button-secondary, button.shopify-payment-button__button--unbranded {    padding-block: 12px;
    padding-inline: 12px;}
  .number-block .group-block-content {
    max-width: 100%;
    flex-direction: row;
}
  .text-block.h3 h3, .number-block .num-txt>div {
    font-size: 28.8px;
}
   .icon-with-text__section .section-content-wrapper {flex-direction:column; row-gap:25px;}
   .home-solutions .section-content-wrapper{gap:12px; }
   .home-solutions .section-content-wrapper > * {
    min-width: calc(33% - 7px);
    max-width: 106.33px;
}
}
  .product-grid__card .group-block .group-block-content {
    padding: 0 15px;
}
.review-star{color:#C8A96E}
.newsletter-bottom-text p{color:#7fc9a0; font-size:12px;line-height:20.4px}
.home-solutions .prdct-count p{color:#5a5c59; font-size:12px; line-height:20.4px}
.botanicals .ingredient-title h4 {font-size:17.6px;line-height:21.12px}
.botanicals  .ingredient-for p em{color:#5a5c59; font-size:12.8px;line-height:21.76px}
.grade-item .grade-box .group-block-content {
    row-gap: 15px;
}
.qnc-title p {
    color: #363835;
    font-size: 13.6px;
    font-weight: 700;
    line-height: 23.12px;
}
.qnc-text p {
    font-size: 12.48px;
    color: #5a5c59;
    line-height: 18.72px;
    max-width: 228px;
}
.quality-wrap .cstm-subhead p{color:#7fc9a0!important}
.quality-wrap .quality-left .divider__line {border-color:#3D8B63}
.product-type {
    font-weight: 700;
    padding: 20px 15px 0 25px;
    letter-spacing: .9px;
    line-height: 19.04px;
    font-size: 11.2px;
    color: #00893e;
    text-transform: uppercase;
}
.main-collection-grid .product-type {
    padding: 0;
}
@media(min-width:750px){
.email-signup__input-group  .email-signup__input{min-width: 311.69px;}
.email-signup__input-group .email-signup__button--text{min-width:160.32px}
.grade-item  .group-block-content{row-gap:45px}
  .picto{max-width:340px; position:sticky; top:0;}
  .product-grid__card .group-block .group-block-content {
    padding: 15px 30px;
}
  .footer-main-block .group-block-content accordion-custom {
    width: 18%;
}

  .footer-main-block .group-block-content > div {
    width: 25%;
    min-width: 25%;
}
  .shop-health rte-formatter p {
   
    min-width: 720px;
}
}
.product-type p {
    color: #00893e;
    font-size: 11.2px;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    line-height: 19.04px;
    font-weight: 700;
}

.product-card__content .metafield-rich_text_field p{color:#5a5c59; font-size:12.8px; line-height:19.2px}
.account-button [slot="signed-out-avatar"] svg,
.account-button [slot="signed-out-avatar"] img {
display: none !important;
}
.account-button__text {
display: inline-block !important;
visibility: visible !important;
}
.account-button {
gap: 6px;
}

.product-badges__badge {
       letter-spacing: 0.56px;
    line-height: 19.04px;
}
.trust-bar {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;margin-bottom:15px;
}
.trust-bar p {
    font-size: 12px;
    text-align: center;
}
.trust-point figure {
  margin: 10px 30px;
}
.pdp-desc h2, .pdp-desc h3 {
    font-size: 28px;
    color: #005a28;
    text-transform: none;
}


.product-media-container.media-fit img{object-fit: contain !important}
.tab-content p {margin-block-start:1em!important}

/* ============================================================
   SORIA NATURAL — BRAND SYSTEM ADDITIONS (v6)
   Added in brand-alignment pass: SVG icons, focus states,
   pathology scheme hooks, decorative-shadow audit.
   ============================================================ */

/* SVG brand icons — inherit color from scheme (currentColor pattern) */
.brand-icon, .brand-star, .brand-check {
  display: inline-block;
  vertical-align: middle;
  color: var(--color-primary, #00893e);
}
.crtfct-icon { color: var(--color-primary, #00893e); }
.crtfct-icon .brand-icon { width: 48px; height: 48px; }

/* Star ratings */
.review-star {
  display: inline-flex;
  gap: 2px;
  color: #00893e;
  line-height: 1;
}
.review-star .brand-star { width: 18px; height: 18px; }

/* Verified checkmark line */
.verify {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-foreground, #363835);
  font-size: 0.875rem;
}
.verify .brand-check { color: #00893e; flex-shrink: 0; }

/* Footer certification chips */
.cert-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 14px;
  font-size: 0.8125rem;
  color: inherit;
}
.cert-chip svg { color: inherit; opacity: 0.85; }
.footer-cert-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 8px 0 0;
}

/* Form / input focus — brand-green focus ring (a11y + on-brand) */
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible,
.button:focus-visible,
.button-secondary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #00893e !important;
  outline-offset: 2px;
  border-radius: 2px;
}

/* Buttons: drop the decorative box-shadow (brand says no edges/shadows) */
.button, .button-secondary, button.shopify-payment-button__button--unbranded {
  box-shadow: inset 0 0 0 var(--button-border-width) var(--button-border-color);
  /* the inset is the BORDER, not a drop shadow — keep it */
}
.button:hover, .button-secondary:hover {
  transform: none;
  box-shadow: inset 0 0 0 var(--button-border-width) var(--button-border-color);
}

/* Newsletter / email signup — brand input treatment */
.email-signup input[type="email"],
input[type="email"],
input[type="text"]:not(.search-input),
input[type="search"],
input[type="tel"] {
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  padding: 12px 14px;
  font-family: var(--font-body--family);
  font-size: 0.9375rem;
  background: #ffffff;
  transition: border-color 0.15s ease;
}
.email-signup input[type="email"]:hover,
input[type="email"]:hover,
input[type="text"]:hover {
  border-color: #00893e;
}

/* Pathology color schemes — auto-apply per collection handle.
   When a customer is on /collections/imunski-sistem, the body element
   gets data-template="collection" and the section uses the pathology scheme.
   We use a CSS custom-property override pattern: change the primary color
   variables when the body has the specific collection-handle class. */

/* Helper: each pathology gets brand color variables */
body.template-collection.collection-imunski-sistem,
body.template-collection.collection-imunski-sistem * {
  --pathology-color: #f49c00;  /* Immune system — orange */
}
body.template-collection.collection-kosti-in-sklepi {
  --pathology-color: #00acd8;  /* Bones & joints — cyan */
}
body.template-collection.collection-spomin-koncentracija {
  --pathology-color: #0058a4;  /* Cognitive — blue */
}
body.template-collection.collection-srce-in-ozilje {
  --pathology-color: #e83c4c;  /* Cardiovascular — red */
}
body.template-collection.collection-prebava {
  --pathology-color: #98c434;  /* Digestive — yellow-green */
}
body.template-collection.collection-dihala {
  --pathology-color: #009c90;  /* Respiratory — teal */
}
body.template-collection.collection-razstrupljanje-jetra {
  --pathology-color: #98c434;  /* Liver & detox — yellow-green */
}
body.template-collection.collection-spolnost-in-plodnost {
  --pathology-color: #984494;  /* Reproductive — magenta */
}

/* Apply pathology color to the COLLECTION HEADER eyebrow text and title underline.
   Only overrides accent surfaces — primary scheme colors stay brand green. */
body[class*="collection-"] .section-eyebrow,
body[class*="collection-"] .collection-header [class*="subhead"] {
  color: var(--pathology-color, #00893e);
}
body[class*="collection-"] .collection-header h1::after,
body[class*="collection-"] .collection-header h3::after {
  background: var(--pathology-color, #00893e);
}

/* ============================================================
   END BRAND SYSTEM ADDITIONS
   ============================================================ */


/* ============================================================
   TIER 3 — DTC POLISH (PDP trust, cards, cart drawer, micro-UX)
   ============================================================ */

/* Product card — clean hover lift (subtle, no decorative drop-shadow) */
.product-card {
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.product-card:hover {
  transform: translateY(-2px);
  border-color: var(--color-primary, #00893e);
}

/* Add-to-cart button (PDP) — full width on mobile, prominent */
.product-form__buttons .button {
  font-weight: 700;
  letter-spacing: 1.6px;
  padding-block: 18px;
}
@media (max-width: 749px) {
  .product-form__buttons .button { width: 100%; }
}

/* PDP trust strip — uniform icon-text rows */
.product-trust-row,
.product-info__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  padding: 16px 0;
  border-top: 1px solid #e6e6e6;
  border-bottom: 1px solid #e6e6e6;
  margin: 20px 0;
  font-size: 0.875rem;
}
.product-trust-row > *,
.product-info__trust > * {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Cart drawer — tighter type, brand border accents */
cart-drawer-component .drawer__header,
.cart-drawer__header {
  border-bottom: 1px solid #e6e6e6;
}
cart-drawer-component .cart__total,
.cart-drawer__total {
  border-top: 1px solid #e6e6e6;
  padding-top: 16px;
  margin-top: 16px;
}

/* Quantity selector — clean brand treatment */
.quantity-selector,
component-quantity-selector {
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  background: #ffffff;
}
.quantity-selector button,
component-quantity-selector button {
  background: transparent;
  border: none;
  padding: 8px 12px;
  cursor: pointer;
  color: var(--color-foreground, #363835);
  transition: color 0.15s ease;
}
.quantity-selector button:hover,
component-quantity-selector button:hover { color: var(--color-primary, #00893e); }

/* Sale badge — clean charcoal pill */
.badge--sale,
[class*="badge"]--sale {
  font-weight: 700;
  letter-spacing: 0.8px;
}

/* Newsletter signup row — input + button alignment */
.email-signup form,
.newsletter form {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.email-signup input[type="email"],
.newsletter input[type="email"] { flex: 1 1 200px; }

/* Image: subtle zoom on hover for product cards */
.product-card .product-card__media img,
.collection-card img {
  transition: transform 0.4s ease;
}
.product-card:hover .product-card__media img,
.collection-card:hover img { transform: scale(1.03); }

/* Empty states (404, empty cart, no search results) — brand polish */
.empty-state,
.cart-empty,
.search-empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--color-foreground, #363835);
}
.empty-state h2,
.cart-empty h2 {
  font-family: var(--font-heading--family);
  margin-bottom: 12px;
}

/* Selected variant pill — ensure brand-green outline */
.variant-picker__option--selected {
  border-color: #00893e !important;
  color: #00893e !important;
}

/* Generic transition — make hovers feel premium, not jittery */
.button, .button-secondary, a, .product-card,
button.shopify-payment-button__button--unbranded {
  transition-property: color, background-color, border-color, transform, box-shadow, opacity;
  transition-duration: 0.18s;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ============================================================
   END TIER 3 POLISH
   ============================================================ */


/* ============================================================
   PDP INGREDIENT TABLES — robust styling (v8)
   Applies to ANY <table> inside the ingredient block, plus
   <p>/<dl> fallbacks if the metafield isn't a real table.
   ============================================================ */

.ingredient-table-wrapper,
.ingredient-content {
  font-family: var(--font-body--family);
  color: var(--color-foreground, #363835);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.ingredient-table-wrapper table,
.ingredient-content table,
table.ingredient-table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 16px;
  font-size: 0.9375rem;
}

.ingredient-table-wrapper table thead,
.ingredient-content table thead,
table.ingredient-table thead {
  background: #f9faf9;
}

.ingredient-table-wrapper table th,
.ingredient-content table th,
table.ingredient-table thead th {
  text-align: left;
  font-weight: 700;
  font-family: var(--font-heading--family);
  color: var(--color-foreground-heading, #363835);
  padding: 12px 14px;
  border-bottom: 2px solid #00893e;
  font-size: 0.875rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ingredient-table-wrapper table td,
.ingredient-content table td,
table.ingredient-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid #eee;
  vertical-align: top;
}

.ingredient-table-wrapper table td:first-child,
.ingredient-content table td:first-child,
table.ingredient-table tbody td:first-child {
  font-weight: 600;
  color: var(--color-foreground-heading, #363835);
  text-align: left;
  width: 55%;
}

.ingredient-table-wrapper table td:not(:first-child),
.ingredient-content table td:not(:first-child),
table.ingredient-table tbody td:not(:first-child) {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.ingredient-table-wrapper table tbody tr:nth-child(even),
.ingredient-content table tbody tr:nth-child(even),
table.ingredient-table tbody tr:nth-child(even) {
  background: #fafafa;
}
.ingredient-table-wrapper table tbody tr:hover,
.ingredient-content table tbody tr:hover,
table.ingredient-table tbody tr:hover {
  background: #f0f7f3;
}

.ingredient-table-wrapper table tr:last-child td,
.ingredient-content table tr:last-child td,
table.ingredient-table tbody tr:last-child td {
  border-bottom: 0;
}

/* Pseudo-table fallback: <p> rows */
.ingredient-table-wrapper > p,
.ingredient-content > p {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
  margin: 0;
}
.ingredient-table-wrapper > p strong,
.ingredient-content > p strong {
  font-weight: 600;
  color: var(--color-foreground-heading, #363835);
  flex-shrink: 0;
}
.ingredient-table-wrapper > p:last-child,
.ingredient-content > p:last-child {
  border-bottom: 0;
}

/* Definition-list fallback */
.ingredient-table-wrapper dl,
.ingredient-content dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 10px 24px;
  margin: 0;
  padding: 0;
}
.ingredient-table-wrapper dt,
.ingredient-content dt {
  font-weight: 600;
  color: var(--color-foreground-heading, #363835);
}
.ingredient-table-wrapper dd,
.ingredient-content dd {
  margin: 0;
  text-align: right;
}

.ingredient-table-wrapper small,
.ingredient-content small,
.ingredient-table-wrapper sup,
.ingredient-content sup {
  font-size: 0.8125rem;
  color: #5a5c59;
}

/* Generic table styling fallback for blogs/pages */
.rte table,
article table,
.shopify-section table:not([class]) {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 0.9375rem;
}
.rte table th,
article table th,
.shopify-section table:not([class]) th {
  text-align: left;
  font-weight: 700;
  background: #f9faf9;
  padding: 12px 14px;
  border-bottom: 2px solid #00893e;
  text-transform: uppercase;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}
.rte table td,
article table td,
.shopify-section table:not([class]) td {
  padding: 12px 14px;
  border-bottom: 1px solid #eee;
}
.rte table tr:nth-child(even),
article table tr:nth-child(even),
.shopify-section table:not([class]) tr:nth-child(even) {
  background: #fafafa;
}

@media (max-width: 600px) {
  .ingredient-table-wrapper table th,
  .ingredient-content table th,
  table.ingredient-table thead th,
  .ingredient-table-wrapper table td,
  .ingredient-content table td,
  table.ingredient-table tbody td {
    padding: 10px 8px;
    font-size: 0.875rem;
  }
}


/* ============================================================
   BRAND CONSISTENCY PASS — typography rhythm, eyebrows,
   section spacing, CTA harmony, editorial hierarchy
   ============================================================ */

/* ---- Eyebrows: tight, uppercase, brand-green by default ---- */
.cstm-subhead p,
[class*="subhead"] p,
.eyebrow,
.section-eyebrow {
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-primary, #00893e);
  margin: 0 0 12px;
  line-height: 1.4;
}

/* ---- Display headings: tighter leading, more presence ---- */
h1, .h1, .text-block.h1 :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: -0.025em;
  line-height: 1.05;
}
h2, .h2, .text-block.h2 :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: -0.02em;
  line-height: 1.1;
}
h3, .h3, .text-block.h3 :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: -0.015em;
  line-height: 1.2;
}

/* ---- Hero h1 italic span: brand-green emphasis (matches existing pattern) ---- */
h1 span, h2 span {
  color: #00893e;
  font-style: italic;
  font-weight: inherit;
}

/* ---- Body copy: comfortable, readable ---- */
p {
  line-height: 1.6;
}

/* ---- CTAs: Always uppercase, consistent letter-spacing ---- */
.button, .button-secondary,
button.shopify-payment-button__button--unbranded {
  letter-spacing: 0.1em;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 16px 28px;
  min-height: 52px;
}

/* ---- Section spacing rhythm — generous, editorial ---- */
.shopify-section + .shopify-section {
  margin-top: 0;  /* let section padding handle it, no double-stacking */
}
section.section--page-width {
  padding-block: clamp(60px, 8vw, 110px);
}

/* ---- Footer cert chips: tighter pill treatment ---- */
.cert-chip {
  background: rgba(255,255,255,0.08);
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

/* ---- Trust-strip icons row (homepage just below hero) — uniform sizing ---- */
.icon-with-text__section .icon-block .icon-block__media {
  max-width: 18px;
  margin-right: 8px;
  opacity: 0.85;
}
.icon-with-text__section p {
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  font-weight: 500;
  color: var(--color-foreground, #363835);
}

/* ---- Section headings get visual breathing room ---- */
.section-content-wrapper > h2:first-child,
.section-content-wrapper > .text-block.h2:first-child {
  margin-top: 0;
}

/* ---- Pull-quote / testimonial polish: brand-green left bar ---- */
.review-card,
.testimonial-card,
[class*="testimonial"] blockquote {
  border-left: 3px solid #00893e;
  padding-left: 20px;
}

/* ---- Doctor-name treatment in testimonials ---- */
.scientists-name,
.r-nickname {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #00893e;
  background: #e6f3ec;
  width: 36px; height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

/* ---- Stat numbers (40+, 500+, 30+) — make them magnetic ---- */
.number-block .num-txt > div {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: clamp(1.75rem, 3vw, 2.25rem);  /* 28–36px */
  line-height: 1;
  color: #00893e;
  letter-spacing: -0.02em;
}
.number-block .num-txt > p {
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-foreground, #363835);
  margin-top: 12px;
  font-weight: 500;
}

/* ---- Detail boxes (homepage ingredient highlights) — premium card ---- */
.detail-box {
  background: #fafafa;
  border-radius: 8px;
  padding: 24px;
  border: 1px solid #e6e6e6;
  transition: border-color 0.2s ease;
}
.detail-box:hover {
  border-color: #00893e;
}
.detail-box strong {
  display: block;
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1rem;
  color: #00893e;
  margin-bottom: 8px;
  letter-spacing: 0.02em;
}
.detail-box p {
  font-size: 0.875rem;
  margin: 0;
  color: var(--color-foreground, #5a5c59);
}

/* ---- "Verify" line: tight pharma-grade pill ---- */
.verify {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: #00893e;
  margin-top: 8px;
  font-weight: 600;
}

/* ---- Star ratings: tight inline-flex ---- */
.review-star {
  display: inline-flex;
  gap: 1px;
  margin-bottom: 12px;
}

/* ---- Quote text in testimonials — italics + larger leading ---- */
em {
  font-style: italic;
  color: var(--color-foreground-heading, #363835);
}

/* ---- Background hero overlay — subtle brand green tint ---- */
.hero-wrapper .hero {
  position: relative;
}
.hero-wrapper .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,90,40,0.35) 0%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  z-index: 1;
}
.hero-wrapper .hero > * {
  position: relative;
  z-index: 2;
}

/* ---- Mobile: tighten everything ---- */
@media (max-width: 749px) {
  section.section--page-width {
    padding-block: clamp(40px, 12vw, 70px);
  }
  .button, .button-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* Stat blocks: gap between number columns (40+ / 500+ / 30+).
   Scoped ONLY to .number-block (the inline stat row), NOT to ancestor section
   wrappers — that broke 2-column "image right + text left" section layouts. */
.number-block {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(28px, 4vw, 56px);
  justify-content: flex-start;
  align-items: flex-start;
}
.num-txt {
  text-align: left;
  min-width: 100px;
}
.num-txt p {
  margin-top: 6px;
  white-space: nowrap;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-foreground, #5a5c59);
  font-weight: 500;
}
@media (max-width: 600px) {
  .number-block {
    gap: 24px;
  }
}

/* ============================================================
   FEATURE CARDS — readable on ANY parent scheme (was inheriting white)
   ============================================================ */

/* When cards are rendered as actual cards (white background) on dark sections,
   force explicit text colors so they don't inherit the dark scheme's white. */
.feature-item {
  background: #ffffff;
  border-radius: 8px;
  padding: 24px 28px;
  border: 1px solid #e6e6e6;
  margin-bottom: 12px;
  border-bottom: 1px solid #e6e6e6;  /* override the original underline-style border */
}
.feature-item:last-child {
  margin-bottom: 0;
  border-bottom: 1px solid #e6e6e6;
}

.feature-number {
  background: #e6f3ec;
  color: #00893e;
  font-weight: 700;
}

/* Force readable text on cards regardless of parent scheme */
.feature-content,
.feature-content * {
  color: #363835;
}
.feature-content h4 {
  color: #00893e !important;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0;
  margin: 0 0 6px;
}
.feature-content p {
  color: #5a5c59 !important;
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 0;
}

/* Same treatment for the homepage detail-box if it lands on a dark section */
.detail-box {
  background: #ffffff !important;
  color: #363835;
}
.detail-box strong {
  color: #00893e !important;
}
.detail-box p {
  color: #5a5c59 !important;
}

/* ============================================================
   BLOG INDEX CARDS — proper editorial treatment
   ============================================================ */

/* Card container */
.blog-post-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #e6e6e6;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s ease, border-color 0.2s ease;
  height: 100%;
}
.blog-post-card:hover {
  transform: translateY(-3px);
  border-color: var(--color-primary, #00893e);
}

/* Image */
.blog-post-card__image-container {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #fafafa;
}
.blog-post-card__image,
.blog-post-card__image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.blog-post-card:hover .blog-post-card__image,
.blog-post-card:hover .blog-post-card__image-container img {
  transform: scale(1.04);
}

/* Card body */
.blog-post-card__content,
.blog-post-card .text-block,
.blog-post-card > div:not(.blog-post-card__image-container) {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

/* Title — brand-green, becomes darker on hover */
.blog-post-card h3,
.blog-post-card h2,
.blog-post-card .blog-post-card__title {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: #00893e;
  margin: 0;
}
.blog-post-card a:hover h3,
.blog-post-card a:hover h2 { color: #006830; }

/* Summary clamp to 3 lines */
.blog-post-card .blog-post-card__excerpt,
.blog-post-card .summary,
.blog-post-card p {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #5a5c59;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Meta row (date, reading time) */
.blog-post-card__meta,
.blog-post-card .blog-post-card__date,
.blog-post-card time {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: #5a5c59;
  text-transform: none;
  margin: 0;
  font-weight: 500;
}

/* Tag chips at the bottom */
.blog-post-card .article-tags,
.blog-post-card .tags-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}
.blog-post-card .article-tags a,
.blog-post-card .tags-list a {
  display: inline-block;
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: #e6f3ec;
  color: #00893e;
  padding: 3px 9px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.15s ease;
}
.blog-post-card .article-tags a:hover { background: #00893e; color: #fff; }

/* Index grid spacing */
.blog-posts-list .resource-list,
.blog-posts__grid {
  gap: 32px;
}

/* Empty-state image fallback when post has no image */
.blog-post-card__image-container:empty {
  background: linear-gradient(135deg, #e6f3ec 0%, #ffffff 100%);
  position: relative;
}
.blog-post-card__image-container:empty::before {
  content: 'Soria Natural';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading--family);
  font-size: 1rem;
  letter-spacing: 0.06em;
  color: #00893e;
  opacity: 0.4;
  font-weight: 700;
}

/* ============================================================
   ARTICLE PAGE — typography for individual blog post
   ============================================================ */

article.article,
.article-template,
main:has(article) {
  font-family: var(--font-body--family);
}

article.article h1,
.article-template h1 {
  font-family: var(--font-heading--family);
  font-weight: 800;
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--color-foreground-heading, #363835);
  margin: 0 0 16px;
}

article.article h2,
.article-template h2,
article.article .rte h2 {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1.5rem;
  margin: 36px 0 12px;
  color: var(--color-foreground-heading, #363835);
}

article.article h3,
.article-template h3,
article.article .rte h3 {
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 1.25rem;
  margin: 28px 0 8px;
  color: var(--color-foreground-heading, #363835);
}

article.article p,
.article-template p,
article.article .rte p {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-foreground, #363835);
  margin: 0 0 16px;
  max-width: 70ch;
}

article.article ul,
article.article ol,
article.article .rte ul,
article.article .rte ol {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-foreground, #363835);
  padding-left: 1.5em;
  margin: 0 0 20px;
  max-width: 70ch;
}
article.article li,
article.article .rte li {
  margin-bottom: 6px;
}

article.article a,
article.article .rte a {
  color: #00893e;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.15s;
}
article.article a:hover,
article.article .rte a:hover {
  color: #006830;
}

article.article blockquote,
article.article .rte blockquote {
  border-left: 4px solid #00893e;
  padding: 8px 0 8px 24px;
  margin: 24px 0;
  font-style: italic;
  color: #5a5c59;
  font-size: 1.125rem;
}

article.article img,
article.article .rte img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 20px 0;
}

/* Article meta (date, author, reading time) */
.article-meta,
.article__date,
article.article header time {
  font-family: var(--font-body--family);
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  color: #5a5c59;
  font-weight: 500;
  text-transform: none;
}

/* ============================================================
   GAIA-STYLE FILTER SIDEBAR (Soria Natural collection pages)
   Targets Horizon's facet block with vertical layout.
   ============================================================ */

/* Container */
.facets--vertical {
  --facets-spacing: 22px;
  background: #ffffff;
  border-right: 1px solid rgba(54,56,53,0.08);
  padding: 24px 24px 32px !important;
}

/* "Filters" main heading at top of sidebar */
.facets--filters-title {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1.375rem;
  color: #363835;
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(54,56,53,0.12);
  letter-spacing: -0.005em;
}

/* Each filter group (Benefit / Form / Price ...) */
.facets--vertical .facets__item {
  border-bottom: 1px solid rgba(54,56,53,0.08);
  padding: 0;
  margin: 0;
}

.facets--vertical .facets__panel {
  padding: 18px 0;
}

.facets--vertical .facets__summary {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 4px 0;
  list-style: none;
}

.facets--vertical .facets__summary::-webkit-details-marker {
  display: none;
}

.facets--vertical .facets__label {
  font-family: var(--font-heading--family);
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  color: #363835 !important;
  font-style: normal;
}

/* Chevron rotation (existing Horizon SVGs) */
.facets--vertical details[open] > summary svg.icon-caret,
.facets--vertical details[open] > summary svg[class*="caret"] {
  transform: rotate(180deg);
  transition: transform .2s ease;
}
.facets--vertical details > summary svg.icon-caret,
.facets--vertical details > summary svg[class*="caret"] {
  transition: transform .2s ease;
}

/* List of values (checkboxes) */
.facets--vertical .facets__list {
  list-style: none;
  padding: 8px 0 4px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.facets--vertical .facets__list-item,
.facets--vertical .facets__item-list-item {
  padding: 0;
  margin: 0;
}

/* Checkbox row */
.facets--vertical label.facet-checkbox,
.facets--vertical .facet-checkbox-label,
.facets--vertical .facets__list label {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  padding: 6px 0;
  cursor: pointer;
  font-family: var(--font-body--family);
  font-size: 0.9375rem;
  color: #363835;
  line-height: 1.4;
  font-weight: 400;
  transition: color .12s ease;
}
.facets--vertical label:hover { color: #00893e; }

/* Checkbox visual */
.facets--vertical input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 1.5px solid rgba(54,56,53,0.35);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: all .15s ease;
  margin: 0;
  flex-shrink: 0;
}
.facets--vertical input[type="checkbox"]:hover {
  border-color: #00893e;
}
.facets--vertical input[type="checkbox"]:checked {
  background: #00893e;
  border-color: #00893e;
}
.facets--vertical input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 4px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.facets--vertical input[type="checkbox"]:focus-visible {
  outline: 2px solid #00893e;
  outline-offset: 2px;
}

/* "Show more" link */
.facets--vertical .facets__show-more,
.facets--vertical button.facets__show-more {
  font-family: var(--font-body--family);
  font-size: 0.875rem;
  color: #00893e;
  background: none;
  border: none;
  padding: 8px 0 0;
  cursor: pointer;
  text-decoration: underline;
}

/* Active count badge */
.facets--vertical .facets__status,
.facets--vertical .facets__bubble {
  background: #00893e;
  color: #fff;
  font-size: 0.75rem;
  border-radius: 999px;
  padding: 2px 8px;
  font-weight: 600;
  min-width: 20px;
  text-align: center;
  line-height: 1.4;
}

/* Price range filter */
.facets--vertical .price-filter,
.facets--vertical .facets__price {
  padding: 12px 0 4px;
}
.facets--vertical input[type="number"],
.facets--vertical input.price-filter__input {
  border: 1px solid rgba(54,56,53,0.2);
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 0.875rem;
  width: 100%;
  background: #fff;
}
.facets--vertical input[type="number"]:focus {
  outline: none;
  border-color: #00893e;
  box-shadow: 0 0 0 3px rgba(0,137,62,0.15);
}

/* Active filter chips at top (filter-remove-buttons) */
.facets__active-values,
.filter-remove-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 18px;
}
.facets__active-value-button,
.filter-remove-buttons a,
.filter-remove-buttons button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0,137,62,0.08);
  color: #006830;
  border: 1px solid rgba(0,137,62,0.25);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.8125rem;
  font-family: var(--font-body--family);
  cursor: pointer;
  text-decoration: none;
  transition: all .12s ease;
}
.facets__active-value-button:hover,
.filter-remove-buttons a:hover {
  background: #00893e;
  color: #fff;
  border-color: #00893e;
}

/* Clear-all link */
.facets__clear-all,
.facets__clear,
a[data-clear-all] {
  font-family: var(--font-body--family);
  font-size: 0.8125rem;
  color: #5a5c59;
  text-decoration: underline;
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
}
.facets__clear-all:hover,
.facets__clear:hover { color: #00893e; }

/* Mobile: filters open in drawer */
@media (max-width: 749px) {
  .facets--vertical {
    border-right: none;
    padding: 16px !important;
  }
}

/* Hide redundant section heading "Filtri" on horizontal toolbar (vertical layout uses sidebar heading instead) */
.facets--horizontal .facets--filters-title {
  display: none;
}


/* ============================================================
   COLLECTION PAGE BRAND POLISH (P0 + P1)
   - DODAJ pill button on product cards
   - Editorial hero typography
   - Brand chevrons in filter accordions
   - SVG category icons next to Korist values
   ============================================================ */

/* Quick-add disabled at the theme-settings level (settings.quick_add = false).
   Best-practice for supplements: card click → PDP, where dosage / ingredients
   / contraindications are shown before add-to-cart.
   No CSS overlay needed. */

/* Hide quick-add wrapper if it ever renders (defensive, in case a setting flips back on) */
.product-grid__item quick-add-component,
.card-gallery quick-add-component {
  display: none !important;
}

/* Make the entire card hover effect more pleasant since the whole card is now the CTA */
.product-grid__item .card-gallery {
  transition: transform .25s ease;
}
.product-grid__item:hover .card-gallery {
  transform: translateY(-3px);
}
.product-grid__item:hover img {
  transform: scale(1.02);
  transition: transform .35s ease;
}

/* P0 - Editorial hero on collection page
   Scoped to the actual collection-heading section (not announcement bar etc).
   Horizon's static collection heading lives inside `.template-collection main > .section` */

/* Headings inside main only (excludes header-group and footer-group sections) */
.template-collection main .section h1 {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.05;
  color: #363835;
  margin: 0 0 12px;
}

/* P1 - Brand chevrons on filter accordion summaries */
.facets--vertical .facets__summary::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-left: auto;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23363835' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 6 8 10 12 6'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
  transition: transform .2s ease;
}

.facets--vertical details[open] > .facets__summary::after {
  transform: rotate(180deg);
}

/* Hide the existing default +/- icon if any */
.facets--vertical .facets__summary svg.facets__icon,
.facets--vertical .facets__summary .facets__plus-icon,
.facets--vertical .facets__summary .facets__minus-icon {
  display: none !important;
}

/* P1 reverted - SVG category icons removed (visual noise, inconsistent shapes).
   Filters are clean text-only now. Counts come from Search & Discovery. */

/* P2 - More grid padding */
.template-collection .product-grid-container,
.template-collection .results-list,
.template-collection results-list {
  padding-left: clamp(8px, 1vw, 16px);
}


/* ============================================================
   FILTER POLISH (best-practice cleanup)
   - Hide redundant "+" icon in summary headers (chevron is enough)
   - Bigger, more visible checkboxes
   - Active state more obvious
   ============================================================ */

/* Hide existing facet plus/minus/expand icons (chevron from earlier rule covers it) */
.facets--vertical .facets__summary svg:not(.icon-checkmark),
.facets--vertical .facets__summary .facets__expand-icon,
.facets--vertical .facets__summary .icon-plus,
.facets--vertical .facets__summary .icon-minus {
  display: none !important;
}

/* Make sure label has room for chevron-only marker */
.facets--vertical .facets__summary {
  padding-block: 14px;
}

/* Bigger Horizon checkmark visual (Horizon uses .icon-checkmark inside .checkbox__label) */
.facets--vertical .checkbox .icon-checkmark {
  width: 20px !important;
  height: 20px !important;
  border-width: 1.5px !important;
  border-radius: 5px !important;
}

/* Active/checked state: filled brand green */
.facets--vertical .checkbox__input:checked + .checkbox__label .icon-checkmark {
  background-color: #00893e !important;
  border-color: #00893e !important;
}

/* Hover state: green border preview */
.facets--vertical .checkbox:hover .icon-checkmark {
  border-color: #00893e !important;
}

/* Bolder label when checked */
.facets--vertical .checkbox__input:checked + .checkbox__label .checkbox__label-text {
  color: #006830;
  font-weight: 600;
}

/* Generous spacing between filter rows */
.facets--vertical .facets__list {
  gap: 12px !important;
}

.facets--vertical .checkbox__label-text {
  padding-inline-start: 12px !important;
  font-size: 0.9375rem;
  line-height: 1.4;
}

/* ============================================================
   PDP Ingredient table — brand styling for the auto-generated tables
   ============================================================ */
.ingredient-context {
  font-family: var(--font-body--family);
  color: #5a5c59;
  font-size: 0.9375rem;
  margin: 0 0 12px;
}
.ingredient-context strong {
  color: #363835;
  font-weight: 600;
}

.ingredient-data-table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 16px;
  font-family: var(--font-body--family);
  font-size: 0.9375rem;
}
.ingredient-data-table thead th {
  background: #f7f8f5;
  color: #363835;
  font-family: var(--font-heading--family);
  font-weight: 700;
  text-align: left;
  padding: 12px 14px;
  border-bottom: 2px solid #00893e;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ingredient-data-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(54,56,53,0.08);
  color: #363835;
  vertical-align: top;
  line-height: 1.45;
}
.ingredient-data-table tbody tr:last-child td {
  border-bottom: none;
}
.ingredient-data-table tbody tr:hover td {
  background: rgba(0,137,62,0.02);
}
.ingredient-data-table td:nth-child(2),
.ingredient-data-table td:nth-child(3) {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  color: #006830;
}
.ingredient-data-table em {
  font-style: italic;
  color: #5a5c59;
  font-weight: normal;
}

.ingredient-pdv-note {
  margin: 4px 0 16px;
  color: #8a8c89;
  font-size: 0.8125rem;
  font-style: italic;
}

.ingredient-others {
  color: #5a5c59;
  font-size: 0.875rem;
  line-height: 1.5;
  margin: 12px 0 0;
  padding: 12px 16px;
  background: #f7f8f5;
  border-left: 3px solid rgba(0,137,62,0.4);
  border-radius: 0 6px 6px 0;
}
.ingredient-others strong {
  color: #363835;
}

/* Fallback bullet list for low-confidence parses */
.ingredient-list {
  list-style: none;
  margin: 8px 0 16px;
  padding: 0;
}
.ingredient-list li {
  padding: 10px 0 10px 18px;
  border-bottom: 1px solid rgba(54,56,53,0.06);
  color: #363835;
  font-family: var(--font-body--family);
  font-size: 0.9375rem;
  line-height: 1.45;
  position: relative;
}
.ingredient-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  width: 6px;
  height: 6px;
  background: #00893e;
  border-radius: 50%;
}
.ingredient-list li:last-child {
  border-bottom: none;
}
.ingredient-list strong {
  color: #006830;
  font-weight: 600;
}
.ingredient-list em {
  font-style: italic;
  color: #5a5c59;
}

/* Mobile */
@media (max-width: 749px) {
  .ingredient-data-table thead {
    font-size: 0.75rem;
  }
  .ingredient-data-table tbody td {
    padding: 10px 8px;
    font-size: 0.875rem;
  }
}

/* ============================================================
   HEALTH CONCERN DETAIL PAGE
   ============================================================ */
.sn-hc { padding: 32px 0 60px; }
.sn-hc__inner { max-width: 1180px; margin: 0 auto; }
.sn-hc__breadcrumb {
  font-family: var(--font-paragraph--family);
  font-size: 0.8125rem;
  color: #5a5c59;
  margin-bottom: 24px;
}
.sn-hc__breadcrumb a {
  color: #00893e;
  text-decoration: none;
}
.sn-hc__breadcrumb a:hover { text-decoration: underline; }
.sn-hc__breadcrumb span[aria-hidden] {
  margin: 0 8px;
  color: #b8b8b3;
}

.sn-hc__header { margin-bottom: 36px; max-width: 760px; }
.sn-hc__eyebrow {
  display: inline-block;
  background: #f3f9f4;
  color: #006830;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 99px;
  margin-bottom: 14px;
}
.sn-hc__h1 {
  font-family: var(--font-heading--family);
  font-size: 2.5rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 14px;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.sn-hc__lead {
  font-family: var(--font-paragraph--family);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #363835;
  margin: 0;
}

.sn-hc__layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  align-items: start;
}
.sn-hc__content { min-width: 0; }
.sn-hc__sidebar { position: sticky; top: 100px; }

.sn-hc__section { margin-bottom: 40px; }
.sn-hc__h2 {
  font-family: var(--font-heading--family);
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 18px;
  letter-spacing: -0.01em;
}
.sn-hc__copy {
  font-family: var(--font-paragraph--family);
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #363835;
}
.sn-hc__copy p { margin: 0 0 12px; }

.sn-hc__products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.sn-hc__product {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(54,56,53,0.10);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.sn-hc__product:hover {
  border-color: rgba(0,137,62,0.30);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0,137,62,0.10);
}
.sn-hc__product-img {
  aspect-ratio: 1 / 1;
  background: #fff;
  padding: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sn-hc__product-img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sn-hc__product-body {
  padding: 14px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sn-hc__product-title {
  font-family: var(--font-heading--family);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0;
  line-height: 1.3;
}
.sn-hc__product-desc {
  font-size: 0.75rem;
  color: #5a5c59;
  margin: 0;
  line-height: 1.4;
}
.sn-hc__product-price {
  font-weight: 700;
  color: #00893e;
  font-size: 0.9375rem;
}
.sn-hc__product-cta {
  font-size: 0.75rem;
  color: #006830;
}

.sn-hc__faq-item {
  background: #fff;
  border: 1px solid rgba(54,56,53,0.10);
  border-radius: 10px;
  margin-bottom: 10px;
  overflow: hidden;
}
.sn-hc__faq-item summary {
  padding: 14px 18px;
  cursor: pointer;
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 0.9375rem;
  color: #1f2620;
  list-style: none;
  position: relative;
  padding-right: 40px;
}
.sn-hc__faq-item summary::-webkit-details-marker { display: none; }
.sn-hc__faq-item summary::after {
  content: '+';
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.25rem;
  color: #00893e;
  font-weight: 400;
  transition: transform 0.18s ease;
}
.sn-hc__faq-item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.sn-hc__faq-item > div {
  padding: 0 18px 16px;
  font-family: var(--font-paragraph--family);
  font-size: 0.875rem;
  color: #5a5c59;
  line-height: 1.6;
}

.sn-hc__cta-card {
  background: linear-gradient(135deg, #f3f9f4 0%, #e8f3ea 100%);
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 14px;
  padding: 22px;
  margin-bottom: 20px;
}
.sn-hc__cta-card h3 {
  font-family: var(--font-heading--family);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 8px;
}
.sn-hc__cta-card p {
  font-size: 0.8125rem;
  color: #5a5c59;
  margin: 0 0 14px;
  line-height: 1.5;
}
.sn-hc__cta {
  display: inline-block;
  background: #00893e;
  color: #fff;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 10px 18px;
  border-radius: 99px;
  text-decoration: none;
}
.sn-hc__cta:hover { background: #006830; }

.sn-hc__related {
  background: #fafdfa;
  border: 1px solid rgba(0,137,62,0.14);
  border-radius: 14px;
  padding: 20px 22px;
}
.sn-hc__related h3 {
  font-family: var(--font-heading--family);
  font-size: 1rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 12px;
}
.sn-hc__related ul {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sn-hc__related a {
  color: #006830;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
}
.sn-hc__related a:hover { text-decoration: underline; }
.sn-hc__related-all {
  display: inline-block;
  color: #00893e;
  font-weight: 700;
  font-size: 0.8125rem;
  text-decoration: none;
  padding-top: 8px;
  border-top: 1px solid rgba(0,137,62,0.14);
  width: 100%;
}

@media (max-width: 900px) {
  .sn-hc__h1 { font-size: 1.875rem; }
  .sn-hc__layout { grid-template-columns: 1fr; }
  .sn-hc__sidebar { position: static; }
}

/* ============================================================
   BODY DIAGRAM — "Iskanje po težavah"
   v2: anatomy hero + SVG hotspots + pathology colors + Montserrat
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

.sn-body {
  padding: 48px 0 64px;
  background: #fafaf8;
  font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  color: #363835;
}
.sn-body__inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.sn-body__header { text-align: center; margin: 0 auto 24px; max-width: 720px; }
.sn-body__breadcrumb {
  font-size: 0.75rem;
  color: #6b6e6a;
  margin-bottom: 18px;
  letter-spacing: 0.01em;
}
.sn-body__breadcrumb a {
  color: #00893e;
  text-decoration: none;
  font-weight: 500;
}
.sn-body__breadcrumb a:hover { text-decoration: underline; }
.sn-body__breadcrumb span[aria-hidden] { margin: 0 7px; color: #b8b8b3; }
.sn-body__h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: 2.125rem;
  font-weight: 700;
  color: #363835;
  margin: 0 0 12px;
  letter-spacing: -0.018em;
  line-height: 1.15;
}
.sn-body__sub {
  font-size: 1rem;
  color: #6b6e6a;
  margin: 0;
  line-height: 1.55;
  font-weight: 400;
}

.sn-body__searchbar {
  position: relative;
  max-width: 560px;
  margin: 0 auto 32px;
}
.sn-body__searchbar-icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: #00893e;
  pointer-events: none;
}
.sn-body__search {
  width: 100%;
  padding: 14px 18px 14px 48px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9375rem;
  font-weight: 400;
  background: #fff;
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 10px;
  color: #363835;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.sn-body__search:focus {
  border-color: #00893e;
  box-shadow: 0 0 0 4px rgba(0,137,62,0.10);
}

.sn-body__layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: start;
}
.sn-body__diagram-col {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sn-body__gender {
  display: inline-flex;
  align-self: center;
  padding: 3px;
  background: #ececea;
  border-radius: 99px;
  gap: 2px;
}
.sn-body__gender-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: transparent;
  border: none;
  border-radius: 99px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b6e6a;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.sn-body__gender-btn:hover { color: #363835; }
.sn-body__gender-btn.is-active {
  background: #fff;
  color: #00893e;
  box-shadow: 0 1px 3px rgba(54,56,53,0.10);
}

.sn-body__figure-wrap {
  position: relative;
  background: #fff;
  border: 1px solid #ececea;
  border-radius: 14px;
  padding: 12px;
  overflow: hidden;
  aspect-ratio: 5 / 7;
}
.sn-body__figure-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.sn-body__figure-img[hidden] {
  display: none !important;
}
.sn-body__figure-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sn-body__figure-placeholder svg {
  width: 70%;
  height: auto;
  max-height: 100%;
}
.sn-body__hotspots {
  position: absolute;
  inset: 12px;
  width: calc(100% - 24px);
  height: calc(100% - 24px);
  pointer-events: none;
}
.sn-body__hot {
  --sys: #00893e;
  fill: rgba(0, 137, 62, 0);
  stroke: rgba(0, 137, 62, 0);
  stroke-width: 0.6;
  cursor: pointer;
  pointer-events: auto;
  transition: fill 0.18s ease, stroke 0.18s ease;
}
.sn-body__hot:hover {
  fill: color-mix(in srgb, var(--sys) 20%, transparent);
  stroke: color-mix(in srgb, var(--sys) 70%, transparent);
}
.sn-body__hot:focus {
  outline: none;
  fill: color-mix(in srgb, var(--sys) 22%, transparent);
  stroke: var(--sys);
}
.sn-body__hot.is-active {
  fill: color-mix(in srgb, var(--sys) 30%, transparent);
  stroke: var(--sys);
  stroke-width: 0.9;
}
.sn-body__hot--skin { fill-rule: evenodd; }

.sn-body__hotspots--debug .sn-body__hot {
  fill: color-mix(in srgb, var(--sys) 28%, transparent);
  stroke: var(--sys);
  stroke-width: 0.5;
}

.sn-body__active-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: center;
  padding: 7px 12px 7px 10px;
  background: #fff;
  border: 1px solid #ececea;
  border-radius: 99px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #363835;
}
.sn-body__active-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #cfd0cc;
  transition: background 0.18s ease;
}
.sn-body__active-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  background: rgba(54,56,53,0.06);
  border: none;
  border-radius: 50%;
  color: #6b6e6a;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.sn-body__active-clear:hover { background: rgba(54,56,53,0.12); color: #363835; }

.sn-body__chips-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #6b6e6a;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 4px;
  text-align: center;
}
.sn-body__chips {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
}
.sn-body__chip {
  --sys: #00893E;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  background: #fff;
  border: 1px solid #ececea;
  border-radius: 8px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  color: #363835;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  line-height: 1.25;
}
.sn-body__chip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sys);
  flex-shrink: 0;
}
.sn-body__chip:hover {
  border-color: var(--sys);
  background: #fafaf8;
}
.sn-body__chip.is-active {
  background: var(--sys);
  border-color: var(--sys);
  color: #fff;
  font-weight: 600;
}
.sn-body__chip.is-active .sn-body__chip-dot { background: rgba(255,255,255,0.85); }

.sn-body__problems-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding: 0 2px;
}
.sn-body__count {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b6e6a;
}
.sn-body__reset-text {
  background: transparent;
  border: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #00893e;
  cursor: pointer;
  padding: 4px 8px;
}
.sn-body__reset-text:hover { text-decoration: underline; }

.sn-body__problems {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.sn-body__card {
  --sys: #00893E;
  display: flex;
  flex-direction: column;
  padding: 14px 14px 13px;
  background: #fff;
  border: 1px solid #ececea;
  border-left: 3px solid var(--sys);
  border-radius: 10px;
  text-decoration: none;
  color: #363835;
  font-family: 'Montserrat', sans-serif;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.sn-body__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(54,56,53,0.08);
  border-top-color: var(--sys);
  border-right-color: var(--sys);
  border-bottom-color: var(--sys);
}
.sn-body__card-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--sys);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 7px;
}
.sn-body__card-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sys);
}
.sn-body__card-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #363835;
  letter-spacing: -0.005em;
  margin-bottom: 5px;
  line-height: 1.3;
}
.sn-body__card-desc {
  font-size: 0.8125rem;
  color: #6b6e6a;
  line-height: 1.5;
  font-weight: 400;
  margin-bottom: 10px;
  flex: 1;
}
.sn-body__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #00893e;
}
.sn-body__empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 48px 24px;
  background: #fff;
  border: 1px dashed rgba(0,137,62,0.20);
  border-radius: 10px;
  color: #6b6e6a;
  font-size: 0.9375rem;
}

@media (min-width: 1100px) {
  .sn-body__problems { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .sn-body { padding: 32px 0 48px; }
  .sn-body__h1 { font-size: 1.625rem; }
  .sn-body__layout { grid-template-columns: 1fr; gap: 24px; }
  .sn-body__diagram-col { position: static; }
  .sn-body__figure-wrap { max-width: 280px; margin: 0 auto; }
  .sn-body__problems { grid-template-columns: 1fr; }
  .sn-body__chips { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   QUIZ — "Poiščite svojo formulo"
   ============================================================ */
.sn-quiz {
  background: #fafdfa;
  border-radius: 0;
  padding-top: 40px;
  padding-bottom: 60px;
  min-height: 80vh;
}
.sn-quiz__inner {
  max-width: 880px;
  margin: 0 auto;
  position: relative;
}

/* Progress bar */
.sn-quiz__progress {
  height: 4px;
  background: rgba(0,137,62,0.10);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 32px;
}
.sn-quiz__bar {
  height: 100%;
  background: linear-gradient(90deg, #00893e 0%, #006830 100%);
  border-radius: 99px;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Step show/hide */
.sn-quiz__step {
  display: none;
  animation: snQuizFadeIn 0.35s ease-out;
}
.sn-quiz__step.is-active {
  display: block;
}
@keyframes snQuizFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Intro */
.sn-quiz__intro {
  text-align: center;
  padding: 40px 20px 20px;
}
.sn-quiz__eyebrow {
  display: inline-block;
  font-family: var(--font-paragraph--family);
  font-size: 0.8125rem;
  font-weight: 600;
  color: #00893e;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.sn-quiz__h1 {
  font-family: var(--font-heading--family);
  font-size: 2.5rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 16px;
  letter-spacing: -0.015em;
  line-height: 1.1;
}
.sn-quiz__lead {
  font-family: var(--font-paragraph--family);
  font-size: 1.0625rem;
  color: #5a5c59;
  line-height: 1.55;
  max-width: 540px;
  margin: 0 auto 32px;
}
.sn-quiz__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  background: #00893e;
  color: #fff;
  font-family: var(--font-paragraph--family);
  font-size: 1rem;
  font-weight: 700;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.sn-quiz__cta:hover {
  background: #006830;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,137,62,0.20);
}
.sn-quiz__note {
  margin-top: 20px;
  font-size: 0.8125rem;
  color: #8a8c89;
  font-style: italic;
}

/* Question heading */
.sn-quiz__heading {
  text-align: center;
  margin-bottom: 28px;
}
.sn-quiz__step-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #00893e;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.sn-quiz__h2 {
  font-family: var(--font-heading--family);
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.sn-quiz__sub {
  font-family: var(--font-paragraph--family);
  font-size: 0.9375rem;
  color: #5a5c59;
  margin: 0;
}

/* Options grid — primary concern (4 cols on desktop, dense) */
.sn-quiz__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.sn-quiz__grid--3 { grid-template-columns: repeat(3, 1fr); }
.sn-quiz__grid--4 { grid-template-columns: repeat(4, 1fr); }

.sn-quiz__opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 20px 12px;
  background: #fff;
  border: 1.5px solid rgba(54,56,53,0.10);
  border-radius: 14px;
  cursor: pointer;
  font-family: var(--font-paragraph--family);
  font-size: 0.875rem;
  font-weight: 600;
  color: #1f2620;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  appearance: none;
  line-height: 1.3;
}
.sn-quiz__opt:hover {
  border-color: #00893e;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,137,62,0.10);
}
.sn-quiz__opt-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, #f3f9f4 0%, #e8f3ea 100%);
  color: #00893e;
  border-radius: 50%;
  margin-bottom: 4px;
}

/* Card-style options (duration, format, age) */
.sn-quiz__opt--card {
  align-items: flex-start;
  text-align: left;
  padding: 20px 22px;
  font-size: 0.9375rem;
}
.sn-quiz__opt--card strong {
  font-family: var(--font-heading--family);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1f2620;
  display: block;
  margin-bottom: 6px;
}
.sn-quiz__opt--card span {
  font-size: 0.8125rem;
  font-weight: 400;
  color: #5a5c59;
  line-height: 1.45;
}

/* Result step */
.sn-quiz__results {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}
.sn-quiz__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(54,56,53,0.10);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
  text-decoration: none;
  color: inherit;
}
.sn-quiz__card:hover {
  border-color: rgba(0,137,62,0.30);
  box-shadow: 0 14px 32px rgba(0,137,62,0.10);
  transform: translateY(-2px);
}
.sn-quiz__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #00893e;
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 99px;
  z-index: 1;
}
.sn-quiz__card-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  box-sizing: border-box;
}
.sn-quiz__card-img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.sn-quiz__card-body {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sn-quiz__card-title {
  font-family: var(--font-heading--family);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0;
  line-height: 1.3;
}
.sn-quiz__card-price {
  font-weight: 700;
  color: #00893e;
  font-size: 1rem;
}
.sn-quiz__card-link {
  font-size: 0.8125rem;
  color: #006830;
  margin-top: 4px;
}

.sn-quiz__cta-row {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.sn-quiz__restart,
.sn-quiz__browse {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  background: transparent;
  border: 1.5px solid #00893e;
  color: #00893e;
  font-family: var(--font-paragraph--family);
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 99px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.18s ease, color 0.18s ease;
}
.sn-quiz__restart:hover,
.sn-quiz__browse:hover {
  background: #00893e;
  color: #fff;
}

.sn-quiz__empty {
  text-align: center;
  padding: 40px 20px;
  background: #fff;
  border: 1px dashed rgba(54,56,53,0.15);
  border-radius: 14px;
  color: #5a5c59;
}
.sn-quiz__empty a {
  color: #00893e;
  font-weight: 700;
}

@media (max-width: 749px) {
  .sn-quiz { padding-top: 24px; padding-bottom: 40px; }
  .sn-quiz__h1 { font-size: 1.875rem; }
  .sn-quiz__lead { font-size: 0.9375rem; }
  .sn-quiz__h2 { font-size: 1.375rem; }
  .sn-quiz__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sn-quiz__grid--3 { grid-template-columns: 1fr; }
  .sn-quiz__grid--4 { grid-template-columns: 1fr 1fr; }
  .sn-quiz__opt { padding: 14px 8px; font-size: 0.8125rem; }
  .sn-quiz__opt-icon { width: 36px; height: 36px; }
  .sn-quiz__opt-icon svg { width: 18px; height: 18px; }
  .sn-quiz__opt--card { padding: 16px 16px; }
  .sn-quiz__opt--card strong { font-size: 0.9375rem; }
  .sn-quiz__results { grid-template-columns: 1fr; gap: 12px; }
}

/* ============================================================
   KLAVIYO REVIEWS — hero star rating + full reviews section
   ============================================================ */
.sn-klaviyo-rating {
  margin: 6px 0 4px 0;
  min-height: 18px; /* reserve space so layout doesn't jump when widget loads */
}
.sn-klaviyo-rating .klaviyo-onsite-reviews-stars {
  display: inline-flex;
  align-items: center;
}

.sn-klaviyo-reviews-section {
  margin-top: 40px;
}
.sn-klaviyo-reviews__header {
  text-align: center;
  margin-bottom: 24px;
}
.sn-klaviyo-reviews__title {
  font-family: var(--font-heading--family);
  font-size: 1.875rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.sn-klaviyo-reviews__sub {
  font-family: var(--font-paragraph--family);
  font-size: 0.9375rem;
  color: #5a5c59;
  margin: 0;
}
.sn-klaviyo-reviews-section .klaviyo-onsite-reviews-widget {
  max-width: 980px;
  margin: 0 auto;
}

@media (max-width: 749px) {
  .sn-klaviyo-reviews__title { font-size: 1.5rem; }
  .sn-klaviyo-reviews__sub { font-size: 0.875rem; }
}

/* ============================================================
   PDP — PACK SAVINGS SELECTOR (1×/2×/3× tiered)
   ============================================================ */

/* Hide the standard quantity widget on PDPs — pack selector controls qty now.
   The underlying <input> stays in the DOM (visually-hidden, not display:none)
   so the pack selector's JS can still update its value and Horizon's reactive
   state continues to work. Horizon uses <quantity-selector-component>. */
.product-information quantity-selector-component,
.product-information .quantity-selector,
.product-information quantity-input,
.product-information .quantity-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}

.sn-pack {
  margin: 18px 0;
}
.sn-pack__heading {
  font-family: var(--font-heading--family);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1f2620;
  margin-bottom: 10px;
}
.sn-pack__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.sn-pack__opt {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 8px 14px;
  background: #fff;
  border: 2px solid #e8e8e3;
  border-radius: 12px;
  cursor: pointer;
  font-family: var(--font-paragraph--family);
  color: #363835;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
  appearance: none;
  font-size: 14px;
  box-shadow: none;
}
.sn-pack__opt:hover {
  border-color: rgba(0,137,62,0.40);
}
.sn-pack__opt.is-active {
  border-color: #00893e;
  box-shadow: 0 0 0 1px rgba(0,137,62,0.18);
}
.sn-pack__badge {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 99px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  line-height: 1;
}
.sn-pack__badge--ghost { background: transparent; padding: 0; }
.sn-pack__badge--rec { background: #00893e; color: #fff; }
.sn-pack__badge--best { background: #006830; color: #fff; }
.sn-pack__qty {
  font-weight: 700;
  font-size: 0.9375rem;
  color: #1f2620;
  margin-bottom: 4px;
}
.sn-pack__save {
  font-size: 0.75rem;
  font-weight: 700;
  color: #00893e;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}
.sn-pack__price {
  font-weight: 700;
  font-size: 0.9375rem;
  color: #1f2620;
  margin-top: 2px;
}
.sn-pack__per {
  font-size: 0.75rem;
  color: #888880;
  margin-top: 2px;
}
.sn-pack__note {
  font-family: var(--font-paragraph--family);
  font-size: 0.8125rem;
  color: #5a5c59;
  margin: 10px 0 0 0;
  font-style: italic;
}

@media (max-width: 480px) {
  .sn-pack__opt { padding: 22px 4px 12px; font-size: 13px; }
  .sn-pack__badge { font-size: 9px; padding: 2px 7px; }
  .sn-pack__qty { font-size: 0.875rem; }
  .sn-pack__save { font-size: 0.6875rem; }
  .sn-pack__price { font-size: 0.875rem; }
  .sn-pack__per { font-size: 0.6875rem; }
}

/* ============================================================
   PDP — MONEY-BACK GUARANTEE BADGE
   ============================================================ */
.sn-guarantee {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin: 14px 0;
  background: #f9fbf9;
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 10px;
}
.sn-guarantee__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #00893e;
  color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
}
.sn-guarantee__body { flex: 1; min-width: 0; }
.sn-guarantee__title {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 0.875rem;
  color: #1f2620;
  margin-bottom: 2px;
  line-height: 1.2;
}
.sn-guarantee__sub {
  font-family: var(--font-paragraph--family);
  font-size: 0.75rem;
  color: #5a5c59;
  line-height: 1.35;
}

/* ============================================================
   PDP — BENEFIT CHIPS (Opositiv-inspired, Soria-brand)
   Renders a small icon-chip row of 3-4 product benefits.
   ============================================================ */
.sn-benefit-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 18px 0;
  padding: 0;
}
.sn-benefit-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px 10px 12px;
  background: linear-gradient(135deg, #f3f9f4 0%, #e8f3ea 100%);
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 999px;
  color: #006830;
  font-family: var(--font-paragraph--family);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.sn-benefit-chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,137,62,0.12);
}
.sn-benefit-chip__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #00893e;
  color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
}
.sn-benefit-chip__icon svg {
  width: 16px;
  height: 16px;
}
.sn-benefit-chip__label { white-space: nowrap; }

@media (max-width: 749px) {
  .sn-benefit-chips { gap: 8px; }
  .sn-benefit-chip { padding: 8px 14px 8px 8px; font-size: 0.8125rem; }
  .sn-benefit-chip__icon { width: 26px; height: 26px; }
  .sn-benefit-chip__icon svg { width: 14px; height: 14px; }
}

/* ============================================================
   PDP — "Za koga je primerno?" CHECKLIST
   Use-case identification block, brand-green checks.
   ============================================================ */
.sn-foryou {
  margin: 18px 0 8px 0;
  padding: 20px 22px;
  background: #fafdfa;
  border: 1px solid rgba(0,137,62,0.14);
  border-radius: 14px;
}
.sn-foryou__title {
  font-family: var(--font-heading--family);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 4px;
  letter-spacing: -0.005em;
}
.sn-foryou__sub {
  font-family: var(--font-paragraph--family);
  font-size: 0.8125rem;
  color: #5a5c59;
  margin: 0 0 14px;
  line-height: 1.45;
}
.sn-foryou__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sn-foryou__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--font-paragraph--family);
  font-size: 0.875rem;
  line-height: 1.4;
  color: #363835;
}
.sn-foryou__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  background: #00893e;
  color: #fff;
  border-radius: 50%;
  margin-top: 0;
}
.sn-foryou__check svg { width: 14px; height: 14px; }
.sn-foryou__text { padding-top: 1px; }

@media (max-width: 749px) {
  .sn-foryou { padding: 18px 16px; margin: 18px 0 8px; }
  .sn-foryou__title { font-size: 1rem; }
}

/* ============================================================
   PDP — INGREDIENT DEEP-DIVE CARDS
   Hero ingredient cards under the Sestavine table.
   ============================================================ */
.sn-ingredient-deepdive {
  margin: 40px 0 8px;
  padding-top: 32px;
  border-top: 1px solid rgba(54,56,53,0.08);
  grid-column: 1 / -1;
}
.sn-ingredient-deepdive__header {
  margin: 0 0 24px;
}
.sn-ingredient-deepdive__title {
  font-family: var(--font-heading--family);
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2620;
  margin: 0 0 4px;
  letter-spacing: -0.005em;
}
.sn-ingredient-deepdive__sub {
  font-family: var(--font-accent--family, var(--font-paragraph--family));
  font-size: 0.875rem;
  font-style: italic;
  color: #00893e;
  margin: 0;
  letter-spacing: 0.01em;
}
.sn-ingredient-deepdive__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.sn-ingredient-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(54,56,53,0.10);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.sn-ingredient-card:hover {
  border-color: rgba(0,137,62,0.30);
  box-shadow: 0 10px 28px rgba(0,137,62,0.08);
  transform: translateY(-2px);
}
.sn-ingredient-card__img {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f7faf6;
}
.sn-ingredient-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sn-ingredient-card__body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sn-ingredient-card__name {
  font-family: var(--font-heading--family);
  font-size: 1.1875rem;
  font-weight: 700;
  color: #006830;
  margin: 0;
  letter-spacing: -0.005em;
}
.sn-ingredient-card__use {
  font-family: var(--font-paragraph--family);
  font-size: 0.875rem;
  color: #363835;
  margin: 0;
  line-height: 1.5;
}
.sn-ingredient-card__label {
  display: block;
  font-weight: 700;
  color: #00893e;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.sn-ingredient-card__science {
  font-family: var(--font-paragraph--family);
  font-size: 0.875rem;
  color: #5a5c59;
  line-height: 1.55;
}
.sn-ingredient-card__science p { margin: 0 0 8px; }
.sn-ingredient-card__science p:last-child { margin-bottom: 0; }

@media (max-width: 749px) {
  .sn-ingredient-deepdive { margin: 32px 0 8px; padding-top: 24px; }
  .sn-ingredient-deepdive__title { font-size: 1.25rem; }
  .sn-ingredient-deepdive__grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ============================================================
   PDP gallery thumbnails — Soria brand polish
   Strip inherited .button padding (was collapsing image to 0px)
   then size + style them to look like a proper PDP gallery.
   ============================================================ */
.slideshow-controls__thumbnails {
  gap: 10px !important;
  padding: 12px 4px !important;
}

.slideshow-controls__thumbnail,
.slideshow-controls__thumbnails .slideshow-control,
.dialog-thumbnails-list__thumbnail {
  padding: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: hidden !important;
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 10px !important;
  border: 1.5px solid rgba(0, 0, 0, 0.08) !important;
  outline: none !important;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  cursor: pointer;
  position: relative;
}

@media (min-width: 750px) {
  .slideshow-controls__thumbnail,
  .slideshow-controls__thumbnails .slideshow-control,
  .dialog-thumbnails-list__thumbnail {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    border-radius: 12px !important;
  }
}

.slideshow-controls__thumbnail:hover,
.slideshow-controls__thumbnails .slideshow-control:hover,
.dialog-thumbnails-list__thumbnail:hover {
  border-color: #00893e !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0, 137, 62, 0.12) !important;
}

.slideshow-controls__thumbnail[aria-selected='true'],
.slideshow-controls__thumbnails .slideshow-control[aria-selected='true'],
.dialog-thumbnails-list__thumbnail[aria-selected='true'] {
  border: 2px solid #00893e !important;
  box-shadow: 0 0 0 1px rgba(0, 137, 62, 0.15) !important;
  outline: none !important;
}

.slideshow-controls__thumbnail .slideshow-controls__thumbnail-img,
.slideshow-controls__thumbnails .slideshow-control img,
.dialog-thumbnails-list__thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 8px !important;
  background: #fafaf7;
}

/* Center the thumbnail strip horizontally on desktop, scroll on mobile */
.slideshow-controls__thumbnails-container {
  scrollbar-width: none;
}
.slideshow-controls__thumbnails-container::-webkit-scrollbar {
  display: none;
}

/* ============================================================
   PDP Uporaba tab — DTC best-practice (Athletic Greens / Ritual style)
   ============================================================ */
.sn-howtouse {
  /* keep the tab content padded */
}

.tab-content.sn-howtouse.active,
.tab-content#how.active {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  grid-template-columns: none !important;
}

.pdp-tabs .sn-howtouse__grid,
.tab-content .sn-howtouse__grid,
.sn-howtouse__grid {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 20px !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  max-width: 760px;
  width: 100%;
  margin: 0;
  float: none !important;
}

.sn-howtouse__grid > .sn-howtouse__usage,
.sn-howtouse__grid > .sn-howtouse__warnings-inline,
.sn-howtouse__grid > .sn-howtouse__pack,
.sn-howtouse__grid > .sn-howtouse__disclaimer {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  float: none !important;
  display: block !important;
}

/* The usage card stays flex internally (icon | text) */
.sn-howtouse__grid > .sn-howtouse__usage {
  display: flex !important;
  flex-direction: row !important;
}

/* USAGE CARD — the headline info */
.sn-howtouse__usage {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 24px 28px;
  background: linear-gradient(135deg, #f3f9f4 0%, #f7faf6 100%);
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 14px;
}

.sn-howtouse__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: #00893e;
  color: #fff;
  display: grid;
  place-items: center;
  margin-top: 2px;
}

.sn-howtouse__title {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1.125rem;
  color: #363835;
  margin: 0 0 8px;
  letter-spacing: -0.005em;
}

.sn-howtouse__copy {
  color: #363835;
  font-family: var(--font-body--family);
  font-size: 1rem;
  line-height: 1.55;
}
.sn-howtouse__copy p {
  margin: 0 0 8px;
}
.sn-howtouse__copy p:last-child {
  margin-bottom: 0;
}
.sn-howtouse__copy strong {
  color: #006830;
  font-weight: 600;
}

/* Hide the inherited "NASVETI ZA UPORABO ..." all-caps heading inside copy */
.sn-howtouse__heading-strip {
  display: none;
}

/* WARNINGS — collapsed by default, transparent disclosure */
.sn-howtouse__warnings {
  border: 1px solid rgba(54,56,53,0.15);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.sn-howtouse__warnings summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  cursor: pointer;
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 0.9375rem;
  color: #363835;
  background: #fafafa;
  transition: background-color .15s ease;
  list-style: none;
}
.sn-howtouse__warnings summary::-webkit-details-marker {
  display: none;
}
.sn-howtouse__warnings summary svg {
  color: #b87a00;
  flex-shrink: 0;
}
.sn-howtouse__warnings summary > span:nth-child(2) {
  flex-grow: 1;
}
.sn-howtouse__chevron {
  color: #5a5c59;
  transition: transform .2s ease;
}
.sn-howtouse__warnings[open] .sn-howtouse__chevron {
  transform: rotate(180deg);
}
.sn-howtouse__warnings:hover summary {
  background: #f5f5f3;
}

.sn-howtouse__warnings-body {
  padding: 18px 22px 22px;
  color: #363835;
  font-size: 0.9375rem;
  line-height: 1.6;
  border-top: 1px solid rgba(184,122,0,0.18);
  background: #fffbf2;
}
.sn-howtouse__warnings-body p {
  margin: 0 0 10px;
  color: #363835;
}
.sn-howtouse__warnings-body p:last-child {
  margin-bottom: 0;
}
.sn-howtouse__warnings-body strong {
  color: #1f2620;
  font-weight: 700;
}
.sn-howtouse__warnings-body a {
  color: #00893e;
  text-decoration: underline;
}

/* Hide the leftover "OPOZORILA IN PRIPOROČILA" header inside warnings (we have our own) */
.sn-howtouse__warnings-body p:first-child:has-text("OPOZORILA"),
.sn-howtouse__warnings-body strong:first-child {
  /* Best-effort hide via CSS won't work perfectly without JS; rely on visual treatment */
}

/* DISCLAIMER — small, calm, transparent */
.sn-howtouse__disclaimer {
  color: #8a8c89;
  font-size: 0.8125rem;
  line-height: 1.5;
  font-style: italic;
  margin: 0;
  padding-top: 8px;
  border-top: 1px dashed rgba(54,56,53,0.12);
}

@media (max-width: 749px) {
  .sn-howtouse__usage {
    padding: 18px 18px;
    gap: 14px;
  }
  .sn-howtouse__icon {
    width: 40px;
    height: 40px;
  }
  .sn-howtouse__warnings summary {
    padding: 12px 14px;
    font-size: 0.875rem;
  }
}

/* ============================================================
   PDP Opis tab — proper editorial styling (not a wall of text)
   ============================================================ */

/* Tab body container — establish max-width and reading rhythm */
.pdp-tabs .tab-content#description {
  max-width: 760px;
  font-family: var(--font-body--family);
}

/* Hero/intro paragraph — first paragraph gets a slightly larger lead style */
.pdp-tabs .tab-content#description > p:first-of-type {
  font-size: 1.1875rem;
  line-height: 1.55;
  color: #363835;
  margin: 0 0 24px;
  font-weight: 500;
}

/* H2 — SCALED DOWN from giant. Was inheriting 56px from collection rules */
.pdp-tabs .tab-content#description h2 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: #00893e !important;
  margin: 36px 0 14px !important;
  letter-spacing: -0.005em !important;
  position: relative;
  padding-left: 14px;
}
.pdp-tabs .tab-content#description h2::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 4px;
  height: 0.7em;
  background: #00893e;
  border-radius: 2px;
}

/* H3 — smaller still, charcoal */
.pdp-tabs .tab-content#description h3 {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  color: #363835 !important;
  margin: 24px 0 10px !important;
  letter-spacing: -0.005em !important;
}

/* Body paragraphs */
.pdp-tabs .tab-content#description p {
  color: #363835;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* Lists — proper bullet styling with brand-green markers */
.pdp-tabs .tab-content#description ul,
.pdp-tabs .tab-content#description ol {
  margin: 16px 0 24px;
  padding-left: 0;
  list-style: none;
}
.pdp-tabs .tab-content#description ul li,
.pdp-tabs .tab-content#description ol li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 10px;
  color: #363835;
  font-size: 1rem;
  line-height: 1.55;
}
.pdp-tabs .tab-content#description ul li::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 0.7em;
  width: 7px;
  height: 7px;
  background: #00893e;
  border-radius: 50%;
}
.pdp-tabs .tab-content#description ol {
  counter-reset: section;
}
.pdp-tabs .tab-content#description ol li {
  counter-increment: section;
}
.pdp-tabs .tab-content#description ol li::before {
  content: counter(section);
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  background: rgba(0,137,62,0.12);
  color: #006830;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--font-heading--family);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1;
}

/* Bold + strong — brand-green for emphasis cues */
.pdp-tabs .tab-content#description strong {
  color: #006830;
  font-weight: 600;
}

/* Pull quote — wrap last paragraph with "promise" feel.
   Will trigger when paragraph is short + has bold at start. */
.pdp-tabs .tab-content#description p:has(> strong:only-child) {
  font-family: var(--font-heading--family);
  font-size: 1.25rem;
  font-weight: 600;
  color: #006830;
  line-height: 1.35;
  text-align: center;
  margin: 32px 0;
  padding: 20px 24px;
  background: linear-gradient(135deg, #f3f9f4 0%, #fafdf9 100%);
  border-left: 3px solid #00893e;
  border-radius: 0 10px 10px 0;
  letter-spacing: -0.005em;
}
.pdp-tabs .tab-content#description p:has(> strong:only-child) strong {
  color: #006830;
  font-weight: 600;
}

/* Optional: section divider between H2s for breathing room */
.pdp-tabs .tab-content#description h2:not(:first-child) {
  padding-top: 8px;
  border-top: 1px dashed rgba(54,56,53,0.08);
}

/* Short description — when rendered below price in the buy box */
.pdp-short-description {
  margin: 12px 0 18px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #f3f9f4 0%, #fafdf9 100%);
  border: 1px solid rgba(0,137,62,0.18);
  border-radius: 10px;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #363835;
}
.pdp-short-description p {
  margin: 0 0 8px;
}
.pdp-short-description p:last-child {
  margin-bottom: 0;
}
.pdp-short-description strong {
  color: #006830;
}
.pdp-short-description ul {
  margin: 6px 0;
  padding-left: 18px;
  list-style: disc;
}
.pdp-short-description li {
  margin-bottom: 4px;
}

@media (max-width: 749px) {
  .pdp-tabs .tab-content#description h2 {
    font-size: 1.3125rem !important;
  }
  .pdp-tabs .tab-content#description > p:first-of-type {
    font-size: 1.0625rem;
  }
}

/* ============================================================
   PDP Opis tab — Visual decorations (no images required)
   ============================================================ */

/* Section divider with leaf icon — between H2 sections */
.pdp-tabs .tab-content#description h2:not(:first-child) {
  border-top: none;
  position: relative;
  margin-top: 56px !important;
}
.pdp-tabs .tab-content#description h2:not(:first-child)::after {
  content: '';
  position: absolute;
  top: -28px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16' fill='none'><line x1='0' y1='8' x2='13' y2='8' stroke='%2300893e' stroke-width='1' opacity='0.3'/><line x1='27' y1='8' x2='40' y2='8' stroke='%2300893e' stroke-width='1' opacity='0.3'/><path d='M20 2 C 17 5, 17 11, 20 14 C 23 11, 23 5, 20 2 Z' fill='%2300893e'/><line x1='20' y1='6' x2='20' y2='14' stroke='%23fff' stroke-width='0.6'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

/* "Prednosti" section — convert plain ul into 2-col grid of feature chips
   Triggered when ul follows a heading with "Prednosti" or "✔" content. */
.pdp-tabs .tab-content#description h2:has(+ ul) + ul:not(.no-grid) li[data-feature],
.pdp-tabs .tab-content#description ul li:has(strong:first-child) {
  /* base list item already styled; this is just a hook */
}

/* When ul has ≥4 items AND we're under a "Prednosti" header → grid layout */
.pdp-tabs .tab-content#description h2 + ul,
.pdp-tabs .tab-content#description h3 + ul {
  /* leave default single column for clarity */
}

/* Feature chip layout — for Prednosti sections with all-bullet feature lists.
   Use selector that detects benefit-style lists (checkbox words). */
.pdp-tabs .tab-content#description ul li {
  /* Already styled above with green dot bullet */
}

/* Drop cap removed — looked weird on Slovenian diacritic letters */

/* CTA-style closing line — final standalone strong paragraph */
.pdp-tabs .tab-content#description > p:last-child:has(> strong:only-child) {
  margin-top: 40px;
  background: #00893e;
  color: #fff;
  padding: 28px 32px;
  border-radius: 14px;
  text-align: center;
  font-size: 1.25rem;
  font-family: var(--font-heading--family);
  font-weight: 700;
  border-left: none;
  letter-spacing: -0.005em;
  box-shadow: 0 8px 24px rgba(0,137,62,0.18);
}
.pdp-tabs .tab-content#description > p:last-child:has(> strong:only-child) strong {
  color: #fff;
}

/* H2 leaf decoration — small leaf next to H2 instead of just bar */
.pdp-tabs .tab-content#description h2::before {
  content: '';
  position: absolute;
  left: -2px;
  top: 0.3em;
  width: 6px;
  height: 0.85em;
  background: #00893e;
  border-radius: 3px;
}

/* Add a soft side-leaf SVG accent to first paragraphs after H2 */
.pdp-tabs .tab-content#description h2 + p {
  position: relative;
}

/* Numbered list (program steps) — convert to visual step cards */
.pdp-tabs .tab-content#description ol {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 20px 0 28px;
  counter-reset: step;
}
.pdp-tabs .tab-content#description ol li {
  background: linear-gradient(135deg, #f7faf6 0%, #ffffff 100%);
  border: 1px solid rgba(0,137,62,0.15);
  border-radius: 12px;
  padding: 18px 20px 18px 64px;
  position: relative;
  margin: 0;
  counter-increment: step;
  font-size: 1rem;
  line-height: 1.55;
}
.pdp-tabs .tab-content#description ol li::before {
  content: counter(step);
  position: absolute;
  left: 16px;
  top: 16px;
  width: 32px;
  height: 32px;
  background: #00893e;
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--font-heading--family);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1;
}

/* Bigger spacing between H2-H3 nested */
.pdp-tabs .tab-content#description h3 {
  margin-top: 28px !important;
}

/* Lead paragraph: no drop cap when very short (less than 80 chars) — could look weird */
@supports selector(:has(*)) {
  .pdp-tabs .tab-content#description > p:first-of-type:not(:has(strong)) {
    /* keep drop cap */
  }
}

/* Fallback: if a h2 contains text "Prednosti" — subtle herb watermark behind */
/* (skipped to keep CSS-only and avoid JS dependency) */


/* ============================================================
   PDP Trust strip — replace emoji-style PNG icons with brand SVGs
   The cards use class .pdp-box-point with nested .icon-block + text.
   ============================================================ */

/* Hide the stock PNG icon images inside trust strip cards */
.pdp-box-point img,
.pdp-box-point svg.icon,
.pdp-box-point .icon-block img,
.pdp-box-point [class*="icon"] img {
  display: none !important;
}

/* Restyle trust strip cards: cream tile, brand-green icon at top, charcoal label */
.pdp-box-point > div,
.pdp-box-point > .group {
  background: #fff !important;
  border: 1px solid rgba(0,137,62,0.15) !important;
  border-radius: 12px !important;
  padding: 18px 14px !important;
  text-align: center !important;
  position: relative;
  transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.pdp-box-point > div:hover,
.pdp-box-point > .group:hover {
  border-color: rgba(0,137,62,0.4) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,137,62,0.08);
}

/* Inject brand SVG via ::before — different icon per card based on text content */
.pdp-box-point > div::before,
.pdp-box-point > .group::before {
  content: '';
  display: block;
  margin: 0 auto 10px;
  width: 36px;
  height: 36px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* Default icon (fallback) — leaf */
.pdp-box-point > div::before,
.pdp-box-point > .group::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300893e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M11 20A7 7 0 0 1 4 13c0-5 4-9 9-9h7v7c0 5-4 9-9 9z'/><path d='M11 20c0-4 4-8 9-9'/></svg>");
}

/* GMP certificate card */
.pdp-box-point > div:has(*:is(p, span, div):where(:not(:empty))[*|text()*="GMP"]),
.pdp-box-point > div:has(p:where([class*="text"])):has(p:where(:not(:empty))) {
  /* :has with text content matching is limited — use attribute selector below */
}

/* Use simple positional fallback: 1st card = certificate, 2nd = lab, 3rd = truck */
.pdp-box-point > div:nth-child(1)::before,
.pdp-box-point > .group:nth-child(1)::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300893e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M9 12l2 2 4-4'/><circle cx='12' cy='9' r='7'/><path d='M9 14.5L7 22l5-3 5 3-2-7.5'/></svg>");
}

/* Lab flask / microscope */
.pdp-box-point > div:nth-child(2)::before,
.pdp-box-point > .group:nth-child(2)::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300893e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M9 3h6'/><path d='M10 3v7l-5 9a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-5-9V3'/><line x1='8' y1='14' x2='16' y2='14'/></svg>");
}

/* Shipping truck (3rd) */
.pdp-box-point > div:nth-child(3)::before,
.pdp-box-point > .group:nth-child(3)::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300893e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='1' y='6' width='14' height='10' rx='1'/><path d='M15 8h4l3 4v4h-7'/><circle cx='6' cy='18' r='2'/><circle cx='18' cy='18' r='2'/></svg>");
}

/* 4th card if it exists — leaf for natural */
.pdp-box-point > div:nth-child(4)::before,
.pdp-box-point > .group:nth-child(4)::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300893e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M11 20A7 7 0 0 1 4 13c0-5 4-9 9-9h7v7c0 5-4 9-9 9z'/><path d='M11 20c0-4 4-8 9-9'/></svg>");
}

/* Card text styling — small, charcoal, line-height tight */
.pdp-box-point p,
.pdp-box-point .text-block p {
  font-family: var(--font-body--family);
  font-size: 0.8125rem !important;
  line-height: 1.35 !important;
  color: #363835 !important;
  margin: 0 !important;
  font-weight: 500;
}

/* Mobile */
@media (max-width: 749px) {
  .pdp-box-point > div::before,
  .pdp-box-point > .group::before {
    width: 30px;
    height: 30px;
  }
  .pdp-box-point p {
    font-size: 0.75rem !important;
  }
}

/* ============================================================
   PDP Trust panel — stock + shipping cutoff + payment + delivery
   FutuNatura-style status dots + info cards.
   ============================================================ */
.sn-trust-panel {
  margin-top: 18px;
  font-family: var(--font-body--family);
}

/* Status rows — green dot + text */
.sn-trust-panel__status {
  list-style: none;
  margin: 0 0 14px;
  padding: 16px 18px;
  background: #ffffff;
  border: 1px solid rgba(54,56,53,0.1);
  border-radius: 10px;
}
.sn-trust-status {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9375rem;
  color: #363835;
  padding: 6px 0;
  line-height: 1.4;
}
.sn-trust-status + .sn-trust-status {
  border-top: 1px dashed rgba(54,56,53,0.08);
  margin-top: 2px;
  padding-top: 10px;
}
.sn-trust-status strong {
  color: #006830;
  font-weight: 600;
}
.sn-trust-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  background: #00893e;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(0,137,62,0.12);
}
.sn-trust-status--off .sn-trust-dot {
  background: #c7572d;
  box-shadow: 0 0 0 4px rgba(199,87,45,0.12);
}
.sn-trust-status--off strong {
  color: #c7572d;
}

/* Info cards — payment + shipping */
.sn-trust-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.sn-trust-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ffffff;
  border: 1px solid rgba(54,56,53,0.1);
  border-radius: 10px;
  transition: border-color .15s ease, transform .12s ease;
}
.sn-trust-card:hover {
  border-color: rgba(0,137,62,0.4);
  transform: translateY(-1px);
}
.sn-trust-card__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: rgba(0,137,62,0.1);
  color: #00893e;
  border-radius: 8px;
}
.sn-trust-card__icon svg {
  width: 20px;
  height: 20px;
}
.sn-trust-card__title {
  font-family: var(--font-heading--family);
  font-size: 0.875rem;
  font-weight: 700;
  color: #363835;
  margin-bottom: 2px;
  line-height: 1.2;
}
.sn-trust-card__sub {
  font-size: 0.75rem;
  color: #5a5c59;
  line-height: 1.35;
}

@media (max-width: 749px) {
  .sn-trust-cards {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Defensive: any stray <details> inside the Uporaba tab gets
   styled like our brand accordion, never the browser default.
   ============================================================ */
.sn-howtouse details:not(.sn-howtouse__warnings) {
  display: none !important;  /* hide stray empty details from legacy content */
}

.sn-howtouse__copy details {
  display: none !important;
}

/* Force the warnings accordion summary to ALWAYS show its label */
.sn-howtouse__warnings summary {
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.sn-howtouse__warnings summary::-webkit-details-marker {
  display: none !important;
}
.sn-howtouse__warnings summary::marker {
  display: none !important;
  content: '' !important;
}

/* Make sure summary children render */
.sn-howtouse__warnings summary > *,
.sn-howtouse__warnings summary span {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ============================================================
   Opozorila — inline panel (replaces the broken accordion)
   ============================================================ */
.sn-howtouse__warnings-inline {
  border: 1px solid rgba(184,122,0,0.25);
  border-radius: 12px;
  background: #fffbf2;
  overflow: hidden;
}
.sn-howtouse__warnings-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 0.9375rem;
  color: #8b5a00;
  background: #fff7e6;
  border-bottom: 1px solid rgba(184,122,0,0.18);
}
.sn-howtouse__warnings-header svg {
  color: #b87a00;
  flex-shrink: 0;
}

/* Hide the old accordion-style warnings if they ever render */
.sn-howtouse__warnings {
  display: none !important;
}

/* ============================================================
   FAQ tab — proper Q/A accordion
   ============================================================ */
.sn-faq {
  max-width: 760px;
}
.sn-faq__title {
  font-family: var(--font-heading--family);
  font-size: 1.5rem;
  font-weight: 700;
  color: #363835;
  margin: 0 0 20px;
  letter-spacing: -0.005em;
}
.sn-faq__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sn-faq__item {
  background: #fff;
  border: 1px solid rgba(54,56,53,0.1);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .15s ease;
}
.sn-faq__item:hover {
  border-color: rgba(0,137,62,0.3);
}
.sn-faq__item[open] {
  border-color: rgba(0,137,62,0.4);
  background: linear-gradient(180deg, #fafdf9 0%, #ffffff 100%);
}
.sn-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  cursor: pointer;
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 1rem;
  color: #363835;
  list-style: none;
  line-height: 1.4;
}
.sn-faq__q::-webkit-details-marker { display: none; }
.sn-faq__q::marker { content: ''; display: none; }
.sn-faq__chev {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(0,137,62,0.1);
  color: #00893e;
  display: grid;
  place-items: center;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  transition: transform .2s ease, background-color .15s ease;
}
.sn-faq__item[open] .sn-faq__chev {
  transform: rotate(45deg);
  background: #00893e;
  color: #fff;
}
.sn-faq__a {
  padding: 0 20px 18px 20px;
  color: #5a5c59;
  font-family: var(--font-body--family);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.sn-faq__a p {
  margin: 0 0 10px;
}

@media (max-width: 749px) {
  .sn-faq__q {
    padding: 14px 16px;
    font-size: 0.9375rem;
  }
  .sn-faq__a {
    padding: 0 16px 14px;
    font-size: 0.875rem;
  }
}

/* Packaging info row (Neto količina, Vsebina, etc.) — neutral, small */
.sn-howtouse__pack {
  padding: 12px 16px;
  background: #fafaf8;
  border: 1px solid rgba(54,56,53,0.08);
  border-radius: 10px;
  font-size: 0.875rem;
  color: #5a5c59;
  line-height: 1.5;
}
.sn-howtouse__pack p {
  margin: 0 0 6px;
}
.sn-howtouse__pack p:last-child { margin-bottom: 0; }
.sn-howtouse__pack strong {
  color: #363835;
}

/* Cert chips inside trust panel */
.sn-trust-certs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed rgba(54,56,53,0.1);
}
.sn-trust-cert {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(0,137,62,0.08);
  border: 1px solid rgba(0,137,62,0.2);
  border-radius: 999px;
  color: #006830;
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.sn-trust-cert svg {
  width: 14px;
  height: 14px;
  color: #00893e;
}

/* Paket (multi-product) ingredient sections — clean separator between products */
.sn-paket-section + .sn-paket-section {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 2px solid rgba(0,137,62,0.15);
}
.sn-paket-title {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1.25rem;
  color: #00893e;
  margin: 0 0 16px;
  letter-spacing: -0.005em;
  padding-left: 14px;
  position: relative;
}
.sn-paket-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 4px;
  height: 0.8em;
  background: #00893e;
  border-radius: 2px;
}

/* ============================================================
   Cross-sell cards — DTC best practice: minimal info per card
   ============================================================ */
.product-recommendations .short-desc,
.product-recommendations .pdp-short-description {
  display: none !important;
}

/* If any text element rendered as a description, truncate to 2 lines */
.product-recommendations .resource-list__item p:not(.product-type):not(.h6):not([class*="price"]) {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 0.875rem;
  color: #5a5c59;
  line-height: 1.4;
  margin: 4px 0;
}

/* Card structure: tighter typography */
.product-recommendations .resource-list__item product-title,
.product-recommendations .resource-list__item .product-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--font-heading--family);
  font-weight: 600;
  font-size: 0.9375rem;
  color: #363835;
  line-height: 1.3;
  margin: 8px 0 4px;
  min-height: 2.6em; /* reserve 2 lines so cards align */
}

/* Price */
.product-recommendations .resource-list__item .price,
.product-recommendations .resource-list__item [class*="price"]:not(.product-card__sale-badge) {
  font-family: var(--font-heading--family);
  font-weight: 700;
  font-size: 1rem;
  color: #006830;
  margin-top: auto;
}

/* Card padding tighter */
.product-recommendations .resource-list__item {
  padding-bottom: 12px;
}

/* ============================================================
   STORE LOCATOR — "Prodajna mesta"
   Leaflet + filterable list
   ============================================================ */
.sn-locator {
  padding: 48px 0 64px;
  background: #fafaf8;
  font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  color: #363835;
}
.sn-locator__inner { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.sn-locator__header { text-align: center; margin: 0 auto 24px; max-width: 720px; }
.sn-locator__breadcrumb {
  font-size: 0.75rem; color: #6b6e6a; margin-bottom: 14px; letter-spacing: 0.01em;
}
.sn-locator__breadcrumb a { color: #00893e; text-decoration: none; font-weight: 500; }
.sn-locator__breadcrumb a:hover { text-decoration: underline; }
.sn-locator__breadcrumb span[aria-hidden] { margin: 0 6px; color: #b8b8b3; }
.sn-locator__h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: 2.125rem; font-weight: 700; color: #363835;
  margin: 0 0 12px; letter-spacing: -0.018em; line-height: 1.15;
}
.sn-locator__sub {
  font-size: 1rem; color: #6b6e6a; margin: 0; line-height: 1.55; font-weight: 400;
}

.sn-locator__filters {
  display: flex; flex-direction: column; gap: 12px;
  margin-bottom: 22px;
}
.sn-locator__search-wrap {
  position: relative; max-width: 520px; margin: 0 auto; width: 100%;
}
.sn-locator__search-icon {
  position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
  color: #00893e; pointer-events: none;
}
.sn-locator__search {
  width: 100%; padding: 12px 16px 12px 44px;
  font-family: 'Montserrat', sans-serif; font-size: 0.9375rem; font-weight: 400;
  background: #fff; border: 1px solid rgba(0,137,62,0.18); border-radius: 10px;
  color: #363835; outline: none; box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.sn-locator__search:focus {
  border-color: #00893e; box-shadow: 0 0 0 4px rgba(0,137,62,0.10);
}
.sn-locator__regions {
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: center;
}
.sn-locator__region {
  padding: 7px 14px;
  background: #fff; border: 1px solid #ececea; border-radius: 99px;
  font-family: 'Montserrat', sans-serif; font-size: 0.8125rem; font-weight: 500;
  color: #363835; cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.sn-locator__region:hover { border-color: #00893e; }
.sn-locator__region.is-active {
  background: #00893e; color: #fff; border-color: #00893e; font-weight: 600;
}

.sn-locator__layout {
  display: grid; grid-template-columns: 1fr 380px; gap: 18px;
  align-items: stretch;
  min-height: 620px;
}
.sn-locator__map-wrap {
  position: relative;
  background: #fff; border: 1px solid #ececea; border-radius: 14px; overflow: hidden;
}
.sn-locator__map {
  width: 100%; height: 100%; min-height: 620px;
}
.sn-locator__count {
  position: absolute; bottom: 12px; left: 12px;
  padding: 6px 12px; background: rgba(255,255,255,0.95);
  border: 1px solid #ececea; border-radius: 99px;
  font-family: 'Montserrat', sans-serif; font-size: 0.75rem; font-weight: 600;
  color: #363835; z-index: 500; box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.sn-locator__list-wrap {
  background: #fff; border: 1px solid #ececea; border-radius: 14px;
  overflow-y: auto; max-height: 720px;
}
.sn-locator__list {
  list-style: none; padding: 8px; margin: 0;
}
.sn-locator__item {
  padding: 12px 14px; border-bottom: 1px solid #f0efea;
  cursor: pointer;
  transition: background 0.12s;
}
.sn-locator__item:hover { background: #fafaf8; }
.sn-locator__item:last-child { border-bottom: none; }
.sn-locator__item-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  margin-bottom: 4px;
}
.sn-locator__item-title {
  font-size: 0.9375rem; font-weight: 600; color: #363835; line-height: 1.3;
}
.sn-locator__item-region {
  font-size: 0.6875rem; font-weight: 600; color: #00893e;
  text-transform: uppercase; letter-spacing: 0.06em;
  background: rgba(0,137,62,0.08); padding: 2px 8px; border-radius: 99px;
  white-space: nowrap;
}
.sn-locator__item-addr {
  font-size: 0.8125rem; color: #6b6e6a; line-height: 1.45;
  margin-bottom: 4px;
}
.sn-locator__item-phone {
  font-size: 0.8125rem; color: #00893e; font-weight: 500;
  margin-bottom: 6px;
}
.sn-locator__item-phone a { color: inherit; text-decoration: none; }
.sn-locator__item-phone a:hover { text-decoration: underline; }
.sn-locator__item-hours { margin-bottom: 6px; }
.sn-locator__item-hours summary {
  cursor: pointer; font-size: 0.75rem; font-weight: 500; color: #6b6e6a;
  list-style: none; user-select: none; padding: 2px 0;
}
.sn-locator__item-hours summary::-webkit-details-marker { display: none; }
.sn-locator__item-hours summary::before {
  content: '▸'; display: inline-block; margin-right: 4px;
  transition: transform 0.15s;
}
.sn-locator__item-hours[open] summary::before { transform: rotate(90deg); }
.sn-locator__hours-body {
  margin-top: 4px; padding-left: 14px;
  font-size: 0.75rem; color: #6b6e6a; line-height: 1.5;
}
.sn-locator__item-dir {
  display: inline-block; margin-top: 4px;
  font-size: 0.75rem; font-weight: 600; color: #00893e;
  text-decoration: none;
}
.sn-locator__item-dir:hover { text-decoration: underline; }

.sn-locator__empty {
  text-align: center; padding: 48px 20px;
  color: #6b6e6a; font-size: 0.9375rem;
}
.sn-locator__error {
  padding: 20px; text-align: center; color: #c5392c;
  font-family: 'Montserrat', sans-serif;
}

/* Leaflet popup styling */
.sn-locator__popup { font-family: 'Montserrat', sans-serif; min-width: 200px; }
.sn-locator__popup-title {
  font-size: 0.9375rem; font-weight: 700; color: #363835; margin-bottom: 6px;
}
.sn-locator__popup-addr {
  font-size: 0.8125rem; color: #6b6e6a; line-height: 1.4; margin-bottom: 6px;
}
.sn-locator__popup-phone { font-size: 0.8125rem; margin-bottom: 8px; }
.sn-locator__popup-phone a {
  color: #00893e; text-decoration: none; font-weight: 600;
}
.sn-locator__popup-dir {
  display: inline-block; font-size: 0.75rem; font-weight: 700; color: #00893e;
  text-decoration: none; padding-top: 4px;
  border-top: 1px solid rgba(0,137,62,0.18);
}
.sn-locator__popup-dir:hover { text-decoration: underline; }

/* Override leaflet defaults to match brand */
.leaflet-popup-content-wrapper {
  border-radius: 10px;
}
.leaflet-popup-content { margin: 12px 14px; }
.marker-cluster-small { background-color: rgba(0,137,62,0.30); }
.marker-cluster-small div { background-color: rgba(0,137,62,0.65); color: #fff; }
.marker-cluster-medium { background-color: rgba(0,137,62,0.40); }
.marker-cluster-medium div { background-color: rgba(0,137,62,0.75); color: #fff; }
.marker-cluster-large { background-color: rgba(0,137,62,0.50); }
.marker-cluster-large div { background-color: rgba(0,137,62,0.85); color: #fff; }

@media (max-width: 900px) {
  .sn-locator__layout {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .sn-locator__map { min-height: 420px; }
  .sn-locator__list-wrap { max-height: 520px; }
  .sn-locator__h1 { font-size: 1.625rem; }
  .sn-locator__regions { justify-content: flex-start; }
}

/* Leaflet attribution — keep but make subtle (OSM data license requires credit) */
.sn-locator .leaflet-control-attribution {
  font-size: 9px;
  color: #888880;
  background: rgba(255,255,255,0.75);
  padding: 1px 6px;
  border-radius: 99px 0 0 0;
}
.sn-locator .leaflet-control-attribution a { color: #6b6e6a; }

/* Inline hours in list — always visible, subtle */
.sn-locator__item-hours-inline {
  margin: 6px 0 8px;
  font-size: 0.75rem; color: #6b6e6a; line-height: 1.5;
}
.sn-locator__item-hours-inline div { padding: 1px 0; }

/* Popup hours block */
.sn-locator__popup-hours {
  font-size: 0.75rem; color: #6b6e6a; line-height: 1.45;
  margin: 6px 0 8px;
  padding: 6px 8px;
  background: #fafaf8;
  border-radius: 6px;
}
.sn-locator__popup-hours div { padding: 1px 0; }

/* Search input — force padding to not collide with icon (theme defaults override) */
.sn-locator .sn-locator__search,
.sn-locator input[type="search"].sn-locator__search {
  padding-left: 44px !important;
}

/* ============================================================
   STORE LOCATOR — v3 best-practice UI overrides
   ============================================================ */
.sn-locator__toolbar {
  display: flex; gap: 10px; align-items: center;
  margin: 0 auto 14px; max-width: 760px;
}
.sn-locator__toolbar .sn-locator__search-wrap { flex: 1; max-width: none; }

.sn-locator__geo {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 11px 16px;
  background: #fff;
  border: 1px solid rgba(0,137,62,0.25); border-radius: 10px;
  font-family: 'Montserrat', sans-serif; font-size: 0.8125rem; font-weight: 600;
  color: #00893e; cursor: pointer; white-space: nowrap;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.sn-locator__geo:hover { background: #00893e; color: #fff; border-color: #00893e; }
.sn-locator__geo.is-active { background: #00893e; color: #fff; border-color: #00893e; }
.sn-locator__geo.is-loading { opacity: 0.6; cursor: wait; }
.sn-locator__geo svg { flex-shrink: 0; }

.sn-locator__viewswitch {
  display: none;
  margin: 0 auto 14px;
  padding: 3px; background: #ececea; border-radius: 99px;
  gap: 2px;
}
.sn-locator__viewbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  flex: 1; padding: 8px 14px;
  background: transparent; border: none; border-radius: 99px;
  font-family: 'Montserrat', sans-serif; font-size: 0.8125rem; font-weight: 600;
  color: #6b6e6a; cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.sn-locator__viewbtn.is-active {
  background: #fff; color: #00893e;
  box-shadow: 0 1px 3px rgba(54,56,53,0.10);
}

/* Override layout to give map more room */
.sn-locator__layout {
  grid-template-columns: 1.7fr 1fr !important;
  min-height: 680px !important;
  gap: 16px;
}
.sn-locator__map { min-height: 680px; }
.sn-locator__list-wrap { max-height: 760px; }

/* Sticky list header */
.sn-locator__list-head {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px;
  background: #fff; border-bottom: 1px solid #ececea;
}
.sn-locator__list-head .sn-locator__count {
  position: static; padding: 0; background: none; border: none; box-shadow: none;
  font-family: 'Montserrat', sans-serif; font-size: 0.8125rem; font-weight: 600;
  color: #363835;
}
.sn-locator__reset {
  background: transparent; border: none;
  font-family: 'Montserrat', sans-serif; font-size: 0.75rem; font-weight: 600;
  color: #00893e; cursor: pointer; padding: 4px 6px;
}
.sn-locator__reset:hover { text-decoration: underline; }

/* Loading state */
.sn-locator__loading {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 60px 20px; color: #6b6e6a; font-size: 0.875rem;
}
.sn-locator__loading-spinner {
  width: 18px; height: 18px;
  border: 2px solid #ececea; border-top-color: #00893e;
  border-radius: 50%; animation: snLocSpin 0.7s linear infinite;
}
@keyframes snLocSpin { to { transform: rotate(360deg); } }

/* List item — best-practice layout */
.sn-locator__item-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  margin-bottom: 6px;
}
.sn-locator__item-today {
  font-size: 0.75rem; color: #6b6e6a; font-weight: 500;
}
.sn-locator__item-dist {
  display: none; font-size: 0.75rem; color: #00893e; font-weight: 600;
  padding: 1px 8px; background: rgba(0,137,62,0.08); border-radius: 99px;
}
.sn-locator__item-dist.is-shown { display: inline-block; }
.sn-locator__item.is-selected {
  background: rgba(0,137,62,0.06) !important;
  box-shadow: inset 3px 0 0 #00893e;
}

/* Badge — open/closed */
.sn-locator__badge {
  display: inline-block; font-size: 0.6875rem; font-weight: 700;
  padding: 2px 8px; border-radius: 99px;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.sn-locator__badge--open {
  background: rgba(0,137,62,0.12); color: #006830;
}
.sn-locator__badge--closed {
  background: rgba(232,60,77,0.12); color: #a32d2d;
}

/* Details for full hours */
.sn-locator__item-hours-details { margin: 6px 0 8px; }
.sn-locator__item-hours-details summary {
  cursor: pointer; font-size: 0.75rem; font-weight: 500; color: #6b6e6a;
  list-style: none; user-select: none; padding: 2px 0;
}
.sn-locator__item-hours-details summary::-webkit-details-marker { display: none; }
.sn-locator__item-hours-details summary::before {
  content: '▸'; display: inline-block; margin-right: 4px;
  transition: transform 0.15s;
}
.sn-locator__item-hours-details[open] summary::before { transform: rotate(90deg); }

/* Hide the inline-always hours rule from v2 (replaced with details + today badge) */
.sn-locator__item-hours-inline { display: none !important; }

/* Branded marker pin (divIcon) */
.sn-locator__pin {
  background: transparent !important;
  border: none !important;
}
.sn-locator__pin-inner {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 42px;
  position: relative;
  color: #fff;
}
.sn-locator__pin-inner::before {
  content: '';
  position: absolute; top: 0; left: 0; width: 34px; height: 34px;
  background: #00893e;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  box-shadow: 0 3px 8px rgba(0,0,0,0.25);
}
.sn-locator__pin-inner svg {
  position: relative; z-index: 1;
}

/* Branded cluster icon */
.sn-locator__cluster {
  background: transparent !important;
}
.sn-locator__cluster > div {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #00893E;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  box-shadow: 0 0 0 5px rgba(0,137,62,0.20), 0 3px 8px rgba(0,0,0,0.15);
}
.sn-locator__cluster--medium > div {
  background: #006830;
  box-shadow: 0 0 0 6px rgba(0,104,48,0.25), 0 3px 8px rgba(0,0,0,0.18);
}
.sn-locator__cluster--large > div {
  background: #004d22;
  box-shadow: 0 0 0 7px rgba(0,77,34,0.30), 0 3px 8px rgba(0,0,0,0.20);
  width: 48px; height: 48px;
}

/* Popup polish */
.sn-locator__popup-dist {
  font-size: 0.75rem; color: #00893e; font-weight: 600;
  margin: 4px 0;
}

/* Mobile tabs visible only on small screens */
@media (max-width: 900px) {
  .sn-locator__layout { grid-template-columns: 1fr !important; min-height: auto !important; }
  .sn-locator__map { min-height: 480px !important; }
  .sn-locator__list-wrap { max-height: 560px; }
  .sn-locator__viewswitch { display: flex; max-width: 320px; }
  .sn-locator[data-active-view="map"] .sn-locator__list-wrap { display: none; }
  .sn-locator[data-active-view="list"] .sn-locator__map-wrap { display: none; }
  .sn-locator__toolbar { flex-direction: column; align-items: stretch; }
  .sn-locator__geo { justify-content: center; }
}

/* Related articles section on per-concern page */
.sn-hc__related-blogs {}
.sn-hc__blogs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.sn-hc__blog-card {
  display: flex; flex-direction: column;
  padding: 16px 18px 14px;
  background: #fff;
  border: 1px solid #ececea;
  border-left: 3px solid #00893E;
  border-radius: 12px;
  text-decoration: none;
  color: #363835;
  font-family: 'Montserrat', sans-serif;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.sn-hc__blog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(54,56,53,0.10);
  border-color: #00893e;
}
.sn-hc__blog-card-eyebrow {
  font-size: 0.6875rem; font-weight: 700; color: #00893e;
  text-transform: uppercase; letter-spacing: 0.08em;
  margin-bottom: 8px;
}
.sn-hc__blog-card-title {
  font-size: 0.9375rem; font-weight: 600; color: #363835;
  letter-spacing: -0.005em; line-height: 1.3;
  margin-bottom: 12px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.sn-hc__blog-card-cta {
  font-size: 0.75rem; font-weight: 600; color: #00893e;
}
