/* =========================================================================
   Inner-page shared component CSS
   Used by every inner page EXCEPT the homepage (which still inlines its
   own page-specific styles) and /about/ (which inlines its CSS as the
   first inner page built before this file existed).

   All future inner pages link this file after main.css and only inline
   their truly page-specific overrides. Single source of truth for:
     - Eyebrow + section-head primitives
     - Button variants
     - Inner-page hero (dark photo overlay variant)
     - 3-card mini-grid
     - 2-column photo/copy band
     - Blockquote band with photo
     - Stat row (3-up)
     - FAQ accordion (mirror of homepage FAQ)
     - Closing CTA with tagline sign-off
     - Mobile click-to-call bar
     - Scroll-triggered reveals

   Page-specific styling (page hero photo path, kitchen-band color, etc.)
   stays inline on the individual page so this file doesn't fragment.
   ========================================================================= */

/* ---- Section anchor offset ---- */
section[id] { scroll-margin-top: 92px; }

/* ---- Screen-reader-only utility ---- */
.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ---- Eyebrow — legacy class, now matches .t-eyebrow v0.8.2 spec ----
   v0.8.2 restores Cormorant SC small-caps to label roles (reversal of
   v0.8.1's "all Albert Sans" over-correction). Existing markup using
   class="eyebrow" picks up the canonical Cormorant SC / 12px / 0.3em /
   rust treatment automatically. New markup should still prefer
   class="t-eyebrow". */
.eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  line-height: 1;
  text-transform: uppercase !important;
  color: var(--wp--preset--color--rust);
  margin-bottom: 18px;
  display: inline-block;
}

/* =========================================================================
   TYPOGRAPHY SYSTEM (v0.8.2 — Joy's defined design system)
   --------------------------------------------------------------------------
   Three typefaces:
   - Cormorant Garamond (--display) : H1/H2/H3, pull-quotes, lede, numbers,
     prices. Italic = emphasis. One rust word per heading.
   - Cormorant SC (--accent)         : LABELS ONLY — eyebrows, nav,
     kickers, breadcrumbs, buttons, tags, bylines. Tracked uppercase.
     Never used for reading.
   - Albert Sans (--body)            : Body text, descriptions, forms,
     footer links, article prose. Weight 300, line-height 1.7.

   Hard rules:
   1. Italic = emphasis, ALWAYS Cormorant Garamond. Never bold a headline.
   2. Rust var(--wp--preset--color--rust) = the ONE accent: eyebrows + one italic word per heading.
   3. Small-caps never used for reading — labels only, always uppercase
      with wide tracking.
   4. Numbers are editorial — prices/stats use Cormorant Garamond, NOT
      Albert Sans.
   5. Everything fluid — headlines use clamp() so they scale gracefully.

   v0.8.2 REPLACES v0.8.0/v0.8.1. The v0.8.1 "everything Albert Sans"
   over-correction is reversed here: label roles return to Cormorant SC
   per Joy's spec, while body text stays in Albert Sans (weight 300).
   See /playbook/typography-system.md for the full spec.
   ========================================================================= */

/* LABELS (Cormorant SC) ---------------------------------------------------- */
.t-eyebrow {
  /* v0.8.2 — Cormorant SC restored per Joy's spec. The small-caps
     treatment is what gave labels their visual punch; v0.8.1's flip
     to Albert Sans was an over-correction. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  line-height: 1;
  text-transform: uppercase !important;
  color: var(--wp--preset--color--rust);
  margin: 0;
  display: inline-block;
}
.t-eyebrow--on-dark { color: var(--wp--preset--color--warm-white); }

/* INSIDE-PHOTO CORNER LABELS ----------------------------------------------- */
.t-kicker {
  /* v0.8.2 — Cormorant SC restored per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: uppercase;
  color: inherit;
}

/* NAV LABEL ---------------------------------------------------------------- */
.t-nav {
  /* v0.8.2 — Cormorant SC tracked uppercase for top-nav links. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--wp--preset--color--text-deep);
}

/* BREADCRUMB LABEL --------------------------------------------------------- */
.t-breadcrumb {
  /* v0.8.2 — Cormorant SC tracked uppercase for breadcrumb trails. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted);
}

/* BUTTON LABEL ------------------------------------------------------------- */
.t-button {
  /* v0.8.2 — Cormorant SC button label (matches .btn). */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  line-height: 1;
  text-transform: uppercase;
}

/* TAG / META LABEL --------------------------------------------------------- */
.t-tag {
  /* v0.8.2 — Cormorant SC tracked uppercase for card categories,
     dates, "Nº 01 · Banquets" labels. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: uppercase;
  color: #8a7c66;
}

/* HEADLINES (Cormorant Garamond) ------------------------------------------- */
.t-h1-hero {
  /* v0.8.4 — brand spec: clamp(44, 6vw, 108) · 500 · LH 1.0 · -0.01em. */
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(44px, 6vw, 108px);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.0;
  text-transform: none;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.t-h1-hero--on-dark { color: var(--wp--preset--color--warm-white); }
.t-h1-hero em { font-style: italic; color: var(--wp--preset--color--rust); }

.t-h1-page {
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(40px, 5.5vw, 72px);
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.04;
  text-transform: none;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.t-h1-page em { font-style: italic; color: var(--wp--preset--color--rust); }

.t-h2 {
  /* v0.8.2 — Joy's spec: clamp(30, 4.4vw, 56) · 500 · LH 1.05. */
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(30px, 4.4vw, 56px);
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.05;
  text-transform: none;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.t-h2 em { font-style: italic; color: var(--wp--preset--color--rust); }

.t-h2-sans {
  /* Used inside blog post body where the editorial sans-serif H2
     reads cleaner than a serif. Stays Albert Sans. */
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.25;
  text-transform: none;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}

.t-h3-card {
  /* v0.9.4 — Brand Type System spec (Type System.dc.html:160 H3 · Card Heading):
     "25–32px · weight 500 · line-height 1.1" + display family + color #141414.
     The v0.8.2 italic + rust treatment violated rules 1 (italic = single
     emphasized word, not whole heading) and 2 (rust = single accent, not
     defaulted on every card heading). Now upright + ink per spec; emphasis
     stays available via nested <em>. */
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(25px, 3vw, 32px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
  color: var(--wp--preset--color--ink);
  margin: 0;
}
.t-h3-card em { font-style: italic; color: var(--wp--preset--color--rust); }

/* PROSE (Albert Sans) ------------------------------------------------------ */
.t-lede {
  /* v0.8.2 — Joy's spec: italic Cormorant lede under H2 / hero subhead.
     clamp(18, 2vw, 27) · italic · color #6e6353. */
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(18px, 2vw, 27px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
  color: #6e6353;
  margin: 0;
}

.t-body {
  /* v0.8.2 — Joy's spec: Albert Sans · 17px · weight 300 · LH 1.7 · #5f5546. */
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-size: 17px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.7;
  text-transform: none;
  color: #5f5546;
  margin: 0;
}

.t-body-article {
  /* v0.8.2 NEW — blog post body prose. 18.5px / weight 300 / LH 1.78.
     First-paragraph lede should bump to 21px via .post-body styling. */
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-size: 18.5px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.78;
  text-transform: none;
  color: #5f5546;
  margin: 0;
}

.t-small {
  /* v0.8.2 — small/fine print: 14px · color #8a7c66 (muted grey). */
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.55;
  text-transform: none;
  color: #8a7c66;
  margin: 0;
}

/* META / ACCENT ------------------------------------------------------------ */
.t-byline {
  /* v0.8.2 — Cormorant SC byline (DIFFERENT from .t-eyebrow: muted grey
     #8a7c66 instead of rust). Used for author/date stamps where the
     label is informational, not a section opener. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #8a7c66;
  margin: 0;
}

.t-pullquote {
  /* v0.9.4 — Pull-quote / Lede spec per Type System.dc.html:152,162:
     "clamp(18–27px) · italic · muted brown #6e6353". Build previously
     used max 30 + #2e2a22 (near-black); now matches spec exactly. */
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(19px, 2.4vw, 27px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
  color: #6e6353;
  margin: 0;
}

/* NUMERALS (Cormorant Garamond italic) ------------------------------------- */
/* v0.9.4 — Display Numerals per Type System.dc.html:163
   Spec: "Large serif figures · weight 500 · clamp(40px,5vw,60px) ·
   color #a04e10 · line-height 1" — UPRIGHT (not italic), weight 500
   (not 300). Build previously used italic + 300 + larger range; corrected
   here. The .t-price variant is sized smaller per its column-list use. */
.t-price {
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(28px, 3.4vw, 36px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  color: var(--wp--preset--color--rust);
  margin: 0;
}

.t-number {
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
.t-number--on-dark { color: #d9a86a; }

/* END TYPOGRAPHY SYSTEM (v0.8.2) ------------------------------------------ */

/* SECTION LOCKUP (v0.8.5) --------------------------------------------------
   The eyebrow + H2 + (optional) sub triplet is the most-repeated pattern
   in the site. This utility consolidates it so new sections can opt in
   without re-declaring the spacing each time. Existing per-section
   selectors (.foo__eyebrow + .foo__title) keep working — this is
   purely additive. Reference: /playbook/components-system-reference.html
*/
.section-lockup {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm); /* 16px between eyebrow → title */
}
.section-lockup__eyebrow { /* compose with .t-eyebrow for full styling */
  margin: 0;
}
.section-lockup__title { /* compose with .t-h2 or .t-h2-decorative */
  margin: 0;
}
.section-lockup__sub {   /* compose with .t-lede or .t-body */
  margin: var(--space-sm) 0 0 0; /* 16px below the title */
  max-width: 60ch;
}
.section-lockup--center {
  align-items: center;
  text-align: center;
}
.section-lockup--center .section-lockup__sub {
  margin-left: auto;
  margin-right: auto;
}

/* ---- Buttons ---- */
/* BUTTON SYSTEM (v0.8.3) ---------------------------------------------------
   Four canonical button types per /playbook/components-system-reference.html:
     1. Primary  — ink fill (#1a1a1a) → rust (var(--wp--preset--color--rust)) on hover. The main action.
     2. Rust     — solid rust → darker rust (#7a3c0c) hover. Urgency / revenue.
     3. Outline  — transparent + ink border → fills ink on hover. Secondary.
     4. Text     — in-flow text + rust underline-grow on hover. No box.
   Legacy classes (.btn--dark, .btn--outline-dark, .btn--light) are kept as
   aliases so existing markup keeps working through the v0.9.x rename pass.
   --------------------------------------------------------------------------- */
.btn {
  /* v0.8.2 — Cormorant SC button label per Joy's spec
     (12px / 0.17em / weight 500 / uppercase). */
  display: inline-block;
  padding: 16px 28px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--wp--preset--color--button-fill);
  background: transparent;
  color: var(--wp--preset--color--button-fill);
  border-radius: 2px;
  transition: background var(--wp--custom--duration--base) var(--wp--custom--ease--out),
              border-color var(--wp--custom--duration--base) var(--wp--custom--ease--out),
              color var(--wp--custom--duration--base) var(--wp--custom--ease--out);
  cursor: pointer;
}

/* Primary: ink → rust on hover (the main action, one per section) */
.btn--primary,
.btn--dark { /* legacy alias */
  background: var(--wp--preset--color--button-fill);
  color: var(--wp--preset--color--warm-white);
  border-color: var(--wp--preset--color--button-fill);
}
.btn--primary:hover,
.btn--dark:hover {
  background: var(--wp--preset--color--rust);
  border-color: var(--wp--preset--color--rust);
}

/* Rust: solid rust → lighter coppery rust hover (urgency / revenue).
   v0.9.4 — corrected hover direction per Components.dc.html:27: spec
   goes to *lighter* #b8631f (copper), not --rust-dark (#6e3007, nearly
   black-brown). */
.btn--rust {
  background: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--warm-white);
  border-color: var(--wp--preset--color--rust);
}
.btn--rust:hover {
  background: var(--wp--preset--color--rust-hover);
  border-color: var(--wp--preset--color--rust-hover);
}

/* Outline: transparent → ink fill on hover (secondary beside primary) */
.btn--outline,
.btn--outline-dark { /* legacy alias */
  background: transparent;
  color: var(--wp--preset--color--body);
  border-color: rgba(20, 20, 20, 0.35);
}
.btn--outline:hover,
.btn--outline-dark:hover {
  background: var(--wp--preset--color--button-fill);
  color: var(--wp--preset--color--warm-white);
  border-color: var(--wp--preset--color--button-fill);
}

/* On dark backgrounds: cream text + cream border outline */
.btn--outline-light,
.btn--light { /* legacy alias */
  background: transparent;
  color: var(--wp--preset--color--warm-white);
  border-color: rgba(253, 250, 246, 0.35);
}
.btn--outline-light:hover,
.btn--light:hover {
  background: var(--wp--preset--color--warm-white);
  color: var(--wp--preset--color--body);
  border-color: var(--wp--preset--color--warm-white);
}

/* Text Link — in-flow CTA with rust underline-grow on hover, no box */
.btn--text {
  display: inline-block;
  padding: 2px 0 4px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--wp--preset--color--body);
  background: none;
  border: 0;
  position: relative;
  cursor: pointer;
}
.btn--text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1.5px;
  width: 100%;
  background: var(--wp--preset--color--rust);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.btn--text:hover::after,
.btn--text:focus-visible::after {
  transform: scaleX(1);
}
/* END BUTTON SYSTEM (v0.8.3) ----------------------------------------------- */

/* FORM SYSTEM (v0.8.6) -----------------------------------------------------
   Canonical form styling per /playbook/components-system-reference.html.
   Promoted from inline CSS in /contact/index.html so any future form
   inherits the same treatment. Selector scope is .contact-form for now —
   when a second form (e.g. newsletter signup) gets added, rename to a
   generic .form class.

   Spec highlights:
     - Labels: Albert Sans, 14px, weight 500, above input (not floating).
     - Inputs: 14×16px padding, 1px border (20% body-muted), rust focus
       ring as 3px box-shadow at 15% opacity + solid rust border.
     - Helper text below input: 13px, muted (#8a7c66).
     - Error text below input: 13px, error red (#b03020).
     - .is-error border state: matches error red.
     - Honeypot field: visually hidden but submittable.
     - Mobile (<640px): grid collapses 2-col → 1-col.
*/
.contact-form h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(34px, 4.6vw, 52px);
  line-height: 1.08;
  margin: 0 0 18px;
}
.contact-form h2 em { font-style: italic; }
.contact-form > p {
  font-size: 17px;
  line-height: 1.6;
  color: var(--wp--preset--color--body-muted);
  margin: 0 0 36px;
  max-width: 520px;
}
/* The static-form 2-col grid applies ONLY to the legacy hand-rolled
   .contact-form > form. When Gravity Forms is embedded, its <form>
   carries class="gform" — we exclude that and let GF Orbital lay out
   its own fields. (v0.9.79 fix: prior CSS was treating gform as the
   static form, putting the submit button into column 2 and stretching
   it vertically.) */
.contact-form > form:not(.gform):not([id^="gform_"]) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 20px;
}
.contact-form .field--full { grid-column: 1 / -1; }
/* v0.9.4 — Form labels + fields per Components.dc.html:31-34.
   Spec label: Cormorant SC · 11px · 0.18em · uppercase · #6e6353.
   Spec field: bg #fff · border rgba(70,62,50,0.28) · padding 14×16 ·
   font 15px · focus border rust + 3px box-shadow at 12% opacity.
   v0.8.3 used sans labels (#2e2a22) + 16px fields + 15% focus alpha —
   off-spec on every axis. Now aligned. */
.contact-form label {
  display: block;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6e6353;
  margin-bottom: 8px;
  line-height: 1.3;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 14px 16px;
  font-family: var(--wp--preset--font-family--body);
  font-size: 15px;
  font-weight: 300;
  color: var(--wp--preset--color--ink);
  background: #fff;
  border: 1px solid rgba(70, 62, 50, 0.28);
  border-radius: 2px;
  transition: border-color var(--motion-micro) ease, box-shadow var(--motion-micro) ease;
}
.contact-form input::placeholder,
.contact-form textarea::placeholder { color: #a99e8c; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--wp--preset--color--rust);
  box-shadow: 0 0 0 3px rgba(160, 78, 16, 0.12);
}
.contact-form .form-helper {
  font-size: 13px;
  color: #8a7c66;
  margin: 6px 0 0;
}
.contact-form .form-error {
  font-size: 13px;
  color: #b03020;
  margin: 6px 0 0;
}
.contact-form input.is-error,
.contact-form select.is-error,
.contact-form textarea.is-error {
  border-color: #b03020;
}
.contact-form textarea { min-height: 140px; resize: vertical; }
.contact-form .field--checkbox {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  color: var(--wp--preset--color--body-muted);
}
.contact-form .field--checkbox input { width: auto; }
.contact-form .field--checkbox label {
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
  font-family: var(--wp--preset--font-family--body);
  font-size: 15px;
  color: var(--wp--preset--color--body-muted);
  font-weight: 400;
}
.contact-form .field--submit { grid-column: 1 / -1; margin-top: 8px; }
/* Legacy submit-button styling scoped to the hand-rolled .contact-form
   only (NOT Gravity Forms — that wrapper carries .maravelas-form_wrapper
   and gets the Orbital restyle further down). */
.contact-form > form:not(.gform):not([id^="gform_"]) button[type="submit"] {
  background: var(--wp--preset--color--button-fill);
  color: var(--wp--preset--color--warm-white);
  border: 1px solid var(--wp--preset--color--button-fill);
  padding: 18px 32px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--motion-micro) var(--wp--custom--ease--out);
}
.contact-form > form:not(.gform):not([id^="gform_"]) button[type="submit"]:hover { background: var(--wp--preset--color--black); }
.contact-form .honeypot {
  position: absolute; left: -9999px; top: -9999px;
  width: 1px; height: 1px; opacity: 0;
}
@media (max-width: 640px) {
  .contact-form form { grid-template-columns: 1fr; }
}
/* END FORM SYSTEM (v0.8.6) ------------------------------------------------- */

/* CARD SYSTEM (v0.8.7) -----------------------------------------------------
   Three canonical card shells per /playbook/components-system-reference.html
   and components-system-map.md §Cards. ADDITIVE — existing per-feature
   card selectors (.rel-card, .journal-card, .event-card, .cardgrid__card,
   etc.) keep working. New cards opt in by composing .card with one of
   the modifier shells and the typography tokens.

   The shells provide STRUCTURE only (padding, border, image frame,
   hover motion). Headlines + body text compose with .t-h3-card / .t-body /
   .t-eyebrow rather than redeclaring fonts here.

   Usage:
     <article class="card card--rule-top">
       <h3 class="t-h3-card">Title <em>accent</em></h3>
       <p class="t-body">Body copy.</p>
     </article>

     <a class="card card--image" href="...">
       <div class="card__photo"><img src="..." alt="..."></div>
       <div class="card__body">
         <h3 class="t-h3-card">Headline</h3>
         <p class="t-body">Body.</p>
       </div>
     </a>

     <div class="card card--stat">
       <p class="card__num t-number">44</p>
       <p class="card__label t-eyebrow">Years</p>
     </div>
*/

/* Base card — shared properties */
.card {
  display: block;
  background: var(--wp--preset--color--warm-white);
  color: inherit;
  text-decoration: none;
}

/* Shell 1 — Rule-Top Card (rust top border, no photo) */
.card--rule-top {
  border-top: 2px solid var(--wp--preset--color--rust);
  padding: 40px 32px;
}
.card--rule-top.card--on-sand    { background: var(--wp--preset--color--sand); }
.card--rule-top.card--on-warm-1  { background: var(--wp--preset--color--warm-1); }

/* Shell 2 — Image Card (photo top, body underneath) */
.card--image {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform var(--motion-micro) var(--wp--custom--ease--out),
              box-shadow var(--motion-micro) var(--wp--custom--ease--out);
}
.card--image:hover,
.card--image:focus-visible {
  /* v0.9.4 — Card lift shadow per Components.dc.html:37
     "0 16px 38px rgba(28,24,18,0.12)" — meatier, warmer shadow than the
     v0.8.7 8/24/0.08 placeholder. */
  transform: translateY(-3px);
  box-shadow: 0 16px 38px rgba(28, 24, 18, 0.12);
}
.card__photo {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--wp--preset--color--warm-1);
}
.card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform var(--motion-expressive) var(--ease-settle);
}
.card--image:hover .card__photo img,
.card--image:focus-visible .card__photo img {
  transform: scale(1.06);
}
.card__body {
  display: block;
  padding: 32px 32px 36px;
}
.card--image .card__body > :first-child { margin-top: 0; }
.card--image .card__body > :last-child  { margin-bottom: 0; }

/* Aspect-ratio modifiers for the image frame */
.card--image.card--photo-square  .card__photo { aspect-ratio: 1 / 1; }
.card--image.card--photo-portrait .card__photo { aspect-ratio: 4 / 5; }
.card--image.card--photo-wide    .card__photo { aspect-ratio: 16 / 9; }
.card--image.card--photo-tall    .card__photo { aspect-ratio: 3 / 4; }

/* Shell 3 — Stat / Quiet Card (centered numerals) */
.card--stat {
  text-align: center;
  padding: var(--space-lg) var(--space-md);
  background: transparent;
}
.card--stat .card__num {
  /* Compose with .t-number for the full type treatment.
     Shell only contributes layout: margins + zero default. */
  margin: 0 0 var(--space-sm) 0;
}
.card--stat .card__label {
  /* Compose with .t-eyebrow for label type. */
  margin: 0;
}
.card--stat-divider .card__num {
  padding-top: var(--space-lg);
  border-top: 1px solid rgba(70, 62, 50, 0.18);
}

/* Mobile: rule-top + image cards collapse padding slightly */
@media (max-width: 640px) {
  .card--rule-top { padding: 32px 24px; }
  .card__body     { padding: 24px 24px 28px; }
}
/* END CARD SYSTEM (v0.8.7) ------------------------------------------------- */

/* ---- Inner-page hero (dark photo overlay variant) ----
   Use for pages with a dark hero image and overlay. Tag <body
   class="has-dark-hero"> so the fixed header goes transparent over it. */
.inner-hero {
  position: relative;
  min-height: 64vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 160px clamp(20px,5vw,56px) 96px;
  background-color: var(--wp--preset--color--hero-warm);
  overflow: hidden;
  color: var(--wp--preset--color--warm-white);
}
.inner-hero__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.55;
}
.inner-hero__overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center,
    rgba(0,0,0,0.15) 0%,
    rgba(0,0,0,0.45) 60%,
    rgba(0,0,0,0.7) 100%);
}
.inner-hero__inner {
  position: relative;
  max-width: 880px;
}
.inner-hero .eyebrow {
  color: var(--wp--preset--color--rust-light);
  margin-bottom: 26px;
}
.inner-hero h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,68px);
  line-height: 1.04;
  margin: 0 0 24px;
  color: var(--wp--preset--color--warm-white);
  text-shadow: 0 2px 8px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.5);
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.inner-hero h1 em { font-style: italic; }
.inner-hero__sub {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(18px,2.2vw,22px);
  line-height: 1.5;
  color: rgba(250,246,238,0.95);
  margin: 0 auto;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
  max-width: 680px;
}

/* ---- Typographic hero (light variant — for hub pages without a photo) ---- */
.typo-hero {
  background: var(--wp--preset--color--warm-white);
  padding: 200px clamp(20px,5vw,56px) 80px;
  text-align: center;
}
.typo-hero__inner { max-width: 980px; margin: 0 auto; }
.typo-hero h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(38px,5.4vw,70px);
  line-height: 1.04;
  margin: 0 0 22px;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.typo-hero h1 em { font-style: italic; }
.typo-hero__sub {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(18px,2.2vw,22px);
  line-height: 1.55;
  color: var(--wp--preset--color--body-muted);
  margin: 0 auto;
  max-width: 720px;
}

/* ---- Generic section-head ---- */
.section-head { text-align: center; margin-bottom: clamp(40px,5vw,60px); }
.section-head .eyebrow { margin-bottom: 18px; }
.section-head h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,65px);
  line-height: 1.08;
  margin: 0;
}
.section-head h2 em { font-style: italic; }
.section-head p:not(.eyebrow) {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 19px;
  color: var(--wp--preset--color--body-muted-2);
  margin: 14px 0 0;
}

/* ---- Centered prose section (story / intro band) ---- */
.prose-band { background: var(--wp--preset--color--warm-white); }
.prose-band__inner {
  max-width: 880px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  text-align: center;
}
.prose-band h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,65px);
  line-height: 1.08;
  margin: 0 0 36px;
}
.prose-band h2 em { font-style: italic; }
.prose-band p {
  font-size: 18px;
  line-height: 1.75;
  color: var(--wp--preset--color--body-muted);
  margin: 0 auto 20px;
  max-width: 720px;
}

/* ---- 3-card mini-grid ---- */
.cardgrid { background: var(--wp--preset--color--warm-1); }
.cardgrid__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
}
.cardgrid__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 56px;
}
.cardgrid__card {
  background: var(--wp--preset--color--warm-white);
  border-top: 2px solid var(--wp--preset--color--rust);
  padding: 40px 32px;
}
.cardgrid__card h3 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  font-style: italic;
  font-size: 30px;
  line-height: 1.15;
  margin: 0 0 16px;
  color: var(--wp--preset--color--text-deep);
}
.cardgrid__card p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--wp--preset--color--body-muted);
  margin: 0;
}
@media (max-width: 1000px) { .cardgrid__grid { grid-template-columns: 1fr; } }

/* ---- 2-column photo + copy band ---- */
.split { background: var(--wp--preset--color--warm-white); }
.split__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.split--reverse .split__inner { grid-template-areas: "copy photo"; }
.split--reverse .split__photo { grid-area: photo; }
.split--reverse .split__copy  { grid-area: copy; }
.split__copy h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,65px);
  line-height: 1.08;
  margin: 0 0 26px;
}
.split__copy h2 em { font-style: italic; }
.split__copy p {
  font-size: 18px;
  line-height: 1.7;
  color: var(--wp--preset--color--body-muted);
  margin: 0 0 18px;
  max-width: 540px;
}
.split__photo {
  aspect-ratio: 1/1;
  max-height: 520px;
  object-fit: cover;
  width: 100%;
}
@media (max-width: 1000px) {
  .split__inner { grid-template-columns: 1fr; }
  .split--reverse .split__inner { grid-template-areas: none; }
  .split__photo { aspect-ratio: 16/10; }
}

/* ---- Blockquote band with photo ---- */
.quote-band { background: var(--wp--preset--color--warm-2); }
.quote-band__inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 6vw, 72px);
  align-items: center;
}
.quote-band__photo {
  aspect-ratio: 1/1;
  max-height: 520px;
  object-fit: cover;
  width: 100%;
}
.quote-band blockquote {
  border-left: 2px solid var(--wp--preset--color--rust);
  padding-left: 28px;
  margin: 0;
}
.quote-band blockquote p {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.45;
  color: #3a3024;
  margin: 0 0 22px;
}
.quote-band blockquote cite {
  /* v0.8.2 — Cormorant SC label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  line-height: 1;
}
@media (max-width: 1000px) {
  .quote-band__inner { grid-template-columns: 1fr; }
  .quote-band__photo { aspect-ratio: 16/10; }
}

/* ---- Stat row (3-up) ---- */
.statrow { background: var(--wp--preset--color--warm-white); }
.statrow__inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  text-align: center;
}
.statrow h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,65px);
  line-height: 1.08;
  margin: 0 0 28px;
}
.statrow h2 em { font-style: italic; }
.statrow__body {
  font-size: 18px;
  line-height: 1.7;
  color: var(--wp--preset--color--body-muted);
  margin: 0 auto 56px;
  max-width: 720px;
}
.statrow__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  border-top: 1px solid rgba(70,62,50,0.2);
  border-bottom: 1px solid rgba(70,62,50,0.2);
  padding: 40px 0;
  max-width: 880px;
  margin: 0 auto;
}
.statrow__stat-num {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 300;
  font-size: clamp(48px, 6vw, 72px);
  color: var(--wp--preset--color--rust);
  line-height: 1;
  margin-bottom: 12px;
}
.statrow__stat-label {
  /* v0.8.2 — Cormorant SC label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted);
  line-height: 1;
}
@media (max-width: 640px) { .statrow__stats { grid-template-columns: 1fr; gap: 24px; padding: 30px 0; } }

/* ---- FAQ accordion (mirrors homepage FAQ) ---- */
.faq { background: var(--wp--preset--color--warm-1); }
.faq__inner {
  max-width: 880px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
}
.faq__list {
  display: flex; flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(70,62,50,0.18);
}
.faq__item { border-bottom: 1px solid rgba(70,62,50,0.18); }
.faq__q {
  width: 100%;
  background: none; border: 0;
  text-align: left;
  padding: 26px 8px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(20px, 2.2vw, 24px);
  line-height: 1.3;
  color: var(--wp--preset--color--body);
  cursor: pointer;
}
.faq__q:focus-visible { outline: 2px solid var(--wp--preset--color--rust); outline-offset: 4px; }
.faq__icon {
  flex: 0 0 auto;
  width: 18px; height: 18px;
  position: relative;
  transition: transform 240ms var(--wp--custom--ease--out);
}
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; background: var(--wp--preset--color--rust); }
.faq__icon::before { left: 0; right: 0; top: 8px; height: 2px; }
.faq__icon::after { top: 0; bottom: 0; left: 8px; width: 2px; transition: transform 240ms var(--wp--custom--ease--out); }
.faq__q[aria-expanded="true"] .faq__icon::after { transform: rotate(90deg); }
.faq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 320ms var(--wp--custom--ease--out);
}
.faq__q[aria-expanded="true"] + .faq__a { max-height: 800px; }
.faq__a-inner {
  padding: 0 8px 28px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--wp--preset--color--body-muted);
  max-width: 760px;
}

/* ---- Closing CTA ---- */
.closing-cta { background: var(--wp--preset--color--warm-2); }
.closing-cta__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  text-align: center;
}
.closing-cta .eyebrow { margin-bottom: 20px; }
.closing-cta h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px,5vw,65px);
  line-height: 1.06;
  margin: 0 0 18px;
}
.closing-cta h2 em { font-style: italic; }
.closing-cta__sub {
  font-family: var(--wp--preset--font-family--body);
  font-style: italic;
  font-size: 19px;
  color: var(--wp--preset--color--body-muted);
  margin: 0 auto 38px;
  max-width: 540px;
}
.closing-cta__buttons {
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 36px;
}
.closing-cta__rule {
  display: block; width: 60px; height: 1px; background: rgba(70,62,50,0.3);
  margin: 0 auto 22px;
}
.closing-cta__contact {
  /* v0.8.2 — Cormorant SC tracked-caps address label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted);
  line-height: 1.5;
  margin-bottom: 36px;
}
.closing-cta__contact a { color: inherit; text-decoration: none; }
.closing-cta__signoff {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 300;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.4;
  color: var(--wp--preset--color--text-deep);
  margin: 32px 0 8px;
}
.closing-cta__tagline {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.2;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
@media (max-width: 640px) { .closing-cta__buttons { flex-direction: column; } }

/* ---- Mobile sticky click-to-call bar ---- */
.mobile-call-bar {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 60;
  background: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--warm-white);
  text-align: center;
  padding: 14px 20px;
  /* v0.8.2 — Cormorant SC button-label CTA per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 -8px 24px rgba(0,0,0,0.15);
}
.mobile-call-bar:hover, .mobile-call-bar:focus-visible {
  color: var(--wp--preset--color--warm-white);
  background: var(--wp--preset--color--rust-dark);
}
@media (max-width: 760px) {
  .mobile-call-bar { display: block; }
  body { padding-bottom: 52px; }
  .to-top { bottom: 72px !important; }
}

/* ---- Scroll-triggered reveals ----
   v0.9.6 — Matches Motion System spec (Motion.dc.html:67-68, 144):
   "opacity 0→1 · translateY 16px→0 · 0.6s soft-settle. No staggered
   cascades, no slide-ins from the side." Was 24px / 800ms / wrong
   easing curve (--ease--out vs spec --ease-settle).
   The data-reveal-delay modifiers are DEPRECATED — spec explicitly
   forbids staggered cascades. Kept as no-op stubs so existing markup
   doesn't break; future cleanup removes the attributes from HTML. */
[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--motion-expressive) var(--ease-settle),
              transform var(--motion-expressive) var(--ease-settle);
}
[data-reveal].is-revealed { opacity: 1; transform: translateY(0); }
[data-reveal][data-reveal-delay="1"],
[data-reveal][data-reveal-delay="2"],
[data-reveal][data-reveal-delay="3"] { transition-delay: 0ms; /* v0.9.6: spec forbids stagger */ }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ---- Related-links variant of cardgrid ----
   DEPRECATED (v0.5.7) — Superseded by the `.rel-*` system below.
   Retained as a backstop for any page not yet migrated to the new
   markup. Safe to remove once every page renders `<section class="rel-wrap">`.
   ---
   Each card leads with a 16:9 photo, then title + blurb. The rust
   top border still sits above the photo so the visual signature
   from the older text-only variant survives the redesign. */
.cardgrid.related { background: var(--wp--preset--color--warm-white); }
.cardgrid.related .cardgrid__inner { padding-top: var(--wp--custom--section--padding-y); padding-bottom: var(--wp--custom--section--padding-y); }
.cardgrid__card--link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  transition: transform var(--wp--custom--duration--quick) var(--wp--custom--ease--out),
              box-shadow var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.cardgrid__card--link:hover,
.cardgrid__card--link:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.cardgrid__card-photo {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--wp--preset--color--warm-1);
}
.cardgrid__card-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform var(--motion-expressive) var(--wp--custom--ease--out);
}
.cardgrid__card--link:hover .cardgrid__card-photo img,
.cardgrid__card--link:focus-visible .cardgrid__card-photo img {
  transform: scale(1.06);
}
.cardgrid__card-body {
  display: block;
  padding: 32px 32px 36px;
}
.cardgrid__card--link h3 {
  color: var(--wp--preset--color--rust);
  margin: 0 0 12px;
  transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.cardgrid__card--link:hover h3,
.cardgrid__card--link:focus-visible h3 {
  color: var(--wp--preset--color--text-deep);
}
.cardgrid__card--link p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--wp--preset--color--body-muted);
  margin: 0;
}

/* =========================================================================
   reviews-strip — 3-card testimonial band used on About, Homepage,
   and (one-card variant) Contact. Reuses .review-card from the
   /reviews/ archive so styling stays canonical in one place.
   ========================================================================= */
.reviews-strip { background: var(--wp--preset--color--warm-1); }
.reviews-strip__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y) var(--wp--custom--section--padding-x);
}
.reviews-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}
@media (max-width: 1000px) { .reviews-strip__grid { grid-template-columns: 1fr; } }
.reviews-strip__more {
  margin: 40px 0 0;
  text-align: center;
}

/* review-card primitives — match /reviews/ styling so the card looks the
   same wherever it's embedded. Kept here (not in main.css) because these
   only appear on inner pages. */
.reviews-strip .review-card {
  background: var(--wp--preset--color--warm-white);
  padding: 40px 32px 32px;
  position: relative;
  display: flex;
  flex-direction: column;
}
.reviews-strip .review-card__quote-mark {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 96px;
  line-height: 0.7;
  color: var(--wp--preset--color--rust);
  position: absolute;
  top: 22px;
  left: 28px;
  opacity: 0.35;
}
.reviews-strip .review-card__stars {
  font-size: 17px;
  color: var(--wp--preset--color--rust);
  letter-spacing: 2px;
  line-height: 1;
  margin: 0 0 18px;
  position: relative;
  z-index: 1;
}
.reviews-strip .review-card__body {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 19px;
  line-height: 1.55;
  color: #3a3024;
  margin: 0 0 22px;
  position: relative;
  z-index: 1;
}
.reviews-strip .review-card__footer {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(70, 62, 50, 0.18);
}
.reviews-strip .review-card__name {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: 18px;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.reviews-strip .review-card__event {
  /* v0.8.2 — Cormorant SC date/category label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 6px 0 0;
  line-height: 1;
}

/* Single-quote variant (used near Contact form). One card, larger
   pull-quote, centered. */
.reviews-strip--single .reviews-strip__grid {
  grid-template-columns: 1fr;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

/* v0.6.1 — refined single-quote block. Larger pull-quote type, big
   rust quotation mark, thin divider. Used in place of .review-card
   for the lone testimonial near the Contact form. */
.reviews-strip__inner--single {
  max-width: 760px;
  padding: clamp(60px, 8vw, 96px) clamp(20px, 5vw, 56px);
}
.single-quote {
  position: relative;
  margin: 0;
  padding: clamp(40px, 5vw, 64px) clamp(28px, 4vw, 48px);
  background: var(--wp--preset--color--warm-white);
  border-top: 2px solid var(--wp--preset--color--rust);
}
.single-quote__mark {
  position: absolute;
  top: 14px;
  left: 24px;
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 110px;
  line-height: 1;
  color: var(--wp--preset--color--rust);
  opacity: 0.32;
}
.single-quote__body {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.4;
  color: #3a3024;
  margin: 0 0 26px;
  position: relative;
  z-index: 1;
}
.single-quote__attrib {
  padding-top: 22px;
  border-top: 1px solid rgba(70, 62, 50, 0.18);
  margin: 0;
}
.single-quote__name {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: 18px;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.single-quote__event {
  /* v0.8.2 — Cormorant SC date/category label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 6px 0 0;
}

/* =========================================================================
   Block-editor gap reset — when imported wp:html content sits inside
   a wp:group main wrapper, WP applies a default blockGap that produces
   a visible white strip between full-bleed sections (each <section>
   has its own background). Neutralize that so sections sit flush.
   ========================================================================= */
main.wp-block-group { row-gap: 0; }
main.wp-block-group > .wp-block-html { margin-block: 0; }
main.wp-block-group > * + * { margin-block-start: 0; }

/* =========================================================================
   .rel-* — Editorial card grid used by:
   - Related-links section ("Keep Exploring") on inner pages
   - Banquet/Catering sections on the menus hub
   Animation suite ported from the Quinces design refresh (June 2026).
   ========================================================================= */

.rel-wrap {
  background: var(--wp--preset--color--warm-white);
  border-top: 1px solid rgba(70, 62, 50, 0.12);
  font-family: var(--wp--preset--font-family--body);
}
.rel-wrap__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(60px, 8vw, 104px) clamp(20px, 5vw, 56px);
}

/* Header row */
.rel-headrow {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(70, 62, 50, 0.16);
  margin-bottom: clamp(36px, 4vw, 52px);
}
.rel-eyebrow-line {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.rel-eyebrow-rule {
  width: 26px;
  height: 1px;
  background: var(--wp--preset--color--rust);
  display: block;
}
.rel-eyebrow-text {
  /* v0.8.2 — Cormorant SC eyebrow per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  line-height: 1;
}
.rel-lede {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.05;
  color: #1f1b15;
  margin: 0;
  max-width: 620px;
}
.rel-aside {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 19px;
  color: #9b8e6e;
  white-space: nowrap;
  padding-bottom: 4px;
}

/* Card grid */
.rel-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(26px, 3vw, 40px);
}

/* Card */
.rel-card {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

/* Image area */
.rel-imgwrap {
  position: relative;
  overflow: hidden;
  background: #e7ded1;
  aspect-ratio: 4 / 3;
}
.rel-imgwrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--motion-expressive) var(--ease-settle);
}
.rel-card:hover .rel-imgwrap img,
.rel-card:focus-visible .rel-imgwrap img {
  transform: scale(1.06);
}

/* Image veil — dark gradient at bottom */
.rel-veil {
  position: absolute;
  inset: 0;
  opacity: 0.92;
  background: linear-gradient(180deg, rgba(18, 14, 10, 0) 38%, rgba(18, 14, 10, 0.62) 100%);
  pointer-events: none;
  transition: opacity .45s ease;
}

/* Inset frame border — animates on hover */
.rel-frame {
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(253, 250, 246, 0.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease, inset .45s ease;
}
.rel-card:hover .rel-frame,
.rel-card:focus-visible .rel-frame {
  opacity: 1;
  inset: 14px;
}

/* Kicker + number row inside image, bottom edge */
.rel-kicker-row {
  position: absolute;
  left: 18px;
  bottom: 15px;
  right: 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  pointer-events: none;
}
.rel-kicker {
  /* v0.8.2 — Cormorant SC corner-label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(253, 250, 246, 0.92);
}
.rel-num {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 26px;
  line-height: 1;
  color: rgba(253, 250, 246, 0.85);
}

/* Body */
.rel-body {
  padding-top: 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.rel-title {
  /* v0.9.7 — H3 Card Heading per Type System spec: upright + ink, italic
     emphasis only on nested <em>. Was italic + rust default. */
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-weight: 500;
  font-size: clamp(26px, 3vw, 32px);
  line-height: 1.1;
  margin: 0 0 10px;
  color: var(--wp--preset--color--ink);
  transition: color var(--motion-micro) ease;
}
.rel-title em { font-style: italic; color: var(--wp--preset--color--rust); }
.rel-card:hover .rel-title,
.rel-card:focus-visible .rel-title {
  color: #7a3c0c;
}
.rel-desc {
  color: #5f5546;
  font-size: 15.5px;
  line-height: 1.55;
  margin: 0 0 20px;
}

/* "Discover →" pill with growing underline */
.rel-disc {
  /* v0.8.2 — Cormorant SC button label per Joy's spec. */
  position: relative;
  margin-top: auto;
  align-self: flex-start;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: #1a1a1a;
  padding-bottom: 2px;
}
.rel-disc::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  height: 1px;
  width: 100%;
  background: var(--wp--preset--color--rust);
  transform: scaleX(.34);
  transform-origin: left;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.rel-card:hover .rel-disc::after,
.rel-card:focus-visible .rel-disc::after {
  transform: scaleX(1);
}
.rel-arrow {
  display: inline-block;
  transition: transform var(--motion-standard) ease;
}
.rel-card:hover .rel-arrow,
.rel-card:focus-visible .rel-arrow {
  transform: translateX(7px);
}

/* Mobile */
@media (max-width: 760px) {
  .rel-grid { grid-template-columns: 1fr; max-width: 440px; margin-left: auto; margin-right: auto; }
  .rel-headrow { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* Print: hide entirely */
@media print {
  .rel-wrap { display: none !important; }
}

/* =========================================================================
   .venues-band — Off-site catering "Premier Venues" list
   Used on /services/catering/. 19 named off-site venues with locations.
   Two-column grid on desktop, single column on mobile. Each entry is an
   external link with bold name + small location underneath.
   ========================================================================= */
.venues-band {
  background: var(--wp--preset--color--warm-1);
  border-top: 1px solid rgba(70, 62, 50, 0.12);
}
.venues-band__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(64px, 9vw, 110px) clamp(20px, 5vw, 56px);
}
.venues-band__head {
  text-align: center;
  margin-bottom: clamp(36px, 4.5vw, 56px);
}
.venues-band__head h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.06;
  margin: 0 0 22px;
  color: var(--wp--preset--color--text-deep);
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.venues-band__head h2 em { color: var(--wp--preset--color--rust); font-style: italic; }
.venues-band__lede {
  font-size: 16.5px;
  line-height: 1.65;
  color: var(--wp--preset--color--body-muted);
  max-width: 760px;
  margin: 0 auto;
}

/* Grid */
.venues-band__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 980px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 48px;
}
@media (max-width: 760px) {
  .venues-band__list { grid-template-columns: 1fr; max-width: 480px; }
}
.venues-band__list li {
  margin: 0;
  border-bottom: 1px solid rgba(70, 62, 50, 0.14);
}
.venues-band__list a {
  display: block;
  padding: 16px 4px;
  text-decoration: none;
  color: inherit;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.venues-band__list a:hover,
.venues-band__list a:focus-visible {
  background: rgba(160, 78, 16, 0.06);
}
.venues-band__name {
  display: block;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: 19px;
  line-height: 1.25;
  color: var(--wp--preset--color--text-deep);
  transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.venues-band__list a:hover .venues-band__name,
.venues-band__list a:focus-visible .venues-band__name {
  color: var(--wp--preset--color--rust);
}
.venues-band__loc {
  /* v0.8.2 — Cormorant SC location label per Joy's spec. */
  display: block;
  margin-top: 4px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted);
  line-height: 1;
}

/* Footnote */
.venues-band__foot {
  margin: clamp(36px, 4vw, 52px) auto 0;
  max-width: 640px;
  text-align: center;
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 17px;
  line-height: 1.5;
  color: var(--wp--preset--color--body-muted);
}
.venues-band__foot a {
  color: var(--wp--preset--color--rust);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.venues-band__foot a:hover { color: #7a3c0c; }

/* ============================================================
   NYE — Dark editorial event landing (v0.5.9)
   Self-contained block. Applies only to /events/nye/.
   ============================================================ */

/* HERO */
.nye-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 140px clamp(20px, 5vw, 56px) 90px;
  background-color: #1a1714;
  overflow: hidden;
  text-align: center;
}
.nye-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.nye-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18,16,13,0.35) 0%, rgba(14,12,10,0.78) 100%);
  pointer-events: none;
  z-index: 1;
}
.nye-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1080px;
  width: 100%;
  margin: 0 auto;
}
/* v0.8.2: snapped to canonical .t-eyebrow spec (Cormorant SC · 12px ·
   0.3em · weight 500). Color #c4662a kept for the dark NYE hero —
   functions as the on-dark variant of rust. Result: "A Lake County
   Tradition" renders as ALL UPPERCASE TRACKED RUST per Joy's review. */
.nye-hero__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #c4662a;
  margin: 0 0 22px;
}
.nye-hero__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(40px, 5.6vw, 78px);
  line-height: 1.0;
  margin: 0 0 24px;
  color: var(--wp--preset--color--warm-white);
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  text-wrap: balance;
}
.nye-hero__title em {
  font-style: italic;
  color: #d9a86a;
}
.nye-hero__date {
  font-family: var(--wp--preset--font-family--body);
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(253, 250, 246, 0.92);
  margin: 0 0 22px;
}
.nye-hero__sub {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.5;
  color: rgba(253, 250, 246, 0.78);
  max-width: 620px;
  margin: 0 auto 38px;
}
.nye-hero__buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.nye-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 38px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 2px;
  transition: background var(--motion-micro) ease, border-color var(--motion-micro) ease, color var(--motion-micro) ease;
}
.nye-btn--filled {
  background: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--warm-white);
  border: 1px solid var(--wp--preset--color--rust);
}
.nye-btn--filled:hover,
.nye-btn--filled:focus-visible {
  background: #7a3c0c;
  border-color: #7a3c0c;
}
.nye-btn--outline {
  background: transparent;
  color: var(--wp--preset--color--warm-white);
  border: 1px solid rgba(253, 250, 246, 0.35);
}
.nye-btn--outline:hover,
.nye-btn--outline:focus-visible {
  border-color: var(--wp--preset--color--warm-white);
  background: rgba(253, 250, 246, 0.08);
}
@media (max-width: 640px) {
  .nye-hero__buttons { flex-direction: column; align-items: stretch; }
  .nye-btn { width: 100%; }
}

/* STATS BAND */
.nye-stats {
  background: #15110c;
  padding: clamp(50px, 7vw, 84px) clamp(20px, 5vw, 56px);
}
.nye-stats__inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.nye-stats__cell {
  text-align: center;
  padding: 14px 22px;
  border-left: 1px solid rgba(217, 168, 106, 0.22);
}
.nye-stats__cell:first-child {
  border-left: none;
}
.nye-stats__num {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(56px, 7vw, 84px);
  line-height: 1;
  color: #d9a86a;
  margin: 0 0 10px;
}
.nye-stats__sup {
  font-size: 0.5em;
  font-style: italic;
  vertical-align: super;
  letter-spacing: 0.02em;
  margin-left: 2px;
}
.nye-stats__label {
  /* v0.8.2 — canonical Cormorant SC tag (11px · 0.22em). */
  font-family: var(--wp--preset--font-family--accent);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(253, 250, 246, 0.72);
  margin: 0;
}
@media (max-width: 760px) {
  .nye-stats__inner { grid-template-columns: 1fr; }
  .nye-stats__cell { border-left: none; border-top: 1px solid rgba(217, 168, 106, 0.22); padding: 28px 22px; }
  .nye-stats__cell:first-child { border-top: none; }
}

/* INCLUDED BAND */
.nye-included {
  background: #15110c;
  color: #f3ead8;
  padding: clamp(64px, 9vw, 110px) clamp(20px, 5vw, 56px);
  border-top: 1px solid rgba(217, 168, 106, 0.14);
}
.nye-included__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.nye-included__head {
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 56px);
}
/* v0.8.2: snapped to canonical .t-eyebrow spec (12px · 0.3em). */
.nye-included__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #c4662a;
  margin: 0 0 16px;
}
.nye-included__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.04;
  margin: 0;
  color: var(--wp--preset--color--warm-white);
}
.nye-included__title em {
  font-style: italic;
  color: #d9a86a;
}
.nye-included__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 48px;
  max-width: 920px;
  margin: 0 auto;
}
.nye-included__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 0;
  border-bottom: 1px solid rgba(217, 168, 106, 0.18);
}
.nye-included__bullet {
  color: #c4662a;
  font-size: 18px;
  line-height: 1.4;
  margin-top: 2px;
  flex-shrink: 0;
}
.nye-included__item-title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  color: var(--wp--preset--color--warm-white);
  margin: 0 0 4px;
}
.nye-included__item-note {
  font-family: var(--wp--preset--font-family--body);
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(243, 234, 216, 0.7);
  margin: 0;
}
@media (max-width: 760px) {
  .nye-included__grid { grid-template-columns: 1fr; gap: 0; }
}

/* v0.9.41 — NYE Schedule timeline section.
   Sits between .nye-included and .event-flyer.
   Dark background to match the design's continuous dark band.
   Two columns: time chip (fixed width) + activity (flexible).
   The full schedule reads like a printed program. */
.nye-schedule { background: #1a130d; }
.nye-schedule__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(60px, 8vw, 100px) clamp(20px, 5vw, 56px);
}
.nye-schedule__head { text-align: center; margin-bottom: 44px; }
.nye-schedule__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #c4662a;
  margin: 0 0 16px;
  line-height: 1;
}
.nye-schedule__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.04;
  margin: 0;
  color: #fdfaf6;
}
.nye-schedule__title em { font-style: italic; color: #d9a86a; }
.nye-schedule__list { list-style: none; margin: 0; padding: 0; }
.nye-schedule__row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid rgba(217, 200, 168, 0.14);
}
.nye-schedule__row:last-child { border-bottom: none; }
.nye-schedule__time {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 14px;
  letter-spacing: 0.08em;
  color: #d9a86a;
  margin: 0;
}
.nye-schedule__activity-title {
  font-family: var(--wp--preset--font-family--display);
  font-size: 22px;
  line-height: 1.2;
  color: #fdfaf6;
  margin: 0;
}
.nye-schedule__activity-note {
  font-family: var(--wp--preset--font-family--body);
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(243, 234, 216, 0.66);
  margin: 4px 0 0;
}
@media (max-width: 560px) {
  .nye-schedule__row { grid-template-columns: 92px 1fr; gap: 18px; }
  .nye-schedule__activity-title { font-size: 19px; }
}

/* v0.9.42 — Brunch event sections (Easter, Mother's Day).
   Shared component set used by /events/easter/ and /events/mothers-day/:
     .brunch-stats   – dark 3-col price band right under the hero
     .brunch-menu    – light 4-col visible menu listing (the buffet)
     .brunch-seating – sand 2-col card grid for the seating-times rules
     .brunch-cta     – dark photo CTA above the rel-wrap
*/
.brunch-stats { background: #16130f; color: #f3ead8; }
.brunch-stats__inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.brunch-stats__cell {
  text-align: center;
  padding: 44px 16px;
  border-right: 1px solid rgba(217, 200, 168, 0.12);
}
.brunch-stats__cell:last-child { border-right: none; }
.brunch-stats__num {
  font-family: var(--wp--preset--font-family--display);
  font-size: 48px; line-height: 1;
  color: #d9a86a;
  margin: 0;
}
.brunch-stats__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 10.5px; letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(243, 234, 216, 0.6);
  margin: 10px 0 0;
}
@media (max-width: 600px) {
  .brunch-stats__inner { grid-template-columns: 1fr; }
  .brunch-stats__cell { border-right: none; border-bottom: 1px solid rgba(217, 200, 168, 0.12); padding: 28px 16px; }
  .brunch-stats__cell:last-child { border-bottom: none; }
}

.brunch-menu { background: var(--wp--preset--color--warm-white); }
.brunch-menu__inner {
  max-width: 1080px; margin: 0 auto;
  padding: clamp(64px, 9vw, 110px) clamp(20px, 5vw, 56px);
}
.brunch-menu__head { text-align: center; margin-bottom: clamp(40px, 5vw, 56px); }
.brunch-menu__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 16px; line-height: 1;
}
.brunch-menu__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(32px, 4.2vw, 52px);
  line-height: 1.04;
  margin: 0;
  color: var(--wp--preset--color--text-deep);
}
.brunch-menu__title em { font-style: italic; }
.brunch-menu__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 5vw, 64px);
}
@media (max-width: 760px) { .brunch-menu__cols { grid-template-columns: 1fr; } }
.brunch-menu__col-head {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(70, 62, 50, 0.16);
}
.brunch-menu__item {
  font-family: var(--wp--preset--font-family--display);
  font-size: 19px;
  color: #2e2a22;
  margin: 0;
  padding: 6px 0;
}

.brunch-seating { background: #eee3d7; }
.brunch-seating__inner {
  max-width: 880px; margin: 0 auto;
  padding: clamp(60px, 8vw, 100px) clamp(20px, 5vw, 56px);
  text-align: center;
}
.brunch-seating__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 16px; line-height: 1;
}
.brunch-seating__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.04;
  margin: 0 0 14px;
}
.brunch-seating__title em { font-style: italic; }
.brunch-seating__lede {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 18px;
  color: #6e6353;
  margin: 0 auto 40px;
  max-width: 520px;
}
.brunch-seating__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  text-align: left;
}
@media (max-width: 700px) { .brunch-seating__grid { grid-template-columns: 1fr; } }
.brunch-seating__card {
  background: var(--wp--preset--color--warm-white);
  border-top: 2px solid var(--wp--preset--color--rust);
  padding: 30px 28px;
}
.brunch-seating__card-title {
  font-family: var(--wp--preset--font-family--display);
  font-size: 24px;
  margin: 0 0 12px;
  color: var(--wp--preset--color--text-deep);
}
.brunch-seating__times {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 15px; letter-spacing: 0.06em;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
.brunch-seating__note {
  font-size: 14px;
  color: var(--wp--preset--color--body-muted);
  margin: 14px 0 0;
  line-height: 1.5;
}

.brunch-cta {
  position: relative;
  background-color: #1a1714;
  overflow: hidden;
  color: var(--wp--preset--color--warm-white);
}
.brunch-cta__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.4;
}
.brunch-cta__overlay {
  position: absolute; inset: 0;
  background: rgba(20, 15, 10, 0.72);
}
.brunch-cta__inner {
  position: relative;
  max-width: 720px; margin: 0 auto;
  padding: clamp(72px, 10vw, 120px) clamp(20px, 5vw, 56px);
  text-align: center;
}
.brunch-cta__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(34px, 4.6vw, 58px);
  line-height: 1.04;
  margin: 0 0 18px;
  color: var(--wp--preset--color--warm-white);
}
.brunch-cta__title em { font-style: italic; color: #d9a86a; }
.brunch-cta__sub {
  color: rgba(243, 234, 216, 0.82);
  margin: 0 auto 36px;
  max-width: 520px;
  font-weight: 300;
}
.brunch-cta__buttons {
  display: flex; gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.brunch-cta__btn {
  text-decoration: none;
  padding: 17px 40px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: all .25s ease;
}
.brunch-cta__btn--primary {
  background: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--warm-white);
}
.brunch-cta__btn--primary:hover { background: #7a3a0c; }
.brunch-cta__btn--outline {
  background: transparent;
  color: var(--wp--preset--color--warm-white);
  border: 1px solid rgba(243, 234, 216, 0.5);
}
.brunch-cta__btn--outline:hover {
  border-color: var(--wp--preset--color--warm-white);
  background: rgba(243, 234, 216, 0.08);
}

/* Hero with 2 buttons + date line (Easter / Mother's Day pattern).
   Builds on .inner-hero with extra components. */
.inner-hero__date {
  color: rgba(253, 250, 246, 0.94);
  font-size: clamp(16px, 2vw, 20px);
  font-family: var(--wp--preset--font-family--body);
  margin: 0 0 18px;
  text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}
.inner-hero__buttons {
  display: flex; gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 30px;
}
.inner-hero__btn {
  text-decoration: none;
  padding: 17px 40px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: all .25s ease;
}
.inner-hero__btn--primary {
  background: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--warm-white);
}
.inner-hero__btn--primary:hover { background: #7a3a0c; }
.inner-hero__btn--outline {
  background: rgba(0,0,0,0.18);
  color: var(--wp--preset--color--warm-white);
  border: 1px solid rgba(253, 250, 246, 0.55);
}
.inner-hero__btn--outline:hover {
  background: rgba(0,0,0,0.32);
  border-color: var(--wp--preset--color--warm-white);
}
@media (max-width: 600px) {
  .inner-hero__buttons { flex-direction: column; align-items: stretch; max-width: 280px; margin-inline: auto; }
}

/* PULL-QUOTE BAND (B4) — used on service detail pages */
.pullquote-band {
  background: var(--wp--preset--color--warm-1, #f1e9df);
  padding: clamp(56px, 7vw, 88px) clamp(20px, 5vw, 56px);
  text-align: center;
}
.pullquote-band__inner {
  max-width: 820px;
  margin: 0 auto;
}
.pullquote-band__quote {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 26px);
  line-height: 1.45;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  margin: 0 0 20px;
}
.pullquote-band__quote em { font-style: italic; }
.pullquote-band__attrib {
  font-family: var(--wp--preset--font-family--body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0;
}
.pullquote-band__attrib a {
  color: var(--wp--preset--color--rust);
  text-decoration: none;
  border-bottom: 1px solid rgba(160, 78, 16, 0.35);
  transition: color var(--motion-micro) ease, border-color var(--motion-micro) ease;
}
.pullquote-band__attrib a:hover,
.pullquote-band__attrib a:focus-visible {
  color: #7a3c0c;
  border-color: #7a3c0c;
}

/* POST BYLINE (B1) — used on blog posts */
.post-byline {
  font-family: var(--wp--preset--font-family--body);
  font-size: 14px;
  font-weight: 400;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 28px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(70, 62, 50, 0.14);
  letter-spacing: 0.02em;
}
.post-byline a {
  color: var(--wp--preset--color--rust);
  text-decoration: none;
  border-bottom: 1px solid rgba(160, 78, 16, 0.35);
}
.post-byline a:hover,
.post-byline a:focus-visible {
  color: #7a3c0c;
  border-color: #7a3c0c;
}
.post-byline time { color: var(--wp--preset--color--body-muted, #6e6353); }

/* PRIVACY / TERMS PROSE PAGES */
.policy-prose {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 96px) clamp(20px, 5vw, 56px);
  font-family: var(--wp--preset--font-family--body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--wp--preset--color--text-deep, #1f1b15);
}
.policy-prose h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1.08;
  margin: 0 0 14px;
}
.policy-prose h1 em { font-style: italic; }
.policy-prose .policy-prose__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 14px;
}
.policy-prose .policy-prose__updated {
  font-family: var(--wp--preset--font-family--body);
  font-size: 14px;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 36px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(70, 62, 50, 0.14);
}
.policy-prose h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(24px, 3vw, 30px);
  line-height: 1.2;
  margin: 38px 0 14px;
}
.policy-prose h2 em { font-style: italic; }
.policy-prose p { margin: 0 0 18px; }
.policy-prose ul { margin: 0 0 22px; padding-left: 22px; }
.policy-prose ul li { margin-bottom: 8px; }
.policy-prose a {
  color: var(--wp--preset--color--rust);
  text-decoration: none;
  border-bottom: 1px solid rgba(160, 78, 16, 0.35);
}
.policy-prose a:hover,
.policy-prose a:focus-visible {
  color: #7a3c0c;
  border-color: #7a3c0c;
}

/* Visually hidden helper (for accessible-but-hidden headings on .nye-stats etc.) */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================================
   .has-underline-grow — reusable underline-grow animation on hover.
   Ported from .rel-disc::after (v0.6.1). Apply to any underlined link
   that should pick up the editorial hover treatment.
   ========================================================================= */
.has-underline-grow {
  position: relative;
  text-decoration: none;
  color: inherit;
  padding-bottom: 2px;
}
.has-underline-grow::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  width: 100%;
  background: var(--wp--preset--color--rust);
  transform: scaleX(.34);
  transform-origin: left;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.has-underline-grow:hover::after,
.has-underline-grow:focus-visible::after {
  transform: scaleX(1);
}

/* Auto-apply to prose-band, split, howitworks, and venues-band__foot inline
   links. These are the long-form prose sections most likely to have inline
   links. (v0.6.1) */
.prose-band__inner a,
.split__copy a,
.howitworks__inner a,
.venues-band__foot a {
  position: relative;
  text-decoration: none;
  color: var(--wp--preset--color--rust);
  padding-bottom: 2px;
}
.prose-band__inner a::after,
.split__copy a::after,
.howitworks__inner a::after,
.venues-band__foot a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  width: 100%;
  background: currentColor;
  transform: scaleX(.34);
  transform-origin: left;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.prose-band__inner a:hover::after,
.split__copy a:hover::after,
.howitworks__inner a:hover::after,
.venues-band__foot a:hover::after,
.prose-band__inner a:focus-visible::after,
.split__copy a:focus-visible::after,
.howitworks__inner a:focus-visible::after,
.venues-band__foot a:focus-visible::after {
  transform: scaleX(1);
}

/* =========================================================================
   JOURNAL — Blog index + single post redesign (v0.7.0)
   Rust + cream + dark-coffee palette. Cormorant italic + Albert Sans.
   ========================================================================= */

/* ---- Index hero ---- */
.journal-hero {
  background: var(--wp--preset--color--warm-white, #f4ede2);
  padding: 200px clamp(20px,5vw,56px) 56px;
  text-align: left;
  border-bottom: 1px solid rgba(70,62,50,0.12);
}
.journal-hero__inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.journal-hero__main { flex: 1 1 540px; min-width: 0; }
.journal-hero__stats {
  text-align: right;
  min-width: 150px;
  flex: 0 0 auto;
}
.journal-hero__stats-num {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(40px,5vw,58px);
  line-height: 1;
  color: #a04e10;
  margin: 0;
}
.journal-hero__stats-label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a7c66;
  margin: 6px 0 0;
}
.journal-hero__eyebrow-line {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.journal-hero__eyebrow-rule {
  width: 26px; height: 1px; background: #a04e10;
}
.journal-hero__eyebrow-text {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #a04e10;
}
.journal-hero__breadcrumb {
  /* v0.8.2 — Cormorant SC breadcrumb per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 28px;
}
.journal-hero__breadcrumb a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--motion-micro) ease, border-color var(--motion-micro) ease;
}
.journal-hero__breadcrumb a:hover,
.journal-hero__breadcrumb a:focus-visible {
  color: var(--wp--preset--color--rust);
  border-color: rgba(160, 78, 16, 0.45);
}
.journal-hero .eyebrow {
  /* v0.8.2 — canonical Cormorant SC eyebrow (12px · 0.3em). */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 26px;
  display: inline-block;
}
.journal-hero h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(52px,8vw,108px);
  line-height: 1.02;
  letter-spacing: -0.01em;
  margin: 0 0 28px;
  color: var(--wp--preset--color--text-deep, #1f1b15);
}
.journal-hero h1 em { font-style: italic; }
.journal-hero__sub {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(18px,2.2vw,22px);
  line-height: 1.55;
  color: var(--wp--preset--color--body-muted, #6e6353);
  max-width: 620px;
  margin: 0 auto 36px;
}
.journal-hero__rule {
  display: block;
  width: 80px;
  height: 1px;
  background: var(--wp--preset--color--rust);
  margin: 0 auto;
}

/* ---- Index featured post (split) ---- */
.journal-featured {
  padding: clamp(56px, 8vw, 96px) clamp(20px,5vw,56px);
  background: var(--wp--preset--color--warm-white, #f4ede2);
}
.journal-featured__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.journal-featured__media {
  display: block;
  overflow: hidden;
  position: relative;
  aspect-ratio: 5 / 4;
}
.journal-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s var(--ease-settle);
}
.journal-featured__media:hover img,
.journal-featured__media:focus-visible img {
  transform: scale(1.06);
}
.journal-featured__body { padding: 8px 0; }
.journal-featured__eyebrow {
  /* v0.8.2 — Cormorant SC eyebrow per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 14px;
}
.journal-featured__eyebrow .sep { color: rgba(70,62,50,.32); margin: 0 8px; }
.journal-featured__date {
  /* v0.8.2 — Cormorant SC date label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 18px;
}
.journal-featured h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.06;
  margin: 0 0 22px;
}
.journal-featured h2 a {
  color: var(--wp--preset--color--text-deep, #1f1b15);
  text-decoration: none;
  transition: color var(--motion-micro) ease;
}
.journal-featured h2 a:hover,
.journal-featured h2 a:focus-visible {
  color: var(--wp--preset--color--rust);
}
.journal-featured__excerpt {
  font-family: var(--wp--preset--font-family--body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  margin: 0 0 26px;
}
.journal-featured__cta {
  /* v0.8.2 — Cormorant SC button label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  text-decoration: none;
  position: relative;
  padding-bottom: 4px;
  display: inline-block;
}
.journal-featured__cta::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 100%;
  background: currentColor;
  transform: scaleX(.34);
  transform-origin: left;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.journal-featured__cta:hover::after,
.journal-featured__cta:focus-visible::after { transform: scaleX(1); }
.journal-featured__cta .arrow {
  display: inline-block;
  margin-left: 6px;
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.journal-featured__cta:hover .arrow,
.journal-featured__cta:focus-visible .arrow { transform: translateX(4px); }
@media (max-width: 760px) {
  .journal-featured__inner { grid-template-columns: 1fr; }
}

/* ---- Index grid of follow-up posts ---- */
.journal-grid-section {
  padding: clamp(48px, 7vw, 88px) clamp(20px,5vw,56px);
}
.journal-grid-section__inner {
  max-width: 1180px;
  margin: 0 auto;
}
.journal-grid-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 40px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(70,62,50,.14);
}
/* v0.8.2: snapped to canonical Cormorant SC eyebrow (12px · 0.3em). */
.journal-grid-section__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
.journal-grid-section__count {
  /* v0.8.2 — Cormorant SC tag/meta per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0;
}
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 42px) clamp(20px, 3vw, 36px);
}
@media (max-width: 1000px) {
  .journal-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .journal-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
}
.journal-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: transparent;
}
.journal-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  margin-bottom: 18px;
}
.journal-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s var(--ease-settle);
}
.journal-card__media::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(255,255,255,0);
  pointer-events: none;
  transition: border-color var(--motion-sweep) ease;
}
.journal-card:hover .journal-card__media img,
.journal-card:focus-visible .journal-card__media img {
  transform: scale(1.06);
}
.journal-card:hover .journal-card__media::after,
.journal-card:focus-visible .journal-card__media::after {
  border-color: rgba(255,255,255,.55);
}
.journal-card__meta {
  /* v0.8.2 — Cormorant SC tag/meta per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 10px;
}
.journal-card__meta .cat { color: var(--wp--preset--color--rust); }
.journal-card__meta .sep { margin: 0 8px; color: rgba(70,62,50,.32); }
.journal-card__title {
  /* v0.9.7 — H3 Card Heading per Type System spec: upright + ink. */
  font-family: var(--wp--preset--font-family--display);
  font-style: normal;
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.1;
  margin: 0 0 10px;
  color: var(--wp--preset--color--ink);
  transition: color var(--motion-micro) ease;
}
.journal-card__title em { font-style: italic; color: var(--wp--preset--color--rust); }
.journal-card:hover .journal-card__title,
.journal-card:focus-visible .journal-card__title { color: var(--wp--preset--color--rust); }
.journal-card__excerpt {
  font-family: var(--wp--preset--font-family--body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 14px;
}
.journal-card__more {
  /* v0.8.2 — Cormorant SC button label per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.journal-card__more .arrow {
  transition: transform var(--motion-sweep) var(--ease-settle);
}
.journal-card:hover .journal-card__more .arrow,
.journal-card:focus-visible .journal-card__more .arrow { transform: translateX(4px); }

/* ---- Single post — breadcrumb + title hero ---- */
.post-breadcrumb {
  background: var(--wp--preset--color--warm-white, #f4ede2);
  padding: 120px clamp(20px,5vw,56px) 0;
  text-align: center;
}
.post-breadcrumb__nav {
  /* v0.8.2 — Cormorant SC breadcrumb per Joy's spec. */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0;
}
.post-breadcrumb__nav a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--motion-micro) ease, border-color var(--motion-micro) ease;
}
.post-breadcrumb__nav a:hover,
.post-breadcrumb__nav a:focus-visible {
  color: var(--wp--preset--color--rust);
  border-color: rgba(160, 78, 16, 0.45);
}
.post-breadcrumb__nav .sep { margin: 0 10px; color: rgba(70,62,50,.32); }

.post-title-hero {
  background: var(--wp--preset--color--warm-white, #f4ede2);
  padding: 40px clamp(20px,5vw,56px) 56px;
  text-align: center;
}
.post-title-hero__inner {
  max-width: 860px;
  margin: 0 auto;
}
/* v0.8.2: snapped to canonical Cormorant SC eyebrow (12px · 0.3em). */
.post-title-hero__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 28px;
}
.post-title-hero__eyebrow .sep { color: rgba(160,78,16,.4); margin: 0 10px; }
.post-title-hero h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(38px, 6.2vw, 76px);
  line-height: 1.06;
  letter-spacing: -0.005em;
  margin: 0 0 28px;
  color: var(--wp--preset--color--text-deep, #1f1b15);
}
.post-title-hero h1 em { font-style: italic; }
.post-title-hero__byline {
  /* v0.8.2 — canonical Cormorant SC byline (11px · 0.2em · muted grey). */
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
.post-title-hero__byline .sep { color: rgba(160,78,16,.4); margin: 0 10px; }

/* ---- Single post — featured image (full-bleed within content max) ---- */
.post-featured-image {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 clamp(20px,5vw,56px);
  margin-top: clamp(8px, 2vw, 24px);
}
.post-featured-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* ---- Single post — body prose ---- */
.post-body {
  /* v0.8.2 — Article prose per Joy's spec: 18.5px · weight 300 · LH 1.78 · #5f5546. */
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) clamp(20px,5vw,56px) clamp(48px, 6vw, 80px);
  font-family: var(--wp--preset--font-family--body);
  font-size: 18.5px;
  font-weight: 300;
  line-height: 1.78;
  color: #5f5546;
}
.post-body > p:first-of-type,
.post-body .lede {
  /* v0.8.2 — Article lede per Joy's spec: 21px (still Albert Sans for blog body). */
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-weight: 300;
  font-size: 21px;
  line-height: 1.6;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  margin: 0 0 32px;
}
.post-body h2 {
  /* v0.8.2 — blog body H2 stays Albert Sans 600 per article-prose convention. */
  font-family: var(--wp--preset--font-family--body);
  font-weight: 600;
  font-size: clamp(24px, 2.8vw, 30px);
  line-height: 1.25;
  margin: 52px 0 18px;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  position: relative;
  padding-left: 22px;
}
.post-body h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 12px;
  height: 1px;
  background: var(--wp--preset--color--rust);
}
.post-body h2 em { font-style: italic; }
.post-body h3 {
  font-family: var(--wp--preset--font-family--body);
  font-weight: 600;
  font-size: clamp(19px, 2.2vw, 22px);
  line-height: 1.3;
  margin: 36px 0 14px;
}
.post-body p { margin: 0 0 22px; }
.post-body ul,
.post-body ol { margin: 0 0 26px; padding-left: 0; list-style: none; }
.post-body ul li,
.post-body ol li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 12px;
  line-height: 1.65;
}
.post-body ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wp--preset--color--rust);
}
.post-body ol { counter-reset: post-ol; }
.post-body ol li { counter-increment: post-ol; }
.post-body ol li::before {
  content: counter(post-ol) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 17px;
  color: var(--wp--preset--color--rust);
  font-weight: 500;
}
.post-body a {
  color: var(--wp--preset--color--rust);
  text-decoration: none;
  border-bottom: 1px solid rgba(160, 78, 16, 0.35);
  transition: color var(--motion-micro) ease, border-color var(--motion-micro) ease;
}
.post-body a:hover,
.post-body a:focus-visible {
  color: #7a3c0c;
  border-color: #7a3c0c;
}
.post-body strong { font-weight: 600; }
.post-body em { font-style: italic; }

/* Pull-quote — rust left-border accent */
.post-pullquote {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.8vw, 28px);
  line-height: 1.4;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  border-left: 3px solid var(--wp--preset--color--rust);
  margin: 40px 0;
  padding: 6px 0 6px 28px;
  quotes: none;
}
.post-pullquote p { margin: 0; }
.post-pullquote cite {
  /* v0.8.2 — Cormorant SC byline per Joy's spec. */
  display: block;
  font-family: var(--wp--preset--font-family--accent);
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin-top: 18px;
}

/* ---- Single post — CTA band ---- */
.post-cta-band {
  background: var(--wp--preset--color--warm-2, #ece2cf);
  padding: clamp(60px, 8vw, 96px) clamp(20px,5vw,56px);
  text-align: center;
}
.post-cta-band__inner {
  max-width: 720px;
  margin: 0 auto;
}
.post-cta-band__eyebrow {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: clamp(16px, 1.8vw, 19px);
  color: var(--wp--preset--color--body-muted, #6e6353);
  margin: 0 0 22px;
}
.post-cta-band__btn {
  /* v0.8.2 — Cormorant SC button label per Joy's spec. */
  display: inline-block;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  text-decoration: none;
  color: #f4ede2;
  background: #1f1b15;
  padding: 20px 44px;
  border: 1px solid #1f1b15;
  transition: background var(--motion-micro) ease, color var(--motion-micro) ease;
}
.post-cta-band__btn:hover,
.post-cta-band__btn:focus-visible {
  background: var(--wp--preset--color--rust);
  border-color: var(--wp--preset--color--rust);
  color: #f4ede2;
}

/* =========================================================================
   EVENT FLYER items-grid (v0.7.0) — multi-column lists for long menu sections.
   Used by Easter + Mother's Day flyers (NYE keeps its v0.5.9 styling).
   ========================================================================= */
.event-flyer__items-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px 32px;
}
.event-flyer__items-grid--3col { grid-template-columns: repeat(3, 1fr); }
.event-flyer__items-grid--2col { grid-template-columns: repeat(2, 1fr); }
.event-flyer__items-grid--1col {
  grid-template-columns: 1fr;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
@media (max-width: 1000px) {
  .event-flyer__items-grid--3col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .event-flyer__items-grid--3col,
  .event-flyer__items-grid--2col {
    grid-template-columns: 1fr;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
  }
}
.event-flyer__item {
  font-family: var(--wp--preset--font-family--body);
  font-style: normal;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: var(--wp--preset--color--text-deep, #1f1b15);
  padding: 5px 0;
  list-style: none;
}
/* Tighter eyebrow + rust underline rule under section names on flyer */
.event-flyer .menu-doc__section-name {
  position: relative;
  padding-bottom: 14px;
  margin-bottom: 26px;
}
.event-flyer .menu-doc__section-name::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 70px;
  height: 1px;
  background: var(--menu-rust, var(--wp--preset--color--rust));
}
.event-flyer .menu-doc__section { padding-top: 12px; padding-bottom: 12px; }

/* =========================================================================
   v0.7.1 — Contact hero compact variant.
   /contact/ uses a shorter hero so the contact form is visible above the
   fold without scrolling past a tall photo.
   ========================================================================= */
.inner-hero--compact { min-height: 38vh; padding-top: 110px; padding-bottom: 30px; }
.inner-hero--compact h1 { font-size: clamp(40px, 5.5vw, 64px); }

/* =========================================================================
   .event-feature — 2-column rich feature section for public events on
   the /events/ hub. Alternates image left/right via --alt modifier.
   ========================================================================= */
.event-feature { background: var(--wp--preset--color--warm-white); }
.event-feature--alt { background: var(--wp--preset--color--warm-1); }
.event-feature__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(64px, 9vw, 110px) clamp(20px, 5vw, 56px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
}
.event-feature--alt .event-feature__photo { order: 2; }
.event-feature__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}
.event-feature__body h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.04;
  margin: 0 0 18px;
}
.event-feature__body h2 em { color: var(--wp--preset--color--rust); font-style: italic; }
.event-feature__lede {
  font-size: 17px;
  line-height: 1.6;
  color: var(--wp--preset--color--body-muted);
  margin: 0 0 24px;
}
.event-feature__highlights {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
}
.event-feature__highlights li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 9px 0;
  font-family: var(--wp--preset--font-family--body);
  font-size: 15.5px;
  line-height: 1.45;
  color: var(--wp--preset--color--text-deep);
}
.event-feature__highlights li.is-featured {
  font-weight: 600;
  background: var(--wp--preset--color--warm-1);
  padding: 12px 16px;
  margin: 0 -16px 6px;
  border-left: 2px solid var(--wp--preset--color--rust);
}
.event-feature--alt .event-feature__highlights li.is-featured {
  background: var(--wp--preset--color--warm-white);
}
.event-feature__hl-mark {
  color: var(--wp--preset--color--rust);
  font-size: 16px;
  line-height: 1.4;
  flex-shrink: 0;
}
.event-feature__pricing {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 17px;
  color: var(--wp--preset--color--rust);
  margin: 0 0 24px;
  padding: 14px 18px;
  background: var(--wp--preset--color--warm-1);
  border-left: 3px solid var(--wp--preset--color--rust);
}
.event-feature--alt .event-feature__pricing {
  background: var(--wp--preset--color--warm-white);
}
.event-feature__cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
@media (max-width: 1000px) {
  .event-feature__inner { grid-template-columns: 1fr; gap: 32px; }
  .event-feature--alt .event-feature__photo { order: 0; }
}

/* .event-tail — smaller single-column section for Holiday Parties */
.event-tail { background: var(--wp--preset--color--warm-2); }
.event-tail__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 80px) clamp(20px, 5vw, 56px);
  text-align: center;
}
.event-tail__inner h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 36px);
  line-height: 1.1;
  margin: 0 0 16px;
}
.event-tail__lede {
  font-size: 16px;
  line-height: 1.6;
  color: var(--wp--preset--color--body-muted);
  margin: 0 0 28px;
}
.event-tail__inner .event-feature__cta {
  justify-content: center;
}


/* v0.9.44 — Events archive sections (live in WP template + static site).
   Sections: typo-hero (breadcrumb) · NYE featured band · event-card grid
   · private-events nudge. Extracted from the static
   /site/events/index.html so the WP archive-event template renders the
   same visual without needing inline styles. */
section[id] { scroll-margin-top: 92px; }

.typo-hero__crumbs {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
  color: #8a7c66; margin-bottom: 28px;
}
.typo-hero__crumbs a { color: inherit; text-decoration: none; transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out); }
.typo-hero__crumbs a:hover { color: #a04e10; }

.ev-feat {
  position: relative;
  background-color: #15110c;
  color: #f3ead8;
  overflow: hidden;
}
.ev-feat__photo {
  position: absolute; top: 0; right: 0;
  width: 50%; height: 100%; object-fit: cover;
  opacity: 0.5;
}
.ev-feat__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #15110c 32%, rgba(21,17,12,0.6) 62%, rgba(21,17,12,0.2) 100%);
  pointer-events: none;
}
.ev-feat__inner {
  position: relative; max-width: 1240px; margin: 0 auto;
  padding: clamp(60px,8vw,104px) clamp(20px,5vw,56px);
}
.ev-feat__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.32em;
  text-transform: uppercase; color: #c4662a;
  margin: 0 0 20px;
}
.ev-feat__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(34px,4.8vw,58px); line-height: 1;
  margin: 0 0 22px; color: var(--wp--preset--color--warm-white);
}
.ev-feat__title em { font-style: italic; }
.ev-feat__body {
  color: rgba(243,234,216,0.8);
  margin: 0 0 32px; max-width: 520px;
  font-weight: 300; line-height: 1.6;
}
.ev-feat__cta {
  text-decoration: none; display: inline-block;
  background: #a04e10; color: var(--wp--preset--color--warm-white);
  padding: 16px 36px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.ev-feat__cta:hover { background: #b8631f; }
@media (max-width: 900px) {
  .ev-feat__photo { width: 100%; opacity: 0.32; }
  .ev-feat__overlay { background: linear-gradient(180deg, rgba(18,16,13,0.45), rgba(14,12,10,0.85)); }
}

.ev-cards { background: var(--wp--preset--color--warm-white); }
.ev-cards__inner {
  max-width: 1240px; margin: 0 auto;
  padding: clamp(64px,9vw,110px) clamp(20px,5vw,56px);
}
.ev-cards__head { text-align: center; margin-bottom: clamp(40px,5vw,56px); }
.ev-cards__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500; letter-spacing: 0.30em;
  text-transform: uppercase; color: #a04e10;
  margin: 0 0 16px;
}
.ev-cards__head h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(32px,4.2vw,50px); line-height: 1.04;
  margin: 0; color: var(--wp--preset--color--text-deep);
}
.ev-cards__head h2 em { font-style: italic; }
.ev-cards__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px;
}
.ev-tile {
  background: #f6efe7;
  border-top: 2px solid #a04e10;
  padding: 34px 26px 32px;
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out),
              transform var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.ev-tile:hover { background: #f1e7da; transform: translateY(-2px); }
.ev-tile__month {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.24em;
  text-transform: uppercase; color: #a04e10;
  margin: 0 0 16px;
}
.ev-tile__date {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic; font-size: 17px;
  color: #6e6353; margin: 0 0 4px;
}
.ev-tile h3 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500; font-size: 25px; line-height: 1.12;
  margin: 0 0 14px; color: var(--wp--preset--color--text-deep);
}
.ev-tile__desc {
  color: #5f5546; font-size: 14.5px;
  line-height: 1.55; margin: 0 0 20px;
}
.ev-tile__cta {
  margin-top: auto;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--wp--preset--color--text-deep);
  border-bottom: 1.5px solid #a04e10;
  padding-bottom: 5px; align-self: flex-start;
}
@media (max-width: 960px) { .ev-cards__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .ev-cards__grid { grid-template-columns: 1fr; } }

.ev-nudge { background: #eee3d7; }
.ev-nudge__inner {
  max-width: 760px; margin: 0 auto;
  padding: clamp(60px,8vw,100px) clamp(20px,5vw,56px);
  text-align: center;
}
.ev-nudge__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500; letter-spacing: 0.30em;
  text-transform: uppercase; color: #a04e10;
  margin: 0 0 18px;
}
.ev-nudge h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(30px,4vw,48px); line-height: 1.06;
  margin: 0 0 18px; color: var(--wp--preset--color--text-deep);
}
.ev-nudge h2 em { font-style: italic; }
.ev-nudge__sub {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic; font-size: 19px;
  color: #6e6353; margin: 0 auto 34px;
  max-width: 520px; line-height: 1.5;
}
.ev-nudge__buttons {
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
}
.ev-nudge__btn {
  text-decoration: none; padding: 17px 38px; border-radius: 2px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  transition: all var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.ev-nudge__btn--primary {
  background: var(--wp--preset--color--button-fill);
  color: var(--wp--preset--color--warm-white);
  border: 1px solid var(--wp--preset--color--button-fill);
}
.ev-nudge__btn--primary:hover { background: var(--wp--preset--color--black); border-color: var(--wp--preset--color--black); }
.ev-nudge__btn--outline {
  background: transparent;
  color: var(--wp--preset--color--text-deep);
  border: 1px solid rgba(20,20,20,0.35);
}
.ev-nudge__btn--outline:hover { border-color: #a04e10; color: #a04e10; }
@media (max-width: 600px) { .ev-nudge__buttons { flex-direction: column; align-items: stretch; } }


/* v0.9.46 — Blog index: filter chips bar + newsletter section.
   Adds two new visual elements per the new design. */

.journal-chips {
  background: var(--wp--preset--color--warm-white);
  position: sticky;
  top: 88px;
  z-index: 30;
  border-bottom: 1px solid rgba(70,62,50,0.12);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.journal-chips__inner {
  max-width: 1240px; margin: 0 auto;
  padding: 16px clamp(20px,5vw,56px);
  display: flex; align-items: center; gap: 18px;
  flex-wrap: wrap;
}
.journal-chips__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a7c66;
  margin-right: 4px;
}
.journal-chips__list {
  display: flex; gap: 9px; flex-wrap: wrap;
  list-style: none; margin: 0; padding: 0;
  flex: 1;
}
.journal-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 8px 14px;
  border: 1px solid rgba(70,62,50,0.22);
  border-radius: 999px;
  color: #2a241b;
  text-decoration: none;
  background: transparent;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out),
              color var(--wp--custom--duration--quick) var(--wp--custom--ease--out),
              border-color var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.journal-chip:hover, .journal-chip[aria-current="page"] {
  background: #2a241b;
  color: #fdfaf6;
  border-color: #2a241b;
}
.journal-chip__count {
  opacity: 0.6;
  font-size: 10px;
}

.journal-newsletter {
  background: #1a1a1a;
  color: #fdfaf6;
}
.journal-newsletter__inner {
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(56px,7vw,92px) clamp(20px,5vw,56px);
  text-align: center;
}
.journal-newsletter__eyebrow-line {
  display: inline-flex; align-items: center; gap: 12px;
  margin-bottom: 22px;
}
.journal-newsletter__rule {
  width: 22px; height: 1px; background: #d9a86a;
}
.journal-newsletter__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #d9a86a;
}
.journal-newsletter h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(28px,3.6vw,42px);
  line-height: 1.1;
  margin: 0 0 16px;
  color: #fdfaf6;
}
.journal-newsletter h2 em { font-style: italic; }
.journal-newsletter__sub {
  color: rgba(253,250,246,0.7);
  font-size: 16px;
  max-width: 460px;
  margin: 0 auto 30px;
}
.journal-newsletter__form {
  display: flex; gap: 10px;
  max-width: 440px;
  margin: 0 auto;
  flex-wrap: wrap;
  justify-content: center;
}
.journal-newsletter__input {
  flex: 1; min-width: 220px;
  background: rgba(253,250,246,0.06);
  border: 1px solid rgba(253,250,246,0.2);
  color: #fdfaf6;
  padding: 14px 18px;
  font-family: var(--wp--preset--font-family--body);
  font-size: 15px;
  border-radius: 2px;
}
.journal-newsletter__input::placeholder { color: rgba(253,250,246,0.4); }
.journal-newsletter__submit {
  background: #d9a86a;
  color: #1a1a1a;
  border: none;
  padding: 14px 30px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 2px;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.journal-newsletter__submit:hover { background: #e6bd86; }

/* v0.9.46 — Blog post template: centered article-header, byline box,
   meta row, hero figure, two-column body+rail with sticky TOC, key
   takeaways aside, FAQ section, author bio, sources details,
   dark post-CTA, related posts grid. Used by every /blog/<slug>/ page. */

/* Reading progress bar (filled by tiny nav.js handler — gracefully
   degrades to a thin static bar if JS is off). */
.bp-progress {
  position: fixed; top: 0; left: 0; right: 0;
  height: 3px; z-index: 90;
  background: transparent;
  pointer-events: none;
}
.bp-progress__bar {
  height: 100%; width: 0%;
  background: var(--wp--preset--color--rust);
  transition: width 0.1s linear;
}

/* Article header (centered hero) */
.bp-header {
  max-width: 760px; margin: 0 auto;
  padding: clamp(120px,12vw,160px) clamp(20px,5vw,40px) clamp(28px,3.5vw,40px);
  text-align: center;
}
.bp-header__crumbs {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8a7c66;
  margin-bottom: 26px;
}
.bp-header__crumbs a {
  color: inherit; text-decoration: none;
  transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.bp-header__crumbs a:hover { color: var(--wp--preset--color--rust); }
.bp-header__cat {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 20px;
}
.bp-header h1 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(34px,5vw,62px);
  line-height: 1.04;
  letter-spacing: -0.01em;
  margin: 0 0 26px;
  color: #141414;
  text-wrap: balance;
}
.bp-header h1 em { font-style: italic; }
.bp-byline {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 14px 22px;
  border: 1px solid rgba(70,62,50,0.16);
  border-radius: 2px;
  text-align: left;
}
.bp-byline__avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: #e9ddc9;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600; font-size: 19px;
  color: var(--wp--preset--color--rust);
  flex: 0 0 auto;
}
.bp-byline__name {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #1f1b15;
  margin: 0;
}
.bp-byline__role {
  font-size: 12.5px;
  color: #8a7c66;
  margin: 3px 0 0;
}
.bp-meta {
  display: flex; align-items: center; justify-content: center;
  gap: 10px 18px; flex-wrap: wrap;
  margin-top: 22px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6353;
}
.bp-meta__dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: #c9bda6;
}
.bp-meta__check {
  display: inline-flex; align-items: center; gap: 6px;
  color: #4a7c4a;
}
.bp-meta__check-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #4a7c4a;
}

/* Hero figure */
.bp-figure {
  max-width: 1100px; margin: 0 auto;
  padding: 0 clamp(20px,5vw,56px);
}
.bp-figure img {
  width: 100%; aspect-ratio: 16/9;
  object-fit: cover; display: block;
}
.bp-figure figcaption {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 15px;
  color: #8a7c66;
  text-align: center;
  margin-top: 14px;
}

/* Two-column body + sticky rail */
.bp-body-wrap {
  max-width: 1040px; margin: 0 auto;
  padding: clamp(40px,5.5vw,64px) clamp(20px,5vw,40px) clamp(48px,6vw,72px);
}
.bp-body-grid {
  display: grid;
  grid-template-columns: minmax(0,720px) 240px;
  gap: clamp(32px,5vw,64px);
  align-items: start;
}
@media (max-width: 980px) {
  .bp-body-grid { grid-template-columns: 1fr; }
  .bp-rail { display: none; }
}

/* Key takeaways aside */
.bp-takeaways {
  background: #f1e9df;
  border: 1px solid rgba(70,62,50,0.12);
  border-radius: 2px;
  padding: clamp(24px,3vw,32px);
  margin-bottom: clamp(36px,4.5vw,48px);
}
.bp-takeaways__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 16px;
}
.bp-takeaways ul {
  margin: 0; padding-left: 20px;
  color: #3a342b; font-size: 16.5px; line-height: 1.6;
}
.bp-takeaways li { margin-bottom: 9px; }
.bp-takeaways li:last-child { margin-bottom: 0; }

/* Prose body */
.bp-prose p {
  color: #3a342b;
  font-size: 18.5px;
  line-height: 1.78;
  margin: 0 0 26px;
}
.bp-prose p.bp-prose__lead {
  font-size: 21px;
  line-height: 1.62;
  color: #2e2a22;
}
.bp-prose h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(28px,3.4vw,38px);
  line-height: 1.14;
  margin: 52px 0 18px;
  color: #141414;
  scroll-margin-top: 100px;
}
.bp-prose h2:first-child { margin-top: 0; }
.bp-prose h2 em { font-style: italic; }
.bp-prose blockquote {
  margin: 38px 0;
  padding: 6px 0 6px 30px;
  border-left: 2px solid var(--wp--preset--color--rust);
}
.bp-prose blockquote p {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 26px;
  line-height: 1.38;
  color: #2e2a22;
  margin: 0;
}
.bp-prose ul, .bp-prose ol {
  margin: 0 0 26px;
  padding-left: 22px;
  color: #3a342b;
  font-size: 18.5px;
  line-height: 1.7;
}
.bp-prose li { margin-bottom: 9px; }
.bp-prose a.bp-inline,
.bp-prose p a {
  color: var(--wp--preset--color--rust);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Inline share row */
.bp-share-inline {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
  margin-top: clamp(40px,5vw,56px);
  padding-top: 28px;
  border-top: 1px solid rgba(70,62,50,0.14);
}
.bp-share-inline__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6e6353;
}
.bp-share-inline__buttons { display: flex; gap: 9px; flex-wrap: wrap; }
.bp-share-btn {
  display: inline-block;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 9px 16px;
  border-radius: 2px;
  background: transparent;
  color: #1a1a1a;
  border: 1px solid rgba(70,62,50,0.22);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.bp-share-btn:hover {
  background: #1a1a1a;
  color: var(--wp--preset--color--warm-white);
  border-color: #1a1a1a;
}

/* Sticky rail */
.bp-rail {
  position: sticky; top: 96px;
  align-self: start;
}
.bp-toc__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 16px;
}
.bp-toc__list {
  list-style: none; margin: 0 0 32px; padding: 0;
  display: flex; flex-direction: column;
}
.bp-toc__list a {
  display: block;
  padding: 9px 0 9px 14px;
  border-left: 1.5px solid rgba(70,62,50,0.16);
  font-size: 14.5px;
  line-height: 1.4;
  color: #5f5546;
  text-decoration: none;
  transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out),
              border-color var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.bp-toc__list a:hover {
  color: var(--wp--preset--color--rust);
  border-color: var(--wp--preset--color--rust);
}
.bp-rail-share {
  border-top: 1px solid rgba(70,62,50,0.14);
  padding-top: 24px;
}
.bp-rail-share__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6e6353;
  margin: 0 0 12px;
}
.bp-rail-share__row { display: flex; gap: 8px; }
.bp-rail-share__btn {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: transparent;
  color: #1a1a1a;
  border: 1px solid rgba(70,62,50,0.22);
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600; font-size: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.bp-rail-share__btn:hover {
  background: #1a1a1a;
  color: var(--wp--preset--color--warm-white);
  border-color: #1a1a1a;
}

/* FAQ */
.bp-faq {
  background: #f1e9df;
  border-top: 1px solid rgba(70,62,50,0.12);
}
.bp-faq__inner {
  max-width: 760px; margin: 0 auto;
  padding: clamp(52px,6.5vw,84px) clamp(20px,5vw,40px);
}
.bp-faq__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 14px;
}
.bp-faq h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(28px,3.6vw,42px);
  line-height: 1.1;
  margin: 0 0 clamp(28px,3.5vw,40px);
  color: #1f1b15;
}
.bp-faq h2 em { font-style: italic; }
.bp-faq__item { border-top: 1px solid rgba(70,62,50,0.18); }
.bp-faq__item:last-child { border-bottom: 1px solid rgba(70,62,50,0.18); }
.bp-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 24px 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(20px,2.4vw,25px);
  line-height: 1.2;
  color: #1f1b15;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px;
}
.bp-faq__item summary::-webkit-details-marker { display: none; }
.bp-faq__item summary::after {
  content: "+";
  font-family: var(--wp--preset--font-family--display);
  font-size: 28px;
  color: var(--wp--preset--color--rust);
  flex: 0 0 auto;
}
.bp-faq__item[open] summary::after { content: "–"; }
.bp-faq__item summary:hover { color: var(--wp--preset--color--rust); }
.bp-faq__item p {
  margin: 0; padding: 0 0 26px;
  color: #3a342b;
  font-size: 17px;
  line-height: 1.7;
  max-width: 620px;
}

/* Author bio */
.bp-author {
  max-width: 760px; margin: 0 auto;
  padding: clamp(52px,6.5vw,84px) clamp(20px,5vw,40px) clamp(28px,3.5vw,40px);
}
.bp-author__inner {
  display: flex; gap: clamp(20px,3vw,32px);
  align-items: flex-start;
  flex-wrap: wrap;
}
.bp-author__avatar {
  width: 84px; height: 84px;
  border-radius: 50%;
  background: #e9ddc9;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600; font-size: 34px;
  color: var(--wp--preset--color--rust);
  flex: 0 0 auto;
}
.bp-author__body { flex: 1; min-width: 240px; }
.bp-author__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  margin: 0 0 8px;
}
.bp-author__name {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: 27px;
  line-height: 1.1;
  margin: 0 0 10px;
}
.bp-author p {
  color: #5f5546;
  font-size: 16px;
  line-height: 1.68;
  margin: 0 0 16px;
}
.bp-author__link {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1a1a1a;
  text-decoration: none;
  border-bottom: 1.5px solid var(--wp--preset--color--rust);
  padding-bottom: 4px;
}

/* Sources & references */
.bp-sources {
  max-width: 760px; margin: 0 auto;
  padding: 0 clamp(20px,5vw,40px) clamp(48px,6vw,72px);
}
.bp-sources details {
  border-top: 1px solid rgba(70,62,50,0.16);
  border-bottom: 1px solid rgba(70,62,50,0.16);
  padding: 8px 0;
}
.bp-sources summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6e6353;
  padding: 16px 0;
}
.bp-sources summary::-webkit-details-marker { display: none; }
.bp-sources ul {
  margin: 0 0 18px;
  padding-left: 20px;
  color: #5f5546;
  font-size: 14.5px;
  line-height: 1.7;
}

/* Dark post-CTA */
.bp-cta {
  background: #1a1a1a;
  color: var(--wp--preset--color--warm-white);
}
.bp-cta__inner {
  max-width: 680px; margin: 0 auto;
  padding: clamp(52px,6.5vw,88px) clamp(20px,5vw,40px);
  text-align: center;
}
.bp-cta__tagline {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-size: 22px;
  color: #d9a86a;
  margin: 0 0 20px;
}
.bp-cta h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(26px,3.4vw,40px);
  line-height: 1.1;
  margin: 0 0 26px;
  color: var(--wp--preset--color--warm-white);
}
.bp-cta h2 em { font-style: italic; }
.bp-cta__btn {
  display: inline-block;
  text-decoration: none;
  background: #d9a86a;
  color: #1a1a1a;
  padding: 16px 38px;
  border-radius: 2px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: background var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
}
.bp-cta__btn:hover { background: #e6bd86; }

/* v0.9.52 — Belt-and-suspenders LIGHT backgrounds on blog/journal sections.
   Defensive against any ancestor element (theme template, WP block group,
   etc.) that might leak a dark background through. The new design has these
   sections on warm-white; lock it in explicitly so it can't shift. */
.journal-hero,
.journal-grid-section,
.journal-grid-section__inner,
.journal-featured,
.bp-header,
.bp-figure,
.bp-body-wrap,
.bp-author {
  background: var(--wp--preset--color--warm-white);
}
.bp-prose,
.bp-prose p,
.bp-prose li,
.bp-prose blockquote p {
  color: #3a342b;  /* lock the text color so it's never inherit-dark */
}
.journal-card__title,
.journal-featured__title,
.journal-featured h2,
.journal-featured h2 a {
  color: var(--wp--preset--color--text-deep) !important;  /* keep titles visible */
}
.journal-card__excerpt {
  color: var(--wp--preset--color--body-muted, #5f5546);
}

/* v0.9.56 — Blog index design updates per the new PDF: featured "FEATURED"
   eyebrow with rule, byline avatar on featured post, Latest stories heading. */
.journal-featured__featured-tag {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 26px;
}
.journal-featured__featured-rule {
  flex: 1; height: 1px; background: rgba(70,62,50,0.14);
}
.journal-featured__featured-text {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #a04e10;
}
.journal-featured__split {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: clamp(28px,4vw,56px);
  align-items: center;
}
@media (max-width: 940px) { .journal-featured__split { grid-template-columns: 1fr; } }
.journal-featured__byline {
  display: flex; align-items: center; gap: 12px;
  margin: 18px 0 24px;
}
.journal-featured__avatar {
  width: 38px; height: 38px; border-radius: 50%;
  background: #e9ddc9;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600; font-size: 16px;
  color: var(--wp--preset--color--rust);
}
.journal-featured__author {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px; letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6e6353;
  margin: 0;
}
.journal-featured__readlink-wrap { margin: 0; }
.journal-featured__readlink {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #141414;
  text-decoration: none;
  border-bottom: 1.5px solid var(--wp--preset--color--rust);
  padding-bottom: 6px;
}
.journal-featured__readlink:hover { color: var(--wp--preset--color--rust); }
.journal-grid-section__heading {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(22px,2.6vw,30px);
  margin: 0;
  color: #1f1b15;
}
.journal-grid-section__heading em { font-style: italic; }


/* ===== Reviews page (/reviews/) — lifted from inline <style>
   These styles back the standalone /reviews/ page. They used to live
   only inline in /site/reviews/index.html, which meant the WordPress
   render of the page (which strips inline <style>) had no styling for
   the reviews-grid + review-card + rev-* sections. Lifted here so
   inner-pages.css (linked by both /site/ and /theme/) carries them. */

  /* v0.9.45 — Reviews page redesign per Maravelas_Testimonials.dc design.
     Sections (in order): typo-hero (breadcrumb) · rev-trust dark strip ·
     rev-featured single big quote · reviews-grid (2-col) · rev-themes
     "What Guests Mention Most" · rev-cta combined "Leave a review"
     with platform buttons + tour link · rel-wrap. */

  /* ----- Typo-hero breadcrumb (shared with /events/) ----- */
  .typo-hero__crumbs {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
    color: #8a7c66; margin-bottom: 28px;
  }
  .typo-hero__crumbs a { color: inherit; text-decoration: none; transition: color var(--wp--custom--duration--quick) var(--wp--custom--ease--out); }
  .typo-hero__crumbs a:hover { color: #a04e10; }

  /* ----- Trust strip (dark band, 3 cells, between hero and featured) ----- */
  .rev-trust { background: #16130f; color: #f3ead8; }
  .rev-trust__inner {
    max-width: 1080px; margin: 0 auto;
    padding: clamp(34px,4vw,44px) clamp(16px,4vw,56px);
    display: flex; align-items: center; justify-content: center;
    gap: clamp(16px,4vw,72px); flex-wrap: nowrap;
    text-align: center;
  }
  .rev-trust__cell { min-width: 0; }
  .rev-trust__stars {
    color: #c4662a;
    letter-spacing: 0.22em;
    font-size: 17px;
  }
  .rev-trust__num {
    font-family: var(--wp--preset--font-family--display);
    font-size: 34px; color: #fdfaf6; line-height: 1;
  }
  .rev-trust__label {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 10.5px; letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(243,234,216,0.62);
    margin: 9px 0 0;
  }
  .rev-trust__div {
    width: 1px; height: 40px;
    background: rgba(243,234,216,0.18);
    flex: 0 0 auto;
  }
  @media (max-width: 700px) {
    .rev-trust__inner { flex-direction: column; gap: 22px; }
    .rev-trust__div { display: none; }
  }

  /* ----- Featured quote (single big centered quote) ----- */
  .rev-featured { background: var(--wp--preset--color--warm-white); }
  .rev-featured__inner {
    max-width: 940px; margin: 0 auto;
    padding: clamp(64px,9vw,116px) clamp(20px,5vw,56px) clamp(40px,5vw,56px);
    text-align: center;
  }
  .rev-featured__mark {
    font-family: var(--wp--preset--font-family--display);
    font-size: 90px; line-height: 0.5;
    color: #d8c8a8; margin-bottom: 30px;
  }
  .rev-featured__quote {
    font-family: var(--wp--preset--font-family--display);
    font-style: italic; font-weight: 400;
    font-size: clamp(26px,3.6vw,42px);
    line-height: 1.32;
    color: #2a241b;
    margin: 0 0 30px;
    text-wrap: balance;
  }
  .rev-featured__stars {
    color: #a04e10;
    letter-spacing: 0.22em;
    font-size: 13px;
    margin-bottom: 14px;
  }
  .rev-featured__name {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 15px; letter-spacing: 0.06em;
    color: #141414;
  }
  .rev-featured__event {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 11px; letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #a04e10;
    margin-top: 6px;
  }

  /* ----- Reviews grid (2-col, redesigned cards) ----- */
  .reviews-grid { background: var(--wp--preset--color--warm-white); }
  .reviews-grid__inner {
    max-width: 1180px; margin: 0 auto;
    padding: 0 clamp(20px,5vw,56px) clamp(64px,9vw,110px);
  }
  /* WP renders the testimonial query loop with two wrapper layers
     (.wp-block-query then ul.wp-block-post-template) between
     .reviews-grid__grid and the <li> cards, so we apply the grid to the
     <ul> (which carries .reviews-grid__list in the WP template) and to
     the static <div class="reviews-grid__grid"> on /site/. Both end up
     two-column on desktop and one-column under 820px. */
  .reviews-grid__grid,
  .reviews-grid__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* row-gap is larger than column-gap so the cards have visible
       breathing room between rows; otherwise short reviews looked
       glued to the next row when their neighbor was taller. */
    gap: clamp(36px,4vw,52px) clamp(22px,2.6vw,30px);
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: start;
  }
  /* WP nests the cards inside <div class="wp-block-query"><ul class=
     "reviews-grid__list">. When that nesting is present, the outer
     .reviews-grid__grid must NOT be a 2-col grid (otherwise the lone
     .wp-block-query child sits in column 1 at 50% width, then the
     inner <ul> grids its cards at 25% of section width). Collapse
     the outer wrapper to a plain block whenever the WP loop is in
     play — the real grid stays on .reviews-grid__list. */
  .reviews-grid__grid:has(.wp-block-query) {
    display: block;
    gap: 0;
  }
  /* Strip WP's own post-template + post styles so they don't fight
     our card layout. */
  .reviews-grid__list.wp-block-post-template { gap: clamp(36px,4vw,52px) clamp(22px,2.6vw,30px); }
  .reviews-grid__list > li { margin: 0; padding: 0; list-style: none; width: 100%; }
  .reviews-grid__list > li::before { display: none; }
  /* The .wp-block-query wrapper between .reviews-grid__grid and
     .reviews-grid__list must be a plain block so its child <ul>
     spans the full available width. */
  .reviews-grid__grid > .wp-block-query { display: block; width: 100%; }

  /* WP wraps the body in a <div class="entry-content review-card__body
     wp-block-post-content"> with an inner <p>, and the excerpt in a
     <div class="review-card__event wp-block-post-excerpt"> with an inner
     <p class="wp-block-post-excerpt__excerpt">. Reset the WP wrappers
     and zero out the inner paragraph margins so the cards keep the same
     vertical rhythm whether the markup is the /site/ static form or
     the WP-rendered form. */
  .review-card .entry-content,
  .review-card .wp-block-post-content { margin: 0; padding: 0; }
  .review-card__body { display: block; }
  .review-card__body > p,
  .review-card__body > p:last-child { margin: 0; font: inherit; color: inherit; }
  .review-card__event.wp-block-post-excerpt { margin: 0; }
  .review-card__event .wp-block-post-excerpt__excerpt,
  .review-card__event > p { margin: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; }
  /* WP's post-title block has its own typography — strip it back so our
     .review-card__name class wins. */
  .review-card__name.wp-block-post-title { font-size: 15px; line-height: 1.3; }
  /* Make sure each <li> grid item lets the article fill it height-wise
     so card footers line up on a shared baseline. */
  .reviews-grid__list > li > .review-card { height: 100%; }
  .review-card {
    background: #f6efe7;
    padding: clamp(34px,4vw,46px) clamp(30px,3.4vw,42px);
    display: flex; flex-direction: column;
  }
  .review-card__quote-mark {
    font-family: var(--wp--preset--font-family--display);
    font-size: 50px; line-height: 0.6;
    color: #beb0a0;
    margin-bottom: 20px;
  }
  .review-card__stars {
    color: #a04e10;
    letter-spacing: 0.2em;
    font-size: 13px;
    margin: 0 0 18px;
  }
  .review-card__body {
    font-family: var(--wp--preset--font-family--display);
    font-style: italic;
    font-size: clamp(19px,2.1vw,22px);
    line-height: 1.5;
    color: #2e2a22;
    margin: 0 0 28px;
  }
  .review-card__footer {
    margin-top: auto;
    border-top: 1px solid rgba(70,62,50,0.18);
    padding-top: 20px;
  }
  .review-card__name {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 15px; letter-spacing: 0.04em;
    color: #141414;
    margin: 0;
  }
  .review-card__event {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 11px; letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #a04e10;
    margin: 5px 0 0;
    line-height: 1.2;
  }
  @media (max-width: 820px) {
    .reviews-grid__grid,
    .reviews-grid__list { grid-template-columns: 1fr; }
  }

  /* ----- What Guests Mention Most (4-card themed section) ----- */
  .rev-themes { background: #eee3d7; }
  .rev-themes__inner {
    max-width: 1080px; margin: 0 auto;
    padding: clamp(64px,9vw,110px) clamp(20px,5vw,56px);
    text-align: center;
  }
  .rev-themes__eyebrow {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 13px; letter-spacing: 0.3em;
    text-transform: uppercase;
    color: #a04e10;
    margin: 0 0 18px; line-height: 1;
  }
  .rev-themes__title {
    font-family: var(--wp--preset--font-family--display);
    font-weight: 500;
    font-size: clamp(30px,4.2vw,50px);
    line-height: 1.06;
    margin: 0 0 20px;
    color: var(--wp--preset--color--text-deep);
  }
  .rev-themes__title em { font-style: italic; }
  .rev-themes__lede {
    color: #5f5546;
    max-width: 600px;
    margin: 0 auto clamp(40px,5vw,56px);
  }
  .rev-themes__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(16px,2vw,26px);
    text-align: left;
  }
  .rev-theme-card {
    background: var(--wp--preset--color--warm-white);
    border-top: 2px solid #a04e10;
    padding: 28px 24px 30px;
    display: flex; flex-direction: column;
    height: 100%;
  }
  .rev-theme-card__label {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 10.5px; letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #a04e10;
    margin: 0 0 12px;
  }
  .rev-theme-card__line {
    font-family: var(--wp--preset--font-family--display);
    font-size: 25px; line-height: 1.18;
    color: #2a241b;
    margin: 0;
  }
  @media (max-width: 820px) { .rev-themes__grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 420px) { .rev-themes__grid { grid-template-columns: 1fr; } }

  /* ----- Combined CTA (leave a review + tour link) ----- */
  .rev-cta { background: var(--wp--preset--color--warm-white); }
  .rev-cta__inner {
    max-width: 760px; margin: 0 auto;
    padding: clamp(64px,9vw,110px) clamp(20px,5vw,56px);
    text-align: center;
  }
  .rev-cta__eyebrow {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 13px; letter-spacing: 0.3em;
    text-transform: uppercase;
    color: #a04e10;
    margin: 0 0 20px; line-height: 1;
  }
  .rev-cta__title {
    font-family: var(--wp--preset--font-family--display);
    font-weight: 500;
    font-size: clamp(32px,4.4vw,54px);
    line-height: 1.05;
    margin: 0 0 18px;
    color: var(--wp--preset--color--text-deep);
  }
  .rev-cta__title em { font-style: italic; }
  .rev-cta__sub {
    font-family: var(--wp--preset--font-family--display);
    font-style: italic;
    font-size: 19px;
    color: #6e6353;
    margin: 0 auto 34px;
    max-width: 520px;
  }
  .rev-cta__label {
    font-family: var(--wp--preset--font-family--accent);
    font-size: 11px; letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #a04e10;
    margin: 0 0 20px;
  }
  .rev-cta__platforms {
    display: flex; gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0 auto;
  }
  .rev-cta__platform {
    text-decoration: none; white-space: nowrap;
    background: transparent;
    color: #2a241b;
    padding: 12px clamp(12px,1.8vw,22px);
    font-family: var(--wp--preset--font-family--accent);
    font-size: clamp(10px,1.3vw,12px);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 1px solid rgba(20,20,20,0.28);
    transition: all var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
  }
  .rev-cta__platform:hover {
    border-color: #a04e10;
    color: #a04e10;
    background: #fff;
  }
  .rev-cta__tour {
    display: inline-block;
    margin-top: 34px;
    text-decoration: none;
    font-family: var(--wp--preset--font-family--accent);
    font-size: 12px; letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6e6353;
    border-bottom: 1px solid rgba(20,20,20,0.25);
    padding-bottom: 3px;
    transition: all var(--wp--custom--duration--quick) var(--wp--custom--ease--out);
  }
  .rev-cta__tour:hover { color: #a04e10; border-color: #a04e10; }

/* WP wraps the page <main> with class="is-layout-constrained" which
   applies `max-width: var(--wp--style--global--content-size)` (880px)
   to every direct child via the global stylesheet. That clamps the
   /reviews/ sections to a narrow column, hiding the dark trust band
   edges and collapsing the reviews grid. Force every reviews-page
   section to break out of the constraint and use its own .__inner
   wrapper to handle content max-width. Also relax the inner reviews-
   grid section which is itself a wp-block-group (is-layout-constrained)
   so its .reviews-grid__inner reaches full width before the 1180px cap.
   And nuke the WP `has-global-padding` so backgrounds reach the viewport
   edges. */
main.is-layout-constrained > .typo-hero,
main.is-layout-constrained > .rev-trust,
main.is-layout-constrained > .rev-featured,
main.is-layout-constrained > .reviews-grid,
main.is-layout-constrained > .rev-themes,
main.is-layout-constrained > .rev-cta {
  max-width: none !important;
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.reviews-grid.is-layout-constrained > .reviews-grid__inner,
.reviews-grid.wp-block-group > .reviews-grid__inner {
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
main.has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/* ===== END Reviews page ===== */


/* =========================================================================
   /blog/ — Journal page redesign (v0.9.69)
   Brings the live WP render in line with the Maravelas_Blog_4 standalone
   design exactly. CSS-only override block appended after every other blog
   declaration so it wins the cascade. Layout-constrained breakout for
   WP's <main> wrapper. No markup changes required.
   ========================================================================= */

/* Break the journal sections out of WordPress's 880px content clamp. */
main.is-layout-constrained > .journal-hero,
main.is-layout-constrained > .journal-chips,
main.is-layout-constrained > .journal-featured,
main.is-layout-constrained > .journal-grid-section,
main.is-layout-constrained > .journal-newsletter {
  max-width: none !important;
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.journal-featured.is-layout-constrained > div,
.journal-grid-section.is-layout-constrained > div { max-width: none !important; }

/* Re-cap the visible content at 1240px. The WP query loop has multiple
   nested wrappers between the section and the actual content, none of
   which carry a max-width by default — so without this the featured
   post photo and the card grid stretch edge-to-edge. NB: the grid
   section's .wp-block-query is NOT a direct child of the section —
   it's nested inside .journal-grid-section__inner. The descendant
   selector covers both layouts. */
.journal-featured .wp-block-query,
.journal-grid-section .wp-block-query,
.journal-featured__split,
.journal-grid {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100%;
  padding-left: clamp(20px, 5vw, 56px);
  padding-right: clamp(20px, 5vw, 56px);
  box-sizing: border-box;
}
/* Once the wp-block-query is already capped, drop the padding on the
   inner <ul> and the featured __split so we don't double-pad. */
.journal-featured .wp-block-query > ul,
.journal-grid-section .wp-block-query > ul.journal-grid,
.journal-featured .wp-block-query .journal-featured__split {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* And drop the matching cap on the inner __split / .journal-grid so
   the parent (.wp-block-query) is the sole 1240px container. */
.journal-featured .wp-block-query .journal-featured__split,
.journal-grid-section .wp-block-query > ul.journal-grid { max-width: none !important; }

/* ----- Hero ----- */
.journal-hero {
  background: var(--wp--preset--color--warm-white) !important;
  padding: 0 !important;
  border-bottom: 1px solid rgba(70,62,50,0.12);
}
/* Belt-and-suspenders: if has-dark-hero ever lands on /blog/ again (it
   stripped main's top padding and shoved the hero up under the fixed
   header), bump the hero's own top padding so the title still has air. */
body.has-dark-hero .journal-hero__inner,
body.blog .journal-hero__inner {
  padding-top: clamp(140px, 14vw, 200px) !important;
}
.journal-hero__inner {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: clamp(52px,6.5vw,80px) clamp(20px,5vw,56px) clamp(36px,4.5vw,52px) !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 40px !important;
  flex-wrap: wrap !important;
}
.journal-hero__main { flex: 1 1 540px; min-width: 0; }
.journal-hero__breadcrumb {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 12px !important;
  font-weight: 400;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: #8a7c66 !important;
  margin: 0 0 28px !important;
}
.journal-hero__breadcrumb a { color: #8a7c66; text-decoration: none; }
.journal-hero__breadcrumb a:hover { color: var(--wp--preset--color--rust); }
.journal-hero__eyebrow-line {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 18px !important;
}
.journal-hero__eyebrow-rule { width: 26px; height: 1px; background: var(--wp--preset--color--rust); display: inline-block; }
.journal-hero__eyebrow-text {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust);
}
.journal-hero h1 {
  font-family: var(--wp--preset--font-family--display) !important;
  font-weight: 500 !important;
  font-size: clamp(44px,6vw,78px) !important;
  line-height: 1.0 !important;
  letter-spacing: -0.01em;
  margin: 0 0 22px !important;
  max-width: 880px;
  color: #141414;
}
.journal-hero h1 em { font-style: italic; }
.journal-hero__sub {
  font-family: var(--wp--preset--font-family--body) !important;
  font-style: normal !important;
  font-size: clamp(17px,2vw,20px) !important;
  line-height: 1.6 !important;
  color: #5f5546 !important;
  max-width: 560px !important;
  margin: 0 !important;
}
.journal-hero__stats {
  text-align: right;
  min-width: 150px;
  flex: 0 0 auto;
}
.journal-hero__stats-num {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(40px,5vw,58px);
  line-height: 1;
  color: var(--wp--preset--color--rust);
  margin: 0;
}
.journal-hero__stats-label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a7c66;
  margin: 6px 0 0;
}

/* ----- Filter chip bar (sticky) ----- */
.journal-chips {
  background: var(--wp--preset--color--warm-white);
  position: sticky;
  top: 88px; /* clears site header */
  z-index: 30;
  border-bottom: 1px solid rgba(70,62,50,0.12);
  backdrop-filter: blur(6px);
}
.journal-chips__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px clamp(20px,5vw,56px);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.journal-chips__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a7c66;
  margin-right: 4px;
}
.journal-chips__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  flex: 1;
}
.journal-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid rgba(70,62,50,0.18);
  padding: 8px 14px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #141414;
  text-decoration: none;
  border-radius: 2px;
  transition: border-color .2s, color .2s, background .2s;
}
.journal-chip:hover {
  border-color: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--rust);
}
.journal-chip[aria-current="page"] {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #fdfaf6;
}
.journal-chip__count {
  opacity: 0.6;
  font-size: 11px;
  font-weight: 400;
}
.journal-chip[aria-current="page"] .journal-chip__count { opacity: 0.7; }

/* ----- Featured post ----- */
.journal-featured {
  background: var(--wp--preset--color--warm-white) !important;
  padding: 0 !important;
}
.journal-featured__inner,
.journal-featured > .reviews-grid__inner,
.journal-featured > div {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: clamp(44px,5.5vw,68px) clamp(20px,5vw,56px) clamp(28px,3.5vw,40px) !important;
}
.journal-featured__featured-tag {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 26px !important;
}
.journal-featured__featured-rule { flex: 1 !important; height: 1px !important; background: rgba(70,62,50,0.14) !important; }
.journal-featured__featured-text {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 11px !important;
  letter-spacing: 0.26em !important;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust) !important;
}
.journal-featured__split {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(28px,4vw,56px) !important;
  align-items: stretch !important;
}
@media (max-width: 940px) { .journal-featured__split { grid-template-columns: 1fr !important; } }
.journal-featured__media {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 380px;
  background: #e7ded1;
  aspect-ratio: auto !important;
}
.journal-featured__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.journal-featured__media:hover img { transform: scale(1.03); }
.journal-featured__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 0;
}
.journal-featured__eyebrow {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust) !important;
  margin: 0 0 16px !important;
}
.journal-featured__title,
.journal-featured h2 {
  font-family: var(--wp--preset--font-family--display) !important;
  font-weight: 500 !important;
  font-style: normal !important;
  font-size: clamp(32px,3.8vw,50px) !important;
  line-height: 1.06 !important;
  letter-spacing: 0 !important;
  margin: 0 0 18px !important;
}
.journal-featured__title a,
.journal-featured h2 a {
  color: var(--wp--preset--color--text-deep) !important;
  text-decoration: none;
  transition: color .2s;
}
.journal-featured__title a:hover,
.journal-featured h2 a:hover { color: var(--wp--preset--color--rust) !important; }
.journal-featured__excerpt {
  color: #5f5546 !important;
  font-family: var(--wp--preset--font-family--body) !important;
  font-style: normal !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  margin: 0 0 26px !important;
  max-width: 480px !important;
}
.journal-featured__excerpt p { margin: 0; color: inherit; font: inherit; }
.journal-featured__byline {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 28px !important;
}
.journal-featured__avatar {
  width: 38px !important; height: 38px !important;
  border-radius: 50%;
  background: #e9ddc9 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600;
  font-size: 16px;
  color: var(--wp--preset--color--rust);
}
.journal-featured__author {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  color: #6e6353 !important;
  margin: 0 !important;
}
.journal-featured__readlink-wrap { margin: 0; }
.journal-featured__readlink {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: #141414 !important;
  text-decoration: none !important;
  border-bottom: 1.5px solid var(--wp--preset--color--rust) !important;
  padding-bottom: 6px !important;
  align-self: flex-start;
  width: fit-content;
}
.journal-featured__readlink:hover { color: var(--wp--preset--color--rust) !important; }

/* ----- Grid of remaining posts ----- */
.journal-grid-section {
  background: var(--wp--preset--color--warm-white) !important;
  padding: 0 !important;
}
.journal-grid-section__inner,
.journal-grid-section > div {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: clamp(22px,3vw,38px) clamp(20px,5vw,56px) clamp(40px,5vw,56px) !important;
}
.journal-grid-section__inner > * + * { margin-top: 0 !important; }
.journal-grid-section__head {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 16px;
  border-top: 1px solid rgba(70,62,50,0.14);
  padding-top: clamp(36px,4.5vw,52px);
  margin-bottom: clamp(28px,3.5vw,40px);
}
.journal-grid-section__heading {
  font-family: var(--wp--preset--font-family--display) !important;
  font-weight: 500 !important;
  font-style: italic !important;
  font-size: clamp(22px,2.6vw,30px) !important;
  margin: 0 !important;
  color: #1f1b15;
}
.journal-grid-section__heading em { font-style: italic; }
.journal-grid-section__count {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: #8a7c66 !important;
  white-space: nowrap;
}

/* Cards. WP template renders a <ul.journal-grid.wp-block-post-template>;
   the inline `wp-container-core-post-template-is-layout-cda6dc4f` rule
   sets grid-template-columns: repeat(3, ...). Honor it but match the
   design's gaps and align items to start so each card hugs its content. */
.journal-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(30px,3.4vw,44px) clamp(26px,3vw,34px) !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: start !important;
}
@media (max-width: 920px) { .journal-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 620px) { .journal-grid { grid-template-columns: 1fr !important; } }
.journal-grid > li { margin: 0 !important; padding: 0 !important; width: 100% !important; }
.journal-card,
.journal-grid > li > .wp-block-group {
  display: flex !important;
  flex-direction: column !important;
  background: transparent !important;
  padding: 0 !important;
}
.journal-card__media,
.journal-card > .wp-block-post-featured-image {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 3 / 2 !important;
  margin: 0 0 20px !important;
  background: #e7ded1;
  display: block;
}
.journal-card__media img,
.journal-card .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.journal-card:hover .journal-card__media img,
.journal-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.journal-card__eyebrow,
.journal-card .taxonomy-category {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: var(--wp--preset--color--rust) !important;
  margin: 0 0 11px !important;
  display: block;
}
.journal-card__eyebrow a,
.journal-card .taxonomy-category a { color: inherit; text-decoration: none; }
.journal-card__title,
.journal-card .wp-block-post-title {
  font-family: var(--wp--preset--font-family--display) !important;
  font-weight: 500 !important;
  font-style: normal !important;
  font-size: 25px !important;
  line-height: 1.12 !important;
  margin: 0 0 10px !important;
  color: var(--wp--preset--color--text-deep) !important;
  letter-spacing: 0 !important;
}
.journal-card__title a,
.journal-card .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.journal-card__title a:hover,
.journal-card .wp-block-post-title a:hover { color: var(--wp--preset--color--rust); }
.journal-card__excerpt,
.journal-card .wp-block-post-excerpt {
  color: #5f5546 !important;
  font-family: var(--wp--preset--font-family--body) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  margin: 0 0 14px !important;
}
.journal-card .wp-block-post-excerpt__excerpt,
.journal-card__excerpt p { margin: 0 !important; font: inherit; color: inherit; }
.journal-card__date,
.journal-card .wp-block-post-date {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: #8a7c66 !important;
  margin: auto 0 0 !important;
}

/* ----- Pagination ----- */
.wp-block-query-pagination,
.journal-grid-section .wp-block-query-pagination {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  margin: clamp(48px,6vw,76px) 0 0 !important;
  flex-wrap: wrap;
}
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-numbers .page-numbers,
.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #141414;
  background: transparent;
  border: 1px solid rgba(70,62,50,0.18);
  border-radius: 2px;
  text-decoration: none !important;
  transition: border-color .2s, color .2s, background .2s;
}
.wp-block-query-pagination .page-numbers:hover,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
  border-color: var(--wp--preset--color--rust);
  color: var(--wp--preset--color--rust);
}
.wp-block-query-pagination .page-numbers.current {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #fdfaf6;
}
.wp-block-query-pagination-numbers {
  display: inline-flex;
  gap: 8px;
}

/* ----- Newsletter (dark) ----- */
.journal-newsletter {
  background: #1a1a1a !important;
  color: #fdfaf6 !important;
  padding: 0 !important;
}
.journal-newsletter__inner {
  max-width: 880px !important;
  margin: 0 auto !important;
  padding: clamp(56px,7vw,92px) clamp(20px,5vw,56px) !important;
  text-align: center !important;
}
.journal-newsletter__eyebrow-line {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px !important;
}
.journal-newsletter__rule { width: 22px; height: 1px; background: #d9a86a; display: inline-block; }
.journal-newsletter__eyebrow {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 11px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: #d9a86a !important;
}
.journal-newsletter h2 {
  font-family: var(--wp--preset--font-family--display) !important;
  font-weight: 500 !important;
  font-size: clamp(28px,3.6vw,42px) !important;
  line-height: 1.1 !important;
  margin: 0 0 16px !important;
  color: #fdfaf6 !important;
  letter-spacing: 0 !important;
}
.journal-newsletter h2 em { font-style: italic; }
.journal-newsletter__sub {
  color: rgba(253,250,246,0.7) !important;
  font-family: var(--wp--preset--font-family--body) !important;
  font-style: normal !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  max-width: 460px !important;
  margin: 0 auto 30px !important;
}
.journal-newsletter__form {
  display: flex !important;
  gap: 10px !important;
  max-width: 440px !important;
  margin: 0 auto !important;
  flex-wrap: wrap;
  justify-content: center;
}
.journal-newsletter__input {
  flex: 1 1 220px;
  min-width: 220px;
  background: rgba(253,250,246,0.06);
  border: 1px solid rgba(253,250,246,0.2);
  color: #fdfaf6;
  padding: 14px 18px;
  font-family: var(--wp--preset--font-family--body);
  font-size: 15px;
  border-radius: 2px;
}
.journal-newsletter__input::placeholder { color: rgba(253,250,246,0.4); }
.journal-newsletter__submit {
  background: #d9a86a !important;
  color: #1a1a1a !important;
  border: none;
  padding: 14px 30px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 2px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s;
}
.journal-newsletter__submit:hover { background: #e6bd86 !important; }

/* WP layout-flow margin-block resets so the sections sit flush vertically. */
main.is-layout-constrained > .journal-hero,
main.is-layout-constrained > .journal-chips,
main.is-layout-constrained > .journal-featured,
main.is-layout-constrained > .journal-grid-section,
main.is-layout-constrained > .journal-newsletter,
main.is-layout-constrained > .rel-wrap {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

/* ===== END /blog/ redesign ===== */


/* =========================================================================
   /reviews/ — filter chip bar (v0.9.70)
   Lives between the featured quote and the cards grid. JS in the template
   infers each card's category from its event text, populates counts, and
   wires the chips to show/hide matching cards.
   ========================================================================= */
.rev-filter {
  background: var(--wp--preset--color--warm-white);
  border-bottom: 1px solid rgba(70,62,50,0.12);
}
main.is-layout-constrained > .rev-filter {
  max-width: none !important;
  width: 100%;
  margin: 0 !important;
}
.rev-filter__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px clamp(20px,5vw,56px);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.rev-filter__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a7c66;
  margin-right: 4px;
  flex: 0 0 auto;
}
.rev-filter__chips {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  flex: 1;
}
.rev-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid rgba(70,62,50,0.18);
  padding: 8px 14px;
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #141414;
  border-radius: 2px;
  cursor: pointer;
  transition: border-color .2s, color .2s, background .2s;
}
.rev-chip:hover { border-color: var(--wp--preset--color--rust); color: var(--wp--preset--color--rust); }
.rev-chip[aria-selected="true"] {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #fdfaf6;
}
.rev-chip[hidden] { display: none; }
.rev-chip__count { opacity: 0.55; font-size: 11px; font-weight: 400; }
.rev-chip[aria-selected="true"] .rev-chip__count { opacity: 0.7; }

/* ===== END Reviews filter chips ===== */


/* =========================================================================
   Gravity Forms — restyle in the Maravela brand (v0.9.76)
   Each form JSON carries the .maravelas-form custom class, so the
   wrapper renders as .maravelas-form_wrapper. We override Gravity
   Forms' Orbital theme CSS variables (rust primary, warm-white ground,
   brand fonts) plus a small handful of layout/typography tweaks for
   labels, section dividers, and the submit button.
   ========================================================================= */
.gform-theme--orbital.maravelas-form_wrapper,
.maravelas-form_wrapper.gform-theme,
[data-parent-form^="1_"],
[data-parent-form^="2_"],
[data-parent-form^="3_"] {
  /* Brand palette → GF tokens. */
  --gf-color-primary: var(--wp--preset--color--rust, #a04e10) !important;
  --gf-color-primary-rgb: 160, 78, 16 !important;
  --gf-color-primary-darker: #7a3a08 !important;
  --gf-color-primary-lighter: #b85d22 !important;
  --gf-color-primary-contrast: var(--wp--preset--color--warm-white, #fdfaf6) !important;
  --gf-color-primary-contrast-rgb: 253, 250, 246 !important;

  --gf-color-secondary: var(--wp--preset--color--warm-white, #fdfaf6) !important;
  --gf-color-secondary-contrast: #141414 !important;

  --gf-color-in-ctrl: #fff !important;
  --gf-color-in-ctrl-contrast: #141414 !important;
  --gf-color-in-ctrl-primary: var(--wp--preset--color--rust, #a04e10) !important;
  --gf-color-in-ctrl-primary-contrast: var(--wp--preset--color--warm-white, #fdfaf6) !important;
  --gf-color-in-ctrl-primary-darker: #7a3a08 !important;

  --gf-color-out-ctrl-dark: #3a342b !important;
  --gf-color-out-ctrl-dark-darker: #141414 !important;
  --gf-color-out-ctrl-dark-lighter: rgba(58, 52, 43, 0.7) !important;
  --gf-color-out-ctrl-light: rgba(70, 62, 50, 0.22) !important;
  --gf-color-out-ctrl-light-darker: rgba(70, 62, 50, 0.4) !important;

  --gf-ctrl-border-color: rgba(70, 62, 50, 0.28) !important;
  --gf-ctrl-label-color-primary: #141414 !important;
  --gf-ctrl-label-color-secondary: #6e6353 !important;

  --gf-radius: 2px !important;

  /* Use Albert Sans by default; SC + Garamond appear on specific bits below. */
  font-family: var(--wp--preset--font-family--body, 'Albert Sans', system-ui, sans-serif) !important;
}

/* Section dividers (e.g., "Event Details", "Menu & Service") — give them
   the Cormorant SC eyebrow treatment that matches every other section
   label on the site. */
.maravelas-form_wrapper .gsection .gsection_title {
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--wp--preset--color--rust) !important;
  margin: 28px 0 8px !important;
  padding-top: 22px !important;
  border-top: 1px solid rgba(70, 62, 50, 0.16) !important;
}

/* Field labels — keep simple but use the same warm dark ink as the body
   copy, not GF's default. */
.maravelas-form_wrapper .gform-field-label {
  font-family: var(--wp--preset--font-family--body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #141414 !important;
  letter-spacing: 0.02em !important;
}
.maravelas-form_wrapper .gform-field-label--type-sub {
  font-size: 11.5px !important;
  font-weight: 400 !important;
  color: #6e6353 !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.maravelas-form_wrapper .gfield_required_text {
  color: #6e6353 !important;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.04em;
  margin-left: 6px;
}

/* Inputs / selects / textareas — flat warm-white with hairline border. */
.maravelas-form_wrapper input[type="text"],
.maravelas-form_wrapper input[type="email"],
.maravelas-form_wrapper input[type="tel"],
.maravelas-form_wrapper input[type="number"],
.maravelas-form_wrapper input[type="url"],
.maravelas-form_wrapper input[type="date"],
.maravelas-form_wrapper select,
.maravelas-form_wrapper textarea {
  background: #fff !important;
  border: 1px solid rgba(70, 62, 50, 0.22) !important;
  border-radius: 2px !important;
  padding: 12px 14px !important;
  font-family: var(--wp--preset--font-family--body) !important;
  font-size: 15px !important;
  color: #141414 !important;
  transition: border-color .2s, box-shadow .2s;
}
.maravelas-form_wrapper input:focus,
.maravelas-form_wrapper select:focus,
.maravelas-form_wrapper textarea:focus {
  border-color: var(--wp--preset--color--rust) !important;
  box-shadow: 0 0 0 3px rgba(160, 78, 16, 0.12) !important;
  outline: none !important;
}

/* Checkboxes & radios — rust accent, square rounding. */
.maravelas-form_wrapper input[type="checkbox"],
.maravelas-form_wrapper input[type="radio"] {
  accent-color: var(--wp--preset--color--rust) !important;
}

/* Submit button — same treatment as the rest of the site's primary CTAs
   (filled black, tracked SC label, rust hover). */
.maravelas-form_wrapper .gform_button,
.maravelas-form_wrapper button[type="submit"] {
  background: #1a1a1a !important;
  color: var(--wp--preset--color--warm-white) !important;
  border: 1px solid #1a1a1a !important;
  padding: 16px 34px !important;
  font-family: var(--wp--preset--font-family--accent) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
}
.maravelas-form_wrapper .gform_button:hover,
.maravelas-form_wrapper button[type="submit"]:hover {
  background: var(--wp--preset--color--rust) !important;
  border-color: var(--wp--preset--color--rust) !important;
}

/* Field description / helper text below inputs — warm muted italic. */
.maravelas-form_wrapper .gfield_description {
  font-family: var(--wp--preset--font-family--display) !important;
  font-style: italic !important;
  font-size: 13.5px !important;
  color: #6e6353 !important;
  margin-top: 6px !important;
}
.maravelas-form_wrapper .gfield_description.instruction { font-size: 12.5px; }

/* Tighter vertical rhythm so the form doesn't feel cavernous.
   Gravity Forms Orbital uses --gf-form-grid-row-gap on the .gform_fields
   grid container (default ~32px). We lower that and zero out the
   per-field margin-top so spacing comes from the grid alone — otherwise
   the two stack to ~50px between fields. (v0.9.81) */
.maravelas-form_wrapper .gform_fields {
  --gf-form-grid-row-gap: 14px !important;
  row-gap: 14px !important;
}
.maravelas-form_wrapper .gfield { margin-top: 0 !important; }
.maravelas-form_wrapper .gform-footer { margin-top: 22px !important; }

/* Datepicker icon needs a tone closer to the body copy. */
.maravelas-form_wrapper .gform-datepicker { background-position: right 12px center; }

/* Honeypot field — always hidden visually, but stays in the DOM. */
.maravelas-form_wrapper .gfield--type-honeypot { display: none !important; }

/* ===== END Gravity Forms restyle ===== */

/* ============================================================
   SITE MAP (/site-map/) — v0.9.79
   Simple typographic index of every page on the site. Mirrors
   the journal-hero look on top, then a column grid of section
   lists (Start Here / Services / Menus / Events / etc.)
   ============================================================ */
.sitemap-hero {
  background: var(--wp--preset--color--warm-white);
  padding: clamp(96px,11vw,140px) clamp(20px,5vw,56px) clamp(48px,6vw,72px);
  border-bottom: 1px solid rgba(70,62,50,0.10);
}
.sitemap-hero__inner { max-width: 880px; margin: 0 auto; }
.sitemap-hero__breadcrumb {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(70,62,50,0.6); margin: 0 0 28px;
}
.sitemap-hero__breadcrumb a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(70,62,50,0.25); }
.sitemap-hero__breadcrumb a:hover { color: var(--wp--preset--color--rust); border-bottom-color: var(--wp--preset--color--rust); }
.sitemap-hero__eyebrow-line { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; }
.sitemap-hero__eyebrow-rule { display: inline-block; width: 28px; height: 1px; background: var(--wp--preset--color--rust); }
.sitemap-hero__eyebrow-text {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500; letter-spacing: 0.32em;
  text-transform: uppercase; color: var(--wp--preset--color--rust); line-height: 1;
}
.sitemap-hero__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500; font-size: clamp(40px,6vw,76px); line-height: 1.02;
  margin: 0 0 18px; color: var(--wp--preset--color--text-deep);
}
.sitemap-hero__title em { font-style: italic; color: var(--wp--preset--color--rust); }
.sitemap-hero__sub {
  font-size: clamp(16px,1.7vw,18px); line-height: 1.6;
  color: rgba(70,62,50,0.78); margin: 0; max-width: 640px;
}
.sitemap-hero__sub a { color: var(--wp--preset--color--rust); text-decoration: none; border-bottom: 1px solid rgba(160,78,16,0.3); }
.sitemap-hero__sub a:hover { border-bottom-color: var(--wp--preset--color--rust); }

.sitemap-body {
  background: var(--wp--preset--color--warm-white);
  padding: clamp(48px,6vw,80px) clamp(20px,5vw,56px) clamp(80px,9vw,120px);
}
.sitemap-body__inner {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(32px,4vw,56px) clamp(40px,5vw,72px);
}
@media (max-width: 900px) { .sitemap-body__inner { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sitemap-body__inner { grid-template-columns: 1fr; } }

.sitemap-col { min-width: 0; }
.sitemap-col__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 12px; font-weight: 500; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--wp--preset--color--rust);
  line-height: 1; margin: 0 0 16px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(70,62,50,0.18);
}
.sitemap-col__list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.sitemap-col__list a {
  font-family: var(--wp--preset--font-family--body);
  font-size: 15.5px; line-height: 1.45;
  color: var(--wp--preset--color--text-deep); text-decoration: none;
  border-bottom: 1px solid transparent;
  display: inline-block; padding: 2px 0;
  transition: color 180ms ease, border-color 180ms ease;
}
.sitemap-col__list a:hover { color: var(--wp--preset--color--rust); border-bottom-color: var(--wp--preset--color--rust); }
.sitemap-col__list a[aria-current="page"] {
  color: var(--wp--preset--color--rust);
  border-bottom-color: var(--wp--preset--color--rust);
  font-weight: 500;
}

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

/* ============================================================
   MOBILE RESPONSIVE PASS — v0.9.79
   Targeted fixes from the v0.9.79 audit. Most layouts already
   handle 1000/760/640 cleanly; these patch the remaining gaps.
   ============================================================ */

/* Gravity Forms: native multi-column grid → single column under 640px.
   GF Orbital uses --gf-form-grid-columns. We also strip per-row column
   spans so Name (sub-field row) and Date+Guests pairs stack cleanly. */
@media (max-width: 700px) {
  .maravelas-form_wrapper {
    --gf-form-grid-columns: 1 !important;
    --gf-form-grid-row-gap: 12px !important;
  }
  .maravelas-form_wrapper .gfield {
    grid-column: 1 / -1 !important;
  }
  .maravelas-form_wrapper .ginput_container_name {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .maravelas-form_wrapper .ginput_complex {
    grid-template-columns: 1fr !important;
  }
}

/* Review-card quote mark — was font-size: 96px fixed, overflows narrow
   phones. Clamp it so the glyph scales with viewport. */
.review-card__quote-mark { font-size: clamp(54px, 14vw, 96px) !important; }

/* Site-header phone button — bump padding so the tap target hits 44px
   minimum on touch devices. Desktop visual unchanged. */
@media (max-width: 1000px) {
  .site-header__phone { padding: 14px 22px; min-height: 44px; }
}

/* Quote-band asymmetric grid — collapse at 760px (was only 1000px). */
@media (max-width: 760px) {
  .quote-band__inner { grid-template-columns: 1fr !important; }
}

/* Event flyer pricing tiers — they were nested inside a 3-col grid that
   already collapses, but standalone they can break at the awkward
   760-900px range. Force single-col at 760px. */
@media (max-width: 760px) {
  .event-flyer__tiers { grid-template-columns: 1fr !important; }
}

/* Journal grid — agent flagged 920px breakpoint as inconsistent. Force
   it down at 1000px so it aligns with the rest of the design system. */
@media (max-width: 1000px) {
  .journal-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .journal-grid { grid-template-columns: 1fr !important; }
}

/* Brunch seating grid — was 700px (non-standard); align to 760px. */
@media (max-width: 760px) {
  .brunch-seating__grid { grid-template-columns: 1fr !important; }
}

/* NYE schedule — keep readable at phone size by stacking the timeline. */
@media (max-width: 760px) {
  .nye-schedule__inner { display: block; }
}

/* ===== END Mobile pass ===== */

/* ============================================================
   CONTACT / TOUR / CATERING — shared form-page primitives (v0.9.82)
   Promoted from the inline <style> block on /contact/index.html
   because the importer strips <style> in <head>. Without these rules
   in inner-pages.css, /book-a-tour/, /book-catering/, /es/*, and any
   other page reusing this pattern renders unstyled.
   ============================================================ */

/* Dark centered hero used by /contact/, /book-a-tour/, /book-catering/,
   and the Spanish equivalents. */
.contact-hero {
  background: #16130f;
  color: #f3ead8;
  text-align: center;
  padding: clamp(76px, 10vw, 116px) clamp(20px, 5vw, 56px) clamp(56px, 7vw, 80px);
}
.contact-hero__inner { max-width: 760px; margin: 0 auto; }
.contact-hero__eyebrow {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 13px; font-weight: 500; letter-spacing: 0.32em;
  text-transform: uppercase; color: #c4662a;
  margin: 0 0 20px; line-height: 1;
}
.contact-hero__title {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500; color: var(--wp--preset--color--warm-white);
  font-size: clamp(38px, 5.4vw, 72px); line-height: 1.02;
  margin: 0 0 20px;
  text-wrap: balance;
}
.contact-hero__title em { font-style: italic; color: #c4662a; }
.contact-hero__sub {
  color: rgba(243, 234, 216, 0.84);
  font-size: clamp(16px, 2vw, 19px);
  max-width: 580px; margin: 0 auto;
  font-weight: 300; line-height: 1.55;
}

/* 2-column form + sidebar layout. */
.contact-main { background: var(--wp--preset--color--warm-white); }
.contact-main__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--wp--custom--section--padding-y-lg) var(--wp--custom--section--padding-x);
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
}
@media (max-width: 1000px) { .contact-main__inner { grid-template-columns: 1fr; } }

/* Contact-info / "what to expect" sidebar card. */
.contact-card {
  background: var(--wp--preset--color--warm-1);
  padding: clamp(28px, 4vw, 44px);
  border-top: 2px solid var(--wp--preset--color--rust);
}
.contact-card h2 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500;
  font-size: clamp(28px, 3.4vw, 38px);
  line-height: 1.15;
  margin: 0 0 24px;
}
.contact-card h2 em { font-style: italic; }
.contact-card__row + .contact-card__row {
  margin-top: 26px; padding-top: 26px;
  border-top: 1px solid rgba(70, 62, 50, 0.14);
}
.contact-card__label {
  font-family: var(--wp--preset--font-family--accent);
  font-size: 14px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--wp--preset--color--rust);
  line-height: 1; margin: 0 0 10px;
}
.contact-card__value {
  font-size: 18px; line-height: 1.5;
  color: var(--wp--preset--color--text-deep);
  margin: 0;
}
.contact-card__value a {
  color: inherit; text-decoration: none;
  border-bottom: 1px solid rgba(70, 62, 50, 0.3);
  padding-bottom: 2px;
}
.contact-card__value a:hover {
  color: var(--wp--preset--color--rust);
  border-bottom-color: var(--wp--preset--color--rust);
}

/* Embedded Google map band, used by /contact/ + /es/contactanos/. */
.mapband {
  background: var(--wp--preset--color--warm-white);
  padding: 0 clamp(20px, 5vw, 56px) var(--wp--custom--section--padding-y-md);
}
.mapband__inner { max-width: 1280px; margin: 0 auto; }
.mapband__frame { width: 100%; aspect-ratio: 16 / 9; border: 0; max-height: 460px; }
@media (max-width: 760px) {
  .mapband__frame { aspect-ratio: 4 / 5; max-height: 600px; }
}
/* ===== END contact/tour/catering primitives ===== */
