@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,600&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --ink: #110d0f;
  --charcoal: #1b1518;
  --cream: #fff8ed;
  --paper: #f7ede0;
  --white: #fffdf9;
  --pink: #ed1773;
  --pink-action: #d91468;
  --pink-dark: #c20f5b;
  --pink-soft: #ffd7e8;
  --gold: #cda34a;
  --gold-light: #f0d891;
  --muted: #6f6268;
  --line: rgba(17, 13, 15, .13);
  --shadow: 0 24px 80px rgba(32, 15, 23, .14);
  --radius: 1.35rem;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: 'Manrope', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 1rem; line-height: 1.65; margin: 0; min-width: 320px; }
body.menu-open { overflow: hidden; }
img { display: block; height: auto; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { box-shadow: 0 0 0 6px var(--pink-dark); outline: 3px solid var(--white); outline-offset: 3px; }

.skip-link { background: var(--pink-action); color: #fff; font-weight: 800; left: 1rem; padding: .8rem 1rem; position: fixed; top: -8rem; z-index: 999; }
.skip-link:focus { top: 1rem; }
.container { margin-inline: auto; max-width: 1240px; padding-inline: clamp(1.25rem, 4vw, 3.5rem); width: 100%; }
.container-wide { margin-inline: auto; max-width: 1460px; padding-inline: clamp(1.25rem, 3.5vw, 3.5rem); width: 100%; }

.utility-bar { background: #080607; color: #e9dcbf; font-size: .875rem; font-weight: 700; letter-spacing: .035em; }
.utility-bar .container-wide { align-items: center; display: flex; justify-content: space-between; min-height: 2.45rem; }
.utility-links { display: flex; gap: 1.4rem; }
.utility-links a { text-decoration: none; }
.utility-links a:hover { color: #fff; }
.site-header { background: rgba(255, 248, 237, .97); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 100; }
.nav-shell { align-items: center; display: flex; gap: clamp(1.3rem, 2.4vw, 2.5rem); justify-content: space-between; min-height: 5.9rem; }

.brand { align-items: center; display: inline-flex; flex: 0 0 auto; line-height: 1; text-decoration: none; }
.brand-logo { height: auto; max-width: 100%; width: clamp(13.5rem, 17vw, 16rem); }

.desktop-nav { align-items: center; display: flex; flex: 1; gap: clamp(.75rem, 1.25vw, 1.45rem); justify-content: flex-end; }
.desktop-nav > a:not(.button) { color: #34272d; font-size: .875rem; font-weight: 800; letter-spacing: .015em; position: relative; text-decoration: none; white-space: nowrap; }
.desktop-nav > a:not(.button)::after { background: var(--pink); bottom: -.55rem; content: ''; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; width: 100%; }
.desktop-nav > a:hover::after, .desktop-nav > a[aria-current='page']::after { transform: scaleX(1); }
.menu-button { align-items: center; background: var(--ink); border: 0; border-radius: 999px; color: #fff; cursor: pointer; display: none; font-size: .875rem; font-weight: 800; gap: .55rem; min-height: 3rem; padding: .75rem 1rem; text-transform: uppercase; }
.menu-icon { display: grid; gap: 4px; }
.menu-icon span { background: currentColor; display: block; height: 2px; width: 18px; }
.mobile-menu { background: var(--cream); border-top: 1px solid var(--line); display: none; inset: 5.9rem 0 0; overflow-y: auto; padding: 1.5rem clamp(1.25rem, 4vw, 3rem) 7rem; position: fixed; z-index: 90; }
.mobile-menu[aria-hidden='false'] { display: block; }
.mobile-menu nav { display: grid; }
.mobile-menu nav a { border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.65rem; font-weight: 700; padding: .75rem 0; text-decoration: none; }
.mobile-menu .button-row { margin-top: 1.5rem; }

.button { align-items: center; border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; font-family: var(--sans); font-size: .875rem; font-weight: 800; gap: .55rem; justify-content: center; letter-spacing: .035em; line-height: 1.3; min-height: 3.4rem; padding: .9rem 1.35rem; text-align: center; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--pink-action); box-shadow: 0 12px 28px rgba(237, 23, 115, .24); color: #fff; }
.button-primary:hover { background: var(--pink-dark); }
.button-dark { background: var(--ink); color: #fff; }
.button-gold { background: var(--gold); color: var(--ink); }
.button-outline { background: transparent; border: 1px solid currentColor; color: var(--ink); }
.theme-dark .button-outline { color: #fff; }
.button-small { min-height: 2.85rem; padding: .7rem 1.05rem; }
.button[aria-disabled='true'] { cursor: not-allowed; opacity: .78; }
.button svg { flex: 0 0 auto; width: 1.05rem; }
.button-row { align-items: center; display: flex; flex-wrap: wrap; gap: .8rem; }

.eyebrow { align-items: center; color: var(--pink-dark); display: flex; font-size: .75rem; font-weight: 800; gap: .75rem; letter-spacing: .16em; margin: 0 0 1rem; text-transform: uppercase; }
.eyebrow::before { background: var(--gold); content: ''; height: 1px; width: 2.2rem; }
.theme-dark .eyebrow { color: var(--gold-light); }
h1, h2, h3, h4 { font-family: var(--serif); line-height: .98; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(3.5rem, 7vw, 7rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2.75rem, 5vw, 5.15rem); letter-spacing: -.042em; }
h3 { font-size: clamp(1.65rem, 2.6vw, 2.35rem); letter-spacing: -.025em; line-height: 1.05; }
h4 { font-size: 1.45rem; line-height: 1.12; }
.display-accent { color: var(--pink); font-style: italic; }
.gold-text { color: var(--gold-light); }
.lead { color: #4e4146; font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.72; max-width: 770px; }
.theme-dark .lead { color: #e9dee2; }
.micro-copy { color: var(--muted); font-size: .86rem; line-height: 1.55; }
.theme-dark .micro-copy { color: #cdbec4; }

.section { padding-block: clamp(4.5rem, 8vw, 8rem); }
.section-tight { padding-block: clamp(3.25rem, 5vw, 5rem); }
.theme-cream { background: var(--cream); }
.theme-paper { background: var(--paper); }
.theme-white { background: var(--white); }
.theme-dark { background: var(--ink); color: #fff; }
.theme-pink { background: var(--pink-action); color: #fff; }
.section-head { display: grid; gap: 1.25rem; margin-bottom: 3rem; max-width: 880px; }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head.center .eyebrow { justify-content: center; }

.hero-home { background: radial-gradient(circle at 15% 15%, rgba(237, 23, 115, .15), transparent 26rem), linear-gradient(118deg, #0a0708 0%, #151013 60%, #23161c 100%); color: #fff; overflow: hidden; position: relative; }
.hero-home::before { border: 1px solid rgba(205, 163, 74, .28); border-radius: 50%; content: ''; height: 36rem; left: -20rem; position: absolute; top: -24rem; width: 36rem; }
.hero-conversation { position: absolute; inset: -6%; background: linear-gradient(90deg, rgba(10,7,8,.65), rgba(10,7,8,.45)), url('/assets/images/family-conversation.png') center / cover no-repeat; opacity: .18; filter: blur(5px) saturate(.45); pointer-events: none; animation: conversation-drift 30s ease-in-out infinite alternate; }
.hero-home-grid, .hero-home .topic-ribbon { position: relative; z-index: 1; }
.hero-motion-toggle { position: absolute; top: 1rem; right: 1.5rem; z-index: 3; color: #fff; background: #171014; border: 1px solid #cda34a; border-radius: 2rem; padding: .5rem .9rem; font: inherit; font-size: .875rem; cursor: pointer; }
.hero-home.motion-paused .hero-conversation { animation-play-state: paused; }
@keyframes conversation-drift { from { transform: translateX(-1%) scale(1); } to { transform: translateX(1%) scale(1.025); } }
@media (prefers-reduced-motion: reduce) { .hero-conversation { animation: none; } .hero-motion-toggle { display: none; } }
.hero-home-grid { display: grid; gap: clamp(2rem, 5vw, 6rem); grid-template-columns: minmax(0, 1.08fr) minmax(350px, .92fr); min-height: calc(100vh - 8.35rem); padding-block: clamp(4rem, 8vw, 7.5rem); }
.hero-home-copy { align-self: center; max-width: 720px; position: relative; z-index: 2; }
.hero-home h1 { margin-bottom: 1.6rem; }
.hero-home h1 span { color: var(--pink); display: block; font-style: italic; }
.hero-home .lead { color: #e9dee2; max-width: 680px; }
.hero-home .eyebrow { color: var(--gold-light); }
.hero-home .button-outline { color: #fff; }
.hero-home .button-row { margin-top: 2rem; }
.hero-photo-wrap { align-self: end; min-height: 38rem; position: relative; }
.hero-photo-wrap::before { border: 1px solid var(--gold); border-radius: 18rem 18rem 1.4rem 1.4rem; content: ''; inset: -1rem 1.2rem 1rem -1rem; opacity: .68; position: absolute; }
.hero-photo-wrap::after { background: var(--pink); border-radius: 50%; bottom: 8%; content: ''; height: 1rem; left: -1.45rem; position: absolute; width: 1rem; }
.hero-photo { border-radius: 18rem 18rem 1.4rem 1.4rem; height: 100%; inset: 0; object-fit: cover; object-position: center 18%; position: absolute; width: 100%; }
.hero-note { background: rgba(255, 248, 237, .96); bottom: 1.8rem; box-shadow: var(--shadow); color: var(--ink); left: -2.5rem; max-width: 240px; padding: 1.2rem 1.35rem; position: absolute; z-index: 3; }
.hero-note strong { display: block; font-family: var(--serif); font-size: 1.4rem; line-height: 1.05; }
.hero-note span { color: var(--pink-dark); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.topic-ribbon { border-top: 1px solid rgba(255,255,255,.13); color: #eadfe3; padding-block: 1rem; }
.topic-ribbon .container-wide { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1.35rem; justify-content: center; }
.topic-ribbon a { color: inherit; font-size: .875rem; font-weight: 700; letter-spacing: .035em; position: relative; text-decoration: none; transition: color .2s ease, text-shadow .2s ease, transform .2s ease; }
.topic-ribbon a::after { background: linear-gradient(90deg, var(--gold), var(--pink)); bottom: -.3rem; content: ''; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .22s ease; width: 100%; }
.topic-ribbon a:hover, .topic-ribbon a:focus-visible { color: #fff; text-shadow: 0 0 18px rgba(237, 23, 115, .32); transform: translateY(-1px); }
.topic-ribbon a:hover::after, .topic-ribbon a:focus-visible::after { transform: scaleX(1); }
.topic-separator { color: var(--gold); font-size: .8rem; line-height: 1; }
section[id] { scroll-margin-top: 7rem; }

.page-hero { overflow: hidden; padding-block: clamp(4.5rem, 8vw, 7.5rem); position: relative; }
.page-hero-grid { align-items: center; display: grid; gap: clamp(2.5rem, 7vw, 7rem); grid-template-columns: minmax(0, 1.04fr) minmax(330px, .72fr); }
.page-hero-copy { max-width: 750px; }
.page-hero-copy h1 { margin-bottom: 1.5rem; }
.page-hero-copy .button-row { margin-top: 2rem; }
.page-hero-photo { min-height: 32rem; position: relative; }
.page-hero-photo img { border-radius: .75rem 12rem .75rem .75rem; height: 100%; inset: 0; object-fit: cover; object-position: top center; position: absolute; width: 100%; }
.page-hero-photo::before { border: 1px solid var(--gold); border-radius: .75rem 12rem .75rem .75rem; content: ''; inset: 1.1rem -1.1rem -1.1rem 1.1rem; position: absolute; }
.theme-dark .page-hero-photo::after { background: linear-gradient(90deg, var(--pink), var(--gold)); bottom: -1.2rem; content: ''; height: .38rem; left: -1.5rem; position: absolute; width: 54%; }

.two-column { align-items: start; display: grid; gap: clamp(2.5rem, 6vw, 6rem); grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr); }
.two-column.reverse > :first-child { order: 2; }
.two-column.reverse > :last-child { order: 1; }
.copy-stack { display: grid; gap: 1.3rem; }
.copy-stack p { margin: 0; }
.copy-stack h2, .copy-stack h3 { margin-bottom: .35rem; }
.copy-stack ul { margin: 0; padding-left: 1.25rem; }
.copy-stack li + li { margin-top: .5rem; }
.editorial-quote { border-left: 3px solid var(--pink); font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.5rem); font-style: italic; line-height: 1.05; margin: 0; padding: .35rem 0 .35rem clamp(1.25rem, 3vw, 2.25rem); }
.photo-card { position: relative; }
.photo-card img { border-radius: var(--radius); box-shadow: var(--shadow); height: clamp(28rem, 49vw, 40rem); object-fit: cover; object-position: top center; width: 100%; }
.photo-card .photo-caption { background: var(--ink); bottom: -1.3rem; color: #fff; left: -1.2rem; max-width: 78%; padding: 1.15rem 1.35rem; position: absolute; }
.photo-caption strong { color: var(--gold-light); display: block; font-family: var(--serif); font-size: 1.45rem; }

.service-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; min-height: 21rem; overflow: hidden; padding: clamp(1.5rem, 3vw, 2.25rem); position: relative; transition: box-shadow .25s ease, transform .25s ease; }
.service-card:hover { box-shadow: var(--shadow); transform: translateY(-5px); }
.service-card .card-number { color: rgba(205,163,74,.7); font-family: var(--serif); font-size: 3.8rem; font-style: italic; line-height: .8; }
.service-card h3 { margin: auto 0 1rem; }
.service-card p { color: var(--muted); margin: 0 0 1.35rem; }
.service-card a { color: var(--pink-dark); font-size: .875rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.service-card.featured { background: var(--ink); color: #fff; }
.service-card.featured p { color: #d8cbd0; }
.service-card.featured a { color: var(--gold-light); }

.card-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.info-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.5rem, 3vw, 2.25rem); }
.info-card h3, .info-card h4 { margin-bottom: .85rem; }
.info-card .compact-heading { font-size: 1.45rem; line-height: 1.12; }
.info-card p { color: var(--muted); margin: 0; }
.info-card ul { margin: 1rem 0 0; padding-left: 1.2rem; }
.theme-dark .info-card { background: #1d1619; border-color: rgba(255,255,255,.12); }
.theme-dark .info-card p, .theme-dark .info-card li { color: #d8cbd0; }

.stat-strip { background: var(--pink-action); color: #fff; }
.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.stat-item { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 12rem; padding: 1.5rem; text-align: center; }
.stat-item + .stat-item { border-left: 1px solid rgba(255,255,255,.35); }
.stat-item strong { font-family: var(--serif); font-size: clamp(2.3rem, 5vw, 4rem); line-height: .95; }
.stat-item span { font-size: .76rem; font-weight: 800; letter-spacing: .12em; margin-top: .65rem; text-transform: uppercase; }

.question-grid { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.question { align-items: flex-start; border-bottom: 1px solid rgba(255,255,255,.15); display: flex; font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.2rem); gap: 1rem; line-height: 1.1; padding: 1.35rem 1.35rem 1.35rem 0; }
.question:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.15); margin-right: 1.35rem; }
.question::before { color: var(--pink); content: '?'; font-family: var(--sans); font-size: 1rem; font-weight: 800; margin-top: .2rem; }
.checklist { display: grid; gap: .75rem; list-style: none; margin: 0; padding: 0; }
.checklist li { align-items: flex-start; display: flex; gap: .8rem; }
.checklist li::before { align-items: center; background: var(--pink); border-radius: 50%; color: #fff; content: '✓'; display: inline-flex; flex: 0 0 auto; font-size: .7rem; font-weight: 900; height: 1.45rem; justify-content: center; margin-top: .16rem; width: 1.45rem; }
.theme-dark .checklist li { color: #e8dfe2; }
.number-list { counter-reset: approach; display: grid; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.number-list li { align-items: center; border-bottom: 1px solid var(--line); counter-increment: approach; display: grid; gap: 1.1rem; grid-template-columns: 3rem 1fr; padding: .65rem 0 1.2rem; }
.number-list li::before { color: var(--pink); content: '0' counter(approach); font-family: var(--serif); font-size: 2rem; font-style: italic; }
.number-list strong { font-family: var(--serif); font-size: 1.55rem; }

.callout { background: var(--ink); border-radius: var(--radius); color: #fff; overflow: hidden; padding: clamp(2rem, 5vw, 4.5rem); position: relative; }
.callout::after { border: 1px solid rgba(205,163,74,.45); border-radius: 50%; content: ''; height: 17rem; position: absolute; right: -7rem; top: -7rem; width: 17rem; }
.callout > * { position: relative; z-index: 1; }
.callout h2, .callout h3 { max-width: 850px; }
.callout p { color: #ddcfd4; max-width: 720px; }
.callout .eyebrow { color: var(--gold-light); }
.callout .button-outline { color: #fff; }
.callout .button-row { margin-top: 1.8rem; }
.split-callout { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
.split-callout > article { border-radius: var(--radius); padding: clamp(2rem, 4vw, 3.5rem); }
.split-callout h3 { margin-bottom: 1rem; }
.split-callout p { margin-bottom: 1.5rem; }
.content-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.5rem, 4vw, 3.5rem); }
.content-panel h2, .content-panel h3 { margin-bottom: 1rem; }

.definition-grid { display: grid; gap: 1px; grid-template-columns: repeat(2, 1fr); overflow: hidden; }
.definition { background: var(--white); border: 1px solid var(--line); padding: 1.5rem; }
.definition dt { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; }
.definition dd { color: var(--muted); margin: .55rem 0 0; }
.video-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.video-card { background: #1b1518; border: 1px solid rgba(255,255,255,.11); border-radius: var(--radius); overflow: hidden; }
.video-frame { aspect-ratio: 16 / 9; background: #000; width: 100%; }
.video-frame iframe { border: 0; height: 100%; width: 100%; }
.video-card-copy { padding: 1.25rem; }
.video-card-copy h3 { font-size: 1.35rem; line-height: 1.14; }
.video-card-copy p { color: #cdbec4; font-size: .88rem; margin-bottom: 0; }

.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; font-family: var(--serif); font-size: clamp(1.45rem, 2.4vw, 2rem); font-weight: 700; list-style: none; padding: 1.3rem 3rem 1.3rem 0; position: relative; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { color: var(--pink); content: '+'; font-family: var(--sans); font-size: 1.45rem; font-weight: 400; position: absolute; right: .35rem; top: 1.35rem; }
.faq-list details[open] summary::after { content: '–'; }
.faq-answer { color: var(--muted); max-width: 840px; padding: 0 3rem 1.5rem 0; }
.faq-answer p { margin: 0; }
.download-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.download-card { background: var(--ink); border-radius: var(--radius); color: #fff; display: flex; flex-direction: column; min-height: 15rem; padding: 1.65rem; }
.download-card .coming-soon { color: var(--gold-light); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.download-card h3 { font-size: 1.8rem; margin: auto 0 1rem; }
.download-card p { color: #cdbec4; font-size: .86rem; margin: 0; }

.resource-vault { background: radial-gradient(circle at 96% 4%, rgba(237, 23, 115, .2), transparent 24rem), radial-gradient(circle at 2% 92%, rgba(205, 163, 74, .15), transparent 27rem), var(--ink); color: #fff; overflow: hidden; position: relative; }
.resource-vault::before { border: 1px solid rgba(205, 163, 74, .28); border-radius: 50%; content: ''; height: 22rem; position: absolute; right: -13rem; top: 18rem; width: 22rem; }
.resource-vault-head { align-items: end; display: grid; gap: clamp(2rem, 6vw, 6rem); grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr); margin-bottom: clamp(2.5rem, 5vw, 4.5rem); position: relative; }
.resource-vault-head .section-head { margin-bottom: 0; }
.resource-vault .lead { color: #e9dee2; }
.resource-vault .eyebrow { color: var(--gold-light); }
.vault-note { border-left: 1px solid var(--gold); padding: .35rem 0 .35rem 1.5rem; }
.vault-note span, .book-kicker { color: var(--gold-light); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.vault-note strong { display: block; font-family: var(--serif); font-size: 1.65rem; line-height: 1.05; margin: .5rem 0; }
.vault-note p { color: #cdbec4; font-size: .88rem; line-height: 1.55; margin: 0; }
.book-offer-grid { display: grid; gap: clamp(1.4rem, 3vw, 2.5rem); position: relative; }
.book-offer { background: var(--cream); border: 1px solid rgba(240, 216, 145, .36); border-radius: 1.6rem; box-shadow: 0 30px 90px rgba(0,0,0,.34); color: var(--ink); display: grid; grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr); overflow: hidden; }
.book-offer:nth-child(even) { grid-template-columns: minmax(0, 1.22fr) minmax(260px, .78fr); }
.book-offer:nth-child(even) .book-visual { order: 2; }
.book-offer:nth-child(even) .book-offer-copy { order: 1; }
.book-visual { align-items: center; background: radial-gradient(circle at 50% 35%, #33252b 0%, #151013 48%, #090708 100%); display: flex; justify-content: center; min-height: 39rem; overflow: hidden; padding: clamp(2.2rem, 5vw, 4rem) 1.5rem; position: relative; }
.book-visual::before { border: 1px solid rgba(205, 163, 74, .48); content: ''; inset: 1rem; pointer-events: none; position: absolute; }
.book-visual::after { background: var(--pink); border-radius: 50%; box-shadow: 0 0 0 .45rem rgba(237,23,115,.13); content: ''; height: .7rem; position: absolute; right: 1.65rem; top: 1.65rem; width: .7rem; }
.book-visual img { filter: drop-shadow(0 25px 28px rgba(0,0,0,.52)); max-height: 31rem; object-fit: contain; position: relative; transform: rotate(-2.2deg); width: auto; z-index: 1; }
.book-visual-landscape img { max-width: 92%; transform: rotate(1.5deg); }
.gift-badge { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: var(--ink); font-size: .69rem; font-weight: 900; left: 1rem; letter-spacing: .13em; padding: .65rem .9rem; position: absolute; text-transform: uppercase; top: 1rem; z-index: 2; }
.book-offer-copy { align-content: center; display: grid; padding: clamp(2rem, 5vw, 4.25rem); }
.book-offer-copy h3 { font-size: clamp(2.5rem, 4.4vw, 4.5rem); margin: .8rem 0 .55rem; }
.book-subtitle { color: var(--pink-dark); font-family: var(--serif); font-size: 1.35rem; font-style: italic; font-weight: 700; line-height: 1.2; margin: 0 0 1.15rem; }
.book-offer-copy > p:not(.book-kicker):not(.book-subtitle) { color: #4e4146; margin: 0; }
.book-offer .book-kicker { color: var(--pink-dark); }
.book-list { display: grid; gap: .6rem; list-style: none; margin: 1.4rem 0 1.75rem; padding: 0; }
.book-list li { align-items: flex-start; display: flex; gap: .7rem; }
.book-list li::before { color: var(--pink); content: '◆'; flex: 0 0 auto; font-size: .62rem; margin-top: .43rem; }
.guide-form { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.guide-form-grid { display: grid; gap: .85rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.guide-form .button { width: 100%; }
.guide-form .form-privacy { color: var(--muted); font-size: .74rem; line-height: 1.5; margin: .85rem 0 0; }
.guide-form .form-privacy a { color: var(--pink-dark); font-weight: 800; }
.honey-field { height: 0 !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; width: 0 !important; }
.guide-thank-you { align-items: center; display: flex; min-height: calc(100vh - 8.35rem); padding-block: clamp(4rem, 8vw, 7rem); }
.thank-you-card { background: linear-gradient(145deg, #1e161a, #0c090a); border: 1px solid rgba(205,163,74,.38); border-radius: 1.6rem; box-shadow: 0 30px 100px rgba(0,0,0,.4); margin-inline: auto; max-width: 900px; overflow: hidden; padding: clamp(2rem, 7vw, 5.5rem); position: relative; }
.thank-you-card::after { border: 1px solid rgba(237,23,115,.38); border-radius: 50%; content: ''; height: 20rem; position: absolute; right: -10rem; top: -10rem; width: 20rem; }
.thank-you-card > * { position: relative; z-index: 1; }
.thank-you-card h1 { font-size: clamp(3.4rem, 8vw, 6.7rem); margin-bottom: 1.4rem; }
.thank-you-mark { align-items: center; background: var(--pink); border-radius: 50%; color: #fff; display: flex; font-size: 1.25rem; font-weight: 900; height: 3.25rem; justify-content: center; margin-bottom: 1.6rem; width: 3.25rem; }
.inbox-reminder { border-left: 2px solid var(--gold); margin: 2rem 0; max-width: 680px; padding-left: 1.25rem; }
.inbox-reminder strong { color: var(--gold-light); font-family: var(--serif); font-size: 1.4rem; }
.inbox-reminder p { color: #cdbec4; margin: .35rem 0 0; }

.form-layout { align-items: start; display: grid; gap: clamp(2rem, 6vw, 5rem); grid-template-columns: minmax(0, .75fr) minmax(360px, 1.15fr); }
.form-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: clamp(1.5rem, 4vw, 3rem); }
.form-grid { display: grid; gap: 1.15rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: .45rem; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .875rem; font-weight: 800; }
.field input, .field select, .field textarea { background: #fffdfa; border: 1px solid #cfc3ba; border-radius: .65rem; color: var(--ink); min-height: 3.45rem; padding: .75rem .9rem; width: 100%; }
.field textarea { min-height: 8rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--pink); outline: 2px solid rgba(237,23,115,.15); }
.form-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.4rem; }
.form-status { background: var(--pink-soft); border-left: 3px solid var(--pink); color: var(--ink); display: none; margin-top: 1rem; padding: 1rem; }
.form-status.visible { display: block; }
.contact-list { display: grid; gap: 1rem; margin: 2rem 0; }
.contact-item { border-bottom: 1px solid var(--line); display: grid; gap: .2rem; padding-bottom: 1rem; }
.contact-item span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.contact-item a, .contact-item strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; text-decoration: none; }
.pill-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.pill { background: rgba(237,23,115,.1); border: 1px solid rgba(237,23,115,.22); border-radius: 999px; color: var(--pink-dark); font-size: .78rem; font-weight: 800; padding: .55rem .85rem; }
.theme-dark .pill { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: var(--gold-light); }
.license-grid { column-gap: 2rem; columns: 4; list-style: none; margin: 2rem 0 0; padding: 0; }
.license-grid li { border-bottom: 1px solid var(--line); break-inside: avoid; padding: .5rem 0; }
.legal-copy { max-width: 900px; }
.legal-copy h2 { font-size: clamp(2.1rem, 4vw, 3.25rem); margin: 2.6rem 0 1rem; }
.legal-copy h3 { font-size: 1.7rem; margin: 2rem 0 .7rem; }
.legal-copy p, .legal-copy li { color: #504349; }
.legal-copy a { color: var(--pink-dark); font-weight: 700; }
.theme-dark .content-panel { background: #1d1619; border-color: rgba(255,255,255,.12); color: #fff; }

.site-footer { background: #080607; color: #fff; padding: clamp(4rem, 7vw, 6.5rem) 0 6rem; }
.footer-grid { display: grid; gap: 3rem; grid-template-columns: 1.1fr 1.7fr .75fr; }
.footer-brand .brand { color: #fff; margin-bottom: 1.5rem; }
.footer-brand .brand-logo { width: min(100%, 20rem); }
.footer-brand p { color: #c8b9be; max-width: 390px; }
.footer-nav { display: grid; gap: .7rem 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.footer-nav a { color: #e3d9dc; font-size: .875rem; text-decoration: none; }
.footer-nav a:hover { color: var(--gold-light); }
.footer-contact { align-content: start; display: grid; gap: .8rem; }
.footer-contact a { color: #fff; font-weight: 700; overflow-wrap: anywhere; text-decoration: none; }
.footer-kicker { color: var(--gold-light); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: #9e9095; display: flex; font-size: .72rem; gap: 2rem; justify-content: space-between; margin-top: 3.5rem; padding-top: 1.4rem; }
.footer-bottom p { margin: 0; max-width: 850px; }
.mobile-action-bar { display: none; }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 1320px) {
  .utility-bar { display: none; }
  .desktop-nav { display: none; }
  .menu-button { display: inline-flex; }
  .mobile-menu { top: 5.9rem; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .hero-home-grid, .page-hero-grid, .two-column, .form-layout { grid-template-columns: 1fr; }
  .hero-home-grid { min-height: auto; padding-bottom: 0; }
  .hero-photo-wrap { min-height: 38rem; margin: 2rem auto 0; max-width: 520px; width: 100%; }
  .hero-note { left: 1rem; }
  .page-hero-photo { margin: 1rem auto 0; max-width: 520px; width: 100%; }
  .two-column.reverse > :first-child, .two-column.reverse > :last-child { order: initial; }
  .card-grid, .video-grid, .download-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-vault-head { align-items: start; grid-template-columns: 1fr; }
  .vault-note { max-width: 560px; }
  .book-offer, .book-offer:nth-child(even) { grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr); }
  .book-offer:nth-child(even) .book-visual, .book-offer:nth-child(even) .book-offer-copy { order: initial; }
  .book-visual { min-height: 34rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .license-grid { columns: 3; }
}

@media (max-width: 650px) {
  body { font-size: 1.04rem; padding-bottom: 4.6rem; }
  .nav-shell { min-height: 4.9rem; }
  .brand-logo { width: 11.5rem; }
  .menu-button { min-height: 2.8rem; }
  .mobile-menu { inset: 4.9rem 0 0; }
  h1 { font-size: clamp(3.15rem, 16vw, 5rem); }
  h2 { font-size: clamp(2.65rem, 13vw, 4.25rem); }
  .section { padding-block: 4.3rem; }
  .hero-home-grid { padding-top: 3.75rem; }
  .hero-home .button-row, .page-hero .button-row, .callout .button-row { align-items: stretch; flex-direction: column; }
  .hero-home .button, .page-hero .button, .callout .button { width: 100%; }
  .hero-photo-wrap { min-height: 32rem; }
  .hero-note { bottom: 1rem; max-width: 210px; }
  .topic-ribbon .container-wide { gap: .65rem 1rem; justify-content: flex-start; }
  .topic-separator { display: none; }
  .service-grid, .card-grid, .video-grid, .download-grid, .question-grid, .split-callout, .definition-grid, .stat-grid, .footer-grid, .form-grid { grid-template-columns: 1fr; }
  .book-offer, .book-offer:nth-child(even) { grid-template-columns: 1fr; }
  .book-visual { min-height: 29rem; }
  .book-visual img { max-height: 24rem; max-width: 86%; }
  .book-offer-copy { padding: 2rem 1.35rem 2.25rem; }
  .guide-form-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 18rem; }
  .question:nth-child(odd) { border-right: 0; margin-right: 0; }
  .stat-item + .stat-item { border-left: 0; border-top: 1px solid rgba(255,255,255,.35); }
  .stat-item { min-height: 9rem; }
  .footer-brand { grid-column: auto; }
  .footer-nav { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .license-grid { columns: 2; }
  .field.full { grid-column: auto; }
  .contact-item a, .contact-item strong { font-size: 1.25rem; overflow-wrap: anywhere; }
  .mobile-action-bar { background: #080607; bottom: 0; display: grid; grid-template-columns: .85fr 1.15fr; left: 0; padding: .6rem; position: fixed; right: 0; z-index: 120; }
  .mobile-action-bar a { align-items: center; border-radius: 999px; display: flex; font-size: .875rem; font-weight: 800; justify-content: center; min-height: 3.35rem; padding: .7rem; text-align: center; text-decoration: none; text-transform: uppercase; }
  .mobile-action-bar a:first-child { color: var(--gold-light); }
  .mobile-action-bar a:last-child { background: var(--pink-action); color: #fff; }
}

@media (max-width: 390px) {
  .brand-logo { width: 10.25rem; }
  .menu-button { gap: .45rem; padding-inline: .8rem; }
  .license-grid { columns: 1; }
}
