/* ==========================================================================
   Jenny Free — single site stylesheet
   One palette, one type scale, one set of breakpoints. Edit only this file.
   Sections: 1 base  2 homepage  3 shared interior  4 marriage continuum
             5 relational development  6 corrections
   ========================================================================== */

:root {
  /* one ink, one body grey, one green family, one gold family */
  --charcoal: #202124;
  --ink: #202124;
  --body: #4d5a55;
  --muted: #636a66;
  --green: #153f38;
  --green-deep: #0d332d;
  --green-light: #2b6457;
  --gold: #c88432;          /* icons and graphics only */
  --gold-text: #8a5620;     /* gold that is legible as text */
  --gold-deep: #9d612f;
  --gold-light: #d7a46e;
  --ivory: #fbf8f2;
  --cream: #f4efe7;
  --sand: #e7dbce;
  --line: #ddd8ce;
  --white: #fff;
  --serif: "Italiana", Georgia, serif;
  --sans: "DM Sans", Arial, Helvetica, sans-serif;
  --script: "Oooh Baby", cursive;
  --shadow: 0 18px 50px rgba(32, 33, 36, .14);
  /* display type scale */
  --h-xl: clamp(3rem, 5vw, 5.25rem);
  --h-lg: clamp(2.4rem, 3.6vw, 3.75rem);
  --h-md: clamp(1.85rem, 2.5vw, 2.6rem);
  /* legacy names kept as aliases so older rules resolve to the new palette */
  --navy: #202124;
  --navy-dark: #202124;
  --green-deep-legacy: #0d332d;
  --blue: #4d5a55;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
img, svg { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
h1, h2, h3, p, blockquote { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
.shell { width: min(100% - 40px, 1440px); margin-inline: auto; }
.section-pad { padding: clamp(64px, 8vw, 104px) 0; }
.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: 10px; left: 10px; transform: translateY(-160%); padding: 10px 16px; background: var(--white); color: var(--navy-dark); border-radius: 5px; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(32,33,36,.10); backdrop-filter: blur(12px); }
.nav-wrap { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 34px; min-height: 94px; }
.brand { display: inline-flex; flex-direction: column; text-decoration: none; flex: none; }
.brand-name { font-family: var(--serif); font-size: 2.1rem; line-height: .96; letter-spacing: .17em; text-transform: uppercase; color: var(--navy); }
.brand-tag { margin-top: 8px; color: var(--blue); font-size: .59rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.primary-nav { display: flex; justify-content: center; align-items: center; gap: clamp(13px, 1.4vw, 26px); font-family: var(--sans); font-size: .91rem; }
.primary-nav > a, .nav-dropdown > button { position: relative; padding: 34px 0 31px; border: 0; background: none; color: var(--navy-dark); text-decoration: none; cursor: pointer; white-space: nowrap; }
.primary-nav > a::after, .nav-dropdown > button::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 23px; height: 2px; background: var(--blue); transition: right .2s ease; }
.primary-nav > a:hover::after, .primary-nav > a:focus-visible::after, .nav-dropdown > button:hover::after, .nav-dropdown > button:focus-visible::after { right: 0; }
.nav-dropdown { position: relative; }
.dropdown-menu { position: absolute; top: calc(100% - 15px); left: 50%; min-width: 250px; padding: 10px; background: var(--white); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); opacity: 0; transform: translate(-50%, -7px); pointer-events: none; transition: .18s ease; }
.dropdown-menu a { display: block; padding: 10px 12px; color: var(--navy-dark); text-decoration: none; border-radius: 6px; }
.dropdown-menu a:hover, .dropdown-menu a:focus-visible { background: #f2f6f4; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown:focus-within .dropdown-menu, .nav-dropdown.is-open .dropdown-menu { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.nav-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; border: 1px solid var(--line); background: white; border-radius: 5px; }
.nav-toggle span:not(.sr-only) { display: block; width: 22px; height: 2px; background: var(--navy); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 48px; padding: 12px 22px; border: 1px solid transparent; border-radius: 4px; font-family: var(--sans); font-size: 1rem; line-height: 1.15; text-align: center; text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(32,33,36,.12); }
.button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible { outline: 3px solid rgba(200,132,50,.55); outline-offset: 3px; }
.button-green { background: var(--green); color: white; }
.button-green:hover { background: var(--green-deep); }
.button-gold { background: linear-gradient(135deg, #8a5620, var(--gold-deep)); color: white; box-shadow: 0 10px 22px rgba(154,95,45,.24); }
.button-outline { border-color: var(--gold); background: rgba(255,255,255,.75); color: var(--navy); }
.header-cta { white-space: nowrap; }
.assessment-nav { grid-template-columns: auto 1fr; }
.assessment-nav-links { display: flex; justify-content: flex-end; align-items: center; gap: 24px; }
.assessment-nav-links > a:not(.button) { color: var(--navy); text-decoration: none; }

.hero { position: relative; overflow: hidden; background: linear-gradient(90deg, #faf9f6 0%, #f8f5ef 48%, #e9e0d5 100%); }
.hero-grid { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(620px, 1.35fr); min-height: 570px; align-items: stretch; }
.hero-copy { position: relative; z-index: 2; padding: clamp(66px, 6vw, 98px) 34px 44px 8px; align-self: center; }
.eyebrow { margin-bottom: 14px; color: var(--navy); font-size: .88rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.eyebrow.light { color: #f0dfcd; }
.hero h1 { margin-bottom: 16px; color: var(--navy-dark); font-family: var(--serif); font-size: clamp(3.25rem, 5.2vw, 5.7rem); font-weight: 400; line-height: .96; letter-spacing: -.035em; }
.hero-lede { max-width: 590px; margin-bottom: 25px; color: var(--blue); font-size: 1.14rem; line-height: 1.46; }
.button-row { display: flex; flex-wrap: wrap; gap: 14px; }
.micro-tag { margin: 21px 0 0; color: var(--blue); font-size: .68rem; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.hero-visual { position: relative; min-width: 0; }
.hero-visual::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 18%; background: linear-gradient(90deg, #f8f5ef, transparent); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.hero-visual blockquote { position: absolute; z-index: 2; top: 80px; right: 1.5%; width: 35%; margin: 0; color: #1c1816; transform: rotate(-2deg); }
.hero-visual blockquote p { margin-bottom: 13px; font-family: var(--script); font-size: clamp(1.6rem, 2.4vw, 2.65rem); line-height: 1.35; }
.hero-visual cite { display: block; color: #26231f; font-family: var(--sans); font-size: .75rem; font-style: normal; letter-spacing: .18em; text-align: right; text-transform: uppercase; }

.pillars { padding: 30px 0; background: linear-gradient(90deg, #fff, #fbf7f1); border-block: 1px solid var(--line); }
.pillars-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) 1.15fr; }
.pillar { display: grid; grid-template-columns: 47px 1fr; gap: 17px; min-width: 0; padding: 3px 23px; border-right: 1px solid var(--line); }
.pillar svg { width: 46px; fill: none; stroke: var(--gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pillar h2 { margin-bottom: 4px; color: var(--navy); font-family: var(--sans); font-size: 1.3rem; font-weight: 400; line-height: 1.2; }
.pillar p { margin: 0; color: var(--blue); font-size: .88rem; line-height: 1.35; }
.pillar-statement { padding: 6px 0 0 32px; }
.pillar-statement h2 { margin-bottom: 14px; color: var(--navy); font-size: .78rem; letter-spacing: .16em; line-height: 1.75; text-transform: uppercase; }
.pillar-statement p { margin: 0; color: var(--blue); font-size: .86rem; }

.continuum { overflow: hidden; background: linear-gradient(180deg, #fff 0%, #fbf9f5 100%); text-align: center; }
.continuum h2 { margin-bottom: 4px; color: var(--navy-dark); font-family: var(--serif); font-size: clamp(3rem, 5vw, 5.2rem); font-weight: 400; line-height: 1; }
.continuum h2 sup { font-family: var(--sans); font-size: .8rem; vertical-align: top; }
.section-kicker { margin-bottom: 24px; color: var(--navy); font-size: clamp(.86rem, 1.35vw, 1.2rem); letter-spacing: .22em; text-transform: uppercase; }
.continuum-graphic { position: relative; max-width: 1100px; margin: 0 auto; padding-top: 48px; }
.continuum-graphic svg { width: 100%; overflow: visible; }
.arc-dots circle { fill: url(#arcGradient); stroke: rgba(255,255,255,.5); stroke-width: 2; }
.arc-note { position: absolute; z-index: 2; color: var(--navy); font-family: var(--sans); font-size: clamp(.9rem, 1.35vw, 1.2rem); font-style: italic; line-height: 1.16; }
.arc-left { top: 123px; left: 0; text-align: left; }
.arc-center { top: 18px; left: 50%; transform: translateX(-50%); }
.arc-right { top: 123px; right: 0; text-align: right; }
.arc-label { position: absolute; display: grid; color: var(--navy); line-height: 1.1; }
.arc-label strong { font-size: 1.1rem; }
.arc-label span { font-weight: 600; }
.label-zero { bottom: 0; left: 5%; }
.label-five { top: 40%; left: 50%; transform: translateX(-50%); }
.label-ten { bottom: 0; right: 5%; }
.continuum-button { margin-top: 10px; min-width: min(430px, 100%); }

.recognize { padding-block: 54px; background: white; border-top: 1px solid var(--line); }
.recognize-grid { display: grid; grid-template-columns: 1fr 1.55fr .62fr; gap: 40px; align-items: center; }
.recognize h2, .services h2, .assessment-callout h2 { margin-bottom: 12px; color: var(--navy); font-family: var(--serif); font-size: clamp(2.15rem, 3vw, 3.5rem); font-weight: 400; line-height: 1.02; }
.recognize p { margin: 0; color: var(--blue); }
.pattern-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 32px; margin: 0; padding: 0; list-style: none; color: var(--blue); }
.pattern-list li { position: relative; padding-left: 32px; }
.pattern-list li::before { content: "✓"; position: absolute; top: -1px; left: 0; display: grid; width: 22px; height: 22px; place-items: center; border: 1.5px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: .78rem; font-weight: 700; }
.recognize-quote { margin: 0; padding-left: 28px; border-left: 1px solid var(--gold); color: var(--blue); font-family: var(--sans); font-size: 1.13rem; font-style: italic; line-height: 1.36; }

.about { background: var(--green); color: white; overflow: hidden; }
.about-grid { display: grid; grid-template-columns: 1.12fr 1.1fr .72fr; min-height: 300px; }
.about-copy { align-self: center; padding: 43px 48px 43px 8px; }
.about h2 { margin-bottom: 9px; font-family: var(--serif); font-size: 2.7rem; font-weight: 400; line-height: 1; }
.about-copy p { max-width: 555px; margin-bottom: 12px; color: #eef4f1; font-size: .96rem; line-height: 1.42; }
.text-link { display: inline-block; padding: 5px 13px; border: 1px solid currentColor; border-radius: 2px; text-decoration: none; }
.light-link { color: white; }
.book-panel { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 48px; background: radial-gradient(circle at 15% 20%, #e8ded0 0, transparent 28%), linear-gradient(135deg, #d1bd9d 0%, #8f7a61 52%, #c4ad8e 100%); overflow: hidden; }
.book-panel::before { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(255,255,255,.22), transparent 45%); }
.book-title { position: relative; z-index: 1; width: 90%; margin-left: 7%; padding: 19px 14px; background: linear-gradient(#e4d2b7, #c9ae8a); color: #382d27; font-family: var(--sans); font-size: clamp(1.1rem, 1.7vw, 1.7rem); letter-spacing: .04em; text-align: center; text-transform: uppercase; box-shadow: 0 11px 22px rgba(0,0,0,.25); transform: perspective(500px) rotateX(2deg) rotateY(-3deg); }
.book-title > span { display: block; font-size: .65em; }
.book-title.exposed { margin-top: 9px; background: #142433; color: #f6efe5; font-size: clamp(1.25rem, 2vw, 2rem); letter-spacing: .14em; }
.book-title.exposed span { display: inline; color: #c89051; font-size: inherit; }
.book-title.exposed small { margin-left: 24px; font-size: .45em; letter-spacing: .08em; }
.testimonial { align-self: center; margin: 0; padding: 40px 24px 40px 42px; color: var(--blue); text-align: center; }
.testimonial > span { display: block; color: #d9ccbf; font-family: var(--sans); font-size: 4rem; line-height: .55; text-align: left; }
.testimonial p { margin-bottom: 15px; font-family: var(--sans); font-size: 1.14rem; font-style: italic; line-height: 1.45; }
.testimonial cite { font-style: normal; font-size: .82rem; }

.services { padding-block: 40px; background: #fff; border-top: 1px solid var(--line); }
.services-grid { display: grid; grid-template-columns: 1.2fr 2.35fr .93fr; gap: 25px; align-items: stretch; }
.services-intro { padding-right: 26px; border-right: 1px solid var(--line); }
.services h2 { font-size: 2.2rem; }
.services-intro p, .services-cta p { margin: 0; color: var(--blue); line-height: 1.35; }
.service-list { display: grid; grid-template-columns: repeat(5, 1fr); }
.service { display: flex; min-height: 160px; flex-direction: column; justify-content: center; align-items: center; padding: 0 12px; border-right: 1px solid var(--line); color: var(--navy); text-align: center; }
.service > span { min-height: 51px; color: var(--blue); font-size: 2.55rem; line-height: 1; }
.service h3 { margin: 10px 0 0; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; line-height: 1.1; }
.services-cta { display: flex; flex-direction: column; justify-content: center; gap: 18px; text-align: center; }

.assessment-callout { background: linear-gradient(120deg, #eef3ef 0%, #fbf8f2 68%); border-top: 1px solid var(--line); }
.assessment-callout-grid { display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: center; }
.assessment-callout h2 { font-size: clamp(2.8rem, 4vw, 4.6rem); }
.assessment-callout p { max-width: 840px; color: var(--body); font-size: 1.1rem; }
.assessment-callout .fine-print { margin-bottom: 0; font-size: .82rem; color: var(--muted); }
.assessment-callout .button { min-width: 260px; }

.site-footer { padding: 49px 0 22px; background: linear-gradient(120deg, var(--green), var(--green-deep)); color: white; }
.footer-top { display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.5); }
.brand-footer .brand-name, .brand-footer .brand-tag { color: white; }
.footer-top nav { display: flex; gap: 28px; font-family: var(--sans); }
.footer-top nav a { text-decoration: none; }
.socials { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 17px; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-bottom { display: flex; justify-content: center; gap: 22px; padding-top: 17px; font-size: .74rem; }

.consultation-dialog { width: min(92vw, 700px); max-height: 92vh; padding: 40px; border: 0; border-radius: 14px; color: var(--ink); background: var(--ivory); box-shadow: 0 30px 100px rgba(7,30,42,.35); }
.consultation-dialog::backdrop { background: rgba(6,25,36,.72); backdrop-filter: blur(4px); }
.dialog-close { position: absolute; top: 14px; right: 17px; width: 38px; height: 38px; border: 0; background: transparent; color: var(--navy); font-size: 2rem; line-height: 1; cursor: pointer; }
.dialog-heading h2 { margin-bottom: 7px; color: var(--navy); font-family: var(--serif); font-size: 2.6rem; font-weight: 400; line-height: 1; }
.dialog-heading > p:last-child { color: var(--muted); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
form label { display: grid; gap: 6px; margin-bottom: 15px; color: var(--ink); font-weight: 600; }
.label-help { color: var(--muted); font-size: .88rem; font-weight: 400; }
input, textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 5px; background: white; color: var(--ink); padding: 12px 13px; }
textarea { resize: vertical; }
.consent { grid-template-columns: 20px 1fr; align-items: start; font-size: .86rem; font-weight: 400; }
.consent input { width: 18px; margin-top: 3px; }
.honeypot { position: absolute; left: -9999px; }
.form-status { margin: 12px 0 0; color: var(--green); font-size: .9rem; }

.reveal { opacity: 0; transform: translateY(15px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal { opacity: 1; transform: none; transition: none; } .button { transition: none; } }

/* Shared interior-page styles */
.interior-header { background: var(--green); color: white; }
.interior-header .site-header { color: var(--ink); }
.page-hero { padding: 86px 0 74px; background: linear-gradient(125deg, var(--green), var(--green-light)); color: white; text-align: center; }
.page-hero h1 { max-width: 900px; margin: 0 auto 18px; font-family: var(--serif); font-size: clamp(3rem, 6vw, 5.7rem); font-weight: 400; line-height: .98; }
.page-hero p { max-width: 780px; margin: 0 auto; color: #edf6f2; font-size: 1.12rem; }
.assessment-page { background: #f5f2ec; }
.assessment-shell { width: min(100% - 32px, 1020px); margin-inline: auto; padding: 55px 0 90px; }
.assessment-card { padding: clamp(24px, 5vw, 58px); background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 18px 55px rgba(17,46,60,.09); }
.assessment-progress { margin-bottom: 38px; }
.progress-meta { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 9px; color: var(--navy); font-size: .84rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: #e4e9e7; }
.progress-bar { width: 0; height: 100%; background: linear-gradient(90deg, var(--gold), var(--green-light)); transition: width .25s ease; }
.assessment-step[hidden], .results-panel[hidden] { display: none; }
.assessment-step h2, .results-panel h2 { margin-bottom: 10px; color: var(--navy); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.6rem); font-weight: 400; line-height: 1.04; }
.step-intro { max-width: 740px; margin-bottom: 32px; color: var(--muted); }
.question-card { margin: 0 0 20px; padding: 23px; border: 1px solid var(--line); border-radius: 10px; }
.question-card legend { width: 100%; padding: 0; color: var(--ink); font-weight: 600; }
.question-number { color: var(--gold); }
.scale-options { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 18px; }
.scale-option { position: relative; margin: 0; cursor: pointer; }
.scale-option input { position: absolute; opacity: 0; pointer-events: none; }
.scale-option span { display: grid; min-height: 54px; place-items: center; padding: 7px 5px; border: 1px solid var(--line); border-radius: 6px; color: var(--body); font-size: .77rem; line-height: 1.15; text-align: center; transition: .15s ease; }
.scale-option input:checked + span { border-color: var(--green); background: var(--green); color: white; box-shadow: 0 5px 14px rgba(21,63,56,.18); }
.scale-option input:focus-visible + span { outline: 3px solid rgba(200,132,50,.55); outline-offset: 2px; }
.step-actions { display: flex; justify-content: space-between; gap: 16px; margin-top: 34px; }
.step-error { margin: 16px 0 0; color: #9b3029; font-weight: 600; }
.context-options { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 15px; margin: 20px 0 34px; }
.check-option, .radio-option { display: grid; grid-template-columns: 23px 1fr; gap: 10px; align-items: start; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font-weight: 400; cursor: pointer; }
.check-option input, .radio-option input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--green); }
.context-fieldset { margin: 0 0 32px; padding: 0; border: 0; }
.context-fieldset legend { margin-bottom: 10px; color: var(--navy); font-family: var(--sans); font-size: 1.35rem; }
.inline-options { display: flex; flex-wrap: wrap; gap: 10px; }
.inline-options .radio-option { min-width: 160px; }
.results-intro { padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.results-eyebrow { color: var(--gold); font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.result-summary { color: var(--body); font-size: 1.08rem; }
.result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 27px 0; }
.result-card { padding: 23px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfb; }
.result-card h3 { margin-bottom: 5px; color: var(--navy); font-family: var(--sans); font-size: 1.27rem; font-weight: 400; }
.result-level { display: inline-block; margin-bottom: 10px; padding: 3px 9px; border-radius: 99px; background: #e7efeb; color: var(--green); font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.result-card p { margin: 0; color: var(--body); font-size: .93rem; }
.result-highlight { margin: 18px 0; padding: 24px; border-left: 4px solid var(--gold); background: #f7f2ea; }
.result-highlight h3 { margin-bottom: 7px; color: var(--navy); font-family: var(--sans); font-size: 1.35rem; font-weight: 400; }
.result-highlight p { margin: 0; }
.focus-list { display: grid; gap: 12px; margin: 12px 0 0; padding: 0; list-style: none; }
.focus-list li { padding: 17px; border: 1px solid var(--line); border-radius: 8px; }
.focus-list strong { display: block; color: var(--navy); }
.results-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.report-disclaimer { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.privacy-content { width: min(100% - 40px, 820px); margin: 0 auto; padding: 70px 0 100px; }
.privacy-content h1 { color: var(--navy); font-family: var(--serif); font-size: 3.2rem; font-weight: 400; }
.privacy-content h2 { margin-top: 34px; color: var(--navy); font-family: var(--sans); font-weight: 400; }

@media (max-width: 1240px) {
  .nav-wrap { grid-template-columns: auto 1fr auto; gap: 20px; }
  .primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 20px; flex-direction: column; align-items: stretch; gap: 0; background: white; border-top: 1px solid var(--line); box-shadow: var(--shadow); }
  .primary-nav.is-open { display: flex; }
  .primary-nav > a, .nav-dropdown > button { display: block; width: 100%; padding: 12px 8px; text-align: left; }
  .primary-nav > a::after, .nav-dropdown > button::after { display: none; }
  .dropdown-menu { position: static; display: none; margin-left: 14px; padding: 3px 10px; border: 0; box-shadow: none; opacity: 1; transform: none; pointer-events: auto; }
  .nav-dropdown.is-open .dropdown-menu { display: block; transform: none; }
  .nav-toggle { display: flex; justify-self: end; }
  .header-cta { font-size: .9rem; }
  .hero-grid { grid-template-columns: minmax(380px, .85fr) minmax(520px, 1.15fr); }
  .hero-visual blockquote { right: 0; width: 38%; }
  .pillars-grid { grid-template-columns: repeat(2, 1fr); gap: 25px 0; }
  .pillar:nth-child(2) { border-right: 0; }
  .pillar-statement { grid-column: 1/-1; text-align: center; }
  .recognize-grid { grid-template-columns: .8fr 1.4fr; }
  .recognize-quote { grid-column: 1/-1; text-align: center; border-left: 0; border-top: 1px solid var(--gold); padding: 22px 0 0; }
  .about-grid { grid-template-columns: 1fr 1fr; }
  .testimonial { grid-column: 1/-1; max-width: 700px; margin: auto; }
  .services-grid { grid-template-columns: 1fr; }
  .services-intro { border-right: 0; }
  .services-cta { max-width: 560px; margin: 0 auto; }
}

@media (max-width: 860px) {
  .shell { width: min(100% - 28px, 720px); }
  .site-header .shell { width: min(100% - 20px, 820px); }
  .nav-wrap { min-height: 76px; }
  .brand-name { font-size: 1.55rem; }
  .brand-tag { font-size: .48rem; }
  .header-cta { display: none; }
  .assessment-nav-links .button { display: none; }
  .hero-grid { width: 100%; grid-template-columns: 1fr; }
  .hero-copy { width: min(100% - 28px, 720px); margin-inline: auto; padding: 56px 0 42px; }
  .hero h1 { font-size: clamp(3.15rem, 14vw, 5rem); }
  .hero-visual { min-height: 490px; }
  .hero-visual::after { inset: 0 0 auto; width: 100%; height: 18%; background: linear-gradient(#f8f5ef, transparent); }
  .hero-visual blockquote { top: 62px; right: 4%; width: 42%; }
  .pillars-grid { grid-template-columns: 1fr 1fr; }
  .pillar { padding: 5px 14px; }
  .continuum-graphic { padding-top: 71px; }
  .arc-left, .arc-right { top: 132px; }
  .label-five { top: 42%; }
  .recognize-grid { grid-template-columns: 1fr; }
  .pattern-list { grid-template-columns: 1fr 1fr; }
  .about-grid { width: 100%; grid-template-columns: 1fr; }
  .about-copy { width: min(100% - 40px, 700px); margin-inline: auto; padding: 54px 0; }
  .book-panel { min-height: 280px; }
  .service-list { grid-template-columns: repeat(3, 1fr); }
  .service { min-height: 150px; border-bottom: 1px solid var(--line); }
  .service:nth-child(3) { border-right: 0; }
  .assessment-callout-grid { grid-template-columns: 1fr; gap: 28px; }
  .assessment-callout .button { justify-self: start; }
  .footer-top { grid-template-columns: 1fr; text-align: center; }
  .brand-footer { align-items: center; }
  .footer-top nav, .socials { justify-content: center; }
  .form-grid, .result-grid { grid-template-columns: 1fr; }
  .context-options { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .section-pad { padding: 58px 0; }
  .hero-copy { padding-top: 43px; }
  .hero h1 { font-size: 3.3rem; }
  .hero-lede { font-size: 1rem; }
  .button-row .button { width: 100%; }
  .hero-visual { min-height: 395px; }
  .hero-visual img { object-position: 43% 50%; }
  .hero-visual blockquote { top: 34px; right: 3%; width: 46%; }
  .hero-visual blockquote p { font-size: 1.32rem; }
  .hero-visual cite { font-size: .55rem; }
  .pillars-grid { grid-template-columns: 1fr; }
  .pillar { border-right: 0; border-bottom: 1px solid var(--line); padding: 13px 4px 20px; }
  .pillar-statement { grid-column: auto; padding: 15px 4px 0; text-align: left; }
  .continuum h2 { font-size: 3.05rem; }
  .section-kicker { font-size: .72rem; }
  .continuum-graphic { margin-top: 18px; padding-top: 73px; }
  .arc-note { font-size: .72rem; }
  .arc-left, .arc-right { top: 122px; }
  .arc-label { font-size: .72rem; }
  .arc-label strong { font-size: .9rem; }
  .label-five { top: 53%; }
  .pattern-list { grid-template-columns: 1fr; }
  .service-list { grid-template-columns: 1fr 1fr; }
  .service:nth-child(3) { border-right: 1px solid var(--line); }
  .service:nth-child(even) { border-right: 0; }
  .service:last-child { grid-column: 1/-1; border-right: 0; }
  .footer-top nav { display: grid; grid-template-columns: repeat(3, auto); gap: 12px 22px; }
  .consultation-dialog { padding: 34px 20px 24px; }
  .dialog-heading h2 { font-size: 2.15rem; }
  .scale-options { grid-template-columns: 1fr; }
  .scale-option span { display: flex; min-height: 46px; justify-content: flex-start; padding: 10px 15px; }
  .scale-option span::before { content: "○"; margin-right: 11px; font-size: 1.25rem; }
  .scale-option input:checked + span::before { content: "●"; }
  .assessment-card { padding: 22px 16px 28px; border-radius: 10px; }
  .step-actions { flex-direction: column-reverse; }
  .step-actions .button { width: 100%; }
  .results-actions .button { width: 100%; }
}

@media print {
  .site-header, .site-footer, .page-hero, .assessment-progress, .step-actions, .results-actions, .report-disclaimer { display: none !important; }
  body, .assessment-page { background: white; }
  .assessment-shell { width: 100%; padding: 0; }
  .assessment-card { padding: 0; border: 0; box-shadow: none; }
  .results-panel[hidden] { display: none !important; }
  .result-card, .result-highlight { break-inside: avoid; }
}

/* Global safety: keep stray overflow from creating a sideways scroll. */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }

/* --------------------------------------------------------------------------
   Mobile polish — iPhone / Safari responsive layout
   Desktop master remains untouched. These rules only affect <= 560px.
   -------------------------------------------------------------------------- */
@media (max-width: 560px) {
  /* Header */
  .site-header { position: sticky; top: 0; z-index: 50; }
  .nav-wrap { min-height: 78px; }
  .brand-name { font-size: 1.7rem; letter-spacing: .13em; }
  .brand-tag { margin-top: 4px; font-size: .46rem; letter-spacing: .17em; }
  .nav-toggle { width: 46px; height: 46px; }

  /* Hero: preserve the desktop language, but keep the quote off Jenny's face. */
  .hero-copy { padding: 42px 0 36px; }
  .hero h1 { font-size: clamp(3.05rem, 13vw, 3.65rem); line-height: .92; }
  .hero-lede { font-size: 1rem; line-height: 1.46; }
  .button-row { gap: 12px; }
  .button-row .button { min-height: 56px; }
  .micro-tag { margin-top: 26px; line-height: 1.4; }
  .hero-visual { min-height: 430px; }
  .hero-visual img { object-position: 31% 50%; }
  .hero-visual blockquote {
    top: 42px;
    left: 6%;
    right: auto;
    width: 42%;
    text-align: left;
  }
  .hero-visual blockquote p { font-size: 1.22rem; line-height: 1.25; }
  .hero-visual cite { display: block; margin-top: 10px; font-size: .52rem; text-align: right; }

  /* Relational Development cards */
  .pillars { padding-block: 28px 34px; }
  .pillars-grid { gap: 0; }
  .pillar { grid-template-columns: 70px 1fr; gap: 12px; padding: 22px 8px; }
  .pillar svg { width: 54px; height: 54px; }
  .pillar h2 { font-size: 1.65rem; line-height: 1.05; }
  .pillar p { margin-top: 8px; font-size: .98rem; line-height: 1.38; }
  .pillar-statement { padding: 28px 8px 8px; }
  .pillar-statement h2 { font-size: 1rem; line-height: 1.45; }
  .pillar-statement p { font-size: .95rem; line-height: 1.45; }

  /* Marriage Continuum: give the mobile arc its own vertical composition so
     none of the labels collide with the curve or with one another. */
  .continuum { padding-top: 66px; padding-bottom: 58px; }
  .continuum-inner { width: min(100% - 28px, 520px); }
  .continuum h2 {
    max-width: 390px;
    margin-inline: auto;
    font-size: clamp(2.65rem, 12vw, 3.15rem);
    line-height: .9;
  }
  .continuum h2 sup { font-size: .34em; vertical-align: top; }
  .section-kicker {
    margin-top: 18px;
    font-size: .66rem;
    letter-spacing: .2em;
    line-height: 1.45;
  }
  .continuum-graphic {
    height: 278px;
    margin-top: 24px;
    padding-top: 0;
  }
  .continuum-graphic svg {
    position: absolute;
    top: 61px;
    left: 0;
    width: 100%;
    height: auto;
  }
  .arc-note { width: auto; font-size: .73rem; line-height: 1.14; }
  .arc-center {
    top: 0;
    left: 50%;
    width: 180px;
    transform: translateX(-50%);
    text-align: center;
  }
  .arc-left {
    top: 172px;
    left: 0;
    width: 132px;
    text-align: left;
  }
  .arc-right {
    top: 172px;
    right: 0;
    left: auto;
    width: 116px;
    text-align: right;
  }
  .arc-label { font-size: .72rem; line-height: 1.1; text-align: center; }
  .arc-label strong { font-size: .95rem; }
  .label-five {
    top: 118px;
    left: 50%;
    transform: translateX(-50%);
  }
  .label-zero {
    top: 224px;
    left: 3px;
    transform: none;
    text-align: left;
  }
  .label-ten {
    top: 224px;
    right: 3px;
    left: auto;
    transform: none;
    text-align: right;
  }
  .continuum-button { width: 100%; min-height: 58px; margin-top: 10px; }

  /* Recognition */
  .recognize { padding-block: 58px; }
  .recognize h2 { font-size: clamp(2.8rem, 11vw, 3.35rem); }
  .recognize p { font-size: 1rem; line-height: 1.45; }
  .pattern-list { margin-top: 30px; }
  .recognize-quote { margin-top: 30px; padding: 24px 0 0; }

  /* About + testimonial: desktop has a light testimonial panel; preserve that
     contrast on mobile instead of leaving blue text on the dark green field. */
  .about-copy { padding: 50px 0 52px; }
  .about h2 { font-size: 3rem; }
  .book-panel { min-height: 315px; }
  .testimonial {
    max-width: none;
    width: 100%;
    padding: 48px 34px 52px;
    background: #fbfaf7;
    color: var(--blue);
  }
  .testimonial > span { color: #d9ccbf; }
  .testimonial p { font-size: 1.12rem; line-height: 1.5; }

  /* Services + assessment */
  .services { padding-block: 50px; }
  .services h2 { font-size: 2.65rem; }
  .service { min-height: 135px; }
  .assessment-callout { padding-block: 58px; }
  .assessment-callout h2 { font-size: clamp(3rem, 12vw, 3.65rem); line-height: .95; }
  .assessment-callout p { font-size: 1.02rem; line-height: 1.55; }
  .assessment-callout .button { width: 100%; }

  /* Footer */
  .site-footer { padding-top: 54px; }
  .footer-top { gap: 34px; }
  .footer-top nav { grid-template-columns: repeat(3, 1fr); width: min(100%, 360px); margin-inline: auto; }
  .socials { gap: 15px 22px; }
  .footer-bottom { flex-wrap: wrap; }
}


/* ===== 3. shared interior pages ===== */
/* Shared About + Contact page styles */
.subpage-body { background:#fff; color:var(--navy-dark); }
.primary-nav a[aria-current="page"]::after { right:0; }
.shell-wide { width:min(100% - 56px, 1500px); margin-inline:auto; }
.gold-rule { width:68px; height:2px; background:#c98234; margin:22px 0 20px; }
.about-eyebrow,.contact-eyebrow { color:var(--gold); }
.script-quote { color:var(--navy); font-family:var(--script); font-size:clamp(1.8rem,2.3vw,2.9rem); line-height:1.24; }
.script-quote.smaller { font-size:clamp(1.55rem,2vw,2.35rem); }

/* About */
.about-hero { background:linear-gradient(90deg,#fff 0%,#fbfaf7 48%,#f4f0e9 100%); border-bottom:1px solid #e6e1db; }
.about-hero-grid { display:grid; grid-template-columns:minmax(430px,.9fr) minmax(620px,1.3fr); align-items:stretch; min-height:620px; }
.about-hero-copy { padding:70px 40px 52px max(5vw,56px); align-self:center; }
.about-hero-copy h1,.about-text-block h2,.contact-hero-copy h1,.contact-info h2,.contact-form-card h2,.about-cta h2 { font-family:var(--serif); font-weight:400; color:var(--navy); }
.about-hero-copy h1 { margin-bottom:18px; font-size:clamp(4rem,6.2vw,6.7rem); line-height:.95; letter-spacing:-.025em; }
.about-hero-copy>p:not(.eyebrow):not(.script-quote) { max-width:650px; color:var(--navy); font-size:1.08rem; line-height:1.55; }
.about-family { min-width:0; }
.about-family img { width:100%; height:100%; min-height:620px; object-fit:cover; object-position:center; }

.about-why { background:#fff; }
.about-two-col { display:grid; grid-template-columns:.84fr 1.16fr; align-items:stretch; }
.about-two-col.reverse { grid-template-columns:1.22fr .78fr; }
.quote-card { position:relative; margin:30px 28px 30px 0; padding:60px 60px 52px; overflow:hidden; background:linear-gradient(135deg,#fbf7f0,#f7f1e7); border:1px solid #eee4d8; min-height:470px; }
.quote-mark { color:var(--gold); font-family:var(--sans); font-size:5.5rem; line-height:.8; }
.quote-card p { position:relative; z-index:2; margin:20px 0 18px; color:var(--body); font-family:var(--sans); font-style:italic; font-size:clamp(2rem,3vw,3.3rem); line-height:1.25; }
.quote-rule { width:70px; height:2px; background:var(--gold); margin:26px 0 18px; }
.quote-card cite { color:var(--navy); font-family:var(--sans); font-size:.88rem; font-style:normal; font-weight:600; letter-spacing:.28em; text-transform:uppercase; }
.leaf { position:absolute; right:-26px; bottom:30px; width:120px; height:30px; border:1px solid #d9c4aa; border-radius:100% 0 100% 0; transform:rotate(-35deg); opacity:.75; }
.leaf-two { right:25px; bottom:0; transform:rotate(34deg) scale(.75); }
.leaf-three { right:-5px; bottom:105px; transform:rotate(70deg) scale(.62); }
.about-text-block { padding:56px 46px 48px; align-self:center; }
.about-text-block h2 { margin-bottom:16px; font-size:clamp(3.2rem,4.7vw,5.2rem); line-height:.98; }
.about-text-block p:not(.eyebrow):not(.script-quote) { max-width:760px; color:var(--navy); font-size:1.04rem; line-height:1.55; }
.about-approach { background:#fff; border-top:1px solid #eee9e3; }
.approach-copy { padding-left:0; padding-right:48px; }
.book-image { min-height:0; align-self:center; background:#e9dfd2; }
.book-image img { width:100%; height:auto; aspect-ratio:1500/810; object-fit:cover; object-position:center; }
.about-cta { position:relative; overflow:hidden; min-height:300px; background-image:linear-gradient(180deg,rgba(17,52,46,.58),rgba(11,38,33,.72)),url("mountain-cta-clean-20260911.jpg"); background-size:cover; background-position:center 55%; }
.about-cta-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,52,46,.20),rgba(11,38,33,.30)); }
.about-cta-inner { position:relative; z-index:2; padding:42px 0 44px; text-align:center; }
.about-cta-tag { margin-bottom:6px; color:var(--navy); font-size:.75rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }
.about-cta h2 { margin-bottom:8px; font-size:clamp(2.8rem,4.1vw,4.6rem); }
.about-cta-inner>p:not(.about-cta-tag):not(.about-cta-brand) { color:var(--navy); font-size:1rem; }
.about-cta-brand { position:absolute; left:0; bottom:12px; color:#fff; font-family:var(--sans); font-size:1.7rem; font-style:italic; line-height:1.15; text-align:left; text-shadow:0 2px 10px rgba(0,0,0,.28); }
.subpage-footer { padding-top:48px; }

/* Contact */
.contact-page { background:#fff; }
.contact-hero { border-bottom:1px solid #ece7e0; background:linear-gradient(90deg,#fff 0%,#faf7f2 48%,#eee7de 100%); }
.contact-hero-grid { display:grid; grid-template-columns:1fr 1.08fr; min-height:520px; align-items:stretch; }
.contact-hero-copy { padding:80px 58px 70px 48px; align-self:center; }
.contact-hero-copy h1 { margin-bottom:20px; font-size:clamp(4rem,6vw,6.5rem); line-height:.96; }
.contact-hero-copy>p:not(.eyebrow):not(.script-quote) { max-width:610px; color:var(--navy); font-size:1.14rem; line-height:1.55; }
.contact-portrait img { width:100%; height:100%; min-height:520px; object-fit:cover; object-position:center 37%; }
.contact-main { padding:62px 0 76px; background:#fff; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:68px; align-items:start; }
.contact-info { padding:14px 20px 0 44px; }
.contact-info h2,.contact-form-card h2 { margin-bottom:28px; font-size:clamp(2.7rem,3.6vw,4rem); }
.contact-item { display:grid; grid-template-columns:62px 1fr; gap:20px; align-items:center; margin:0 0 28px; }
.contact-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:#f7efe4; color:var(--gold); font-size:1.55rem; }
.contact-item strong { display:block; margin-bottom:2px; color:var(--navy); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; }
.contact-item a,.contact-item address,.contact-item p { margin:0; color:var(--navy); font-family:var(--sans); font-size:1.5rem; font-style:normal; line-height:1.3; text-decoration:none; }
.contact-separator { height:1px; background:#b8c8d5; margin:38px 0 26px; }
.contact-consultation { width:min(100%,500px); }
.contact-closing { margin-top:22px; color:var(--navy); font-size:.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }
.contact-form-card { padding:44px 42px 40px; background:linear-gradient(135deg,#fcfaf6,#f8f4ee); border:1px solid #eee8df; box-shadow:0 18px 45px rgba(18,42,61,.08); }
.contact-form-card>p { color:var(--body); font-size:1rem; }
.contact-form-card form { display:grid; gap:14px; margin-top:26px; }
.contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form-card input,.contact-form-card textarea,.contact-form-card select { width:100%; border:1px solid var(--line); border-radius:4px; background:rgba(255,255,255,.86); color:var(--ink); padding:14px 15px; }
.contact-form-card textarea { resize:vertical; }
.contact-submit { width:100%; margin-top:4px; }
.contact-footer { padding-top:54px; }

@media (max-width:1240px) {
  .about-hero-grid { grid-template-columns:1fr 1fr; }
  .about-hero-copy { padding-left:38px; padding-right:28px; }
  .about-two-col,.about-two-col.reverse,.contact-grid { grid-template-columns:1fr 1fr; }
  .quote-card { padding:48px 42px; }
}

@media (max-width:860px) {
  .shell-wide { width:min(100% - 28px,720px); }
  .about-hero-grid,.about-two-col,.about-two-col.reverse,.contact-hero-grid,.contact-grid { grid-template-columns:1fr; }
  .about-hero-copy,.contact-hero-copy { padding:54px 24px 38px; }
  .about-hero-copy h1,.contact-hero-copy h1 { font-size:clamp(3.5rem,13vw,5rem); }
  .about-family img { min-height:0; max-height:none; aspect-ratio:1.48/1; object-fit:cover; }
  .quote-card { margin:28px 0 0; min-height:0; }
  .about-text-block { padding:44px 0 46px; }
  .approach-copy { order:1; padding-right:0; }
  .book-image { order:2; min-height:0; }
  .book-image img { min-height:0; width:100%; aspect-ratio:1.2/1; object-fit:cover; }
  .about-cta-brand { position:static; margin-top:24px; text-align:center; }
  .about-cta-inner { padding-inline:10px; }
  .contact-portrait { order:2; }
  .contact-portrait img { min-height:0; aspect-ratio:1.35/1; object-fit:cover; object-position:center 36%; }
  .contact-main { padding-top:44px; }
  .contact-info { padding:0; }
  .contact-form-card { padding:34px 24px; }
}

@media (max-width:560px) {
  .about-hero-copy,.contact-hero-copy { padding-top:44px; }
  .about-hero-copy>p:not(.eyebrow):not(.script-quote),.about-text-block p:not(.eyebrow):not(.script-quote),.contact-hero-copy>p:not(.eyebrow):not(.script-quote) { font-size:1rem; }
  .about-family img { aspect-ratio:1.25/1; object-position:center; }
  .script-quote { font-size:2rem; }
  .quote-card { padding:40px 28px 38px; }
  .quote-card p { font-size:2rem; }
  .about-text-block h2 { font-size:2.85rem; }
  .about-cta { min-height:360px; }
  .about-cta-inner { padding-top:54px; }
  .about-cta h2 { font-size:3rem; }
  .contact-hero-copy h1 { font-size:4rem; }
  .contact-form-grid { grid-template-columns:1fr; }
  .contact-info h2,.contact-form-card h2 { font-size:2.8rem; }
  .contact-item { grid-template-columns:52px 1fr; gap:14px; }
  .contact-item a,.contact-item address,.contact-item p { font-size:1.25rem; }
  .contact-form-card { padding:28px 18px; }
  .subpage-footer .footer-top { text-align:center; }
}

/* Mobile CTA background fix: use a clean landscape with no baked-in text. */
@media (max-width: 860px) {
  .about-cta {
    background-image:
      linear-gradient(180deg, rgba(255,245,233,.58), rgba(17,54,48,.18)),
      url("mountain-cta-clean-20260911.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
  }
}


/* ===== 4. marriage continuum ===== */

:root{
  --mc-ink:var(--ink);
  --mc-body:var(--body);
  --mc-deep:var(--green);
  --mc-gold:var(--gold-text);
  --mc-ivory:#fbfaf7;
  --mc-line:var(--line);
  --mc-taupe:#7a695d;
  --mc-charcoal:var(--ink);
}
.mc-page{background:#fff;color:var(--mc-body);}
.mc-page .brand-name{color:var(--mc-charcoal);}
.mc-page .primary-nav a[aria-current="page"]::after{right:0;}
.mc-shell{width:min(100% - 64px,1500px);margin-inline:auto;}
.mc-eyebrow{font-size:.78rem;letter-spacing:.30em;text-transform:uppercase;font-weight:700;color:var(--mc-gold);}
.mc-serif{font-family:var(--serif);font-weight:400;color:var(--mc-ink);}
.mc-page h1,.mc-page h2{font-family:var(--serif);font-weight:400;color:var(--mc-ink);}

/* Hero */
.mc-hero{background:linear-gradient(90deg,#fff 0%,#fbfaf7 48%,#eee8df 100%);border-bottom:1px solid #ebe6de;}
.mc-hero-grid{display:grid;grid-template-columns:.86fr 1.14fr;min-height:500px;}
.mc-hero-copy{padding:68px 42px 58px max(6vw,68px);align-self:center;}
.mc-hero-copy h1{font-size:clamp(4rem,5.7vw,6.4rem);line-height:.88;letter-spacing:-.025em;margin:0 0 20px;}
.mc-hero-sub{font-weight:700;letter-spacing:.25em;text-transform:uppercase;line-height:1.3;color:var(--mc-ink);font-size:1rem;max-width:520px;}
.mc-gold-rule{width:64px;height:2px;background:var(--mc-gold);margin:22px 0 20px;}
.mc-hero-line{font-size:1.45rem;line-height:1.35;color:var(--mc-body);margin-bottom:28px;}
.mc-hero-image{min-width:0;overflow:hidden;}
.mc-hero-image img{width:100%;height:100%;min-height:500px;object-fit:cover;object-position:center;display:block;}

/* Continuum map */
.mc-map-section{padding:38px 0 26px;background:#fff;text-align:center;}
.mc-map-intro{max-width:960px;margin:0 auto 24px;}
.mc-map-intro p{font-size:1.06rem;line-height:1.5;margin:.35rem 0;color:var(--mc-body);}

/* How it works */
.mc-how{display:grid;grid-template-columns:1fr 1.06fr;background:var(--mc-ivory);border-top:1px solid #eeeae5;border-bottom:1px solid #eeeae5;}
.mc-how-image img{display:block;width:100%;height:100%;min-height:500px;object-fit:cover;}
.mc-how-copy{padding:64px 62px;align-self:center;}
.mc-how-copy h2{font-size:clamp(3.3rem,4.6vw,5.4rem);line-height:.95;margin:9px 0 22px;}
.mc-how-copy p{font-size:1.15rem;line-height:1.58;max-width:780px;margin:.7rem 0;}

/* stage grid */
.mc-stages{padding:46px 0 54px;background:#fff;text-align:center;}
.mc-stages h2{font-size:clamp(3rem,4.2vw,4.7rem);margin:6px 0 30px;line-height:1;}

/* movement */
.mc-movement{display:grid;grid-template-columns:1.15fr .85fr;background:#f7f4ef;}
.mc-movement-copy{padding:54px max(5vw,52px);}
.mc-movement-copy h2{font-size:clamp(3rem,4.4vw,5rem);line-height:.96;margin:8px 0 16px;}
.mc-movement-copy>p{font-size:1.1rem;line-height:1.55;max-width:760px;}
.mc-quote{border-left:5px solid var(--gold);padding:4px 0 4px 24px;margin-top:26px;color:var(--body);font-family:var(--sans);font-style:italic;font-size:1.45rem;line-height:1.45;max-width:760px;}
.mc-card-visual{display:grid;place-items:center;min-height:390px;padding:40px;background:linear-gradient(135deg,#d8cab8,#f6f1e9 60%,#c7b69e);}
.mc-card{width:min(360px,82%);aspect-ratio:1.05/1;background:#faf7f0;box-shadow:0 24px 38px rgba(63,47,33,.16);display:grid;place-items:center;padding:40px;text-align:center;transform:rotate(2deg);}
.mc-card p{font-family:var(--sans);font-style:italic;letter-spacing:.20em;text-transform:uppercase;color:var(--body);line-height:1.75;font-size:1rem;}

/* CTA */
.mc-cta{position:relative;min-height:300px;overflow:hidden;background-image:linear-gradient(180deg,rgba(17,52,46,.58),rgba(11,38,33,.72)),url("mountain-cta-clean-20260911.jpg");background-size:cover;background-position:center 55%;}
.mc-cta-inner{position:relative;z-index:1;text-align:center;padding:42px 20px 48px;}
.mc-cta h2{font-size:clamp(3rem,4.2vw,4.8rem);line-height:.95;margin:8px 0 10px;}
.mc-cta p{font-size:1.05rem;max-width:780px;margin:0 auto 24px;}
.mc-cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.mc-outline{background:#fff;color:var(--mc-ink);border:1px solid var(--gold);}
.mc-outline:hover{background:#f4f6f7;}

/* Mobile */
@media(max-width:1050px){
  .mc-shell{width:min(100% - 36px,920px);}
  .mc-hero-grid{grid-template-columns:1fr 1fr;}
  .mc-hero-copy{padding-left:36px;}
}
@media(max-width:760px){
  .mc-shell{width:min(100% - 28px,680px);}
  .mc-hero-grid,.mc-how,.mc-movement{grid-template-columns:1fr;}
  .mc-hero-copy{padding:44px 24px 40px;}
  .mc-hero-copy h1{font-size:clamp(3.8rem,16vw,5.4rem);}
  .mc-hero-image img{min-height:0;aspect-ratio:1.7/1;object-fit:cover;}
  .mc-map-section{padding-top:34px;}
  .mc-arc-line,.mc-axis{display:none;}
  .mc-how-image img{min-height:0;aspect-ratio:1.42/1;object-fit:cover;}
  .mc-how-copy{padding:42px 24px;}
  .mc-how-copy h2{font-size:3.3rem;}
  .mc-how-copy p{font-size:1.02rem;}
  .mc-stages{padding-top:38px;}
  .mc-stages h2{font-size:3.1rem;}
  .mc-movement-copy{padding:44px 24px;}
  .mc-movement-copy h2{font-size:3.3rem;}
  .mc-card-visual{min-height:300px;}
  .mc-cta{min-height:380px;}
  .mc-cta-inner{padding-top:54px;}
  .mc-cta h2{font-size:3.2rem;}
}
@media(max-width:430px){
  .mc-hero-line{font-size:1.2rem;}
}


/* Marriage Continuum desktop refinement — 2026-09-12 */
@media (min-width: 761px) {
  /* Use the real two-book photograph without artificial overlays. */
  .mc-book-surface-fix { display:none !important; }
  .mc-hero-image img {
    object-fit: cover !important;
    object-position: center center !important;
  }

  /* True curved continuum line behind the stages. */
  .mc-arc-line { display:none !important; }

  /* Put the directional axis clearly beneath all node labels. */
  .mc-axis {
    margin-top: 40px !important;
    padding: 0 2%;
  }

  /* Bring Progress Is Always Possible back to the approved scale. */
  .mc-movement-copy {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .mc-movement-copy h2 {
    font-size: clamp(3.2rem, 4vw, 4.65rem) !important;
    line-height: .98 !important;
    max-width: 760px;
    margin-bottom: 18px !important;
  }
  .mc-movement-copy > p {
    max-width: 760px;
  }
  .mc-card-visual {
    min-height: 360px !important;
  }
}


/* ===== 5. relational development ===== */
/* Relational Development Model page — 2026-09-12 */
.rdm-page { --rdm-charcoal:var(--ink); --rdm-green:var(--green); --rdm-green-2:var(--green-light); --rdm-gold:var(--gold-text); --rdm-ivory:#fbfaf6; --rdm-soft:#f3f0e9; color:var(--rdm-charcoal); background:#fff; }
.rdm-page main, .rdm-page p, .rdm-page h1, .rdm-page h2, .rdm-page h3, .rdm-page strong, .rdm-page span { color:var(--rdm-charcoal); }
.rdm-shell { width:min(100% - 56px,1480px); margin-inline:auto; }
.rdm-hero { padding:58px 0 44px; background:linear-gradient(90deg,#fff 0%,#fbfaf7 52%,#f7f4ee 100%); border-bottom:1px solid #ece7df; }
.rdm-hero-grid { display:grid; grid-template-columns:.9fr 1.25fr; gap:64px; align-items:center; }
.rdm-eyebrow { margin:0 0 20px; color:var(--rdm-green); font-size:.78rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.rdm-hero-copy h1 { margin:0; max-width:620px; font-family:var(--serif); font-size:clamp(3.3rem,5.4vw,6.2rem); line-height:.98; font-weight:400; letter-spacing:-.03em; }
.rdm-gold-title { margin:20px 0 18px; color:var(--rdm-gold); font-family:var(--serif); font-size:clamp(2rem,3vw,3.6rem); line-height:1.08; }
.rdm-lede { max-width:620px; font-size:1.08rem; line-height:1.55; }
.rdm-model-wrap { position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:4px; padding:76px 130px 64px; min-height:560px; }
.rdm-q { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; text-align:center; border-radius:8px; min-height:195px; }
.rdm-q.q1 { background:linear-gradient(135deg,#f4ead7,#efe5cf); }
.rdm-q.q2 { background:linear-gradient(135deg,#dce8e1,#cfded6); }
.rdm-q.q3 { background:linear-gradient(135deg,#efede8,#e5e1d9); }
.rdm-q.q4 { background:linear-gradient(135deg,#e4ece7,#d5e1da); }
.rdm-roman { display:block; font-family:var(--serif); font-size:2.8rem; line-height:1; margin-bottom:6px; }
.rdm-q h2 { margin:0 0 8px; font-family:var(--sans); font-size:1.08rem; font-weight:400; }
.rdm-q p { margin:0; max-width:260px; font-family:var(--sans); font-style:italic; line-height:1.35; font-size:.93rem; }
.rdm-axis-v,.rdm-axis-h { position:absolute; background:var(--rdm-green); z-index:4; pointer-events:none; }
.rdm-axis-v { top:63px; bottom:51px; left:50%; width:1px; transform:translateX(-.5px); }
.rdm-axis-v:before,.rdm-axis-v:after { content:""; position:absolute; left:-4px; width:8px; height:8px; border-left:1px solid var(--rdm-green); border-top:1px solid var(--rdm-green); }
.rdm-axis-v:before { top:0; transform:rotate(45deg); }
.rdm-axis-v:after { bottom:0; transform:rotate(225deg); }
.rdm-axis-h { left:112px; right:112px; top:50%; height:1px; transform:translateY(-.5px); }
.rdm-axis-h:before,.rdm-axis-h:after { content:""; position:absolute; top:-4px; width:8px; height:8px; border-left:1px solid var(--rdm-green); border-top:1px solid var(--rdm-green); }
.rdm-axis-h:before { left:0; transform:rotate(-45deg); }
.rdm-axis-h:after { right:0; transform:rotate(135deg); }
.rdm-security-top,.rdm-security-bottom,.rdm-maturity-left,.rdm-maturity-right { position:absolute; text-align:center; z-index:6; }
.rdm-security-top { top:6px; left:50%; transform:translateX(-50%); }
.rdm-security-bottom { bottom:2px; left:50%; transform:translateX(-50%); }
.rdm-maturity-left { left:0; top:50%; transform:translateY(-50%); width:118px; }
.rdm-maturity-right { right:0; top:50%; transform:translateY(-50%); width:118px; }
.rdm-security-top strong,.rdm-security-bottom strong,.rdm-maturity-left strong,.rdm-maturity-right strong { display:block; color:var(--rdm-green); font-size:.75rem; letter-spacing:.14em; line-height:1.15; }
.rdm-security-top span,.rdm-security-bottom span,.rdm-maturity-left span,.rdm-maturity-right span { display:block; margin-top:6px; font-family:var(--sans); font-style:italic; font-size:.86rem; line-height:1.32; }
.rdm-dimensions { padding:38px 0 42px; background:#fff; }
.rdm-dimension-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.rdm-dimension { display:grid; grid-template-columns:72px 1fr; gap:20px; padding:12px 48px; align-items:start; }
.rdm-dimension:first-child { border-right:1px solid #ddd8cf; padding-left:0; }
.rdm-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:var(--rdm-green); color:#fff!important; font-size:2rem; }
.rdm-icon-gold { background:var(--rdm-gold); }
.rdm-dimension h2 { margin:0 0 12px; font-family:var(--serif); font-size:clamp(2rem,2.8vw,3.4rem); line-height:1.02; font-weight:400; }
.rdm-dimension h2 em { font-family:var(--sans); font-weight:400; font-size:.73em; }
.rdm-dimension p { max-width:610px; line-height:1.52; }
.rdm-keywords { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:20px; }
.rdm-keywords span { color:var(--rdm-green); font-size:.72rem; font-weight:700; letter-spacing:.08em; }
.rdm-triad { background:#f8f6f1; border-top:1px solid #eee8de; border-bottom:1px solid #eee8de; }
.rdm-triad-grid { display:grid; grid-template-columns:1fr 1fr 1fr; padding:28px 0; }
.rdm-triad p { margin:0; padding:0 38px; text-align:center; font-family:var(--serif); font-size:clamp(1.7rem,2.4vw,3rem); line-height:1.06; }
.rdm-triad p+ p { border-left:1px solid #d6d0c6; }
.rdm-triad .gold { color:var(--rdm-gold); }
.rdm-quadrants { padding:54px 0 42px; }
.rdm-section-heading { text-align:center; margin-bottom:28px; }
.rdm-section-heading .rdm-eyebrow { margin-bottom:5px; }
.rdm-subhead { margin:0; font-family:var(--sans); font-style:italic; font-size:1rem; }
.rdm-card-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.rdm-card { min-height:340px; padding:25px 24px 20px; border:1px solid #ebe5dc; border-radius:5px; display:flex; flex-direction:column; }
.q1-card { background:linear-gradient(135deg,#faf5ea,#f2e8d5); }
.q2-card { background:linear-gradient(135deg,#eef4f0,#dce8e1); }
.q3-card { background:linear-gradient(135deg,#f2f0ec,#e7e3dc); }
.q4-card { background:linear-gradient(135deg,#edf3ef,#dce7e0); }
.rdm-card>span { font-family:var(--serif); font-size:2.5rem; color:var(--rdm-green); }
.q1-card>span,.q1-card h3,.q1-card a { color:var(--rdm-gold); }
.rdm-card h3 { margin:5px 0 17px; font-family:var(--sans); font-weight:400; font-size:1.05rem; }
.rdm-card p { margin:0 0 18px; line-height:1.48; font-size:.94rem; }
.rdm-card a { margin-top:auto; color:var(--rdm-gold); text-decoration:none; font-size:.72rem; letter-spacing:.08em; }
.rdm-development { background:#f5f2ec; border-top:1px solid #eae4db; border-bottom:1px solid #eae4db; padding:24px 0; }
.rdm-development-row { display:grid; grid-template-columns:84px 1fr auto; align-items:center; gap:28px; }
.rdm-growth-icon { color:var(--rdm-gold); font-size:4rem; line-height:1; }
.rdm-development h2 { margin:0 0 5px; font-family:var(--serif); font-weight:400; font-size:2.3rem; }
.rdm-development p { max-width:820px; margin:0; line-height:1.48; }
.rdm-outcome { padding:34px 0 18px; background:#fff; }
.rdm-outcome-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:48px; align-items:center; }
.rdm-equation { display:flex; align-items:center; justify-content:center; gap:18px; }
.rdm-circle { width:180px; height:180px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.rdm-circle-green { border:1.5px solid var(--rdm-green); background:#f1f6f3; }
.rdm-circle-gold { border:1.5px solid var(--rdm-gold); background:#faf6ec; }
.rdm-circle strong,.rdm-result strong { color:var(--rdm-green); font-size:.8rem; letter-spacing:.12em; line-height:1.25; }
.rdm-circle em { margin-top:10px; font-family:var(--sans); font-size:.82rem; line-height:1.25; }
.rdm-op { font-size:2rem; color:var(--rdm-gold); }
.rdm-result { text-align:center; min-width:150px; }
.rdm-result span { display:block; margin-top:10px; font-family:var(--sans); font-size:.92rem; }
.rdm-assess { border-left:1px solid #ddd7ce; padding-left:42px; }
.rdm-assess h2 { margin:0 0 8px; font-family:var(--serif); font-size:3rem; font-weight:400; }
.rdm-assess p { margin:0 0 18px; max-width:420px; line-height:1.45; }
.rdm-closing { margin-top:20px; padding:14px 20px 10px; text-align:center; font-family:var(--sans); font-style:italic; color:var(--rdm-green); }
@media (max-width:1100px) {
  .rdm-hero-grid { grid-template-columns:1fr; }
  .rdm-model-wrap { max-width:850px; margin:auto; width:100%; }
  .rdm-card-grid { grid-template-columns:1fr 1fr; }
  .rdm-outcome-grid { grid-template-columns:1fr; }
  .rdm-assess { border-left:0; border-top:1px solid #ddd7ce; padding:30px 0 0; }
}
@media (max-width:760px) {
  .rdm-shell { width:min(100% - 28px,720px); }
  .rdm-hero { padding-top:36px; }
  .rdm-model-wrap { padding:80px 84px 68px; min-height:610px; }
  .rdm-maturity-left,.rdm-maturity-right { width:76px; }
  .rdm-axis-h { left:70px; right:70px; }
  .rdm-q { padding:14px 10px; min-height:205px; }
  .rdm-q p { font-size:.78rem; }
  .rdm-q h2 { font-size:.92rem; }
  .rdm-roman { font-size:2.1rem; }
  .rdm-dimension-grid,.rdm-triad-grid,.rdm-card-grid { grid-template-columns:1fr; }
  .rdm-dimension { padding:28px 0; border-right:0!important; }
  .rdm-dimension+.rdm-dimension { border-top:1px solid #ddd8cf; }
  .rdm-triad p { padding:24px 12px; }
  .rdm-triad p+p { border-left:0; border-top:1px solid #d6d0c6; }
  .rdm-development-row { grid-template-columns:54px 1fr; }
  .rdm-development-row .button { grid-column:1 / -1; justify-self:start; }
  .rdm-equation { flex-wrap:wrap; gap:12px; }
  .rdm-circle { width:150px; height:150px; }
}
@media (max-width:500px) {
  .rdm-model-wrap { padding:92px 0 88px; gap:3px; }
  .rdm-maturity-left,.rdm-maturity-right { top:auto; bottom:16px; width:48%; transform:none; }
  .rdm-maturity-left { left:0; text-align:left; }
  .rdm-maturity-right { right:0; text-align:right; }
  .rdm-axis-h { left:0; right:0; }
  .rdm-security-top { width:100%; }
  .rdm-security-bottom { bottom:54px; width:100%; }
  .rdm-q { min-height:220px; }
  .rdm-q p { font-size:.72rem; }
  .rdm-maturity-left strong,.rdm-maturity-right strong { font-size:.62rem; }
  .rdm-maturity-left span,.rdm-maturity-right span { display:none; }
}

/* ==========================================================================
   6. CORRECTIONS — Sep 2026 consolidation
   Replaces: global-header-bookfix, unified-header-safe, homepage-live-refine.
   Nothing below uses !important.
   ========================================================================== */

/* --- 6.1 Typefaces by role -------------------------------------------------
   Italiana = display headings only.  DM Sans = everything else.
   Oooh Baby = every script quote (Doug, 16 Sep; was Parisienne).  No Georgia, no Arial. ----------- */
.pillar h2,
.book-title,
.testimonial > span,
.quote-mark,
.context-fieldset legend,
.result-card h3,
.result-highlight h3,
.privacy-content h2 { font-family: var(--serif); }

.primary-nav { font-family: var(--sans); font-size: .92rem; font-weight: 500; }
.button { font-family: var(--sans); font-weight: 600; font-size: .98rem; letter-spacing: .01em; }
.footer-top nav { font-family: var(--sans); font-size: .92rem; }

/* --- 6.2 Display type scale ------------------------------------------------ */
.hero h1                  { font-size: var(--h-xl); letter-spacing: -.03em; }
.continuum h2,
.recognize h2,
.assessment-callout h2    { font-size: var(--h-lg); }
.services h2,
.about h2,
.dialog-heading h2,
.privacy-content h1       { font-size: var(--h-md); }
.pillar h2                { font-size: 1.35rem; letter-spacing: .005em; }
.service h3               { font-size: 1.35rem; }

/* --- 6.3 One eyebrow, one micro-label -------------------------------------- */
.eyebrow,
.about-eyebrow,
.contact-eyebrow          { margin-bottom: 14px; color: var(--gold-text); font-family: var(--sans);
                            font-size: .78rem; font-weight: 700; letter-spacing: .2em;
                            line-height: 1.4; text-transform: uppercase; }
.eyebrow.light            { color: var(--gold-light); }
.micro-tag,
.section-kicker           { font-size: .72rem; font-weight: 600; letter-spacing: .2em;
                            line-height: 1.5; text-transform: uppercase; color: var(--muted); }

/* --- 6.4 One body size ----------------------------------------------------- */
.hero-lede,
.assessment-callout p     { font-size: 1.06rem; line-height: 1.55; color: var(--body); }
.about-copy p             { font-size: 1rem; line-height: 1.55; }
.pillar p                 { font-size: .9rem; line-height: 1.45; color: var(--body); }
.assessment-callout .fine-print { font-size: .82rem; color: var(--muted); }

/* --- 6.5 Brand lock-up ----------------------------------------------------- */
.brand-name { color: var(--charcoal); font-family: var(--serif); font-weight: 400;
              font-size: 1.95rem; letter-spacing: .16em; text-transform: uppercase;
              white-space: nowrap; }
.brand-tag  { margin-top: 7px; color: var(--charcoal); font-family: var(--sans);
              font-size: .66rem; font-weight: 600; letter-spacing: .13em;
              text-transform: uppercase; white-space: nowrap; }
.brand-footer .brand-name,
.brand-footer .brand-tag { color: var(--white); }

/* --- 6.6 Header ------------------------------------------------------------ */
.site-header { background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(32,33,36,.10); }
.nav-wrap { gap: clamp(16px, 2vw, 34px); }
.primary-nav { gap: clamp(10px, 1.15vw, 22px); }
.primary-nav > a { color: var(--charcoal); }
.primary-nav > a::after { background: var(--gold); }
.primary-nav > a[aria-current="page"]::after { right: 0; }
.nav-toggle span:not(.sr-only) { background: var(--charcoal); }
/* One CTA treatment on every page — gold in the header, green in the page. */
.header-cta { background: linear-gradient(135deg, #8a5620, var(--gold-deep));
              border-color: transparent; color: var(--white);
              box-shadow: 0 10px 22px rgba(157,97,47,.22); }

/* --- 6.7 Icons ------------------------------------------------------------- */
.pillar svg { stroke: var(--gold); }
.service svg { width: 42px; height: 42px; fill: none; stroke: var(--gold);
               stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.service { gap: 14px; color: var(--charcoal); }
.service > span { display: none; }   /* retires the old ♧ ♙ ▢ ◉ text glyphs */

/* --- 6.8 Section detail ---------------------------------------------------- */
.arc-note { font-family: var(--sans); font-style: normal; font-size: .82rem;
            font-weight: 500; line-height: 1.35; color: var(--body); }
.arc-label { color: var(--charcoal); }
.arc-label span { font-size: .78rem; font-weight: 600; color: var(--body); }
.recognize-quote { font-family: var(--sans); font-style: italic; font-size: 1.06rem;
                   color: var(--body); }
.testimonial p { font-family: var(--sans); font-style: italic; font-size: 1.06rem; }
.testimonial cite { font-size: .78rem; letter-spacing: .1em; color: var(--muted); }
.hero-visual cite { font-size: .72rem; }
.continuum h2 sup { font-family: var(--sans); font-size: .28em; top: -.9em; }
.services { border-top: 1px solid var(--line); }
.pattern-list li::before { border-color: var(--gold-text); color: var(--gold-text); }

/* Books photograph panel (kept from the homepage refinement). */
.book-panel-photo { padding: 0; min-height: 315px; overflow: hidden; background: #e9e0d4; }
.book-panel-photo::before { display: none; }
.book-panel-photo img { width: 100%; height: 100%; min-height: 315px;
                        object-fit: cover; object-position: center; display: block; }

/* --- 6.9 Footer ------------------------------------------------------------ */
.footer-top { grid-template-columns: 1fr auto; }
.footer-top nav a:hover, .footer-top nav a:focus-visible { text-decoration: underline;
            text-underline-offset: 5px; text-decoration-color: var(--gold-light); }

/* --- 6.10 Reveal animation, made safe -------------------------------------- */
/* Content is visible by default. Only a page that has confirmed JS is running
   hides it to animate it in, so a failed script can never leave a blank page. */
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(15px);
              transition: opacity .55s ease, transform .55s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
}

/* --- 6.11 Focus ------------------------------------------------------------ */
:focus-visible { outline: 3px solid rgba(200,132,50,.6); outline-offset: 3px; }

/* --- 6.12 Narrow widths ---------------------------------------------------- */
@media (max-width: 1240px) {
  .brand-name { font-size: 1.7rem; }
  .brand-tag  { font-size: .62rem; }
}
@media (max-width: 860px) {
  .brand-name { font-size: 1.5rem; letter-spacing: .13em; }
  .brand-tag  { font-size: .58rem; letter-spacing: .12em; }
  .footer-top { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .brand-name { font-size: 1.42rem; }
  .brand-tag  { font-size: .55rem; }
  .service svg { width: 36px; height: 36px; }
}

/* --- 6.13 Hero pull-quote ---------------------------------------------------
   The desktop hero now uses the real photograph at every width, so the script
   quote is placed on the open left side of the frame at ALL sizes (it used to
   land on Jenny's face on wide screens) and carries its own soft scrim so it
   stays readable whatever the crop does. ------------------------------------ */
.hero-visual::after { width: 26%;
  background: linear-gradient(90deg, #f8f5ef 0%, rgba(248,245,239,.85) 55%, transparent 100%); }
.hero-visual blockquote {
  top: clamp(44px, 5vw, 88px);
  left: 4%;
  right: auto;
  width: min(310px, 34%);
  padding: 22px 24px 16px;
  text-align: left;
  background: linear-gradient(105deg, rgba(251,250,247,.94), rgba(251,250,247,.74));
  border-radius: 3px;
  box-shadow: 0 14px 34px rgba(32,33,36,.10);
  transform: rotate(-1.6deg);
}
.hero-visual blockquote p { font-size: clamp(1.45rem, 1.85vw, 2.15rem); line-height: 1.3;
  margin-bottom: 10px; }
.hero-visual cite { text-align: left; color: var(--muted); }

@media (max-width: 860px) {
  .hero-visual blockquote { top: 56px; left: 5%; width: min(290px, 46%); padding: 18px 20px 13px; }
}
@media (max-width: 560px) {
  .hero-visual blockquote { top: 38px; left: 5%; width: 52%; padding: 16px 17px 12px; }
  .hero-visual blockquote p { font-size: 1.2rem; line-height: 1.26; }
}

/* --- 6.14 Layout overflow fixes --------------------------------------------
   Grid tracks with hard minimum widths pushed the page wider than the window
   between roughly 900px and 1430px; `overflow-x:hidden` on <body> was hiding
   the damage rather than preventing it. Each rule is scoped to the width band
   it belongs to so it cannot override the narrower single-column layouts. --- */
@media (min-width: 1241px) {
  .hero-grid      { grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr); }
  .recognize-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr) minmax(0, .62fr); }
  .about-grid     { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1.1fr) minmax(0, .72fr); }
  .services-grid  { grid-template-columns: minmax(0, 1.2fr) minmax(0, 2.35fr) minmax(0, .93fr); }
}
@media (min-width: 861px) and (max-width: 1240px) {
  .hero-grid      { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  .recognize-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); }
  .about-grid     { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.pillars-grid > *, .service-list > *, .footer-top > *, .services-grid > * { min-width: 0; }
.services-cta .button, .button-row .button { max-width: 100%; }
.mc-hero-image, .mc-hero-image img { max-width: 100%; }

/* The full desktop navigation only just fits at 1241px. Tighten it between
   there and 1500px so the Schedule button is never clipped off the edge. */
@media (min-width: 1241px) and (max-width: 1499px) {
  .nav-wrap        { gap: 18px; }
  .brand-name      { font-size: 1.62rem; letter-spacing: .13em; }
  .brand-tag       { font-size: .58rem; letter-spacing: .1em; }
  .primary-nav     { gap: 11px; font-size: .84rem; }
  .header-cta      { min-height: 44px; padding-inline: 16px; font-size: .86rem; }
  .header-cta span { display: none; }
}

/* --- 6.15 Narrow-phone display type ----------------------------------------
   The Continuum headline had a 60.8px floor that could not fit a 360px screen. */
@media (max-width: 430px) {
  .mc-hero-copy h1 { font-size: clamp(2.5rem, 14vw, 5.4rem); overflow-wrap: break-word; }
  .mc-shell { width: min(100% - 24px, 680px); }
}

/* --- 6.16 Continuum arc ----------------------------------------------------- */
.arc-dots circle { stroke: rgba(255,255,255,.7); stroke-width: 2; }
.service svg { width: 46px; height: 46px; }

/* --- 6.17 Testimonial on the dark green panel -------------------------------
   Body-grey text on the deep green field was close to unreadable. On wide
   screens the quote sits directly on the green, so it needs light type; the
   narrow layout keeps its own pale card. -------------------------------------- */
.about .testimonial        { color: #edf3f0; }
.about .testimonial p      { color: #edf3f0; }
.about .testimonial > span { color: var(--gold-light); }
.about .testimonial cite   { color: #b9cec6; }
@media (max-width: 560px) {
  .about .testimonial        { color: var(--body); background: #fbfaf7; }
  .about .testimonial p      { color: var(--body); }
  .about .testimonial > span { color: var(--gold); }
  .about .testimonial cite   { color: var(--muted); }
}

/* --- 6.18 Contact detail icons ----------------------------------------------
   Were ☎ ✉ ⌖ ◷ typed characters, which render differently on every platform. */
.contact-icon svg { width: 24px; height: 24px; fill: none; stroke: var(--gold);
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* --- 6.19 Stacked cards on phones -------------------------------------------
   The quadrant and coaching cards carry a min-height so they line up as a grid
   on desktop. Once they stack into one column that only opens holes, with the
   Key behaviours link stranded at the bottom of an empty box. ---------------- */
@media (max-width: 560px) {
  .rdm-q, .rdm-card { min-height: 0; }
  .rdm-q a, .rdm-card a { margin-top: 18px; }
  .about-leaves, .leaf { display: none; }   /* decorative, and 9px wider than the screen */
}

/* --- 6.20 Marriage Continuum map ---------------------------------------------
   Rebuilt. The curve and the eleven dots are now generated from one piece of
   geometry, so the dots sit on the line instead of near it, and the colour ramp
   is the same bronze-to-green used by the arc on the homepage. --------------- */
.mc-arc-wrap { position: relative; width: 100%; max-width: 1180px; margin: 30px auto 0;
               aspect-ratio: 1000 / 250; }
.mc-arc-svg  { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.mc-dot-num  { fill: #fff; font-family: var(--sans); font-size: 19px; font-weight: 600; }
.mc-node     { position: absolute; width: 104px; transform: translate(-50%, calc(-50% + var(--off)));
               text-align: center; pointer-events: none; }
.mc-node strong { font-family: var(--sans); font-size: .76rem; font-weight: 600;
                  line-height: 1.2; color: var(--ink); }
.mc-axis     { display: flex; align-items: center; gap: 18px; max-width: 1180px;
               margin: 26px auto 0; }
.mc-axis-end { font-family: var(--sans); font-size: .66rem; font-weight: 600; letter-spacing: .18em;
               text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.mc-axis-line{ flex: 1; height: 1px; background: linear-gradient(90deg, var(--gold), var(--green)); }

@media (max-width: 1050px) { .mc-node { width: 86px; } .mc-node strong { font-size: .68rem; } }

/* On a phone eleven names cannot sit side by side, so the map shows the shape
   with its three anchor points — exactly like the arc on the homepage — and the
   cards below carry every name and description. */
@media (max-width: 760px) {
  .mc-arc-wrap { aspect-ratio: 1000 / 300; margin-top: 22px; }
  .mc-node { display: none; }
  .mc-node[data-n="0"], .mc-node[data-n="5"], .mc-node[data-n="10"] {
    display: block; width: 96px; transform: translate(-50%, calc(-50% + 34px)); }
  .mc-axis { gap: 12px; margin-top: 34px; }
  .mc-axis-end { font-size: .58rem; letter-spacing: .12em; white-space: normal; }
}

/* --- 6.21 The eleven positions, as cards ------------------------------------ */
.mc-stage-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
                 gap: 14px; margin-top: 34px; }
@media (max-width: 1100px) { .mc-stage-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 820px)  { .mc-stage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mc-stage { display: flex; flex-direction: column; align-items: center; gap: 8px;
            padding: 26px 18px 24px; text-align: center; border: 1px solid var(--line);
            border-top: 3px solid var(--dot); border-radius: 4px; background: #fff; }
.mc-stage-num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
                background: var(--dot); color: #fff; font-family: var(--sans);
                font-size: 1.05rem; font-weight: 600; }
.mc-stage h3 { margin: 2px 0 0; font-family: var(--serif); font-size: 1.3rem; font-weight: 400;
               line-height: 1.15; color: var(--ink); }
.mc-stage p  { margin: 0; font-size: .86rem; line-height: 1.45; color: var(--body); }

@media (max-width: 560px) {
  .mc-stage-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .mc-stage:last-child { grid-column: 1 / -1; }
  .mc-stage { padding: 20px 12px 18px; }
  .mc-stage-num { width: 38px; height: 38px; font-size: .95rem; }
  .mc-stage h3 { font-size: 1.12rem; }
  .mc-stage p { font-size: .78rem; }
}


/* --- 6.22 The hidden attribute must actually hide ----------------------------
   `.button { display: inline-flex }` outranks the browser's own
   `[hidden] { display: none }`, so the assessment was showing its "Back" and
   "View My Relationship Snapshot" buttons on steps where the script had hidden
   them. This is the one place !important is the correct tool. ---------------- */
[hidden] { display: none !important; }

/* --- 6.23 Tap targets -------------------------------------------------------
   Links that were 18-32px tall. 44px is the comfortable minimum on a phone. --- */
.rdm-card a, .q1-card a {
  display: inline-block; padding-block: 11px; }
.contact-item a {
  display: inline-block; padding-block: 6px; }
.footer-top nav a {
  display: inline-block; padding-block: 8px; }
@media (max-width: 560px) {
  .footer-top nav { gap: 4px 18px; }
}

/* --- 6.24 Gold used as text, page by page ----------------------------------- */
.results-eyebrow, .question-number, .mc-eyebrow, .rdm-eyebrow { color: var(--gold-text); }
.footer-bottom a { display: inline-block; padding: 9px 6px; }


/* --- 6.25 The mountain bands ------------------------------------------------
   The photograph is soft and pale, so dark type on it was hard to read. The
   scrim is now deep green and the type is light, which is also how the footer
   directly beneath it reads. ------------------------------------------------- */
.about-cta h2, .about-cta-tag, .about-cta-brand,
.about-cta-inner > p:not(.about-cta-tag):not(.about-cta-brand),
.mc-cta h2, .mc-cta p, .mc-cta .mc-eyebrow { color: #FFFFFF; }
.about-cta-tag, .mc-cta .mc-eyebrow { color: #F0DCC0; }
.about-cta h2, .mc-cta h2 { text-shadow: 0 2px 18px rgba(8,28,24,.45); }
.about-cta-inner > p:not(.about-cta-tag):not(.about-cta-brand),
.mc-cta p { color: #EBF1EE; }
.about-cta-brand { color: #FFFFFF; text-shadow: 0 2px 14px rgba(8,28,24,.55); }
/* the outline button needs to read on a dark ground now */
.mc-cta .button-outline { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.75);
  color: #FFFFFF; }
.mc-cta .button-outline:hover { background: rgba(255,255,255,.18); }
/* A solid green button disappears against the deep green band — use the gold. */
.about-cta .button-green, .mc-cta .button-green {
  background: linear-gradient(135deg, #8a5620, #9d612f); border-color: transparent;
  box-shadow: 0 10px 24px rgba(8,28,24,.35); }

/* The Continuum band's secondary button is .mc-outline, not .button-outline. */
.mc-cta .mc-outline { background: #FFFFFF; color: #123F38; border-color: #FFFFFF; }
.mc-cta .mc-outline:hover { background: #F2EFE8; }
/* Stage number chips: light dots carry dark numerals, dark dots carry white. */
.mc-stage-num { color: var(--dot-ink, #fff); }
.mc-axis-line { background: linear-gradient(90deg, #313238, #d5b16c, #a7680c); }

/* --- 6.27 Mountain bands, mockup style (15 Sep) ------------------------------
   Photo: mountain-sunrise-20260916.jpg (2172x724, Doug's sunrise valley,
   16 Sep; replaced the painted mountain-valley-20260915.jpg). This
   replaces the smoky screenshot crop and the deep-green scrim (6.25), which
   hid it. A soft light pool behind the text keeps dark type readable. ------- */
.about-cta, .mc-cta {
  min-height: 340px;
  background-color: #efe3d6;
  background-image:
    radial-gradient(ellipse 44% 72% at 50% 58%, rgba(255,248,238,.80) 0%, rgba(255,246,234,.62) 55%, rgba(255,246,234,0) 100%),
    url("mountain-sunrise-20260916.jpg");
  background-size: cover, cover;
  background-position: center, center 40%;
  background-repeat: no-repeat;
}
.about-cta-overlay { display: none; }
.about-cta h2, .mc-cta h2 { color: var(--ink); text-shadow: 0 1px 14px rgba(255,248,238,.9); }
.about-cta-tag, .mc-cta .mc-eyebrow { color: #6f4318; text-shadow: 0 1px 10px rgba(255,248,238,.95); }
.about-cta-inner > p:not(.about-cta-tag):not(.about-cta-brand), .mc-cta p:not(.mc-eyebrow) {
  color: #2f3532; text-shadow: 0 1px 10px rgba(255,248,238,.95); }
.about-cta .button-green, .mc-cta .button-green {
  background: var(--green); border-color: var(--green); color: #fff; box-shadow: 0 10px 22px rgba(13,51,45,.25); }
.about-cta .button-green:hover, .mc-cta .button-green:hover { background: var(--green-light, #2b6457); }
.mc-cta .mc-outline { background: #fff; color: var(--green); border: 1px solid var(--green); }
/* The brand line used to float bottom-left in white; over the new picture it
   crossed pale mist and dark pines. It now sits centred under the button. */
.about-cta-brand { position: static; margin: 22px 0 0; text-align: center; font-size: 1.5rem;
  color: var(--green); text-shadow: 0 1px 10px rgba(255,248,238,.95); }
@media (min-width: 861px) and (max-width: 1240px) {
  .about-cta, .mc-cta {
    background-image:
      radial-gradient(ellipse 62% 74% at 50% 58%, rgba(255,248,238,.84) 0%, rgba(255,246,234,.66) 60%, rgba(255,246,234,0) 100%),
      url("mountain-sunrise-20260916.jpg");
  }
}
@media (max-width: 860px) {
  .about-cta, .mc-cta {
    background-image:
      radial-gradient(ellipse 90% 68% at 50% 55%, rgba(255,248,238,.84) 0%, rgba(255,246,234,.66) 60%, rgba(255,246,234,.2) 100%),
      url("mountain-sunrise-20260916.jpg");
    background-position: center, 30% 50%;
  }
}


/* --- 6.28 Relational Development quadrant diagram (15-16 Sep) ---------------
   Every axis and label position is worked out from the padding variables, so
   the horizontal axis always runs through the middle of the gap between the
   rows and the top/bottom labels sit the same distance from the quadrants.
   The maturity labels are plain text (no box) centred on the ends of the
   horizontal axis. Phones use the same layout as desktop, scaled down. ----- */
.rdm-model-wrap {
  --pt: 76px; --pb: 76px; --side: 130px; --row-gap: 4px; --label-gap: 28px; --label-h: 44px;
  --box-w: calc(var(--side) - 12px);
  --mid-y: calc(var(--pt) + (100% - var(--pt) - var(--pb)) / 2);
  padding: var(--pt) var(--side) var(--pb);
  row-gap: var(--row-gap);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.rdm-axis-v { top: calc(var(--pt) - 13px); bottom: calc(var(--pb) - 13px); }
.rdm-axis-h { top: var(--mid-y); left: var(--box-w); right: var(--box-w); }
.rdm-security-top    { top: calc(var(--pt) - var(--label-gap) - var(--label-h)); bottom: auto; }
.rdm-security-bottom { bottom: calc(var(--pb) - var(--label-gap) - var(--label-h)); top: auto; }
.rdm-security-top, .rdm-security-bottom { height: var(--label-h); display: flex; flex-direction: column; justify-content: center; }
.rdm-security-top span, .rdm-security-bottom span { margin-top: 5px; }

.rdm-maturity-left, .rdm-maturity-right {
  top: var(--mid-y); bottom: auto; width: var(--box-w); transform: translateY(-50%); text-align: center;
}
.rdm-maturity-left  { left: 0; right: auto; }
.rdm-maturity-right { right: 0; left: auto; }
.rdm-maturity-left strong, .rdm-maturity-right strong {
  padding: 0; background: none; border: 0; box-shadow: none;
  font-size: .75rem; letter-spacing: .14em; line-height: 1.15; text-transform: uppercase;
}
.rdm-maturity-left span, .rdm-maturity-right span {
  display: block; position: absolute; top: 100%; left: -6px; right: -6px; margin-top: 8px;
}

@media (max-width: 1100px) {
  .rdm-model-wrap { --pt: 80px; --pb: 80px; }
}
@media (max-width: 760px) {
  .rdm-model-wrap { --side: 96px; min-height: 0; }
  .rdm-maturity-left strong, .rdm-maturity-right strong { font-size: .56rem; letter-spacing: .06em; }
  .rdm-maturity-left span, .rdm-maturity-right span { font-size: .72rem; }
}
/* Phones: same arrangement as desktop, everything scaled down */
@media (max-width: 500px) {
  .rdm-model-wrap { --pt: 70px; --pb: 70px; --side: 76px; --box-w: calc(var(--side) - 8px); --row-gap: 3px; --label-gap: 18px; --label-h: 40px; gap: 3px; }
  .rdm-q { padding: 12px 5px; min-height: 176px; }
  .rdm-roman { font-size: 1.55rem; margin-bottom: 4px; }
  .rdm-q h2 { font-size: .7rem; margin-bottom: 5px; line-height: 1.2; }
  .rdm-q p { font-size: .6rem; line-height: 1.3; }
  .rdm-security-top, .rdm-security-bottom { width: 100%; }
  .rdm-security-top strong, .rdm-security-bottom strong { font-size: .62rem; }
  .rdm-security-top span, .rdm-security-bottom span { font-size: .74rem; margin-top: 4px; }
  .rdm-maturity-left strong, .rdm-maturity-right strong { font-size: .5rem; letter-spacing: .05em; }
  .rdm-maturity-left span, .rdm-maturity-right span { display: block; font-size: .54rem; line-height: 1.3; left: -3px; right: -3px; margin-top: 6px; }
  .rdm-maturity-left span br, .rdm-maturity-right span br { display: none; }
}
@media (max-width: 380px) {
  .rdm-model-wrap { --side: 68px; }
  .rdm-q { padding: 10px 4px; }
  .rdm-q h2 { font-size: .62rem; }
  .rdm-q p { font-size: .56rem; }
  .rdm-maturity-left strong, .rdm-maturity-right strong { font-size: .46rem; letter-spacing: .04em; }
  .rdm-maturity-left span, .rdm-maturity-right span { font-size: .5rem; left: 0; right: 0; }
}

/* --- 6.29 Full-width hero (16 Sep) ------------------------------------------
   jenny-hero-20260916b.jpg (2494x941) is Doug's photo with its soft room
   background continued 822px to the LEFT only; the photo's own right edge is
   the file's right edge (Doug, 16 Sep: no blurred extension on the right).
   Jenny's face is at source x815 (x1637 in the file). The photo fills the
   whole hero behind the copy and the quote, anchored to the right edge. .hero-photo is a size container, so the quote is placed from the
   photo's own geometry at any width:
     --px  object-position x (1 = photo's right edge on the screen's right edge)
     --ih  rendered photo height, --u one source pixel
     --ox / --oy  where the photo's top-left corner lands
   Quote region in the source: right of her hair (x1113) to x1660, from y120
   (moved right and down, 16 Sep). ----------------------------------- */
.hero { position: relative; overflow: hidden; background: #f1ece5; }
.hero-photo {
  position: absolute; inset: 0; z-index: 0; container-type: size;
  --px: 1;
  --ih: max(100cqh, 100cqw * .37731);
  --u: calc(var(--ih) / 941);
  --ox: calc((100cqw - var(--ih) * 2.6504) * var(--px));
  --oy: calc((100cqh - var(--ih)) * .2);
}
.hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: calc(var(--px) * 100%) 20%; }
/* a soft light wash behind the copy so the text always reads */
.hero-photo::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(246,242,236,.92) 0%, rgba(246,242,236,.80) 22%, rgba(246,242,236,.38) 36%, rgba(246,242,236,0) 46%); }
.hero-quote {
  /* Doug, 16 Sep: sized, placed and tilted by eye in the live browser at 1440px.
     The quote hangs from the right edge (52px in), words tilted -10deg, cite level, and starts at source y222
     (about Jenny's chin); its size is set from the space right of her hair. */
  --q-left: calc(var(--ox) + 1990 * var(--u));
  --q-right: calc(100cqw - 18px);
  --q-w: calc(var(--q-right) - var(--q-left));
  position: absolute; z-index: 2; margin: 0;
  left: auto; right: 52px; width: fit-content; max-width: calc(var(--q-w) + 8px);
  top: calc(var(--oy) + 222 * var(--u));
  color: #1d1b19; text-align: left;
}
/* no box — just a soft pool of light behind the words so they read over the room */
.hero-quote::before { content: ""; position: absolute; inset: -18% -14% -14% -12%; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(250,247,242,.82), rgba(250,247,242,.55) 55%, rgba(250,247,242,0)); }
.hero-quote p { margin: 0; font-family: var(--script); font-weight: 400;
  font-size: min(calc(var(--q-w) / 7.3), calc(var(--u) * 67));
  line-height: 1.36; transform: rotate(-10deg); transform-origin: 0 100%;
  text-shadow: 0 0 22px rgba(255,255,255,.85), 0 0 6px rgba(255,255,255,.6); }
.hero-quote cite { white-space: nowrap; display: block; margin: 1.1em 0 0; padding-right: 2%; text-align: right;
  font-family: var(--sans); font-style: normal; font-weight: 500; text-transform: uppercase;
  font-size: clamp(.6rem, calc(var(--q-w) * .036), .9rem); letter-spacing: .2em; color: #141311;
  text-shadow: 0 0 10px rgba(255,255,255,.95), 0 0 4px rgba(255,255,255,.95), 0 0 2px rgba(255,255,255,.9); }

.hero-grid { position: relative; z-index: 2; display: block; min-height: clamp(570px, 42vw, 720px); }
.hero-copy { width: min(100%, 520px); padding: clamp(60px, 5.5vw, 96px) 0 48px; }
.hero-lede { max-width: 440px; }
.hero .micro-tag { color: #3f4a46; }
.hero h1 { font-size: clamp(3.25rem, 5vw, 5.4rem); }

/* Wide screens: the shell is capped, so pull the copy toward the left edge
   rather than letting it drift in toward Jenny. */
@media (min-width: 1500px) { .hero-grid { width: auto; margin-left: max(40px, 5vw); } .hero-copy { width: 600px; } }
@media (min-width: 861px) and (max-width: 1180px) {
  .hero-photo { --px: .62; }
  .hero-photo::after { background: linear-gradient(90deg, rgba(246,242,236,.94) 0%, rgba(246,242,236,.86) 30%, rgba(246,242,236,.45) 44%, rgba(246,242,236,0) 54%); }
  .hero-copy { width: min(100%, 440px); }
  .hero-lede { max-width: 400px; }
  .hero-quote { --q-left: calc(var(--ox) + 1905 * var(--u)); --q-right: calc(100cqw - 10px); right: 14px; top: calc(var(--oy) + 150 * var(--u)); }
  .hero-quote p { font-size: max(1.3rem, min(calc(var(--q-w) / 7.3), calc(var(--u) * 67))); }
  .hero h1 { font-size: clamp(3rem, 5.6vw, 4.2rem); }
}

@media (min-width: 861px) and (max-width: 980px) {
  .hero-photo::after { background: linear-gradient(90deg, rgba(246,242,236,.95) 0%, rgba(246,242,236,.9) 40%, rgba(246,242,236,.5) 52%, rgba(246,242,236,0) 62%); }
}
/* Phones and tablets: copy first, then the photo as its own panel */
@media (max-width: 860px) {
  .hero { display: flex; flex-direction: column; }
  .hero-grid { order: 1; min-height: 0; }
  .hero-copy { width: min(100% - 28px, 720px); margin-inline: auto; }
  .hero-lede { max-width: 590px; }
  .hero-photo { position: relative; inset: auto; order: 2; height: 500px; --px: .87; }
  .hero-photo::after { background: linear-gradient(#f1ece5 0%, rgba(241,236,229,0) 16%); }
}
@media (max-width: 560px) {
  .hero-photo { height: 440px; --px: .82; }
  .hero-quote { --q-left: calc(var(--ox) + 1900 * var(--u)); --q-right: calc(100cqw - 8px); right: 10px; top: calc(var(--oy) + 120 * var(--u)); }
  .hero-quote p { font-size: min(calc(var(--q-w) / 5.8), 1.5rem); line-height: 1.3; } /* phones: ~22px, a little larger (Doug, 16 Sep) */
  .hero h1 { font-size: clamp(2.9rem, 13vw, 3.65rem); }
  .hero-quote cite { font-size: .58rem; letter-spacing: .16em; }
}

/* ===== 6.30 Family photos (16 Sep) =====
   About hero: jenny-family-20260916.jpg is 1505x1325 — the family photo with ~280px of forest
   continued above it, so the tall desktop cell can crop without losing anyone at the sides.
   Stacked layouts show only the original 1505x1045 frame (object-position bottom).
   Home: family-forest-20260916.jpg (1800x1200) in its own band directly above Meet Jenny Free. */
.about-family img { object-position: center 78%; }
@media (max-width:1240px) {
  .about-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .about-hero-copy { padding: 64px 48px 44px; }
  .about-family img { min-height: 0; height: auto; aspect-ratio: 1505 / 1045; object-fit: cover; object-position: center bottom; }
}
@media (max-width:860px) {
  .about-hero-copy { padding: 54px 24px 38px; }
  .about-family img { aspect-ratio: 1505 / 1045; object-position: center bottom; }
}
@media (max-width:560px) {
  .about-hero-copy { padding-top: 44px; }
  .about-family img { aspect-ratio: 1505 / 1045; object-position: center bottom; }
}

.family-band { background: #fff; padding: 0 0 clamp(44px, 6vw, 84px); }
.family-band figure { width: min(100% - 40px, 1180px); margin: 0 auto; }
.family-band img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width:860px) {
  .family-band { padding-bottom: 40px; }
  .family-band figure { width: min(100% - 28px, 720px); }
}

/* ===== 6.31 Home family photo, snowy overlook (16 Sep) =====
   family-snow-20260916.jpg (2000x920 panorama) replaces family-forest-20260916.jpg above Meet Jenny Free.
   Hair touch-up + warmer, brighter grade done in Claude. Tagline "My favorite people" in the script font.
   Phones crop to 4:3 centred on Doug & Jenny so faces stay a readable size. */
.family-band img { aspect-ratio: 2000 / 920; object-fit: cover; object-position: 52% 50%; }
.family-band figcaption { margin-top: clamp(14px, 1.8vw, 22px); color: var(--gold-text); font-family: var(--script); font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.2; text-align: center; }
@media (max-width:560px) {
  .family-band img { aspect-ratio: 4 / 3; }
}

/* ===== 6.33 Coaching page (coaching.html, 17 Sep; hero photo replaced 18 Sep) ==========================
   Built block by block from Doug's screenshots. Type and colour come from the
   tokens above — this section only adds the three grounds the blocks need and
   the .ch-* layout. .pattern-list is scoped to .ch-fit so the homepage list is
   untouched. Images live beside this file in assets/.
   Blocks: 1 hero · 2 approach · 3 is coaching right for you · 4 the stages of
   the continuum · 5 grounded in two frameworks · 6 ways to work with Jenny ·
   7 bottom banner (reuses the 6.27 mountain band treatment).
   ========================================================================== */
:root{
  --shell-bg:#f8f3ee;      /* approach block ground */
  --continuum-bg:#fcf8f0;  /* continuum block ground */
  --icon-disc:#ebe2da;     /* benefit icon discs */
}
  
  .ch-h2{
    margin:0 0 14px; color:var(--navy); font-family:var(--serif); font-weight:400;
    font-size:clamp(2.3rem,3.4vw,3.6rem); line-height:1.06; text-wrap:balance;
  }
  .ch-eyebrow-gold{
    margin:0 0 14px; color:var(--gold-text); font-size:.78rem; font-weight:700;
    letter-spacing:.2em; line-height:1.4; text-transform:uppercase;
  }

  /* ---- coaching page hero (block 1) ---- */
  .ch-hero{
    position:relative; overflow:hidden;
    background-color:#ece9e4;
    background-image:url("coaching-hero-bg-20260918.jpg");
    background-repeat:no-repeat; background-position:right center; background-size:cover;
  }
  .ch-grid{display:grid; grid-template-columns:52% 48%; min-height:clamp(600px,52vw,760px)}
  .ch-copy{align-self:center; padding:64px 44px 64px max(5vw,58px)}

  .ch-eyebrow{ /* = .eyebrow / .about-eyebrow */
    margin:0 0 14px; color:var(--gold-text); font-size:.78rem; font-weight:700;
    letter-spacing:.2em; line-height:1.4; text-transform:uppercase;
  }
  .ch-hero h1{
    margin:0 0 20px; max-width:640px; color:var(--navy); font-family:var(--serif);
    font-size:clamp(2.8rem,4.6vw,4.4rem); font-weight:400; line-height:1.08;
    letter-spacing:.004em; text-wrap:balance;
  }
  .ch-lede{                                       /* = .hero-lede */
    margin:0; max-width:620px; color:var(--body); font-size:1.06rem; line-height:1.55;
  }
  .ch-cta{                                        /* = .button.button-green */
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    min-height:48px; margin-top:30px; padding:12px 22px;
    border:1px solid transparent; border-radius:4px; background:var(--green);
    color:#fff; font-family:var(--sans); font-size:1rem; line-height:1.15;
    text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .ch-cta:hover{background:var(--green-deep); transform:translateY(-2px); box-shadow:0 10px 22px rgba(32,33,36,.12)}
  .ch-cta:focus-visible{outline:3px solid rgba(200,132,50,.55); outline-offset:3px}
  .ch-pillars{                                    /* = .micro-tag */
    margin:38px 0 0; color:var(--muted); font-size:.72rem; font-weight:600;
    letter-spacing:.2em; line-height:1.5; text-transform:uppercase;
  }

  .ch-photo{position:relative; min-width:0}
  .ch-photo img{
    width:100%; height:100%; object-fit:cover; object-position:center top;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 96px);
    mask-image:linear-gradient(90deg,transparent 0,#000 96px);
  }

  @media (prefers-reduced-motion:reduce){ .ch-cta{transition:none} .ch-cta:hover{transform:none} }

  @media (max-width:1180px){
    .ch-grid{grid-template-columns:54% 46%}
    .ch-copy{padding:56px 30px 56px 40px}
  }
  @media (max-width:860px){
    .ch-hero{background-position:center top; background-size:200% auto}
    .ch-grid{grid-template-columns:1fr; min-height:0}
    .ch-copy{padding:48px 24px 46px}
    .ch-photo{order:-1}
    .ch-photo img{
      height:auto; aspect-ratio:1.25/1; object-position:62% 6%;
      -webkit-mask-image:none; mask-image:none;
    }
    .ch-hero h1{font-size:clamp(2.5rem,8.6vw,3.5rem); max-width:22ch}
  }
  @media (max-width:560px){
    .ch-cta{width:100%}
    .ch-pillars{margin-top:32px; font-size:.68rem; letter-spacing:.16em}
  }

  /* ---- block 2 · a different kind of marriage coaching ---- */
  .ch-approach{background:var(--shell-bg)}
  .ch-approach-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,5vw,96px); align-items:start}
  .ch-approach-copy p{margin:0 0 20px; max-width:34em; color:var(--body); font-size:1.06rem; line-height:1.62}
  .ch-approach-copy p:last-of-type{margin-bottom:0}
  .ch-link{
    display:inline-flex; align-items:center; gap:10px; margin-top:30px; color:var(--gold-text);
    font-size:.82rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
  }
  .ch-link span{transition:transform .18s ease}
  .ch-link:hover span{transform:translateX(4px)}
  .ch-benefits{display:grid; gap:clamp(26px,2.6vw,38px)}
  .ch-benefit{display:grid; grid-template-columns:clamp(74px,6vw,100px) 1fr; gap:clamp(20px,2vw,32px); align-items:start}
  .ch-benefit-disc{
    display:grid; place-items:center; aspect-ratio:1; border-radius:50%; background:var(--icon-disc);
  }
  .ch-benefit-disc svg{width:53%; height:53%; fill:none; stroke:var(--gold); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
  .ch-benefit h3{
    margin:6px 0 6px; color:var(--navy); font-family:var(--sans); font-size:.86rem; font-weight:700;
    letter-spacing:.14em; line-height:1.5; text-transform:uppercase;
  }
  .ch-benefit p{margin:0; max-width:32em; color:var(--body); font-size:1rem; line-height:1.5}

  /* ---- block 3 · you don't have to wait for a crisis ---- */
  .ch-fit{background:#fff}
  .ch-fit-grid{display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(40px,5vw,96px); align-items:start}
  .ch-fit-copy p{margin:18px 0 0; max-width:30em; color:var(--body); font-size:1.06rem; line-height:1.55}
  .ch-fit .pattern-list{
    display:grid; grid-template-rows:repeat(3,auto); grid-auto-flow:column;
    gap:26px 48px; margin:0; padding:0; list-style:none; color:var(--body);
  }
  .ch-fit .pattern-list li{position:relative; padding-left:38px; font-size:1.06rem; line-height:1.45}
  .ch-fit .pattern-list li::before{
    content:"✓"; position:absolute; top:0; left:0; display:grid; width:24px; height:24px;
    place-items:center; border:1.5px solid var(--gold-text); border-radius:50%;
    color:var(--gold-text); font-size:.78rem; font-weight:700;
  }

  /* ---- block 4 · the 11 stages of the continuum ---- */
  .ch-continuum{background:var(--continuum-bg); text-align:center}
  .ch-continuum .ch-eyebrow-gold{letter-spacing:.24em}
  .ch-continuum .ch-h2{margin-bottom:10px; font-size:clamp(2.5rem,4.2vw,4.4rem)}
  .ch-continuum-sub{margin:0 auto; max-width:56em; color:var(--body); font-size:1.12rem}
  .ch-scale{
    --disc:clamp(62px,7.1vw,104px);
    position:relative; margin-top:clamp(36px,4vw,58px); padding:0 clamp(30px,3.4vw,54px);
  }
  .ch-axis{
    position:absolute; left:2px; right:2px; top:calc(var(--disc)/2 - .75px);
    height:1.5px; background:#c98234; pointer-events:none;
  }
  .ch-arrow{
    position:absolute; top:calc(var(--disc)/2); width:12px; height:12px;
    border-top:1.5px solid #c98234; border-left:1.5px solid #c98234; pointer-events:none;
  }
  .ch-arrow.l{left:1px; transform:translateY(-50%) rotate(-45deg)}
  .ch-arrow.r{right:1px; transform:translateY(-50%) rotate(135deg)}
  .ch-stages{
    position:relative; display:grid; grid-template-columns:repeat(11,minmax(0,1fr));
    gap:clamp(6px,.9vw,14px); margin:0; padding:0; list-style:none;
  }
  .ch-stage{display:flex; flex-direction:column; align-items:center}
  .ch-disc{
    display:grid; width:var(--disc); height:var(--disc); place-content:center; border-radius:50%;
    background:var(--dot); color:var(--dot-ink,#fff); line-height:1;
  }
  .ch-disc b{display:block; font-family:var(--serif); font-size:calc(var(--disc)*.27); font-weight:400}
  .ch-disc span{
    display:block; margin-top:.3em; padding-inline:6%; font-family:var(--serif);
    font-size:calc(var(--disc)*.132); letter-spacing:.01em;
  }
  .ch-tick{display:block; width:1px; height:22px; margin:12px 0 10px; background:#c9a97c}
  .ch-stage p{margin:0; color:var(--body); font-size:clamp(.66rem,.78vw,.8rem); line-height:1.45}
  .ch-poles{
    display:grid; grid-template-columns:1fr 1fr; gap:24px;
    margin-top:clamp(30px,3.4vw,48px); padding:0 clamp(28px,3.4vw,54px);
  }
  .ch-pole{display:grid; justify-items:center; gap:6px}
  .ch-pole-label{
    display:flex; align-items:center; gap:14px; color:var(--gold-text); font-size:.78rem;
    font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  }
  .ch-pole-label::before,.ch-pole-label::after{content:""; width:42px; height:1.5px; background:#c98234}
  .ch-pole em{color:var(--navy); font-family:var(--sans); font-size:1.02rem}

  /* ---- block 6 · support for every relationship ---- */
  .ch-services{background:var(--ivory); text-align:center}
  .ch-services .ch-h2{margin-bottom:0; font-size:clamp(2.5rem,4.2vw,4.4rem)}
  .ch-service-grid{
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px;
    margin-top:clamp(36px,4vw,56px); text-align:left;
  }
  .ch-service{
    display:flex; flex-direction:column; gap:14px; padding:30px 26px 34px; background:#fff;
    border:1px solid var(--line); border-top:3px solid #c98234;
  }
  .ch-service svg{width:34px; height:34px; fill:none; stroke:var(--gold); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
  .ch-service h3{margin:0; color:var(--navy); font-family:var(--serif); font-size:1.9rem; font-weight:400; line-height:1.08}
  .ch-service p{margin:0; color:var(--body); font-size:1rem; line-height:1.5}

  /* ---- block 5 · grounded in two frameworks ---- */
  .ch-frameworks{background:#fff}
  .ch-frameworks-grid{display:grid; grid-template-columns:43% 57%; align-items:stretch}
  .ch-frame-photo{min-width:0}
  .ch-frame-photo img{width:100%; height:100%; min-height:560px; object-fit:cover; object-position:34% center}
  .ch-frame-copy{align-self:center; padding:clamp(48px,5vw,84px) clamp(28px,4.2vw,76px)}
  .ch-frame-copy > p:not(.ch-eyebrow-gold){margin:0; max-width:36em; color:var(--body); font-size:1.06rem; line-height:1.62}
  .ch-frame-links{display:grid; gap:14px; margin-top:30px; max-width:660px}
  .ch-frame-links a{
    display:flex; flex-direction:column; gap:3px; padding:18px 24px; background:var(--ivory);
    border:1px solid var(--line); border-left:4px solid var(--green); color:var(--navy);
    text-decoration:none; transition:background .18s ease, border-left-color .18s ease;
  }
  .ch-frame-links a:hover{background:#fff; border-left-color:#c98234}
  .ch-frame-links strong{font-size:1.05rem; font-weight:700}
  .ch-frame-links span{color:var(--muted); font-size:.98rem}
  .ch-frame-links a::after{
    content:"Explore \2192"; margin-top:9px; color:var(--gold-text); font-size:.76rem;
    font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  }

  /* ---- block 7 · bottom banner (= the site's mountain CTA band, CSS 6.27) ---- */
  .ch-cta-band{
    display:grid; place-items:center; min-height:340px; background-color:#efe3d6;
    background-image:
      radial-gradient(ellipse 44% 72% at 50% 58%, rgba(255,248,238,.80) 0%, rgba(255,246,234,.62) 55%, rgba(255,246,234,0) 100%),
      url("mountain-sunrise-20260916.jpg");
    background-size:cover, cover; background-position:center, center 40%; background-repeat:no-repeat;
  }
  .ch-cta-inner{padding:42px 20px 44px; text-align:center}
  .ch-cta-tag{
    margin:0 0 6px; color:#6f4318; font-size:.75rem; font-weight:700; letter-spacing:.28em;
    text-transform:uppercase; text-shadow:0 1px 10px rgba(255,248,238,.95);
  }
  .ch-cta-band h2{
    margin:0 0 8px; color:var(--ink); font-family:var(--serif); font-weight:400;
    font-size:clamp(2.8rem,4.1vw,4.6rem); line-height:1.04; text-shadow:0 1px 14px rgba(255,248,238,.9);
  }
  .ch-cta-band .ch-cta-lede{
    margin:0; color:#2f3532; font-size:1rem; text-shadow:0 1px 10px rgba(255,248,238,.95);
  }
  .ch-cta-band .ch-cta{box-shadow:0 10px 22px rgba(13,51,45,.25)}
  .ch-cta-band .ch-cta:hover{background:#2b6457}
  .ch-cta-brand{
    margin:22px 0 0; color:var(--green); font-size:1.5rem; font-style:italic; line-height:1.15;
    text-shadow:0 1px 10px rgba(255,248,238,.95);
  }

  @media (min-width:861px) and (max-width:1240px){
    .ch-cta-band{
      background-image:
        radial-gradient(ellipse 62% 74% at 50% 58%, rgba(255,248,238,.84) 0%, rgba(255,246,234,.66) 60%, rgba(255,246,234,0) 100%),
        url("mountain-sunrise-20260916.jpg");
    }
  }

  @media (max-width:1180px){
    .ch-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ch-stages{grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px 18px}
    .ch-axis,.ch-arrow{display:none}
    .ch-poles{grid-template-columns:1fr}
  }
  @media (max-width:860px){
    .ch-cta-band{
      min-height:360px;
      background-image:
        radial-gradient(ellipse 90% 68% at 50% 55%, rgba(255,248,238,.84) 0%, rgba(255,246,234,.66) 60%, rgba(255,246,234,.2) 100%),
        url("mountain-sunrise-20260916.jpg");
    }
    .ch-cta-band h2{font-size:3rem}
    .ch-approach-grid,.ch-fit-grid,.ch-frameworks-grid{grid-template-columns:1fr}
    .ch-frame-photo img{height:auto; min-height:0; aspect-ratio:1.4/1; object-position:36% center}
    .ch-frame-copy{padding:44px 24px 48px}
    .ch-fit .pattern-list{grid-auto-flow:row; grid-template-rows:none; grid-template-columns:1fr}
    .ch-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ch-stages{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ch-fit-copy br{display:none}
  }
  @media (max-width:560px){
    .ch-service-grid{grid-template-columns:1fr}
    .ch-stages{grid-template-columns:repeat(2,minmax(0,1fr)); --disc:78px}
    .ch-benefit{grid-template-columns:62px 1fr; gap:18px}
  }
