/* ── Variables ── */
:root {
  --ink:        #1a1a18;
  --cream:      #f5f0e8;
  --sage:       #7a9e87;
  --sage-dark:  #4d7a5e;
  --warm:       #c9a96e;
  --light-sage: #e8f0eb;
  --muted:      #6b6b62;
  --border:     #ddd8cc;
  --t:          0.25s ease;
}

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top: var(--nav-h, 105px); }
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--cream);
  color: var(--ink);
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--sage); color:#fff; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }

/* ── Header ── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  display: flex; align-items:center; justify-content:space-between;
  box-sizing: border-box;
  padding: 2rem 4rem;
  background: rgba(245,240,232,0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow var(--t);
}
nav.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.07); }

.nav-logo {
  text-decoration: none;
  display: flex;
  align-items: center;
}
.nav-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.nav-logo-name-row {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
}
.nav-logo-main {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--ink);
}
.nav-logo-italic,
span.nav-logo-italic {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  font-style: italic;
  font-weight: 300;
  letter-spacing: 0.06em;
  color: var(--sage-dark, #4d7a5e) !important;
  margin-left: 0.3em;
}
.nav-logo-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.5rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sage);
  margin-top: 2px;
}
.nav-logo em { color: var(--sage-dark); font-style: italic; }

.nav-links { 
  display:flex; gap:2.5rem; list-style:none; align-items:center;
  margin: 0; padding: 0;
}
.nav-links a {
  font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase;
  font-weight:400; color:var(--muted); transition: color var(--t);
}
.nav-links a:hover { color: var(--sage-dark); }

.nav-cta {
  background: var(--sage-dark) !important; color:#fff !important;
  padding: 0.6rem 1.4rem !important; border-radius:2px;
  transition: background var(--t), transform var(--t) !important;
}
.nav-cta:hover { background: var(--sage) !important; transform:translateY(-1px); }

/* Hamburger (mobile) */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.hamburger span { width:22px; height:2px; background:var(--ink); display:block; transition:var(--t); transform-origin: center; }
/* Open state — X animation */
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Font size toggle ── */
.font-size-toggle {
  background: none; border: none; cursor: pointer;
  padding: 0.3rem 0.5rem; border-radius: 3px;
  color: var(--muted); font-size: 0.78rem; font-weight: 500;
  letter-spacing: 0.05em; transition: color var(--t), background var(--t);
  display: flex; align-items: center; gap: 0.25rem; white-space: nowrap;
}
.font-size-toggle:hover { color: var(--sage-dark); }
.font-size-toggle .fst-small { font-size: 0.7rem; opacity: 0.6; }
.font-size-toggle .fst-large { font-size: 0.95rem; }

/* Large text mode */
body.text-large {
  font-size: 1.1rem;
}
body.text-large p,
body.text-large li,
body.text-large .about-text p,
body.text-large .contact-info p,
body.text-large .step-item p,
body.text-large .service-card p,
body.text-large .approach-card p,
body.text-large .creds-text p,
body.text-large .faq-answer,
body.text-large .pricing-card p { font-size: 1.05rem; line-height: 1.95; }
body.text-large .hero-desc { font-size: 1.15rem; }
body.text-large .nav-links a,
body.text-large .nav-dropdown-toggle,
body.text-large .nav-cta,
body.text-large .lang-btn,
body.text-large .fst-small,
body.text-large .fst-large { font-size: calc(var(--nav-fs, 0.82rem) * 1.2) !important; }
body.text-large .section-label { font-size: 0.82rem; }
body.text-large .btn { font-size: 0.92rem; }
.section-label {
  display:inline-block; font-size:0.75rem; letter-spacing:0.15em;
  text-transform:uppercase; font-weight:500; color:var(--sage-dark);
  padding-bottom:0.4rem; border-bottom:1px solid var(--sage);
  margin-bottom:0.75rem;
}
.section-label.light { color:rgba(245,240,232,0.5); border-color:rgba(245,240,232,0.2); }
.container { max-width:1200px; margin:0 auto; }

/* ── Buttons ── */
.btn {
  display:inline-block; padding:0.9rem 2rem; border-radius:2px;
  font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;
  font-weight:500; transition: all var(--t); cursor:pointer;
}
.btn-primary { background:var(--sage-dark); color:#fff; border:none; }
.btn-primary:hover { background:var(--ink); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--sage-dark); border:1px solid var(--sage-dark); }
.btn-outline:hover { background:var(--sage-dark); color:#fff; transform:translateY(-1px); }
.btn-white { background:#fff; color:var(--sage-dark); border:none; }
.btn-white:hover { background:var(--cream); transform:translateY(-1px); }
.btns { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }

/* ── Hero ── */
.hero {
  padding-top: 8rem;
  padding-bottom: 5rem;
  padding-left: 4rem; padding-right: 4rem;
  text-align:center;
  width: 100%;
  box-sizing: border-box;
}
.hero > * {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.hero h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight:300; line-height:1.1; margin-bottom:1.5rem;
}
.hero h1 em { color:var(--sage-dark); display:block; }
.hero-desc { font-size:1.05rem; line-height:1.75; color:var(--muted); max-width:620px; margin:0 auto 2.5rem; }
.hero-stats {
  display:flex; gap:2.5rem; justify-content:center; flex-wrap:wrap;
  margin-top:3.5rem; padding-top:2.5rem; border-top:1px solid var(--border);
}
.stat-num { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:300; display:block; line-height:1; }
.stat-label { font-size:0.72rem; color:var(--muted); margin-top:0.3rem; letter-spacing:0.05em; text-transform:uppercase; }

/* ── Approaches ── */
.approaches { background:var(--light-sage); padding:5rem 4rem; }
@media (max-width: 900px) { .approaches { padding: 3rem 1.5rem; } }
@media (max-width: 480px) { .approaches { padding: 2.5rem 1rem; } }
.approaches-header { margin-bottom: 2rem; }
.approaches-header .section-label { margin-bottom: 0.75rem; }
.approaches-header h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); color:var(--ink); margin-top:0.5rem; }
.grid-3 { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.approach-card {
  padding:2rem; background:#fff; border-left:3px solid var(--sage); border-radius:4px;
  transition: border-color var(--t), transform var(--t);
}
.approach-card:hover { border-color:var(--sage-dark); transform:translateY(-2px); }
.approach-card h4 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400; color:var(--sage-dark); margin-bottom:0.75rem; }
.approach-card p { font-size:0.88rem; line-height:1.7; color:var(--muted); }

/* ── Services ── */
.services { background:var(--light-sage); padding:5rem 4rem; }
.services-header { margin-bottom:3rem; }
.services-header h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; }
.grid-4 { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.5rem; }
.service-card {
  background:#fff; padding:2.5rem 2rem; border-radius:4px;
  border:1px solid rgba(0,0,0,0.07);
  transition: transform var(--t), box-shadow var(--t);
}
.service-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,0.1); border-color:transparent; }
.service-card .icon { font-size:2rem; margin-bottom:1rem; }
.service-card h4 { font-family:'Cormorant Garamond',serif; font-size:clamp(1rem,2.5vw,1.35rem); font-weight:400; margin-bottom:0.75rem; word-break:break-word; hyphens:auto; }
.service-card p { font-size:0.88rem; line-height:1.7; color:var(--muted); }

/* ── How it works ── */
.how { background:var(--cream); padding:5rem 4rem; }
.how-header { margin-bottom:2rem; }
.prices-prose {
  max-width: 680px;
  font-size: 1rem;
  line-height: 1.9;
  color: var(--muted);
}
.how-header h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; }
.steps { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:0; }
.step-item { padding:2rem 2rem 2rem 0; border-bottom:1px solid var(--border); }
.step-num { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:300; color:var(--sage); line-height:1; margin-bottom:1rem; display:block; }
.step-item h4 { font-weight:500; font-size:1rem; margin-bottom:0.6rem; }
.step-item p { font-size:0.88rem; line-height:1.7; color:var(--muted); }
.how-meta { margin-top:2.5rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.how-meta p { font-size:0.85rem; color:var(--muted); font-weight:500; }

/* ── Credentials ── */
.credentials { background:#f0ebe0; padding:5rem 4rem; }
.creds-inner { display:flex; flex-wrap:wrap; gap:4rem; align-items:flex-start; }
.creds-text { flex:1 1 380px; }
.creds-text .section-label { margin-bottom:0.75rem; }
.creds-text h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:1.5rem; }
.creds-text h2 em { color:var(--sage-dark); }
.creds-text p { font-size:0.95rem; line-height:1.85; color:var(--muted); margin-bottom:2rem; }
.cred-list { flex:1 1 320px; display:flex; flex-direction:column; gap:1rem; }
.cred-item {
  padding:1.2rem 1.5rem;
  border-left:3px solid var(--sage);
  background:rgba(255,255,255,0.7);
  transition: transform var(--t);
}
.cred-item.warm-accent { border-color:var(--warm); }
.cred-item.dim-accent { border-color:rgba(200,180,160,0.7); }
.cred-item:hover { transform:translateX(4px); }
.cred-item strong { font-weight:500; font-size:0.95rem; display:block; margin-bottom:0.2rem; }
.cred-item span { font-size:0.82rem; color:var(--muted); }
.cred-item a { color:var(--sage-dark); }

/* ── Contact ── */
.contact { background:var(--dark-bg, var(--ink)); padding:5rem 4rem; }
.contact-inner { display:flex; flex-wrap:wrap; gap:4rem; align-items:flex-start; }
.contact-info { flex:1 1 340px; }
.contact-info h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); color:#fff; margin-top:0.5rem; margin-bottom:1.5rem; }
.contact-info p { font-size:0.95rem; line-height:1.8; color:rgba(245,240,232,0.65); margin-bottom:2rem; }
.contact-details { display:flex; flex-direction:column; gap:0.8rem; }
.contact-details p { font-size:0.9rem; color:rgba(245,240,232,0.7); margin:0; }
.contact-form-block { flex:1 1 420px; background:#fff; padding:2.5rem; border-radius:4px; }
.contact-form-block h3 { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:400; margin-bottom:1.5rem; }

/* ── Form ── */
.pp-contact-form { display:flex; flex-direction:column; gap:1.2rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:0.4rem; }
.form-group label { font-size:0.78rem; font-weight:500; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted); }
.form-group input,
.form-group select,
.form-group textarea {
  border:1px solid var(--border); border-radius:2px;
  padding:0.75rem 1rem;
  font-family:'DM Sans',sans-serif; font-size:0.9rem; font-weight:300;
  color:var(--ink); background:#fff;
  transition: border-color var(--t), box-shadow var(--t);
  outline:none; width:100%; -webkit-appearance:none; appearance:none;
}
.form-group textarea { min-height:120px; resize:vertical; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(122,158,135,0.15);
}
.btn-submit {
  background:var(--sage-dark); color:#fff; border:none;
  padding:0.9rem 2rem; font-family:'DM Sans',sans-serif;
  font-size:0.85rem; font-weight:500; letter-spacing:0.08em;
  text-transform:uppercase; border-radius:2px; cursor:pointer;
  transition: all var(--t); align-self:flex-start;
}
.btn-submit:hover { background:var(--ink); transform:translateY(-1px); }
.form-note { font-size:0.78rem; color:var(--muted); }

/* ── Pricing Section ── */
.pricing { background:#f0ebe0; padding:5rem 4rem; }
.pricing h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:3rem; }
.pricing-card {
  background:#fff; padding:2.5rem 2rem; border-radius:4px;
  transition: transform var(--t), box-shadow var(--t);
}
.pricing-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,0.06); }
.pricing-card .icon { font-size:1.5rem; margin-bottom:0.75rem; }
.pricing-card h4 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400; margin-bottom:0.6rem; }
.pricing-card p { font-size:0.88rem; line-height:1.7; color:var(--muted); }

/* ── FAQ ── */
.faq { background:var(--cream); padding:5rem 4rem; }
.faq h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:3rem; }
details.faq-item {
  border-bottom:1px solid var(--border);
  padding:1.5rem 0;
}
details.faq-item summary {
  cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center;
  font-weight:500; font-size:1rem; transition:color var(--t);
  padding-right:1rem;
}
details.faq-item summary::-webkit-details-marker { display:none; }
details.faq-item summary::after {
  content:'+'; font-size:1.4rem; font-weight:300; color:var(--sage);
  transition:transform var(--t); flex-shrink:0; margin-left:1rem;
}
details.faq-item[open] summary::after { transform:rotate(45deg); }
details.faq-item summary:hover { color:var(--sage-dark); }
details.faq-item p { font-size:0.9rem; line-height:1.7; color:var(--muted); margin-top:1rem; }

/* ── CTA Banner ── */
.cta-banner { background:var(--sage-dark); padding:4rem; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:2rem; }
.cta-banner h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.8rem; color:#fff; }
.cta-banner p { font-size:0.92rem; color:rgba(255,255,255,0.75); margin-top:0.4rem; }

/* ── About / Page Hero ── */
.page-hero { background:var(--light-sage); padding: 7rem 4rem 4rem; }
.page-hero h1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.8rem,4.5vw,4rem); line-height:1.1; margin-top:0.75rem; margin-bottom:1.5rem; }
.page-hero h1 em { color:var(--sage-dark); font-size:clamp(1.6rem,2.5vw,2rem); font-style:italic; display:block; margin-top:0.35rem; }
.page-hero p { font-size:1.05rem; line-height:1.8; color:var(--muted); max-width:660px; }

.about-story { background:var(--cream); padding:5rem 4rem; }
.about-inner { display:flex; flex-wrap:wrap; gap:4rem; }
.about-text { flex:1 1 420px; }
.about-text h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:1.5rem; }
.about-text p { font-size:0.95rem; line-height:1.85; color:var(--muted); margin-bottom:1.2rem; }
.about-side { flex:1 1 280px; }
.about-quote {
  padding:2rem; border-left:3px solid var(--sage); background:var(--light-sage); margin-bottom:2rem;
}
.about-quote q { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; line-height:1.5; font-style:italic; quotes:none; }
.about-list { font-size:0.88rem; line-height:1.85; color:var(--muted); list-style:none; }
.about-list li::before { content:'— '; color:var(--sage); }

/* ── Footer ── */
footer { background:var(--dark-bg, var(--ink)); padding:5rem 4rem 2.5rem; }
.footer-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:3rem; margin-bottom:3rem; }
.footer-col h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.5rem; color:#fff; margin-bottom:1rem; }
.footer-col h4 { font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--sage); margin-bottom:1rem; }
.footer-col p { font-size:0.85rem; line-height:1.8; color:rgba(245,240,232,0.6); }
.footer-col a { color:rgba(245,240,232,0.6); transition:color var(--t); }
.footer-col a:hover { color:rgba(245,240,232,0.9); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.12); padding-top:2rem; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; }
.footer-bottom p { font-size:0.78rem; color:rgba(245,240,232,0.5); line-height:1.6; max-width:600px; }
.footer-links { display:flex; flex-wrap:wrap; gap:0; align-items:center; }
.footer-links a {
  font-size:0.9rem;
  color:rgba(245,240,232,0.75);
  transition:color var(--t);
  padding:0.25rem 0.85rem;
  border-left:1px solid rgba(255,255,255,0.15);
  line-height:1;
}
.footer-links a:first-child { border-left:none; padding-left:0; }
.footer-links a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }

/* ── Footer registrations ── */
.footer-reg-list { display: flex; flex-direction: column; gap: 0; }
.footer-reg-item {
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(245,240,232,0.6);
  margin: 0;
  padding: 0.2rem 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 0.4rem;
  align-items: baseline;
}
.footer-reg-label { white-space: nowrap; font-weight: 500; color: rgba(245,240,232,0.75); }
.footer-reg-desc { color: rgba(245,240,232,0.55); }
.footer-reg-desc .l-nl,
.footer-reg-desc .l-en { display: inline !important; }
body.lang-en .footer-reg-desc .l-nl { display: none !important; }
body.lang-nl .footer-reg-desc .l-en { display: none !important; }
.footer-reg-num { color: #7a9e8c; white-space: nowrap; grid-column: 2; font-size: 0.78rem; margin-top: 0.1rem; }
/* ── Scroll reveal ── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── About photo ── */
.about-photo { margin-bottom: 2rem; }
.about-photo img {
  width: var(--portrait-size, 72%);
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  border: 6px solid #fff;
  display: block;
}

/* ── Page-hero background image (about page) ── */
.page-hero.has-bg-image {
  position: relative;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  padding: 9rem 4rem 7rem;
}
.page-hero.has-bg-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--cream);
  opacity: var(--about-hero-overlay, 0.72);
  z-index: 0;
  pointer-events: none;
}
.page-hero.has-bg-image > * { position: relative; z-index: 2; }

/* ── About hero text styles (mirrors homepage hero-ts-* but scoped to about page) ── */
body.about-hero-ts-band .page-hero.has-bg-image::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(ellipse 85% 80% at 30% 50%,
    rgba(245,240,232,0.88) 25%, rgba(245,240,232,0.55) 55%, rgba(245,240,232,0) 100%);
}
body.about-hero-ts-band .page-hero.has-bg-image h1,
body.about-hero-ts-band .page-hero.has-bg-image p {
  text-shadow: 0 0 40px rgba(245,240,232,0.9), 0 0 80px rgba(245,240,232,0.6);
}
body.about-hero-ts-grad-top .page-hero.has-bg-image::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to bottom,
    rgba(245,240,232,0.97) 0%, rgba(245,240,232,0.80) 35%,
    rgba(245,240,232,0.30) 70%, rgba(245,240,232,0) 100%);
}
body.about-hero-ts-grad-bottom .page-hero.has-bg-image::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to top,
    rgba(245,240,232,0.97) 0%, rgba(245,240,232,0.80) 35%,
    rgba(245,240,232,0.30) 70%, rgba(245,240,232,0) 100%);
}
body.about-hero-ts-dark .page-hero.has-bg-image::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: rgba(20,28,14, calc(var(--about-hero-overlay, 0.72) + 0.15));
}
body.about-hero-ts-dark .page-hero.has-bg-image h1 { color: #f5f0e8 !important; }
body.about-hero-ts-dark .page-hero.has-bg-image h1 em { color: #a8c4a0 !important; }
body.about-hero-ts-dark .page-hero.has-bg-image p { color: rgba(245,240,232,0.85) !important; }
body.about-hero-ts-dark .page-hero.has-bg-image .section-label { color: #a8c4a0 !important; }
body.about-hero-ts-glow .page-hero.has-bg-image h1 {
  text-shadow: 0 0 30px rgba(245,240,232,1), 0 0 60px rgba(245,240,232,0.9),
               0 0 100px rgba(245,240,232,0.7), 0 0 160px rgba(245,240,232,0.4);
}
body.about-hero-ts-glow .page-hero.has-bg-image h1 em {
  text-shadow: 0 0 30px rgba(245,240,232,0.95), 0 0 60px rgba(245,240,232,0.7);
}
body.about-hero-ts-glow .page-hero.has-bg-image p {
  text-shadow: 0 0 20px rgba(245,240,232,0.8), 0 0 40px rgba(245,240,232,0.5);
}


.about-photos-duo { display:grid; grid-template-columns:1fr 1fr; gap:0.85rem; margin-bottom:2rem; align-items:start; }
.about-photo--portrait { grid-column:1; }
.about-photo--portrait img { height:340px; object-fit:cover; width:100%; border-radius:4px; box-shadow:0 8px 32px rgba(0,0,0,0.12); }
.about-photo--room { grid-column:2; margin-top:2.5rem; }
.about-photo--room img { height:240px; object-fit:cover; width:100%; border-radius:4px; box-shadow:0 6px 24px rgba(0,0,0,0.10); }
@media(max-width:600px) {
  .about-photos-duo { grid-template-columns:1fr; }
  .about-photo--room { grid-column:1; margin-top:0; }
  .about-photo--portrait img, .about-photo--room img { height:220px; }
}

/* ── CTA Banner ── */
.cta-banner { background:var(--sage-dark); padding:4rem; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:2rem; }
.cta-banner h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.8rem; color:#fff; }
.cta-banner p { font-size:0.92rem; color:rgba(255,255,255,0.75); margin-top:0.4rem; }

/* ── Page hero ── */
.page-hero { background:var(--light-sage); padding: 7rem 4rem 4rem; }
.page-hero h1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.8rem,4.5vw,4rem); line-height:1.1; margin-top:0.75rem; margin-bottom:1.5rem; }
.page-hero h1 em { color:var(--sage-dark); font-size:clamp(1.6rem,2.5vw,2rem); font-style:italic; display:block; margin-top:0.35rem; }
.page-hero p { font-size:1.05rem; line-height:1.8; color:var(--muted); max-width:660px; }

/* ── About story ── */
.about-story { background:var(--cream); padding:5rem 4rem; }
.about-inner { display:flex; flex-wrap:wrap; gap:4rem; }
.about-text { flex:1 1 420px; }
.about-text h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:1.5rem; }
.about-text p { font-size:0.95rem; line-height:1.85; color:var(--muted); margin-bottom:1.2rem; }
.about-side { flex:1 1 280px; }
.about-quote { padding:2rem; border-left:3px solid var(--sage); background:var(--light-sage); margin-bottom:2rem; }
.about-quote q { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; line-height:1.5; font-style:italic; quotes:none; }
.about-list { font-size:0.88rem; line-height:1.85; color:var(--muted); list-style:none; }
.about-list li::before { content:'— '; color:var(--sage); }

/* ── Pricing ── */
.pricing { background:#f0ebe0; padding:5rem 4rem; }
.pricing h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:3rem; }
.pricing-card { background:#fff; padding:2.5rem 2rem; border-radius:4px; transition:transform var(--t),box-shadow var(--t); }
.pricing-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,0.06); }
.pricing-card .icon { font-size:1.5rem; margin-bottom:0.75rem; }
.pricing-card h4 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400; margin-bottom:0.6rem; }
.pricing-card p { font-size:0.88rem; line-height:1.7; color:var(--muted); }

/* ── FAQ ── */
.faq { background:var(--cream); padding:5rem 4rem; }
.faq h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3vw,3rem); margin-top:0.5rem; margin-bottom:3rem; }
details.faq-item { border-bottom:1px solid var(--border); padding:1.5rem 0; }
details.faq-item summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; font-weight:500; font-size:1rem; transition:color var(--t); padding-right:1rem; }
details.faq-item summary::-webkit-details-marker { display:none; }
details.faq-item summary::after { content:'+'; font-size:1.4rem; font-weight:300; color:var(--sage); transition:transform var(--t); flex-shrink:0; margin-left:1rem; }
details.faq-item[open] summary::after { transform:rotate(45deg); }
details.faq-item summary:hover { color:var(--sage-dark); }
details.faq-item p { font-size:0.9rem; line-height:1.7; color:var(--muted); margin-top:1rem; }

@media(max-width:900px) {
  .page-hero,.about-story,.pricing,.faq,.cta-banner { padding-left:1.5rem; padding-right:1.5rem; }
  .about-inner { gap:2rem; }
}

/* ══════════════════════════════════════════════════════
   MOBILE NAV — completely independent from desktop nav
   ══════════════════════════════════════════════════════ */

/* Mobile elements: hidden on desktop, shown only inside @media (max-width:900px) */
.mobile-nav-bar  { display: none; }
.mobile-overlay  { display: none; }
.mobile-drawer   { display: none; }

.mobile-drawer-close {
  align-self: flex-end;
  background: none; border: none;
  font-size: 1.4rem; cursor: pointer;
  color: var(--muted); padding: 0.25rem 0.5rem;
  margin-bottom: 1.5rem;
  line-height: 1;
}
.mobile-drawer-close:hover { color: var(--ink); }

.mobile-nav-links {
  list-style: none; margin: 0; padding: 0;
  flex: 1;
}
.mobile-nav-links li {
  border-bottom: 1px solid var(--border);
}
.mobile-nav-links li:last-child { border-bottom: none; }
.mobile-nav-links a {
  display: block;
  padding: 1rem 0;
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  transition: color var(--t);
}
.mobile-nav-links a:hover { color: var(--sage-dark); }
.mobile-cta {
  display: inline-block !important;
  margin-top: 0.5rem;
  background: var(--sage-dark) !important;
  color: #fff !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: 2px;
}

.mobile-drawer-controls {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding-top: 1.5rem;
  margin-top: auto;
  border-top: 1px solid var(--border);
}

/* ══════════════════════════════════════════════════════
   BILINGUAL LANGUAGE SYSTEM
   ══════════════════════════════════════════════════════ */

/* Hide the non-active language. Default = NL */
.l-en { display: none; }
.l-nl { display: inline; }

body.lang-en .l-nl { display: none; }
body.lang-en .l-en { display: inline; }
body.lang-nl .l-nl { display: inline; }
body.lang-nl .l-en { display: none; }

/* Logo images need inline-block not inline */
img.l-nl { display: inline-block; }
img.l-en { display: none; }
body.lang-en img.l-nl { display: none; }
body.lang-en img.l-en { display: inline-block; }
body.lang-nl img.l-nl { display: inline-block; }
body.lang-nl img.l-en { display: none; }

/* Block-level spans (e.g. inside p tags) */
p .l-nl, p .l-en,
h1 .l-nl, h1 .l-en,
h2 .l-nl, h2 .l-en,
h3 .l-nl, h3 .l-en,
h4 .l-nl, h4 .l-en,
label .l-nl, label .l-en,
.section-label .l-nl, .section-label .l-en,
.stat-label .l-nl, .stat-label .l-en,
.form-note .l-nl, .form-note .l-en {
  display: inline;
}
body.lang-en p .l-nl,
body.lang-en h1 .l-nl,
body.lang-en h2 .l-nl,
body.lang-en h3 .l-nl,
body.lang-en h4 .l-nl,
body.lang-en label .l-nl,
body.lang-en .section-label .l-nl,
body.lang-en .stat-label .l-nl,
body.lang-en .form-note .l-nl { display: none; }

/* Nav logo text language switching — needs explicit rules to override .nav-logo-* specificity */
body.lang-en .nav-logo-main.l-nl,
body.lang-en .nav-logo-italic.l-nl,
body.lang-en .nav-logo-sub.l-nl { display: none; }
body.lang-en .nav-logo-main.l-en,
body.lang-en .nav-logo-italic.l-en,
body.lang-en .nav-logo-sub.l-en { display: inline; }
body.lang-nl .nav-logo-main.l-en,
body.lang-nl .nav-logo-italic.l-en,
body.lang-nl .nav-logo-sub.l-en { display: none; }
body.lang-nl .nav-logo-main.l-nl,
body.lang-nl .nav-logo-italic.l-nl,
body.lang-nl .nav-logo-sub.l-nl { display: inline; }

/* For block containers that need to be block not inline */
.hero-desc .l-nl, .hero-desc .l-en,
.about-text p .l-nl, .about-text p .l-en { display: block; }
body.lang-en .hero-desc .l-nl,
body.lang-en .about-text p .l-nl { display: none; }
body.lang-nl .hero-desc .l-en,
body.lang-nl .about-text p .l-en,
body.lang-nl .approaches-narrative-text .l-en { display: none; }
body.lang-en .approaches-narrative-text .l-nl { display: none; }

/* Prevent flash of wrong language before JS runs */
body:not(.lang-nl):not(.lang-en) .l-en { display: none; }

/* ── Language Toggle Button ── */
/* ── Language switcher pill ── */
.lang-switcher {
  display: inline-flex;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.15);
  flex-shrink: 0;
}
.lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.04em;
  transition: all 0.18s ease;
  line-height: 1;
}
.lang-btn:hover { color: rgba(255,255,255,0.85); background: rgba(255,255,255,0.07); }
.lang-flag { font-size: 14px; line-height: 1; }
.lang-label { font-size: 0.72rem; }
/* Active state driven by body class */
body:not(.lang-en) .lang-btn-nl,
body.lang-en .lang-btn-en {
  color: #fff;
  background: rgba(255,255,255,0.12);
}
body:not(.lang-en) .lang-btn-nl + .lang-btn-en,
body.lang-en .lang-btn-nl { border-right: 1px solid rgba(255,255,255,0.1); }

/* Mobile variant (dark bg context same) */
.lang-switcher-mobile { border-color: rgba(255,255,255,0.12); }

/* ── Language popup ── */
.pp-lang-popup {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.pp-lang-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,10,8,0.72);
}
.pp-lang-popup-box {
  position: relative;
  background: var(--cream, #f5f0e8);
  border-radius: 12px;
  padding: 2rem 2.5rem;
  max-width: 360px;
  width: 100%;
  text-align: center;
  animation: ppPopupIn 0.25s cubic-bezier(0.34,1.56,0.64,1);
}
@keyframes ppPopupIn {
  from { opacity: 0; transform: scale(0.92) translateY(12px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.pp-lang-popup-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sage, #4d7a5e);
  margin-bottom: 0.5rem;
}
.pp-lang-popup-title {
  font-family: var(--font-head, 'Cormorant Garamond', Georgia, serif);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--ink, #1a1a18);
  line-height: 1.3;
  margin: 0 0 0.5rem;
}
.pp-lang-popup-title em { color: var(--sage-mid, #7a9e87); font-style: italic; }
.pp-lang-popup-sub {
  font-size: 0.82rem;
  color: var(--muted, #7a7568);
  line-height: 1.6;
  margin: 0 0 1.5rem;
}
.pp-lang-popup-btns {
  display: flex;
  gap: 10px;
}
.pp-lang-popup-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: 1rem 0.5rem;
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.18s ease;
  border: 2px solid transparent;
}
.pp-lang-popup-btn--dark {
  background: var(--ink, #1a1a18);
  color: var(--cream, #f5f0e8);
  border-color: var(--ink, #1a1a18);
}
.pp-lang-popup-btn--dark:hover { background: #2d2d2a; }
.pp-lang-popup-btn--light {
  background: #fff;
  color: var(--ink, #1a1a18);
  border-color: #ddd8ce;
}
.pp-lang-popup-btn--light:hover { border-color: var(--sage, #4d7a5e); }
.pp-popup-flag { font-size: 1.6rem; line-height: 1; }
.pp-lang-popup-note {
  font-size: 0.7rem;
  color: #b8b4aa;
  margin: 1rem 0 0;
}

/* ── About photo ── */
.about-photo { margin-bottom: 2rem; }
.about-photo img {
  width: var(--portrait-size, 72%);
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  border: 6px solid #fff;
  display: block;
}

/* ── CTA Banner ── */
.cta-banner { background: var(--sage-dark); padding: 4rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2rem; }
.cta-banner h3 { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: 1.8rem; color: #fff; }
.cta-banner p { font-size: 0.92rem; color: rgba(255,255,255,0.75); margin-top: 0.4rem; }

/* ── Page hero ── */
.page-hero { background: var(--light-sage); padding: 7rem 4rem 4rem; }
.page-hero h1 { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2.8rem,4.5vw,4rem); line-height: 1.1; margin-top: 0.75rem; margin-bottom: 1.5rem; }
.page-hero h1 em { color: var(--sage-dark); font-size: clamp(1.6rem,2.5vw,2rem); font-style: italic; display: block; margin-top: 0.35rem; }
.page-hero p { font-size: 1.05rem; line-height: 1.8; color: var(--muted); max-width: 660px; }

/* ── About sections ── */
.about-story { background: var(--cream); padding: 5rem 4rem; }
.about-inner { display: flex; flex-wrap: wrap; gap: 4rem; }
.about-text { flex: 1 1 420px; }
.about-text h2 { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2rem,3vw,3rem); margin-top: 0.5rem; margin-bottom: 1.5rem; }
.about-text p { font-size: 0.95rem; line-height: 1.85; color: var(--muted); margin-bottom: 1.2rem; }
.about-side { flex: 1 1 280px; }
.about-quote { padding: 2rem; border-left: 3px solid var(--sage); background: var(--light-sage); margin-bottom: 2rem; border-radius: 0 4px 4px 0; }
.about-quote q { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 300; line-height: 1.5; font-style: italic; quotes: none; }
.about-list { font-size: 0.88rem; line-height: 1.85; color: var(--muted); list-style: none; }
.about-list li::before { content: '— '; color: var(--sage); }

/* ── Pricing ── */
.pricing { background: #f0ebe0; padding: 5rem 4rem; }
.pricing h2 { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2rem,3vw,3rem); margin-top: 0.5rem; margin-bottom: 3rem; }
.pricing-card { background: #fff; padding: 2.5rem 2rem; border-radius: 4px; transition: transform var(--t), box-shadow var(--t); }
.pricing-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.06); }
.pricing-card .icon { font-size: 1.5rem; margin-bottom: 0.75rem; }
.pricing-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-weight: 400; margin-bottom: 0.6rem; }
.pricing-card p { font-size: 0.88rem; line-height: 1.7; color: var(--muted); }

/* ── FAQ ── */
.faq { background: var(--cream); padding: 5rem 4rem; }
.faq h2 { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2rem,3vw,3rem); margin-top: 0.5rem; margin-bottom: 3rem; }
details.faq-item { border-bottom: 1px solid var(--border); padding: 1.5rem 0; }
details.faq-item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; font-weight: 500; font-size: 1rem; transition: color var(--t); padding-right: 1rem; }
details.faq-item summary::-webkit-details-marker { display: none; }
details.faq-item summary::after { content: '+'; font-size: 1.4rem; font-weight: 300; color: var(--sage); transition: transform var(--t); flex-shrink: 0; margin-left: 1rem; }
details.faq-item[open] summary::after { transform: rotate(45deg); }
details.faq-item summary:hover { color: var(--sage-dark); }
details.faq-item p { font-size: 0.9rem; line-height: 1.7; color: var(--muted); margin-top: 1rem; }

/* ── Scroll reveal ── */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── Mobile responsive ── */
/* ══════════════════════════════════════════════════════
   RESPONSIVE — TABLET & MOBILE
   ══════════════════════════════════════════════════════ */

/* ── Tablet (≤900px) ── */
@media (max-width: 900px) {

  /* Hide desktop nav, show mobile elements */
  .desktop-nav { display: none !important; }

  .mobile-nav-bar {
    display: flex;
    position: fixed; top: 0; left: 0; right: 0;
    z-index: 1000;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.5rem;
    background: rgba(245,240,232,0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    box-shadow: none;
    transition: box-shadow var(--t);
  }
  .mobile-nav-bar.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.07); }
  .hamburger { display: flex; }

  .mobile-overlay {
    display: none;
    position: fixed; inset: 0; z-index: 9000;
    background: rgba(26,26,24,0.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .mobile-overlay.open { display: block; }

  .mobile-drawer {
    display: flex;
    position: fixed;
    top: 0; right: -100%; bottom: 0;
    width: min(320px, 85vw);
    z-index: 9001;
    background: var(--cream);
    padding: 1.5rem 2rem 2rem;
    box-shadow: -4px 0 32px rgba(0,0,0,0.12);
    transition: right 0.3s cubic-bezier(0.4,0,0.2,1);
    overflow-y: auto;
    flex-direction: column;
  }
  .mobile-drawer.open { right: 0; }

  /* Logo text — slightly smaller on mobile */
  .mobile-nav-bar .nav-logo-main,
  .mobile-nav-bar .nav-logo-italic { font-size: 1rem; }
  .mobile-nav-bar .nav-logo-sub { font-size: 0.44rem; letter-spacing: 0.14em; }

  /* Hero */
  .hero { padding: 6rem 1.5rem 3rem; }
  .hero h1 { font-size: clamp(2.4rem, 8vw, 3.5rem); }
  .hero-stats { gap: 1.5rem; flex-wrap: wrap; justify-content: center; }

  /* Sections */
  .section-content { padding: 3.5rem 1.5rem; }
  .page-hero { padding: 7rem 1.5rem 2.5rem; }
  .page-hero.has-bg-image { padding: 7rem 1.5rem 4rem; }
  .page-hero h1 { font-size: clamp(2rem, 6vw, 3rem); }
  .about-story { padding: 3.5rem 1.5rem; }
  .pricing { padding: 3.5rem 1.5rem; }
  .faq { padding: 3.5rem 1.5rem; }
  .cta-banner { padding: 2.5rem 1.5rem; flex-direction: column; text-align: center; }

  /* Grids — collapse to single column */
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .about-inner { flex-direction: column; gap: 2rem; }
  footer { padding: 3.5rem 1.5rem 2rem; }
  .container { padding-left: 1.5rem; padding-right: 1.5rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .footer-bottom { padding-top: 1.5rem; }
  .footer-links { flex-wrap: wrap; gap: 0.25rem 0; }
  .creds-inner { flex-direction: column; gap: 2rem; }

  /* Language system — block elements */
  .l-nl, .l-en { display: block; }
  body.lang-en .l-nl { display: none; }
  body.lang-en .l-en { display: block; }
  body.lang-nl .l-nl { display: block; }
  body.lang-nl .l-en { display: none; }

  /* Inline elements stay inline */
  .nav-links .l-nl, .nav-links .l-en,
  .mobile-nav-links .l-nl, .mobile-nav-links .l-en,
  .lang-btn,
  .section-label .l-nl, .section-label .l-en,
  h1 .l-nl, h1 .l-en,
  h2 .l-nl, h2 .l-en,
  h3 .l-nl, h3 .l-en,
  h4 .l-nl, h4 .l-en,
  strong .l-nl, strong .l-en,
  span .l-nl, span .l-en,
  a .l-nl, a .l-en { display: inline; }
  body.lang-en h1 .l-nl, body.lang-en h2 .l-nl, body.lang-en h3 .l-nl,
  body.lang-en h4 .l-nl, body.lang-en strong .l-nl,
  body.lang-en .section-label .l-nl,
  body.lang-en a .l-nl { display: none; }
}

/* ── Mobile (≤480px) ── */
@media (max-width: 480px) {
  .mobile-nav-bar { padding: 0.75rem 1rem; }

  .mobile-nav-bar .nav-logo-main,
  .mobile-nav-bar .nav-logo-italic { font-size: 0.95rem; }
  .mobile-nav-bar .nav-logo-sub { display: none; }

  .hero { padding: 5rem 1rem 2.5rem; }
  .hero h1 { font-size: clamp(2rem, 9vw, 2.8rem); }

  .page-hero { padding: 6rem 1rem 2rem; }
  .page-hero.has-bg-image { padding: 6rem 1rem 3rem; }
  .page-hero h1 { font-size: clamp(1.8rem, 8vw, 2.4rem); }

  .about-story, .pricing, .faq { padding: 2.5rem 1rem; }
  .cta-banner { padding: 2rem 1rem; }

  footer { padding: 2.5rem 1rem 1.5rem; }
  .container { padding-left: 1rem; padding-right: 1rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
  .footer-links { justify-content: center; }
  .footer-links a:first-child { border-left: 1px solid rgba(255,255,255,0.15); padding-left: 0.85rem; }
  .footer-col h3 { font-size: 1.25rem; }
  .footer-col h4 { margin-bottom: 0.75rem; }

  .approach-card, .service-card, .pricing-card { padding: 1.5rem 1.25rem; }

  .btns { flex-direction: column; align-items: stretch; text-align: center; }
  .btn { text-align: center; }

  .stats { gap: 1.5rem; flex-wrap: wrap; }
  .stat-num { font-size: 2rem; }
}

/* ── Legal pages (privacy / disclaimer) ── */
.pp-legal-content h2 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 1.4rem;
  margin: 2rem 0 0.75rem;
  color: var(--ink);
}
.pp-legal-content h3 {
  font-size: 1.05rem;
  font-weight: 500;
  margin: 1.5rem 0 0.5rem;
  color: var(--sage-dark);
}
.pp-legal-content p {
  font-size: 0.95rem;
  margin-bottom: 1rem;
  color: var(--muted);
}
/* Block-level l-nl/l-en for div containers */
div.l-nl, div.l-en { display: block; }
body.lang-en div.l-nl { display: none; }
body.lang-nl div.l-en { display: none; }
body.lang-en div.l-en { display: block; }

/* ══════════════════════════════════════════════════════
   STATS BAR
   ══════════════════════════════════════════════════════ */
.stats-bar {
  background: var(--cream);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 2.5rem 4rem;
  scroll-margin-top: var(--nav-h, 105px);
}
.stats-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  max-width: 700px;
  margin: 0 auto;
}
.stat-item {
  text-align: center;
  flex: 1;
}
.stat-divider {
  width: 1px;
  height: 3rem;
  background: var(--border);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════
   APPROACHES — NARRATIVE STYLE (B)
   ══════════════════════════════════════════════════════ */
.approaches-narrative {
  max-width: 720px;
  margin: 0 auto;
}
.approaches-narrative-text {
  font-size: 0.92rem;
  line-height: 1.8;
  color: var(--muted);
  margin-bottom: 2rem;
}
.approaches-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.approach-tag {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sage-dark);
  border: 1px solid rgba(77,122,94,0.35);
  padding: 0.35rem 0.9rem;
  border-radius: 2px;
  transition: background 0.15s, color 0.15s;
}
a.approach-tag-link {
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
a.approach-tag-link:hover {
  background: var(--sage);
  color: #fff;
  border-color: var(--sage);
}

/* ══════════════════════════════════════════════════════
   METHODES & BENADERINGEN PAGINA
   ══════════════════════════════════════════════════════ */
.methode-item {
  padding: 2.5rem 0;
  border-bottom: 1px solid var(--border);
}
.methode-item:last-child { border-bottom: none; }
.methode-title {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 300;
  color: var(--ink);
  margin-bottom: 0.75rem;
}
.methode-desc {
  font-size: 1rem;
  line-height: 1.85;
  color: var(--muted);
  max-width: 640px;
}

/* ══════════════════════════════════════════════════════
   APPROACHES — EDITORIAL STYLE (C)
   ══════════════════════════════════════════════════════ */
.approaches-editorial {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.approach-row {
  display: grid;
  grid-template-columns: 220px 1px 1fr;
  gap: 2rem;
  align-items: start;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border);
}
.approach-row:last-child { border-bottom: none; }
.approach-row-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 300;
  color: var(--sage-dark);
  padding-top: 0.1rem;
}
.approach-row-divider {
  width: 1px;
  background: var(--border);
  align-self: stretch;
}
.approach-row-desc {
  font-size: 0.92rem;
  line-height: 1.8;
  color: var(--muted);
}

/* ══════════════════════════════════════════════════════
   CREDENTIALS — SIMPLE LIST STYLE
   ══════════════════════════════════════════════════════ */
.cred-simple-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.cred-simple-item {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.cred-simple-title {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.4;
}
.cred-simple-sub {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.3;
}
.cred-simple-year {
  font-size: 0.75rem;
  color: var(--muted);
  opacity: 0.7;
  font-variant-numeric: tabular-nums;
}

/* ══════════════════════════════════════════════════════
   HERO — TRUST SIGNALS
   ══════════════════════════════════════════════════════ */
.hero-trust-signals {
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 0.85rem;
  letter-spacing: 0.02em;
  opacity: 0.85;
}

/* ══════════════════════════════════════════════════════
   CLIËNTREVIEWS SECTIE
   ══════════════════════════════════════════════════════ */
.reviews-section {
  background: #faf7f2;
  padding: 5rem 0;
}
.reviews-section .reviews-label {
  text-align: center;
  margin-bottom: 2.5rem;
}
.reviews-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.reviews-grid-1 { grid-template-columns: minmax(0, 640px); justify-content: center; }
.reviews-grid-2 { grid-template-columns: repeat(2, 1fr); }
.reviews-grid-3 { grid-template-columns: repeat(3, 1fr); }
.review-card {
  background: transparent;
  border-left: 2px solid var(--sage);
  padding: 0.25rem 0 0.25rem 1.25rem;
  position: relative;
}
.review-quote-mark {
  display: none;
}
.review-text {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--ink);
  font-style: italic;
  margin-bottom: 0.6rem;
}
.review-label {
  font-size: 0.75rem;
  color: var(--muted);
  display: block;
}
.review-label::before {
  content: '\2014\00a0';
}
@media (max-width: 768px) {
  .reviews-grid-2,
  .reviews-grid-3 { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════
   CREDENTIALS — COMPACT CV STYLE
   ══════════════════════════════════════════════════════ */
.cv-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.cv-list-item {
  display: flex;
  gap: 1.25rem;
  align-items: baseline;
  padding: 0.32rem 0;
  font-size: 0.88rem;
  color: var(--ink);
}
.cv-list-year {
  font-size: 0.75rem;
  color: var(--muted);
  min-width: 76px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  opacity: 0.75;
}
.cv-list-title { flex: 1; line-height: 1.45; }
.cv-list-inst {
  color: var(--muted);
  font-size: 0.82rem;
}
.cv-list-subcat {
  margin-top: 1rem;
}
.cv-list-subcat-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sage-dark);
  opacity: 0.75;
  margin-bottom: 0.35rem;
}

/* Legacy timeline/list styles (kept for backward compat) */
.cred-category-label {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sage-dark);
  margin: 2rem 0 0.75rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--sage);
  opacity: 0.85;
}
.cred-category-label:first-child { margin-top: 0; }

/* ══════════════════════════════════════════════════════
   CREDENTIALS — TIMELINE STYLE
   ══════════════════════════════════════════════════════ */
.cred-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 0;
}
.cred-timeline::before {
  content: '';
  position: absolute;
  left: 86px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--border);
}
.cred-timeline-item {
  display: grid;
  grid-template-columns: 80px 24px 1fr;
  gap: 0 1rem;
  align-items: start;
  padding: 1rem 0;
}
.cred-timeline-year {
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: var(--muted);
  text-align: right;
  padding-top: 0.2rem;
  line-height: 1.4;
  white-space: nowrap;
}
.cred-timeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--sage);
  border: 2px solid var(--cream);
  box-shadow: 0 0 0 1px var(--sage);
  margin-top: 0.2rem;
  justify-self: center;
  flex-shrink: 0;
}
.cred-timeline-content {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.cred-timeline-content strong {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ink);
}
.cred-timeline-content span {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.5;
}

/* ══════════════════════════════════════════════════════
   PRICING — PRICE DISPLAY
   ══════════════════════════════════════════════════════ */
.pricing-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--sage-dark);
  margin: 0.5rem 0 0.75rem;
  letter-spacing: -0.01em;
}

/* ── Mobile responsive for new elements ── */
@media (max-width: 900px) {
  .stats-bar { padding: 2rem 1.5rem; }
  .approach-row { grid-template-columns: 1fr; gap: 0.5rem; }
  .approach-row-divider { display: none; }
  .cred-timeline::before { left: 70px; }
  .cred-timeline-item { grid-template-columns: 64px 20px 1fr; gap: 0 0.75rem; }
}
@media (max-width: 480px) {
  .stats-bar-inner { flex-direction: column; gap: 1.5rem; }
  .stat-divider { width: 3rem; height: 1px; }
  .cred-timeline::before { display: none; }
  .cred-timeline-item { grid-template-columns: 50px 16px 1fr; }
}

/* ══════════════════════════════════════════════════════
   PRICING — LIST STYLE (B)
   ══════════════════════════════════════════════════════ */
.pricing-list {
  display: flex;
  flex-direction: column;
  margin-top: 2.5rem;
}
.pricing-list-item {
  display: grid;
  grid-template-columns: 1fr 2fr;
  column-gap: 2.5rem;
  align-items: start;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--border);
}
.pricing-list-item:first-child { border-top: 1px solid var(--border); }
.pricing-list-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 300;
  color: var(--ink);
  line-height: 1.35;
}
.pricing-list-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  font-weight: 400;
  color: var(--sage-dark);
  margin-top: 0.3rem;
  display: block;
}
.pricing-list-desc {
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--muted);
}

/* ══════════════════════════════════════════════════════
   PRICING — NARRATIVE STYLE (C)
   ══════════════════════════════════════════════════════ */
.pricing-narrative {
  max-width: 680px;
}
.pricing-narrative-text {
  font-size: 1.02rem;
  line-height: 1.9;
  color: var(--muted);
  margin-top: 1.5rem;
}

/* Lang hide for pricing narrative */
body.lang-nl .pricing-narrative-text .l-en { display: none; }
body.lang-en .pricing-narrative-text .l-nl { display: none; }

@media (max-width: 600px) {
  .pricing-list-item {
    grid-template-columns: 1fr;
    row-gap: 0.5rem;
  }
  .pricing-list-desc {
    margin-top: 0.25rem;
  }
}

/* ══════════════════════════════════════════════════════
   NAV DROPDOWN (Tools menu)
   ══════════════════════════════════════════════════════ */
.nav-dropdown { position: relative; }

.nav-dropdown-toggle {
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0;
  transition: color var(--t);
}
.nav-dropdown-toggle:hover { color: var(--sage-dark); }
.nav-dropdown-arrow {
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.nav-dropdown.open .nav-dropdown-arrow { transform: rotate(180deg); }

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 0.75rem);
  left: 50%;
  transform: translateX(-50%);
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  min-width: 180px;
  list-style: none;
  margin: 0;
  padding: 0.4rem 0;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease;
  z-index: 200;
}
.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu li a {
  display: block;
  padding: 0.6rem 1.2rem;
  font-size: 0.85rem;
  color: var(--ink);
  text-decoration: none;
  transition: background var(--t), color var(--t);
  white-space: nowrap;
}
.nav-dropdown-menu li a:hover {
  background: var(--light-sage);
  color: var(--sage-dark);
}

/* ══════════════════════════════════════════════════════
   MOBILE NAV GROUP (Tools section in drawer)
   ══════════════════════════════════════════════════════ */
.mobile-nav-group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: 0.5rem;
}
.mobile-nav-group-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sage-dark);
  opacity: 0.7;
  padding: 0 0 0.1rem;
}
.mobile-nav-group a {
  font-size: 1rem;
  padding-left: 0.5rem;
}

/* ══════════════════════════════════════════════════════
   TOOL PAGE (Sedona embed page)
   ══════════════════════════════════════════════════════ */
.tool-page { display: flex; flex-direction: column; min-height: 100vh; }

.tool-page-header {
  background: var(--cream);
  padding: 3rem 0 2rem;
  border-bottom: 1px solid var(--border);
}
.tool-page-header h1 {
  font-family: var(--font-heading);
  font-weight: 300;
  font-size: clamp(2rem, 4vw, 3rem);
  margin: 0.5rem 0 1rem;
}
.tool-page-desc {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--muted);
  max-width: 560px;
}

.tool-embed {
  flex: 1;
  background: #f8f6f2;
  display: flex;
  flex-direction: column;
}
.tool-embed iframe {
  flex: 1;
  width: 100%;
  min-height: calc(100vh - 200px);
  border: none;
  display: block;
}

/* ══════════════════════════════════════════════════════
   TOOL FULLSCREEN (Sedona page)
   ══════════════════════════════════════════════════════ */
.tool-fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  /* Push below fixed nav — uses a CSS custom property set by JS if needed,
     otherwise a generous fallback. The iframe fills all remaining space. */
  padding-top: var(--nav-h, 105px);
  background: #fff;
  z-index: 1;
}
.tool-fullscreen iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
/* Hide footer on tool pages */
body:has(.tool-fullscreen) footer { display: none; }

/* ══════════════════════════════════════════════════════
   HERO — BACKGROUND IMAGE MODE
   ══════════════════════════════════════════════════════ */
body.home .hero.has-bg-image {
  position: relative;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
body.home .hero.has-bg-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--cream);
  opacity: var(--hero-overlay, 0.4);
  z-index: 0;
  pointer-events: none;
}
body.home .hero.has-bg-image > * {
  position: relative;
  z-index: 1;
}

/* ══════════════════════════════════════════════════════
   HERO — TEXT READABILITY STYLES (6 options)
   All activate when body has .hero-ts-* class
   ══════════════════════════════════════════════════════ */

/* Base: when any bg image is active */
body.home .hero.has-bg-image {
  position: relative;
}
body.home .hero.has-bg-image > * {
  position: relative;
  z-index: 2;
}

/* ── 1. Geen — only the overlay slider, no extra treatment ── */
/* (default, no extra rules needed) */

/* ── 2. Crème band — frosted panel behind text ── */
body.hero-ts-band .hero.has-bg-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 75% 80% at 50% 45%,
    rgba(245,240,232,0.88) 30%,
    rgba(245,240,232,0.60) 60%,
    rgba(245,240,232,0) 100%
  );
  z-index: 1;
  pointer-events: none;
}
body.hero-ts-band .hero.has-bg-image h1,
body.hero-ts-band .hero.has-bg-image p,
body.hero-ts-band .hero.has-bg-image .hero-desc {
  text-shadow: 0 0 40px rgba(245,240,232,0.9), 0 0 80px rgba(245,240,232,0.6);
}

/* ── 3. Verloop van boven — cream fades down from top ── */
body.hero-ts-grad-top .hero.has-bg-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(245,240,232,0.97) 0%,
    rgba(245,240,232,0.80) 35%,
    rgba(245,240,232,0.30) 70%,
    rgba(245,240,232,0) 100%
  );
  z-index: 1;
  pointer-events: none;
}

/* ── 4. Verloop van onder — cream fades up from bottom ── */
body.hero-ts-grad-bottom .hero.has-bg-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
    rgba(245,240,232,0.97) 0%,
    rgba(245,240,232,0.80) 35%,
    rgba(245,240,232,0.30) 70%,
    rgba(245,240,232,0) 100%
  );
  z-index: 1;
  pointer-events: none;
}

/* ── 5. Donkere tint — dark overlay, white text ── */
body.hero-ts-dark .hero.has-bg-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20, 28, 14, calc(var(--hero-overlay, 0.4) + 0.2));
  z-index: 1;
  pointer-events: none;
}
body.hero-ts-dark .hero.has-bg-image h1 { color: #f5f0e8 !important; }
body.hero-ts-dark .hero.has-bg-image h1 em { color: #a8c4a0 !important; }
body.hero-ts-dark .hero.has-bg-image p,
body.hero-ts-dark .hero.has-bg-image .hero-desc { color: rgba(245,240,232,0.88) !important; }
body.hero-ts-dark .hero.has-bg-image .section-label { color: #a8c4a0 !important; border-color: #a8c4a0 !important; }
body.hero-ts-dark .hero.has-bg-image .btn-white {
  background: transparent !important;
  border-color: rgba(245,240,232,0.7) !important;
  color: #f5f0e8 !important;
}
body.hero-ts-dark .hero.has-bg-image .btn-white:hover {
  background: rgba(245,240,232,0.15) !important;
}

/* ── 6. Tekst gloed — soft glow emanating from text ── */
body.hero-ts-glow .hero.has-bg-image h1 {
  text-shadow:
    0 0 30px rgba(245,240,232,1),
    0 0 60px rgba(245,240,232,0.9),
    0 0 100px rgba(245,240,232,0.7),
    0 0 160px rgba(245,240,232,0.4);
}
body.hero-ts-glow .hero.has-bg-image h1 em {
  text-shadow:
    0 0 30px rgba(245,240,232,0.95),
    0 0 60px rgba(245,240,232,0.7),
    0 0 100px rgba(245,240,232,0.5);
}
body.hero-ts-glow .hero.has-bg-image p,
body.hero-ts-glow .hero.has-bg-image .hero-desc {
  text-shadow:
    0 0 20px rgba(245,240,232,1),
    0 0 50px rgba(245,240,232,0.85),
    0 0 90px rgba(245,240,232,0.6);
}

/* For styles 2–4 and 6, keep original dark text */
body.hero-ts-band .hero.has-bg-image > *,
body.hero-ts-grad-top .hero.has-bg-image > *,
body.hero-ts-grad-bottom .hero.has-bg-image > *,
body.hero-ts-glow .hero.has-bg-image > * {
  position: relative;
  z-index: 2;
}
body.hero-ts-dark .hero.has-bg-image > * {
  position: relative;
  z-index: 2;
}

/* ══════════════════════════════════════════════════════
   FOOTER — BEROEPSVERENIGING LOGO'S
   ══════════════════════════════════════════════════════ */
.footer-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
  padding: 1.75rem 0;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 0;
}
.footer-logo-wrap {
  display: inline-flex;
  align-items: center;
  opacity: 1;
  transition: opacity 0.2s;
}
.footer-logo-wrap:hover {
  opacity: 1;
}
.footer-logo-img {
  height: 56px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
}
.footer-logo-invert {
  filter: brightness(0) invert(1);
}
@media (max-width: 600px) {
  .footer-logos { gap: 1.25rem; }
  .footer-logo-img { height: 44px; }
}

/* ── Hero FOUC fix: voorkom flikkering in Chrome ── */
body.home .hero[style*="background-image"] {
  opacity: 0;
  transition: opacity 0.25s ease;
}
body.home .hero.has-bg-image {
  opacity: 1;
}

/* ── About/landing hero FOUC fix ── */
.page-hero[style*="background-image"] {
  opacity: 0;
  transition: opacity 0.25s ease;
}
.page-hero.has-bg-image {
  opacity: 1;
}
