@charset "UTF-8";
/*!
Theme Name: EdenSpring
Theme URI: https://edenspring.life
Author: John H. Sheridan
Author URI: https://JHSheridan.com
Description: Custom WordPress theme for EdenSpring — an oasis of safety for healing and restoration
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: eden-spring
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/
/*--------------------------------------------------------------
# Variables and Mixins
--------------------------------------------------------------*/
:root {
  /* ── Brand Palette: Gentle Strength ── */
  --primary: #4a7c7c;
  --primary-light: #5a8f8f;
  --primary-dark: #3a6363;
  --secondary: #7ba3a3;
  --accent: #c47860;
  --accent-hover: #c06549;
  --warm: #f0e6e3;
  /* ── Surfaces ── */
  --white: #ffffff;
  --cream: #faf9f7;
  --sage-light: #e8efef;
  --hero-bg: #d4e4e4;
  --footer-bg: #3a6363;
  /* ── Text ── */
  --text-dark: #2a3535;
  --text-mid: #4a5e5e;
  --text-light: #7a9494;
  --border: #d5e4e4;
  /* ── Type ── */
  --font-display: "Merriweather", serif;
  --font-text: "Merriweather", serif;
  --font-ui: "Nunito Sans", sans-serif;
  --font-mono: "Nunito Sans", sans-serif;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Theme-specific HR styling (overrides normalize defaults)
 */
hr {
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 * Make images responsive by default.
 */
img {
  border-style: none;
  height: auto;
  max-width: 100%;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: var(--font-ui);
  color: var(--text-dark);
  background: var(--white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* ── Body text ── */
p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.7;
  margin-bottom: 12px;
}

/* ── Links ── */
a {
  color: var(--primary-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}
a:hover, a:focus {
  color: var(--accent);
}

/* Prevent body scroll when drawer is open */
body.drawer-open {
  overflow: hidden;
}

/* ── AI-generated text indicator ── */
ai-gen {
  -webkit-text-decoration: underline dotted #e08888;
          text-decoration: underline dotted #e08888;
  text-underline-offset: 4px;
}

blockquote, q {
  quotes: "" "";
}
blockquote:before, blockquote:after, q:before, q:after {
  content: "";
}

figure {
  margin: 1em 0;
}

h1, h2, h3, h4, h5, h6 {
  clear: both;
}

/* ── MOBILE NAV TOGGLE ── */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-left: auto;
  position: relative;
  z-index: 201;
}

.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--primary-dark);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.2s ease;
}

.nav-toggle span + span {
  margin-top: 5px;
}

.nav-toggle.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
  opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.main-nav:not(.scrolled) .nav-toggle span {
  background: var(--primary-dark);
}

/* ── MOBILE DRAWER (hidden on desktop) ── */
.mobile-drawer {
  display: none;
}

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
button,
input[type=button],
input[type=reset],
input[type=submit] {
  border: 1px solid;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.8);
  font-size: 12px;
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
  border-radius: 3px;
  padding: 3px;
}

textarea {
  width: 100%;
}

.btn {
  padding: 9px 20px;
  border-radius: 6px;
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
  text-decoration: none;
  display: inline-block;
}

.btn-outline {
  background: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 1.5px solid var(--primary);
  color: var(--primary);
}

.btn-outline:hover {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 24px rgba(74, 124, 124, 0.25);
}

.btn-filled {
  background: var(--accent);
  border: 1.5px solid var(--accent);
  color: #fff;
}

.btn-filled:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #fff;
  box-shadow: 0 6px 24px rgba(184, 92, 82, 0.25);
}

.btn-primary {
  background: var(--primary);
  border: 1.5px solid var(--primary);
  color: #fff;
}

.btn-primary:hover {
  background: var(--primary-dark);
  border-color: var(--primary-dark);
  color: #fff;
  box-shadow: 0 6px 24px rgba(74, 124, 124, 0.25);
}

/*--------------------------------------------------------------
# Blocks (design system)
--------------------------------------------------------------*/
/* ── Inner-page hero (default) ── */
.hero {
  position: relative;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero h1 {
  font-family: var(--font-display);
  font-size: 44px;
  font-weight: 600;
  color: var(--white);
  line-height: 1.15;
  text-align: center;
  position: relative;
  z-index: 2;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* ── Homepage hero variant ── */
.hero--home {
  min-height: 96vh;
  height: auto;
  margin-top: -82px;
  padding-top: 82px;
  align-items: flex-start;
}

.hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 0;
}

.hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 920px;
  padding: 100px 40px 80px;
}

.hero-content .eyebrow {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--primary-dark);
  margin-bottom: 18px;
  text-shadow: 0 1px 6px rgba(255, 255, 255, 0.8);
}

.hero-content h1 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 43px;
  color: var(--primary-dark);
  line-height: 1.1;
  margin-bottom: 24px;
  white-space: nowrap;
  text-shadow: 0 2px 20px rgba(255, 255, 255, 0.65);
}

.hero-content p {
  font-family: var(--font-ui);
  font-size: 18px;
  color: var(--text-mid);
  line-height: 1.5;
  max-width: 560px;
  margin: 0 auto 36px;
  text-shadow: 0 1px 8px rgba(255, 255, 255, 0.7);
}

.hero-buttons {
  display: flex;
  gap: 14px;
  justify-content: center;
}

.hero-buttons .btn {
  padding: 14px 30px;
  font-size: 15px;
  border-radius: 6px;
}

.hero-buttons .btn-filled {
  box-shadow: none;
}

.hero-buttons .btn-outline {
  background: rgba(255, 255, 255, 0.7);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.hero-buttons .btn-outline:hover {
  background: var(--primary);
  color: #fff;
}

/* ── Scroll hint ── */
.scroll-hint {
  text-decoration: none;
  cursor: pointer;
  margin-top: 32px;
  display: flex;
  justify-content: center;
}

.scroll-hint svg {
  color: var(--text-mid);
  opacity: 0.35;
  animation: scrollBob 2.4s ease-in-out infinite;
}

@keyframes scrollBob {
  0%, 100% {
    transform: translateY(0);
    opacity: 0.35;
  }
  50% {
    transform: translateY(6px);
    opacity: 0.18;
  }
}
/* ── Responsive ── */
@media (max-width: 1024px) {
  .hero--home {
    min-height: 80vh;
    margin-top: -68px;
    padding-top: 68px;
  }
  .hero-content {
    padding: 72px 24px 60px;
    max-width: 100%;
  }
  .hero-content h1 {
    font-size: 36px;
    white-space: normal;
  }
  .hero-content .eyebrow {
    font-size: 12px;
    letter-spacing: 0.14em;
  }
  .hero-content p {
    font-size: 16px;
    max-width: 440px;
  }
  .hero-buttons {
    flex-direction: column;
    gap: 10px;
    align-items: center;
  }
  .hero-buttons .btn {
    width: 100%;
    max-width: 280px;
    text-align: center;
    padding: 13px 24px;
  }
}
@media (max-width: 480px) {
  .hero--home {
    min-height: 75vh;
    margin-top: -60px;
    padding-top: 60px;
  }
  .hero-content {
    padding: 56px 20px 48px;
  }
  .hero-content h1 {
    font-size: 30px;
    line-height: 1.15;
  }
  .hero-content p {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 28px;
  }
  .hero h1 {
    font-size: 30px;
  }
}
/* ── Base section ── */
.section {
  padding: 80px 0;
}

.section--bordered {
  border-bottom: 1px solid var(--border);
}

.section--bordered-top {
  border-top: 1px solid var(--border);
}

/* ── Background variant: white with sage + warm radial overlays ── */
.section--white-sage {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
}

/* ── Background variant: cream with green + gold radial overlays ── */
.section--cream-green {
  background: radial-gradient(ellipse 60% 50% at 10% 80%, rgba(111, 170, 117, 0.18) 0%, transparent 70%), radial-gradient(ellipse 50% 60% at 90% 20%, rgba(212, 168, 50, 0.14) 0%, transparent 70%), var(--cream);
}

/* ── Background variant: warm with rust + green radial overlays ── */
.section--warm-rust {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
}

/* ── Background variant: primary-dark solid ── */
.section--primary-dark {
  background: var(--primary-dark);
}

/* ── Background variant: bg-image + dark overlay ── */
.section--overlay {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.section--overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(42, 53, 53, 0.3);
  -webkit-backdrop-filter: blur(1px);
          backdrop-filter: blur(1px);
}

.section--overlay > .wrap {
  position: relative;
  z-index: 1;
}

/* ── Responsive section padding ── */
@media (max-width: 960px) {
  .section {
    padding: 60px 0;
  }
}
@media (max-width: 480px) {
  .section {
    padding: 40px 0;
  }
}
/* ── Card base ── */
.card {
  background: var(--white);
  border-radius: 12px;
  padding: 36px 32px;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s, border-color 0.25s;
}

.card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.card--sage {
  background: var(--sage-light);
}

.card--centered {
  text-align: center;
}

/* ── Card title (shared pattern) ── */
.card-title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  color: var(--primary-dark);
  margin-bottom: 0;
}

/* ── Card eyebrow ── */
.card-eyebrow {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

/* ── Card icon ── */
.card-icon {
  font-size: 28px;
  display: block;
  margin-bottom: 16px;
}

/* ── Card grids ── */
.card-grid {
  display: grid;
  gap: 22px;
  margin-top: 26px;
}

.card-grid--2 {
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.card-grid--narrow {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.card-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.card-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

.card-grid--3-2 {
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}

.card-grid--3-2 > :nth-child(-n+3) {
  grid-column: span 2;
}

.card-grid--3-2 > :nth-child(4) {
  grid-column: 2/span 2;
}

.card-grid--3-2 > :nth-child(5) {
  grid-column: 4/span 2;
}

/* ── Card variants ── */
.card--cream {
  background: var(--cream);
}

.card--sm-text p {
  font-size: 15px;
  line-height: 1.72;
}

/* ── Image-top card variant ── */
.card--img-top {
  padding: 0;
  overflow: hidden;
}

.card-img {
  width: 100%;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.card--img-top .card-body {
  padding: 24px 28px 28px;
}

/* ── Card header with inline number ── */
.card-header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}

.card-header__num {
  font-family: var(--font-ui);
  font-size: 19px;
  font-weight: 600;
  color: var(--accent);
}

/* ── Numbered card variant (for step cards) ── */
.card-num {
  font-family: var(--font-display);
  font-size: 48px;
  color: var(--primary);
  line-height: 1;
  margin-bottom: 14px;
  opacity: 0.4;
}

@media (max-width: 960px) {
  .card-grid--3,
  .card-grid--4 {
    grid-template-columns: 1fr 1fr;
  }
  .card-grid--3-2 {
    grid-template-columns: 1fr 1fr;
  }
  .card-grid--3-2 > :nth-child(-n+3),
  .card-grid--3-2 > :nth-child(4),
  .card-grid--3-2 > :nth-child(5) {
    grid-column: auto;
  }
}
@media (max-width: 480px) {
  .card-grid--2,
  .card-grid--3,
  .card-grid--4,
  .card-grid--3-2 {
    grid-template-columns: 1fr;
  }
}
.sidebar-layout {
  display: grid;
  grid-template-columns: 35% 1fr;
  gap: 64px;
  align-items: start;
}

.sidebar-layout__sidebar {
  position: sticky;
  top: 114px;
}

.sidebar-layout__sidebar img {
  width: 100%;
}

/* ── Two-column equal layout ── */
.two-col-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

/* ── Two-column with wider sidebar ── */
.content-sidebar-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

@media (max-width: 960px) {
  .sidebar-layout,
  .two-col-layout,
  .content-sidebar-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
/* ── Resource list (accent dot bullets) ── */
.resource-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 780px;
  margin-top: 24px;
}

.resource-list li {
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--text-mid);
  padding-left: 24px;
  position: relative;
  line-height: 1.72;
}

.resource-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}

.resource-list li strong {
  color: var(--primary-dark);
}

/* ── Resource sublist ── */
.resource-sublist {
  list-style: none;
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.resource-sublist li {
  padding-left: 20px;
}

.resource-sublist li::before {
  width: 6px;
  height: 6px;
  top: 10px;
  background: var(--secondary);
}

/* ── Donate-style list (same pattern) ── */
.accent-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 20px;
}

.accent-list li {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  padding-left: 24px;
  position: relative;
  line-height: 1.85;
}

.accent-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}

.form-embed-placeholder {
  background: var(--white);
  border-radius: 12px;
  border: 2px dashed var(--border);
  padding: 80px 40px;
  text-align: center;
}

.form-embed-label {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-light);
  margin-bottom: 12px;
}

.form-embed-title {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary-dark);
  margin-bottom: 16px;
}

.form-embed-note {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto;
}

.pull-quote {
  font-family: var(--font-display);
  font-size: 20px;
  font-style: italic;
  color: var(--primary-dark);
  line-height: 1.7;
  border-left: 3px solid var(--accent);
  padding-left: 24px;
}

/* ── Callout box variant ── */
.callout-box {
  background: var(--warm);
  border-left: 4px solid var(--accent);
  border-radius: 0 8px 8px 0;
  padding: 24px 28px;
  margin: 28px 0;
}

.callout-box p {
  font-family: var(--font-text);
  font-size: 16px;
  font-style: italic;
  color: var(--text-dark);
  line-height: 1.7;
  margin-bottom: 0;
}

.hotline-banner {
  background: var(--primary-dark);
  border-radius: 12px;
  padding: 40px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
}

.hotline-text {
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--font-ui);
  font-size: 16px;
  flex: 0 0 70%;
}

.hotline-text strong {
  display: block;
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--white);
  margin-bottom: 4px;
}

.hotline-number {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--white);
  letter-spacing: 0.02em;
}

.hotline-number a {
  color: var(--white);
  text-decoration: none;
}

.hotline-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex: 0 0 30%;
  text-align: center;
}

.hotline-actions .hotline-number {
  margin-top: -6px;
}

.hotline-or {
  font-family: var(--font-ui);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  margin-bottom: -6px;
}

@media (max-width: 960px) {
  .hotline-banner {
    flex-direction: column;
    text-align: center;
    gap: 16px;
    padding: 32px 24px;
  }
  .hotline-text {
    flex: auto;
  }
  .hotline-actions {
    flex: auto;
  }
}
@media (max-width: 480px) {
  .hotline-banner {
    padding: 24px 16px;
  }
  .hotline-number {
    font-size: 24px;
  }
  .hotline-text {
    font-size: 14px;
  }
  .hotline-text strong {
    font-size: 18px;
  }
}
.cta-banner {
  background: radial-gradient(ellipse 50% 65% at 70% 40%, rgba(184, 92, 82, 0.16) 0%, transparent 65%), radial-gradient(ellipse 55% 50% at 30% 60%, rgba(111, 170, 117, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.cta-inner {
  text-align: center;
}

.cta-inner .eyebrow {
  color: var(--accent);
}

.cta-inner h2 {
  font-family: var(--font-display);
  font-size: 34px;
  color: var(--primary-dark);
  line-height: 1.25;
  margin-bottom: 14px;
}

.cta-inner p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.75;
  max-width: 480px;
  margin: 0 auto 32px;
}

.cta-inner .btn-filled {
  padding: 14px 38px;
  font-size: 15px;
  border-radius: 6px;
  box-shadow: 0 6px 24px rgba(184, 92, 82, 0.25);
}

/* ── Illustration variant ── */
.cta-inner--illo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  text-align: left;
}

.cta-illo {
  width: 320px;
  flex-shrink: 0;
}

.cta-inner--illo .cta-inner__text p {
  margin-left: 0;
}

@media (max-width: 960px) {
  .cta-inner--illo {
    flex-direction: column;
    text-align: center;
  }
  .cta-illo {
    width: 200px;
  }
  .cta-inner--illo .cta-inner__text p {
    margin: 0 auto 32px;
  }
}
@media (max-width: 480px) {
  .cta-banner {
    padding: 50px 0;
  }
  .cta-illo {
    width: 160px;
  }
}
/* ── Blog section ── */
.blog-section {
  background: radial-gradient(ellipse 55% 50% at 75% 20%, rgba(111, 170, 117, 0.15) 0%, transparent 70%), radial-gradient(ellipse 45% 55% at 25% 80%, rgba(212, 168, 50, 0.12) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-top: 1px solid var(--border);
}

.blog-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 44px;
}

.blog-header-text .eyebrow {
  margin-bottom: 10px;
}

.blog-header-text h2 {
  font-family: var(--font-display);
  font-size: 34px;
  color: var(--primary-dark);
  line-height: 1.2;
}

.blog-header a {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
  transition: color 0.2s;
  white-space: nowrap;
  padding-bottom: 2px;
  border-bottom: 1.5px solid transparent;
}

.blog-header a:hover {
  color: var(--primary-dark);
  border-bottom-color: var(--primary-dark);
}

/* ── Blog card grid ── */
.blog-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
}

.blog-card {
  background: var(--white);
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s, border-color 0.25s;
}

.blog-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
  border-color: var(--secondary);
}

.blog-card-img {
  width: 100%;
  height: 180px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.blog-card-body {
  padding: 24px 24px 28px;
}

.blog-card-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-light);
  margin-bottom: 10px;
  display: flex;
  gap: 12px;
}

.blog-card-meta .tag {
  color: var(--primary);
  font-weight: 500;
}

.blog-card-body h3 {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--text-dark);
  line-height: 1.35;
  margin-bottom: 8px;
}

.blog-card-body h3 a {
  text-decoration: none;
  color: inherit;
  transition: color 0.2s;
}

.blog-card-body h3 a:hover {
  color: var(--primary);
}

.blog-card-body p {
  font-family: var(--font-ui);
  font-size: 13.5px;
  color: var(--text-mid);
  line-height: 1.65;
}

/* ── News card variant ── */
.news-card {
  background: var(--sage-light);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.news-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.news-card-img {
  width: 100%;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.news-card-body {
  padding: 22px 25px 22px 25px;
}

.news-card-date {
  font-family: var(--font-ui);
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.news-card-title {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--primary-dark);
  margin-bottom: 12px;
  line-height: 1.45;
}

.news-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}

.news-card-title a:hover {
  color: var(--primary);
}

.news-card p {
  font-family: var(--font-ui);
  font-size: 14.5px;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 10px;
}

.news-card-body > a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s;
}

.news-card-body > a:hover {
  color: var(--accent-hover);
}

@media (max-width: 960px) {
  .blog-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .blog-section {
    padding: 50px 0;
  }
  .blog-grid {
    grid-template-columns: 1fr;
  }
}
.statement {
  padding: 80px 0;
  text-align: center;
}

.statement__body {
  font-family: var(--font-ui);
  font-size: 19px;
  color: var(--primary-dark);
  line-height: 1.7;
  max-width: 660px;
  margin: 0 auto;
}

.statement__body p {
  margin-bottom: 16px;
}

.statement__body p:last-child {
  margin-bottom: 0;
}

/* ── Two-column body variant ── */
.statement__body--columns {
  -moz-column-count: 2;
       column-count: 2;
  -moz-column-gap: 40px;
       column-gap: 40px;
  text-align: left;
  max-width: none;
}

.statement__body--columns p {
  font-size: 16px;
}

@media (max-width: 960px) {
  .statement__body--columns {
    -moz-column-count: 1;
         column-count: 1;
  }
}
.statement__sign-off {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--primary-dark);
  margin-top: 8px;
  text-align: right;
}

@media (max-width: 480px) {
  .statement {
    padding: 50px 0;
  }
}
.illo-text {
  padding: 80px 0;
}

.illo-text__layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 64px;
  align-items: start;
}

.illo-text__img {
  width: 100%;
  max-width: 380px;
  position: sticky;
  top: 114px;
}

.illo-text--reverse .illo-text__layout {
  grid-template-columns: 1fr 380px;
}

.illo-text--reverse .illo-text__img {
  order: 2;
}

.illo-text__item {
  margin-bottom: 24px;
}

.illo-text__item:last-child {
  margin-bottom: 0;
}

.illo-text__item-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 25px;
  color: var(--accent);
  margin-bottom: 8px;
}

.illo-text__img-wrap {
  position: sticky;
  top: 114px;
}

.illo-text__img-wrap .illo-text__img {
  position: static;
}

/* ── Expandable image ── */
.illo-text__expandable {
  position: relative;
  cursor: pointer;
}

.illo-text__enlarge-icon {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-family: var(--font-ui);
  font-size: 13px;
  padding: 6px 14px;
  border-radius: 20px;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  white-space: nowrap;
}

.illo-text__expandable:hover .illo-text__enlarge-icon {
  opacity: 1;
}

/* ── Expanded state ── */
.illo-text__layout--expanded {
  grid-template-columns: 1fr;
}

.illo-text__layout--expanded .illo-text__expandable {
  cursor: zoom-out;
}

.illo-text__layout--expanded .illo-text__img {
  max-width: 100%;
  position: static;
}

.illo-text__layout--expanded .illo-text__enlarge-icon {
  display: none;
}

/* ── Lightbox trigger ── */
.lightbox-wrap {
  position: relative;
  display: inline-block;
  overflow: hidden;
  border-radius: 8px;
}

.lightbox-trigger {
  cursor: zoom-in;
  transition: transform 0.3s ease;
  display: block;
}

.lightbox-wrap:hover .lightbox-trigger {
  transform: scale(1.03);
}

.lightbox-hint {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(74, 124, 124, 0.75);
  color: #fff;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  cursor: zoom-in;
  border-radius: 8px;
}

.lightbox-hint span {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.lightbox-wrap:hover .lightbox-hint {
  opacity: 1;
}

/* ── Lightbox overlay ── */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  cursor: zoom-out;
}

.lightbox.active {
  opacity: 1;
}

.lightbox__img {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.lightbox__close {
  position: absolute;
  top: 24px;
  right: 24px;
  background: none;
  border: none;
  color: #fff;
  font-size: 36px;
  cursor: pointer;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.lightbox__close:hover {
  opacity: 1;
}

@media (max-width: 960px) {
  .illo-text__layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .illo-text__img {
    position: static;
  }
  .illo-text--reverse .illo-text__img {
    order: 0;
  }
}
@media (max-width: 480px) {
  .illo-text {
    padding: 50px 0;
  }
  .lightbox__close {
    font-size: 28px;
    top: 12px;
    right: 12px;
  }
}
.parallax-bg {
  position: relative;
  padding: 150px 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

.parallax-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(42, 53, 53, 0.05);
  -webkit-backdrop-filter: blur(1px);
          backdrop-filter: blur(1px);
}

.parallax-bg > .wrap {
  position: relative;
  z-index: 1;
  background: rgba(74, 124, 124, 0.85);
  padding: 3rem 2.5rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  max-width: 920px;
  margin-inline: auto;
  text-align: center;
}

.parallax-bg--accent > .wrap {
  background: rgba(196, 120, 96, 0.9);
}

.parallax-bg.parallax-bg--accent .eyebrow {
  color: var(--primary);
}

.parallax-bg.parallax-bg--where .eyebrow {
  color: #d8a392;
}

/* ── Auto light text ── */
.parallax-bg .eyebrow {
  color: var(--accent);
}

.parallax-bg .section-heading {
  color: var(--white);
}

.parallax-bg p {
  color: rgba(255, 255, 255, 0.85);
}

/* ── Open variant: no sage box ── */
.parallax-bg--open > .wrap {
  background: none;
  border: none;
  border-radius: 0;
  max-width: 1200px;
  padding: 0;
}

.parallax-bg--open .card-title {
  color: var(--accent);
}

.parallax-bg--open .card p {
  color: var(--primary);
}

@media (max-width: 960px) {
  .parallax-bg {
    padding: 100px 0;
    background-attachment: scroll;
  }
}
@media (max-width: 480px) {
  .parallax-bg {
    padding: 60px 0;
  }
  .parallax-bg > .wrap {
    padding: 2rem 1.5rem;
  }
}
.sticky-sidebar {
  padding: 84px 0;
}

.sticky-sidebar__layout {
  display: grid;
  grid-template-columns: 35% 1fr;
  gap: 64px;
  align-items: start;
}

.sticky-sidebar__aside {
  position: sticky;
  top: 114px;
}

/* ── Portrait variant: photo sidebar with narrower aside ── */
.sticky-sidebar__layout--portrait {
  grid-template-columns: 27% 1fr;
}

.sticky-sidebar__layout--portrait .sticky-sidebar__aside {
  padding-top: 64px;
}

.sticky-sidebar__photo {
  width: 100%;
  border-radius: 10px;
  margin-bottom: 22px;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 3/4;
}

.sticky-sidebar__illo {
  width: 100%;
  max-width: 280px;
  margin-top: 16px;
}

.sticky-sidebar__name {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary-dark);
  margin-bottom: 0;
}

.sticky-sidebar__role {
  font-family: var(--font-text);
  font-size: 14px;
  color: var(--text-light);
  font-style: italic;
  margin-bottom: 22px;
}

.sticky-sidebar__rule {
  width: 36px;
  height: 2px;
  background: var(--accent);
  margin-bottom: 22px;
}

.sticky-sidebar__pull {
  font-family: var(--font-display);
  font-size: 19px;
  font-style: italic;
  color: var(--primary-dark);
  line-height: 1.5;
}

/* ── Content area ── */
.sticky-sidebar__content p {
  font-size: 17px;
  line-height: 1.85;
  margin-bottom: 20px;
}

.sticky-sidebar__content p:last-child {
  margin-bottom: 0;
}

.sticky-sidebar__signature {
  margin-top: 15px;
  float: right;
}

.sticky-sidebar__signature .sign-off {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--primary-dark);
  margin-bottom: 3px;
}

.sticky-sidebar__signature .signature {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary-dark);
  line-height: 1.1;
  margin-bottom: 6px;
}

/* ── Sidebar text sizing ── */
.sticky-sidebar__aside .card-title {
  font-size: 20px;
}

.sticky-sidebar__aside .accent-list {
  gap: 8px;
}

.sticky-sidebar__aside .accent-list li {
  font-size: 15px;
}

/* ── Reverse variant: content left, sidebar right ── */
.sticky-sidebar__layout--reverse {
  grid-template-columns: 3fr 2fr;
}

@media (max-width: 960px) {
  .sticky-sidebar__layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .sticky-sidebar__aside {
    position: static;
    margin-top: 0;
  }
  .sticky-sidebar__layout--portrait .sticky-sidebar__aside {
    padding-top: 0;
  }
  .sticky-sidebar__photo {
    max-width: 240px;
    aspect-ratio: auto;
  }
}
@media (max-width: 480px) {
  .sticky-sidebar {
    padding: 50px 0;
  }
  .sticky-sidebar__illo {
    max-width: 220px;
  }
}
.people-grid {
  padding: 80px 0;
}

/* ── Card ── */
.people-grid__card {
  text-align: center;
  padding: 32px 20px 24px;
  border: 1px solid var(--border);
  border-radius: 10px;
  transition: box-shadow 0.25s, border-color 0.25s;
}

.people-grid__card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
  border-color: var(--secondary);
}

/* ── Avatar ── */
.people-grid__avatar {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: var(--sage-light);
  border: 2px solid rgba(74, 124, 124, 0.12);
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.people-grid__avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.people-grid__initials {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary);
}

/* ── Name + role ── */
.people-grid__name {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--text-dark);
}

.people-grid__role {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-light);
  margin-top: 4px;
}

/* ── Bio preview (clamped) ── */
.people-grid__bio-preview {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.6;
  margin-top: 12px;
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.people-grid__card:has(.people-grid__bio-details[open]) .people-grid__bio-preview {
  display: none;
}

/* ── Expandable bio ── */
.people-grid__bio-details {
  margin-top: 8px;
  text-align: left;
}

.people-grid__bio-details .people-grid__bio-full {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.6;
}

.people-grid__bio-details summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--primary);
  list-style: none;
  transition: color 0.2s ease;
}

.people-grid__bio-details summary::-webkit-details-marker {
  display: none;
}

.people-grid__bio-details summary::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
  transition: transform 0.3s ease;
}

.people-grid__bio-details[open] summary::after {
  transform: rotate(-135deg);
  margin-top: 2px;
}

.people-grid__bio-details summary:hover {
  color: var(--accent);
}

.people-grid__bio-details[open] summary .toggle-more {
  display: none;
}

.people-grid__bio-details:not([open]) summary .toggle-less {
  display: none;
}

@media (max-width: 480px) {
  .people-grid__avatar {
    width: 110px;
    height: 110px;
  }
  .people-grid {
    padding: 50px 0;
  }
}
.step-timeline {
  padding: 80px 0;
}

.step-timeline__intro {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  max-width: 680px;
  margin-bottom: 0;
}

.step-timeline__steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 0;
  position: relative;
  margin-top: 52px;
}

.step-timeline__steps::before {
  content: "";
  position: absolute;
  top: 36px;
  left: 60px;
  right: 60px;
  height: 2px;
  background: var(--border);
}

.step-timeline__step {
  text-align: center;
  position: relative;
}

.step-timeline__num {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary);
  position: relative;
  z-index: 1;
  transition: all 0.25s;
}

.step-timeline__step:hover .step-timeline__num {
  border-color: var(--primary);
  box-shadow: 0 4px 16px rgba(74, 124, 124, 0.15);
}

.step-timeline__step-title {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--accent);
  margin-bottom: 8px;
}

.step-timeline__step p {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.65;
  padding: 0 12px;
}

@media (max-width: 960px) {
  .step-timeline__steps {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .step-timeline__steps::before {
    display: none;
  }
}
@media (max-width: 480px) {
  .step-timeline {
    padding: 50px 0;
  }
  .step-timeline__steps {
    grid-template-columns: 1fr;
  }
}
/*--------------------------------------------------------------
# Sections (site chrome)
--------------------------------------------------------------*/
/* ── UTILITY BAR ── */
.util-bar {
  background: var(--primary-dark);
  padding: 6px 40px;
  display: flex;
  justify-content: flex-end;
  gap: 24px;
}

.util-bar a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}

.util-bar a:hover {
  color: #fff;
}

/* ── SITE HEADER (sticky wrapper) ── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
}

/* ── MAIN NAV ── */
.main-nav {
  background: transparent;
  padding: 0 40px;
  height: 82px;
  display: flex;
  align-items: center;
  gap: 30px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  transition: background 0.3s, border-color 0.3s, box-shadow 0.3s;
}

.main-nav.scrolled {
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-bottom-color: var(--border);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

/* ── NAV LOGO ── */
.nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  margin-right: 12px;
  flex-shrink: 0;
}

.nav-logo img {
  height: 65px;
  width: auto;
}

/* ── NAV LINKS ── */
.nav-links {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 28px;
  flex: 1;
  justify-content: center;
}

.nav-links a {
  color: var(--text-mid);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  letter-spacing: 0.01em;
  transition: color 0.2s;
  position: relative;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.4);
}

.nav-links a::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--primary-dark);
  transition: width 0.25s ease;
}

.nav-links a:hover {
  color: var(--primary-dark);
}

.nav-links a:hover::after {
  width: 100%;
}

.nav-links a.active {
  color: var(--primary-dark);
}

.nav-links a.active::after {
  width: 100%;
}

/* ── NAV ACTIONS ── */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* ── NAV SEPARATOR ── */
.nav-sep {
  color: rgba(58, 99, 99, 0.3);
  font-size: 20px;
  font-weight: 200;
  margin: 0 2px;
}

footer {
  background: var(--footer-bg);
  color: rgba(255, 255, 255, 0.65);
  position: relative;
  overflow: hidden;
}

footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'%3E%3Cpath d='M0,320 L0,175 C30,168 55,190 90,155 C115,130 135,160 170,120 C195,90 225,130 265,105 C300,82 330,55 380,75 C420,92 440,60 490,42 C530,28 560,65 600,50 C640,35 670,70 720,38 C760,15 800,55 850,40 C890,28 920,60 970,35 C1010,15 1050,50 1090,30 C1130,45 1160,70 1210,60 C1250,52 1280,80 1320,75 C1355,70 1385,95 1410,105 C1430,112 1438,120 1440,125 L1440,320 Z' fill='rgba(255,255,255,0.03)'/%3E%3Cpath d='M0,320 L0,235 C40,225 70,250 110,220 C145,195 175,230 215,200 C250,175 280,205 325,185 C365,165 395,195 440,170 C480,148 510,180 560,158 C605,138 635,170 680,148 C720,128 755,160 800,138 C840,118 875,155 920,130 C960,108 1000,145 1045,120 C1085,125 1120,145 1165,140 C1205,135 1240,155 1285,155 C1325,155 1355,170 1395,180 C1420,188 1435,195 1440,200 L1440,320 Z' fill='rgba(255,255,255,0.025)'/%3E%3C/svg%3E") center top/100% 100% no-repeat;
  pointer-events: none;
  z-index: 0;
}

footer > * {
  position: relative;
  z-index: 1;
}

.footer-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 40px 48px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 36px;
}

.footer-brand-name {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--white);
  margin-bottom: 8px;
}

.footer-tagline {
  font-family: var(--font-ui);
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  margin-bottom: 14px;
}

.footer-badge img {
  display: block;
  width: 88px;
  height: auto;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-social-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-weight: 700;
  transition: background 0.2s, color 0.2s;
}

.footer-social-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.footer-col-title {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 16px;
}

.footer-col-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-col-links a {
  font-family: var(--font-ui);
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-col-links a:hover {
  color: #fff;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  max-width: 1100px;
  margin: 0 auto;
  padding: 16px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer-copy {
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}

.footer-bottom-links {
  display: flex;
  gap: 22px;
}

.footer-bottom-links a {
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-bottom-links a:hover {
  color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 768px) {
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 40px 24px 32px;
  }
  .footer-bottom {
    flex-direction: column;
    gap: 10px;
    text-align: center;
    padding: 16px 24px;
  }
}
@media (max-width: 480px) {
  .footer-main {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 36px 20px 28px;
  }
}
@media (max-width: 1024px) {
  /* Utility bar: compact */
  .util-bar {
    padding: 6px 20px;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
  }
  .util-bar a {
    font-size: 12px;
  }
  /* Nav */
  .main-nav {
    padding: 0 20px;
    height: 68px;
  }
  .main-nav .nav-links,
  .main-nav .nav-actions,
  .main-nav .nav-sep {
    display: none;
  }
  .nav-toggle {
    display: flex;
  }
  .nav-logo img {
    height: 52px;
  }
  /* Mobile drawer */
  .mobile-drawer {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 200;
    pointer-events: none;
    visibility: hidden;
  }
  .mobile-drawer.open {
    pointer-events: auto;
    visibility: visible;
  }
  .drawer-overlay {
    position: absolute;
    inset: 0;
    background: rgba(42, 53, 53, 0.35);
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.35s ease;
  }
  .mobile-drawer.open .drawer-overlay {
    opacity: 1;
  }
  .drawer-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(320px, 85vw);
    height: 100%;
    background: var(--cream);
    box-shadow: -8px 0 40px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
  }
  .mobile-drawer.open .drawer-panel {
    transform: translateX(0);
  }
  .drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border);
  }
  .drawer-header .drawer-brand {
    font-family: var(--font-display);
    font-size: 20px;
    color: var(--primary-dark);
  }
  .drawer-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 18px;
    color: var(--text-mid);
    transition: background 0.2s, border-color 0.2s;
  }
  .drawer-close:hover {
    background: var(--sage-light);
    border-color: var(--secondary);
  }
  .drawer-nav {
    list-style: none;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .drawer-nav a {
    display: block;
    padding: 12px 16px;
    border-radius: 8px;
    font-family: var(--font-ui);
    font-size: 16px;
    font-weight: 500;
    color: var(--text-dark);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
  }
  .drawer-nav a:hover {
    background: var(--sage-light);
    color: var(--primary-dark);
  }
  .drawer-divider {
    height: 1px;
    background: var(--border);
    margin: 4px 24px 8px;
  }
  .drawer-actions {
    padding: 8px 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .drawer-actions .btn {
    width: 100%;
    text-align: center;
    padding: 13px 20px;
    font-size: 15px;
  }
  .drawer-util {
    margin-top: auto;
    padding: 20px 24px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
  }
  .drawer-util a {
    font-family: var(--font-ui);
    font-size: 13px;
    color: var(--text-light);
    text-decoration: none;
    transition: color 0.2s;
  }
  .drawer-util a:hover {
    color: var(--primary-dark);
  }
}
@media (max-width: 480px) {
  .util-bar {
    display: none;
  }
  .main-nav {
    height: 60px;
  }
  .nav-logo img {
    height: 46px;
  }
}
/* ── Scroll reveal animation ── */
.reveal {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s ease 0.2s, transform 0.8s ease 0.2s;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Wrap container ── */
.wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

.wrap--wide {
  max-width: 1200px;
}

/* ── Eyebrow label ── */
.eyebrow {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

.eyebrow--centered {
  text-align: center;
}

/* ── Section heading ── */
.section-heading {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 600;
  color: var(--primary-dark);
  line-height: 1.2;
  margin-bottom: 16px;
}

.section-heading--light {
  color: var(--white);
}

.section-heading--centered {
  text-align: center;
}

/* ── Section body text ── */
.section-body {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.78;
  margin-bottom: 8px;
}

.section-body:last-child {
  margin-bottom: 0;
}

.section-body strong {
  color: var(--text-dark);
}

.section-body a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}

.section-body a:hover {
  color: var(--accent-hover);
}

/* ── Section divider ── */
.section-divider {
  padding: 40px 0;
  text-align: center;
  background: var(--primary-dark);
  color: var(--white);
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ── Note callout ── */
.note {
  background: var(--warm);
  border-radius: 8px;
  padding: 22px 28px;
  margin-top: 36px;
  border: 1px solid var(--border);
  font-family: var(--font-text);
  font-size: 15px;
  color: var(--text-mid);
  font-style: italic;
  text-align: center;
  line-height: 1.7;
}

/* ── Content markers ── */
/* ── Default page content (privacy policy, terms, etc.) ── */
.default-page-content {
  max-width: 780px;
  margin: 0 auto;
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--text-mid);
  line-height: 1.85;
}

.default-page-content h2 {
  font-family: var(--font-display);
  font-size: 26px;
  color: var(--primary-dark);
  margin-top: 40px;
  margin-bottom: 12px;
}

.default-page-content h3 {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--primary-dark);
  margin-top: 32px;
  margin-bottom: 8px;
}

.default-page-content p {
  margin-bottom: 16px;
}

.default-page-content ul,
.default-page-content ol {
  margin-bottom: 16px;
  padding-left: 24px;
}

.default-page-content li {
  margin-bottom: 6px;
}

.default-page-content a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.default-page-content a:hover {
  color: var(--accent-hover);
}

.default-page-content strong {
  color: var(--text-dark);
}

.added {
  -webkit-text-decoration: underline wavy red;
          text-decoration: underline wavy red;
}

.filler {
  color: var(--filler) !important;
}

/* ── Responsive ── */
@media (max-width: 480px) {
  .section-heading {
    font-size: 26px;
  }
  .wrap {
    padding: 0 20px;
  }
}
/*--------------------------------------------------------------
# Pages (page-specific)
--------------------------------------------------------------*/
/* ── Mist rise animation ── */
@keyframes mistRise {
  0% {
    opacity: 0;
    transform: translateY(40px);
    filter: blur(6px);
  }
  60% {
    filter: blur(0px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0px);
  }
}
/* ── Hero animation delays ── */
.hero--home .hero-content .eyebrow {
  animation: mistRise 1.6s cubic-bezier(0.23, 1, 0.32, 1) 0.1s both;
}

.hero--home .hero-content h1 {
  animation: mistRise 1.8s cubic-bezier(0.23, 1, 0.32, 1) 0.3s both;
}

.hero--home .hero-content p {
  animation: mistRise 1.8s cubic-bezier(0.23, 1, 0.32, 1) 0.55s both;
}

.hero--home .hero-buttons {
  animation: mistRise 1.8s cubic-bezier(0.23, 1, 0.32, 1) 0.75s both;
}

.hero--home .scroll-hint {
  animation: mistRise 2s cubic-bezier(0.23, 1, 0.32, 1) 1.2s both;
}

/* ── Intro strip ── */
.intro-strip {
  background: var(--white);
  padding: 0;
  border-bottom: 1px solid var(--border);
}

.intro-strip-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: start;
}

.intro-strip-banner {
  background: var(--primary-dark);
  padding: 64px 60px;
  margin: 0;
  position: relative;
  text-align: center;
}

.intro-strip-banner::after {
  content: "";
  position: absolute;
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 16px solid var(--primary-dark);
}

.intro-strip-banner .eyebrow {
  color: var(--accent);
}

.intro-strip-banner h2 {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--white);
  line-height: 1.2;
  font-weight: 400;
  margin: 0;
}

.intro-strip-text {
  max-width: 1100px;
  margin: 0 auto;
  padding: 64px 60px 56px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px 36px;
}

.intro-strip-text p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.85;
}

.intro-strip-text .intro-strip-subtitle {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary-dark);
  line-height: 1.65;
  grid-column: 1/-1;
  text-align: center;
  border-bottom: 1px solid var(--border);
  padding-bottom: 24px;
}

.intro-strip-text p + p {
  margin-top: 0;
}

/* ── Service icons row ── */
.services-icons {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 16px;
  padding: 0 40px 40px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
}

.services-icons .service-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: var(--primary);
  background: none;
  width: auto;
  height: auto;
  border-radius: 0;
  margin-bottom: 0;
}

.services-icons .service-icon i {
  font-size: 24px;
  height: 32px;
  display: flex;
  align-items: center;
}

.service-icon span {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  text-align: center;
  line-height: 1.3;
}

/* ── Nestled CTA ── */
.nestled-cta {
  background: radial-gradient(ellipse 50% 65% at 70% 40%, rgba(184, 92, 82, 0.16) 0%, transparent 65%), radial-gradient(ellipse 55% 50% at 30% 60%, rgba(111, 170, 117, 0.14) 0%, transparent 65%), var(--warm);
  padding: 90px 0;
  text-align: center;
}

.nestled-cta p {
  font-family: var(--font-display);
  font-size: 20.5px;
  color: var(--primary-dark);
  line-height: 1.7;
  max-width: 800px;
  margin: 0 auto 28px;
}

.nestled-cta .opening-badge {
  background: var(--accent);
  color: var(--white);
}

.nestled-cta .opening-badge:hover {
  background: var(--accent-hover);
}

/* ── Opening callout ── */
.opening-callout {
  font-family: var(--font-display);
  font-size: 20px;
  font-style: italic;
  color: var(--accent);
  text-align: center;
  padding: 15px 0 45px;
  letter-spacing: 0.01em;
  line-height: 1.6;
}

/* ── Opening badge ── */
.opening-badge {
  grid-column: 1/-1;
  justify-self: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 12px 28px;
  background: var(--accent);
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: 0.1em;
  transition: background 0.2s, box-shadow 0.2s;
}

.opening-badge:hover {
  background: var(--accent-hover);
  box-shadow: 0 6px 24px rgba(184, 92, 82, 0.25);
}

/* ── Sponsors ── */
.sponsors-section {
  background: radial-gradient(ellipse 60% 50% at 20% 30%, rgba(74, 124, 124, 0.08) 0%, transparent 65%), radial-gradient(ellipse 50% 60% at 80% 70%, rgba(212, 168, 50, 0.06) 0%, transparent 70%), var(--cream);
  padding: 64px 0;
  border-top: 1px solid var(--border);
}

.sponsors-header {
  text-align: center;
  margin-bottom: 40px;
}

.sponsors-header h2 {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--primary-dark);
  line-height: 1.2;
}

.sponsors-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.sponsor-logo {
  width: 150px;
  height: 80px;
  border-radius: 10px;
  background: var(--white);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-light);
  letter-spacing: 0.04em;
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s, opacity 0.3s, box-shadow 0.25s, border-color 0.25s;
}

.sponsor-logo:hover {
  filter: grayscale(0%);
  opacity: 1;
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
  border-color: var(--secondary);
}

/* ── Services grid ── */
.services-section {
  background: radial-gradient(ellipse 70% 55% at 5% 50%, rgba(111, 170, 117, 0.15) 0%, transparent 65%), radial-gradient(ellipse 50% 50% at 95% 30%, rgba(74, 124, 124, 0.12) 0%, transparent 65%), radial-gradient(ellipse 40% 60% at 50% 90%, rgba(212, 168, 50, 0.1) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 22px;
}

.service-card {
  background: var(--white);
  border-radius: 10px;
  padding: 34px 28px;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s, border-color 0.25s;
}

.service-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
  border-color: var(--secondary);
}

.service-card .service-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--sage-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  font-size: 20px;
  color: var(--primary);
}

.service-card h3 {
  font-family: var(--font-display);
  font-size: 19px;
  color: var(--primary-dark);
  margin-bottom: 8px;
}

.service-card p {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.7;
}

/* ── Founder quote (homepage) ── */
.founder-quote-section {
  padding: 84px 0;
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.16) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
}

.founder-quote-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 60px;
  align-items: center;
}

.founder-quote-section .founder-sidebar {
  text-align: center;
}

.founder-avatar {
  width: 108px;
  height: 108px;
  border-radius: 50%;
  background: var(--white);
  border: 3px solid rgba(74, 124, 124, 0.15);
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.founder-initials {
  font-family: var(--font-display);
  font-size: 34px;
  color: var(--primary);
}

.founder-quote-section .founder-name {
  font-family: var(--font-display);
  font-size: 21px;
  color: var(--text-dark);
  margin-bottom: 2px;
}

.founder-quote-section .founder-role {
  font-family: var(--font-text);
  font-size: 14px;
  color: var(--text-light);
  font-style: italic;
}

.founder-quote-body {
  position: relative;
  padding-left: 32px;
  border-left: 3px solid var(--accent);
}

.founder-quote-body blockquote {
  font-family: var(--font-display);
  font-size: 25px;
  font-style: italic;
  color: var(--primary-dark);
  line-height: 1.55;
  margin-bottom: 16px;
}

.founder-quote-body p {
  font-family: var(--font-ui);
  font-size: 15.5px;
  color: var(--text-mid);
  line-height: 1.8;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .sponsors-section {
    padding: 48px 0;
  }
  .sponsors-grid {
    gap: 16px;
  }
  .sponsor-logo {
    width: 130px;
    height: 70px;
    font-size: 12px;
  }
  .intro-strip-text {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .services-icons {
    grid-template-columns: repeat(4, 1fr);
  }
  .services-grid {
    grid-template-columns: 1fr 1fr;
  }
  .founder-quote-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
@media (max-width: 480px) {
  .services-icons {
    grid-template-columns: repeat(3, 1fr);
  }
  .services-grid {
    grid-template-columns: 1fr;
  }
  .intro-strip-banner {
    padding: 36px 24px;
  }
  .intro-strip-banner h2 {
    font-size: 24px;
  }
  .intro-strip-text {
    padding: 36px 24px 32px;
  }
  .sponsor-logo {
    width: 110px;
    height: 60px;
    font-size: 11px;
  }
}
/* ── Donate intro ── */
.donate-intro {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.donate-intro-text {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.donate-intro-text .lead {
  font-family: var(--font-display);
  font-size: 26px;
  color: var(--primary-dark);
  line-height: 1.45;
  margin-bottom: 24px;
}

.donate-intro-text p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
}

/* ── How cards ── */
.how-section {
  background: radial-gradient(ellipse 60% 50% at 10% 80%, rgba(111, 170, 117, 0.18) 0%, transparent 70%), radial-gradient(ellipse 50% 60% at 90% 20%, rgba(212, 168, 50, 0.14) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

.how-cards {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 22px;
}

.how-card {
  background: var(--white);
  border-radius: 12px;
  padding: 40px 36px;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.how-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.how-card-num {
  font-family: var(--font-display);
  font-size: 48px;
  color: var(--primary);
  line-height: 1;
  margin-bottom: 14px;
  opacity: 0.4;
}

.how-card-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 14px;
}

.how-card p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.78;
}

/* ── Givebutter embed ── */
.givebutter-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.givebutter-wrapper {
  max-width: 1200px;
  margin: 0 auto;
}

.givebutter-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.givebutter-layout__donation,
.givebutter-layout__tax {
  min-width: 0;
}

/* ── Tax info ── */
.tax-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}

.tax-card {
  background: var(--sage-light);
  border-radius: 12px;
  padding: 32px 28px;
  border: 1px solid var(--border);
}

.tax-card-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 16px;
}

.tax-card p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 8px;
}

.tax-card .ein {
  font-size: 28px;
  color: var(--primary-dark);
  margin-top: 8px;
}

.tax-card .ein-label {
  font-family: var(--font-display);
}

.tax-card .ein-number {
  font-family: var(--font-ui);
}

/* ── Donate cards (stacked) ── */
.donate-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 20px;
}

.donate-card {
  background: var(--sage-light);
  border-radius: 8px;
  padding: 16px 20px;
  border: 1px solid var(--border);
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.7;
}

@media (max-width: 960px) {
  .how-cards {
    grid-template-columns: 1fr 1fr;
  }
  .givebutter-layout {
    grid-template-columns: 1fr;
  }
  .tax-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .how-cards {
    grid-template-columns: 1fr;
  }
  .donate-cards {
    grid-template-columns: 1fr;
  }
  .how-card-num {
    font-size: 34px;
  }
  .donate-intro,
  .how-section,
  .givebutter-section {
    padding: 50px 0;
  }
}
/* ── Trafficking 101 ── */
.t101-section {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.t101-section .card {
  padding: 25px 32px 12px;
}

.definition-card .eyebrow {
  margin-bottom: 0;
}

.definition-card .card-title {
  margin-bottom: 6px;
}

.definition-card p {
  margin-bottom: 4px;
}

.t101-layout {
  display: grid;
  grid-template-columns: 35% 1fr;
  gap: 64px;
  align-items: start;
}

.t101-sidebar {
  position: sticky;
  top: 114px;
}

.t101-content p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 20px;
}

.t101-content p:last-child {
  margin-bottom: 0;
}

.t101-callout {
  background: var(--warm);
  border-left: 4px solid var(--accent);
  border-radius: 0 8px 8px 0;
  padding: 24px 28px;
  margin: 28px 0;
}

.t101-callout p {
  font-family: var(--font-text);
  font-size: 16px;
  font-style: italic;
  color: var(--text-dark);
  line-height: 1.7;
  margin-bottom: 0;
}

/* ── What it looks like ── */
.looks-section {
  background: radial-gradient(ellipse 60% 50% at 10% 80%, rgba(184, 92, 82, 0.14) 0%, transparent 70%), radial-gradient(ellipse 50% 60% at 90% 20%, rgba(74, 124, 124, 0.12) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

.looks-layout {
  display: grid;
  grid-template-columns: 1fr 30%;
  gap: 48px;
  align-items: start;
}

.looks-text p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 20px;
}

.looks-signs {
  padding: 40px;
  position: sticky;
  top: 114px;
}

.looks-signs-title {
  font-size: 22px;
  color: var(--accent);
  margin-bottom: 20px;
}

.looks-signs ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.looks-signs li {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  padding-left: 24px;
  position: relative;
  line-height: 1.65;
}

.looks-signs li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}

/* ── Stats inside looks-signs card ── */
.looks-signs .wv-stat {
  padding: 20px 0;
  border: none;
  border-radius: 0;
  background: none;
  border-bottom: 1px solid rgba(74, 124, 124, 0.15);
}

.looks-signs .wv-stat:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.looks-signs .wv-stat:first-child {
  padding-top: 0;
}

.looks-signs .wv-stat-num {
  font-size: 28px;
}

/* ── WV stats ── */
.wv-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.wv-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-bottom: 48px;
}

.wv-stat {
  background: var(--white);
  border-radius: 12px;
  padding: 36px 32px;
  text-align: center;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.wv-stat:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.wv-stat-num {
  font-family: var(--font-display);
  font-size: 48px;
  color: var(--primary);
  line-height: 1;
  margin-bottom: 8px;
}

.wv-stat-label {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.5;
}

.wv-body {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  max-width: 780px;
}

.wv-body p + p {
  margin-top: 16px;
}

/* ── Legislative ── */
.legislative-section {
  background: radial-gradient(ellipse 70% 55% at 5% 50%, rgba(111, 170, 117, 0.15) 0%, transparent 65%), radial-gradient(ellipse 50% 50% at 95% 30%, rgba(74, 124, 124, 0.12) 0%, transparent 65%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.legislative-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.legislative-text p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 16px;
}

.legislative-rating {
  background: var(--warm);
  padding: 40px;
  border-color: rgba(196, 120, 96, 0.2);
}

.legislative-rating .card-title {
  margin-bottom: 0;
}

/* ── Resources section ── */
.resources-section {
  background: radial-gradient(ellipse 55% 50% at 75% 20%, rgba(111, 170, 117, 0.15) 0%, transparent 70%), radial-gradient(ellipse 45% 55% at 25% 80%, rgba(212, 168, 50, 0.12) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

/* ── Awareness cards ── */
.awareness-cards {
  margin-top: 32px;
}

.awareness-card .card-title {
  font-size: 18px;
  color: var(--accent);
}

.awareness-card p:last-child {
  margin-bottom: 0;
}

/* ── Vulnerability factors ── */
.vulnerability-section > .wrap > p {
  max-width: 700px;
}

.vulnerability-section .card-img {
  height: 165px;
}

.vulnerability-section .card-title {
  font-size: 19px;
  line-height: 1.5;
  color: var(--accent);
}

@media (max-width: 960px) {
  .t101-layout {
    grid-template-columns: 1fr;
  }
  .looks-layout {
    grid-template-columns: 1fr;
  }
  .legislative-layout {
    grid-template-columns: 1fr;
  }
  .wv-stats {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .wv-stats {
    grid-template-columns: 1fr;
  }
  .wv-stat-num {
    font-size: 34px;
  }
  .t101-section,
  .looks-section,
  .wv-section,
  .legislative-section,
  .resources-section {
    padding: 50px 0;
  }
}
/* ── Contact form section ── */
.contact-form-section {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

.contact-info-card {
  background: var(--sage-light);
  border-radius: 12px;
  padding: 44px 40px;
  border: 1px solid var(--border);
}

.contact-info-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 24px;
}

.contact-info-item {
  margin-bottom: 24px;
}

.contact-info-item:last-child {
  margin-bottom: 0;
}

.contact-info-label {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 6px;
}

.contact-info-item p {
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--text-mid);
  line-height: 1.6;
}

.contact-info-item a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
}

.contact-info-item a:hover {
  color: var(--accent-hover);
}

/* ── Mailing section ── */
.mailing-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.mailing-wrapper {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.mailing-text {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 32px;
}

/* ── Constant Contact form overrides ── */
.mailing-wrapper .ctct-form-wrapper {
  background: var(--white);
  border-radius: 12px;
  border: 1px solid var(--border);
  padding: 36px 32px;
  text-align: left;
}

.mailing-wrapper .ctct-form-wrapper p.ctct-gdpr-text,
.mailing-wrapper .ctct-form-wrapper .ctct-form-footer,
.mailing-wrapper .ctct-form-wrapper .ctct-form-disclaimer {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-light);
  line-height: 1.35;
}

.mailing-wrapper .ctct-form-field {
  margin-bottom: 16px;
}

.mailing-wrapper .ctct-form-field label {
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 6px;
  display: block;
}

.mailing-wrapper .ctct-form-field input[type=text],
.mailing-wrapper .ctct-form-field input[type=email],
.mailing-wrapper .ctct-form-field textarea,
.mailing-wrapper .ctct-form-field select {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-dark);
  background: var(--cream);
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.mailing-wrapper .ctct-form-field input:focus,
.mailing-wrapper .ctct-form-field textarea:focus,
.mailing-wrapper .ctct-form-field select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(74, 124, 124, 0.12);
}

.mailing-wrapper .ctct-form-wrapper .ctct-submit {
  background: var(--accent);
  border: 1.5px solid var(--accent);
  color: #fff;
  padding: 12px 32px;
  border-radius: 6px;
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
  width: 100%;
  margin-top: 8px;
}

.mailing-wrapper .ctct-form-wrapper .ctct-submit:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  box-shadow: 0 6px 24px rgba(184, 92, 82, 0.25);
}

/* ── Shared: Shop ── */
.shop-intro {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.shop-intro-text {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.shop-intro-text p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 16px;
}

/* ── Products ── */
.products-section {
  background: radial-gradient(ellipse 60% 50% at 10% 80%, rgba(111, 170, 117, 0.18) 0%, transparent 70%), radial-gradient(ellipse 50% 60% at 90% 20%, rgba(212, 168, 50, 0.14) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.product-card {
  background: var(--white);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.product-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.product-img {
  width: 100%;
  height: 240px;
  background: var(--sage-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-img span {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.product-body {
  padding: 24px 24px 28px;
}

.product-title {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--primary-dark);
  margin-bottom: 8px;
}

.product-price {
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 12px;
}

.product-desc {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.65;
}

/* ── WooCommerce note ── */
.woo-section {
  background: var(--warm);
  padding: 60px 0;
}

.woo-note {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.woo-note p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.72;
}

/* ── Jobs main (single-section page) ── */
.jobs-main {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  text-align: center;
  padding: 80px 0 210px;
}

/* ── Jobs ── */
.jobs-section {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.jobs-intro {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  max-width: 720px;
  margin-bottom: 48px;
}

.jobs-intro a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}

.jobs-intro a:hover {
  color: var(--accent-hover);
}

.jobs-empty {
  background: var(--sage-light);
  border-radius: 12px;
  padding: 60px 40px;
  text-align: center;
  border: 1px solid var(--border);
}

.jobs-empty-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.jobs-empty p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.72;
}

/* ── Volunteers ── */
.vol-section {
  background: radial-gradient(ellipse 60% 50% at 10% 80%, rgba(111, 170, 117, 0.18) 0%, transparent 70%), radial-gradient(ellipse 50% 60% at 90% 20%, rgba(212, 168, 50, 0.14) 0%, transparent 70%), var(--cream);
  padding: 80px 0;
}

.vol-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.vol-text p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 20px;
}

.vol-opps {
  background: var(--white);
  border-radius: 12px;
  padding: 44px 40px;
  border: 1px solid var(--border);
}

.vol-opps-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 20px;
}

.vol-opps ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.vol-opps li {
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--text-mid);
  padding-left: 24px;
  position: relative;
  line-height: 1.6;
}

.vol-opps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}

.vol-reg-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.vol-reg-wrapper {
  max-width: 700px;
  margin: 0 auto;
}

/* ── Resources page ── */
.help-section {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.help-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 28px;
  margin-top: 30px;
}

.help-card {
  background: var(--sage-light);
  border-radius: 12px;
  padding: 25px;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.help-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.help-card-title {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.help-card p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.72;
  margin-bottom: 12px;
}

.help-card a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
}

.help-card a:hover {
  color: var(--accent-hover);
}

.seeking-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.seeking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.seeking-card {
  background: var(--white);
  border-radius: 12px;
  padding: 36px 32px;
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}

.seeking-card:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
}

.seeking-card-title {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.seeking-card p {
  font-family: var(--font-ui);
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.72;
  margin-bottom: 12px;
}

.seeking-card a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
}

.seeking-card a:hover {
  color: var(--accent-hover);
}

/* ── Application page ── */
.form-section {
  background: radial-gradient(ellipse 60% 70% at 80% 25%, rgba(184, 92, 82, 0.12) 0%, transparent 65%), radial-gradient(ellipse 50% 55% at 20% 75%, rgba(74, 124, 124, 0.14) 0%, transparent 65%), var(--warm);
  padding: 80px 0;
}

.form-wrapper {
  max-width: 800px;
  margin: 0 auto;
}

.form-intro {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-mid);
  line-height: 1.85;
  margin-bottom: 36px;
  text-align: center;
}

.form-privacy {
  margin-top: 24px;
  background: var(--sage-light);
  border-radius: 8px;
  padding: 16px 24px;
  display: inline-block;
}

.form-privacy p {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-mid);
}

.contact-section {
  background: radial-gradient(ellipse 70% 55% at 5% 50%, rgba(111, 170, 117, 0.15) 0%, transparent 65%), radial-gradient(ellipse 50% 50% at 95% 30%, rgba(74, 124, 124, 0.12) 0%, transparent 65%), var(--white);
  padding: 80px 0;
  border-bottom: 1px solid var(--border);
}

.contact-card {
  background: var(--sage-light);
  border-radius: 12px;
  padding: 44px 40px;
  border: 1px solid var(--border);
}

.contact-card-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 16px;
}

.contact-card p {
  font-family: var(--font-ui);
  font-size: 16px;
  color: var(--text-mid);
  line-height: 1.72;
  margin-bottom: 8px;
}

.contact-card a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
}

.contact-card a:hover {
  color: var(--accent-hover);
}

/* ── News section (news page) ── */
.news-section {
  background: radial-gradient(ellipse 45% 70% at 85% 70%, rgba(123, 163, 163, 0.18) 0%, transparent 70%), radial-gradient(ellipse 55% 45% at 15% 30%, rgba(240, 230, 227, 0.55) 0%, transparent 70%), var(--white);
  padding: 80px 0;
}

.news-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

@media (max-width: 960px) {
  .contact-layout,
  .vol-layout,
  .legislative-layout {
    grid-template-columns: 1fr;
  }
  .help-grid,
  .seeking-grid,
  .products-grid,
  .news-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .help-grid,
  .seeking-grid,
  .products-grid,
  .news-grid {
    grid-template-columns: 1fr;
  }
}
/* ── WPForms overrides ── */
.wpforms-field {
  padding: 10px 0 !important;
}

.wpforms-field-label {
  margin-bottom: 8px !important;
  padding-bottom: 0 !important;
}

.wpforms-submit {
  background: var(--accent) !important;
  border: 1.5px solid var(--accent) !important;
  color: #fff !important;
  padding: 9px 20px !important;
  border-radius: 6px !important;
  font-family: var(--font-ui) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.wpforms-submit:hover {
  background: var(--accent-hover) !important;
  border-color: var(--accent-hover) !important;
  box-shadow: 0 6px 24px rgba(184, 92, 82, 0.25);
}

/* ── Article header ── */
.single-article__header {
  margin-bottom: 48px;
}

.single-article__title {
  font-family: var(--font-display);
  font-size: 33px;
  font-weight: 400;
  color: var(--primary-dark);
  line-height: 1.25;
  margin-bottom: 14px;
}

.single-article__meta {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-light);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Article body ── */
.single-article {
  padding: 64px 0 48px;
}

.wrap--article {
  max-width: 760px;
}

/* ── Article content — editorial typography ── */
.single-article__content {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-dark);
  line-height: 1.85;
}

.single-article__content p {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-dark);
  line-height: 1.85;
  margin-bottom: 24px;
}

.single-article__content p:first-child::first-letter {
  font-family: var(--font-display);
  font-size: 3.4em;
  float: left;
  line-height: 0.8;
  margin: 6px 12px 0 0;
  color: var(--primary-dark);
  font-weight: 400;
}

.single-article__content h2 {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 600;
  color: var(--primary-dark);
  line-height: 1.3;
  margin: 48px 0 18px;
}

.single-article__content h3 {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  color: var(--primary-dark);
  line-height: 1.35;
  margin: 40px 0 14px;
}

.single-article__content h4 {
  font-family: var(--font-ui);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-mid);
  margin: 36px 0 12px;
}

.single-article__content a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(196, 120, 96, 0.35);
  transition: text-decoration-color 0.2s, color 0.2s;
}

.single-article__content a:hover {
  color: var(--accent-hover);
  text-decoration-color: var(--accent-hover);
}

.single-article__content strong {
  color: var(--text-dark);
  font-weight: 700;
}

.single-article__content em {
  color: var(--text-mid);
}

.single-article__content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 32px 0;
}

.single-article__content figure {
  margin: 36px 0;
}

.single-article__content figure img {
  margin: 0;
  width: 100%;
}

.single-article__content figcaption {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-light);
  text-align: center;
  margin-top: 10px;
  font-style: italic;
}

/* ── Blockquotes ── */
.single-article__content blockquote {
  font-family: var(--font-display);
  font-size: 20px;
  font-style: italic;
  color: var(--primary-dark);
  line-height: 1.65;
  border-left: 3px solid var(--accent);
  padding: 4px 0 4px 28px;
  margin: 40px 0;
}

.single-article__content blockquote p {
  font-family: var(--font-display);
  font-size: 20px;
  font-style: italic;
  color: var(--primary-dark);
  line-height: 1.65;
  margin-bottom: 0;
}

.single-article__content blockquote cite {
  display: block;
  font-family: var(--font-ui);
  font-size: 13px;
  font-style: normal;
  color: var(--text-light);
  margin-top: 10px;
}

/* ── Lists ── */
.single-article__content ul,
.single-article__content ol {
  margin: 24px 0 24px 20px;
}

.single-article__content li {
  font-family: var(--font-ui);
  font-size: 17px;
  color: var(--text-dark);
  line-height: 1.8;
  margin-bottom: 8px;
  padding-left: 6px;
}

.single-article__content ul > li {
  list-style-type: none;
  position: relative;
  padding-left: 18px;
}

.single-article__content ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
}

/* ── Horizontal rule ── */
.single-article__content hr {
  border: none;
  height: 1px;
  background: var(--border);
  margin: 48px auto;
  max-width: 120px;
}

/* ── Tags ── */
.single-article__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 36px;
  margin-top: 48px;
  border-top: 1px solid var(--border);
}

.single-tag {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-mid);
  background: var(--sage-light);
  padding: 5px 14px;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.single-tag:hover {
  background: var(--primary);
  color: var(--white);
}

/* ── Post navigation ── */
.single-postnav {
  padding: 56px 0;
  border-top: 1px solid var(--border);
}

.single-postnav__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.single-postnav__link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px 28px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  transition: box-shadow 0.25s, border-color 0.25s;
}

.single-postnav__link:hover {
  box-shadow: 0 8px 28px rgba(74, 124, 124, 0.08);
  border-color: var(--secondary);
}

.single-postnav__link--next {
  text-align: right;
}

.single-postnav__label {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.single-postnav__title {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--primary-dark);
  line-height: 1.35;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .single-article {
    padding: 48px 0 36px;
  }
  .single-article__content p,
  .single-article__content {
    font-size: 17px;
    line-height: 1.8;
  }
  .single-postnav__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .single-postnav__link--next {
    text-align: left;
  }
}
@media (max-width: 480px) {
  .single-article__title {
    font-size: 28px;
  }
  .single-article__content p:first-child::first-letter {
    font-size: 2.8em;
    margin: 4px 8px 0 0;
  }
  .single-article__content blockquote {
    font-size: 18px;
    padding-left: 20px;
    margin: 28px 0;
  }
  .single-article__content blockquote p {
    font-size: 18px;
  }
  .single-article__content h2 {
    font-size: 24px;
    margin: 36px 0 14px;
  }
  .single-article__content h3 {
    font-size: 20px;
  }
  .wrap--article {
    padding: 0 24px;
  }
}
/*--------------------------------------------------------------
# Modules
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  display: block;
  font-size: 14px;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
  outline: 0;
}

/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*# sourceMappingURL=style.css.map */