/** Shopify CDN: Minification failed

Line 2147:12 Expected identifier but found whitespace
Line 2147:13 Unexpected "var("

**/
:root {
  --alpha-button-background: 1;
  --alpha-button-border: 1;
  --alpha-link: 0.85;
  --alpha-badge-border: 0.1;
  --focused-base-outline: 0.2rem solid rgba(var(--color-foreground), 0.5);
  --focused-base-outline-offset: 0.3rem;
  --focused-base-box-shadow: 0 0 0 0.3rem rgb(var(--color-background)),
    0 0 0.5rem 0.4rem rgba(var(--color-foreground), 0.3);
}

/* Colors */
.highlight {
  color: rgb(var(--color-highlight)) !important;
}

/* Base */
.page-width {
  width: 100%;
  max-width: calc(var(--page-width) + (var(--page-padding-mobile) * 2));
  margin: 0 auto;
  padding: 0 var(--page-padding-mobile);
}

.narrow-width {
  width: 100%;
  max-width: calc(var(--narrow-width) + (var(--page-padding-mobile) * 2));
  margin: 0 auto;
  padding: 0 var(--page-padding-mobile);
}

.large-width {
  width: 100%;
  max-width: calc(var(--large-width) + (var(--page-padding-mobile) * 2));
  margin: 0 auto;
  padding: 0 var(--page-padding-mobile);
}

.full-width {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 var(--page-padding-mobile);
}

.screen-width {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
}

@media screen and (max-width: 749px) {
  .full-width--mobile {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 var(--page-padding-mobile);
  }

  .screen-width--mobile {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
}

@media screen and (min-width: 750px) {
  .page-width {
    max-width: calc(var(--page-width) + (var(--page-padding-desktop) * 2));
    padding: 0 var(--page-padding-desktop);
  }

  .narrow-width {
    max-width: calc(var(--narrow-width) + (var(--page-padding-desktop) * 2));
    padding: 0 var(--page-padding-desktop);
  }

  .large-width {
    max-width: calc(var(--large-width) + (var(--page-padding-desktop) * 2));
    padding: 0 var(--page-padding-desktop);
  }

  .full-width {
    padding: 0 var(--page-padding-desktop);
  }
}

.isolate {
  position: relative;
  z-index: 0;
}

s {
  text-decoration: none;
  position: relative;
}

s::before {
  content: '';
  width: 100%;
  position: absolute;
  right: 0;
  top: 50%;
  border-bottom: 1px solid #656868;
}

.background-secondary {
  background-color: rgba(var(--color-foreground), 0.04);
}

.grid-auto-flow {
  display: grid;
  grid-auto-flow: column;
}

.page-margin,
.shopify-challenge__container {
  margin: 7rem auto;
}

.rte-width {
  max-width: 82rem;
  margin: 0 auto 2rem;
}

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

.hidden {
  display: none !important;
}

@media screen and (min-width: 750px) {
  .hidden--desktop {
    display: none !important;
  }
}

@media screen and (max-width: 749px) {
  .small-hide {
    display: none !important;
  }

  .hidden--mobile {
    display: none !important;
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  .medium-hide {
    display: none !important;
  }
}

@media screen and (min-width: 990px) {
  .large-up-hide {
    display: none !important;
  }
}

.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  word-wrap: normal !important;
}

.visually-hidden--inline {
  margin: 0;
  height: 1em;
}

.overflow-hidden {
  overflow: hidden;
}

.skip-to-content-link:focus {
  z-index: 9999;
  position: inherit;
  overflow: auto;
  width: auto;
  height: auto;
  clip: auto;
}

.full-width-link {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
}

::selection {
  background-color: rgba(var(--color-foreground), 0.2);
}

/* Typography */

h1,
h2,
h3,
h4,
h5,
h6,
.h0,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: var(--font-heading-family);
  font-style: var(--font-heading-style);
  font-weight: var(--font-heading-weight);
  line-height: var(--font-heading-height);
  letter-spacing: var(--font-heading-spacing);

  color: rgb(var(--color-foreground));
  word-break: break-word;
}

@media only screen and (min-width: 750px) {
  .h0,
  .h0--desktop {
    font-size: var(--font-heading-h0);
  }

  h1,
  .h1,
  .h1--desktop {
    font-size: var(--font-heading-h1);
  }

  h2,
  .h2,
  .h2--desktop {
    font-size: var(--font-heading-h2);
  }

  h3,
  .h3,
  .h3--desktop {
    font-size: var(--font-heading-h3);
  }

  h4,
  .h4,
  .h4--desktop {
    font-size: var(--font-heading-h4);
  }

  h5,
  .h5,
  .h5--desktop {
    font-size: var(--font-heading-h5);
  }

  h6,
  .h6,
  .h6--desktop {
    font-size: var(--font-heading-h6);
  }
}

@media screen and (max-width: 749px) {
  .h0,
  .h0--mobile {
    font-size: var(--font-heading-h0-mobile);
  }

  h1,
  .h1,
  .h1--mobile {
    font-size: var(--font-heading-h1-mobile);
  }

  h2,
  .h2,
  .h2--mobile {
    font-size: var(--font-heading-h2-mobile);
  }

  h3,
  .h3,
  .h3--mobile {
    font-size: var(--font-heading-h3-mobile);
  }

  h4,
  .h4,
  .h4--mobile {
    font-size: var(--font-heading-h4-mobile);
  }

  h5,
  .h5,
  .h5--mobile {
    font-size: var(--font-heading-h5-mobile);
  }

  h6,
  .h6,
  .h6--mobile {
    font-size: var(--font-heading-h6-mobile);
  }
}

.special {
  font-family: var(--font-special-family);
}

p {
  margin: 0.5rem 0 1rem 0;
}

.body {
  font-family: var(--font-body-family);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);
  color: rgb(var(--color-foreground));
  margin: 0;
}

@media only screen and (min-width: 750px) {
  .body {
    font-size: var(--font-body);
  }

  .body--desktop {
    font-size: var(--font-body) !important;
  }

  .body--xsmall {
    font-size: var(--font-body-xsmall);
  }

  .body--xsmall-desktop {
    font-size: var(--font-body-xsmall) !important;
  }

  .body--small {
    font-size: var(--font-body-small);
  }

  .body--small-desktop {
    font-size: var(--font-body-small) !important;
  }

  .body--large {
    font-size: var(--font-body-large);
  }

  .body--large-desktop {
    font-size: var(--font-body-large) !important;
  }

  .body--xlarge {
    font-size: var(--font-body-xlarge);
  }

  .body--xlarge-desktop {
    font-size: var(--font-body-xlarge) !important;
  }
}

@media screen and (max-width: 749px) {
  .body {
    font-size: var(--font-body-mobile);
  }

  .body--mobile {
    font-size: var(--font-body-mobile) !important;
  }

  .body--xsmall {
    font-size: var(--font-body-xsmall);
  }

  .body--xsmall-mobile {
    font-size: var(--font-body-xsmall) !important;
  }

  .body--small {
    font-size: var(--font-body-small-mobile);
  }

  .body--small-mobile {
    font-size: var(--font-body-small-mobile) !important;
  }

  .body--large {
    font-size: var(--font-body-large-mobile);
  }

  .body--large-mobile {
    font-size: var(--font-body-large-mobile) !important;
  }

  .body--xlarge {
    font-size: var(--font-body-xlarge);
  }

  .body--xlarge-mobile {
    font-size: var(--font-body-xlarge) !important;
  }
}

.left {
  text-align: left;
  align-items: flex-start;
}

.center {
  text-align: center;
  align-items: center;
  justify-content: center;
}

.right {
  text-align: right;
  align-items: flex-end;
  justify-content: flex-end;
}

@media only screen and (min-width: 750px) {
  .left--desktop {
    text-align: left !important;
    align-items: flex-start !important;
  }

  .center--desktop {
    text-align: center !important;
    align-items: center !important;
  }

  .right--desktop {
    text-align: right !important;
    align-items: flex-end !important;
  }
}

@media only screen and (max-width: 749px) {
  .left--mobile {
    text-align: left !important;
    align-items: flex-start !important;
  }

  .center--mobile {
    text-align: center !important;
    align-items: center !important;
  }

  .right--mobile {
    text-align: right !important;
    align-items: flex-end !important;
  }
}

.uppercase {
  text-transform: uppercase;
}

.light {
  font-weight: 300;
}

.normal {
  font-weight: 400;
}

.medium {
  font-weight: 500;
}

.bold {
  font-weight: 700;
}

.italic {
  font-style: italic;
}

blockquote {
  font-style: italic;
  color: rgb(var(--color-foreground));
  border-left: 0.2rem solid rgba(var(--color-foreground), 0.2);
  padding-left: 1rem;
}

@media screen and (min-width: 750px) {
  blockquote {
    padding-left: 1.5rem;
  }
}

table:not([class]) {
  table-layout: fixed;
  border-collapse: collapse;
  border-style: hidden;
  box-shadow: 0 0 0 0.1rem rgba(var(--color-foreground), 0.2);
}

table:not([class]) td,
table:not([class]) th {
  padding: 1em;
  border: 0.1rem solid rgba(var(--color-foreground), 0.2);
}

a:empty,
ul:empty,
dl:empty,
div:not(.spacer):empty,
section:empty,
article:empty,
p:empty,
h1:empty,
h2:empty,
h3:empty,
h4:empty,
h5:empty,
h6:empty {
  display: none;
}

.link,
a:not([class]),
.customer a {
  color: rgb(var(--color-link));
  cursor: pointer;
  border: none;
  box-shadow: none;
  text-decoration: var(--link-decoration);
  text-underline-offset: 0.2rem;
  color: inherit;
  background-color: transparent;
  transition: all var(--duration-short) ease;
}

button.link {
  padding-left: 0;
  padding-right: 0;
}

.link[disabled],
.link--disabled {
  cursor: default;
  color: #c1c1c1 !important;
}

.link:not(.link--unstyled):hover,
.link:not(.link--unstyled):focus-visible {
  color: rgb(var(--color-link-hover));
  text-decoration: var(--link-decoration-hover);
}

.link:focus-visible {
  color: rgb(var(--color-link-hover));
  text-decoration: var(--link-decoration-hover);
}

.link--hover {
  text-decoration: none !important;
}

.link--hover:hover {
  text-decoration: underline !important;
}

.link--text {
  color: rgb(var(--color-foreground)) !important;
}

.link--naked,
.link--unstyled,
.full-unstyled-link {
  text-decoration: none !important;
}

.link--arrow {
  display: inline-flex;
  gap: 1rem;
  text-decoration: none;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.15em;
  align-items: center;
}

.link--arrow:after {
  content: '';
  height: 11px;
  width: 14px;
  background: url(https://cdn.shopify.com/s/files/1/1868/5437/files/Vector_5_Black.png?v=1728075356);
}

.link--arrow:hover:after {
  background: url(https://cdn.shopify.com/s/files/1/1868/5437/files/Vector_5.png?v=1728075321);
}

.link--arrow[disabled]:after,
.link--arrow.link--disabled:after {
  background: url(https://cdn.shopify.com/s/files/1/1868/5437/files/Vector_5_Grey.png?v=1728075574) !important;
}

a:not([href]) {
  cursor: not-allowed;
}

.circle-divider::after {
  content: '\2022';
  margin: 0 1.3rem 0 1.5rem;
}

.circle-divider:last-of-type::after {
  display: none;
}

hr {
  border: none;
  height: 0.1rem;
  background-color: rgba(var(--color-foreground), 0.2);
  display: block;
  margin: 5rem 0;
}

@media screen and (min-width: 750px) {
  hr {
    margin: 7rem 0;
  }
}

.placeholder {
  background-color: rgba(var(--color-foreground), 0.04);
  color: rgba(var(--color-foreground), 0.55);
  fill: rgba(var(--color-foreground), 0.55);
}

details > * {
  box-sizing: border-box;
}

.break {
  word-break: break-word;
}

.visibility-hidden {
  visibility: hidden;
}

@media (prefers-reduced-motion) {
  .motion-reduce {
    transition: none !important;
    animation: none !important;
  }
}

:root {
  --duration-short: 100ms;
  --duration-default: 200ms;
  --duration-medium: 300ms;
  --duration-long: 500ms;
  --duration-extra-long: 600ms;
  --duration-extra-longer: 750ms;
  --duration-extended: 3s;
  --ease-out-slow: cubic-bezier(0, 0, 0.3, 1);
  --animation-slide-in: slideIn var(--duration-extra-long) var(--ease-out-slow)
    forwards;
  --animation-fade-in: fadeIn var(--duration-extra-long) var(--ease-out-slow);
}

.inline-richtext a,
.rte.inline-richtext a {
  color: currentColor;
}

/* arrow animation */
.animate-arrow .icon-arrow path {
  transform: translateX(-0.25rem);
  transition: transform var(--duration-short) ease;
}

.animate-arrow:hover .icon-arrow path {
  transform: translateX(-0.05rem);
}

/* base-details-summary */
summary {
  cursor: pointer;
  list-style: none;
  position: relative;
}

summary .icon-plus {
  position: absolute;
  width: 0.75rem;
  right: 0rem;
  top: 50%;
  transform: translateY(-50%);
}

summary[aria-expanded='true'] .icon-plus {
  transform: translateY(-50%) rotate(45deg);
}

summary::-webkit-details-marker {
  display: none;
}

.disclosure-has-popup {
  position: relative;
}

.disclosure-has-popup[open] > summary::before {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: block;
  cursor: default;
  content: ' ';
  background: transparent;
}

.disclosure-has-popup > summary::before {
  display: none;
}

.disclosure-has-popup[open] > summary + * {
  z-index: 100;
}

@media screen and (min-width: 750px) {
  .disclosure-has-popup[open] > summary + * {
    z-index: 4;
  }

  .facets .disclosure-has-popup[open] > summary + * {
    z-index: 2;
  }
}

/*
 * R3.11 (client, deck slide 9): "on mobile when you click the CTA theres a
 * black box that pops up behind the text, can we remove?"
 *
 * That box is the mobile browser's DEFAULT tap highlight, not theme CSS —
 * measured as -webkit-tap-highlight-color: rgba(0,0,0,0.18) on every element,
 * with nothing in the theme setting it. On a black CTA it reads as a dark slab
 * flashing behind the label.
 *
 * Made transparent, not removed: the keyboard/`:focus-visible` ring below is
 * untouched, so the control is still visibly focusable for accessibility. Tap
 * feedback remains via the button's own :active/hover styling.
 */
html {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* Focus */
*:focus {
  outline: 0;
  box-shadow: none;
}

*:focus-visible,
.focused {
  outline: 3px solid #4678c6;
  outline-offset: 1px;
}

.focus-inset:focus-visible,
.focused.focus-inset {
  outline-offset: -1px;
}

.focus-offset:focus-visible,
.focus-offset.focused {
  outline-offset: 1px;
}

.focus-none {
  box-shadow: none !important;
  outline: 0 !important;
}

/** Flex Grid **/
.grid {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  list-style: none;
  column-gap: var(--grid-mobile-horizontal-spacing);
  row-gap: var(--grid-mobile-vertical-spacing);
  margin: 0;

  --adjustment: 0rem;
}

.grid.grid--gapless {
  column-gap: 0;
  row-gap: 0;
}

@media screen and (min-width: 750px) {
  .grid {
    column-gap: var(--grid-desktop-horizontal-spacing);
    row-gap: var(--grid-desktop-vertical-spacing);
  }
}

/* Grid Grid */
.grid--grid {
  display: grid;
  grid-column-gap: var(--grid-mobile-horizontal-spacing);
  grid-row-gap: var(--grid-mobile-vertical-spacing);
}

.grid--grid.grid--gapless {
  grid-column-gap: 0;
  grid-row-gap: 0;
}

@media screen and (max-width: 749px) {
  .grid--grid--mobile {
    display: grid;
  }
}

@media screen and (min-width: 750px) {
  .grid--grid {
    grid-column-gap: var(--grid-desktop-horizontal-spacing);
    grid-row-gap: var(--grid-desktop-vertical-spacing);
  }

  .grid--grid-desktop {
    display: grid;
    grid-column-gap: var(--grid-desktop-horizontal-spacing);
    grid-row-gap: var(--grid-desktop-vertical-spacing);
  }
}

/* Flex Grid Items */
.grid__item {
  height: auto;
  width: 100%;
}

.grid--grid .grid__item {
  width: 100% !important;
}

@media screen and (max-width: 749px) {
  /* Flex */
  .grid--1-col .grid__item,
  .grid--1-col-mobile .grid__item,
  .grid--1-5-col-mobile .grid__item {
    max-width: 100%;
    width: calc(100% - var(--adjustment));
  }

  .grid--2-col .grid__item,
  .grid--5-col .grid__item,
  .grid--6-col .grid__item,
  .grid--7-col .grid__item,
  .grid--2-col-mobile .grid__item,
  .grid--5-col-mobile .grid__item,
  .grid--6-col-mobile .grid__item,
  .grid--7-col-mobile .grid__item,
  .grid--2-5-col-mobile .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 2) -
        (var(--grid-mobile-horizontal-spacing) / 2 * 1)
    );
  }

  .grid--3-col .grid__item,
  .grid--4-col-mobile .grid__item,
  .grid--3-5-col-mobile .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 3) -
        (var(--grid-mobile-horizontal-spacing) / 3 * 2)
    );
  }

  .grid--4-col .grid__item,
  .grid--4-col-mobile .grid__item,
  .grid--4-5-col-mobile .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 4) -
        (var(--grid-mobile-horizontal-spacing) / 4 * 3)
    );
  }

  /* FlexPeek - Only apply on sliders */
  .slider--mobile.grid--1-5-col .grid__item,
  .slider--mobile.grid--1-5-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 1.5);
  }

  .slider--mobile.grid--2-5-col .grid__item,
  .slider--mobile.grid--2-5-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 2.5);
  }

  .slider--mobile.grid--3-5-col .grid__item,
  .slider--mobile.grid--3-5-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 3.5);
  }

  .slider--mobile.grid--4-5-col .grid__item,
  .slider--mobile.grid--4-5-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 4.5);
  }

  /* Peek - Only apply on sliders (Deprecated) */
  .slider--mobile.grid--peek.grid--1-col .grid__item,
  .slider--mobile.grid--peek.grid--1-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 1.5);
  }

  .slider--mobile.grid--peek.grid--2-col .grid__item,
  .slider--mobile.grid--peek.grid--2-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 1.5);
  }

  .slider--mobile.grid--peek.grid--3-col .grid__item,
  .slider--mobile.grid--peek.grid--3-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 2.5);
  }

  .slider--mobile.grid--peek.grid--4-col .grid__item,
  .slider--mobile.grid--peek.grid--4-col-mobile .grid__item {
    width: calc((100% - var(--adjustment)) / 3.5);
  }

  /* Grid */
  .grid--grid.grid--1-col,
  .grid--grid.grid--1-col-mobile {
    grid-template-columns: repeat(1, 1fr);
  }

  .grid--grid.grid--2-col,
  .grid--grid.grid--5-col,
  .grid--grid.grid--6-col,
  .grid--grid.grid--7-col,
  .grid--grid.grid--2-col-mobile {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid--grid.grid--3-col,
  .grid--grid.grid--3-col-mobile {
    grid-template-columns: repeat(3, 1fr);
  }

  .grid--grid.grid--4-col,
  .grid--grid.grid--4-col-mobile {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media screen and (min-width: 750px) {
  /* Flex */
  .grid--1-col .grid__item,
  .grid--1-col-desktop .grid__item,
  .grid--1-5-col-desktop .grid__item {
    max-width: 100%;
    width: calc(100% - var(--adjustment));
  }

  .grid--2-col .grid__item,
  .grid--2-col-desktop .grid__item,
  .grid--2-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 2) -
        (var(--grid-desktop-horizontal-spacing) / 2 * 1)
    );
  }

  .grid--3-col .grid__item,
  .grid--3-col-desktop .grid__item,
  .grid--3-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 3) -
        (var(--grid-desktop-horizontal-spacing) / 3 * 2)
    );
  }

  .grid--4-col .grid__item,
  .grid--4-col-desktop .grid__item,
  .grid--4-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 4) -
        (var(--grid-desktop-horizontal-spacing) / 4 * 3)
    );
  }

  .grid--5-col .grid__item,
  .grid--5-col-desktop .grid__item,
  .grid--5-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 5) -
        (var(--grid-desktop-horizontal-spacing) / 5 * 4)
    );
  }

  .grid--6-col .grid__item,
  .grid--6-col-desktop .grid__item,
  .grid--6-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 6) -
        (var(--grid-desktop-horizontal-spacing) / 6 * 5)
    );
  }

  .grid--7-col .grid__item,
  .grid--7-col-desktop .grid__item,
  .grid--7-5-col-desktop .grid__item {
    width: calc(
      ((100% - var(--adjustment)) / 7) -
        (var(--grid-desktop-horizontal-spacing) / 7 * 6)
    );
  }

  /* FlexPeek - Only apply on sliders */
  .slider--desktop.grid--1-5-col .grid__item,
  .slider--desktop.grid--1-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 1.5);
  }

  .slider--desktop.grid--2-5-col .grid__item,
  .slider--desktop.grid--2-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 2.5);
  }

  .slider--desktop.grid--3-5-col .grid__item,
  .slider--desktop.grid--3-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 3.5);
  }

  .slider--desktop.grid--4-5-col .grid__item,
  .slider--desktop.grid--4-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 4.5);
  }

  .slider--desktop.grid--5-5-col .grid__item,
  .slider--desktop.grid--5-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 5.5);
  }

  .slider--desktop.grid--6-5-col .grid__item,
  .slider--desktop.grid--6-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 6.5);
  }

  .slider--desktop.grid--7-5-col .grid__item,
  .slider--desktop.grid--7-5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 7.5);
  }

  /* Peek - Only apply on sliders (Deprecated) */
  .slider--desktop.grid--peek.grid--1-col .grid__item,
  .slider--desktop.grid--peek.grid--1-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 1);
  }

  .slider--desktop.grid--peek.grid--2-col .grid__item,
  .slider--desktop.grid--peek.grid--2-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 1.5);
  }

  .slider--desktop.grid--peek.grid--3-col .grid__item,
  .slider--desktop.grid--peek.grid--3-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 2.5);
  }

  .slider--desktop.grid--peek.grid--4-col .grid__item,
  .slider--desktop.grid--peek.grid--4-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 3.5);
  }

  .slider--desktop.grid--peek.grid--5-col .grid__item,
  .slider--desktop.grid--peek.grid--5-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 4.5);
  }

  .slider--desktop.grid--peek.grid--6-col .grid__item,
  .slider--desktop.grid--peek.grid--6-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 5.5);
  }

  .slider--desktop.grid--peek.grid--7-col .grid__item,
  .slider--desktop.grid--peek.grid--7-col-desktop .grid__item {
    width: calc((100% - var(--adjustment)) / 6.5);
  }

  /* Grid */
  .grid--grid.grid--1-col,
  .grid--grid.grid--1-col-desktop {
    grid-template-columns: repeat(1, 1fr);
  }

  .grid--grid.grid--2-col,
  .grid--grid.grid--2-col-desktop {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid--grid.grid--3-col,
  .grid--grid.grid--3-col-desktop {
    grid-template-columns: repeat(3, 1fr);
  }

  .grid--grid.grid--4-col,
  .grid--grid.grid--4-col-desktop {
    grid-template-columns: repeat(4, 1fr);
  }

  .grid--grid.grid--5-col,
  .grid--grid.grid--5-col-desktop {
    grid-template-columns: repeat(5, 1fr);
  }

  .grid--grid.grid--6-col,
  .grid--grid.grid--6-col-desktop {
    grid-template-columns: repeat(6, 1fr);
  }

  .grid--grid.grid--7-col,
  .grid--grid.grid--7-col-desktop {
    grid-template-columns: repeat(7, 1fr);
  }
}

/* Borders */
.border {
  border: 1px solid;
}

.border--350 {
  border-color: #d4d4d4;
}

.border--400 {
  border-color: #c1c1c1;
}

.border--500 {
  border-color: #717171;
}

.border--600 {
  border-color: #4b4b4b;
}

.border--dashed {
  border: 1px dashed #969696;
}

/* Media */
.media {
  width: 100%;
  display: block;
  position: relative;
  overflow: hidden;
  box-shadow: var(--media-shadow-horizontal-offset)
    var(--media-shadow-vertical-offset) var(--media-shadow-blur-radius)
    rgba(var(--color-shadow), var(--media-shadow-opacity));
  border: 0;
  border-radius: var(--media-radius);
}

.media--background {
  background-color: rgba(232, 230, 228, 0.25);
}

.media--mask:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(var(--color-background), 0.33);
}

.media > *:not(.zoom):not(.media__poster),
.media model-viewer {
  display: block;
  max-width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.media img,
.media video,
.media iframe {
  object-fit: cover;
  object-position: center center;
  transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);

  border: var(--media-border-width) solid
    rgba(var(--color-foreground), var(--media-border-opacity));
  border-radius: var(--media-radius);
}

.card .media img:nth-child(2),
.card .media video:nth-child(2) {
  opacity: 0;
}

.media:hover img:nth-child(2),
.media:hover video:nth-child(2) {
  opacity: 1;
}

.media--contain img,
.media--contain video,
.media--contain iframe {
  object-fit: contain;
}

.media--card {
  height: 100%;
}

.media--square {
  padding-bottom: 100%;
}

.media--circle {
  padding-bottom: 100%;
  border-radius: 50%;
}

.media--portrait {
  padding-bottom: calc(1 / (4 / 5) * 100%);
}

.media--landscape {
  padding-bottom: 66.6%;
}

.media--cropped {
  padding-bottom: 56%;
}

.media--16-9 {
  padding-bottom: 56.25%;
}

.media--collection {
  height: 100%;
}

.media--ribbon {
  padding-bottom: calc(1 / (6 / 1) * 100%);
}

.media--xsmall {
  padding-bottom: calc(1 / (5 / 1) * 100%);
}

.media--small {
  padding-bottom: calc(1 / (4 / 1) * 100%);
}

.media--medium {
  padding-bottom: calc(1 / (1518 / 620) * 100%);
}

.media--large {
  padding-bottom: calc(100dvh - var(--header-height));
}

.media--full {
  height: calc(100dvh - var(--header-height) - var(--announcement-height));
  padding: 0;
}

@media screen and (max-width: 749px) {
  .media--square-mobile {
    padding-bottom: 100% !important;
  }

  .media--circle-mobile {
    padding-bottom: 100% !important;
    border-radius: 50% !important;
  }

  .media--portrait-mobile {
    padding-bottom: calc(1 / (4 / 5) * 100%) !important;
  }

  .media--landscape-mobile {
    padding-bottom: 66.6% !important;
  }

  .media--ribbon {
    padding-bottom: calc(1 / (6 / 1) * 100%);
  }

  .media--ribbon-mobile {
    padding-bottom: calc(1 / (6 / 1) * 100%) !important;
  }

  .media--xsmall {
    padding-bottom: calc(1 / (5 / 1) * 100%);
  }

  .media--xsmall-mobile {
    padding-bottom: calc(1 / (5 / 1) * 100%) !important;
  }

  .media--small {
    padding-bottom: calc(1 / (4 / 1) * 100%);
  }

  .media--small-mobile {
    padding-bottom: calc(1 / (4 / 1) * 100%) !important;
  }

  .media--medium {
    padding-bottom: calc(1 / (388 / 461) * 100%);
  }

  .media--medium-mobile {
    padding-bottom: calc(1 / (388 / 461) * 100%) !important;
  }

  .media--large {
    padding-bottom: calc(100dvh - var(--header-height));
  }

  .media--large-mobile {
    padding-bottom: calc(100dvh - var(--header-height)) !important;
  }

  .media--full {
    height: calc(100dvh - var(--header-height) - var(--announcement-height));
    padding: 0;
  }
}

.media__poster {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  border: 0;
  cursor: pointer;
  background: transparent;
  appearance: none;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.media__poster-text {
  width: 6rem;
  height: 6rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(var(--color-background), 0.4);
  border-radius: 50%;
}

.media__poster svg {
  width: 3rem;
  height: 3rem;
}

.media__poster-button {
  position: absolute;
}

.media.media--hover-effect > img + img {
  opacity: 0;
}

@media screen and (min-width: 990px) {
  .media--cropped {
    padding-bottom: 63%;
  }
}

deferred-media {
  display: block;
}

/* Buttons */
.button,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded,
.shopify-payment-button [role='button'],
.cart__dynamic-checkout-buttons [role='button'],
.cart__dynamic-checkout-buttons iframe {
  position: relative;
  z-index: 1;

  font-family: var(--font-button-family);
  font-size: var(--font-button);
  font-style: var(--font-button-style);
  font-weight: var(--font-button-weight);
  line-height: var(--font-button-height);
  letter-spacing: var(--font-button-spacing);
  text-decoration: none;
  text-transform: var(--font-button-transform);

  padding: var(--inputs-padding);

  color: rgb(var(--color-button-text));
  background-color: rgb(var(--color-button));

  border-style: solid;
  border-color: rgb(var(--color-button-border));
  border-width: var(--inputs-border-width);
  border-radius: var(--button-corner-radius);
  box-shadow: var(--inputs-shadow-horizontal-offset)
    var(--inputs-shadow-vertical-offset) var(--inputs-shadow-blur-radius)
    rgba(var(--color-shadow), var(--inputs-shadow-opacity));

  position: relative;
  width: 100%;
  min-width: 3rem;
  height: var(--inputs-height);

  margin: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: all var(--duration-medium) ease;
  -webkit-appearance: none;
  appearance: none;
}

.button:not(.button--secondary):hover,
.shopify-challenge__button:hover,
.customer button:hover {
  --color-button-text: var(--color-button-text-hover);
  --color-button: var(--color-button-hover);
  --color-button-border: var(--color-button-border-hover);

  color: rgb(var(--color-button-text-hover));
  background: rgb(var(--color-button-hover));
  border-color: rgb(var(--color-button-border-hover));
}

.button--bold {
  font-weight: 700;
}

.button.button--outline:hover {
  --color-button-border: var(--color-button-text-hover);
  border-color: rgb(var(--color-button-text-hover)) !important;
}

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

  color: rgb(var(--color-secondary-button-text));
  background: rgb(var(--color-secondary-button));
  border-color: rgb(var(--color-secondary-button-border));
}

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

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

.button--small {
  height: var(--inputs-height-small);
}

.button--large {
  height: var(--inputs-height-large);
}

.shopify-payment-button__button--branded {
  z-index: auto;
}

.cart__dynamic-checkout-buttons iframe {
  box-shadow: var(--shadow-horizontal-offset) var(--shadow-vertical-offset)
    var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity));
}

.button:not(.quantity__button):not(.card__button):disabled,
.button.disabled,
.customer button:disabled,
.customer button[aria-disabled='true'],
.customer button.disabled {
  --color-button: #c1c1c1;
  --color-button-text: #e8e6e4;

  background: #c1c1c1;
  border-color: #c1c1c1;
  color: #e8e6e4;
}

.button:disabled:after {
  display: none !important;
}

.button--secondary:disabled {
  background: #f8f8f8;
  border-color: #c1c1c1;
  color: #c1c1c1;
}

.button--auto {
  width: auto;
}

.button.loading {
  color: transparent !important;
  position: relative;
}

@media screen and (forced-colors: active) {
  .button.loading {
    color: rgb(var(--color-foreground)) !important;
  }
}

.button.loading > .loading__spinner {
  display: block !important;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  height: auto;
  display: flex;
  align-items: center;
}

.button.loading > .loading__spinner .spinner {
  width: fit-content;
}

.button.loading > .loading__spinner .path {
  stroke: rgb(var(--color-button-text));
}

/* Forms */
.success {
  --color-button: 46, 151, 117;
  --color-foreground: 255, 255, 255;
}

.success--text {
  --color-foreground: 46, 151, 117;
}

.error {
  --color-button: 203, 48, 64;
  --color-foreground: 255, 255, 255;
}

.error--text {
  --color-foreground: 203, 48, 64;
}

.field {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: left;
  max-width: 36rem;
}

.field + .field {
  margin-top: 1rem;
}

.field--checkbox,
.field--radio {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.field--select {
  position: relative;
}

.field--select .icon-caret {
  pointer-events: none;
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%) rotate(90deg);
}

.field--newsletter {
  position: relative;
}

.field__label {
  color: rgb(var(--color-foreground));
  font-family: var(--font-body-family);
  font-size: var(--font-body-small);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);
  margin: 0;
  font-weight: 700;
}

.field__input,
.field__textarea,
.field__select,
.field__newsletter {
  -webkit-appearance: none;
  appearance: none;

  font-family: var(--font-body-family);
  font-size: var(--font-body);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);
  margin: 0;

  padding: var(--inputs-padding);

  border-style: solid;
  border-color: rgba(var(--color-foreground), var(--inputs-border-opacity));
  border-width: var(--inputs-border-width);
  border-radius: var(--inputs-radius);
  box-shadow: var(--inputs-shadow-horizontal-offset)
    var(--inputs-shadow-vertical-offset) var(--inputs-shadow-blur-radius)
    rgba(var(--color-shadow), var(--inputs-shadow-opacity));

  width: 100%;
  min-width: 3rem;
  height: var(--inputs-height);

  margin: 0;
  display: inline-flex;
  transition: all var(--duration-short) ease;
}

.field__select {
  padding: 0 40px 0 20px;
}

.field__select--text {
  border: 0;
  padding: 0;
  height: auto;
  box-shadow: none;
  border: none;
  text-decoration: underline;
  color: rgb(var(--color-foreground));
}

.field__select--text + svg {
  display: none;
}

.field__newsletter {
  border-top: 0;
  border-left: 0;
  border-right: 0;
  padding-left: 0;
  background: inherit;
  border-color: rgb(var(--color-foreground));
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.field__textarea {
  height: auto;
  min-height: 10rem;
  resize: none;
}

.field__message {
  color: rgb(var(--color-foreground));
  font-family: var(--font-body-family);
  font-size: var(--font-body-small);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);
  margin: 0;
  align-items: flex-start;
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1rem;
}

.field__status {
  color: rgb(var(--color-foreground));
  font-family: var(--font-body-family);
  font-size: var(--font-body-small);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);
  margin: 0;
  align-items: flex-start;
  display: flex;
  gap: 0.25rem;
  margin-top: 0.5rem;
}

.field__status[hidden] {
  display: none;
}

.field__message .icon,
.field__status .icon {
  width: 1.25rem;
  height: 1.25rem;
}

.field__button {
  border-radius: var(--button-corner-radius);
}

.field__arrow {
  position: absolute;
  top: 50%;
  right: 0rem;
  transform: translateY(-50%);
}

.field__checkbox {
  width: 1.5rem;
  height: 1.5rem;
}

.field__radio {
  width: 1.5rem;
  height: 1.5rem;
}

/* component-modal */
.modal__toggle {
  list-style-type: none;
}

.modal__toggle-close {
  display: none;
}

.modal__toggle-open {
  display: flex;
}

.modal__close-button.link {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0rem;
  height: 4.4rem;
  width: 4.4rem;
  background-color: transparent;
}

.modal__close-button .icon {
  width: 1.7rem;
  height: 1.7rem;
}

.modal__content {
  background: rgb(var(--color-background));
  overflow: auto;
  padding: 1rem;
}

.media-modal {
  cursor: zoom-out;
}

.media-modal .deferred-media {
  cursor: initial;
}

/* component-quantity */
.quantity {
  position: relative;
  min-width: 8rem;
  display: flex;
  border-radius: var(--inputs-radius);
  height: var(--inputs-height);
}

.quantity__input {
  color: currentColor;
  font-family: var(--font-body-family);
  font-size: var(--font-body);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  line-height: var(--font-body-height);
  letter-spacing: var(--font-body-spacing);

  text-align: center;
  background-color: transparent;
  border: 0;
  padding: 0 0.25rem;
  width: 100%;
  flex-grow: 1;
  -webkit-appearance: none;
  appearance: none;
}

.quantity__button {
  opacity: 1;
  width: 2rem;
  flex-shrink: 0;
  border: 0;
  background-color: transparent !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgb(var(--color-foreground)) !important;
  padding: 0;
}

.quantity__button svg {
  width: 0.75rem;
  pointer-events: none;
}

.quantity__input::-webkit-outer-spin-button,
.quantity__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.quantity__input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/*
 * G1.1/G1.2 (client via Mike, 2026-09-10): rotating announcement bar with an
 * arrow at each end, like summerfridays.com. Only applies when the merchant
 * turns rotation on — the section adds .announcement-bar__slider--rotating.
 *
 * The theme's default .slider-button is a 2rem filled circle built for the
 * banner/product sliders. That is taller than this whole bar (min-height 35px),
 * so it is scoped down here rather than changed globally.
 */
.announcement-bar__slider--rotating {
  position: relative;
}

/*
 * .slider-button--prev/--next already position with left/right, so the
 * container must not create its own centred flex row.
 */
.announcement-bar__slider--rotating .announcement-bar__buttons {
  display: block;
}

/*
 * Alex 2026-09-10: "same arrow styling as the home page review section."
 *
 * That is sections/testimonials.liquid, whose arrows were matched to the Hue
 * video carousel in R2.8 and signed off. Values copied from
 * assets/testimonials.css so the two stay identical:
 *   36x36 button, transparent background, no border, radius 100%, padding 6px,
 *   24x24 FILLED chevron (icon-hue-chevron), colour inherited, NO hover state.
 *
 * Two things carried over deliberately from that section:
 *  1. icon-hue-chevron points LEFT, so `prev` is correct unrotated and `next`
 *     is flipped 180deg. The rotation goes on the BUTTON, not the icon, because
 *     the button already carries translateY(-50%) and the two must compose in a
 *     single transform or the vertical centring is lost.
 *  2. component-slider.css scales the icon 1.1x on hover for every slider in
 *     the theme. The review section neutralises that locally rather than
 *     deleting the shared rule; same approach here, so other carousels are
 *     untouched.
 *
 * Sizing note: this bar is ~35px tall, shorter than the 36px button. Height is
 * capped to the bar so the button can never stretch it - that is the one
 * deviation from testimonials.css, and it is why the box is not simply 36px.
 */
.announcement-bar__slider--rotating .slider-button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 36px;
  height: 100%;
  max-height: 36px;
  background: transparent;
  border: 0;
  border-radius: 100%;
  padding: 6px;
  cursor: pointer;
  color: currentColor;
  display: grid;
  place-items: center;
}

.announcement-bar__slider--rotating .slider-button--prev {
  left: 0;
}

.announcement-bar__slider--rotating .slider-button--next {
  right: 0;
  transform: translateY(-50%) rotate(180deg);
}

.announcement-bar__slider--rotating .slider-button .icon {
  width: 24px;
  height: 24px;
  transform: none;
}

/* No hover state, exactly as the review section. */
.announcement-bar__slider--rotating .slider-button--prev:not([disabled]):hover .icon,
.announcement-bar__slider--rotating .slider-button--next:not([disabled]):hover .icon,
.announcement-bar__slider--rotating .slider-button:hover .icon,
.announcement-bar__slider--rotating .slider-button:focus .icon {
  transform: none;
}

.announcement-bar__slider--rotating .slider-button--prev:hover,
.announcement-bar__slider--rotating .slider-button--prev:focus {
  transform: translateY(-50%);
}

.announcement-bar__slider--rotating .slider-button--next:hover,
.announcement-bar__slider--rotating .slider-button--next:focus {
  transform: translateY(-50%) rotate(180deg);
}

.announcement-bar__slider--rotating .slider-button:hover,
.announcement-bar__slider--rotating .slider-button:focus {
  background: transparent;
  opacity: 1;
}

@media screen and (max-width: 749px) {
  .announcement-bar__slider--rotating .slider-button {
    width: 28px;
    padding: 4px;
  }

  .announcement-bar__slider--rotating .slider-button .icon {
    width: 20px;
    height: 20px;
  }
}

.announcement-bar__slider--rotating .utility-bar__grid {
  flex-wrap: nowrap;
}

.announcement-bar__slider--rotating .utility-bar__item {
  /* Full-width slide, and do not let flex shrink it back to a third. */
  flex: 0 0 100%;
  scroll-snap-align: start;
  /*
   * FAIL (canary mobile, 2026-09-10): the message ran UNDER the arrows and read
   * "REE SHIPPING ... $70" with both ends clipped. The review-section arrows are
   * transparent with no background, so unlike a filled button they do not carve
   * out any space of their own - the text simply passes beneath them.
   *
   * Reserve the arrow gutter on the slide instead: 36px button + a little air on
   * desktop, 28px + air on mobile, matching the widths set above. The message is
   * centred inside what is left, so short messages still look centred in the bar.
   */
  padding-inline: 44px;
  box-sizing: border-box;
}

@media screen and (max-width: 749px) {
  .announcement-bar__slider--rotating .utility-bar__item {
    padding-inline: 34px;
  }
}

/* Utility Bar | Annoucement bar */
.utility-bar__grid {
  margin: 0 !important;
  min-height: 35px;
  padding: 0 !important;
}

.utility-bar__item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 8px;
}

.utility-bar__item.body--small {
  font-size: calc(var(--font-body-small) - 2px);
}

.utility-bar__item p {
  margin: 0;
  text-align: center;
}

/*
 * Purlisse redesign (R2 2026-08-05): announcement bar type.
 * PANEL: the bar is 1494x54, Nunito 16px / 400, #FFF, centred. The build
 * rendered 18px. Alex's call: it STAYS a rotating slider — restyle only, do not
 * collapse it to a single static message.
 *
 * R2.1 (client, 2026-08-05): "reduce the text size of this... by like 2px and
 * maybe we add in an option for letter spacing?" Size and letter-spacing are now
 * driven by SETTINGS the client can edit (announcement-bar.liquid emits the two
 * custom properties inline), so this rule holds the DEFAULTS only — 16px - 2px.
 * Changed at the source rather than stacked as an override.
 */
.utility-bar .utility-bar__item,
.utility-bar .utility-bar__item p,
.announcement-bar__message {
  font-family: var(--font-heading-family);
  font-size: var(--announcement-font-size, 14px);
  letter-spacing: var(--announcement-letter-spacing, normal);
  font-weight: 400;
  color: #ffffff;
}

@media screen and (max-width: 749px) {
  .utility-bar__item {
    padding-block: 10px;
  }

  /*
   * R2.13 (client, slide 11, MOBILE): "Can we make the text for the announcement
   * centered and smaller by 2 pt".
   *
   * CENTRED: the message wraps to two lines at 390px. The <li> is a flex box
   * with justify-content:center, which centres the text BLOCK — but with
   * text-align:start the second line still hugs the left, so the ink measured
   * 21px left of the bar's centre. The theme's `.utility-bar__item p` centring
   * never applied because the text sits directly in the <li> (or an <a>), not
   * in a <p>. Centre the item itself and its link.
   *
   * SMALLER: 14px -> 12px on mobile only (the desktop 14px from R2.1 stands).
   * Driven by the same setting hook so the client can still tune it.
   */
  .utility-bar .utility-bar__item,
  .utility-bar .utility-bar__item a,
  .utility-bar .utility-bar__item p {
    text-align: center;
    /*
     * SWEEP FIX (2026-08-13): this needs !important, and only because the
     * theme's own type scale uses it first — `.body--small-mobile { font-size:
     * var(--font-body-small-mobile) !important }` in the same stylesheet. The
     * announcement <li> carries that class from the section's mobile_text_style
     * setting, so an ordinary declaration here LOSES no matter how specific or
     * how late it is.
     *
     * Net effect before this fix: R2.13's "Text size (mobile)" control was
     * inert — the var resolved to 12px while the bar rendered 14px. Found by
     * the runtime sweep, not by the client.
     *
     * This is `!important` against a rule we own, which is normally a smell —
     * the cleaner fix is to drop !important from .body--small-mobile, but that
     * is a shared type token used across the theme and out of scope here.
     */
    font-size: var(--announcement-font-size-mobile, 12px) !important;
  }
}

/* Header */
.section-header.shopify-section-group-header-group {
  z-index: 3;
}

/*
 * Purlisse redesign (G1.3, revised R2 2026-08-05): nav + utility links.
 *
 * TYPE READ FROM THE FIGMA INSPECT PANEL (Alex selected each layer) — NOT
 * derived from the PNG export. Both "BEST SELLERS" and "SEARCH" come back
 * IDENTICAL: Nunito 16px / 700 / #000. The build was rendering 15px / 400.
 *
 * (My cap-height derivation from the export said 16.3px for the nav and 21.3px
 * for the announcement text; the panel says 16px for both. Panel wins — see
 * SOP RULE 0.6 point 5.)
 */
.header__inline-menu .header__menu-item,
.header__inline-menu .header__menu-item a,
.header__inline-menu .header__menu-item span,
.header__icons .header__icon,
.header__icons .header__icon .body {
  text-transform: uppercase;
  font-family: var(--font-heading-family);
  font-size: var(--header-nav-font-size, 16px);
  font-weight: 700;
  color: #7c7772;
}
  /*
   * R4.4 (client): text-size slider for the header navigation links.
   *
   * The 16px is the Figma Inspect panel value (see the note above), so it is
   * the FALLBACK and the schema default — the design is preserved unless the
   * merchant deliberately moves the slider.
   *
   * The variable is emitted by sections/header.liquid. Both the left nav and
   * the right utility links share this rule, so one control moves all six
   * labels together, which is what keeps the two sides matching (the whole
   * point of the R2 FAIL 1/2 work documented above).
   */
  font-size: var(--header-nav-font-size, 16px);
  font-weight: 700;
  color: #000000;
}

/*
 * R2 FAIL 1 (Alex 2026-08-05): "left side menu link styling does not match the
 * right side".
 *
 * The inner .body spans on the right were ALREADY correct (16px/700/uppercase,
 * identical to the left nav) — the mismatch came from their WRAPPER <a>/<summary>,
 * which sat at 18px/400 and, on SEARCH only, `line-height: 0`. That zero
 * line-height is what made SEARCH sit on a different baseline from LOG IN/CART
 * and from the left nav.
 *
 * Pinning the wrapper (added above) plus a shared line-height makes both sides
 * resolve to one style. Panel value for both: Nunito 16px / 700 / #000.
 */
.header__inline-menu .header__menu-item,
.header__inline-menu .header__menu-item a,
.header__inline-menu .header__menu-item span,
.header__icons .header__icon,
.header__icons .header__search,
.header__icons .header__search .body,
.header__icons .header__icon .body {
  /*
   * R4.4: was a hardcoded 25.6px, i.e. 1.6 x the 16px design size. Expressed as
   * a ratio so it SCALES with the slider — a fixed line-height would clip
   * descenders at larger sizes and leave a slack row at smaller ones. Same
   * value at the default: 16 x 1.6 = 25.6px.
   */
  line-height: 1.6;
}

/*
 * R2 FAIL 2 (Alex 2026-08-05): "they still don't match visually".
 *
 * The DECLARED styles were already identical on both sides — that is why a
 * computed-style comparison passed while the render plainly did not. Measuring
 * the TEXT INK instead showed the truth: left glyphs 28.8px tall on baseline
 * y94, right 21.5px on y98.
 *
 * A probe span rendering the same string in each context came back 136.6px on
 * BOTH sides, which ruled out a different font face.
 *
 * THE REAL CAUSE: the LEFT nav's text is not in the element being styled — it
 * sits in a nested `<span class="body medium">` at 18px / 500 / lh 28.8px.
 * Styling `.header__menu-item` left that inner span untouched, so the LEFT was
 * oversized while the RIGHT (whose label is a direct text node) was already
 * correct at 16px. So the LEFT was wrong, not the right.
 *
 * And the nesting is NOT uniform: BESTSELLERS (a dropdown) has the span as a
 * DIRECT child, while SKINCARE / MAKEUP / VALUE SETS nest it inside an <a>. A
 * `> span` child selector therefore fixed only the first item — hence the
 * descendant selectors (`... a`, `... span`) here.
 *
 * Lesson: computed style on the element you assume is styled is not proof —
 * measure the rendered ink, and walk the whole ancestor chain.
 */

/* Per-design: desktop utility = text labels (no icons); mobile = icons (no text) */
@media screen and (min-width: 750px) {
  .header__icons .header__icon > svg,
  .header__icons .header__icon .icon {
    display: none;
  }
}
@media screen and (max-width: 749px) {
  .header__icons .header__icon .body,
  .header__search--mobile .header__icon .body,
  .header__search--mobile .body {
    display: none;
  }
  .header__icons .header__icon > svg,
  .header__icons .header__icon .icon,
  .header__search--mobile svg,
  .header__search--mobile .icon {
    display: block;
    width: 24px;
    height: 24px;
  }
}

.shopify-section-header-sticky {
  position: sticky;
  top: -1px;
}

.shopify-section-header-hidden {
  top: calc(-1 * var(--header-height));
}

.shopify-section-header-hidden.menu-open {
  top: 0;
}

.section-header.animate {
  transition: top 0.15s ease-out;
}

.shopify-section-group-header-group {
  z-index: 3;
}

.section-header ~ .shopify-section-group-header-group {
  z-index: initial;
}

.header-wrapper {
  display: block;
  position: relative;
  background-color: rgb(var(--color-background));
}

.header {
  display: flex;
  flex-flow: wrap;
  align-items: center;
  gap: 1rem;
  row-gap: 2rem;
}

@media screen and (min-width: 750px) {
  /* Logo, Menu (Left), Icons */
  .header.header--logo-menu_left-icons .header__inline-menu {
    flex-grow: 1;
  }

  .header.header--logo-menu_left-icons .header__icons {
    margin-left: auto;
  }

  /* Logo, Menu (Center), Icons */
  .header.header--logo-menu_center-icons .header__inline-menu {
    flex-grow: 1;
    justify-content: center;
  }

  /* Logo, Menu (Below, Left), Icons */
  .header.header--logo-menu_below_left-icons .header__inline-menu {
    flex: 0 0 100%;
  }

  .header.header--logo-menu_below_left-icons .header__icons {
    margin-left: auto;
  }

  /* Logo, Menu (Below, Center), Icons */
  .header.header--logo-menu_below_center-icons .header__inline-menu {
    justify-content: center;
    flex: 0 0 100%;
  }

  .header.header--logo-menu_below_center-icons .header__icons {
    margin-left: auto;
  }

  /* Menu, Logo (Left), Icons */
  .header.header--menu-logo_left-icons .header__logo {
    display: flex;
    flex-grow: 1;
  }

  .header.header--menu-logo_left-icons .header__icons {
    margin-left: auto;
  }

  /* Menu, Logo (Center), Icons */
  .header.header--menu-logo_center-icons .header__logo {
    display: flex;
    flex-grow: 1;
    justify-content: center;
  }

  /*
   * Purlisse redesign (R2 2026-08-05): TRUE optical centring.
   *
   * `flex-grow:1` on the logo alone centres it within the LEFTOVER space, not
   * within the header — so with a wide nav (494px) and narrow icons (198px) the
   * mark landed at x868 instead of the page centre 720. The design has the logo
   * on the page centre (x657..836.5 of 1494 = centre 747 = frame centre).
   *
   * Giving the nav and icon columns equal flex-basis makes the three columns
   * symmetric, so the centre column is genuinely centred at any width.
   */
  .header.header--menu-logo_center-icons .header__inline-menu,
  .header.header--menu-logo_center-icons .header__icons {
    flex: 1 1 0;
    min-width: 0;
  }

  .header.header--menu-logo_center-icons .header__icons {
    justify-content: flex-end;
  }

  .header.header--menu-logo_center-icons .header__logo {
    flex: 0 0 auto;
  }
}

@media screen and (max-width: 749px) {
  .header {
    display: grid;
    grid-template-columns: auto 1fr auto;
  }

  /* Logo, Menu (Left), Icons */
  .header.header--menu-logo_left-icons-mobile {
    grid-template-columns: auto 1fr 1fr;
  }

  .header.header--menu-logo_left-icons-mobile .header__menu-drawer {
    order: 1;
  }

  .header.header--menu-logo_left-icons-mobile .header__logo {
    order: 2;
    justify-self: flex-start;
  }

  .header.header--menu-logo_left-icons-mobile .header__icons {
    order: 3;
  }

  /*
   * Purlisse redesign (G1.3): mobile header per Figma —
   * hamburger + search (left) · logo (center) · cart+account (right).
   * A standalone .header__search--mobile is rendered as a direct grid
   * child (see header.liquid); place it in the left group and center logo.
   */
  .header.header--menu-logo_left-icons-mobile {
    grid-template-columns: auto auto 1fr auto;
    align-items: center;
  }

  .header.header--menu-logo_left-icons-mobile .header__search--mobile {
    order: 2;
    justify-self: start;
    display: block;
  }

  .header.header--menu-logo_left-icons-mobile .header__logo {
    order: 3;
    justify-self: center;
  }

  .header.header--menu-logo_left-icons-mobile .header__icons {
    order: 4;
    justify-self: end;
  }

  /* Hide the search that lives inside the right icon cluster on mobile
     (it now lives in the standalone left slot) */
  .header.header--menu-logo_left-icons-mobile .header__icons .header__search {
    display: none;
  }

  /* Logo, Menu (Center), Icons */
  .header.header--menu-logo_center-icons-mobile {
    grid-template-columns: 1fr auto 1fr;
  }

  .header.header--menu-logo_center-icons-mobile .header__menu-drawer {
    order: 1;
  }

  .header.header--menu-logo_center-icons-mobile .header__logo {
    order: 2;
  }

  .header.header--menu-logo_center-icons-mobile .header__icons {
    order: 3;
  }

  /* Icons, Logo (left), Menu */
  .header.header--icons-logo_left-menu-mobile {
    grid-template-columns: auto 1fr 1fr;
  }

  .header.header--icons-logo_left-menu-mobile .header__menu-drawer {
    order: 3;
    justify-self: end;
  }

  .header.header--icons-logo_left-menu-mobile .header__logo {
    justify-self: flex-start;
    order: 2;
  }

  .header.header--icons-logo_left-menu-mobile .header__icons {
    order: 1;
  }

  /* Icons, Logo (center), Menu */
  .header.header--icons-logo_center-menu-mobile {
    grid-template-columns: 1fr auto 1fr;
  }

  .header.header--icons-logo_center-menu-mobile .header__menu-drawer {
    order: 3;
    justify-self: flex-end;
  }

  .header.header--icons-logo_center-menu-mobile .header__logo {
    order: 2;
  }

  .header.header--icons-logo_center-menu-mobile .header__icons {
    order: 1;
    justify-self: flex-start;
  }
}

.header *[tabindex='-1']:focus {
  outline: none;
}

/* Purlisse redesign (G1.3): standalone mobile search — hidden on desktop */
.header__search--mobile {
  display: none;
}

/* Logo */
.header__logo {
  margin: 0;
  line-height: 0;
  justify-self: center;
  text-align: center;
}

.header__logo svg {
  width: var(--logo-width);
}

.header__heading-logo {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

/* Asset logo (Purlisse black wordmark): size from --logo-width per viewport */
.header__heading-logo--asset {
  width: var(--logo-width-mobile, var(--logo-width));
}

@media screen and (min-width: 750px) {
  .header__heading-logo--asset {
    width: var(--logo-width);
  }
}

/* Header menu */
.header__inline-menu {
  display: none;
}

@media screen and (min-width: 750px) {
  .header__inline-menu {
    display: flex;
    justify-content: flex-start;
  }
}

.header__inline-menu .list-menu {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

.header__menu {
  padding: 0 1rem;
}

.header__menu-item {
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  justify-content: space-evenly;
  transition: opacity var(--duration-default) ease;
  font-size: 15px;
}

.header__menu-item svg {
  height: auto;
  pointer-events: none;
  width: 10px;
  vertical-align: super;
  transition: all var(--duration-default) ease;
}

.header__menu-item.unactive {
  opacity: 0.6;
}

.header__menu-item .icon-caret {
  right: 0.8rem;
}

header-menu > details,
details-disclosure > details {
  position: relative;
}

@keyframes animateMenuOpen {
  0% {
    opacity: 0;
    transform: translateY(-1.5rem);
  }

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

/* Header icons */
.header__icons {
  display: flex;
  justify-content: end;
  align-items: center;
  gap: 1rem;
}

.header__icons--half {
  gap: 0.5rem;
}

@media screen and (min-width: 750px) {
  .header__icons--relative {
    position: relative;
  }
}

.header__icons .shopify-app-block,
.header__icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 2px;
  height: auto;
  width: auto;
  padding: 0;
  position: relative;
}

.header__button .icon,
.header__icon .icon {
  height: var(--icon-size);
  width: var(--icon-size);
  fill: none;
}

.header__icon span {
  height: 100%;
}

.header__button {
  width: auto;
  gap: 0.5rem;
  align-items: center;
  border-radius: var(--inputs-radius);
}

account-icon {
  display: flex;
}

/* Cart Bubbles */
.cart-count-bubble:empty {
  display: none;
}

.visually-hidden + .cart-count-bubble {
  position: absolute;
  line-height: 1;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: var(--font-body-xsmall);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -25%);
}

.header__button .cart-count-bubble {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
  left: auto;
  height: var(--icon-size);
  width: var(--icon-size);
  border-radius: 50%;
  background: rgb(var(--color-foreground));
  color: rgb(var(--color-background));
}

.header__icon--cart.pulsate {
  animation: tada 1s infinite;
}

.header__icon--cart.pulsate .cart-count-bubble {
  box-shadow: 0 0 0 0 rgb(0 119 200 / 10%), 0 0 0 0 rgb(0 128 200 / 28%),
    0 0 0 0 rgb(0 109 200 / 30%);
  animation: pulsate 1s infinite ease-in-out;
}

@keyframes tada {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  10%,
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%,
  60%,
  80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes pulsate {
  100% {
    box-shadow: 0 0 0 40px rgba(0, 200, 0, 0), 0 0 0 80px rgba(0, 200, 0, 0),
      0 0 0 160px rgba(0, 200, 0, 0);
  }
}

/* Search */
.header__search {
  display: inline-flex;
  line-height: 0;
}

.header__search--inline {
  min-width: 300px;
}

.search-modal__form {
  width: 100%;
}

.header__search-form {
  display: flex;
  align-items: center;
  justify-content: center;
}

.header__search-form .field__input {
  border-top-left-radius: var(--inputs-radius);
  border-bottom-left-radius: var(--inputs-radius);
}

.header__search-form .button {
  width: auto;
  min-width: 2rem;

  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: var(--inputs-radius);
  border-bottom-right-radius: var(--inputs-radius);
}

details[open] > .search-modal {
  opacity: 1;
  animation: animateMenuOpen var(--duration-default) ease;
}

details[open] .modal-overlay {
  display: block;
}

details[open] .modal-overlay::after {
  position: absolute;
  content: '';
  background-color: rgb(var(--color-foreground), 0.5);
  top: 100%;
  left: 0;
  right: 0;
  height: 100vh;
}

.search-modal {
  opacity: 0;
  height: calc(var(--inputs-height) + 3rem);
  top: 100%;
  overflow: visible;
  padding: 0;
  margin-bottom: 0;
  position: absolute;
  left: 0;
  width: 100%;
}

@media screen and (max-width: 749px) {
  .search-modal {
    height: calc(var(--inputs-height) + 1rem);
  }
}

.search-modal__content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
}

/* Header menu drawer */
.header__icon--menu .icon {
  display: block;
  opacity: 1;
  transform: scale(1);
  transition: transform 150ms ease, opacity 150ms ease;
}

.js details[open]:not(.menu-opening) > .header__icon--menu .icon-close {
  visibility: hidden;
}

/* Badges */
.badge {
  border: 1px solid transparent;
  border-radius: var(--badge-corner-radius);
  display: inline-block;
  z-index: 1;
  line-height: 1;
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 5px 10px;
  text-align: left;
  background-color: rgb(var(--color-badge-background));
  border: 0;
  color: rgb(var(--color-badge-foreground));
  text-transform: uppercase;
  word-break: break-word;
}

.badge.badge--text {
  font-weight: 500;
  font-size: 12px;
  padding: 6px 12px;
}

.badge.badge--image {
  position: absolute;
  top: 12px;
  right: 20px;
  width: 50px;
  height: 50px;
  border: none;
  border-radius: 50%;
  z-index: 1;
  padding: 0;
  overflow: hidden;
  background: none;
}

.gradient {
  background: rgb(var(--color-background));
  background: var(--gradient-background);
  background-attachment: fixed;
}

@media screen and (forced-colors: active) {
  .icon {
    color: CanvasText;
    fill: CanvasText !important;
  }

  .icon-close-small path {
    stroke: CanvasText;
  }
}

/* RTE */
.rte:after {
  clear: both;
  content: '';
  display: block;
}

.rte > *:first-child {
  margin-top: 0;
}

.rte > *:last-child {
  margin-bottom: 0;
}

.rte table {
  table-layout: fixed;
}

@media screen and (min-width: 750px) {
  .rte table td {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }
}

.rte img {
  height: auto;
  max-width: 100%;
  border: var(--media-border-width) solid
    rgba(var(--color-foreground), var(--media-border-opacity));
  border-radius: var(--media-radius);
  box-shadow: var(--media-shadow-horizontal-offset)
    var(--media-shadow-vertical-offset) var(--media-shadow-blur-radius)
    rgba(var(--color-shadow), var(--media-shadow-opacity));
  margin-bottom: var(--media-shadow-vertical-offset);
}

.rte ul,
.rte ol {
  list-style-position: inside;
  padding-left: 2rem;
}

.rte li {
  list-style: inherit;
}

.rte li:last-child {
  margin-bottom: 0;
}

.rte a {
  text-underline-offset: 0.3rem;
  text-decoration-thickness: 0.1rem;
  transition: text-decoration-thickness var(--duration-short) ease;
}

.rte a:hover {
  text-decoration-thickness: 0.2rem;
}

.rte blockquote {
  display: inline-flex;
}

.rte blockquote > * {
  margin: -0.5rem 0 -0.5rem 0;
}

/* Fixed background */
.animate--fixed {
  clip-path: inset(0);
}

.animate--fixed img:not(.zoom):not(.deferred-media__poster-button),
.animate--fixed svg:not(.zoom):not(.deferred-media__poster-button) {
  position: fixed;
  height: 100vh;
}

/* Zoom in image on scroll */
.animate--zoom-in {
  --zoom-in-ratio: 1;
}

.animate--zoom-in img,
.animate--zoom-in svg {
  transition: scale var(--duration-short) linear;
  scale: var(--zoom-in-ratio);
}

/* Animations */

@media (prefers-reduced-motion: no-preference) {
  .animate--ambient img,
  .animate--ambient svg {
    animation: animateAmbient 30s linear infinite;
  }

  @keyframes animateAmbient {
    0% {
      transform: rotate(0deg) translateX(1em) rotate(0deg) scale(1.2);
    }
    100% {
      transform: rotate(360deg) translateX(1em) rotate(-360deg) scale(1.2);
    }
  }

  .scroll-trigger.animate--fade-in,
  .scroll-trigger.animate--slide-in {
    opacity: 0.01;
  }

  .scroll-trigger.animate--slide-in {
    transform: translateY(2rem);
  }

  .scroll-trigger:not(.scroll-trigger--offscreen).animate--fade-in {
    opacity: 1;
    animation: var(--animation-fade-in);
  }

  .scroll-trigger:not(.scroll-trigger--offscreen).animate--slide-in {
    animation: var(--animation-slide-in);
    animation-delay: calc(var(--animation-order) * 75ms);
  }

  .scroll-trigger.scroll-trigger--design-mode.animate--fade-in,
  .scroll-trigger.scroll-trigger--design-mode.animate--slide-in,
  .scroll-trigger.scroll-trigger--design-mode .slider,
  .scroll-trigger:not(.scroll-trigger--offscreen).scroll-trigger--cancel {
    opacity: 1;
    animation: none;
    transition: none;
    transform: none;
  }

  .scroll-trigger.scroll-trigger--design-mode.animate--slide-in {
    transform: translateY(0);
  }

  @keyframes slideIn {
    from {
      transform: translateY(2rem);
      opacity: 0.01;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  @keyframes fadeIn {
    from {
      opacity: 0.01;
    }
    to {
      opacity: 1;
    }
  }
}

/* Loading spinner */
.loading__spinner {
  position: absolute;
  z-index: 1;
  width: 1.8rem;
}

.loading__spinner {
  width: 1.8rem;
  display: inline-block;
}

.spinner {
  animation: rotator 1.4s linear infinite;
}

@keyframes rotator {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(270deg);
  }
}

.path {
  stroke-dasharray: 280;
  stroke-dashoffset: 0;
  transform-origin: center;
  stroke: rgb(var(--color-foreground));
  animation: dash 1.4s ease-in-out infinite;
}

@media screen and (forced-colors: active) {
  .path {
    stroke: CanvasText;
  }
}

@keyframes dash {
  0% {
    stroke-dashoffset: 280;
  }
  50% {
    stroke-dashoffset: 75;
    transform: rotate(135deg);
  }
  100% {
    stroke-dashoffset: 280;
    transform: rotate(450deg);
  }
}

.loading__spinner:not(.hidden) ~ cart-remove-button {
  opacity: 50%;
}

.loading__spinner:not(.hidden) ~ cart-remove-button {
  pointer-events: none;
  cursor: default;
}

/* Progress bar */
.progress-bar-container {
  width: 100%;
  margin: auto;
}

.progress-bar {
  height: 0.13rem;
  width: 100%;
}

.progress-bar-value {
  width: 100%;
  height: 100%;
  background-color: rgb(var(--color-foreground));
  animation: indeterminateAnimation var(--duration-extra-longer) infinite
    ease-in-out;
  transform-origin: 0;
}

.progress-bar .progress-bar-value {
  display: block;
}

@keyframes indeterminateAnimation {
  0% {
    transform: translateX(-20%) scaleX(0);
  }
  40% {
    transform: translateX(30%) scaleX(0.7);
  }
  100% {
    transform: translateX(100%) scaleX(0);
  }
}

/** Modals **/
.modal {
  box-sizing: border-box;
  opacity: 0;
  position: fixed;
  visibility: hidden;
  z-index: -1;
  margin: 0 auto;
  top: 0;
  left: 0;
  overflow: auto;
  width: 100%;
  background: rgba(var(--color-foreground), 0.2);
  height: 100%;
}

.modal[open] {
  opacity: 1;
  visibility: visible;
  z-index: 101;
}

.modal__container {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  padding: 1rem;

  max-width: 600px;
  min-height: 200px;
  max-height: 600px;
  overflow: auto;
  background-color: rgb(var(--color-background));

  border-radius: var(--dialog-corner-radius);
  border-color: rgba(var(--color-foreground), var(--dialog-border-opacity));
  border-style: solid;
  border-width: var(--dialog-border-width);
  box-shadow: var(--dialog-shadow-horizontal-offset)
    var(--dialog-shadow-vertical-offset) var(--dialog-shadow-blur-radius)
    rgba(var(--color-shadow), var(--dialog-shadow-opacity));
}

.modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0;
  z-index: 10;
}

.modal__toggle-close {
  display: none;
}

.modal__close svg {
  height: auto;
  margin: 0;
  width: 1.5rem;
}

@media screen and (max-width: 749px) {
  .modal__container table {
    display: block;
    max-width: fit-content;
    overflow-x: auto;
    white-space: nowrap;
    margin: 0;
  }
}

/** Drawers **/
.drawer {
  visibility: hidden;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100%;
  display: flex;
  justify-content: flex-end;
  background-color: rgba(var(--color-foreground), 0.5);
  transition: visibility var(--duration-default) ease;
}

.drawer--subdrawer {
  background: transparent;
}

.drawer--left {
  justify-content: flex-start;
}

.drawer.active,
menu-drawer details[open] > .drawer,
.menu-drawer-container[open] > .drawer {
  visibility: visible;
}

.drawer__container {
  height: 100%;
  width: 100%;
  max-width: 480px;
  padding: 0 1rem;
  border-right: 0;
  overflow: hidden;
  display: flex;
  flex-flow: column;
  transform: translateX(100%);
  transition: transform var(--duration-default) ease;

  border-radius: var(--dialog-corner-radius);

  border-color: rgba(var(--color-foreground), var(--dialog-border-opacity));
  border-style: solid;
  border-width: var(--dialog-border-width);
  box-shadow: var(--dialog-shadow-horizontal-offset)
    var(--dialog-shadow-vertical-offset) var(--dialog-shadow-blur-radius)
    rgba(var(--color-shadow), var(--dialog-shadow-opacity));
}

.drawer--left .drawer__container {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: var(--dialog-corner-radius);
  border-bottom-left-radius: var(--dialog-corner-radius);
}

.drawer--right .drawer__container {
  border-top-right-radius: var(--dialog-corner-radius);
  border-bottom-right-radius: var(--dialog-corner-radius);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.drawer__container--no-corners {
  border-radius: 0 !important;
}

.drawer--left .drawer__container {
  transform: translateX(-100%);

  border-top-right-radius: var(--dialog-corner-radius);
  border-bottom-right-radius: var(--dialog-corner-radius);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

@media screen and (max-width: 749px) {
  .drawer__container {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
}

.drawer.drawer--opened .drawer__container {
  transform: translateX(0%);
}

.drawer__overlay {
  display: block !important;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.drawer__header {
  position: relative;
  padding: 1rem 1rem 1rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.drawer__header--no-text {
  justify-content: end;
  padding: 1rem;
}

.drawer__header--no-padding {
  padding: 1rem 0;
}

.drawer__header * {
  margin: 0;
}

.drawer__close {
  padding: 0;
  z-index: 1;
}

.drawer__close svg {
  height: 1.5rem;
  width: 1.5rem;
  vertical-align: top;
}

.drawer__content {
  height: calc(100% - 52px);
  overflow-y: auto;
  scrollbar-color: #656868 #e8e6e4;
  scrollbar-width: 3px;
}

.drawer__footer {
  margin-top: auto;
  margin-bottom: 0;
  border-top: 0.1rem solid rgba(var(--color-foreground), 0.2);
  padding: 1rem 0;
}

.drawer__utility {
  position: absolute;
  bottom: 137px;
  z-index: 1000;

  padding: 1rem;
  margin-left: -1rem;
  width: calc(100% + 2rem);
  margin-top: auto;
}

.drawer__utility-list {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: center;
}

/** Navigation Drawer **/
.drawer--navigation {
  /*top: calc(var(--header-height) + var(--announcement-height));*/
  top: 0;
}

.drawer--navigation .drawer__container {
  height: 100%;
}

.drawer__close--navigation {
  position: absolute;
  top: 1rem;
  right: 1rem;
  transform: rotate(180deg);
}

.navigation-drawer__content {
  margin-left: -1rem;
  width: calc(100% + 2rem);
  display: flex;
  flex-direction: column;
}

.navigation-drawer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.5rem;
  border-top: 1px solid rgba(var(--color-foreground), 0.1);
  padding-top: 1.5rem;
}

.navigation-drawer__heading {
  letter-spacing: 1px;
  margin-bottom: 1rem;
  padding: 0rem 1rem;
}

.navigation-drawer__items {
  display: flex;
  flex-direction: column;
}

.navigation-drawer__item {
}

.navigation-drawer__item a,
.navigation-drawer__item summary {
  display: block;
  width: 100%;
  padding: 6px 2rem;
}

.navigation-drawer__item a:hover,
.navigation-drawer__item summary:hover {
  background-color: rgba(var(--color-foreground), 0.1);
}

summary.navigation-drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.navigation-drawer__submenu {
  padding: 0 1rem;
}

.navigation-drawer__details > summary .icon-caret {
  transition: all 300ms ease-in-out;
  width: 1rem;
  height: 1rem;
}

.navigation-drawer__details[open] > summary .icon-caret {
  transform: rotate(-90deg);
}

/* Section Titles */
.screen-width .section__header {
  padding: 0 2rem;
}

@media screen and (max-width: 749px) {
  .screen-width .section__header {
    padding: 0 1rem;
  }
}

.section__header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.section__header--bottom {
  margin-bottom: 0;
  margin-top: 1.5rem;
}

.section__header * {
  margin: 0;
}

.section__title {
  width: 100%;
}

.section__title--link {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

/** Account stuff **/
.customer__forgot {
  text-align: right;
  font-size: 0.8rem;
}

/** Tabs **/
.tabs {
  gap: 1rem;
  width: fit-content;
}

.tabs--center {
  margin: 0 auto;
}

/* Purlisse redesign (G1.7): the design has NO grey rule under the tab row. */
.tabs:after {
  content: none;
}

/*
 * R2.3 (client, 2026-08-05): "I changed the Heading sizes to Large across the
 * homepage ... but when I did this it is no longer as bold can you update? It
 * should match the menu item font weight in its boldness."
 *
 * NOT size-dependent, and NOT a missing control — the "Heading size" select the
 * client is using already exists. The problem is that every size class (.h1/.h2/
 * .h3…) shares one weight from --font-heading-weight (settings.heading_weight,
 * saved as 500), so a section title renders 500 at EVERY size. The sections the
 * client left alone only look bolder because G1.12 targets one section by id
 * (`[id$="__perks_program"] .image-with-text__heading`) and hardcodes 700.
 * So picking "Large" didn't lighten anything — it moved the title off the one
 * section that had a bespoke 700 rule.
 *
 * Fix = make the shared section title match that same 700, so the existing
 * Heading size control looks right at every value.
 *
 * Scoped to section titles rather than raising settings.heading_weight, which
 * would restyle 27/36 headings on the homepage alone — mostly mega-menu items
 * the client never mentioned — plus PLP and PDP headings already PASS'd.
 */
.section__header .section__title,
.section__header .section__heading,
.collection-tabs__heading {
  font-weight: 700;
}

.tabs .slider__slide {
  width: auto;
}

.tabs__button {
  position: relative;
  padding: 0 5px 0.75rem;
  text-transform: uppercase;
  width: auto;
  text-decoration: none;
  /* Purlisse redesign (G1.7): inactive tabs are black per Figma */
  color: #000000;
}

.tabs__button[aria-selected='true'] {
  /* Purlisse redesign (G1.7): active tab is brown + underlined (Figma) */
  font-weight: bold;
  color: #796f66;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

/** Price **/
.price {
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
  align-items: end;
}

/** Klaviyo Overrides **/
.klaviyo-bis-trigger {
  width: 100% !important;
  margin-top: 0.25rem !important;
}

.product-form__buy-buttons.hide-klaviyo .klaviyo-bis-trigger {
  display: none !important;
}

/** Firework CSS **/
.fwn-grid .cy-made-in-fw,
.fwn-grid .cy-made-in-fw + svg {
  display: none !important;
}

/** Quickbuy **/
.quickbuy {
  display: flex;
  gap: 1rem;
}

.quickbuy__image {
  max-width: 200px;
  width: 100%;
}

@media screen and (max-width: 749px) {
  .quickbuy__image {
    max-width: 100px;
  }
}

.quickbuy__details {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.quickbuy__text {
  display: flex;
  align-items: end;
  gap: 0.5rem;
}

.quickbuy__variants {
  display: flex;
  flex-flow: wrap;
  gap: 0.25rem;
  margin-top: 0.5rem;
}

.quickview__variant-pill {
  width: calc(100% / 3 - (0.5rem * 2 / 3));
  height: 100%;
  align-items: center;
  justify-content: center;
  display: flex;
  position: relative;
}

.quickbuy__variant-pill * {
  width: 100%;
  height: 100%;
}

.quickbuy__variant-button {
  width: 100%;
  background-color: transparent;
  border: 1px solid rgba(var(--color-foreground), 0.25);
  padding: 0.5rem;
  cursor: pointer;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.quickbuy__variant-button:disabled {
  background-color: rgba(var(--color-foreground), 0.1);
}

.quickbuy__variant-button:hover {
  border: 1px solid rgba(var(--color-foreground), 1);
}

/** Quickview **/
.quickview__images {
  display: flex;
  justify-content: center;
}

.quickview__image {
  max-width: 320px;
  width: 100%;
}

.quickview__details {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.quickview__text {
  display: flex;
  align-items: end;
  gap: 1rem;
}

.quickview__text span {
  flex-shrink: 0;
}

.quickview__variants {
  display: flex;
  flex-flow: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.quickview__variant-pill {
  width: calc(100% / 3 - (0.5rem * 2 / 3));
  align-items: center;
  justify-content: center;
  display: flex;
  position: relative;
}

.quickview__variant-pill:first-child label {
  border-top-left-radius: var(--inputs-radius);
  border-bottom-left-radius: var(--inputs-radius);
}

.quickview__variant-pill:last-child label {
  border-top-right-radius: var(--inputs-radius);
  border-bottom-right-radius: var(--inputs-radius);
}

.quickview__variant-pill label {
  width: 100%;
  background-color: transparent;
  border: 1px solid rgba(var(--color-foreground), 1);
  padding: 0.5rem;
  cursor: pointer;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.quickview__variant-pill input:disabled + label {
  background-color: rgba(var(--color-foreground), 0.1);
}

.quickview__variant-pill input:checked + label {
  background-color: rgba(var(--color-button), 1);
  color: rgba(var(--color-button-text), 1);
}

.quickview__variant-pill:focus-within label {
  outline: 2px solid #4678c6;
}

.quickview__actions {
  margin-top: 1rem;
}

.quickview__information {
  text-align: center;
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-bottom: 1rem;
}

.quickview__information * {
  margin: 0;
}

/* Social list */
.list-social {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.list-social .list-social__item {
  width: 25px;
  height: 25px;
}

.list-social .list-social__item svg {
  vertical-align: top;
}

/** Yotpo **/
.yotpo-widget-subscriptions-add-to-cart .yotpo-radio-container {
  border-radius: 0 !important;
}

/** HUE **/
.hue-review-module {
  --hueReviewNameFontFamily: var(--font-heading-family);
  --hueReviewNameFontSize: var(--font-body-family);

  --hueBodyFontFamily: var(--font-body-family);
}

.hue-btn {
  -webkit-appearance: none;
  appearance: none;

  height: var(--inputs-height) !important;

  --hueQuizLauncherColor: rgb(var(--color-button-text));
  --hueQuizLauncherBackgroundColor: rgb(var(--color-button));

  --hueQuizLauncherBorder: solid var(--inputs-border-width)
    rgb(var(--color-button-border));
  --hueQuizLauncherBorderRadius: var(--button-corner-radius);
  --hueQuizLauncherPadding: var(--inputs-padding);

  --hueButtonFontFamily: var(--font-button-family);
  --hueQuizLauncherFontSize: var(--font-button);
  --hueQuizLauncherFontWeight: var(--font-button-weight);
  --hueQuizLauncherLetterSpacing: var(--font-button-spacing);

  --hueQuizLauncherHoverColor: rgb(var(--color-button-text-hover));
  --hueQuizLauncherHoverBackgroundColor: rgb(var(--color-button-hover));
}

.hue-btn:hover {
  --hueQuizLauncherBorder: solid var(--inputs-border-width)
    rgb(var(--color-button-border-hover));
}

.hue-video-module__main-title {
  line-height: var(--font-heading-height) !important;

  --hueMainHeaderColor: rgb(var(--color-foreground));
  --hueMainHeaderFontFamily: var(--font-heading-family);
  --hueMainHeaderFontSize: var(--font-heading-h2);
  --hueMainHeaderFontStyle: var(--font-heading-style);
  --hueMainHeaderFontWeight: var(--font-heading-weight);
  --hueMainHeaderLetterSpacing: var(--font-heading-spacing);
}

.hue-variant-select__control,
.hue-select-control,
.css-1akxrzl-control {
  line-height: var(--font-body-height) !important;
  font-size: var(--font-body);
  font-style: var(--font-body-style);
  font-weight: var(--font-body-weight);
  letter-spacing: var(--font-body-spacing);

  height: var(--inputs-height) !important;
  font-family: var(--font-body-family) !important;
  background: rgb(var(--color-button)) !important;
  color: rgb(var(--color-button-text)) !important;

  --hueFiltersSelectColor: rgb(var(--color-button-text));
  --hueVariantsSelectColor: rgb(var(--color-button-text));
  --hueVariantsSelectBackgroundColor: rgb(var(--color-button));

  --hueFilterHeight: var(--inputs-height);
  --hueBodyFontFamily: var(--font-body-family);

  --hueSecondaryBorderRadius: var(--inputs-radius);
  --hueVariantsSelectBorder: var(--inputs-border-width) solid
    rgb(var(--color-button));
}

.hue-variant-select__indicator,
.hue-filter-select__control-content-title,
.hue-variant-select__placeholder {
  text-transform: uppercase;

  --hueVariantsSelectTextTransform: var(--font-button-transform);

  color: rgb(var(--color-button-text)) !important;

  --hueBodyColor: rgb(var(--color-button-text));
  --hueFiltersSelectColor: rgb(var(--color-button-text));

  --hueSelectFontFamily: var(--font-button-family);

  --hueVariantsSelectFontSize: var(--font-button);
  --hueVariantsSelectFontWeight: var(--font-button-weight);

  --hueFilterFontSize: var(--font-button);
  --hueFilterFontWeight: var(--font-button-weight);
}


div[data-bv-show] {
  display: block !important;
}

#recharge-storefront-experiences {
  position: relative;
  z-index: 10000000000000;
}

#smile-ui-lite-container {
  z-index: 10000000 !important;
}

#smile-ui-lite-launcher-frame-container {
  right: auto !important;
  left: 16px !important;
}