/** Shopify CDN: Minification failed

Line 4240:109 Unterminated string token
Line 4246:16 Comments in CSS use "/* ... */" instead of "//"
Line 4247:4 Comments in CSS use "/* ... */" instead of "//"
Line 4248:24 Comments in CSS use "/* ... */" instead of "//"
Line 4250:16 Comments in CSS use "/* ... */" instead of "//"
Line 4251:9 Comments in CSS use "/* ... */" instead of "//"
Line 4277:7 Comments in CSS use "/* ... */" instead of "//"
Line 4278:70 Comments in CSS use "/* ... */" instead of "//"
Line 4279:9 Comments in CSS use "/* ... */" instead of "//"
Line 4325:47 Comments in CSS use "/* ... */" instead of "//"
... and 8 more hidden warnings

**/
* {
  box-sizing: border-box;
}

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,
.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;
}

@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 .predictive-search-results__card:hover {
    transform: translateY(calc(-1 * var(--hover-lift-amount)));
  }

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

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

  .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 .predictive-search-results__card:hover {
    transform: scale(var(--hover-subtle-zoom-amount));
  }

}

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;
  display: flex;
  flex-direction: column;
}

.content-for-layout > .shopify-section:last-child {
  flex-grow: 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');
}

/* 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;
}

/* 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;
}

[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;
}

[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);

  @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);
  font-weight: var(--font-paragraph--weight);
  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,
.show-more:where([data-expanded='true']) .show-more__button .icon-plus .horizontal {
  transform: rotate(90deg);
}

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);
  }
}

: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);
  }
}

.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--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;
  }
}

.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);
  }
}

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;
}

.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;
}

: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);
  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));
}

.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);
}

.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));
}

.tax-note:empty {
  display: none;
}

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

/* Volume pricing note should match unit-price styling (small, grey text) */
product-price .volume-pricing-note,
product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) .volume-pricing-note {
  display: block;
  font-family: var(--font-body--family);
  font-weight: normal;
  font-size: var(--font-size--xs);
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
  color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
}

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

.price-item__group {
  display: inline-block;
}

.price-item--sale {
  white-space: nowrap;
}

.price__hidden {
  display: none;
}

form.payment-terms {
  padding-top: 0.5em;
  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));
}

.installments:not(:has(shopify-payment-terms)) {
  display: none;
}

.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);
    height: auto;

    > .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;
    }

    > .group-block--height-fill {
      height: calc(var(--section-min-height, auto) - var(--section-height-offset, 0px));
    }
  }
}

@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: var(--color-foreground);
    border-color: var(--color-foreground);
  }

  &: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 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: var(--style-border-width-inputs) solid var(--color-input-border);
  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;
}

/* 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 Arrow Hover Animation - must stay in base.css for proper CSS cascade */

: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;
  }
}

.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;
}

/* 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);
}

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,
.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);
}

.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);
  }
}

/* ============================================================
   FOREVER JUNG — Theme Override pour Shopify Horizon
   Coller à la FIN de base.css
   ============================================================ */

/* ── FONT: NewEddy Display ── */
@font-face {
  font-family: "NewEddy Display";
  src: url("data:font/otf;base64,T1RUTwAMAIAAAwBAQ0ZGILI7+P0AAAvUAAA1H0dERUYF8wUXAABA9AAAAFRHUE9Tz1jlOQAAQUgA
AAvcR1NVQuTI04AAAE0kAAABEk9TLzJogyTQAAAEcAAAAGBjbWFw0we2IgAAB7wAAAP4aGVhZCWO
tSoAAADUAAAANmhoZWEHfAN/AAAETAAAACRobXR4hLUAAAAAAQwAAANAbWF4cADQUAAAAADMAAAA
Bm5hbWVLbhEaAAAE0AAAAupwb3N0/58AMgAAC7QAAAAgAABQAADQAAAAAQAAAAEAAMX+YeFfDzz1
AAMD6AAAAADhODi3AAAAAOE4OLf/aP8nBJ8DsQAAAAcAAgAAAAAAAAI1ACMA+gAAAgP/nAID/5wC
A/+cAgP/nAID/5wCA/+cAgP/nAID/5wCA/+cAgP/nAKv/5wB/P/xAsAACgLAAAoCwAAKAsAACgLA
AAoCsv/xAuIAAAKy//EC4gAAAhL/8QIS//ECEv/xAhL/8QIS//ECEv/xAhL/8QIS//ECEv/xAhL/
8QHv//ECnQAKAp0ACgKdAAoCnQAKAib/8QDr//EB1//xAOv/8QDr/+kA6//xAOv/8QDr//EA6//x
AOv/8ADs/2gA7P9oAeX/8QHl//ECA//xAgP/8QID/+YCA//xAigAAAJ6/90CFv/TAhb/0wIW/9MC
Fv/TAhb/0wLuAAoC7gAKAu4ACgLuAAoC7gAKAu4ACgLuAAoDHAAAAu4ACgOeAAoBuv/xAcn/8QL8
AAoB6f/xAen/8QHp//EB6f/xAagAFAGoABQBqAAUAagAFAGoABQChf/xAbz/8QG8//EBvP/xAbz/
8QK7/+cCu//nArv/5wK7/+cCu//nArv/5wK7/+cCu//nArv/5wK7/+cBg/+cAsj/nALI/5wCyP+c
Asj/nALI/5wCEf/OAX7/nAF+/5wBfv+cAX7/nAF+/5wBfv+cAjIACgIyAAoCMgAKAjIACgIwAB4B
TwAHAhsAGQH0AAoCQgAKAeEACgIkAC0B3gAaAdcACgIk/+cA+gAAAJ8AHgC1ABsAnwAeAK0AHgHd
AB4A0wAyANMAMgHRAB4B0QAeAJ8AHgGSADIB0AAoAykAFAGhACgBrwA2AZ0AUAKaAFADlwBQApoA
UAFCADIBQgAeASwAHgEsACkBGwBkARsAAACtAB4ArQAeAS8AHgEvAB4ArQAeALUAGwHEAB4B2AAy
ARoAHgEaAB4BawAyALcAMgMlADID1AArA1IAMgNSADIDUgAyAXsAMgDWAGQDOAAAAsAACgGoABQB
6AAUAkYAAAKaAFACmgBQAg8AUAKaAFACmgBQAaUAHgGlAB4BcAAyAX4AMgM7ADIE0QAyAAAAMgAA
ADIAAAAyAAAAMgAAADIAAP/sAAD/7AAAADwAAAAyAAAAAAAAADIAAAAbAAAAGwAAADIAAAAyAlgA
MgJYADIA8v/sAlgAAACUADIAAQAAAtD/BgCiBNH/aP7XBJ8AAQAAAAAAAAAAAAAAAAAAANAABAID
AZAABQAEAooCWAAAAEsCigJYAAABXgAOAW0AAAAAAAAAAAAAAACAAAAvAAAASgAAAAAAAAAAVUtX
TgDAACAiEgLQ/wYAogOxANkgAAABAAAAAALQAtAAAAAgAAIAAAAUAPYAAQAAAAAAAQAQAAAAAQAA
AAAAAgAHABAAAQAAAAAABAAQAAAAAQAAAAAABQAhABcAAQAAAAAABgAPADgAAQAAAAAACwATAEcA
AQAAAAAADAATAEcAAwABBAkAAAB0AFoAAwABBAkAAQAgAM4AAwABBAkAAgAOAO4AAwABBAkAAwA0
APwAAwABBAkABAAgAM4AAwABBAkABQBCATAAAwABBAkABgAeAXIAAwABBAkACAAgAZAAAwABBAkA
CQAgAZAAAwABBAkACwAmAbAAAwABBAkADAAmAbAAAwABBAkAEAAQAdYAAwABBAkAEQAOAeZOZXcg
RWRkeSBEaXNwbGF5UmVndWxhclZlcnNpb24gMS4wMDA7R2x5cGhzIDMuMS4yICgzMTUxKU5ld0Vk
ZHktRGlzcGxheWVsaW90dGdydW5ld2FsZC5jb20AQwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAw
ADEAOQAgAGIAeQAgAEUAbABpAG8AdAB0ACAARwByAHUAbgBlAHcAYQBsAGQALgAgAEEAbABsACAA
cgBpAGcAaAB0AHMAIAByAGUAcwBlAHIAdgBlAGQALgBOAGUAdwAgAEUAZABkAHkAIABEAGkAcwBw
AGwAYQB5AFIAZQBnAHUAbABhAHIAMQAuADAAMAAwADsAVQBLAFcATgA7AE4AZQB3AEUAZABkAHkA
LQBEAGkAcwBwAGwAYQB5AFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBHAGwAeQBwAGgAcwAg
ADMALgAxAC4AMgAgACgAMwAxADUAMQApAE4AZQB3AEUAZABkAHkALQBEAGkAcwBwAGwAYQB5AEUA
bABpAG8AdAB0ACAARwByAHUAbgBlAHcAYQBsAGQAZQBsAGkAbwB0AHQAZwByAHUAbgBlAHcAYQBs
AGQALgBjAG8AbQBOAGUAdwAgAEUAZABkAHkARABpAHMAcABsAGEAeQAAAAAAAgAAAAMAAAAUAAMA
AQAAABQABAPkAAAAZgBAAAUAJgAvADkAfgCjAKUAqQCrAK4AsAC0ALgAuwEHARMBGwEjASsBLwEz
ATcBPgFIAU0BWwFlAWsBfgIbAsYC3AMEAwgDDAMSAygehR6eHr0e8x75IBQgGiAeICIgJiAwIDog
rCEXIhL//wAAACAAMAA6AKAApQCpAKsArgCwALQAtwC7AL8BCgEWAR4BKAEuATIBNgE5AUEBTAFQ
AV4BaAFuAhgCxgLcAwADBgMKAxIDJh6AHp4evB7yHvggEyAYIBwgIiAmIDAgOSCsIRciEv//AAAA
RQAAAAAAC//+//T/+v/6ABgAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+B/3y
AAAAAAAA/bX9ogAA4bcAAAAAAADgfQAAAADgaOBe4IvgaOAA35LeoAABAGYAAACCAQoAAAAAAAAA
AAAAAAABBAAAAQQBlAGmAbABugHAAcIBxAHGAdAB3gHgAfYCBAIKAioAAAAAAiwCNAI4AAAAAAI4
AAACQAJCAkQAAAJEAkgAAAAAAAAAAAAAAAAAAAAAAAEAhQCjAIwArgC6AKYApACTAJQAiwCxAIEA
jwCAAI0AggCDALcAtQC2AIcApQACAA0ADgATABcAIQAiACYAJwAwADIANAA5ADoAPwBJAEsATABQ
AFYAWgBkAGUAagBrAHEAlwCOAJgAuQCSAMsAAgANAA4AEwAXACEAIgAmACcAMAAyADQAOQA6AD8A
SQBLAEwAUABWAFoAZABlAGoAawBxAJUAqwCWALgAfwCGAK0ArwCJAM8AiAAHAAMABQALAAYACgAM
ABEAHQAYABoAGwAsACkAKgArABQAPgBDAEAAQQBHAEIAswBGAF4AWwBcAF0AbABKAFUABwADAAUA
CwAGAAoADAARAB0AGAAaABsALAApACoAKwAUAD4AQwBAAEEARwBCALQARgBeAFsAXABdAGwASgBu
AAgACAAEAAQACQAJAA8ADwASABIAEAAQABUAFQAWABYAHgAeABwAHAAfAB8AGQAZACMAIwAlACUA
JAAkAC8ALwAtAC0ALgAuACgAKAAzADMANQA1ADcANwA2ADYAOAA4ADsAOwA9AD0APAA8AEUARQBE
AEQASABIAE0ATQBPAE8ATgBOAFEAUQBTAFMAUgBSAFgAWABXAFcAYwBjAGAAYABiAGIAXwBfAGEA
YQBnAGcAbQBtAG4AcgByAHQAdABzAHMAVABUAFkAWQC+AL8AwQDFAMYAwwC9ALwAxADAAMIAaQBp
AGYAZgBoAGgAIAAgAG8AbwBwAHAAnQCeAJkAmwCcAJoAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAA
AAAAAAAAAAEABAIAAQEBEE5ld0VkZHktRGlzcGxheQABAQEo+A8A+GMB+GQC+BgE+xEMA/ss+24c
BJ/6RQUcC+IPHA1jEaMcL9cSAEoCAAEABwAOABUAGwAhACsAMQA3AD0ARwBOAFUAXABiAGkAcwB1
AHwAgwCJAJQAmwChAKcArgC0ALoAwQDOANUA2wDhAOgA7gD2AP0BBAEKAREBGAElASwBMwE4AT4B
RAFPAVgBXgFpAW8BdgF8AYYBjQGUAZgBnwGmAa8BuAG/AcYBzQHUAdsB5AHrAfIB+QIAAgcCRQJV
QWJyZXZlQW1hY3JvbkFvZ29uZWtDYWN1dGVDY2Fyb25DZG90YWNjZW50RGNhcm9uRGNyb2F0RWNh
cm9uRWRvdGFjY2VudEVtYWNyb25Fb2dvbmVrdW5pMUVCQ0dicmV2ZXVuaTAxMjJHZG90YWNjZW50
SUpJbWFjcm9uSW9nb25la0l0aWxkZXVuaTAwNEEwMzAxdW5pMDEzNkxhY3V0ZUxjYXJvbnVuaTAx
M0JOYWN1dGVOY2Fyb251bmkwMTQ1T2h1bmdhcnVtbGF1dE9tYWNyb25SYWN1dGVSY2Fyb251bmkw
MTU2U2FjdXRlU2NlZGlsbGF1bmkwMjE4dW5pMUU5RVRjYXJvbnVuaTAxNjJ1bmkwMjFBVWh1bmdh
cnVtbGF1dFVtYWNyb25Vb2dvbmVrVXJpbmdVdGlsZGVXYWN1dGVXY2lyY3VtZmxleFdkaWVyZXNp
c1dncmF2ZVljaXJjdW1mbGV4WWdyYXZldW5pMUVGOFphY3V0ZVpkb3RhY2NlbnR1bmkwMEEwdW5p
MjExN0V1cm91bmkwMzA4dW5pMDMwN2dyYXZlY29tYmFjdXRlY29tYnVuaTAzMEJ1bmkwMzAydW5p
MDMwQ3VuaTAzMDZ1bmkwMzBBdGlsZGVjb21idW5pMDMwNHVuaTAzMTJ1bmkwMzI2dW5pMDMyN3Vu
aTAzMjhDb3B5cmlnaHQgXChjXCkgMjAxOSBieSBFbGlvdHQgR3J1bmV3YWxkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLk5ldyBFZGR5IERpc3BsYXkAawIAAQAOABMAGAAdACQAKgBKAE0AVQBeAGUAbQBw
AIsAtgDGAMoA0wDcAOkA/wELATUBPgFBAVQBXwFoAXIBeAF9AYIBlwHqAgYCCQInAi0CawKAAqIC
swLMAuUC8QMGAxIDJAMuAzYDPgNGA00DVANbA2QDagPWBA4EEwRfBGsEdgSsBNsFFAVHBXgFqgWw
BbcF3QYDBhEGGAYdBiMGQQZeBncGkQapBrwG1AbrBv4HAQcTByUHKAc4B0cHTAdaB2YHcwd9B4oH
jgeYB6IHrAe2B78HyAfRB9cHwM6OqpIej/udhx0Lp6enEgt8jxWHC4hthB4LMB33CBZ2HXyj+Vaf
C/czy0v7KZIfkgaF9wePx5G/CPyRhwaphs6GVhr83gcLbR0OFfdrrftrBg6gdvf3mfgCdwtskkiO
wBoLh/edjwcqHQtWHQ4yHRLd0fffkoaSE/QuHRP4Jh0T9FZIhm2GHgsiHficB4DAg/eXkfcHCIQG
/CiKRYL7Kxt+BmxIk7gf9/DHB0sdT/d0Vx0LnQP3+nwV90D14fdiH18dCxV4HQsV4PeW6fuWBQ6L
mfglmfepmQt8rPlSdwHT0fhwLx0L+Ah8Ffdi9zb3UPdach0f+7P4T0QdC6B2+WR3Ad3RAzcdC/cB
9x9c+78fkgaG2I33YpS+CJ4rTpUsG/tq+xX7Qvtm+2P3KPsu92EfCyId952PB2kdCxVPHRWmoaGn
pnWhcG91dXBvoXWnHwt2+C6Y97KWAd3LC/th+zr7SftgC4+JBauboJSlGwuLmflImQv3/4EVC2yg
dacLSB33q48HcB33hfgBFeD3lun7lgULoHb5GdYB55n36ZkDco8Vh/eNjwdOllKU1Br4uAf37v0Z
BZT5AwbUxJTIlh6P+42HB8eAxIJCGvxTB/u++LQF+1aFBr25iV+0H/zPB0JSgk+AHgv4B4EVTR37
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
BwAAqgAApQABvgAAoQAAXQABvwAAYQAABQAAYgAAZAAADAAApgAAqAAAnwAAHgEAHQAAXwAAPwAA
BgAAegABwA4AfAMAhQAA0AIAAQE/AUIBRgFPAXwBiAGcAagBwQH3AgsCKAKJAu0C8gL7AwUDOQNh
A20DcQOBA4UDiQOSA5sDpAPNA/ED+AQcBFMEewTQBO8FPQVtBZ8FyAXNBgsGFAYdBjUGPgZPBn4G
mQa1Bt0HJgd6B34HhgeOB6QH3Qg9CEEISghTCGwIhAiJCJMInQi3CMEI2wkHCYIJlgoXCkIKkArR
CtUK3QrvCwELBQsNCxULjAuvDAUMCQwRDF8MgwyIDJEMmwyyDLwM0gzoDVANZw2IDbINtw3FDc4N
+Q4ODowOkA6YDp8Oug7ADtUO2Q7hDxUPLA99D7YQCBBVELQRDhFxEaASJhKHEooSkxK4EskS7RMH
EyUTVROtFBUUIBRBFO0VPRVOFWMVcRV1FYQVkxXJFf8WZxbNFvoXJxcrFy8XXxd2F5IXuhfpGBYY
HxgnGE4YWxkgGe8aTBqfGscbAhsSG44cCx1VHdseIB5AHkQeeh6ZHrIe1B77HwgfFx8rH24fkx+w
H7IftB/OH9Af9yAeIFIgVCBhIIMgkCCSILwgwCDEIMggzCDQ5aC29wv3S/tL9377PqiBt4D3BuC2
EvdeqI73R/sRtYio///jXCn/ACCj1+OzE8MY9+ziFZOTkJQfnG+XqxqioKGpHrOXVLAbmZOTlR8T
lxiy+wWHwRqgm56kj4+KipAeE4qIhqCpcaMbmJKXlZeAlX5XYp23HxOWiMXPgagalYKTgR4Tlyhu
h1VlG3x3kp0fpaaunBqkepR7eIN7gR4ToyiHj2mBGmx3b3IeE6KIT4f3JVQbfYN8fh8Twohs6GFR
GniDeXYeVWXkWxt4gIJ5HxOTGFj3IKUoGn2EfXMeeneWdBtxf3t7fJZ8nh+kmqGoG6mme2YfE8MY
ZWuAdRp6l4OXmqGVop2LrbIe12srqRsTk0hTXhWAlIGXl5SVlpeClX9/goF/Hvc0+HIVgJOAmJaT
lpaVg5aAfoOAgR4O+3UOs0QKDrNECvsV+CsgCrMpHcacAfcfrvc7rgM1CveD+gEVUMBbzczAu8Ye
aAZZZmNdXGazvR5q/JQxHbM3CvdtUwqj/CYxHbMpHeLUAfc407fTA0Ad+zD4aiQdszcK93t8HWH8
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
AffamUEK94r7ipn3iveKmfuK94p9+4r7igYO91N1Hb/3SfgDAdv4AwPb+K8V90L7QvtC+0KVgfdC
90L3QvtClJX7QvdC90L3QoKU+0L7QvtC90IFDvdT9zPu75nv7gH3sO4D2/f6FTIK92D7N1IK980E
Tx33U/eWmfdOmQHb+I4D2/heFTIK+2oEMgoOVW8Kqe4Vkwbu6Pcn8vbKCJEHIMr7J/Io6AiDBved
+5oFDlVvCvgT7hWTBvud95r3nfeaBYMGKC77JyQgTAiFB/ZM9yck7i4IDiD47yEdvfegF/eFTAou
+Ln3KwG9964Dvfi5Igr39FsKE2rAgB0TpsBmHROXwE8KDvmKWwqgmPf6mRNKAIAdEyaAZh0TkUBP
ChOQMPgdFiHiNPX04uL19DTiIiE0NCIemBbt3N3u7ds5KSg7OykoOtvuHg74zNQBvdO30wP3XvjM
FZ+bm6Cfe5t3d3t7d3abe58f+yywFXYd+MzUAb3TA+H4zBWfm5ugn3ubd3d7e3d2m3ufHw5xHVkK
+H73NAG992oD9yr4fhWUBvT3NAVCBvshfh1OCoYd9w74uRWpx8K0wr0IVAZeYnJlfGl7rXKxXbQI
VAbDWcJiqk8IDvjlnAHHrvc7rgP3R/jlFczAu8YfaAZZZmNdXGazvR5oBlDAW80eDvjJJgoBvSYK
A/cc+MkVurKyurpkslxcZGRcXLJkuh9L4RWuqKiurqhuaGhubmhobqiuHg5ICvkJrQG992sDvfkJ
KB344O4Bpu4D9yD5dxWQB1VQZkk/HaehoaZQHR+rkriiqRsO+yXuAbTuA6b7WWwdDksK+z6wAb2z
A/dA+zcVna8FYXhRpMkanpSbmpcedQZwd3xxcBpDyHDIoB4O9xFxHfcRWQr7fU4K9xFICvvbSwp8
mvlkmgb7nZoHHqA3/wwJiwwL+G8VoxMAUgIAAQAIAA4AEQAXAB0AJAApADkAQwBJAE4AcQB+AIgA
oAC7ANUA3ADjAPYBCgETASYBMAE9AUQBTQFQAVoBZAFsAXMBegGAAYgBkQGgAbIB+QIaAiYCYQJ9
ApQCtALKAtEC2ALgAvMDBAMJAyoDSgNNA1wDYQN2A38DmQOlA70D1APeA+cD7QP5BAQEEwQeBCwE
MAQ9BEUETQRZBGIEawR0BH0EgwSIFZCFPwoFDqB2+WR3C1UKDgdWSCMdC3yPFSsdC1ZIhm2GHguh
9xShC8HGsM2qdqFvb3V1cD4KHwuF9wSM97mW5wgLfKz5UncL1vjN4QuJHRIn+iT7KPcoE7BOHRPQ
eh0FE6ik7qOo5ZwIRwoTsFMdCyEKAfc/0ef3KQM2CgslHQGVKgoDNB0LymQF94g6Cgf7GYD7GZYF
hweqhM6IVhoLgMCD95eR9wcIhAb8KIpFgvsrG34GbEiTuB8L+0UHemVchFAb+077Gvcu92n3Q+73
Gfc8HwvUyZ6pvR8L+I6Z/I4GC3w9CveeyBPodx0T2EkKE+hzHQuByG0K+LKSE9hCHRO4KAoT2FwK
C0gd96uPB3AdC9WPFSsd96lkHfc1++kY+54jCgspHQEn+V8DNQoLi5n5VncB3dH34WAdCyAd/N4j
CgsHwM6OqpIejwt/HQ77Lmz7Fftgph4LmvlkmhKfkobHC3EKkZKMjZAL91D3IFekC+4Bqe4D2wsD
2/f6FQugOh33fUMKC1od9zX4UF8KCzcK94X4ARXg95bp+5YFC6B2+VqVAYCS91PR91OWA14dC3KP
FYf3jY8HTpZSlNQa+LgH9+79GQWU+QMG1MSUyJYej/uNhwfHgMSCQhr8Uwf7vvi0BftWhQa9uYlf
tB/8zwdCUoJPgB4LdB2uvovFUh2whLaLlWigQxj7Dfxt+yf4tYKtzYy2Uh0L+O8hHYv3oBf3U0wK
+yPnVbrlGtS/vOv3ArIs+zkekAajjfccktceol9dm0wb+y9M+wU3IM1c9wc+H/cLO6VfVxo4W1sx
HgsHuMmT1/dt6Psh+2H7Wyb7J/tQHnYGbCCTuB8OVB0B9yi9A737ZBVkCqOyBX4GZ05mCg747xWs
rqazlB+HjQVre3aCdBsTYGIKPB0T4LujU78bDnzuQHYSt+4TYKlIFYYHE6AnChNgLB2GHXf4uSIK
9938AWgdC0sdMfemVx0L9zPLS/spkh+SBoX3B4/Hkb8ICxVxCqahoaemdaFwb3V1cB4L+ZNVCgv3
QxWQBvs39073N/dOBYYGTkkxQkleCIcHzV7lQshJCAsVwga5tKSxm62aaaRluGIIwgZUvVS0bcds
T1RiU1kIC0odDgd4eYB1dEkdmZCYlJUeC2YKZAoL+Kr3OQG991UDwviqFT8K+yH7MwUOE7hQHR6B
HR8LfJmhdvfymYWX9/J3opcSvZj33ZibmffcmQtlCvtj9yD7LvdxHwv4ahWRBpPend+Y3mGHGGKP
mDicN5M4GQt8FfcM9wPp9xr3Lvs7zC6BH/eX974FC2cKJC5J+yDLHgv09zQFQgbGfh1sCvzeBwtY
c8NXG2pocGOCHwuHB/dzZd3y9zcaC4YH5nvEq9Qav2GpXogeC1Ud+3T7J/tC+2YLBbmGm2tvGkhc
gFiNHgsVaAoL92EHu7GTtvcDtEgyCxrrVMj7NB4LdUmBavsDegsG9Pd+BX0GIvt+BQuHBqmGzoZW
Ggv5NJeBdxKVuwsatYbR+xHaHgvu+KABqff9Awv3+pkB2wtvoXWnCwAAAQACAA4AAAAAAAAANgAC
AAYAAgB0AAEApwCoAAEArACuAAEAsACwAAEAuAC5AAEAvADKAAMAAQACAAAADAAAABQAAQACAMgA
yQACAAEAvADHAAAAAQAAAAoAbgDiAAJERkxUAA5sYXRuAB4ABAAAAAD//wADAAAABQAKABYAA01P
TCAAIk5MRCAALlJPTSAAOgAA//8AAwABAAYACwAA//8AAwACAAcADAAA//8AAwADAAgADQAA//8A
AwAEAAkADgAPa2VybgBca2VybgBca2VybgBca2VybgBca2VybgBcbWFyawBkbWFyawBkbWFyawBk
bWFyawBkbWFyawBkbWttawBsbWttawBsbWttawBsbWttawBsbWttawBsAAAAAgAAAAEAAAACAAIA
AwAAAAIABAAFAAYADgBWAmgDGgmgCfIAAgAIAAEACAACABQABAAAABoAHgABAAIAAP/EAAEAAQCb
AAIAAAACAAUADgAOAAEAIgAiAAEAPwBDAAEARwBIAAEASwBLAAEAAgAIAAIACgAiAAEADAAEAAAA
AQASAAEAAQATAAEAPwAoAAIAxAAEAAAA/gFiAAoACQAA/+IAMgAAAAAAAAAAAAAAAAAAAAAAAP/i
/+L/4gAAAAAAAAAAAAAAAP/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAA/84AAAAAAAD/
sAAA/9gAAAAA/9gAAP/iAAAAAAAeAAD/4gAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAADwAA
AAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAABABsAAgADAAUABgAHAAsA
DQAOABEAEwAhADIANAA/AEAAQQBCAEMARwBJAEsAVgBkAGUAagBrAK0AAgAQAA0ADQAFAA4ADgAB
ABEAEQABABMAEwAFACEAIQACADIAMgADADQANAAEAD8AQwAFAEcARwAFAEkASQAGAEsASwAFAFYA
VgAHAGQAZQAIAGoAagAJAGsAawAIAK0ArQABAAIAFwACAAMAAwAFAAcAAwALAAwAAwANAA0ABAAO
AA4ABgATABMABAAXABcABAAhACEABAAiACIABgAmACcABAAyADIABAA0ADQABAA/AEMABgBHAEgA
BgBJAEkABABLAEsABgBMAEwABABWAFYABQBaAF4ABwBkAGUAAQBrAGsAAQCCAIIAAgCcAJwACAAE
AAAAAQAIAAEADAAWAAIAKgBkAAIAAQC8AMkAAAABAAgApwCoAKwArQCuALAAuAC5AA4AAQe6AAEH
wAABB8YAAQfMAAEH0gABB9gAAQfeAAEH5AABB+oAAQfwAAEH9gABB/wAAAc4AAAHPgAIA9gD0gWa
BawAIgAoA9gD0gW4BdAALgA0AAAAOgAAAEAAAQHYAAAAAQH1At8AAQEjAAAAAQE0Au4AAQDqAnMA
AQC/ArwABAAAAAEACAABAAwAFgADACAAZAACAAEAvADKAAAAAgABAAIAdAAAAA8AAgcSAAIHGAAC
Bx4AAgckAAIHKgACBzAAAgc2AAIHPAACB0IAAgdIAAIHTgACB1QAAAaQAAAGlgABAD4AAQCD//QA
cwLkAuoC2ALkAuoCtALkAuoCugLkAuoCwALkAuoCxgLkAuoCzALkAuoC0gLkAuoC2ALkAuoC3gLk
AuoC8AL2AAAC/AMCAAADCAMmAAADIAMmAAADDgMmAAADFAMaAAADIAMmAAADLAM4AAADMgNEAAAD
SgM4AAADPgNEAAADSgXGA4ADegXGA4ADUAXGA4ADVgXGA4ADXAXGA4ADYgXGA4ADaAXGA4ADbgXG
A4ADdAXGA4ADegXGA4ADhgOMAAADkgOqAAADpAOqAAADmAOeAAADpAOqAAADsAO2AAADvAUkBSoF
MAPCBSoDyAUkBSoDzgUkBSoD1AUkBSoD2gUkBSoD4AUkBSoD5gUkBSoFMAUkBSoD7AUkAAAD8gUk
AAAD+AP+AAAECgQEAAAECgQWAAAEKAQWAAAEEAQWAAAEHAQiAAAEKAQuAAAENAQ6AAAEQAReAAAE
WAReAAAERgReAAAETARSAAAEWAReAAAEZASmBNYEagSmBNYEcASmBNYEdgSmBNYEfASmBNYEggSm
BNYEiASmBNYEjgSUBJoEoASmBNYErASyBLgEvgTEAAAEygUkBSoFMATQBNYE3AToAAAE+gToAAAE
4gToAAAE7gT0AAAE+gUGAAAFHgUGAAAFAAUGAAAFDAUSAAAFHgUYAAAFHgUkBSoFMAU2AAAFTgU2
AAAFPAVCAAAFTgVIAAAFTgWEBYoFeAWEBYoFVAWEBYoFWgWEBYoFYAWEBYoFZgWEBYoFbAWEBYoF
cgWEBYoFeAWEBYoFfgWEBYoFkAWWAAAFnAW6AAAFogW6AAAFqAW6AAAFrgW6AAAFtAW6AAAFwAXG
AAAFzAXwAAAF0gXwAAAF2AXwAAAF3gXwAAAF5AXwAAAF6gXwAAAF9gYOAAAF/AYOAAAGAgYOAAAG
CAYOAAAGFAABASADpwABAQIDcQABAQIDmgABAQIDawABAOQDpwABAQIDMgABAQIC7gABAQIDsQAB
ARYAAAABAgwACgABAQIDHAABAVgAAAABAVgCvAABASkAAAABASkCvAABAZsDmAABAX0DkgABAWD/
JwABAX0C3wABAWAAAAABAX0DWwABARMC0AABAVkAAAABARMDgwABAYkAAAABAUMC0AABAScDpwAB
AQkDoQABAQkDmgABAQkDawABAQkDagABAOsDpwABAQkDMgABAQkC7gABAd0ACgABAQkDHAABAPgA
AAABAPgCvAABAWEDYgABAWH/NwABAWEC3wABAWEAAQABAWEDWwABARMAAAABARMCvAABAWEAAAAB
AWECvAABAJQDpgABAHYDmQABAHYDagABAFgDpgABAHYDMQABAHYDGwABAHYCvAABAJQDdQABAPMA
AAABAPP/NgABAPMCvAABAJEDhQABAQIAAAABAHMDfwABAQL/NgABAHMCzAABAScAAAABAJgCzAAB
AT0AAAABAT0CvAABASkDmgABAQsDlAABAQv/NgABAQsC4QABAQsAAAABAQsDDwABAXQC4QABAZID
mgABAXQDjQABAXQDXgABAVYDmgABAagDxwABAXQDJQABAY4AAAABAroACgABAYsC4QABAXcAAAAB
AXQDDwABAK0AAAABAUEACgABAK0CvAABAN0AAAABAN0CvAABAX4AAAABAqMACgABAX4CvAABARAD
iQABAPUAAAABAPIDgwABAPX/NgABAPIC0AABAQ4DmAABANQAAAABAPADkgABANT/JwABANT/NgAB
APAC3wABAHYAAAABANQACgABAHYC7QABAN4AFwABAN4DbwABAN7/PgABAN7/TQABAN4CvAABAZQD
pwABAXYDmgABAXYDawABAVgDpwABAaoD1AABAXYDMgABAXYC7gABAXYDsQABAV4AAAABAgAACgAB
AXYDHAABAMIAAAABAMICvAABAWcC0AABAYUDiQABAWcDfAABAWcDTQABAd4AAAABAUkDiQABAQkA
AAABAQkCvAABANAC7gABAO4DpwABANADmgABANADawABALIDpwABAL8AAAABANADHAABASoC0AAB
AUgDiQABASoDgwABARkAAAABASoDTAAGABAAAQAKAAAAAQAMABQAAQAeADQAAQACAMgAyQABAAMA
yADJAM8AAgAAAAoAAAAQAAEAVAAAAAEAfAAAAAMACAAOAA4AAQBU/zYAAQB8/ycABgAQAAEACgAB
AAEADAAWAAEAJgCgAAIAAQC8AMcAAAACAAIAvADHAAAAywDOAAwADAAAADIAAAA4AAAAPgAAAEQA
AABKAAAAUAAAAFYAAABcAAAAYgAAAGgAAABuAAAAdAABAJACBAABAFYCBQABALECAgABAHUCAgAB
AGkB1gABAHkCEAABAHkCCQABALMCOQABAIgCHgABAIYCRQABAJ4CUwABAFQB1gAQACIAKABMAEwA
LgBSAFIANAA6AFgAQABGAEwATABSAFgAAQCQAoEAAQBWAoEAAQCdArwAAQCzArwAAQCIAuEAAQCe
ApcAAQBUAugAAQCTArsAAQB5ArwAAQCGAnMAAQAAAAoAYACkAAJERkxUAA5sYXRuABoABAAAAAD/
/wABAAAAFgADTU9MIAAeTkxEIAAoUk9NIAAyAAD//wABAAEAAP//AAIAAgAFAAD//wACAAMABgAA
//8AAgAEAAcACGFhbHQAMmFhbHQAMmFhbHQAMmFhbHQAMmFhbHQAMmxvY2wAPmxvY2wAOGxvY2wA
PgAAAAEAAAAAAAEAAgAAAAEAAQAEAAoAIgA4AFoAAQAAAAEACAABAAYAAQABAAMAMABTAFgAAQAA
AAEACAABAAYAAQABAAIAUwBYAAYAAAABAAgAAQAoAAEACAABAAQAAQApAAEAAAABAAAAAwABAAAA
AQAIAAEABgABAAEAAQAwAAA=") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ── VARIABLES HORIZON — override couleurs et typo ── */
:root {
  /* Couleurs */
  --color-background: #ffffff;
  --color-foreground: #000000;
  --color-primary: #000000;
  --color-primary-hover: #333333;

  /* Boutons primaires */
  --color-primary-button-background: #000000;
  --color-primary-button-text: #ffffff;
  --color-primary-button-border: #000000;
  --color-primary-button-hover-background: #ffffff;
  --color-primary-button-hover-text: #000000;
  --color-primary-button-hover-border: #000000;

  /* Boutons secondaires */
  --color-secondary-button-background: transparent;
  --color-secondary-button-text: #000000;
  --color-secondary-button-border: #000000;
  --color-secondary-button-hover-background: #000000;
  --color-secondary-button-hover-text: #ffffff;
  --color-secondary-button-hover-border: #000000;

  /* Variantes produit */
  --color-variant-background: transparent;
  --color-variant-text: #000000;
  --color-variant-border: rgba(0,0,0,0.2);
  --color-selected-variant-background: #000000;
  --color-selected-variant-text: #ffffff;
  --color-selected-variant-border: #000000;

  /* Inputs */
  --color-input-background: #ffffff;
  --color-input-text: #000000;
  --color-input-border: rgba(0,0,0,0.2);
  --color-input-hover-background: #f5f5f5;

  /* Border radius — tout à 0 */
  --style-border-radius-buttons-primary: 0px;
  --style-border-radius-buttons-secondary: 0px;
  --style-border-radius-inputs: 0px;
  --style-border-radius-popover: 0px;
  --style-border-radius-pills: 0px;
  --style-border-radius-swatch: 0px;
  --variant-picker-swatch-radius: 0px;
  --variant-picker-button-radius: 0px;

  /* Typographie corps */
  --font-paragraph--family: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --font-paragraph--style: normal;
  --font-paragraph--weight: 400;

  /* Typographie titres — NewEddy Display */
  --font-h1--family: "NewEddy Display", "Bodoni Moda", Georgia, serif;
  --font-h1--style: normal;
  --font-h1--weight: 400;
  --font-h1--letter-spacing: 0.02em;
  --font-h1--case: uppercase;

  --font-h2--family: "NewEddy Display", "Bodoni Moda", Georgia, serif;
  --font-h2--style: normal;
  --font-h2--weight: 400;
  --font-h2--letter-spacing: 0.02em;
  --font-h2--case: uppercase;

  --font-h3--family: "NewEddy Display", "Bodoni Moda", Georgia, serif;
  --font-h3--style: normal;
  --font-h3--weight: 400;
  --font-h3--letter-spacing: 0.02em;
  --font-h3--case: uppercase;

  --font-h4--family: "NewEddy Display", "Bodoni Moda", Georgia, serif;
  --font-h4--style: normal;
  --font-h4--weight: 400;
  --font-h4--letter-spacing: 0.02em;
  --font-h4--case: uppercase;

  --font-h5--family: "Courier New", Courier, monospace;
  --font-h5--style: normal;
  --font-h5--weight: 500;
  --font-h5--letter-spacing: 0.25em;
  --font-h5--case: uppercase;

  --font-h6--family: "Courier New", Courier, monospace;
  --font-h6--style: normal;
  --font-h6--weight: 500;
  --font-h6--letter-spacing: 0.25em;
  --font-h6--case: uppercase;

  /* Boutons typo */
  --button-font-family-primary: "Courier New", Courier, monospace;
  --button-text-case-primary: uppercase;
  --button-font-family-secondary: "Courier New", Courier, monospace;
  --button-text-case-secondary: uppercase;
}

/* ── HEADER ── */
header-component,
.header,
[class*="header-wrapper"],
#header-group {
  background-color: #000 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* Liens nav */
header-component a,
.header a,
[class*="header-wrapper"] a {
  color: rgba(255,255,255,0.75) !important;
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
header-component a:hover,
.header a:hover {
  color: #fff !important;
}

/* Logo */
.header__logo,
.header__heading,
[class*="header__logo"],
[class*="store-name"] {
  font-family: "NewEddy Display", "Bodoni Moda", Georgia, serif !important;
  font-size: 18px !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  font-weight: 400 !important;
}

/* Icônes header */
header-component svg,
.header svg,
[class*="header-wrapper"] svg {
  color: rgba(255,255,255,0.75) !important;
  stroke: rgba(255,255,255,0.75) !important;
}
header-component button:hover svg,
.header button:hover svg {
  color: #fff !important;
  stroke: #fff !important;
}

/* ── ANNONCE BAR ── */
.announcement-bar,
[class*="announcement"] {
  background-color: #000 !important;
  color: rgba(255,255,255,0.6) !important;
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.announcement-bar a,
[class*="announcement"] a {
  color: rgba(255,255,255,0.6) !important;
}

/* ── BODY ── */
body {
  background-color: #ffffff;
  color: #000000;
}

/* ── TITRES — NewEddy Display ── */
h1, h2, h3, h4,
.product-card__title,
.product-card__title *,
[class*="product-title"],
[class*="product-card"] h3,
[class*="product-card"] h4,
.collection-card__title,
[class*="collection-title"] {
  font-family: "NewEddy Display", "Bodoni Moda", Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}

/* h5 h6 en Courier */
h5, h6,
.overline,
[class*="overline"],
[class*="eyebrow"] {
  font-family: "Courier New", Courier, monospace !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
}

/* ── PRIX ── */
.price,
product-price,
[class*="price"] {
  font-family: "Courier New", Courier, monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
}

/* ── BOUTONS ── */
.button,
button[type="submit"],
.add-to-cart-button,
.shopify-payment-button__button--unbranded {
  font-family: "Courier New", Courier, monospace !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  background-color: #000 !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px #000 !important;
}
.button:hover,
button[type="submit"]:hover,
.add-to-cart-button:hover {
  background-color: #fff !important;
  color: #000 !important;
}

/* ── CARDS PRODUITS ── */
.product-card,
.product-grid__card {
  border-radius: 0 !important;
}
.product-grid__item {
  border: none !important;
  border-radius: 0 !important;
}

/* ── SÉLECTEUR DE TAILLES ── */
.variant-option__button-label {
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
}

/* ── PAGE COLLECTION — titre en plein écran noir ── */
[class*="collection-hero"],
.section-collection-hero {
  background-color: #000 !important;
  color: #fff !important;
}
[class*="collection-hero"] h1,
[class*="collection-hero"] h2 {
  color: #fff !important;
  font-size: clamp(48px, 8vw, 120px) !important;
  line-height: 0.92 !important;
}

/* ── PAGE PRODUIT ── */
.product-card__title h1,
[class*="product__title"] {
  font-size: clamp(32px, 5vw, 72px) !important;
  line-height: 0.95 !important;
}

/* ── FOOTER ── */
footer,
.footer,
[class*="footer"] {
  background-color: #000 !important;
  color: rgba(255,255,255,0.5) !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}
footer a,
.footer a,
[class*="footer"] a {
  color: rgba(255,255,255,0.5) !important;
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
footer a:hover,
.footer a:hover {
  color: #fff !important;
}
[class*="footer__heading"],
.footer h2,
.footer h3 {
  font-family: "NewEddy Display", "Bodoni Moda", Georgia, serif !important;
  font-weight: 400 !important;
  color: #fff !important;
  text-transform: uppercase !important;
}

/* ── INPUTS ── */
input:not([type='checkbox'], [type='radio']),
textarea,
select {
  border-radius: 0 !important;
}

/* ── PANIER ── */
[class*="cart-count"],
.cart-count-bubble {
  background-color: #fff !important;
  color: #000 !important;
  border-radius: 50% !important;
}

/* ── REMOVE ALL RADIUS ── */
.button,
.button-secondary,
.field__input,
.quantity-selector,
.variant-option__button-label,
.swatch,
dialog,
.dialog-modal,
.drawer,
.pills__pill {
  border-radius: 0 !important;
}