/** Shopify CDN: Minification failed

Line 248:11 Expected identifier but found whitespace
Line 248:20 Unexpected ";"

**/
/* ============================================================
   Lucy Mae & Co. — Theme base
   Design tokens transcribed exactly from the design handoff.
   ============================================================ */

:root {
/* Colours — the Lucy Mae & Co. brand specification.
     Deep Navy carries the logo, header and footer; Warm Ivory is the ground;
     Muted Gold is the only luxury accent; Soft Charcoal is the reading colour;
     Deep Burgundy is reserved for sale, used sparingly. The token names are
     unchanged on purpose — 635 references across the theme pick these up
     without a single rule being rewritten, which is why --lm-sale-green now
     holds a burgundy. */
  --lm-bg: #FAF7F2;
  --lm-bg-alt: #FEFCF9;
  --lm-ink: #292929;
  --lm-text-2: #575654;
  --lm-text-3: #87857F;
  --lm-text-body: #3D3C3A;
  --lm-brand: #243746;
  --lm-brand-dark: #1A2833;
  --lm-gold: #B89A62;
  --lm-border: #E6DFD3;
  --lm-sale-green: #7A3038;
  --lm-strike: #9A958C;
  --lm-footer: #243746;
  --lm-footer-border: #35485A;
  --lm-footer-muted: #A7B3BE;

  /* Type */
  --lm-serif: 'Cormorant Garamond', serif;
  --lm-sans: 'Inter', sans-serif;

  /* Radius */
  --lm-radius-pill: 999px;
  --lm-radius-card: 8px;
  --lm-radius-panel: 12px;

  /* Shadow */
  --lm-shadow-card: 0 1px 3px rgba(41,41,41, 0.06);
  --lm-shadow-float: 0 1px 4px rgba(41,41,41, 0.15);
  --lm-shadow-modal: 0 20px 60px rgba(41,41,41, 0.25);

  /* Layout */
  --lm-side-pad: 64px;
  --lm-header-h: 118px;

  /* Extended palette. Retinted with the same names so nothing downstream
     breaks; the panels and dividers lost their brown cast to match the
     new ground. */
  --lm-sale-green-alt: #7A3038;
  --lm-bg-panel: #F4EFE6;
  --lm-text-faint: #A8A49C;
  --lm-bg-panel-alt: #F6F2EA;
  --lm-success-bg: #E3EDE5;
  --lm-divider: #DCD4C6;
  --lm-text-tertiary: #9C988F;
  --lm-text-warm-gray: #7A766E;
  --lm-navy: #0F1E33;
  --lm-olive: #5C6B4E;
  --lm-sale-green-dark: #234F27;
  --lm-sale-green-bright: #2F8F3B;
  --lm-gold-light: #D4BC8C;
  --lm-warm-brown: #7A6656;
  --lm-blue-gray: #5C6B8A;
  --lm-muted-brown-alt: #8A7A6D;
  --lm-swatch-terracotta: #C97B4A;
  --lm-swatch-teal: #4A8B7C;
  --lm-swatch-sage: #7A9B5C;
  --lm-swatch-berry: #B84B5E;
  --lm-swatch-cream: #F0D488;
  --lm-swatch-olive: #8A7A3C;
  --lm-swatch-lavender: #6B5CA5;
  --lm-swatch-tan: #9B6B4A;

  /* Shadows — from tokens.json */
  --lm-shadow-card-resting: 0 1px 3px rgba(41,41,41,0.05);
  --lm-shadow-card-resting-alt: 0 1px 3px rgba(41,41,41,0.06);
  --lm-shadow-card-hover: 0 4px 12px rgba(41,41,41,0.15);
  --lm-shadow-floating-btn: 0 1px 4px rgba(41,41,41,0.15);
  --lm-shadow-panel: 0 12px 24px rgba(41,41,41,0.06);
  --lm-shadow-panel-alt: 0 12px 24px rgba(41,41,41,0.08);
  --lm-shadow-dropdown: 0 8px 24px rgba(41,41,41,0.08);
  --lm-shadow-toast: 0 2px 6px rgba(41,41,41,0.2);
  --lm-shadow-toast-alt: 0 2px 8px rgba(41,41,41,0.18);
  --lm-shadow-drawer-left-edge: -8px 0 24px rgba(41,41,41,0.12);
  --lm-shadow-drawer-right-edge: -4px 0 24px rgba(41,41,41,0.15);
  --lm-shadow-modal: 0 20px 60px rgba(41,41,41,0.25);
  --lm-shadow-modal-heavy: 0 30px 70px rgba(41,41,41,0.35);
  --lm-shadow-chip: 0 6px 18px rgba(41,41,41,0.18);

  /* Radii — from tokens.json */
  --lm-radius-xs: 4px;
  --lm-radius-sm: 5px;
  --lm-radius-md: 6px;
  --lm-radius-default: 8px;
  --lm-radius-lg: 10px;
  --lm-radius-xl: 12px;
  --lm-radius-pill: 999px;
  --lm-radius-circle: 50%;
}

/* Breakpoints transcribed from the design source:
   isMobile    = w < 860
   isTablet    = 860 <= w < 1140
   isNavMobile = w < 1024                                        */
@media (max-width: 1139px) { :root { --lm-side-pad: 48px; } }
@media (max-width: 859px)  { :root { --lm-side-pad: 24px; } }

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--lm-bg);
  font-family: var(--lm-sans);
  color: var(--lm-ink);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--lm-brand); text-decoration: none; }
a:hover { color: var(--lm-brand-dark); }
::selection { background: var(--lm-brand); color: #FFFFFF; }

img { max-width: 100%; display: block; }

.lm-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

:focus-visible { outline: 2px solid var(--lm-brand); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* ---------- Shared building blocks ---------- */

.lm-page-wrap { background: var(--lm-bg); overflow-x: hidden; }

.lm-container { max-width: 1200px; margin: 0 auto; }

.lm-eyebrow {
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--lm-brand); font-weight: 500; margin-bottom: 10px;
}
.lm-eyebrow--light { color: #E8E7E2; }

.lm-section-title {
  font-family: var(--lm-serif); font-size: 42px; color: var(--lm-ink);
  font-weight: 500; margin: 0;
}
@media (max-width: 859px) { .lm-section-title { font-size: 32px; } }

.lm-section-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 16px; margin-bottom: 56px;
  border-bottom: 1px solid var(--lm-border); padding-bottom: 28px;
}
@media (max-width: 859px) { .lm-section-header { align-items: flex-start; margin-bottom: 40px; } }

.lm-view-all {
  font-size: 13px; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--lm-brand); font-weight: 500;
  border-bottom: 1px solid var(--lm-brand); padding-bottom: 3px;
}

.lm-btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--lm-brand); color: #FFFFFF;
  padding: 17px 38px; font-size: 13px; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 500; border: none; cursor: pointer;
  font-family: var(--lm-sans);
  transition: background 0.35s ease, transform 0.35s ease;
}
.lm-btn-primary:hover { background: var(--lm-brand-dark); transform: translateY(-2px); color: #FFFFFF; }
[data-write-review-open] { border-radius: var(--lm-radius-pill); }

.lm-btn-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--lm-bg); color: var(--lm-ink); border: 1px solid var(--lm-border);
  padding: 17px 38px; font-size: 13px; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 500; cursor: pointer;
  font-family: var(--lm-sans); border-radius: 6px;
  transition: background 0.25s ease;
}
.lm-btn-secondary:hover { background: var(--lm-border); }


/* minmax(0, 1fr) rather than 1fr: a plain fr track refuses to shrink below the
   min-content width of its card, and the colour swatch row is wide enough to
   push the second column off the screen on a phone. min-width:0 on the card
   lets the same shrink happen inside it. */
.lm-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 36px;
}
.lm-product-grid > * { min-width: 0; }
@media (max-width: 1139px) { .lm-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 859px)  { .lm-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (max-width: 859px)  { .lm-card { padding: 8px; } .lm-card__imgwrap { margin-bottom: 8px; } }

.lm-card {
  display: block; background: #FFFFFF; border: 1px solid var(--lm-border);
  border-radius: var(--lm-radius-card); padding: 14px; box-shadow: var(--lm-shadow-card);
}
.lm-card__imgwrap {
  position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden;
  background: var(--lm-border); margin-bottom: 14px; border-radius: 4px;
}
.lm-card__imglink { display: block; width: 100%; height: 100%; }
.lm-card__imgwrap img,
.lm-card__imgwrap svg { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Add straight from the card. Bottom right of the photograph: the Bestseller
   tag and the sale badge both live along the top, and down here it sits over
   the quiet part of nearly every shot. Always visible rather than on hover,
   because a phone has no hover and a button nobody can see converts nobody.
   White ground with the shop's navy, so it reads as part of the card and not
   as a system control shouting over the piece. */
.lm-card__add {
  position: absolute; right: 10px; bottom: 10px;
  width: 38px; height: 38px; border-radius: 50%; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: #FFFFFF; border: 1px solid var(--lm-border);
  color: var(--lm-brand); cursor: pointer; z-index: 2;
  box-shadow: 0 2px 8px rgba(41,41,41, 0.14);
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.lm-card__add svg { width: 17px; height: 17px; }
.lm-card__add:hover { background: var(--lm-brand); color: #FFFFFF; transform: translateY(-1px); }
.lm-card__add:focus-visible { outline: 2px solid var(--lm-brand); outline-offset: 2px; }
.lm-card__add[disabled] { cursor: default; }
.lm-card__add.is-added { background: var(--lm-brand); color: #FFFFFF; }
@media (max-width: 859px) {
  .lm-card__add { width: 34px; height: 34px; right: 8px; bottom: 8px; }
  .lm-card__add svg { width: 15px; height: 15px; }
}
  position: absolute; top: 8px; right: 8px; width: 26px; height: 26px;
  border-radius: 50%; background: rgba(255, 255, 255, 0.92); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; z-index: 2;
  box-shadow: var(--lm-shadow-float);
}
/* Top right rather than top left: the eye lands on the photo first, and a
   badge in the far corner is read after the piece rather than before it.
   Square rather than a pill, and brand navy rather than the sale colour —
   at 100% off on every card the badge is a statement of the event, not a
   discount flash. */
.lm-badge-sale {
  position: absolute; top: 0; right: 0; background: var(--lm-brand);
  color: #FFFFFF; font-size: 12px; font-weight: 700; padding: 7px 13px;
  border-radius: 0; letter-spacing: 0.04em; white-space: nowrap;
}
.lm-badge-sale--stacked { top: 34px; }
.lm-tag-bestseller {
  position: absolute; top: 8px; left: 8px; background: var(--lm-brand);
  color: var(--lm-bg-alt); font-size: 11px; letter-spacing: 0.05em;
  text-transform: uppercase; padding: 6px 11px; font-weight: 600;
  border-radius: var(--lm-radius-pill);
  box-shadow: 0 2px 6px rgba(41,41,41, 0.2);
}
.lm-card__rating {
  font-size: 13px; color: var(--lm-gold); margin-bottom: 5px; letter-spacing: 0.05em;
}
.lm-card__rating .lm-count { color: #8a7a6d; }
.lm-card__noreviews { font-size: 12px; color: var(--lm-text-3); margin-bottom: 5px; }
.lm-card__name { font-family: var(--lm-sans); font-size: 15px; color: var(--lm-ink); font-weight: 500; }
.lm-card__pricerow { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
.lm-card__price { font-size: 14px; color: var(--lm-brand); }
.lm-card__compare { font-size: 12.5px; color: var(--lm-strike); text-decoration: line-through; }
.lm-card__swatches { display: flex; gap: 6px; margin-top: 8px; align-items: center; }
.lm-swatch-dot {
  position: relative; width: 22px; height: 22px; border-radius: 5px; box-sizing: border-box;
  flex-shrink: 0; border: 1px solid rgba(41,41,41, 0.35); margin: 2px;
}
.lm-swatch-dot--active { border: 2px solid var(--lm-ink); }
.lm-swatch-photo-dot {
  position: relative; width: 22px; height: 22px; border-radius: 5px; box-sizing: border-box;
  flex-shrink: 0; border: 1px solid rgba(41,41,41, 0.35); margin: 2px;
  background-size: cover; background-position: center top;
}
.lm-swatch-dot[title]:hover::after, .lm-swatch-photo-dot[title]:hover::after {
  content: attr(title); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  background: var(--lm-bg-alt); color: var(--lm-ink); font-size: 11px; font-weight: 500;
  padding: 4px 10px; border-radius: 6px; border: 1px solid var(--lm-border); white-space: nowrap;
  box-shadow: var(--lm-shadow-float, 0 4px 12px rgba(41,41,41,0.12)); z-index: 20; pointer-events: none;
}
.lm-swatch-dot[title]:hover::before, .lm-swatch-photo-dot[title]:hover::before {
  content: ''; position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%);
  border: 5px solid transparent; border-top-color: var(--lm-border); z-index: 20; pointer-events: none;
}
.lm-swatch-extra { font-size: 12px; color: var(--lm-text-3); margin-left: 2px; }

/* ---------- Section paddings ---------- */
/* scroll-margin-top matches the design's stickyOffset (112px) so in-page
   anchors never land underneath the fixed header. */
.lm-section { padding: 110px var(--lm-side-pad); scroll-margin-top: var(--lm-header-h); }
.lm-section--light { background: var(--lm-bg); }
.lm-section--alt { background: var(--lm-bg-alt); }
.lm-section--compact { padding: 64px var(--lm-side-pad); }
@media (max-width: 859px) { .lm-section { padding: 72px var(--lm-side-pad); } .lm-section--compact { padding: 44px var(--lm-side-pad); } }

/* ---------- Product slider (New Arrivals, Best Sellers, You May Also Like) ---------- */
.lm-slider-controls { display: flex; align-items: center; gap: 12px; }
.lm-slider-arrow {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--lm-border);
  background: #FFFFFF; color: var(--lm-ink); display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0; transition: background 0.2s ease; box-shadow: var(--lm-shadow-float, 0 4px 12px rgba(41,41,41,0.12));
}
.lm-slider-arrow:hover { background: var(--lm-bg); }
/* display:flex above would otherwise beat the hidden attribute. */
.lm-slider-arrow[hidden] { display: none; }
.lm-slider-wrap { position: relative; }
.lm-slider-wrap .lm-slider-arrow { position: absolute; top: 38%; transform: translateY(-50%); z-index: 5; }
.lm-slider-wrap .lm-slider-arrow--prev { left: 6px; }
.lm-slider-wrap .lm-slider-arrow--next { right: 6px; }
@media (max-width: 767px) { .lm-slider-wrap .lm-slider-arrow { display: none; } }
.lm-product-slider {
  display: flex; gap: 20px; overflow-x: auto; padding-bottom: 6px;
  scroll-snap-type: x mandatory; scrollbar-width: none;
}
.lm-product-slider::-webkit-scrollbar { display: none; }
.lm-product-slider .lm-card { flex: 0 0 200px; scroll-snap-align: start; }
.lm-carousel-section .lm-product-slider { justify-content: center; }
@media (max-width: 859px) { .lm-product-slider .lm-card { flex-basis: 158px; } .lm-product-slider { gap: 14px; } }

[id] { scroll-margin-top: var(--lm-header-h); }

@media (max-width: 767px) {
  .lm-badge-sale { font-size: 10px; padding: 5px 9px; top: 0; right: 0; left: auto; }
  .lm-badge-sale--stacked { top: 24px; }
  .lm-tag-bestseller { font-size: 8px; padding: 4px 8px; top: 6px; left: 6px; }
  [data-write-review-open] { padding: 11px 20px; font-size: 11.5px; }
}
