/** Shopify CDN: Minification failed

Line 139:0 Unexpected "{"
Line 139:1 Expected identifier but found "%"
Line 145:0 Unexpected "{"
Line 145:1 Expected identifier but found "%"
Line 148:0 Unexpected "{"
Line 148:1 Expected identifier but found "%"
Line 150:10 Expected identifier but found whitespace
Line 150:12 Unexpected "{"
Line 150:22 Expected ":"
Line 151:20 Expected identifier but found whitespace
... and 51 more hidden warnings

**/
/* ==========================================================================
   Design tokens (golden ratio, phi = 1.618)
   Every size in the theme should come from these values.
   Spacing steps grow by phi. Text uses a gentler scale so small text stays readable.
   Nothing uses these tokens yet, so adding them changes nothing on the site.
   ========================================================================== */
:root {
  /* Space */
  --space-3xs: 0.146rem;
  --space-2xs: 0.236rem;
  --space-xs: 0.382rem;
  --space-s: 0.618rem;
  --space-m: 1rem;
  --space-l: 1.618rem;
  --space-xl: 2.618rem;
  --space-2xl: 4.236rem;
  --space-3xl: 6.854rem;
  --space-4xl: 11.09rem;

  /* Text (fluid: grows smoothly from phone to desktop) */
  --text-s: clamp(0.85rem, 0.8rem + 0.2vw, 0.95rem);
  --text-m: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-l: clamp(1.25rem, 1.1rem + 0.6vw, 1.618rem);
  --text-xl: clamp(1.618rem, 1.3rem + 1.2vw, 2.618rem);
  --text-2xl: clamp(2.618rem, 2rem + 2.4vw, 4.236rem);

  /* Layout proportions */
  --ratio-major: 61.8%;
  --ratio-minor: 38.2%;
  --ratio-image: 1.618 / 1;
  --ratio-image-tall: 1 / 1.618;

  /* Corner radius */
  --radius-s: 0.382rem;
  --radius-m: 0.618rem;
  --radius-l: 1rem;

  /* Motion (smooth and calm; all durations stay short) */
  --duration-fast: 0.236s;
  --duration-base: 0.382s;
  --duration-slow: 0.618s;
  --duration-slower: 1s;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* Layers (stacking order) */
  --layer-base: 1;
  --layer-sticky: 10;
  --layer-header: 100;
  --layer-drawer: 1000;
  --layer-modal: 2000;
}

/* Respect visitors who ask for less motion */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0.01s;
    --duration-base: 0.01s;
    --duration-slow: 0.01s;
    --duration-slower: 0.01s;
  }
}

  :root { --header-height: 10vh; }

  body {
    overflow-x: hidden;
    padding-top: calc(var(--header-height));
  }

  @media (min-width: 424px) and (max-width: 1024px) {
    :root { --header-height: 10vh; }
  }
  @media (max-width: 423px) {
    :root { --header-height: 15vh; }
  }
  @media (max-height: 500px) {
    :root { --header-height: 60px; }
  }
  @media (max-width: 200px) {
    :root { --header-height: 50px !important; }
  }

/* Browser Style Overrides - Controlled by Theme Settings */
/* These styles can be toggled on/off via theme settings */

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: #888 rgb(241, 241, 241);
}

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

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background-image: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.6) 100%);
  border: 1px solid rgba(255,255,255,0.1);
}

/* Base Reset */
* {
  box-sizing: border-box;
}
/* Heading block - remove link styling */
.heading-no-link-style a {
  color: inherit !important;
  text-decoration: none !important;
  pointer-events: auto;
  cursor: text;
}

.heading-no-link-style a:hover {
  color: inherit !important;
  text-decoration: none !important;
}
/* List Style Overrides */
{% if settings.override_list_styles %}
  ul, ol {
    list-style: none;
    padding: 0;
    margin: 0;
  }
{% endif %}

/* Link Style Overrides */
{% if settings.override_link_styles %}
  a {
    color: {{ settings.link_color | default: '#0066cc' }};
    text-decoration: {% if settings.link_underline %}underline{% else %}none{% endif %};
    transition: color 0.2s ease;
  }
  
  a:hover {
    color: {{ settings.link_hover_color | default: '#0052a3' }};
  }
  
  a:visited {
    color: {{ settings.link_color | default: '#0066cc' }};
  }
{% endif %}

/* Button Style Overrides */
{% if settings.override_button_styles %}
  button {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
  }
{% endif %}

/* Input/Form Style Overrides */
{% if settings.override_input_styles %}
  input, textarea, select {
    font: inherit;
    color: inherit;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
  }
  
  input:focus, textarea:focus, select:focus {
    outline: none;
  }
{% endif %}

/* Heading Style Overrides */
{% if settings.override_heading_styles %}
  h1, h2, h3, h4, h5, h6 {
    margin-top: {{ settings.heading_margin_top | default: 0 }}px;
    margin-bottom: {{ settings.heading_margin_bottom | default: 16 }}px;
    font-weight: inherit;
  }
{% endif %}

/* Paragraph Style Overrides */
{% if settings.override_paragraph_styles %}
  p {
    margin-top: {{ settings.paragraph_margin_top | default: 0 }}px;
    margin-bottom: {{ settings.paragraph_margin_bottom | default: 16 }}px;
  }
{% endif %}

/* Image Style Overrides */
{% if settings.override_image_styles %}
  img {
    max-width: 100%;
    height: auto;
    display: block;
    border: none;
    vertical-align: middle;
  }
{% endif %}

/* Table Style Overrides */
{% if settings.override_table_styles %}
  table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
  }
  
  th, td {
    padding: 0;
    border: none;
  }
{% endif %}

/* Grid System */
.grid-container {
  width: 100%;
  max-width: var(--grid-container-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), 1fr);
  gap: var(--grid-gap);
}

.grid-item {
  grid-column: span var(--grid-columns);
}

/* Responsive Grid */
@media screen and (max-width: 749px) {
  .grid {
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  .grid {
    grid-template-columns: repeat(var(--grid-columns-tablet), 1fr);
  }
}

/* Grid Column Utilities */
.grid-col-1 { grid-column: span 1; }
.grid-col-2 { grid-column: span 2; }
.grid-col-3 { grid-column: span 3; }
.grid-col-4 { grid-column: span 4; }
.grid-col-5 { grid-column: span 5; }
.grid-col-6 { grid-column: span 6; }
.grid-col-7 { grid-column: span 7; }
.grid-col-8 { grid-column: span 8; }
.grid-col-9 { grid-column: span 9; }
.grid-col-10 { grid-column: span 10; }
.grid-col-11 { grid-column: span 11; }
.grid-col-12 { grid-column: span 12; }

@media screen and (max-width: 749px) {
  .grid-col-mobile-1 { grid-column: span 1; }
  .grid-col-mobile-2 { grid-column: span 2; }
  .grid-col-mobile-3 { grid-column: span 3; }
  .grid-col-mobile-4 { grid-column: span 4; }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  .grid-col-tablet-1 { grid-column: span 1; }
  .grid-col-tablet-2 { grid-column: span 2; }
  .grid-col-tablet-3 { grid-column: span 3; }
  .grid-col-tablet-4 { grid-column: span 4; }
  .grid-col-tablet-5 { grid-column: span 5; }
  .grid-col-tablet-6 { grid-column: span 6; }
  .grid-col-tablet-7 { grid-column: span 7; }
  .grid-col-tablet-8 { grid-column: span 8; }
}

/* Section Base */
.section {
  padding-top: var(--section-padding-top);
  padding-bottom: var(--section-padding-bottom);
  padding-left: var(--section-padding-left);
  padding-right: var(--section-padding-right);
}

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

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

.focus-none:focus {
  outline: none;
}

/* Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Buttons */
.button {
  display: inline-block;
  padding: calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);
  background-color: var(--color-primary);
  color: var(--color-secondary);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.button:hover {
  opacity: 0.8;
}

.button--secondary {
  background-color: var(--color-secondary);
  color: var(--color-primary);
  border: 1px solid var(--color-border);
}
/* Force Reset Browser Styles for Search Section */
.search-section__pagination * {
  box-sizing: border-box;
}

.search-section__pagination ul,
.search-section__pagination ol,
.search-section__pagination .pagination {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.search-section__pagination a,
.search-section__pagination .pagination__item {
  text-decoration: none !important;
  color: var(--color-primary, #333) !important;
  background: none;
  border: none;
}

.search-section__empty * {
  margin: 0;
  padding: 0;
}

/* Search Section - Delicate Minimal Style */
.search-section__pagination {
  margin: calc(var(--spacing-unit, 8px) * 10) auto;
  text-align: center;
  width: 100%;
}

.search-section__pagination ul,
.search-section__pagination ol,
.search-section__pagination .pagination {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline-flex;
  gap: calc(var(--spacing-unit, 8px) * 1.5);
  align-items: center;
}

.search-section__pagination a,
.search-section__pagination .pagination__item,
.search-section__pagination span {
  min-width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: #999;
  font-size: 0.875rem;
  font-weight: 300;
  text-decoration: none;
  transition: color 0.25s ease;
  cursor: pointer;
}

.search-section__pagination a:hover,
.search-section__pagination .pagination__item:hover {
  color: var(--color-primary, #333);
}

.search-section__pagination .current,
.search-section__pagination span.current,
.search-section__pagination .pagination__item--current {
  color: var(--color-primary, #2c2c2c);
  font-weight: 400;
  border-bottom: 1px solid var(--color-primary, #2c2c2c);
}

/* Empty States */
.search-section__empty {
  max-width: 28rem;
  margin: calc(var(--spacing-unit, 8px) * 14) auto;
  text-align: center;
  padding: 0 calc(var(--spacing-unit, 8px) * 2);
}

.search-section__empty h2,
.search-section__empty-title {
  font-size: 1.25rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  margin: 0 0 calc(var(--spacing-unit, 8px) * 2.5) 0;
  color: #2c2c2c;
  text-transform: uppercase;
}

.search-section__empty p {
  font-size: 0.875rem;
  line-height: 1.7;
  color: #888;
  font-weight: 300;
  margin: 0;
  letter-spacing: 0.01em;
}

/* Responsive */
@media screen and (max-width: 749px) {
  .search-section__pagination {
    margin: calc(var(--spacing-unit, 8px) * 8) auto;
  }
  
  .search-section__pagination ul,
  .search-section__pagination .pagination {
    gap: calc(var(--spacing-unit, 8px) * 1);
  }
  
  .search-section__empty {
    margin: calc(var(--spacing-unit, 8px) * 10) auto;
  }
  
  .search-section__empty h2,
  .search-section__empty-title {
    font-size: 1.125rem;
  }
}
html, body {
  overflow-x: clip;
  max-width: 100%;
}
@supports not (overflow: clip) {
  html, body {
  overflow-x: hidden;
  }
}

/* ==========================================================================
   Close icon (X): same look and animation as the menu button.
   The three lines turn into an X when the panel around it opens.
   ========================================================================== */
.x-close-icon {
  display: block;
  width: 24px;
  height: 24px;
  overflow: visible;
}

.x-close-icon__line {
  stroke: currentColor;
  fill: none;
  stroke-width: var(--icon-stroke-width, 1.8);
  stroke-linecap: round;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform var(--duration-base) ease, opacity var(--duration-base) ease;
}

/* Opening: wait a moment so the visitor sees the three lines turn into the X. Closing: no wait. */
:is(.is-open, .active, .cd-active) .x-close-icon__line {
  transition-delay: var(--duration-fast);
}

:is(.is-open, .active, .cd-active) .x-close-icon__line--top {
  transform: translateY(5px) rotate(45deg);
}

:is(.is-open, .active, .cd-active) .x-close-icon__line--middle {
  opacity: 0;
}

:is(.is-open, .active, .cd-active) .x-close-icon__line--bottom {
  transform: translateY(-5px) rotate(-45deg);
}

.lightbox-close,
.note-modal__close,
.wishlist-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.lightbox-close .x-close-icon {
  width: 32px;
  height: 32px;
}

/* Close buttons: same hover as the menu button (small lift and a soft shadow box) */
.wishlist-drawer__close,
.stock-modal__close,
.note-modal__close,
.filter-modal__close,
.lightbox-close {
  transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), border-radius var(--duration-base) var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .wishlist-drawer__close:hover,
  .stock-modal__close:hover,
  .note-modal__close:hover,
  .filter-modal__close:hover {
    transform: translateY(-1px);
    border-radius: var(--icon-hover-radius, 15px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.04);
  }
}

@media (hover: none) and (pointer: coarse) {
  .wishlist-drawer__close:active,
  .stock-modal__close:active {
    transform: scale(0.98);
  }
}
