/*
Theme Name: The Journey Before Us
Theme URI: https://thejourneybeforeus.com
Author: State of the Design
Description: Custom theme for The Journey Before Us. Ported from the approved 2026 static design draft.
Version: 1.0.0
Requires PHP: 8.0
Text Domain: jbu
*/
/* ---------- Tokens ---------- */
  :root {
    --background: #FBF8F1;
    --foreground: #262A20;
    --primary: #3B5A41;
    --secondary: #8A9B7A;
    --accent: #C08A2E;
    --action: #C08A2E;
    --action-fg: #FFFFFF;
    --action-ink: #8F6516;
    --muted: #EEEFE0;
    --panel-deep: #23392C;
    --border: #262A20;

    --font-display: "Fraunces", Georgia, serif;
    --font-body: "Source Sans 3", -apple-system, sans-serif;

    --container: 1364px;
    --editorial: 720px;
    --gutter: clamp(1.5rem, 4vw, 3rem);

    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-6: 48px;
    --space-8: 64px;
    --space-12: 96px;

    --radius: 8px;
    --card-pad: 2rem;
    --ease: cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* ---------- Reset & base ---------- */
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { font-synthesis: none; overflow-x: clip; }
  body {
    background: var(--background);
    color: var(--foreground);
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    overflow-x: clip;
  }
  h1, h2, h3 { font-family: var(--font-display); font-weight: 500; line-height: 1.12; text-wrap: balance; }
  p { text-wrap: pretty; }
  img { display: block; max-width: 100%; height: auto; }
  /* vignettes carry real alpha now; no blend trick needed */
  a { color: var(--action-ink); }

  .container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
  .editorial { max-width: var(--editorial); }

  /* ---------- Type variants ---------- */
  .t-display { font-size: clamp(2.375rem, 4.6vw, 3.5rem); color: var(--primary); }
  .t-h2 { font-size: clamp(1.875rem, 3.2vw, 2.75rem); color: var(--primary); }
  .t-h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); }
  .t-lead { font-size: clamp(1.375rem, 2.1vw, 1.75rem); font-family: var(--font-display); }
  .t-eyebrow {
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.07em; color: var(--primary);
  }
  .t-caption { font-size: 0.875rem; }
  p { max-width: 65ch; }

  /* ---------- Buttons ---------- */
  .btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 0 var(--space-3);
    font-family: var(--font-body); font-size: 0.8125rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.06em;
    text-decoration: none; border-radius: var(--radius);
    transition: transform 200ms var(--ease), background-color 200ms var(--ease);
    cursor: pointer;
  }
  .btn:hover { transform: translateY(-2px); }
  .btn-primary { background: var(--action); color: var(--action-fg); border: none; }
  .btn-primary:hover { background: #A9791F; }
  .btn-secondary { background: transparent; color: var(--action-ink); border: 1.5px solid var(--action); }
  .btn-hero { min-height: 54px; padding: 0 var(--space-4); font-size: 0.875rem; }
  .link-ghost {
    color: var(--action-ink); font-weight: 600; text-decoration: none;
    border-bottom: 1.5px solid var(--action-ink);
    padding-bottom: 2px;
    transition: opacity 200ms var(--ease);
  }
  .link-ghost:hover { opacity: 0.75; }

  /* ---------- Header ---------- */
  .site-header { padding-block: var(--space-3); }
  .site-header .container { display: flex; align-items: center; gap: var(--space-4); }
  .logo-link { display: inline-block; }
  .logo-link img { height: 88px; width: auto; }
  .logo-footer img { height: 64px; }
  .site-nav { display: flex; gap: var(--space-3); margin-left: auto; }
  .site-nav a { color: var(--foreground); text-decoration: none; font-size: 0.9375rem; font-weight: 600; }
  .site-nav a:hover { color: var(--primary); }
  .site-header .btn { margin-left: var(--space-2); }

  /* ---------- Sections ---------- */
  section { padding-block: clamp(4rem, 8vw, 6.5rem); }
  section + section.flush { padding-top: 0; }

  /* Hero */
  .hero { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: 0; }
  .hero-grid {
    display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 5vw, 4rem); align-items: center;
  }
  .hero-copy { max-width: 52rem; }
  .hero-walker { width: 100%; max-width: 30rem; justify-self: center; }
  .hero-copy h1 { margin-bottom: var(--space-3); }
  .hero-copy .t-lead { margin-bottom: var(--space-2); }
  .hero-meta { margin-bottom: var(--space-4); }
  .hero-actions { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; }
  .hero-art { margin-top: clamp(2.5rem, 5vw, 4rem); }
  .hero-art img { width: 100%; }

  /* Reveal (approved pattern) */
  @media (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 0; filter: blur(3px); transform: translateY(12px); animation: reveal 900ms var(--ease) forwards; animation-delay: 120ms; }
    .reveal-2 { animation-delay: 240ms; }
    .reveal-3 { animation-delay: 360ms; }
    @keyframes reveal {
      60% { opacity: 1; filter: blur(0); }
      100% { opacity: 1; filter: blur(0); transform: translateY(0); }
    }
  }

  /* Pillars */
  .maybe-section { background: #FFFFFF; }
  .maybe-grid {
    display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2.5rem, 6vw, 6rem); align-items: center;
  }
  .maybe-copy h2 { margin-bottom: var(--space-4); }
  .maybe-list { list-style: none; margin: 0; padding: 0; }
  .maybe-list li span { text-wrap: balance; }
  .maybe-list li {
    display: flex; align-items: baseline; gap: var(--space-2);
    padding-block: var(--space-2);
    border-bottom: 1px solid var(--border);
    font-family: var(--font-display); font-weight: 300;
    font-size: clamp(1.125rem, 1.7vw, 1.375rem);
    line-height: 1.45;
  }
  .maybe-list li:first-child { padding-top: 0; }
  .maybe-list img {
    width: 1.6em; height: auto; flex: none;
    transform: translateY(0.25em);
  }
  .maybe-close {
    margin-top: var(--space-3);
    font-family: var(--font-display); font-size: clamp(1.25rem, 1.9vw, 1.5rem);
    color: var(--primary);
  }
  .maybe-art { width: 100%; max-width: 26rem; justify-self: center; }
  .pillars { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .pillar {
    background: #FFFFFF;
    border-radius: var(--radius); padding: var(--card-pad);
  }
  .pillar img { width: 100%; max-width: 34rem; }
  .pillar h2, .pillar h3 { margin-bottom: var(--space-1); }
  .pillar-kicker {
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.06em; color: var(--primary); margin-bottom: var(--space-2);
  }
  .pillar .btn { margin-top: var(--space-1); }
  .pillar img { margin-bottom: var(--space-2); }
  .pillar p { margin-bottom: var(--space-2); }

  /* Meet Laura */
  .about { background: var(--muted); }
  .about-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
  .about-copy h2 { margin-bottom: var(--space-1); }
  .about-copy .who { font-weight: 600; margin-bottom: var(--space-3); }
  .about-copy p + p { margin-top: var(--space-2); }
  .about-copy .btn { margin-top: var(--space-3); }

  /* Credentials */
  .creds h2 { margin-bottom: var(--space-2); }
  .creds-note { margin-bottom: var(--space-6); }
  /* three badges = three columns, never 2+1 (no-orphan rule); one column on phones */
  .creds-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
  .cred { display: flex; align-items: center; gap: var(--space-3); }
  .cred img { width: 128px; height: 128px; }
  .cred-placeholder {
    width: 128px; height: 128px; border-radius: 50%;
    border: 1.5px dashed var(--secondary);
    display: flex; align-items: center; justify-content: center;
    text-align: center; padding: var(--space-2);
    color: var(--primary); font-size: 0.8125rem; font-weight: 600;
  }
  .cred figcaption { max-width: 16rem; text-wrap: pretty; }
  .cred figcaption strong { display: block; }

  /* Quote */
  .quote { background: var(--panel-deep); color: var(--background); }
  .quote blockquote {
    text-wrap: balance;
    font-family: var(--font-display); font-weight: 100;
    font-size: clamp(1.875rem, 4vw, 3.25rem); line-height: 1.25;
    max-width: 56rem; text-wrap: balance;
  }
  .quote figcaption { margin-top: var(--space-3); font-weight: 600; }

  /* Contact */
  .contact-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); }
  .contact h1, .contact h2 { margin-bottom: var(--space-2); }
  .contact-intro { margin-bottom: var(--space-4); }
  .field { margin-bottom: var(--space-3); }
  .field label {
    display: block; font-size: 0.8125rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.07em;
    color: var(--primary); margin-bottom: var(--space-1);
  }
  .field input, .field textarea {
    width: 100%; border: none; border-bottom: 1.5px solid var(--border);
    background: transparent; padding: var(--space-1) 0;
    font-family: var(--font-body); font-size: 1.0625rem; color: var(--foreground);
  }
  .field textarea { min-height: 96px; resize: vertical; }
  .field input:focus, .field textarea:focus { outline: none; border-bottom-color: var(--primary); }
  .newsletter img { width: min(230px, 55%); margin-bottom: var(--space-2); }
  .newsletter h3 { margin-bottom: var(--space-2); }
  .newsletter p { margin-bottom: var(--space-3); }
  .newsletter .field { display: flex; gap: var(--space-2); align-items: flex-end; }
  .newsletter .field input { flex: 1; }

  /* Footer */
  .site-footer { background: var(--muted); padding-block: var(--space-6); }
  .site-footer .container { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: baseline; }

  .site-footer nav { display: flex; gap: var(--space-3); flex-wrap: wrap; }
  .site-footer a { color: var(--foreground); text-decoration: none; font-size: 0.9375rem; }
  .site-footer a:hover { color: var(--primary); }
  .site-footer .legal { margin-left: auto; font-size: 0.875rem; }

  /* Draft banner (internal only, removed before client sees it) */

  /* ---------- Mobile ---------- */
  /* Mobile menu + sheet */
  html.locked { overflow: hidden; }
  .menu-toggle {
    display: none; background: none; border: none; cursor: pointer;
    width: 48px; height: 48px; padding: 12px;
    flex-direction: column; justify-content: center; gap: 5px;
  }
  .menu-toggle span { display: block; height: 2px; width: 100%; background: var(--foreground); }
  .mobile-menu {
    position: fixed; inset: 0; z-index: 60; background: var(--background);
    display: flex; flex-direction: column;
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity 280ms var(--ease), transform 280ms var(--ease), visibility 0s linear 280ms;
  }
  .mobile-menu.open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .mobile-menu-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--space-2) var(--space-3);
  }
  .mobile-menu-head img { height: 72px; width: auto; }
  .menu-close {
    background: none; border: none; cursor: pointer; color: var(--foreground);
    font-size: 2rem; line-height: 1; width: 48px; height: 48px;
  }
  .mobile-menu nav { display: flex; flex-direction: column; padding: var(--space-3); }
  .mobile-menu nav a {
    color: var(--foreground); text-decoration: none;
    font-family: var(--font-display); font-size: 1.75rem; font-weight: 500;
    padding: var(--space-2) 0;
  }
  .sticky-cta {
    display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    padding: var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));
    background: var(--background);
  }
  .sticky-cta .btn { width: 100%; }
  .sheet-backdrop {
    position: fixed; inset: 0; z-index: 70; background: rgba(28, 30, 25, 0.5);
    opacity: 0; visibility: hidden;
    transition: opacity 280ms var(--ease), visibility 0s linear 280ms;
  }
  .sheet-backdrop.open { opacity: 1; visibility: visible; transition-delay: 0s; }
  .sheet {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
    background: var(--background); border-radius: 16px 16px 0 0;
    padding: var(--space-3) var(--space-3) calc(var(--space-4) + env(safe-area-inset-bottom));
    max-height: 88svh; overflow-y: auto;
    transform: translateY(100%); visibility: hidden;
    transition: transform 320ms var(--ease), visibility 0s linear 320ms;
  }
  .sheet.open { transform: none; visibility: visible; transition-delay: 0s; }
  .sheet-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-1); }
  .sheet-note { margin-bottom: var(--space-2); }
  .newsletter-note { margin-top: var(--space-1); }
  .sheet form .btn { width: 100%; margin-top: var(--space-2); }

  @media (max-width: 880px) {
    .menu-toggle { display: flex; }
    .hero-grid { grid-template-columns: 1fr; }
    .hero-walker { display: none; }
    .header-cta { display: none; }
    .sticky-cta { display: block; }
    .site-footer { padding-bottom: calc(var(--space-8) + 84px); }
    .site-nav { display: none; }
    .pillars { grid-template-columns: 1fr; gap: var(--space-8); }
    .about-grid, .contact-grid, .maybe-grid, .creds-row { grid-template-columns: 1fr; }
    .maybe-art { max-width: min(20rem, 100%); }
    .about-grid img { max-width: min(26rem, 100%); }
    section { padding-block: var(--space-8); }
    form .btn, .newsletter .field { width: 100%; }
    .newsletter .field { flex-direction: column; align-items: stretch; }
    .newsletter .btn { width: 100%; }
  }


  /* ---------- Nav dropdown ---------- */
  .site-nav { align-items: center; }
  .has-dropdown { position: relative; }
  .has-dropdown > a { display: inline-flex; align-items: center; gap: 6px; }
  .has-dropdown > a::after {
    content: ""; width: 6px; height: 6px; flex: none;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
  }
  .dropdown {
    position: absolute; top: 100%; left: 0; z-index: 40;
    min-width: 17rem; padding: var(--space-2) 0;
    background: var(--background); border-radius: var(--radius);
    box-shadow: 0 12px 32px rgba(38, 42, 32, 0.14);
    display: flex; flex-direction: column;
    opacity: 0; visibility: hidden; transform: translateY(-6px);
    transition: opacity 200ms var(--ease), transform 200ms var(--ease), visibility 0s linear 200ms;
  }
  .has-dropdown:hover .dropdown,
  .has-dropdown:focus-within .dropdown {
    opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
  }
  .dropdown a {
    padding: var(--space-1) var(--space-3);
    font-size: 0.9375rem; font-weight: 400;
  }
  .site-nav a[aria-current="page"] { color: var(--primary); }
  .mobile-menu nav .sub {
    font-size: 1.125rem; font-weight: 400;
    padding-left: var(--space-3); padding-block: var(--space-1);
  }

  /* ---------- Interior page furniture ---------- */
  .page-head { padding-bottom: var(--space-6); }
  .page-head + section { padding-top: var(--space-8); }
  .page-head-grid {
    display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 5vw, 5rem); align-items: center;
  }
  .page-head h1 { margin-bottom: var(--space-3); }
  .page-head .t-eyebrow { margin-bottom: var(--space-1); }
  .page-art { width: 100%; max-width: 26rem; justify-self: center; }
  .draft-flag {
    display: inline-block; margin-bottom: var(--space-3);
    padding: 6px var(--space-2); border-radius: var(--radius);
    background: var(--muted); color: var(--primary);
    font-size: 0.8125rem; font-weight: 600;
  }
  .prose > * + * { margin-top: var(--space-2); }
  .prose h2 { margin-top: var(--space-4); margin-bottom: var(--space-2); }
  .prose h3 { margin-top: var(--space-3); margin-bottom: var(--space-1); }
  .prose > :first-child { margin-top: 0; }
  .pull {
    margin-block: var(--space-4);
    font-family: var(--font-display); font-weight: 300;
    font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.3;
    color: var(--primary); max-width: 30ch; text-wrap: balance;
  }
  .inline-quote {
    margin-block: var(--space-4); padding-left: var(--space-3);
    border-left: 2px solid var(--action);
  }
  .inline-quote blockquote {
    font-family: var(--font-display); font-weight: 300;
    font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.35;
    text-wrap: balance; max-width: 44ch;
  }
  .inline-quote figcaption { margin-top: var(--space-1); font-size: 0.875rem; font-weight: 600; }

  /* Ways overview list */
  .ways { display: grid; gap: var(--space-3); }
  .way {
    background: #FFFFFF; border-radius: var(--radius);
    padding: var(--card-pad);
    display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(1.5rem, 4vw, 3rem); align-items: center;
  }
  .way:nth-child(even) { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
  .way:nth-child(even) .way-art { order: 2; }
  .way-art { width: 100%; max-height: 22rem; object-fit: contain; }
  .way h2 { margin-bottom: var(--space-1); }
  .way p { margin-bottom: var(--space-2); }
  .way .btn { margin-top: var(--space-1); }

  /* Sibling links */
  .siblings { background: var(--muted); }
  .siblings h2 { margin-bottom: var(--space-3); }
  .sibling-row {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2); max-width: 48rem;
  }
  .sibling-row .btn { width: 100%; }

  /* Closing CTA */
  .closing { background: var(--panel-deep); color: var(--background); }
  .closing h2 { color: var(--background); margin-bottom: var(--space-2); }
  .closing p { margin-bottom: var(--space-4); max-width: 52ch; }
  .closing .btn-secondary { color: var(--background); border-color: var(--action); }

  /* Events */
  .events-list { display: grid; gap: var(--space-3); }
  .event {
    background: #FFFFFF; border-radius: var(--radius); padding: var(--card-pad);
    display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: var(--space-4);
    align-items: start;
  }
  .event-date {
    font-family: var(--font-display); color: var(--primary);
    line-height: 1.1; text-align: center;
  }
  .event-date .m { display: block; font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; }
  .event-date .d { display: block; font-size: 2.5rem; }
  .event h3 { margin-bottom: var(--space-1); }
  .event-meta { font-size: 0.9375rem; font-weight: 600; margin-bottom: var(--space-1); }
  .event .btn { margin-top: var(--space-2); }
  .events-empty { font-family: var(--font-display); font-size: 1.25rem; color: var(--primary); }
  .archive-toggle { margin-top: var(--space-6); }
  .event-past { opacity: 1; }
  .event-past .event-date { color: var(--secondary); }
  .how-it-works { background: var(--muted); }
  .how-it-works ol { margin: var(--space-2) 0 0 var(--space-3); }
  .how-it-works li { margin-bottom: var(--space-1); max-width: 65ch; }

  /* About page */
  .about-hero-grid {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(2.5rem, 6vw, 6rem); align-items: center;
  }
  .creds-list { list-style: none; margin: var(--space-2) 0 0; padding: 0; }
  .creds-list li {
    padding-block: var(--space-1);
    font-family: var(--font-display); font-size: 1.125rem;
    border-bottom: 1px solid var(--border); max-width: 34rem;
  }

  @media (max-width: 880px) {
    .page-head-grid, .about-hero-grid { grid-template-columns: 1fr; }
    .page-art { max-width: min(20rem, 100%); }
    .way { grid-template-columns: 1fr; }
    .way:nth-child(even) .way-art { order: 0; }
    .event { grid-template-columns: 1fr; gap: var(--space-2); }
    .event-date { text-align: left; display: flex; align-items: baseline; gap: var(--space-1); }
    .event-date .d { font-size: 1.75rem; }
  }

  .art-placeholder {
    border: 1.5px dashed var(--secondary); border-radius: var(--radius);
    min-height: 14rem; padding: var(--space-3);
    display: flex; align-items: center; justify-content: center; text-align: center;
    color: var(--primary); font-size: 0.9375rem; font-weight: 600;
  }

  /* Collapse the seam when two sections share the muted background */
  .how-it-works + .siblings { padding-top: 0; }

  /* ---------- Content + sticky contact form (interior pages) ---------- */
  .content-grid {
    display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 5vw, 4.5rem); align-items: start;
  }
  .contact-aside {
    position: sticky; top: var(--space-3);
    background: transparent; padding: 0;
  }
  .contact-aside h2 { margin-bottom: var(--space-1); }
  .contact-aside .aside-note { margin-bottom: var(--space-3); }
  .contact-aside .btn { width: 100%; margin-top: var(--space-1); }

  @media (max-width: 880px) {
    .content-grid { grid-template-columns: 1fr; }
    .sibling-row { grid-template-columns: 1fr; }
    .contact-aside { position: static; }
  }

  /* .pull is a paragraph, so it needs to out-specify `.prose p + p` */
  .prose p.pull { margin-block: var(--space-4); }

  /* Interior content reads as its own section, distinct from the page head */
  .content-section { background: #FFFFFF; }

  /* ---------- Events: heading gap + detail page ---------- */
  .events-h { margin-bottom: var(--space-3); }
  .event-title { color: var(--foreground); text-decoration: none; }
  .event-title:hover { color: var(--primary); }
  .crumb { color: var(--primary); text-decoration: none; }
  .crumb:hover { text-decoration: underline; }
  .event-when { line-height: 1.4; }
  .event-cta { margin-top: var(--space-4); display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; }
  .event-passed { width: 100%; font-weight: 600; }


  /* ---------- .flow: the baseline rhythm for any text container ----------
     16px between siblings, 32px before a subhead, 24px before an action row.
     Same numbers as .prose; use .flow on containers that are not running copy. */
  .flow > * + * { margin-top: var(--space-2); }
  .flow > * + h2, .flow > * + h3 { margin-top: var(--space-4); }
  .flow > * + .actions { margin-top: var(--space-3); }


/* ---------- WordPress block mappings (Laura edits in the block editor) ---------- */
.prose .wp-block-pullquote { margin-block: var(--space-4); padding: 0; border: 0; text-align: left; }
.prose .wp-block-pullquote blockquote, .prose .wp-block-pullquote p {
  margin: 0; font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.3;
  color: var(--primary); max-width: 30ch; text-wrap: balance; font-style: normal;
}
.prose .wp-block-quote { margin-block: var(--space-4); padding-left: var(--space-3); border-left: 2px solid var(--action); }
.prose .wp-block-quote p {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.35; text-wrap: balance; max-width: 44ch;
}
.prose .wp-block-quote cite { display: block; margin-top: var(--space-1); font-size: 0.875rem; font-weight: 600; font-style: normal; }
.prose .creds-list, .prose ul.wp-block-list.creds-list { list-style: none; margin: var(--space-2) 0 0; padding: 0; }
.wp-block-image img { height: auto; }
.form-status { margin-bottom: var(--space-3); font-weight: 600; color: var(--primary); }
.cf-turnstile { margin-bottom: var(--space-2); }
