/*
Theme Name: Stillwater
Theme URI: https://stillwatermethod.com/
Author: Innova Forge Works
Description: Custom theme for Stillwater, the guide to movement, nourishment, breath, and rest.
Version: 1.0.176-fyp-firewall
License: Proprietary
Text Domain: stillwater
*/

  :root {
    /* Earth-toned, lunar palette — desaturated oklch values */
    --night:        #1c2330;   /* deep indigo sky */
    --night-soft:   #2a3344;
    --ink:          #2a2620;   /* warm bark */
    --moon:         #f3e9d2;   /* moon cream */
    --moon-soft:    #ede0c2;
    --paper:        #f5eedd;   /* panel/card cream (R3.2) */
    --bg:           #efe6d0;   /* page background (R3.2) */
    --line2:        #ebe3cf;   /* soft warm border variant (R3.2) */
    --sand:         #e3d6b4;   /* warmer parchment */
    --river:        #7d96a8;   /* river slate */
    --river-deep:   #4d6878;
    --moss:         #7e8a64;   /* moss */
    --moss-deep:    #5a6447;
    --earth:        #ad7152;   /* terracotta */
    --earth-deep:   #8a5135;
    --gold:         #c2a25f;   /* gold dust */
    --gold-soft:    #d4b87a;
    --muted:        #8c8068;
    --card:         #fffdf8;   /* warm cream card surface */
    --line:         #d6d0be;   /* soft warm border */
    --muted-cream:  #c3b596;   /* warm parchment text */
    --ink-soft:     #4a4234;   /* softened body ink */

    /* R5.3 (Kant M3): tokenized magic min-heights. Both values are load-bearing
     * per prior step-panel stability work; centralized here so a future edit is one line. */
    --fyp-step-min-height: 670px;
    --fpp-step-min-height: 1200px;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }

  /* Global: respect the hidden HTML attribute over any component display rule.
   * Fixes recurring bug where .btn / .card / etc. display:inline-flex overrides
   * the UA [hidden] rule via specificity. Component-specific overrides can still
   * win via :not([hidden]) selectors when they legitimately need to. */
  [hidden] { display: none !important; }

  body {
    font-family: 'EB Garamond', 'Cormorant Garamond', serif;
    background: var(--bg);
    color: var(--ink);
    font-size: 17px;
    line-height: 1.6;
    font-weight: 400;
    overflow-x: hidden;
    /* very subtle paper grain via radial dots */
    background-image:
      radial-gradient(circle at 1px 1px, rgba(42, 38, 32, 0.035) 1px, transparent 0);
    background-size: 3px 3px;
  }

  a { color: inherit; text-decoration: none; }
  button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
  img { display: block; max-width: 100%; }

  /* ─── TYPE UTILITIES ─── */
  .display { font-family: 'Spectral', serif; font-weight: 300; letter-spacing: -0.01em; line-height: 1; }
  .display em { font-style: italic; font-weight: 400; }
  .smallcaps { font-family: 'Cormorant SC', 'Cormorant Garamond', serif; font-weight: 400; letter-spacing: 0.22em; text-transform: uppercase; }
  .italic { font-style: italic; }
  .ritual {
    font-family: 'Cormorant SC', serif;
    font-weight: 400;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-size: 0.72rem;
  }

  .container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2.5rem;
  }
  .container-narrow {
    max-width: 920px;
    margin: 0 auto;
    padding: 0 2.5rem;
  }

  /* ═══════════════════════════════════════
     MOON / CELESTIAL PRIMITIVES (inline SVG)
     ═══════════════════════════════════════ */
  .moon-glyph {
    display: inline-block;
    width: 0.72em; height: 0.72em;
    vertical-align: -0.05em;
    margin: 0 0.55em;
    fill: currentColor;
    opacity: 0.8;
  }
  .moon-glyph.empty { fill: none; stroke: currentColor; stroke-width: 1.6; opacity: 0.75; }

  /* Wavy rule — for "river" dividers */
  .wave-rule {
    width: 100%;
    height: 14px;
    color: currentColor;
    opacity: 0.6;
  }

  /* Constellation dots backdrop (used on dark sections) */
  .stars {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
      radial-gradient(1px 1px at 12% 18%, rgba(243,233,210,0.6) 50%, transparent 100%),
      radial-gradient(1px 1px at 28% 62%, rgba(243,233,210,0.4) 50%, transparent 100%),
      radial-gradient(1.5px 1.5px at 47% 22%, rgba(243,233,210,0.7) 50%, transparent 100%),
      radial-gradient(1px 1px at 64% 78%, rgba(243,233,210,0.5) 50%, transparent 100%),
      radial-gradient(1px 1px at 78% 14%, rgba(243,233,210,0.55) 50%, transparent 100%),
      radial-gradient(1.5px 1.5px at 86% 48%, rgba(243,233,210,0.7) 50%, transparent 100%),
      radial-gradient(1px 1px at 92% 86%, rgba(243,233,210,0.45) 50%, transparent 100%),
      radial-gradient(1px 1px at 8% 88%, rgba(243,233,210,0.4) 50%, transparent 100%),
      radial-gradient(1px 1px at 38% 8%, rgba(243,233,210,0.5) 50%, transparent 100%),
      radial-gradient(1px 1px at 56% 52%, rgba(243,233,210,0.5) 50%, transparent 100%);
  }

  /* ═══════════════════════════════════════
     RITUAL BAR (top)
     ═══════════════════════════════════════ */
  .ritual-bar {
    background: var(--night);
    color: var(--moon);
    padding: 0.85rem 2.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    font-size: 0.65rem;
    position: relative;
    z-index: 50;
  }
  .ritual-bar .moon-phase { color: var(--gold-soft); }
  .ritual-bar .links { display: flex; gap: 2.2rem; }
  .ritual-bar a { transition: color 0.2s; }
  .ritual-bar a:hover { color: var(--gold-soft); }

  /* ═══════════════════════════════════════
     MASTHEAD / NAV
     ═══════════════════════════════════════ */
  .masthead {
    padding: 1.6rem 2.5rem 1.4rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 2rem;
    position: sticky;
    top: 0;
    z-index: 40;
    background: var(--paper);
    background-image:
      radial-gradient(circle at 1px 1px, rgba(42, 38, 32, 0.035) 1px, transparent 0);
    background-size: 3px 3px;
    border-bottom: 1px solid rgba(42, 38, 32, 0.12);
  }
  .masthead .nav-l, .masthead .nav-r {
    display: flex;
    gap: 2rem;
    align-items: center;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.72rem;
    color: var(--ink);
  }
  .masthead .nav-r { justify-content: flex-end; }
  .masthead .nav-l a, .masthead .nav-r a { transition: color 0.2s; }
  .masthead .nav-l a:hover, .masthead .nav-r a:hover { color: var(--earth-deep); }
  .masthead .nav-r .book {
    color: var(--moon);
    background: var(--ink);
    padding: 0.55rem 1rem;
    border-radius: 999px;
    white-space: nowrap;
  }
  .masthead .nav-r .book:hover { background: var(--earth-deep); color: var(--moon); }

  .brand {
    text-align: center;
    line-height: 1;
  }
  .brand .glyph-row {
    font-family: 'Cormorant SC', serif;
    font-size: 0.6rem;
    letter-spacing: 0.4em;
    color: var(--earth);
    margin-bottom: 0.45rem;
  }
  .brand .name {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: 1.85rem;
    letter-spacing: 0.02em;
    color: var(--ink);
  }
  .brand .name em {
    font-style: italic;
    font-weight: 400;
  }

  /* ═══════════════════════════════════════
     I.  HERO — MOON-RISE OVER STILLWATER
     ═══════════════════════════════════════ */
  .hero {
    position: relative;
    padding: 4.5rem 2.5rem 2.5rem;
    text-align: center;
    overflow: hidden;
    background: var(--night);
  }
  .hero-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* v98: was 30% — anchored so the subject's head was clipped at the top.
       15% keeps the head fully in-frame at desktop; the mobile override below
       adjusts for the taller mobile crop. */
    object-position: center 15%;
  }
  @media (max-width: 767px) {
    .hero-photo img { object-position: center 12%; }
  }
  .hero-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
      linear-gradient(to bottom, rgba(28, 35, 48, 0.55) 0%, rgba(28, 35, 48, 0.35) 40%, rgba(28, 35, 48, 0.75) 100%),
      linear-gradient(to right, rgba(28, 35, 48, 0.3) 0%, transparent 30%, transparent 70%, rgba(28, 35, 48, 0.3) 100%);
  }

  /* The moon — a soft glow layered over the photo */
  .hero-moon {
    position: absolute;
    top: 2rem;
    left: 50%;
    transform: translateX(-50%);
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background:
      radial-gradient(circle at 38% 38%, rgba(243, 233, 210, 0.9) 0%, rgba(243, 233, 210, 0.5) 35%, rgba(212, 184, 122, 0.15) 65%, transparent 75%);
    filter: blur(4px);
    z-index: 1;
    mix-blend-mode: screen;
    pointer-events: none;
  }
  .hero-moon::after { content: none; }

  /* Bottom vignette for text legibility */
  .hero-lake {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 220px;
    background: linear-gradient(to bottom, transparent 0%, rgba(28, 35, 48, 0.5) 100%);
    pointer-events: none;
    z-index: 1;
  }
  .hero-lake::before, .hero-lake::after { content: none; }

  .hero-inner {
    position: relative;
    z-index: 2;
    max-width: 1000px;
    margin: 0 auto;
  }

  .hero-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold-soft);
    font-size: 0.78rem;
    margin-bottom: 1.5rem;
  }
  .hero-eyebrow .sep {
    display: inline-block;
    width: 3rem;
    height: 1px;
    background: currentColor;
    vertical-align: 0.35em;
    margin: 0 1.2rem;
    opacity: 0.5;
  }

  .hero-title {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: clamp(2.6rem, 6vw, 5.25rem);
    line-height: 1.04;
    letter-spacing: -0.015em;
    color: var(--moon);
    text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 2px 5px rgba(0,0,0,.45);
    margin-bottom: 1.25rem;
  }
  .hero-title em {
    font-style: italic;
    font-weight: 400;
    color: var(--gold-soft);
  }
  .hero-title .stack { display: block; }

  .hero-sub {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: clamp(1.15rem, 1.6vw, 1.4rem);
    line-height: 1.5;
    color: var(--moon);
    text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 2px 5px rgba(0,0,0,.45);
    max-width: 600px;
    margin: 0 auto 1.5rem;
    opacity: 0.9;
  }

  .hero-ctas {
    display: inline-flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
  }
  .btn {
    padding: 0.95rem 1.75rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.72rem;
    border-radius: 999px;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
  }
  .btn-primary {
    background: var(--earth);
    color: var(--moon);
    border: 1px solid var(--earth);
  }
  .btn-primary:hover { background: var(--earth-deep); border-color: var(--earth-deep); }
  /* Ghost button: light-backdrop default (paper/--bg contexts).
     Prior rule used --moon on transparent which was invisible on --bg
     (paper cream on paper cream ≈ 1:1 contrast). Rest now uses
     --earth-deep for text and border (5.17:1 vs --bg, WCAG AA pass).
     Hover fills to --earth-deep for --moon contrast. Dark-backdrop
     sections (.hero, .newsletter) restore cream ghost via override. */
  .btn-ghost {
    background: transparent;
    color: var(--earth-deep);
    border: 1px solid var(--earth-deep);
  }
  .btn-ghost:hover { background: var(--earth-deep); color: var(--moon); border-color: var(--earth-deep); }
  .btn-ghost:focus-visible { outline: 2px solid var(--earth); outline-offset: 3px; }
  .hero .btn-ghost, .newsletter .btn-ghost {
    color: var(--moon);
    border-color: var(--moon);
  }
  .hero .btn-ghost:hover, .newsletter .btn-ghost:hover {
    background: var(--moon); color: var(--ink); border-color: var(--moon);
  }
  .btn .arrow {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    letter-spacing: 0;
    font-size: 1rem;
    line-height: 1;
  }

  /* Compass at base of hero */
  .hero-compass {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(243, 233, 210, 0.25);
    position: relative;
    z-index: 2;
  }
  .hero-compass .cell {
    text-align: center;
  }
  .hero-compass .ico {
    width: 38px; height: 38px;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    border: 1px solid var(--gold-soft);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .hero-compass .ico svg {
    width: 17px;
    height: 17px;
    fill: var(--gold-soft);
  }
  .hero-compass .label {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: rgba(243, 233, 210, 0.6);
    margin-bottom: 0.35rem;
  }
  .hero-compass .val {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-size: 1.05rem;
    color: var(--moon);
  }

  /* ═══════════════════════════════════════
     INVOCATION STRIP  — between hero & method
     ═══════════════════════════════════════ */
  .invocation {
    background: var(--night);
    color: var(--moon);
    padding: 5.5rem 2.5rem 4rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
  }
  /* v98: bottom fade transitions the flat night into the moonlit lunar photo. */
  .invocation::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 90px;
    pointer-events: none;
    z-index: 3;
    background: linear-gradient(to bottom, transparent 0%, rgba(28, 35, 48, 0.6) 100%);
  }
  .invocation .stars { z-index: 1; }
  .invocation-inner {
    position: relative;
    z-index: 2;
    max-width: 1000px;
    margin: 0 auto;
  }
  .invocation .phases {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    color: var(--gold-soft);
    margin-bottom: 3rem;
    font-size: 1.1rem;
  }
  .invocation-text {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-style: italic;
    font-size: clamp(1.5rem, 2.6vw, 2.2rem);
    line-height: 1.45;
    color: var(--moon);
    margin-bottom: 2rem;
  }
  .invocation-text em {
    font-style: normal;
    font-weight: 500;
  }
  .invocation-attr {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.7rem;
    color: var(--gold-soft);
    opacity: 0.8;
  }

  /* ═══════════════════════════════════════
     MOVEMENT FRAME — shared
     ═══════════════════════════════════════ */
  section.movement {
    padding: 7rem 0;
    position: relative;
  }
  section.movement.tinted { background: var(--sand); }
  section.movement.tinted::before, section.movement.tinted::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 1px;
    background: rgba(42, 38, 32, 0.12);
  }
  section.movement.tinted::before { top: 0; }
  section.movement.tinted::after { bottom: 0; }

  .chapter-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    color: var(--earth);
    margin-bottom: 1.75rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    font-size: 0.7rem;
  }
  .chapter-mark .line {
    flex: 0 0 60px;
    height: 1px;
    background: currentColor;
    opacity: 0.5;
  }
  .chapter-mark .roman {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.1em;
    text-transform: none;
    color: var(--earth-deep);
  }

  .chapter-title {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: clamp(2.6rem, 5.5vw, 4.8rem);
    line-height: 1;
    letter-spacing: -0.015em;
    text-align: center;
    margin: 0 auto 1.5rem;
    max-width: 900px;
  }
  .chapter-title em { font-style: italic; font-weight: 500; }
  .chapter-deck {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--muted);
    text-align: center;
    max-width: 620px;
    margin: 0 auto 5rem;
  }

  /* ═══════════════════════════════════════
     II. ELEMENTS — earth / water / sky / fire
     ═══════════════════════════════════════ */
  .elements {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
  }
  .element {
    position: relative;
    padding: 3rem 1.75rem 2.25rem;
    border: 1px solid rgba(42, 38, 32, 0.18);
    border-radius: 4px;
    background: var(--paper);
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    display: flex;
    flex-direction: column;
    min-height: 360px;
  }
  .element:hover {
    transform: translateY(-4px);
    border-color: var(--earth);
    box-shadow: 0 18px 36px -28px rgba(42, 38, 32, 0.45);
  }
  .element .aura {
    width: 110px; height: 110px;
    border-radius: 50%;
    margin: 0 auto 1.75rem;
    position: relative;
    flex-shrink: 0;
    overflow: hidden;
  }
  .element .aura img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .element .aura::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(243, 233, 210, 0.4), inset 0 0 24px rgba(42, 38, 32, 0.25);
  }

  /* small symbol inside aura */
  .element .aura {
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -10px rgba(42, 38, 32, 0.45);
  }
  .element .aura::before {
    content: '';
    position: absolute;
    inset: -7px;
    border: 1px solid currentColor;
    border-radius: 50%;
    opacity: 0.3;
    z-index: 2;
  }
  .element.earth  { color: var(--earth-deep); }
  .element.water  { color: var(--river-deep); }
  .element.sky    { color: var(--river); }
  .element.moss   { color: var(--moss-deep); }

  .element-roman {
    font-family: 'Spectral', serif;
    font-style: italic;
    color: var(--earth);
    font-size: 0.95rem;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
  }
  .element-name {
    font-family: 'Spectral', serif;
    font-weight: 400;
    font-size: 1.65rem;
    margin-bottom: 0.45rem;
    color: var(--ink);
  }
  .element-name em { font-style: italic; }
  .element-label {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.62rem;
    color: var(--muted);
    margin-bottom: 1.2rem;
  }
  .element-body {
    font-family: 'EB Garamond', serif;
    font-size: 0.97rem;
    line-height: 1.6;
    color: var(--ink);
    opacity: 0.82;
    margin-top: auto;
  }

  /* ═══════════════════════════════════════
     III. METHOD — the practice
     ═══════════════════════════════════════ */
  .method-spread {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: start;
  }
  /* Left — a stylized "lake" plate (placeholder for imagery) */
  .lake-plate {
    aspect-ratio: 4 / 5;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    background: #2a3344;
  }
  .lake-plate img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .lake-plate::before { content: none; }
  .lake-plate::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(42,38,32,0) 60%, rgba(42,38,32,0.5) 100%);
    z-index: 1;
  }
  .lake-caption {
    position: absolute;
    bottom: 1.25rem;
    left: 1.25rem;
    z-index: 2;
    font-family: 'Cormorant SC', serif;
    font-size: 0.6rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(42, 38, 32, 0.55);
  }

  .method-body {
    padding-top: 1rem;
  }
  .method-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--earth-deep);
    font-size: 0.7rem;
    margin-bottom: 1.5rem;
  }
  .method-headline {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: clamp(2rem, 3.6vw, 3.4rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin-bottom: 2rem;
  }
  .method-headline em {
    font-style: italic;
    font-weight: 500;
  }
  .method-text {
    font-size: 1.05rem;
    line-height: 1.75;
    margin-bottom: 1.25rem;
    color: var(--ink);
    opacity: 0.85;
  }
  .method-quote {
    border-left: 1px solid var(--earth);
    padding: 0.5rem 0 0.5rem 1.5rem;
    margin: 2rem 0;
    font-family: 'Spectral', serif;
    font-style: italic;
    font-size: 1.35rem;
    line-height: 1.4;
    color: var(--earth-deep);
  }
  .method-quote-attr {
    margin-top: 0.75rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.62rem;
    color: var(--muted);
    font-style: normal;
  }

  /* ═══════════════════════════════════════
     IV. PRACTICES (Pilates + Nutrition)
     ═══════════════════════════════════════ */
  .practices {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2rem;
  }
  .practice-card {
    padding: 3rem 2.5rem 2.75rem;
    background: var(--paper);
    border: 1px solid rgba(42, 38, 32, 0.18);
    border-radius: 4px;
    position: relative;
    display: flex;
    flex-direction: column;
  }
  .practice-card.dark {
    background: var(--night);
    color: var(--moon);
    border-color: var(--night);
  }
  .practice-card.dark .practice-body,
  .practice-card.dark .practice-list li { color: var(--moon); }
  .practice-card.dark .practice-list li::before { background: var(--gold-soft); }
  .practice-card.dark .practice-list li { border-bottom-color: rgba(243, 233, 210, 0.18); }
  .practice-card.dark .practice-roman { color: var(--gold-soft); }
  
  .practice-card.dark .practice-link { color: var(--gold-soft); border-color: var(--gold-soft); }
  .practice-card.dark .practice-link:hover { background: var(--gold-soft); color: var(--night); }

  .practice-card.tint { background: var(--sand); border-color: rgba(42, 38, 32, 0.15); }
  .practice-card.tint .practice-roman { color: var(--moss-deep); }
  .practice-card.tint .practice-title em { color: var(--moss-deep); }
  .practice-card.tint .practice-link { border-color: var(--moss-deep); color: var(--moss-deep); }
  .practice-card.tint .practice-link:hover { background: var(--moss-deep); color: var(--moon); }
  .practice-card.tint .practice-list li::before { background: var(--moss-deep); }

  .practice-roman {
    font-family: 'Spectral', serif;
    font-style: italic;
    color: var(--earth-deep);
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
  }
  .practice-title {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: 2.6rem;
    line-height: 1;
    letter-spacing: -0.01em;
    margin-bottom: 0.5rem;
  }
  .practice-title em { font-style: italic; font-weight: 500; }
  .practice-sub {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.62rem;
    color: var(--muted);
    margin-bottom: 1.5rem;
  }
  .practice-body {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 1.75rem;
    opacity: 0.88;
  }
  .practice-list {
    list-style: none;
    margin-bottom: 2rem;
  }
  .practice-list li {
    padding: 0.75rem 0 0.75rem 1.5rem;
    border-bottom: 1px solid rgba(42, 38, 32, 0.12);
    font-family: 'EB Garamond', serif;
    font-size: 1rem;
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
  }
  .practice-list li::before {
    content: '';
    position: absolute;
    left: 0; top: 1.15rem;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--earth);
  }
  .practice-list li:last-child { border-bottom: none; }
  .practice-list li .meta {
    font-family: 'Cormorant SC', serif;
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--muted);
    flex-shrink: 0;
    align-self: center;
  }
  .practice-link {
    margin-top: auto;
    align-self: flex-start;
    padding: 0.7rem 1.2rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.65rem;
    border: 1px solid var(--earth-deep);
    border-radius: 999px;
    color: var(--earth-deep);
    display: inline-flex;
    gap: 0.6rem;
    align-items: center;
    transition: all 0.2s;
  }
  .practice-link:hover { background: var(--earth-deep); color: var(--moon); }
  .practice-link .arrow { font-family: 'EB Garamond', serif; font-style: italic; letter-spacing: 0; font-size: 0.95rem; }

  /* ═══════════════════════════════════════
     V. FOUNDER — Sky
     ═══════════════════════════════════════ */
  .founder-spread {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 4.5rem;
    align-items: center;
  }
  .founder-portrait {
    aspect-ratio: 3 / 4;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    background: #6a5040;
  }
  .founder-portrait img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .founder-portrait::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(42,38,32,0) 55%, rgba(42,38,32,0.55) 100%);
    z-index: 1;
  }
  .founder-portrait::after { content: none; }
  .founder-portrait .plate-caption {
    position: absolute;
    bottom: 1.25rem;
    left: 1.25rem;
    z-index: 2;
    font-family: 'Cormorant SC', serif;
    font-size: 0.6rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(243, 233, 210, 0.7);
  }

  .founder-content {
    max-width: 580px;
  }
  .founder-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--earth-deep);
    font-size: 0.7rem;
    margin-bottom: 1.5rem;
  }
  .founder-name {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: clamp(2.4rem, 4.5vw, 4rem);
    line-height: 0.95;
    letter-spacing: -0.01em;
    margin-bottom: 0.5rem;
    color: var(--ink);
  }
  .founder-name em { font-style: italic; font-weight: 500; }
  .founder-role {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1.2rem;
    color: var(--muted);
    margin-bottom: 2rem;
    padding-bottom: 1.75rem;
    border-bottom: 1px solid rgba(42, 38, 32, 0.18);
  }
  .founder-bio {
    font-size: 1.05rem;
    line-height: 1.75;
    margin-bottom: 1.25rem;
    opacity: 0.88;
  }
  .founder-bio strong { color: var(--earth-deep); font-weight: 500; }
  .founder-creds {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin: 2rem 0;
  }
  .founder-creds .cred {
    padding-top: 1rem;
    border-top: 1px solid rgba(42, 38, 32, 0.18);
  }
  .founder-creds .cred-label {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--muted);
    margin-bottom: 0.35rem;
  }
  .founder-creds .cred-name {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-size: 1.15rem;
    color: var(--ink);
  }
  .founder-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1.5rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.7rem;
    background: var(--ink);
    color: var(--moon);
    border-radius: 999px;
    margin-top: 1rem;
    transition: all 0.2s;
  }
  .founder-cta:hover { background: var(--earth-deep); }
  .founder-cta .arrow { font-family: 'EB Garamond', serif; font-style: italic; letter-spacing: 0; font-size: 1rem; }

  /* ═══════════════════════════════════════
     VI. LUNAR SCHEDULE
     ═══════════════════════════════════════ */
  .lunar {
    background: var(--night);
    color: var(--moon);
    padding: 7rem 0;
    position: relative;
    overflow: hidden;
  }
  .lunar-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .lunar-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    opacity: 0.55;
  }
  .lunar-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    /* v98: opaque night at the top edge → same shade as the invocation above,
       so the two sections read as one continuous night passage; then the moon
       photo emerges by mid-section. */
    background: linear-gradient(to bottom,
      var(--night) 0%,
      rgba(28,35,48,0.85) 12%,
      rgba(28,35,48,0.55) 40%,
      rgba(28,35,48,0.75) 75%,
      var(--night) 100%);
  }
  .lunar .stars { z-index: 1; }
  .lunar .container { position: relative; z-index: 2; }
  .lunar .chapter-mark { color: var(--gold-soft); }
  .lunar .chapter-mark .roman { color: var(--moon); }
  .lunar .chapter-title { color: var(--moon); }
  .lunar .chapter-deck { color: rgba(243, 233, 210, 0.7); }

  .moon-today {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.75rem;
    margin: 0 auto 3.5rem;
    padding: 1.5rem 2.25rem;
    max-width: 620px;
    border: 1px solid rgba(243, 233, 210, 0.22);
    border-radius: 999px;
    background: rgba(212, 184, 122, 0.06);
  }
  .moon-today-disc {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #fff8e8 0%, var(--moon) 42%, #d9c795 75%, #c3ae7c 100%);
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 0 18px rgba(243, 233, 210, 0.3), inset -6px -7px 12px -5px rgba(122, 96, 52, 0.4), inset 2px 3px 8px -5px rgba(255, 255, 255, 0.55);
  }
  .moon-today-disc::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
      radial-gradient(circle at 66% 62%, rgba(122, 96, 52, 0.22) 0%, transparent 11%),
      radial-gradient(circle at 40% 72%, rgba(122, 96, 52, 0.16) 0%, transparent 9%),
      radial-gradient(circle at 58% 34%, rgba(122, 96, 52, 0.14) 0%, transparent 8%);
    z-index: 1;
  }
  .moon-today-disc .shadow {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: var(--night);
    filter: blur(2px);
    z-index: 2;
  }
  .moon-today-text {
    text-align: left;
  }
  .moon-today-label {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--gold-soft);
    margin-bottom: 0.35rem;
  }
  .moon-today-name {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-weight: 400;
    font-size: 1.5rem;
    color: var(--moon);
    margin-bottom: 0.2rem;
  }
  .moon-today-meta {
    font-family: 'EB Garamond', serif;
    font-size: 0.9rem;
    color: rgba(243, 233, 210, 0.65);
  }
  .lunar-phase.is-today {
    border-color: var(--gold-soft);
    background: rgba(194, 162, 95, 0.12);
    box-shadow: 0 0 0 1px var(--gold-soft), 0 14px 28px -18px rgba(194, 162, 95, 0.5);
  }

  .lunar-phases {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-bottom: 4rem;
  }
  .lunar-phase {
    text-align: center;
    padding: 2rem 1rem;
    border: 1px solid rgba(243, 233, 210, 0.18);
    border-radius: 4px;
    transition: all 0.3s;
    cursor: pointer;
    background: rgba(28, 35, 48, 0.5);
  }
  .lunar-phase:hover {
    border-color: var(--gold-soft);
    background: rgba(194, 162, 95, 0.08);
  }
  .lunar-phase .disc {
    width: 76px; height: 76px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 32% 28%, #fff8e8 0%, var(--moon) 42%, #d9c795 75%, #c3ae7c 100%);
    box-shadow: inset -7px -9px 16px -6px rgba(122, 96, 52, 0.4), inset 3px 4px 10px -6px rgba(255, 255, 255, 0.55);
  }
  .lunar-phase .disc::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
      radial-gradient(circle at 66% 62%, rgba(122, 96, 52, 0.22) 0%, transparent 11%),
      radial-gradient(circle at 40% 72%, rgba(122, 96, 52, 0.16) 0%, transparent 9%),
      radial-gradient(circle at 58% 34%, rgba(122, 96, 52, 0.14) 0%, transparent 8%),
      radial-gradient(circle at 25% 40%, rgba(122, 96, 52, 0.12) 0%, transparent 7%);
    z-index: 1;
  }
  .lunar-phase .disc::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: var(--night);
    z-index: 2;
  }
  .lunar-phase.new .disc { box-shadow: inset 0 0 0 1px rgba(243, 233, 210, 0.4); }
  .lunar-phase.new .disc::after { opacity: 0.94; }
  .lunar-phase.waxing .disc::after {
    background: linear-gradient(90deg, var(--night) 0%, var(--night) 42%, transparent 58%, transparent 100%);
    filter: blur(2px);
  }
  .lunar-phase.waxing .disc { box-shadow: inset -7px -9px 16px -6px rgba(122, 96, 52, 0.4), inset 3px 4px 10px -6px rgba(255, 255, 255, 0.55), inset 0 0 0 1px rgba(243, 233, 210, 0.3); }
  .lunar-phase.full .disc {
    box-shadow: inset -7px -9px 16px -6px rgba(122, 96, 52, 0.4), inset 3px 4px 10px -6px rgba(255, 255, 255, 0.55), 0 0 28px rgba(243, 233, 210, 0.35);
  }
  .lunar-phase.full .disc::after { content: none; }
  .lunar-phase.waning .disc::after {
    background: linear-gradient(270deg, var(--night) 0%, var(--night) 42%, transparent 58%, transparent 100%);
    filter: blur(2px);
  }
  .lunar-phase.waning .disc { box-shadow: inset -7px -9px 16px -6px rgba(122, 96, 52, 0.4), inset 3px 4px 10px -6px rgba(255, 255, 255, 0.55), inset 0 0 0 1px rgba(243, 233, 210, 0.3); }
  .lunar-phase .ph-roman {
    font-family: 'Spectral', serif;
    font-style: italic;
    color: var(--gold-soft);
    font-size: 0.95rem;
    margin-bottom: 0.4rem;
  }
  .lunar-phase .ph-name {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: 1.55rem;
    margin-bottom: 0.5rem;
  }
  .lunar-phase .ph-tag {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--gold-soft);
    margin-bottom: 1rem;
  }
  .lunar-phase .ph-body {
    font-size: 0.95rem;
    line-height: 1.55;
    color: rgba(243, 233, 210, 0.75);
  }

  .lunar-cta {
    text-align: center;
  }
  .lunar-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1rem 2rem;
    border: 1px solid var(--gold-soft);
    border-radius: 999px;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-size: 0.72rem;
    color: var(--gold-soft);
    transition: all 0.2s;
  }
  .lunar-cta-btn:hover { background: var(--gold-soft); color: var(--night); }
  .lunar-cta-btn .arrow { font-family: 'EB Garamond', serif; font-style: italic; letter-spacing: 0; font-size: 1rem; }

  /* ═══════════════════════════════════════
     VII. RIVER OF OFFERINGS — schedule list
     ═══════════════════════════════════════ */
  .offerings {
    border-top: 1px solid rgba(42, 38, 32, 0.2);
    border-bottom: 1px solid rgba(42, 38, 32, 0.2);
  }
  .offering {
    display: grid;
    grid-template-columns: 80px 1fr 2fr 1fr auto;
    gap: 2rem;
    padding: 2rem 0;
    align-items: center;
    border-bottom: 1px solid rgba(42, 38, 32, 0.12);
    transition: background 0.2s, padding-left 0.2s;
    cursor: pointer;
  }
  .offering:last-child { border-bottom: none; }
  .offering:hover { background: rgba(173, 113, 82, 0.06); padding-left: 1rem; }
  .offering .of-roman {
    font-family: 'Spectral', serif;
    font-style: italic;
    color: var(--earth-deep);
    font-size: 1.4rem;
  }
  .offering .of-name {
    font-family: 'Spectral', serif;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.05;
    color: var(--ink);
  }
  .offering .of-name em { font-style: italic; }
  .offering .of-desc {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--ink);
    opacity: 0.78;
    font-style: italic;
  }
  .offering .of-meta {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.65rem;
    color: var(--muted);
    line-height: 1.7;
  }
  .offering .of-meta strong { color: var(--earth-deep); font-weight: 400; }
  .offering .of-arrow {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-size: 1.4rem;
    color: var(--earth-deep);
    opacity: 0.4;
    transition: all 0.2s;
  }
  .offering:hover .of-arrow { opacity: 1; transform: translateX(6px); }

  /* ═══════════════════════════════════════
     VIII. TESTIMONIES — voices around the fire
     ═══════════════════════════════════════ */
  .voices {
    background:
      radial-gradient(ellipse at 50% 0%, rgba(173, 113, 82, 0.10) 0%, transparent 55%),
      var(--sand);
  }
  .voices-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
  .voice {
    background: var(--paper);
    border: 1px solid rgba(42, 38, 32, 0.15);
    border-radius: 4px;
    padding: 2.5rem 2rem 2rem;
    position: relative;
  }
  .voice .moon-glyph { color: var(--earth); }
  .voice .quote-mark {
    position: absolute;
    top: 1rem; left: 1.5rem;
    font-family: 'Spectral', serif;
    font-size: 4rem;
    line-height: 1;
    color: var(--earth);
    opacity: 0.25;
  }
  .voice-text {
    font-family: 'Spectral', serif;
    font-style: italic;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1.5;
    color: var(--ink);
    margin-bottom: 2rem;
    margin-top: 1.5rem;
    position: relative;
    z-index: 1;
  }
  .voice-attr {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(42, 38, 32, 0.15);
  }
  .voice-avatar {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: radial-gradient(circle at 38% 35%, var(--earth) 0%, var(--earth-deep) 75%);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 0 1px rgba(243, 233, 210, 0.35), 0 4px 10px -4px rgba(42, 38, 32, 0.4);
  }
  .voice-avatar::before {
    content: '';
    position: absolute;
    inset: -3px;
    border: 1px solid currentColor;
    border-radius: 50%;
    opacity: 0.35;
  }
  .voice-avatar span {
    font-family: 'Cormorant SC', serif;
    font-size: 0.85rem;
    color: var(--moon);
    position: relative;
    z-index: 1;
  }
  .voice-avatar { color: var(--earth-deep); }
  .voice-avatar.b { background: radial-gradient(circle at 38% 35%, var(--moss) 0%, var(--moss-deep) 75%); color: var(--moss-deep); }
  .voice-avatar.c { background: radial-gradient(circle at 38% 35%, var(--river) 0%, var(--river-deep) 75%); color: var(--river-deep); }
  .voice-name {
    font-family: 'Spectral', serif;
    font-weight: 500;
    font-size: 1.05rem;
    color: var(--ink);
  }
  .voice-role {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--muted);
  }

  /* ═══════════════════════════════════════
     IX. JOURNAL — letters from the practice
     ═══════════════════════════════════════ */
  .journal {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
  }
  .entry {
    cursor: pointer;
  }
  .entry-plate {
    aspect-ratio: 4 / 3;
    border-radius: 4px;
    margin-bottom: 1.5rem;
    transition: transform 0.4s;
    position: relative;
    overflow: hidden;
  }
  .entry:hover .entry-plate { transform: translateY(-4px); }
  .entry-plate .label {
    position: absolute;
    bottom: 0.85rem;
    left: 0.85rem;
    z-index: 2;
    font-family: 'Cormorant SC', serif;
    font-size: 0.55rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(243, 233, 210, 0.6);
  }
  .entry-plate img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .entry-plate.a, .entry-plate.b {
    position: relative;
  }
  .entry-plate.a::after, .entry-plate.b::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(28,35,48,0) 55%, rgba(28,35,48,0.65) 100%);
    z-index: 1;
  }
  .entry-plate.b {
    background:
      radial-gradient(ellipse 40% 20% at 50% 38%, rgba(243, 233, 210, 0.6) 0%, transparent 70%),
      linear-gradient(to bottom, #7e8a64 0%, #5a6447 100%);
  }
  .entry-plate.c {
    position: relative;
    background:
      radial-gradient(circle at 75% 20%, rgba(243, 233, 210, 0.7) 0%, rgba(243, 233, 210, 0) 18%),
      linear-gradient(to bottom, #ad7152 0%, #8a5135 70%, #5d3924 100%);
  }
  .entry-plate.c::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(28,35,48,0) 55%, rgba(28,35,48,0.65) 100%);
    z-index: 1;
  }
  .entry-meta {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--earth-deep);
    margin-bottom: 0.75rem;
    display: flex;
    gap: 0.85rem;
    align-items: center;
  }
  .entry-meta .dot {
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--earth);
  }
  .entry-title {
    font-family: 'Spectral', serif;
    font-weight: 400;
    font-size: 1.55rem;
    line-height: 1.15;
    color: var(--ink);
    margin-bottom: 0.75rem;
    transition: color 0.2s;
  }
  .entry-title em { font-style: italic; }
  .entry:hover .entry-title { color: var(--earth-deep); }
  .entry-deck {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--muted);
  }

  /* ═══════════════════════════════════════
     X. NEWSLETTER — under the moon
     ═══════════════════════════════════════ */
  .newsletter {
    background: var(--night);
    color: var(--moon);
    padding: 6rem 2.5rem;
    text-align: center;
    position: relative;
    overflow: hidden;
  }
  .newsletter .stars { z-index: 1; }
  .newsletter .moon-glow {
    position: absolute;
    top: -160px;
    left: 50%;
    transform: translateX(-50%);
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(243, 233, 210, 0.55) 0%, rgba(243, 233, 210, 0.15) 40%, transparent 70%);
    z-index: 1;
    pointer-events: none;
  }
  .newsletter-inner {
    position: relative;
    z-index: 2;
    max-width: 700px;
    margin: 0 auto;
  }
  .newsletter-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold-soft);
    font-size: 0.7rem;
    margin-bottom: 1.75rem;
  }
  .newsletter-title {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: clamp(2.2rem, 4.5vw, 3.8rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin-bottom: 1.25rem;
  }
  .newsletter-title em { font-style: italic; font-weight: 500; }
  .newsletter-deck {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1.15rem;
    line-height: 1.55;
    color: rgba(243, 233, 210, 0.75);
    margin-bottom: 2.25rem;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
  }
  .newsletter-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0;
    max-width: 540px;
    margin: 0 auto;
    background: rgba(243, 233, 210, 0.06);
    border: 1px solid rgba(243, 233, 210, 0.3);
    border-radius: 999px;
    padding: 0.4rem 0.4rem 0.4rem 1.5rem;
    align-items: center;
  }
  .newsletter-form input {
    background: transparent;
    border: none;
    outline: none;
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1.05rem;
    color: var(--moon);
    padding: 0.65rem 0;
  }
  .newsletter-form input::placeholder {
    color: rgba(243, 233, 210, 0.5);
  }
  .newsletter-form button {
    background: var(--gold-soft);
    color: var(--night);
    padding: 0.75rem 1.5rem;
    border-radius: 999px;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.66rem;
    transition: all 0.2s;
  }
  .newsletter-form button:hover { background: var(--moon); }
  .newsletter-fine {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-size: 0.58rem;
    color: rgba(243, 233, 210, 0.45);
    margin-top: 1.75rem;
  }

  /* ═══════════════════════════════════════
     COLOPHON / FOOTER
     ═══════════════════════════════════════ */
  .colophon {
    background: var(--paper);
    color: var(--ink);
    padding: 5rem 2.5rem 2.5rem;
    border-top: 1px solid rgba(42, 38, 32, 0.15);
  }
  .colophon-grid {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 4rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid rgba(42, 38, 32, 0.15);
  }
  .colophon-brand .glyph-row {
    font-family: 'Cormorant SC', serif;
    font-size: 0.6rem;
    letter-spacing: 0.4em;
    color: var(--earth);
    margin-bottom: 0.5rem;
  }
  .colophon-brand .name {
    font-family: 'Spectral', serif;
    font-weight: 300;
    font-size: 2.4rem;
    margin-bottom: 1.25rem;
    letter-spacing: 0.01em;
  }
  .colophon-brand .name em { font-style: italic; }
  .colophon-brand .blurb {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--muted);
    max-width: 340px;
  }
  .colophon-col h5 {
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-size: 0.65rem;
    color: var(--earth-deep);
    margin-bottom: 1.25rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid rgba(42, 38, 32, 0.18);
    font-weight: 400;
  }
  .colophon-col ul { list-style: none; }
  .colophon-col li {
    padding: 0.4rem 0;
    font-family: 'EB Garamond', serif;
    font-size: 1rem;
  }
  .colophon-col li em {
    font-style: italic;
    color: var(--earth);
    margin-right: 0.4rem;
  }
  .colophon-col a:hover { color: var(--earth-deep); }

  .colophon-bottom {
    max-width: 1280px;
    margin: 2rem auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    font-family: 'Cormorant SC', serif;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.6rem;
    color: var(--muted);
  }
  .colophon-bottom .center { color: var(--earth-deep); }
  .colophon-bottom .center .moon-glyph { color: var(--gold); }

  /* ═══════════════════════════════════════
     RESPONSIVE
     ═══════════════════════════════════════ */
  @media (max-width: 1024px) {
    .container, .container-narrow { padding: 0 1.5rem; }
    .ritual-bar { padding: 0.7rem 1.5rem; font-size: 0.58rem; }
    .ritual-bar .links { gap: 1.2rem; }
    /* removed 2026-08-17: superseded by compact nav block */
    /* .masthead { grid-template-columns: 1fr auto; padding: 1.1rem 1.5rem; } */
    /* .masthead .nav-l { display: none; } */
    /* .masthead .nav-r .search { display: none; } */
    /* .masthead .nav-r .book { padding: 0.5rem 0.85rem; font-size: 0.66rem; } */
    .brand { text-align: left; }
    .hero { padding: 3.25rem 1.5rem 2.25rem; }
    .hero-moon { width: 300px; height: 300px; top: 2.5rem; }
    .hero-compass { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    .elements { grid-template-columns: repeat(2, 1fr); }
    .method-spread { grid-template-columns: 1fr; gap: 3rem; }
    .practices { grid-template-columns: 1fr; }
    .founder-spread { grid-template-columns: 1fr; gap: 3rem; }
    .lunar-phases { grid-template-columns: repeat(2, 1fr); }
    .offering { grid-template-columns: 60px 1fr; gap: 1rem; }
    .offering .of-desc, .offering .of-meta, .offering .of-arrow { display: none; }
    .voices-grid { grid-template-columns: 1fr; }
    .journal { grid-template-columns: 1fr; }
    .colophon-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  }

  @media (max-width: 600px) {
    section.movement { padding: 4.5rem 0; }
    .elements { grid-template-columns: 1fr; }
    .lunar-phases { grid-template-columns: 1fr; }
    .colophon-grid { grid-template-columns: 1fr; }
    .hero-title { font-size: 2.5rem; }
    .newsletter-form { grid-template-columns: 1fr; padding: 0.6rem; border-radius: 16px; }
    .newsletter-form input { text-align: center; }
    .colophon-bottom { flex-direction: column; text-align: center; }
    .ritual-bar .links:first-child span:last-child { display: none; }
    .ritual-bar .links:last-child a:not(:last-child) { display: none; }
    .moon-today { flex-direction: column; text-align: center; padding: 1.25rem 1.5rem; gap: 1rem; }
    .moon-today-text { text-align: center; }
  }

.sw-main{display:block}
.sw-phero{position:relative;padding:2.4rem 0 1.2rem;min-height:240px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;text-align:center}
.sw-phero.night{background:var(--night);color:var(--moon)}
.sw-phero.night .sw-sub{color:#c3b596}
.sw-phero .container-narrow{position:relative;z-index:2}
.sw-eyebrow{margin-bottom:1.6rem;color:var(--earth-deep)}
.sw-phero.night .sw-eyebrow{color:var(--gold-soft)}
.sw-title{font-family:'Spectral',serif;font-weight:300;line-height:1.02;letter-spacing:-.015em;font-size:clamp(2.8rem,6vw,5rem)}
.sw-title em{font-style:italic;font-weight:400}
.sw-sub{max-width:60ch;margin:1.7rem auto 0;font-size:1.16rem;line-height:1.7;color:#5f5644}
.sw-crumb{position:relative;z-index:2;font-size:.72rem;margin-bottom:1.4rem;color:var(--muted);opacity:.9;font-family:'Cormorant SC',serif;letter-spacing:.18em;text-transform:uppercase}
.sw-crumb a:hover{color:var(--earth-deep)}
.sw-phero.night .sw-title{color:var(--moon)}
.sw-phero.night .sw-crumb{color:#9c8f78}
.sw-phero .stars{opacity:.7}
.sw-phero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(28,35,48,.55),rgba(28,35,48,.82))}

.sw-sec{padding:2.2rem 0 .6rem}
.sw-sec.paper{background:var(--paper)}
.sw-sec.sand{background:linear-gradient(180deg,var(--paper),var(--sand))}
.sw-sec.cream{background:var(--moon-soft)}
.sw-sec.night{background:var(--night);color:var(--moon);position:relative;overflow:hidden}
.sw-sec.night h2,.sw-sec.night h3{color:var(--moon)}
.sw-sec.night .sw-lead,.sw-sec.night p{color:#c3b596}
.sw-shead{max-width:760px;margin:0 auto 1.2rem;text-align:center}
.sw-shead h2{font-family:'Spectral',serif;font-weight:300;font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.01em}
.sw-shead h2 em{font-style:italic}
.sw-lead{font-size:1.12rem;line-height:1.7;color:#5f5644;margin-top:1rem}

.sw-grid{display:grid;gap:1.6rem}
.sw-2{grid-template-columns:repeat(2,1fr)}
.sw-3{grid-template-columns:repeat(3,1fr)}
.sw-4{grid-template-columns:repeat(4,1fr)}
.sw-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center}

.sw-card{background:var(--moon);border:1px solid rgba(42,38,32,.14);border-radius:4px;padding:2.3rem 2rem;
  position:relative;transition:.4s cubic-bezier(.4,.15,.15,1)}
.sw-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -34px rgba(42,38,32,.5)}
.sw-sec.night .sw-card{background:var(--night-soft);border-color:rgba(243,233,210,.14)}
.sw-card .sw-num{font-family:'Spectral',serif;font-size:1rem;color:var(--earth-deep);letter-spacing:.04em;font-style:italic}
.sw-sec.night .sw-card .sw-num{color:var(--gold-soft)}
.sw-card h3{font-family:'Spectral',serif;font-weight:400;font-size:1.55rem;margin:.6rem 0 .5rem;line-height:1.12}
.sw-card p{font-size:1rem;line-height:1.65;color:#5f5644}
.sw-sec.night .sw-card p{color:#b8ab8f}

.sw-plate{border-radius:4px;position:relative;overflow:hidden;background:var(--night);aspect-ratio:4/5}
.sw-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.sw-plate .cap{position:absolute;left:1rem;bottom:1rem;z-index:3;font-family:'Cormorant SC',serif;letter-spacing:.2em;
  text-transform:uppercase;font-size:.6rem;color:rgba(243,233,210,.9);border:1px solid rgba(243,233,210,.35);padding:.35rem .7rem;border-radius:2px;background:rgba(28,35,48,.25)}
.sw-plate.wide{aspect-ratio:16/10}
.sw-plate.sq{aspect-ratio:1}

.sw-ledger{border-top:1px solid rgba(42,38,32,.18)}
.sw-row{display:grid;grid-template-columns:2.6rem 1fr auto;gap:1.4rem;align-items:baseline;
  padding:1.7rem 0;border-bottom:1px solid rgba(42,38,32,.18);transition:.3s}
.sw-row:hover{background:rgba(173,113,82,.05)}
.sw-row .rn{font-family:'Cormorant SC',serif;letter-spacing:.18em;color:var(--earth-deep);font-size:.82rem}
.sw-row .rt{font-family:'Spectral',serif;font-size:1.45rem;font-weight:400;line-height:1.15}
.sw-row .rt small{display:block;font-family:'EB Garamond',serif;font-size:.98rem;color:#5f5644;margin-top:.25rem;letter-spacing:0}
.sw-row .rp{font-family:'Spectral',serif;font-size:1.35rem;color:var(--ink);white-space:nowrap;text-align:right}
.sw-row .rp small{display:block;font-family:'EB Garamond';font-size:.7rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}

.sw-prose{max-width:70ch;margin:0 auto}
.sw-prose p{font-size:1.14rem;line-height:1.8;margin-bottom:1.3rem;color:#4a4232}
.sw-prose p.drop::first-letter{font-family:'Spectral',serif;font-size:3.4rem;line-height:.8;float:left;padding:.2rem .5rem .1rem 0;color:var(--earth-deep);font-weight:400}
.sw-quote{font-family:'Spectral',serif;font-style:italic;font-weight:300;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.35;text-align:center;max-width:22ch;margin:0 auto;color:var(--ink)}
.sw-sec.night .sw-quote{color:var(--moon)}

.sw-steps{display:grid;gap:1.4rem}
.sw-step{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;padding:1.6rem 0;border-bottom:1px solid rgba(42,38,32,.14)}
.sw-step .sn{font-family:'Spectral',serif;font-size:2.4rem;color:var(--earth);line-height:1;opacity:.85;width:2.6rem}
.sw-step h4{font-family:'Spectral',serif;font-weight:400;font-size:1.4rem;margin-bottom:.3rem}
.sw-step p{color:#5f5644;font-size:1.04rem}

.sw-tags{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0}
.sw-tags li{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;padding:.5rem 1rem;border:1px solid rgba(42,38,32,.22);border-radius:2px;color:var(--ink)}
.sw-inc{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem 0;border-bottom:1px solid rgba(42,38,32,.12)}
.sw-inc .k{font-family:'Spectral',serif;font-size:1.2rem;color:var(--ink);min-width:12rem}
.sw-inc .v{color:#5f5644;font-size:1.02rem;line-height:1.6}

.sw-form{max-width:640px;margin:0 auto;background:var(--moon);border:1px solid rgba(42,38,32,.16);border-radius:4px;padding:2.6rem}
.sw-field{margin-bottom:1.15rem}
.sw-field label{display:block;font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;color:var(--earth-deep);margin-bottom:.45rem}
.sw-field input,.sw-field select,.sw-field textarea{width:100%;font-family:'EB Garamond',serif;font-size:1.05rem;padding:.8rem .9rem;background:var(--paper);border:1px solid rgba(42,38,32,.24);border-radius:2px;color:var(--ink)}
.sw-field textarea{min-height:6rem;resize:vertical}
.sw-field input:focus,.sw-field select:focus,.sw-field textarea:focus{outline:none;border-color:var(--earth);box-shadow:0 0 0 3px rgba(173,113,82,.14)}
.sw-note{font-size:.86rem;color:var(--muted);margin-top:.4rem}
.sw-center{text-align:center}.sw-mt{margin-top:2.6rem}

/* removed 2026-08-17: superseded by compact nav block below (kept only sw-grid responsive) */
@media(max-width:1024px){
  .sw-2,.sw-3,.sw-4,.sw-split{grid-template-columns:1fr}
}
@media(max-width:640px){.sw-phero{padding:1.8rem 0 1rem;min-height:180px}.sw-sec{padding:1.5rem 0 .4rem}.sw-shead{margin-bottom:.8rem}}

/* ---- compact, de-duplicated, mobile-safe nav (2026-08-17) ---- */
body { overflow-x: hidden; }
.masthead ul,.masthead li,.ritual-bar ul,.ritual-bar li{list-style:none!important;margin:0;padding:0}
.nav-l{display:flex;gap:2rem;align-items:center}
.nav-r{display:flex;gap:1.4rem;align-items:center;justify-content:flex-end}
.nav-l .has-sub{position:relative;padding-bottom:.5rem;margin-bottom:-.5rem}
.nav-l .has-sub>a::after{content:"";display:inline-block;width:.36em;height:.36em;border-right:1.2px solid currentColor;border-bottom:1.2px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:.5em;opacity:.55}
.nav-l .subnav{position:absolute;top:100%;left:0;transform:translateY(8px);background:var(--moon);border:1px solid rgba(42,38,32,.14);border-radius:5px;box-shadow:0 22px 44px -26px rgba(42,38,32,.55);padding:.5rem 0;min-width:184px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:.22s;z-index:130}
.nav-l .has-sub:hover .subnav,.nav-l .has-sub:focus-within .subnav{opacity:1;visibility:visible;transform:translateY(4px)}
.nav-l .subnav a{padding:.55rem 1.4rem;white-space:nowrap;font-size:.92rem}
.nav-l .subnav a:hover{background:rgba(173,113,82,.09);color:var(--earth-deep)}
.masthead .nav-r .book{white-space:nowrap}
.sw-burger{display:none}
.sw-mobnav{display:none}
@media(max-width:1024px){
  .sw-burger{display:inline-flex;font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}
  .sw-mobnav{position:fixed;inset:0;background:var(--night);color:var(--moon);z-index:200;display:none;flex-direction:column;justify-content:flex-start;align-items:center;gap:1.3rem;text-align:center;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4.2rem 1rem 3rem}
  .sw-mobnav.open{display:flex}
  .sw-mobnav a{font-family:'Spectral',serif;font-size:1.8rem;color:var(--moon)}
  .sw-mobnav .x{position:absolute;top:1.4rem;right:1.6rem;font-size:1.6rem;background:none;border:0;color:var(--moon);cursor:pointer}
  .masthead{grid-template-columns:1fr auto!important}
  .masthead .nav-l{display:none!important}
  .masthead .nav-r .book{display:none!important}
  .ritual-bar{justify-content:center}
  .ritual-bar .loc{display:none}
  .sw-burger{display:inline-flex!important}
}

/* ---- 2026-08-17 element pages ---- */
.sw-elrow{display:flex;justify-content:center;flex-wrap:wrap;gap:1.2rem 2.4rem;font-family:"Cormorant SC",serif;letter-spacing:.22em;text-transform:uppercase;font-size:.82rem}
.sw-elrow a{color:var(--muted);transition:color .2s,border-color .2s;padding-bottom:.25rem;border-bottom:1px solid transparent}
.sw-elrow a:hover{color:var(--earth-deep)}
.sw-elrow a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--earth-deep)}
/* ---- end element pages ---- */

/* ---- 2026-08-17 mobile header refinements ---- */
@media (max-width: 1024px) {
  .ritual-bar { display: none !important; }
  .masthead .brand .glyph-row { display: none !important; }
  .masthead .brand .name { font-size: 1.7rem; }
  .sw-burger { padding: .35rem .5rem; }
  .sw-burger svg { display: block; }
  .sw-mobnav .btn-primary,
  .sw-mobnav a.btn.btn-primary {
    background: var(--earth) !important;
    border-color: var(--earth) !important;
    color: #fff !important;
  }
}
/* ---- end mobile header refinements ---- */

/* ---- 2026-08-17 homepage element cards + moon date ---- */
.elements .element { cursor: pointer; }
.moon-today-date { font-family: 'Cormorant SC', serif; letter-spacing: .18em; text-transform: uppercase; font-size: .64rem; color: #b9ad92; margin-top: .5rem; }
/* ---- end homepage element cards + moon date ---- */

/* ---- 2026-08-17 practice cards clickable ---- */
.practices .practice-card { cursor: pointer; }
/* ---- end practice cards clickable ---- */

/* ---- 2026-08-17 begin intake wizard ---- */
.sw-intake{max-width:680px;margin:0 auto}
.sw-intake .q{margin-bottom:1.9rem}
.sw-intake .q-label{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--earth-deep);margin-bottom:.85rem}
.sw-intake .q-label span{color:var(--muted);text-transform:none;letter-spacing:0;font-family:'EB Garamond',serif;font-size:.82rem;margin-left:.5rem;font-style:italic}
.sw-intake .q-lead{font-family:'EB Garamond',serif;font-size:.98rem;line-height:1.6;color:#5f5644;max-width:56ch;margin:-.35rem 0 1rem}
.sw-intake .q-lead em{font-style:italic;color:var(--earth-deep)}
.sw-intake .chip-tall{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.6rem 1.15rem;line-height:1.2}
.sw-intake .chip-tag{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.56rem;color:var(--earth-deep);transition:.2s}
.sw-intake .chip-tall.on .chip-tag{color:rgba(255,255,255,.82)}
.sw-intake .chips{display:flex;flex-wrap:wrap;gap:.6rem}
.sw-intake .chip{font-family:'EB Garamond',serif;font-size:1rem;padding:.62rem 1.15rem;border:1px solid rgba(42,38,32,.22);border-radius:100px;background:var(--moon);color:var(--ink);cursor:pointer;transition:.2s}
.sw-intake .chip:hover{border-color:var(--earth)}
.sw-intake .chip.on{background:var(--earth);border-color:var(--earth);color:#fff}
.intake-actions{margin-top:2.2rem;text-align:center}
.intake-note{text-align:center;color:var(--earth-deep);font-style:italic;margin-top:1rem;min-height:1.2em}
.intake-result{margin-top:2.6rem;display:grid;gap:1.2rem}
.rec-card{background:var(--moon);border:1px solid rgba(42,38,32,.16);border-radius:6px;padding:1.9rem 2.1rem;position:relative}
.rec-card.primary{border-color:var(--earth);box-shadow:0 24px 50px -34px rgba(191,90,52,.5)}
.rec-badge{font-family:'Cormorant SC',serif;letter-spacing:.18em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);margin-bottom:.5rem}
.rec-badge.alt{color:var(--muted)}
.rec-card h3{font-family:'Spectral',serif;font-weight:400;font-size:1.5rem;line-height:1.1}
.rec-meta{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;color:var(--muted);margin:.25rem 0 .7rem}
.rec-card p{color:#5f5644;font-size:1.02rem;line-height:1.6;margin:0}
.rec-actions{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;margin-top:1.2rem}
.rec-link{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;color:var(--earth-deep)}
.rec-book{font-size:.8rem!important;padding:11px 22px!important;background:var(--earth)!important;border-color:var(--earth)!important;color:#fff!important}
.wiz-epigraph{font-family:'Spectral',serif;font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.4;color:var(--ink);max-width:28ch;margin:0 auto 1.5rem}
.wiz{max-width:680px;margin:0 auto;background:var(--moon);border:1px solid rgba(42,38,32,.14);border-radius:8px;padding:2.2rem 2.2rem 2rem;box-shadow:0 30px 60px -44px rgba(42,38,32,.5)}
.wiz-steps{display:flex;list-style:none;padding:0;margin:0 0 2rem;gap:.4rem}
.wiz-steps li{flex:1;text-align:center;font-family:'Cormorant SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;color:var(--muted);padding-bottom:.7rem;border-bottom:2px solid rgba(42,38,32,.14);transition:.25s}
.wiz-steps li.on{color:var(--earth-deep);border-color:var(--earth)}
.wiz-steps li.done{color:var(--ink);border-color:var(--earth)}
.wiz-panel[hidden]{display:none}
.wiz-h{font-family:'Spectral',serif;font-weight:400;font-size:1.55rem;line-height:1.1;margin-bottom:.3rem}
.wiz-sub{color:#5f5644;margin-bottom:1.5rem;font-size:1rem;line-height:1.55}
.wiz-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.9rem}
.wiz-nav .btn-ghost{font-size:.85rem;padding:11px 20px;color:var(--ink);border-color:rgba(42,38,32,.32);background:transparent}
.wiz-nav .btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--moon)}
.rec-list{display:grid;gap:.9rem}
.rec-card.sel{display:flex;gap:1rem;align-items:flex-start;cursor:pointer;border:1px solid rgba(42,38,32,.18);border-radius:6px;padding:1.2rem 1.3rem;background:var(--paper);box-shadow:none;transition:.2s}
.rec-card.sel:hover{transform:none;border-color:var(--earth)}
.rec-card.sel.on{border-color:var(--earth);background:#fffdf8;box-shadow:0 18px 40px -30px rgba(191,90,52,.55)}
.rec-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--muted);flex:none;margin-top:.35rem;position:relative;transition:.2s}
.rec-card.sel.on .rec-radio{border-color:var(--earth)}
.rec-card.sel.on .rec-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--earth)}
.rec-card.sel h3{font-size:1.25rem;margin:.15rem 0 .1rem}
.wiz-summary .rec-card{background:var(--paper)}
.wiz-recap{color:#5f5644;font-style:italic;margin-top:1.3rem;line-height:1.65}
.wiz-intro{text-align:center;max-width:60ch;margin:0 auto 2.6rem}
.rec-open{display:inline-block;margin-top:.9rem;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;color:var(--earth-deep);opacity:.75;transition:.2s}
.rec-card.sel:hover .rec-open{opacity:1}
.rec-modal[hidden]{display:none}
.rec-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1.3rem}
.rec-modal .rec-modal-back{position:absolute;inset:0;background:rgba(28,35,48,.6)}
.rec-modal-card{position:relative;z-index:1;background:var(--moon);border:1px solid var(--earth);border-radius:6px;padding:2.2rem 2.3rem;max-width:480px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 42px 90px -34px rgba(28,35,48,.7);animation:mpop .24s ease}
@keyframes mpop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rec-modal-card h3{margin:.2rem 0 .35rem;font-size:1.6rem}
.rec-modal-card .rec-meta{color:var(--muted)}
.rec-modal-card>p{margin-top:.9rem;line-height:1.7;color:#4a4234}
.rec-modal-x{position:absolute;top:.55rem;right:.85rem;background:none;border:none;font-size:1.7rem;line-height:1;color:var(--earth-deep);cursor:pointer;font-family:inherit;padding:.2rem .35rem}
.rec-modal-x:hover{color:var(--clay,#bf5a34)}
.wiz-panel form .sw-field:last-of-type{margin-bottom:0}
.wiz-done{text-align:center;padding:1rem 0}
.wiz-moon{font-size:2.4rem;color:var(--gold);line-height:1}
.wiz-done .wiz-h{margin:.6rem 0 .4rem}
.wiz-done .wiz-sub{max-width:44ch;margin:0 auto 1.6rem}
@media(max-width:560px){.wiz{padding:1.6rem 1.3rem}.wiz-steps li{font-size:.5rem;letter-spacing:.06em}}
/* WPForms styling inside step 3 */
.wiz-formwrap .wpforms-field-label{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--earth-deep)}
.wiz-formwrap input[type=text],.wiz-formwrap input[type=email],.wiz-formwrap input[type=tel],.wiz-formwrap textarea{font-family:'EB Garamond',serif;border-radius:0;border:1px solid rgba(42,38,32,.22);background:var(--moon)}
.wiz-formwrap button[type=submit]{background:var(--earth)!important;border:0!important;border-radius:100px!important;padding:11px 22px!important;color:#fff!important;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
.wiz-formwrap .wpforms-field-hidden{display:none!important}
.sw-intake-thanks{text-align:center;padding:1rem 0}
.sw-intake-thanks h3{font-family:'Spectral',serif;font-weight:400;font-size:1.55rem;margin:.5rem 0}
.sw-intake-thanks p{color:#5f5644}
.wiz-nav-back{justify-content:flex-start;margin-top:1.4rem}
/* ---- end begin intake wizard ---- */

/* ---- 2026-08-17 moon phase pages ---- */
.lunar-phases .lunar-phase { cursor: pointer; }
.moon-jump{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center}
.moon-jump a{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;color:var(--moon);border:1px solid rgba(243,233,210,.28);border-radius:100px;padding:.58rem 1.05rem;transition:.2s;text-decoration:none;white-space:nowrap}
.moon-jump a:hover{border-color:var(--gold-soft);color:var(--gold-soft)}
.moon-jump a[aria-current="page"]{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--night)}
.moon-note{font-family:'Spectral',serif;font-style:italic;color:#5f5644;line-height:1.7;max-width:60ch;margin:1.4rem auto 0}
.moon-week{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;margin-top:1.8rem}
.moon-week .mw{background:var(--moon);border:1px solid rgba(42,38,32,.16);border-radius:6px;padding:1.25rem 1.7rem;min-width:230px;text-align:center}
.moon-week .mw .lab{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.58rem;color:var(--earth-deep);margin-bottom:.45rem}
.moon-week .mw .val{font-family:'Spectral',serif;font-style:italic;font-size:1.12rem;color:var(--ink);line-height:1.35}
.moon-days{margin-top:.5rem;border-top:1px solid rgba(42,38,32,.16)}
.moon-day{display:flex;gap:1.6rem;padding:1.2rem 0;border-bottom:1px solid rgba(42,38,32,.12)}
.moon-day .md-left{flex:0 0 200px;max-width:200px}
.moon-day .md-day{font-family:'Cormorant SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;color:var(--earth-deep)}
.moon-day .md-prac{font-family:'Spectral',serif;font-style:italic;color:var(--ink);margin-top:.28rem;font-size:1.04rem;line-height:1.3}
.moon-day .md-focus{flex:1;color:#4a4234;line-height:1.62}
/* stage-page .moon-day mobile stack (2026-08-28, theme v1.0.76): match accordion behavior under 640px. */
@media(max-width:640px){.moon-day{flex-direction:column;gap:.35rem}.moon-day .md-left{flex:none;max-width:none}}
.moon-arc{display:grid;gap:1.5rem;max-width:660px;margin:1.8rem auto 0}
.moon-arc .arc-name{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;color:var(--gold-soft);margin-bottom:.55rem;text-align:center}
.moon-arc .arc-steps{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:center}
.moon-arc .arc-step{color:rgba(243,233,210,.5);font-family:'Spectral',serif;font-style:italic;font-size:1.05rem}
.moon-arc .arc-step.on{color:var(--moon);border-bottom:1px solid var(--gold-soft);padding-bottom:1px}
.moon-arc .arc-sep{color:rgba(243,233,210,.28)}
.moon-prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:2.6rem;flex-wrap:wrap}
.moon-prevnext a{color:var(--moon);text-decoration:none;font-family:'Spectral',serif;font-style:italic;font-size:1.05rem}
.moon-prevnext a:hover{color:var(--gold-soft)}
.moon-prevnext .pn-lab{display:block;font-family:'Cormorant SC',serif;font-style:normal;letter-spacing:.16em;text-transform:uppercase;font-size:.56rem;color:var(--gold-soft);margin-bottom:.25rem}
.moon-status{margin-top:1.7rem;display:inline-block;border:1px solid rgba(243,233,210,.26);border-radius:14px;padding:.85rem 1.5rem;background:rgba(28,35,48,.4);text-align:center}
.moon-status .ms-today{display:block;font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;color:var(--gold-soft)}
.moon-status .ms-now{display:block;margin-top:.4rem;font-family:'Spectral',serif;font-style:italic;font-size:1rem;color:var(--moon);line-height:1.45}
.moon-status.is-now{border-color:var(--gold-soft);background:rgba(212,184,122,.16);box-shadow:0 0 40px -18px rgba(212,184,122,.6)}
.moon-status.is-now .ms-now{color:var(--gold-soft)}
/* ---- end moon phase pages ---- */

/* ---- 2026-08-17 begin CTAs (rails + sticky pill) ---- */
.cta-rail{padding:2.4rem 0}
.cta-rail .cta-inner{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.35rem 1.1rem;text-align:center}
.cta-rail .cta-kick{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.64rem;color:var(--earth-deep)}
.cta-rail a.cta-link{font-family:'Spectral',serif;font-style:italic;font-size:1.18rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--earth);padding-bottom:2px;transition:.2s}
.cta-rail a.cta-link:hover{color:var(--clay,#bf5a34);border-color:var(--clay,#bf5a34)}
.sw-sec.night.cta-rail a.cta-link{color:var(--moon);border-color:var(--gold-soft)}
.sw-sec.night.cta-rail .cta-kick{color:var(--gold-soft)}
.sw-begin-pill{position:fixed;right:1.2rem;bottom:1.2rem;z-index:900;display:inline-flex;align-items:center;gap:.45rem;background:var(--earth);color:#fff;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;padding:.82rem 1.35rem;border-radius:100px;text-decoration:none;box-shadow:0 18px 40px -18px rgba(28,35,48,.75);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.sw-begin-pill.show{opacity:1;transform:none;pointer-events:auto}
.sw-begin-pill:hover{background:var(--earth-deep)}
@media(max-width:600px){.sw-begin-pill{right:.85rem;bottom:.85rem;font-size:.6rem;padding:.72rem 1.1rem}}
/* ---- end begin CTAs ---- */

/* ---- 2026-08-17 offerings rows clickable ---- */
a.offering { text-decoration: none; color: inherit; cursor: pointer; }
a.offering:hover .of-arrow { transform: translateX(4px); transition: transform .2s ease; }
/* ---- end offerings rows clickable ---- */

/* ---- 2026-08-17 new-moon letter form (dark section) ---- */
#letter .wpforms-container .wpforms-field, #letters .wpforms-container .wpforms-field { padding: 0 !important; }
#letter .wpforms-container .wpforms-field-label, #letters .wpforms-container .wpforms-field-label { display: none !important; }
#letter .wpforms-container input[type=email], #letters .wpforms-container input[type=email] {
  background: transparent !important; border: 0 !important;
  border-bottom: 1px solid rgba(243,233,210,.4) !important; border-radius: 0 !important;
  color: var(--moon) !important; font-family: 'EB Garamond', serif !important; font-size: 1rem !important;
  padding: .55rem .1rem !important; text-align: center;
}
#letter .wpforms-container input[type=email]::placeholder, #letters .wpforms-container input[type=email]::placeholder { color: rgba(243,233,210,.55) !important; }
#letter .wpforms-container input[type=email]:focus, #letters .wpforms-container input[type=email]:focus {
  outline: none !important; border-bottom-color: var(--gold-soft) !important; box-shadow: none !important;
}
#letter .wpforms-container button[type=submit].wpforms-submit,
#letters .wpforms-container button[type=submit].wpforms-submit {
  margin-top: 1rem !important; background: var(--earth) !important; border: 0 !important; border-radius: 100px !important;
  color: #fff !important; font-family: 'Cormorant SC', serif !important; letter-spacing: .14em !important;
  text-transform: uppercase !important; font-size: .68rem !important; padding: .78rem 1.5rem !important;
}
#letter .wpforms-container button[type=submit].wpforms-submit:hover,
#letters .wpforms-container button[type=submit].wpforms-submit:hover { background: var(--earth-deep) !important; }
#letter .wpforms-container .wpforms-required-label, #letters .wpforms-container .wpforms-required-label { display: none !important; }
/* ---- end new-moon letter form ---- */

/* ---- 2026-08-17 find your practice assessment ---- */
.fyp-progress{margin-bottom:2.2rem}
.fyp-bar{height:3px;background:rgba(42,38,32,.14);border-radius:2px;overflow:hidden}
.fyp-bar span{display:block;height:100%;width:14%;background:var(--earth);transition:width .45s ease}
.fyp-count{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);margin-top:.7rem;text-align:center}
.fyp-desc{font-family:'EB Garamond',serif;font-style:italic;color:var(--muted);font-size:.92rem;line-height:1.6;max-width:56ch;margin:1.1rem auto 0;text-align:center}
.fyp-zip{max-width:220px;margin:0 auto 1.4rem}
.fyp-zip label{display:block;text-align:center}
.fyp-consent{max-width:52ch;margin:1.6rem auto 0}
.fyp-consent label{display:flex;gap:.7rem;align-items:flex-start;font-family:'EB Garamond',serif;font-size:.92rem;line-height:1.5;color:#4a4234;cursor:pointer;margin-bottom:.95rem}
.fyp-consent input{margin-top:.28rem;flex:0 0 auto;width:16px;height:16px;accent-color:var(--earth)}
.fyp-done{text-align:center}
.fyp-next{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.9rem}
.fyp-next .btn-ghost{color:var(--ink);border-color:rgba(42,38,32,.32);background:transparent}
.fyp-next .btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--moon)}
.fyp-fields{max-width:460px;margin:0 auto}
/* ---- end find your practice assessment ---- */

/* ---- 2026-08-17 Pass B: need grid ---- */
/* Pattern A: shared Discovery Path treatment
 * Canonical source. Consumed by homepage #need and page-peachtree-city.
 * Surface-specific tweaks live as thin modifiers next to the surface.
 */
.sw-path-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem 2.4rem;margin-top:2.6rem}
@media(max-width:820px){.sw-path-list{grid-template-columns:1fr 1fr;gap:1.5rem 2rem}}
@media(max-width:540px){.sw-path-list{grid-template-columns:1fr}}
.sw-path-row{border-top:1px solid var(--line,#e0d7c2);padding-top:.9rem;display:flex;flex-direction:column}
.sw-path-row h3{font-family:var(--serif,'Spectral',Georgia,serif);font-weight:400;font-size:1.35rem;margin:0 0 .3rem;line-height:1.15}
.sw-path-row h3 a{color:var(--ink,#2a2620);text-decoration:none}
.sw-path-row:hover h3 a{color:var(--earth-deep,#8a5135)}
.sw-path-row p{font-family:'EB Garamond',serif;font-size:.98rem;color:#4a4234;margin:0 0 .7rem;flex:1;line-height:1.5}
.sw-path-row .go{font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;color:var(--earth,#ad7152);text-decoration:none}
.sw-path-row .go:hover{color:var(--earth-deep,#8a5135)}
/* ---- end Pass B: need grid ---- */

/* ═══════════════════════════════════════
   PASS D (2026-08-17) — Stillwater 28 + Practitioners
   ═══════════════════════════════════════ */

/* ---- Stillwater 28 landing ---- */
.s28-phase{border:1px solid rgba(42,38,32,.16);border-radius:8px;background:var(--moon);margin-bottom:1rem;overflow:hidden}
.s28-phase>summary{list-style:none;cursor:pointer;padding:1.35rem 1.6rem;display:flex;align-items:baseline;gap:.4rem 1rem;flex-wrap:wrap;transition:.2s}
.s28-phase>summary:hover{background:rgba(173,113,82,.05)}
.s28-phase>summary::-webkit-details-marker{display:none}
.s28-phase .s28-range{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);flex:0 0 auto}
.s28-phase .s28-name{font-family:'Spectral',serif;font-size:1.3rem;color:var(--ink)}
.s28-phase .s28-theme{font-family:'EB Garamond',serif;font-style:italic;color:var(--muted);margin-left:auto}
.s28-phase[open]>summary{border-bottom:1px solid rgba(42,38,32,.12)}
.s28-body{padding:.2rem 1.6rem 1.3rem}
.s28-body .moon-days{display:flex;flex-direction:column}
.s28-body .moon-day{padding:.9rem 0;display:grid;grid-template-columns:220px 1fr;gap:1.5rem;border-bottom:1px solid rgba(42,38,32,.08)}
.s28-body .moon-day:last-child{border-bottom:none}
.s28-body .md-day{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;color:var(--earth-deep);margin-bottom:.25rem}
.s28-body .md-prac{font-family:'Spectral',serif;font-style:italic;color:var(--ink);font-size:1rem}
.s28-body .md-focus{font-family:'EB Garamond',serif;color:#4a4234;line-height:1.65}
@media(max-width:640px){.s28-body .moon-day{grid-template-columns:1fr;gap:.35rem}}
.s28-more{display:inline-block;margin-top:.9rem;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep)}
.s28-capture{max-width:470px;margin:0 auto}
.s28-capture form{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}
.s28-capture input{flex:1;min-width:220px;padding:.85rem .95rem;background:transparent;border:1px solid rgba(243,233,210,.35);border-radius:2px;color:var(--moon);font-family:'EB Garamond',serif}
.s28-capture input::placeholder{color:rgba(243,233,210,.55)}

/* ---- practitioner intake ---- */
.prac-form{max-width:720px;margin:1.8rem auto 0;text-align:left}
.prac-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem}
@media(max-width:640px){.prac-grid{grid-template-columns:1fr}}
.prac-form .full{grid-column:1/-1}
.prac-form .sw-field label{display:block;font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);margin-bottom:.35rem}
.prac-form .sw-field input,.prac-form .sw-field textarea{width:100%;padding:.75rem .85rem;border:1px solid rgba(42,38,32,.22);border-radius:3px;font:inherit;background:var(--moon);color:var(--ink);font-family:'EB Garamond',serif}
.prac-form .sw-field textarea{min-height:100px;resize:vertical}
.prac-consent{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.5rem;font-family:'EB Garamond',serif;font-size:.92rem;color:#4a4234;line-height:1.5}
.prac-consent input{margin-top:.28rem;width:16px;height:16px;flex:0 0 auto;accent-color:var(--earth)}
.prac-values{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:820px;margin:2rem auto 0;text-align:center;position:relative;z-index:2}
@media(max-width:640px){.prac-values{grid-template-columns:1fr}}
.prac-values .pv .n{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;color:var(--gold-soft);margin-bottom:.5rem}
.prac-values .pv p{color:#c3b596;line-height:1.7}
.wiz-moon{font-size:2.4rem;color:var(--gold);line-height:1}


/* ---- 2026-08-17 Stillwater Today module ---- */
.today-card{max-width:640px;margin:2.4rem auto 0;border:1px solid rgba(42,38,32,.16);border-radius:8px;background:var(--moon);overflow:hidden;text-align:left}
.today-row{display:flex;gap:1.2rem;padding:1.1rem 1.5rem;border-bottom:1px solid rgba(42,38,32,.1)}
.today-row:last-child{border-bottom:none}
.today-lab{flex:0 0 30%;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);padding-top:.25rem}
.today-val{flex:1;font-family:'EB Garamond',serif;color:#4a4234;line-height:1.55}
#today-prac{font-family:'Spectral',serif;font-style:italic;font-size:1.12rem;color:var(--ink)}
.today-cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:1.9rem}
.today-cta .btn-ghost{color:var(--ink);border-color:rgba(42,38,32,.32)}
@media(max-width:560px){.today-row{flex-direction:column;gap:.3rem}.today-lab{flex:none}}
/* ---- end Stillwater Today ---- */

/* ---- 2026-08-17 Practice Library ---- */
.checkin{max-width:680px;margin:0 auto}
.checkin .ci-q{margin-bottom:1.7rem}
.checkin .ci-label{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;color:var(--earth-deep);margin-bottom:.8rem}
.checkin .ci-label span{color:var(--muted);text-transform:none;letter-spacing:0;font-family:'EB Garamond',serif;font-size:.82rem;margin-left:.5rem;font-style:italic}
.lib-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:2.2rem}
@media(max-width:700px){.lib-grid{grid-template-columns:1fr}}
.lib-card{border:1px solid rgba(42,38,32,.16);border-radius:8px;background:var(--moon);padding:1.6rem 1.7rem;text-align:left}
.lib-card .lib-meta{font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;color:var(--earth-deep);margin-bottom:.5rem}
.lib-card h3{font-size:1.3rem;margin-bottom:.5rem}
.lib-card p{color:#4a4234;line-height:1.6}
.lib-card .lib-reflect{font-style:italic;color:var(--muted);margin-top:.6rem;font-size:.95rem}
.lib-actions{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1.2rem;align-items:center}
.lib-actions a,.lib-actions button{font-family:'Cormorant SC',serif;letter-spacing:.13em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);text-decoration:none;border:none;border-bottom:1px solid transparent;background:none;cursor:pointer;padding:0;transition:.2s}
.lib-actions a:hover,.lib-actions button:hover{border-color:var(--earth);color:var(--clay,#bf5a34)}
.ci-result{max-width:560px;margin:2.2rem auto 0}
.ci-result .lib-card{background:var(--paper);border-color:var(--earth)}
/* ---- end library ---- */

/* ---- 2026-08-17 mobile menu collapsible groups + compact book pill ---- */
@media (max-width: 1024px) {
  .sw-mobnav { justify-content: flex-start; }
  .mob-links { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: flex-start; gap: 0; padding-top: 1rem; align-self: stretch; max-width: 320px; margin: 0 auto; width: 100%; }
  .mob-top-link { font-family: "Spectral", serif; font-weight: 300; font-size: 1.4rem; color: var(--moon); padding: .7rem 0; border-bottom: 1px solid rgba(243,233,210,.1); text-align: center; }
  .mob-top-link:hover { color: var(--gold-soft); }
  .mob-group { border-bottom: 1px solid rgba(243,233,210,.1); }
  .mob-group > summary { font-family: "Spectral", serif; font-weight: 300; font-size: 1.4rem; color: var(--moon); padding: .7rem 0; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; }
  .mob-group > summary::-webkit-details-marker { display: none; }
  .mob-group > summary::after { content: ""; width: .6em; height: .6em; border-right: 1.5px solid var(--gold-soft); border-bottom: 1.5px solid var(--gold-soft); transform: rotate(45deg); transition: transform .2s; margin-right: .2rem; }
  .mob-group[open] > summary::after { transform: rotate(-135deg); }
  .mob-group[open] > summary { color: var(--gold-soft); }
  .mob-sub { display: flex; flex-direction: column; padding: .2rem 0 .8rem .3rem; text-align: left; }
  .mob-sub a { font-family: "EB Garamond", serif; font-size: 1.06rem; color: #b3a78c; padding: .42rem 0; }
  .mob-sub a:hover { color: var(--moon); }
  .mob-foot { padding: 1.4rem 0 0; align-self: center; }
  .mob-book { display: inline-block; font-family: "Cormorant SC", serif; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; padding: 11px 22px; background: var(--earth) !important; color: #fff !important; border-radius: 2px; border: 0 !important; }
  .mob-book:hover { background: var(--earth-deep) !important; }
  /* Override the older forced-full-width from the Pass A btn-primary block inside .sw-mobnav */
  .sw-mobnav .mob-book { font-size: .72rem !important; padding: 11px 22px !important; margin-top: 0 !important; }
  /* Reset the older .sw-mobnav a base size so mob-top-link/mob-group summary/mob-sub sizes take */
  .sw-mobnav a { font-size: inherit; }
  .sw-mobnav .mob-top-link { font-size: 1.4rem; }
  .sw-mobnav .mob-sub a { font-size: 1.06rem; }
}
/* ---- end mobile menu redesign ---- */

/* ---- 2026-08-17 Library 2-tool selector + Today stamp + Method link ---- */
.lib-switch{display:inline-flex;gap:.35rem;padding:.35rem;border:1px solid rgba(42,38,32,.16);border-radius:999px;background:var(--paper)}
.lib-tab{font-family:"Cormorant SC",serif;letter-spacing:.1em;text-transform:uppercase;font-size:.66rem;color:var(--muted);background:none;border:none;cursor:pointer;padding:.7rem 1.25rem;border-radius:999px;transition:.2s;white-space:nowrap}
.lib-tab:hover{color:var(--ink)}
.lib-tab.on{background:var(--earth);color:#fff}
.lib-switch-note{font-family:"EB Garamond",serif;font-style:italic;color:var(--muted);font-size:1rem;margin:1.2rem auto 0;max-width:46ch}
@media(max-width:460px){.lib-switch{width:100%;justify-content:stretch}.lib-tab{flex:1;padding:.7rem .4rem;font-size:.6rem}}
.lib-cross{margin-top:2.8rem;display:flex;flex-direction:column;gap:.5rem;align-items:center}
.lib-cross span{font-family:"EB Garamond",serif;font-style:italic;color:var(--muted);font-size:1rem}
.lib-cross-link{font-family:"Cormorant SC",serif;letter-spacing:.13em;text-transform:uppercase;font-size:.66rem;color:var(--earth-deep);background:none;border:none;border-bottom:1px solid var(--earth);cursor:pointer;padding:.2rem 0;transition:.2s}
.lib-cross-link:hover{color:var(--clay,#bf5a34)}
.today-stamp{font-family:"EB Garamond",serif;font-style:italic;font-size:1.02rem;color:var(--muted);text-align:center;margin:1rem auto .2rem;letter-spacing:.01em}
.method-lib-link{font-family:"Cormorant SC",serif;letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;color:var(--earth-deep);text-decoration:none;border-bottom:1px solid var(--earth);padding-bottom:2px;transition:.2s}
.method-lib-link:hover{color:var(--clay,#bf5a34)}
/* ---- end library selector + today stamp + method link ---- */


/* ---- 2026-08-17 Seasonal Stillwater ---- */
.season-special{max-width:600px;margin:0 auto 2rem;border:1px solid var(--earth);border-radius:10px;background:var(--paper);padding:1.8rem 2rem;text-align:center}
.season-special .ss-eyebrow{font-family:'Cormorant SC',serif;letter-spacing:.18em;text-transform:uppercase;font-size:.62rem;color:var(--earth-deep);margin-bottom:.7rem}
.season-special h3{font-size:1.5rem;margin-bottom:.7rem}
.season-special p{color:#4a4234;line-height:1.7;max-width:48ch;margin:0 auto}
.season-tabs{display:flex;gap:.55rem;justify-content:center;flex-wrap:wrap;margin-top:1.4rem}
.season-obs{font-family:'Spectral',serif;font-style:italic;font-size:clamp(1.2rem,2.3vw,1.5rem);line-height:1.5;color:var(--ink);max-width:44ch;margin:2.2rem auto 0;text-align:center}
.season-now{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.6rem;color:var(--earth-deep);text-align:center;margin-top:1rem;min-height:1em}
/* ---- end seasonal ---- */


/* ---- 2026-08-18 Practice Notes ---- */
.note-card{max-width:640px;margin:0 auto 1.3rem;border-left:2px solid var(--earth);padding:.3rem 0 .3rem 1.6rem}
.note-q{font-family:'Cormorant SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.66rem;color:var(--earth-deep);margin-bottom:.7rem}
.note-a{font-family:'EB Garamond',serif;font-size:1.12rem;line-height:1.75;color:#3f382e}
.note-by{font-family:'Spectral',serif;font-style:italic;color:var(--muted);margin-top:.8rem;font-size:.95rem}
/* ---- end Practice Notes ---- */

/* ---- 2026-08-18 modality refresh ---- */
.sw-grid.sw-5{grid-template-columns:repeat(5,1fr)}
@media (max-width:960px){.sw-grid.sw-5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.sw-grid.sw-5{grid-template-columns:1fr}}
/* ---- end modality refresh ---- */

/* ==== BEGIN letter-format-reframe 2026-08-18 ==== */
/* Six-part New-Moon Letter blocks + letter meta/body/sign/note */
.letter-meta{font-family:'Cormorant SC',serif;letter-spacing:.18em;text-transform:uppercase;font-size:.64rem;color:var(--earth-deep);text-align:center;margin-bottom:1.8rem}
.letter-body{max-width:60ch;margin:0 auto;font-size:1.14rem;line-height:1.9}
.letter-body p{margin-bottom:1.3rem}
.letter-sign{font-family:'Spectral',serif;font-style:italic;font-size:1.28rem;color:var(--ink);margin-top:2rem}
.letter-item{margin:1.5rem 0;padding-left:1.1rem;border-left:2px solid rgba(173,113,82,.35)}
.letter-item p{margin-bottom:0}
.letter-label{color:var(--earth-deep)!important;font-size:.62rem;margin-bottom:.4rem}
.letter-note{max-width:52ch;margin:0 auto;text-align:center;font-family:'EB Garamond',serif;font-style:italic;color:var(--muted);font-size:.98rem}
/* ==== END letter-format-reframe ==== */

/* ---------------------------------------------------------------
   Practice action-row: light-bg ghost button + tighter padding
   (moon-on-sand was invisible at rest; scoped fix on light sections)
   --------------------------------------------------------------- */
.sw-practice-action-row { padding: 3rem 0; }
@media(max-width:640px){ .sw-practice-action-row { padding: 2.2rem 0; } }
.sw-practice-action-row .btn-ghost {
    color: var(--ink);
    border-color: rgba(42,38,32,.32);
    background: transparent;
}
.sw-practice-action-row .btn-ghost:hover,
.sw-practice-action-row .btn-ghost:focus-visible {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--moon);
}

/* ---------------------------------------------------------------
   Cycle module accordion (four phase rows, current expanded)
   No-JS fallback: all panels visible.
   --------------------------------------------------------------- */
.sw-cycle-accordion .sw-cycle-list {
    max-width: 62rem;
    margin: 1.6rem auto 0;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}
.sw-cycle-accordion .sw-cycle-phase {
    border: 1px solid rgba(42,38,32,.12);
    background: rgba(255,255,255,.35);
    border-radius: 4px;
    overflow: hidden;
}
.sw-cycle-accordion .sw-cycle-phase.is-current {
    border-color: var(--earth-deep);
    background: rgba(243,233,210,.5);
}
.sw-cycle-accordion .sw-cycle-phase__hd { margin: 0; }
.sw-cycle-accordion .sw-cycle-phase__toggle {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .55rem;
    width: 100%;
    padding: .95rem 1.2rem;
    background: transparent;
    border: 0;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    min-height: 44px;
}
.sw-cycle-accordion .sw-cycle-phase__toggle:focus-visible {
    outline: 2px solid var(--earth-deep);
    outline-offset: -2px;
}
.sw-cycle-accordion .sw-cycle-phase__label {
    font-family: 'Cormorant SC',serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .82rem;
    color: var(--earth-deep);
}
.sw-cycle-accordion .sw-cycle-phase__sep {
    color: var(--earth-deep);
    opacity: .45;
    padding: 0 .15rem;
}
.sw-cycle-accordion .sw-cycle-phase__sub {
    font-family: 'EB Garamond',serif;
    font-style: italic;
    font-size: 1.02rem;
    color: var(--ink);
}
.sw-cycle-accordion .sw-cycle-phase__badge {
    font-family: 'Cormorant SC',serif;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-size: .68rem;
    color: var(--moss, #5f6b3a);
    padding: .18rem .55rem;
    border: 1px solid rgba(95,107,58,.35);
    border-radius: 999px;
    margin-left: .3rem;
}
.sw-cycle-accordion .sw-cycle-phase__chev {
    width: .55rem;
    height: .55rem;
    border-right: 2px solid var(--ink);
    border-bottom: 2px solid var(--ink);
    transform: rotate(45deg);
    transition: transform .18s ease;
    opacity: .5;
    margin-left: auto;
    align-self: center;
}
.sw-cycle-accordion .sw-cycle-phase__toggle[aria-expanded="true"] .sw-cycle-phase__chev {
    transform: rotate(-135deg);
}
.sw-cycle-accordion .sw-cycle-phase__panel {
    padding: 0 1.2rem 1.15rem;
}
.sw-cycle-accordion .sw-cycle-phase__panel p {
    margin: 0;
    max-width: 62ch;
}
@media (max-width: 640px) {
    .sw-cycle-accordion .sw-cycle-phase__toggle { padding: .9rem 1rem; }
    .sw-cycle-accordion .sw-cycle-phase__panel { padding: 0 1rem 1rem; }
    .sw-cycle-accordion .sw-cycle-phase__badge { flex-basis: 100%; margin-left: 0; margin-top: .2rem; align-self: flex-start; display: inline-block; }
}

/* Per-day framing (Return Experience §51 contextual wrapper) */
#today .today-framing {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    color: var(--earth-deep);
    text-align: center;
    max-width: 52ch;
    margin: 1.2rem auto 1.6rem;
    font-size: 1.05rem;
    line-height: 1.5;
}

/* --- Phase 1c: Season groupings view --- */
.sw-season-view .sw-season-grouping {
    margin: 0 auto 3rem;
    max-width: 62rem;
}
.sw-season-view .sw-season-grouping__name {
    font-family: 'EB Garamond', serif;
    font-size: 1.6rem;
    color: var(--ink);
    margin: 0 0 .4rem;
    text-align: center;
}
.sw-season-view .sw-season-grouping__framing {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    color: var(--earth-deep);
    text-align: center;
    max-width: 52ch;
    margin: 0 auto 1.8rem;
    font-size: 1.05rem;
}
.sw-season-view .sw-season-grouping__cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.2rem;
}
.sw-season-view .sw-season-card {
    background: rgba(255,255,255,.4);
    border: 1px solid rgba(42,38,32,.14);
    border-radius: 4px;
    padding: 1.2rem 1.25rem;
}
.sw-season-view .sw-season-card__title {
    font-family: 'EB Garamond', serif;
    font-size: 1.15rem;
    margin: 0 0 .3rem;
    color: var(--ink);
}
.sw-season-view .sw-season-card__meta {
    font-family: 'Cormorant SC', serif;
    letter-spacing: .1em;
    font-size: .75rem;
    text-transform: uppercase;
    color: var(--earth-deep);
    margin-bottom: .7rem;
}
.sw-season-view .sw-season-card__intro {
    color: var(--ink);
    margin: 0 0 .9rem;
    font-size: .95rem;
    line-height: 1.5;
}
.sw-season-view .sw-season-escape {
    margin-top: 2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(42,38,32,.14);
}

/* --- Phase 1c: Element + Practice contextual views (share season-view CSS) --- */
.sw-view .sw-view-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.2rem;
    max-width: 62rem;
    margin: 1.4rem auto 0;
}
.sw-view .sw-view-card {
    background: rgba(255,255,255,.4);
    border: 1px solid rgba(42,38,32,.14);
    border-radius: 4px;
    padding: 1.2rem 1.25rem;
}
.sw-view .sw-view-card__title {
    font-family: 'EB Garamond', serif;
    font-size: 1.15rem;
    margin: 0 0 .3rem;
    color: var(--ink);
}
.sw-view .sw-view-card__meta {
    font-family: 'Cormorant SC', serif;
    letter-spacing: .1em;
    font-size: .75rem;
    text-transform: uppercase;
    color: var(--earth-deep);
    margin-bottom: .7rem;
}
.sw-view .sw-view-card__intro {
    color: var(--ink);
    margin: 0 0 .9rem;
    font-size: .95rem;
    line-height: 1.5;
}
.sw-view .sw-view-reciprocal {
    margin-top: 2.4rem;
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}
.sw-view .sw-view-escape {
    margin-top: 1.6rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(42,38,32,.14);
}

/* =========================================================================
   Expansion Anchor intake (/expansion-anchor/intake/) — brand-matched styling
   Reuses .sw-field / .sw-intake chip patterns from earlier form work.
   ========================================================================= */
.sw-ei { background: var(--bg); padding: 3rem 0 4rem; }
.sw-ei__container { max-width: 720px; margin: 0 auto; padding: 0 1.5rem; }

.sw-ei__header { margin-bottom: 2.8rem; text-align: center; }
.sw-ei__eyebrow { font-family: 'Cormorant SC', serif; letter-spacing: .16em; text-transform: uppercase; font-size: .78rem; color: var(--earth-deep); margin: 0 0 .6rem; }
.sw-ei__title { font-family: 'Spectral', Georgia, serif; font-weight: 400; font-size: 2rem; line-height: 1.2; margin: 0 0 1rem; color: var(--ink); }
.sw-ei__lede { font-family: 'EB Garamond', serif; color: var(--ink); max-width: 52ch; margin: 0 auto; line-height: 1.55; }

.sw-ei__error { background: rgba(173,113,82,.12); border: 1px solid var(--earth-deep); color: var(--ink); padding: 1rem 1.15rem; margin-bottom: 2rem; border-radius: 2px; font-family: 'EB Garamond', serif; }

.sw-ei__section { margin-bottom: 3rem; }
.sw-ei__section-title { font-family: 'Spectral', Georgia, serif; font-weight: 400; font-size: 1.35rem; color: var(--ink); margin: 0 0 1.4rem; padding-bottom: .55rem; border-bottom: 1px solid rgba(42,38,32,.14); }
.sw-ei__subsection-title { font-family: 'Spectral', Georgia, serif; font-weight: 400; font-size: 1.1rem; color: var(--ink); margin: 2.2rem 0 .7rem; }
.sw-ei__note { font-family: 'EB Garamond', serif; font-style: italic; color: var(--earth-deep); max-width: 62ch; margin: 0 0 1.4rem; line-height: 1.5; }

.sw-ei__fieldset { border: 0; padding: 0; margin: 0 0 1.4rem; }
.sw-ei__legend { font-family: 'EB Garamond', serif; color: var(--ink); padding: 0; margin-bottom: .9rem; font-size: 1rem; line-height: 1.5; }

.sw-ei__field { margin: 0 0 1.3rem; }
.sw-ei__field label { display: block; font-family: 'Cormorant SC', serif; letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; color: var(--earth-deep); margin-bottom: .45rem; }
.sw-ei__field-note { letter-spacing: 0; text-transform: none; color: var(--muted, #7a6d55); font-family: 'EB Garamond', serif; font-style: italic; font-size: .82rem; margin-left: .3rem; }
.sw-ei__field input[type=text],
.sw-ei__field input[type=email],
.sw-ei__field input[type=tel],
.sw-ei__field input[type=url],
.sw-ei__field textarea {
	width: 100%;
	font-family: 'EB Garamond', serif;
	font-size: 1.05rem;
	padding: .8rem .9rem;
	background: var(--moon, #f3e9d2);
	border: 1px solid rgba(42,38,32,.24);
	border-radius: 2px;
	color: var(--ink);
	line-height: 1.4;
	box-sizing: border-box;
}
.sw-ei__field textarea { min-height: 6rem; resize: vertical; }
.sw-ei__field input:focus-visible,
.sw-ei__field textarea:focus-visible,
.sw-ei__field select:focus-visible {
	outline: none;
	border-color: var(--earth-deep);
	box-shadow: 0 0 0 3px rgba(173,113,82,.16);
}
.sw-ei__field--short input[type=text],
.sw-ei__field--short input[type=email],
.sw-ei__field--short input[type=tel],
.sw-ei__field--short input[type=url] { max-width: 28rem; }

.sw-ei__select-wrap { position: relative; display: block; max-width: 28rem; }
.sw-ei__select-wrap::after { content: ""; position: absolute; right: 1rem; top: 50%; width: .5rem; height: .5rem; border-right: 2px solid var(--earth-deep); border-bottom: 2px solid var(--earth-deep); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.sw-ei__select-wrap select {
	width: 100%;
	font-family: 'EB Garamond', serif;
	font-size: 1.05rem;
	padding: .8rem 2.2rem .8rem .9rem;
	background: var(--moon, #f3e9d2);
	border: 1px solid rgba(42,38,32,.24);
	border-radius: 2px;
	color: var(--ink);
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	line-height: 1.4;
	box-sizing: border-box;
}

.sw-ei__chip-grid { display: flex; flex-wrap: wrap; gap: .55rem; }
.sw-ei__chip-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sw-ei__chip { display: inline-flex; align-items: center; font-family: 'EB Garamond', serif; font-size: 1rem; padding: .55rem 1.1rem; border: 1px solid rgba(42,38,32,.22); border-radius: 100px; background: var(--moon, #f3e9d2); color: var(--ink); cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease; min-height: 44px; line-height: 1.2; margin: 0; letter-spacing: 0; text-transform: none; }
.sw-ei__chip:hover { border-color: var(--earth-deep); }
.sw-ei__chip-input:checked + .sw-ei__chip { background: var(--earth-deep); border-color: var(--earth-deep); color: var(--moon, #f3e9d2); }
.sw-ei__chip-input:focus-visible + .sw-ei__chip { outline: 2px solid var(--earth-deep); outline-offset: 3px; }

.sw-ei__level-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sw-ei__level-card { display: block; border: 1px solid rgba(42,38,32,.18); background: var(--moon, #f3e9d2); border-radius: 4px; padding: 1.1rem 1.3rem; margin: 0 0 .8rem; cursor: pointer; transition: border-color .15s ease, background .15s ease; min-height: 44px; }
.sw-ei__level-card:hover { border-color: var(--earth-deep); }
.sw-ei__level-input:checked + .sw-ei__level-card { border-color: var(--earth-deep); background: rgba(173,113,82,.08); box-shadow: inset 3px 0 0 var(--earth-deep); }
.sw-ei__level-input:focus-visible + .sw-ei__level-card { outline: 2px solid var(--earth-deep); outline-offset: 3px; }
.sw-ei__level-name { display: block; font-family: 'Spectral', Georgia, serif; font-size: 1.05rem; color: var(--ink); margin-bottom: .3rem; }
.sw-ei__level-desc { display: block; font-family: 'EB Garamond', serif; font-size: .95rem; color: var(--ink); line-height: 1.5; }

.sw-ei__inline-fieldset { border: 0; padding: 0; margin: 1rem 0 .8rem; }
.sw-ei__inline-fieldset .sw-ei__legend { margin-bottom: .6rem; }
.sw-ei__inline-radio { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sw-ei__inline-radio-label { display: inline-flex; align-items: center; font-family: 'EB Garamond', serif; font-size: .95rem; padding: .5rem .95rem; border: 1px solid rgba(42,38,32,.22); border-radius: 100px; background: var(--moon, #f3e9d2); color: var(--ink); cursor: pointer; margin: 0 .35rem .35rem 0; transition: .15s; min-height: 40px; line-height: 1.2; }
.sw-ei__inline-radio-label:hover { border-color: var(--earth-deep); }
.sw-ei__inline-radio:checked + .sw-ei__inline-radio-label { background: var(--earth-deep); color: var(--moon, #f3e9d2); border-color: var(--earth-deep); }
.sw-ei__inline-radio:focus-visible + .sw-ei__inline-radio-label { outline: 2px solid var(--earth-deep); outline-offset: 3px; }

.sw-ei__rec-row { border: 1px solid rgba(42,38,32,.14); background: rgba(255,255,255,.35); padding: 1.4rem 1.4rem 1rem; margin: 1rem 0; border-radius: 4px; }
.sw-ei__rec-legend { font-family: 'Cormorant SC', serif; letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; color: var(--earth-deep); padding: 0 .55rem; }

.sw-ei__intro-check { margin-top: .8rem; }
.sw-ei__intro-input { width: 1.15rem; height: 1.15rem; vertical-align: middle; margin-right: .5rem; accent-color: var(--earth-deep); }
.sw-ei__intro-label { font-family: 'EB Garamond', serif; font-size: .98rem; color: var(--ink); cursor: pointer; }

.sw-ei__add-row { margin: 1.4rem 0; }
.sw-ei__add-btn { font-family: 'Cormorant SC', serif; letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; background: transparent; border: 1px solid var(--earth-deep); color: var(--earth-deep); padding: .7rem 1.3rem; cursor: pointer; border-radius: 2px; min-height: 44px; transition: .15s; }
.sw-ei__add-btn:hover { background: var(--earth-deep); color: var(--moon, #f3e9d2); }
.sw-ei__add-btn:focus-visible { outline: 2px solid var(--earth-deep); outline-offset: 3px; }

.sw-ei__submit { margin-top: 2.4rem; text-align: center; }

@media (max-width: 640px) {
	.sw-ei { padding: 2rem 0 3rem; }
	.sw-ei__title { font-size: 1.65rem; }
	.sw-ei__section { margin-bottom: 2.4rem; }
	.sw-ei__field--short input { max-width: 100%; }
	.sw-ei__select-wrap { max-width: 100%; }
}

/* ==========================================================================
   Body Check-In — chip-style form (v1.0.10)
   ========================================================================== */
.sw-ci__group { border: 0; padding: 0; margin: 0 0 2rem; }
.sw-ci__legend {
    font-family: "Cormorant SC", serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .78rem;
    color: var(--earth-deep);
    padding: 0;
    margin-bottom: 1rem;
    display: block;
}
.sw-ci__options {
    /* v1.0.15 CI/Explore visual alignment: no white card wrapper; chips sit
       on paper background, matching the Explore panel treatment. */
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.sw-ci__chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: "EB Garamond", serif;
    font-size: 1rem;
    padding: .55rem 1.1rem;
    border: 1px solid rgba(42,38,32,.22);
    border-radius: 100px;
    background: var(--moon, #f3e9d2);
    color: var(--ink, #2a2620);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
    min-height: 44px;
    line-height: 1.2;
    margin: 0;
    letter-spacing: 0;
    text-transform: none;
}
.sw-ci__chip input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
}
.sw-ci__chip:hover { border-color: var(--earth-deep); }
.sw-ci__chip:has(input:checked) {
    background: var(--earth-deep);
    border-color: var(--earth-deep);
    color: var(--moon, #f3e9d2);
}
.sw-ci__chip:has(input:focus-visible) {
    outline: 2px solid var(--earth-deep);
    outline-offset: 3px;
}

/* ===== Library completion pass — v1.0.12 (return-experience surfacing) ===== */

.sw-today-compact { padding: 1.8rem 0 1.2rem; }
.sw-today-compact__inner {
	max-width: 720px;
	margin: 0 auto;
	background: rgba(255,255,255,.55);
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 10px;
	padding: 1.3rem 1.4rem;
	display: grid;
	gap: .45rem;
}
.sw-today-compact__eyebrow {
	font-family: 'Cormorant SC', serif;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-size: .68rem;
	color: var(--earth-deep, #3a2f1f);
}
.sw-today-compact__stamp {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: .92rem;
	color: var(--muted, #6b5f4d);
}
.sw-today-compact__practice {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: 1.55rem;
	line-height: 1.2;
	color: var(--ink, #241d13);
}
.sw-today-compact__framing {
	margin: .3rem 0 .6rem;
	color: var(--ink, #241d13);
	max-width: 60ch;
}
.sw-today-compact .btn { align-self: start; }

.sw-explore-tabs {
	display: flex;
	gap: .35rem;
	flex-wrap: wrap;
	justify-content: center;
	margin: 1.2rem auto 0;
	max-width: 640px;
}
.sw-explore-tab {
	background: transparent;
	border: 1px solid rgba(0,0,0,.15);
	border-radius: 999px;
	padding: .45rem 1rem;
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: .95rem;
	color: var(--ink, #241d13);
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
}
.sw-explore-tab:hover { background: rgba(0,0,0,.04); }
.sw-explore-tab.on {
	background: var(--ink, #241d13);
	color: var(--paper, #f7f1e6);
	border-color: var(--ink, #241d13);
}

.sw-browse-another { padding-top: 1.2rem; padding-bottom: 1.6rem; }
.sw-browse-another__row {
	display: grid;
	gap: 1.4rem;
	grid-template-columns: 1fr;
	max-width: 780px;
	margin: 0 auto;
}
@media (min-width: 720px) {
	.sw-browse-another__row { grid-template-columns: 1fr 1fr; }
}
.sw-browse-another__h {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: 1.15rem;
	margin: 0 0 .6rem;
	color: var(--ink, #241d13);
}

.sw-inseason { padding: 1.8rem 0; }
.sw-inseason__h {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: 1.7rem;
	margin: .2rem 0 1rem;
	color: var(--ink, #241d13);
}
.sw-inseason__cards {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}
@media (min-width: 720px) {
	.sw-inseason__cards { grid-template-columns: repeat(3, 1fr); }
}
.sw-inseason__card {
	background: rgba(255,255,255,.5);
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 8px;
	padding: 1rem 1.1rem;
	display: grid;
	gap: .35rem;
}
.sw-inseason__card-title {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: 1.15rem;
	margin: 0;
	color: var(--ink, #241d13);
}
.sw-inseason__card-meta { font-size: .82rem; color: var(--muted, #6b5f4d); }
.sw-inseason__card-intro { margin: .2rem 0 .5rem; font-size: .95rem; }

.sw-view-reciprocal__intro {
	font-family: 'Cormorant Garamond', 'Cormorant', serif;
	font-size: 1.05rem;
	margin: 0 0 .6rem;
	color: var(--ink, #241d13);
}
/* ===== end library completion pass ===== */

/* ============================================================
 * Practice Library v2 (mockup v3, four-tab layout).
 * Theme 1.0.18. All rules scoped under .sw-library-v2.
 * ============================================================ */
/* R5.4 (Kant M4): Library-v2 palette aliased to base tokens so future palette
 * shifts cascade through instead of silently forking. --lib-line stays hardcoded
 * (#e0d7c2 is intentionally warmer/lighter than base --line #d6d0be for the
 * dashed tab-panel + chip borders in Library-v2). */
.sw-library-v2{--lib-night:var(--night);--lib-bg:var(--bg);--lib-paper:var(--paper);--lib-card:var(--card);--lib-ink:var(--ink);--lib-muted:var(--muted);--lib-line:#e0d7c2;--lib-earth:var(--earth);--lib-earth-deep:var(--earth-deep);--lib-moon:var(--moon);color:var(--lib-ink)}

/* Dark Today bar (extension of the header band). */
.sw-library-v2 .lib-todaybar{background:var(--lib-night);color:var(--lib-moon);border-bottom:1px solid rgba(243,233,210,.12)}
.sw-library-v2 .lib-todaybar__wrap{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:1.2rem;padding:.6rem 1.5rem}
.sw-library-v2 .lib-todaybar__left{display:flex;flex-direction:column;line-height:1.2;flex-shrink:0}
.sw-library-v2 .lib-todaybar__lab{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.56rem;color:var(--lib-earth)}
.sw-library-v2 .lib-todaybar__phase{font-family:'Spectral',serif;font-style:italic;font-size:.9rem;color:var(--lib-moon)}
.sw-library-v2 .lib-todaybar__mid{flex:1;border-left:1px solid rgba(243,233,210,.18);padding-left:1.2rem;display:flex;flex-direction:column;line-height:1.25;min-width:0}
.sw-library-v2 .lib-todaybar__mid strong{font-family:'Spectral',serif;font-weight:500;font-size:1rem;color:#fff}
.sw-library-v2 .lib-todaybar__meta{font-size:.8rem;color:#a99d82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-library-v2 .lib-todaybar__btn{flex-shrink:0}
@media(max-width:720px){
	.sw-library-v2 .lib-todaybar__wrap{flex-wrap:wrap;gap:.5rem}
	.sw-library-v2 .lib-todaybar__mid{border-left:none;padding-left:0;flex-basis:100%}
	.sw-library-v2 .lib-todaybar__meta{white-space:normal}
}

/* Hero banner. */
.sw-library-v2 .lib-banner{position:relative;height:230px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;text-align:center}
.sw-library-v2 .lib-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,35,48,.5),rgba(28,35,48,.72))}
.sw-library-v2 .lib-banner__inner{position:relative;z-index:2;color:var(--lib-moon);padding:0 1.2rem;max-width:720px}
.sw-library-v2 .lib-banner .lib-eyebrow{color:#e9c9ad}
.sw-library-v2 .lib-banner__h{color:#fff;font-family:'Spectral',serif;font-weight:400;font-size:2.5rem;line-height:1.15;margin:.3rem 0}
.sw-library-v2 .lib-banner__h em{font-style:italic}
.sw-library-v2 .lib-banner__sub{color:#eaddc4;margin:0}
@media(max-width:600px){.sw-library-v2 .lib-banner{height:200px}.sw-library-v2 .lib-banner__h{font-size:1.9rem}}

/* Eyebrow / lab shared bits. */
.sw-library-v2 .lib-eyebrow{font-family:'Cormorant SC',serif;letter-spacing:.2em;text-transform:uppercase;color:var(--lib-earth);font-size:.72rem;display:inline-block}
.sw-library-v2 .lib-lab{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lib-muted);font-size:.7rem}
.sw-library-v2 .lib-eyebrow--section{display:block;margin:.6rem 0 .4rem;text-align:center}

/* Sticky submenu (four tabs). */
.sw-library-v2 .lib-submenu{position:sticky;top:0;z-index:30;background:rgba(245,238,221,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--lib-line);border-bottom:1px solid var(--lib-line)}
.sw-library-v2 .lib-submenu__wrap{max-width:1080px;margin:0 auto;display:flex;gap:.3rem;padding:.5rem 1.5rem;justify-content:center;flex-wrap:wrap}
.sw-library-v2 .lib-submenu__a{font-family:'Cormorant SC',serif;letter-spacing:.13em;text-transform:uppercase;font-size:.66rem;color:var(--lib-muted);padding:.5rem 1rem;border-radius:999px;cursor:pointer;text-decoration:none;transition:.15s}
.sw-library-v2 .lib-submenu__a:hover,.sw-library-v2 .lib-submenu__a:focus-visible{color:var(--lib-earth-deep);background:rgba(173,113,82,.08);outline:none}
.sw-library-v2 .lib-submenu__a:focus-visible{box-shadow:0 0 0 2px rgba(173,113,82,.6)}
.sw-library-v2 .lib-submenu__a.on{color:#fff;background:var(--lib-earth)}

/* Panels: no-JS reachable (all visible). JS hides inactive ones. */
.sw-library-v2 .lib-panelwrap{max-width:1080px;margin:0 auto;padding:1.8rem 1.5rem 1rem}
.sw-library-v2 .lib-tabpanel{padding-bottom:1.6rem;border-bottom:1px dashed var(--lib-line);margin-bottom:1.8rem}
.sw-library-v2 .lib-tabpanel:last-of-type{border-bottom:none;margin-bottom:0}
html.js .sw-library-v2 .lib-tabpanel{display:none;border-bottom:none;margin-bottom:0;padding-bottom:0}
html.js .sw-library-v2 .lib-tabpanel.on{display:block}
.sw-library-v2 .lib-panel__wrap{padding-top:.4rem}
.sw-library-v2 .lib-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem}
.sw-library-v2 .lib-panel__head h2{font-family:'Spectral',serif;font-weight:400;font-size:1.6rem;margin:0;line-height:1.15}

/* Buttons (scoped, so we don't collide with existing theme .btn). */
.sw-library-v2 .lib-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;padding:.7rem 1.4rem;border-radius:7px;cursor:pointer;border:1px solid var(--lib-earth);background:var(--lib-earth);color:#fff;text-decoration:none;transition:.16s}
.sw-library-v2 .lib-btn:hover{background:var(--lib-earth-deep);border-color:var(--lib-earth-deep);color:#fff}
.sw-library-v2 .lib-btn--ghost{background:transparent;color:var(--lib-earth-deep)}
.sw-library-v2 .lib-btn--ghost:hover{background:rgba(173,113,82,.08);color:var(--lib-earth-deep)}
.sw-library-v2 .lib-btn--sm{padding:.5rem 1rem;font-size:.66rem}

/* Chips. Also drives the check-in chips (same visual treatment). */
.sw-library-v2 .lib-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}
.sw-library-v2 .lib-chip,.sw-library-v2 .sw-checkin--library .chip,.sw-library-v2 .sw-checkin--library .chip-btn{font-family:'EB Garamond',serif;font-size:.92rem;border:1px solid var(--lib-line);background:var(--lib-paper);color:#4a4234;border-radius:999px;padding:.4rem 1rem;cursor:pointer;text-decoration:none;line-height:1.2;transition:.15s;display:inline-flex;align-items:center}
.sw-library-v2 .lib-chip.on,.sw-library-v2 .sw-checkin--library .chip.on,.sw-library-v2 .sw-checkin--library .chip-btn.is-selected,.sw-library-v2 .sw-checkin--library .chip.is-selected{background:var(--lib-earth);color:#fff;border-color:var(--lib-earth)}
.sw-library-v2 .lib-chip:hover,.sw-library-v2 .sw-checkin--library .chip:hover{border-color:var(--lib-earth);color:var(--lib-earth-deep)}
.sw-library-v2 .lib-chip.on:hover{color:#fff}

/* Practice grid. */
.sw-library-v2 .lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:720px){.sw-library-v2 .lib-grid{grid-template-columns:1fr}}
.sw-library-v2 .lib-pcard{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:11px;padding:1.2rem 1.3rem;border-left:3px solid var(--lib-earth);transition:.18s}
.sw-library-v2 .lib-pcard:hover{box-shadow:0 12px 26px -16px rgba(42,38,32,.3);transform:translateY(-2px)}
.sw-library-v2 .lib-pcard__meta{font-family:'Cormorant SC',serif;letter-spacing:.13em;text-transform:uppercase;font-size:.6rem;color:var(--lib-earth);margin-bottom:.5rem}
.sw-library-v2 .lib-pcard__title{font-family:'Spectral',serif;font-weight:400;font-size:1.25rem;margin:0 0 .35rem;line-height:1.2}
.sw-library-v2 .lib-pcard__q{font-style:italic;color:var(--lib-muted);font-family:'Spectral',serif;font-size:.98rem;margin:0 0 1rem}
.sw-library-v2 .lib-pcard__actions{display:flex;gap:.6rem;flex-wrap:wrap}
.sw-library-v2 .lib-escape{text-align:center;margin-top:1.2rem}
.sw-library-v2 .lib-empty{text-align:center;grid-column:1/-1;color:var(--lib-muted)}

/* Element cards (photographic circular). */
.sw-library-v2 .lib-el-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:.4rem}
@media(max-width:720px){.sw-library-v2 .lib-el-grid{grid-template-columns:1fr 1fr}}
.sw-library-v2 .lib-el{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:12px;padding:1.5rem 1.1rem;text-align:center;display:block;transition:.18s;color:var(--lib-ink);text-decoration:none}
.sw-library-v2 .lib-el:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(42,38,32,.32);color:var(--lib-ink)}
.sw-library-v2 .lib-el__img{width:112px;height:112px;border-radius:50%;background-size:cover;background-position:center;margin:0 auto 1rem;box-shadow:0 6px 16px -8px rgba(28,35,48,.5);background-color:var(--lib-line)}
.sw-library-v2 .lib-el__rn{font-family:'Spectral',serif;font-style:italic;color:var(--lib-earth);font-size:.9rem;margin-bottom:.15rem}
.sw-library-v2 .lib-el h4{font-family:'Spectral',serif;font-style:italic;font-size:1.3rem;margin:0 0 .35rem;font-weight:400}
.sw-library-v2 .lib-el__kick{font-family:'Cormorant SC',serif;letter-spacing:.18em;text-transform:uppercase;color:var(--lib-muted);font-size:.58rem;margin-bottom:.7rem}
.sw-library-v2 .lib-el p{color:#4a4234;font-size:.88rem;margin:0}

/* By-practice chips row. */
.sw-library-v2 .lib-byp{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem;justify-content:center;align-items:center}
.sw-library-v2 .lib-byp .lib-lab{width:100%;text-align:center;margin-bottom:.2rem}

/* Season stage (background image with warm overlay). */
.sw-library-v2 .lib-season-stage{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--lib-line);padding:1.8rem;background:var(--lib-paper)}
.sw-library-v2 .lib-season-stage::before{content:"";position:absolute;inset:0;background-image:var(--sbg);background-size:cover;background-position:center;opacity:.35;z-index:0}
.sw-library-v2 .lib-season-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(240,227,198,.55),rgba(232,217,184,.68));z-index:1}
.sw-library-v2 .lib-season-inner{position:relative;z-index:2;display:grid;grid-template-columns:.85fr 1.15fr;gap:1.4rem;align-items:center}
@media(max-width:720px){.sw-library-v2 .lib-season-inner{grid-template-columns:1fr}}
.sw-library-v2 .lib-season-intro h2{font-family:'Spectral',serif;font-weight:400;font-size:1.8rem;margin:.3rem 0 .5rem;line-height:1.15}
.sw-library-v2 .lib-season-intro p{color:#3f3a30;font-size:.98rem;margin:0 0 .8rem}
.sw-library-v2 .lib-season-cta{margin-top:.4rem}
.sw-library-v2 .lib-scards{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.sw-library-v2 .lib-scard{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:10px;padding:.9rem 1rem}
.sw-library-v2 .lib-scard__meta{font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.56rem;color:var(--lib-earth);margin-bottom:.3rem}
.sw-library-v2 .lib-scard h4{font-family:'Spectral',serif;font-weight:400;font-size:1.02rem;margin:0 0 .5rem;line-height:1.2}
.sw-library-v2 .lib-scard a{font-family:'Cormorant SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;color:var(--lib-earth-deep);text-decoration:none}

/* Bridge (bottom CTA). */
.sw-library-v2 .lib-bridge-wrap{max-width:1080px;margin:0 auto;padding:0 1.5rem}
.sw-library-v2 .lib-bridge{text-align:center;padding:2rem 0 2.4rem;border-top:1px solid var(--lib-line)}
.sw-library-v2 .lib-bridge h2{font-family:'Spectral',serif;font-weight:400;font-size:1.5rem;margin:.5rem 0 1rem;line-height:1.15}
.sw-library-v2 .lib-bridge__row{display:inline-flex;gap:.7rem;flex-wrap:wrap;justify-content:center}

/* Check-in panel: strip legacy white card boxes; give the whole thing paper background. */
.sw-library-v2 .sw-checkin--library{background:transparent;padding:0;border:none;box-shadow:none}
.sw-library-v2 .sw-checkin--library .sw-checkin__card,
.sw-library-v2 .sw-checkin--library .sw-checkin__box,
.sw-library-v2 .sw-checkin--library .sw-phase1b__box{background:transparent;border:none;box-shadow:none;padding:0}

/* ---- 2026-08-20 header CTA fold (mobile) ---- */
.cta-m { display: none; }
@media (max-width: 680px) {
  .masthead .nav-r .cta-d { display: none !important; }
  .sw-mobnav .cta-m { display: block; color: var(--moon); }
}
/* ---- end header CTA fold ---- */

/* ═══════════════════════════════════════════════════════════════
   FYP v1.0.20 rebuild - real-input chip pattern + wizard
   Chips are <label class="chip"><input type="checkbox|radio"><span>...</span></label>.
   Uses :has() for the checked state; supported in current evergreen browsers.
   No-JS reachability: fieldsets render inline; JS enhances to stepped wizard.
   ═══════════════════════════════════════════════════════════════ */

/* Real chip inputs are visually hidden but keyboard-reachable. */
.sw-intake .chip{position:relative;display:inline-flex;align-items:center;line-height:1.25}
.sw-intake .chip input{position:absolute;opacity:0;width:0;height:0;pointer-events:none;margin:0}
.sw-intake .chip:has(input:checked){background:var(--earth);border-color:var(--earth);color:#fff}
.sw-intake .chip:has(input:focus-visible){outline:2px solid var(--earth);outline-offset:2px}
.sw-intake .chip.chip-sentinel{border-style:dashed;background:transparent;color:var(--earth-deep)}
.sw-intake .chip.chip-sentinel:has(input:checked){background:var(--earth-deep);color:#fff;border-style:solid}

/* FYP form shell + wizard panels */
.fyp-form{max-width:780px;margin:0 auto}
.fyp-form fieldset.fyp-step{border:0;padding:0;margin:0 0 1.8rem}
.fyp-form fieldset.fyp-step[hidden]{display:none}
.fyp-form legend.wiz-h{padding:0;margin-bottom:.4rem;font-family:'Spectral',serif;font-weight:400;font-size:1.55rem;line-height:1.15;color:var(--ink)}
.fyp-form .fyp-fields{max-width:460px;margin:0 auto;display:grid;gap:1rem}
.fyp-form .sw-field label{display:block;font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;color:var(--muted);margin-bottom:.4rem}
.fyp-form input[type=text],.fyp-form input[type=email],.fyp-form input[type=tel],.fyp-form input:not([type]){width:100%;font-family:'EB Garamond',serif;font-size:1rem;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:.75rem 1rem}

/* Consent block: 4 required + 1 optional (newsletter) visually separated. */
.fyp-form .fyp-consent-optional{margin-top:1.3rem;padding-top:1rem;border-top:1px dashed var(--line);color:#5f5644;font-style:italic}

/* Nav row */
.fyp-form .wiz-nav{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.fyp-form .wiz-nav .fyp-hint{font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;color:var(--muted)}
@media(max-width:480px){.fyp-form .wiz-nav .fyp-hint{display:none}.fyp-form .wiz-nav [data-fyp-back]{padding-left:.35rem;padding-right:.35rem}}
/* v1.0.167 fyp-uxcopy-fixes (items 1+2): helper line lives ABOVE the Back/Continue row
   on multi-select steps so the row is a balanced Back-left / Continue-right pair.
   The mobile portal already hides in-nav hints; a fyp-hint-row sitting in the shell
   stays with its question rather than travelling with the sticky nav. */
.fyp-form .fyp-hint-row{display:block;text-align:center;margin:1.8rem auto 0;font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;color:var(--muted);max-width:56ch;line-height:1.4}
@media(max-width:480px){.fyp-form .fyp-hint-row{font-size:.6rem;margin-top:1.4rem}}

/* Inline error */
.fyp-form .fyp-error{margin-top:1rem;padding:.85rem 1rem;background:var(--paper);border:1px solid var(--line);border-radius:9px;color:#7a3a2b;font-style:italic;text-align:center}

/* Progressive-enhancement gating: hide wizard-only controls until JS runs. */
html:not(.js) .fyp-form fieldset.fyp-step[hidden]{display:block!important}
html:not(.js) .fyp-form [data-fyp-progress],
html:not(.js) .fyp-form [data-fyp-back],
html:not(.js) .fyp-form [data-fyp-next],
html:not(.js) .fyp-form [data-fyp-hint]{display:none!important}
html:not(.js) .fyp-form [data-fyp-submit]{display:inline-flex!important}
html.js .fyp-form [data-fyp-submit][hidden]{display:none}
html.js .fyp-form [data-fyp-submit]:not([hidden]){display:inline-flex}
html.js .fyp-form [data-fyp-progress]{display:block}
/* Fix v1.0.22: .btn { display: inline-flex } overrides UA [hidden]{display:none}; force wizard buttons to honor the hidden attribute so nextBtn/backBtn/subBtn toggling works. */
.fyp-form .wiz-nav .btn[hidden]{display:none!important}

/* Calm-unavailable + confirmation state (server-rendered and JS-rendered share this). */
.fyp-state{text-align:center;max-width:680px;margin:1rem auto 0;padding:2rem 1.4rem}
.fyp-state .wiz-moon{font-size:2.4rem;color:var(--gold,var(--earth));line-height:1;margin-bottom:.6rem}
.fyp-calm{text-align:center;padding:2rem 1.4rem}
.fyp-confirmed{text-align:center;padding:2rem 1.4rem}

/* v1.0.46: Request Received panel as a proper branded card matching
   confirm-page and FYP result-screen aesthetics. */
.fyp-confirmed-card{
    background:var(--paper,#f5eedd);
    border:1px solid #e0d7c2;
    border-radius:6px;
    padding:2.4rem 2rem;
    max-width:640px;
    margin:1rem auto 0;
    box-shadow:0 24px 60px -40px rgba(42,38,32,.35);
}
.fyp-confirmed-card .wiz-moon{
    font-size:2.4rem;
    color:var(--gold,var(--earth));
    line-height:1;
    margin-bottom:.6rem;
}
.fyp-confirmed-card .fyp-eyebrow{margin-bottom:.6rem}
.fyp-confirmed-h{text-align:center;margin:.2rem auto .4rem;max-width:36ch}
.fyp-confirmed-lead{
    text-align:center;
    font-style:italic;
    color:var(--muted);
    margin:1rem auto .8rem;
    max-width:56ch;
}
.fyp-confirmed-body{
    text-align:center;
    max-width:56ch;
    margin:0 auto;
}
.fyp-confirmed-note{text-align:center;margin-top:1rem}
.fyp-confirmed-action{text-align:center;margin-top:1.6rem}
.fyp-textlink{
    background:transparent;
    border:0;
    padding:.4rem .2rem;
    font-family:'EB Garamond',serif;
    font-size:1rem;
    color:var(--earth-deep,var(--earth));
    text-decoration:underline;
    text-underline-offset:.22em;
    text-decoration-thickness:1px;
    cursor:pointer;
    min-height:44px;
    letter-spacing:.02em;
    transition:color .15s ease, text-decoration-color .15s ease;
}
.fyp-textlink:hover,
.fyp-textlink:focus-visible{
    color:var(--ink);
    text-decoration-color:var(--ink);
    text-decoration-thickness:2px;
}
@media (min-width: 768px){
    .fyp-confirmed-card{padding:2.8rem 2.6rem}
}

/* End FYP v1.0.20 rebuild */

/* =====================================================================
 * Practice detail (?practice=<slug>) -- 9-section template.
 * Scoped under .sw-library-v2 so it reuses the --lib-* palette,
 * .lib-todaybar, and .lib-btn / .lib-btn--ghost from the Library rebuild.
 * ===================================================================== */
.sw-library-v2.sw-practice-detail{background:var(--lib-bg);color:var(--lib-ink);font-family:'EB Garamond',serif;font-size:17px;line-height:1.6}
.sw-library-v2 .pd-wrap{max-width:1080px;margin:0 auto;padding:0 1.5rem}
.sw-library-v2 .pd-eyebrow{font-family:'Cormorant SC',serif;letter-spacing:.2em;text-transform:uppercase;color:var(--lib-earth);font-size:.72rem;display:inline-block}
.sw-library-v2 .pd-lab{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lib-muted);font-size:.7rem}

/* (2) breadcrumb */
.sw-library-v2 .pd-crumb{padding:1rem 0 .2rem}
.sw-library-v2 .pd-crumb .pd-wrap{font-family:'Cormorant SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;color:var(--lib-muted)}
.sw-library-v2 .pd-crumb a{color:var(--lib-muted);text-decoration:none}
.sw-library-v2 .pd-crumb a:hover{color:var(--lib-earth-deep)}
.sw-library-v2 .pd-crumb span{color:var(--lib-earth-deep)}

/* (3) hero: photo mode (image + tinted gradient scrim) OR solid --lib-night mode */
.sw-library-v2 .pd-hero{position:relative;min-height:300px;background-size:cover;background-position:center;display:flex;align-items:flex-end;margin-top:.4rem}
.sw-library-v2 .pd-hero--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,35,48,.15),rgba(28,35,48,.62))}
.sw-library-v2 .pd-hero--solid{background:linear-gradient(160deg,var(--lib-night) 0%,#232c3b 100%);border-bottom:1px solid rgba(243,233,210,.14)}
.sw-library-v2 .pd-hero .pd-wrap{position:relative;z-index:2;padding-top:2.4rem;padding-bottom:2rem}
.sw-library-v2 .pd-hero .pd-eyebrow{color:#e9c9ad}
.sw-library-v2 .pd-hero h1{color:#fff;font-family:'Spectral',serif;font-weight:400;font-size:3rem;margin:.35rem 0 .5rem;line-height:1.1}
.sw-library-v2 .pd-hero h1 em{font-style:italic;color:#e9c9ad}
.sw-library-v2 .pd-hero p{color:#eaddc4;max-width:34rem;margin:0;font-size:1.06rem;font-family:'Spectral',serif;font-style:italic}
@media(max-width:640px){.sw-library-v2 .pd-hero{min-height:220px}.sw-library-v2 .pd-hero h1{font-size:2rem}.sw-library-v2 .pd-hero p{font-size:.95rem}.sw-library-v2 .pd-hero .pd-wrap{padding-top:1.6rem;padding-bottom:1.4rem}}

/* (4) intro + at-a-glance */
.sw-library-v2 .pd-introrow{display:grid;grid-template-columns:1.35fr .65fr;gap:2rem;padding:2.2rem 0 1rem;align-items:start}
@media(max-width:820px){.sw-library-v2 .pd-introrow{grid-template-columns:1fr;gap:1.4rem}}
.sw-library-v2 .pd-body p{color:#3f3a30;margin:0 0 1rem}
.sw-library-v2 .pd-body p:first-child{font-family:'Spectral',serif;font-size:1.2rem;font-style:italic;color:#4a4234}
.sw-library-v2 .pd-glance{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:13px;padding:1.4rem 1.5rem;border-top:3px solid var(--lib-earth)}
.sw-library-v2 .pd-glance .pd-lab{display:block;margin-bottom:.9rem}
.sw-library-v2 .pd-glance dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.55rem 1rem}
.sw-library-v2 .pd-glance dt{font-family:'Cormorant SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;color:var(--lib-muted);padding-top:.15rem}
.sw-library-v2 .pd-glance dd{margin:0;font-size:.96rem;color:#3f3a30}

/* (5) mid CTA */
.sw-library-v2 .pd-midcta{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;background:var(--lib-paper);border:1px solid var(--lib-line);border-left:3px solid var(--lib-earth);border-radius:12px;padding:1.2rem 1.5rem;margin:.6rem 0 .2rem}
.sw-library-v2 .pd-midcta .pd-mtext{min-width:0}
.sw-library-v2 .pd-midcta .pd-eyebrow{display:block;margin-bottom:.3rem}
.sw-library-v2 .pd-midcta .pd-mtext p{margin:0;color:#3f3a30;font-size:.98rem}
.sw-library-v2 .pd-midcta .lib-btn{flex-shrink:0}
@media(max-width:640px){.sw-library-v2 .pd-midcta{flex-direction:column;align-items:flex-start}}

/* (6)(7)(8) section head */
.sw-library-v2 .pd-sec{padding:2.2rem 0 .6rem}
.sw-library-v2 .pd-sec-head{margin-bottom:1.2rem}
.sw-library-v2 .pd-sec-head .pd-eyebrow{display:block;margin-bottom:.35rem}
.sw-library-v2 .pd-sec-head h2{font-family:'Spectral',serif;font-weight:400;font-size:1.7rem;margin:0;line-height:1.15}
.sw-library-v2 .pd-sec-head .pd-sub{color:var(--lib-muted);font-style:italic;font-family:'Spectral',serif;margin:.3rem 0 0}

/* (6) do-now 3-up grid */
.sw-library-v2 .pd-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
@media(max-width:820px){.sw-library-v2 .pd-grid3{grid-template-columns:1fr}}
.sw-library-v2 .pd-pcard{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:11px;padding:1.2rem 1.3rem;border-left:3px solid var(--lib-earth);transition:.18s;display:flex;flex-direction:column}
.sw-library-v2 .pd-pcard:hover{box-shadow:0 12px 26px -16px rgba(42,38,32,.3);transform:translateY(-2px)}
.sw-library-v2 .pd-pcard__meta{font-family:'Cormorant SC',serif;letter-spacing:.13em;text-transform:uppercase;font-size:.6rem;color:var(--lib-earth);margin-bottom:.5rem}
.sw-library-v2 .pd-pcard__title{font-family:'Spectral',serif;font-weight:400;font-size:1.22rem;margin:0 0 .35rem;line-height:1.2}
.sw-library-v2 .pd-pcard__q{font-style:italic;color:var(--lib-muted);font-family:'Spectral',serif;font-size:.96rem;margin:0 0 1rem;flex:1}
.sw-library-v2 .pd-pcard__actions{display:flex;gap:.6rem;flex-wrap:wrap}

/* (7) substyle cards; solid + photographic variants */
.sw-library-v2 .pd-subrow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:720px){.sw-library-v2 .pd-subrow{grid-template-columns:1fr}}
.sw-library-v2 .pd-subcard{background:var(--lib-card);border:1px solid var(--lib-line);border-radius:13px;overflow:hidden;display:flex;flex-direction:column}
.sw-library-v2 .pd-subcard--solid{border-top:3px solid var(--lib-earth)}
.sw-library-v2 .pd-simg{height:130px;background-size:cover;background-position:center;background-color:var(--lib-night)}
.sw-library-v2 .pd-sbody{padding:1.2rem 1.4rem 1.4rem}
.sw-library-v2 .pd-kick{font-family:'Cormorant SC',serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lib-earth);font-size:.6rem;margin-bottom:.3rem}
.sw-library-v2 .pd-subcard h3{font-family:'Spectral',serif;font-weight:400;font-size:1.35rem;margin:0 0 .4rem;line-height:1.15}
.sw-library-v2 .pd-subcard p{color:#3f3a30;font-size:.95rem;margin:0}

/* (8) what to expect band */
.sw-library-v2 .pd-expect{background:var(--lib-paper);border:1px solid var(--lib-line);border-radius:14px;padding:1.7rem 1.9rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.6rem}
@media(max-width:820px){.sw-library-v2 .pd-expect{grid-template-columns:1fr;gap:1.1rem}}
.sw-library-v2 .pd-item .pd-n{font-family:'Spectral',serif;font-style:italic;color:var(--lib-earth);font-size:1.1rem;margin-bottom:.25rem}
.sw-library-v2 .pd-item h4{font-family:'Spectral',serif;font-weight:400;font-size:1.05rem;margin:0 0 .3rem;line-height:1.2}
.sw-library-v2 .pd-item p{margin:0;font-size:.92rem;color:#4a4234}

/* (9) closing CTA bridge */
.sw-library-v2 .pd-bridge{text-align:center;padding:2.4rem 0 2rem;margin-top:1.5rem;border-top:1px solid var(--lib-line)}
.sw-library-v2 .pd-bridge .pd-eyebrow{display:block;margin-bottom:.5rem}
.sw-library-v2 .pd-bridge h2{font-family:'Spectral',serif;font-weight:400;font-size:1.6rem;margin:0 0 .4rem;line-height:1.15}
.sw-library-v2 .pd-bridge p{color:var(--lib-muted);font-style:italic;font-family:'Spectral',serif;max-width:34rem;margin:0 auto 1.2rem}
.sw-library-v2 .pd-bridge .pd-row{display:inline-flex;gap:.7rem;flex-wrap:wrap;justify-content:center}
/* ---- end practice detail ---- */

/* ============================================================
   Practitioner dashboard + gate pages — design pass 1.0.25
   Applies the theme's earth/moon token language to un-designed
   controls (raw checkboxes/radios, browser <details>, gray cards,
   oversized headings) on the reaccept gate and profile screen.
   Styling only. No selector reaches wp-admin native inputs.
   ============================================================ */

/* Reaccept gate: heading rhythm */
.sw-reaccept { font-family: 'EB Garamond', serif; color: var(--ink); }
.sw-reaccept h1 {
  font-family: 'Cormorant SC', serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.95rem;
  color: var(--earth-deep);
  margin: 0 0 1rem;
  font-weight: 600;
}
.sw-reaccept h2 {
  font-family: 'Cormorant SC', serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--earth-deep);
  margin: 0 0 0.6rem;
  font-weight: 600;
}
.sw-reaccept p { margin: 0.6rem 0; }
.sw-reaccept a { color: var(--earth-deep); text-decoration: underline; }
.sw-reaccept a:hover { color: var(--earth); }

/* Reaccept gate: card treatment (warm cream, earth accent) */
.sw-reaccept section {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--earth);
  border-radius: 8px;
  padding: 1.1rem 1.4rem;
  margin: 1.4rem 0;
}

/* Reaccept gate: disclosure — full-text expander */
.sw-reaccept details {
  border: 1px dashed var(--line);
  border-radius: 6px;
  padding: 0.4rem 0.8rem;
  margin: 0.6rem 0;
  background: transparent;
}
.sw-reaccept details summary {
  font-family: 'Cormorant SC', serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.68rem;
  color: var(--earth-deep);
  cursor: pointer;
  list-style: none;
  outline: none;
}
.sw-reaccept details summary::-webkit-details-marker { display: none; }
.sw-reaccept details summary::before {
  content: '+';
  display: inline-block;
  width: 1em;
  color: var(--earth);
  font-family: 'EB Garamond', serif;
  font-weight: 400;
}
.sw-reaccept details[open] summary::before { content: '−'; }
.sw-reaccept details summary:focus-visible {
  outline: 2px solid var(--earth);
  outline-offset: 2px;
  border-radius: 2px;
}
.sw-reaccept details pre {
  font-family: 'EB Garamond', serif;
  white-space: pre-wrap;
  background: var(--paper);
  padding: 0.8rem;
  margin-top: 0.6rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ink);
}

/* Reaccept gate: acceptance label */
.sw-reaccept label {
  display: block;
  margin-top: 0.9rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ink);
}

/* Reaccept + Profile: native checkbox/radio in theme language.
   Scoped narrowly so wp-admin, TEC, and third-party forms stay untouched. */
.sw-reaccept input[type="checkbox"],
.pcard .opt input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.1rem;
  height: 1.1rem;
  border: 1.5px solid var(--muted, #8c8068);
  border-radius: 3px;
  background: var(--card);
  accent-color: var(--earth);
  cursor: pointer;
  vertical-align: -0.18em;
  margin-right: 0.55rem;
  position: relative;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
  flex: 0 0 auto;
}
.sw-reaccept input[type="checkbox"]:hover,
.pcard .opt input[type="checkbox"]:hover {
  border-color: var(--earth);
}
.sw-reaccept input[type="checkbox"]:checked,
.pcard .opt input[type="checkbox"]:checked {
  background: var(--earth);
  border-color: var(--earth);
}
.sw-reaccept input[type="checkbox"]:checked::after,
.pcard .opt input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 0px;
  width: 4px;
  height: 8px;
  border-right: 2px solid var(--moon);
  border-bottom: 2px solid var(--moon);
  transform: rotate(45deg);
}
.sw-reaccept input[type="checkbox"]:focus-visible,
.pcard .opt input[type="checkbox"]:focus-visible,
.pcard .opt input[type="radio"]:focus-visible {
  outline: 2px solid var(--earth);
  outline-offset: 2px;
}

.pcard .opt input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.1rem;
  height: 1.1rem;
  border: 1.5px solid var(--muted, #8c8068);
  border-radius: 50%;
  background: var(--card);
  accent-color: var(--earth);
  cursor: pointer;
  vertical-align: -0.18em;
  margin-right: 0.55rem;
  position: relative;
  transition: border-color 0.15s, background 0.15s;
  flex: 0 0 auto;
}
.pcard .opt input[type="radio"]:hover { border-color: var(--earth); }
.pcard .opt input[type="radio"]:checked {
  border-color: var(--earth);
}
.pcard .opt input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--earth);
}

/* Reaccept gate: submit + response-message polish */
.sw-reaccept #sw-reaccept-msg {
  font-family: 'EB Garamond', serif;
  color: var(--muted);
  font-size: 0.95rem;
  margin-top: 1rem;
}
/* ---- end practitioner design pass ---- */


/* S3.9: .fyp-eyebrow SSOT (extracted from inline styles) */
.fyp-form .fyp-eyebrow,
.fyp-result .fyp-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--earth);
    font-size: .7rem;
    text-align: center;
    margin-bottom: .4rem;
}

/* fyp-stab (v1.0.41): wizard stability. Suppress the outline on programmatic
   heading focus used to announce steps to screen readers. Keyboard focus-visible
   rings on chips, inputs, and buttons are unaffected. */
.fyp-form .wiz-h:focus { outline: none; }
.fyp-form legend.wiz-h:focus { outline: none; }
.fyp-form [tabindex="-1"]:focus { outline: none; }

/* fyp-stab (v1.0.41): stable step region so hero stays anchored and the footer
   never rides up during the flow. Tallest step measured at 661px (Q7 consent) in live layout;
   670px covers all seven steps without reflow. Relaxed on mobile so short steps
   do not create dead space. */
@media (min-width: 768px) {
    .fyp-form { min-height: var(--fyp-step-min-height); }
}

/* ==================================================================
   v1.0.47 mobileux-p1-item2: FYP mobile refinement
   ------------------------------------------------------------------
   One-question-per-screen feel via larger chip targets, distinct
   no-constraint choice, sticky bottom nav with iOS safe-area,
   16px inputs (iOS zoom guard), field-level error messaging,
   reduced-motion honored. Desktop rules above are preserved:
   .fyp-form { min-height: var(--fyp-step-min-height) } at 768+ still
   applies; wiz-stability heading focus + single scroll target intact.
   ================================================================== */

/* Chip tap-target: aim ~52px on mobile, floor 44px. Desktop unchanged. */
@media (max-width: 768px) {
    .sw-intake .chip {
        min-height: 52px;
        padding: .85rem 1.15rem;
        font-size: 1rem;
        line-height: 1.25;
    }
    .sw-intake .chips {
        gap: .55rem;
    }
    /* No-constraint choice: distinct full-width row with divider above.
       Chip .chip-sentinel class already flagged by the template's $sw_chip
       helper for Q1 unsure / Q2 open / Q3 no_preference / Q3 delivery either
       / Q5 flexible. */
    .sw-intake .chip.chip-sentinel {
        flex: 1 0 100%;
        width: 100%;
        justify-content: center;
        margin-top: .9rem;
        padding-top: 1rem;
        padding-bottom: 1rem;
        border-color: rgba(173, 113, 82, 0.45);
        color: var(--earth-deep);
        position: relative;
    }
    .sw-intake .chip.chip-sentinel::before {
        content: "";
        position: absolute;
        left: 14%;
        right: 14%;
        top: -.5rem;
        border-top: 1px solid var(--line);
    }
}

/* Sticky bottom nav (mobile only). Desktop keeps inline .wiz-nav.
 * v1.0.51 fyp-mobile-p0: hardened to survive ancestor containing-block
 * traps and z-index footer collisions. When the wizard JS body-portals
 * the nav to <body> (see page-find-your-practice.php), the
 * .fyp-form-nav-portal class becomes the styling hook and matches
 * the same layout. */
@media (max-width: 768px) {
    .fyp-form .wiz-nav,
    body > .wiz-nav.fyp-form-nav-portal {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        margin: 0 !important;
        padding: .7rem 1rem;
        padding-bottom: calc(.7rem + env(safe-area-inset-bottom));
        background: var(--paper);
        border-top: 1px solid var(--line);
        gap: .6rem;
        z-index: 200 !important;
        box-shadow: 0 -6px 14px rgba(42, 38, 32, 0.05);
        display: flex !important;
        align-items: center;
        flex-wrap: nowrap !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
    }
    .fyp-form .wiz-nav .fyp-hint,
    body > .wiz-nav.fyp-form-nav-portal .fyp-hint { display: none; }
    /* Prevent last field being covered by the sticky bar. Overshoot for safety. */
    .fyp-form { padding-bottom: 120px !important; }
    /* Buttons: bigger tap targets on mobile. */
    .fyp-form .wiz-nav .btn,
    body > .wiz-nav.fyp-form-nav-portal .btn {
        min-height: 44px;
        padding: .7rem 1.1rem;
    }
    /* Primary Continue/Submit fills remaining space so it reads as the main action. */
    .fyp-form .wiz-nav [data-fyp-next],
    .fyp-form .wiz-nav [data-fyp-submit],
    body > .wiz-nav.fyp-form-nav-portal [data-fyp-next],
    body > .wiz-nav.fyp-form-nav-portal [data-fyp-submit] {
        flex: 1 1 auto;
    }
    /* Q7 confirmed / calm states must not push behind the sticky bar. */
    .fyp-state { padding-bottom: 2.4rem; }
    .fyp-confirmed { padding-bottom: 2.4rem; }
    .fyp-calm { padding-bottom: 2.4rem; }
}

/* Inputs: 16px min on mobile to block iOS auto-zoom on focus. */
@media (max-width: 768px) {
    .fyp-form input[type=text],
    .fyp-form input[type=email],
    .fyp-form input[type=tel],
    .fyp-form input[type=number],
    .fyp-form input:not([type]) {
        font-size: 16px;
        min-height: 44px;
        padding: .8rem 1rem;
    }
    .fyp-zip { max-width: 260px; }
    #fypZip { text-align: center; }
    /* Larger consent checkboxes + tap-friendly labels */
    .fyp-consent input[type=checkbox] {
        width: 20px;
        height: 20px;
    }
    .fyp-consent label {
        padding: .35rem 0;
        gap: .8rem;
        font-size: 1rem;
        line-height: 1.5;
    }
    /* Progress bar sits at top, breathing room above legend. */
    .fyp-progress { margin-bottom: 1.6rem; }
}

/* Focus-visible earth ring across FYP interactive controls. */
.fyp-form .btn:focus-visible,
.fyp-form input:focus-visible,
.fyp-form select:focus-visible {
    outline: 2px solid var(--earth);
    outline-offset: 2px;
}

/* Field-level error next to the input/label. */
.fyp-field-error {
    display: block;
    margin-top: .35rem;
    font-family: 'EB Garamond', serif;
    font-size: .92rem;
    color: #a34432;
    font-style: italic;
    line-height: 1.4;
}
.sw-field.has-error input {
    border-color: #a34432;
    box-shadow: 0 0 0 1px rgba(163, 68, 50, 0.15);
}
.sw-field.has-error label { color: #a34432; }
.fyp-consent label.has-error { color: #a34432; }
.fyp-consent label.has-error span { color: #a34432; }
.fyp-consent label.has-error input { outline: 2px solid #a34432; outline-offset: 2px; }

/* Reduced-motion honor for step transitions + progress bar + scroll. */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .fyp-form .fyp-bar span { transition: none; }
    .fyp-form .sw-intake .chip,
    .sw-intake .chip { transition: none; }
    .fyp-form .wiz-nav { box-shadow: none; }
}

/* End v1.0.47 mobileux-p1-item2 */

/* =========================================================================
   v1.0.48 mobileux-p1-item1: mobile drawer simplification
   - Prominent FYP CTA at top (earth fill)
   - Tap targets >= 44px on close button, CTA, group heads, sublinks
   - Body scroll lock while drawer open, drawer scrolls independently
   - Reduced-motion honored on chevron rotation
   - Focus-visible ring on all interactive drawer elements
   ========================================================================= */
@media (max-width: 768px) {
  /* Body scroll lock while drawer is open */
  body.sw-drawer-open { overflow: hidden; }

  /* Independent drawer scroll + contain overscroll chaining */
  .sw-mobnav { overscroll-behavior: contain; padding-top: max(4.2rem, calc(1rem + env(safe-area-inset-top))); }

  /* Close button: >=44x44 tap area */
  .sw-mobnav .x {
    top: .6rem; right: .6rem;
    min-width: 44px; min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0; line-height: 1;
    font-size: 1.9rem;
    border-radius: 50%;
  }
  .sw-mobnav .x:focus-visible {
    outline: 2px solid var(--earth);
    outline-offset: 2px;
  }

  /* Prominent FYP CTA at top of drawer: earth-filled primary button */
  .sw-mobnav .mob-cta,
  .sw-mobnav a.mob-top-link.mob-cta {
    display: block;
    width: 100%;
    background: var(--earth);
    color: var(--moon);
    font-family: "Cormorant SC", serif;
    font-size: .84rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    text-align: center;
    padding: 16px 22px;
    min-height: 52px;
    border: 0;
    border-bottom: 0;
    border-radius: 2px;
    margin: 0 0 1rem;
    text-decoration: none;
  }
  .sw-mobnav .mob-cta:hover,
  .sw-mobnav a.mob-top-link.mob-cta:hover {
    background: var(--earth-deep);
    color: var(--moon);
  }
  .sw-mobnav .mob-cta:focus-visible {
    outline: 2px solid var(--moon);
    outline-offset: 2px;
  }

  /* Group heads: >=44px tap area, larger hit target */
  .mob-group > summary {
    min-height: 44px;
    padding: .85rem .2rem;
    align-items: center;
  }
  .mob-group > summary:focus-visible {
    outline: 2px solid var(--earth);
    outline-offset: 2px;
    border-radius: 2px;
  }

  /* Sublinks: >=44px tap area */
  .mob-sub a {
    min-height: 44px;
    padding: .7rem 0;
    display: flex;
    align-items: center;
  }
  .mob-sub a:focus-visible {
    outline: 2px solid var(--earth);
    outline-offset: 2px;
    border-radius: 2px;
  }

  /* About / other single links: >=44px tap area */
  .mob-top-link {
    min-height: 44px;
    padding: .85rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mob-top-link:focus-visible {
    outline: 2px solid var(--earth);
    outline-offset: 2px;
    border-radius: 2px;
  }
}

/* Reduced-motion: no chevron rotation animation */
@media (prefers-reduced-motion: reduce) {
  .mob-group > summary::after { transition: none; }
}
/* End v1.0.48 mobileux-p1-item1 */

/* ============================================================
 * Mobile UX P1 Item 3: Library sticky modes + reduce initial wall.
 * Theme v1.0.49. Scoped to .sw-library-v2 to avoid site-wide leak.
 * ============================================================ */
@media (max-width:720px) {
	/* Sticky mode bar: horizontal scroll instead of wrap on narrow screens. */
	.sw-library-v2 .lib-submenu__wrap {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		justify-content: flex-start;
		padding: .4rem 1rem;
		scrollbar-width: thin;
	}
	.sw-library-v2 .lib-submenu__a {
		flex-shrink: 0;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		padding: .5rem .95rem;
	}

	/* Need chip row: horizontal scroll, no wrap. Bleed to viewport edges so chips
	   feel like a tracked strip. Chips themselves stay tap-friendly. */
	.sw-library-v2 .lib-filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: .6rem;
		margin-bottom: 1.1rem;
		scrollbar-width: thin;
	}
	.sw-library-v2 .lib-filters > * {
		flex-shrink: 0;
		min-height: 44px;
	}

	/* By-practice chip row (Browse tab): keep the label as a heading, scroll the chips. */
	.sw-library-v2 .lib-byp {
		flex-direction: column;
		align-items: stretch;
		flex-wrap: nowrap;
	}
	.sw-library-v2 .lib-byp .lib-lab { width: auto; text-align: center; }
	.sw-library-v2 .lib-byp__chips {
		display: flex;
		gap: .5rem;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: .5rem;
		scrollbar-width: thin;
	}
	.sw-library-v2 .lib-byp__chips > * { flex-shrink: 0; min-height: 44px; }

	/* Progressive disclosure: hide practice cards beyond N until user opts in. */
	.sw-library-v2 .lib-grid[data-lib-progressive]:not(.is-expanded) > article.lib-pcard:nth-child(n+7) {
		display: none;
	}
	.sw-library-v2 .lib-see-all-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		margin: 1rem auto 0;
		width: 100%;
		max-width: 24rem;
		padding: .7rem 1.2rem;
		font-family: "Cormorant SC", serif;
		letter-spacing: .13em;
		text-transform: uppercase;
		font-size: .72rem;
		background: transparent;
		color: var(--lib-earth-deep);
		border: 1px solid var(--lib-earth);
		border-radius: 999px;
		cursor: pointer;
	}
	.sw-library-v2 .lib-see-all-btn:hover,
	.sw-library-v2 .lib-see-all-btn:focus-visible {
		background: var(--lib-earth);
		color: #fff;
		outline: none;
	}
	.sw-library-v2 .lib-see-all-btn:focus-visible {
		box-shadow: 0 0 0 2px rgba(173,113,82,.6);
	}
}

/* Desktop: button is never shown, all cards always visible. */
@media (min-width:721px) {
	.sw-library-v2 .lib-see-all-btn { display: none !important; }
}

/* Reduced-motion honoring: opt out of any sticky/scroll smoothness. */
@media (prefers-reduced-motion: reduce) {
	.sw-library-v2 .lib-submenu__wrap,
	.sw-library-v2 .lib-filters,
	.sw-library-v2 .lib-byp__chips { scroll-behavior: auto; }
}

/* ---- 2026-08-22 mobileux P1 items 4+5 ---- */
/* Item 4 — Stillwater 28 accordions: TODAY badge + desktop stronger current-week + always-open desktop */
.moon-day .md-today-badge{display:inline-block;background:var(--earth);color:var(--moon);font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.6rem;padding:2px 8px;border-radius:3px;margin-right:.45rem;vertical-align:baseline;font-weight:400}
.moon-day.md-today{background:rgba(173,113,82,.045);border-radius:4px;padding-left:.45rem;padding-right:.45rem}
.moon-day.md-today .md-prac{color:var(--earth-deep)}

@media (min-width:769px){
  /* Show all four weeks fully on desktop; keep is-current visually stronger */
  .s28-phase{border-left:3px solid transparent}
  .s28-phase.is-current{border-left-color:var(--earth);background:linear-gradient(to right,rgba(173,113,82,.055),rgba(173,113,82,0) 55%),var(--moon)}
  .s28-phase>summary{cursor:default}
  .s28-phase:not([open])>.s28-body{display:block}
  .s28-phase>summary:hover{background:transparent}
  .s28-phase .s28-current-mark{background:var(--earth);color:var(--moon);font-family:'Cormorant SC',serif;letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;padding:3px 10px;border-radius:3px;margin-left:auto}
  /* TODAY row on desktop: prepend the day label with a bolder stroke */
  .moon-day.md-today .md-day{color:var(--earth-deep);font-weight:600}
}

@media (prefers-reduced-motion:reduce){
  .s28-phase>summary,.s28-phase{transition:none}
  .s28-phase>summary:hover{background:transparent}
}

/* Item 5 — mobile compress: elements 2x2 (Paths handled by Pattern A responsive rules above) */
@media (max-width:768px){
  .elements{grid-template-columns:repeat(2,1fr) !important;gap:.75rem}
  .element{min-height:0;padding:1.8rem 1rem 1.35rem}
  .element .aura{width:78px;height:78px;margin-bottom:1rem}
  .element-roman{font-size:.85rem;margin-bottom:.2rem}
  .element-name{font-size:1.25rem;margin-bottom:.25rem}
  .element-label{margin-bottom:.7rem}
  .element-body{font-size:.9rem;line-height:1.55}
}

/* Sitewide tap-target + focus ring on Items 4+5 controls */
.s28-phase>summary:focus-visible,
.sw-path-row a:focus-visible,
.elements a:focus-visible{outline:2px solid var(--earth);outline-offset:3px;border-radius:6px}
/* ---- end mobileux P1 items 4+5 ---- */

/* =========================================================================
   v1.0.53 fyp-cta-fit: shrink Q7 primary CTA so "Find my practitioner"
   fits on one line inside the sticky mobile wiz-nav next to "Back".
   Scoped to [data-fyp-submit] so the shorter Q1-Q6 Continue button
   keeps its default sizing.
   ========================================================================= */
@media (max-width: 768px) {
    .fyp-form .wiz-nav [data-fyp-submit],
    body > .wiz-nav.fyp-form-nav-portal [data-fyp-submit] {
        font-size: 11px;
        letter-spacing: .06em;
        padding: 13px 16px;
        white-space: nowrap;
    }
}
@media (max-width: 380px) {
    .fyp-form .wiz-nav [data-fyp-submit],
    body > .wiz-nav.fyp-form-nav-portal [data-fyp-submit] {
        letter-spacing: .04em;
        padding: 13px 12px;
    }
}

/* v1.0.55 fyp-confirm-nav: on the FYP confirmation state, hide the sticky
 * wizard nav in BOTH places it can live — inside the form (desktop) and
 * body-portaled to <body> (mobile per 1.0.51 fyp-mobile-p0). The <body>
 * gets .fyp-confirmed on server-render (body_class filter) and on JS
 * render (renderConfirmed adds/removes the class), so both submit paths
 * are covered without disturbing the wizard's normal .wiz-nav rules. */
body.fyp-confirmed .fyp-form .wiz-nav,
body.fyp-confirmed > .wiz-nav.fyp-form-nav-portal {
    display: none !important;
}

/* v1.0.55 fyp-confirm-nav: "Check your email" next-step callout inside the
 * Request Received card. Branded, EB Garamond body over a paper panel,
 * Cormorant SC eyebrow — matches the fyp-confirmed-card typography. */
.fyp-check-email {
    margin: 1.6rem auto 0;
    max-width: 44ch;
    padding: 1rem 1.2rem;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    text-align: center;
}
.fyp-check-email-eyebrow {
    font-family: 'Cormorant SC', serif;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--earth);
    font-size: .7rem;
    margin-bottom: .45rem;
}
.fyp-check-email-body {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--ink);
    margin: 0;
}


/* ============================================================================
 * v1.0.57 FYP focus-mode + polish (P0.1 AT, P0.2 copy, P1.1 chrome, P1.3
 * selection feedback, P1.4 Q7 hierarchy, P1.5 column width, P1.7 density).
 * Canonical tokens only. No new palette, no new fonts.
 * ============================================================================ */

/* P1.1 focus-mode: recede site chrome once questionnaire begins.
 * Body class .fyp-focus-mode is added by the wizard's JS when step 1 becomes
 * active, and removed on the confirmed state (which then restores full chrome).
 * Nothing about header.php / footer.php structure is touched — hides are
 * scoped to body.fyp-focus-mode. */
body.fyp-focus-mode .ritual-bar,
body.fyp-focus-mode nav.masthead .nav-l,
body.fyp-focus-mode nav.masthead .nav-r,
body.fyp-focus-mode .sw-mobnav,
body.fyp-focus-mode .colophon,
body.fyp-focus-mode .sw-begin-pill {
    display: none !important;
}
/* Keep wordmark visible + centered when nav sides are gone. */
body.fyp-focus-mode nav.masthead {
    justify-content: center;
}
body.fyp-focus-mode nav.masthead .brand {
    margin: 0 auto;
}
/* Once confirmed, restore full site chrome (fyp-confirmed wins over focus-mode
 * for hidden chrome). fyp-confirmed also has an explicit body-class add path
 * in the JS which removes fyp-focus-mode, but this belt-and-suspenders rule
 * covers the server-rendered ?fyp=confirmed path too. */
/* v1.0.58 focus-mode-fix Bug B: restore rules for desktop nav pieces must be
 * scoped to desktop, otherwise `display: revert !important` beats the mobile
 * @media hide (`.masthead .nav-l{display:none!important}`) and stacked desktop
 * links reappear on mobile when focus-mode is removed on confirmation. Ritual
 * bar and colophon + begin pill can restore at all widths. */
body.fyp-confirmed .ritual-bar,
body.fyp-confirmed .colophon,
body.fyp-confirmed .sw-begin-pill {
    display: revert !important;
}
@media (min-width: 769px) {
    body.fyp-confirmed nav.masthead .nav-l,
    body.fyp-confirmed nav.masthead .nav-r {
        display: revert !important;
    }
}
body.fyp-confirmed .fyp-exit {
    display: none !important;
}

/* Exit control — inline, top-right of the focus canvas. Rendered server-side
 * inside <main> so it's part of the DOM regardless of JS state, but hidden
 * unless focus-mode is on. */
.fyp-exit {
    display: none;
    position: absolute;
    top: 14px;
    right: 16px;
    z-index: 10;
    font-family: 'Cormorant SC', serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .68rem;
    color: var(--muted);
    text-decoration: none;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: var(--paper);
    transition: color .18s ease, border-color .18s ease;
}
.fyp-exit:hover,
.fyp-exit:focus-visible {
    color: var(--earth);
    border-color: var(--earth);
    outline: none;
}
body.fyp-focus-mode .fyp-exit {
    display: inline-block;
    position: fixed; /* keeps it reachable while scrolling the wizard */
}
.sw-main { position: relative; }

/* P1.3 selection feedback — border-weight bump + checkmark glyph on chip
 * selected state, in addition to the existing color shift. Not color-only. */
.sw-intake .chip {
    position: relative;
    border-width: 1px;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.sw-intake .chip:has(input:checked) {
    border-width: 2px;
    /* Nudge padding to compensate for the +1px border so layout does not shift. */
    padding-top: calc(var(--chip-pad-y, .55rem) - 1px);
    padding-bottom: calc(var(--chip-pad-y, .55rem) - 1px);
}
.sw-intake .chip:has(input:checked)::after {
    /* v1.0.58 focus-mode-fix Bug A: CSS-drawn check (border tick), font-agnostic.
     * Replaces the previous glyph-based check whose \2713 escape was mangled to
     * a literal "13" on Android Chrome. Rotated bottom+right border draws a
     * check shape with no font or glyph dependency. */
    content: "";
    position: absolute;
    top: 7px;
    right: 11px;
    width: 5px;
    height: 10px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(45deg);
    opacity: .95;
    pointer-events: none;
}
/* Sentinel chip (catchall / "no preference") also gets checkmark treatment. */
.sw-intake .chip.chip-sentinel:has(input:checked)::after {
    color: #fff;
}

/* P1.4 Q7 three-zone hierarchy. Preserve max-width column, but visually
 * separate zones with hairline rule + section heading. */
.fyp-form .fyp-step-contact .fyp-zone {
    max-width: 56ch;
    margin: 1.4rem auto 0;
    padding-top: 1.4rem;
    border-top: 1px solid var(--line);
}
.fyp-form .fyp-step-contact .fyp-zone:first-of-type {
    border-top: 0;
    padding-top: .4rem;
    margin-top: .8rem;
}
.fyp-form .fyp-zone-h {
    font-family: 'Cormorant SC', serif;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-size: .7rem;
    color: var(--earth-deep);
    margin: 0 0 .8rem;
    text-align: left;
}
.fyp-form .fyp-zone-sub {
    font-family: 'EB Garamond', serif;
    font-style: italic;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.55;
    margin: -.3rem 0 .9rem;
}
/* Newsletter zone: quiet, plainly optional. */
.fyp-form .fyp-zone-newsletter {
    background: var(--paper);
    border: 1px dashed var(--line);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    max-width: 56ch;
    margin: 1.4rem auto 0;
}
.fyp-form .fyp-zone-newsletter .fyp-zone-h { margin-bottom: .35rem; }
.fyp-form .fyp-zone-newsletter .fyp-consent { margin-top: .3rem; }
.fyp-form .fyp-zone-newsletter .fyp-consent label {
    margin-bottom: 0;
    font-style: normal;
    color: var(--ink);
}

/* P1.5 chip 2-column grid on desktop for short choice sets (Q1 needs, Q2
 * practices). Longer / nuanced questions stay single-column. */
@media (min-width: 900px) {
    .fyp-form .fyp-step[data-step="1"] .chips,
    .fyp-form .fyp-step[data-step="2"] .chips {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .55rem;
    }
    .fyp-form .fyp-step[data-step="1"] .chips .chip,
    .fyp-form .fyp-step[data-step="2"] .chips .chip {
        margin: 0;
        width: auto;
    }
}

/* P1.7 density: marginally tighter vertical rhythm inside FYP steps. Same
 * tokens, same fonts, controls slightly closer to task. */
.fyp-form .wiz-sub { margin-bottom: 1.1rem; }
.fyp-form fieldset.fyp-step { margin: 0 0 1.4rem; }
.fyp-form .fyp-step-contact .wiz-sub { margin-bottom: .8rem; }

/* Progress bar: pair with P0.1 — aria-hidden on the container is set in PHP.
 * Reduced-motion honored (transition set to none). */
@media (prefers-reduced-motion: reduce) {
    .fyp-bar span { transition: none; }
}

/* Practice-page hero band (v1.0.63). Full-width image with radial center
   scrim + linear veil to keep the centered title legible over any composition.
   Structural rules only; per-slug background-image URLs are inlined by the
   practice-hero partial. */
.practice-hero{
	position:relative; width:100%; height:460px;
	background-size: auto, auto, cover;
	background-position: center top, center top, center 45%;
	background-repeat: no-repeat, no-repeat, no-repeat;
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	text-align:center; padding:0 1.5rem;
}
.practice-hero .eyebrow{
	font-family:'Cormorant SC',serif; letter-spacing:.32em; text-transform:uppercase;
	font-size:.72rem; color:var(--moon); opacity:.9; margin:0 0 .8rem;
	text-shadow:0 1px 12px rgba(28,35,48,.6);
}
.practice-hero h1{
	font-family:'Spectral',serif; font-weight:500; font-size:3.4rem; line-height:1.05;
	color:var(--moon); margin:0; text-shadow:0 2px 20px rgba(28,35,48,.65);
}
.practice-hero .sub{
	font-style:italic; color:var(--moon); opacity:.92; font-size:1.05rem;
	margin:1rem auto 0; max-width:40ch; text-shadow:0 1px 14px rgba(28,35,48,.6);
}
@media (max-width:560px){
	.practice-hero{ height:340px; }
	.practice-hero h1{ font-size:2.4rem; }
}

/* =========================================================================
   Newsletter signup form: [stillwater_newsletter] shortcode
   -------------------------------------------------------------------------
   Shared styling for the .stillwater-newsletter form so it looks right
   everywhere the shortcode renders (the New Moon letter page today, the
   footer later, wherever it lands next). Aligned with the site's other
   forms (fyp-form, founding profile, sw-signin__*) via design tokens.
   The shortcode markup is untouched; the label stays screen-reader-only
   and is programmatically associated via for/id.
   ========================================================================= */
.stillwater-newsletter{
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    justify-content:center;
    align-items:center;   /* v1.0.91 vertically center label against input */
    margin:0 auto;
    max-width:520px;
    padding:0;
}
.stillwater-newsletter input[type="email"]{
    flex:1 1 260px;
    min-width:0;
    background:#fffdf8;
    color:var(--ink,#2a2620);
    font-family:'EB Garamond',Georgia,serif;
    font-size:1rem;
    line-height:1.5;
    padding:.72rem 1rem;
    border:1px solid var(--line,#e0d7c2);
    border-radius:6px;   /* v1.0.91 rectangle input per newsletter-signup polish */
    box-shadow:inset 0 1px 2px rgba(40,30,20,.04);
    transition:border-color .15s ease, box-shadow .15s ease;
    -webkit-appearance:none;
    appearance:none;
}
.stillwater-newsletter input[type="email"]::placeholder{
    color:#a89a7e;
    font-style:italic;
}
.stillwater-newsletter input[type="email"]:hover{
    border-color:#c9bea3;
}
.stillwater-newsletter input[type="email"]:focus,
.stillwater-newsletter input[type="email"]:focus-visible{
    outline:none;
    border-color:var(--earth,#ad7152);
    box-shadow:0 0 0 3px rgba(173,113,82,.18);
}
.stillwater-newsletter button[type="submit"]{
    flex:0 0 auto;
    background:var(--earth,#ad7152);
    color:var(--moon,#f3e9d2);
    font-family:'Cormorant SC','Spectral',serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-size:.82rem;
    padding:.72rem 1.6rem;
    border:1px solid var(--earth,#ad7152);
    border-radius:999px;
    cursor:pointer;
    transition:background-color .15s ease, border-color .15s ease, transform .05s ease;
    -webkit-appearance:none;
    appearance:none;
    line-height:1.5;
}
.stillwater-newsletter button[type="submit"]:hover{
    background:var(--earth-deep,#8a5135);
    border-color:var(--earth-deep,#8a5135);
}
.stillwater-newsletter button[type="submit"]:active{
    transform:translateY(1px);
}
.stillwater-newsletter button[type="submit"]:focus-visible{
    outline:2px solid var(--earth-deep,#8a5135);
    outline-offset:2px;
}

/* Flash notices sit below the form on their own line, full width. */
.stillwater-newsletter .nl-notice{
    flex:1 0 100%;
    text-align:center;
    margin:.4rem 0 0;
    font-family:'EB Garamond',Georgia,serif;
    font-size:.95rem;
    line-height:1.5;
    color:var(--muted,#8c8068);
}
.stillwater-newsletter .nl-notice-ok{
    color:#4a6440;
}
.stillwater-newsletter .nl-notice-err{
    color:#a34432;
}

/* Mobile: stack input above button with a full-width button for tap comfort. */
@media (max-width: 640px){
    .stillwater-newsletter{
        flex-direction:column;
        gap:.55rem;
        max-width:420px;
    }
    .stillwater-newsletter input[type="email"],
    .stillwater-newsletter button[type="submit"]{
        flex:1 1 auto;
        width:100%;
    }
}

/* v86: "In the sky" astronomical aside on /stillwater-28/ + stage pages.
   A deliberate, quiet card set apart from the program-week cards above.
   Earth-accent left rule + generous padding + proper hierarchy. */
.s28-tonight{
    margin:2.4rem auto 0;
    max-width:36rem;
    padding:1.2rem 1.4rem;
    background:var(--paper,#f5eedd);
    border:1px solid var(--line,#e0d7c2);
    border-left:3px solid var(--earth,#ad7152);
    border-radius:6px;
}
.s28-tonight-label{
    font-family:'Cormorant SC','Spectral',Georgia,serif;
    letter-spacing:.2em;
    text-transform:uppercase;
    font-size:.72rem;
    color:var(--earth-deep,#8a5135);
    margin:0 0 .35rem;
}
.s28-tonight-val{
    font-family:'Spectral',Georgia,serif;
    font-weight:400;
    font-size:1.1rem;
    line-height:1.35;
    color:var(--ink,#2a2620);
    margin:0 0 .5rem;
}
.s28-tonight-note{
    font-family:'EB Garamond',Georgia,serif;
    font-style:italic;
    font-size:.9rem;
    color:var(--muted,#8c8068);
    margin:0;
    line-height:1.5;
}
@media (max-width:640px){
    .s28-tonight{padding:1rem 1.15rem;margin-top:2rem}
    .s28-tonight-val{font-size:1.02rem}
}


/* v1.0.89 Journal index hero band.
   Full-bleed photographic band between the paper .sw-phero title block and
   the cream lead paragraph. Native source is ~12:5; softened at tablet and
   phone so the open-journal + cup subject stays in the center-crop safe
   zone. No text overlay -- title stays as elegant type on paper above. */
.sw-hero-band {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--paper, #f5eedd);
  aspect-ratio: 12 / 5;
  max-height: 520px;
}
.sw-hero-band img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}
@media (max-width: 900px) {
  .sw-hero-band { aspect-ratio: 16 / 9; max-height: 420px; }
}
@media (max-width: 560px) {
  .sw-hero-band { aspect-ratio: 3 / 2; max-height: 340px; }
  .sw-hero-band img { object-position: center 60%; }
}


/* v1.0.90 Stillwater 28 hero background.
   Uses the homepage's .hero-photo image pattern; adds a dedicated dark
   gradient scrim scoped to the phero, plus object-position tuning so the
   golden moon (upper-left in source) and its reflection (bottom-center)
   frame around the centered title without competing with it. */
.sw-phero-photo { min-height: 320px; }
.sw-phero-photo .hero-photo { position: absolute; inset: 0; z-index: 0; }
.sw-phero-photo .hero-photo img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 30% 45%;
}
/* Dual gradient scrim - matches .hero-photo::after in shape, tuned darker
   at the bottom so the sub copy stays legible over the water reflection. */
.sw-phero-photo::after {
  content: '';
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(28,35,48,.55) 0%, rgba(28,35,48,.40) 40%, rgba(28,35,48,.80) 100%),
    linear-gradient(to right,  rgba(28,35,48,.35) 0%, transparent 28%, transparent 72%, rgba(28,35,48,.35) 100%);
}
.sw-phero-photo .container-narrow { position: relative; z-index: 2; }
@media (max-width: 900px) {
  .sw-phero-photo { min-height: 260px; }
  /* On narrower viewports the moon migrates more toward center; pull the
     framing slightly right and down so the reflection stays anchored. */
  .sw-phero-photo .hero-photo img { object-position: 38% 50%; }
}
@media (max-width: 560px) {
  .sw-phero-photo { min-height: 220px; }
  .sw-phero-photo .hero-photo img { object-position: 42% 55%; }
  .sw-phero-photo::after {
    background:
      linear-gradient(to bottom, rgba(28,35,48,.60) 0%, rgba(28,35,48,.50) 40%, rgba(28,35,48,.85) 100%);
  }
}


/* v1.0.94 Today-at-Stillwater meta alignment.
   Collapse the four meta lines under the "Stillwater 28 - ..." headline
   into a single centered stack. .today-stamp + .chapter-deck were already
   centered in CSS; .today-dayof and .today-sky inherited the container's
   default (start/left), producing the staggered "left rail vs center"
   illusion. Scoped to #today so no other page's day-of / sky line moves. */
#today .today-dayof,
#today .today-sky { text-align: center; }

/* ==== v1.0.97 homepage opening refinement ==== */
/* Hero: small Atlanta locator line under CTAs. Understated, easy to update. */
.hero-locator {
  margin-top: 1.1rem;
  font-family: 'Spectral', Georgia, serif;
  font-style: italic;
  font-size: .95rem;
  letter-spacing: .06em;
  color: rgba(255,255,255,.82);
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}

/* How Stillwater works: three quiet editorial beats. No cards, icons, or columns.
   Vertical rhythm, hairline rules, generous whitespace, house typography. */
.howworks .howworks-beats {
  max-width: 44rem;
  margin: 2.2rem auto 0;
  padding: 0;
  display: block;
}
.howworks-beat {
  padding: 1.6rem 0;
  text-align: center;
}
.howworks-title {
  font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif;
  font-weight: 500;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  letter-spacing: .005em;
  margin: 0 0 .5rem 0;
  color: inherit;
}
.howworks-line {
  font-family: 'Spectral','EB Garamond',Georgia,serif;
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.55;
  opacity: .82;
  margin: 0 auto;
  max-width: 34rem;
}
.howworks-rule {
  height: 1px;
  width: 3.2rem;
  margin: 0 auto;
  background: currentColor;
  opacity: .18;
}

/* Today signal inside #lunar. Small, dynamic, non-inflating. */
.today-signal {
  margin: 1.8rem auto 2.2rem;
  max-width: 34rem;
  padding: 1.1rem 1.2rem;
  text-align: center;
  border-top: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.today-signal-eyebrow {
  font-family: 'Spectral',Georgia,serif;
  font-style: italic;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .72;
  margin-bottom: .5rem;
}
.today-signal-line {
  font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif;
  font-size: 1.25rem;
  letter-spacing: .01em;
  margin-bottom: .35rem;
}
.today-signal-dot { opacity: .5; margin: 0 .35rem; }
.today-signal-invite {
  font-family: 'Spectral',Georgia,serif;
  font-style: italic;
  font-size: .98rem;
  line-height: 1.55;
  opacity: .82;
  margin: 0 auto .6rem;
  max-width: 30rem;
}
.today-signal-link {
  display: inline-block;
  font-family: 'Spectral',Georgia,serif;
  font-size: .92rem;
  letter-spacing: .04em;
  opacity: .9;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.28);
  padding-bottom: 2px;
}
.today-signal-link:hover { opacity: 1; border-bottom-color: rgba(255,255,255,.55); }
.today-signal-link .arrow { margin-left: .2rem; }


/* ==== Slice 2 — Practices presentation (v1.0.99) ==== */

/* Explore Practices overview */
.sw-explore-hero { background: var(--paper); padding: 4rem 1.5rem 2rem; text-align: center; }
.sw-explore-title { font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif; font-weight: 400; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.2; margin: 1rem auto 1.2rem; max-width: 32rem; color: inherit; }
.sw-explore-deck { font-family: 'Spectral',serif; font-style: italic; font-size: 1.05rem; line-height: 1.55; opacity: .82; max-width: 34rem; margin: 0 auto 1.6rem; }
.sw-explore-hero-ctas { margin-top: 1.2rem; }

.sw-explore-body { padding: 1.5rem 1.5rem 4rem; }
.container-narrow { max-width: 44rem; margin: 0 auto; }

.sw-explore-group { padding: 2.4rem 0 1.2rem; border-top: 1px solid rgba(0,0,0,.08); }
.sw-explore-group:first-child { border-top: 0; }
.sw-explore-group-title { font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif; font-weight: 400; font-size: clamp(1.5rem, 2.6vw, 2rem); letter-spacing: .005em; margin: 0 0 1.2rem; color: inherit; }
.sw-explore-group-title em { font-style: italic; }

.sw-explore-list { list-style: none; margin: 0; padding: 0; }
.sw-explore-item { padding: 1.1rem 0; border-bottom: 1px dashed rgba(0,0,0,.10); }
.sw-explore-item:last-child { border-bottom: 0; }
.sw-explore-item-head { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; margin-bottom: .3rem; }
.sw-explore-item-name { font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif; font-weight: 500; font-size: 1.25rem; color: inherit; }
.sw-explore-item-tag { font-family: 'Spectral',serif; font-style: italic; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; opacity: .55; padding: 0 .35rem; border: 1px solid rgba(0,0,0,.18); border-radius: 2px; }
.sw-explore-item-line { font-family: 'Spectral',serif; font-style: italic; font-size: 1rem; line-height: 1.55; opacity: .82; margin: 0 0 .35rem; max-width: 36rem; }
.sw-explore-item-more { display: inline-block; font-family: 'Spectral',serif; font-size: .92rem; letter-spacing: .04em; text-decoration: none; opacity: .8; border-bottom: 1px solid rgba(0,0,0,.28); padding-bottom: 1px; }
.sw-explore-item-more:hover { opacity: 1; border-bottom-color: rgba(0,0,0,.55); }

.sw-explore-outro { margin-top: 2.4rem; padding: 2rem 0; text-align: center; border-top: 1px solid rgba(0,0,0,.08); }
.sw-explore-outro p { font-family: 'Spectral',serif; font-style: italic; font-size: 1.05rem; opacity: .82; margin: 0 auto 1.1rem; max-width: 32rem; }

/* Single practice page — bespoke SEO detail (Pilates / Yoga / Massage & Bodywork). */
.sw-practice-hero { position: relative; background: var(--night); color: var(--moon); overflow: hidden; padding: 5rem 1.5rem 3rem; text-align: center; }
.sw-practice-hero-photo { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center 30%; opacity: .55; }
.sw-practice-hero-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(28,35,48,.35) 0%, rgba(28,35,48,.65) 100%); }
.sw-practice-hero-inner { position: relative; z-index: 2; max-width: 44rem; margin: 0 auto; }
.sw-practice-hero-inner .chapter-mark { color: var(--gold-soft); }
.sw-practice-title { font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif; font-weight: 400; font-size: clamp(2.5rem, 5vw, 3.75rem); line-height: 1.15; margin: 1rem 0 1.1rem; color: var(--moon); }
.sw-practice-oneline { font-family: 'Spectral',serif; font-style: italic; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.5; opacity: .9; margin: 0 auto 1.6rem; max-width: 34rem; }
.sw-practice-hero-ctas { display: inline-flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
.sw-practice-note { margin-top: 1.2rem; font-family: 'Spectral',serif; font-style: italic; font-size: .95rem; opacity: .75; }

.sw-practice-body { padding: 3rem 1.5rem 4rem; }
.sw-practice-description { font-family: 'Spectral','EB Garamond',Georgia,serif; font-size: 1.05rem; line-height: 1.65; }
.sw-practice-description p { margin: 0 0 1.1rem; }

.sw-practice-needs { margin: 2.5rem 0 1.5rem; padding: 1.4rem 0; border-top: 1px solid rgba(0,0,0,.08); border-bottom: 1px solid rgba(0,0,0,.08); text-align: center; }
.sw-practice-needs-title { font-family: 'Cormorant Garamond','EB Garamond',Georgia,serif; font-weight: 400; font-size: 1.25rem; margin: 0 0 .8rem; color: inherit; }
.sw-practice-needs-list { list-style: none; margin: 0; padding: 0; display: inline-flex; gap: 1.2rem; flex-wrap: wrap; justify-content: center; }
.sw-practice-needs-list li { font-family: 'Spectral',serif; font-style: italic; font-size: 1rem; opacity: .8; }

.sw-practice-cta-rail { margin: 2rem 0 0; text-align: center; display: inline-flex; gap: .8rem; flex-wrap: wrap; justify-content: center; width: 100%; }


/* ==== v1.0.102 — Explore Practices (mockup-elevated) ==== */

/* Hero — dark night band */
.sw-pex-hero { position: relative; overflow: hidden; text-align: center; padding: 4.5rem 1.5rem 4.75rem; color: var(--moon); background-color: #1c2330; background-image: url(images/practices-index-hero.jpg); background-image: image-set(url(images/practices-index-hero.webp) type("image/webp"), url(images/practices-index-hero.jpg) type("image/jpeg")); background-size: cover; background-position: center; background-repeat: no-repeat; }
.sw-pex-hero::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(28,35,48,.15), rgba(28,35,48,.62)); pointer-events: none; }
.sw-pex-hero-inner { max-width: 720px; margin: 0 auto; position: relative; z-index: 1; }
.sw-pex-mark { font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .32em; font-size: 11px; color: #b79a74; margin-bottom: 1.25rem; }
.sw-pex-hero-title { font-family: 'Spectral',Georgia,serif; font-weight: 300; font-size: clamp(2rem, 3.4vw, 2.4rem); line-height: 1.18; margin: 0 auto 1.1rem; color: #f3ead4; }
.sw-pex-hero-title em { font-style: italic; color: #e7d3b9; }
.sw-pex-hero-lede { font-family: 'Spectral',serif; font-style: italic; font-weight: 300; font-size: 1.15rem; color: #b9becb; max-width: 600px; margin: 0 auto; line-height: 1.6; }

/* Sticky feeling selector */
.sw-pex-selector { position: sticky; top: 0; z-index: 10; background: var(--paper, #efe6d0); border-bottom: 1px solid var(--line, #e0d7c2); box-shadow: 0 6px 20px rgba(40,30,20,.04); }
.sw-pex-selector-inner { max-width: 900px; margin: 0 auto; padding: 1rem 1.25rem; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 4px; }
.sw-pex-selector-lead { font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .14em; font-size: 10.5px; color: var(--muted, #8c8068); margin-right: .6rem; white-space: nowrap; }
.sw-pex-btn { font-family: 'Spectral',serif; font-style: italic; font-size: 1rem; color: var(--muted, #8c8068); background: none; border: 0; padding: 7px 14px; border-radius: 22px; cursor: pointer; transition: all .15s; line-height: 1; }
.sw-pex-btn:hover { color: var(--earth-deep, #8a5135); }
.sw-pex-btn.is-active { color: #fff; background: var(--earth, #ad7152); font-style: normal; font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .1em; font-size: 12px; padding: 8px 18px; }

/* Chapter wrap */
.sw-pex-wrap { max-width: 900px; margin: 0 auto; padding: 0 1.5rem 5.5rem; }

/* Chapter — one shown at a time */
.sw-pex-chapter { padding: 3.25rem 0 .5rem; display: none; }
.sw-pex-chapter.is-show { display: block; }
.sw-pex-glyph { font-family: 'Cormorant SC','Spectral',serif; color: var(--earth, #ad7152); font-size: 15px; letter-spacing: .1em; margin-bottom: .9rem; text-align: center; }
.sw-pex-eyebrow { font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .28em; font-size: 11px; color: var(--earth-deep, #8a5135); text-align: center; margin-bottom: .5rem; }
.sw-pex-h2 { font-family: 'Spectral',serif; font-weight: 300; font-size: clamp(1.6rem, 3vw, 1.95rem); margin: 0 0 .6rem; text-align: center; color: var(--ink, #2a2620); }
.sw-pex-h2 em { font-style: italic; }
.sw-pex-lede { font-family: 'Spectral',serif; font-style: italic; font-weight: 300; font-size: 1.05rem; color: var(--muted, #8c8068); text-align: center; max-width: 560px; margin: 0 auto 1.9rem; line-height: 1.55; }

/* Rows — every practice links to its own page */
.sw-pex-rows { max-width: 720px; margin: 0 auto; }
.sw-pex-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; padding: 1.25rem .4rem; border-top: 1px solid var(--line, #e0d7c2); text-decoration: none; color: inherit; transition: background .15s; }
.sw-pex-row:first-child { border-top: 0; }
.sw-pex-row:hover { background: rgba(173,113,82,.055); }
.sw-pex-row-body { flex: 1 1 auto; }
.sw-pex-row-name { font-family: 'Spectral',serif; font-weight: 400; font-size: 1.25rem; color: var(--ink, #2a2620); margin: 0 0 .25rem; display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; }
.sw-pex-row:hover .sw-pex-row-name { color: var(--earth-deep, #8a5135); }
.sw-pex-row-tag { font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .14em; font-size: 9.5px; color: var(--earth-deep, #8a5135); border: 1px solid var(--line, #e0d7c2); border-radius: 20px; padding: 2px 9px; white-space: nowrap; position: relative; top: -2px; }
.sw-pex-row-desc { font-family: 'EB Garamond',Georgia,serif; font-size: 1rem; color: var(--muted, #8c8068); margin: 0; line-height: 1.5; }
.sw-pex-row-go { flex: 0 0 auto; font-family: 'Spectral',serif; font-size: 1.1rem; color: var(--earth, #ad7152); align-self: center; opacity: .55; transition: opacity .15s, transform .15s; }
.sw-pex-row:hover .sw-pex-row-go { opacity: 1; transform: translateX(3px); }

/* Closing */
.sw-pex-close { text-align: center; margin-top: 4rem; padding-top: 2.75rem; border-top: 1px solid var(--line, #e0d7c2); }
.sw-pex-close-eyebrow { font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .24em; font-size: 11px; color: var(--muted, #8c8068); margin-bottom: .65rem; }
.sw-pex-close-line { font-family: 'Spectral',serif; font-style: italic; font-weight: 300; font-size: 1.25rem; color: var(--ink, #2a2620); margin: 0 0 1.1rem; }
.sw-pex-close-cta { display: inline-block; text-decoration: none; font-family: 'Cormorant SC','Spectral',serif; letter-spacing: .12em; font-size: 12.5px; color: #fff; background: var(--earth, #ad7152); padding: 12px 30px; border-radius: 26px; }
.sw-pex-close-cta:hover { background: var(--earth-deep, #8a5135); }

@media (max-width: 560px) {
	.sw-pex-hero-title { font-size: 1.9rem; }
	.sw-pex-h2 { font-size: 1.6rem; }
	.sw-pex-selector-lead { display: none; }
	.sw-pex-row { gap: .9rem; }
	.sw-pex-row-go { align-self: flex-start; padding-top: .25rem; }
}


/* ==== v1.0.111 In Season Now companion ==== */
/* Paired "now" signals under the four-phase strip: the month's rhythm
   (Today in Stillwater 28) and the year's rhythm (In season now). */
.lunar .rhythms {
  max-width: 46rem;
  margin: 2.4rem auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(255,255,255,.14);
  padding-top: 0;
}
.lunar .rhythms .today-signal {
  margin: 0;
  max-width: none;
  border-top: 0;
  border-bottom: 0;
  padding: 1.5rem 1.6rem;
  text-align: left;
}
.lunar .rhythms .today-signal + .today-signal {
  border-left: 1px solid rgba(255,255,255,.14);
}
.lunar .rhythms .today-signal-invite { margin-left: 0; margin-right: 0; max-width: none; }
@media (max-width: 640px) {
  .lunar .rhythms {
    grid-template-columns: 1fr;
  }
  .lunar .rhythms .today-signal { text-align: center; padding: 1.4rem 1rem; }
  .lunar .rhythms .today-signal-invite { margin-left: auto; margin-right: auto; max-width: 24rem; }
  .lunar .rhythms .today-signal + .today-signal {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.14);
  }
}


/* v1.0.112 practice-hero fallback polish */
.sw-practice-hero.no-photo { padding-top: 3.5rem; padding-bottom: 2.5rem; }
.sw-practice-hero.no-photo .chapter-mark { color: var(--gold-soft, #b79a74); }
@media (max-width: 640px) {
  .sw-practice-hero { padding: 3.5rem 1rem 2rem; }
  .sw-practice-hero-photo { background-position: center 40%; }
}


/* v1.0.113 practice-hero ghost CTA glass treatment over photo */
/* Base .btn-ghost has low-contrast dark border+text on dark backgrounds,
   which disappears against a hero photo. In the .has-photo state give the
   ghost button a translucent dark backing, a brighter border, and moon-cream
   text at full strength so it reads over any image without competing with
   the primary earth pill. */
.sw-practice-hero.has-photo .sw-practice-hero-ctas .btn-ghost {
  background: rgba(22, 28, 39, 0.55);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: var(--moon, #f3ead4);
  border: 1px solid rgba(243, 233, 210, 0.55);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.sw-practice-hero.has-photo .sw-practice-hero-ctas .btn-ghost:hover,
.sw-practice-hero.has-photo .sw-practice-hero-ctas .btn-ghost:focus-visible {
  background: rgba(22, 28, 39, 0.78);
  border-color: rgba(243, 233, 210, 0.9);
  color: var(--moon, #f3ead4);
}

/* .no-photo fallback: same glass treatment for a consistent secondary
   read on the dark band, so both states stay visually paired. */
.sw-practice-hero.no-photo .sw-practice-hero-ctas .btn-ghost {
  background: rgba(22, 28, 39, 0.35);
  color: var(--moon, #f3ead4);
  border: 1px solid rgba(243, 233, 210, 0.5);
}
.sw-practice-hero.no-photo .sw-practice-hero-ctas .btn-ghost:hover,
.sw-practice-hero.no-photo .sw-practice-hero-ctas .btn-ghost:focus-visible {
  background: rgba(22, 28, 39, 0.6);
  border-color: rgba(243, 233, 210, 0.85);
  color: var(--moon, #f3ead4);
}

/* v1.0.134: site-wide text-shadow on practice-rich hero for photo legibility */
.sw-practice-rich .hero .eyebrow { text-shadow: 0 1px 12px rgba(28,35,48,.6); }
.sw-practice-rich .hero h1       { text-shadow: 0 2px 20px rgba(28,35,48,.65); }
.sw-practice-rich .hero p        { text-shadow: 0 1px 14px rgba(28,35,48,.6); }

/* v1.0.137: bump hero overlay bottom stop on two palest photos (movement-dance + sound)
   so the subhead stays legible over bright regions. Global overlay stays at .62. */
body.postid-242 .sw-practice-rich .hero::after,
body.postid-241 .sw-practice-rich .hero::after {
  background: linear-gradient(rgba(28,35,48,.15), rgba(28,35,48,.75));
}

/* v1.0.147: practices-index hero legibility - same shadow scale as practice heroes.
 * Only H1 + subhead in this hero; the six-feeling eyebrows sit in the rows below and stay bare.
 */
.sw-pex-hero-title { text-shadow: 0 2px 20px rgba(28,35,48,.65); }
.sw-pex-hero-lede  { text-shadow: 0 1px 14px rgba(28,35,48,.6); }


/* ------------------------------------------------------------------
 * Journal index + per-path hubs  (v1.0.163-journal-index)
 * Card grid, sticky filter chips, "Start here" strip, FYP band.
 * Reuses warm brand tokens from :root; does not override them.
 * ------------------------------------------------------------------ */

.sw-journal-index .container { max-width: 1080px; margin: 0 auto; padding: 0 28px; }

/* Start-here strip */
.sw-jstart { padding-top: 1.2rem; padding-bottom: 0; }
.sw-jstart__label {
  font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--muted); margin-bottom: .9rem;
}
.sw-jstart__grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 16px;
  margin-bottom: 1rem;
}
@media (max-width: 820px) { .sw-jstart__grid { grid-template-columns: 1fr; } }

/* Sticky filter chip bar */
.sw-jfilterwrap { padding: .5rem 0 0; }
.sw-jfilter {
  position: sticky; top: 0; z-index: 5;
  background: var(--bg, #f5eedd);
  padding: 15px 0 13px; border-bottom: 1px solid var(--gold-soft, #d4b87a);
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.sw-chip {
  border: 1.5px solid var(--gold-soft, #d4b87a);
  background: var(--card, #fffdf8); color: var(--ink-soft, #4a4234);
  border-radius: 999px; padding: 6px 14px;
  font: inherit; font-size: 12.5px; cursor: pointer;
  transition: all .15s ease;
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Inter', sans-serif;
}
.sw-chip:hover { border-color: var(--earth-deep, #8a5135); }
.sw-chip:focus-visible { outline: 2px solid var(--earth); outline-offset: 3px; }
.sw-chip.is-active {
  color: #fff; font-weight: 600; border-color: transparent;
  background: var(--ink, #2a2620);
}
.sw-chip__dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.sw-jfilter__note {
  margin-left: auto; color: var(--muted, #8c8068);
  font-family: 'EB Garamond', 'Cormorant Garamond', serif;
  font-style: italic; font-size: 15px;
}
@media (max-width: 640px) { .sw-jfilter__note { display: none; } }

/* Path section blocks */
.sw-jsections { padding-top: .5rem; }
.sw-jpath { padding: 1.8rem 0 .4rem; border-top: 1px solid var(--gold-soft, #d4b87a); }
.sw-jpath:first-of-type { border-top: none; }
.sw-jpath__head { display: flex; align-items: baseline; gap: 13px; flex-wrap: wrap; margin-bottom: .2rem; }
.sw-jpath__title {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  font-weight: 600; font-size: 1.9rem; margin: 0;
  display: flex; align-items: center; gap: 10px; color: var(--ink);
}
.sw-jpath__dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.sw-jpath__count { font-size: 12px; color: var(--muted, #8c8068); font-family: 'Inter', sans-serif; }
.sw-jpath__hub { font-size: 12.5px; font-weight: 600; margin-left: auto; white-space: nowrap; font-family: 'Inter', sans-serif; }
.sw-jpath__intro { font-size: 14.5px; color: var(--ink-soft, #4a4234); margin: 0 0 1rem; max-width: 64ch; }

/* Card grid */
.sw-jgrid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: .4rem;
}
@media (max-width: 900px) { .sw-jgrid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sw-jgrid { grid-template-columns: 1fr; } }

/* Individual card */
.sw-jcard {
  background: var(--card, #fffdf8);
  border: 1px solid var(--gold-soft, #d4b87a);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 1px 2px rgba(42,38,30,.04), 0 8px 26px rgba(42,38,30,.06);
  display: flex; flex-direction: column;
  color: inherit; text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.sw-jcard:hover { transform: translateY(-2px); box-shadow: 0 2px 3px rgba(42,38,30,.05), 0 14px 32px rgba(42,38,30,.09); }
.sw-jcard:focus-visible { outline: 2px solid var(--earth); outline-offset: 3px; }
.sw-jcard__img {
  position: relative; aspect-ratio: 16/9; overflow: hidden;
  background: linear-gradient(135deg, var(--gold-soft, #d4b87a), var(--earth-deep, #8a5135));
}
.sw-jcard__thumb, .sw-jcard__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.sw-jcard__ph { width: 100%; height: 100%; background: inherit; }
.sw-jcard__badge {
  position: absolute; left: 12px; bottom: 12px;
  font-size: 9px; letter-spacing: .12em; text-transform: uppercase;
  color: #f2ead9; background: rgba(38,36,31,.55);
  border: 1px solid rgba(242,234,217,.3);
  padding: 3px 8px; border-radius: 4px;
  font-family: 'Inter', sans-serif;
}
.sw-jcard__body { padding: 15px 17px 16px; display: flex; flex-direction: column; flex: 1; }
.sw-jcard__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted, #8c8068);
  margin-bottom: 7px; display: flex; align-items: center; gap: 7px;
}
.sw-jcard__dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.sw-jcard__title {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  font-weight: 600; font-size: 1.2rem; line-height: 1.2;
  margin: 0 0 .5rem; color: var(--ink);
}
.sw-jcard__teaser { font-size: 13px; color: var(--ink-soft, #4a4234); margin: 0 0 12px; flex: 1; }
.sw-jcard__foot { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sw-jcard__tag {
  font-size: 10.5px; color: var(--ink-soft, #4a4234);
  background: var(--paper, #f5eedd);
  border: 1px solid var(--gold-soft, #d4b87a);
  border-radius: 6px; padding: 2px 7px;
  font-family: 'Inter', sans-serif;
}
.sw-jcard__read { font-size: 11px; color: var(--muted, #8c8068); margin-left: auto; font-family: 'Inter', sans-serif; }
.sw-jcard__cta {
  margin-top: .8rem; font-family: 'Inter', sans-serif;
  font-size: 12.5px; letter-spacing: .04em; color: var(--earth-deep, #8a5135);
}

/* FYP band */
.sw-jfyp { padding: 2rem 0 1rem; }
.sw-jfyp__card {
  background: var(--night, #1c2330); color: #efe8db;
  border-radius: 18px; padding: 38px 34px; text-align: center;
}
.sw-jfyp__card h2 {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  font-weight: 600; font-size: 1.9rem; margin: 0 0 .6rem; color: #f6f1e8;
}
.sw-jfyp__card p { font-size: 15px; opacity: .85; max-width: 52ch; margin: 0 auto 1.2rem; }
.sw-jfyp__card .btn-primary { background: var(--earth, #ad7152); border-color: var(--earth, #ad7152); }
.sw-jfyp__card .btn-primary:hover { background: var(--earth-deep, #8a5135); border-color: var(--earth-deep, #8a5135); }

/* v1.0.168 journal batch 02 - embedded Small Practice card */
.sw-small-practice {
	background: var(--paper, #f5eedd);
	border: 1px solid var(--line2, #ebe3cf);
	border-radius: 6px;
	padding: 1.5rem 1.75rem;
	margin: 2rem 0;
}
.sw-small-practice__eyebrow {
	font-family: "Inter", sans-serif;
	font-size: .75rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--earth-deep, #6b5a3e);
	margin: 0 0 .35rem;
}
.sw-small-practice__title {
	font-family: "Spectral", serif;
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 1.2;
	margin: 0 0 .9rem;
}
.sw-small-practice__instruction { margin: 0 0 .75rem; }
.sw-small-practice__reflection  { margin: 0 0 .75rem; color: var(--ink, #2a2620); }
.sw-small-practice__safety      { margin: 0; color: var(--earth-deep, #6b5a3e); }

/* ============================================================
   v1.0.172-uat-run-a-followups
   Read Next + More from the Journal on letter singles,
   plus inline practice-link treatment inside letter bodies.
   ============================================================ */
.sw-read-next-wrap { padding-top: 2rem; }
.sw-read-next {
  background: var(--paper, #f5eedd);
  border: 1px solid var(--line2, #ebe3cf);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 2.5rem;
}
.sw-read-next__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--earth-deep, #6a5a3d);
  margin-bottom: .75rem;
}
.sw-read-next__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.sw-read-next__grid.has-thumb { grid-template-columns: 160px 1fr; }
@media (max-width: 640px) { .sw-read-next__grid.has-thumb { grid-template-columns: 1fr; } }
.sw-read-next__thumb-wrap { display: block; overflow: hidden; border-radius: 8px; }
.sw-read-next__thumb-wrap img,
img.sw-read-next__thumb { width: 100%; height: auto; display: block; }
.sw-read-next__title {
  font-family: 'Spectral', serif;
  font-weight: 400;
  font-size: 1.35rem;
  line-height: 1.25;
  margin: 0 0 .5rem;
}
.sw-read-next__title a {
  color: var(--ink, #2a2620);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  transition: color .15s ease;
}
.sw-read-next__title a:hover,
.sw-read-next__title a:focus { color: var(--earth-deep, #6a5a3d); }
.sw-read-next__excerpt {
  font-family: 'Spectral', serif;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ink, #2a2620);
  margin: 0;
}

/* More from the Journal card row */
.sw-more-journal { margin-top: .5rem; }
.sw-more-journal__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1rem;
  border-top: 1px solid var(--line2, #ebe3cf);
  padding-top: 1.25rem;
}
.sw-more-journal__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--earth-deep, #6a5a3d);
}
.sw-more-journal__link {
  font-family: 'Inter', sans-serif;
  font-size: .85rem;
  letter-spacing: .04em;
  color: var(--ink, #2a2620);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.sw-more-journal__link:hover,
.sw-more-journal__link:focus { color: var(--earth-deep, #6a5a3d); }
.sw-more-journal__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 900px) { .sw-more-journal__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .sw-more-journal__grid { grid-template-columns: 1fr; } }

/* Inline practice references inside letter bodies */
.sw-prose a.sw-practice-inline {
  color: inherit;
  border-bottom: 1px solid var(--earth-deep, #6a5a3d);
  text-decoration: none;
  transition: color .15s ease, border-color .15s ease;
}
.sw-prose a.sw-practice-inline:hover,
.sw-prose a.sw-practice-inline:focus {
  color: var(--earth-deep, #6a5a3d);
  border-bottom-color: currentColor;
}

/* 1.0.175 · From the Practice — closing section rhythm + card-grid centering
   Practice-page module now reuses .sw-jgrid via template-parts/journal-card.php.
   The block gates on notes-or-letters presence in the template; this rule only
   handles spacing above the disclaimer/footer and centers 1-2 card layouts so
   they do not orphan-left. */
.sw-practice-from { padding: 3.4rem 0 4.6rem; }
@media (max-width: 640px) { .sw-practice-from { padding: 2.2rem 0 3rem; } }
.sw-practice-from .sw-practice-from-sub {
  font-family: 'Inter', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted, #8c8068);
  margin: 1.4rem 0 .8rem;
}
.sw-practice-from .sw-practice-from-letters { margin-top: 1.2rem; }
.sw-practice-from .sw-jgrid { margin-bottom: 0; }
.sw-practice-from .sw-jgrid--few {
  grid-template-columns: repeat(2, minmax(0, 320px));
  justify-content: center;
}
.sw-practice-from .sw-jgrid--few[data-count="1"] {
  grid-template-columns: minmax(0, 360px);
}
@media (max-width: 900px) {
  .sw-practice-from .sw-jgrid--few { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sw-practice-from .sw-jgrid--few[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .sw-practice-from .sw-jgrid--few { grid-template-columns: minmax(0, 1fr); }
}
