/*
Theme Name: Sacred Essentials
Theme URI: https://sacredessentials.life
Author: Sacred Essentials
Description: Custom hand-built theme for Sacred Essentials Apothecary — dark folk-apothecary design, WooCommerce-ready, no page builder. "Folk medicine from the heart."
Version: 1.0.0
Requires PHP: 7.4
Text Domain: sacred-essentials
*/

/* ========== Fonts (self-hosted, latin subset) ========== */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/cg.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/cg.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url('assets/fonts/cg-italic.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'EB Garamond'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/ebg.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'EB Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/ebg.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'EB Garamond'; font-style: italic; font-weight: 400; font-display: swap; src: url('assets/fonts/ebg-italic.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ========== Tokens ========== */
:root {
  --ink: #17100a;
  --ink-2: #1e150d;
  --card: #241a11;
  --card-2: #2b2015;
  --line: rgba(235, 222, 198, .13);
  --line-strong: rgba(235, 222, 198, .24);
  --parch: #eadcc0;
  --parch-2: #f3ead6;
  --parch-line: #d8c8a5;
  --parch-ink: #2c2013;
  --parch-dim: #6d5c42;
  --cream: #eee1c8;
  --dim: #bfae8f;
  --gold: #c9a76b;
  --gold-deep: #a9834b;
  --sage: #83926a;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --body-font: 'EB Garamond', Georgia, serif;
  /* compat: se-blog + ported cart cross-sells reference this Astra var */
  --ast-global-color-0: #6b8f71;
}

/* ========== Base ========== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: #17100a; }
body {
  margin: 0;
  background:
    radial-gradient(1000px 520px at 10% -120px, rgba(201, 167, 107, .08), transparent 60%),
    radial-gradient(900px 520px at 104% 10%, rgba(131, 146, 106, .06), transparent 60%),
    radial-gradient(1100px 700px at 50% 115%, rgba(169, 131, 75, .05), transparent 60%),
    var(--ink);
  background-color: var(--ink);
  color: var(--cream);
  font-family: var(--body-font);
  font-size: 17.5px;
  line-height: 1.65;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; line-height: 1.15; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
.se-wrap { max-width: 1200px; margin: 0 auto; padding: 0 22px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--parch); color: var(--parch-ink); padding: 10px 16px; z-index: 999; }
.skip-link:focus { left: 10px; top: 10px; }

/* Small-caps label */
.se-label { font-family: var(--body-font); font-weight: 500; text-transform: uppercase; letter-spacing: .22em; font-size: .74rem; color: var(--gold); }

/* Buttons */
.se-btn {
  display: inline-block; font-family: var(--body-font); font-weight: 500;
  text-transform: uppercase; letter-spacing: .18em; font-size: .78rem;
  padding: 15px 30px 13px; text-decoration: none; text-align: center;
  background: var(--parch); color: var(--parch-ink) !important;
  border: 1px solid var(--parch); border-radius: 2px; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.se-btn:hover { background: var(--gold); border-color: var(--gold); color: #1c1409 !important; }
.se-btn--ghost { background: transparent; color: var(--cream) !important; border-color: var(--line-strong); }
.se-btn--ghost:hover { background: var(--parch); border-color: var(--parch); color: var(--parch-ink) !important; }
.se-btn--dark { background: var(--parch-ink); border-color: var(--parch-ink); color: var(--parch-2) !important; }
.se-btn--dark:hover { background: #46351d; border-color: #46351d; color: var(--parch-2) !important; }

/* ========== Announcement bar ========== */
.se-announce {
  background: var(--parch); color: var(--parch-ink);
  text-align: center; padding: 8px 14px;
  font-size: .74rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 500;
}
.se-announce .star { color: var(--gold-deep); letter-spacing: 0; }

/* ========== Header ========== */
.se-header {
  position: sticky; top: 0; z-index: 90;
  background: rgba(20, 13, 8, .96);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.se-header-inner { display: flex; align-items: center; gap: 26px; padding: 12px 22px; max-width: 1340px; margin: 0 auto; }
.se-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; margin-right: auto; }
.se-brand img { width: 58px; height: 58px; display: block; }
.se-brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.se-brand-name { font-family: var(--serif); font-weight: 600; font-size: 1.32rem; letter-spacing: .1em; color: var(--cream); text-transform: uppercase; }
.se-brand-sub { font-size: .62rem; letter-spacing: .42em; text-transform: uppercase; color: var(--gold); margin-top: 3px; }
.se-nav { display: flex; align-items: center; gap: 4px; }
.se-nav > ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.se-nav a {
  display: block; padding: 10px 13px; text-decoration: none;
  text-transform: uppercase; letter-spacing: .17em; font-size: .78rem; font-weight: 500;
  color: var(--dim); transition: color .15s ease;
}
.se-nav a:hover, .se-nav li:hover > a { color: var(--cream); }
.se-nav .menu-item-has-children { position: relative; }
.se-nav .sub-menu {
  position: absolute; top: 100%; left: 0; min-width: 280px;
  background: var(--ink-2); border: 1px solid var(--line); border-radius: 4px;
  list-style: none; margin: 0; padding: 10px 0;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
}
.se-nav .menu-item-has-children:hover > .sub-menu,
.se-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.se-nav .sub-menu a { padding: 8px 20px; letter-spacing: .1em; font-size: .76rem; text-transform: none; font-size: .92rem; letter-spacing: .02em; }
.se-nav .sub-menu .sep { border-top: 1px solid var(--line); margin: 8px 0; }
.se-icons { display: flex; align-items: center; gap: 6px; }
.se-icons a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--dim); position: relative; }
.se-icons a:hover { color: var(--cream); }
.se-icons svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.se-cart-count {
  position: absolute; top: 3px; right: 1px; min-width: 16px; height: 16px; padding: 0 4px;
  background: var(--gold); color: #1c1409; border-radius: 999px;
  font-size: .62rem; font-weight: 700; line-height: 16px; text-align: center; font-family: Arial, sans-serif;
}
.se-burger { display: none; background: none; border: 0; color: var(--cream); width: 42px; height: 42px; cursor: pointer; padding: 0; }
.se-burger svg { width: 24px; height: 24px; stroke: currentColor; stroke-width: 1.6; fill: none; }

/* Mobile nav panel */
.se-mobile-nav { display: none; }
@media (max-width: 1020px) {
  .se-nav { display: none; }
  .se-burger { display: block; }
  .se-brand img { width: 48px; height: 48px; }
  .se-brand-name { font-size: 1.1rem; }
  .se-mobile-nav {
    display: none; position: fixed; inset: 0; top: 0; z-index: 200;
    background: rgba(14, 9, 5, .98); overflow-y: auto; padding: 20px 26px 60px;
  }
  body.se-nav-open .se-mobile-nav { display: block; }
  body.se-nav-open { overflow: hidden; }
  .se-mobile-close { background: none; border: 0; color: var(--dim); font-size: 2rem; line-height: 1; padding: 8px; cursor: pointer; position: absolute; top: 14px; right: 16px; }
  .se-mobile-nav ul { list-style: none; margin: 40px 0 0; padding: 0; }
  .se-mobile-nav > ul > li { border-bottom: 1px solid var(--line); }
  .se-mobile-nav > ul > li > a {
    display: block; padding: 16px 0; text-decoration: none;
    font-family: var(--serif); font-size: 1.5rem; color: var(--cream); letter-spacing: .06em;
  }
  .se-mobile-nav .sub-menu { margin: 0 0 14px; padding: 0 0 0 6px; }
  .se-mobile-nav .sub-menu a { display: block; padding: 7px 0; text-decoration: none; color: var(--dim); font-size: 1rem; }
  .se-mobile-nav .sub-menu a:hover { color: var(--cream); }
}

/* Minimal checkout header */
.se-header--minimal .se-header-inner { justify-content: center; }
.se-header--minimal .se-brand { margin-right: 0; }
.se-secure-note { text-align: center; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--parch-dim); padding: 10px 0 2px; }

/* ========== Torn parchment bands ========== */
.se-band { position: relative; background: var(--parch); color: var(--parch-ink); }
.se-band::before, .se-band::after {
  content: ""; position: absolute; left: 0; right: 0; height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 16' preserveAspectRatio='none'%3E%3Cpath fill='%23eadcc0' d='M0 16 L0 10 L13 7 L36 11 L58 4 L81 10 L108 6 L130 11 L155 3 L177 9 L203 5 L225 10 L250 4 L272 10 L298 6 L319 11 L340 7 L340 16 Z'/%3E%3C/svg%3E");
  background-size: 340px 16px; background-repeat: repeat-x;
}
.se-band::before { top: -15px; }
.se-band::after { bottom: -15px; transform: scaleY(-1); }
.se-band--flat-top::before { display: none; }
.se-band--flat-bottom::after { display: none; }

/* ========== Front page ========== */
/* Hero */
.se-hero-home {
  position: relative; overflow: hidden;
  min-height: 74vh; display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 90px 22px 110px;
  background:
    radial-gradient(ellipse 900px 480px at 50% -8%, rgba(201, 167, 107, .17), transparent 62%),
    radial-gradient(ellipse 700px 420px at 12% 108%, rgba(131, 146, 106, .12), transparent 60%),
    radial-gradient(ellipse 700px 420px at 88% 108%, rgba(169, 131, 75, .1), transparent 60%),
    linear-gradient(180deg, #1a1209 0%, #17100a 55%, #140d07 100%);
}
.se-hero-home .se-hero-photo {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center 38%;
  opacity: .34; filter: sepia(.28) saturate(.72) brightness(.62) contrast(1.05);
}
.se-hero-home::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: radial-gradient(ellipse 120% 90% at 50% 45%, transparent 40%, rgba(15, 9, 4, .82) 100%);
}
.se-hero-content { position: relative; z-index: 2; max-width: 780px; }
.se-hero-sprig { color: var(--gold); opacity: .9; margin-bottom: 18px; }
.se-hero-sprig svg { width: 54px; height: 64px; }
.se-hero-title {
  font-size: clamp(2.9rem, 8vw, 5.4rem); letter-spacing: .06em; text-transform: uppercase;
  color: var(--parch-2); margin: 0 0 18px;
  text-shadow: 0 2px 30px rgba(0, 0, 0, .55);
}
.se-hero-tag { font-size: clamp(.86rem, 2vw, 1.05rem); letter-spacing: .34em; text-transform: uppercase; color: var(--cream); margin-bottom: 8px; }
.se-hero-star { color: var(--gold); font-size: 1rem; margin-bottom: 34px; }
/* Intro band */
.se-intro { text-align: center; padding: 46px 22px 42px; z-index: 3; }
.se-intro h2 { font-size: clamp(1.35rem, 3.4vw, 1.9rem); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 12px; }
.se-intro h2 .star { color: var(--gold-deep); }
.se-intro p { max-width: 560px; margin: 0 auto; color: var(--parch-dim); font-size: 1.04rem; }
.se-intro .se-intro-sprig { position: absolute; right: 6%; bottom: 12px; color: var(--gold-deep); opacity: .5; }
.se-intro .se-intro-sprig svg { width: 70px; height: 84px; }

/* Category cards */
.se-cats { padding: 84px 0 30px; }
.se-cats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .se-cats-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; } }
.se-cat-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 4px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .25s ease, border-color .25s ease;
}
.se-cat-card:hover { transform: translateY(-4px); border-color: var(--line-strong); }
.se-cat-card .se-cat-img { aspect-ratio: 4 / 3.2; overflow: hidden; border-bottom: 1px solid var(--line); }
.se-cat-card .se-cat-img img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.18) saturate(.85) brightness(.9); transition: transform .5s ease; }
.se-cat-card:hover .se-cat-img img { transform: scale(1.04); }
.se-cat-body { padding: 24px 24px 28px; display: flex; flex-direction: column; flex: 1; }
.se-cat-body h3 { font-size: 1.5rem; letter-spacing: .1em; text-transform: uppercase; margin: 10px 0 8px; color: var(--parch-2); }
.se-cat-body p { color: var(--dim); font-size: .98rem; flex: 1; }
.se-cat-body .se-btn { align-self: flex-start; padding: 12px 22px 10px; font-size: .72rem; }

/* Story */
.se-story { padding: 60px 0 90px; }
.se-story-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; }
@media (max-width: 900px) { .se-story-grid { grid-template-columns: 1fr; } }
.se-story-photo {
  position: relative; border-radius: 4px; overflow: hidden; border: 1px solid var(--line-strong);
  max-width: 420px; margin: 0 auto; justify-self: center; align-self: center; width: 100%;
}
.se-story-photo::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(201, 167, 107, .35); border-radius: 2px; pointer-events: none; }
.se-story-photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: sepia(.24) saturate(.8) brightness(.82); }
.se-story-card { background: var(--parch); color: var(--parch-ink); border-radius: 3px; padding: 44px 42px; position: relative; box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
.se-story-card h2 { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 16px; }
.se-story-card p { color: #4a3c26; font-size: 1.02rem; }
.se-story-card .se-story-sprig { position: absolute; right: 24px; bottom: 18px; color: var(--gold-deep); opacity: .45; }
.se-story-card .se-story-sprig svg { width: 74px; height: 90px; }

/* Reel */
.se-reel { padding: 24px 0 84px; }
.se-reel-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 46px; align-items: center; }
@media (max-width: 860px) { .se-reel-grid { grid-template-columns: 1fr; gap: 30px; } .se-reel-text { text-align: center; } }
.se-reel-video {
  position: relative; max-width: 350px; margin: 0 auto; border-radius: 14px; overflow: hidden;
  border: 1px solid var(--line-strong); box-shadow: 0 26px 60px rgba(0, 0, 0, .5); background: #000;
}
.se-reel-video::after { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(201, 167, 107, .22); border-radius: 9px; pointer-events: none; }
.se-reel-video video { display: block; width: 100%; height: auto; }
.se-reel-text h2 { font-size: clamp(1.5rem, 3.4vw, 2.1rem); letter-spacing: .08em; text-transform: uppercase; color: var(--parch-2); margin: 10px 0 12px; }
.se-reel-text p { color: var(--dim); font-size: 1.02rem; max-width: 440px; margin-bottom: 22px; }
@media (max-width: 860px) { .se-reel-text p { margin-left: auto; margin-right: auto; } }

/* Live events (Simple Calendar) */
.se-live { padding: 52px 22px 58px; }
.se-live-head { text-align: center; max-width: 640px; margin: 0 auto 32px; }
.se-live-head h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); letter-spacing: .16em; text-transform: uppercase; }
.se-live-head h2 .star { color: var(--gold-deep); }
.se-live-head p { color: var(--parch-dim); }
.se-live-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 26px; align-items: start; }
@media (max-width: 900px) { .se-live-grid { grid-template-columns: 1fr; } }
.se-live-cal, .se-live-map { background: #fff; border: 1px solid var(--parch-line); border-radius: 6px; padding: 16px; overflow: hidden; }
.se-live .simcal-calendar { margin: 0 !important; }
.se-live a { color: #5a4526; }
/* Compact event list */
.se-live-cal .simcal-events-list-container dt, .se-live-cal dt {
  background: var(--parch-ink) !important; color: var(--parch-2) !important;
  display: inline-block; padding: 4px 12px 3px; font-size: .72rem !important;
  letter-spacing: .12em; text-transform: uppercase; font-weight: 500; border-radius: 2px;
  margin: 14px 0 6px !important;
}
.se-live-cal dd { margin: 0 0 6px !important; border-bottom: 1px solid #eee3c8; padding-bottom: 10px; }
.se-live-cal .simcal-event-title { font-family: var(--serif); font-size: 1.05rem !important; font-weight: 600; }
.se-live-cal .simcal-event-start-time, .se-live-cal .simcal-event-start-date,
.se-live-cal .simcal-event-end-time, .se-live-cal .simcal-event-address {
  font-size: .84rem !important; color: var(--parch-dim) !important;
}
.se-live-cal .simcal-event-description {
  font-size: .88rem; color: #5c4c33; line-height: 1.5; margin: 4px 0 !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.se-live-cal .simcal-event-details a { font-size: .8rem; letter-spacing: .06em; }
.se-live-cal .simcal-events { list-style: none; margin: 0 !important; padding: 0 !important; }
/* Show only the first two dates until expanded */
.se-live-cal:not(.se-cal-open) dt:nth-of-type(n+3),
.se-live-cal:not(.se-cal-open) dd:nth-of-type(n+3) { display: none; }
.se-cal-more {
  display: block; width: 100%; margin-top: 12px; padding: 10px 0 9px;
  background: none; border: 1px solid var(--parch-line); border-radius: 999px;
  font-family: var(--body-font); font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--parch-dim); cursor: pointer; transition: all .18s ease;
}
.se-cal-more:hover { border-color: var(--gold-deep); color: var(--gold-deep); }

/* Journal */
.se-journal { padding: 20px 0 90px; }
.se-journal-head { text-align: center; margin-bottom: 40px; }
.se-journal-head h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); letter-spacing: .18em; text-transform: uppercase; }
.se-journal-head h2 .star { color: var(--gold); }
.se-journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .se-journal-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; } }
.se-journal-card {
  display: flex; flex-direction: column; text-decoration: none;
  background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 26px 26px 24px;
  transition: transform .25s ease, border-color .25s ease; position: relative;
}
.se-journal-card::before { content: ""; height: 3px; background: linear-gradient(90deg, var(--gold), transparent 70%); position: absolute; top: 0; left: 0; right: 40%; }
.se-journal-card:hover { transform: translateY(-4px); border-color: var(--line-strong); }
.se-journal-card h3 { font-size: 1.35rem; color: var(--parch-2); margin: 12px 0 10px; }
.se-journal-card .se-jexcerpt { color: var(--dim); font-size: .96rem; flex: 1; margin-bottom: 16px; }
.se-journal-card .se-jmore { font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.se-journal-more { text-align: center; margin-top: 38px; }

/* Newsletter */
.se-news { text-align: center; padding: 60px 22px 64px; }
.se-news h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); letter-spacing: .16em; text-transform: uppercase; margin-bottom: 12px; }
.se-news p { color: var(--parch-dim); max-width: 480px; margin: 0 auto 26px; }
.se-news-form { display: flex; gap: 10px; max-width: 470px; margin: 0 auto; }
.se-news-form input[type="email"] {
  flex: 1; min-width: 0; padding: 14px 16px; font-family: var(--body-font); font-size: 1rem;
  background: var(--parch-2); color: var(--parch-ink); border: 1px solid var(--parch-line); border-radius: 2px;
}
.se-news-form input[type="email"]:focus { outline: 2px solid var(--gold-deep); outline-offset: 1px; }
.se-news-form .se-btn { white-space: nowrap; }
.se-news-msg { margin-top: 14px; font-size: .95rem; min-height: 1.4em; }
.se-news-msg.ok { color: #3e5233; font-weight: 500; }
.se-news-msg.err { color: #8c3b2e; }
.se-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
@media (max-width: 560px) { .se-news-form { flex-direction: column; } }

/* Instagram feed */
.se-ig { padding: 72px 0 84px; }
.se-ig .se-journal-head { margin-bottom: 26px; }
.se-ig-handle { margin: 6px 0 0; }
.se-ig-handle a { color: var(--gold); text-decoration: none; letter-spacing: .12em; font-size: .86rem; text-transform: uppercase; }
.se-ig-handle a:hover { color: var(--cream); }
.se-ig #sb_instagram { padding-bottom: 0 !important; }
.se-ig #sb_instagram .sbi_photo_wrap { border-radius: 4px; overflow: hidden; }

/* ========== Footer ========== */
.se-footer { background: #120c07; border-top: 1px solid var(--line); margin-top: 0; }
.se-footer-inner { max-width: 1200px; margin: 0 auto; padding: 58px 22px 30px; }
.se-footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--line); }
@media (max-width: 820px) { .se-footer-grid { grid-template-columns: 1fr; gap: 30px; } }
.se-footer-brand { display: flex; align-items: flex-start; gap: 16px; }
.se-footer-brand img { width: 74px; height: 74px; }
.se-footer-brand .se-ftag { font-family: var(--serif); font-size: 1.2rem; color: var(--cream); margin: 4px 0 6px; }
.se-footer-brand p { color: var(--dim); font-size: .92rem; margin: 0; max-width: 320px; }
.se-footer h4 { font-family: var(--body-font); font-weight: 500; font-size: .76rem; letter-spacing: .24em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }
.se-footer ul { list-style: none; margin: 0; padding: 0; }
.se-footer ul a { display: inline-block; padding: 5px 0; color: var(--dim); text-decoration: none; font-size: .98rem; }
.se-footer ul a:hover { color: var(--cream); }
.se-footer-bottom { padding-top: 26px; text-align: center; }
.se-footer-bottom .se-disclaimer { color: #7d6f57; font-size: .8rem; max-width: 720px; margin: 0 auto 14px; }
.se-footer-bottom .se-copy { color: #7d6f57; font-size: .82rem; letter-spacing: .06em; }
.se-footer-bottom .se-copy .star { color: var(--gold-deep); }
.se-footer-bottom .se-credit { margin: 10px 0 0; font-size: .74rem; letter-spacing: .08em; color: #5f5340; }
.se-footer-bottom .se-credit a { color: #8d7c5e; text-decoration: none; }
.se-footer-bottom .se-credit a:hover { color: var(--gold); }

/* ========== Interior pages ========== */
.se-page-band { text-align: center; padding: 54px 22px 46px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #1b1209, var(--ink)); }
.se-page-band h1 { font-size: clamp(1.9rem, 4.6vw, 2.9rem); letter-spacing: .12em; text-transform: uppercase; margin: 0; color: var(--parch-2); }
.se-page-band h1::before { content: "\2738\00a0\00a0"; color: var(--gold); font-size: .55em; vertical-align: .25em; }
.se-page-band h1::after { content: "\00a0\00a0\2738"; color: var(--gold); font-size: .55em; vertical-align: .25em; }
.se-page-band .se-crumbs { margin-top: 10px; font-size: .82rem; color: var(--dim); }
.se-page-band .se-crumbs a { color: var(--dim); }
.se-page-band .se-crumbs a:hover { color: var(--cream); }
.se-cat-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 900px; margin: 24px auto 0; }
.se-chip {
  display: inline-block; padding: 7px 16px 6px; border: 1px solid var(--line-strong); border-radius: 999px;
  color: var(--dim); text-decoration: none; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase;
  transition: all .18s ease; background: rgba(36, 26, 17, .5);
}
.se-chip:hover { color: var(--cream); border-color: var(--gold); }
.se-chip.is-active { background: var(--parch); color: var(--parch-ink); border-color: var(--parch); }
.se-content-zone { padding: 56px 0 90px; }
.se-panel { background: var(--parch-2); color: var(--parch-ink); border-radius: 4px; padding: clamp(26px, 4vw, 52px); }
.se-panel a { color: #5a4526; }
.se-panel h1, .se-panel h2, .se-panel h3 { color: var(--parch-ink); }

/* Light shell for builder-made pages (About/Contact via Elementor) */
body.se-light-page { background: #f6f0e2; color: #2c2013; }
body.se-light-page .se-page-band { background: none; border-bottom: 1px solid #e3d7bc; }
body.se-light-page .se-page-band h1 { color: #2c2013; }

/* Blog pages keep their light editorial look inside the dark shell */
body.single-se_article, body.post-type-archive-se_article, body.tax-se_topic { background: #f7f3ea; color: #26200f; }
/* se-blog's topic pills reuse the .se-chip class — restyle for the light blog background */
body.single-se_article .se-chip, body.post-type-archive-se_article .se-chip, body.tax-se_topic .se-chip {
  background: #fff; color: #3e4f35; border: 1px solid #cbd2ba;
}
body.single-se_article .se-chip:hover, body.post-type-archive-se_article .se-chip:hover, body.tax-se_topic .se-chip:hover {
  background: #5f7351; color: #fff; border-color: #5f7351;
}

/* ========== WooCommerce ========== */
/* Shop / archive grid — dark cards */
.se-shop-zone { padding: 42px 0 90px; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 0 !important; padding: 0; list-style: none; }
/* Woo's legacy clearfix pseudo-elements become phantom grid items — kill them */
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
@media (max-width: 1080px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
.woocommerce ul.products li.product {
  width: 100% !important; float: none !important; margin: 0 !important;
  background: var(--card); border: 1px solid var(--line); border-radius: 4px;
  padding: 0 0 22px !important; text-align: center; overflow: hidden;
  transition: transform .25s ease, border-color .25s ease;
  display: flex; flex-direction: column; position: relative;
}
.woocommerce ul.products li.product::after {
  content: ""; position: absolute; inset: 7px; pointer-events: none;
  border: 1px solid rgba(201, 167, 107, .16); border-radius: 2px;
}
.woocommerce-cart .cross-sells li.product::after { display: none; }
.woocommerce ul.products li.product:hover { transform: translateY(-4px); border-color: var(--line-strong); }
.woocommerce ul.products li.product a img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin: 0 0 12px !important;
  filter: sepia(.15) saturate(.88) brightness(.92); border-bottom: 1px solid var(--line);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--serif); font-size: 1.08rem !important; font-weight: 600; color: var(--parch-2);
  padding: 0 12px !important; line-height: 1.25;
}
.woocommerce ul.products li.product .price { color: var(--gold) !important; font-size: .9rem !important; font-family: var(--body-font); margin: 4px 0 10px !important; }
.woocommerce ul.products li.product .price del { color: var(--dim) !important; opacity: .7; }
.woocommerce ul.products li.product .button {
  margin: 0 auto !important; background: var(--parch); color: var(--parch-ink);
  border: 1px solid var(--parch); border-radius: 999px;
  text-transform: uppercase; letter-spacing: .12em; font-size: .66rem; font-weight: 500;
  padding: 8px 18px; transition: all .2s ease; position: relative; z-index: 1;
}
.woocommerce ul.products li.product .button:hover { background: var(--gold); color: #1c1409; border-color: var(--gold); }
.woocommerce ul.products li.product .added_to_cart { color: var(--gold); font-size: .8rem; margin-top: 8px; }
.woocommerce ul.products li.product .se-more-info {
  display: block; margin-top: 9px; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--dim); text-decoration: none; position: relative; z-index: 1;
}
.woocommerce ul.products li.product .se-more-info:hover { color: var(--gold); }
.se-woo-panel .se-more-info { color: var(--parch-dim); }
.woocommerce-cart .cross-sells li.product .se-more-info { margin: 0; flex: 0 0 auto; font-size: .6rem; }
.woocommerce span.onsale {
  background: var(--gold) !important; color: #1c1409 !important; font-weight: 600;
  border-radius: 999px; line-height: 1; padding: 8px 12px; min-width: 0; min-height: 0;
  font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
  top: 12px; left: 12px;
}
.woocommerce .woocommerce-result-count { color: var(--dim); }
.woocommerce .woocommerce-ordering select { background: var(--card); color: var(--cream); border: 1px solid var(--line-strong); padding: 8px 10px; border-radius: 3px; font-family: var(--body-font); }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 3px; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  background: var(--card); color: var(--cream); border: 1px solid var(--line); border-radius: 3px; padding: 10px 15px;
}
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--parch); color: var(--parch-ink); }

/* Single product & light Woo panels (cart, account) */
.se-woo-panel { background: var(--parch-2); color: var(--parch-ink); border-radius: 4px; padding: clamp(22px, 4vw, 48px); }
.se-woo-panel a { color: #5a4526; }
.se-woo-panel h1, .se-woo-panel h2, .se-woo-panel h3 { color: var(--parch-ink); }
.se-woo-panel .woocommerce-breadcrumb { color: var(--parch-dim) !important; font-size: .85rem; margin-bottom: 20px !important; }
.se-woo-panel .woocommerce-breadcrumb a { color: var(--parch-dim); }
.woocommerce div.product .product_title { font-size: clamp(1.7rem, 3.6vw, 2.4rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: #8a6a35 !important; font-size: 1.4rem !important; font-family: var(--body-font); }
.woocommerce div.product .woocommerce-product-details__short-description { color: #4a3c26; }
.woocommerce div.product div.images img { border-radius: 4px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--parch-line) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--parch-dim) !important; text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--parch-ink) !important; border-bottom: 2px solid var(--gold-deep); }
.woocommerce div.product form.cart .quantity .qty { background: #fff; border: 1px solid var(--parch-line); border-radius: 3px; padding: 10px 6px; font-family: var(--body-font); }

/* Woo buttons on light panels */
.se-woo-panel .button, .se-woo-panel button.button, .se-woo-panel .button.alt,
.se-panel .button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
  background: var(--parch-ink) !important; color: var(--parch-2) !important;
  border-radius: 2px; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem !important;
  font-weight: 500 !important; padding: 14px 26px !important; border: 0;
  font-family: var(--body-font) !important; transition: background .2s ease;
}
.se-woo-panel .button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover { background: #46351d !important; color: var(--parch-2) !important; }
.se-woo-panel .button:disabled, .se-woo-panel .button.disabled,
.woocommerce button.button:disabled, .woocommerce button.button[disabled]:disabled,
.woocommerce button.button:disabled[disabled] {
  background: #ddd1b6 !important; color: #6d5c42 !important; opacity: 1 !important;
}

/* Forms on light panels */
.se-woo-panel input[type="text"], .se-woo-panel input[type="email"], .se-woo-panel input[type="tel"],
.se-woo-panel input[type="password"], .se-woo-panel input[type="number"], .se-woo-panel textarea, .se-woo-panel select {
  background: #fff; color: var(--parch-ink); border: 1px solid var(--parch-line); border-radius: 3px;
  padding: 11px 12px; font-family: var(--body-font); font-size: .98rem; width: 100%;
}
.se-woo-panel input:focus, .se-woo-panel textarea:focus, .se-woo-panel select:focus { outline: 2px solid var(--gold-deep); outline-offset: 0; }
.se-woo-panel label { font-size: .9rem; color: #4a3c26; }

/* Cart table */
.woocommerce table.shop_table { border: 1px solid var(--parch-line); border-radius: 4px; border-collapse: separate; }
.woocommerce table.shop_table th { color: var(--parch-ink); text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; }
.woocommerce table.shop_table td { border-top: 1px solid #e5d9bd; }
.woocommerce table.shop_table td.product-name a { color: var(--parch-ink); font-family: var(--serif); font-size: 1.1rem; }
.woocommerce a.remove { color: #8c3b2e !important; }
.woocommerce a.remove:hover { background: #8c3b2e; color: #fff !important; }
.woocommerce-cart table.cart img { width: 64px; border-radius: 4px; }
.woocommerce .cart_totals h2 { font-size: 1.3rem; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background: #fff !important; color: var(--parch-ink) !important;
  border-top-color: var(--gold-deep) !important; border-radius: 3px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--gold-deep) !important; }
.woocommerce-error { border-top-color: #8c3b2e !important; }
.woocommerce-error::before { color: #8c3b2e !important; }
.woocommerce-message a.button, .woocommerce-info a.button { background: var(--parch-ink) !important; color: var(--parch-2) !important; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid #e5d9bd; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 4px; text-decoration: none; color: var(--parch-dim); text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--parch-ink); }

/* ========== Ported Sacred Essentials fixes (from Astra customizer CSS) ========== */
/* Hide express pay on out-of-stock product pages */
body.single-product .product.outofstock .wc-stripe-payment-request-button,
body.single-product .product.outofstock .wcpay-payment-request-wrapper,
body.single-product .product.outofstock .wc-ppcp-smart-button-container,
body.single-product .product.outofstock .paypal-buttons,
body.single-product .product.outofstock .express-checkout-button { display: none !important; }

/* Hide Stripe express top separator */
#wc-stripe-express-checkout-button-separator { display: none !important; }

/* Order tips (order-tip-woo) — recolored to theme */
.order_tip_title { font-size: 20px; font-weight: 700; color: var(--parch-ink); margin: 0 0 16px; text-align: center; font-family: var(--serif); }
#wooot_order_tip_form { max-width: 340px; margin: 0 auto; }
button.woo_order_tip {
  display: block; width: 100%; max-width: 350px; margin: 10px auto; padding: 14px 0;
  font-size: 15px; font-weight: 600; line-height: 1; border-radius: 10px; border: none;
  color: #fff; background: var(--sage); cursor: pointer;
  transition: transform .2s ease, opacity .2s ease; box-shadow: 0 2px 6px rgba(0, 0, 0, .08);
}
button.woo_order_tip:hover { opacity: .93; transform: translateY(-1px); }
button.woo_order_tip.active { background: #2c2013; }
button.woo_order_tip[data-tip-type="2"] { background: var(--sage); }
button.woo_order_tip[data-tip-type="3"] {
  background: none !important; color: #888 !important; font-size: 12px; padding: 0; margin-top: 8px;
  border: none; text-decoration: underline; cursor: pointer; box-shadow: none; width: auto; display: inline-block; transform: none;
}
button.woo_order_tip[data-tip-type="3"]:hover { color: #555; }

/* CartFlows checkout/thank-you steps: near-neutral light shell, content untouched */
body.cartflows_step-template { background: #f6f1e7; color: #2c2013; }
body.cartflows_step-template .site-content, body.cartflows_step-template .entry-content { margin-top: 0 !important; padding-top: 0 !important; }

/* Compact cart cross-sells — rewritten for default Woo loop markup */
.woocommerce-cart .cross-sells { margin-top: 1.6em; }
.woocommerce-cart .cross-sells > h2 { font-size: 1.15rem; margin-bottom: .6em; }
.woocommerce-cart .cross-sells ul.products, .woocommerce-cart .cross-sells ul.products[class*="columns-"] { display: block !important; width: 100% !important; margin: 0 !important; }
.woocommerce-cart .cross-sells ul.products li.product {
  display: flex !important; flex-direction: row; align-items: center !important; gap: 12px;
  width: 100% !important; max-width: 100% !important; float: none !important; clear: both;
  margin: 0 0 10px !important; padding: 10px 12px !important; overflow: visible;
  background: #fff; border: 1px solid rgba(0, 0, 0, .09); border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04); text-align: left !important; transform: none !important;
}
.woocommerce-cart .cross-sells li.product::before {
  content: "\2713"; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; color: #fff; background: var(--ast-global-color-0, #6b8f71);
}
.woocommerce-cart .cross-sells li.product > a.woocommerce-LoopProduct-link {
  flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; text-decoration: none; flex-wrap: wrap;
}
/* Size pills drop to their own line under the title, aligned past the thumbnail */
.woocommerce-cart .cross-sells li.product .cfvsw_variations_form,
.woocommerce-cart .cross-sells li.product .cfvsw-shop-container { flex: 1 1 100%; min-width: 100%; order: 9; }
.woocommerce-cart .cross-sells li.product .cfvsw-shop-variations {
  justify-content: flex-start; padding: 0; margin: 2px 0 0 60px;
}
.woocommerce-cart .cross-sells li.product a img {
  width: 48px !important; height: 48px !important; flex: 0 0 48px; object-fit: cover;
  border-radius: 8px; margin: 0 !important; display: block; aspect-ratio: auto; border: 0; filter: none;
}
.woocommerce-cart .cross-sells li.product .woocommerce-loop-product__title {
  font-size: .95rem !important; line-height: 1.3 !important; margin: 0 !important; padding: 0 !important;
  font-family: var(--body-font); color: var(--parch-ink) !important; flex: 1;
}
.woocommerce-cart .cross-sells li.product .price { font-size: .88rem !important; margin: 0 !important; color: #8a6a35 !important; white-space: nowrap; }
.woocommerce-cart .cross-sells li.product .star-rating { display: none !important; }
.woocommerce-cart .cross-sells li.product .button {
  margin: 0 !important; padding: 8px 14px !important; font-size: .74rem !important;
  line-height: 1 !important; border-radius: 999px !important; white-space: nowrap;
}
.woocommerce-cart .cross-sells li.product .added_to_cart { font-size: .8rem; white-space: nowrap; }

/* ========== Variation swatches (CartFlows cfvsw) ========== */
.cfvsw-shop-variations { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 2px 0 10px; padding: 0 10px; }
.cfvsw-swatches [class*="cfvsw"], .cfvsw-label-option {
  background: transparent !important; border: 1px solid var(--line-strong) !important;
  color: var(--cream) !important; border-radius: 999px !important;
  padding: 3px 10px !important; font-size: .68rem !important; letter-spacing: .06em;
  line-height: 1.4 !important; cursor: pointer; min-width: 0 !important; min-height: 0 !important;
  height: auto !important; width: auto !important; box-shadow: none !important;
  transition: all .18s ease;
}
.cfvsw-label-option .cfvsw-swatch-inner { color: inherit !important; font-size: inherit !important; }
.cfvsw-label-option:hover { border-color: var(--gold) !important; color: var(--gold) !important; }
.cfvsw-label-option.cfvsw-selected-swatch, .cfvsw-label-option[aria-checked="true"] {
  background: var(--parch) !important; color: var(--parch-ink) !important; border-color: var(--parch) !important;
}
/* Swatches on light panels (single product / cart) */
.se-woo-panel .cfvsw-label-option {
  background: #fff !important; border-color: var(--parch-line) !important; color: var(--parch-ink) !important;
}
.se-woo-panel .cfvsw-label-option:hover { border-color: var(--gold-deep) !important; color: var(--gold-deep) !important; }
.se-woo-panel .cfvsw-label-option.cfvsw-selected-swatch, .se-woo-panel .cfvsw-label-option[aria-checked="true"] {
  background: var(--parch-ink) !important; color: var(--parch-2) !important; border-color: var(--parch-ink) !important;
}

/* Star ratings — gold */
.woocommerce .star-rating { color: var(--gold) !important; }
.woocommerce .star-rating::before { color: rgba(201, 167, 107, .3) !important; }
.woocommerce .star-rating span::before { color: var(--gold) !important; }
.woocommerce ul.products li.product .star-rating { margin: 4px auto 2px !important; }

/* ========== About page ========== */
.se-about-intro { padding: 70px 0 40px; }
.se-about-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .se-about-grid { grid-template-columns: 1fr; gap: 26px; } }
.se-letter { background: var(--parch-2); color: var(--parch-ink); border-radius: 3px; padding: clamp(28px, 4vw, 48px); position: relative; box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
.se-letter p { color: #4a3c26; font-size: 1.03rem; }
.se-letter p.se-greeting { font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--parch-ink); }
.se-letter p:nth-of-type(2)::first-letter {
  font-family: var(--serif); font-size: 3.1em; line-height: .82; float: left;
  padding: 6px 10px 0 0; color: var(--gold-deep);
}
.se-signoff { font-family: var(--serif); font-style: italic; font-size: 1.5rem; color: var(--parch-ink); margin-top: 18px; }
.se-signoff small { display: block; font-family: var(--body-font); font-style: normal; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--parch-dim); margin-top: 6px; }
.se-stats { text-align: center; padding: 46px 22px 40px; }
.se-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; max-width: 900px; margin: 0 auto; }
@media (max-width: 700px) { .se-stats-grid { grid-template-columns: 1fr; gap: 20px; } }
.se-stat b { display: block; font-family: var(--serif); font-weight: 600; font-size: 2.6rem; color: var(--gold-deep); line-height: 1; margin-bottom: 8px; }
.se-stat span { font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; color: var(--parch-dim); }
.se-why { text-align: center; padding: 76px 22px 30px; max-width: 720px; margin: 0 auto; }
.se-why .se-hero-sprig { margin-bottom: 12px; }
.se-why h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); letter-spacing: .16em; text-transform: uppercase; }
.se-why p { color: var(--dim); font-size: 1.05rem; }
.se-find { padding: 30px 0 80px; }
.se-find-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 760px) { .se-find-grid { grid-template-columns: 1fr; } }
.se-find-card {
  display: block; text-decoration: none; background: var(--card); border: 1px solid var(--line);
  border-radius: 4px; padding: 24px 26px; transition: transform .25s ease, border-color .25s ease; position: relative;
}
.se-find-card::before { content: "\2738"; color: var(--gold); font-size: .9rem; position: absolute; top: 22px; right: 22px; opacity: .7; }
.se-find-card:hover { transform: translateY(-3px); border-color: var(--line-strong); }
.se-find-card h3 { font-size: 1.3rem; color: var(--parch-2); margin-bottom: 6px; }
.se-find-card p { color: var(--dim); font-size: .95rem; margin: 0; }
.se-about-cta { text-align: center; padding: 56px 22px 62px; }
.se-about-cta .se-label { display: block; margin-bottom: 14px; }

/* ========== Contact page ========== */
.se-contact-zone { padding: 60px 0 90px; }
.se-contact-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 44px; }
@media (max-width: 820px) { .se-contact-cards { grid-template-columns: 1fr; } }
.se-contact-card { background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 26px; text-align: center; }
.se-contact-card .se-label { display: block; margin-bottom: 10px; }
.se-contact-card a { color: var(--parch-2); text-decoration: none; font-family: var(--serif); font-size: 1.25rem; }
.se-contact-card a:hover { color: var(--gold); }
.se-contact-card p { color: var(--dim); font-size: .92rem; margin: 8px 0 0; }
.se-faq { background: var(--parch-2); color: var(--parch-ink); border-radius: 4px; padding: clamp(26px, 4vw, 46px); }
.se-faq h2 { text-align: center; letter-spacing: .14em; text-transform: uppercase; font-size: clamp(1.3rem, 2.8vw, 1.7rem); margin-bottom: 26px; }
.se-faq details { border-bottom: 1px solid #e0d3b4; }
.se-faq summary {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 14px;
  font-family: var(--serif); font-weight: 600; font-size: 1.12rem; padding: 16px 2px; color: var(--parch-ink);
}
.se-faq summary::-webkit-details-marker { display: none; }
.se-faq summary::after { content: "+"; color: var(--gold-deep); font-size: 1.3rem; font-family: var(--body-font); flex: 0 0 auto; transition: transform .2s ease; }
.se-faq details[open] summary::after { transform: rotate(45deg); }
.se-faq details p { color: #4a3c26; padding: 0 2px 16px; margin: 0; }

/* ========== Product embeds inside journal articles ========== */
/* Keep the dark cards, fix the spacing: fixed-width cards, centered rows, no stretching */
.se-article .woocommerce ul.products, .se-shop-row .woocommerce ul.products,
.se-article ul.products, .se-shop-row ul.products {
  display: grid !important; grid-template-columns: repeat(auto-fit, 225px) !important;
  justify-content: center !important; gap: 18px !important; margin: 1.2em 0 1.8em !important;
}
/* A lone product inside the prose becomes a slim horizontal bar — inline with the reading flow */
.se-article .se-content ul.products:has(> li.product:only-child) {
  display: block !important; margin: 1.5em auto !important; max-width: 640px;
}
.se-article .se-content ul.products:has(> li.product:only-child) li.product {
  display: flex !important; flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap;
  max-width: none; width: 100%; padding: 12px 16px !important; text-align: left; overflow: visible;
}
.se-article .se-content ul.products:has(> li.product:only-child) li.product > a.woocommerce-LoopProduct-link {
  display: flex; align-items: center; gap: 14px; flex: 1 1 auto; min-width: 0; text-decoration: none; flex-wrap: wrap;
}
.se-article .se-content ul.products:has(> li.product:only-child) li.product a img {
  width: 76px !important; height: 76px !important; flex: 0 0 76px; aspect-ratio: 1 / 1;
  border-radius: 6px; border: 1px solid var(--line); margin: 0 !important;
}
.se-article .se-content ul.products:has(> li.product:only-child) li.product .woocommerce-loop-product__title {
  flex: 1 1 auto; min-width: 140px; padding: 0 !important; font-size: 1.05rem !important; text-align: left;
}
.se-article .se-content ul.products:has(> li.product:only-child) li.product .price { margin: 0 !important; white-space: nowrap; }
.se-article .se-content ul.products:has(> li.product:only-child) li.product .star-rating { display: none !important; }
.se-article .se-content ul.products:has(> li.product:only-child) li.product .button { margin: 0 !important; white-space: nowrap; }
.se-article .se-content ul.products:has(> li.product:only-child) li.product .se-more-info { margin: 0; flex: 0 0 auto; }
.se-article .se-content ul.products:has(> li.product:only-child) li.product .cfvsw_variations_form,
.se-article .se-content ul.products:has(> li.product:only-child) li.product .cfvsw-shop-container { flex: 1 1 100%; min-width: 100%; order: 9; }
.se-article .se-content ul.products:has(> li.product:only-child) li.product .cfvsw-shop-variations { justify-content: flex-start; padding: 0; margin: 2px 0 0 90px; }
.se-article ul.products li.product, .se-shop-row ul.products li.product {
  max-width: 225px; margin: 0 auto !important;
}
.se-article ul.products li.product a img, .se-shop-row ul.products li.product a img {
  aspect-ratio: 1 / 1; margin-bottom: 10px !important;
}
.se-article ul.products li.product .woocommerce-loop-product__title,
.se-shop-row ul.products li.product .woocommerce-loop-product__title { font-size: 1rem !important; }
.se-article ul.products li.product .price, .se-shop-row ul.products li.product .price { font-size: .84rem !important; }
.se-article ul.products li.product .button, .se-shop-row ul.products li.product .button { font-size: .62rem; padding: 7px 15px; }
@media (max-width: 560px) {
  .se-article .woocommerce ul.products, .se-shop-row .woocommerce ul.products,
  .se-article ul.products, .se-shop-row ul.products { grid-template-columns: repeat(2, 1fr) !important; }
  .se-article ul.products li.product, .se-shop-row ul.products li.product { max-width: none; }
}
.se-shop-row .se-shop-all { text-align: center; margin: 20px 0 0; }
.se-shop-row .se-shop-all a {
  display: inline-block; padding: 11px 26px 10px; border: 1px solid #4a3c26; border-radius: 999px;
  color: #2c2013 !important; text-decoration: none; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  transition: all .18s ease;
}
.se-shop-row .se-shop-all a:hover { background: #2c2013; color: #f3ead6 !important; }

/* ========== 404 ========== */
.se-404 { text-align: center; padding: 110px 22px 130px; }
.se-404 h1 { font-size: clamp(2rem, 5vw, 3rem); letter-spacing: .08em; text-transform: uppercase; }
.se-404 p { color: var(--dim); margin-bottom: 30px; }
