/* Eidon Capital Readiness — SparkSite Build
   Build Matrix v1.0 | Hero A | Nav D | Services C | Section F | Fonts B | CTA F | Footer C | Accents C+F | Color B | Trust C
   Built by Strategy and Spark
   Updated: Scaled typography, spacing, and sizing for more presence and breathing room
*/

/* ===== RESET & BASE ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --navy: #0A1A3B;
  --navy-2: #112551;
  --navy-3: #1B3060;
  --navy-tint: rgba(10, 26, 59, 0.04);
  --gold: #C5A35B;
  --gold-light: #D8BC7E;
  --gold-tint: rgba(197, 163, 91, 0.08);
  --gold-border: rgba(197, 163, 91, 0.25);
  --white: #FFFFFF;
  --off-white: #F7F6F3;
  --cream: #F2F0EB;
  --grey: #4A5868;
  --grey-light: #7A8A9C;
  --grey-border: rgba(10, 26, 59, 0.08);
  --shadow: 0 4px 16px rgba(10, 26, 59, 0.10);
  --shadow-md: 0 8px 32px rgba(10, 26, 59, 0.15);
  --shadow-lg: 0 20px 60px rgba(10, 26, 59, 0.22);
  --radius: 12px;
  --radius-sm: 8px;
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --max-width: 1280px;
}

html { scroll-behavior: smooth; font-size: 17px; }

body {
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--white);
  color: var(--grey);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  line-height: 1.25;
  color: var(--navy);
}

a { color: var(--gold); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--gold-light); }

img { max-width: 100%; height: auto; display: block; }

section { padding: 100px 0; position: relative; }
section.hero, section.stats-bar { margin-bottom: 0; }
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 32px; }

/* ===== UTILITY BAR ===== */
.utility-bar {
  background: var(--navy);
  color: var(--gold-light);
  font-size: 0.88rem;
  padding: 10px 0;
}
.utility-bar .container {
  display: flex; align-items: center; justify-content: space-between;
}
.utility-bar a { color: var(--gold-light); }
.utility-bar a:hover { color: var(--white); }
.utility-contact { display: flex; gap: 28px; align-items: center; }
.utility-contact span { display: flex; align-items: center; gap: 8px; }
.utility-social { display: flex; gap: 16px; align-items: center; }
.utility-social a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(197,160,89,0.15); border: 1.5px solid var(--gold); transition: all 0.25s; }
.utility-social a:hover { background: var(--gold); border-color: var(--gold); transform: translateY(-1px); }
.utility-social a:hover svg { fill: var(--navy); }
.utility-social a svg { width: 15px; height: 15px; fill: #fff; }

/* ===== HEADER ===== */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--white);
  border-bottom: 1px solid var(--grey-border);
  box-shadow: var(--shadow);
}
.header-inner {
  max-width: var(--max-width); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 32px; gap: 40px;
}
.logo { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.logo-mark { width: 44px; height: 44px; border: 2px solid var(--gold); display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: var(--navy); border-radius: 6px; flex-shrink: 0; }
.logo-text { display: flex; flex-direction: column; line-height: 1.15; gap: 2px; }
.logo-text::after { content: ""; display: block; width: 40px; height: 2px; background: var(--gold); margin: 3px 0 0 0; }
.logo-text .brand { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 700; color: var(--navy); letter-spacing: 0.5px; }
.logo-text .tagline { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 2.5px; color: var(--gold); font-weight: 600; }

.nav-menu { display: flex; align-items: center; gap: 36px; }
.nav-menu a {
  color: var(--navy); font-size: 1.02rem; font-weight: 500;
  position: relative; padding: 6px 0;
}
.nav-menu a::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: var(--gold); transform: scaleX(0); transition: transform var(--transition);
}
.nav-menu a:hover::after, .nav-menu a.active::after { transform: scaleX(1); }
.nav-menu a.active { font-weight: 700; }
.nav-menu a.active::after { height: 3px; }
.nav-menu a:hover { color: var(--gold); }

.header-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 28px; border-radius: 50px;
  background: var(--navy); color: var(--white);
  font-size: 0.95rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; transition: all var(--transition);
  border: 2px solid var(--navy);
}
.header-cta:hover { background: var(--navy-2); border-color: var(--navy-2); color: var(--gold-light); transform: translateY(-1px); }

.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; }
.hamburger span { width: 26px; height: 2.5px; background: var(--navy); transition: all var(--transition); border-radius: 2px; }
.hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

.hero {
  background: var(--off-white);
  overflow: hidden;
  padding: 122px 0 129px;
  position: relative;
}
/* ===== HERO (Split-screen) ===== */
.hero-grid {
  display: grid; grid-template-columns: 42% 58%; gap: 48px; align-items: center;
}
.hero-content { max-width: 560px; }
.hero-eyebrow {
  display: inline-block; font-size: 0.7rem; text-transform: uppercase;
  letter-spacing: 2.5px; color: var(--gold); margin-bottom: 10px;
  font-weight: 600;
}
.hero h1 {
  font-size: clamp(1.725rem, 3vw, 2.325rem); margin-bottom: 14px;
  line-height: 1.2;
}
.hero h1 .accent { color: var(--gold); font-style: italic; }
.hero p {
  font-size: 0.92rem; color: var(--grey); margin-bottom: 18px;
}
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Split CTA buttons */
.btn-primary {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 11px 22px; border-radius: 50px;
  background: var(--navy); color: var(--white);
  font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; transition: all var(--transition);
  border: 2px solid var(--navy);
}
.btn-primary:hover { background: var(--navy-2); border-color: var(--navy-2); color: var(--gold-light); transform: translateY(-2px); box-shadow: var(--shadow-md); }

.btn-secondary {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 11px 22px; border-radius: 50px;
  background: transparent; color: var(--navy);
  font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; transition: all var(--transition);
  border: 2px solid var(--navy);
}
.btn-secondary:hover { background: var(--navy); color: var(--white); transform: translateY(-2px); }

.btn-gold {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 11px 22px; border-radius: 50px;
  background: var(--gold); color: var(--navy);
  font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; transition: all var(--transition);
  border: 2px solid var(--gold);
}
.btn-gold:hover { background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-2px); box-shadow: var(--shadow-md); }

/* Hero visual — video placeholder */
.hero-visual {
  position: relative; border-radius: var(--radius); overflow: hidden;
  aspect-ratio: 16/9; background: var(--navy);
box-shadow: 0 24px 64px rgba(10, 26, 59, 0.25), 0 8px 24px rgba(10, 26, 59, 0.15); }
.hero-visual::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
}
.hero-visual-content {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 20px; z-index: 2;
}
.hero-visual-content .play-btn {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(197, 163, 91, 0.15); border: 2px solid var(--gold);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all var(--transition);
}
.hero-visual-content .play-btn:hover { background: var(--gold); transform: scale(1.05); }
.hero-visual-content .play-btn svg { width: 26px; height: 26px; fill: var(--gold); }
.hero-visual-content .play-btn:hover svg { fill: var(--navy); }
.hero-visual-content p { color: var(--gold-light); font-size: 0.78rem; letter-spacing: 1px; text-transform: uppercase; }

/* ===== SECTION NUMBER LABELS (Accent C) ===== */
.section-number {
  font-family: 'Playfair Display', serif; font-size: 0.95rem;
  color: var(--gold); font-weight: 600; letter-spacing: 2px;
  display: block; margin-bottom: 12px;
}

/* ===== SECTION HEADER ===== */
.section-header { text-align: center; margin-bottom: 64px; }
.section-header .section-number { text-align: center; }
.section-header h2 { font-size: clamp(2rem, 4vw, 2.9rem); }
.section-header p { color: var(--grey); margin-top: 16px; max-width: 640px; margin-left: auto; margin-right: auto; font-size: 1.1rem; }

/* ===== STATS BAR (Trust C) ===== */
.stats-bar {
  background: var(--navy); padding: 64px 0;
box-shadow: 0 4px 24px rgba(10, 26, 59, 0.12); }
.stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
}
.stat-item { text-align: center; }
.stat-number {
  font-family: 'Playfair Display', serif; font-size: clamp(2.67rem, 4.3vw, 3.87rem);
  font-weight: 700; color: var(--gold); line-height: 1; margin-bottom: 12px;
}
.stat-label { color: rgba(255,255,255,0.75); font-size: 0.95rem; text-transform: uppercase; letter-spacing: 1.5px; }
.stat-desc { color: rgba(255,255,255,0.55); font-size: 0.88rem; margin-top: 6px; }

/* ===== PROBLEM/SOLUTION SECTION ===== */
.problem-solution { background: var(--white); }
.ps-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start;
}
.ps-content h2 { font-size: 2.4rem; margin-bottom: 24px; }
.ps-content p { color: var(--grey); margin-bottom: 18px; font-size: 1.05rem; }
.ps-content strong { color: var(--navy); }
.ps-list { list-style: none; margin-top: 28px; }
.ps-list li {
  display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--grey-border);
}
.ps-list li:last-child { border-bottom: none; }
.ps-list .ps-icon {
  width: 40px; height: 40px; border-radius: 50%; background: var(--gold-tint);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  font-size: 0.95rem; font-weight: 700; color: var(--gold);
}
.ps-list h4 { font-size: 1.15rem; margin-bottom: 6px; }
.ps-list p { font-size: 0.98rem; margin: 0; }
.ps-visual img { border-radius: var(--radius); box-shadow: var(--shadow-md); width: 100%; }

/* New layout: centered header + full-width image + 2x2 grid */
.ps-header { text-align: center; max-width: 800px; margin: 0 auto 40px; }
.ps-header .section-number { display: block; margin-bottom: 12px; }
.ps-header h2 { font-size: clamp(2rem, 4vw, 2.9rem); margin-bottom: 20px; }
.ps-header p { color: var(--grey); font-size: 1.1rem; line-height: 1.7; max-width: 680px; margin: 0 auto; }
.ps-header strong { color: var(--navy); }
.ps-visual-full { width: 100%; margin-bottom: 48px; }
.ps-visual-full img { width: 100%; border-radius: var(--radius); box-shadow: 0 8px 20px rgba(10, 26, 59, 0.28); display: block; }
.ps-grid-2x2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.ps-card { background: var(--cream); border-radius: var(--radius); padding: 28px 32px; border-left: 3px solid var(--gold); transition: transform 0.25s, box-shadow 0.25s; }
.ps-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.ps-card .ps-icon { width: 40px; height: 40px; border-radius: 50%; background: var(--gold-tint); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.95rem; font-weight: 700; color: var(--gold); margin-bottom: 16px; transition: all 0.25s; }
.ps-card:hover .ps-icon { background: var(--gold); color: var(--white); }
.ps-card h4 { font-size: 1.15rem; margin-bottom: 8px; color: var(--navy); }
.ps-card p { font-size: 0.98rem; color: var(--grey); line-height: 1.6; margin: 0; }

/* Mobile: 2x2 becomes 1 column */
@media (max-width: 768px) {
  .ps-grid-2x2 { grid-template-columns: 1fr; gap: 20px; }
  .ps-header h2 { font-size: 1.5rem; }
  .ps-header p { font-size: 1rem; }
  .ps-visual-full { margin-bottom: 32px; }
  .ps-card { padding: 20px 24px; }
}

/* ===== SERVICES OVERVIEW (Accordion) ===== */
.services-section { background: var(--cream); }
.accordion { max-width: 860px; margin: 0 auto; }
.accordion-item {
  background: var(--white); border-radius: var(--radius); margin-bottom: 18px;
  border: 1px solid var(--grey-border); overflow: hidden;
  transition: box-shadow var(--transition);
}
.accordion-item:hover { box-shadow: var(--shadow-md); }
.accordion-header {
  display: flex; align-items: center; gap: 24px; padding: 28px 32px;
  cursor: pointer; user-select: none;
}
.accordion-tier-logo { width: 64px; height: 64px; flex-shrink: 0; }
.accordion-header-text { flex: 1; }
.accordion-header-text h3 { font-size: 1.4rem; margin-bottom: 4px; }
.accordion-header-text .tier-tag { font-size: 0.85rem; color: var(--gold); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.accordion-price { font-family: 'Playfair Display', serif; font-size: 1.25rem; color: var(--navy); font-weight: 700; white-space: nowrap; }
.accordion-toggle {
  width: 36px; height: 36px; border-radius: 50%; background: var(--navy);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  transition: transform var(--transition);
}
.accordion-item.open .accordion-toggle { transform: rotate(180deg); }
.accordion-toggle svg { width: 18px; height: 18px; stroke: var(--gold); fill: none; stroke-width: 2; }
.accordion-body {
  max-height: 0; overflow: hidden; transition: max-height 0.4s ease;
}
.accordion-body-inner { padding: 0 32px 28px 110px; text-align: center; }
.accordion-body-inner p { color: var(--grey); margin-bottom: 14px; font-size: 1rem; text-align: left; }
.accordion-body-inner ul { margin: 14px 0 18px 20px; text-align: left; }
.accordion-body-inner li { margin-bottom: 10px; color: var(--grey); font-size: 1rem; }
.accordion-body-inner .tier-cta { margin-top: 18px; }

/* ===== TRUST STRIP (Accent F) ===== */
.trust-strip {
  background: var(--cream); padding: 48px 0;
  border-top: 1px solid var(--grey-border); border-bottom: 1px solid var(--grey-border);
}
.trust-strip-content {
  display: flex; align-items: center; justify-content: center; gap: 48px;
  flex-wrap: wrap; text-align: center;
}
.trust-item { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.trust-item .trust-icon { width: 48px; height: 48px; opacity: 0.7; }
.trust-item .trust-label { font-size: 0.88rem; color: var(--grey); font-weight: 500; text-transform: uppercase; letter-spacing: 1px; }

/* ===== ABOUT PAGE ===== */
.about-hero { background: var(--navy); padding: 120px 0 100px; color: var(--white); position: relative; overflow: hidden; }
.about-hero h1 { color: var(--white); font-size: clamp(2.2rem, 4.5vw, 3.3rem); }
.about-hero h1 .accent { color: var(--gold); font-style: italic; }
.about-hero p { color: rgba(255,255,255,0.75); font-size: 1.25rem; max-width: 680px; margin: 24px auto 0; }

.about-story { background: var(--white); }
.about-story-grid {
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 64px; align-items: start;
}
.about-story-content h2 { font-size: 2.3rem; margin-bottom: 24px; }
.about-story-content p { color: var(--grey); margin-bottom: 18px; font-size: 1.05rem; }
.about-story-content strong { color: var(--navy); }
.about-story-content .quote-block {
  border-left: 3px solid var(--gold); padding: 20px 0 20px 28px;
  margin: 28px 0; font-family: 'Playfair Display', serif;
  font-size: 1.45rem; font-style: italic; color: var(--navy); line-height: 1.5;
}

/* ===== HEIDI BIO ===== */
.heidi-bio { background: var(--off-white); }
/* ===== BIO PHOTO ===== */
.bio-photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: center;
}
.bio-photo img {
  width: 100%;
  max-width: 360px;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(10, 26, 59, 0.15);
  border: 3px solid var(--gold);
  object-fit: cover;
  aspect-ratio: 3/4;
}
.bio-photo-caption {
  margin-top: 16px;
  text-align: center;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--navy);
}
.bio-photo-caption span {
  display: block;
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 4px;
}

.bio-grid {
  display: grid; grid-template-columns: auto 1fr 1fr; gap: 48px; align-items: start;
}
.bio-content h2 { font-size: 2.4rem; margin-bottom: 20px; }
.bio-content h3 { font-size: 1.55rem; margin: 28px 0 14px; color: var(--navy); }
.bio-content p { color: var(--grey); margin-bottom: 16px; font-size: 1.05rem; }
.bio-timeline { list-style: none; margin-top: 24px; }
.bio-timeline li {
  display: flex; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--grey-border);
  font-size: 1.02rem;
}
.bio-timeline li:last-child { border-bottom: none; }
.bio-timeline .timeline-year { color: var(--gold); font-weight: 700; min-width: 110px; }

/* ===== PRICING CARDS ===== */
.pricing-section { background: var(--off-white); }
.pricing-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 48px;
}
.pricing-card {
  background: var(--white); border-radius: var(--radius); padding: 44px 36px;
  border: 1px solid var(--grey-border); transition: all var(--transition); box-shadow: 0 4px 20px rgba(10, 26, 59, 0.08);
  display: flex; flex-direction: column;
}
.pricing-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); border-color: var(--gold-border); }
.pricing-card.featured {
  border-color: var(--gold); border-width: 2px; position: relative;
}
.pricing-card.featured::before {
  content: 'Most Popular'; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: var(--gold); color: var(--navy); font-size: 0.78rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; padding: 5px 18px; border-radius: 50px;
}
.pricing-card .tier-icon { width: 72px; height: 72px; margin-bottom: 24px; }
.pricing-card h3 { font-size: 1.55rem; margin-bottom: 6px; }
.pricing-card .tier-subtitle { font-size: 0.88rem; color: var(--gold); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px; }
.pricing-card .price { font-family: 'Playfair Display', serif; font-size: 2.2rem; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.pricing-card .price-detail { font-size: 0.88rem; color: var(--grey-light); margin-bottom: 28px; }
.pricing-card .price-features { list-style: none; margin-bottom: 32px; flex: 1; }
.pricing-card .price-features li {
  padding: 10px 0; font-size: 0.98rem; color: var(--grey); border-bottom: 1px solid var(--grey-border);
  display: flex; gap: 12px;
}
.pricing-card .price-features li::before { content: '\2713'; color: var(--gold); font-weight: 700; }
.pricing-card .price-features li:last-child { border-bottom: none; }

/* Complimentary sessions */
.complimentary-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 48px;
}
.complimentary-card {
  background: var(--white); border-radius: var(--radius); padding: 36px;
  border: 1px solid var(--grey-border); border-left: 4px solid var(--gold);
}
.complimentary-card .free-badge {
  display: inline-block; background: var(--navy);
  color: var(--gold);
  font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px;
  padding: 5px 14px; border-radius: 50px; margin-bottom: 14px;
}
.complimentary-card h3 { font-size: 1.4rem; margin-bottom: 14px; }
.complimentary-card p { font-size: 1rem; margin-bottom: 18px; }

/* ===== BOOKING PAGE ===== */
.booking-section { background: var(--off-white); }
.booking-options {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 56px;
}
.booking-card {
  background: var(--white); border-radius: var(--radius); padding: 36px 28px;
  border: 1px solid var(--grey-border); text-align: center; transition: all var(--transition); box-shadow: 0 4px 20px rgba(10, 26, 59, 0.08); }
.booking-card:hover { box-shadow: var(--shadow-md); border-color: var(--gold-border); }
.booking-card .booking-icon { width: 64px; height: 64px; margin: 0 auto 20px; }
.booking-card h3 { font-size: 1.25rem; margin-bottom: 10px; }
.booking-card p { font-size: 0.95rem; margin-bottom: 24px; }
.booking-card .booking-time { font-size: 0.85rem; color: var(--gold); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px; }

/* Booking form */
.booking-form {
  background: var(--white); border-radius: var(--radius); padding: 44px;
  box-shadow: var(--shadow-md); max-width: 680px; margin: 0 auto;
}
.form-group { margin-bottom: 24px; }
.form-group label { display: block; font-size: 0.92rem; font-weight: 600; color: var(--navy); margin-bottom: 8px; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: 14px 18px; border: 1px solid var(--grey-border);
  border-radius: var(--radius-sm); font-family: inherit; font-size: 1rem;
  color: var(--navy); background: var(--off-white); transition: all var(--transition);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-tint);
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-submit { width: 100%; justify-content: center; }

/* ===== CONTACT PAGE ===== */
.contact-section { background: var(--white); }
.contact-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start;
}
.contact-info h2 { font-size: 2.4rem; margin-bottom: 24px; }
.contact-info p { color: var(--grey); margin-bottom: 28px; font-size: 1.05rem; }
.contact-detail { display: flex; gap: 18px; margin-bottom: 24px; }
.contact-detail .cd-icon {
  width: 48px; height: 48px; border-radius: 50%; background: var(--navy);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.contact-detail .cd-icon svg { width: 22px; height: 22px; stroke: var(--gold); fill: none; stroke-width: 2; }
.contact-detail .cd-text h4 { font-size: 1.05rem; margin-bottom: 4px; }
.contact-detail .cd-text a, .contact-detail .cd-text p { font-size: 0.98rem; color: var(--grey); }
.contact-detail .cd-text a:hover { color: var(--gold); }

.social-links { display: flex; gap: 14px; margin-top: 32px; }
.social-links a {
  width: 48px; height: 48px; border-radius: 50%; background: var(--navy);
  display: flex; align-items: center; justify-content: center; transition: all var(--transition);
}
.social-links a:hover { background: var(--gold); transform: translateY(-2px); }
.social-links a svg { width: 22px; height: 22px; fill: var(--white); }
.social-links a:hover svg { fill: var(--navy); }

/* Communication protocols */
.comm-protocols { background: var(--cream); border-radius: var(--radius); padding: 36px; margin-top: 48px; }
.comm-protocols h3 { font-size: 1.3rem; margin-bottom: 18px; }
.comm-protocols p { font-size: 0.98rem; margin-bottom: 14px; }
.comm-protocols ul { margin-left: 20px; }
.comm-protocols li { font-size: 0.98rem; margin-bottom: 10px; color: var(--grey); }

/* ===== FAQ SECTION ===== */
.faq-section { background: var(--white); }
.faq-grid { max-width: 800px; margin: 0 auto; }
.faq-item {
  border-bottom: 1px solid var(--grey-border); padding: 8px 0;
}
.faq-question {
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer; font-weight: 600; color: var(--navy); font-size: 1.15rem;
}
.faq-question .faq-toggle {
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: transform var(--transition);
}
.faq-item.open .faq-toggle { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.faq-answer p { padding-top: 8px; color: var(--grey); font-size: 1.02rem; }
/* Give the homepage questions room to scan without changing other FAQ pages. */
#questions .faq-item { padding: 16px 0; }
#questions .faq-question { gap: 20px; line-height: 1.45; }
#questions .faq-answer p { padding: 12px 0 10px; line-height: 1.7; }

/* ===== OPERATIONAL BOUNDARY ===== */
.operational-boundary {
  background: var(--navy); color: var(--white); text-align: center; padding: 72px 0;
}
.operational-boundary .container { max-width: 840px; }
.operational-boundary .section-number { color: var(--gold); }
.operational-boundary h2 { color: var(--white); font-size: 2rem; margin-bottom: 20px; }
.operational-boundary p { color: rgba(255,255,255,0.75); font-size: 1.15rem; }

/* ===== CTA BANNER ===== */
.cta-banner {
  background: var(--navy); padding: 100px 0; text-align: center;
  position: relative; overflow: hidden;
box-shadow: 0 -4px 32px rgba(10, 26, 59, 0.12); }
.cta-banner::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
}
.cta-banner .container { position: relative; z-index: 2; }
.cta-banner h2 { color: var(--white); font-size: clamp(2rem, 4vw, 2.9rem); margin-bottom: 20px; }
.cta-banner h2 .accent { color: var(--gold); font-style: italic; }
.cta-banner p { color: rgba(255,255,255,0.75); font-size: 1.2rem; margin-bottom: 36px; max-width: 600px; margin-left: auto; margin-right: auto; }
.cta-banner .hero-actions { justify-content: center; }

/* ===== FOOTER LOGO ===== */
.footer-logo-img {
  max-width: 240px;
  height: auto;
  border-radius: 8px;
  margin-bottom: 8px;
}
@media (max-width: 480px) { .footer-logo-img { max-width: 180px; } }

/* ===== PROCESS DIAGRAM ===== */
.process-diagram-section {
  padding: 80px 0;
  background: var(--cream);
  text-align: center;
}
.process-diagram-section h2 {
  font-family: 'Playfair Display', serif;
  font-size: 2.4rem;
  color: var(--navy);
  margin-bottom: 16px;
}
.process-intro {
  max-width: 600px;
  margin: 0 auto 40px;
  color: var(--blue-grey);
  font-size: 1.05rem;
}
.process-diagram-wrap {
  max-width: 1000px;
  margin: 0 auto;
}
.process-diagram-wrap img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(10, 26, 59, 0.08);
}
@media (max-width: 768px) {
  .process-diagram-wrap img { max-width: 100%; }
  .process-diagram-section h2 { font-size: 1.8rem; }
}

/* ===== FOOTER ===== */
.site-footer {
  background: var(--cream); padding: 72px 0 28px;
  border-top: 1px solid var(--grey-border);
}
.site-footer .container { padding-left: 52px; }
.footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px;
  margin-bottom: 48px;
}
.footer-brand { margin-bottom: 20px; }

.footer-tagline { font-size: 0.98rem; color: var(--grey); margin-bottom: 20px; }
.footer-social { display: flex; gap: 12px; }
.footer-social a {
  width: 40px; height: 40px; border-radius: 50%; background: var(--navy);
  display: flex; align-items: center; justify-content: center; transition: all var(--transition);
}
.footer-social a:hover { background: var(--gold); }
.footer-social a svg { width: 18px; height: 18px; fill: var(--white); }
.footer-social a:hover svg { fill: var(--navy); }

.footer-col h4 { font-size: 0.92rem; text-transform: uppercase; letter-spacing: 1.5px; color: var(--navy); margin-bottom: 18px; }
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: 10px; }
.footer-col a { color: var(--grey); font-size: 0.98rem; }
.footer-col a:hover { color: var(--gold); }

.footer-bottom {
  border-top: 1px solid var(--grey-border); padding-top: 24px;
  display: flex; align-items: center; justify-content: space-between;
  padding-left: 0; margin-left: -20px;
}
.footer-bottom p { font-size: 0.85rem; color: var(--grey-light); }
.footer-bottom .footer-legal { display: flex; gap: 24px; }
.footer-bottom .footer-legal a { font-size: 0.85rem; color: var(--grey-light); }

/* ===== PAGE HERO (interior pages) ===== */
.page.hero {
  background: var(--off-white); padding: 72px 0 56px; text-align: center;
}
.page-hero { text-align: center; }
.page-hero h1 { font-size: clamp(2.2rem, 4.5vw, 3.2rem); margin-bottom: 16px; }
.page-hero p { color: var(--grey); font-size: 1.2rem; max-width: 640px; margin: 0 auto; }

/* ===== RESPONSIVE ===== */
@media (max-width: 968px) {
  section { padding: 72px 0; }
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero-content { max-width: 100%; text-align: center; }
  .hero h1 .accent { display: block; }
  .hero-eyebrow { display: block; text-align: center; }
  .hero-eyebrow::after { display: inline-block; width: 32px; margin-left: 12px; margin-top: 0; animation: none; }
  .hero-visual { aspect-ratio: 16/10; }
  .ps-grid, .about-story-grid, .bio-grid, .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  .pricing-grid { grid-template-columns: 1fr; }
  .booking-options { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .nav-menu {
    display: none; position: fixed; top: 0; right: 0; bottom: 0;
    width: 300px; background: var(--white); flex-direction: column;
    padding: 90px 28px 28px; gap: 8px; box-shadow: var(--shadow-lg);
    z-index: 99;
  }
  .nav-menu.open { display: flex; }
  .nav-menu a { padding: 14px 0; font-size: 1.1rem; }
  .hamburger {
    display: flex; position: relative; z-index: 101;
    min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
    background: transparent; border: 0;
  }
  .header-cta { display: none; }
  .utility-bar { display: none; }
  .trust-strip-content { gap: 28px; }
}

@media (max-width: 600px) {
  section { padding: 60px 0; }
  .container { padding: 0 20px; }
  .stats-grid { grid-template-columns: 1fr; }
  .complimentary-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; } .site-footer .container { padding-left: 40px !important; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; margin-left: 0; }
  .hero-actions { flex-direction: column; }
  .hero-actions a { width: 100%; justify-content: center; }
  .accordion-body-inner { padding: 0 28px 28px; }
  .accordion-header { flex-wrap: wrap; }
  .accordion-price { width: 100%; margin-top: 8px; }
  .header-inner { padding: 14px 20px; }
  .logo-mark { width: 38px; height: 38px; font-size: 1.3rem; }
  .logo-text .brand { font-size: 1.4rem; }
  .trust-strip-content { flex-direction: column; gap: 20px; }
  .about-story-content h2, .ps-content h2 { font-size: 1.6rem; }
  .section-header h2 { font-size: 1.5rem; }
  .about-hero h1 { font-size: 1.6rem; }
  .page-hero h1 { font-size: 1.6rem; }
  .bio-timeline li { flex-direction: column; gap: 4px; }
  .bio-timeline .timeline-year { min-width: 0; }
  .bio-photo img { max-width: 280px; }
  .pricing-card { padding: 28px 20px; }
  .booking-card { padding: 28px 20px; }
  .stat-number { font-size: 2.27rem; }
  .hero h1 { font-size: 1.625rem; }
  .hero p { font-size: 0.88rem; }
  .hero-eyebrow { font-size: 0.62rem; letter-spacing: 2px; }
  .hero-content { text-align: center; max-width: 100%; }
  .hero h1 .accent { display: block; }
  .hero-eyebrow { display: block; text-align: center; }
  .hero-eyebrow::after { display: inline-block; width: 32px; margin-left: 12px; margin-top: 0; animation: none; }
  .hero-actions { align-items: center; }
  .btn-primary, .btn-secondary, .btn-gold { padding: 10px 18px; font-size: 0.78rem; }
  .insider-lead { font-size: 1rem; }
  .insider-narrative p { font-size: 0.92rem; }
  .four-steps-visual { max-width: 100%; }
  .policy-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ===== SCROLL REVEAL ===== */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1), transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.reveal-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* ===== HERO ENHANCEMENTS ===== */
.hero::before {
  content: '';
  position: absolute;
  top: 0; right: 0; width: 50%; height: 100%;
  background: radial-gradient(ellipse at 70% 40%, rgba(197, 163, 91, 0.06) 0%, transparent 60%);
  pointer-events: none;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 30%, var(--gold) 70%, transparent 100%);
  opacity: 0.5;
}

/* Hero visual — animated shimmer */
.hero-visual::after {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(135deg, transparent 30%, rgba(197, 163, 91, 0.04) 50%, transparent 70%);
  background-size: 200% 200%;
  animation: shimmer 6s ease-in-out infinite;
}
@keyframes shimmer {
  0%, 100% { background-position: 0% 0%; }
  50% { background-position: 100% 100%; }
}

/* Play button pulse */
.hero-visual-content .play-btn {
  animation: pulse-ring 2.5s ease-out infinite;
}
@keyframes pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(197, 163, 91, 0.4); }
  70% { box-shadow: 0 0 0 24px rgba(197, 163, 91, 0); }
  100% { box-shadow: 0 0 0 0 rgba(197, 163, 91, 0); }
}

/* ===== STATS BAR ENHANCEMENTS ===== */
.stats-bar {
  position: relative;
  overflow: hidden;
box-shadow: 0 4px 24px rgba(10, 26, 59, 0.12); }
.stats-bar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.4;
}
.stat-item {
  position: relative;
  padding: 0 12px;
}
.stat-item::after {
  content: '';
  position: absolute;
  right: 0; top: 15%; bottom: 15%;
  width: 1px;
  background: rgba(255, 255, 255, 0.08);
}
.stat-item:last-child::after { display: none; }
.stat-item:nth-child(1) { animation-delay: 0ms; }
.stat-item:nth-child(2) { animation-delay: 120ms; }
.stat-item:nth-child(3) { animation-delay: 240ms; }
.stat-item:nth-child(4) { animation-delay: 360ms; }

/* ===== SECTION DIVIDERS ===== */
.services-section::after,
.faq-section::after {
  content: '';
  display: block;
  width: 60px; height: 3px;
  background: var(--gold);
  border-radius: 2px;
  margin: 0 auto;
  opacity: 0.3;
}

/* ===== CARD HOVER ENHANCEMENTS ===== */
.accordion-item {
  transition: box-shadow var(--transition), transform var(--transition);
}
.accordion-item:hover {
  transform: translateX(4px);
}

.pricing-card {
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 4px 20px rgba(10, 26, 59, 0.08); }

.booking-card {
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 4px 20px rgba(10, 26, 59, 0.08); }
.booking-card:hover {
  transform: translateY(-6px);
}

/* ===== PROBLEM LIST ICON ENHANCEMENTS ===== */
.ps-list .ps-icon {
  transition: all var(--transition);
}
.ps-list li:hover .ps-icon {
  background: var(--gold);
  color: var(--white);
  transform: scale(1.1);
}

/* ===== SECTION NUMBER ACCENT LINE ===== */
.section-number::before {
  content: '';
  display: inline-block;
  width: 24px; height: 2px;
  background: var(--gold);
  vertical-align: middle;
  margin-right: 10px;
  margin-bottom: 3px;
}

/* ===== CTA BANNER ENHANCEMENT ===== */
.cta-banner::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 30%, var(--gold) 70%, transparent 100%);
  opacity: 0.4;
}

/* ===== NAV UNDERLINE GROWTH ===== */
.nav-menu a {
  transition: color var(--transition);
}

/* ===== BUTTON SHINE EFFECT ===== */
.btn-primary, .btn-gold, .header-cta {
  position: relative;
  overflow: hidden;
}
.btn-primary::before, .btn-gold::before, .header-cta::before {
  content: '';
  position: absolute;
  top: 0; left: -100%; width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
  transition: left 0.6s ease;
}
.btn-primary:hover::before, .btn-gold:hover::before, .header-cta:hover::before {
  left: 100%;
}

/* ===== HERO CONTENT ENHANCEMENT ===== */
.hero-eyebrow {
  position: relative;
}
.hero-eyebrow::before {
  content: '';
  display: inline-block;
  width: 32px; height: 2px;
  background: var(--gold);
  vertical-align: middle;
  margin-right: 12px;
  margin-bottom: 3px;
}

/* ===== ABOUT HERO PATTERN ===== */
.about-hero {
  position: relative;
  overflow: hidden;
}
.about-hero::before {
  content: '';
  position: absolute;
  top: 0; right: 0; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 80% 50%, rgba(197, 163, 91, 0.08) 0%, transparent 60%);
  pointer-events: none;
}
.about-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 30%, var(--gold) 70%, transparent 100%);
  opacity: 0.5;
}

/* ===== QUOTE BLOCK ENHANCEMENT ===== */
.about-story-content .quote-block {
  position: relative;
}
.about-story-content .quote-block::before {
  content: '"';
  position: absolute;
  top: -20px; left: 20px;
  font-family: 'Playfair Display', serif;
  font-size: 4rem;
  color: var(--gold);
  opacity: 0.2;
  line-height: 1;
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero-visual::after { animation: none; }
  .hero-visual-content .play-btn { animation: none; }
  * { scroll-behavior: auto !important; }
}

/* ===== HERO WOW ENHANCEMENTS v2 ===== */

/* Animated mesh gradient background behind hero */
.hero::before {
  content: '';
  position: absolute;
  top: 0; right: 0; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 65% 35%, rgba(197, 163, 91, 0.08) 0%, transparent 55%),
              radial-gradient(ellipse at 85% 75%, rgba(10, 26, 59, 0.04) 0%, transparent 50%);
  pointer-events: none;
  animation: mesh-drift 12s ease-in-out infinite alternate;
}
@keyframes mesh-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  100% { transform: translate(-20px, 15px) scale(1.05); opacity: 0.7; }
}

/* Floating decorative orbs */
.hero .hero-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.hero .hero-orb-1 {
  width: 280px; height: 280px;
  top: -60px; right: -40px;
  background: radial-gradient(circle, rgba(197, 163, 91, 0.06) 0%, transparent 70%);
  animation: orb-float-1 8s ease-in-out infinite alternate;
}
.hero .hero-orb-2 {
  width: 200px; height: 200px;
  bottom: 20px; left: 10%;
  background: radial-gradient(circle, rgba(10, 26, 59, 0.04) 0%, transparent 70%);
  animation: orb-float-2 10s ease-in-out infinite alternate;
}
@keyframes orb-float-1 {
  0% { transform: translate(0, 0); }
  100% { transform: translate(-15px, 25px); }
}
@keyframes orb-float-2 {
  0% { transform: translate(0, 0); }
  100% { transform: translate(20px, -18px); }
}

/* Staggered entrance animations on load */
.hero-eyebrow {
  opacity: 0;
  transform: translateY(20px);
  animation: hero-enter 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.15s forwards;
}
.hero h1 {
  opacity: 0;
  transform: translateY(24px);
  animation: hero-enter 0.7s cubic-bezier(0.4, 0, 0.2, 1) 0.3s forwards;
}
.hero p {
  opacity: 0;
  transform: translateY(20px);
  animation: hero-enter 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.5s forwards;
}
.hero-actions {
  opacity: 0;
  transform: translateY(18px);
  animation: hero-enter 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
}
.hero-visual {
  opacity: 0;
  transform: translateY(30px) scale(0.97);
  animation: hero-visual-enter 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.4s forwards;
}
@keyframes hero-enter {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes hero-visual-enter {
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Gold accent sweep line under eyebrow */
.hero-eyebrow::after {
  content: '';
  display: block;
  width: 0; height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
  margin-top: 10px;
  animation: line-sweep 1s ease-out 0.8s forwards;
}
@keyframes line-sweep {
  to { width: 48px; }
}

/* Gradient text on h1 accent */
.hero h1 .accent {
  background: linear-gradient(135deg, var(--gold) 0%, #d4af6a 50%, var(--gold) 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gold-shimmer 4s ease-in-out infinite;
}
@keyframes gold-shimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Primary button glow pulse */
.hero .btn-primary {
  position: relative;
  animation: btn-glow 3s ease-in-out infinite;
}
@keyframes btn-glow {
  0%, 100% { box-shadow: 0 4px 16px rgba(10, 26, 59, 0.2), 0 0 0 0 rgba(197, 163, 91, 0); }
  50% { box-shadow: 0 6px 24px rgba(10, 26, 59, 0.25), 0 0 20px 0 rgba(197, 163, 91, 0.15); }
}

/* Enhanced video container — animated gold border */
.hero-visual {
  position: relative;
  border: 1px solid rgba(197, 163, 91, 0.15);
}
.hero-visual::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: var(--radius);
  padding: 1px;
  background: linear-gradient(135deg, rgba(197, 163, 91, 0.3), transparent 40%, transparent 60%, rgba(197, 163, 91, 0.15));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 2;
  background-size: 200% 200%;
  animation: border-shimmer 5s ease-in-out infinite;
}
@keyframes border-shimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Enhanced play button — bigger glow */
.hero-visual-content .play-btn {
  position: relative;
  background: rgba(197, 163, 91, 0.08);
  border: 2px solid rgba(197, 163, 91, 0.4);
  transition: all 0.4s ease;
}
.hero-visual-content .play-btn:hover {
  background: rgba(197, 163, 91, 0.15);
  border-color: rgba(197, 163, 91, 0.7);
  transform: scale(1.08);
}
.hero-visual-content .play-btn::before {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 1px solid rgba(197, 163, 91, 0.2);
  animation: ring-expand 3s ease-out infinite;
}
@keyframes ring-expand {
  0% { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* Stats bar animated gold top line */
.stats-bar::before {
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  background-size: 200% 100%;
  animation: gold-sweep 4s ease-in-out infinite;
}
@keyframes gold-sweep {
  0%, 100% { background-position: -100% 0; opacity: 0.3; }
  50% { background-position: 100% 0; opacity: 0.6; }
}

/* Section headers — gold underline animation */
.section-header::after {
  content: '';
  display: block;
  width: 0; height: 3px;
  background: var(--gold);
  border-radius: 2px;
  margin: 16px auto 0;
  transition: width 0.8s ease 0.3s;
}
.section-header.reveal-visible::after {
  width: 60px;
}

/* Subtle background pattern on problem/solution sections */
.problem-solution, .services-section {
  position: relative;
}
.problem-solution::before, .services-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(10, 26, 59, 0.03) 1px, transparent 0);
  background-size: 32px 32px;
  pointer-events: none;
  z-index: 0;
}
.problem-solution > .container, .services-section > .container {
  position: relative;
  z-index: 1;
}

/* Card hover lift with shadow bloom */
.accordion-item:hover {
  transform: translateX(4px) !important;
  box-shadow: 0 8px 32px rgba(10, 26, 59, 0.15) !important;
}
.pricing-card:hover {
  box-shadow: 0 20px 60px rgba(10, 26, 59, 0.22) !important;
  transform: translateY(-4px) !important;
}
.booking-card:hover {
  box-shadow: 0 16px 48px rgba(10, 26, 59, 0.18) !important;
  transform: translateY(-6px) !important;
}

/* CTA banner — animated gold pulse on the gold accent line */
.cta-banner::before {
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  background-size: 200% 100%;
  animation: gold-sweep 5s ease-in-out infinite;
}

/* Smooth scroll for the whole page */
html { scroll-behavior: smooth; }

/* Reduce motion — disable all the new stuff */
@media (prefers-reduced-motion: reduce) {
  .hero-eyebrow, .hero h1, .hero p, .hero-actions, .hero-visual {
    opacity: 1 !important; transform: none !important; animation: none !important;
  }
  .hero h1 .accent, .hero .btn-primary, .hero-visual::before,
  .hero-visual::after, .hero-visual-content .play-btn,
  .hero-visual-content .play-btn::before, .stats-bar::before,
  .cta-banner::before, .hero::before, .hero .hero-orb {
    animation: none !important;
  }
  .section-header::after { transition: none; width: 60px; }
}

/* ===== INSIDER NARRATIVE ===== */
.insider-narrative { padding: 90px 0; background: linear-gradient(180deg, #faf8f3 0%, #f5f2eb 100%); border-top: 2px solid var(--gold); position: relative; }
.insider-content { max-width: 760px; margin: 0 auto; text-align: center; position: relative; }
.insider-content::before { content: ""; display: block; width: 60px; height: 3px; background: var(--gold); margin: 0 auto 32px; border-radius: 2px; }
.insider-lead { font-size: 1.5rem; line-height: 1.65; color: var(--navy); font-weight: 600; margin-bottom: 28px; letter-spacing: -0.01em; }
.insider-content p { font-size: 1.12rem; line-height: 1.75; color: #555; margin-bottom: 20px; }
.insider-close { font-size: 1.3rem; font-style: italic; color: var(--gold); font-weight: 700; margin-top: 32px; position: relative; padding: 0 40px; }
.insider-close::before, .insider-close::after { content: ""; position: absolute; top: 50%; width: 30px; height: 1px; background: var(--gold); opacity: 0.5; }
.insider-close::before { left: 0; }
.insider-close::after { right: 0; }

/* ===== DATA CITATIONS ===== */
.data-citations { padding: 80px 0; background: #fff; }
.citations-header { text-align: center; margin-bottom: 56px; }
.citations-header .section-number { display: block; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 3px; color: var(--gold); font-weight: 600; margin-bottom: 12px; }
.citations-header h2 { font-family: 'Playfair Display', serif; font-size: clamp(2rem, 4vw, 2.9rem); color: var(--navy); }
.citations-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px; margin-bottom: 32px; }
.citation-item { padding: 32px; border-radius: 12px; background: var(--cream); border-top: 3px solid var(--gold); }
.citation-stat { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 700; color: var(--navy); margin-bottom: 12px; }
.citation-item h4 { font-size: 1.1rem; font-weight: 600; color: var(--navy); margin-bottom: 12px; }
.citation-item p { font-size: 0.92rem; line-height: 1.6; color: #555; }
.citation-source { text-align: center; font-size: 0.85rem; color: #888; font-style: italic; margin-top: 24px; }

@media (max-width: 768px) {
  .insider-narrative { padding: 56px 0; }
  .insider-lead { font-size: 1.15rem; }
  .data-citations { padding: 56px 0; }
  .citations-header h2 { font-size: 1.5rem; }
  .citations-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ===== TIER CTAS ===== */
.tier-ctas { padding: 48px 0; background: var(--cream); }
.cta-pair { max-width: 800px; margin: 0 auto; display: grid; gap: 20px; }
/* Notice-box variant used only inside the Tier CTA pair (Services page). */
/* NOTE: .cta-line is also used bare, as inline spans inside .cta-banner h2 —
   those must stay unstyled text, so this box styling is scoped to .cta-pair. */
.cta-pair .cta-line { padding: 24px; border-left: 3px solid var(--gold); background: #fff; border-radius: 0 8px 8px 0; }
.cta-pair .cta-line p { font-size: 1.05rem; color: #444; margin: 0; }
.cta-pair .cta-line a { color: var(--navy); font-weight: 600; text-decoration: none; }
.cta-pair .cta-line a:hover { color: var(--gold); }

@media (max-width: 768px) {
  .tier-ctas { padding: 32px 0; }
  .cta-pair { grid-template-columns: 1fr; }
}

/* ===== POLICY PAGES ===== */
.policy-page { padding: 80px 0; background: #fff; }
.policy-page .container { max-width: 800px; }
.policy-page .section-number { display: block; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 3px; color: var(--gold); font-weight: 600; margin-bottom: 12px; }
.policy-page h1 { font-family: 'Playfair Display', serif; font-size: 2.2rem; font-weight: 700; color: var(--navy); margin-bottom: 24px; }
.policy-meta { padding: 20px 24px; background: var(--cream); border-left: 3px solid var(--navy); border-radius: 0 8px 8px 0; margin-bottom: 40px; }
.policy-meta p { margin: 4px 0; font-size: 0.95rem; color: #555; }
.policy-intro { margin-bottom: 40px; }
.policy-intro p { font-size: 1.05rem; line-height: 1.7; color: #444; }
.policy-page h2 { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 700; color: var(--navy); margin-top: 40px; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #e0e0e0; }
.policy-page h3 { font-size: 1.05rem; font-weight: 600; color: var(--navy); margin-top: 24px; margin-bottom: 8px; }
.policy-page p { font-size: 0.98rem; line-height: 1.7; color: #555; margin-bottom: 16px; }
.policy-list { list-style: none; padding: 0; margin: 16px 0 24px; }
.policy-list li { padding: 10px 0 10px 24px; position: relative; font-size: 0.98rem; line-height: 1.6; color: #555; }
.policy-list li::before { content: "▸"; position: absolute; left: 0; color: var(--gold); font-weight: 700; }
.policy-list ol { counter-reset: item; }
.policy-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 0.9rem; }
.policy-table th { background: var(--navy); color: #fff; padding: 12px 16px; text-align: left; font-weight: 600; }
.policy-table td { padding: 12px 16px; border-bottom: 1px solid #e0e0e0; color: #555; vertical-align: top; }
.policy-table tr:nth-child(even) td { background: var(--cream); }
.policy-contact { list-style: none; padding: 0; }
.policy-contact li { padding: 8px 0; font-size: 0.98rem; color: #555; }

@media (max-width: 768px) {
  .policy-page { padding: 56px 0; }
  .policy-page h1 { font-size: 1.7rem; }
  .policy-page h2 { font-size: 1.2rem; }
  .policy-table { font-size: 0.82rem; }
  .policy-table th, .policy-table td { padding: 8px 10px; }
}

/* ===== 4 STEPS TO BANKABLE ===== */
.four-steps { padding: 64px 0; background: var(--white); }
.four-steps-visual { max-width: 900px; margin: 0 auto; }
/* The raw-data process illustration gets its own width and breathing room. */
#the-solution .process-overview-visual { max-width: 1020px; margin-bottom: 130px; }
.four-steps-visual img { width: 100%; border-radius: var(--radius); box-shadow: 0 8px 20px rgba(10, 26, 59, 0.28); }

@media (max-width: 768px) {
  .four-steps { padding: 48px 0; }
  #the-solution .process-overview-visual { margin-bottom: 64px; }
}
@media (max-width: 480px) {
  #the-solution .process-overview-visual { margin-bottom: 44px; }
}
/* ===== VERY SMALL PHONES (480px) ===== */
@media (max-width: 480px) {
  section { padding: 44px 0; }
  .container { padding: 0 16px; }
  .site-footer .container { padding-left: 36px !important; }
  .header-inner { padding: 12px 16px; gap: 12px; }
  .logo { gap: 10px; }
  .logo-mark { width: 34px; height: 34px; font-size: 1.1rem; }
  .logo-text .brand { font-size: 1.2rem; }
  .logo-text .tagline { font-size: 0.62rem; letter-spacing: 2px; }
  .hero { padding: 90px 0 82px; }
  .hero-grid { gap: 28px; }
  .hero h1 { font-size: 1.475rem; }
  .hero p { font-size: 0.82rem; }
  .hero-actions { gap: 8px; }
  .btn-primary, .btn-secondary, .btn-gold { padding: 9px 16px; font-size: 0.72rem; }
  .hero-visual { aspect-ratio: 16/10; }
  .hero-visual-content .play-btn { width: 52px; height: 52px; }
  .hero-visual-content .play-btn svg { width: 22px; height: 22px; }
  .hero-visual-content p { font-size: 0.68rem; }
  .stats-bar { padding: 48px 0; }
  .stat-number { font-size: 2rem; }
  .stat-label { font-size: 0.78rem; letter-spacing: 1px; }
  .stat-desc { font-size: 0.78rem; }
  .section-header { margin-bottom: 36px; }
  .section-header h2 { font-size: 1.3rem; }
  .section-header p { font-size: 0.92rem; }
  .ps-content h2, .about-story-content h2 { font-size: 1.35rem; }
  .ps-list li { padding: 14px 0; }
  .ps-list .ps-icon { width: 32px; height: 32px; font-size: 0.85rem; }
  .ps-list h4 { font-size: 0.95rem; }
  .ps-list p { font-size: 0.85rem; }
  .accordion-header { padding: 16px; }
  .accordion-tier-logo { width: 48px; height: 48px; }
  .accordion-header h3 { font-size: 1rem; }
  .accordion-price { font-size: 1rem; }
  .accordion-body-inner { padding: 0 16px 20px; }
  .accordion-body-inner p { font-size: 0.88rem; }
  .pricing-card { padding: 24px 16px; }
  .pricing-card .tier-icon { width: 56px; height: 56px; }
  .pricing-card h3 { font-size: 1.2rem; }
  .pricing-card .price { font-size: 1.6rem; }
  .pricing-card .price-unit { font-size: 0.82rem; }
  .pricing-card ul li { font-size: 0.88rem; }
  .complimentary-card { padding: 24px 16px; }
  .booking-card { padding: 24px 16px; }
  .booking-card h3 { font-size: 1.15rem; }
  .booking-form { padding: 20px; }
  .form-input, .form-textarea, .form-select { padding: 11px 14px; font-size: 0.92rem; }
  .contact-info { padding: 0; }
  .contact-detail { gap: 12px; }
  .contact-detail .cd-icon { width: 40px; height: 40px; }
  .contact-detail .cd-text { font-size: 0.88rem; }
  .contact-form-wrap { padding: 24px; }
  .faq-question { padding: 16px 0; font-size: 0.95rem; }
  .faq-answer { padding-top: 12px; }
  .faq-answer p { font-size: 0.88rem; }
  .footer { padding: 48px 0 24px; }
  .footer-grid { gap: 28px; }
  
  
  .footer-tagline { font-size: 0.85rem; }
  .footer h4 { font-size: 0.95rem; margin-bottom: 12px; }
  .footer-links a { font-size: 0.88rem; padding: 5px 0; }
  .footer-bottom { font-size: 0.78rem; }
  .footer-legal a { font-size: 0.78rem; }
  .insider-narrative { padding: 36px 0; }
  .insider-lead { font-size: 0.92rem; }
  .insider-narrative p { font-size: 0.85rem; }
  .insider-close { font-size: 0.92rem; }
  .data-citations { padding: 36px 0; }
  .citations-header h2 { font-size: 1.3rem; }
  .citation-stat { font-size: 1.8rem; }
  .citation-item h4 { font-size: 1rem; }
  .citation-item p { font-size: 0.85rem; }
  .citation-source { font-size: 0.78rem; }
  .four-steps { padding: 36px 0; }
  .cta-banner { padding: 40px 0; }
  .operational-boundary { padding: 40px 0; }
  .operational-boundary h2 { font-size: 1.3rem; }
  .operational-boundary p { font-size: 0.88rem; }
  .cta-banner h2 { font-size: 1.4rem; }
  .cta-banner p { font-size: 0.92rem; }
  .tier-ctas { padding: 28px 0; }
  .cta-pair .cta-line { padding: 18px; }
  .cta-pair .cta-line p { font-size: 0.92rem; }
  .policy-page { padding: 40px 0; }
  .policy-page h1 { font-size: 1.4rem; }
  .policy-page h2 { font-size: 1.05rem; }
  .policy-page p, .policy-list li { font-size: 0.88rem; }
  .policy-table { font-size: 0.76rem; }
  .policy-table th, .policy-table td { padding: 6px 8px; }
  .page-hero { padding: 48px 0; text-align: center; }
  .page.hero h1 { font-size: 1.475rem; }
  .page-hero p { font-size: 0.92rem; }
  .about-hero { padding: 60px 0; }
  .about-hero p { font-size: 0.95rem; }
  .operational-boundary h2 { font-size: 1.5rem; }
  .operational-boundary p { font-size: 0.95rem; }
  .cta-banner { padding: 64px 0; }
}


/* === EIDON HEADER LOGO (image) === */
.logo { display: flex; align-items: center; }
.logo .logo-img {
  height: 75px;
  width: auto;
  display: block;
}
@media (max-width: 968px) {
  .logo .logo-img { height: 56px; }
}
@media (max-width: 480px) {
  .logo .logo-img { height: 48px; }
}

/* About Hero Enhancement */
.about-hero-inner { max-width: 760px; text-align: center; margin: 0 auto; }
.about-hero-eyebrow { display: inline-block; 
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(197, 163, 91, 0.3);
}
.about-hero h1 { line-height: 1.15; margin-bottom: 0; }
.about-hero p em { color: var(--gold-light); font-style: italic; }

@media (max-width: 768px) {
  .about-hero-eyebrow { display: inline-block;  font-size: 0.65rem; letter-spacing: 2px; }
}



/* About hero headline — grid aligned phrases */
.about-hero-title {
  display: inline-grid;
  grid-template-columns: auto auto;
  gap: 0 12px;
  text-align: left;
}
.about-hero-prefix {
  font-size: clamp(2.2rem, 4.5vw, 3.3rem);
  color: var(--white);
  font-weight: 700;
  font-style: normal;
  line-height: 1.25;
  grid-column: 1;
  grid-row: 1;
  white-space: nowrap;
}
.about-hero-phrase {
  font-size: clamp(2.2rem, 4.5vw, 3.3rem);
  color: var(--gold);
  font-style: italic;
  font-weight: 700;
  line-height: 1.25;
  display: block;
}
.about-hero-title > :nth-child(1) { grid-column: 1; grid-row: 1; }
.about-hero-title > :nth-child(2) { grid-column: 2; grid-row: 1; }
.about-hero-title > :nth-child(3) { grid-column: 2; grid-row: 2; }

@media (max-width: 768px) {
  .about-hero-prefix { font-size: 1.6rem; }
  .about-hero-phrase { font-size: 1.6rem; }
  .about-hero-title { gap: 0 8px; }
}

/* ===== MOBILE HERO CENTERING (must come after base rules) ===== */
@media (max-width: 768px) {
  .hero-content { text-align: center !important; max-width: 100% !important; }
  .hero-eyebrow { display: block !important; text-align: center !important; }
  .hero h1 .accent { display: block !important; }
  .hero-eyebrow::before {
    display: inline-block !important;
    width: 32px !important;
    height: 2px !important;
    margin-right: 12px !important;
    margin-bottom: 3px !important;
    vertical-align: middle !important;
  }
  .hero-eyebrow::after {
    display: inline-block !important;
    width: 32px !important;
    height: 2px !important;
    margin-left: 12px !important;
    margin-top: 0 !important;
    margin-bottom: 3px !important;
    vertical-align: middle !important;
    animation: none !important;
  }
}

/* ===== LIGHTBOX ===== */
.lightbox-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.88);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999; opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease;
  cursor: zoom-out;
}
.lightbox-overlay.active { opacity: 1; pointer-events: auto; }
.lightbox-overlay img {
  max-width: 92%; max-height: 92%; border-radius: 8px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.5);
  transform: scale(0.95); transition: transform 0.3s ease;
}
.lightbox-overlay.active img { transform: scale(1); }

/* ===== MOBILE PROBLEM CARDS ===== */
@media (max-width: 768px) {
  .ps-grid-2x2 { gap: 14px; margin: 0 4px; }
  .ps-card { padding: 16px 20px; }
  .ps-card .ps-icon { width: 32px; height: 32px; font-size: 0.85rem; margin-bottom: 12px; }
  .ps-card h4 { font-size: 1rem; margin-bottom: 6px; }
  .ps-card p { font-size: 0.88rem; line-height: 1.5; }
}

@media (max-width: 480px) {
  .ps-grid-2x2 { gap: 12px; margin: 0 2px; }
  .ps-card { padding: 14px 18px; }
  .ps-card .ps-icon { width: 28px; height: 28px; font-size: 0.8rem; margin-bottom: 10px; }
  .ps-card h4 { font-size: 0.95rem; }
  .ps-card p { font-size: 0.85rem; line-height: 1.45; }
}

/* ===== MOBILE CITATION CARDS ===== */
@media (max-width: 768px) {
  .citations-grid { gap: 14px; margin: 0 4px; }
  .citation-item { padding: 18px 22px; }
  .citation-stat { font-size: 1.8rem; margin-bottom: 8px; }
  .citation-item h4 { font-size: 1rem; margin-bottom: 8px; }
  .citation-item p { font-size: 0.88rem; line-height: 1.5; }
}

@media (max-width: 480px) {
  .citations-grid { gap: 12px; margin: 0 2px; }
  .citation-item { padding: 16px 18px; }
  .citation-stat { font-size: 1.6rem; margin-bottom: 6px; }
  .citation-item h4 { font-size: 0.95rem; margin-bottom: 6px; }
  .citation-item p { font-size: 0.85rem; line-height: 1.45; }
}


/* ===== MOBILE EXPANDABLE CARDS ===== */
@media (max-width: 768px) {

  /* Problem cards */
  .ps-card {
    cursor: pointer;
    position: relative;
  }
  .ps-card .ps-expand-hint {
    display: flex;
    justify-content: center;
    margin-top: 8px;
  }
  .ps-card .ps-expand-hint .chevron {
    display: block;
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 12px solid var(--gold);
    margin: 0 auto;
    animation: pulseFade 2s ease-in-out infinite;
    transition: transform 0.3s ease;
  }
  .ps-card .ps-card-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.3s ease;
    opacity: 0;
  }
  .ps-card.expanded .ps-card-body {
    max-height: 500px;
    opacity: 1;
    margin-top: 10px;
  }
  .ps-card.expanded .ps-expand-hint .chevron {
    transform: rotate(180deg);
  }


  /* Citation cards */
  .citation-item {
    cursor: pointer;
    position: relative;
  }
  .citation-item .cite-expand-hint {
    display: flex;
    justify-content: center;
    margin-top: 8px;
  }
  .citation-item .cite-expand-hint .chevron {
    display: block;
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 12px solid var(--gold);
    margin: 0 auto;
    animation: pulseFade 2s ease-in-out infinite;
    transition: transform 0.3s ease;
  }
  .citation-item .cite-card-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.3s ease;
    opacity: 0;
  }
  .citation-item.expanded .cite-card-body {
    max-height: 500px;
    opacity: 1;
    margin-top: 10px;
  }
  .citation-item.expanded .cite-expand-hint .chevron {
    transform: rotate(180deg);
  }

}

/* Hide hints on desktop */
@media (min-width: 769px) {
  .ps-expand-hint, .cite-expand-hint { display: none; }
  .ps-card-body, .cite-card-body {
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
  }
}


/* ===== PULSE FADE ANIMATION ===== */
@keyframes pulseFade {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 1; }
}


/* ===== MAIN vs SUB EYEBROWS ===== */
.main-eyebrow {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  padding: 6px 16px;
  background: var(--navy);
  color: var(--gold) !important;
  border-radius: 4px;
  display: inline-block !important;
  margin-bottom: 16px !important;
}

.sub-eyebrow {
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  color: #999 !important;
  padding-left: 12px;
  border-left: 2px solid #ddd;
  display: inline-block !important;
  margin-bottom: 10px !important;
}


/* ===== SCROLL RAIL ===== */
.scroll-rail {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.scroll-rail.visible {
  opacity: 1;
}

.rail-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  opacity: 0.25;
  transition: opacity 0.4s ease;
}

.rail-group.rail-active {
  opacity: 1;
}

.rail-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
  white-space: nowrap;
}

.rail-track {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 6px 0;
}

.rail-track::before {
  content: '';
  position: absolute;
  right: 5px;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: #ddd;
}

.rail-fill {
  position: absolute;
  right: 5px;
  top: 6px;
  width: 1px;
  background: var(--gold);
  height: 0;
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rail-dot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  position: relative;
  z-index: 1;
}

.rail-dot .dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid #ccc;
  background: #fff;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.rail-dot.active .dot {
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(181, 156, 119, 0.2);
}

.rail-dot .dot-label {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #aaa;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(8px);
  transition: all 0.3s ease;
}

.rail-dot.active .dot-label {
  color: var(--navy);
  opacity: 1;
  transform: translateX(0);
}

.rail-divider {
  width: 30px;
  height: 1px;
  background: #ddd;
  margin: 16px 0;
}

/* Hide on mobile, show on tablet+ */
@media (max-width: 768px) {
  .scroll-rail { display: none; }
}

@media (min-width: 769px) {
  .scroll-rail.visible {
    opacity: 1;
  }
}


/* ===== MOBILE SECTION BAR ===== */
.mobile-section-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 95;
  background: var(--navy);
  padding: 8px 20px 6px;
  transform: translateY(-100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
}

.mobile-section-bar.visible {
  transform: translateY(0);
}

.msb-track {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.msb-group {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.msb-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

.msb-sub {
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.5px;
  color: rgba(255,255,255,0.6);
  white-space: nowrap;
}

.mobile-section-bar.is-solution .msb-label {
  color: var(--gold);
}

.msb-progress {
  height: 2px;
  background: rgba(255,255,255,0.1);
  border-radius: 1px;
  overflow: hidden;
}

.msb-fill {
  height: 100%;
  width: 0%;
  background: var(--gold);
  transition: width 0.3s ease;
}

/* Show only on mobile/tablet */
@media (max-width: 768px) {
  .mobile-section-bar { display: block; }
}

@media (min-width: 769px) {
  .mobile-section-bar { display: none; }
}

/* ===== BOOKING CALENDAR ===== */
.booking-calendar-wrapper {
  display: flex; flex-direction: column; align-items: center; gap: 24px;
  max-width: 520px; margin: 0 auto;
}
.booking-calendar {
  background: var(--white); border-radius: var(--radius); padding: 24px;
  box-shadow: var(--shadow-md); width: 100%;
}
.calendar-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 20px;
}
.calendar-header h3 {
  font-size: 1.2rem; color: var(--navy); font-weight: 600;
  text-transform: capitalize;
}
.cal-nav-btn {
  background: var(--cream); border: 1px solid var(--grey-border);
  width: 40px; height: 40px; border-radius: 50%; cursor: pointer;
  font-size: 1.4rem; color: var(--navy); display: flex;
  align-items: center; justify-content: center; transition: all var(--transition);
  line-height: 1;
}
.cal-nav-btn:hover { background: var(--navy); color: var(--white); }
.cal-nav-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.calendar-weekdays {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
  margin-bottom: 8px;
}
.calendar-weekdays span {
  text-align: center; font-size: 0.75rem; font-weight: 600;
  color: var(--grey-light); text-transform: uppercase; padding: 4px 0;
}
.calendar-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
}
.cal-day {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 8px; font-size: 0.9rem; cursor: pointer; transition: all 0.2s;
  border: 1px solid transparent; background: var(--cream); color: var(--navy);
  min-height: 40px;
}
.cal-day.empty { background: transparent; cursor: default; border: none; }
.cal-day.weekend { background: #f0f0f0; color: #ccc; cursor: not-allowed; }
.cal-day.past { color: #ccc; cursor: not-allowed; background: #f8f8f8; }
.cal-day.today { border-color: var(--gold); font-weight: 700; }
.cal-day.available:hover {
  background: var(--gold); color: var(--navy); transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(176, 104, 33, 0.25);
}
.cal-day.selected {
  background: var(--navy); color: var(--white); font-weight: 700;
}
.cal-day.selected:hover { background: var(--navy-2); }
.booking-timeslots {
  width: 100%; background: var(--white); border-radius: var(--radius);
  padding: 20px 24px; box-shadow: var(--shadow-md); text-align: center;
}
.booking-timeslots h3 {
  font-size: 0.95rem; color: var(--navy); margin-bottom: 16px;
  text-align: center; font-weight: 600;
}
.timeslots-list {
  display: none; /* no longer using list */
}
.timeslot-dropdown {
  width: 100%; padding: 12px 16px; border: 2px solid var(--grey-border);
  border-radius: 8px; font-size: 1rem; font-weight: 500; color: var(--navy);
  background: var(--white); cursor: pointer; appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20fill%3D%22%2337474f%22%20d%3D%22M6%208L0%200h12z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat; background-position: right 16px center;
  transition: border-color 0.2s;
}
.timeslot-dropdown:focus { outline: none; border-color: var(--gold); }
.timeslot-dropdown:disabled { opacity: 0.5; cursor: not-allowed; }
.timeslot {
  padding: 12px 16px; border: 2px solid var(--grey-border); border-radius: 8px;
  background: var(--white); cursor: pointer; text-align: center;
  font-size: 1rem; font-weight: 600; color: var(--navy); transition: all 0.2s;
}
.timeslot:hover {
  border-color: var(--gold); background: #fff8f0; transform: translateY(-1px);
}
.timeslot.selected {
  background: var(--navy); color: var(--white); border-color: var(--navy);
}
.timeslot.selected:hover { background: var(--navy-2); }
.timeslots-empty {
  text-align: center; color: var(--grey-light); font-size: 0.9rem;
  padding: 20px 0;
}
@media (max-width: 768px) {
  .booking-calendar-wrapper { max-width: 100%; }
  .cal-day { min-height: 36px; font-size: 0.85rem; }
}
@media (max-width: 480px) {
  .booking-calendar { padding: 16px; }
  .cal-day { min-height: 32px; font-size: 0.8rem; }
  .calendar-weekdays span { font-size: 0.65rem; }
}


/* ============================================
   HEIDI HOMEPAGE REVISIONS — Sept 2026
   (no font changes — all typography inherits)
   ============================================ */

/* ===== HERO (video removed — single column) ===== */
.hero-grid.hero-single { grid-template-columns: 1fr; }
.hero-grid.hero-single .hero-content { max-width: 900px; width: 100%; margin-inline: auto; text-align: center; }
.hero-grid.hero-single .hero-eyebrow { margin-bottom: 30px; }
.hero-grid.hero-single h1 { margin-bottom: 34px; }
.hero-grid.hero-single p { margin-bottom: 38px; }
.hero-grid.hero-single .hero-actions { justify-content: center; }
@media (min-width: 769px) {
  .hero-grid.hero-single .hero-eyebrow { display: inline-flex; align-items: center; gap: 12px; }
  .hero-grid.hero-single .hero-eyebrow::before { margin: 0; flex: 0 0 32px; }
  .hero-grid.hero-single .hero-eyebrow::after {
    display: inline-block; flex: 0 0 48px; width: 48px;
    margin: 0; animation: none;
    background: linear-gradient(90deg, var(--gold), transparent);
  }
}

/* ===== SHORTCUTS (desktop quick nav) ===== */
.shortcuts { padding: 36px 0 6px; background: var(--off-white); }
.shortcuts-row { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.shortcut-link {
  display: inline-flex; align-items: center; padding: 11px 24px; border-radius: 50px;
  border: 1px solid var(--gold); color: var(--navy); font-size: 0.78rem;
  font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase;
  text-decoration: none; transition: all 0.25s ease; background: var(--white);
}
.shortcut-link:hover { background: var(--gold); color: var(--white); transform: translateY(-1px); }
@media (max-width: 768px) { .shortcuts { display: none; } }

/* ===== FOUNDER NOTE ===== */
.founder-note { padding: 84px 0; background: var(--white); }
.founder-grid { display: grid; grid-template-columns: 340px 1fr; gap: 56px; align-items: center; }
.founder-img img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-md); display: block; }
.founder-content h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 18px; }
.founder-content p { color: var(--grey); line-height: 1.7; }
.founder-link-line { margin-top: 14px; }
.founder-link { color: var(--gold); font-weight: 600; text-decoration: underline; }
.founder-link:hover { color: var(--navy); }
@media (max-width: 768px) {
  .founder-grid { grid-template-columns: 1fr; gap: 28px; }
  .founder-img { max-width: 420px; }
}

/* ===== PROBLEM CARDS (images added) ===== */
.ps-card-img { width: 100%; border-radius: 8px; margin-bottom: 14px; display: block; }
/* Editorial bridge from the four risks into the capital-capacity diagram. */
.ps-transition {
  position: relative; max-width: 1040px; margin: 116px auto 100px;
  padding: 50px 60px 48px; text-align: left;
  background: linear-gradient(125deg, #25364f 0%, #30425b 100%);
  border-left: 5px solid var(--gold); border-radius: var(--radius);
  box-shadow: 0 18px 42px rgba(10, 26, 59, .14);
}
.ps-transition::before {
  content: ''; display: block; width: 48px; height: 3px;
  margin-bottom: 22px; background: var(--gold);
}
.ps-transition .ps-transition-lead {
  font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.38rem, 2.3vw, 1.65rem);
  font-weight: 700; line-height: 1.45; color: var(--white);
  margin: 0 0 20px;
}
.ps-transition .ps-transition-follow {
  font-size: 1.08rem; line-height: 1.7; color: #e2e8f0;
  max-width: 780px; margin: 0;
}
@media (max-width: 768px) {
  .ps-transition { margin: 78px auto 74px; padding: 34px 32px; }
  .ps-transition .ps-transition-lead { font-size: 1.32rem; }
  .ps-transition .ps-transition-follow { font-size: 1rem; }
}
@media (max-width: 480px) {
  .ps-transition { margin: 70px auto 66px; padding: 28px 24px; }
  .ps-transition .ps-transition-lead { font-size: 1.2rem; }
}

/* ===== SOLUTION (caption + 3 steps) ===== */
.solution-caption { font-size: 1.1rem; margin-top: 16px; }
.three-steps { margin-top: 36px; }
/* Keep the full 130px visible between the first process image and this heading. */
#the-solution .three-steps { margin-top: 0; }
.three-steps h3 {
  font-size: clamp(1.3rem, 2.5vw, 1.7rem); color: var(--navy);
  margin-bottom: 35px; text-align: center;
}

/* ===== TIER BLOCKS (visible, not accordions) ===== */
.tier-block {
  background: var(--white); border-radius: var(--radius); margin-bottom: 22px;
  border: 1px solid var(--grey-border); padding: 32px 34px;
  box-shadow: 0 2px 12px rgba(10, 26, 59, 0.06);
  max-width: 860px; margin-left: auto; margin-right: auto;
}
.tier-top { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.tier-logo { width: 52px; flex-shrink: 0; }
.tier-titles { flex: 1; }
.tier-main {
  font-size: 1.25rem; font-weight: 800; color: var(--gold);
  letter-spacing: 1.5px; text-transform: uppercase; margin: 0 0 4px;
}
.tier-sub { font-size: 0.98rem; font-weight: 600; color: var(--navy); margin: 0; }
.tier-price { font-size: 0.95rem; font-weight: 700; color: var(--grey); white-space: nowrap; }
.tier-desc { color: var(--grey); line-height: 1.65; margin-bottom: 18px; }
details.tier-deliverables { border-top: 1px solid var(--grey-border); margin-top: 4px; padding: 14px 0 6px; }
details.tier-deliverables summary {
  cursor: pointer; font-weight: 600; color: var(--navy); font-size: 0.9rem;
  list-style: none; display: flex; align-items: center; gap: 8px;
}
details.tier-deliverables summary::-webkit-details-marker { display: none; }
details.tier-deliverables summary::before { content: '+'; color: var(--gold); font-weight: 700; font-size: 1.05rem; }
details.tier-deliverables[open] summary::before { content: '–'; }
details.tier-deliverables ul { margin: 12px 0 4px; padding-left: 18px; }
details.tier-deliverables li { color: var(--grey); font-size: 0.92rem; margin-bottom: 6px; }
.tier-block .btn-gold { margin-top: 14px; }
/* Global link hover turns the text gold; keep these gold buttons readable. */
.tier-block .btn-gold:hover,
.tier-block .btn-gold:focus-visible { color: var(--navy); }
@media (max-width: 768px) {
  .tier-block { padding: 24px 20px; }
  .tier-top { flex-wrap: wrap; }
  .tier-main { font-size: 1.05rem; }
}

/* ===== FREE SERVICES CTA ===== */
/* The free sessions continue the services story rather than floating away from it. */
#the-solution + .services-section { padding-bottom: 72px; }
.free-services {
  padding: 44px 0 110px;
  background: linear-gradient(180deg, var(--cream) 0%, #eeeae2 58%, #f3efe8 100%);
  border-bottom: 1px solid var(--gold-border);
}
.free-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; max-width: 1040px; margin: 0 auto; }
.free-card {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  background: linear-gradient(145deg, #fff 0%, #fff 52%, #fcfaf5 100%);
  border: 1px solid rgba(197, 163, 91, 0.35); border-radius: 18px;
  padding: 40px 38px 38px; text-align: left;
  box-shadow: 0 5px 18px rgba(10, 26, 59, 0.045);
}
.free-card::before {
  content: ''; position: absolute; inset: 0 auto 0 0; width: 4px;
  background: linear-gradient(180deg, var(--gold), rgba(197, 163, 91, 0.24));
}
.free-card::after {
  content: ''; position: absolute; top: -104px; right: -68px;
  width: 164px; height: 164px; border: 1px solid rgba(197, 163, 91, 0.22);
  border-radius: 50%; pointer-events: none;
}
.free-badge {
  align-self: flex-start; display: inline-block; background: var(--gold-tint); color: var(--navy);
  border: 1px solid var(--gold-border); font-size: 0.7rem;
  font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase;
  padding: 6px 13px; border-radius: 50px; margin-bottom: 22px;
}
.free-card h3 { font-size: 1.18rem; color: var(--navy); margin-bottom: 16px; line-height: 1.45; }
.free-card p {
  flex: 1; color: var(--grey); line-height: 1.7;
  padding-bottom: 26px; border-bottom: 1px solid var(--gold-border); margin-bottom: 24px;
}
.free-card .btn-gold { align-self: flex-start; max-width: 100%; }
.free-card .btn-gold:hover, .free-card .btn-gold:focus-visible { color: var(--navy); }
@media (max-width: 768px) {
  #the-solution + .services-section { padding-bottom: 52px; }
  .free-services { padding: 42px 0 78px; }
  .free-grid { grid-template-columns: 1fr; gap: 20px; }
  .free-card { padding: 32px 28px 34px; }
}
@media (max-width: 480px) {
  .free-card { padding: 28px 24px 30px; }
  .free-card h3 { font-size: 1.1rem; }
  .free-card .btn-gold { white-space: normal; justify-content: center; text-align: center; }
}

/* ===== DATA SECTION — new headers ===== */
.citations-sub { color: var(--grey); font-size: 1.05rem; margin-top: 10px; }
.data-subheader {
  font-size: 1.15rem; font-weight: 700; color: var(--navy);
  margin: 22px auto 30px; max-width: 640px; text-align: center;
}

/* ===== ISED DATA SECTION (navy) ===== */
.ised-section { background: var(--navy); color: var(--white); padding: 90px 0; }
.ised-section .section-header h2 { color: var(--white); }
.ised-section .section-header p { color: rgba(255,255,255,0.75); }
.ised-section .section-number { color: var(--gold); }
.ised-subheading {
  color: var(--white); font-size: 1.35rem; margin: 52px 0 18px; text-align: center;
}
.ised-intro { color: rgba(255,255,255,0.8); max-width: 720px; margin: 0 auto 26px; text-align: center; line-height: 1.65; }
.ised-table-card {
  background: var(--white); border-radius: var(--radius); padding: 24px;
  margin: 30px auto 0; max-width: 900px; overflow-x: auto;
}
.ised-table-card h3 { color: var(--navy); font-size: 1.05rem; margin-bottom: 14px; }
.ised-table { width: 100%; border-collapse: collapse; color: var(--navy); font-size: 0.88rem; min-width: 480px; }
.ised-table th { background: var(--navy); color: var(--white); padding: 10px 14px; text-align: left; font-weight: 600; }
.ised-table td { padding: 9px 14px; border-bottom: 1px solid #e8e8e8; }
.ised-table tbody tr:nth-child(even) { background: #f5f5f5; }
.province-wrap { max-width: 100%; }
.province-table { min-width: 760px; }
.ised-insights { max-width: 820px; margin: 0 auto; padding: 0; list-style: none; }
.ised-insights li {
  color: rgba(255,255,255,0.85); line-height: 1.7; margin-bottom: 16px;
  padding-left: 22px; position: relative;
}
.ised-insights li::before { content: ''; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.ised-insights strong { color: var(--gold); }
.ised-note {
  font-style: italic; color: rgba(255,255,255,0.65); max-width: 820px;
  margin: 18px auto 0; font-size: 0.95rem;
}
.ised-profile-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; max-width: 960px; margin: 0 auto 8px; }
.ised-profile {
  background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--radius); padding: 22px 16px; text-align: center;
}
.ised-profile .profile-stat { display: block; font-size: 1.9rem; font-weight: 800; color: var(--gold); margin-bottom: 8px; }
.ised-profile span:last-child { font-size: 0.82rem; color: rgba(255,255,255,0.8); line-height: 1.4; }
.ised-cta { text-align: center; max-width: 720px; margin: 34px auto 0; color: rgba(255,255,255,0.9); font-size: 1.1rem; line-height: 1.6; }
.ised-cta-link { color: var(--gold); font-weight: 700; text-decoration: underline; }
.ised-cta-link:hover { color: var(--white); }
.ised-closing { max-width: 800px; margin: 60px auto 0; border-top: 1px solid rgba(255,255,255,0.2); padding-top: 36px; }
.ised-closing p { color: rgba(255,255,255,0.85); line-height: 1.7; margin-bottom: 16px; font-size: 1.05rem; }
.ised-closing p:last-child { color: var(--white); font-weight: 600; }
@media (max-width: 768px) {
  .ised-profile-grid { grid-template-columns: repeat(2, 1fr); }
  .ised-section { padding: 60px 0; }
}

/* ===== MOBILE SECTION GROUPS (expandable containers) ===== */
.m-toggle { display: none; }
@media (max-width: 768px) {
  .m-group > .m-toggle {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; background: var(--navy); color: var(--white);
    border: none; border-bottom: 3px solid var(--gold);
    padding: 18px 22px; font-size: 0.85rem; font-weight: 700;
    letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer;
    font-family: inherit;
  }
  .m-group > .m-toggle .m-chev { color: var(--gold); font-size: 1.3rem; font-weight: 700; line-height: 1; }
  .m-group.m-open > .m-toggle .m-chev { transform: rotate(45deg); }
  .m-group:not(.m-open) > *:not(.m-toggle) { display: none; }
  .ps-card.expanded .ps-card-body { max-height: 1600px; }
}

/* ===== SEPTEMBER HOMEPAGE REFINEMENT: INTRO, PAGE GUIDE, SECTION LABELS ===== */
.insider-narrative {
  padding: 76px 0 66px;
  background: linear-gradient(125deg, #fbf9f3 0%, #f4f0e8 100%);
  border-top: 0;
}
.insider-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .96fr);
  gap: clamp(44px, 7vw, 110px);
  align-items: center;
  max-width: 1130px;
  margin: 0 auto;
}
.insider-intro { border-left: 3px solid var(--gold); padding-left: 30px; }
.insider-kicker, .shortcuts-kicker, .insider-point-label {
  font-family: Inter, Arial, sans-serif;
  font-size: .73rem; font-weight: 700; letter-spacing: .17em;
  text-transform: uppercase; color: #806222;
}
.insider-intro h2 {
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  line-height: 1.15; color: var(--navy); margin: 18px 0 20px;
}
.insider-intro h2 em { display: block; color: #9b7535; font-weight: 600; }
.insider-narrative .insider-lead {
  color: #394252; font-size: clamp(1rem, 1.45vw, 1.16rem);
  font-weight: 500; line-height: 1.58; margin: 0; max-width: 500px;
}
.insider-points { display: grid; gap: 12px; }
.insider-point {
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(15,34,60,.11);
  border-radius: 10px; padding: 18px 22px 17px;
  box-shadow: 0 8px 28px rgba(15,34,60,.04);
}
.insider-point p { font-size: .98rem; line-height: 1.5; color: #44505e; margin: 5px 0 0; }
.insider-narrative .insider-close {
  max-width: 1130px; margin: 42px auto 0; padding: 22px 26px;
  border-top: 1px solid rgba(15,34,60,.14);
  font-size: 1.14rem; font-weight: 600; font-style: normal;
  line-height: 1.45; color: var(--navy); text-align: center;
}
.insider-close::before, .insider-close::after { content: none; }
.shortcuts {
  background: #fff; padding: 55px 0 66px;
  border-bottom: 1px solid rgba(15,34,60,.08);
}
.shortcuts-heading { text-align: center; margin: 0 auto 26px; }
.shortcuts-heading h2 { font-size: clamp(1.7rem, 2.5vw, 2.3rem); color: var(--navy); margin-top: 8px; }
.shortcuts-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.shortcuts .shortcut-link {
  display: flex; flex-direction: column; align-items: flex-start;
  position: relative; min-height: 150px; padding: 25px 22px 20px;
  background: #f9f7f2; border: 1px solid #ded5c6;
  border-top: 4px solid var(--gold); border-radius: 8px;
  box-shadow: 0 6px 18px rgba(15,34,60,.07);
  text-align: left; text-transform: none; letter-spacing: normal;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.shortcuts .shortcut-link:hover, .shortcuts .shortcut-link:focus-visible {
  background: #fff; color: var(--navy); border-color: var(--gold);
  box-shadow: 0 12px 28px rgba(15,34,60,.13); transform: translateY(-4px);
  outline-offset: 3px;
}
.shortcut-title { font-size: 1.1rem; font-weight: 700; color: var(--navy); line-height: 1.3; padding-right: 20px; }
.shortcut-detail { font-size: .85rem; color: #535f6c; line-height: 1.35; margin-top: 10px; }
.shortcut-arrow { position: absolute; right: 20px; top: 23px; font-size: 1.3rem; color: #806222; line-height: 1; }
/* Replace oversized navy badges with quiet editorial section labels. */
.main-eyebrow.section-number, .ps-header .main-eyebrow, .citations-header .main-eyebrow {
  display: inline-flex !important; align-items: center; gap: 12px;
  background: transparent !important; color: #806222 !important;
  font-family: Inter, Arial, sans-serif !important; font-size: calc(.76rem + 4px) !important;
  font-weight: 700 !important; letter-spacing: .19em !important;
  text-transform: uppercase; border-radius: 0; padding: 0;
  margin-bottom: 20px !important;
}
.main-eyebrow::before { content: ''; display: inline-block; width: 26px; height: 2px; background: var(--gold); flex: 0 0 auto; }
:is(#insider, #shortcuts, #the-problem, #the-solution, #why-this-matters, #questions) { scroll-margin-top: 115px; }
@media (max-width: 968px) {
  .insider-layout { grid-template-columns: 1fr; gap: 30px; }
  .shortcuts-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .insider-narrative { padding: 55px 0 44px; }
  .insider-intro { padding-left: 20px; }
  .insider-intro h2 { font-size: clamp(2rem, 6vw, 2.6rem); }
  .insider-narrative .insider-lead { font-size: 1rem; }
  .insider-narrative .insider-close { margin-top: 28px; font-size: 1rem; padding: 20px 0 0; }
  .shortcuts { display: block; padding: 40px 0 50px; }
  .shortcuts .shortcut-link { min-height: 125px; padding: 20px 18px; }
  .shortcut-arrow { top: 19px; right: 16px; }
}
@media (max-width: 480px) {
  .shortcuts-row { gap: 10px; }
  .shortcuts .shortcut-link { min-height: 127px; padding: 17px 12px; }
  .shortcut-title { font-size: .93rem; padding-right: 12px; }
  .shortcut-detail { font-size: .76rem; }
  .shortcut-arrow { font-size: 1rem; top: 16px; right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .shortcuts .shortcut-link { transition: none; }
}

/* ===== PROBLEM CARD TITLE HIERARCHY ===== */
.ps-grid-2x2 .ps-card { padding: 34px 36px; }
.ps-grid-2x2 .ps-card h4 {
  position: relative; color: var(--navy);
  font-size: 1.35rem; line-height: 1.3; font-weight: 700;
  padding-bottom: 16px; margin-bottom: 22px;
  border-bottom: 1px solid rgba(197, 163, 91, .38);
}
.ps-grid-2x2 .ps-card h4::after {
  content: ''; position: absolute; left: 0; bottom: -2px;
  width: 48px; height: 3px; border-radius: 3px; background: var(--gold);
}
@media (max-width: 768px) {
  .ps-grid-2x2 .ps-card { padding: 24px 26px; }
  .ps-grid-2x2 .ps-card h4 { font-size: 1.2rem; padding-bottom: 14px; margin-bottom: 10px; }
}
@media (max-width: 480px) {
  .ps-grid-2x2 .ps-card { padding: 22px 22px; }
  .ps-grid-2x2 .ps-card h4 { font-size: 1.13rem; }
}

/* Let the Problem introduction read in four lines on desktop. */
#the-problem .ps-header { max-width: 900px; }
#the-problem .ps-header p { max-width: 800px; }

/* Revision notes 2: scoped page refinements. Existing font families unchanged. */
.about-story .approach-lead { font-size: 1.28rem; line-height: 1.55; color: var(--navy); font-weight: 600; }
.about-expertise { background: var(--off-white); }
.about-expertise h2 { margin: 0 0 26px; color: var(--navy); }
.about-expertise > .container > p { max-width: 920px; margin-bottom: 32px; }
.about-expertise .expertise-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 0 0 62px; }
.about-expertise .expertise-grid:last-child { margin-bottom: 0; }
.expertise-panel { padding: 30px; background: #fff; border-left: 4px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.expertise-panel h3 { margin: 0 0 16px; color: var(--navy); }
.expertise-panel p { margin-bottom: 14px; } .expertise-panel p:last-child { margin-bottom: 0; }
.cta-uniform .cta-line { display: block; }
.cta-uniform p { margin-bottom: 14px; max-width: 770px; }
.cta-uniform .hero-actions { margin-top: 32px; }
.services-hero, .booking-hero { background: linear-gradient(130deg, var(--navy) 0%, #1c3657 70%, #33485c 100%); padding: 88px 0; border-bottom: 4px solid var(--gold); }
.services-hero h1, .booking-hero h1 { color: var(--white); }
.services-hero p, .booking-hero p { color: rgba(255,255,255,.86); max-width: 790px; }
.services-hero .section-number, .booking-hero .section-number { color: var(--gold); }
.services-detail-section { background: #f5f2e9; }
.service-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.service-detail-card { display: flex; flex-direction: column; background: white; padding: 28px; border: 1px solid #dbd1b9; border-top: 5px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow-sm); min-width: 0; }
.service-detail-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.service-detail-heading img { width: 56px; height: 56px; object-fit: contain; }
.service-detail-heading div { flex: 1; min-width: 140px; }
.service-detail-heading h3 { color: var(--navy); margin: 3px 0; }
.service-detail-heading p { color: var(--grey); margin: 0; }
.service-step { color: #825d13; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }
.service-detail-heading strong { color: var(--navy); white-space: nowrap; }
.service-description, .service-extra { line-height: 1.6; }
.service-deliverables { padding: 18px 0; margin: auto 0 22px; border-top: 1px solid #ded5c6; }
.service-deliverables h4 { color: var(--navy); margin-bottom: 10px; }
.service-deliverables .price-features { margin-bottom: 0; }
.service-detail-card > a { align-self: flex-start; }
.combined-pricing { background: var(--white); scroll-margin-top: 110px; }
.combined-pricing .pricing-card { border-top: 4px solid var(--gold); }
.combined-free-sessions { background: var(--off-white); }
.booking-format-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.booking-other-sessions { background: #f5f2e9; }
.booking-other-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.booking-other-card { padding: 28px; background: white; border-left: 4px solid var(--gold); border-radius: var(--radius); }
.booking-other-card p { margin: 8px 0 18px; }
.all-sessions-link, .booking-question { text-align: center; margin: 26px 0 0; }
.booking-question a, .all-sessions-link a { color: var(--navy); text-decoration: underline; }
.policy-toc { margin: 35px 0 50px; padding: 25px 28px; background: #f5f2e9; border-left: 4px solid var(--gold); }
.policy-toc strong { display: block; margin-bottom: 16px; color: var(--navy); }
.policy-toc-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 24px; }
.policy-toc-links a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.policy-page h2[id] { scroll-margin-top: 115px; }
.contact-hero .section-number { color: var(--navy); }
@media (max-width: 968px) {
  .service-detail-grid { grid-template-columns: 1fr; }
  .about-expertise .expertise-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .services-hero, .booking-hero { padding: 60px 0; }
  .booking-other-grid, .policy-toc-links { grid-template-columns: 1fr; }
  .booking-format-links a { flex: 1; justify-content: center; }
  .cta-uniform .cta-line:first-child { font-size: min(1em, 7.25vw); white-space: nowrap; }
  .cta-uniform .cta-line:last-child { font-size: min(1em, 7.25vw); }
}

@media (max-width: 968px) {
  /* The two policy pages previously had an unstyled four-pixel menu button. */
  .policy-legal .site-header .header-inner > a.header-cta { display: none; }
  .btn-primary, .btn-gold, .btn-secondary, .form-submit { min-height: 46px; }
  .site-footer .footer-col a, .site-footer .footer-legal a {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .site-footer .footer-social a { width: 44px; height: 44px; }
  .policy-toc a { display: flex; align-items: center; min-height: 44px; }
}
@media (max-width: 600px) {
  .site-footer .container { padding-left: 20px !important; padding-right: 20px !important; }
}
@media (max-width: 480px) {
  .site-footer .container { padding-left: 16px !important; padding-right: 16px !important; }
  .contact-page .comm-protocols { padding: 24px 18px; }
}
@media (max-width: 360px) {
  .cta-uniform .cta-line:first-child { font-size: min(1em, 6.8vw); }
}
@media (max-width: 480px) {
  .hero-eyebrow, .about-hero-eyebrow { font-size: .72rem; }
}

/* The merged Services/Pricing tiers use the more spacious pricing-card layout.
   Keep their deeper preparation and package information available on demand. */
.services-pricing { position: relative; scroll-margin-top: 110px; }
.services-pricing-anchor { position: absolute; top: 0; scroll-margin-top: 110px; }
.services-pricing .section-header { margin-bottom: 40px; }
.services-pricing .pricing-grid { margin-top: 0; }
.services-pricing .pricing-card { scroll-margin-top: 120px; }
.services-pricing .pricing-card .price-detail { margin-bottom: 20px; }
.services-pricing .tier-overview {
  color: var(--grey); font-size: .97rem; line-height: 1.62; margin: 0 0 20px;
}
.services-pricing .pricing-card .price-features { margin-bottom: 18px; }
.services-pricing .tier-prereq {
  color: var(--navy); font-size: .88rem; line-height: 1.45;
  border-left: 2px solid var(--gold); padding-left: 11px; margin: 0 0 12px;
}
.services-pricing .tier-details { border-top: 1px solid var(--grey-border); margin: 0 0 20px; }
.services-pricing .tier-details summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between;
  gap: 10px; min-height: 44px; color: var(--navy); font-weight: 600;
  font-size: .9rem; line-height: 1.3; cursor: pointer;
}
.services-pricing .tier-details summary::-webkit-details-marker { display: none; }
.services-pricing .tier-details summary::after { content: '+'; font-size: 1.35rem; font-weight: 400; color: var(--gold); }
.services-pricing .tier-details[open] summary::after { content: '−'; }
.services-pricing .tier-details summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.services-pricing .tier-details ul { padding: 0 0 4px 20px; margin: 0; color: var(--grey); font-size: .88rem; line-height: 1.5; }
.services-pricing .tier-details li { margin-bottom: 8px; }
.services-pricing .pricing-card > a { align-self: flex-start; margin-top: auto; }
.services-pricing .price-period { font-size: 1rem; }

/* Sept 2026 consistency pass: homepage menu face across the whole site.
   Home did not load Source Sans, so its menu rendered in system sans;
   explicit system sans preserves that appearance and matches other pages. */
.nav-menu a, .header-cta { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }

/* Home section labels (The Problem / The Solution) measure 16.92px at 17px root. */
.section-number { font-size: calc(.76rem + 4px); }
/* Match the homepage's prominent section-title scale, not card or policy headings. */
.about-story-content h2, .about-expertise > .container > h2,
.process-diagram-section h2, .contact-info h2 {
  font-size: clamp(2rem, 4vw, 2.9rem);
}
@media (max-width: 768px) {
  .about-story-content h2, .about-expertise > .container > h2,
  .process-diagram-section h2, .contact-info h2 { font-size: 1.5rem; }
}

/* Pricing FAQs inherit the same breathing room as the homepage FAQ. */
.faq-section .faq-item { padding: 16px 0; }
.faq-section .faq-question { gap: 20px; line-height: 1.45; }
.faq-section .faq-answer p { padding: 12px 0 10px; line-height: 1.7; }

/* Standalone brand emblem, visible but not used as a page-spanning watermark. */
.eidon-emblem { display: block; width: 80px; height: 80px; object-fit: contain; }
.founder-content .eidon-emblem { width: 72px; height: 72px; margin: 0 0 16px; }
.process-diagram-section .eidon-emblem { width: 64px; height: 64px; margin: 0 auto 18px; }
@media (max-width: 600px) {
  .founder-content .eidon-emblem { width: 64px; height: 64px; }
  .process-diagram-section .eidon-emblem { width: 58px; height: 58px; }
}

/* Consistent button depth and growth, with legible text on gold hover. */
.btn-primary, .btn-secondary, .btn-gold, .header-cta {
  box-shadow: 0 4px 12px rgba(10, 26, 59, .17);
  transition: transform .25s ease, box-shadow .25s ease,
              background-color .25s ease, border-color .25s ease, color .25s ease;
}
.btn-primary:hover, .btn-primary:focus-visible,
.btn-secondary:hover, .btn-secondary:focus-visible,
.btn-gold:hover, .btn-gold:focus-visible,
.header-cta:hover, .header-cta:focus-visible {
  transform: translateY(-3px) scale(1.035);
  box-shadow: 0 14px 30px rgba(10, 26, 59, .27);
}
.btn-gold:hover, .btn-gold:focus-visible { color: var(--navy); }
/* The hero glow animation otherwise overrides its hover shadow. */
.hero .btn-primary:hover, .hero .btn-primary:focus-visible { animation: none; }

/* Both Booking > Other Sessions cards use the same centred composition. */
.booking-other-card { display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: center; }
.booking-other-card .btn-primary { justify-content: center; text-align: center; max-width: 100%; }

/* Accessible, site-wide scroll-to-top control. */
.back-to-top {
  position: fixed; z-index: 90; right: 22px; bottom: 22px;
  width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
  color: var(--gold-light); background: var(--navy);
  border: 1px solid var(--gold-border); border-radius: 50%;
  box-shadow: var(--shadow); cursor: pointer;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(10px);
  transition: opacity .25s, visibility .25s, transform .25s, box-shadow .25s;
}
.back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.back-to-top.is-visible:hover, .back-to-top.is-visible:focus-visible {
  transform: translateY(-3px) scale(1.06); box-shadow: var(--shadow-lg);
}
.back-to-top:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.back-to-top svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 600px) { .back-to-top { bottom: 18px; right: 18px; } }
@media (prefers-reduced-motion: reduce) {
  .btn-primary, .btn-secondary, .btn-gold, .header-cta, .back-to-top { transition: none; }
  .hero .btn-primary { animation: none; }
}

/* Native FAQ buttons keep the existing visual style and enable keyboard operation. */
.faq-question {
  width: 100%; padding: 0; border: 0; background: transparent;
  text-align: left; font-family: inherit; appearance: none;
}
.faq-question:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

/* Contact form feedback and a visually hidden spam trap. */
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; left: -10000px; }
.contact-form-status { min-height: 1.5em; margin-top: 14px; font-weight: 600; color: var(--navy); }
.contact-form-status.is-error { color: #a12c25; }
.form-submit:disabled { opacity: .65; cursor: wait; transform: none; }
