/* ============================================================
   SOULFUL ENERGY — DESIGN SYSTEM
   Single source of truth. Craft × Intention.
   Warm in narrative, quiet in layout.
   NO gold fills, NO ornate patterns, NO full-bleed gradients.
   Ported from prototype tokens; scoped to Astra + WooCommerce.
   ============================================================ */

/* ---------------- 1. TOKENS ---------------- */
:root {
  /* Palette — "Atelier": warm neutrals, deeper ink, bronze hairline accent.
     Clay is reserved for ACTION (buttons/links/hover), not default fills. */
  --se-bg:        #f4efe6;
  --se-bg-alt:    #ece2d2;
  --se-surface:   #faf6ef;
  --se-ink:       #17130d;
  --se-ink-soft:  #5f574b;
  --se-line:      #d8ccb8;
  --se-clay:      #a85d40;
  --se-clay-deep: #8c4a31;
  --se-bronze:    #9a7b4f;   /* refined metallic hairline — eyebrows, rules, numerals */
  --se-stone:     #6e7460;
  --se-wood:      #9c8064;

  /* Signature (high-end craft layer) */
  --se-ink-deep:  #14110b;
  --se-bone:      #f3efe8;
  --se-gold-hair: #9a7b4f;   /* unified with --se-bronze */
  --se-track-sig: 0.26em;

  /* Type */
  --se-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --se-font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --se-t-hero:  clamp(2.6rem, 5.5vw, 4.6rem);
  --se-t-h1:    clamp(2.0rem, 4vw, 3.1rem);
  --se-t-h2:    clamp(1.5rem, 2.6vw, 2.1rem);
  --se-t-h3:    1.3rem;
  --se-t-body:  1rem;
  --se-t-small: 0.875rem;
  --se-t-micro: 0.75rem;

  --se-lh-tight: 1.1;
  --se-lh-snug:  1.3;
  --se-lh-body:  1.6;

  --se-track-label: 0.22em;
  --se-track-wide:  0.04em;

  /* Spacing — 8px grid */
  --se-s1: 0.5rem;  --se-s2: 1rem;   --se-s3: 1.5rem;
  --se-s4: 2rem;    --se-s5: 3rem;   --se-s6: 4rem;
  --se-s7: 6rem;    --se-s8: 8rem;   --se-s9: 11rem;

  --se-maxw: 1240px;
  --se-radius: 2px;
  --se-radius-img: 3px;
  --se-border: 1px solid var(--se-line);
  --se-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --se-dur: 360ms;
}

/* ---------------- 2. GLOBAL BASE ---------------- */
body,
.ast-container {
  font-family: var(--se-font-body);
  color: var(--se-ink);
}
body {
  font-size: var(--se-t-body);
  line-height: var(--se-lh-body);
  background: var(--se-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4,
.entry-title,
.ast-archive-title,
.woocommerce-loop-product__title,
.product_title {
  font-family: var(--se-font-display) !important;
  font-weight: 500 !important;
  line-height: var(--se-lh-tight);
  color: var(--se-ink);
}

/* Type scale */
h1, .entry-title, .product_title { font-size: var(--se-t-h1) !important; }
h2 { font-size: var(--se-t-h2) !important; }
h3 { font-size: var(--se-t-h3) !important; }

p, li, .woocommerce-Tabs-panel { font-size: var(--se-t-body); line-height: var(--se-lh-body); }

a { color: inherit; text-decoration: none; }
a:hover { color: var(--se-clay); }

/* ---------------- 3. PRIMITIVES ---------------- */
.se-eyebrow {
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-ink-soft);
  font-weight: 500;
}
.se-tag {
  display: inline-block;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-wide);
  text-transform: uppercase;
  color: var(--se-stone);
  border: 1px solid var(--se-line);
  border-radius: 100px;
  padding: 0.3rem 0.8rem;
}

/* ---------------- 4. BUTTONS (Astra + Woo) ---------------- */
.ast-button,
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .single_add_to_cart_button,
input[type="submit"] {
  font-family: var(--se-font-body) !important;
  font-size: var(--se-t-small) !important;
  font-weight: 500 !important;
  letter-spacing: var(--se-track-wide) !important;
  border-radius: var(--se-radius) !important;
  padding: 0.95rem 2.2rem !important;
  transition: background var(--se-dur) var(--se-ease), color var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease) !important;
  text-transform: none !important;
}

/* Primary commerce action = CLAY (matches the whole funnel: shop VIEW PRODUCT,
   homepage CTAs, hero — all clay). Add-to-cart, place order, proceed to checkout. */
.woocommerce .single_add_to_cart_button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--se-clay) !important;
  color: #fff !important;
  border: 1px solid var(--se-clay) !important;
}
.woocommerce .single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: var(--se-clay-deep) !important;
  border-color: var(--se-clay-deep) !important;
  color: #fff !important;
}

/* Marketing block buttons (hero, signature, newsletter) stay clay-filled —
   several sit on dark imagery where an ink fill would vanish. Clay = action. */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--se-clay) !important;
  color: #fff !important;
  border: 1px solid var(--se-clay) !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  background: var(--se-clay-deep) !important;
  border-color: var(--se-clay-deep) !important;
}

/* Outline / ghost */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--se-ink) !important;
  border: 1px solid var(--se-ink) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--se-ink) !important;
  color: var(--se-bg) !important;
}

/* ---------------- 5. PLP — product cards ---------------- */
/* Atelier — borderless gallery cards: image-forward, left-aligned, no box */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: transparent;
  border: 0;
  border-radius: 0;
  text-align: left;
  padding-bottom: var(--se-s2);
}
/* clip + round just the image so the hover zoom is contained */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--se-radius-img);
  overflow: hidden;
  background: #f7f2ea;
  margin-bottom: var(--se-s3);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: block;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link {
  width: 100%;
  height: 100%;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin-bottom: 0 !important;
  border-radius: 0;
  transition: transform 1s var(--se-ease);
}
.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img { transform: scale(1.04); }

/* summary flush-left to the image edge */
.woocommerce ul.products li.product .astra-shop-summary-wrap { padding: 0 !important; text-align: left !important; }

/* intention eyebrow (Astra category) — bronze hairline accent */
.woocommerce ul.products li.product .ast-woo-product-category {
  display: block;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  margin: 0 0 0.4rem;
}
/* product name — serif display */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--se-font-display) !important;
  font-size: 1.18rem !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  color: var(--se-ink);
  padding: 0 0 0.3rem;
  transition: color var(--se-dur) var(--se-ease);
  /* reserve + clamp to 2 lines so price/CTA align across cards */
  min-height: 2.5em;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--se-clay); }
.woocommerce ul.products li.product .price {
  color: var(--se-ink-soft) !important;
  font-size: var(--se-t-small) !important;
  font-weight: 500;
}
.woocommerce ul.products li.product .price del { opacity: 0.5; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--se-clay) !important; }

/* card layout — flex column so the CTA can anchor to the bottom and align
   across cards regardless of category/title line count */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { display: flex; flex-direction: column; }
.woocommerce ul.products li.product .astra-shop-summary-wrap { display: flex; flex-direction: column; flex: 1 1 auto; }

/* card CTA — solid clay button, matching the homepage Featured "View Product"
   (was a small quiet link, inconsistent + tiny tap target on mobile) */
.woocommerce ul.products li.product .button {
  display: block; width: 100%; text-align: center;
  margin-top: auto;                 /* push to the card bottom → CTAs align */
  background: var(--se-clay) !important;
  color: #fff !important;
  border: 1px solid var(--se-clay) !important;
  border-radius: var(--se-radius) !important;
  font-family: var(--se-font-body) !important;
  font-size: var(--se-t-micro) !important;
  letter-spacing: var(--se-track-label) !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  padding: 0.8rem 1rem !important;
  transition: background var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
}
.woocommerce ul.products li.product .button:hover { background: var(--se-clay-deep) !important; border-color: var(--se-clay-deep) !important; color: #fff !important; }

/* ---------------- 6. PDP — single product ---------------- */
.single-product div.product .product_title { margin-bottom: var(--se-s2); }
.single-product div.product p.price,
.single-product div.product span.price {
  color: var(--se-ink) !important;
  font-size: 1.5rem !important;
  font-weight: 600;
}
.single-product .woocommerce-tabs ul.tabs li a {
  font-family: var(--se-font-body);
  font-size: var(--se-t-small);
  letter-spacing: var(--se-track-wide);
  text-transform: none;
}
/* Active tab indicator: was a muddy-brown (#8B7355) line ABOVE the text (Astra's
   default ::before/::after tab markers). Flatten those and use a clay UNDERLINE
   below the active tab, matching the buttons / selected variation. */
.woocommerce-tabs ul.tabs::before { border-bottom-color: var(--se-line) !important; }
.woocommerce-tabs ul.tabs li,
.woocommerce-tabs ul.tabs li.active {
  background: transparent !important; border: 0 !important;
  border-radius: 0 !important; margin: 0 1.6rem 0 0 !important; padding: 0 !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; content: none !important; }
.woocommerce-tabs ul.tabs li a {
  display: inline-block; padding: 0 0 0.85rem !important; margin-bottom: -1px;
  color: var(--se-ink-soft) !important; border-bottom: 2px solid transparent !important;
  transition: color var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--se-ink) !important; }
.woocommerce-tabs ul.tabs li.active a {
  color: var(--se-ink) !important; border-bottom-color: var(--se-clay) !important; font-weight: 500;
}

/* ---------------- 7. HEADER / NAV (Astra) ---------------- */
.ast-primary-header-bar,
.main-header-bar {
  background: var(--se-bg);
  border-bottom: var(--se-border);
}
.main-header-menu .menu-link,
.ast-header-navigation-wrap .menu-link {
  font-family: var(--se-font-body);
  font-size: var(--se-t-small);
  letter-spacing: var(--se-track-wide);
}

/* ---------------- 8. INTENTION PILLS (shortcode/block use) ---------------- */
.se-intent-bar { display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; padding:var(--se-s4) 0; }
.se-intent-pill {
  font-size: var(--se-t-small); letter-spacing: var(--se-track-wide);
  padding: .55rem 1.2rem; border: 1px solid var(--se-line);
  border-radius: 100px; background: var(--se-surface); cursor: pointer;
  transition: all var(--se-dur) var(--se-ease);
}
.se-intent-pill:hover { border-color: var(--se-ink); }
.se-intent-pill.active { background: var(--se-ink); color: var(--se-bg); border-color: var(--se-ink); }
.se-intent-pill.pill-sig { border-color: var(--se-gold-hair); color: var(--se-gold-hair); }

/* ---------------- 9. SIGNATURE LAYER (dark, museum) ---------------- */
.se-signature { background: var(--se-ink-deep); color: var(--se-bone); }
.se-signature h1, .se-signature h2, .se-signature h3 { color: var(--se-bone) !important; }
.se-sig-eyebrow {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-sig); text-transform: uppercase;
  color: var(--se-gold-hair);
}
.se-btn-sig {
  display:inline-block; font-family: var(--se-font-body);
  font-size: var(--se-t-small); letter-spacing: var(--se-track-wide);
  color: var(--se-bone); padding: .9rem 0;
  border-bottom: 1px solid var(--se-gold-hair);
  transition: color var(--se-dur) var(--se-ease);
}
.se-btn-sig:hover { color: var(--se-gold-hair); }

/* ---------------- 10. TRUST / UTILITY ---------------- */
.se-hairline { border: 0; border-top: var(--se-border); }
.se-wrap { max-width: var(--se-maxw); margin-inline: auto; padding-inline: var(--se-s3); }

/* ---------------- 10b. COMPLIANZ COOKIE BANNER (palette match) ---------------- */
/* Legacy default was a bright blue Accept button — off-brand. Bring it
   into the warm system: clay primary, quiet outlines for secondary. */
.cmplz-cookiebanner .cmplz-btn {
  font-family: var(--se-font-body) !important;
  font-size: var(--se-t-small) !important;
  letter-spacing: var(--se-track-wide) !important;
  border-radius: var(--se-radius) !important;
  padding: 0.7rem 1.4rem !important;
  transition: background var(--se-dur) var(--se-ease), color var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease) !important;
}
/* Primary — Accept All */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background: var(--se-clay) !important;
  color: #fff !important;
  border: 1px solid var(--se-clay) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover {
  background: var(--se-clay-deep) !important;
  border-color: var(--se-clay-deep) !important;
}
/* Secondary — Deny / Preferences as quiet outlines */
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {
  background: transparent !important;
  color: var(--se-ink) !important;
  border: 1px solid var(--se-line) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover {
  border-color: var(--se-ink) !important;
}
@media (max-width: 768px) {
  .cmplz-cookiebanner.cmplz-bottom.cmplz-show {
    left: 10px !important;
    right: 10px !important;
    bottom: 72px !important;
    transform: none !important;
    margin: 0 !important;
    width: auto !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 104px) !important;
    overflow-y: auto !important;
    padding: 14px !important;
    border-radius: 8px !important;
  }
  body.single-product .cmplz-cookiebanner.cmplz-bottom.cmplz-show {
    bottom: calc(112px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100vh - 152px - env(safe-area-inset-bottom)) !important;
  }
  .cmplz-cookiebanner .cmplz-header {
    margin-bottom: 6px !important;
  }
  .cmplz-cookiebanner .cmplz-title {
    font-size: 0.9rem !important;
    line-height: 1.25 !important;
  }
  .cmplz-cookiebanner .cmplz-body,
  .cmplz-cookiebanner .cmplz-message {
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
  }
  .cmplz-cookiebanner .cmplz-buttons {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  .cmplz-cookiebanner .cmplz-btn {
    min-height: 38px !important;
    padding: 0.5rem 0.55rem !important;
    font-size: 0.7rem !important;
  }
  .cmplz-cookiebanner .cmplz-btn.cmplz-accept {
    grid-column: 1 / -1 !important;
  }
  .cmplz-cookiebanner .cmplz-links,
  .cmplz-cookiebanner .cmplz-documents {
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
  }
}

/* ---------------- 11. TOP BAR + CURRENCY SWITCHER ---------------- */
.sw-topbar {
  background-color: var(--se-ink);
  color: #fff;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: 0.03em;
  padding: 8px 0;
}
.sw-topbar-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.sw-topbar-text { color: #fff; opacity: 0.9; text-align: center; }
.sw-tb-short { display: none; }
.sw-topbar-right { display: flex; align-items: center; gap: 12px; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); }
.sw-topbar-right select,
.sw-topbar-right .sw-currency-select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.3);
  padding: 4px 32px 4px 12px;
  font-family: var(--se-font-body);
  font-size: 0.7rem;
  color: #fff;
  cursor: pointer;
  border-radius: 0;
  transition: border-color var(--se-dur) var(--se-ease);
  text-align: left;
  min-width: 80px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http%3A//www.w3.org/2000/svg%27 width=%2710%27 height=%276%27 viewBox=%270 0 10 6%27%3E%3Cpath fill=%27%23ffffff%27 d=%27M5 6L0 0h10z%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}
.sw-topbar-right select:hover { border-color: rgba(255,255,255,0.6); }
.sw-topbar-right select option { background-color: var(--se-ink); color: #fff; text-align: left; }

/* ---------------- 12. SCROLL REVEAL + STICKY HEADER ---------------- */
.sw-reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms var(--se-ease), transform 700ms var(--se-ease); }
.sw-reveal.visible { opacity: 1; transform: none; }
.site-header.scrolled { box-shadow: 0 1px 12px rgba(43,39,36,0.07); }

/* ---------------- 12c. HOMEPAGE (block-based, class-driven) ---------------- */
/* Eyebrows */
.se-eyebrow, .se-intent-eyebrow {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  color: var(--se-bronze); margin: 0 0 var(--se-s2);
}
.se-eyebrow-light {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-sig); text-transform: uppercase;
  color: var(--se-gold-hair); margin: 0 0 var(--se-s2);
}

/* Hero */
.se-hero { position: relative; }
.se-hero .wp-block-cover__background { z-index: 1; }
.se-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(105deg, rgba(29,26,23,0.52) 0%, rgba(29,26,23,0.30) 38%, rgba(29,26,23,0.06) 70%, rgba(29,26,23,0) 100%);
}
.se-hero .wp-block-cover__inner-container { max-width: 760px; margin: 0 auto; position: relative; z-index: 2; }
.se-hero-title {
  font-family: var(--se-font-display); font-size: var(--se-t-hero);
  font-style: italic; font-weight: 300; line-height: var(--se-lh-tight); color: #fff;
  margin: 0 0 var(--se-s3); text-shadow: 0 1px 24px rgba(29,26,23,0.35);
}
.se-hero-sub {
  font-size: 1.1rem; line-height: var(--se-lh-body); color: rgba(255,255,255,0.92);
  max-width: 460px; margin: 0 0 var(--se-s2); text-shadow: 0 1px 16px rgba(29,26,23,0.4);
}
.se-hero .se-eyebrow { color: rgba(255,255,255,0.85); }
.se-hero-title br { display: block; }

/* Hero dual CTA */
.se-hero-cta { display: flex; gap: 0.9rem; flex-wrap: wrap; }
/* secondary "Explore the Craft" — readable bone ghost on the darkened hero-left */
.se-hero .se-btn-ghost-light .wp-block-button__link {
  background: rgba(29,26,23,0.18);
  color: #fff; border: 1px solid rgba(255,255,255,0.65);
  backdrop-filter: blur(2px);
}
.se-hero .se-btn-ghost-light .wp-block-button__link:hover {
  background: #fff; color: var(--se-ink); border-color: #fff;
}

/* Trust strip directly under the hero */
.se-herotrust { background: var(--se-surface); border-bottom: 1px solid var(--se-line); }
.se-herotrust-in {
  max-width: var(--se-maxw); margin: 0 auto; padding: 15px var(--se-s3);
  display: flex; align-items: center; justify-content: center;
  gap: 2.6rem; flex-wrap: wrap;
}
.se-herotrust-in span {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  color: var(--se-ink-soft); font-weight: 500; position: relative;
}
.se-herotrust-in span:not(:last-child)::after {
  content: ""; position: absolute; right: -1.35rem; top: 50%;
  width: 3px; height: 3px; border-radius: 50%; background: var(--se-bronze);
  transform: translateY(-50%);
}

/* Creed band */
.se-creed { background: var(--se-surface); }
.se-creed-title {
  font-family: var(--se-font-display); font-size: var(--se-t-h1);
  font-style: italic; font-weight: 300; color: var(--se-ink); margin: 0 0 var(--se-s4);
}
.se-creed-body { font-size: 1.05rem; line-height: 1.85; color: var(--se-ink-soft); }

/* Section titles */
.se-section-title {
  font-family: var(--se-font-display); font-size: var(--se-t-h2);
  font-weight: 500; color: var(--se-ink); margin: 0 0 var(--se-s2);
}
.se-section-sub { font-size: var(--se-t-body); color: var(--se-ink-soft); margin: 0; }

/* Atelier section-header motif — centered eyebrows flanked by a short bronze
   hairline ("— START HERE —"). Editorial structure without arbitrary numerals
   (the 01/02/03 step numerals already carry the index role where it's meaningful).
   Scoped to centered eyebrows so hero/craft left-aligned eyebrows are untouched. */
.se-eyebrow.has-text-align-center::before,
.se-eyebrow.has-text-align-center::after {
  content: "";
  display: inline-block;
  width: 26px;
  height: 1px;
  background: var(--se-bronze);
  opacity: 0.85;
  vertical-align: middle;
  margin: 0 0.75rem;
}

/* Intention grid — editorial, text over image */
.wp-block-columns.se-intent-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 4px !important;
  flex-wrap: unset !important;
  width: 100%;
}
.wp-block-columns.se-intent-grid > .wp-block-column {
  flex: none !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
}
.se-intent-card { padding: 0; }
.se-intent-link { position: relative; display: block; overflow: hidden; border-radius: var(--se-radius-img); }
.se-intent-img {
  width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block;
  filter: saturate(0.95) brightness(0.96);
  transition: transform 1.2s var(--se-ease);
}
.se-intent-link:hover .se-intent-img { transform: scale(1.05); }
.se-intent-link::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,16,11,0.95) 0%, rgba(20,16,11,0.7) 28%, rgba(20,16,11,0.22) 58%, rgba(20,16,11,0) 100%);
}
.se-intent-overlay {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: var(--se-s4) var(--se-s3); text-align: center;
  display: flex; flex-direction: column; gap: 6px;
}
.se-intent-eyebrow {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  color: rgba(243,239,232,0.82); margin: 0;
}
.se-intent-name {
  font-family: var(--se-font-display); font-size: 1.45rem; font-weight: 500;
  color: #fff; margin: 0; line-height: 1.15;
}

/* Craft band (dark photo) */
.se-craft-title { font-family: var(--se-font-display); font-size: var(--se-t-h1); font-weight: 500; color: #fff; margin: 0 0 var(--se-s3); }
.se-craft-body { font-size: 1.05rem; line-height: 1.85; color: rgba(255,255,255,0.86); }

/* Signature layer (high-end, near-black) */
.se-signature { color: var(--se-bone); }
.se-sig-img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: var(--se-radius-img); }
.se-sig-title { font-family: var(--se-font-display); font-size: var(--se-t-h1); font-style: italic; font-weight: 300; color: var(--se-bone); line-height: var(--se-lh-snug); margin: 0 0 var(--se-s3); }
.se-sig-body { font-size: 1rem; line-height: 1.8; color: rgba(243,239,232,0.78); margin: 0; }

/* Ritual band */
.se-ritual-title { font-family: var(--se-font-display); font-size: var(--se-t-h1); font-weight: 500; color: var(--se-ink); margin: 0 0 var(--se-s3); }
.se-ritual-body { font-size: 1.05rem; line-height: 1.85; color: var(--se-ink); }

/* Reviews */
.se-review-quote { font-family: var(--se-font-display); font-size: 1.25rem; font-style: italic; line-height: 1.6; color: var(--se-ink); margin: 0 0 var(--se-s3); }
.se-review-author { font-family: var(--se-font-body); font-size: var(--se-t-micro); letter-spacing: var(--se-track-label); text-transform: uppercase; color: var(--se-clay); margin: 0; }

/* FAQ */
.se-faq-item { border-top: var(--se-border); padding: var(--se-s3) 0; }
.se-faq-item:last-child { border-bottom: var(--se-border); }
.se-faq-item summary { font-family: var(--se-font-body); font-size: 1.05rem; color: var(--se-ink); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.se-faq-item summary::after { content: "+"; font-size: 1.4rem; color: var(--se-clay); font-weight: 300; }
.se-faq-item[open] summary::after { content: "–"; }
.se-faq-item summary::-webkit-details-marker { display: none; }
.se-faq-item p { color: var(--se-ink-soft); line-height: var(--se-lh-body); margin: var(--se-s2) 0 0; }

/* Newsletter */
.se-newsletter-body { font-size: var(--se-t-body); line-height: 1.8; color: var(--se-ink-soft); max-width: 460px; margin: 0 auto; }

/* Buttons (block variants) */
.se-btn-primary .wp-block-button__link {
  background: var(--se-clay); color: #fff; border: 1px solid var(--se-clay);
  border-radius: var(--se-radius); padding: 16px 40px;
  font-family: var(--se-font-body); font-size: var(--se-t-small);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  transition: background var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
}
.se-btn-primary .wp-block-button__link:hover { background: var(--se-clay-deep); border-color: var(--se-clay-deep); }
.se-btn-ghost-light .wp-block-button__link {
  background: transparent; color: var(--se-bone); border: 1px solid rgba(243,239,232,0.4);
  border-radius: var(--se-radius); padding: 15px 36px;
  font-family: var(--se-font-body); font-size: var(--se-t-small);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  transition: border-color var(--se-dur) var(--se-ease), background var(--se-dur) var(--se-ease);
}
.se-btn-ghost-light .wp-block-button__link:hover { border-color: var(--se-bone); background: rgba(243,239,232,0.06); }

/* ---------------- 12d. SIGNATURE PAGE ---------------- */
.se-sigp-hero { position: relative; }
.se-sigp-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(29,26,23,0.35) 0%, rgba(29,26,23,0.15) 45%, rgba(29,26,23,0.55) 100%);
}
.se-sigp-hero .wp-block-cover__inner-container { max-width: 780px; margin: 0 auto; position: relative; z-index: 2; }
.se-sigp-h1 {
  font-family: var(--se-font-display); font-size: clamp(2.6rem, 5vw, 4.4rem);
  font-style: italic; font-weight: 300; color: var(--se-bone); line-height: 1.08; margin: var(--se-s3) 0;
  text-shadow: 0 2px 30px rgba(0,0,0,0.45);
}
.se-sigp-sub { color: rgba(243,239,232,0.92); max-width: 520px; margin: 0 auto; font-size: 1.05rem; line-height: var(--se-lh-body); text-shadow: 0 1px 18px rgba(0,0,0,0.6); }

.se-sigp-intro { background: var(--se-bg); }
.se-sigp-intro-h {
  font-family: var(--se-font-display); font-size: clamp(1.8rem, 3.4vw, 2.7rem);
  font-weight: 500; line-height: 1.3; color: var(--se-ink); margin-top: var(--se-s3);
}

/* Editorial product rows */
.se-sigp-piece { padding: var(--se-s6) 0; align-items: center; }
.se-sigp-piece .wp-block-column { align-self: center; }
.se-sigp-img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: var(--se-radius-img); }
.se-sigp-num { font-family: var(--se-font-display); font-size: 1.1rem; color: var(--se-gold-hair); letter-spacing: 0.1em; margin: 0 0 var(--se-s1); }
.se-sigp-name { font-family: var(--se-font-display); font-size: 2.2rem; font-weight: 500; color: var(--se-ink); margin: 0 0 var(--se-s2); line-height: 1.15; }
.se-sigp-price { font-size: 1.2rem; color: var(--se-ink-soft); margin: 0 0 var(--se-s3); }
.se-sigp-desc { color: var(--se-ink-soft); line-height: var(--se-lh-body); margin: 0 0 var(--se-s3); }
.se-sigp-specs { list-style: none; margin: 0 0 var(--se-s3); padding: 0; border-top: var(--se-border); }
.se-sigp-specs li { display: flex; justify-content: space-between; gap: var(--se-s2); padding: 0.7rem 0; border-bottom: var(--se-border); font-size: var(--se-t-small); color: var(--se-ink); }
.se-sigp-specs li span:first-child { color: var(--se-ink-soft); letter-spacing: var(--se-track-wide); text-transform: uppercase; font-size: var(--se-t-micro); }
.se-sigp-scarcity { display: inline-flex; align-items: center; gap: 0.5rem; font-size: var(--se-t-micro); letter-spacing: var(--se-track-wide); text-transform: uppercase; color: var(--se-gold-hair); margin: 0 0 var(--se-s3); }
.se-sigp-scarcity::before { content: "\25E6"; }

/* Dark solid button */
.se-btn-dark .wp-block-button__link {
  background: var(--se-ink-deep); color: var(--se-bone); border: 1px solid var(--se-ink-deep);
  border-radius: var(--se-radius); padding: 15px 38px;
  font-family: var(--se-font-body); font-size: var(--se-t-small);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  transition: background var(--se-dur) var(--se-ease), color var(--se-dur) var(--se-ease);
}
.se-btn-dark .wp-block-button__link:hover { background: transparent; color: var(--se-ink-deep); }

/* Craft proof band */
.se-sigp-craft-h { font-family: var(--se-font-display); font-size: var(--se-t-h2); font-weight: 500; color: var(--se-bone); margin: var(--se-s2) 0 0; }
.se-sigp-craft-t { font-family: var(--se-font-body); font-weight: 600; font-size: var(--se-t-small); letter-spacing: var(--se-track-wide); text-transform: uppercase; color: var(--se-gold-hair); margin: 0 0 0.5rem; }
.se-sigp-craft-p { color: rgba(243,239,232,0.6); font-size: var(--se-t-small); line-height: 1.6; margin: 0; }

/* Energy demoted line */
.se-sigp-energy-line { font-family: var(--se-font-display); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 500; line-height: 1.3; color: var(--se-ink); margin: 0; }
.se-sigp-energy-p { color: var(--se-ink-soft); margin: var(--se-s3) 0 0; font-size: var(--se-t-small); line-height: var(--se-lh-body); }

/* Assurance */
.se-sigp-assure-b { font-family: var(--se-font-body); font-weight: 600; color: var(--se-ink); margin: 0 0 0.3rem; font-size: var(--se-t-small); }
.se-sigp-assure-s { color: var(--se-ink-soft); font-size: var(--se-t-small); margin: 0; }

/* Cookie "manage consent" tab — make discreet, off the hero */
.cmplz-manage-consent.cmplz-manage-consent-container,
button#cmplz-manage-consent,
.cmplz-cookiebanner .cmplz-manage-consent {
  opacity: 0.55; transition: opacity var(--se-dur) var(--se-ease);
}
.cmplz-manage-consent.cmplz-manage-consent-container:hover,
button#cmplz-manage-consent:hover { opacity: 1; }

/* ---------------- 12e. HOMEPAGE — MISSING COMPONENTS ---------------- */

/* Hide page title on front page and signature page */
.home .entry-title,
.home .page-title,
.page-id-15 .entry-title,
.page-id-26686 .entry-title {
  display: none !important;
}

/* Craft section — two-column split (raw HTML block) */
.se-craft-split {
  display: grid;
  grid-template-columns: 52% 48%;
  min-height: 580px;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  overflow: hidden;
}
.se-craft-img-col { overflow: hidden; }
.se-craft-img-col img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.se-craft-text-col {
  background: var(--se-bg);
  padding: var(--se-s7) var(--se-s6);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.se-craft-text-col .se-eyebrow { color: var(--se-clay); }
.se-craft-text-col .se-craft-title { color: var(--se-ink); }
.se-craft-text-col .se-craft-body { color: var(--se-ink-soft); }

/* Craft bullet specs list */
.se-craft-specs {
  list-style: none;
  padding: 0;
  margin: var(--se-s3) 0 0;
  border-top: 1px solid var(--se-line);
}
.se-craft-specs li {
  display: flex;
  gap: var(--se-s2);
  padding: var(--se-s2) 0;
  border-bottom: 1px solid var(--se-line);
  font-size: var(--se-t-small);
  color: var(--se-ink-soft);
  line-height: 1.55;
}
.se-craft-specs li::before {
  content: "—";
  color: var(--se-clay);
  flex-shrink: 0;
}
.se-craft-specs li strong {
  color: var(--se-ink);
  font-weight: 500;
  display: block;
}

/* "Make it a small ritual" — 3-step section */
.se-ritual-steps { background: var(--se-bg); }
.se-step-num {
  font-family: var(--se-font-display);
  font-size: 1rem;
  font-style: italic;
  color: var(--se-clay);
  display: block;
  margin: 0 0 var(--se-s2);
}
.se-step-title {
  font-family: var(--se-font-display);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--se-ink);
  display: block;
  margin: 0 0 var(--se-s1);
  line-height: var(--se-lh-snug);
}
.se-step-body {
  font-size: var(--se-t-small);
  line-height: var(--se-lh-body);
  color: var(--se-ink-soft);
  margin: 0;
}

/* Trust bar — 4 columns with hairline dividers */
.se-trust-bar { background: var(--se-bg-alt); }
.se-trust-bar .wp-block-columns {
  max-width: var(--se-maxw);
  margin: 0 auto;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
  flex-wrap: nowrap !important;
}
.se-trust-bar .wp-block-column {
  padding: 2.5rem 1.5rem;
  border-right: 1px solid var(--se-line);
  text-align: center;
}
.se-trust-bar .wp-block-column:last-child { border-right: none; }
.se-trust-label {
  font-family: var(--se-font-body);
  font-size: var(--se-t-small);
  font-weight: 600;
  color: var(--se-ink);
  display: block;
  margin: 0 0 0.3rem;
}
.se-trust-sub {
  font-size: var(--se-t-micro);
  color: var(--se-ink-soft);
  display: block;
  line-height: 1.5;
  margin: 0;
}

/* Signature page top announcement bar */
.se-sigp-topbar {
  background: var(--se-ink);
  color: rgba(243,239,232,0.72);
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-sig);
  text-transform: uppercase;
  text-align: center;
  padding: 10px 20px;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

/* ---------------- 14. ATELIER — BLOG / ACCOUNT / 404 ---------------- */

/* Blog category labels → bronze eyebrow (archive cards + single-post meta) */
.cat-links,
.cat-links a,
.ast-taxonomy-container.cat-links a {
  font-family: var(--se-font-body) !important;
  font-size: var(--se-t-micro) !important;
  letter-spacing: var(--se-track-label) !important;
  text-transform: uppercase !important;
  color: var(--se-bronze) !important;
  font-weight: 500 !important;
}
.cat-links a:hover { color: var(--se-clay) !important; }

/* 404 — already inherits the system; center it and constrain the search field */
.error-404.not-found { text-align: center; }
.error-404 .page-title,
.error-404 .page-content > p { color: var(--se-ink); }
.ast-404-search .search-form,
.error-404 .search-form { max-width: 440px; margin-inline: auto; }
.error-404 .search-form .search-field {
  border: 1px solid var(--se-line) !important;
  background: var(--se-surface) !important;
}

/* My Account — login/register submit buttons to ink (they are base .button,
   not .button.alt, so the commerce-primary rule doesn't reach them) */
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit,
.woocommerce-account .woocommerce-Button {
  background: var(--se-ink) !important;
  color: var(--se-bone) !important;
  border: 1px solid var(--se-ink) !important;
}
.woocommerce-account .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register__submit:hover,
.woocommerce-account .woocommerce-Button:hover {
  background: var(--se-clay) !important;
  border-color: var(--se-clay) !important;
}
/* account section card borders → warm line + radius */
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  border-color: var(--se-line) !important;
  border-radius: var(--se-radius-img);
}

/* ---------------- 15. ATELIER — HEADER & FOOTER ---------------- */
/* The header/footer were still on Astra defaults (blue links #045cb4, a 2px
   brown cart box, plain-white dropdown, charcoal footer headings) — they read
   as "default Astra" stapled onto a custom body. Bring them into Atelier. */

/* Primary nav — ink default, clay on hover/current (kills Astra blue) */
.main-header-menu .menu-link,
.ast-header-navigation-wrap .menu-link,
.ast-builder-menu-mobile .menu-link,
.main-navigation .menu-link {
  color: var(--se-ink) !important;
}
.main-header-menu .menu-item:hover > .menu-link,
.ast-header-navigation-wrap .menu-item:hover > .menu-link,
.main-header-menu .menu-link:hover,
.ast-builder-menu-mobile .menu-item:hover > .menu-link,
.ast-builder-menu-mobile .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link,
.ast-builder-menu-mobile .current-menu-item > .menu-link {
  color: var(--se-clay) !important;
}

/* COLLECTIONS dropdown — warm surface + hairline instead of white box */
.main-header-menu .sub-menu,
.ast-header-navigation-wrap .sub-menu {
  background-color: var(--se-surface) !important;
  border: 1px solid var(--se-line) !important;
  box-shadow: 0 10px 30px rgba(23, 19, 13, 0.08) !important;
}
.main-header-menu .sub-menu .menu-link { color: var(--se-ink) !important; }
.main-header-menu .sub-menu .menu-item:hover > .menu-link {
  color: var(--se-clay) !important;
  background-color: var(--se-bg-alt) !important;
}

/* Cart icon — drop the heavy 2px brown box (legacy stone), keep a clean glyph */
.ast-addon-cart-wrap {
  border: 0 !important;
  padding: 0 4px !important;
}
.ast-addon-cart-wrap .ast-count,
.cart-container .count,
.ast-cart-menu-wrap .count {
  background-color: var(--se-clay) !important;
  color: #fff !important;
  border-color: var(--se-clay) !important;
}
/* header icons (cart, account, hamburger) → ink */
.site-header .ast-addon-cart-wrap,
.site-header .ahfb-svg-iconset,
.ast-header-account-wrap,
.menu-toggle,
.mobile-menu-toggle-icon { color: var(--se-ink) !important; }

/* Mobile cart entry: keep Astra's drawer behavior but make the touch target
   large enough for thumb use and expose a clear quantity badge after AJAX add. */
@media (max-width: 921px) {
  #ast-mobile-header .ast-header-woo-cart,
  #ast-mobile-header .ast-site-header-cart,
  #ast-mobile-header .ast-site-header-cart-li,
  #ast-mobile-header .cart-container,
  #ast-mobile-header .ast-addon-cart-wrap {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  #ast-mobile-header .ast-header-woo-cart {
    margin-right: 4px !important;
  }
  #ast-mobile-header .ast-site-header-cart i.astra-icon {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
  }
  #ast-mobile-header .ast-site-header-cart i.astra-icon svg {
    width: 22px !important;
    height: 22px !important;
  }
  #ast-mobile-header .ast-site-header-cart i.astra-icon[data-cart-total]::after {
    content: attr(data-cart-total);
    position: absolute;
    top: -8px;
    right: -10px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--se-clay);
    color: #fff;
    border: 1px solid var(--se-bg);
    font-family: var(--se-font-body);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
  }
  #ast-mobile-header .ast-site-header-cart i.astra-icon[data-cart-total="0"]::after {
    content: none;
  }
}

/* Footer — widget titles to Atelier ink + refined scale; links hover clay */
.site-footer .widget-title,
.ast-footer-widget .widget-title,
.site-above-footer-wrap .widget-title,
.site-below-footer-wrap .widget-title {
  color: var(--se-ink) !important;
  font-family: var(--se-font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}
.site-footer a:hover,
.site-above-footer-wrap a:hover,
.site-below-footer-wrap a:hover { color: var(--se-clay) !important; }

/* ---------------- 16. ATELIER — CUSTOM FOOTER (soulful-footer.php) ---------------- */
/* Hide Astra's footer-builder rows; our footer renders via astra_footer_content_top */
.site-above-footer-wrap,
.site-below-footer-wrap { display: none !important; }

.se-footer { background: var(--se-bg); border-top: 1px solid var(--se-line); }
.se-footer-in { max-width: var(--se-maxw); margin: 0 auto; padding: var(--se-s6) var(--se-s3) 0; }

/* top — brand | newsletter, on the SAME 4-col grid as the link columns below,
   so brand aligns to col 1 (Explore) and newsletter to col 3 (Shop by Intention) */
.se-footer-top { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: var(--se-s5); padding-bottom: var(--se-s5); }
.se-footer-brand { grid-column: 1 / 3; }
.se-footer-news { grid-column: 3 / 5; }
.se-footer-logo { font-family: var(--se-font-display); font-weight: 500; font-size: 1.9rem; letter-spacing: 0.01em; color: var(--se-ink); }
.se-footer-tag { font-family: var(--se-font-display); font-style: italic; font-size: 1.15rem; color: var(--se-clay); margin: 0.5rem 0 0.9rem; }
.se-footer-blurb { font-size: var(--se-t-small); line-height: 1.7; color: var(--se-ink-soft); max-width: 330px; margin: 0; }
.se-footer-social { display: flex; gap: 1.1rem; margin-top: var(--se-s3); }
.se-footer-social a { width: 34px; height: 34px; border: 1px solid var(--se-line); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--se-ink); transition: all var(--se-dur) var(--se-ease); }
.se-footer-social a:hover { border-color: var(--se-ink); background: var(--se-ink); color: var(--se-bg); }
.se-footer-social svg { width: 15px; height: 15px; fill: currentColor; }

.se-footer-ey { font-family: var(--se-font-body); font-size: var(--se-t-micro); letter-spacing: var(--se-track-sig); text-transform: uppercase; color: var(--se-bronze); font-weight: 600; display: flex; align-items: center; gap: 0.6rem; margin: 0; }
.se-footer-ey::before { content: ""; width: 24px; height: 1px; background: var(--se-bronze); }
.se-footer-news-h { font-family: var(--se-font-display); font-weight: 500; font-size: 1.7rem; color: var(--se-ink); margin: 0.7rem 0 0.3rem; }
.se-footer-news-p { font-size: var(--se-t-small); color: var(--se-ink-soft); margin: 0 0 var(--se-s3); }
.se-footer-form { position: relative; display: flex; border: 1px solid var(--se-line); border-radius: var(--se-radius); overflow: hidden; background: var(--se-surface); max-width: 380px; }
.se-footer-form input[type="email"] { flex: 1; border: 0; background: transparent; padding: 13px 16px; font-family: var(--se-font-body); font-size: var(--se-t-small); color: var(--se-ink); outline: none; }
.se-footer-form button { background: var(--se-clay); color: #fff; border: 0; padding: 0 20px; font-size: 1rem; cursor: pointer; transition: background var(--se-dur) var(--se-ease); }
.se-footer-form button:hover { background: var(--se-clay-deep); }
.se-foot-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; }

/* columns */
.se-footer-cols { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: var(--se-s5); row-gap: var(--se-s4); padding: var(--se-s5) 0; border-top: 1px solid var(--se-line); }
.se-footer-col h4 { font-family: var(--se-font-body); font-size: var(--se-t-micro); letter-spacing: var(--se-track-label); text-transform: uppercase; color: var(--se-ink); font-weight: 600; margin: 0 0 var(--se-s3); }
.se-footer-col ul { list-style: none; margin: 0; padding: 0; }
.se-footer-col a { display: block; font-size: var(--se-t-small); color: var(--se-ink-soft); padding: 6px 0; transition: color var(--se-dur) var(--se-ease); }
.se-footer-col a:hover { color: var(--se-clay); }

/* bottom bar */
.se-footer-bot { display: flex; align-items: center; justify-content: space-between; gap: var(--se-s3); padding: var(--se-s3) 0; border-top: 1px solid var(--se-line); flex-wrap: wrap; }
.se-footer-cp { font-size: var(--se-t-micro); color: var(--se-ink-soft); }
.se-footer-pay { display: flex; gap: 0.55rem; align-items: center; flex-wrap: wrap; }
.se-footer-pay .se-secure { display: inline-flex; align-items: center; gap: 0.35rem; font-size: var(--se-t-micro); letter-spacing: 0.04em; color: var(--se-ink-soft); margin-right: 0.4rem; }
.se-footer-pay .se-secure svg { width: 13px; height: 13px; fill: var(--se-stone); }
.se-footer-pay .se-pmark { display: inline-flex; }
.se-footer-pay .se-pmark svg { height: 21px; width: auto; display: block; }
.se-footer-legal { display: flex; gap: 1.3rem; }
.se-footer-legal a { font-size: var(--se-t-micro); color: var(--se-ink-soft); }
.se-footer-legal a:hover { color: var(--se-clay); }

@media (max-width: 880px) {
  .se-footer-top { grid-template-columns: 1fr; gap: var(--se-s4); }
  .se-footer-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--se-s4) var(--se-s3); }
  .se-footer-bot { flex-direction: column; align-items: flex-start; gap: var(--se-s2); }
}
@media (max-width: 480px) {
  .se-footer-cols { grid-template-columns: 1fr; }
}

/* ---------------- 17. PLP — universal trust micro-tag on product cards ---------------- */
.woocommerce ul.products li.product .price::after,
.wc-block-grid__product .wc-block-grid__product-price::after {
  content: "Ships worldwide \00B7 Gift-ready";
  display: block;
  font-family: var(--se-font-body);
  font-size: 0.64rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--se-stone);
  font-weight: 500;
  margin-top: 0.5rem;
}

/* ---------------- 18. REVIEWS (soulful-reviews.php — real reviews only) ---------------- */
.se-reviews { background: var(--se-bg-alt); }
.se-reviews-in { max-width: var(--se-maxw); margin: 0 auto; padding: var(--se-s7) var(--se-s3); }
.se-reviews .se-section-title { margin-bottom: var(--se-s5); }
.se-reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--se-s4); }
.se-review-card {
  background: var(--se-surface); border: 1px solid var(--se-line);
  border-radius: var(--se-radius-img); padding: var(--se-s4);
  display: flex; flex-direction: column;
}
.se-review-stars { color: var(--se-clay); letter-spacing: 2px; font-size: 0.95rem; margin-bottom: var(--se-s2); }
.se-review-quote {
  font-family: var(--se-font-display); font-style: italic; font-size: 1.18rem;
  line-height: 1.5; color: var(--se-ink); margin: 0 0 var(--se-s3); border: 0; padding: 0;
}
.se-review-foot { margin-top: auto; display: flex; flex-direction: column; gap: 4px; }
.se-review-author { font-family: var(--se-font-body); font-weight: 600; font-size: var(--se-t-small); color: var(--se-ink); }
.se-review-verified {
  font-size: var(--se-t-micro); letter-spacing: var(--se-track-wide); text-transform: uppercase;
  color: var(--se-stone); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; width: max-content;
}
.se-review-verified::before { content: "\2713"; font-weight: 700; }
.se-review-meta { font-size: var(--se-t-micro); color: var(--se-ink-soft); letter-spacing: var(--se-track-wide); }
@media (max-width: 880px) {
  .se-reviews-grid { grid-template-columns: 1fr; gap: var(--se-s3); }
  .se-reviews-in { padding: var(--se-s5) var(--se-s3); }
}

/* ---------------- 19. PLP FILTERS (soulful-plp-filters.php) ---------------- */
.se-plp-filters {
  display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap;
  padding: 0 0 var(--se-s3); margin: 0 0 var(--se-s3);
  border-bottom: 1px solid var(--se-line);
}
.se-plp-heading {
  font-family: var(--se-font-body); font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label); text-transform: uppercase;
  color: var(--se-bronze); font-weight: 600; margin-right: 0.3rem;
}
.se-plp-filter { display: flex; align-items: center; gap: 0.55rem; }
.se-plp-label {
  font-size: var(--se-t-micro); letter-spacing: var(--se-track-wide);
  text-transform: uppercase; color: var(--se-ink-soft); font-weight: 500;
}
.se-plp-select {
  appearance: none; -webkit-appearance: none;
  min-width: 185px;            /* uniform width so the 3 filters line up evenly */
  background-color: var(--se-surface);
  border: 1px solid var(--se-line); border-radius: var(--se-radius);
  padding: 8px 32px 8px 13px;
  font-family: var(--se-font-body); font-size: var(--se-t-small); color: var(--se-ink);
  cursor: pointer; transition: border-color var(--se-dur) var(--se-ease);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2317130d' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center;
}
.se-plp-select:hover { border-color: var(--se-ink); }
.se-plp-clear {
  margin-left: auto; font-size: var(--se-t-micro); letter-spacing: var(--se-track-wide);
  text-transform: uppercase; color: var(--se-clay); font-weight: 600; align-self: center;
}
.se-plp-clear:hover { color: var(--se-clay-deep); }
@media (max-width: 600px) {
  .se-plp-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem 0.75rem;
  }
  .se-plp-heading { grid-column: 1 / -1; }
  .se-plp-filter { min-width: 0; }
  .se-plp-select { width: 100%; min-width: 0; }
  .se-plp-clear { margin-left: 0; grid-column: 1 / -1; }
}

/* ---------------- 20. PDP GALLERY — vertical thumbnail strip (DESKTOP ONLY) ----------------
   Scoped to ≥922px on purpose: on mobile, flexslider's JS-set heights make the
   thumb nav fall outside the gallery box (overlapping the summary) if we touch
   its layout — so below 922px we leave the native flexslider gallery untouched. */
@media (min-width: 922px) {
  .single-product .woocommerce-product-gallery {
    position: relative;
    display: flex; flex-direction: row-reverse; align-items: flex-start; gap: 14px;
  }
  .single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger { z-index: 5; }
  .single-product .woocommerce-product-gallery .flex-viewport { flex: 1 1 auto; min-width: 0; width: auto !important; }
  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { flex: 1 1 auto; min-width: 0; }
  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    position: static !important;
    flex: 0 0 78px; width: 78px !important; margin: 0 !important; padding: 0 !important;
    display: flex !important; flex-direction: column; gap: 10px;
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li {
    width: 78px !important; margin: 0 !important; float: none !important; list-style: none;
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    aspect-ratio: 1 / 1; object-fit: cover; cursor: pointer; display: block;
    border: 1px solid var(--se-line); border-radius: var(--se-radius-img);
    opacity: 0.55; transition: opacity var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    opacity: 1; border-color: var(--se-ink);
  }
}

/* ---------------- 21. SCARCITY — honest low-stock (soulful-scarcity.php) ---------------- */
/* PLP card low-stock badge */
.woocommerce ul.products li.product .se-stock-badge {
  display: block; margin-top: 0.4rem;
  font-family: var(--se-font-body); font-size: 0.64rem; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--se-clay); font-weight: 600;
}
/* PDP native stock line ("Only N left in stock") — on-brand, low stock reads as clay */
.single-product div.product .stock {
  font-family: var(--se-font-body); font-size: var(--se-t-small); font-weight: 500;
  letter-spacing: var(--se-track-wide); margin: 0 0 var(--se-s2);
}
.single-product div.product .stock.in-stock { color: var(--se-clay); }
.single-product div.product .stock.out-of-stock { color: var(--se-ink-soft); }

/* ---------------- 22. CONTENT PAGES — readable prose + links ---------------- */
/* Cap line length on standard content pages. Excludes home + Signature (custom
   full-width layouts); columns/figures/groups are left alone so multi-column
   sections keep their width — only top-level prose is constrained. */
/* !important to beat Astra/WP constrained-layout width on alignwide groups */
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content :is(p, ul, ol, dl, h1, h2, h3, h4, h5, h6, blockquote, hr) {
  max-width: 720px !important;
}
/* Left-align centered BODY text (paragraphs/lists) for readability. */
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content :is(p, li, ul, ol).has-text-align-center {
  text-align: left !important;
}
/* Keep the whole prose column flush-left & consistent with the left page title —
   some pages wrap content in a WP constrained group that auto-centers it. */
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content > *,
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content > .wp-block-group > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* don't shrink text inside genuine multi-column layouts (columns already narrow) */
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content .wp-block-column :is(p, ul, ol, h2, h3, h4) {
  max-width: none !important;
}

/* Content prose links → clay (action color), with a subtle underline for affordance */
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content a:not(.button):not(.wp-block-button__link):not([class*="se-btn"]):not(.ast-button) {
  color: var(--se-clay);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: rgba(168, 93, 64, 0.4);
  transition: color var(--se-dur) var(--se-ease), text-decoration-color var(--se-dur) var(--se-ease);
}
body:not(.home):not(.page-id-26686) .ast-article-single .entry-content a:not(.button):not(.wp-block-button__link):not([class*="se-btn"]):not(.ast-button):hover {
  color: var(--se-clay-deep);
  text-decoration-color: var(--se-clay-deep);
}

/* ---------------- 23. MOBILE FIXES (≤768) ---------------- */
@media (max-width: 768px) {
  /* Craft split — stack (was 2-col, text crushed one word per line) */
  .se-craft-split { grid-template-columns: 1fr !important; min-height: 0 !important; }
  .se-craft-img-col img { height: 260px; }
  .se-craft-text-col { padding: var(--se-s5) var(--se-s3) !important; }

  /* Trust bar — 2×2 grid (was 4-col nowrap, words broken mid-syllable) */
  .se-trust-bar .wp-block-columns { flex-wrap: wrap !important; }
  .se-trust-bar .wp-block-column {
    flex: 0 0 50% !important; max-width: 50% !important; padding: 1.6rem 1rem !important;
  }
  .se-trust-bar .wp-block-column:nth-child(odd) { border-right: 1px solid var(--se-line); }
  .se-trust-bar .wp-block-column:nth-child(even) { border-right: none !important; }
  .se-trust-bar .wp-block-column:nth-child(1),
  .se-trust-bar .wp-block-column:nth-child(2) { border-bottom: 1px solid var(--se-line); }

  /* === Premium mobile nav drawer (was a cramped default dropdown) === */
  #ast-hf-mobile-menu,
  .main-header-bar-navigation .main-navigation,
  #ast-hf-mobile-menu .menu-link { background: transparent !important; }
  #ast-hf-mobile-menu { padding: 0 !important; }
  #ast-hf-mobile-menu > .menu-item { border: 0; }
  /* top-level — large serif, generous tap targets, hairline dividers */
  #ast-hf-mobile-menu > .menu-item { border-bottom: 1px solid var(--se-line); position: relative; }
  #ast-hf-mobile-menu > .menu-item > .menu-link {
    font-family: var(--se-font-display) !important;
    font-size: 1.4rem !important; font-weight: 500 !important; line-height: 1.2 !important;
    color: var(--se-ink) !important; text-transform: none !important; letter-spacing: 0 !important;
    padding: 18px 2px !important;
  }
  /* sub-menu (Shop categories) — indented, quiet, on a surface tint */
  #ast-hf-mobile-menu .sub-menu { background: var(--se-surface); border-radius: var(--se-radius-img); margin: 0 0 12px; padding: 4px 0; }
  body.ast-main-header-nav-open #ast-hf-mobile-menu > .menu-item-has-children > .sub-menu {
    display: block !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
  }
  #ast-hf-mobile-menu .sub-menu .menu-item + .menu-item { border-top: 1px solid var(--se-line); }
  #ast-hf-mobile-menu .sub-menu .menu-link {
    font-family: var(--se-font-body) !important; font-size: 0.92rem !important; font-weight: 500 !important;
    color: var(--se-ink-soft) !important; text-transform: uppercase !important;
    letter-spacing: var(--se-track-wide) !important; padding: 13px var(--se-s3) !important;
  }
  #ast-hf-mobile-menu .sub-menu .menu-link:hover { color: var(--se-clay) !important; }
  /* expand/collapse control */
  #ast-hf-mobile-menu .ast-menu-toggle { color: var(--se-ink) !important; padding: 16px !important; }
  #ast-hf-mobile-menu .menu-item.menu-item-has-children > .ast-menu-toggle { top: 6px; }
  /* trigger + close button — clean, no boxed border */
  .ast-mobile-menu-trigger-minimal, .menu-toggle, .ast-button-wrap .menu-toggle { border: 0 !important; }

  /* Mobile nav drawer → FULL-SCREEN overlay (was a dropdown that pushed the
     hero down, so the page bled below the menu). Header bar floats on top so
     the logo + close X stay usable. */
  .main-header-bar-navigation {
    position: fixed !important; left: 0 !important; right: auto !important;
    top: 111px !important; bottom: 0 !important; width: 84% !important; max-width: 340px !important;
    z-index: 90 !important; background: var(--se-bg) !important; overflow-y: auto !important;
    padding: 24px var(--se-s3) var(--se-s5) !important; margin: 0 !important;
    transform: translateX(-100%); transition: transform .32s cubic-bezier(.4,0,.2,1);
    visibility: hidden;
  }
  .main-header-bar-navigation.toggle-on {
    transform: translateX(0); visibility: visible;
    box-shadow: 2px 0 28px rgba(30,25,20,.18);
  }
  body.ast-main-header-nav-open .ast-mobile-header-content {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }
  /* tap-to-close overlay behind the side drawer */
  .sw-nav-overlay {
    position: fixed; top: 111px; left: 0; right: 0; bottom: 0; z-index: 89; background: rgba(20,16,12,.45);
    opacity: 0; visibility: hidden; transition: opacity .3s;
  }
  .sw-nav-overlay.is-on { opacity: 1; visibility: visible; }
  /* Mobile back-to-top: keep it available, tucked away from sticky ATC and consent UI. */
  #ast-scroll-top,
  .ast-scroll-to-top-wrapper,
  .ast-scroll-top-wrap,
  a.ast-scroll-top-icon,
  .ast-scroll-top {
    display: flex !important;
  }
  #ast-scroll-top,
  a.ast-scroll-top-icon,
  .ast-scroll-top {
    position: fixed !important;
    left: 14px !important;
    right: auto !important;
    bottom: calc(108px + env(safe-area-inset-bottom)) !important;
    width: 44px !important;
    height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    z-index: 10001 !important;
  }
  .site-header .ast-primary-header-bar,
  .site-header .main-header-bar,
  #masthead .ast-mobile-header-wrap { position: relative; z-index: 95; background: var(--se-bg);
    box-shadow: 0 3px 14px rgba(30,25,20,.12); }
  /* drawer + overlay top is set to the header's bottom via JS (soulful-mobile-nav.php),
     so the drawer starts BELOW the header instead of covering it. */

  /* Homepage section headers → consistently CENTERED (eyebrow + title + sub
     together). Fixes the centered-eyebrow-over-left-title "crooked" look; the
     flanking-hairline eyebrows read as intentional when centered. Body prose,
     craft column, and product cards keep their left alignment (not these classes). */
  /* Unify mobile alignment to LEFT (matches desktop + hero + craft/signature/
     steps) — one logic site-wide instead of centered headers over left bodies. */
  .home .ast-article-single .entry-content .se-eyebrow.has-text-align-center,
  .home .ast-article-single .entry-content .se-section-title,
  .home .ast-article-single .entry-content .se-section-sub,
  .home .ast-article-single .entry-content .se-creed-title,
  .home .ast-article-single .entry-content .se-creed-body,
  .home .ast-article-single .entry-content .se-ritual-title { text-align: left !important; }

  /* Footer link columns → 2-up grid (was one long monotonous stacked list) */
  .se-footer-cols { grid-template-columns: 1fr 1fr !important; gap: var(--se-s4) var(--se-s3) !important; }
}

/* ---------------- 24. CONTENT FAQ ACCORDION (core .wp-block-details) ---------------- */
/* Match the homepage FAQ look (clay +/- marker) instead of the browser ▸ triangle */
.ast-article-single .entry-content .wp-block-details { border-bottom-color: var(--se-line) !important; }
.ast-article-single .entry-content .wp-block-details > summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: var(--se-s2);
  font-family: var(--se-font-body); font-size: 1.05rem; color: var(--se-ink);
}
.ast-article-single .entry-content .wp-block-details > summary::-webkit-details-marker { display: none; }
.ast-article-single .entry-content .wp-block-details > summary::after {
  content: "+"; color: var(--se-clay); font-size: 1.5rem; font-weight: 300; line-height: 1; flex-shrink: 0;
}
.ast-article-single .entry-content .wp-block-details[open] > summary::after { content: "\2013"; }

/* ---------------- 25. HOMEPAGE — UNIFIED CONTENT BASELINE ---------------- */
/* All sections share ONE content width (1240px, = left/right 100 @1440), so
   titles, body, and grids align to a single left baseline. Trust bars + footer
   already use --se-maxw(1240). This pulls Shop-by-Intention & Featured (were
   1400/left20) and How-to-Choose (was 1000/left220) onto the same baseline. */
.home .ast-article-single .entry-content .se-section-title,
.home .ast-article-single .entry-content .se-section-sub,
.home .ast-article-single .entry-content > .wp-block-heading,
.home .ast-article-single .entry-content > .wp-block-paragraph,
.home .ast-article-single .entry-content .se-intent-grid,
.home .ast-article-single .entry-content .wp-block-woocommerce-product-best-sellers,
.home .ast-article-single .entry-content .se-ritual-steps > .se-eyebrow,
.home .ast-article-single .entry-content .se-ritual-steps > .se-ritual-title,
.home .ast-article-single .entry-content .se-ritual-steps > .se-steps-grid {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ---------------- 26. HOMEPAGE POLISH (CTAs, cards, eyebrows) ---------------- */

/* Hero CTAs — primary solid clay, secondary a true GHOST (outline) */
.se-hero .se-btn-ghost-light .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.7) !important;
  backdrop-filter: blur(1px);
}
.se-hero .se-btn-ghost-light .wp-block-button__link:hover {
  background: #fff !important; color: var(--se-ink) !important; border-color: #fff !important;
}

/* Featured Pieces (best-sellers block) — equal-ratio images, equal-height cards,
   serif titles (no underline), button anchored to the bottom */
.wp-block-woocommerce-product-best-sellers .wc-block-grid__products { align-items: stretch; }
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product {
  display: flex !important; flex-direction: column; text-align: left;
}
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-image {
  margin-bottom: var(--se-s2);
}
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-image img {
  aspect-ratio: 1 / 1; object-fit: cover; width: 100%; display: block;
  border-radius: var(--se-radius-img);
}
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-title {
  font-family: var(--se-font-display) !important; font-size: 1.18rem !important;
  font-weight: 500 !important; line-height: 1.25 !important; color: var(--se-ink) !important;
  text-decoration: none !important; min-height: 2.5em;
}
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-title:hover { color: var(--se-clay) !important; }
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-price {
  color: var(--se-ink-soft) !important; font-size: var(--se-t-small) !important; font-weight: 500;
}
/* push the add-to-cart row to the card bottom so all CTAs align */
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-add-to-cart { margin-top: auto; padding-top: var(--se-s2); }

/* Eyebrow consistency — footer column headings (EXPLORE/SUPPORT/SHOP BY
   INTENTION) match the body eyebrow convention: sans uppercase, letter-spaced.
   (The global h4{font-family:serif !important} was forcing them serif.) */
.se-footer-col h4 {
  font-family: var(--se-font-body) !important; font-weight: 600 !important;
}

/* ---------------- 27. HOMEPAGE — base tone, band rhythm, spacing ---------------- */
/* Kill the white "zebra": the homepage base was pure #fff (body), so untinted
   sections flashed white between the cream/sand/dark bands. Base is now brand
   cream; the tinted bands read as intentional rhythm, not stripes. */
body.home,
.home #page,
.home .site-content { background-color: var(--se-bg); }

/* Tighten inter-section rhythm — 120/100px spacers were creating disconnect */
.home .ast-article-single .entry-content .wp-block-spacer[style*="120px"] { height: 84px !important; }
.home .ast-article-single .entry-content .wp-block-spacer[style*="100px"] { height: 72px !important; }
/* Shop/Featured intro → grid gap was too large (48px spacer + heading margin) */
.home .ast-article-single .entry-content .wp-block-spacer[style*="48px"] { height: 30px !important; }

/* Signature dark band — compact image, aligned to the 1240 baseline, content
   vertically centered (was a 673px image bloating the band, content top-heavy) */
.se-signature .se-sig-grid {
  max-width: 1240px !important; margin-left: auto !important; margin-right: auto !important;
}
.se-sig-img {
  max-height: 430px; width: 100%; object-fit: cover;
  border-radius: var(--se-radius-img); display: block;
}

/* Complianz "Cookie Preferences" revoke tab — was overlapping right-side content
   and the back-to-top control; tuck it bottom-left, quiet. */
.cmplz-manage-consent.cmplz-show {
  left: 12px !important; right: auto !important; bottom: 12px !important;
  font-size: 0.72rem !important; padding: 7px 12px !important; opacity: 0.9;
}

/* ---------------- 28. HOMEPAGE — grid fill, card title, gap trims ---------------- */
/* The grid CONTAINERS already fill 1240 (flush with titles), but their INNER
   padding inset the cards off the title's left baseline: intent grid had 48px
   L/R, the Featured <ul> had 20px left (→ asymmetric). Zero both so card columns
   sit flush-left with the section titles, same width, same grid. */
.home .wp-block-columns.se-intent-grid { padding-left: 0 !important; padding-right: 0 !important; }
/* Featured grid was WooCommerce's default flexbox (cards flex:0 0 25%, link
   locked to a natural 294px and centered → outer images 8px off the title edge).
   Force a real 4-col CSS grid (like the intent grid) so cards stretch and the
   outer images/titles sit flush to the container; gap separates the cards. */
.home .wp-block-woocommerce-product-best-sellers .wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  column-gap: var(--se-s2) !important; row-gap: var(--se-s4) !important;
  padding: 0 !important; margin: 0 !important;
}
.home .wp-block-woocommerce-product-best-sellers .wc-block-grid__product {
  width: auto !important; max-width: none !important; flex: none !important;
  margin: 0 !important; border: 0 !important; padding: 0 !important;
  align-items: stretch !important; text-align: left !important;
}
.home .wp-block-woocommerce-product-best-sellers .wc-block-grid__product-link,
.home .wp-block-woocommerce-product-best-sellers .wc-block-grid__product-image {
  display: block !important; width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
}
.home .wp-block-woocommerce-product-best-sellers .wc-block-grid__product-image { margin-bottom: var(--se-s2) !important; }
/* forced 4-col grid must still stack on small screens */
@media (max-width: 768px) {
  .home .wp-block-woocommerce-product-best-sellers .wc-block-grid__products { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Featured card title still reserves 2 lines (§26 min-height) but bottom-aligns,
   so on 1-line cards the price hugs the title instead of floating below a gap. */
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-title {
  display: flex; flex-direction: column; justify-content: flex-end;
}

/* Product card titles — kill the default link underline; show it only on hover */
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-link { text-decoration: none !important; }
.wp-block-woocommerce-product-best-sellers .wc-block-grid__product-link:hover .wc-block-grid__product-title {
  text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}

/* Stray whitespace: Astra puts 60px margin top+bottom on #primary → an empty
   cream band between header and the full-bleed hero, and another below the
   value bar before the footer. Let the full-bleed bands meet header/footer. */
.home #primary, .home .content-area { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Value (trust) bar — trim the sand band's vertical bulk a touch */
.se-trust-bar .wp-block-column { padding-top: 2rem; padding-bottom: 2rem; }

/* ---------------- 29. MOBILE HOMEPAGE REFINEMENTS ---------------- */
@media (max-width: 768px) {
  /* P0 — footer top was staying 4-col (brand crushed to ~30px, newsletter
     overlapping). The grid-column spans forced implicit columns back; reset
     them and stack brand over newsletter, each full width. */
  .se-footer-top { grid-template-columns: 1fr !important; gap: var(--se-s4) !important; }
  .se-footer-brand, .se-footer-news { grid-column: auto !important; }
  .se-footer-blurb { max-width: none; }
  .se-footer-social a { flex-shrink: 0; }       /* keep perfect circles */
  .se-footer-form { max-width: 100%; }

  /* P1 — hero: dark gradient scrim at the bottom so the secondary ghost CTA and
     body copy stay legible over the bright sky; nudge focal point off the sky. */
  .se-hero.wp-block-cover { position: relative; }
  .se-hero.wp-block-cover > .wp-block-cover__inner-container { position: relative; z-index: 2; }
  .se-hero .wp-block-cover__image-background { object-position: 26% 42% !important; }
  .se-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 62%;
    background: linear-gradient(to top, rgba(20,16,11,0.62), rgba(20,16,11,0.18) 55%, transparent);
    z-index: 1; pointer-events: none;
  }
  /* secondary "Explore the Craft" ghost CTA was vanishing over the bright white
     clothing — give it a translucent dark fill + stronger border for legibility */
  .se-hero .se-btn-ghost-light .wp-block-button__link {
    background: rgba(20,16,11,0.42) !important;
    border-color: rgba(255,255,255,0.92) !important;
    backdrop-filter: blur(2px);
  }

  /* P3 — hero trust strip → clean 2×2, drop the inline bullet separators that
     were stranding at line ends. */
  .se-herotrust-in { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; }
  .se-herotrust-in span { text-align: center; }
  .se-herotrust-in span:not(:last-child)::after { display: none !important; }

  /* P2 — craft spec list: stack label over description (was a cramped 2-col,
     "Natural / stone / selection" broke word-per-line). */
  .se-craft-specs li { display: block; position: relative; padding-left: 1.3em; }
  .se-craft-specs li::before { position: absolute; left: 0; top: var(--se-s2); }
  .se-craft-specs li strong { margin-bottom: 3px; }
  .se-craft-text-col { padding: var(--se-s5) var(--se-s3); }

  /* P3 — tighten vertical rhythm one more notch (quote↔Shop, sub↔grid,
     specs↔Featured all felt loose on mobile) */
  .home .ast-article-single .entry-content .wp-block-spacer[style*="120px"] { height: 38px !important; }
  .home .ast-article-single .entry-content .wp-block-spacer[style*="100px"] { height: 34px !important; }
  .home .ast-article-single .entry-content .wp-block-spacer[style*="48px"]  { height: 14px !important; }
  /* step-to-step gap (3-col grid stacks on mobile) */
  .se-steps-grid { gap: var(--se-s3) !important; }
  .se-step-body { margin-bottom: 0; }

  /* P3 — signature dark band: frame the content tighter (was loose dark padding
     above/below the image and under the button) */
  .se-signature .wp-block-spacer { height: 26px !important; }
  .se-sig-grid { gap: var(--se-s3) !important; row-gap: var(--se-s3) !important; }
  .se-sig-img { max-height: 280px; }
}

/* ---------------- 32. SHOP — banner balance + ordering control ---------------- */
/* Banner ("Find Your Tool for Inner Peace"): the 60px top / 30px bottom padding
   pushed the content low with a big gap above. Balance it so it reads centered. */
.woocommerce-products-header .page-description > .wp-block-group {
  padding-top: 38px !important; padding-bottom: 34px !important;
}

/* "Default sorting" ordering <select>: was default slate-blue with the chevron
   flung to the far right of a fixed-width box. Match the filter selects — brand
   ink text, a custom brand chevron tucked beside the text, width = content. */
.woocommerce .woocommerce-ordering select.orderby {
  appearance: none; -webkit-appearance: none;
  width: auto; min-width: 0; max-width: 100%;
  font-family: var(--se-font-body); font-size: var(--se-t-small);
  color: var(--se-ink) !important;
  background-color: transparent;
  border: 1px solid var(--se-line); border-radius: var(--se-radius);
  padding: 8px 32px 8px 13px; cursor: pointer;
  transition: border-color var(--se-dur) var(--se-ease);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2317130d' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center;
}
.woocommerce .woocommerce-ordering select.orderby:hover { border-color: var(--se-ink); }

/* ---------------- 31. PDP — category dedup + tab accordion ---------------- */
/* The category already shows in the breadcrumb (and in the meta "Category:" row
   below), so Astra's standalone category eyebrow above the title is a 3rd repeat. */
.single-product-category { display: none !important; }

/* Mobile tab accordion (markup converted by soulful-pdp-tabs.php). Headers get a
   clear chevron affordance; each panel sits under its own header. */
@media (max-width: 768px) {
  .woocommerce-tabs.se-acc { border-bottom: 1px solid var(--se-line); }
  .se-acc .se-acc-head {
    display: flex; justify-content: space-between; align-items: center; gap: var(--se-s2);
    width: 100%; background: none; border: 0; border-top: 1px solid var(--se-line);
    padding: 1.05rem 0; cursor: pointer; text-align: left;
    font-family: var(--se-font-display); font-size: 1.18rem; font-weight: 500; color: var(--se-ink);
  }
  .se-acc .se-acc-chev {
    flex-shrink: 0; width: 9px; height: 9px;
    border-right: 1.5px solid var(--se-clay); border-bottom: 1.5px solid var(--se-clay);
    transform: rotate(45deg); transition: transform .2s var(--se-ease); margin-right: 3px;
  }
  .se-acc .se-acc-head.is-open .se-acc-chev { transform: rotate(-135deg); }
  .se-acc .se-acc-panel { padding: 0 0 1.4rem; }
  .se-acc .se-acc-panel::before { content: none; }

  /* Gallery: products have multiple images but only the main one was reachable on
     mobile. Surface flexslider's thumbnails as a horizontal strip under the main
     image (tapping a thumb swaps the main image) so all images are browsable. */
  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: flex !important; flex-wrap: nowrap; gap: 8px;
    list-style: none; position: static !important; width: 100% !important;
    margin: 12px 0 0 !important; padding: 0 !important;
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar { display: none; }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li {
    flex: 0 0 62px; margin: 0 !important; float: none !important; list-style: none;
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 62px !important; height: 62px; aspect-ratio: 1 / 1; object-fit: cover; display: block;
    border: 1px solid var(--se-line); border-radius: var(--se-radius-img);
    opacity: 0.55; cursor: pointer; transition: opacity var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover {
    opacity: 1; border-color: var(--se-ink);
  }
}

/* ---------------- 30. MOBILE SHOP / PLP REFINEMENTS ---------------- */
@media (max-width: 768px) {
  /* P1 — reserve the category eyebrow height so a 1-line vs 2-line category
     ("Calm & Clarity" vs "Grounding & Strength") no longer shifts the title /
     price / CTA out of line between the two columns. (Title reserve + CTA
     margin-top:auto are global in §5.) */
  .woocommerce ul.products li.product .ast-woo-product-category {
    min-height: 2.1em; margin-bottom: 0.3rem;
  }
  .woocommerce ul.products li.product .price { margin-bottom: var(--se-s2) !important; }

  /* P4 — filters: label ABOVE the field so all three boxes share one left edge
     and width (label-left made INTENTION/CRYSTAL/PRICE start at different x). */
  .se-plp-filter { flex-direction: column; align-items: stretch; gap: 0.3rem; }
  .se-plp-select { width: 100%; }

  /* Banner — "Find Your Tool for Inner Peace" sat low (60px top vs 30px bottom
     padding pushed content down). Balance it so the content reads centered. */
  .woocommerce-products-header .page-description > .wp-block-group {
    padding-top: 26px !important; padding-bottom: 24px !important;
  }
}

/* ---------------- 33. ACCENT SWEEP → brand clay ----------------
   Converge stray default-theme accents (Astra blue #045CB4, legacy brown #8B7355,
   slate-blue) onto --se-clay so every small accent widget matches the buttons. */

/* form focus rings — inputs, textareas, selects, qty, search, select2 */
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .input-text:focus,
input:focus, input[type="text"]:focus, input[type="email"]:focus,
input[type="search"]:focus, input[type="tel"]:focus, input[type="number"]:focus,
input[type="password"]:focus, textarea:focus, select:focus {
  border-color: var(--se-clay) !important;
  box-shadow: 0 0 0 2px rgba(168, 93, 64, 0.15) !important;
  outline: none !important;
}
.select2-container--default .select2-selection--single:focus,
.select2-container--open .select2-selection { border-color: var(--se-clay) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: var(--se-clay) !important; }

/* WooCommerce pagination — current page + hover */
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--se-clay) !important; color: #fff !important; border-color: var(--se-clay) !important;
}
/* generic page-numbers (blog/archives) */
.page-numbers.current { background: var(--se-clay) !important; color: #fff !important; border-color: var(--se-clay) !important; }
.page-numbers:hover { color: var(--se-clay) !important; }

/* breadcrumb links (were Astra blue) */
.woocommerce-breadcrumb a, .ast-breadcrumbs .ast-breadcrumbs-wrapper a, nav.woocommerce-breadcrumb a { color: var(--se-ink-soft) !important; }
.woocommerce-breadcrumb a:hover, .ast-breadcrumbs .ast-breadcrumbs-wrapper a:hover, nav.woocommerce-breadcrumb a:hover { color: var(--se-clay) !important; }

/* WooCommerce notices (cart/checkout/account) — accent border + icon */
.woocommerce-message, .woocommerce-info, .woocommerce-store-notice { border-top-color: var(--se-clay) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--se-clay) !important; }
.woocommerce-message a.button, .woocommerce-info a.button { color: var(--se-clay) !important; }

/* on-sale / accent text leaks, account nav active link */
.woocommerce-MyAccount-navigation li.is-active a { color: var(--se-clay) !important; box-shadow: inset 2px 0 0 var(--se-clay); }

/* ---------------- 13. RESPONSIVE ---------------- */
@media (max-width: 768px) {
  /* Keep the shipping incentive on mobile (was hidden) — show the short variant,
     left of the currency selector. */
  .sw-tb-full { display: none; }
  .sw-tb-short { display: inline; }
  .sw-topbar { font-size: 0.66rem; }
  .sw-topbar-inner { justify-content: center; padding: 0 12px; }
  .sw-topbar-right { right: 12px; }
  .sw-topbar-right select { padding: 2px 18px 2px 6px; }
  .se-sig-grid { flex-wrap: wrap; }
  .se-sig-img { aspect-ratio: 3/2; margin-bottom: var(--se-s4); }

  /* Shop by Intention — 3-up is far too cramped on phones (text wraps mid-word).
     Go 2-up so each card is ~50% wide and the names stay on one line. */
  .wp-block-columns.se-intent-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px !important;
  }
  .se-intent-name { font-size: 1.15rem; }
  .se-intent-overlay { padding: var(--se-s3) var(--se-s2); }

  /* Hero — keep eyebrow + H1 + sub + CTA inside the first screen on phones */
  .se-hero { min-height: 80vh; }
  .se-hero .wp-block-spacer { height: 30px !important; }
  .se-hero-cta { gap: 0.6rem; }
  .se-hero-cta .wp-block-button { width: 100%; }
  .se-hero-cta .wp-block-button__link { display: block; text-align: center; }
  .se-herotrust-in { gap: 0.7rem 1.5rem; padding: 12px var(--se-s2); }
}
@media (max-width: 880px) {
  :root { --se-t-body: 1rem; }
  .woocommerce ul.products li.product { padding-bottom: var(--se-s2); }
}

/* ── Our Story page imagery (2026-06-19) ── */
.se-os-hero { margin: 0 0 var(--se-s5); }
.se-os-hero img,
.se-os-band img,
.se-gg-band img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--se-radius-img); display: block; }
.se-os-band { margin: var(--se-s6) 0; }
.se-gg-band { margin: var(--se-s5) 0; }
/* Intention Guide: vertical card images + color image */
.entry-content .se-ig-cardimg { max-width: none !important; width: 100% !important; margin: 0 0 var(--se-s3) !important; }
.se-ig-cardimg img { width: 100% !important; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--se-radius-img); display: block; }
.entry-content .se-ig-colorimg { max-width: none !important; width: 100% !important; text-align: center !important; margin: var(--se-s4) 0 var(--se-s5) !important; }
.se-ig-colorimg img { display: inline-block !important; width: 380px !important; max-width: 100% !important; height: auto; border-radius: var(--se-radius-img); }

/* ── Signature page fixes (2026-06-19) ── */
/* #1 dark hero flush to header — kill the 84px white gap above the topbar */
.page-id-26686 .content-area.primary { margin-top: 0 !important; }
.page-id-26686 .site-main { margin-top: 0 !important; padding-top: 0 !important; }
.page-id-26686 .entry-content { margin-top: 0 !important; padding-top: 0 !important; }
/* #2 hero text legibility over the light product image */
.se-sigp-hero .se-sigp-sub { color: #fff !important; text-shadow: 0 1px 10px rgba(0,0,0,.6); }
.se-sigp-hero .se-sigp-h1,
.se-sigp-hero .se-eyebrow-light { text-shadow: 0 1px 12px rgba(0,0,0,.45); }

/* Featured "Curated" badge (2026-06-20) */
.se-curated-badge {
  display: inline-block; font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--se-bronze); border: 1px solid var(--se-bronze); background: rgba(250, 246, 239, 0.9);
  padding: 0.3em 0.75em; border-radius: 999px; line-height: 1; white-space: nowrap; font-weight: 500;
}
ul.products li.product { position: relative; }
.se-curated-badge--loop { position: absolute; top: 12px; left: 12px; z-index: 3; }
.se-curated-badge--single { margin: 0 0 0.7rem; }

/* Footer compliance disclaimer (moved from homepage se-creed, 2026-06-20) */
.se-footer-disclaimer-bar { background: var(--se-bg); padding: 1rem 1.2rem 1.4rem; text-align: center; }
.se-footer-disclaimer { display: block; max-width: 620px; margin: 0 auto; font-size: 0.72rem; line-height: 1.5; color: var(--se-ink-soft); opacity: 0.72; }

/* Anti-FOUC for the variation form (2026-06-21): hide it until the Style
   swatches are built (mu-plugin adds .sw-ready), so users never see the raw
   <select> flash into buttons. The animation is a SAFETY FALLBACK: it reveals
   the form after 1.5s even if the JS never runs, so add-to-cart can never get
   stuck hidden. .sw-ready cancels the wait and shows it immediately. */
.single-product form.variations_form { visibility: hidden; animation: sw-fouc-reveal 0s linear 1.5s forwards; }
.single-product form.variations_form.sw-ready { visibility: visible; animation: none; }
@keyframes sw-fouc-reveal { to { visibility: visible; } }
.entry-content .se-os-figure,
.se-os-figure.wp-block-image {
  max-width: none !important;
  width: 100% !important;
  text-align: center !important;
  margin-top: var(--se-s5) !important;
  margin-bottom: var(--se-s5) !important;
}
.se-os-figure img { display: inline-block !important; width: 560px !important; max-width: 100% !important; height: auto; border-radius: var(--se-radius-img); }
@media (max-width: 768px) {
  .se-os-figure img { width: 100% !important; }
  .se-os-band { margin: var(--se-s5) 0; }
}

/* ===== §22 Social Share Buttons (soulful-social-share.php) ===== */
.se-share{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:2.5rem 0 1rem;padding-top:1.6rem;border-top:1px solid var(--se-line);}
.se-share-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--se-ink-soft);margin-right:.35rem;font-weight:600;}
.se-share-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--se-line);color:var(--se-ink-soft);background:transparent;cursor:pointer;padding:0;position:relative;transition:background .2s,color .2s,border-color .2s,transform .2s;}
.se-share-btn:hover{background:var(--se-ink);color:var(--se-surface);border-color:var(--se-ink);transform:translateY(-2px);}
.se-s-copy.se-copied{background:var(--se-bronze);color:#fff;border-color:var(--se-bronze);}
.se-s-copy.se-copied::after{content:"Copied";position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);font-size:.62rem;letter-spacing:.06em;color:var(--se-bronze);white-space:nowrap;}
@media(max-width:600px){.se-share{gap:.4rem;}.se-share-btn{width:36px;height:36px;}}

/* ===== §23 Mobile Sticky Add-to-Cart Bar (qty + Add to Cart 常驻底部) ===== */
@media (max-width: 768px) {
  body.single-product { padding-bottom: 90px !important; }
  .single-product .woocommerce-variation-add-to-cart,
  body.single-product div.product form.cart:not(.variations_form) {
    position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 50;
    background: #fff; margin: 0 !important;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)) !important;
    box-shadow: 0 -3px 16px rgba(30,25,20,.10);
    border-top: 1px solid var(--se-line);
    display: flex !important; flex-wrap: wrap; gap: 2px 10px; align-items: center;
    padding-top: 8px !important;
  }
  .single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button,
  body.single-product div.product form.cart:not(.variations_form) .single_add_to_cart_button {
    flex: 1 1 auto; margin: 0 !important; min-width: 0;
    background: var(--se-clay) !important; color: #fff !important;
    border-color: var(--se-clay) !important;
    font-weight: 600 !important; opacity: 1 !important;
    white-space: nowrap; padding-left: 10px !important; padding-right: 10px !important; font-size: .92rem !important;
  }
  .single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
  body.single-product div.product form.cart:not(.variations_form) .single_add_to_cart_button:hover {
    background: var(--se-clay-deep) !important;
    border-color: var(--se-clay-deep) !important;
    color: #fff !important;
  }
  /* price label in sticky bar — follows variation, current price only */
  .single-product .woocommerce-variation-add-to-cart .sw-bar-price {
    flex: 0 0 100%; font-weight: 700; color: var(--se-ink);
    white-space: nowrap; font-size: 1.02rem; line-height: 1.05;
    text-align: right; margin: 0;
  }
  .single-product .sw-bar-price .amount { font-size: 1.1rem; }
  .single-product .sw-bar-price del { display: none; }
  .single-product .sw-bar-price ins { text-decoration: none; }
  .single-product .woocommerce-variation-add-to-cart .quantity,
  body.single-product div.product form.cart .quantity { flex: 0 0 auto; margin: 0 !important; }
  .single-product .woocommerce-variation-add-to-cart .woocommerce-variation-price,
  .single-product .woocommerce-variation-add-to-cart .woocommerce-variation-availability { display: none !important; }
  .single-product .sw-style-nudge { position: fixed !important; bottom: 82px; left: 0; right: 0; z-index: 51; margin: 0; text-align: center; }
}


/* Homepage handpicked products use the same formal card system as featured products. */
.home .ast-article-single .entry-content .wp-block-woocommerce-handpicked-products {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__products {
  align-items: stretch;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product {
  display: flex !important;
  flex-direction: column;
  text-align: left;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-image {
  margin-bottom: var(--se-s2);
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-image img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  display: block;
  border-radius: var(--se-radius-img);
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-title {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  font-family: var(--se-font-display) !important;
  font-size: 1.18rem !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  color: var(--se-ink) !important;
  text-decoration: none !important;
  min-height: 2.5em;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-title:hover {
  color: var(--se-clay) !important;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-price {
  color: var(--se-ink-soft) !important;
  font-size: var(--se-t-small) !important;
  font-weight: 500;
}
.wp-block-woocommerce-handpicked-products .wc-block-grid__product-add-to-cart {
  margin-top: auto;
  padding-top: var(--se-s2);
}
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  column-gap: var(--se-s2) !important;
  row-gap: var(--se-s4) !important;
  padding: 0 !important;
  margin: 0 !important;
}
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__product {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  margin: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
  text-align: left !important;
}
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__product-link,
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__product-image {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__product-link {
  text-decoration: none !important;
}
.home .wp-block-woocommerce-handpicked-products .wc-block-grid__product-link:hover .wc-block-grid__product-title {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
@media (max-width: 768px) {
  .home .wp-block-woocommerce-handpicked-products .wc-block-grid__products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}




/* Homepage dynamic Shop by Ritual: generated from current available intention facets. */
.se-dynamic-intentions {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.se-dynamic-intentions-head {
  max-width: 760px;
  margin: 0 auto var(--se-s4);
  text-align: center;
}
.se-dynamic-intentions-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
}
.se-dynamic-intention-card {
  position: relative;
  display: block;
  min-height: 330px;
  overflow: hidden;
  background: var(--se-bg-alt);
  color: var(--se-bone);
  text-decoration: none;
}
.se-dynamic-intention-card img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  object-fit: cover;
  display: block;
  transition: transform var(--se-dur) var(--se-ease);
}
.se-dynamic-intention-card:hover img { transform: scale(1.035); }
.se-dynamic-intention-overlay {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: var(--se-s3);
  background: linear-gradient(0deg, rgba(29, 26, 23, 0.78), rgba(29, 26, 23, 0));
}
@media (max-width: 1180px) {
  .se-dynamic-intentions-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .se-dynamic-intentions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .se-dynamic-intentions-grid { grid-template-columns: 1fr; }
  .se-dynamic-intention-card,
  .se-dynamic-intention-card img { min-height: 260px; }
  .se-dynamic-intention-overlay { padding: var(--se-s2); }
}


/* Homepage Natural Materials band: establishes the broader brand world beyond crystal. */
.se-materials {
  background: var(--se-surface);
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
  padding: var(--se-s6) var(--se-s3);
}
.se-materials-inner {
  max-width: 1240px;
  margin: 0 auto;
}
.se-materials-title {
  font-family: var(--se-font-display);
  font-size: var(--se-t-h1);
  font-weight: 500;
  color: var(--se-ink);
  margin: var(--se-s1) 0 var(--se-s2);
}
.se-materials-intro {
  max-width: 760px;
  color: var(--se-ink-soft);
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 var(--se-s5);
}
.se-materials-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid var(--se-line);
  border-left: 1px solid var(--se-line);
}
.se-material-tile {
  display: flex;
  min-height: 190px;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--se-s3);
  padding: var(--se-s3);
  background: rgba(244, 239, 230, 0.54);
  border-right: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
  transition: background var(--se-dur) var(--se-ease), color var(--se-dur) var(--se-ease);
}
.se-material-tile:hover {
  background: var(--se-bg-alt);
  color: var(--se-ink);
}
.se-material-name {
  font-family: var(--se-font-display);
  font-size: 1.45rem;
  line-height: 1.1;
  color: var(--se-ink);
}
.se-material-copy {
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.6;
}
@media (max-width: 1024px) {
  .se-materials-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .se-materials { padding: var(--se-s5) var(--se-s2); }
  .se-materials-grid { grid-template-columns: repeat(2, 1fr); }
  .se-material-tile { min-height: 160px; padding: var(--se-s2); }
  .se-material-name { font-size: 1.25rem; }
}


/* Homepage Shop by Piece: aligns product-form shopping with the header navigation. */
.se-piece-shop {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.se-piece-shop-head {
  max-width: 760px;
  margin-bottom: var(--se-s4);
}
.se-piece-shop-title {
  font-family: var(--se-font-display);
  font-size: var(--se-t-h1);
  font-weight: 500;
  color: var(--se-ink);
  margin: var(--se-s1) 0 var(--se-s2);
}
.se-piece-shop-intro {
  color: var(--se-ink-soft);
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0;
}
.se-piece-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
}
.se-piece-card {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--se-s3);
  background: var(--se-bg-alt);
  border: 1px solid rgba(216, 204, 184, 0.72);
  color: var(--se-ink);
  transition: background var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease), transform var(--se-dur) var(--se-ease);
}
.se-piece-card:hover {
  background: var(--se-surface);
  border-color: var(--se-ink-soft);
  transform: translateY(-2px);
}
.se-piece-card span {
  font-family: var(--se-font-display);
  font-size: 1.35rem;
  line-height: 1.1;
}
.se-piece-card small {
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.55;
}
@media (max-width: 1100px) {
  .se-piece-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .se-piece-grid { grid-template-columns: repeat(2, 1fr); }
  .se-piece-card { min-height: 165px; padding: var(--se-s2); }
  .se-piece-card span { font-size: 1.18rem; }
}


/* Footer collection links: SEO crawl paths presented as a quiet brand utility band. */
.se-footer-collections {
  background: var(--se-surface);
  border-top: 1px solid var(--se-line);
  padding: var(--se-s5) var(--se-s3);
}
.se-footer-collections .se-fc-inner {
  max-width: var(--se-maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--se-s5);
}
.se-footer-collections .se-fc-block h4 {
  font-family: var(--se-font-body) !important;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-ink);
  font-weight: 600;
  margin: 0 0 var(--se-s3);
}
.se-footer-collections .se-fc-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
}
.se-footer-collections .se-fc-links a {
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.4;
  text-decoration: none;
}
.se-footer-collections .se-fc-links a:hover {
  color: var(--se-clay);
}
@media (max-width: 768px) {
  .se-footer-collections { padding: var(--se-s4) var(--se-s2); }
  .se-footer-collections .se-fc-inner { grid-template-columns: 1fr; gap: var(--se-s4); }
}

/* ---------------- 33. COLLECTION PAGES — GUIDE + FAQ ---------------- */
.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
  max-width: 860px;
  margin: 0 auto var(--se-s4);
  text-align: center;
  color: var(--se-ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}
.woocommerce-products-header .woocommerce-products-header__title.page-title {
  font-family: var(--se-font-display);
  font-size: clamp(2.45rem, 5vw, 4.4rem);
  line-height: 1.02;
  font-weight: 500;
  color: var(--se-ink);
  text-align: center;
  margin: var(--se-s5) auto var(--se-s2);
  max-width: 980px;
}
.se-collection-guide {
  max-width: 1240px;
  margin: var(--se-s5) auto var(--se-s6);
  padding: var(--se-s5);
  background: var(--se-surface);
  border: 1px solid var(--se-line);
  border-radius: var(--se-radius);
}
.se-collection-guide-head {
  max-width: 760px;
  margin: 0 auto var(--se-s4);
  text-align: center;
}
.se-collection-eyebrow {
  margin: 0 0 var(--se-s1);
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-sig);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.se-collection-guide h2,
.se-collection-faq h2 {
  margin: 0;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 3.2vw, 3.1rem);
  line-height: 1.08;
  font-weight: 500;
  color: var(--se-ink);
}
.se-collection-guide-head > p:not(.se-collection-eyebrow) {
  margin: var(--se-s2) auto 0;
  color: var(--se-ink-soft);
  font-size: 1rem;
  line-height: 1.78;
}
.se-mobile-products-jump {
  display: none;
}
.se-products-anchor {
  display: block;
  height: 0;
  scroll-margin-top: 84px;
}
.se-collection-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--se-s2);
}
.se-collection-point {
  min-height: 150px;
  padding: var(--se-s3);
  background: var(--se-bg);
  border: 1px solid var(--se-line);
  border-radius: var(--se-radius);
}
.se-collection-point strong {
  display: block;
  margin-bottom: .55rem;
  font-family: var(--se-font-display);
  font-size: 1.35rem;
  line-height: 1.15;
  font-weight: 500;
  color: var(--se-ink);
}
.se-collection-point span {
  display: block;
  color: var(--se-ink-soft);
  font-size: .93rem;
  line-height: 1.65;
}
.se-collection-faq {
  max-width: 980px;
  margin: var(--se-s6) auto;
  padding: 0 var(--se-s3);
}
.se-collection-faq > .se-collection-eyebrow,
.se-collection-faq > h2 {
  text-align: center;
}
.se-collection-faq > h2 { margin-bottom: var(--se-s4); }
.se-collection-faq details {
  border-top: 1px solid var(--se-line);
  padding: var(--se-s2) 0;
}
.se-collection-faq details:last-child { border-bottom: 1px solid var(--se-line); }
.se-collection-faq summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--se-s2);
  font-weight: 650;
  color: var(--se-ink);
}
.se-collection-faq summary::-webkit-details-marker { display: none; }
.se-collection-faq summary::after {
  content: "+";
  flex: 0 0 auto;
  color: var(--se-clay);
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1;
}
.se-collection-faq details[open] summary::after { content: "\2013"; }
.se-collection-faq p {
  margin: var(--se-s2) 0 0;
  color: var(--se-ink-soft);
  line-height: 1.75;
}
@media (max-width: 880px) {
  .se-collection-guide { margin: var(--se-s4) var(--se-s2) var(--se-s5); padding: var(--se-s4) var(--se-s3); }
  .se-collection-points { grid-template-columns: 1fr; }
  .se-collection-point { min-height: 0; }
  .woocommerce-products-header .woocommerce-products-header__title.page-title { margin-top: var(--se-s4); }
}

@media (max-width: 600px) {
  .se-collection-guide {
    margin: var(--se-s3) var(--se-s2) var(--se-s4);
    padding: var(--se-s3);
  }
  .se-collection-guide-head {
    margin-bottom: var(--se-s3);
    text-align: left;
  }
  .se-collection-guide h2 {
    font-size: 1.75rem;
    line-height: 1.12;
  }
  .se-collection-guide-head > p:not(.se-collection-eyebrow) {
    margin-top: var(--se-s2);
    font-size: 0.92rem;
    line-height: 1.58;
  }
  .se-mobile-products-jump {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin-top: var(--se-s3);
    padding: 0 1rem;
    background: var(--se-clay);
    color: #fff;
    border-radius: 0;
    font-size: var(--se-t-micro);
    font-weight: 750;
    letter-spacing: var(--se-track-label);
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
  }
  .se-collection-points {
    gap: .7rem;
  }
  .se-collection-point {
    padding: .9rem 1rem;
  }
  .se-collection-point strong {
    margin-bottom: .35rem;
    font-size: 1.12rem;
  }
  .se-collection-point span {
    font-size: .86rem;
    line-height: 1.48;
  }
}


/* ---------------- 34. PDP — premium trust, review, care and FAQ polish ---------------- */
.single-product .soulful-new-piece {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--se-ink-soft);
}
.single-product .soulful-review-note {
  margin: 0 0 var(--se-s3);
  padding: var(--se-s2) var(--se-s3);
  background: var(--se-surface);
  border-left: 3px solid var(--se-clay);
  color: var(--se-ink-soft);
  font-size: .92rem;
  line-height: 1.6;
}
.single-product .soulful-trust-badges {
  margin-top: var(--se-s3) !important;
  border-top: 1px solid var(--se-line) !important;
  padding-top: var(--se-s3) !important;
}
.single-product .soulful-trust-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 8px !important;
}
.single-product .trust-item {
  min-height: 78px !important;
  padding: 12px 8px !important;
  background: var(--se-surface) !important;
  border: 1px solid var(--se-line) !important;
  border-radius: var(--se-radius) !important;
}
.single-product .trust-text {
  font-size: .72rem !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: var(--se-ink-soft) !important;
}
.single-product .se-pdp-tab-copy {
  max-width: 820px;
  color: var(--se-ink-soft);
  line-height: 1.75;
}
.single-product .se-pdp-tab-copy h2 {
  margin: 0 0 var(--se-s3);
  font-family: var(--se-font-display);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.12;
  color: var(--se-ink);
  font-weight: 500;
}
.single-product .se-pdp-tab-copy ul {
  margin: var(--se-s3) 0;
  padding-left: 1.1rem;
}
.single-product .se-pdp-tab-copy li { margin: .45rem 0; }
.single-product .se-pdp-faq-list details {
  border-top: 1px solid var(--se-line);
  padding: var(--se-s2) 0;
}
.single-product .se-pdp-faq-list details:last-child { border-bottom: 1px solid var(--se-line); }
.single-product .se-pdp-faq-list summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: var(--se-s2);
  color: var(--se-ink);
  font-weight: 650;
}
.single-product .se-pdp-faq-list summary::-webkit-details-marker { display: none; }
.single-product .se-pdp-faq-list summary::after {
  content: "+";
  color: var(--se-clay);
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 300;
}
.single-product .se-pdp-faq-list details[open] summary::after { content: "\2013"; }
.single-product .se-pdp-faq-list p { margin: var(--se-s2) 0 0; }
@media (max-width: 768px) {
  .single-product .soulful-trust-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .single-product .trust-item { min-height: 70px !important; }
}

/* ---------------- 35. PDP — continue your ritual links ---------------- */
.single-product .se-continue-ritual {
  max-width: 1240px;
  margin: var(--se-s6) auto;
  padding: var(--se-s5) var(--se-s3);
  border-top: 1px solid var(--se-line);
}
.single-product .se-continue-head {
  max-width: 720px;
  margin: 0 auto var(--se-s4);
  text-align: center;
}
.single-product .se-continue-head h2 {
  margin: 0;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 3.2vw, 3rem);
  font-weight: 500;
  line-height: 1.1;
  color: var(--se-ink);
}
.single-product .se-continue-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--se-s2);
}
.single-product .se-continue-card {
  display: flex;
  flex-direction: column;
  min-height: 190px;
  padding: var(--se-s3);
  background: var(--se-surface);
  border: 1px solid var(--se-line);
  border-radius: var(--se-radius);
  text-decoration: none !important;
  transition: border-color var(--se-dur) var(--se-ease), transform var(--se-dur) var(--se-ease), background var(--se-dur) var(--se-ease);
}
.single-product .se-continue-card:hover {
  border-color: var(--se-clay);
  background: var(--se-bg);
  transform: translateY(-2px);
}
.single-product .se-continue-card span {
  margin-bottom: var(--se-s2);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-sig);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.single-product .se-continue-card strong {
  font-family: var(--se-font-display);
  font-size: 1.55rem;
  line-height: 1.12;
  font-weight: 500;
  color: var(--se-ink);
}
.single-product .se-continue-card small {
  display: block;
  margin-top: auto;
  padding-top: var(--se-s3);
  color: var(--se-ink-soft);
  font-size: .92rem;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .single-product .se-continue-ritual { margin: var(--se-s5) auto; padding: var(--se-s4) var(--se-s2); }
  .single-product .se-continue-grid { grid-template-columns: 1fr; }
  .single-product .se-continue-card { min-height: 150px; }
}

/* PDP related products heading polish */
.single-product section.related.products {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--se-s3);
  padding-right: var(--se-s3);
}
.single-product section.related.products > h2 {
  margin: var(--se-s5) 0 var(--se-s4);
  text-align: center;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1.1;
  font-weight: 500;
  color: var(--se-ink);
}

/* ---------------- 39. JOURNAL — ARCHIVE + ARTICLE COMMERCE ---------------- */
.blog .site-content,
.archive.category .site-content {
  background: linear-gradient(180deg, #fbf8f1 0%, #fffdf8 34%, #ffffff 100%);
}
.blog .ast-container,
.archive.category .ast-container {
  max-width: 1180px;
}
.blog .ast-archive-description,
.archive.category .ast-archive-description {
  display: none;
}
.se-blog-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(24px, 4vw, 56px);
  align-items: end;
  margin: clamp(28px, 5vw, 64px) 0 18px;
  padding: clamp(28px, 4vw, 52px) 0 clamp(22px, 3vw, 34px);
  border-bottom: 1px solid var(--se-line);
}
.se-blog-eyebrow,
.se-blog-aside__label,
.se-blog-shop-paths span,
.se-article-shop__head span {
  display: block;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 600;
}
.se-blog-title {
  margin: 10px 0 14px !important;
  max-width: 760px;
  font-family: var(--se-font-display) !important;
  font-size: clamp(2.7rem, 5.2vw, 5.7rem) !important;
  line-height: .92 !important;
  color: var(--se-ink) !important;
  letter-spacing: 0 !important;
}
.se-blog-intro {
  max-width: 720px;
  margin: 0;
  color: var(--se-ink-soft);
  font-size: clamp(1rem, 1.6vw, 1.16rem);
  line-height: 1.75;
}
.se-blog-hero__aside {
  padding: 22px 0 4px 24px;
  border-left: 1px solid var(--se-line);
}
.se-blog-hero__aside a {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid rgba(44, 38, 31, .1);
  color: var(--se-ink) !important;
  font-family: var(--se-font-display);
  font-size: 1.2rem;
  line-height: 1.2;
  text-decoration: none !important;
}
.se-blog-hero__aside a:hover { color: var(--se-clay) !important; }
.se-blog-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 24px;
}
.se-blog-cats a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid var(--se-line);
  background: rgba(255,255,255,.68);
  color: var(--se-ink-soft) !important;
  font-size: var(--se-t-small);
  text-decoration: none !important;
}
.se-blog-cats a:hover,
.se-blog-cats a.is-current {
  background: var(--se-ink);
  border-color: var(--se-ink);
  color: var(--se-bone) !important;
}
.se-blog-shop-paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 clamp(28px, 5vw, 58px);
  background: var(--se-line);
  border: 1px solid var(--se-line);
}
.se-blog-shop-paths a {
  min-height: 132px;
  padding: 22px;
  background: rgba(255,255,255,.82);
  color: var(--se-ink) !important;
  text-decoration: none !important;
}
.se-blog-shop-paths strong {
  display: block;
  margin-top: 12px;
  font-family: var(--se-font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  font-weight: 500;
  line-height: 1.16;
}
.se-blog-shop-paths a:hover { background: #f7efe2; }
.blog .ast-row,
.archive.category .ast-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.blog .ast-article-post,
.archive.category .ast-article-post {
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--se-line) !important;
  background: rgba(255,255,255,.9) !important;
}
.blog .ast-article-inner,
.archive.category .ast-article-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
}
.blog .post-content,
.archive.category .post-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px !important;
}
.blog .entry-title,
.archive.category .entry-title {
  margin: 10px 0 10px !important;
  font-size: clamp(1.35rem, 2vw, 1.78rem) !important;
  line-height: 1.08 !important;
}
.blog .entry-title a,
.archive.category .entry-title a {
  color: var(--se-ink) !important;
  text-decoration: none !important;
}
.blog .entry-title a:hover,
.archive.category .entry-title a:hover { color: var(--se-clay) !important; }
.blog .entry-content,
.archive.category .entry-content,
.blog .entry-content p,
.archive.category .entry-content p {
  color: var(--se-ink-soft);
  font-size: .94rem;
  line-height: 1.68;
}
.blog .read-more,
.archive.category .read-more,
.blog .ast-excerpt-container + .read-more,
.archive.category .ast-excerpt-container + .read-more {
  margin-top: auto;
}
.blog .read-more a,
.archive.category .read-more a,
.blog .ast-button,
.archive.category .ast-button {
  color: var(--se-clay) !important;
  font-size: var(--se-t-micro) !important;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  font-weight: 700;
}
.se-article-shop {
  margin-top: clamp(36px, 5vw, 64px);
  padding-top: clamp(28px, 4vw, 44px);
  border-top: 1px solid var(--se-line);
}
.se-article-shop__head {
  text-align: center;
  margin-bottom: 24px;
}
.se-article-shop__head h2 {
  margin: 8px 0 0 !important;
  font-family: var(--se-font-display) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
  line-height: 1 !important;
}
.se-article-shop__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.se-article-shop__item {
  display: block;
  padding: 12px 12px 16px;
  border: 1px solid var(--se-line);
  background: #fffdf8;
  color: var(--se-ink) !important;
  text-align: center;
  text-decoration: none !important;
}
.se-article-shop__media {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--se-bg-alt);
}
.se-article-shop__media img,
.se-article-shop__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
.se-article-shop__title {
  margin-top: 12px;
  font-family: var(--se-font-display);
  font-size: 1.03rem;
  line-height: 1.2;
}
.se-article-shop__price {
  margin-top: 6px;
  color: var(--se-bronze);
  font-weight: 700;
  font-size: .9rem;
}
@media (max-width: 900px) {
  .se-blog-hero { grid-template-columns: 1fr; }
  .se-blog-hero__aside { padding: 0; border-left: 0; }
  .se-blog-shop-paths,
  .blog .ast-row,
  .archive.category .ast-row { grid-template-columns: 1fr 1fr; }
  .se-article-shop__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .se-blog-title { font-size: 3rem !important; }
  .se-blog-shop-paths,
  .blog .ast-row,
  .archive.category .ast-row,
  .se-article-shop__grid { grid-template-columns: 1fr; }
  .se-blog-cats { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .se-blog-cats a { white-space: nowrap; }
}

/* ---------------- 40. JOURNAL — SINGLE ARTICLE EDITORIAL ---------------- */
.single-post .site-content {
  background: linear-gradient(180deg, #fbf8f1 0%, #fffdf8 22%, #ffffff 58%);
}
.single-post .ast-container {
  max-width: 980px;
}
.single-post .ast-article-single {
  background: transparent !important;
  border: 0 !important;
  padding-top: clamp(28px, 5vw, 62px) !important;
}
.single-post .entry-header {
  max-width: 820px;
  margin: 0 auto clamp(18px, 3vw, 30px) !important;
  text-align: center;
}
.single-post .entry-title {
  max-width: 820px;
  margin: 0 auto 16px !important;
  font-family: var(--se-font-display) !important;
  font-size: clamp(2.6rem, 5vw, 5.2rem) !important;
  line-height: .94 !important;
  letter-spacing: 0 !important;
  color: var(--se-ink) !important;
}
.single-post .entry-meta,
.single-post .entry-meta * {
  color: var(--se-ink-soft) !important;
  font-size: var(--se-t-micro) !important;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
}
.se-single-journal {
  max-width: 740px;
  margin: 0 auto clamp(28px, 5vw, 52px);
  padding: 20px 0 24px;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
  text-align: center;
}
.se-single-journal__meta {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-bottom: 12px;
}
.se-single-journal__meta a,
.se-single-journal__meta span {
  color: var(--se-bronze) !important;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  font-weight: 700;
  text-decoration: none !important;
}
.se-single-journal__meta a:hover { color: var(--se-clay) !important; }
.se-single-journal p {
  margin: 0 auto;
  max-width: 680px;
  color: var(--se-ink-soft);
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.72;
}
.single-post .entry-content {
  max-width: 740px;
  margin: 0 auto !important;
  color: var(--se-ink);
}
.single-post .entry-content > p,
.single-post .entry-content > ul,
.single-post .entry-content > ol,
.single-post .entry-content > blockquote,
.single-post .entry-content > h2,
.single-post .entry-content > h3,
.single-post .entry-content > h4 {
  max-width: 740px !important;
}
.single-post .entry-content p,
.single-post .entry-content li {
  font-size: 1.02rem;
  line-height: 1.86;
  color: var(--se-ink-soft);
}
.single-post .entry-content h2 {
  margin-top: clamp(42px, 6vw, 68px) !important;
  margin-bottom: 14px !important;
  font-family: var(--se-font-display) !important;
  font-size: clamp(2rem, 3.5vw, 3.2rem) !important;
  line-height: 1.02 !important;
  color: var(--se-ink) !important;
}
.single-post .entry-content h3 {
  margin-top: 30px !important;
  margin-bottom: 8px !important;
  font-family: var(--se-font-body) !important;
  font-size: .82rem !important;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze) !important;
}
.single-post .entry-content blockquote {
  margin: clamp(30px, 5vw, 52px) auto !important;
  padding: 26px 30px !important;
  border-left: 2px solid var(--se-clay) !important;
  background: #fbf6ed;
}
.single-post .entry-content blockquote p {
  color: var(--se-ink) !important;
  font-family: var(--se-font-display);
  font-size: 1.45rem;
  line-height: 1.35;
}
.single-post .entry-content a:not(.button):not(.wp-block-button__link):not(.se-article-shop__item) {
  color: var(--se-ink) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(168, 93, 64, .45);
  box-shadow: inset 0 -0.22em 0 rgba(168, 93, 64, .12);
}
.single-post .entry-content a:not(.button):not(.wp-block-button__link):not(.se-article-shop__item):hover {
  color: var(--se-clay) !important;
  border-bottom-color: var(--se-clay);
}
.single-post .entry-content ul,
.single-post .entry-content ol {
  padding-left: 1.3rem;
}
.single-post .entry-content li + li { margin-top: .44rem; }
.single-post .entry-content > p:empty { display: none; }
.single-post .se-share {
  justify-content: center;
  max-width: 740px;
  margin: clamp(34px, 5vw, 56px) auto 0;
  padding-top: 22px;
}
.single-post .se-share-label {
  color: var(--se-bronze);
}
.single-post .post-navigation {
  max-width: 820px;
  margin: clamp(36px, 6vw, 70px) auto 0;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
  padding: 18px 0;
}
.single-post .post-navigation a {
  color: var(--se-ink) !important;
  text-decoration: none !important;
}
.single-post .post-navigation p {
  font-family: var(--se-font-display);
  font-size: 1.15rem;
  line-height: 1.18;
}
.single-post .comments-area,
.single-post .comment-respond,
.single-post #comments {
  display: none !important;
}
@media (max-width: 768px) {
  .single-post .ast-article-single { padding-top: 30px !important; }
  .single-post .entry-header { text-align: left; }
  .single-post .entry-title { font-size: 2.75rem !important; }
  .se-single-journal { text-align: left; }
  .se-single-journal__meta { justify-content: flex-start; }
  .single-post .entry-content p,
  .single-post .entry-content li { font-size: 1rem; line-height: 1.78; }
  .single-post .entry-content h2 { font-size: 2.25rem !important; }
  .single-post .se-share { justify-content: flex-start; }
}

/* ---------------- 41. JOURNAL — RELATED READING ---------------- */
.se-related-reading {
  max-width: 860px;
  margin: clamp(38px, 6vw, 72px) auto 0;
  padding-top: clamp(28px, 4vw, 44px);
  border-top: 1px solid var(--se-line);
}
.se-related-reading__head {
  text-align: center;
  margin-bottom: 22px;
}
.se-related-reading__head span,
.se-related-reading__card span {
  display: block;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.se-related-reading__head h2 {
  margin: 8px 0 0 !important;
  font-family: var(--se-font-display) !important;
  font-size: clamp(2rem, 3.4vw, 3.2rem) !important;
  line-height: 1 !important;
  color: var(--se-ink) !important;
}
.se-related-reading__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--se-line);
  border: 1px solid var(--se-line);
}
.se-related-reading__card {
  min-height: 210px;
  padding: 22px;
  background: #fffdf8;
  color: var(--se-ink) !important;
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
.se-related-reading__card strong {
  display: block;
  margin-top: 12px;
  font-family: var(--se-font-display);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 500;
  line-height: 1.08;
}
.se-related-reading__card em {
  display: block;
  margin-top: 12px;
  color: var(--se-ink-soft);
  font-style: normal;
  font-size: .94rem;
  line-height: 1.58;
}
.se-related-reading__card:hover { background: #f7efe2; }
.se-related-reading__collection {
  background: var(--se-ink);
}
.se-related-reading__collection span { color: #d6b98e; }
.se-related-reading__collection strong,
.se-related-reading__collection em { color: var(--se-bone); }
.se-related-reading__collection:hover { background: #3a3128; }
@media (max-width: 900px) {
  .se-related-reading__grid { grid-template-columns: 1fr; }
  .se-related-reading__card { min-height: 0; }
}

/* ---------------- 42. JOURNAL — CATEGORY TOPIC HUBS ---------------- */
.se-blog-topic-hub {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
  gap: clamp(24px, 4vw, 54px);
  margin: 0 0 clamp(36px, 5vw, 64px);
  padding: clamp(26px, 4vw, 46px) 0;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
}
.se-blog-topic-hub__copy span {
  display: block;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.se-blog-topic-hub__copy h2 {
  margin: 10px 0 16px !important;
  font-family: var(--se-font-display) !important;
  font-size: clamp(2rem, 3.4vw, 3.8rem) !important;
  line-height: 1 !important;
  color: var(--se-ink) !important;
}
.se-blog-topic-hub__copy p {
  margin: 0;
  max-width: 680px;
  color: var(--se-ink-soft);
  font-size: 1rem;
  line-height: 1.78;
}
.se-blog-topic-hub__topics {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-content: start;
  margin-bottom: 22px;
}
.se-blog-topic-hub__topics span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--se-line);
  color: var(--se-ink);
  background: rgba(255,255,255,.72);
  font-size: var(--se-t-small);
}
.se-blog-topic-faq {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--se-line);
  border: 1px solid var(--se-line);
}
.se-blog-topic-faq details {
  background: #fffdf8;
  padding: 18px 20px;
}
.se-blog-topic-faq summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--se-font-display);
  font-size: 1.22rem;
  line-height: 1.18;
  color: var(--se-ink);
}
.se-blog-topic-faq summary::-webkit-details-marker { display: none; }
.se-blog-topic-faq summary::after {
  content: "+";
  float: right;
  color: var(--se-bronze);
  font-family: var(--se-font-body);
}
.se-blog-topic-faq details[open] summary::after { content: "-"; }
.se-blog-topic-faq p {
  margin: 12px 0 0;
  color: var(--se-ink-soft);
  font-size: .95rem;
  line-height: 1.62;
}
@media (max-width: 900px) {
  .se-blog-topic-hub { grid-template-columns: 1fr; }
  .se-blog-topic-faq { grid-template-columns: 1fr; }
}

/* ---------------- 39. COLLECTION EXPERIENCE — curated PLP layer ---------------- */
.tax-product_tag .site-main > .ast-woocommerce-container,
.tax-product_tag .ast-woocommerce-container {
  background: linear-gradient(180deg, rgba(250, 247, 241, 0.72), rgba(255, 255, 255, 0) 420px);
}
.tax-product_tag .woocommerce-products-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: var(--se-s4) var(--se-s3) 0;
}
.tax-product_tag .woocommerce-products-header .term-description {
  padding: 0 var(--se-s2);
}
.se-collection-nav {
  max-width: 1120px;
  margin: calc(var(--se-s5) * -0.25) auto var(--se-s5);
  padding: 0 var(--se-s3);
  text-align: center;
}
.se-collection-nav h2 {
  margin: 0 0 var(--se-s3);
  font-family: var(--se-font-display);
  font-size: clamp(1.7rem, 2.6vw, 2.35rem);
  line-height: 1.12;
  font-weight: 500;
  color: var(--se-ink);
}
.se-collection-chiprow {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
}
.se-collection-chip {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0.68rem 1rem;
  border: 1px solid var(--se-line);
  background: rgba(255, 255, 255, 0.82);
  color: var(--se-ink-soft);
  border-radius: 999px;
  font-size: var(--se-t-small);
  line-height: 1.1;
  text-decoration: none;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
.se-collection-chip:hover,
.se-collection-chip:focus-visible,
.se-collection-chip.is-active {
  color: var(--se-ink);
  border-color: var(--se-clay);
  background: var(--se-surface);
  transform: translateY(-1px);
}
.se-collection-chip.is-active {
  box-shadow: inset 0 0 0 1px var(--se-clay);
}
.se-collection-shop-note {
  max-width: 1240px;
  margin: 0 auto var(--se-s4);
  padding: var(--se-s3);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: var(--se-s4);
  align-items: center;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
}
.se-collection-note-kicker {
  margin: 0 0 .45rem;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.se-collection-shop-note h2 {
  margin: 0;
  font-family: var(--se-font-display);
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
  line-height: 1.13;
  font-weight: 500;
  color: var(--se-ink);
}
.se-collection-trust-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.se-collection-trust-list li {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: .7rem .85rem;
  background: var(--se-surface);
  border: 1px solid var(--se-line);
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.25;
}
.tax-product_tag .woocommerce-result-count,
.tax-product_tag .woocommerce-ordering {
  margin-bottom: var(--se-s3) !important;
}
.tax-product_tag ul.products li.product {
  background: #fff;
  border: 1px solid rgba(48, 43, 37, .10);
  padding-bottom: var(--se-s2) !important;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.tax-product_tag ul.products li.product:hover {
  border-color: rgba(139, 115, 85, .34);
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(52, 43, 31, .08);
}
.tax-product_tag ul.products li.product .astra-shop-summary-wrap {
  padding: var(--se-s2) var(--se-s2) 0 !important;
}
.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.8em;
  font-family: var(--se-font-body) !important;
  font-size: .98rem !important;
  line-height: 1.38 !important;
  font-weight: 600 !important;
  color: var(--se-ink) !important;
}
.tax-product_tag ul.products li.product .price {
  color: var(--se-ink) !important;
  font-weight: 650 !important;
}
.tax-product_tag ul.products li.product .button,
.tax-product_tag ul.products li.product .added_to_cart {
  width: 100%;
  margin: auto 0 0 !important;
  min-height: 42px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--se-clay) !important;
  border-radius: var(--se-radius) !important;
  background: var(--se-clay) !important;
  color: #fff !important;
  font-size: var(--se-t-micro) !important;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
}
.tax-product_tag ul.products li.product .button:hover,
.tax-product_tag ul.products li.product .added_to_cart:hover {
  background: var(--se-clay-deep) !important;
  border-color: var(--se-clay-deep) !important;
}
.se-collection-next {
  max-width: 1180px;
  margin: var(--se-s6) auto;
  padding: var(--se-s5);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--se-s4);
  align-items: center;
  background: var(--se-ink);
  color: #fff;
}
.se-collection-next h2 {
  margin: 0;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.08;
  font-weight: 500;
  color: #fff;
}
.se-collection-next p:not(.se-collection-eyebrow) {
  max-width: 680px;
  margin: var(--se-s2) 0 0;
  color: rgba(255,255,255,.74);
  line-height: 1.7;
}
.se-collection-next .se-collection-eyebrow {
  color: var(--se-gold);
}
.se-collection-next-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  justify-content: flex-end;
}
.se-collection-next-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .78rem 1rem;
  border: 1px solid rgba(255,255,255,.26);
  color: #fff;
  text-decoration: none;
  font-size: var(--se-t-small);
}
.se-collection-next-actions a:hover,
.se-collection-next-actions a:focus-visible {
  background: #fff;
  color: var(--se-ink);
}
@media (max-width: 920px) {
  .tax-product_tag .woocommerce-products-header { padding-left: var(--se-s2); padding-right: var(--se-s2); }
  .se-collection-shop-note,
  .se-collection-next { grid-template-columns: 1fr; margin-left: var(--se-s2); margin-right: var(--se-s2); }
  .se-collection-next-actions { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .se-collection-shop-note {
    margin: 0 var(--se-s2) var(--se-s3);
    padding: var(--se-s3) 0;
    gap: var(--se-s2);
    border-top-color: rgba(48, 43, 37, .12);
    border-bottom-color: rgba(48, 43, 37, .12);
  }
  .se-collection-note-kicker {
    margin-bottom: .35rem;
  }
  .se-collection-shop-note h2 {
    max-width: 28rem;
    font-size: 1.28rem;
    line-height: 1.18;
  }
  .se-collection-note-copy {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
  .se-collection-trust-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }
  .se-collection-trust-list li {
    min-height: 0;
    padding: .62rem .7rem;
    background: var(--se-surface);
  }
  .se-collection-trust-list li strong {
    margin-bottom: 0;
    font-size: .75rem;
    line-height: 1.1;
  }
  .se-collection-trust-list li span {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
}

@media (max-width: 560px) {
  .se-collection-chiprow { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .35rem; }
  .se-collection-chip { white-space: nowrap; }
  .se-collection-trust-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .se-collection-next { padding: var(--se-s4) var(--se-s3); }
}

/* ---------------- 40. PRODUCT CARD META — material, intention, form cues ---------------- */
.woocommerce ul.products li.product .se-card-meta {
  display: grid;
  gap: .38rem;
  min-width: 0;
  max-width: 100%;
  min-height: 58px;
  margin: .5rem 0 .2rem;
}
.woocommerce ul.products li.product .se-card-meta-primary {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  min-width: 0;
  max-width: 100%;
  min-height: 24px;
}
.woocommerce ul.products li.product .se-card-meta-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
  min-height: 24px;
  padding: .28rem .5rem;
  border: 1px solid rgba(139, 115, 85, .24);
  background: rgba(250, 247, 241, .88);
  color: var(--se-ink-soft);
  font-size: .71rem;
  line-height: 1.1;
  letter-spacing: .01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.woocommerce ul.products li.product .se-card-meta-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.woocommerce ul.products li.product .se-card-meta-intention {
  color: var(--se-ink);
  border-color: rgba(139, 115, 85, .36);
  background: #fff;
}
.woocommerce ul.products li.product .se-card-meta-use {
  margin: 0;
  color: var(--se-ink-soft);
  font-size: .78rem;
  line-height: 1.35;
  min-height: 2.1em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.woocommerce ul.products li.product .star-rating {
  margin: .35rem 0 .1rem !important;
}
.tax-product_tag ul.products li.product .se-card-meta,
.post-type-archive-product ul.products li.product .se-card-meta,
.tax-product_cat ul.products li.product .se-card-meta {
  padding: 0;
}
.tax-product_tag ul.products li.product .price,
.post-type-archive-product ul.products li.product .price,
.tax-product_cat ul.products li.product .price {
  display: block;
  margin-top: .45rem !important;
}
@media (max-width: 560px) {
  .woocommerce ul.products li.product .se-card-meta {
    gap: .32rem;
    min-height: 54px;
  }
  .woocommerce ul.products li.product .se-card-meta-primary { gap: .3rem; }
  .woocommerce ul.products li.product .se-card-meta-chip {
    font-size: .67rem;
    padding: .25rem .42rem;
    max-width: 100%;
  }
  .woocommerce ul.products li.product .se-card-meta-use {
    font-size: .72rem;
  }
}

/* ---------------- 41. PDP INFO LAYER — material, intention, form ---------------- */
.single-product .se-pdp-info-layer {
  margin: var(--se-s2) 0 var(--se-s3);
  padding: var(--se-s3);
  background: var(--se-surface);
  border: 1px solid var(--se-line);
}
.single-product .se-pdp-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.single-product .se-pdp-info-item {
  min-height: 58px;
  padding: .75rem .85rem;
  background: #fff;
  border: 1px solid rgba(48, 43, 37, .09);
}
.single-product .se-pdp-info-item span {
  display: block;
  margin-bottom: .25rem;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
  font-weight: 700;
}
.single-product .se-pdp-info-item strong {
  display: block;
  color: var(--se-ink);
  font-size: .95rem;
  line-height: 1.35;
  font-weight: 600;
}
.single-product .se-pdp-meaning-note {
  margin: var(--se-s2) 0 0;
  color: var(--se-ink-soft);
  font-size: .86rem;
  line-height: 1.55;
}
.single-product .se-pdp-purchase-reasons {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: var(--se-s2) 0 0;
}
.single-product .se-pdp-purchase-reasons span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .42rem .62rem;
  border: 1px solid rgba(139, 115, 85, .24);
  background: rgba(250, 247, 241, .72);
  color: var(--se-ink-soft);
  font-size: .78rem;
  line-height: 1.2;
}
.single-product .summary.entry-summary .price {
  margin-top: var(--se-s2) !important;
}
@media (max-width: 560px) {
  .single-product .se-pdp-info-layer {
    padding: var(--se-s2);
  }
  .single-product .se-pdp-info-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------------- 42. PDP GALLERY EXPERIENCE — image guide and premium frame ---------------- */
.single-product .woocommerce-product-gallery {
  background: #fff;
}
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery .flex-viewport {
  background: var(--se-surface);
}
.single-product .woocommerce-product-gallery__image {
  background: var(--se-surface);
}
.single-product .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  background: var(--se-surface);
}
.single-product .woocommerce-product-gallery__trigger {
  width: 38px !important;
  height: 38px !important;
  border: 1px solid rgba(48, 43, 37, .14) !important;
  background: rgba(255,255,255,.92) !important;
  box-shadow: 0 8px 24px rgba(42, 35, 27, .08) !important;
}
.single-product .se-pdp-gallery-guide {
  clear: both;
  margin: var(--se-s2) 0 var(--se-s4);
  padding: var(--se-s2) 0 0;
  border-top: 1px solid var(--se-line);
  color: var(--se-ink-soft);
}
.single-product .se-pdp-gallery-guide-head {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin-bottom: .65rem;
  color: var(--se-ink);
  font-size: .9rem;
  line-height: 1.2;
}
.single-product .se-pdp-gallery-guide-head strong {
  margin-left: .45rem;
  font-size: var(--se-t-micro);
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-bronze);
}
.single-product .se-pdp-gallery-labels {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .65rem;
}
.single-product .se-pdp-gallery-labels span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: .34rem .52rem;
  border: 1px solid rgba(139, 115, 85, .22);
  color: var(--se-ink-soft);
  background: rgba(250, 247, 241, .72);
  font-size: .74rem;
  line-height: 1.15;
}
.single-product .se-pdp-gallery-labels span.is-active {
  border-color: var(--se-clay);
  color: var(--se-ink);
  background: #fff;
}
.single-product .se-pdp-gallery-guide p {
  margin: 0;
  font-size: .86rem;
  line-height: 1.58;
}
@media (min-width: 922px) {
  .single-product div.product {
    position: relative;
  }
  .single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    background: #fff;
  }
  .single-product .se-pdp-gallery-guide {
    position: absolute;
    top: calc(min(50vw, 692.5px) - 44px);
    left: 92px;
    width: calc(min(50vw, 692.5px) - 92px);
    max-width: calc(50% - 92px);
    clear: none;
    margin: 0;
    box-sizing: border-box;
  }
}
@media (max-width: 768px) {
  .single-product .se-pdp-gallery-guide {
    margin-bottom: var(--se-s2);
    padding-top: .65rem;
  }
  .single-product .se-pdp-gallery-guide-head {
    margin-bottom: .42rem;
    font-size: .82rem;
  }
  .single-product .se-pdp-gallery-labels {
    gap: .35rem;
    margin-bottom: 0;
  }
  .single-product .se-pdp-gallery-labels span {
    min-height: 24px;
    padding: .26rem .44rem;
    font-size: .68rem;
  }
  .single-product .se-pdp-gallery-guide p {
    display: none;
  }
  .single-product .se-pdp-gallery-labels {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .2rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .single-product .se-pdp-gallery-labels::-webkit-scrollbar { display: none; }
  .single-product .se-pdp-gallery-labels span { white-space: nowrap; }
}

/* PLP card hierarchy: image, title, meaning cues, price, CTA. */
.woocommerce ul.products li.product .astra-shop-summary-wrap .ast-woo-product-category { order: 1; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .woocommerce-loop-product__title { order: 2; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .se-card-meta { order: 3; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .star-rating { order: 4; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .price { order: 5; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap .added_to_cart { order: 6; }

/* ---------------- 42. Trust and policy pages ---------------- */
.se-policy {
  max-width: 980px;
  margin: 0 auto;
  color: var(--se-ink);
}
.se-policy-hero {
  padding: clamp(2rem, 5vw, 4rem) 0 1.5rem;
  border-bottom: 1px solid var(--se-line);
}
.se-policy-kicker {
  display: block;
  margin-bottom: .7rem;
  font-family: "Inter", sans-serif;
  font-size: var(--se-t-micro);
  font-weight: 700;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-clay);
}
.se-policy h1,
.se-policy h2,
.se-policy h3 {
  color: var(--se-ink);
}
.se-policy h1 {
  max-width: 780px;
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.35rem, 5vw, 4rem);
  font-weight: 500;
  line-height: 1.06;
}
.se-policy-lede {
  max-width: 720px;
  margin: 1rem 0 0;
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--se-ink-soft);
}
.se-policy-updated {
  margin: 1.25rem 0 0;
  font-size: .84rem;
  color: var(--se-ink-soft);
}
.se-policy-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 2.2rem;
}
.se-policy-card,
.se-policy-callout {
  border: 1px solid var(--se-line);
  border-radius: 8px;
  background: #fff;
}
.se-policy-card {
  padding: 1.15rem;
}
.se-policy-card strong {
  display: block;
  margin-bottom: .35rem;
  font-family: "Inter", sans-serif;
  font-size: .95rem;
  color: var(--se-ink);
}
.se-policy-card span,
.se-policy-card p,
.se-policy-callout p {
  display: block;
  margin: 0;
  font-size: .9rem;
  line-height: 1.6;
  color: var(--se-ink-soft);
}
.se-policy-section {
  padding: 2rem 0;
  border-bottom: 1px solid var(--se-line);
}
.se-policy-section h2 {
  margin: 0 0 .85rem;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 500;
  line-height: 1.15;
}
.se-policy-section p,
.se-policy-section li {
  font-size: .98rem;
  line-height: 1.75;
  color: var(--se-ink-soft);
}
.se-policy-section ul,
.se-policy-section ol {
  margin: .75rem 0 0;
  padding-left: 1.25rem;
}
.se-policy-table-wrap {
  overflow-x: auto;
  margin-top: 1rem;
  border: 1px solid var(--se-line);
  border-radius: 8px;
  background: #fff;
}
.se-policy table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  margin: 0;
}
.se-policy th,
.se-policy td {
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--se-line);
  text-align: left;
  vertical-align: top;
  font-family: "Inter", sans-serif;
  font-size: .9rem;
}
.se-policy th {
  color: var(--se-ink);
  background: var(--se-bg-alt);
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.se-policy tr:last-child td { border-bottom: 0; }
.se-policy details {
  border-bottom: 1px solid var(--se-line);
  padding: 1rem 0;
}
.se-policy details:first-of-type { border-top: 1px solid var(--se-line); }
.se-policy summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  color: var(--se-ink);
  list-style: none;
}
.se-policy summary::-webkit-details-marker { display: none; }
.se-policy summary::after { content: "+"; color: var(--se-clay); }
.se-policy details[open] summary::after { content: "-"; }
.se-policy details p { margin: .75rem 0 0; }
.se-policy-callout {
  margin: 2rem 0 0;
  padding: 1.25rem;
  background: var(--se-bg-alt);
}
.se-policy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
}
.se-policy-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1rem;
  border: 1px solid var(--se-ink);
  border-radius: 6px;
  font-family: "Inter", sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--se-ink);
  background: #fff;
}
.se-policy-actions a:first-child {
  background: var(--se-ink);
  color: #fff;
}
@media (max-width: 782px) {
  .se-policy { padding: 0 1.25rem; }
  .se-policy-grid { grid-template-columns: 1fr; }
  .se-policy-actions a { width: 100%; }
  .se-policy-section { padding: 1.65rem 0; }
}

.se-contact-box {
  max-width: 860px;
  margin: clamp(2.5rem, 6vw, 5rem) auto 0;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border: 1px solid var(--se-line);
  border-radius: 8px;
  background: #fff;
}
.se-contact-box__head {
  max-width: 680px;
  margin: 0 auto 1.6rem;
  text-align: center;
}
.se-contact-box__head h2 {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  line-height: 1.08;
  color: var(--se-ink);
}
.se-contact-box__head p:not(.se-policy-kicker),
.se-contact-direct {
  margin: .85rem 0 0;
  color: var(--se-ink-soft);
  font-size: .98rem;
  line-height: 1.7;
}
.se-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.se-contact-field,
.se-contact-field--full,
.se-contact-submit {
  min-width: 0;
}
.se-contact-field--full,
.se-contact-submit {
  grid-column: 1 / -1;
}
.se-contact-field label {
  display: block;
  margin-bottom: .4rem;
  font-family: "Inter", sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--se-ink);
}
.se-contact-field label span {
  color: var(--se-ink-soft);
  font-weight: 500;
}
.se-contact-field input,
.se-contact-field select,
.se-contact-field textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--se-line);
  border-radius: 6px;
  background: var(--se-surface);
  color: var(--se-ink);
  font-family: "Inter", sans-serif;
  font-size: .95rem;
  line-height: 1.45;
  padding: .78rem .9rem;
}
.se-contact-field textarea {
  min-height: 170px;
  resize: vertical;
}
.se-contact-field input:focus,
.se-contact-field select:focus,
.se-contact-field textarea:focus {
  outline: none;
  border-color: var(--se-clay);
  box-shadow: 0 0 0 3px rgba(168, 93, 64, .14);
}
.se-contact-submit {
  min-height: 50px;
  border: 1px solid var(--se-clay);
  border-radius: 6px;
  background: var(--se-clay);
  color: #fff;
  font-family: "Inter", sans-serif;
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease);
}
.se-contact-submit:hover,
.se-contact-submit:focus-visible {
  background: var(--se-clay-deep);
  border-color: var(--se-clay-deep);
}
.se-contact-direct {
  text-align: center;
}
.se-contact-alert {
  margin: 0 0 1rem;
  padding: .9rem 1rem;
  border-radius: 6px;
  font-size: .9rem;
  line-height: 1.55;
}
.se-contact-alert--success {
  border: 1px solid rgba(86, 116, 77, .35);
  background: rgba(110, 116, 96, .12);
  color: var(--se-ink);
}
.se-contact-alert--error {
  border: 1px solid rgba(168, 93, 64, .35);
  background: rgba(168, 93, 64, .1);
  color: var(--se-ink);
}
.se-contact-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
@media (max-width: 782px) {
  .se-contact-box { margin-top: var(--se-s4); padding: 1.1rem; }
  .se-contact-form { grid-template-columns: 1fr; }
}


/* ---------------- 44. Shop commercial guide ---------------- */
.se-shop-directory {
  max-width: 1180px;
  margin: var(--se-s5) auto var(--se-s5);
  padding: 0 var(--se-s3);
}
.se-shop-directory__head {
  max-width: 760px;
  margin-bottom: var(--se-s4);
}
.se-shop-directory__head h2 {
  margin: 0;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 500;
  line-height: 1.05;
  color: var(--se-ink);
}
.se-shop-directory__head p:not(.se-collection-eyebrow) {
  margin: var(--se-s3) 0 0;
  color: var(--se-ink-soft);
  font-size: var(--se-t-body);
  line-height: var(--se-lh-body);
}
.se-shop-directory__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.se-shop-directory__card {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--se-line);
  border-radius: 8px;
  background: #fff;
}
.se-shop-directory__card > span {
  display: block;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  font-weight: 700;
  letter-spacing: var(--se-track-wide);
  text-transform: uppercase;
  color: var(--se-clay);
}
.se-shop-directory__card > p {
  min-height: 48px;
  margin: 10px 0 16px;
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.55;
}
.se-shop-directory__links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.se-shop-directory__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--se-line);
  border-radius: 999px;
  color: var(--se-ink);
  font-family: var(--se-font-body);
  font-size: 0.78rem;
  font-weight: 650;
  text-decoration: none;
  transition: background var(--se-dur) var(--se-ease), border-color var(--se-dur) var(--se-ease), color var(--se-dur) var(--se-ease);
}
.se-shop-directory__links a:hover,
.se-shop-directory__links a:focus-visible {
  background: var(--se-ink);
  border-color: var(--se-ink);
  color: #fff;
}
.se-collection-shop-note > div {
  min-width: 0;
}
.se-collection-note-copy {
  margin: 10px 0 0;
  color: var(--se-ink-soft);
  font-size: var(--se-t-small);
  line-height: 1.65;
}
.se-collection-trust-list li {
  display: block;
}
.se-collection-trust-list li strong {
  display: block;
  margin-bottom: 4px;
  color: var(--se-ink);
  font-family: var(--se-font-body);
  font-size: 0.82rem;
  font-weight: 750;
}
.se-collection-trust-list li span {
  display: block;
  color: var(--se-ink-soft);
  font-size: 0.78rem;
  line-height: 1.45;
}
@media (max-width: 900px) {
  .se-shop-directory__grid { grid-template-columns: 1fr; }
  .se-shop-directory__card > p { min-height: 0; }
}
@media (max-width: 768px) {
  .se-shop-directory {
    margin: var(--se-s4) auto var(--se-s5);
    padding: 0 var(--se-s2);
  }
  .se-shop-directory__card { padding: 18px; }
  .se-shop-directory__links { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .se-shop-directory__links a { white-space: nowrap; }
  .se-collection-note-copy { font-size: 0.86rem; }
}

/* ---------------- 45. PLP card conversion polish ---------------- */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  gap: 0 !important;
}
.woocommerce ul.products li.product .ast-woo-product-category {
  margin: .15rem 0 .32rem !important;
  color: var(--se-clay) !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0 !important;
  padding: 0 0 .42rem !important;
}
.woocommerce ul.products li.product .se-card-meta {
  min-height: 64px;
  margin: .35rem 0 .35rem;
}
.woocommerce ul.products li.product .se-card-meta-primary {
  gap: .32rem;
}
.woocommerce ul.products li.product .se-card-meta-chip {
  gap: .28rem;
  min-height: 26px;
  padding: .3rem .52rem;
  border-radius: 999px;
}
.woocommerce ul.products li.product .se-card-meta-label {
  color: var(--se-clay);
  font-size: .58rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.woocommerce ul.products li.product .se-card-meta-use {
  color: var(--se-ink);
  opacity: .72;
}
.woocommerce ul.products li.product .price,
.tax-product_tag ul.products li.product .price,
.post-type-archive-product ul.products li.product .price,
.tax-product_cat ul.products li.product .price {
  min-height: 0 !important;
  margin: .28rem 0 .7rem !important;
  line-height: 1.2 !important;
  color: var(--se-ink) !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
}
.woocommerce ul.products li.product .button {
  min-height: 46px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: .72rem .85rem !important;
  line-height: 1.1 !important;
}
.woocommerce ul.products li.product .added_to_cart {
  min-height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: .5rem !important;
}
@media (max-width: 560px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 1.08rem !important;
    line-height: 1.22 !important;
    min-height: 2.44em;
  }
  .woocommerce ul.products li.product .se-card-meta {
    min-height: 25px;
    margin: .28rem 0 .32rem;
    gap: 0;
  }
  .woocommerce ul.products li.product .se-card-meta-primary {
    min-height: 25px;
  }
  .woocommerce ul.products li.product .se-card-meta-chip {
    max-width: 100%;
    min-height: 25px;
    padding: .28rem .45rem;
  }
  .woocommerce ul.products li.product .se-card-meta-label {
    display: none;
  }
  .woocommerce ul.products li.product .se-card-meta-use {
    display: none;
  }
  .woocommerce ul.products li.product .price {
    font-size: .92rem !important;
  }
  .woocommerce ul.products li.product .button {
    min-height: 44px !important;
    font-size: .66rem !important;
    padding-left: .55rem !important;
    padding-right: .55rem !important;
  }
}

/* PLP card price/CTA tightening after currency wrapper audit. */
.woocommerce ul.products li.product .price {
  display: flex !important;
  align-items: center !important;
  min-height: 22px !important;
  height: auto !important;
  padding: 0 !important;
}
.woocommerce ul.products li.product .price .woocs_price_code,
.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price bdi {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 0 !important;
  line-height: 1.2 !important;
}
@media (max-width: 560px) {
  .woocommerce ul.products li.product .button {
    font-size: .72rem !important;
    letter-spacing: .055em !important;
  }
  .woocommerce ul.products li.product .price {
    min-height: 22px !important;
    margin-bottom: .62rem !important;
  }
}


/* PLP grid stability: override Woo/Astra float column math so partially filled rows keep equal card widths. */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--se-s5) var(--se-s3) !important;
  align-items: stretch !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  content: none !important;
  display: none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
@media (max-width: 1180px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 860px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 360px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* ---------------- 46. PDP buy box conversion polish ---------------- */
.single-product .summary.entry-summary {
  display: flex !important;
  flex-direction: column !important;
}
.single-product .summary.entry-summary .woocommerce-breadcrumb { order: 1; }
.single-product .summary.entry-summary .single-product-category { order: 2; }
.single-product .summary.entry-summary .product_title { order: 3; }
.single-product .summary.entry-summary .se-pdp-info-layer { order: 4; }
.single-product .summary.entry-summary .price { order: 5; }
.single-product .summary.entry-summary .woocommerce-product-details__short-description { order: 6; }
.single-product .summary.entry-summary .ast-stock-detail { order: 7; }
.single-product .summary.entry-summary form.cart { order: 8; }
.single-product .summary.entry-summary .soulful-trust-badges { order: 9; }
.single-product .summary.entry-summary .se-pdp-purchase-reasons { order: 10; }
.single-product .summary.entry-summary .product_meta { order: 20; display: none !important; }
.single-product .summary.entry-summary .soulful-inline-rating { order: 21; }
.single-product .se-pdp-info-layer {
  margin: .55rem 0 1rem;
  padding: 1rem;
  border-radius: 8px;
  background: #fbf7f0;
}
.single-product .se-pdp-info-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
}
.single-product .se-pdp-info-item {
  min-height: 0;
  padding: .7rem .72rem;
  border-radius: 7px;
}
.single-product .se-pdp-info-item strong {
  font-size: .88rem;
}
.single-product .se-pdp-meaning-note {
  margin-top: .75rem;
  font-size: .8rem;
}
.single-product div.product .product_title {
  margin-bottom: .35rem !important;
}
.single-product div.product p.price,
.single-product div.product span.price {
  margin: .15rem 0 .75rem !important;
  color: var(--se-ink) !important;
  font-weight: 700 !important;
}
.single-product .woocommerce-product-details__short-description {
  margin-bottom: 1rem !important;
  color: var(--se-ink-soft);
  font-size: .96rem;
  line-height: 1.65;
}
.single-product .ast-stock-detail {
  margin: 0 0 .9rem !important;
  color: var(--se-ink-soft);
  font-size: .85rem;
}
.single-product .se-pdp-purchase-reasons {
  margin: .8rem 0 0;
}
.single-product .se-pdp-purchase-reasons span {
  border-radius: 999px;
  color: var(--se-ink);
  background: #fff;
}
.single-product .soulful-trust-badges {
  margin-top: 1rem !important;
  padding-top: 1rem !important;
}
.single-product .trust-text strong,
.single-product .trust-text span {
  display: block;
}
.single-product .trust-text strong {
  color: var(--se-ink);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
}
.single-product .trust-text span {
  margin-top: .18rem;
  color: var(--se-ink-soft);
  font-size: .68rem;
  line-height: 1.25;
}
@media (max-width: 768px) {
  .single-product .se-pdp-info-layer {
    margin: .45rem 0 .85rem;
    padding: .85rem;
  }
  .single-product .se-pdp-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .5rem;
  }
  .single-product .se-pdp-info-item {
    padding: .62rem .65rem;
  }
  .single-product .se-pdp-info-item span {
    margin-bottom: .16rem;
    font-size: .62rem;
  }
  .single-product .se-pdp-info-item strong {
    font-size: .82rem;
    line-height: 1.25;
  }
  .single-product .se-pdp-meaning-note {
    font-size: .75rem;
    line-height: 1.45;
  }
  .single-product .woocommerce-product-details__short-description {
    font-size: .9rem;
    line-height: 1.58;
  }
  .single-product .soulful-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .single-product .trust-item {
    min-height: 76px !important;
  }
}

/* ---------------- 46d. Mobile PDP purchase priority ---------------- */
@media (max-width: 768px) {
  .single-product .summary.entry-summary .price { order: 4; }
  .single-product .summary.entry-summary .se-pdp-info-layer { order: 5; }
}

/* ---------------- 46e. Mobile cart coupon polish ---------------- */
@media (max-width: 768px) {
  .woocommerce-cart td.actions .coupon {
    flex-direction: column !important;
    gap: 10px !important;
  }
  .woocommerce-cart td.actions .coupon input#coupon_code,
  .woocommerce-cart td.actions .coupon button[name="apply_coupon"] {
    width: 100% !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }
}

/* ---------------- 47. Mobile sticky add-to-cart polish ---------------- */
@media (max-width: 768px) {
  body.single-product { padding-bottom: 104px !important; }
  body.single-product div.product form.cart:not(.variations_form),
  .single-product .woocommerce-variation-add-to-cart {
    gap: 7px 10px !important;
    padding: 9px 16px calc(10px + env(safe-area-inset-bottom)) !important;
  }
  body.single-product div.product form.cart .sw-bar-price {
    flex: 0 0 100%;
    display: block;
    margin: 0 0 1px !important;
    color: var(--se-ink);
    font-family: var(--se-font-body);
    font-weight: 750;
    font-size: .98rem;
    line-height: 1.05;
    text-align: right;
  }
  body.single-product div.product form.cart .sw-mobile-option-hint {
    flex: 1 0 100%;
    margin: -1px 0 0;
    color: var(--se-ink-soft);
    font-family: var(--se-font-body);
    font-size: .72rem;
    line-height: 1.2;
    text-align: right;
  }
  body.single-product div.product form.cart .sw-bar-price .amount {
    font-size: 1.05rem;
  }
  body.single-product div.product form.cart .quantity {
    flex: 0 0 132px !important;
    width: 132px !important;
    margin: 0 !important;
  }
  body.single-product div.product form.cart .quantity input.qty {
    width: 44px !important;
    min-height: 44px !important;
    height: 44px !important;
    font-size: .92rem !important;
  }
  body.single-product div.product form.cart .quantity .sw-qty-btn {
    width: 44px !important;
    min-height: 44px !important;
    height: 44px !important;
    font-size: 1.12rem !important;
  }
  body.single-product div.product form.cart:not(.variations_form) .single_add_to_cart_button,
  .single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    min-height: 44px !important;
    height: 44px !important;
    border-radius: 6px !important;
    font-size: .9rem !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
  }
  body.single-product .grecaptcha-badge {
    visibility: hidden !important;
  }
}

/* ---------------- 48. PDP Content Database story sections ---------------- */
.single-product .se-pdp-content-sections {
  clear: both;
  margin: var(--se-s6) calc(50% - 50vw) var(--se-s6);
  padding: var(--se-s6) max(var(--se-s3), calc((100vw - var(--se-maxw)) / 2));
  background: #f8f1e7;
  border-top: 1px solid rgba(139, 115, 85, .18);
  border-bottom: 1px solid rgba(139, 115, 85, .18);
}
.single-product .se-pdp-content-inner {
  max-width: var(--se-maxw);
  margin: 0 auto;
}
.single-product .se-pdp-content-head {
  max-width: 760px;
  margin: 0 0 var(--se-s4);
}
.single-product .se-pdp-content-eyebrow,
.single-product .se-pdp-content-panel > span {
  display: block;
  margin: 0 0 .55rem;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  font-weight: 750;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-clay);
}
.single-product .se-pdp-content-head h2 {
  margin: 0;
  max-width: 820px;
  font-family: var(--se-font-display);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 500;
  line-height: 1.08;
  color: var(--se-ink);
}
.single-product .se-pdp-content-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
}
.single-product .se-pdp-content-panel {
  min-width: 0;
  padding: 0;
  border-top: 1px solid rgba(48, 43, 37, .18);
}
.single-product .se-pdp-content-panel > span {
  margin-top: 1rem;
  color: var(--se-bronze);
}
.single-product .se-pdp-content-panel h3 {
  margin: 0 0 .85rem;
  font-family: var(--se-font-display);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--se-ink);
}
.single-product .se-pdp-content-panel p {
  margin: 0 0 .85rem;
  color: var(--se-ink-soft);
  font-size: .95rem;
  line-height: 1.72;
}
.single-product .se-pdp-content-panel p:last-child {
  margin-bottom: 0;
}
.single-product .se-pdp-content-note {
  padding-top: .85rem;
  border-top: 1px solid rgba(139, 115, 85, .18);
  color: var(--se-ink) !important;
  font-size: .88rem !important;
  line-height: 1.62 !important;
}
@media (max-width: 900px) {
  .single-product .se-pdp-content-sections {
    margin-top: var(--se-s5);
    margin-bottom: var(--se-s5);
    padding-top: var(--se-s5);
    padding-bottom: var(--se-s5);
  }
  .single-product .se-pdp-content-grid {
    grid-template-columns: 1fr;
    gap: var(--se-s4);
  }
  .single-product .se-pdp-content-head {
    margin-bottom: var(--se-s3);
  }
}
@media (max-width: 560px) {
  .single-product .se-pdp-content-sections {
    padding-left: var(--se-s2);
    padding-right: var(--se-s2);
  }
  .single-product .se-pdp-content-head h2 {
    font-size: 2rem;
  }
  .single-product .se-pdp-content-panel h3 {
    font-size: 1.35rem;
  }
  .single-product .se-pdp-content-panel p {
    font-size: .9rem;
    line-height: 1.65;
  }
}

/* ---------------- 49. PDP gift and confidence layer ---------------- */
.single-product .se-pdp-gift-confidence {
  clear: both;
  max-width: var(--se-maxw);
  margin: calc(var(--se-s6) * -0.35) auto var(--se-s6);
  padding: 0 var(--se-s3);
}
.single-product .se-pdp-gift-confidence-inner {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(24px, 4vw, 54px);
  align-items: start;
  padding: var(--se-s4) 0;
  border-top: 1px solid var(--se-line);
  border-bottom: 1px solid var(--se-line);
}
.single-product .se-pdp-gift-confidence-eyebrow,
.single-product .se-pdp-gift-confidence-item span {
  display: block;
  margin: 0 0 .55rem;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  font-weight: 750;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-clay);
}
.single-product .se-pdp-gift-confidence-main h2 {
  margin: 0 0 .9rem;
  font-family: var(--se-font-display);
  font-size: clamp(1.85rem, 3.4vw, 2.75rem);
  font-weight: 500;
  line-height: 1.08;
  color: var(--se-ink);
}
.single-product .se-pdp-gift-confidence-main p {
  margin: 0 0 .9rem;
  color: var(--se-ink-soft);
  font-size: .98rem;
  line-height: 1.72;
}
.single-product .se-pdp-gift-confidence-main p:last-child {
  margin-bottom: 0;
}
.single-product .se-pdp-gift-confidence-note {
  padding-top: .95rem;
  border-top: 1px solid rgba(139, 115, 85, .2);
  color: var(--se-ink) !important;
  font-size: .9rem !important;
  line-height: 1.65 !important;
}
.single-product .se-pdp-gift-confidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
}
.single-product .se-pdp-gift-confidence-item {
  min-width: 0;
  padding: 18px 0 0;
  border-top: 1px solid rgba(48, 43, 37, .16);
}
.single-product .se-pdp-gift-confidence-item span {
  color: var(--se-bronze);
  font-size: .68rem;
}
.single-product .se-pdp-gift-confidence-item p {
  margin: 0;
  color: var(--se-ink-soft);
  font-size: .9rem;
  line-height: 1.62;
}
@media (max-width: 900px) {
  .single-product .se-pdp-gift-confidence {
    margin: calc(var(--se-s5) * -0.2) auto var(--se-s5);
    padding-left: var(--se-s2);
    padding-right: var(--se-s2);
  }
  .single-product .se-pdp-gift-confidence-inner {
    grid-template-columns: 1fr;
    gap: var(--se-s3);
    padding: var(--se-s3) 0;
  }
}
@media (max-width: 560px) {
  .single-product .se-pdp-gift-confidence-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .single-product .se-pdp-gift-confidence-main h2 {
    font-size: 1.85rem;
  }
  .single-product .se-pdp-gift-confidence-main p,
  .single-product .se-pdp-gift-confidence-item p {
    font-size: .9rem;
    line-height: 1.62;
  }
}

/* ---------------- 50. PDP AI-readable product summary ---------------- */
.single-product .se-pdp-ai-summary {
  clear: both;
  max-width: var(--se-maxw);
  margin: calc(var(--se-s6) * -0.35) auto var(--se-s6);
  padding: 0 var(--se-s3);
}
.single-product .se-pdp-ai-summary-inner {
  padding: var(--se-s4) 0 0;
  border-top: 1px solid var(--se-line);
}
.single-product .se-pdp-ai-summary-eyebrow {
  margin: 0 0 .55rem;
  font-family: var(--se-font-body);
  font-size: var(--se-t-micro);
  font-weight: 750;
  letter-spacing: var(--se-track-label);
  text-transform: uppercase;
  color: var(--se-clay);
}
.single-product .se-pdp-ai-summary h2 {
  margin: 0 0 .8rem;
  font-family: var(--se-font-display);
  font-size: clamp(1.6rem, 2.6vw, 2.25rem);
  font-weight: 500;
  line-height: 1.12;
  color: var(--se-ink);
}
.single-product .se-pdp-ai-summary-copy {
  max-width: 920px;
  margin: 0 0 var(--se-s3);
  color: var(--se-ink-soft);
  font-size: .96rem;
  line-height: 1.72;
}
.single-product .se-pdp-ai-summary-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 var(--se-s3);
}
.single-product .se-pdp-ai-summary-facts div {
  min-width: 0;
  padding: 12px 0 0;
  border-top: 1px solid rgba(139, 115, 85, .22);
}
.single-product .se-pdp-ai-summary-facts dt {
  margin: 0 0 .35rem;
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--se-bronze);
}
.single-product .se-pdp-ai-summary-facts dd {
  margin: 0;
  color: var(--se-ink);
  font-size: .9rem;
  line-height: 1.35;
}
.single-product .se-pdp-ai-summary-note {
  max-width: 820px;
  margin: 0;
  color: var(--se-ink-soft);
  font-size: .82rem;
  line-height: 1.58;
}
@media (max-width: 900px) {
  .single-product .se-pdp-ai-summary {
    margin: calc(var(--se-s5) * -0.2) auto var(--se-s5);
    padding-left: var(--se-s2);
    padding-right: var(--se-s2);
  }
  .single-product .se-pdp-ai-summary-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .single-product .se-pdp-ai-summary-facts {
    grid-template-columns: 1fr;
  }
  .single-product .se-pdp-ai-summary-copy {
    font-size: .9rem;
    line-height: 1.65;
  }
}

/* ---------------- 50. Mobile product-card CTA readability ---------------- */
@media (max-width: 600px) {
  .woocommerce ul.products li.product .button,
  .single-product ul.products li.product .button {
    font-size: .82rem !important;
    letter-spacing: .045em !important;
    line-height: 1.1 !important;
  }
}

/* ---------------- 51. Mobile PDP sticky ATC reveal timing ---------------- */
@media (max-width: 768px) {
  body.single-product:not(.se-sticky-atc-visible) {
    padding-bottom: 0 !important;
  }
  body.single-product:not(.se-sticky-atc-visible) div.product form.cart:not(.variations_form),
  body.single-product:not(.se-sticky-atc-visible) .woocommerce-variation-add-to-cart {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-top: 0 !important;
    background: transparent !important;
  }
  body.single-product:not(.se-sticky-atc-visible) div.product form.cart .sw-bar-price,
  body.single-product:not(.se-sticky-atc-visible) div.product form.cart .sw-mobile-option-hint {
    display: none !important;
  }
  body.single-product.se-sticky-atc-visible {
    padding-bottom: 104px !important;
  }
}

/* ---------------- 52. Desktop back-to-top / reCAPTCHA spacing ---------------- */
@media (min-width: 769px) {
  #ast-scroll-top,
  a.ast-scroll-top-icon,
  .ast-scroll-top {
    right: 92px !important;
  }
}

