/** Shopify CDN: Minification failed

Line 294:55 Unexpected "*"

**/
/* Dearly Desire — design tokens + shared component styles
   Source of truth: design_handoff_shopify_theme/README.md + design/Dearly Desire Homepage.dc.html
   Loaded once from layout/theme.liquid. Section-specific layout rules live in each section's own <style>. */

:root {
  /* Colors */
  --dd-logo-pink: #F09AA8;
  --dd-logo-pink-soft: #F0AEB8;
  --dd-rose: #C97F8D;
  --dd-rose-deep: #B4737F;
  --dd-charcoal: #262223;
  --dd-charcoal-soft: #4E4546;
  --dd-grey: #6E6364;
  --dd-grey-2: #7A6F70;
  --dd-grey-light: #8E8082;
  --dd-grey-light-2: #9A8C8E;
  --dd-white: #FFFDFC;
  --dd-pale-rose: #FDF7F6;
  --dd-blush-soft: #F8EBEA;
  --dd-blush: #F3D3D8;
  --dd-blush-deep: #E7B0BC;
  --dd-announce: #DFA3AC;

  /* Typography */
  --dd-font-display: 'Italiana', Georgia, serif;
  --dd-font-heading: 'Cormorant Garamond', Georgia, serif;
  --dd-font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  --dd-font-script: 'Parisienne', cursive;

  /* Geometry */
  --dd-radius-pill: 100px;
  --dd-radius-card: 22px;
  --dd-radius-panel: 28px;
  --dd-radius-image: 16px;
  --dd-section-pad-y: clamp(56px, 7vw, 100px);
  --dd-section-pad-x: clamp(16px, 4vw, 48px);
  --dd-max-width: 1800px;
  --dd-max-width-bleed: 1900px;
  --dd-card-gap: clamp(14px, 2vw, 26px);
}

/* Page background — fixed, sits behind every section */
.dd-page-bg {
  background:
    radial-gradient(1100px 700px at 8% -6%, #FBE4E6 0%, rgba(251, 228, 230, 0) 62%),
    radial-gradient(900px 620px at 100% 26%, #F7E9E4 0%, rgba(247, 233, 228, 0) 60%),
    radial-gradient(1000px 800px at 24% 82%, #F6E7EC 0%, rgba(246, 231, 236, 0) 64%),
    linear-gradient(180deg, #FFFFFF 0%, #FCF3F2 50%, #F8EBEA 100%);
  background-attachment: fixed;
}

@supports (-webkit-touch-callout: none) {
  /* iOS Safari mishandles background-attachment: fixed on the body; scroll it with the page instead */
  .dd-page-bg { background-attachment: scroll; }
}

/* iOS Safari reveals <html>'s background in the rubber-band overscroll area above the page
   (pull-to-refresh bounce) — without this it flashes white above the pink announcement bar. */
html {
  background-color: var(--dd-announce);
}

body.dd-theme {
  margin: 0;
  color: var(--dd-charcoal);
  font-family: var(--dd-font-body);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

.dd-theme a { color: var(--dd-charcoal); text-decoration: none; }
.dd-theme a:hover { color: var(--dd-rose-deep); }
.dd-theme ::selection { background: #F7DDE0; }
.dd-theme input:focus-visible,
.dd-theme button:focus-visible,
.dd-theme a:focus-visible {
  outline: 1px solid var(--dd-rose-deep);
  outline-offset: 3px;
}
.dd-theme input::placeholder { color: #A9999B; }

@keyframes ddFade {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

@keyframes ddFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -8px, 0); }
}

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

/* Section reveal (see assets/dd-motion.js initReveal) */
.dd-reveal {
  transform-origin: 50% 78%;
}

/* ---------------------------------------------------------------- */
/* Glass surface recipes                                             */
/* ---------------------------------------------------------------- */

.dd-glass-card {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.66), rgba(255, 255, 255, 0.38));
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.70);
  box-shadow: 0 30px 60px -46px rgba(120, 80, 86, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.65);
  border-radius: var(--dd-radius-card);
}

.dd-glass-panel {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.34));
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  backdrop-filter: blur(24px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.70);
  box-shadow: 0 42px 88px -62px rgba(120, 80, 86, 0.70), inset 0 1px 0 rgba(255, 255, 255, 0.70);
  border-radius: var(--dd-radius-panel);
}

.dd-glass-header {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.46));
  -webkit-backdrop-filter: blur(26px) saturate(170%);
  backdrop-filter: blur(26px) saturate(170%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.60);
  box-shadow: 0 12px 34px -26px rgba(120, 80, 86, 0.55);
}

@supports not (backdrop-filter: blur(1px)) {
  .dd-glass-card,
  .dd-glass-panel,
  .dd-glass-header,
  .dd-glass-solid-fallback {
    background: rgba(255, 255, 255, 0.86);
  }
}

/* ---------------------------------------------------------------- */
/* Type scale                                                        */
/* ---------------------------------------------------------------- */

.dd-eyebrow {
  margin: 0 0 12px;
  font-family: var(--dd-font-body);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #B98891;
}

.dd-eyebrow--on-blush { color: #B07C86; }

.dd-h1 {
  margin: 0;
  font-family: var(--dd-font-heading);
  font-weight: 300;
  font-size: clamp(38px, 5.6vw, 78px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--dd-charcoal);
}

.dd-h2 {
  margin: 0;
  font-family: var(--dd-font-heading);
  font-weight: 300;
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.06;
  letter-spacing: 0.02em;
  color: var(--dd-charcoal);
}

.dd-ghost-word {
  position: absolute;
  font-family: var(--dd-font-heading);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(64px, 8vw, 132px);
  line-height: 1;
  color: rgba(201, 127, 141, 0.13);
  pointer-events: none;
  white-space: nowrap;
}

.dd-body {
  font-size: 14px;
  line-height: 1.8;
  font-weight: 300;
  color: var(--dd-charcoal-soft);
}

/* ---------------------------------------------------------------- */
/* Buttons                                                           */
/* ---------------------------------------------------------------- */

.dd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 34px;
  border-radius: var(--dd-radius-pill);
  font-family: var(--dd-font-body);
  font-size: 11px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
  text-decoration: none;
  white-space: nowrap;
}

/* .dd-theme-prefixed so these reliably beat ".dd-theme a"'s (0,1,1) specificity when a button
   is rendered as an <a> — a plain ".dd-btn--primary" class alone is only (0,1,0) and loses that
   fight, which is exactly what made primary-button link text render invisible (charcoal on
   charcoal) on the hero and editorial-quote CTAs. */
.dd-theme .dd-btn--primary {
  background: var(--dd-charcoal);
  color: #FFFFFF;
}
.dd-theme .dd-btn--primary:hover {
  background: var(--dd-rose-deep);
  color: #FFFFFF;
  transform: translateY(-1px);
}

.dd-theme .dd-btn--glass {
  background: rgba(255, 255, 255, 0.45);
  color: var(--dd-charcoal);
  border: 1px solid rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  padding: 0 30px;
}
.dd-theme .dd-btn--glass:hover {
  background: rgba(255, 255, 255, 0.80);
  color: var(--dd-rose-deep);
}

.dd-theme .dd-btn--quick-add {
  min-height: 46px;
  width: 100%;
  background: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.85);
  color: var(--dd-charcoal);
  font-size: 10px;
  letter-spacing: 0.22em;
  padding: 0 12px;
}
.dd-theme .dd-btn--quick-add:hover {
  background: var(--dd-charcoal);
  color: #FFFFFF;
  border-color: var(--dd-charcoal);
}

.dd-theme .dd-btn--outline-dark {
  background: transparent;
  color: var(--dd-charcoal);
  border: 1px solid var(--dd-charcoal);
  padding: 0 30px;
}
.dd-theme .dd-btn--outline-dark:hover {
  background: var(--dd-charcoal);
  color: #FFFFFF;
}

.dd-btn:disabled {
  background: #C3B4B6;
  opacity: 0.75;
  cursor: not-allowed;
}

/* ---------------------------------------------------------------- */
/* Dawn's stock pages (product, collection, cart, search, 404, blog) —  */
/* everywhere this theme's own dd-* sections don't reach — are styled   */
/* by the merchant's real Theme settings (Colors, Typography, Buttons,  */
/* Cards) via Dawn's own CSS custom properties, same as any Dawn theme. */
/* config/settings_data.json ships with brand-matched defaults (blush   */
/* backgrounds, charcoal/rose buttons, pill radii), and those are       */
/* meant to be genuinely editable from Theme settings — not fought with */
/* !important overrides here, which would make that panel look dead.   */
/* assets/dd-product.css carries the product page's own bespoke polish  */
/* (glass panels, Cormorant Garamond) using the page's own classes      */
/* rather than touching Dawn's shared --color-*/--font-* variables.     */
/* ---------------------------------------------------------------- */

/* ---------------------------------------------------------------- */
/* Age gate — layout/theme.liquid renders snippets/dd-age-gate.liquid */
/* ---------------------------------------------------------------- */

html:not(.dd-age-ok) body {
  overflow: hidden;
}

html.dd-age-ok .dd-age-gate {
  display: none;
}

.dd-age-gate {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 40px);
  background: linear-gradient(160deg, rgba(255, 250, 249, 0.62), rgba(247, 226, 229, 0.58));
  -webkit-backdrop-filter: blur(26px) saturate(140%);
  backdrop-filter: blur(26px) saturate(140%);
  /* On short viewports (small phones, landscape, browser chrome eating vertical space) the
     card can be taller than the screen; let the overlay itself scroll so "Enter the shop"
     never becomes unreachable while body scroll stays locked. */
  overflow-y: auto;
}

.dd-age-gate__card {
  width: min(520px, 100%);
  padding: clamp(28px, 3.6vw, 52px);
  border-radius: 26px;
  text-align: center;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.6));
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 50px 100px -50px rgba(120, 80, 86, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  animation: ddFade 0.5s ease both;
}

.dd-age-gate__monogram {
  width: 82px;
  height: auto;
  display: block;
  margin: 0 auto 14px;
}

.dd-age-gate__wordmark {
  margin: 0 0 6px;
  font-family: var(--dd-font-display);
  font-size: 22px;
  letter-spacing: 0.24em;
  color: var(--dd-logo-pink);
  padding-left: 0.24em;
}

.dd-age-gate__tagline {
  margin: 0 0 22px;
  font-size: 8px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--dd-logo-pink-soft);
  padding-left: 0.3em;
}

.dd-age-gate__title {
  margin: 0 0 14px;
  font-family: var(--dd-font-heading);
  font-weight: 300;
  font-size: clamp(26px, 3.2vw, 38px);
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: var(--dd-charcoal);
}

.dd-age-gate__body {
  margin: 0 auto 24px;
  max-width: 40ch;
  font-size: 13px;
  line-height: 1.8;
  color: #5F5455;
  font-weight: 300;
}

.dd-age-gate__consent {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  text-align: left;
  min-height: 52px;
  padding: 14px 16px;
  margin: 0 0 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.95);
  cursor: pointer;
  font-family: var(--dd-font-body);
}

.dd-age-gate__box {
  flex: none;
  margin-top: 1px;
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1px solid #DCC6C7;
  background: rgba(255, 255, 255, 0.9);
  color: #FFFFFF;
  font-size: 11px;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.dd-age-gate__consent[aria-pressed="true"] .dd-age-gate__box {
  background: var(--dd-rose-deep);
  border-color: var(--dd-rose-deep);
}

.dd-age-gate__consent-label {
  font-size: 12px;
  line-height: 1.65;
  color: var(--dd-charcoal-soft);
  letter-spacing: 0.02em;
}

.dd-age-gate__consent-label a {
  border-bottom: 1px solid rgba(201, 127, 141, 0.5);
}

.dd-age-gate__enter {
  width: 100%;
  min-height: 54px;
  border: none;
  border-radius: var(--dd-radius-pill);
  background: #C3B4B6;
  opacity: 0.75;
  color: #FFFFFF;
  font-family: var(--dd-font-body);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: not-allowed;
  transition: background 0.3s ease, opacity 0.3s ease;
}

.dd-age-gate__enter[aria-disabled="false"] {
  background: var(--dd-charcoal);
  opacity: 1;
  cursor: pointer;
}
.dd-age-gate__enter[aria-disabled="false"]:hover {
  background: var(--dd-rose-deep);
}

.dd-age-gate__leave {
  margin: 16px 0 0;
  font-size: 11px;
  color: var(--dd-grey-light);
  letter-spacing: 0.04em;
}

/* ---------------------------------------------------------------- */
/* Shared header cart icon                                           */
/* Rendered from both sections/dd-header.liquid and sections/cart-icon-bubble.liquid */
/* (the latter re-fetched via the Section Rendering API on every cart change), so it */
/* must not live in either file's own {% stylesheet %} block.       */
/* ---------------------------------------------------------------- */

.dd-header__bag-icon {
  display: block;
  width: 15px;
  height: 14px;
  border: 1px solid currentColor;
  border-radius: 1px 1px 3px 3px;
  position: relative;
}
.dd-header__bag-icon::before {
  content: '';
  position: absolute;
  left: 3px;
  top: -6px;
  width: 7px;
  height: 7px;
  border: 1px solid currentColor;
  border-bottom: none;
  border-radius: 4px 4px 0 0;
}

.dd-header__cart-badge {
  position: absolute;
  top: 6px;
  right: 2px;
  min-width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--dd-rose-deep);
  color: #fff;
  font-size: 9px;
  display: grid;
  place-items: center;
  padding: 0 3px;
}

/* ---------------------------------------------------------------- */
/* Shared product-grid section shell                                 */
/* Used by sections/dd-best-sellers.liquid and sections/dd-new-arrivals.liquid — */
/* kept global (rather than in either section's own {% stylesheet %}) since a   */
/* page can render either one without the other.                    */
/* ---------------------------------------------------------------- */

.dd-product-grid-section {
  padding: clamp(40px, 5vw, 70px) 0 clamp(64px, 8vw, 110px);
}

.dd-product-grid-section__inner {
  max-width: var(--dd-max-width);
  margin: 0 auto;
  padding: 0 clamp(22px, 5vw, 72px);
}

.dd-product-grid-section__head {
  text-align: center;
  margin-bottom: clamp(30px, 4vw, 56px);
}

.dd-product-grid-section__subheading {
  margin: 0;
  font-size: 14px;
  color: var(--dd-grey-2);
  font-weight: 300;
}

.dd-product-grid-section__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--dd-card-gap);
}

@media screen and (max-width: 1039px) {
  .dd-product-grid-section__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Utility */
.dd-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
