/** Shopify CDN: Minification failed

Line 4075:1 Expected identifier but found whitespace
Line 4080:1 Expected identifier but found whitespace
Line 4240:0 Unexpected "}"
Line 4283:12 Unexpected "}"

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



/* PDP typography refinements */
.product-details product-price .price {
  font-size: 14px !important;
}

.product-details .tax-note,
.product-details #king-linked-options-section .lv-option-label {
  font-family: "Work Sans", Arial, sans-serif !important;
}

.product-details .variant-option,
.product-details .variant-option__swatch-value {
  font-family: adobe-caslon-pro, Georgia, serif !important;
}
.page-width-wide {
  .product-details product-price.text-block .tax-note {
  font-family: "Work Sans", Arial, sans-serif !important;
}


/* Ensure checkout note uses Work Sans */
.product-details product-price.text-block.h5 .tax-note {
  font-family: "Work Sans", Arial, sans-serif !important;
}

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

/* Brand fonts */
:root {
  --font-paragraph--family: "Work Sans", Arial, sans-serif;
  --font-h1--family: "adobe-caslon-pro", Georgia, serif;
  --font-h2--family: "adobe-caslon-pro", Georgia, serif;
  --font-h3--family: "adobe-caslon-pro", Georgia, serif;
  --font-h4--family: "adobe-caslon-pro", Georgia, serif;
  --font-h5--family: "adobe-caslon-pro", Georgia, serif;
  --font-h6--family: "adobe-caslon-pro", Georgia, serif;
  --button-font-family-primary: "Work Sans", Arial, sans-serif;
  --button-font-family-secondary: "Work Sans", Arial, sans-serif;
}

body,
.paragraph,
.paragraph > *,
button,
input,
textarea,
select,
.button,
.button-secondary,
.button-custom {
  font-family: "Work Sans", Arial, sans-serif !important;
}

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 > *,
.header__heading,
.header__heading-link,
.product__title,
.collection-hero__title,
.card__heading,
.banner__heading,
.rich-text__heading {
  font-family: "adobe-caslon-pro", Georgia, serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

em,
i,
.rte em,
.rte i,
.image-with-text__text em,
.rich-text__text em {
  font-family: "adobe-caslon-pro", Georgia, serif !important;
  font-weight: 400 !important;
  font-style: italic !important;
}
/* Force Atelier custom typography blocks to use brand fonts */
.custom-typography,
.custom-typography > *,
.text-block,
.text-block > * {
  font-family: "adobe-caslon-pro", Georgia, serif !important;
  font-weight: 400 !important;
}

.custom-typography.paragraph,
.custom-typography.paragraph > *,
.text-block.paragraph,
.text-block.paragraph > * {
  font-family: "Work Sans", Arial, sans-serif !important;
}

.custom-typography em,
.custom-typography i,
.text-block em,
.text-block i {
  font-family: "adobe-caslon-pro", Georgia, serif !important;
  font-style: italic !important;
  font-weight: 400 !important;
}
/* ========================================
   LAN JAENICKE — CUSTOM THEME OVERRIDES
   ======================================== */

/* ----------------------------------------
   1. COLLECTION GRID
   ---------------------------------------- */

/* Equal 8px outer gutters. */
results-list.product-grid-container {
  grid-template-columns: 8px minmax(0, 1fr) 8px !important;
}

/* ----------------------------------------
   9. COLLECTION EDITORIAL IMAGE TILE
   ---------------------------------------- */

/* Non-clickable image occupying a 2 × 2 area in the collection grid. */
#MainContent .product-grid > .collection-editorial-tile {
  grid-column: span 2 !important;
  grid-row: span 2 !important;
  min-width: 0 !important;
  width: 100% !important;
  overflow: hidden !important;
  list-style: none !important;
}

#MainContent .collection-editorial-tile__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  aspect-ratio: 2 / 3 !important;
  object-fit: cover !important;
}

@media screen and (max-width: 749px) {
  #MainContent .product-grid > .collection-editorial-tile {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }

  #MainContent .collection-editorial-tile__image {
    aspect-ratio: 4 / 5 !important;
  }
}

results-list.product-grid-container > .collection-wrapper {
  grid-column: 2 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Remove the theme's desktop max-width constraint. */
#ResultsList {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Product spacing. Change 10px here if you want a tighter/looser grid. */
results-list ul.product-grid {
  gap: 10px !important;
}

/* Four products on desktop. */
@media screen and (min-width: 750px) {
  results-list ul.product-grid {
    --product-grid-columns-desktop:
      repeat(4, minmax(0, 1fr)) !important;
    grid-template-columns:
      var(--product-grid-columns-desktop) !important;
  }
}

/* Two products on mobile. */
@media screen and (max-width: 749px) {
  results-list ul.product-grid {
    --mobile-columns: 2 !important;
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}

results-list ul.product-grid product-card {
  min-width: 0;
}

/* ----------------------------------------
   2. COLLECTION PRODUCT IMAGES
   ---------------------------------------- */

/* Tall 3:5 product imagery. */
results-list ul.product-grid .card-gallery {
  --gallery-aspect-ratio: 3 / 5 !important;
  aspect-ratio: 3 / 5 !important;
}

results-list ul.product-grid slideshow-slide,
results-list ul.product-grid .product-media {
  aspect-ratio: 3 / 5 !important;
}

results-list ul.product-grid .product-media__image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Keep the secondary-image swap but remove the 4px card lift. */
results-list ul.product-grid product-card:hover,
results-list ul.product-grid product-card:focus-within {
  transform: none !important;
}

/* ----------------------------------------
   3. PRODUCT INFORMATION
   ---------------------------------------- */

results-list .product-card__content > .group-block:last-child {
  border-top: none !important;
  padding: 8px 0 20px !important;
}

/* Stack the title/price row above any swatch row. */
results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
}

/* Remove the theme's 60% information width. */
results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block {
  width: 100% !important;
  --size-style-width: 100% !important;
}

/* Product title left; price right; shared baseline. */
results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:first-child
  > .group-block-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: baseline !important;
  column-gap: 12px !important;
  width: 100% !important;
}

/* Shared Work Sans styling for product title and price. */
results-list ul.product-grid .product-card__content .text-block,
results-list ul.product-grid .product-card__content .text-block *,
results-list ul.product-grid .product-card__content product-price,
results-list ul.product-grid .product-card__content product-price * {
  font-family: "Work Sans", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}

results-list ul.product-grid .product-card__content .text-block p,
results-list ul.product-grid .product-card__content product-price,
results-list ul.product-grid .product-card__content product-price .price {
  margin: 0 !important;
  padding: 0 !important;
}

results-list ul.product-grid .product-card__content .text-block p {
  text-transform: none !important;
}

results-list ul.product-grid .product-card__content product-price {
  width: auto !important;
  align-self: baseline !important;
  justify-self: end !important;
  text-align: right !important;
  white-space: nowrap;
}

/* ----------------------------------------
   4. COLLECTION HEADER AND FILTERS
   ---------------------------------------- */

/* :has(results-list) prevents these rules from affecting the homepage. */
#MainContent:has(results-list)
  > .shopify-section:first-child
  .section--page-width {
  grid-template-columns: 8px minmax(0, 1fr) 8px !important;
}

#MainContent:has(results-list)
  > .shopify-section:first-child
  .custom-section-content {
  grid-column: 2 !important;
  width: 100% !important;
  max-width: none !important;
}

results-list .facets-block-wrapper {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Center the collection title across the complete content width. */
#MainContent:has(results-list)
  > .shopify-section:first-child
  .section-content-wrapper {
  position: relative !important;
  justify-content: center !important;
}

#MainContent:has(results-list)
  > .shopify-section:first-child
  .section-content-wrapper
  > .text-block {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  justify-content: center !important;
  text-align: center !important;
}

#MainContent:has(results-list)
  > .shopify-section:first-child
  .section-content-wrapper
  > .text-block
  h1 {
  width: 100% !important;
  text-align: center !important;
}

/* Keep the decorative divider at the right edge without shifting the title. */
#MainContent:has(results-list)
  > .shopify-section:first-child
  .section-content-wrapper
  > .divider {
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
}

/* Lock the grid and hide the customer-facing layout selector. */
results-list .column-options-wrapper,
results-list fieldset.column-options {
  display: none !important;
}

/* ----------------------------------------
   5. EDITORIAL TEXT-LINK BUTTONS
   ---------------------------------------- */

/* Applies to content CTAs, not cart, checkout, forms, or icon controls. */
#MainContent a.button,
#MainContent a.button-custom {
  width: fit-content !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  color:
    var(--button-color, var(--color-primary-button-text)) !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;

  text-decoration-line: underline !important;
  text-decoration-color: currentColor !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 5px !important;
}

#MainContent a.button::after,
#MainContent a.button-custom::after {
  content: none !important;
}

#MainContent a.button:hover,
#MainContent a.button-custom:hover {
  opacity: 0.65;
}

/* ----------------------------------------
   6. HOMEPAGE FEATURED COLLECTION
   ---------------------------------------- */

/* Equal 10px outer gutters for the product-list section. */
#MainContent .ui-test-product-list .section-resource-list {
  grid-template-columns: 10px minmax(0, 1fr) 10px !important;
}

/* Align the section heading, product track, and footer CTA. */
#MainContent
  .ui-test-product-list
  .section-resource-list
  > .section-resource-list__header,
#MainContent
  .ui-test-product-list
  .section-resource-list
  > .resource-list,
#MainContent
  .ui-test-product-list
  .section-resource-list
  > .section-resource-list__content {
  grid-column: 2 !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Equal 10px space between cards in both grid and carousel modes. */
#MainContent .ui-test-product-list .resource-list {
  --resource-list-column-gap-desktop: 10px !important;
  --resource-list-column-gap-mobile: 10px !important;
  column-gap: 10px !important;
}

/* Match the collection-page card information layout. */
#MainContent .ui-test-product-list .product-card__content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: baseline !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
  width: 100% !important;
}

/* Keep the product gallery on its own full-width row. */
#MainContent .ui-test-product-list .product-card__content > .card-gallery,
#MainContent
  .ui-test-product-list
  .product-card__content
  > .product-grid-view-zoom-out--details {
  grid-column: 1 / -1 !important;
}

/* The title link uses display: contents, so its text block joins the grid. */
#MainContent
  .ui-test-product-list
  .product-card__content
  > a.contents
  > .text-block {
  grid-column: 1 !important;
  grid-row: 2 !important;
  padding: 8px 0 20px !important;
  --padding-block-start: 8px !important;
  --padding-block-end: 20px !important;
}

#MainContent .ui-test-product-list .product-card__content > product-price {
  grid-column: 2 !important;
  grid-row: 2 !important;
  padding: 8px 0 20px !important;
}

/* Shared Work Sans styling for the homepage product title and price. */
#MainContent .ui-test-product-list .product-card__content .text-block,
#MainContent .ui-test-product-list .product-card__content .text-block *,
#MainContent .ui-test-product-list .product-card__content product-price,
#MainContent .ui-test-product-list .product-card__content product-price * {
  font-family: "Work Sans", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}

#MainContent .ui-test-product-list .product-card__content .text-block p,
#MainContent .ui-test-product-list .product-card__content product-price .price {
  margin: 0 !important;
  padding: 0 !important;
}

#MainContent .ui-test-product-list .product-card__content .text-block p {
  text-transform: none !important;
}

#MainContent .ui-test-product-list .product-card__content product-price {
  width: auto !important;
  align-self: baseline !important;
  justify-self: end !important;
  text-align: right !important;
  white-space: nowrap;
}

/* Keep the image swap but remove the Featured Collection card lift. */
#MainContent .ui-test-product-list product-card:hover,
#MainContent .ui-test-product-list product-card:focus-within {
  transform: none !important;
}

/* ----------------------------------------
   7. HOMEPAGE PROCESS SECTION
   ---------------------------------------- */

/* Align the Atelier image grid to the site's fixed 60px desktop gutters. */
#MainContent .the-process__inner {
  width: calc(100% - 120px) !important;
  max-width: none !important;
  margin-inline: 60px !important;
}

/* Desktop: use the same four-column rhythm as the product grid. */
@media screen and (min-width: 750px) {
  #MainContent .the-process__intro {
    display: grid !important;
    grid-template-columns:
      repeat(4, minmax(0, 1fr)) !important;
    column-gap: 10px !important;
    align-items: center !important;
  }

  /* Image aligns with products 1–2. */
  #MainContent .the-process__media-wrap {
    grid-column: 1 / span 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
  }

  /* Text uses the full right half with a comfortable inner inset. */
  #MainContent .the-process__intro-copy {
    grid-column: 3 / span 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
    padding-left: 20px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
  }
}

#MainContent .the-process__media-wrap img,
#MainContent .the-process__media-wrap video {
  display: block;
  width: 100% !important;
}

/* Four-step gallery: 20px below the intro and 10px between images. */
#MainContent .the-process__steps {
  width: 100% !important;
  margin: 47px 0 0 !important;
  padding: 0 0 8px !important;
  gap: 10px !important;
  column-gap: 10px !important;
}

/* Process-card text hierarchy. */
#MainContent .the-process__step-content {
  width: 100% !important;
  padding: 12px 0 24px !important;
  box-sizing: border-box;
}

#MainContent .the-process__number {
  margin: 0 0 24px !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.04em !important;
}

#MainContent .the-process__title {
  margin: 0 !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

#MainContent .the-process__copy {
  width: 100% !important;
  max-width: none !important;
  margin: 12px 0 0 !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

#MainContent .the-process__copy p {
  margin: 0 !important;
}

/* Remove the vertical dividers between process cards. */
#MainContent .the-process__step,
#MainContent .the-process__step-content {
  border: none !important;
  border-inline-start: none !important;
  border-inline-end: none !important;
  box-shadow: none !important;
}

#MainContent .the-process__step::before,
#MainContent .the-process__step::after {
  content: none !important;
}

/* ----------------------------------------
   8. HOMEPAGE MAKING-OF / FEATURED PRODUCT
   ---------------------------------------- */

/* Equal 10px outer gutters. */
#MainContent
  .featured-product-section:has(.featured-product-making-of__product) {
  grid-template-columns: 10px minmax(0, 1fr) 10px !important;
  padding-bottom: 40px !important;
}

#MainContent
  .featured-product-section:has(.featured-product-making-of__product)
  > .section-content-wrapper {
  grid-column: 2 !important;
  width: 100% !important;
  max-width: none !important;
}

@media screen and (min-width: 750px) {
  /* Four columns matching the homepage product grid. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    > .section-content-wrapper {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: center !important;
  }

  /* Large media spans the two right-hand columns. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .media-block {
    grid-column: 3 / span 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    align-self: center !important;
    overflow: hidden !important;
  }

  /* Allow story and product card to join the parent four-column grid. */
  #MainContent .featured-product-making-of__product {
    display: contents !important;
  }

  /* Story occupies the second column. */
  #MainContent .featured-product-story {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 20px !important;
    box-sizing: border-box;
  }

  /* Keep the View product link, but remove its arrow. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .featured-product-story
    a
    :is(svg, .icon, .button__icon) {
    display: none !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .featured-product-story__link
    > span[aria-hidden="true"] {
    display: none !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .featured-product-story__link {
    text-transform: none !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .featured-product-story
    a::after {
    content: none !important;
  }

  /* Product card occupies the far-left column. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Remove the product card's internal 40px inset. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card
    .product-card__content {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    --padding-block-start: 0px !important;
    --padding-block-end: 0px !important;
    --padding-inline-start: 0px !important;
    --padding-inline-end: 0px !important;
  }

  /* Product image first; name and price directly beneath it. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card
    .card-gallery {
    order: 1 !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card
    .featured-product-content-top {
    order: 2 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    padding-top: 8px !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card
    .featured-product-content-top
    product-price {
    width: auto !important;
    flex: 0 0 auto !important;
    text-align: right !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card
    .featured-product-content-top
    [role="heading"] {
    font-family: "Work Sans", sans-serif !important;
  }

  /* Disable hover lift and movement in the Making Of section. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    :is(product-card, product-card *, .media-block, .media-block *) {
    animation: none !important;
    transition: none !important;
  }

  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    :is(product-card, product-card:hover, .product-card, .product-card:hover),
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    product-card:hover
    :is(.product-card__content, .product-card__media, .product-card__image, img) {
    transform: none !important;
  }

  /* Crop the video/poster into the taller frame. */
  #MainContent
    .featured-product-section:has(.featured-product-making-of__product)
    .media-block
    :is(video, img) {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}



/* Collection sold-out badge: small, transparent, bottom-left. */
results-list ul.product-grid .product-badges {
  top: auto !important;
  right: auto !important;
  bottom: 8px !important;
  left: 8px !important;
}

results-list ul.product-grid
  .product-badges__badge.color-custom-badge-sold-out {
  padding: 0 !important;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}


/* Add a subtle square around the collection sold-out label. */
results-list ul.product-grid
  .product-badges__badge.color-custom-badge-sold-out {
  padding: 4px 6px !important;
  border: 1px solid currentColor !important;
  border-radius: 0 !important;
  background: rgb(var(--color-background-rgb) / 0.55) !important;
}


/* Final sold-out badge colors. */
results-list ul.product-grid
  .product-badges__badge.color-custom-badge-sold-out {
  border: 0 !important;
  background: rgb(255 255 255 / 0.28) !important;
  color: #fff !important;
}


/* Universal sold-out badge: collection and homepage product cards. */
#MainContent product-card .product-badges {
  top: auto !important;
  right: auto !important;
  bottom: 8px !important;
  left: 8px !important;
}

#MainContent product-card
  .product-badges__badge.color-custom-badge-sold-out {
  padding: 4px 6px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgb(255 255 255 / 0.28) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: "Work Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}


/* Keep title and price aligned when linked color options are present. */
results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:has(product-price)
  > .group-block-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: baseline !important;
  column-gap: 12px !important;
  width: 100% !important;
}

results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:has(product-price)
  product-price {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  width: auto !important;
  white-space: nowrap !important;
}


/* LinkedOption-safe collection information layout. */
results-list
  .product-card__content
  > .group-block:has(product-price) {
  border-top: none !important;
  padding: 8px 0 20px !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content
  > .group-block:has(product-price) {
  width: 100% !important;
  --size-style-width: 100% !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content
  > .group-block:has(product-price)
  > .group-block-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: baseline !important;
  column-gap: 12px !important;
  width: 100% !important;
}


/* Keep LinkedOption swatches close to the title and price. */
results-list
  product-card:has(king-linked-options-collection)
  > .product-card__content {
  gap: 6px !important;
}

results-list
  product-card:has(king-linked-options-collection)
  > .product-card__content
  > .group-block:has(product-price) {
  padding-bottom: 0 !important;
}

results-list
  product-card
  king-linked-options-collection
  .king-linked-options-collection__container {
  margin-top: 0 !important;
}


/* 11. HOMEPAGE — READY TO SHIP / MADE TO ORDER GRID
   10px outer gutters and 10px between panels */
#shopify-section-template--23347462078684__section_eacmTp
  .section-content-wrapper {
  box-sizing: border-box !important;
  padding-inline: 10px !important;
  gap: 10px !important;
}

#shopify-section-template--23347462078684__section_eacmTp
  .section-content-wrapper > .group-block {
  min-width: 0;
}



/* 12. COLLECTION — COMBINED FILTER CONTROL
   Use the theme's existing filter drawer on desktop instead of separate facets. */
@media screen and (min-width: 750px) {
  #MainContent .facets--horizontal .facets__filters-wrapper {
    display: none !important;
  }

  #MainContent .collection-wrapper > .facets-toggle {
    display: flex !important;
    align-items: center;
    grid-column: 1;
    grid-row: 1;
    position: relative;
    z-index: 2;
  }

  #MainContent .facets-toggle__button {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    width: auto !important;
    min-height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font: inherit;
  }

  #MainContent .facets-toggle__button .svg-wrapper {
    display: none !important;
  }

  #MainContent .facets-toggle__button::after {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    margin-top: -4px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
  }
}



/* 13. COLLECTION — FILTER ALIGNMENT + LEFT DRAWER */
@media screen and (min-width: 750px) {
  #MainContent .collection-wrapper {
    position: relative !important;
  }

  #MainContent .collection-wrapper > .facets-toggle {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    height: 44px;
    grid-column: auto;
    grid-row: auto;
  }
}

#filters-drawer .theme-drawer__dialog {
  right: auto !important;
  left: calc(-1 * var(--theme-drawer-width, var(--sidebar-width))) !important;
  border-left: 0 !important;
  border-right: var(--style-border-drawer);
}

#filters-drawer .theme-drawer__dialog[open] {
  right: auto !important;
  left: 0 !important;
}

#filters-drawer .theme-drawer__dialog--opening,
#filters-drawer .theme-drawer__dialog--closing {
  animation: none !important;
}



@media screen and (min-width: 750px) {
  #MainContent .facets-toggle__button {
    height: 44px !important;
  }
}



@media screen and (min-width: 750px) {
  #MainContent .facets-toggle__button {
    position: relative;
    top: 4px;
  }
}



/* Keep the collection full-width when the left filter drawer is open. */
html:has(#filters-drawer .theme-drawer__dialog[open])
  .page-wrapper--drawer-open {
  margin-right: 0 !important;
}



/* Keep the filter drawer header and close button above the site header. */
#filters-drawer .theme-drawer__dialog {
  z-index: var(--layer-temporary) !important;
}



/* 14. COLLECTION CARDS — TITLE/PRICE LEFT, SWATCHES RIGHT */
results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content
  > .group-block:has(product-price) {
  width: auto !important;
  min-width: 0;
  --size-style-width: auto !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content
  > .group-block:has(product-price)
  > .group-block-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
}

results-list
  .product-card__content
  > .group-block:has(product-price)
  > .group-block-content
  > .group-block:not(:has(product-price)) {
  width: auto !important;
  min-width: 0;
  justify-self: end !important;
  --size-style-width: auto !important;
}

results-list ul.product-grid .product-card__content product-price {
  width: auto !important;
  align-self: flex-start !important;
  justify-self: start !important;
  text-align: left !important;
}



results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:has(product-price)
  > .group-block-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  width: auto !important;
}

results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:has(product-price)
  product-price {
  grid-area: auto !important;
  justify-self: start !important;
  align-self: flex-start !important;
  width: auto !important;
  text-align: left !important;
}



results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:first-child
  > .group-block-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
}

results-list
  .product-card__content
  > .group-block:last-child
  > .group-block-content
  > .group-block:first-child
  product-price {
  grid-area: auto !important;
  justify-self: start !important;
  align-self: flex-start !important;
  text-align: left !important;
}



/* 15. COLLECTION CARDS — LINKED COLOR SWATCH POSITION */
results-list
  product-card:has(king-linked-options-collection)
  > .product-card__content {
  position: relative !important;
}

results-list product-card king-linked-options-collection {
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  margin: 0 !important;
  z-index: 2;
}

results-list
  product-card
  king-linked-options-collection
  .king-linked-options-collection__container {
  justify-content: flex-end !important;
  margin: 0 !important;
}



/* Align linked color swatches with the top of the product title. */
results-list
  product-card:has(king-linked-options-collection)
  [role="heading"] {
  anchor-name: --collection-card-title;
}

results-list product-card king-linked-options-collection {
  position-anchor: --collection-card-title;
  top: anchor(top) !important;
  right: 0 !important;
  bottom: auto !important;
}



/* 16. FOOTER — EDITORIAL THREE-COLUMN LAYOUT */
@media screen and (min-width: 750px) {
  footer
    #shopify-section-sections--23347462209756__footer
    > .section {
    max-width: none !important;
    padding-inline: 36px !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content {
    display: flex !important;
    align-items: center !important;
    min-height: 330px;
    padding-block: 0 !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block {
    width: 100% !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 390px) !important;
    align-items: center !important;
    gap: 64px !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content
    > .group-block:first-child {
    width: min(100%, 540px) !important;
    --size-style-width: min(100%, 540px) !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content
    > .group-block:first-child
    > .group-block-content {
    display: block !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .menu__heading {
    display: none !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .menu:not(:has(li)) {
    display: none !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .menu nav ul {
    display: block !important;
    columns: 3;
    column-gap: 64px;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .menu__item {
    break-inside: avoid;
    margin: 0 0 10px !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content
    > .group-block:last-child {
    width: 100% !important;
    justify-self: end;
    --size-style-width: 100% !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content
    > .group-block:last-child
    > .group-block-content {
    align-items: stretch !important;
    gap: 10px !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content
    > .group-block
    > .group-block-content
    > .group-block:last-child
    h3 {
    font-family: "Work Sans", sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .email-signup__input-group {
    border-radius: 0 !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .email-signup__button::before {
    content: "Subscribe";
    margin-right: 8px;
  }

  footer #shopify-section-sections--23347462209756__logo_RVGHD7 {
    display: none !important;
  }

  footer
    #shopify-section-sections--23347462209756__utilities
    > .section {
    max-width: none !important;
    padding-inline: 36px !important;
  }

  footer
    #shopify-section-sections--23347462209756__utilities
    .utilities {
    justify-content: flex-start !important;
    gap: 40px !important;
    padding-block: 10px 12px !important;
    border-top: 0 !important;
  }

  footer
    #shopify-section-sections--23347462209756__utilities
    :is(.footer-utilities__text, .policy-list-trigger) {
    font-size: 11px !important;
  }

  footer
    #shopify-section-sections--23347462209756__utilities
    .social-icons__wrapper {
    margin-left: auto;
  }
}



/* 17. FOOTER — COMPACT SPACING + FULL SUBSCRIBE LABEL */
@media screen and (min-width: 750px) {
  footer
    #shopify-section-sections--23347462209756__footer
    .footer-content {
    min-height: 220px !important;
    padding-block: 24px !important;
  }

  footer
    #shopify-section-sections--23347462209756__footer
    .email-signup__button {
    width: auto !important;
    min-width: 104px !important;
    flex: 0 0 auto !important;
    padding-inline: 8px 0 !important;
    overflow: visible !important;
    white-space: nowrap;
  }
}



/* 18. HOMEPAGE PROCESS — STEPS ONLY */
#MainContent .section-the-process .the-process__intro {
  display: none !important;
}

#MainContent .section-the-process .the-process__steps {
  margin-top: 20px !important;
}



/* 19. HOMEPAGE PROCESS — EDITORIAL SERIF TYPE */
#MainContent .section-the-process .the-process__title {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

#MainContent .section-the-process .the-process__step p:not(.the-process__number) {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: normal !important;
}



/* 19. HOMEPAGE PROCESS — EDITORIAL SERIF TYPE */
#MainContent .section-the-process .the-process__title {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

#MainContent .section-the-process .the-process__step p:not(.the-process__number) {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: normal !important;
}



/* 20. THE PROCESS INTRO — ADOBE CASLON BODY COPY */
#text-button-template--23347462078684__text_button_RQ9bTR .text-button-section__body,
#text-button-template--23347462078684__text_button_RQ9bTR .text-button-section__body p {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 14px !important;
}



/* 21. HOMEPAGE VISIT-US HERO — 10PX GRID */
#shopify-section-template--23347462078684__hero_J3U9Kq {
  width: calc(100% - 20px) !important;
  margin-inline: 10px !important;
  box-sizing: border-box !important;
}



/* 22. TRANSPARENT HEADER — WHITE NAVIGATION AND ICONS */
#header-component {
  --color-transparent-text: #ffffff !important;
  --color-transparent-text-rgb: 255 255 255 !important;
}



/* 23. HOMEPAGE BUTTON TYPOGRAPHY */
body:has(#shopify-section-template--23347462078684__hero_J3U9Kq)
  :is(button, a[class*="button"], a.the-process__button) {
  font-family: "Work Sans", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}



/* 24. READY TO SHIP / MADE TO ORDER — UNDERLINED STATIC LINKS */
#shopify-section-template--23347462078684__section_eacmTp
  a.button-unstyled {
  border-bottom: 1px solid currentColor !important;
  padding-bottom: 2px !important;
  background: transparent !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  text-decoration: none !important;
}

#shopify-section-template--23347462078684__section_eacmTp
  a.button-unstyled:hover,
#shopify-section-template--23347462078684__section_eacmTp
  a.button-unstyled:focus-visible {
  color: inherit !important;
  background: transparent !important;
  opacity: 1 !important;
  transform: none !important;
}

#shopify-section-template--23347462078684__section_eacmTp
  a.button-unstyled::before,
#shopify-section-template--23347462078684__section_eacmTp
  a.button-unstyled::after {
  content: none !important;
}



/* 25. COLLECTION SECOND EDITORIAL TILE — RIGHT SIDE, TWO FULL ROWS DOWN */
@media screen and (min-width: 750px) {
  #MainContent .product-grid > .collection-editorial-tile--secondary {
    grid-column: 3 / span 2 !important;
    grid-row: 5 / span 2 !important;
  }
}

@media screen and (max-width: 749px) {
  #MainContent .product-grid > .collection-editorial-tile--secondary {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
}


/* PDP checkout note typography */
.product-details product-price.text-block.h5 .tax-note {
  font-family: "Work Sans", Arial, sans-serif !important;
}


/* PDP price size and consistent content spacing */
.product-details product-price .price {
  font-size: 16px !important;
}

.product-details .tax-note {
  margin-block-end: 0 !important;
}

.product-details > .group-block > .group-block-content {
  --gap: 24px !important;
  gap: 24px !important;
}

.product-details variant-picker.variant-picker {
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
}


/* PDP accordion typography */
.product-details .accordion .details__header,
.product-details .accordion .details-content,
.product-details .accordion .details-content * {
  font-family: adobe-caslon-pro, Georgia, serif !important;
}


/* PDP accordion sizing and case */
.product-details .accordion .details__header {
  font-size: 12px !important;
  text-transform: none !important;
}

.product-details .accordion .details-content,
.product-details .accordion .details-content * {
  font-size: 12px !important;
}


/* PDP quantity and add-to-cart refinements */
.product-details .product-form-buttons {
  align-items: center;
}

.product-details .quantity-selector-wrapper {
  flex: 0 0 96px;
  width: 96px;
}

.product-details quantity-selector-component.quantity-selector {
  width: 96px !important;
  height: 44px !important;
  min-height: 44px !important;
}

.product-details .add-to-cart-button {
  background: #31383e !important;
  border-color: #31383e !important;
}

.product-details .add-to-cart-button .add-to-cart-icon {
  display: none !important;
}


.product-details quantity-selector-component.quantity-selector {
  flex: 0 0 96px !important;
}


/* Keep compact quantity controls inside the selector */
.product-details .quantity-selector .quantity-minus,
.product-details .quantity-selector .quantity-plus {
  flex: 0 0 32px !important;
  width: 32px !important;
  min-width: 32px !important;
}

.product-details .quantity-selector input[name="quantity"] {
  flex: 0 0 30px !important;
  width: 30px !important;
  min-width: 0 !important;
}


/* Responsive Size + Fit guide */
.product-details .size-fit-guide {
  font-family: adobe-caslon-pro, Georgia, serif;
  font-size: 12px;
  line-height: 1.45;
}

.product-details .size-fit-guide__made-to-measure {
  display: grid;
  grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.6fr);
  gap: 24px;
  align-items: start;
  padding-block: 16px 24px;
}

.product-details .size-fit-guide__illustration img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 220px;
  margin-inline: auto;
}

.product-details .size-fit-guide h3 {
  margin: 0 0 6px;
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 12px !important;
  font-weight: 400;
  text-transform: none;
}

.product-details .size-fit-guide p {
  margin: 0 0 14px;
}

.product-details .size-fit-guide dl {
  margin: 18px 0;
}

.product-details .size-fit-guide dl > div {
  margin-block: 10px;
}

.product-details .size-fit-guide dt {
  font-weight: 600;
}

.product-details .size-fit-guide dd {
  margin: 2px 0 0;
}

.product-details .size-fit-guide a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.product-details .size-fit-guide__sized {
  margin-top: 8px;
}

.product-details .size-fit-guide__sized h3 {
  margin: 0;
  padding: 8px 10px;
  background: #ece8e2;
  letter-spacing: 0.08em;
}

.product-details .size-fit-guide table {
  width: 100%;
  border-collapse: collapse;
}

.product-details .size-fit-guide th,
.product-details .size-fit-guide td {
  padding: 6px 10px;
  text-align: left;
  font-weight: 400;
}

@media screen and (max-width: 749px) {
  .product-details .size-fit-guide__made-to-measure {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .product-details .size-fit-guide__illustration img {
    max-width: 190px;
  }
}


/* Responsive Materials + Care guide */
.product-details .care-guide {
  font-family: adobe-caslon-pro, Georgia, serif;
  font-size: 12px;
  line-height: 1.6;
  padding-block: 16px 8px;
}

.product-details .care-guide__intro {
  margin: 0 0 24px;
}

.product-details .care-guide__tips {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  padding-top: 24px;
  border-top: 1px solid #d2c4b9;
}

.product-details .care-guide__tip {
  min-width: 0;
}

.product-details .care-guide__icon {
  display: block;
  width: 38px;
  height: 38px;
  margin-bottom: 14px;
}

.product-details .care-guide h3 {
  margin: 0 0 8px;
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 12px !important;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-details .care-guide p {
  margin: 0;
}

@media screen and (max-width: 749px) {
  .product-details .care-guide__tips {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}


/* Supplied care icons and reference layout */
.product-details .care-guide::before {
  content: "Care Instructions";
  display: block;
  margin-bottom: 18px;
  font-family: adobe-caslon-pro, Georgia, serif;
  font-size: 18px;
  line-height: 1.2;
}

.product-details .care-guide__icon {
  display: none;
}

.product-details .care-guide__tip::before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  margin-bottom: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.product-details .care-guide__tip:first-child::before {
  background-image: url("/cdn/shop/files/codex-clipboard-7e157a97-1e88-4f89-8263-e61388b852eb.png?v=1789572571");
}

.product-details .care-guide__tip:nth-child(2)::before {
  background-image: url("/cdn/shop/files/codex-clipboard-2ba03d92-9b82-49e3-b34a-794b7ad602f8.png?v=1789572571");
}


/* Care guide heading refinements */
.product-details .care-guide::before {
  content: none;
  display: none;
}

.product-details .care-guide h3 {
  text-transform: none;
  letter-spacing: normal;
}


/* Flow care tip titles into their descriptions */
.product-details .care-guide__tips {
  border-top: 0;
  padding-top: 0;
}

.product-details .care-guide__tip h3,
.product-details .care-guide__tip p {
  display: inline;
}

.product-details .care-guide__tip h3::after {
  content: " - ";
}


/* Stack care tips with icons beside the copy */
.product-details .care-guide__tips {
  grid-template-columns: 1fr;
  gap: 28px;
  padding-top: 32px;
}

.product-details .care-guide__tip {
  display: flow-root;
}

.product-details .care-guide__tip::before {
  float: left;
  margin: 0 18px 8px 0;
}


/* Keep wrapped care-tip text aligned beside its icon */
.product-details .care-guide__tip {
  position: relative;
  min-height: 80px;
  padding-left: 116px;
}

.product-details .care-guide__tip::before {
  position: absolute;
  top: 0;
  left: 0;
  float: none;
  margin: 0;
}

@media screen and (max-width: 749px) {
  .product-details .care-guide__tip {
    padding-left: 72px;
  }
}



/* Shipping + Returns policy */
.product-details .returns-policy {
  font-family: var(--font-body--family), "Adobe Caslon Pro", serif;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.product-details .returns-policy p {
  margin: 0 0 20px;
}

.product-details .returns-policy__title {
  font-size: 12px;
}

.product-details .returns-policy__rules {
  margin-top: 32px;
}

.product-details .returns-policy__divider {
  margin: 26px 0;
}

.product-details .returns-policy a {
  color: inherit;
  text-underline-offset: 2px;
}



.product-details .returns-policy--summary {
  text-align: left;
}



/* PDP Find a store link */
.product-details .product-find-store-link {
  display: block;
  width: fit-content;
  margin-top: 18px;
  color: #31383e;
  font-family: var(--font-body--family), sans-serif;
  font-size: 14px;
  line-height: 1.2;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
}

.product-details .product-find-store-link:hover {
  opacity: 0.7;
}



/* Refine PDP Find a store link spacing */
.product-details .product-find-store-link {
  margin-top: 8px;
  font-size: 12px;
  padding-bottom: 3px;
}



/* PDP Styled With metafield card */
.product-details .styled-with {
  margin-top: 24px;
}

.product-details .styled-with__heading {
  margin: 0 0 12px;
  font-family: var(--font-body--family), "Adobe Caslon Pro", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  text-transform: none;
}

.product-details .styled-with__card {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 18px;
  align-items: stretch;
  min-height: 120px;
  padding: 10px;
  border: 1px solid rgb(49 56 62 / 28%);
}

.product-details .styled-with__image-link {
  display: block;
  min-height: 120px;
}

.product-details .styled-with__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 120px;
  object-fit: cover;
}

.product-details .styled-with__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 8px 6px 0;
}

.product-details .styled-with__title,
.product-details .styled-with__price {
  margin: 0;
  font-family: var(--font-body--family), "Adobe Caslon Pro", serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
}

.product-details .styled-with__price {
  margin-top: 5px;
  font-size: 12px;
}

.product-details .styled-with__link {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: auto;
  color: #31383e;
  font-family: var(--font-body--family), sans-serif;
  font-size: 12px;
  line-height: 1.2;
  text-decoration: none;
}

.product-details .styled-with__link:hover {
  opacity: 0.7;
}

@media screen and (max-width: 749px) {
  .product-details .styled-with__card {
    grid-template-columns: 96px 1fr;
    min-height: 104px;
  }

  .product-details .styled-with__image-link,
  .product-details .styled-with__image {
    min-height: 104px;
  }
}



/* Compact two-column Styled With cards */
.product-details .styled-with__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.product-details .styled-with__card {
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 10px;
  min-height: 96px;
  padding: 8px;
}

.product-details .styled-with__image-link,
.product-details .styled-with__image {
  width: 76px;
  height: 96px;
  min-height: 0;
}

.product-details .styled-with__content {
  min-width: 0;
  padding: 3px 2px 2px 0;
}

.product-details .styled-with__title {
  font-size: 12px;
}

.product-details .styled-with__price,
.product-details .styled-with__link {
  font-size: 11px;
}

@media screen and (max-width: 749px) {
  .product-details .styled-with__grid {
    gap: 8px;
  }

  .product-details .styled-with__card {
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 8px;
    min-height: 82px;
    padding: 6px;
  }

  .product-details .styled-with__image-link,
  .product-details .styled-with__image {
    width: 62px;
    height: 82px;
    min-height: 0;
  }

  .product-details .styled-with__link {
    gap: 4px;
  }
}



/* Homepage Signature carousel: align to the 10px product grid */
[id$="__product_list_8fDbFL"] .resource-list__carousel slideshow-slides {
  padding-inline: 0;
  gap: 10px;
}


/* Wishlist Hero color overrides */
#wishlisthero-floating-launcher-container a[aria-label="Open Wishlist"] {
  background-color: #31383E !important;
  color: #F7F4EF !important;
}

#wishlisthero-product-page-button-container button[aria-label="Add to wishlist"] {
  background-color: #F7F4EF !important;
  color: #31383E !important;
  opacity: 1 !important;
}

#wishlisthero-product-page-button-container button[aria-label="Add to wishlist"] svg {
  color: #31383E !important;
}




/* Wishlist by Square header icon */ .Vtl-WishlistHeader { color: var(--color-foreground) !important; } .Vtl-WishlistHeader__HeartIconWrapper { fill: currentColor !important; }
/* Wishlist by Square page typography */ .Vtl-WishlistPage__Title { font-size: var(--font-h2--size) !important; line-height: var(--font-h2--line-height) !important; } .Vtl-WishlistPage__Description { font-size: var(--font-h4--size) !important; line-height: var(--font-h4--line-height) !important; }
/* Wishlist headings compact */ .Vtl-WishlistPage__Title { font-size: var(--font-h3--size) !important; line-height: var(--font-h3--line-height) !important; } .Vtl-WishlistPage__Description { font-size: var(--font-size--lg) !important; line-height: 1.4 !important; }
/* Wishlist share controls */ .Vtl-WishlistPage__ShareLabel, .Vtl-WishlistPage__ShareAction { color: #31383E !important; font-family: var(--font-paragraph--family) !important; font-size: var(--font-size--paragraph) !important; font-weight: var(--font-paragraph--weight) !important; } .Vtl-WishlistPage__ShareAction:hover:not(:disabled) { color: #171F25 !important; } .Vtl-WishlistPage__ShareAction svg { width: 20px !important; height: 20px !important; }
/* Wishlist product typography */ .Vtl-WishlistProduct__Title { color: #171F25 !important; font-family: var(--font-heading--family) !important; font-size: var(--font-size--lg) !important; font-weight: var(--font-heading--weight) !important; } .Vtl-WishlistProduct__Price, .Vtl-WishlistProduct__OldPrice, .Vtl-WishlistProduct__Variant { color: #171F25 !important; font-family: var(--font-paragraph--family) !important; font-size: var(--font-size--paragraph) !important; font-weight: var(--font-paragraph--weight) !important; }
/* Wishlist product buttons */ .Vtl-WishlistProduct button:not([class*="Remove"]) { min-height: 52px !important; border: 0 !important; border-radius: 0 !important; background: #31383E !important; color: #F7F4EF !important; font-family: var(--button-font-family-primary) !important; font-size: var(--font-size--paragraph) !important; font-weight: 400 !important; text-transform: uppercase !important; } .Vtl-WishlistProduct button:not([class*="Remove"]):disabled { background: rgb(49 56 62 / 45%) !important; color: #F7F4EF !important; opacity: 1 !important; }
/* Wishlist card details */ .Vtl-WishlistProduct img, .Vtl-WishlistProduct [class*="Image"] { border: 0 !important; } .Vtl-WishlistProduct [class*="Remove"] { width: 36px !important; height: 36px !important; border: 1px solid #31383E !important; border-radius: 0 !important; background: #F7F4EF !important; color: #31383E !important; } .Vtl-WishlistProduct [class*="Remove"] svg { width: 16px !important; height: 16px !important; color: currentColor !important; fill: currentColor !important; }
/* Wishlist brand fonts */ .Vtl-WishlistPage__Title, .Vtl-WishlistPage__Description, .Vtl-WishlistProduct__Title { font-family: adobe-caslon-pro, Georgia, serif !important; } .Vtl-WishlistPage__ShareLabel, .Vtl-WishlistPage__ShareAction, .Vtl-WishlistProduct__Price, .Vtl-WishlistProduct__OldPrice, .Vtl-WishlistProduct__Variant, .Vtl-WishlistProduct button { font-family: "Work Sans", Arial, sans-serif !important; }
/* Wishlist icon and card sizing */ .Vtl-WishlistPage__ShareAction { padding: 2px !important; line-height: 0 !important; overflow: visible !important; } .Vtl-WishlistPage__ShareAction svg { width: 24px !important; height: 24px !important; overflow: visible !important; display: block !important; } .Vtl-WishlistProduct__Title { font-size: var(--font-size--md) !important; line-height: 1.3 !important; } .Vtl-WishlistProduct button:not([class*="Remove"]) { width: 100% !important; max-width: 270px !important; margin-inline: auto !important; }
/* Map Migos alignment */ #sl-default-store-locator-page { margin-inline: 0 !important; width: 100% !important; max-width: 100% !important; } #sl-default-store-locator-page .sl-widget-host { margin-inline: auto !important; }
/* Map Migos centering correction */ #sl-default-store-locator-page { margin: 0 !important; }
/* Map Migos full-width override */ html body #sl-default-store-locator-page { margin-left: 0 !important; margin-right: 0 !important; }
#shopify-section-template--23347461980380__main .text-block--AYU15QzdBZGUvalVKV__title h1 { font-size: 32px !important; line-height: 1.1 !important; }
.Vtl-WishlistPage__Title, .text-block--ARUpRTmVCUXp3ajBnc__title h1 { font-size: 32px !important; line-height: 1.1 !important; }
/* PDP fulfillment badges */
.lj-product-availability-badge { display: inline-flex; align-items: center; justify-content: center; width: max-content; min-height: 24px; margin-top: -12px; padding: 3px 10px 4px; background: #d8cbbd; color: #171f25; font-family: "Work Sans", Arial, sans-serif; font-size: 10px; font-weight: 400; line-height: 1; letter-spacing: 0.08em; text-align: center; text-transform: uppercase; }
product-price:has(+ .lj-product-availability-badge), .lj-product-availability-badge + rte-formatter { margin-top: -12px !important; }
/* Wishlist image uses its natural portrait ratio */
.Vtl-WishlistProduct img { display: block !important; width: 100% !important; height: auto !important; max-width: 100% !important; aspect-ratio: auto !important; object-fit: contain !important; }
.Vtl-WishlistProduct div:has(> img), .Vtl-WishlistProduct a:has(> img), .Vtl-WishlistProduct div:has(> a > img) { height: auto !important; min-height: 0 !important; aspect-ratio: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; overflow: visible !important; }
/* Wishlist remove control */
.Vtl-WishlistProduct { position: relative !important; padding-bottom: 30px !important; }
.Vtl-WishlistProduct [aria-label*="remove" i] { position: absolute !important; top: auto !important; right: auto !important; bottom: 0 !important; left: 50% !important; transform: translateX(-50%) !important; width: auto !important; height: auto !important; min-width: 0 !important; padding: 2px 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: #171f25 !important; font-family: "Work Sans", Arial, sans-serif !important; font-size: 11px !important; line-height: 1.2 !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
.Vtl-WishlistProduct [aria-label*="remove" i] svg { display: none !important; }
.
Vtl-WishlistProduct [aria-label*="remove" i]::after { content: "Remove"; }
.Vtl-WishlistProduct *:has(> [aria-label*="remove" i]) { position: static !important; }
/* Wishlist remove control structural fallback */
.Vtl-WishlistPage [class*="Vtl-WishlistProduct"]:has([class*="__Title"]) { position: relative !important; padding-bottom: 32px !important; }
.
Vtl-WishlistPage div:has(> img), .Vtl-WishlistPage div:has(> a > img) { position: static !important; }
.Vtl-WishlistPage div:has(> img) > *:has(svg), .Vtl-WishlistPage div:has(> a > img) > *:has(svg) { position: absolute !important; top: auto !important; right: auto !important; bottom: 0 !important; left: 50% !important; transform: translateX(-50%) !important; width: auto !important; height: auto !important; min-width: 0 !important; padding: 2px 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: #171f25 !important; font-size: 0 !important; line-height: 1 !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
.Vtl-WishlistPage div:has(> img) > *:has(svg) svg, .Vtl-WishlistPage div:has(> a > img) > *:has(svg) svg { display: none !important; }
.Vtl-WishlistPage div:has(> img) > *:has(svg)::after, .Vtl-WishlistPage div:has(> a > img) > *:has(svg)::after { content: "Remove"; font-family: "Work Sans", Arial, sans-serif !important; font-size: 11px !important; text-decoration: underline !important; text-underline-offset: 3px !important; }


@media (min-width: 750px) {
  main[data-template='index'] a.size-style[class*='button']:hover {
    color: #b8b8b8 !important;
    border-color: #b8b8b8 !important;
    text-decoration-color: #b8b8b8 !important;
  }
}

@media (min-width: 750px) {
  #MainContent[data-template='index'] a.size-style.button-unstyled:hover {
    color: #b8b8b8 !important;
    border-color: #b8b8b8 !important;
    text-decoration-color: #b8b8b8 !important;
  }
}

.cart-bubble__text-count {
  color: #000 !important;
}

.cart-bubble__text-count {
  color: var(--cart-bubble-text) !important;
}
.header[transparent][data-sticky-state='inactive'] .cart-bubble__text-count {
  color: #000 !important;
}

/* Collection cards: keep swatches below details and reserve equal vertical space. */
@media screen and (min-width: 750px) {
  .product-grid product-card .product-card__content > .group-block {
    padding-block-end: 20px !important;
  }

  .product-grid product-card .product-card__content > king-linked-options-collection {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    margin: 0 !important;
    align-self: flex-start !important;
  }

  .product-grid product-card .lv-option-collection-items {
    justify-content: flex-start !important;
  }
}


/* Match card footer height when linked-color swatches are present. */
@media screen and (min-width: 750px) {
  .product-grid product-card .product-card__content:has(> king-linked-options-collection) > .group-block {
    padding-block-end: 4px !important;
  }
}

/* Universal Globo PDP spacing: keep options below the description with a compact gap. */
.product-details .gpo-container {
  margin-block: 0 !important;
}

.product-details rte-formatter:has(+ .gpo-container) {
  --padding-block-end: 0px !important;
}

.product-details rte-formatter + .gpo-container {
  margin-top: -12px !important;
}

/* Globo can also be injected inside the buy-buttons block on alternate PDP templates. */
.product-details rte-formatter:has(+ .buy-buttons-block .gpo-container) {
  --padding-block-end: 0px !important;
}


.product-details rte-formatter + .buy-buttons-block:has(.gpo-container) {
  margin-top: -12px !important;
}

/* Align Klaviyo back-in-stock button with the quantity selector. */
.product-details .product-form-buttons:has(#klaviyo-bis-button-container) {
  align-items: center;
}

.product-details #klaviyo-bis-button-container {
  margin-bottom: 0 !important;
}

/* Add breathing room above purchase controls on PDPs using Globo options. */
.product-details:has(.gpo-container) .product-form-buttons {
  margin-top: 12px;
}

/* Keep Shopify policy page titles at a restrained size. */
.shopify-policy__title h1 {
  font-size: 20pt;
}














/* Match the About page body-copy width to the Atelier page. */
.text-block--AcVU1cEpRZkkwcFVmN__text_Lt4VeJ > p,
.text-block--AbDNIOEJ4ZHdsVnRwM__text_b7ReGV > p {
  max-width: min(100%, 600px) !important;
}

/* After a successful appointment request, show only the confirmation. */
.contact-form__form:has(#AppointmentForm-first-name):has(.contact-form__success) > :not(.contact-form__success) {
  display: none !important;
}

.contact-form__form:has(#AppointmentForm-first-name) .contact-form__success {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 !important;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
  font-family: adobe-caslon-pro, Georgia, serif;
  font-size: 14pt;
  font-weight: 400;
}

.contact-form__form:has(#AppointmentForm-first-name) .contact-form__success svg {
  display: none !important;
}



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

  
}

@media(max-width:749px){
  
  
}

}
@media(max-width:749px){
  
  
  
  
}

@media(max-width:749px){
  [data-testid="footer-utilities"] .utilities{grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-width:0!important}

        }

        /* Match the policy trigger to the copyright typography and center it on mobile. */
        [data-testid="footer-utilities"] .policy-list-trigger {
            font-family: adobe-caslon-pro, Georgia, serif !important;
              font-size: 11px !important;
                font-weight: 400 !important;
                  line-height: 1.6 !important;
                    letter-spacing: normal !important;
        }

        
            @media screen and (max-width: 749px) {
              [data-testid="footer-utilities"] > anchored-popover-component {
                  justify-self: center !important;
                      text-align: center;
            }

              [data-testid="footer-utilities"] .policy-list-trigger {
                    margin-inline: auto;
              }

footer #shopify-section-sections--23347462209756__utilities [data-testid="footer-utilities"] .policy-list-trigger {
  font-family: adobe-caslon-pro, Georgia, serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
}

            
              }
            }
        }
        }
      }
  }
  }
  
  
  
}

@media(max-width:749px){
  [data-testid="footer-utilities"].utilities{grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-width:0!important}
}

@media(max-width:990px){
  [data-testid="footer-utilities"].utilities{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-width:0!important}
  
  
  
  
}

@media(max-width:990px){
  
  
}

@media(max-width:990px){
  
  
}

@media(max-width:990px){
  
}

.product-recommendations product-card .product-card__content p,.product-recommendations product-card .product-card__content h3,.product-recommendations product-card .price,.product-recommendations .product-card__title,.product-recommendations .card-product__title,.recently-viewed__title,.recently-viewed__price{font-family:"Work Sans",sans-serif!important;font-size:12px!important;line-height:1.4!important;font-weight:400!important;letter-spacing:normal!important}

/* Fixed desktop gutters with no width scaling or maximum-width cap. */
@media screen and (min-width: 1024px) {
  #MainContent
    > .shopify-section:not(.hero-wrapper)
    > :is(.section, results-list, .product-recommendations),
  #MainContent > .shopify-section > collection-component > results-list {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 60px !important;
    box-sizing: border-box !important;
  }
}

/* Keep header and footer content aligned to the fixed 60px desktop gutter. */
@media screen and (min-width: 1024px) {
  .header-section .section--page-width,
  footer .section.section--page-width {
    grid-template-columns: 60px minmax(0, 1fr) 60px !important;
    padding-inline: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* Footer retains 36px theme padding; use 24px tracks for a true 60px outer alignment. */
@media screen and (min-width: 1024px) {
  footer .section.section--page-width {
    grid-template-columns: 34px minmax(0, 1fr) 34px !important;
  }
}
/* Remove the theme's extra inner inset from reusable main-page sections. */
@media screen and (min-width: 1024px) {
  #MainContent > .shopify-section:not(.hero-wrapper) > .section.section--page-width {
    grid-template-columns: 0 minmax(0, 1fr) 0 !important;
  }
}


/* Hero sections stay full bleed, regardless of their internal width setting. */
@media screen and (min-width: 1024px) {
  #MainContent > .shopify-section:is(.hero-wrapper, [id*="__hero_"]) > .section {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    grid-template-columns: 0 minmax(0, 1fr) 0 !important;
  }
}


/* Independently align SHOP and its absolutely positioned dropdown to the product images. */
@media screen and (min-width: 1024px) {
  .header-menu .menu-list__list-item:first-child {
    margin-left: 20px;
  }

  .header-menu .menu-list__list-item:first-child .mega-menu__grid {
    transform: translateX(20px);
  }
}


/* Remove outer section margins from every Hero so media reaches the viewport edges. */
@media screen and (min-width: 1024px) {
  #MainContent > .shopify-section:is(.hero-wrapper, [id*="__hero_"]) {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
}


/* Site-wide full-bleed rule for every Hero on every template and viewport. */
#MainContent > .shopify-section:is(.hero-wrapper, [id*="__hero_"], :has(.hero__container)) {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

#MainContent > .shopify-section:is(.hero-wrapper, [id*="__hero_"], :has(.hero__container)) :is(.section, .hero, .hero__container) {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}


/* Align the Atelier gallery cards with the site's 70px visible product-image edge. */
@media screen and (min-width: 1024px) {
  #shopify-section-template--23347462111452__product_list_Rnqrmk > .section {
    padding-inline: 70px !important;
    padding-left: 70px !important;
    padding-right: 70px !important;
  }
}


/* Give the Atelier gallery a true fixed 60px desktop gutter. */
@media screen and (min-width: 1024px) {
  #shopify-section-template--23347462111452__product_list_Rnqrmk .resource-list {
    width: calc(100% - 120px) !important;
    margin-inline: 60px !important;
  }
}


/* Mobile: keep linked color swatches below product information. */
@media screen and (max-width: 749px) {
  results-list product-card king-linked-options-collection {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    position-anchor: none !important;
  }

  results-list product-card king-linked-options-collection .king-linked-options-collection__container {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    justify-content: flex-start !important;
  }
}


.product-details .styled-with__title {
  font-size: 12px !important;
}

.product-details .styled-with__price {
  align-self: flex-start;
}

.product-details .styled-with__link {
  align-self: flex-start;
}
