/** Shopify CDN: Minification failed

Line 7:0 Unexpected "500"
Line 7:62 Unterminated string token

**/
500;600&family=League+Spartan:wght@500;600;700&display=swap');


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

@media (min-width: 990px) {
  html:has(.page-wrapper),
  html:has(.page-wrapper) body {
    height: 100dvh;
    overflow: hidden;
  }
}

html[scroll-lock],
html[scroll-lock] .page-wrapper {
  overflow: hidden;
}

.page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  transition: margin-right var(--animation-speed) var(--animation-timing-fade-out);
}

@media (min-width: 990px) {
  .page-wrapper {
    height: 100dvh;
    overflow-y: auto;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)) var(--color-background);
  }

  .page-wrapper--drawer-open shopify-account::part(dialog) {
    translate: calc(-1 * var(--theme-drawer-width, var(--sidebar-width)));
  }
}

.page-wrapper--drawer-open {
  margin-right: var(--theme-drawer-width, var(--sidebar-width));
  transition-timing-function: var(--animation-timing-fade-in);
}

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

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

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

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

/*
 * The cross-document (MPA) opt-in `@view-transition { navigation: auto }` is declared per-layout
 * (layout/theme.liquid and layout/password.liquid), because this stylesheet is shared by both layouts
 * and a static stylesheet can't read theme settings.
 * It is gated on the same `settings.page_transition_enabled or settings.transition_to_main_product` condition as the
 * render blocker, so the opt-in and its opt-out switch can never disagree. The rules below only
 * take effect once an `@view-transition` opt-in is active, so they are inert without it.
 */
@media (prefers-reduced-motion: no-preference) {
  /* 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);
  background-color: var(--color-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;
}

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

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

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

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

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

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

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

@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 {
  color: currentcolor;
  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 {
  color: rgb(var(--color-rgb, var(--color-foreground-rgb)) / 0.7);
}

/* 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: currentcolor;
    color: rgb(var(--color-rgb, var(--color-foreground-rgb)) / 0.7);
  }
}

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

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

/* Buttons */
.button,
.button-secondary,
.button-custom,
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-focus-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: rgb(var(--color-input-text-rgb) / var(--opacity-muted-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-focus-outline-color: var(--color-primary-button-focus-outline);
}

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

.button-custom {
  --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-secondary);
  --button-focus-outline-color: var(--color-primary-button-focus-outline);

  font-family: var(--button-font-family-primary);
  text-transform: var(--button-text-case-primary);
  border-radius: var(--style-border-radius-buttons-primary);
  outline-color: var(--button-focus-outline-color, var(--button-background-color));
}

.button-custom:hover {
  --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);
}

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

/* Default hover dim for link-style buttons, scoped via :where() so component-specific
   hover rules (.facets__clear-all-link, .header-actions__action, etc.) still win. */
:where(.button-unstyled):hover {
  --hover-color-rgb: var(--color-foreground-rgb);

  color: rgb(var(--hover-color-rgb) / var(--opacity-70));
}

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

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

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

summary:hover {
  color: rgb(var(--color-foreground-rgb) / var(--opacity-80));
}

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

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

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

.shopify-block:has(> [shopify-block-empty]) {
  display: none;
}

.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:focus {
  box-shadow: var(--input-box-shadow-focus);
}

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

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

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

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

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

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

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

.group-block:has(> video-background-component) {
  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);
}

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

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

/* When the header is transparent, and when there is no header-section below it, offset the first main-section with
 * the height of the header
 */
main > .shopify-section:first-child .section:not(.disable-section-top-offset) {
  &.spacing-style,
  .spacing-style {
    --section-top-offset: calc(var(--header-height) * var(--transparent-header-offset-boolean));

    /* Any nested sections should not be offset */
    :is(.spacing-style, .inherit-spacing) {
      --section-top-offset: 0px;
    }
  }

  /* Make sticky content immediately stick to the top of the page */
  .sticky-content {
    margin-top: calc(var(--header-height) * var(--transparent-header-offset-boolean) * -1);
  }
}

/* ==============================================================
   AARUS CREATIONS — CONSOLIDATED THEME OVERRIDES
   Fabric / Horizon

   Includes:
   1. Minimal Urban Monkey-style product cards
   2. Exactly 4 collection/search products per desktop row
   3. Homepage spacing and smaller content (hero unchanged)
   4. Product page media and details layout fixes
   5. Customer Also Loved: 4 columns and centered last two items
   6. Responsive tablet and mobile layouts
============================================================== */

/* --------------------------------------------------------------
   1. SHARED PRODUCT CARD STYLE
-------------------------------------------------------------- */

.product-card,
.product-grid__card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.product-card__content,
.product-grid__card > .group-block {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.product-card .card-gallery,
.product-grid__card .card-gallery {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 0 !important;
  background: #f7f7f5;
}

.product-card .card-gallery :is(img, video),
.product-grid__card .card-gallery :is(img, video),
.product-card .product-media-container :is(img, video),
.product-grid__card .product-media-container :is(img, video) {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center;
}

.product-card :is(h3, h4, .h3, .h4),
.product-grid__card :is(h3, h4, .h3, .h4) {
  margin: 8px 0 0 !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  text-align: left !important;
}

.product-card .price,
.product-grid__card .price {
  margin: 2px 0 0 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  text-align: left !important;
}

.product-card .compare-at-price,
.product-grid__card .compare-at-price {
  font-size: 12px !important;
  opacity: 0.55;
}

.product-card quick-add-component,
.product-card .quick-add,
.product-grid__card quick-add-component,
.product-grid__card .quick-add {
  display: none !important;
}

@media (any-pointer: fine) and (prefers-reduced-motion: no-preference) {
  .product-card .card-gallery img,
  .product-grid__card .card-gallery img {
    transition: transform 0.3s ease;
  }

  .product-card:hover .card-gallery img,
  .product-grid__card:hover .card-gallery img {
    transform: scale(1.015);
  }
}

/* --------------------------------------------------------------
   2. COLLECTION AND SEARCH GRIDS
   Exactly 4 products on desktop, 3 tablet, 2 mobile
-------------------------------------------------------------- */

@media screen and (min-width: 990px) {
  main[data-template*='collection'] .main-collection-grid,
  main[data-template*='search'] .main-collection-grid {
    width: min(1280px, calc(100% - 96px)) !important;
    max-width: 1280px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  main[data-template*='collection'] .product-grid.product-grid--grid,
  main[data-template*='search'] .product-grid.product-grid--grid {
    --product-grid-columns-desktop: repeat(4, minmax(0, 1fr)) !important;
    --product-grid-gap-desktop: 12px 12px !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 12px !important;
    row-gap: 32px !important;
  }

  main[data-template*='collection'] :is(.facets-block-wrapper, .facets-wrapper),
  main[data-template*='search'] :is(.facets-block-wrapper, .facets-wrapper) {
    width: min(1280px, calc(100% - 96px)) !important;
    max-width: 1280px !important;
    margin-inline: auto !important;
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  main[data-template*='collection'] .main-collection-grid,
  main[data-template*='search'] .main-collection-grid {
    width: calc(100% - 48px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  main[data-template*='collection'] .product-grid.product-grid--grid,
  main[data-template*='search'] .product-grid.product-grid--grid {
    --product-grid-columns-desktop: repeat(3, minmax(0, 1fr)) !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 10px !important;
    row-gap: 28px !important;
  }
}

@media screen and (max-width: 749px) {
  main[data-template*='collection'] .main-collection-grid,
  main[data-template*='search'] .main-collection-grid {
    width: calc(100% - 24px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  main[data-template*='collection'] .product-grid,
  main[data-template*='search'] .product-grid {
    --mobile-columns: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 8px !important;
    row-gap: 24px !important;
  }

  .product-card :is(h3, h4, .h3, .h4),
  .product-grid__card :is(h3, h4, .h3, .h4) {
    margin-top: 6px !important;
    font-size: 11px !important;
  }

  .product-card .price,
  .product-grid__card .price {
    font-size: 13px !important;
  }
}

/* --------------------------------------------------------------
   3. HOMEPAGE SPACING
   The first main section (hero) is intentionally unchanged.
-------------------------------------------------------------- */

@media screen and (min-width: 990px) {
  main[data-template*='index'] > .shopify-section:not(:first-child) .section {
    --page-margin: 64px;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .section-content-wrapper.spacing-style {
    --padding-block-start: 64px !important;
    --padding-block-end: 64px !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    :is(.section-resource-list__content, .resource-list, .group-block-content) {
    max-width: 1200px;
    margin-inline: auto;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .resource-list--grid {
    --resource-list-column-gap-desktop: 16px !important;
    --resource-list-row-gap-desktop: 36px !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .resource-list {
    width: min(1180px, 100%) !important;
    margin-inline: auto !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .collection-card__image {
    width: 92% !important;
    margin-inline: auto !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .image-block {
    max-width: 94%;
    margin-inline: auto;
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  main[data-template*='index'] > .shopify-section:not(:first-child) .section {
    --page-margin: 32px;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .section-content-wrapper.spacing-style {
    --padding-block-start: 48px !important;
    --padding-block-end: 48px !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .resource-list {
    width: calc(100% - 32px) !important;
    margin-inline: auto !important;
  }
}

@media screen and (max-width: 749px) {
  main[data-template*='index'] > .shopify-section:not(:first-child) .section {
    --page-margin: 16px;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .section-content-wrapper.spacing-style {
    --padding-block-start: 38px !important;
    --padding-block-end: 38px !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .resource-list {
    width: calc(100% - 20px) !important;
    margin-inline: auto !important;
  }

  main[data-template*='index']
    > .shopify-section:not(:first-child)
    .resource-list--grid {
    --resource-list-column-gap-desktop: 8px !important;
    --resource-list-row-gap-desktop: 24px !important;
  }
}

/* --------------------------------------------------------------
   4. PRODUCT PAGE — URBAN-STYLE TWO-COLUMN LAYOUT
-------------------------------------------------------------- */

.product-information {
  --aarus-line: #d6d6d6;
  --aarus-soft: #f2f2f2;
  --aarus-text: #111;
  --aarus-mono: var(--font-paragraph--family);
  color: var(--aarus-text);
}

.product-information,
.product-information button,
.product-information input,
.product-information select,
.product-information summary {
  font-family: var(--aarus-mono);
}

@media screen and (min-width: 990px) {
  main[data-template*='product'] .product-information {
    padding-top: 28px !important;
    padding-bottom: 56px !important;
  }

  main[data-template*='product'] .product-information__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr) !important;
    width: min(1320px, calc(100% - 96px)) !important;
    max-width: 1320px !important;
    margin-inline: auto !important;
    gap: 32px !important;
    align-items: start !important;
    grid-column: 1 / -1 !important;
  }

  main[data-template*='product'] .product-information__media {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  main[data-template*='product'] .product-details {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 8px 0 0 !important;
    align-self: start !important;
  }

  main[data-template*='product'] .product-details > .group-block {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
  }

  main[data-template*='product'] media-gallery {
    position: sticky;
    top: calc(var(--header-group-height, var(--header-height, 80px)) + 20px);
  }
}

/* Complete product image, not cropped */
main[data-template*='product'] .product-media-container {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  background: #f7f7f5 !important;
}

main[data-template*='product']
  :is(.product-media, .product-media-constraint-wrapper) {
  width: 100% !important;
  height: 100% !important;
}

main[data-template*='product']
  :is(.product-media img, .product-media__image, .deferred-media__poster-image) {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.product-information slideshow-controls {
  bottom: 10px !important;
}

.product-information .slideshow-control {
  width: 7px !important;
  height: 7px !important;
}

/* Product title, price and details */
.product-details {
  font-size: 14px;
  line-height: 1.45;
}

.product-details > .group-block {
  background: #fff;
}

.product-details :is(h1, h2, h3) {
  margin: 0;
  font-family: var(--aarus-mono);
  font-size: 21px;
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.product-details .price {
  margin: 0;
  font-family: var(--aarus-mono);
  font-size: 20px;
  line-height: 1.1;
  font-weight: 700;
  white-space: nowrap;
}

.product-details .compare-at-price {
  font-size: 14px;
  opacity: 0.55;
}

.product-details :is(.tax-note, .product-tax) {
  font-size: 10px;
  line-height: 1.1;
  text-align: right;
}

/* Variant / size picker */
.product-details :is(variant-picker, variant-selects, .variant-picker) {
  display: block;
  margin-top: 8px;
  padding: 13px 10px 10px;
  background: var(--aarus-soft);
  border-top: 1px solid var(--aarus-line);
}

.product-details :is(variant-picker, variant-selects) fieldset {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px !important;
  width: 100%;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  border: 0;
}

.product-details :is(variant-picker, variant-selects) legend {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0 0 7px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
}

.product-details :is(variant-picker, variant-selects) label {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: 0 !important;
  width: 100% !important;
  min-height: 34px;
  margin: 0 !important;
  padding: 5px 8px !important;
  color: #111;
  background: #fff;
  border: 1px solid #111 !important;
  border-radius: 2px !important;
  font-size: 12px;
  line-height: 1;
  text-align: center;
}

.product-details :is(variant-picker, variant-selects) input:checked + label {
  color: #fff !important;
  background: #111 !important;
}

/* Buy buttons */
.product-details :is(.buy-buttons-block, product-form) {
  width: 100%;
}

.product-details :is(.add-to-cart-button, button[name='add']) {
  width: 100% !important;
  min-height: 44px !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: #222 !important;
  color: #fff !important;
  font-family: var(--aarus-mono);
  font-size: 13px !important;
  font-weight: 600;
  text-transform: uppercase;
}

.product-details :is(.add-to-cart-button, button[name='add']):disabled {
  background: #9b9b9b !important;
  color: #fff !important;
  opacity: 1;
}

.product-details .add-to-cart-button .svg-wrapper,
.product-details shopify-accelerated-checkout {
  display: none !important;
}

/* Offer banner — works when the matching Custom Liquid block is present */
.aarus-product-offer {
  display: grid;
  grid-template-columns: 1fr 180px;
  align-items: center;
  gap: 24px;
  width: 100%;
  margin: 12px 0;
  padding: 18px 20px;
  color: #f2e4ca;
  background: #4b3322;
  border: 7px solid #e7d8b8;
  font-family: var(--aarus-font-display);
}

.aarus-product-offer__eyebrow {
  margin-bottom: 8px;
  font-family: var(--aarus-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}

.aarus-product-offer__title {
  margin: 0;
  font-size: 19px;
  line-height: 1;
}

.aarus-product-offer__saving {
  display: block;
  margin-top: 5px;
  font-size: 34px;
  line-height: 1;
}

.aarus-product-offer__code {
  padding: 15px 12px;
  color: #4b3322;
  background: #dbc9a6;
  border-radius: 6px;
  text-align: center;
}

.aarus-product-offer__code small {
  display: block;
  margin-bottom: 8px;
  font-family: var(--aarus-mono);
  font-size: 9px;
  letter-spacing: 0.3em;
}

.aarus-product-offer__code strong {
  font-size: 18px;
}

/* Product feature text and accordions */
.product-details .rte ul {
  margin: 8px 0 14px;
  padding-left: 18px;
}

.product-details .rte li {
  margin: 4px 0;
  font-size: 13px;
}

.product-details details {
  margin: 0 !important;
  border-top: 1px solid var(--aarus-line);
  border-bottom: 0;
  border-radius: 0 !important;
}

.product-details details:last-child {
  border-bottom: 1px solid var(--aarus-line);
}

.product-details summary {
  min-height: 46px;
  padding: 0 2px !important;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.product-details details[open] summary {
  border-bottom: 1px solid var(--aarus-line);
}

.product-details details :is(.details__content, .accordion__content) {
  padding: 14px 2px 18px !important;
}

/* Product page tablet and mobile */
@media screen and (min-width: 750px) and (max-width: 989px) {
  main[data-template*='product'] .product-information {
    padding-top: 22px !important;
    padding-bottom: 44px !important;
  }

  main[data-template*='product'] .product-information__grid {
    width: calc(100% - 48px) !important;
    margin-inline: auto !important;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.9fr) !important;
    gap: 24px !important;
  }
}

@media screen and (max-width: 749px) {
  main[data-template*='product'] .product-information {
    padding-top: 14px !important;
    padding-bottom: 36px !important;
  }

  main[data-template*='product'] .product-information__grid {
    display: block !important;
    width: 100% !important;
  }

  main[data-template*='product'] media-gallery {
    position: static !important;
  }

  main[data-template*='product'] .product-information__media {
    padding-inline: 12px !important;
  }

  main[data-template*='product'] .product-details {
    width: 100% !important;
    padding: 20px 16px 0 !important;
  }

  main[data-template*='product'] .product-media-container {
    aspect-ratio: 4 / 5 !important;
  }

  .product-details :is(h1, h2, h3) {
    font-size: 18px;
  }

  .product-details .price {
    font-size: 17px;
  }

  .product-details :is(variant-picker, variant-selects) fieldset {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .aarus-product-offer {
    grid-template-columns: 1fr;
  }

  .aarus-product-offer__code {
    width: 100%;
  }
}

/* --------------------------------------------------------------
   5. CUSTOMER ALSO LOVED / RELATED PRODUCTS
-------------------------------------------------------------- */

@media screen and (min-width: 750px) {
  main[data-template*='product'] .resource-list--grid {
    --resource-list-columns: repeat(4, minmax(0, 1fr)) !important;
    --resource-list-columns-per-row: 4 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 12px !important;
    row-gap: 30px !important;
  }

  /* For 6, 10, 14... items, place the final two in the middle columns */
  main[data-template*='product']
    .resource-list--grid:has(
      > .resource-list__item:first-child:nth-last-child(4n + 2)
    )
    > .resource-list__item:nth-last-child(2) {
    grid-column-start: 2 !important;
  }
}

@media screen and (max-width: 749px) {
  main[data-template*='product'] .resource-list--grid {
    --resource-list-columns-mobile: repeat(2, minmax(0, 1fr)) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 8px !important;
    row-gap: 24px !important;
  }
}

/* Related-product section heading */
main[data-template*='product'] .section-resource-list__header :is(h2, h3),
main[data-template*='product'] .section-heading :is(h2, h3) {
  text-align: center;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

@media screen and (max-width: 749px) {
  main[data-template*='product'] .section-resource-list__header :is(h2, h3),
  main[data-template*='product'] .section-heading :is(h2, h3) {
    font-size: 21px;
  }
}

/* ==============================================================
   AARUS FIX — KEEP PRODUCT CONTENT BELOW THE HEADER
   This overrides Fabric's transparent-header negative offset only
   on product templates.
============================================================== */

body:has(main[data-template*='product'])
  .content-for-layout
  > .shopify-section:first-child {
  margin-top: 0 !important;
}

body:has(main[data-template*='product'])
  main
  > .shopify-section:first-child
  .section:not(.disable-section-top-offset),
body:has(main[data-template*='product'])
  main
  > .shopify-section:first-child
  .section:not(.disable-section-top-offset).spacing-style,
body:has(main[data-template*='product'])
  main
  > .shopify-section:first-child
  .section:not(.disable-section-top-offset)
  .spacing-style {
  --section-top-offset: 0px !important;
}

body:has(main[data-template*='product']) #header-group {
  position: relative !important;
  z-index: var(--layer-menu-drawer) !important;
  background: var(--color-background, #fff) !important;
}

body:has(main[data-template*='product']) #header-group .header-section,
body:has(main[data-template*='product']) .header[transparent] {
  background: var(--color-background, #fff) !important;
}

@media screen and (min-width: 990px) {
  main[data-template*='product'] .product-information {
    padding-top: 36px !important;
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  main[data-template*='product'] .product-information {
    padding-top: 28px !important;
  }
}

@media screen and (max-width: 749px) {
  main[data-template*='product'] .product-information {
    padding-top: 18px !important;
  }
}

/* ==========================================================
   AARUS CREATIONS — DEFAULT THEME TYPOGRAPHY
   Uses the fonts selected in Shopify Theme settings:
   - Heading font: --font-h1--family
   - Body font: --font-paragraph--family
========================================================== */

:root {
  --aarus-font-display: Arial, Helvetica, sans-serif;
  --aarus-font-body: Arial, Helvetica, sans-serif;
  --aarus-font-mono: Arial, Helvetica, sans-serif;

  --aarus-text-primary: #111111;
  --aarus-text-secondary: #4f4f4f;
  --aarus-text-muted: #777777;

  --aarus-heading-tracking: -0.015em;
  --aarus-label-tracking: 0.08em;
  --aarus-button-tracking: 0.14em;
}

/* Global text */

html,
body {
  color: var(--aarus-text-primary);
}

body,
input,
textarea,
select,
button,
.paragraph:not(.button),
.paragraph > *,
.rte,
.text-block.paragraph,
.field__input,
.field__label {
  font-family: var(--aarus-font-body) !important;
  font-style: normal;
  font-weight: 400;
  font-variation-settings: normal;
  font-variant-numeric: lining-nums tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body,
.paragraph:not(.button),
.paragraph > *,
.rte,
.text-block.paragraph,
.field__input,
.field__label {
  font-size: 13px;
  line-height: 1.55;
  letter-spacing: 0.005em;
}

/* Global headings */

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.text-block.h1 > *,
.text-block.h2 > *,
.text-block.h3 > *,
.text-block.h4 > *,
.text-block.h5 > *,
.text-block.h6 > * {
  margin-top: 0;
  color: var(--aarus-text-primary);
  font-family: var(--aarus-font-display) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  line-height: 0.98 !important;
  letter-spacing: var(--aarus-heading-tracking) !important;
  text-transform: uppercase !important;
}

h1,
.h1,
.text-block.h1 > * {
  font-size: clamp(42px, 5vw, 72px) !important;
}

h2,
.h2,
.text-block.h2 > * {
  font-size: clamp(30px, 3.2vw, 44px) !important;
}

h3,
.h3,
.text-block.h3 > * {
  font-size: clamp(22px, 2.2vw, 31px) !important;
}

h4,
.h4,
.text-block.h4 > * {
  font-size: 20px !important;
}

h5,
.h5,
.text-block.h5 > * {
  font-size: 17px !important;
}

h6,
.h6,
.text-block.h6 > * {
  font-size: 14px !important;
}

/* Header and navigation */

.header,
.header a,
.header button,
.header-menu,
.header-menu a,
.header__menu-item,
.menu-list__link,
.menu-drawer a,
.menu-drawer button,
.header-logo,
.header__heading,
.header__heading-link,
.header__heading-link span {
  font-family: var(--aarus-font-body) !important;
}

.header-menu a,
.header__menu-item,
.menu-list__link {
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.header-logo,
.header__heading,
.header__heading-link,
.header__heading-link span {
  font-family: var(--aarus-font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  text-transform: uppercase !important;
}

.search-input,
.search-modal input,
.predictive-search input,
input[type='search'] {
  font-family: var(--aarus-font-body) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
}

/* Homepage hero */

main[data-template*='index'] .hero h1,
main[data-template*='index'] .hero h2,
main[data-template*='index'] .hero .heading,
main[data-template*='index'] .hero .text-block:is(.h1, .h2) > * {
  font-family: var(--aarus-font-display) !important;
  font-size: clamp(44px, 5.4vw, 80px) !important;
  font-weight: 600 !important;
  line-height: 0.87 !important;
  letter-spacing: -0.025em !important;
  text-transform: uppercase !important;
}

main[data-template*='index'] .hero p,
main[data-template*='index'] .hero .paragraph {
  font-family: var(--aarus-font-body) !important;
  font-size: clamp(11px, 1vw, 14px) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
}

main[data-template*='index'] .hero .eyebrow,
main[data-template*='index'] .hero .subheading {
  font-family: var(--aarus-font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

/* Section headings */

.section-resource-list__header h2,
.section-resource-list__header h3,
.section-heading,
.related-products h2,
.product-recommendations h2,
.collection-list h2,
.featured-collection h2,
.email-signup h2 {
  margin-bottom: 18px !important;
  font-family: var(--aarus-font-display) !important;
  font-size: clamp(29px, 3vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 0.98 !important;
  letter-spacing: -0.01em !important;
  text-align: center;
  text-transform: uppercase !important;
}

/* Product cards */

.product-card,
.product-card *,
.collection-card,
.collection-card * {
  font-family: var(--aarus-font-body) !important;
}

.product-card :is(h3, h4, .h3, .h4),
.product-card .product-card__title,
.product-card .text-block:not(.price) {
  margin-top: 8px !important;
  margin-bottom: 3px !important;
  font-family: var(--aarus-font-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.035em !important;
  text-align: left !important;
  text-transform: uppercase !important;
}

.product-card .price,
.product-card product-price,
.product-card .price-item {
  font-family: var(--aarus-font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}

.product-card .compare-at-price,
.product-card s {
  color: var(--aarus-text-muted) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

.product-card .sale-percentage,
.product-card .discount-percentage {
  color: #d12b2b !important;
  font-family: var(--aarus-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

.product-card .badge,
.product-badges .badge,
.badge {
  font-family: var(--aarus-font-body) !important;
  font-size: 9px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* Collection pages */

main[data-template*='collection'] h1,
.collection-heading h1,
.collection-heading .h1 {
  font-family: var(--aarus-font-display) !important;
  font-size: clamp(44px, 5vw, 70px) !important;
  font-weight: 600 !important;
  line-height: 0.95 !important;
  letter-spacing: -0.02em !important;
  text-transform: uppercase !important;
}

.facets,
.facets *,
.facets__summary,
.facets__label,
.facets__sort,
.facets__item,
.facets__count,
.facets-block-wrapper,
.facets-block-wrapper button,
.facets-block-wrapper select,
.product-count,
.product-count__text {
  font-family: var(--aarus-font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.055em !important;
  text-transform: uppercase;
}

/* Product page */

.product-information,
.product-information button,
.product-information input,
.product-information select,
.product-information summary,
.product-information .rte {
  font-family: var(--aarus-font-body) !important;
}

.product-details h1,
.product-details .product-title,
.product-details .product-title > * {
  font-family: var(--aarus-font-display) !important;
  font-size: clamp(29px, 2.7vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 0.98 !important;
  letter-spacing: -0.015em !important;
  text-transform: uppercase !important;
}

.product-details .price,
.product-details product-price,
.product-details .price-item {
  font-family: var(--aarus-font-body) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}

.product-details .compare-at-price {
  font-size: 12px !important;
  font-weight: 400 !important;
}

.product-details .tax-note,
.product-details .product-tax {
  font-family: var(--aarus-font-body) !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
}

.product-details variant-picker legend,
.product-details variant-selects legend,
.product-details .variant-picker__label {
  font-family: var(--aarus-font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: var(--aarus-label-tracking) !important;
  text-transform: uppercase !important;
}

.product-details variant-picker label,
.product-details variant-selects label,
.product-details .variant-picker__option label,
.product-details quantity-selector,
.product-details quantity-input,
.product-details .quantity-selector,
.product-details .quantity-selector button,
.product-details .quantity-selector input {
  font-family: var(--aarus-font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
}

.product-details .add-to-cart-button,
.product-details button[name='add'],
.product-details .button,
.button,
.button-secondary,
.button-custom,
.shopify-payment-button__button,
button[type='submit'],
.aarus-hero-cta__button {
  font-family: var(--aarus-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: var(--aarus-button-tracking) !important;
  text-transform: uppercase !important;
}

.product-details .rte,
.product-details .rte p,
.product-details .rte li,
.product-details .rte span,
.product-details .accordion__content,
.product-details details .text-block,
.product-details details .text-block p,
.product-details details .text-block li {
  color: #1a1a1a !important;
  opacity: 1 !important;
  font-family: var(--aarus-font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.62 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
}

.product-details .rte strong,
.product-details details strong,
.product-details .accordion__content strong {
  color: #111111 !important;
  font-weight: 600 !important;
}

.product-details .rte h2,
.product-details .rte h3,
.product-details .rte h4,
.product-details details h2,
.product-details details h3,
.product-details details h4 {
  color: #111111 !important;
  font-family: var(--aarus-font-display) !important;
  font-size: 23px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  text-transform: uppercase !important;
}

.product-details details summary,
.product-details .accordion summary,
.product-details .accordion__title {
  color: #111111 !important;
  opacity: 1 !important;
  font-family: var(--aarus-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.065em !important;
  text-transform: uppercase !important;
}

/* Cart and footer */

.cart-drawer,
.cart-drawer *,
.cart-items,
.cart-items *,
.footer,
.footer *,
.footer a {
  font-family: var(--aarus-font-body) !important;
}

.cart-drawer h2,
.cart-drawer h3,
.footer h2,
.footer h3,
.footer h4,
.footer .footer-block__heading {
  font-family: var(--aarus-font-display) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
}

.footer h2,
.footer h3,
.footer h4,
.footer .footer-block__heading {
  margin-bottom: 14px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
}

.footer a,
.footer p,
.footer li {
  font-family: var(--aarus-font-body) !important;
  font-size: 12px !important;
  line-height: 1.65 !important;
  letter-spacing: 0.01em !important;
}

.email-signup h2 {
  font-family: var(--aarus-font-display) !important;
  font-size: clamp(29px, 3vw, 41px) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
}

.email-signup p,
.email-signup input {
  font-family: var(--aarus-font-body) !important;
  font-size: 12px !important;
}

/* Hero custom button */

.aarus-hero-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 18px;
}

.aarus-hero-cta__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-width: 174px;
  min-height: 48px;
  padding: 13px 25px;
  color: #ffffff;
  background: #111111;
  border: 1px solid #111111;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  text-decoration: none;
  transition:
    color 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease,
    transform 220ms ease;
}

.aarus-hero-cta__button::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #ffffff;
  transform: translateX(-102%);
  transition: transform 280ms ease;
}

.aarus-hero-cta__text,
.aarus-hero-cta__label,
.aarus-hero-cta__arrow,
.aarus-hero-cta__icon {
  position: relative;
  z-index: 1;
}

.aarus-hero-cta__arrow,
.aarus-hero-cta__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 220ms ease;
}

.aarus-hero-cta__button:hover {
  color: #111111;
  border-color: #111111;
  transform: translateY(-2px);
}

.aarus-hero-cta__button:hover::before {
  transform: translateX(0);
}

.aarus-hero-cta__button:hover :is(.aarus-hero-cta__arrow, .aarus-hero-cta__icon) {
  transform: translateX(4px);
}

.aarus-hero-cta__button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* Mobile typography */

@media screen and (max-width: 749px) {
  body,
  .paragraph:not(.button),
  .paragraph > *,
  .rte {
    font-size: 12px;
  }

  .header-menu a,
  .header__menu-item,
  .menu-list__link {
    font-size: 13px !important;
  }

  main[data-template*='index'] .hero h1,
  main[data-template*='index'] .hero h2,
  main[data-template*='index'] .hero .heading {
    font-size: clamp(36px, 11vw, 55px) !important;
    line-height: 0.9 !important;
  }

  main[data-template*='index'] .hero p,
  main[data-template*='index'] .hero .paragraph {
    font-size: 10px !important;
  }

  .section-resource-list__header h2,
  .section-heading,
  .related-products h2,
  .product-recommendations h2 {
    margin-bottom: 14px !important;
    font-size: 25px !important;
  }

  main[data-template*='collection'] h1,
  .collection-heading h1 {
    font-size: 40px !important;
  }

  .product-card :is(h3, h4, .h3, .h4),
  .product-card .product-card__title {
    font-size: 10px !important;
  }

  .product-card .price,
  .product-card product-price {
    font-size: 12px !important;
  }

  .product-details h1,
  .product-details .product-title {
    font-size: 27px !important;
  }

  .product-details .price,
  .product-details product-price {
    font-size: 16px !important;
  }

  .product-details .rte,
  .product-details .rte p,
  .product-details .rte li,
  .product-details .accordion__content,
  .product-details details .text-block {
    font-size: 13px !important;
    line-height: 1.65 !important;
  }

  .aarus-hero-cta {
    margin-top: 14px;
  }

  .aarus-hero-cta__button {
    min-width: 154px;
    min-height: 44px;
    padding: 11px 20px;
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aarus-hero-cta__button,
  .aarus-hero-cta__button::before,
  .aarus-hero-cta__arrow,
  .aarus-hero-cta__icon {
    transition: none;
  }

  .aarus-hero-cta__button:hover {
    transform: none;
  }
}

/* ==========================================================
   AARUS — MOBILE HORIZONTAL OVERFLOW FIX
   Paste at the absolute bottom of Assets/base.css
========================================================== */

@media screen and (max-width: 749px) {
  /* Stop the complete page from sliding horizontally */
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
  }

  .page-wrapper,
  .content-for-layout,
  main {
    width: 100%;
    max-width: 100vw;
    min-width: 0;
    overflow-x: clip !important;
  }

  /* Allow Fabric layout containers to shrink on mobile */
  main > .shopify-section,
  .section,
  .section-content-wrapper,
  .spacing-style,
  .group-block,
  .group-block-content,
  .layout-panel-flex,
  .text-block,
  .image-block {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Keep the hero inside the mobile screen */
  main[data-template*='index'] .hero,
  main[data-template*='index'] .hero > *,
  main[data-template*='index'] .hero .section-content-wrapper,
  main[data-template*='index'] .hero .group-block,
  main[data-template*='index'] .hero .group-block-content,
  main[data-template*='index'] .hero .image-block {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Keep the scrolling Marquee inside its own section */
  marquee-component,
  .marquee,
  .marquee-block,
  .marquee-container,
  .marquee__container,
  .marquee__wrapper {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    contain: inline-size;
  }

  /* Allow the inner text track to remain wide for animation */
  .marquee__track,
  .marquee__content,
  .marquee__inner {
    max-width: none !important;
  }

  /* Homepage products: exactly two cards on mobile */
  main[data-template*='index'] .resource-list,
  main[data-template*='index'] .resource-list--grid,
  main[data-template*='index'] .product-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  main[data-template*='index'] .resource-list--grid,
  main[data-template*='index'] .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 8px !important;
    row-gap: 24px !important;
  }

  main[data-template*='index'] :is(
    .resource-list__item,
    .product-grid__item,
    .product-card,
    product-card
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Prevent images and long text from creating extra width */
  img,
  picture,
  video,
  canvas,
  svg {
    max-width: 100% !important;
  }

  .rte,
  .text-block,
  .product-card,
  .product-card * {
    overflow-wrap: anywhere;
  }
}

/* Avoid 100vw overflow inside sections with page margins */
@media screen and (max-width: 989px) {
  main .section,
  main .section-content-wrapper {
    width: 100% !important;
  }
}

/* ==========================================================
   AARUS — EQUAL MOBILE PRODUCT IMAGE SPACING
========================================================== */

@media screen and (max-width: 749px) {
  /* Remove the old padding that shifts a full-width gallery */
  main[data-template*='product'] .product-information__media {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Create equal 14px space on both sides */
  main[data-template*='product']
    .product-information__media media-gallery {
    display: block !important;
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  /* Keep all gallery elements inside that centred width */
  main[data-template*='product']
    .product-information__media slideshow-component,
  main[data-template*='product']
    .product-information__media slideshow-container,
  main[data-template*='product']
    .product-information__media slideshow-slide,
  main[data-template*='product']
    .product-information__media .product-media-container,
  main[data-template*='product']
    .product-information__media .product-media,
  main[data-template*='product']
    .product-information__media .product-media-constraint-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Keep the image inside the gallery */
  main[data-template*='product']
    .product-information__media img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

/* ==========================================================
   AARUS — FIX MOBILE PRODUCT TEXT CUTTING
========================================================== */

@media screen and (max-width: 749px) {
  /* Main product information container */
  main[data-template*='product'] .product-information,
  main[data-template*='product'] .product-information__grid,
  main[data-template*='product'] .product-details {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Equal padding on both sides */
  main[data-template*='product'] .product-details {
    padding: 20px 18px 36px !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  /* Stop inner Fabric blocks from becoming wider than the parent */
  main[data-template*='product'] .product-details > *,
  main[data-template*='product'] .product-details .group-block,
  main[data-template*='product'] .product-details .group-block-content,
  main[data-template*='product'] .product-details .text-block,
  main[data-template*='product'] .product-details .rte,
  main[data-template*='product'] .product-details .accordion,
  main[data-template*='product'] .product-details details,
  main[data-template*='product'] .product-details summary,
  main[data-template*='product'] .product-details .accordion__content,
  main[data-template*='product'] .product-details .details__content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Make all description text wrap correctly */
  main[data-template*='product'] .product-details :is(
    p,
    li,
    span,
    strong,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6
  ) {
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  /* Product-description readability */
  main[data-template*='product'] .product-details .rte,
  main[data-template*='product'] .product-details .rte p,
  main[data-template*='product'] .product-details .rte li,
  main[data-template*='product'] .product-details .accordion__content,
  main[data-template*='product'] .product-details details .text-block {
    color: #171717 !important;
    opacity: 1 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    letter-spacing: 0 !important;
  }

  /* Description heading */
  main[data-template*='product'] .product-details .rte h2,
  main[data-template*='product'] .product-details .rte h3 {
    margin-top: 26px !important;
    margin-bottom: 18px !important;
    color: #111111 !important;
    font-size: 30px !important;
    line-height: 1.05 !important;
  }

  /* Bullet list */
  main[data-template*='product'] .product-details .rte ul {
    width: 100% !important;
    margin: 12px 0 26px !important;
    padding-left: 28px !important;
    box-sizing: border-box !important;
  }

  main[data-template*='product'] .product-details .rte li {
    margin-bottom: 10px !important;
    padding-left: 2px !important;
  }

  /* Accordion rows */
  main[data-template*='product'] .product-details details {
    overflow: hidden !important;
  }

  main[data-template*='product'] .product-details summary {
    padding: 18px 4px !important;
  }

  main[data-template*='product'] .product-details .accordion__content,
  main[data-template*='product'] .product-details .details__content {
    padding: 16px 4px 22px !important;
  }
}

/* ==========================================================
   AARUS — FINAL GLOBAL READABLE TYPOGRAPHY
   Balanced desktop and mobile sizes for all storefront pages.
   Keep this block at the absolute bottom of base.css.
========================================================== */

:root {
  --aarus-readable-body: 16px;
  --aarus-readable-small: 13px;
  --aarus-readable-card-title: 13px;
  --aarus-readable-card-price: 15px;
  --aarus-readable-line-height: 1.65;
}

/* Global body copy */
body,
.paragraph:not(.button),
.paragraph > *,
.text-block.paragraph,
.rte,
.page-content,
.shopify-policy__body,
.shopify-policy__body p,
.shopify-policy__body li {
  font-size: var(--aarus-readable-body) !important;
  line-height: var(--aarus-readable-line-height) !important;
}

/* Standard page content */
main[data-template*='page'] :is(
  .rte,
  .rte p,
  .rte li,
  .text-block.paragraph,
  .text-block.paragraph > *
) {
  font-size: 17px !important;
  line-height: 1.72 !important;
}

/* Headings inside normal pages */
main[data-template*='page'] h1,
main[data-template*='page'] .h1,
main[data-template*='page'] .text-block.h1 > * {
  font-size: clamp(42px, 5vw, 62px) !important;
  line-height: 0.98 !important;
}

main[data-template*='page'] h2,
main[data-template*='page'] .h2,
main[data-template*='page'] .text-block.h2 > * {
  font-size: clamp(30px, 3.4vw, 42px) !important;
  line-height: 1 !important;
}

main[data-template*='page'] h3,
main[data-template*='page'] .h3,
main[data-template*='page'] .text-block.h3 > * {
  font-size: clamp(23px, 2.4vw, 31px) !important;
  line-height: 1.08 !important;
}

/* Header and navigation */
.aarus-modern-header__menu-link,
.header-menu a,
.header__menu-item,
.menu-list__link {
  font-size: 14px !important;
}

.aarus-modern-header__dropdown a,
.aarus-modern-header__mobile-menu a,
.aarus-modern-header__mobile-menu summary,
.menu-drawer a,
.menu-drawer button {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.aarus-modern-header__search input,
.aarus-modern-header__search button,
.search-input,
.search-modal input,
.predictive-search input,
input[type='search'] {
  font-size: 13px !important;
}

/* Section headings */
.section-resource-list__header :is(h2, h3),
.section-heading :is(h2, h3),
.related-products h2,
.product-recommendations h2,
.collection-list h2,
.featured-collection h2,
.email-signup h2 {
  font-size: clamp(31px, 3vw, 41px) !important;
  line-height: 1 !important;
}

/* Product cards stay compact */
.product-card :is(h3, h4, .h3, .h4),
.product-card .product-card__title,
.product-grid__card :is(h3, h4, .h3, .h4) {
  font-size: var(--aarus-readable-card-title) !important;
  line-height: 1.35 !important;
}

.product-card .price,
.product-card product-price,
.product-card .price-item,
.product-grid__card .price {
  font-size: var(--aarus-readable-card-price) !important;
  line-height: 1.3 !important;
}

.product-card .compare-at-price,
.product-card s,
.product-grid__card .compare-at-price {
  font-size: 13px !important;
}

.product-card .badge,
.product-badges .badge,
.badge {
  font-size: 10px !important;
}

/* Collection and search controls */
.facets,
.facets *,
.facets-block-wrapper,
.facets-block-wrapper button,
.facets-block-wrapper select,
.product-count,
.product-count__text {
  font-size: 13px !important;
  line-height: 1.4 !important;
}

/* Product page */
.product-details h1,
.product-details .product-title,
.product-details .product-title > * {
  font-size: clamp(32px, 3vw, 43px) !important;
  line-height: 1 !important;
}

.product-details .price,
.product-details product-price,
.product-details .price-item {
  font-size: 21px !important;
  line-height: 1.15 !important;
}

.product-details .compare-at-price {
  font-size: 15px !important;
}

.product-details variant-picker legend,
.product-details variant-selects legend,
.product-details .variant-picker__label,
.product-details details summary,
.product-details .accordion summary,
.product-details .accordion__title {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.product-details variant-picker label,
.product-details variant-selects label,
.product-details .variant-picker__option label,
.product-details .quantity-selector,
.product-details .quantity-selector button,
.product-details .quantity-selector input {
  font-size: 14px !important;
}

.product-details .rte,
.product-details .rte p,
.product-details .rte li,
.product-details .rte span,
.product-details .accordion__content,
.product-details details .text-block,
.product-details details .text-block p,
.product-details details .text-block li {
  color: #171717 !important;
  opacity: 1 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

.product-details .rte h2,
.product-details .rte h3,
.product-details .rte h4,
.product-details details h2,
.product-details details h3,
.product-details details h4 {
  font-size: 27px !important;
  line-height: 1.06 !important;
}

/* Contact and Custom Order sections */
.aarus-contact,
.aarus-contact p,
.aarus-contact li,
.aarus-contact .rte,
.aarus-custom-order,
.aarus-custom-order p,
.aarus-custom-order li,
.aarus-custom-order .rte {
  font-size: 16px !important;
  line-height: 1.67 !important;
}

.aarus-contact__heading,
.aarus-custom-order__form-heading h2,
.aarus-custom-order__aside h2 {
  font-size: clamp(28px, 2.6vw, 37px) !important;
}

.aarus-contact__field label,
.aarus-custom-order__field label {
  font-size: 13px !important;
}

.aarus-contact__field input,
.aarus-contact__field textarea,
.aarus-custom-order__field input,
.aarus-custom-order__field select,
.aarus-custom-order__field textarea {
  font-size: 16px !important;
}

/* Buttons */
.button,
.button-secondary,
.button-custom,
button[type='submit'],
.shopify-payment-button__button,
.aarus-hero-cta__button,
.aarus-contact__submit,
.aarus-custom-order__submit {
  font-size: 12px !important;
}

/* Newsletter */
.email-signup p,
.email-signup .paragraph {
  font-size: 15px !important;
}

.email-signup input {
  font-size: 16px !important;
}

/* Footer: prevent giant headings while enlarging links */
footer,
.footer,
.shopify-section-group-footer-group {
  font-size: 15px !important;
}

footer :is(p, li, a),
.footer :is(p, li, a),
.shopify-section-group-footer-group :is(p, li, a) {
  font-size: 15px !important;
  line-height: 1.7 !important;
}

footer :is(h1, h2, h3, h4, h5, h6),
.footer :is(h1, h2, h3, h4, h5, h6),
.footer .footer-block__heading,
.shopify-section-group-footer-group :is(h1, h2, h3, h4, h5, h6),
.shopify-section-group-footer-group .text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > * {
  font-size: 22px !important;
  line-height: 1.05 !important;
  letter-spacing: -0.01em !important;
}

/* Cart drawer */
.cart-drawer,
.cart-drawer :is(p, li, a),
.cart-items,
.cart-items * {
  font-size: 15px !important;
  line-height: 1.5 !important;
}

.cart-drawer :is(h2, h3) {
  font-size: 26px !important;
}

/* Mobile */
@media screen and (max-width: 749px) {
  :root {
    --aarus-readable-body: 16px;
    --aarus-readable-small: 13px;
    --aarus-readable-card-title: 12px;
    --aarus-readable-card-price: 14px;
  }

  body,
  .paragraph:not(.button),
  .paragraph > *,
  .text-block.paragraph,
  .rte {
    font-size: 16px !important;
    line-height: 1.67 !important;
  }

  main[data-template*='page'] :is(
    .rte,
    .rte p,
    .rte li,
    .text-block.paragraph,
    .text-block.paragraph > *
  ) {
    font-size: 16px !important;
    line-height: 1.72 !important;
  }

  main[data-template*='page'] h1,
  main[data-template*='page'] .h1,
  main[data-template*='page'] .text-block.h1 > * {
    font-size: clamp(36px, 10vw, 48px) !important;
  }

  main[data-template*='page'] h2,
  main[data-template*='page'] .h2,
  main[data-template*='page'] .text-block.h2 > * {
    font-size: clamp(29px, 8vw, 38px) !important;
  }

  main[data-template*='page'] h3,
  main[data-template*='page'] .h3,
  main[data-template*='page'] .text-block.h3 > * {
    font-size: 25px !important;
  }

  .aarus-modern-header__mobile-menu a,
  .aarus-modern-header__mobile-menu summary,
  .menu-drawer a {
    font-size: 15px !important;
  }

  .section-resource-list__header :is(h2, h3),
  .section-heading :is(h2, h3),
  .related-products h2,
  .product-recommendations h2,
  .email-signup h2 {
    font-size: 30px !important;
  }

  .product-details h1,
  .product-details .product-title {
    font-size: 30px !important;
  }

  .product-details .rte,
  .product-details .rte p,
  .product-details .rte li,
  .product-details .accordion__content,
  .product-details details .text-block {
    font-size: 16px !important;
    line-height: 1.72 !important;
  }

  footer :is(p, li, a),
  .footer :is(p, li, a),
  .shopify-section-group-footer-group :is(p, li, a) {
    font-size: 15px !important;
  }

  footer :is(h1, h2, h3, h4, h5, h6),
  .footer :is(h1, h2, h3, h4, h5, h6),
  .footer .footer-block__heading,
  .shopify-section-group-footer-group :is(h1, h2, h3, h4, h5, h6),
  .shopify-section-group-footer-group .text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > * {
    font-size: 21px !important;
  }
}

/* ==========================================================
   AARUS PRODUCT PAGE — SIZE BUTTON GRID FIX
========================================================== */

.aarus-pdp__option-values {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}

.aarus-pdp__option-button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 10px 12px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  text-align: center !important;
  white-space: nowrap !important;
}

/* Tablet */
@media screen and (min-width: 750px) and (max-width: 989px) {
  .aarus-pdp__option-values {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Mobile */
@media screen and (max-width: 749px) {
  .aarus-pdp__option-values {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  .aarus-pdp__option-button {
    min-height: 46px !important;
    padding: 9px 6px !important;
  }
}

/* ==========================================================
   AARUS — FINAL PRODUCT VARIANT + BUY BUTTON UI
   Clean / no grey container
========================================================== */

/* ----------------------------------------------------------
   REMOVE OLD GREY VARIANT CONTAINER
---------------------------------------------------------- */

main[data-template*='product']
.product-details
:is(
  variant-picker,
  variant-selects,
  .variant-picker
) {
  display: block !important;

  width: 100% !important;

  margin: 24px 0 !important;
  padding: 0 !important;

  background: transparent !important;

  border: 0 !important;
  border-top: 0 !important;

  box-shadow: none !important;
}


/* Native Horizon picker form */

main[data-template*='product']
.variant-picker__form {
  display: grid !important;

  gap: 22px !important;

  width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
}


/* ----------------------------------------------------------
   OPTION GROUP
---------------------------------------------------------- */

main[data-template*='product']
.variant-option {
  width: 100% !important;

  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;

  border: 0 !important;
}


/* Option title */

main[data-template*='product']
.variant-option legend,
main[data-template*='product']
.variant-option > label:not(.variant-option__button-label) {
  display: block !important;

  width: 100% !important;

  margin: 0 0 12px !important;
  padding: 0 !important;

  color: #111111 !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 14px !important;
  font-weight: 600 !important;

  line-height: 1.2 !important;

  letter-spacing: 0.12em !important;

  text-transform: uppercase !important;
}


/* ==========================================================
   STYLE 1 — COMPACT SIZE BOXES
   Similar to your S / M / L / XL screenshot
========================================================== */

main[data-template*='product']
.variant-option--buttons {
  display: flex !important;

  flex-wrap: wrap !important;

  align-items: center !important;

  gap: 10px !important;

  width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;

  border: 0 !important;
}


/* Every variant button */

main[data-template*='product']
.variant-option__button-label {
  position: relative !important;

  display: inline-flex !important;

  align-items: center !important;
  justify-content: center !important;

  width: auto !important;
  min-width: 56px !important;
  max-width: 100% !important;

  min-height: 56px !important;

  margin: 0 !important;

  padding: 10px 18px !important;

  color: #111111 !important;

  background: #ffffff !important;

  border: 1px solid #d1d1d1 !important;

  border-radius: 0 !important;

  box-shadow: none !important;

  cursor: pointer !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 16px !important;
  font-weight: 400 !important;

  line-height: 1.15 !important;

  letter-spacing: 0 !important;

  text-align: center !important;

  text-transform: none !important;

  white-space: nowrap !important;

  transition:
    color 160ms ease,
    background-color 160ms ease,
    border-color 160ms ease,
    transform 160ms ease !important;
}


/* Hide actual radio */

main[data-template*='product']
.variant-option__button-label > input {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  opacity: 0 !important;

  pointer-events: none !important;
}


/* Hover */

@media (hover: hover) {

  main[data-template*='product']
  .variant-option__button-label:hover {
    border-color: #111111 !important;

    transform: translateY(-1px);
  }

}


/* Selected */

main[data-template*='product']
.variant-option__button-label:has(input:checked) {
  color: #ffffff !important;

  background: #111111 !important;

  border-color: #111111 !important;
}


/* Selected text */

main[data-template*='product']
.variant-option__button-label:has(input:checked)
.variant-option__button-label__text {
  color: #ffffff !important;
}


/* ----------------------------------------------------------
   UNAVAILABLE
---------------------------------------------------------- */

main[data-template*='product']
.variant-option__button-label:has(
  input[aria-disabled='true']
) {
  color: #9a9a9a !important;

  background: #fafafa !important;

  border-color: #dddddd !important;

  opacity: 0.55 !important;

  cursor: not-allowed !important;
}


/* ----------------------------------------------------------
   REMOVE THE LITTLE HORIZON PILL DECORATION
---------------------------------------------------------- */

main[data-template*='product']
.variant-option__button-label__pill {
  display: none !important;
}


/* ==========================================================
   LONG KIDS SIZES
   0-3 months / 2-3 years etc.
========================================================== */

main[data-template*='product']
.variant-option__button-label__text {
  position: relative !important;

  z-index: 1 !important;

  color: inherit !important;

  font: inherit !important;

  white-space: inherit !important;
}


/* ==========================================================
   SWATCH VARIANTS
========================================================== */

main[data-template*='product']
.variant-option--swatches {
  display: flex !important;

  flex-wrap: wrap !important;

  gap: 10px !important;

  width: 100% !important;

  padding: 0 !important;

  background: transparent !important;
}


main[data-template*='product']
.variant-option--swatches
.variant-option__button-label {
  width: 42px !important;
  min-width: 42px !important;

  height: 42px !important;
  min-height: 42px !important;

  padding: 3px !important;

  border-radius: 50% !important;
}


/* ==========================================================
   DROPDOWN VARIANT STYLE
========================================================== */

main[data-template*='product']
.variant-option--dropdowns {
  display: grid !important;

  gap: 10px !important;

  width: 100% !important;

  padding: 0 !important;

  background: transparent !important;
}


main[data-template*='product']
.variant-option__select-wrapper {
  width: 100% !important;

  background: transparent !important;
}


main[data-template*='product']
.variant-option__select {
  width: 100% !important;

  min-height: 54px !important;

  padding: 0 16px !important;

  color: #111111 !important;

  background: #ffffff !important;

  border: 1px solid #cccccc !important;

  border-radius: 0 !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 15px !important;
}


/* ==========================================================
   BUY BUTTON AREA
========================================================== */

main[data-template*='product']
.buy-buttons-block {
  display: block !important;

  width: 100% !important;

  margin-top: 22px !important;
}


/* Quantity + Add to cart first row */

main[data-template*='product']
.product-form-buttons {
  display: grid !important;

  grid-template-columns:
    minmax(170px, 0.75fr)
    minmax(0, 1.8fr) !important;

  gap: 14px !important;

  width: 100% !important;

  align-items: stretch !important;
}


/* ==========================================================
   QUANTITY
========================================================== */

main[data-template*='product']
:is(
  quantity-selector,
  .quantity-selector,
  quantity-input
) {
  width: 100% !important;

  min-height: 58px !important;

  border: 1px solid #dedede !important;

  border-radius: 999px !important;

  background: #ffffff !important;

  overflow: hidden !important;
}


main[data-template*='product']
:is(
  quantity-selector,
  .quantity-selector
) button {
  min-width: 50px !important;

  min-height: 56px !important;

  padding: 0 !important;

  color: #111111 !important;

  background: transparent !important;

  border: 0 !important;

  font-size: 22px !important;
}


main[data-template*='product']
:is(
  quantity-selector,
  .quantity-selector
) input {
  width: 52px !important;

  padding: 0 !important;

  color: #111111 !important;

  background: transparent !important;

  border: 0 !important;

  box-shadow: none !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 18px !important;

  text-align: center !important;
}


/* ==========================================================
   ADD TO CART
========================================================== */

main[data-template*='product']
:is(
  .add-to-cart-button,
  button[name='add']
) {
  width: 100% !important;

  min-height: 58px !important;

  padding: 14px 24px !important;

  color: #ffffff !important;

  background: #111111 !important;

  border: 1px solid #111111 !important;

  border-radius: 999px !important;

  box-shadow: none !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 15px !important;
  font-weight: 500 !important;

  letter-spacing: 0.12em !important;

  text-transform: uppercase !important;

  transition:
    color 180ms ease,
    background-color 180ms ease !important;
}


main[data-template*='product']
:is(
  .add-to-cart-button,
  button[name='add']
):hover:not(:disabled) {
  color: #111111 !important;

  background: #ffffff !important;
}


main[data-template*='product']
:is(
  .add-to-cart-button,
  button[name='add']
):disabled {
  color: #ffffff !important;

  background: #999999 !important;

  border-color: #999999 !important;

  opacity: 1 !important;
}


/* ==========================================================
   BUY NOW / ACCELERATED CHECKOUT
========================================================== */

main[data-template*='product']
shopify-accelerated-checkout {
  grid-column: 1 / -1 !important;

  display: block !important;

  width: 100% !important;

  margin-top: 0 !important;
}


main[data-template*='product']
.shopify-payment-button {
  grid-column: 1 / -1 !important;

  display: block !important;

  width: 100% !important;
}


main[data-template*='product']
.shopify-payment-button__button,
main[data-template*='product']
.shopify-payment-button__button--unbranded {
  width: 100% !important;

  min-height: 58px !important;

  padding: 14px 24px !important;

  color: #ffffff !important;

  background: #111111 !important;

  border: 1px solid #111111 !important;

  border-radius: 999px !important;

  box-shadow: none !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 15px !important;
  font-weight: 500 !important;

  line-height: 1 !important;

  letter-spacing: 0.12em !important;

  text-transform: uppercase !important;
}


/* Shopify's internal Buy It Now container */

main[data-template*='product']
.shopify-payment-button__more-options {
  font-family: Arial, Helvetica, sans-serif !important;
}


/* ==========================================================
   MOBILE
========================================================== */

@media screen and (max-width: 749px) {

  main[data-template*='product']
  .variant-picker__form {
    gap: 20px !important;
  }


  main[data-template*='product']
  .variant-option--buttons {
    gap: 8px !important;
  }


  main[data-template*='product']
  .variant-option__button-label {
    min-width: 52px !important;

    min-height: 50px !important;

    padding: 8px 14px !important;

    font-size: 15px !important;
  }


  main[data-template*='product']
  .product-form-buttons {
    grid-template-columns: 1fr !important;

    gap: 10px !important;
  }


  main[data-template*='product']
  :is(
    quantity-selector,
    .quantity-selector
  ) {
    min-height: 54px !important;
  }


  main[data-template*='product']
  :is(
    .add-to-cart-button,
    button[name='add']
  ),
  main[data-template*='product']
  .shopify-payment-button__button {
    min-height: 54px !important;
  }

}

/* ==========================================================
   AARUS — COMPACT PRODUCT VARIANT PICKER
========================================================== */

/* Remove Fabrico's grey/blue variant container styling */
main[data-template*='product']
.product-details
:is(variant-picker, variant-selects, .variant-picker) {
  width: 100% !important;
  margin: 20px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Remove the forced 4/5-column grid */
main[data-template*='product']
.product-details
:is(variant-picker, variant-selects)
fieldset,
main[data-template*='product']
.variant-option--buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;

  width: 100% !important;

  gap: 10px !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;

  grid-template-columns: none !important;
}

/* SIZE heading */
main[data-template*='product']
.product-details
:is(variant-picker, variant-selects)
legend,
main[data-template*='product']
.variant-option__legend {
  flex-basis: 100% !important;

  margin: 0 0 10px !important;
  padding: 0 !important;

  color: #111 !important;

  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;

  line-height: 1 !important;
  letter-spacing: 0.12em !important;

  text-transform: uppercase !important;
}

/* Individual size buttons */
main[data-template*='product']
.product-details
:is(variant-picker, variant-selects)
label,
main[data-template*='product']
.variant-option__button-label {
  display: inline-flex !important;

  align-items: center !important;
  justify-content: center !important;

  width: auto !important;

  min-width: 56px !important;
  max-width: none !important;

  min-height: 52px !important;
  height: 52px !important;

  margin: 0 !important;

  padding: 8px 17px !important;

  color: #111 !important;
  background: #fff !important;

  border: 1px solid #d3d3d3 !important;
  border-radius: 0 !important;

  box-shadow: none !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 15px !important;
  font-weight: 400 !important;

  line-height: 1 !important;

  letter-spacing: 0 !important;

  text-align: center !important;
  text-transform: none !important;

  white-space: nowrap !important;

  cursor: pointer !important;

  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease !important;
}

/* Selected option */
main[data-template*='product']
.product-details
:is(variant-picker, variant-selects)
input:checked + label,
main[data-template*='product']
.variant-option__button-label:has(input:checked) {
  color: #fff !important;

  background: #111 !important;

  border-color: #111 !important;
}

/* Hover */
@media (hover: hover) {
  main[data-template*='product']
  .product-details
  :is(variant-picker, variant-selects)
  label:hover,
  main[data-template*='product']
  .variant-option__button-label:hover {
    border-color: #111 !important;
  }
}

/* Long kids sizes */
main[data-template*='product']
.variant-option__button-label__text {
  color: inherit !important;
  font: inherit !important;
  white-space: nowrap !important;
}

/* Mobile */
@media screen and (max-width: 749px) {
  main[data-template*='product']
  .product-details
  :is(variant-picker, variant-selects)
  fieldset,
  main[data-template*='product']
  .variant-option--buttons {
    gap: 8px !important;
  }

  main[data-template*='product']
  .product-details
  :is(variant-picker, variant-selects)
  label,
  main[data-template*='product']
  .variant-option__button-label {
    min-width: 50px !important;

    height: 48px !important;
    min-height: 48px !important;

    padding: 7px 14px !important;

    font-size: 14px !important;
  }
}

/* ==========================================================
   AARUS — ENABLE BUY NOW / ACCELERATED CHECKOUT
========================================================== */

main[data-template*='product']
.product-details shopify-accelerated-checkout,
main[data-template*='product']
.product-details .shopify-payment-button,
main[data-template*='product']
.product-details .shopify-payment-button__button {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ==========================================================
   AARUS — PURCHASE BUTTON LAYOUT
========================================================== */

main[data-template*='product']
.product-form-buttons,
main[data-template*='product']
.buy-buttons-block {
  width: 100% !important;
}

/* First row */
main[data-template*='product']
.product-form-buttons {
  display: grid !important;

  grid-template-columns:
    minmax(150px, 0.65fr)
    minmax(240px, 1.6fr) !important;

  gap: 14px !important;

  align-items: stretch !important;
}

/* Quantity */
main[data-template*='product']
:is(quantity-selector, .quantity-selector) {
  width: 100% !important;

  min-height: 56px !important;

  background: #fff !important;

  border: 1px solid #dedede !important;

  border-radius: 999px !important;
}

/* Add to Cart */
main[data-template*='product']
:is(.add-to-cart-button, button[name='add']) {
  width: 100% !important;

  min-height: 56px !important;

  color: #fff !important;

  background: #111 !important;

  border: 1px solid #111 !important;

  border-radius: 999px !important;

  font-family: Arial, Helvetica, sans-serif !important;

  font-size: 14px !important;
  font-weight: 500 !important;

  letter-spacing: 0.12em !important;

  text-transform: uppercase !important;
}

/* Buy Now below both */
main[data-template*='product']
shopify-accelerated-checkout {
  grid-column: 1 / -1 !important;

  width: 100% !important;

  margin-top: 12px !important;
}

/* Mobile */
@media screen and (max-width: 749px) {
  main[data-template*='product']
  .product-form-buttons {
    grid-template-columns: 1fr !important;

    gap: 10px !important;
  }
}

/* ==========================================================
   AARUS — HERO IMAGE FULL FIT FIX
   Desktop + Tablet + Mobile
   Shows the COMPLETE hero image without cropping
========================================================== */


/* ----------------------------------------------------------
   REMOVE THE FIXED HERO HEIGHT
---------------------------------------------------------- */

.hero {
  min-height: 0 !important;
  height: auto !important;
}


/* Hero container must follow the actual image height */
.hero .hero__container {
  min-height: 0 !important;
  height: auto !important;

  padding-top: 0 !important;
  padding-bottom: 0 !important;

  overflow: hidden !important;
}


/* ----------------------------------------------------------
   LET THE IMAGE DETERMINE HERO HEIGHT
---------------------------------------------------------- */

.hero .hero__media-grid {
  position: relative !important;

  inset: auto !important;

  width: 100% !important;
  height: auto !important;

  display: grid !important;
}


/* Media wrapper */
.hero .hero__media-wrapper {
  position: relative !important;

  width: 100% !important;
  height: auto !important;

  min-height: 0 !important;

  overflow: hidden !important;
}


/* ----------------------------------------------------------
   MAIN FIX:
   DON'T CROP THE IMAGE
---------------------------------------------------------- */

.hero .hero__media {
  display: block !important;

  width: 100% !important;
  height: auto !important;

  max-width: 100% !important;

  object-fit: contain !important;
  object-position: center center !important;

  aspect-ratio: auto !important;
}


/* Images inside wrappers */
.hero .hero__media-wrapper img,
.hero .hero__media-wrapper picture,
.hero .hero__media-wrapper picture img {
  display: block !important;

  width: 100% !important;
  height: auto !important;

  max-width: 100% !important;

  object-fit: contain !important;
  object-position: center center !important;
}


/* ----------------------------------------------------------
   KEEP HERO CONTENT OVER IMAGE IF YOU ADD TEXT/BUTTON BLOCKS
---------------------------------------------------------- */

.hero .hero__content-wrapper {
  position: absolute !important;

  inset: 0 !important;

  width: 100% !important;
  height: 100% !important;

  z-index: 3 !important;

  pointer-events: none;
}


.hero .hero__content-wrapper :is(
  a,
  button,
  input,
  select,
  textarea
) {
  pointer-events: auto;
}


/* ==========================================================
   DESKTOP
========================================================== */

@media screen and (min-width: 990px) {

  .hero .hero__media-grid,
  .hero .hero__media-wrapper {
    width: 100% !important;
    height: auto !important;
  }


  .hero .hero__media {
    width: 100% !important;
    height: auto !important;

    object-fit: contain !important;
    object-position: center center !important;
  }

}


/* ==========================================================
   TABLET
========================================================== */

@media screen and (min-width: 750px) and (max-width: 989px) {

  .hero,
  .hero .hero__container,
  .hero .hero__media-grid,
  .hero .hero__media-wrapper {
    min-height: 0 !important;

    height: auto !important;
  }


  .hero .hero__media {
    width: 100% !important;
    height: auto !important;

    object-fit: contain !important;
    object-position: center center !important;
  }

}


/* ==========================================================
   MOBILE
========================================================== */

@media screen and (max-width: 749px) {

  .hero {
    min-height: 0 !important;
    height: auto !important;
  }


  .hero .hero__container {
    min-height: 0 !important;
    height: auto !important;

    padding: 0 !important;
  }


  .hero .hero__media-grid {
    position: relative !important;

    inset: auto !important;

    width: 100% !important;
    height: auto !important;

    display: block !important;
  }


  .hero .hero__media-wrapper {
    width: 100% !important;
    height: auto !important;

    min-height: 0 !important;
  }


  .hero .hero__media,
  .hero .hero__media-wrapper img,
  .hero .hero__media-wrapper picture img {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    max-width: 100% !important;

    object-fit: contain !important;
    object-position: center center !important;
  }

}

