:root {
  --navy-950: #08172d;
  --navy-900: #0d1d37;
  --navy-800: #10284e;
  --navy-700: #183964;
  --gold-ink: #806026;
  --gold-500: #c6a15b;
  --gold-300: #e5c98f;
  --ink: #142038;
  --muted: #5d687b;
  --line: #d9dfe9;
  --paper: #ffffff;
  --mist: #f4f6fa;
  --warm: #fbf8f1;
  --shadow-sm: 0 12px 32px rgba(13, 29, 55, 0.09);
  --shadow-lg: 0 28px 70px rgba(8, 23, 45, 0.17);
  --radius-sm: 0.65rem;
  --radius: 1rem;
  --radius-lg: 1.5rem;
  --shell: 1180px;
}

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

html { scroll-behavior: smooth; scroll-padding-top: 6rem; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

button, input, select, textarea { font: inherit; }

button, a { -webkit-tap-highlight-color: transparent; }

a { color: inherit; }

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

h1, h2, h3, p { margin-top: 0; }

h1, h2, h3 {
  color: var(--navy-900);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.028em;
}

h1 { max-width: 12ch; margin-bottom: 1.4rem; font-size: clamp(3.1rem, 7.2vw, 6.8rem); }
h2 { margin-bottom: 1rem; font-size: clamp(2.2rem, 4.5vw, 4.25rem); }
h3 { margin-bottom: 0.75rem; font-size: clamp(1.3rem, 2.2vw, 1.85rem); }

.shell { width: min(calc(100% - 2.5rem), var(--shell)); margin-inline: auto; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 999;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.7rem 1rem;
  color: var(--paper);
  background: var(--navy-900);
  border-radius: var(--radius-sm);
  transform: translateY(-150%);
}

.skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 3px solid #2674c9;
  outline-offset: 3px;
}

.eyebrow {
  margin-bottom: 0.8rem;
  color: var(--navy-700);
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.eyebrow-light { color: var(--gold-300); }

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(217, 223, 233, 0.8);
  backdrop-filter: blur(16px);
}

.header-inner { display: flex; min-height: 5.25rem; align-items: center; justify-content: space-between; gap: 2rem; }

.brand { width: 225px; flex: 0 1 auto; }
.brand img { width: 100%; }
.site-footer img[src*="prolumis-logo"] { display: none; }

.desktop-nav { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2rem); }

.desktop-nav > a {
  color: var(--navy-900);
  font-size: 0.92rem;
  font-weight: 700;
  text-decoration: none;
}

.desktop-nav > a:hover { color: var(--gold-ink); }

.desktop-nav > .header-phone {
  color: var(--navy-800);
  text-decoration: underline;
  text-decoration-color: var(--gold-ink);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3rem;
}

.menu-button {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0.65rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  cursor: pointer;
}

.menu-button span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: var(--navy-900); transition: transform 180ms ease, opacity 180ms ease; }
.menu-button[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(7px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:nth-of-type(3) { opacity: 0; }
.menu-button[aria-expanded="true"] span:nth-of-type(4) { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  position: fixed;
  inset: 5.25rem 0 auto;
  padding: 1rem 1.25rem 1.5rem;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
}

.mobile-nav:not([hidden]) { display: grid; gap: 0.25rem; }

.mobile-nav a { padding: 0.75rem 0.5rem; color: var(--navy-900); font-size: 1.1rem; font-weight: 700; text-decoration: none; }
.mobile-nav .button { margin-top: 0.5rem; }
.mobile-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }

.button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.82rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 0.7rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.button:hover { transform: translateY(-2px); }
.button-small { min-height: 2.75rem; padding: 0.65rem 1rem; font-size: 0.88rem; }
.button-full { width: 100%; }
.button-primary { color: #fff; background: var(--navy-800); box-shadow: 0 10px 24px rgba(16, 40, 78, 0.19); }
.button-primary:hover { background: var(--navy-700); box-shadow: 0 14px 30px rgba(16, 40, 78, 0.25); }
.button-secondary { color: var(--navy-900); background: #fff; border-color: #b9c3d3; }
.button-secondary:hover { border-color: var(--navy-700); }
.button-gold { color: var(--navy-950); background: var(--gold-300); }
.button-gold:hover { background: #efd69e; }

.button-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }

.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 7.5rem) 0 clamp(3.5rem, 7vw, 6rem);
  background:
    radial-gradient(circle at 81% 16%, rgba(198, 161, 91, 0.16), transparent 25rem),
    linear-gradient(135deg, #fff 0%, #f8f9fb 66%, #f4efe4 100%);
}

.hero::before {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(13, 29, 55, 0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(13, 29, 55, 0.025) 1px, transparent 1px);
  background-size: 48px 48px;
  content: "";
  mask-image: linear-gradient(to right, #000, transparent 72%);
  pointer-events: none;
}

.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.72fr); align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.hero-copy { min-width: 0; }

.hero-lead {
  max-width: 45rem;
  margin-bottom: 1.8rem;
  color: #46536a;
  font-size: clamp(1.13rem, 2vw, 1.35rem);
  line-height: 1.65;
}

.microcopy { max-width: 43rem; margin: 0.85rem 0 0; color: var(--muted); font-size: 0.875rem; }
.hero-path-link { color: var(--navy-800); font-weight: 800; text-underline-offset: 0.2rem; }

.proof-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin: 2.75rem 0 0;
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.proof-strip div { padding: 1rem 1.1rem; background: rgba(255,255,255,0.86); }
.proof-strip dt { color: var(--navy-900); font-family: Georgia, "Times New Roman", serif; font-size: 1.32rem; font-weight: 700; }
.proof-strip dd { margin: 0.12rem 0 0; color: var(--muted); font-size: 0.875rem; line-height: 1.4; }
.trust-band { color: #fff; background: var(--navy-900); border-top: 1px solid rgba(255,255,255,0.12); border-bottom: 1px solid rgba(255,255,255,0.12); }
.trust-band-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust-band p { margin: 0; padding: 1.15rem 1.25rem; color: #eef2f7; border-right: 1px solid rgba(255,255,255,0.14); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1rem, 1.8vw, 1.25rem); text-align: center; }
.trust-band p:last-child { border-right: 0; }

.portrait-card { position: relative; z-index: 1; margin: 0; }
.portrait-card::before { position: absolute; z-index: -1; inset: -1.1rem 1.8rem 2.8rem -1.1rem; border: 1px solid var(--gold-500); border-radius: 48% 48% 1.5rem 1.5rem; content: ""; }
.portrait-card img { position: relative; aspect-ratio: 1; width: 100%; object-fit: cover; border-radius: 48% 48% 1.5rem 1.5rem; box-shadow: var(--shadow-lg); }
.portrait-card figcaption { position: relative; width: calc(100% - 2.5rem); margin: -2.6rem auto 0; padding: 1rem 1.2rem; color: #fff; background: rgba(13, 29, 55, 0.94); border: 1px solid rgba(229, 201, 143, 0.45); border-radius: 0.8rem; box-shadow: var(--shadow-sm); }
.portrait-card figcaption strong, .portrait-card figcaption span { display: block; }
.portrait-card figcaption strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.portrait-card figcaption span { color: #d8deea; font-size: 0.875rem; }

.pathway-section { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--paper); }

.section-heading { max-width: 46rem; margin-bottom: 2.5rem; }
.section-heading > p:not(.eyebrow) { max-width: 42rem; color: var(--muted); font-size: 1.05rem; }
.section-heading.compact { margin-bottom: 1.5rem; }

.pathway-layout { display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr); gap: 1rem; }
.pathway-options { display: grid; gap: 0.7rem; }

.pathway-option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  width: 100%;
  padding: 1.15rem;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.pathway-option:hover { border-color: #9eabc0; transform: translateX(3px); }
.pathway-option.is-active { background: #f2f5fa; border-color: var(--navy-700); box-shadow: inset 4px 0 0 var(--gold-500); }
.pathway-option strong, .pathway-option small { display: block; }
.pathway-option strong { margin-bottom: 0.2rem; color: var(--navy-900); font-size: 1rem; }
.pathway-option small { color: var(--muted); font-size: 0.875rem; line-height: 1.45; }
.option-number { color: var(--gold-ink); font-family: Georgia, "Times New Roman", serif; font-weight: 700; }

.recommendation { min-height: 100%; padding: clamp(1.5rem, 4vw, 2.6rem); color: #eaf0fa; background: linear-gradient(145deg, var(--navy-950), var(--navy-800)); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.recommendation h3 { color: #fff; font-size: clamp(1.8rem, 3vw, 2.65rem); }
.recommendation > p:not(.recommendation-label) { color: #cbd5e4; }
.recommendation-label { margin-bottom: 0.75rem; color: var(--gold-300); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.check-list { display: grid; gap: 0.55rem; margin: 1.4rem 0 1.8rem; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 1.55rem; color: #eff3f9; }
.check-list li::before { position: absolute; left: 0; color: var(--gold-300); content: "✓"; font-weight: 800; }

.text-link { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--navy-800); font-weight: 800; text-decoration: underline; text-decoration-color: rgba(16, 40, 78, 0.3); text-underline-offset: 0.25rem; }
.recommendation .text-link { color: #fff; text-decoration-color: rgba(255,255,255,0.4); }
.text-link-light { color: #fff; }

.service-summary { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 6rem); margin-top: clamp(4rem, 8vw, 7rem); align-items: start; }
.service-summary h2 { max-width: 12ch; }
.service-list { border-top: 1px solid var(--line); }
.service-list details, .faq-list details { border-bottom: 1px solid var(--line); }
.service-list summary, .faq-list summary { display: flex; min-height: 4.1rem; align-items: center; justify-content: space-between; gap: 1rem; color: var(--navy-900); font-weight: 800; cursor: pointer; list-style: none; }
.service-list summary::-webkit-details-marker, .faq-list summary::-webkit-details-marker { display: none; }
.service-list summary span, .faq-list summary span { color: var(--gold-ink); font-size: 1.5rem; font-weight: 400; transition: transform 180ms ease; }
.service-list details[open] summary span, .faq-list details[open] summary span { transform: rotate(45deg); }
.service-list details p, .faq-list details p { margin: -0.25rem 2.5rem 1.35rem 0; color: var(--muted); }

.plan-compare { display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr); gap: clamp(2rem, 6vw, 5rem); margin-top: clamp(4rem, 8vw, 7rem); padding: clamp(2rem, 5vw, 4rem); color: #d7dfeb; background: linear-gradient(130deg, var(--navy-950), var(--navy-800)); border-radius: var(--radius-lg); }
.plan-intro h2 { color: #fff; }
.plan-intro > p:last-child { color: #c4cfdf; }
.plans { display: grid; gap: 0.7rem; }
.plans article { position: relative; padding: 1.25rem; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--radius); }
.plans article.featured { border-color: var(--gold-ink); background: rgba(198,161,91,0.09); }
.plans article > span { color: var(--gold-300); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.plans h3 { margin: 0.35rem 0 0.4rem; color: #fff; font-family: inherit; font-size: 1.08rem; font-weight: 800; letter-spacing: -0.01em; }
.plans p { margin-bottom: 0.8rem; color: #c7d1df; font-size: 0.875rem; }
.plans .plan-price, .page-plans .plan-price { display: grid; gap: 0.1rem; margin: 0 0 1rem; }
.plans .plan-price strong, .page-plans .plan-price strong { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.35rem, 2.6vw, 1.8rem); line-height: 1.1; }
.plans .plan-price span, .page-plans .plan-price span { color: #c7d1df; font-size: 0.875rem; font-weight: 700; }
.fee-disclosure { max-width: 58rem; margin: 0.85rem 0 0; color: var(--muted); font-size: 0.875rem; line-height: 1.55; }
.fee-disclosure-dark { grid-column: 1 / -1; margin: -0.2rem 0 0; color: #bcc8d8; }
.plan-link { padding: 0; color: #fff; background: transparent; border: 0; font-weight: 800; text-decoration: underline; text-decoration-color: rgba(255,255,255,0.35); text-underline-offset: 0.22rem; cursor: pointer; }
.prolumis-clear-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.5rem; padding: clamp(1.5rem, 4vw, 2.5rem); color: #dce5f1; background: linear-gradient(125deg, var(--navy-950), var(--navy-700)); border: 1px solid rgba(198,161,91,0.5); border-left: 5px solid var(--gold-500); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.prolumis-clear-card > div { max-width: 48rem; }
.prolumis-clear-card > div > span { display: block; margin-bottom: 0.4rem; color: var(--gold-300); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.prolumis-clear-card h2, .prolumis-clear-card h3 { margin: 0 0 0.55rem; color: #fff; }
.prolumis-clear-card h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.prolumis-clear-card h3 { font-size: clamp(1.55rem, 3vw, 2.2rem); }
.prolumis-clear-card p { margin: 0; color: #cbd6e5; }
.prolumis-clear-card .clear-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.4rem 0.8rem; margin: 0 0 1rem; }
.prolumis-clear-card .clear-price strong { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 3vw, 2.35rem); line-height: 1; }
.prolumis-clear-card .clear-price span { color: #e7edf5; font-size: 0.875rem; font-weight: 750; }
.prolumis-clear-card > .button { flex: 0 0 auto; }
.prolumis-clear-home { grid-column: 1 / -1; margin-top: 0; background: rgba(255,255,255,0.06); box-shadow: none; }

.counsel-section { padding: clamp(4rem, 8vw, 7rem) 0 0; background: var(--warm); }
.counsel-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.75fr); gap: clamp(2.5rem, 8vw, 7rem); align-items: center; }
.counsel-copy h2 { max-width: 13ch; }
.large-copy { color: #334056; font-size: clamp(1.1rem, 2vw, 1.3rem); }
.credentials { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1.5rem; }
.credentials span { padding: 0.45rem 0.7rem; color: var(--navy-700); background: #fff; border: 1px solid #ddd5c6; border-radius: 99px; font-size: 0.875rem; font-weight: 750; }

.experience-card { padding: clamp(1.7rem, 4vw, 2.7rem); color: #dbe4f0; background: var(--navy-900); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.experience-card h3 { color: #fff; font-size: clamp(1.75rem, 3vw, 2.55rem); }
.experience-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 1.8rem 0; overflow: hidden; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--radius); }
.experience-stats div { padding: 1rem; background: var(--navy-900); }
.experience-stats strong, .experience-stats span { display: block; }
.experience-stats strong { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 1.75rem; }
.experience-stats span { color: #c5d0df; font-size: 0.875rem; line-height: 1.4; }
.fine-print { color: #aebbcf; font-size: 0.875rem; }
.founder-origin { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; padding: clamp(2rem, 5vw, 3.5rem); background: #fff; border: 1px solid #ded7c9; border-radius: var(--radius-lg); }
.founder-origin h2 { max-width: 13ch; margin-bottom: 0; font-size: clamp(2rem, 4vw, 3.5rem); }
.founder-origin p:not(.eyebrow) { color: var(--muted); }
.home-founder-origin { margin-top: clamp(4rem, 7vw, 6rem); }
.light-story { margin-top: clamp(4rem, 8vw, 7rem); }
.light-story-heading { max-width: 52rem; }
.light-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.light-story figure { margin: 0; overflow: hidden; background: #fff; border: 1px solid #ded7c9; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.light-story img { width: 100%; aspect-ratio: 1672 / 941; object-fit: cover; }
.light-story figcaption { display: grid; gap: 0.3rem; padding: 1.15rem 1.25rem 1.35rem; }
.light-story figcaption strong { color: var(--navy-900); }
.light-story figcaption span { color: var(--muted); font-size: 0.875rem; line-height: 1.5; }

.process-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: clamp(4rem, 7vw, 6rem); }
.process-row > div { padding: 1.5rem; background: rgba(255,255,255,0.74); border: 1px solid #ded7c9; border-radius: var(--radius); }
.process-row span { display: block; margin-bottom: 1.2rem; color: var(--gold-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; font-weight: 700; }
.process-row strong { display: block; margin-bottom: 0.35rem; color: var(--navy-900); }
.process-row p { margin: 0; color: var(--muted); font-size: 0.875rem; }

.faq-wrap { display: grid; grid-template-columns: minmax(0, 0.65fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 6rem); margin-top: clamp(4rem, 8vw, 7rem); }
.faq-wrap h2 { max-width: 10ch; }
.faq-list { border-top: 1px solid #d7cfbf; }
.faq-list details { border-color: #d7cfbf; }

.final-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(4rem, 8vw, 7rem); padding: clamp(2rem, 5vw, 4rem); background: #fff; border: 1px solid #ded7c9; border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.final-cta h2 { margin-bottom: 0.5rem; font-size: clamp(2rem, 4vw, 3.35rem); }
.final-cta p:last-child { margin: 0; color: var(--muted); }
.final-cta .button-row { flex: 0 0 auto; }

.site-footer { padding: 2.5rem 0 1.5rem; color: #c3cddd; background: var(--navy-950); }
.footer-grid { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.footer-grid img { width: 190px; padding: 0.25rem 0.4rem; background: #fff; border-radius: 0.35rem; }
.footer-grid p { margin: 0.6rem 0 0; font-size: 0.875rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.footer-links a, .footer-links button { padding: 0; color: #fff; background: transparent; border: 0; font-size: 0.875rem; text-decoration: underline; text-underline-offset: 0.22rem; cursor: pointer; }
.footer-phone { display: inline-block; margin-top: 0.55rem; color: #fff; font-weight: 800; text-underline-offset: 0.22rem; }
.footer-site-map { display: grid; grid-template-columns: repeat(3, minmax(100px, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); }
.footer-site-map div { display: grid; align-content: start; gap: 0.35rem; }
.footer-site-map strong { margin-bottom: 0.25rem; color: var(--gold-300); font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; }
.footer-site-map a { color: #fff; font-size: 0.875rem; text-decoration: none; }
.footer-site-map a:hover { text-decoration: underline; text-underline-offset: 0.2rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.7rem; padding-top: 1.1rem; border-top: 1px solid rgba(255,255,255,0.14); }
.footer-bottom p { margin: 0; font-size: 0.875rem; }

.mobile-cta { display: none; }

.site-dialog {
  width: min(calc(100% - 2rem), 610px);
  max-height: min(86vh, 760px);
  padding: 0;
  color: var(--ink);
  background: var(--paper);
  border: 0;
  border-radius: var(--radius-lg);
  box-shadow: 0 30px 90px rgba(4, 15, 31, 0.38);
}

.site-dialog::backdrop { background: rgba(4, 15, 31, 0.66); backdrop-filter: blur(3px); }
.dialog-inner { position: relative; padding: clamp(1.5rem, 5vw, 2.7rem); }
.dialog-close { position: absolute; top: 0.9rem; right: 0.9rem; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; padding: 0; color: var(--navy-900); background: var(--mist); border: 0; border-radius: 50%; font-size: 1.55rem; line-height: 1; cursor: pointer; }
.site-dialog h2 { padding-right: 2rem; font-size: clamp(2rem, 5vw, 3rem); }
.booking-dialog form { display: grid; gap: 0.65rem; margin-top: 1.5rem; }
.booking-dialog label:not(.check-row) { color: var(--navy-900); font-weight: 800; }
.booking-dialog select { width: 100%; min-height: 3.25rem; padding: 0.65rem 2.4rem 0.65rem 0.8rem; color: var(--ink); background: #fff; border: 1px solid #aeb8c8; border-radius: 0.55rem; }
.booking-dialog select[aria-invalid="true"], .check-row input[aria-invalid="true"] { border-color: #a32118; outline-color: #a32118; }
.check-row { display: grid; grid-template-columns: auto 1fr; gap: 0.65rem; align-items: start; margin-top: 0.75rem; color: #3d4960; font-size: 0.875rem; cursor: pointer; }
.check-row input { width: 1.15rem; height: 1.15rem; margin: 0.18rem 0 0; accent-color: var(--navy-800); }
.field-error { min-height: 1.25rem; color: #8e1b15; font-size: 0.875rem; font-weight: 700; }
.booking-note { margin: 0; color: var(--muted); font-size: 0.875rem; text-align: center; }
.duration-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; margin: 0 0 0.4rem; padding: 0; border: 0; }
.duration-picker legend { grid-column: 1 / -1; margin-bottom: 0.35rem; color: var(--navy-900); font-weight: 800; }
.duration-picker label { position: relative; display: block; min-height: 5.15rem; padding: 0.85rem 0.9rem 0.85rem 2.25rem; background: #fff; border: 1px solid #aeb8c8; border-radius: 0.7rem; cursor: pointer; }
.duration-picker label:has(input:checked) { background: #f3f6fb; border-color: var(--navy-700); box-shadow: inset 3px 0 0 var(--gold-500); }
.duration-picker input { position: absolute; top: 1rem; left: 0.8rem; }
.duration-picker strong, .duration-picker small { display: block; }
.duration-picker strong { color: var(--navy-900); }
.duration-picker small { margin-top: 0.15rem; color: var(--muted); font-size: 0.875rem; line-height: 1.35; }
.legal-dialog { overflow-y: auto; }
.legal-copy h3 { margin: 1.4rem 0 0.35rem; font-family: inherit; font-size: 1rem; font-weight: 800; letter-spacing: normal; }
.legal-copy p { color: #4c586d; }
.legal-copy a { color: var(--navy-700); font-weight: 700; }

/* Supporting pages */
.page-hero {
  padding: clamp(4rem, 8vw, 7rem) 0;
  background:
    radial-gradient(circle at 83% 18%, rgba(198, 161, 91, 0.17), transparent 23rem),
    linear-gradient(135deg, #fff, #f6f7fa 72%, #f7f1e5);
  border-bottom: 1px solid var(--line);
}

.page-hero h1 { max-width: 14ch; font-size: clamp(3rem, 6.2vw, 5.6rem); }
.page-hero > .shell > p:last-child, .page-hero > .shell > div > p:last-child { max-width: 48rem; margin-bottom: 0; color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.3rem); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.page-hero-grid h1 { font-size: clamp(3rem, 5.4vw, 5rem); }
.hero-service-map, .hero-price-map { padding: clamp(1.25rem, 3vw, 2rem); color: #fff; background: linear-gradient(145deg, var(--navy-950), var(--navy-700)); border: 1px solid rgba(198,161,91,0.5); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.hero-service-map > p, .hero-price-map > p { margin-bottom: 0.8rem; color: var(--gold-300); font-size: 0.875rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.hero-service-map ol { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
.hero-service-map li { display: grid; grid-template-columns: auto 1fr; gap: 0.8rem; padding: 0.72rem 0; border-bottom: 1px solid rgba(255,255,255,0.13); font-weight: 750; }
.hero-service-map li:last-child { border-bottom: 0; }
.hero-service-map li span { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; }
.hero-price-map dl { display: grid; gap: 0.6rem; margin: 0; }
.hero-price-map dl div { display: grid; grid-template-columns: 0.72fr 1fr; align-items: baseline; gap: 0.7rem; padding-bottom: 0.55rem; border-bottom: 1px solid rgba(255,255,255,0.13); }
.hero-price-map dl div:last-child { padding-bottom: 0; border-bottom: 0; }
.hero-price-map dt { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; font-weight: 700; }
.hero-price-map dd { margin: 0; color: #d6deea; font-size: 0.875rem; }
.page-content { padding: clamp(3.5rem, 7vw, 6.5rem) 0; }

.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.detail-grid article { padding: clamp(1.4rem, 3vw, 2rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.detail-grid article:first-child { background: var(--warm); }
.detail-grid article > span { color: var(--gold-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; font-weight: 700; }
.detail-grid h2 { margin: 1rem 0 0.65rem; font-size: clamp(1.65rem, 3vw, 2.4rem); }
.detail-grid p { color: var(--muted); }
.page-hero-companion { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; margin-bottom: 1.25rem; padding: clamp(1.7rem, 4vw, 3rem); color: #dbe4f0; background: linear-gradient(135deg, var(--navy-950), var(--navy-700)); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.page-hero-companion h2 { max-width: 13ch; color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); }
.page-hero-companion p:last-child { max-width: 42rem; margin-bottom: 0; color: #c7d2e2; }
.page-hero-companion ol { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.page-hero-companion li { display: grid; grid-template-columns: auto 1fr; gap: 0.8rem; align-items: center; padding: 0.8rem 1rem; color: #fff; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.14); border-radius: 0.75rem; font-weight: 750; }
.page-hero-companion li span { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; }
.plans-companion dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 0; overflow: hidden; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.14); border-radius: var(--radius); }
.plans-companion dl div { padding: 1rem; background: var(--navy-900); }
.plans-companion dt { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 700; }
.plans-companion dd { margin: 0.25rem 0 0; color: #c7d2e2; font-size: 0.875rem; line-height: 1.35; }
.link-button { padding: 0; background: transparent; border: 0; cursor: pointer; }

.decision-panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(3.5rem, 7vw, 6rem); padding: clamp(2rem, 5vw, 3.5rem); color: #d9e2ef; background: linear-gradient(135deg, var(--navy-950), var(--navy-800)); border-radius: var(--radius-lg); }
.decision-panel h2 { max-width: 16ch; margin-bottom: 0.7rem; color: #fff; font-size: clamp(2rem, 4vw, 3.45rem); }
.decision-panel p:last-child { max-width: 42rem; margin: 0; color: #c1cede; }
.decision-panel > .button { flex: 0 0 auto; }

.page-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
.page-plans article { display: flex; flex-direction: column; padding: clamp(1.4rem, 3vw, 2.1rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.page-plans article.featured { color: #e8eef7; background: var(--navy-900); border-color: var(--navy-900); transform: translateY(-0.7rem); }
.page-plans article > span { color: var(--gold-ink); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.page-plans h2 { margin: 0.65rem 0 1rem; font-size: 2.2rem; }
.page-plans .featured h2, .page-plans .featured strong { color: #fff; }
.page-plans .plan-price span { color: var(--muted); }
.page-plans .featured .plan-price strong { color: var(--gold-300); }
.page-plans .featured .plan-price span { color: #c8d2e1; }
.page-plans article > strong { display: block; margin-bottom: 0.75rem; color: var(--navy-900); }
.page-plans article > p { color: var(--muted); }
.page-plans .featured > p { color: #c8d2e1; }
.page-plans .button { margin-top: auto; }

.table-wrap { position: relative; margin-top: clamp(3rem, 6vw, 5rem); overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.comparison-table { width: 100%; min-width: 730px; border-collapse: collapse; background: #fff; }
.comparison-table caption { padding: 1.3rem; color: var(--navy-900); background: var(--warm); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; font-weight: 700; text-align: left; }
.comparison-table th, .comparison-table td { padding: 0.9rem 1rem; border-top: 1px solid var(--line); text-align: center; }
.comparison-table th:first-child { width: 46%; text-align: left; }
.comparison-table thead th { color: var(--navy-900); background: var(--mist); font-size: 0.875rem; }
.comparison-table tbody th { color: #344158; font-size: 0.875rem; font-weight: 650; }
.comparison-table td { color: var(--navy-700); font-weight: 900; }

.notice-panel, .deadline-notice { margin-top: 1.5rem; padding: 1.3rem; background: var(--warm); border: 1px solid #ded5c3; border-left: 4px solid var(--gold-500); border-radius: var(--radius-sm); }
.notice-panel strong, .deadline-notice strong { color: var(--navy-900); }
.notice-panel p, .deadline-notice p { color: var(--muted); }
.notice-panel .button { margin-top: 0.3rem; }
.plan-process { margin-top: clamp(3.5rem, 7vw, 6rem); }
.plan-process > h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.plan-faq, .stronger-start { margin-top: clamp(3.5rem, 7vw, 6rem); }
.plain-check-list { display: grid; gap: 0.45rem; margin: 0.8rem 0 1.25rem; padding: 0; list-style: none; }
.plain-check-list li { position: relative; padding-left: 1.4rem; color: var(--muted); }
.plain-check-list li::before { position: absolute; left: 0; color: var(--gold-ink); content: "✓"; font-weight: 850; }

.page-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); }
.page-stats div { padding: 1.35rem; background: #fff; }
.page-stats dt { color: var(--navy-900); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 700; }
.page-stats dd { margin: 0; color: var(--muted); font-size: 0.875rem; }
.selected-work { margin-top: clamp(3.5rem, 7vw, 6rem); }
.class-breadth { display: grid; grid-template-columns: minmax(0, 0.78fr) minmax(320px, 1.22fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; margin-top: clamp(3.5rem, 7vw, 6rem); padding: clamp(2rem, 5vw, 3.5rem); background: var(--navy-900); border-radius: var(--radius-lg); }
.class-breadth h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); }
.class-breadth > div:first-child > p:last-child { color: #c4cfdf; }
.class-chart { display: grid; gap: 1rem; }
.class-row > div:first-child { display: grid; grid-template-columns: auto 1fr auto; gap: 0.75rem; align-items: baseline; }
.class-row strong { color: #fff; font-size: 0.875rem; }
.class-row span { color: #c8d3e2; font-size: 0.875rem; }
.class-row b { color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; }
.class-track { height: 0.4rem; margin-top: 0.35rem; overflow: hidden; background: rgba(255,255,255,0.14); border-radius: 99px; }
.class-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--gold-500), var(--gold-300)); border-radius: inherit; }
.method-note { margin: 0.8rem 0 0; color: var(--muted); font-size: 0.875rem; }
.verification-note { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); gap: clamp(2rem, 6vw, 5rem); margin-top: 1.25rem; padding: clamp(1.4rem, 4vw, 2.4rem); background: var(--warm); border: 1px solid #ded5c3; border-left: 5px solid var(--gold-500); border-radius: var(--radius); }
.verification-note h2 { max-width: 12ch; font-size: clamp(2rem, 4vw, 3.2rem); }
.verification-note p { color: var(--muted); }
.experience-practice { margin-top: clamp(3.5rem, 7vw, 6rem); }
.experience-highlight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.stronger-start .experience-highlight-grid { grid-template-columns: repeat(2, 1fr); }
.experience-highlight-grid article { padding: clamp(1.4rem, 3vw, 2rem); background: var(--warm); border: 1px solid #ded5c3; border-radius: var(--radius); }
.experience-highlight-grid h3 { margin-bottom: 0.65rem; color: var(--navy-900); font-family: inherit; font-size: 1.08rem; font-weight: 850; letter-spacing: normal; }
.experience-highlight-grid p { margin: 0; color: var(--muted); font-size: 0.875rem; }
.subheading { max-width: 48rem; }
.subheading h2 { font-size: clamp(2.2rem, 4vw, 3.7rem); }
.mark-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.mark-grid article { padding: 1.35rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.mark-grid .mark-card { padding: 0; overflow: hidden; box-shadow: var(--shadow-sm); }
.mark-image { display: grid; min-height: 185px; place-items: center; padding: 0.75rem; background: #fff; border-bottom: 1px solid var(--line); }
.mark-image img { width: 100%; aspect-ratio: 13 / 8; object-fit: contain; }
.mark-card > div { padding: 1.2rem; }
.mark-grid article > span, .article-grid article > span, .contact-choice-grid article > span { color: var(--gold-ink); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.mark-grid h3 { min-height: 3.2rem; margin: 0.75rem 0 0.4rem; font-family: inherit; font-size: 1rem; font-weight: 850; letter-spacing: normal; }
.mark-grid p { color: var(--muted); font-size: 0.875rem; }
.dark-fine-print { margin-top: 1.2rem; color: var(--muted); }

.back-link { display: inline-block; margin-bottom: 1.5rem; color: var(--navy-800); font-weight: 800; text-underline-offset: 0.22rem; }
.record-layout { display: grid; grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: start; }
.record-mark { display: grid; min-height: 360px; place-items: center; padding: 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.record-mark img { width: 100%; object-fit: contain; }
.record-sheet { overflow: hidden; background: #fff; border: 1px solid #aeb8c8; border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.record-sheet-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; color: #fff; background: var(--navy-900); }
.record-sheet-header span { color: var(--gold-300); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.record-sheet-header strong { font-size: 0.875rem; }
.record-sheet dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.record-sheet dl > div { padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.record-sheet dl > div:nth-child(odd):not(.record-wide) { border-right: 1px solid var(--line); }
.record-sheet .record-wide { grid-column: 1 / -1; }
.record-sheet dt { color: var(--muted); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.record-sheet dd { margin: 0.35rem 0 0; color: var(--navy-900); font-weight: 750; }
.record-sheet > .button { margin: 1.2rem; }
.record-note { margin-top: 1.25rem; padding: 1.15rem 1.3rem; background: var(--warm); border: 1px solid #ddd3c0; border-left: 4px solid var(--gold-500); border-radius: var(--radius-sm); }
.record-note strong { color: var(--navy-900); }
.record-note p { margin: 0.35rem 0 0; color: var(--muted); font-size: 0.875rem; }
.more-records { margin-top: clamp(3.5rem, 7vw, 6rem); }
.more-records > h2 { font-size: clamp(2rem, 4vw, 3.4rem); }

.profile-feature { display: grid; grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; }
.brand-story { display: grid; grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; margin-bottom: clamp(4rem, 8vw, 7rem); padding: clamp(1.5rem, 4vw, 3rem); background: var(--warm); border: 1px solid #ded5c3; border-radius: var(--radius-lg); }
.brand-story-mark { display: grid; min-height: 230px; place-items: center; padding: 1rem; background: #fff; border-radius: 48% 48% var(--radius) var(--radius); box-shadow: var(--shadow-sm); }
.brand-story h2 { max-width: 15ch; font-size: clamp(2rem, 4vw, 3.6rem); }
.natalie-photo-placeholder { display: flex; flex-direction: column; justify-content: center; gap: 1rem; min-width: 0; min-height: 320px; padding: clamp(1.25rem, 3vw, 2rem); background: var(--mist); border: 2px dashed var(--gold-ink); border-radius: var(--radius); }
.natalie-photo-placeholder strong { color: var(--navy-900); font-size: 1.1rem; line-height: 1.4; }
.natalie-photo-placeholder p { margin: 0; font-size: 1rem; line-height: 1.65; }
.shoot-placeholder { display: flex; flex-direction: column; justify-content: center; gap: 1rem; min-width: 0; min-height: 300px; padding: clamp(1.25rem, 3vw, 2rem); background: var(--mist); border: 2px dashed var(--gold-ink); border-radius: var(--radius); color: var(--ink); }
.shoot-placeholder strong { color: var(--navy-900); font-size: 1.1rem; line-height: 1.4; }
.shoot-placeholder p { margin: 0; font-size: 1rem; line-height: 1.65; }
.shoot-placeholder small { color: var(--muted); font-size: 0.875rem; line-height: 1.6; }
.shoot-placeholder-wide { margin-block: 2rem; min-height: 240px; }
.shoot-placeholder-wide p, .shoot-placeholder-wide small { max-width: 76ch; }
.brand-story p:not(.eyebrow) { color: var(--muted); }
.profile-feature img { aspect-ratio: 1; object-fit: cover; border-radius: 48% 48% var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-lg); }
.profile-feature h2 { font-size: clamp(2.7rem, 5vw, 4.8rem); }
.profile-feature p:not(.eyebrow) { color: var(--muted); }
.team-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: clamp(4rem, 8vw, 7rem); }
.team-grid article { padding: clamp(1.5rem, 4vw, 2.4rem); background: var(--warm); border: 1px solid #ded5c3; border-radius: var(--radius); }
.team-grid h2 { font-size: 2.2rem; }
.team-grid p:last-child { color: var(--muted); }

.article-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.article-grid article { padding: clamp(1.4rem, 3vw, 2rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.article-grid article:first-child { grid-column: 1 / -1; background: var(--warm); }
.article-grid h2 { max-width: 22ch; margin: 0.75rem 0; font-size: clamp(1.55rem, 3vw, 2.35rem); }
.article-grid p { color: var(--muted); }
.external-content-note { margin: 1rem 0 0; color: var(--muted); font-size: 0.875rem; }
.home-insights { margin-top: clamp(4rem, 8vw, 7rem); }
.home-insights .article-grid { grid-template-columns: repeat(3, 1fr); }
.home-insights .article-grid article:first-child { grid-column: auto; background: #fff; }
.home-insights .article-grid h2 { font-size: clamp(1.35rem, 2.3vw, 1.85rem); }
.all-insights-link { margin-top: 1.25rem; }

.article-body { max-width: 780px; margin-inline: auto; color: #334056; font-size: 1.05rem; line-height: 1.78; }
.article-deck { padding-bottom: 1.5rem; color: var(--navy-700); border-bottom: 1px solid var(--line); font-size: 1.25rem; font-weight: 650; }
.article-body section { margin-top: 2.4rem; }
.article-body h2 { margin-bottom: 0.75rem; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.article-body li { margin-bottom: 0.55rem; }
.article-number-list { display: grid; gap: 0.85rem; padding-left: 1.4rem; }
.article-number-list li { padding-left: 0.35rem; }
.article-body blockquote { margin: 2.5rem 0; padding: 1.5rem; color: var(--navy-900); background: var(--warm); border-left: 4px solid var(--gold-500); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; }
.article-disclaimer { margin-top: 3rem; padding: 1rem 1.2rem; color: var(--muted); background: var(--mist); border-radius: var(--radius-sm); font-size: 0.875rem; }

.resource-pathway { margin-top: clamp(4rem, 8vw, 7rem); }
.resource-pathway .section-heading { max-width: 52rem; }
.resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.resource-grid article { display: flex; flex-direction: column; min-height: 260px; padding: 1.5rem; background: #fff; border: 1px solid #ddd5c6; border-radius: var(--radius); }
.resource-grid article.featured { color: #e7edf6; background: var(--navy-900); border-color: var(--navy-900); box-shadow: var(--shadow-lg); }
.resource-grid article > span { color: var(--gold-ink); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.resource-grid h3 { margin-top: 0.8rem; }
.resource-grid .featured h3 { color: #fff; }
.resource-grid p { color: var(--muted); }
.resource-grid .featured p { color: #c3cedd; }
.resource-grid .text-link { margin-top: auto; align-self: flex-start; }
.resource-grid .featured .text-link { color: #fff; }
.resource-secondary { margin-top: 0.65rem; color: var(--gold-300); font-size: 0.875rem; font-weight: 800; text-underline-offset: 0.2rem; }
.resource-status { display: block; margin-top: 0.8rem; color: #c3cedd; font-size: 0.875rem; }

.assistant-launcher { position: fixed; z-index: 92; right: 1.25rem; bottom: 1.25rem; display: inline-flex; min-height: 3.25rem; align-items: center; gap: 0.55rem; padding: 0.75rem 1rem; color: #fff; background: var(--navy-800); border: 1px solid rgba(229,201,143,0.7); border-radius: 99px; box-shadow: var(--shadow-lg); font-weight: 850; cursor: pointer; }
.assistant-launcher > span:first-child { color: var(--gold-300); font-size: 1.25rem; }
.assistant-panel { position: fixed; z-index: 110; right: 1.25rem; bottom: 5.1rem; display: grid; grid-template-rows: auto minmax(80px, 1fr) auto auto auto; width: min(420px, calc(100vw - 2rem)); max-height: min(680px, calc(100dvh - 7rem)); overflow: hidden; background: #fff; border: 1px solid #bac4d3; border-radius: 1.15rem; box-shadow: 0 30px 80px rgba(8,23,45,0.28); }
.assistant-panel[hidden] { display: none; }
.assistant-panel header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; color: #fff; background: linear-gradient(135deg, var(--navy-950), var(--navy-700)); }
.assistant-panel header p { margin: 0 0 0.2rem; color: var(--gold-300); font-size: 0.875rem; font-weight: 850; letter-spacing: 0.11em; text-transform: uppercase; }
.assistant-panel header h2 { margin: 0; color: #fff; font-family: inherit; font-size: 1.05rem; font-weight: 850; letter-spacing: normal; }
.assistant-panel header button { color: #fff; background: transparent; border: 0; font-size: 1.65rem; line-height: 1; cursor: pointer; }
.assistant-messages { display: grid; align-content: start; gap: 0.7rem; padding: 1rem; overflow-y: auto; background: #f5f7fa; }
.assistant-message { width: fit-content; max-width: 92%; padding: 0.8rem 0.9rem; border-radius: 0.85rem; }
.assistant-message p { margin: 0; font-size: 0.875rem; line-height: 1.5; }
.assistant-message small { display: block; margin-top: 0.5rem; color: var(--muted); font-size: 0.875rem; line-height: 1.4; }
.assistant-message.is-guide { justify-self: start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 0.2rem; }
.assistant-message.is-user { justify-self: end; color: #fff; background: var(--navy-800); border-bottom-right-radius: 0.2rem; }
.assistant-action { display: inline-block; margin-top: 0.65rem; padding: 0; color: var(--navy-800); background: transparent; border: 0; font-size: 0.875rem; font-weight: 850; text-decoration: underline; text-underline-offset: 0.2rem; cursor: pointer; }
.assistant-prompts { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0.65rem 0.8rem; border-top: 1px solid var(--line); }
.assistant-prompts :is(button,a) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 0.45rem 0.65rem; color: var(--navy-800); background: var(--warm); border: 1px solid #d9cbaa; border-radius: 99px; font-size: 0.875rem; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.assistant-form { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; padding: 0.7rem 0.8rem; border-top: 1px solid var(--line); }
.assistant-form input { width: 100%; min-height: 2.8rem; padding: 0.6rem 0.7rem; border: 1px solid #aeb8c8; border-radius: 0.6rem; }
.assistant-form button { padding: 0.55rem 0.8rem; color: #fff; background: var(--navy-800); border: 0; border-radius: 0.6rem; font-weight: 850; cursor: pointer; }
.assistant-disclaimer { margin: 0; padding: 0 0.9rem 0.8rem; color: var(--muted); font-size: 0.875rem; line-height: 1.35; }

.guide-intro { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.7rem, 4vw, 3rem); color: #d8e0ec; background: var(--navy-900); border-radius: var(--radius-lg); }
.guide-intro h2 { max-width: 16ch; color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); }
.guide-intro p:last-child { max-width: 42rem; margin-bottom: 0; color: #c3cedd; }
.guide-intro .button { flex: 0 0 auto; }
.guide-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
.guide-steps article { padding: 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.guide-steps article:last-child { grid-column: 1 / -1; background: var(--warm); }
.guide-steps span { color: var(--gold-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; font-weight: 700; }
.guide-steps h2 { margin: 0.8rem 0 0.6rem; font-size: 1.65rem; }
.guide-steps p { margin-bottom: 0; color: var(--muted); }

.scorecard-overview { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: clamp(1.7rem, 4vw, 3rem); background: var(--warm); border: 1px solid #ded5c3; border-radius: var(--radius-lg); }
.scorecard-overview h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
.scorecard-overview p:last-child { max-width: 46rem; margin-bottom: 0; color: var(--muted); }
.score-ring { display: grid; width: 160px; aspect-ratio: 1; place-items: center; align-content: center; padding: 1rem; background: #fff; border: 10px solid var(--gold-500); border-radius: 50%; box-shadow: var(--shadow-sm); text-align: center; }
.score-ring strong { color: var(--navy-900); font-family: Georgia, "Times New Roman", serif; font-size: 2.4rem; }
.score-ring span { color: var(--muted); font-size: 0.875rem; }
.score-table td:last-child { color: var(--muted); font-weight: 500; text-align: left; }
.score-priorities { margin-top: clamp(3rem, 6vw, 5rem); }
.score-priorities > h2 { font-size: clamp(2rem, 4vw, 3.4rem); }

.full-faq { max-width: 860px; margin-inline: auto; border-top: 1px solid var(--line); }
.full-faq details { border-bottom: 1px solid var(--line); }
.full-faq summary { display: flex; min-height: 4.7rem; align-items: center; justify-content: space-between; gap: 1rem; color: var(--navy-900); font-size: 1.04rem; font-weight: 800; cursor: pointer; list-style: none; }
.full-faq summary::-webkit-details-marker { display: none; }
.full-faq summary span { color: var(--gold-ink); font-size: 1.5rem; transition: transform 180ms ease; }
.full-faq details[open] summary span { transform: rotate(45deg); }
.full-faq details p { max-width: 48rem; margin: -0.4rem 2.5rem 1.5rem 0; color: var(--muted); }

.contact-choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.contact-choice-grid.three-choices { grid-template-columns: repeat(3, 1fr); }
.contact-choice-grid article { display: flex; flex-direction: column; padding: clamp(1.5rem, 4vw, 2.3rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.contact-choice-grid h2 { margin: 0.8rem 0; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.contact-choice-grid p { color: var(--muted); }
.contact-choice-grid .button { margin-top: auto; }
.contact-choice-grid small { display: block; margin-top: 0.85rem; color: var(--muted); }
.contact-email { margin-top: 1.5rem; color: var(--muted); text-align: center; }
.contact-email a { color: var(--navy-800); font-weight: 800; }

.legal-page-copy { max-width: 820px; }
.legal-page-copy section { padding: 0 0 1.7rem; }
.legal-page-copy h2 { margin-bottom: 0.45rem; font-family: inherit; font-size: 1.15rem; font-weight: 850; letter-spacing: normal; }
.legal-page-copy p { color: var(--muted); }

@media (max-width: 940px) {
  .hero-grid, .counsel-grid { grid-template-columns: 1fr; }
  .trust-band-grid { grid-template-columns: 1fr; }
  .trust-band p { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.14); }
  .trust-band p:last-child { border-bottom: 0; }
  .portrait-card { width: min(78vw, 440px); margin-inline: auto; }
  .pathway-layout { grid-template-columns: 1fr; }
  .service-summary, .plan-compare, .faq-wrap { grid-template-columns: 1fr; }
  .service-summary h2, .faq-wrap h2 { max-width: 15ch; }
  .final-cta { align-items: flex-start; flex-direction: column; }
  .page-plans { grid-template-columns: 1fr; }
  .page-plans article.featured { transform: none; }
  .prolumis-clear-card { align-items: flex-start; flex-direction: column; }
  .page-stats { grid-template-columns: repeat(2, 1fr); }
  .mark-grid { grid-template-columns: repeat(2, 1fr); }
  .profile-feature, .founder-origin, .class-breadth { grid-template-columns: 1fr; }
  .page-hero-grid, .page-hero-companion, .verification-note { grid-template-columns: 1fr; }
  .brand-story { grid-template-columns: 1fr; }
  .profile-feature img { width: min(78vw, 440px); margin-inline: auto; }
  .contact-choice-grid.three-choices { grid-template-columns: 1fr; }
  .record-layout { grid-template-columns: 1fr; }
  .resource-grid { grid-template-columns: 1fr; }
  .home-insights .article-grid { grid-template-columns: 1fr 1fr; }
  .experience-highlight-grid { grid-template-columns: 1fr 1fr; }
  .guide-intro { align-items: flex-start; flex-direction: column; }
  .scorecard-overview { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 5.4rem; }
  body { padding-bottom: 4.6rem; }
  .shell { width: min(calc(100% - 1.5rem), var(--shell)); }
  .header-inner { min-height: 4.8rem; }
  .brand { width: 176px; }
  .mobile-nav { inset-block-start: 4.8rem; }
  .hero { padding-top: 3.3rem; }
  h1 { font-size: clamp(3rem, 16vw, 4.6rem); }
  .hero .button-row, .final-cta .button-row { display: grid; width: 100%; }
  .hero .button { width: 100%; }
  .proof-strip { grid-template-columns: 1fr; }
  .proof-strip div { display: grid; grid-template-columns: 0.72fr 1fr; align-items: baseline; gap: 0.5rem; }
  .portrait-card { width: min(82vw, 390px); }
  .pathway-option { padding: 1rem; }
  .recommendation { border-radius: var(--radius); }
  .service-summary, .plan-compare, .faq-wrap { gap: 1.5rem; }
  .plan-compare { margin-inline: -0.75rem; border-radius: 0; }
  .process-row { grid-template-columns: 1fr; }
  .experience-stats { grid-template-columns: 1fr; }
  .final-cta { margin-inline: -0.75rem; border-radius: 0; }
  .footer-grid, .footer-bottom { align-items: flex-start; flex-direction: column; }
  .footer-site-map { width: 100%; grid-template-columns: repeat(2, 1fr); }
  .footer-links { display: grid; gap: 0.7rem; }
  .mobile-cta { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; padding: 0.65rem 0.75rem max(0.65rem, env(safe-area-inset-bottom)); background: rgba(255,255,255,0.97); border-top: 1px solid var(--line); box-shadow: 0 -10px 30px rgba(13,29,55,0.12); backdrop-filter: blur(12px); }
  .mobile-cta .button { width: 100%; min-height: 3.1rem; }
  .mobile-menu-actions { grid-template-columns: 1fr; }
  .detail-grid, .team-grid, .article-grid { grid-template-columns: 1fr; }
  .home-insights .article-grid { grid-template-columns: 1fr; }
  .light-story-grid, .experience-highlight-grid { grid-template-columns: 1fr; }
  .detail-grid article:first-child, .article-grid article:first-child { grid-column: auto; }
  .decision-panel { align-items: flex-start; flex-direction: column; margin-inline: -0.75rem; border-radius: 0; }
  .decision-panel > .button { width: 100%; }
  .page-stats, .mark-grid { grid-template-columns: 1fr; }
  .page-stats div { display: grid; grid-template-columns: 0.72fr 1fr; align-items: baseline; gap: 0.5rem; }
  .profile-feature img { width: min(84vw, 400px); }
  .contact-choice-grid { grid-template-columns: 1fr; }
  .record-sheet dl { grid-template-columns: 1fr; }
  .record-sheet dl > div:nth-child(odd):not(.record-wide) { border-right: 0; }
  .record-sheet .record-wide { grid-column: auto; }
  .record-sheet-header { align-items: flex-start; flex-direction: column; }
  .guide-steps { grid-template-columns: 1fr; }
  .guide-steps article:last-child { grid-column: auto; }
  .score-ring { width: 140px; }
  .duration-picker, .plans-companion dl { grid-template-columns: 1fr; }
  .assistant-launcher { right: 0.75rem; bottom: 5.35rem; }
  .assistant-panel { right: 0.5rem; bottom: 5.25rem; width: calc(100vw - 1rem); max-height: calc(100dvh - 5.75rem); }
  .site-dialog { width: min(calc(100% - 1rem), 610px); max-height: 92vh; border-radius: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

@media (forced-colors: active) {
  .recommendation, .plan-compare, .experience-card, .site-footer { border: 1px solid CanvasText; }
  .pathway-option.is-active { border-width: 3px; }
}

/* Audit refinements: readable controls and resilient small-screen layouts. */
[hidden] { display: none !important; }
main:focus { outline: none; }
.desktop-nav a[aria-current], .mobile-nav a[aria-current] { text-decoration: underline; text-underline-offset: 0.35rem; text-decoration-thickness: 2px; }
.mobile-nav { max-height: calc(100dvh - 6rem); overflow-y: auto; overscroll-behavior: contain; }
.contact-fields { display: grid; gap: 0.55rem; margin-top: 0.75rem; }
.contact-fields label { color: var(--navy-900); font-weight: 750; }
.contact-fields label span { color: var(--muted); font-weight: 400; }
.contact-fields input, .handoff-panel textarea { width: 100%; min-width: 0; min-height: 3rem; padding: 0.7rem; color: var(--ink); border: 1px solid #718198; border-radius: 0.55rem; background: white; }
.handoff-panel { display: grid; gap: 0.8rem; padding: 1rem; margin-top: 0.5rem; border: 1px solid #b3c2d6; border-radius: 0.75rem; background: var(--mist); }
.handoff-panel p { margin: 0; }
.handoff-panel textarea { resize: vertical; }
.handoff-panel > .text-link { justify-self: start; }
.booking-note { overflow-wrap: anywhere; }
.dialog-close, .assistant-panel header button { min-width: 44px; min-height: 44px; }
.assistant-prompts button, .assistant-action { min-height: 44px; }
.assistant-panel header { align-items: center; }
.assistant-panel header h2 { line-height: 1.35; }
.assistant-form { grid-template-columns: minmax(0, 1fr) auto; }
.assistant-form input { min-width: 0; }
.assistant-messages { min-height: 0; overscroll-behavior: contain; }
.assistant-launcher[aria-expanded="true"] { visibility: hidden; }
.assistant-message p, .light-story figcaption span, .process-row p { font-size: 1rem; }
.page-plans .featured > span, .resource-grid .featured > span { color: var(--gold-300); }
.page-plans .plan-price strong { color: var(--navy-900); }
.class-breadth .eyebrow, .ongoing-care .eyebrow { color: var(--gold-ink); }
.class-breadth .eyebrow { color: var(--gold-300); }
.light-story figcaption .text-link { margin-top: 0.75rem; }
.journey-image { margin: 0 0 2rem; overflow: hidden; border-radius: var(--radius-lg); background: var(--navy-950); }
.journey-image img { width: 100%; height: auto; }
.plan-process .process-row { margin-top: 2rem; }
.ongoing-care { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin-top: clamp(3.5rem, 7vw, 6rem); }
.ongoing-care img { border-radius: var(--radius-lg); }
.ongoing-care h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); }
.ongoing-care p:not(.eyebrow) { color: var(--muted); }
.record-fallback { margin: 0 1.2rem 1.2rem; color: var(--muted); font-size: 0.875rem; }
.record-fallback a { font-weight: 700; }
.table-wrap { overscroll-behavior-x: contain; }
.table-wrap:focus-visible { outline-offset: 2px; }
@media (max-width: 1100px) {
  .desktop-nav { display: none; }
  .menu-button { display: block; }
}
@media (max-width: 940px) {
  .ongoing-care { grid-template-columns: 1fr; }
  .ongoing-care img { width: 100%; }
}
@media (max-height: 650px) {
  .assistant-panel { bottom: 0.5rem; max-height: calc(100dvh - 1rem); overflow-y: auto; }
  .assistant-messages { max-height: 38dvh; }
  .assistant-panel header h2 { font-size: 1rem; }
}
@media (max-width: 680px) {
  .mobile-nav { max-height: calc(100dvh - 4.8rem); }
  .site-dialog { max-height: calc(100dvh - 1rem); }
  .page-hero-grid h1, .page-hero h1 { overflow-wrap: anywhere; }
}

/* Questionnaire-based sample report */
.scorecard-review-badge { padding:1.5rem; max-width:240px; border:1px solid var(--gold-500); border-radius:var(--radius); background:#fff; }
.scorecard-review-badge strong,.scorecard-review-badge span { display:block; }
.scorecard-review-badge strong { color:var(--navy-900);font-size:1.3rem;margin-bottom:.5rem; }
.scorecard-review-badge span { color:var(--muted);font-size:.9rem; }
.sample-intake,.sample-findings,.sample-review-flow { margin-top:3rem; }
.sample-answer-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem; }
.sample-answer-grid > div { padding:1.3rem;border:1px solid #ded7c9;border-radius:var(--radius);background:var(--warm);overflow-wrap:anywhere; }
.sample-answer-grid dt { font-weight:700;color:var(--navy-900);margin-bottom:.5rem; }
.sample-answer-grid dd { margin:0;color:var(--muted); }
.score-priorities .process-row { margin-top:1.5rem; }
@media(max-width:640px) { .sample-answer-grid { grid-template-columns:1fr; }.scorecard-review-badge { max-width:none; } }

/* Original client testimonials restored to V3. */
.home-testimonials { margin:4rem 0; }
.testimonial-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem; }
.testimonial-card { margin:0;padding:1.75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius); }
.testimonial-art { height:100px;padding:1rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--warm); }
.testimonial-art.dark { background:var(--navy-950); }
.testimonial-art img { display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain; }
.testimonial-card blockquote { margin:1.5rem 0;color:var(--ink); }
.testimonial-card figcaption strong,.testimonial-card figcaption span { display:block; }
.testimonial-card figcaption span,.testimonial-note { color:var(--muted); }
.testimonial-note { font-size:.875rem;margin-top:1rem; }
@media(max-width:700px) { .testimonial-grid { grid-template-columns:1fr; }.testimonial-card { padding:1.25rem; } }

.portrait-card img{object-position:center 28%;}
.contact-natalie{display:flex;align-items:center;gap:1.5rem;margin:0 0 2rem;padding:1rem;background:#f7f8fa;border-radius:1rem}.contact-natalie img{width:132px;height:132px;object-fit:cover;object-position:center 22%;border-radius:50%}.contact-natalie figcaption{font:1.3rem/1.3 Georgia,serif;color:#10284e}@media(max-width:600px){.contact-natalie img{width:88px;height:88px}.contact-natalie figcaption{font-size:1.05rem}}


/* Keep both plan columns visible without horizontal scrolling on phones. */
@media (max-width: 760px) {
  .comparison-table { min-width: 0; table-layout: fixed; }
  .comparison-table th:first-child { width: 52%; }
  .comparison-table th, .comparison-table td { padding: .8rem .45rem; overflow-wrap: break-word; }
  .comparison-table thead th { font-size: .875rem; }
  .comparison-table tbody th { line-height: 1.5; }
}
