@font-face {
  font-family: "Satisfy";
  src: url("assets/fonts/satisfy-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --red: #d82335;
  --red-dark: #b51529;
  --orange: #f39120;
  --green: #3e633b;
  --green-dark: #244429;
  --green-light: #88a94c;
  --sage: #eaf1df;
  --blush: #fae9e6;
  --cream: #fdfaf4;
  --warm: #fff3e1;
  --ink: #193328;
  --muted: #5b665f;
  --line: rgba(36, 68, 41, 0.14);
  --shadow: 0 24px 70px rgba(40, 63, 43, 0.13);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Aptos, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 108px; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding-block: 112px; }
.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; left: 16px; top: -80px; z-index: 200; padding: 12px 18px; border-radius: 10px; background: var(--ink); color: #fff; }
.skip-link:focus { top: 12px; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(253,250,244,.92); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transition: box-shadow .25s ease, border-color .25s ease; }
.site-header.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 8px 30px rgba(36,68,41,.06); }
.header-inner { min-height: 96px; display: grid; grid-template-columns: 220px 1fr auto; gap: 28px; align-items: center; }
.brand img { width: 184px; max-height: 76px; object-fit: contain; object-position: left center; }
.desktop-nav { display: flex; justify-content: center; gap: 4px; }
.desktop-nav a { padding: 10px 12px; border-radius: 999px; color: var(--muted); font-size: 14px; font-weight: 650; text-decoration: none; transition: .2s ease; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--green-dark); background: var(--sage); }
.nav-dropdown { position: relative; color: var(--muted); font-size: 14px; font-weight: 650; }
.nav-dropdown summary { padding: 10px 12px; border-radius: 999px; cursor: pointer; list-style: none; transition: .2s ease; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary::after { content: "⌄"; display: inline-block; margin-left: 5px; font-size: 12px; transition: transform .2s ease; }
.nav-dropdown[open] summary::after { transform: rotate(180deg); }
.nav-dropdown summary:hover,
.nav-dropdown summary:focus-visible,
.nav-dropdown[open] summary { color: var(--green-dark); background: var(--sage); outline: none; }
.nav-dropdown > div { position: absolute; z-index: 120; right: 0; top: calc(100% + 8px); min-width: 190px; padding: 8px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 18px 45px rgba(36,68,41,.16); }
.nav-dropdown > div a { display: block; padding: 10px 12px; white-space: nowrap; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; border: 1px solid var(--green-dark); border-radius: 999px; background: var(--green-dark); color: #fff; font-weight: 750; text-decoration: none; box-shadow: 0 9px 25px rgba(36,68,41,.16); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); background: var(--green); box-shadow: 0 12px 30px rgba(36,68,41,.22); }
.button-small { min-height: 44px; padding: 10px 17px; font-size: 14px; }
.button-light { border-color: #fff; background: #fff; color: var(--green-dark); box-shadow: none; }
.button-light:hover, .button-light:focus-visible { background: var(--warm); color: var(--green-dark); }
.menu-button, .mobile-nav { display: none; }

.hero { position: relative; min-height: 720px; overflow: hidden; isolation: isolate; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -3; background: linear-gradient(135deg, rgba(232,240,220,.82), transparent 38%), radial-gradient(circle at 78% 12%, rgba(244,160,65,.20), transparent 30%); }
.hero-glow { position: absolute; z-index: -2; border-radius: 999px; filter: blur(2px); opacity: .8; }
.hero-glow-one { width: 360px; height: 360px; right: -120px; top: -110px; background: rgba(216,35,53,.10); }
.hero-glow-two { width: 330px; height: 190px; left: 32%; bottom: -100px; background: rgba(136,169,76,.18); transform: rotate(-18deg); }
.hero-grid { min-height: 720px; display: grid; grid-template-columns: 1.03fr .97fr; gap: 74px; align-items: center; padding-block: 72px 92px; }
.eyebrow { margin: 0 0 20px; display: flex; align-items: center; gap: 10px; color: var(--red); font-size: 12px; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow span { width: 30px; height: 2px; background: currentColor; }
.hero h1 { max-width: 680px; margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(48px, 5.4vw, 76px); font-weight: 500; line-height: 1.06; letter-spacing: -.035em; }
.hero h1 em { color: var(--red); font-style: normal; }
.hero-intro { max-width: 665px; margin: 28px 0 0; color: var(--muted); font-size: 20px; line-height: 1.75; }
.hero-actions { margin-top: 34px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.text-link { color: var(--green-dark); font-weight: 750; text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.hero-proof { margin-top: 34px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--green); font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.hero-proof i { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); }
.hero-visual { position: relative; min-height: 535px; }
.hero-line { position: absolute; inset: -15px -45px auto -10px; z-index: -1; width: calc(100% + 60px); height: auto; fill: none; stroke: rgba(62,99,59,.24); stroke-width: 1.4; stroke-dasharray: 8 12; }
.portrait { position: absolute; overflow: hidden; background: #eee7dc; box-shadow: var(--shadow); }
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.portrait-elsbeth { left: 0; top: 8px; width: 62%; height: 430px; border-radius: 46% 54% 48% 52% / 39% 40% 60% 61%; }
.portrait-elsbeth img { object-position: center 28%; }
.portrait-saskia { right: 0; bottom: 0; width: 50%; height: 350px; border: 10px solid var(--cream); border-radius: 50% 50% 44% 56% / 54% 38% 62% 46%; }
.portrait-saskia img { object-position: center 30%; }
.hero-card { position: absolute; z-index: 3; left: 5%; bottom: 5px; width: 245px; padding: 21px 22px; border: 1px solid rgba(36,68,41,.10); border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 18px 50px rgba(36,68,41,.16); }
.hero-card-icon { color: var(--orange); font-size: 22px; }
.hero-card p { margin: 4px 0 2px; color: var(--green-dark); font-family: var(--serif); font-size: 19px; font-weight: 700; }
.hero-card small { color: var(--muted); }

.question-strip { padding-block: 25px; background: var(--green-dark); color: #fff; }
.question-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.question-grid p { margin: 0; padding: 7px 32px; border-left: 1px solid rgba(255,255,255,.20); font-family: var(--serif); font-size: 16px; font-style: italic; line-height: 1.45; text-align: center; }
.question-grid p:first-child { border-left: 0; }

.section-heading { display: grid; grid-template-columns: 1fr .75fr; gap: 70px; align-items: end; }
.section-heading h2, .research-copy h2, .advice-intro h2, .guidance-copy h2, .registration-heading h2, .contact-copy h2 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(38px, 4.4vw, 58px); font-weight: 500; line-height: 1.1; letter-spacing: -.025em; }
.section-heading > p { margin: 0; color: var(--muted); font-size: 18px; }
.service-grid { margin-top: 58px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.service-card { min-height: 560px; display: flex; flex-direction: column; padding: 34px; border: 1px solid var(--line); border-radius: 32px; transition: transform .25s ease, box-shadow .25s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.service-red { background: linear-gradient(145deg, #fff, var(--blush)); }
.service-green { background: linear-gradient(145deg, #fff, var(--sage)); }
.service-orange { background: linear-gradient(145deg, #fff, var(--warm)); }
.service-card h3 { margin: 18px 0; color: var(--green-dark); font-family: var(--serif); font-size: 30px; font-weight: 500; line-height: 1.1; }
.service-card h3 strong { color: var(--red); font-weight: 700; }
.service-card p, .service-card li { color: var(--muted); font-size: 15px; }
.service-card ul { margin: 20px 0 28px; padding: 0; list-style: none; }
.service-card li { position: relative; margin-top: 8px; padding-left: 20px; }
.service-card li::before { content: ""; position: absolute; left: 0; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--green-light); }
.service-card > a { margin-top: auto; color: var(--green-dark); font-size: 14px; font-weight: 800; text-decoration: none; }

.research-section { background: #fff; }
.split-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.research-visual { position: relative; min-height: 660px; display: grid; place-items: center; }
.research-visual-inner { width: min(510px, 100%); display: flex; flex-direction: column; align-items: flex-end; gap: 18px; }
.circle-wrap { width: 100%; padding: 30px; border-radius: 50%; background: var(--cream); box-shadow: var(--shadow); }
.circle-wrap img { border-radius: 50%; }
.visual-note { max-width: 245px; padding: 18px 22px; border-left: 4px solid var(--orange); border-radius: 12px; background: var(--green-dark); color: #fff; font-family: var(--serif); font-size: 17px; line-height: 1.45; box-shadow: var(--shadow); }
.research-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; }
.research-copy .age-note { margin-top: 18px; padding: 14px 17px; border-left: 4px solid var(--orange); border-radius: 0 14px 14px 0; background: var(--warm); color: var(--green-dark); font-size: 15px; font-weight: 700; }
.check-list { margin-top: 30px; display: grid; gap: 18px; }
.check-list > div { display: grid; grid-template-columns: 34px 1fr; gap: 13px; align-items: start; }
.check-list span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--sage); color: var(--green-dark); font-size: 14px; font-weight: 900; }
.check-list p { margin: 0; color: var(--muted); }
.check-list b { color: var(--ink); }
.info-note { margin-top: 32px; display: grid; grid-template-columns: 42px 1fr; gap: 15px; padding: 22px; border-radius: 20px; background: var(--sage); }
.info-note > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-family: var(--serif); font-size: 22px; font-style: italic; }
.info-note p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.info-note b { display: block; color: var(--green-dark); }

.advice-panel { overflow: hidden; display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; padding: 68px; border-radius: 42px; background: var(--green-dark); color: #fff; box-shadow: var(--shadow); }
.eyebrow-light { color: #f9bf65; }
.advice-intro h2 { color: #fff; }
.advice-copy { margin-top: 24px; display: grid; gap: 16px; }
.advice-copy p { margin: 0; color: rgba(255,255,255,.74); font-size: 15px; line-height: 1.65; }
.advice-wide { grid-column: 1 / -1; padding: 24px 28px; border: 1px solid rgba(255,255,255,.14); border-radius: 24px; background: rgba(255,255,255,.08); }
.advice-wide h3 { margin: 0 0 7px; color: #f9bf65; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.advice-wide p { margin: 0; color: rgba(255,255,255,.76); font-size: 15px; line-height: 1.65; }
.steps { margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.16); }
.steps li:first-child { border-top: 0; padding-top: 0; }
.steps > li > span { color: #f9bf65; font-family: var(--serif); font-size: 25px; }
.steps h3 { margin: 0; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.steps p { margin: 5px 0 0; color: rgba(255,255,255,.68); font-size: 15px; }

.guidance-section { background: linear-gradient(135deg, var(--sage), #f7f4e8 70%); }
.guidance-grid { display: grid; grid-template-columns: 1fr .82fr; gap: 90px; align-items: center; }
.guidance-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; }
.tag-list { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }
.tag-list span {
  position: relative;
  padding: 12px 18px 12px 30px;
  border: 0;
  border-radius: 16px 30px 18px 28px;
  background: #f8deda;
  color: var(--red-dark);
  font-size: 13px;
  font-weight: 750;
  box-shadow: 0 8px 20px rgba(67, 73, 52, .08);
}
.tag-list span::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 50%;
  width: 8px;
  height: 13px;
  border-radius: 8px 1px 8px 1px;
  background: var(--red);
  transform: translateY(-50%) rotate(-18deg);
}
.tag-list span:nth-child(3n + 2) {
  border-radius: 28px 16px 30px 18px;
  background: #dfeac8;
  color: var(--green-dark);
}
.tag-list span:nth-child(3n + 2)::before { background: var(--green-light); transform: translateY(-50%) rotate(16deg); }
.tag-list span:nth-child(3n) {
  border-radius: 20px 32px 15px 27px;
  background: #ffe6bd;
  color: #8a4c16;
}
.tag-list span:nth-child(3n)::before { background: var(--orange); transform: translateY(-50%) rotate(-12deg); }
.act-card { position: relative; overflow: hidden; padding: 46px; border-radius: 36px; background: var(--red); color: #fff; box-shadow: var(--shadow); }
.act-card::after { content: ""; position: absolute; right: -80px; bottom: -100px; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,255,255,.11); }
.act-badge { display: inline-block; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.14); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.act-card h3 { margin: 23px 0 0; font-family: var(--serif); font-size: 52px; font-weight: 500; line-height: 1; }
.act-lead { margin: 9px 0 24px; color: #ffd890; font-weight: 850; }
.act-card > p:not(.act-lead) { color: rgba(255,255,255,.82); }
.act-card .act-school-note { position: relative; z-index: 1; color: var(--green-dark); font-weight: 750; }
.act-card .button { position: relative; z-index: 1; margin-top: 18px; }

.families-section { position: relative; overflow: hidden; background: linear-gradient(145deg, #fffdf8 0%, #f7eddc 48%, #e8f0dc 100%); }
.families-section::before { content: ""; position: absolute; top: 40px; right: -110px; width: 330px; height: 330px; border-radius: 50%; background: rgba(216,35,53,.08); }
.families-heading { position: relative; display: grid; grid-template-columns: 1fr .78fr; gap: 70px; align-items: end; }
.families-heading h2 { margin: 0; max-width: 720px; color: var(--green-dark); font-family: var(--serif); font-size: clamp(40px, 4.6vw, 62px); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
.families-heading > p { margin: 0; color: var(--muted); font-size: 18px; }
.families-intro { position: relative; margin-top: 58px; padding: 48px 52px; border: 1px solid rgba(36,68,41,.08); border-radius: 42px; background: rgba(255,255,255,.72); box-shadow: 0 18px 55px rgba(40,63,43,.09); }
.families-kicker { margin: 0; color: var(--red); font-size: 12px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.families-intro h3, .families-block-heading h3, .families-guidance-heading h3, .families-cta h3 { margin: 10px 0 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(30px, 3.4vw, 46px); font-weight: 500; line-height: 1.12; }
.families-intro-copy { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.families-intro-copy p { margin: 0; color: var(--muted); }
.families-block-heading { max-width: 820px; margin: 78px auto 0; text-align: center; }
.families-block-copy { margin: 16px auto 0; max-width: 820px; }
.families-block-copy p { margin: 0; color: var(--muted); }
.families-block-copy p + p { margin-top: 14px; }
.families-block-copy .families-block-hint { margin-top: 18px; color: var(--green-dark); font-size: 14px; font-weight: 750; }
.families-research-grid { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.family-detail { border: 1px solid rgba(36,68,41,.11); border-radius: 26px; background: rgba(255,255,255,.90); box-shadow: 0 12px 34px rgba(40,63,43,.06); }
.family-detail summary { display: grid; grid-template-columns: 1fr 34px; gap: 15px; align-items: start; padding: 26px; cursor: pointer; list-style: none; }
.family-detail summary::-webkit-details-marker, .family-guidance-detail summary::-webkit-details-marker { display: none; }
.family-summary-copy { display: grid; gap: 6px; }
.family-summary-copy strong { color: var(--green-dark); font-family: var(--serif); font-size: 23px; font-weight: 600; line-height: 1.15; }
.family-summary-copy small { color: var(--muted); font-size: 14px; line-height: 1.55; }
.family-toggle { color: var(--green); font-size: 28px; line-height: 1; transition: transform .2s ease; }
.family-detail[open] .family-toggle, .family-guidance-detail[open] summary > span { transform: rotate(45deg); }
.family-detail-body { margin: 0 26px 26px; padding-top: 18px; border-top: 1px solid var(--line); }
.family-detail-body p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.families-note { margin-top: 22px; display: grid; grid-template-columns: 40px 1fr; gap: 15px; padding: 20px 24px; border-radius: 20px; background: var(--sage); }
.families-note > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-family: var(--serif); font-size: 21px; font-style: italic; }
.families-note p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.families-note strong { display: block; color: var(--green-dark); }
.families-guidance-panel { margin-top: 72px; padding: 52px; border-radius: 42px; background: var(--green-dark); color: #fff; box-shadow: var(--shadow); }
.families-guidance-heading { max-width: 780px; }
.families-guidance-heading .families-kicker { color: #ffd598; }
.families-guidance-heading h3 { color: #fff; }
.families-guidance-heading > p:last-child { margin: 14px 0 0; color: rgba(255,255,255,.72); }
.family-guidance-grid { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.family-guidance-detail { border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.08); }
.family-guidance-detail summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; cursor: pointer; list-style: none; }
.family-guidance-detail summary strong { color: #fff; }
.family-guidance-detail summary > span { flex: 0 0 auto; color: #ffd598; font-size: 25px; line-height: 1; transition: transform .2s ease; }
.family-guidance-detail > p { margin: 0 22px 22px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.7; }
.families-cta { margin-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 34px; padding: 32px 36px; border-radius: 28px; background: #fff; }
.families-cta h3 { font-size: 30px; }
.families-cta p { margin: 8px 0 0; max-width: 760px; color: var(--muted); font-size: 15px; }
.families-cta .button { flex: 0 0 auto; }

.about-heading { align-items: center; }
.profile-grid { margin-top: 58px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.profile-card { display: grid; grid-template-columns: 42% 1fr; gap: 30px; min-height: 380px; padding: 22px; border: 1px solid var(--line); border-radius: 34px; background: #fff; box-shadow: 0 14px 44px rgba(36,68,41,.07); }
.profile-card img { width: 100%; height: 100%; max-height: 340px; object-fit: cover; border-radius: 25px; }
.profile-card:first-child img { object-position: center 25%; }
.profile-card:last-child img { object-position: center 28%; }
.profile-card > div { align-self: center; }
.profile-role { margin: 0; color: var(--green-light); font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.profile-card h3 { margin: 8px 0 14px; color: var(--green-dark); font-family: var(--serif); font-size: 28px; line-height: 1.08; }
.profile-card div p:last-child { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.together-card { margin-top: 28px; display: grid; grid-template-columns: 90px 1fr; gap: 26px; padding: 38px 46px; border-radius: 32px; background: var(--sage); }
.together-mark { color: var(--green-light); font-family: var(--serif); font-size: 100px; line-height: .85; }
.together-card h3 { margin: 0 0 8px; color: var(--green-dark); font-family: var(--serif); font-size: 28px; }
.together-card p { margin: 0; color: var(--muted); }
.together-card p + p { margin-top: 14px; }

.registrations { padding-block: 86px; background: #fff; }
.registration-heading { max-width: 760px; margin: 0 auto; text-align: center; }
.registration-heading .eyebrow { justify-content: center; }
.registration-heading h2 { font-size: clamp(34px, 3.7vw, 48px); }
.logo-grid { margin-top: 42px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.logo-tile { min-height: 120px; display: grid; place-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.logo-tile img { width: 100%; height: 78px; object-fit: contain; }
.logo-text { align-content: center; gap: 2px; color: #664063; text-align: center; }
.logo-text strong { font-family: Arial, sans-serif; font-size: 33px; letter-spacing: -.04em; }
.logo-text span { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; }
.logo-note { margin: 18px auto 0; color: var(--muted); font-size: 12px; text-align: center; }

.contact-section { background: var(--green-dark); color: #fff; }
.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: center; }
.contact-copy h2 { color: #fff; }
.contact-copy > p:not(.eyebrow) { max-width: 680px; color: rgba(255,255,255,.73); font-size: 18px; }
.contact-copy .button { margin-top: 20px; }
.contact-card { padding: 38px; border-radius: 32px; background: #fff; color: var(--ink); font-style: normal; }
.contact-card > div:not(.contact-note) { display: grid; grid-template-columns: 44px 1fr; gap: 15px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.contact-card > div:first-child { padding-top: 0; }
.contact-card > div > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--sage); color: var(--green-dark); font-size: 20px; }
.contact-card small { display: block; color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.contact-card a, .contact-card p { margin: 3px 0 0; color: var(--green-dark); font-weight: 700; text-decoration: none; }
.contact-note { margin-top: 24px; padding: 17px 18px; border-radius: 15px; background: var(--warm); color: var(--muted); font-size: 13px; line-height: 1.55; }

.site-footer { padding-top: 72px; background: #142b22; color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.7fr .75fr .8fr; gap: 70px; padding-bottom: 58px; }
.footer-logo { width: 200px; padding: 9px; border-radius: 8px; background: #fff; }
.footer-grid > div:first-child p { max-width: 330px; color: rgba(255,255,255,.62); }
.footer-grid h2 { margin: 0 0 16px; font-family: var(--serif); font-size: 18px; font-weight: 500; }
.footer-grid a, .footer-grid > div:not(:first-child) p { display: block; margin: 8px 0; color: rgba(255,255,255,.62); font-size: 14px; text-decoration: none; }
.footer-grid a:hover { color: #fff; }
.footer-registration-logos {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  padding: 24px 0 28px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.footer-registration-logo {
  min-height: 74px;
  display: grid;
  place-items: center;
  padding: 8px;
  border: 0;
  background: transparent;
}
.footer-registration-logo img { width: 100%; height: 48px; object-fit: contain; }
.footer-registration-logo--nip img,
.footer-registration-logo--act img,
.footer-registration-logo--leren img,
.footer-registration-logo--unlp img,
.footer-registration-logo--bgl img { mix-blend-mode: multiply; }
.footer-registration-logo--nip img { height: 62px; }
.footer-registration-logo--act img { height: 64px; }
.footer-registration-logo--bgl img { height: 54px; transform: scale(2.35); }
.footer-registration-text { align-content: center; gap: 0; color: #664063; text-align: center; }
.footer-registration-text strong { font-family: Arial, sans-serif; font-size: 22px; line-height: 1; }
.footer-registration-text span { color: #64705f; font-size: 8px; font-weight: 750; text-transform: uppercase; }
.footer-bottom { min-height: 70px; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.46); font-size: 12px; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal-delay { transition-delay: .12s; }
.reveal-delay-two { transition-delay: .22s; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

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

@media (max-width: 1080px) {
  .desktop-nav, .header-cta { display: none; }
  .header-inner { grid-template-columns: 46px 1fr 46px; gap: 0; min-height: 100px; }
  .brand { grid-column: 2; justify-self: center; }
  .brand img { width: 190px; max-height: 78px; object-position: center; }
  .menu-button { grid-column: 3; justify-self: end; }
  .menu-button { width: 46px; height: 46px; display: grid; place-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; }
  .menu-button > span:not(.sr-only) { width: 20px; height: 2px; display: block; background: var(--green-dark); transition: transform .2s ease, opacity .2s ease; }
  .menu-button[aria-expanded="true"] > span:nth-of-type(2) { transform: translateY(7px) rotate(45deg); }
  .menu-button[aria-expanded="true"] > span:nth-of-type(3) { opacity: 0; }
  .menu-button[aria-expanded="true"] > span:nth-of-type(4) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-nav { padding: 12px 20px 20px; background: var(--cream); border-top: 1px solid var(--line); }
  .mobile-nav:not([hidden]) { display: grid; }
  .mobile-nav a { padding: 13px; border-bottom: 1px solid var(--line); color: var(--green-dark); font-weight: 750; text-decoration: none; }
  .hero-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .hero-visual { transform: scale(.92); transform-origin: center; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .service-card:last-child { grid-column: 1 / -1; min-height: auto; }
  .split-grid, .guidance-grid, .contact-grid { gap: 50px; }
  .advice-panel { gap: 48px; padding: 50px; }
  .profile-card { grid-template-columns: 1fr; }
  .profile-card img { height: 300px; }
  .logo-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-registration-logos { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 800px) {
  body { font-size: 16px; }
  .section { padding-block: 82px; }
  .hero-grid { min-height: auto; grid-template-columns: 1fr; padding-block: 70px 80px; }
  .hero-copy { text-align: left; }
  .hero-visual { width: min(560px, 100%); min-height: 500px; margin-inline: auto; transform: none; }
  .question-grid { grid-template-columns: 1fr; }
  .question-grid p { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .question-grid p:first-child { border-top: 0; }
  .section-heading, .split-grid, .guidance-grid, .contact-grid { grid-template-columns: 1fr; gap: 42px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card, .service-card:last-child { grid-column: auto; min-height: auto; }
  .research-visual { min-height: 0; order: 2; }
  .advice-panel { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .families-heading, .families-intro-copy { grid-template-columns: 1fr; gap: 24px; }
  .families-research-grid, .family-guidance-grid { grid-template-columns: 1fr; }
  .families-guidance-panel { padding: 38px 30px; }
  .families-cta { align-items: flex-start; flex-direction: column; }
  .profile-card { grid-template-columns: 38% 1fr; }
  .footer-grid { grid-template-columns: 1.4fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .shell { width: min(100% - 28px, 1180px); }
  .hero { min-height: auto; }
  .hero h1 { font-size: 44px; }
  .hero-intro { font-size: 18px; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-proof { font-size: 10px; }
  .hero-visual { min-height: 410px; }
  .portrait-elsbeth { width: 68%; height: 330px; }
  .portrait-saskia { width: 52%; height: 270px; }
  .hero-card { width: 205px; padding: 15px 17px; }
  .hero-card p { font-size: 16px; }
  .hero-card small { font-size: 11px; }
  .section-heading h2, .research-copy h2, .advice-intro h2, .guidance-copy h2, .registration-heading h2, .contact-copy h2 { font-size: 38px; }
  .service-card { padding: 28px; }
  .research-visual { min-height: 0; }
  .circle-wrap { padding: 16px; }
  .visual-note { max-width: 210px; font-size: 14px; }
  .advice-panel { padding: 34px 25px; border-radius: 28px; }
  .act-card { padding: 34px 27px; }
  .act-card h3 { font-size: 44px; }
  .profile-card { grid-template-columns: 1fr; }
  .profile-card img { height: 340px; }
  .together-card { grid-template-columns: 1fr; padding: 30px; }
  .families-intro { padding: 32px 24px; border-radius: 30px; }
  .family-detail summary { grid-template-columns: 1fr 26px; gap: 11px; padding: 21px 18px; }
  .family-summary-copy strong { font-size: 20px; }
  .family-detail-body { margin: 0 18px 22px; }
  .families-guidance-panel { padding: 32px 20px; border-radius: 30px; }
  .families-cta { padding: 26px 22px; }
  .together-mark { height: 42px; font-size: 80px; }
  .logo-grid { grid-template-columns: 1fr 1fr; }
  .logo-tile { min-height: 105px; padding: 12px; }
  .footer-registration-logos { grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .footer-registration-logo { min-height: 66px; padding: 6px; }
  .footer-registration-logo img { height: 42px; }
  .footer-registration-logo--nip img { height: 54px; }
  .footer-registration-logo--act img { height: 56px; }
  .footer-registration-logo--bgl img { height: 48px; }
  .contact-card { padding: 28px 22px; }
  .footer-grid { grid-template-columns: 1fr; gap: 38px; }
  .footer-grid > div:first-child { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 18px; }
}

/* Folder-inspired visual direction */
.hero {
  background:
    radial-gradient(circle at 8% 8%, rgba(155, 190, 84, .27), transparent 25%),
    radial-gradient(circle at 35% 88%, rgba(244, 163, 61, .18), transparent 30%),
    linear-gradient(122deg, #fffdf8 8%, #fff6e8 52%, #ffe9d8 100%);
}
.hero::before {
  background:
    radial-gradient(ellipse at 93% -8%, rgba(221, 47, 64, .30) 0 23%, transparent 24%),
    radial-gradient(ellipse at 72% -9%, rgba(242, 146, 31, .40) 0 26%, transparent 27%),
    radial-gradient(ellipse at -7% 72%, rgba(150, 184, 80, .20) 0 24%, transparent 25%);
}
.hero-copy { position: relative; z-index: 2; }
.hero-copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -12%;
  top: -9%;
  width: 112%;
  height: 116%;
  border-radius: 44% 56% 48% 52% / 54% 38% 62% 46%;
  background: rgba(255, 255, 255, .48);
  filter: blur(1px);
}
.hero h1 { font-size: clamp(49px, 5.6vw, 79px); }
.hero h1 em { text-shadow: 0 6px 22px rgba(216, 35, 53, .10); }
.hero-visual { min-height: 610px; }
.folder-cover {
  position: relative;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 78px 46px 58px;
  border: 1px solid rgba(118, 91, 48, .12);
  border-radius: 47% 53% 12% 12% / 10% 10% 7% 7%;
  background:
    radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .96), rgba(255, 251, 232, .88) 54%, rgba(255, 241, 210, .92) 100%),
    #fff9e9;
  box-shadow: 0 34px 90px rgba(92, 62, 32, .21);
  isolation: isolate;
}
.folder-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .28;
  background-image:
    repeating-linear-gradient(12deg, rgba(255,255,255,.5) 0 2px, transparent 2px 8px),
    radial-gradient(circle at 20% 45%, rgba(240, 142, 39, .10), transparent 24%);
  mix-blend-mode: multiply;
}
.cover-cloud { position: absolute; z-index: -1; filter: blur(1px); }
.cover-cloud-orange { width: 78%; height: 190px; left: -7%; top: -62px; border-radius: 42% 58% 55% 45% / 76% 62% 38% 24%; background: linear-gradient(110deg, rgba(245,149,32,.93), rgba(255,190,94,.72)); transform: rotate(-7deg); }
.cover-cloud-red { width: 57%; height: 155px; right: -14%; top: -28px; border-radius: 55% 45% 42% 58% / 48% 70% 30% 52%; background: linear-gradient(130deg, rgba(229,68,70,.78), rgba(241,117,92,.62)); transform: rotate(11deg); }
.cover-logo { width: min(365px, 82%); margin-top: 10px; filter: drop-shadow(0 6px 16px rgba(36,68,41,.08)); }
.cover-slogan { margin: 2px 0 0; color: var(--red); font-family: "Satisfy", "Brush Script MT", "Segoe Script", cursive; font-size: clamp(30px, 2.8vw, 46px); font-weight: 400; line-height: 1.2; letter-spacing: -.015em; text-align: center; white-space: nowrap; }
.cover-underline { width: 72%; height: 8px; margin-top: 2px; border-top: 3px solid var(--orange); border-radius: 50%; transform: rotate(-2deg); }
.cover-message { margin-top: 37px; display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; column-gap: 7px; text-align: center; }
.cover-message strong { width: 100%; color: var(--red); font-family: var(--serif); font-size: 29px; font-weight: 500; }
.cover-message b { color: var(--green-dark); font-size: 16px; }
.cover-message span { color: var(--muted); font-size: 16px; }
.cover-promise { margin-top: 16px; color: var(--green); font-family: var(--serif); font-size: 19px; line-height: 1.55; text-align: center; }
.cover-waves { position: absolute; z-index: -1; inset: auto 0 0; height: 150px; }
.wave { position: absolute; left: -15%; width: 130%; height: 100px; border-radius: 50% 50% 0 0 / 60% 62% 0 0; opacity: .94; }
.wave-red { bottom: -46px; background: linear-gradient(90deg, #dc3441, #ed6c52 70%, #db2237); transform: rotate(-5deg); }
.wave-orange { bottom: -68px; background: linear-gradient(90deg, #ef8a22, #ffb13c 58%, #e96327); transform: rotate(5deg); }
.wave-green { bottom: -83px; background: linear-gradient(90deg, #71943c, #a7c354 52%, #355f39); transform: rotate(-2deg); }
.cover-sprig { position: absolute; z-index: 1; bottom: 21px; width: 90px; height: 80px; }
.cover-sprig-left { left: 14px; transform: rotate(-13deg); }
.cover-sprig-right { right: 9px; transform: scaleX(-1) rotate(-17deg); }
.cover-sprig::before { content: ""; position: absolute; left: 44px; bottom: 0; width: 2px; height: 73px; background: var(--green-dark); transform: rotate(27deg); transform-origin: bottom; }
.cover-sprig i { position: absolute; width: 34px; height: 18px; border-radius: 100% 0 100% 0; background: var(--green-light); }
.cover-sprig i:nth-child(1) { left: 8px; bottom: 20px; transform: rotate(12deg); }
.cover-sprig i:nth-child(2) { left: 37px; bottom: 35px; background: var(--orange); transform: rotate(73deg); }
.cover-sprig i:nth-child(3) { left: 20px; bottom: 49px; background: #527c42; transform: rotate(28deg); }
.cover-sprig i:nth-child(4) { left: 50px; bottom: 58px; background: var(--red); transform: rotate(72deg); }

.question-strip {
  position: relative;
  overflow: hidden;
  padding-block: 42px 50px;
  background: #fff;
  color: var(--ink);
}
.question-strip::before {
  content: "";
  position: absolute;
  left: -4%;
  right: -4%;
  top: -34px;
  height: 58px;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(90deg, var(--red), var(--orange) 46%, var(--green-light) 76%, var(--green));
  transform: rotate(-1deg);
}
.question-grid { gap: 22px; }
.question-grid p {
  min-height: 108px;
  display: grid;
  place-items: center;
  padding: 22px 24px;
  border: 0;
  border-radius: 48% 52% 45% 55% / 56% 43% 57% 44%;
  background: var(--blush);
  color: var(--green-dark);
  font-size: 18px;
  font-style: normal;
  box-shadow: 0 13px 28px rgba(80, 75, 54, .08);
}
.question-grid p:nth-child(2) { background: var(--sage); border-radius: 53% 47% 57% 43% / 42% 55% 45% 58%; transform: translateY(9px); }
.question-grid p:nth-child(3) { background: var(--warm); border-radius: 44% 56% 49% 51% / 54% 45% 55% 46%; }
.question-grid p:nth-child(3n + 1) { background: var(--blush); }
.question-grid p:nth-child(3n + 2) { background: var(--sage); }
.question-grid p:nth-child(3n) { background: var(--warm); }
.question-grid p span { max-width: 270px; text-align: center; }

.service-card { position: relative; overflow: hidden; border: 0; box-shadow: 0 18px 45px rgba(61,70,48,.10); }
.service-card::before { content: ""; position: absolute; left: -12%; right: -12%; top: -64px; height: 103px; border-radius: 0 0 50% 50%; opacity: .9; }
.service-red::before { background: linear-gradient(90deg, #ef8e72, #f7b0a2); }
.service-green::before { background: linear-gradient(90deg, #8fb64b, #c1d48e); }
.service-orange::before { background: linear-gradient(90deg, #f39a27, #ffc064); }
.research-section { position: relative; overflow: hidden; padding-top: 145px; }
.research-section::before { content: ""; position: absolute; top: -50px; left: -5%; width: 110%; height: 112px; border-radius: 0 0 50% 50%; background: linear-gradient(96deg, rgba(223,54,61,.82), rgba(243,146,31,.80) 47%, rgba(114,151,55,.82)); transform: rotate(1.6deg); }
.guidance-section { position: relative; overflow: hidden; background: radial-gradient(circle at 88% 18%, rgba(232,66,72,.21), transparent 28%), linear-gradient(135deg, #e5efd1, #fff0d9 64%, #f7d4cf); }
.registrations { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff 0%, #fffaf0 100%); }
.contact-section { position: relative; overflow: hidden; }
.contact-section::after { content: ""; position: absolute; z-index: 0; left: -7%; right: -7%; bottom: -92px; height: 180px; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: linear-gradient(92deg, var(--red), var(--orange) 42%, var(--green-light) 72%, var(--green)); opacity: .78; transform: rotate(-2deg); }
.contact-grid { position: relative; z-index: 1; }

@media (max-width: 1080px) {
  .folder-cover { min-height: 550px; padding-inline: 34px; }
  .cover-message strong { font-size: 25px; }
  .cover-promise { font-size: 17px; }
}

@media (max-width: 800px) {
  .hero-visual { min-height: 590px; }
  .folder-cover { width: min(560px, 100%); min-height: 570px; margin-inline: auto; }
  .question-grid { grid-template-columns: 1fr; gap: 13px; }
  .question-grid p, .question-grid p:nth-child(2), .question-grid p:nth-child(3) { min-height: 90px; transform: none; }
}

@media (max-width: 560px) {
  .header-inner { min-height: 96px; }
  .brand img { width: 176px; max-height: 74px; }
  .hero-visual { min-height: 500px; }
  .folder-cover { min-height: 490px; padding: 65px 20px 44px; border-radius: 42% 58% 9% 9% / 8% 8% 5% 5%; }
  .cover-logo { width: 82%; }
  .cover-slogan { font-size: clamp(22px, 6.5vw, 29px); }
  .cover-message { margin-top: 23px; }
  .cover-message strong { font-size: 23px; }
  .cover-message b, .cover-message span { font-size: 13px; }
  .cover-promise { font-size: 15px; }
  .cover-waves { height: 112px; }
  .cover-sprig { transform: scale(.76) rotate(-13deg); transform-origin: bottom left; }
  .cover-sprig-right { transform: scaleX(-1) scale(.76) rotate(-17deg); transform-origin: bottom right; }
}

/* Softer ACT4School and footer palette */
.act-card {
  border: 1px solid rgba(62, 99, 59, .14);
  background:
    radial-gradient(circle at 92% 8%, rgba(244, 151, 37, .40), transparent 32%),
    linear-gradient(145deg, #eef4df 0%, #dce9bf 58%, #fbe9cc 100%);
  color: var(--green-dark);
  box-shadow: 0 24px 60px rgba(62, 99, 59, .16);
}
.act-card::before {
  content: "";
  position: absolute;
  left: -16%;
  top: -76px;
  width: 76%;
  height: 145px;
  border-radius: 50%;
  background: linear-gradient(100deg, rgba(242, 145, 31, .72), rgba(216, 35, 53, .35));
  transform: rotate(-8deg);
}
.act-card::after {
  right: -82px;
  bottom: -105px;
  background: rgba(111, 148, 57, .20);
}
.act-badge {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,.62);
  color: var(--green-dark);
}
.act-card h3 { position: relative; z-index: 1; color: var(--green-dark); }
.act-lead { color: var(--red); }
.act-card > p:not(.act-lead) { color: #53614f; }
.act-card .button-light {
  border-color: var(--green-dark);
  background: var(--green-dark);
  color: #fff;
  box-shadow: 0 10px 25px rgba(36,68,41,.16);
}
.act-card .button-light:hover,
.act-card .button-light:focus-visible { background: var(--green); color: #fff; }

.contact-section {
  background:
    radial-gradient(circle at 8% 20%, rgba(242, 145, 31, .18), transparent 25%),
    radial-gradient(circle at 94% 18%, rgba(216, 35, 53, .14), transparent 28%),
    linear-gradient(135deg, #eef4df 0%, #fff8e9 55%, #f9e4df 100%);
  color: var(--ink);
}
.contact-section .eyebrow-light { color: var(--red); }
.contact-copy h2 { color: var(--green-dark); }
.contact-copy > p:not(.eyebrow) { color: var(--muted); }
.contact-section .button-light {
  border-color: var(--green-dark);
  background: var(--green-dark);
  color: #fff;
  box-shadow: 0 10px 25px rgba(36,68,41,.16);
}
.contact-section .button-light:hover,
.contact-section .button-light:focus-visible { background: var(--green); color: #fff; }

.site-footer {
  position: relative;
  overflow: hidden;
  padding-top: 82px;
  background: linear-gradient(180deg, #f5f1df 0%, #e8efd9 100%);
  color: var(--green-dark);
}
.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: -3%;
  width: 106%;
  height: 24px;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(90deg, var(--red), var(--orange) 44%, var(--green-light) 72%, var(--green));
  opacity: .82;
  transform: rotate(-.5deg);
}
.footer-grid > div:first-child p,
.footer-grid a,
.footer-grid > div:not(:first-child) p { color: #64705f; }
.footer-grid a:hover { color: var(--red); }
.footer-grid h2 { color: var(--green-dark); }
.footer-bottom {
  border-top-color: rgba(36,68,41,.14);
  color: rgba(36,68,41,.62);
}
.footer-slogan {
  color: var(--red);
  font-family: "Satisfy", "Brush Script MT", "Segoe Script", cursive;
  font-size: 22px;
  line-height: 1.2;
}

/* Overlapping portrait composition */
.profile-showcase {
  margin-top: 58px;
  display: grid;
  grid-template-columns: minmax(420px, .92fr) 1.08fr;
  gap: clamp(48px, 7vw, 104px);
  align-items: center;
}
.portrait-duo {
  position: relative;
  min-height: 440px;
  isolation: isolate;
}
.portrait-duo::before {
  content: "";
  position: absolute;
  inset: 20px 52px 22px 18px;
  z-index: -2;
  border-radius: 48% 52% 44% 56% / 56% 42% 58% 44%;
  background:
    radial-gradient(circle at 28% 28%, rgba(242, 145, 31, .28), transparent 34%),
    linear-gradient(145deg, #f8eed2, #e1edc8 58%, #f8dfd8);
  transform: rotate(-4deg);
}
.portrait-circle {
  position: absolute;
  overflow: hidden;
  width: 282px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 22px 50px rgba(36, 68, 41, .18);
}
.portrait-circle img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.portrait-circle-elsbeth {
  top: 6px;
  left: -6px;
  z-index: 1;
  border: 10px solid #fff8ea;
}
.portrait-circle-elsbeth img { object-position: 52% 24%; }
.portrait-circle-saskia {
  z-index: 2;
  right: -6px;
  bottom: 6px;
  border: 10px solid #edf3dc;
}
.portrait-circle-saskia img { object-position: 50% 27%; }
.portrait-accent {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
}
.portrait-accent-one {
  top: 8px;
  right: 36px;
  width: 84px;
  height: 84px;
  background: var(--orange);
  opacity: .72;
}
.portrait-accent-two {
  left: 45px;
  bottom: 8px;
  width: 52px;
  height: 52px;
  background: var(--red);
  opacity: .82;
}
.profile-stories { display: grid; gap: 18px; }
.profile-story {
  position: relative;
  padding: 28px 32px 28px 38px;
  border: 1px solid rgba(62, 99, 59, .12);
  border-radius: 26px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 14px 38px rgba(36, 68, 41, .07);
}
.profile-story::before {
  content: "";
  position: absolute;
  top: 28px;
  bottom: 28px;
  left: 0;
  width: 6px;
  border-radius: 0 8px 8px 0;
  background: linear-gradient(var(--orange), var(--red));
}
.profile-story:last-child::before { background: linear-gradient(var(--green-light), var(--green)); }
.profile-story h3 {
  margin: 7px 0 10px;
  color: var(--green-dark);
  font-family: var(--serif);
  font-size: clamp(28px, 2.5vw, 36px);
  font-weight: 500;
  line-height: 1.08;
}
.profile-story > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}
.profile-body { display: grid; gap: 13px; }
.profile-body p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }

@media (max-width: 920px) {
  .profile-showcase { grid-template-columns: 1fr; gap: 42px; }
  .portrait-duo { width: min(540px, 100%); margin-inline: auto; }
}

@media (max-width: 560px) {
  .profile-showcase { margin-top: 40px; gap: 32px; }
  .portrait-duo { min-height: 325px; }
  .portrait-duo::before { inset: 18px 24px 16px 8px; border-radius: 48% 52% 44% 56% / 56% 42% 58% 44%; }
  .portrait-circle { width: 210px; border-width: 7px; }
  .portrait-circle-elsbeth { top: 4px; left: -8px; }
  .portrait-circle-saskia { right: -8px; bottom: 2px; }
  .portrait-accent-one { right: 18px; width: 62px; height: 62px; }
  .portrait-accent-two { left: 28px; width: 40px; height: 40px; }
  .profile-story { padding: 25px 24px 25px 30px; border-radius: 22px; }
}

/* Korte kennismakingsuitnodiging, geïnspireerd op Leerlingerwijs */
.quick-consult { margin-top: 6px; margin-bottom: 112px; }
.quick-consult-inner {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 42px;
  padding: 48px 54px;
  border: 1px solid rgba(36,68,41,.10);
  border-radius: 42px;
  background: linear-gradient(135deg, #fff1dc 0%, #f5ead8 56%, #e9f1dc 100%);
  box-shadow: 0 18px 48px rgba(65,71,48,.09);
}
.quick-consult-shape {
  position: absolute;
  top: -105px;
  right: -70px;
  width: 285px;
  height: 285px;
  border-radius: 48% 52% 58% 42% / 43% 57% 43% 57%;
  background: rgba(243,145,32,.18);
  transform: rotate(18deg);
}
.quick-consult-copy { position: relative; z-index: 1; max-width: 680px; }
.quick-consult-copy h2 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(34px, 4vw, 48px); font-weight: 500; line-height: 1.08; }
.quick-consult-copy > p:last-child { margin: 14px 0 0; color: var(--muted); font-size: 17px; }
.quick-consult-button {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  border-color: var(--orange);
  background: var(--orange);
  color: var(--ink);
  box-shadow: 0 12px 28px rgba(173,92,15,.20);
}
.quick-consult-button:hover,
.quick-consult-button:focus-visible { background: #f7a73e; color: var(--ink); }

@media (max-width: 800px) {
  .quick-consult-inner { min-height: 0; align-items: flex-start; flex-direction: column; padding: 42px; }
}

@media (max-width: 560px) {
  .quick-consult { margin-bottom: 82px; }
  .quick-consult-inner { gap: 28px; padding: 34px 24px; border-radius: 30px; }
  .quick-consult-button { width: 100%; }
}

/* Aanmelden en werkwijze */
.journey-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 9% 12%, rgba(242, 145, 31, .13), transparent 23%),
    radial-gradient(circle at 94% 18%, rgba(216, 35, 53, .10), transparent 25%),
    linear-gradient(180deg, #fffdf8 0%, #eef4df 100%);
}
.journey-section::before {
  content: "";
  position: absolute;
  top: -86px;
  left: -5%;
  width: 110%;
  height: 120px;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(92deg, rgba(216,35,53,.72), rgba(243,145,32,.75) 46%, rgba(136,169,76,.72));
  transform: rotate(-1deg);
}
.journey-heading { position: relative; z-index: 1; }
.journey-steps {
  position: relative;
  z-index: 1;
  margin: 58px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  list-style: none;
}
.journey-steps li {
  min-height: 220px;
  padding: 27px;
  border: 1px solid rgba(36, 68, 41, .11);
  border-radius: 26px 34px 24px 31px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 14px 34px rgba(58, 69, 48, .08);
}
.journey-steps li:nth-child(3n + 2) { border-radius: 34px 22px 32px 25px; }
.journey-steps li:nth-child(3n) { border-radius: 24px 35px 22px 30px; }
.journey-number {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 16px 25px 16px 24px;
  background: var(--blush);
  color: var(--red);
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 700;
}
.journey-steps li:nth-child(3n + 2) .journey-number { background: var(--sage); color: var(--green); }
.journey-steps li:nth-child(3n) .journey-number { background: var(--warm); color: #9a5718; }
.journey-steps h3 { margin: 20px 0 8px; color: var(--green-dark); font-family: var(--serif); font-size: 23px; font-weight: 500; line-height: 1.18; }
.journey-steps p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }

.application-panel {
  position: relative;
  z-index: 1;
  margin-top: 72px;
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 58px;
  padding: 58px;
  border: 1px solid rgba(36, 68, 41, .12);
  border-radius: 42px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 28px 75px rgba(36, 68, 41, .13);
}
.application-intro h2 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(36px, 4vw, 52px); font-weight: 500; line-height: 1.08; }
.application-intro > p:not(.eyebrow) { margin: 22px 0 0; color: var(--muted); font-size: 17px; }
.application-intro a { color: var(--green-dark); font-weight: 750; }
.application-note { margin-top: 30px; display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 18px; border-radius: 20px 28px 20px 26px; background: var(--warm); }
.application-note > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--serif); font-weight: 700; }
.application-note p { margin: 0; color: #735530; font-size: 13px; line-height: 1.6; }
.application-form { min-width: 0; }
.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field { min-width: 0; display: grid; gap: 7px; color: var(--green-dark); font-size: 13px; font-weight: 800; }
.form-field-wide { grid-column: 1 / -1; }
.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid rgba(36, 68, 41, .18);
  border-radius: 16px;
  background: #fffefa;
  color: var(--ink);
  font: inherit;
  font-weight: 500;
  padding: 13px 14px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.form-field textarea { min-height: 145px; resize: vertical; line-height: 1.55; }
.form-field input:focus,
.form-field textarea:focus { border-color: var(--green); background: #fff; box-shadow: 0 0 0 4px rgba(136,169,76,.17); }
.form-field input::placeholder { color: #929b92; }
.form-choice-group { margin: 24px 0 0; padding: 0; border: 0; }
.form-choice-group legend { margin-bottom: 9px; color: var(--green-dark); font-size: 13px; font-weight: 800; }
.form-choices { display: grid; gap: 10px; }
.form-choices-two { grid-template-columns: repeat(2, 1fr); }
.form-choices-three { grid-template-columns: repeat(3, 1fr); }
.form-choices label { position: relative; min-width: 0; cursor: pointer; }
.form-choices input { position: absolute; opacity: 0; pointer-events: none; }
.form-choices span {
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(36,68,41,.16);
  border-radius: 15px 23px 15px 22px;
  background: #fffefa;
  color: var(--muted);
  text-align: center;
  font-size: 13px;
  font-weight: 750;
  transition: .2s ease;
}
.form-choices label:nth-child(2) span { border-radius: 23px 15px 22px 16px; }
.form-choices label:nth-child(3) span { border-radius: 17px 24px 15px 22px; }
.form-choices input:checked + span { border-color: var(--green); background: var(--sage); color: var(--green-dark); box-shadow: inset 0 0 0 1px rgba(62,99,59,.08); }
.form-choices input:focus-visible + span { outline: 3px solid rgba(136,169,76,.32); outline-offset: 2px; }
.privacy-check { margin-top: 21px; display: flex; align-items: flex-start; gap: 11px; color: var(--muted); font-size: 12px; line-height: 1.55; cursor: pointer; }
.privacy-check input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 2px; accent-color: var(--green-dark); }
.privacy-check a { color: var(--green-dark); font-weight: 800; text-underline-offset: 2px; }
.form-submit { margin-top: 24px; border: 0; cursor: pointer; }
.form-submit:disabled { cursor: wait; opacity: .65; transform: none; }
.form-note { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.form-status { margin: 18px 0 0; padding: 13px 15px; border-radius: 14px; font-size: 13px; line-height: 1.55; }
.form-status.is-success { background: var(--sage); color: var(--green-dark); }
.form-status.is-error { background: var(--blush); color: var(--red-dark); }

/* Klachtenregeling */
.complaints-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 12%, rgba(244, 151, 37, .14), transparent 27%),
    linear-gradient(180deg, #fffdf8 0%, #f5f0e3 100%);
}
.complaints-heading { max-width: 790px; }
.complaints-heading h2,
.complaints-heading h1 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(40px, 5vw, 62px); font-weight: 500; line-height: 1.05; }
.complaints-heading > p:last-child { margin: 20px 0 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.complaints-grid { margin-top: 48px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 24px; align-items: start; }
.complaints-first-step,
.complaints-professional-routes { border: 1px solid rgba(36,68,41,.11); box-shadow: 0 18px 52px rgba(40,63,43,.08); }
.complaints-first-step { padding: 38px; border-radius: 34px 26px 34px 28px; background: rgba(255,255,255,.88); color: var(--ink); }
.complaints-first-step h3,
.complaints-first-step h2,
.complaints-routes-heading h3,
.complaints-routes-heading h2 { margin: 0; font-family: var(--serif); font-size: 30px; font-weight: 500; line-height: 1.15; }
.complaints-first-step h3,
.complaints-first-step h2 { color: var(--green-dark); }
.complaints-first-step p { margin: 15px 0 0; color: var(--muted); line-height: 1.75; }
.complaints-first-step p a { color: var(--green-dark); font-weight: 800; }
.complaints-first-step .button { margin-top: 27px; border-color: var(--green-dark); background: var(--green-dark); color: #fff; box-shadow: none; }
.complaints-first-step .button:hover,
.complaints-first-step .button:focus-visible { border-color: var(--green); background: var(--green); color: #fff; }
.complaints-professional-routes { padding: 38px; border-radius: 28px 36px 28px 34px; background: rgba(255,255,255,.88); }
.complaints-routes-heading { display: block; }
.complaints-routes-heading h3,
.complaints-routes-heading h2 { color: var(--green-dark); }
.complaints-routes-heading p { margin: 9px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.complaints-route { margin-top: 26px; padding: 25px 27px; border-left: 5px solid var(--orange); border-radius: 0 22px 22px 0; background: var(--warm); }
.complaints-route:last-child { border-left-color: var(--green-light); background: var(--sage); }
.complaints-route-label { margin: 0; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.complaints-route:last-child .complaints-route-label { color: var(--green); }
.complaints-route h4,
.complaints-route h3 { margin: 8px 0 0; color: var(--green-dark); font-family: var(--serif); font-size: 24px; font-weight: 500; line-height: 1.18; }
.complaints-route > p:not(.complaints-route-label) { margin: 12px 0 0; color: var(--muted); font-size: 14px; line-height: 1.72; }

.privacy-section { position: relative; overflow: hidden; background: linear-gradient(145deg, rgba(234,241,223,.84), rgba(253,250,244,.95) 48%, rgba(255,243,225,.76)); }
.privacy-section::before { content: ""; position: absolute; width: 340px; height: 340px; right: -150px; top: 80px; border-radius: 50%; background: rgba(243,145,32,.10); }
.privacy-heading { position: relative; max-width: 850px; }
.privacy-heading h2,
.privacy-heading h1 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(40px, 5vw, 62px); font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
.privacy-heading > p:last-child { max-width: 780px; margin: 20px 0 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.privacy-layout { position: relative; margin-top: 50px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 28px; align-items: start; }
.privacy-summary { position: sticky; top: 126px; padding: 36px; border: 1px solid rgba(36,68,41,.11); border-radius: 36px 28px 36px 28px; background: var(--green-dark); color: #fff; box-shadow: 0 20px 55px rgba(40,63,43,.12); }
.privacy-summary-label { margin: 0 0 14px; color: #dce8c7; font-size: 11px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.privacy-summary h3,
.privacy-summary h2 { margin: 0; font-family: var(--serif); font-size: 31px; font-weight: 500; line-height: 1.16; }
.privacy-summary p:not(.privacy-summary-label) { margin: 18px 0 0; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.75; }
.privacy-summary .text-link { display: inline-block; margin-top: 24px; color: #fff; text-decoration-color: var(--orange); }
.privacy-content { padding: 42px 44px; border: 1px solid rgba(36,68,41,.11); border-radius: 28px 38px 30px 36px; background: rgba(255,255,255,.9); box-shadow: 0 20px 55px rgba(40,63,43,.09); }
.privacy-content section + section { margin-top: 33px; padding-top: 33px; border-top: 1px solid var(--line); }
.privacy-content h3,
.privacy-content h2 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: 27px; font-weight: 500; line-height: 1.2; }
.privacy-content p { margin: 13px 0 0; color: var(--muted); font-size: 15px; line-height: 1.78; }
.privacy-content ul { margin: 16px 0 0; padding-left: 21px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.privacy-content li + li { margin-top: 9px; }
.privacy-content a { color: var(--green-dark); font-weight: 800; text-underline-offset: 3px; }
.legal-standalone { min-height: calc(100vh - 96px); padding-top: 78px; }
.legal-back-link { display: inline-flex; margin-bottom: 36px; color: var(--green-dark); font-size: 14px; font-weight: 800; text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.legal-page .site-footer { margin-top: 0; }

@media (max-width: 1080px) {
  .journey-steps { grid-template-columns: repeat(2, 1fr); }
  .application-panel { gap: 40px; padding: 46px; }
  .complaints-grid { grid-template-columns: 1fr; }
  .privacy-layout { grid-template-columns: 1fr; }
  .privacy-summary { position: relative; top: auto; }
}

@media (max-width: 800px) {
  .application-panel { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .journey-section { padding-top: 124px; }
  .journey-steps { margin-top: 40px; grid-template-columns: 1fr; }
  .journey-steps li { min-height: 0; padding: 23px; }
  .application-panel { margin-top: 48px; padding: 29px 22px; border-radius: 30px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field-wide { grid-column: auto; }
  .form-choices-three { grid-template-columns: 1fr; }
  .form-submit { width: 100%; }
  .complaints-grid { margin-top: 36px; }
  .complaints-first-step,
  .complaints-professional-routes { padding: 27px 22px; border-radius: 28px; }
  .complaints-first-step h3,
  .complaints-first-step h2,
  .complaints-routes-heading h3,
  .complaints-routes-heading h2 { font-size: 26px; }
  .complaints-route { padding: 22px 19px; }
  .privacy-layout { margin-top: 36px; }
  .privacy-summary { padding: 29px 24px; border-radius: 28px; }
  .privacy-summary h3,
  .privacy-summary h2 { font-size: 27px; }
  .privacy-content { padding: 29px 23px; border-radius: 28px; }
  .privacy-content h3,
  .privacy-content h2 { font-size: 24px; }
  .legal-standalone { padding-top: 52px; }
}


/* Aanvullingen voor de losse pagina's, met behoud van de bestaande huisstijl */
.desktop-nav a[aria-current="page"],
.mobile-nav a[aria-current="page"] { color: var(--green-dark); background: var(--sage); }

.hero-brand-title { max-width: 760px; margin: 0; font-family: var(--serif); font-size: clamp(58px, 6.4vw, 92px); font-weight: 600; line-height: .94; letter-spacing: -.045em; }
.hero-brand-title span { display: inline; }
.hero-brand-title .hero-brand-practice { display: block; margin: 0 0 12px 3px; color: var(--green-dark); font-family: var(--sans); font-size: .22em; font-weight: 850; line-height: 1; letter-spacing: .16em; text-transform: uppercase; }
.hero-brand-brein { color: var(--red); }
.hero-brand-inzicht { color: var(--green-dark); }
.hero-service-line { max-width: 700px; margin: 22px 0 19px; color: var(--green-dark); font-size: clamp(19px, 2vw, 25px); font-weight: 800; line-height: 1.3; }
.hero-service-dot { display: inline-block; margin: 0 .22em; font-size: .82em; line-height: 1; transform: translateY(-.03em); }
.hero-service-dot-red { color: var(--red); }
.hero-service-dot-orange { color: var(--orange); }
.hero-promise { max-width: 760px; margin: 0 0 22px; color: var(--green-dark); font-family: var(--serif); font-size: clamp(30px, 3.25vw, 45px); font-weight: 500; line-height: 1.12; letter-spacing: -.025em; }
.hero-promise em { color: var(--red); font-style: normal; }
.content-page main > .section:first-child { min-height: 640px; }
.research-copy h1,
.advice-intro h1,
.guidance-copy h1,
.families-heading h1,
.about-heading h1,
.journey-heading h1,
.contact-copy h1 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(38px, 4.4vw, 58px); font-weight: 500; line-height: 1.1; letter-spacing: -.025em; }
.advice-intro h1,
.contact-copy h1 { color: #fff; }
.families-heading h1,
.about-heading h1 { max-width: 780px; }
.journey-heading h1 { max-width: 820px; }

.research-options-section { padding-top: 118px; }
.research-options-grid { margin-top: 54px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.research-option { position: relative; overflow: hidden; min-height: 310px; padding: 32px; border: 1px solid rgba(36,68,41,.10); border-radius: 30px; background: #fff; box-shadow: 0 18px 45px rgba(61,70,48,.09); }
.research-option::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--green-light); }
.research-option-red { background: linear-gradient(145deg, #fff, #fbe8e5); }
.research-option-red::before { background: var(--red); }
.research-option-green { background: linear-gradient(145deg, #fff, #e8f0dc); }
.research-option-green::before { background: var(--green-light); }
.research-option-orange { background: linear-gradient(145deg, #fff, #fff0d8); }
.research-option-orange::before { background: var(--orange); }
.research-option-label { margin: 0; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.research-option-green .research-option-label { color: var(--green); }
.research-option-orange .research-option-label { color: #9a5718; }
.research-option h3 { margin: 14px 0 13px; color: var(--green-dark); font-family: var(--serif); font-size: 29px; font-weight: 500; line-height: 1.15; }
.research-option p:last-child { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.research-choice-panel { margin-top: 30px; display: grid; grid-template-columns: .82fr 1.3fr auto; gap: 34px; align-items: center; padding: 38px 40px; border-radius: 30px 38px 30px 36px; background: var(--green-dark); color: #fff; }
.research-choice-panel .research-option-label { color: #dce8c7; }
.research-choice-panel h3 { margin: 8px 0 0; font-family: var(--serif); font-size: 29px; font-weight: 500; line-height: 1.15; }
.research-choice-panel > p { margin: 0; color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.72; }
.research-choice-panel .button { white-space: nowrap; border-color: #fff; background: #fff; color: var(--green-dark); box-shadow: none; }

.research-comparison { margin-top: 30px; padding: 42px; display: grid; grid-template-columns: .78fr 1.45fr; gap: 44px; border: 1px solid rgba(36,68,41,.12); border-radius: 32px; background: #fff; box-shadow: 0 18px 48px rgba(61,70,48,.08); }
.research-comparison-heading h3 { margin: 11px 0 14px; color: var(--green-dark); font-family: var(--serif); font-size: clamp(28px, 3vw, 39px); font-weight: 500; line-height: 1.13; }
.research-comparison-heading > p:last-child { margin: 0; color: var(--muted); line-height: 1.7; }
.research-comparison-options { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.research-comparison-options article { padding: 28px; border-radius: 25px; background: var(--cream); }
.research-comparison-options article:first-child { background: #fff0d8; }
.research-comparison-options article:last-child { background: #e8f0dc; }
.research-comparison-options h4 { margin: 0 0 12px; color: var(--green-dark); font-family: var(--serif); font-size: 25px; font-weight: 600; }
.research-comparison-options p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.72; }

.families-heading { align-items: center; }
.families-heading-copy > p:last-child { margin: 24px 0 0; max-width: 690px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.families-hero-image { position: relative; min-height: 370px; margin: 0; overflow: hidden; border: 10px solid rgba(255,255,255,.76); border-radius: 44% 56% 46% 54% / 50% 43% 57% 50%; box-shadow: 0 24px 58px rgba(53,70,43,.16); transform: rotate(1.2deg); }
.families-hero-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(36,68,41,.10); border-radius: inherit; pointer-events: none; }
.families-hero-image img { display: block; width: 100%; height: 100%; min-height: 370px; object-fit: cover; object-position: center; }
.families-cta-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }

.page-signoff { position: relative; padding: 38px 20px 50px; overflow: hidden; background: var(--cream); text-align: center; }
.page-signoff::after { content: ""; display: block; width: 112px; height: 4px; margin: 12px auto 0; border-radius: 999px; background: linear-gradient(90deg, var(--red), var(--orange) 48%, var(--green)); }
.page-signoff span { color: var(--red); font-family: "Satisfy", "Brush Script MT", "Segoe Script", cursive; font-size: clamp(27px, 3vw, 36px); line-height: 1.2; }

.faq-section { min-height: 0 !important; padding-top: 118px; background: linear-gradient(145deg, #fffdf8 0%, #f7eddc 52%, #e8f0dc 100%); }
.faq-heading { display: grid; grid-template-columns: 1fr .8fr; gap: 60px; align-items: end; }
.faq-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -37px; }
.faq-heading h1 { margin: 0; color: var(--green-dark); font-family: var(--serif); font-size: clamp(44px, 5vw, 68px); font-weight: 500; line-height: 1.06; letter-spacing: -.03em; }
.faq-heading > p:last-child { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.72; }
.faq-grid { margin-top: 54px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.faq-item { overflow: hidden; border: 1px solid rgba(36,68,41,.10); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 14px 32px rgba(61,70,48,.07); }
.faq-item summary { position: relative; padding: 24px 66px 24px 25px; cursor: pointer; list-style: none; color: var(--green-dark); font-size: 17px; font-weight: 800; line-height: 1.35; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { position: absolute; top: 18px; right: 19px; display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--sage); color: var(--green-dark); font-size: 24px; font-weight: 500; transition: transform .2s ease, background .2s ease; }
.faq-item[open] summary span { background: var(--orange); transform: rotate(45deg); }
.faq-item div { padding: 0 25px 24px; }
.faq-item p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.faq-contact-card { margin-top: 34px; padding: 42px; display: grid; grid-template-columns: 1.3fr auto; gap: 36px; align-items: center; border-radius: 32px; background: var(--green-dark); color: #fff; }
.faq-contact-card h2 { margin: 10px 0 12px; max-width: 720px; font-family: var(--serif); font-size: clamp(29px, 3vw, 40px); font-weight: 500; line-height: 1.13; }
.faq-contact-card p:not(.research-option-label) { margin: 0; max-width: 720px; color: rgba(255,255,255,.78); line-height: 1.7; }
.faq-contact-card .research-option-label { color: #dce8c7; }
.faq-contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.faq-contact-actions .button { border-color: #fff; background: #fff; color: var(--green-dark); box-shadow: none; white-space: nowrap; }
.faq-contact-actions .text-link { color: #fff; }

@media (max-width: 1080px) {
  .research-page .split-grid,
  .guidance-page .guidance-grid { grid-template-columns: 1fr; gap: 46px; }
  .research-page .research-visual { min-height: 0; order: 2; }
  .advice-page .advice-panel { grid-template-columns: 1fr; }
  .research-options-grid { grid-template-columns: repeat(2, 1fr); }
  .research-choice-panel { grid-template-columns: 1fr; }
  .research-choice-panel .button { justify-self: start; }
  .research-comparison { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .content-page main > .section:first-child { min-height: 0; }
  .research-options-grid { grid-template-columns: 1fr; }
  .research-comparison-options,
  .faq-heading,
  .faq-grid,
  .faq-contact-card { grid-template-columns: 1fr; }
  .faq-heading { gap: 24px; }
  .faq-heading .eyebrow { grid-column: auto; margin-bottom: 0; }
  .families-hero-image,
  .families-hero-image img { min-height: 310px; }
}

@media (max-width: 560px) {
  .hero-brand-title { font-size: 54px; }
  .hero-brand-title .hero-brand-practice { font-size: 13px; }
  .hero-service-line { font-size: 18px; }
  .hero-promise { font-size: 31px; }
  .research-options-section { padding-top: 84px; }
  .research-option { min-height: 0; padding: 27px 24px; border-radius: 26px; }
  .research-choice-panel { padding: 31px 24px; }
  .research-comparison { padding: 29px 23px; }
  .research-comparison-options { grid-template-columns: 1fr; }
  .faq-section { padding-top: 84px; }
  .faq-contact-card { padding: 31px 24px; }
}
