/* =========================================
   Revivancy — stylesheet
   Change the colours and fonts here, and the
   whole site follows.
   ========================================= */

:root {
  /* Colours: warm beige, taken from the beach photo
     warm horizon -> backgrounds, dark sand -> text,
     sunlit sand -> buttons */
  --bg: #f5e9dd;          /* warm beige: page background */
  --bg-alt: #ead9c8;      /* deeper sand: alternating sections */
  --ink: #2b2a28;         /* dark sand at the bottom of the photo: main text */
  --muted: #635c53;       /* warm grey-brown: secondary text */
  --accent: #6b5d4b;      /* sand in shadow: buttons and links */
  --accent-dark: #4f4538;
  --line: #d6ccbb;        /* light sand: thin lines */
  --sea: #5d6461;         /* sea grey from the photo: bottom band */

  /* Fonts */
  --font-heading: "Newsreader", Georgia, serif;
  --font-body: "Karla", system-ui, sans-serif;

  /* Spacing and width */
  --max: 1080px;
  --space: clamp(4rem, 9vw, 7.5rem);
}

/* ---------- Basics ---------- */
* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--bg-alt);   /* darker beige: one continuous background */
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.7;
}

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

a { color: var(--accent); }
a:hover { color: var(--accent-dark); }

h1, h2, h3 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2.6rem, 6vw, 4.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: 1.6rem; }

p + p { margin-top: 1.2em; }

/* Spacing helpers (instead of inline styles in the HTML) */
.text-block { margin-block: 1.5rem 2rem; }
.text-after-title { margin-top: 1.5rem; }

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

.narrow { max-width: 680px; }

.section { padding-block: var(--space); }
.section--alt { background: var(--bg-alt); }

/* Light panel that holds text, on top of the darker background */
.panel {
  background: var(--bg);
  border-radius: 4px;
  padding: clamp(2rem, 5vw, 4rem);
}

/* A narrow panel keeps the same comfortable line length for the text inside */
.narrow.panel { max-width: calc(680px + 2 * clamp(2rem, 5vw, 4rem)); }

/* Sections that follow each other share the gap instead of doubling it */
.section + .section:not(.cta) { padding-top: 0; }
.page-title + .section { padding-top: clamp(2rem, 5vw, 3rem); }

.eyebrow {
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1.2rem;
}

/* ---------- Header ---------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding-block: 1.2rem;
  background: var(--bg-alt);
  transition: background 0.3s, box-shadow 0.3s, padding 0.3s;
}

/* After scrolling: a bit smaller, with a thin line underneath */
.site-header.is-scrolled {
  padding-block: 0.8rem;
  box-shadow: 0 1px 0 var(--line);
}

/* Homepage: no bar at first, so the photo shows behind the menu.
   The background appears once you scroll (see assets/js/main.js). */
.site-header--overlay:not(.is-scrolled) {
  background: transparent;
  box-shadow: none;
}

/* A fixed header takes up no space, so push content down on the other pages */
body:not(.home) main {
  padding-top: 6.5rem;
}

/* Three columns: logo left, menu in the middle, empty right
   (the empty column keeps the menu exactly centred) */
.site-header .container {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem 2rem;
}

/* Header spans the full width, so the logo sits at the far left */
.container--wide {
  width: 100%;
  padding-inline: clamp(1.25rem, 4vw, 3rem);
}

.logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  justify-self: start;
  text-decoration: none;
  color: var(--ink);
}

.logo img {
  height: 40px;
  width: auto;
  display: block;
}

.nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 2rem;
  list-style: none;
}

.nav a {
  color: var(--ink);
  text-decoration: none;
  font-size: 0.95rem;
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
}

.nav a:hover,
.nav a[aria-current="page"] {
  border-bottom-color: var(--ink);
}

/* ---------- Buttons ---------- */
.button {
  display: inline-block;
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  padding: 0.95rem 1.8rem;
  border-radius: 999px;
  font-size: 1rem;
  transition: background 0.2s;
}

.button:hover { background: var(--accent-dark); color: #fff; }

.button--light {
  background: var(--bg);
  color: var(--ink);
}

.button--light:hover { background: #fff; color: var(--ink); }

/* ---------- Hero (homepage) ---------- */
.hero {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  padding-block: var(--space);
  color: #fff;
  /* The beach photo lives in assets/images/hero.webp.
     The gradient keeps the text readable. */
  background:
    linear-gradient(to top, rgba(20, 22, 25, 0.55), rgba(20, 22, 25, 0.05) 60%),
    url("../images/hero.webp?v=revivancy-20261015-2") center / cover no-repeat,
    var(--line);
}

.hero h1 { max-width: 14ch; }

.hero p {
  margin-block: 1.4rem 2.2rem;
  font-size: 1.2rem;
  max-width: 36ch;
}

/* ---------- Intro text ---------- */
.intro .lead {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-style: italic;
  line-height: 1.35;
  margin-bottom: 2.5rem;
}

.name-origin {
  margin-top: 3rem;
  padding-left: 1.5rem;
  border-left: 2px solid var(--accent);
}

/* ---------- Page title (subpages) ---------- */
.page-title {
  padding-block: clamp(3rem, 7vw, 5rem) 0;
}

.page-title p {
  margin-top: 1.2rem;
  color: var(--muted);
  max-width: 52ch;
}

/* ---------- Themes (coaching) ---------- */
.themes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 3rem 2rem;
}

.theme {
  border-top: 1px solid var(--line);
  padding-top: 1.4rem;
}

.theme .number {
  font-family: var(--font-heading);
  color: var(--accent);
  font-size: 1.1rem;
}

.theme h3 { margin-block: 0.4rem 0.8rem; }
.theme p { color: var(--muted); font-size: 1rem; }

/* ---------- Prices ---------- */
.prices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.price {
  background: var(--bg);
  padding: 2.5rem;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.price .amount {
  font-family: var(--font-heading);
  font-size: 2.8rem;
  line-height: 1;
}

.price p { color: var(--muted); flex-grow: 1; }
.price .button { align-self: flex-start; }

/* ---------- Testimonials ---------- */
.quotes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 3rem;
  margin-top: 3rem;
}

blockquote {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  line-height: 1.4;
}

blockquote footer {
  margin-top: 1rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--muted);
}

/* ---------- About ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}

.photo-placeholder {
  aspect-ratio: 4 / 5;
  background: var(--bg-alt);
  border-radius: 4px;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 0.95rem;
  object-fit: cover;
  width: 100%;
}

.timeline { list-style: none; margin-top: 2.5rem; }

.timeline li {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 1.5rem;
  padding-block: 1.5rem;
  border-top: 1px solid var(--line);
}

.timeline .years { color: var(--muted); font-size: 0.95rem; }
.timeline h3 { font-size: 1.3rem; margin-bottom: 0.3rem; }
.timeline p { color: var(--muted); font-size: 1rem; }

/* ---------- Contact ---------- */
.contact-list { list-style: none; margin-top: 2rem; }

.contact-list li {
  padding-block: 1.2rem;
  border-top: 1px solid var(--line);
}

.contact-list span {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
}

.contact-list a {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  text-decoration: none;
}

/* ---------- Call to action band ---------- */
.cta {
  background: #2F4E60;
  color: #FFFFFF;
  text-align: center;
}

.cta h2 { margin-bottom: 1rem; }
.cta p { margin-bottom: 2rem; color: var(--bg-alt); }

/* On the sea grey, the button is light so it stands out */
.cta .button { background: var(--bg); color: var(--ink); }
.cta .button:hover { background: #fff; color: var(--ink); }

/* ---------- Footer ---------- */
.site-footer {
  padding-block: 2.5rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.site-footer .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
}

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
  .split { grid-template-columns: 1fr; }
  .timeline li { grid-template-columns: 1fr; gap: 0.3rem; }
  .panel { padding: 1.75rem 1.4rem; }
  .hero { min-height: 85vh; min-height: 85svh; }
  /* On phones: logo and menu stacked and centred */
  .site-header .container {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: left;
    gap: 0.6rem;
  }
  .logo { justify-self: center; }
  .logo img { height: 48px; }
  .nav { justify-content: center; gap: 0.3rem 1.2rem; }
  body:not(.home) main { padding-top: 8.5rem; }
}

/* ---------- Accessibility ---------- */
a:focus-visible,
.button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}


/* =========================================
   Homepage hero — aangepast aan jouw screenshot.
   Alleen de homepage wordt hiermee gewijzigd.
   ========================================= */
@media (min-width: 761px) {
  .home .hero {
    align-items: center;
    padding: 0 0 0;
  }
  .home .hero > .container {
    width: 100%;
    max-width: none;
    padding: 0 clamp(24px, 3.85vw, 85px);
  }
  .home .hero h1 {
    font-size: 44px;
    font-weight: 500;
    line-height: 1.13;
    letter-spacing: -0.017em;
    max-width: none;
  }
 .home .hero h1 .hero-title-line {
  display: block;
  white-space: nowrap;
}

.home .hero h1 {
  width: max-content;
  max-width: 100%;
}

.home .hero h1 .hero-title-line:first-child {
  margin-left: 0;
  text-align: center;
}
}
  .home .hero p {
  margin-top: 45px;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
  .home .hero .button {
    font-family: var(--font-heading);
    font-size: 15px;
    background: #707e8c;
    border-radius: 4px 4px 0 0;
    padding: 10px 20px;
    color: #fff;
  }
  .home .hero .button:hover { background: #596775; }
@media (min-width: 761px) and (max-width: 1080px) {
  .home .hero h1 .hero-title-line { white-space: normal; }
  .home .hero p { margin-top: 40px; }
}
@media (max-width: 760px) {
  .home .hero { padding-bottom: 35px; padding-top: 190px; }
  .home .hero h1 { font-size: clamp(34px, 8.5vw, 49px); max-width: 100%; font-weight: 500; }
  .home .hero h1 .hero-title-line { display: block; }
  .home .hero p { text-transform: uppercase; font-size: 14px; margin: 35px 0 20px; max-width: 100%; }
  .home .hero .button { font-family: var(--font-heading); font-size: 16px; background: #707e8c; color: white; border-radius: 4px; padding: 12px 18px; }
}
@media (max-width: 760px) {
  .home .hero p {
    white-space: normal;
  }
}


/* =============================================
   REVIVANCY — Intro onder de strandfoto
   Rustiger typografie, kortere tekstregels en
   meer witruimte; bestaande kleuren blijven.
   ============================================= */
.home .intro .panel {
  width: min(880px, calc(100% - 40px));
  max-width: 880px;
  padding: clamp(32px, 5vw, 64px);
}

.home .intro .panel > p:not(.lead),
.home .intro .name-origin p {
  font-size: 17px;
  line-height: 1.85;
}

.home .intro .lead {
  font-size: clamp(26px, 2.5vw, 35px);
  line-height: 1.38;
  margin-bottom: 48px;
}

.home .intro .panel > p + p {
  margin-top: 30px;
}

.home .intro .name-origin {
  margin-top: 42px;
}

@media (max-width: 760px) {
  .home .intro .panel {
    width: calc(100% - 28px);
    padding: 30px 24px;
  }
  .home .intro .lead {
    font-size: clamp(25px, 6vw, 31px);
    margin-bottom: 32px;
  }
  .home .intro .panel > p:not(.lead),
  .home .intro .name-origin p {
    font-size: 16px;
    line-height: 1.75;
  }
  .home .intro .panel > p + p {
    margin-top: 24px;
  }
}

/* Openingszin: zelfde elegante font, zonder cursief */
.home .intro .lead { font-style: normal; }

/* Final corrections: keep latest beach, warm palette, and non-italic intro */
.home .hero {
  color: #3b332d;
}
.home .hero p {
  color: #3b332d;
}
.home .hero .button {
  color: #ffffff;
}
.home .intro .lead {
  font-style: normal;
}/* Revivancy dropdownmenu */
.nav-dropdown {
  position: relative;
  list-style: none;
}

.nav-submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  padding: 12px 0;
  margin: 0;
  background: #F5E9DD;
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  list-style: none;
  z-index: 100;
}

.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu {
  display: block;
}

.nav-submenu a {
  display: block;
  padding: 10px 18px;
  color: #2B2A28;
  text-decoration: none;
  white-space: nowrap;
}

.nav-submenu a:hover,
.nav-submenu a:focus-visible {
  background: #EAD9C8;
}

@media (max-width: 760px) {
  .nav-submenu {
    left: 50%;
    transform: translateX(-50%);
  }
}.nav-dropdown-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0 0 2px;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: inherit;
  cursor: pointer;
}

.nav-dropdown-toggle:hover,
.nav-dropdown-toggle:focus-visible {
  border-bottom: 1px solid var(--ink);
}
/* Kleinere teksten op alle pagina's behalve Home */

body:not(.home) .page-title h1 {
  font-size: clamp(34px, 3.5vw, 48px);
  line-height: 1.15;
}

body:not(.home) h2 {
  font-size: clamp(26px, 2.5vw, 36px);
}

body:not(.home) h3 {
  font-size: clamp(20px, 2vw, 24px);
}

body:not(.home) main p {
  font-size: 16px;
  line-height: 1.75;
}

body:not(.home) .page-title p {
  font-size: 17px;
}
.cta h2 {
  font-size: clamp(28px, 3vw, 34px);
  color: #EAD9C8;
}

.cta p {
  color: #EAD9C8;
}

/* =========================================
   Revivancy • complete design refresh • 16-10-2026
   Warm cream, airy editorial sections, mobile-first
   These rules intentionally override older styles.
   ========================================= */
:root { --rev-ocean: #2F4E60; --rev-taupe: #81766E; --rev-cream: #F5E9DD; }

/* Consistent layout and typography */
body:not(.home) .page-title { padding-top: clamp(2rem, 4.7vw, 3.6rem); padding-bottom: 0; }
body:not(.home) .page-title .container { width: min(1020px, calc(100% - 3rem)); }
body:not(.home) .page-title h1 { font-size: clamp(36px, 4.1vw, 54px); }
body:not(.home) .page-title .page-intro { max-width: 57ch; margin-top: 1.15rem; }
body:not(.home) .section { padding-block: clamp(2.3rem, 5vw, 4.5rem); }
body:not(.home) .section + .section:not(.cta) { padding-top: 0; }
body:not(.home) .page-title + .section { padding-top: clamp(2.3rem, 5vw, 4.5rem); }
body:not(.home) .section > .container.narrow { max-width: 940px; }
body:not(.home) .section > .container.narrow:not(.panel) { width: min(940px, calc(100% - 3rem)); }
body:not(.home) .section .panel { padding: clamp(1.9rem, 4vw, 3.3rem); border-radius: 6px; }
body:not(.home) .section .panel--compact { max-width: 780px; padding: clamp(1.8rem, 3vw, 2.8rem); }
body:not(.home) h2 { font-size: clamp(28px, 2.7vw, 38px); line-height: 1.18; }
body:not(.home) h3 { font-size: clamp(21px, 2vw, 26px); }
body:not(.home) main p { font-size: 16px; line-height: 1.75; }
body:not(.home) .page-title p { font-size: 17px; }
body:not(.home) .body-copy p { max-width: 68ch; }
body:not(.home) .section .text-after-title { margin-top: 1.35rem; }
body:not(.home) .section .text-block { margin-block: 1.45rem 0; }
body:not(.home) .eyebrow { font-size: 12px; letter-spacing: .2em; }

/* Cards for process, service themes and prices */
.steps--grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin-top: 1.8rem; }
.steps--grid .step { background: var(--rev-cream); border-radius: 6px; padding: clamp(22px, 3vw, 34px); min-width: 0; }
.steps--grid .step h3 { margin-bottom: 1rem; line-height: 1.22; }
.steps--grid .step p { color: var(--muted); }
.section--topics .content-width { width: min(940px, calc(100% - 3rem)); }
.section--topics h2 { margin-bottom: 1.65rem; }
.topic-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.topic { padding: 1.5rem 1.15rem 1.35rem; border-top: 1px solid #b9a99c; }
.topic-mark { font: 500 14px var(--font-heading); color: var(--rev-taupe); }
.topic h3 { margin: .7rem 0 .65rem; }
.topic p { color: var(--muted); }
.price-list--cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.price-list--cards .price-line { background: var(--rev-cream); padding: clamp(1.7rem,3.4vw,2.8rem); border-radius: 6px; }
.price-list--cards .price-line h2 { margin: 0 0 1rem; }
.price-list--cards .price-line p { margin-bottom: 1rem; }
.price-list--cards .inline-link { display: inline-block; margin-top: .7rem; }
body:not(.home) .split { align-items: stretch; gap: 20px; }
body:not(.home) .split > .panel { height: 100%; }
body:not(.home) .info-note { font-size: 14px !important; color: var(--muted); }

/* Uniform footer CTAs, consistent ocean/cream palette */
.cta { background: var(--rev-ocean); text-align: center; padding: clamp(4rem, 6vw, 5.7rem) 0 !important; }
.cta h2 { font-size: clamp(27px, 2.65vw, 34px) !important; color: #EAD9C8; margin-bottom: 1.1rem; }
.cta p, body:not(.home) .cta p { font-size: 18px; color: #EAD9C8; margin-bottom: 1.75rem; }
.cta .button { background: var(--rev-cream); color: var(--ink); padding: .74rem 1.5rem; border-radius: 7px; font-size: 15px; }
.cta .button:hover { background: #fffaf4; color: var(--ink); }

/* Homepage refinements */
.home .hero p { margin-top: 60px; }
.home .hero .button, .home .hero .button--light { background: var(--rev-taupe); color: white; border-radius: 6px; }
.home .hero .button:hover, .home .hero .button--light:hover { background: #6B6058; color: white; }
.home .intro .lead { font-size: clamp(25px, 2.6vw, 29px); font-weight: 500; line-height: 1.4; font-style: normal; }
.home .intro { padding-block: clamp(4rem, 7vw, 6rem); }

/* Make the nav available by keyboard as well as pointer. Keep JS intact. */
.nav-dropdown.is-open > .nav-submenu { display: block; }
.nav-dropdown-toggle:focus-visible { outline: 2px solid var(--rev-ocean); outline-offset: 5px; }

@media (max-width: 760px) {
  /* One full initial mobile viewport of sea; no beige intro visible before scroll. */
  .home .hero { min-height: 100svh; min-height: 100dvh; padding-top: 200px; padding-bottom: clamp(42px, 7vh, 76px); align-items: flex-end; }
  .home .hero .container { width: calc(100% - 2.5rem); }
  .home .hero h1 { font-size: clamp(34px, 8.3vw, 48px); line-height: 1.1; }
  .home .hero p { font-size: 14px; margin: 45px 0 20px; letter-spacing: .025em; }
  .home .hero .button { max-width: 100%; text-align: center; line-height: 1.4; }
  .home .intro .lead { font-size: clamp(23px, 5.4vw, 27px); }
  .home .intro { padding-block: 3.5rem; }
  .cta { padding: 3.6rem 0 !important; }
  .cta h2 { font-size: clamp(27px, 6vw, 31px) !important; }
  .cta p, body:not(.home) .cta p { font-size: 16px; }
  body:not(.home) .page-title { padding-top: 1.8rem; }
  body:not(.home) .page-title .container { width: calc(100% - 2.5rem); }
  body:not(.home) .page-title h1 { font-size: clamp(34px, 8vw, 43px); }
  body:not(.home) .section { padding-block: 2.5rem; }
  body:not(.home) .section > .container.narrow:not(.panel) { width: calc(100% - 2.5rem); }
  body:not(.home) .section .panel { padding: 1.8rem 1.5rem; }
  .steps--grid, .topic-grid, .price-list--cards { grid-template-columns: 1fr; gap: 14px; }
  .steps--grid .step { padding: 1.55rem; }
  .section--topics .content-width { width: calc(100% - 2.5rem); }
  .topic { padding: 1.15rem .2rem; }
  body:not(.home) .split { gap: 14px; }
}

@media (max-width: 390px) {
  .home .hero { padding-top: 170px; }
  .home .hero p { margin-top: 26px; }
  .home .hero h1 { font-size: 33px; }
  .nav { column-gap: .8rem; }
  .nav a, .nav-dropdown-toggle { font-size: .88rem; }
}


/* ========================================================
   Compact blue CTA bands on all internal pages (not Home).
   Leaves the home page and its styling unchanged.
   ======================================================== */
body:not(.home) .section.cta {
  padding-block: clamp(2.5rem, 4vw, 3.5rem) !important;
}
body:not(.home) .section.cta h2 {
  font-size: clamp(26px, 2.5vw, 32px) !important;
  margin-bottom: .65rem;
}
body:not(.home) .section.cta p {
  margin-bottom: 1.15rem;
  line-height: 1.6;
  font-size: 16px;
}
body:not(.home) .section.cta .text-block {
  margin-top: .85rem;
  margin-bottom: 0;
}
body:not(.home) .section.cta .text-block a { color: #fff; }

/* ========================================================
   Individual coaching: elegant editorial, no bulky panels.
   Scoped styles so other pages won't shift.
   ======================================================== */
.page-individuele_coaching .coaching-title {
  padding-bottom: clamp(2rem, 4vw, 3rem);
}
.page-individuele_coaching .coaching-container {
  width: min(920px, calc(100% - 3rem));
  max-width: 920px;
  margin-inline: auto;
}
.page-individuele_coaching .coaching-section {
  padding-block: clamp(2.5rem, 5vw, 4rem) !important;
}
.page-individuele_coaching .coaching-section + .coaching-section {
  padding-top: clamp(2.5rem, 5vw, 4rem) !important;
  border-top: 1px solid var(--line);
}
.page-individuele_coaching .coaching-section--approach {
  background: #f5e9dd;
}
.page-individuele_coaching .coaching-section--scope {
  background: var(--bg-alt);
}
.page-individuele_coaching .coaching-heading {
  max-width: 22ch;
  margin-bottom: 1.7rem;
}
.page-individuele_coaching .coaching-section p {
  font-size: 16px !important;
  line-height: 1.78 !important;
  max-width: 68ch;
}
.page-individuele_coaching .coaching-section p + p { margin-top: 1.15rem; }
.page-individuele_coaching .coaching-section p strong { font-weight: 500; }
.page-individuele_coaching .coaching-list {
  list-style: none;
  padding: 0;
  margin: 1.7rem 0;
}
.page-individuele_coaching .coaching-list--audience {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.5rem, 4vw, 3.5rem);
}
.page-individuele_coaching .coaching-list li {
  font-size: 16px;
  line-height: 1.6;
  padding: .95rem 0;
  border-top: 1px solid #cbbcac;
}
.page-individuele_coaching .coaching-list--scope { max-width: 760px; }
.page-individuele_coaching .coaching-list--scope li { padding-left: 1.3rem; position: relative; }
.page-individuele_coaching .coaching-list--scope li::before {
  content: '—'; position: absolute; left: 0; color: var(--accent);
}
.page-individuele_coaching .coaching-highlight {
  border-left: 2px solid #81766e;
  padding: .35rem 0 .35rem 1.25rem;
  margin-block: 1.8rem !important;
}
.page-individuele_coaching .coaching-cta .container { max-width: 760px; }
@media (max-width: 680px) {
  .page-individuele_coaching .coaching-container { width: calc(100% - 2.5rem); }
  .page-individuele_coaching .coaching-list--audience { grid-template-columns: 1fr; }
  .page-individuele_coaching .coaching-section { padding-block: 2.7rem !important; }
  .page-individuele_coaching .coaching-section + .coaching-section { padding-top: 2.7rem !important; }
  body:not(.home) .section.cta { padding-block: 2.8rem !important; }
}


/* ========================================================
   Coaching page v4 — quiet, elevated editorial theme cards.
   No changes to home or other page layouts.
   ======================================================== */
.page-individuele_coaching .coaching-title { padding-bottom: 1.5rem; }
.page-individuele_coaching .coaching-section--audience,
.page-individuele_coaching .coaching-section--scope { background: var(--bg-alt); }
.page-individuele_coaching .coaching-section--approach { background: #f5e9dd; }
.page-individuele_coaching .coaching-section-heading { max-width: 680px; }
.page-individuele_coaching .coaching-section-heading .eyebrow {
  font-size: 11px !important; letter-spacing: .20em; margin-bottom: .65rem;
}
.page-individuele_coaching .coaching-section-heading .coaching-heading { margin-bottom: .8rem; }
.page-individuele_coaching .coaching-section-heading > p:last-child { color: var(--muted); }
.page-individuele_coaching .coaching-theme-grid {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 clamp(2rem, 5vw, 5rem); margin-top: clamp(2.1rem,4vw,3.4rem);
}
.page-individuele_coaching .coaching-theme {
  display: grid; grid-template-columns: 36px minmax(0,1fr);
  column-gap: 1rem; align-content: start;
  border-top: 1px solid #bdae9e; padding: 1.35rem .2rem 1.75rem;
}
.page-individuele_coaching .coaching-theme-number {
  grid-row: span 2; padding-top: .22rem; font: 400 15px var(--font-heading);
  color: #81766e;
}
.page-individuele_coaching .coaching-theme h3 {
  font-family: var(--font-heading); font-size: clamp(20px,2vw,25px) !important;
  line-height: 1.24; letter-spacing: -.012em; margin: 0 0 .5rem;
}
.page-individuele_coaching .coaching-theme p {
  color: var(--muted); font-size: 15px !important; line-height: 1.6 !important;
  max-width: 32ch;
}
.page-individuele_coaching .coaching-audience-note {
  max-width: 680px !important; margin-top: 2.1rem !important;
  border-left: 2px solid #81766e; padding: .1rem 0 .1rem 1.2rem;
}
.page-individuele_coaching .coaching-section--approach .coaching-container,
.page-individuele_coaching .coaching-section--scope .coaching-container {
  max-width: 780px; width: min(780px,calc(100% - 3rem));
}
.page-individuele_coaching .coaching-section--approach p,
.page-individuele_coaching .coaching-section--scope p { max-width: 65ch; }
.page-individuele_coaching .coaching-list--scope li { font-size: 15px; line-height: 1.7; }
@media (max-width: 680px) {
  .page-individuele_coaching .coaching-theme-grid { grid-template-columns: 1fr; margin-top: 1.9rem; }
  .page-individuele_coaching .coaching-theme { padding: 1.15rem 0 1.4rem; grid-template-columns: 28px minmax(0,1fr); column-gap: .7rem; }
  .page-individuele_coaching .coaching-theme h3 { font-size: 23px !important; }
  .page-individuele_coaching .coaching-section--approach .coaching-container,
  .page-individuele_coaching .coaching-section--scope .coaching-container { width: calc(100% - 2.5rem); }
}

/* Revivancy unified refresh: consistent subpage typography and spacing */
body:not(.home) .page-title { padding: clamp(2.3rem,5vw,4rem) 0 0 !important; }
body:not(.home) .page-title h1 { font-size: clamp(36px,4.2vw,52px) !important; line-height: 1.13; }
body:not(.home) main h2 { font-size: clamp(28px,3vw,36px) !important; line-height: 1.22; }
body:not(.home) main h3 { font-size: clamp(20px,2vw,24px) !important; line-height: 1.3; }
body:not(.home) main p, body:not(.home) main li { font-size: 16px; line-height: 1.76; }
body:not(.home) .page-title + .section { padding-top: clamp(2.5rem,5vw,4.2rem) !important; }
body:not(.home) .section.cta { padding: clamp(2.6rem,4vw,3.7rem) 0 !important; }
body:not(.home) .section.cta .container { max-width: 740px; }
body:not(.home) .section.cta h2 { font-size: clamp(27px,3vw,34px) !important; }
body:not(.home) .section.cta p { margin-bottom: 1.4rem; }
/* Home subtitle contrast against the beach photograph */
.home .hero p { color: #213d4d !important; text-shadow: 0 1px 12px rgba(245,233,221,.45); font-weight: 500; }
/* About page */
.page-over_mij .about-content { width: min(760px,calc(100% - 3rem)); }
.page-over_mij .about-content h2 { margin-bottom: 1.8rem; }
.page-over_mij .about-content p + p { margin-top: 1.4rem; }
.page-over_mij .about-principles { padding-top: clamp(2rem,4vw,4rem) !important; }
.principles-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); }
.principle { border-top: 1px solid #b5a596; padding-top: 1.8rem; }
.principle h2 { margin-bottom: 1.1rem; }
.principle p { max-width: 58ch; }
/* Revive Your Home page */
.page-revive_your_home .revive-text { width: min(760px,calc(100% - 3rem)); }
.page-revive_your_home .revive-text h2 { max-width: 24ch; margin-bottom: 1.7rem; }
.page-revive_your_home .revive-text p + p { margin-top: 1.4rem; }
.revive-section-intro { max-width: 740px; margin-bottom: clamp(2rem,4vw,3rem); }
.revive-section-intro h2 { margin-bottom: 1.1rem; }
.revive-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.revive-card { background: #f5e9dd; border: 1px solid #d7c6b8; padding: clamp(1.35rem,2.8vw,2.4rem); border-radius: 5px; }
.revive-card-accent { display: block; width: 38px; height: 2px; background: #81766e; margin-bottom: 1.8rem; }
.revive-card h3 { margin-bottom: 1rem; }
.revive-card p { color: var(--muted); font-size: 15px !important; }
.revive-process h2 { margin-bottom: 2rem; }
.revive-timeline { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; list-style: none; }
.revive-timeline li { border-top: 1px solid #baa99b; padding-top: 1.2rem; }
.revive-timeline .timeline-number { display: block; font: 400 18px var(--font-heading); color: var(--accent); margin-bottom: 1.1rem; }
.revive-timeline h3 { margin-bottom: .65rem; }
.revive-timeline p { color: var(--muted); font-size: 15px !important; }
/* Prices page */
.price-intro .container { max-width: 760px; }
.price-offer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.price-offer { background: #f5e9dd; padding: clamp(1.6rem,3.5vw,3rem); border: 1px solid #d8c9ba; border-radius: 5px; }
.price-offer h2 { margin-bottom: 1.4rem; }
.price-number { font: 400 clamp(36px,4vw,52px)/1.1 var(--font-heading); }
.price-number span { font: 400 16px var(--font-body); color: var(--muted); }
.price-number--word { font-size: clamp(28px,3.1vw,39px); }
.price-subline { color: var(--muted); margin: .75rem 0 1.7rem; }
.price-offer .inline-link { display: inline-block; margin-top: 1.4rem; }
.price-free { border-top: 1px solid #bbaa9a; border-bottom: 1px solid #bbaa9a; padding: 1.8rem 0; margin-top: 2rem; display: flex; justify-content: space-between; align-items: start; gap: 2rem; }
.price-free h3 { margin-bottom: .3rem; }
.price-free strong { font: 400 28px var(--font-heading); white-space: nowrap; }
.price-tax-note { font-size: 13px !important; color: var(--muted); margin-top: 1.5rem; }
@media(max-width:760px) {
 .principles-grid,.price-offer-grid,.revive-cards { grid-template-columns: 1fr; }
 .revive-timeline { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .price-free { flex-wrap: wrap; }
 .home .hero p { color: #213d4d !important; }
}
@media(max-width:480px) { .revive-timeline { grid-template-columns: 1fr; } }


/* REVIVANCY CORRECTIERONDE 2026-10-16 — subpagina's */
body:not(.home) {font-size:16px;line-height:1.68;}
body:not(.home) main {padding-top: 92px;}
body:not(.home) .page-title {padding: 38px 0 0 !important;}
body:not(.home) .page-title .container {width:min(1040px,calc(100% - 48px));max-width:1040px;}
body:not(.home) .page-title h1 {font-size:clamp(34px,3.1vw,43px) !important;line-height:1.16 !important;letter-spacing:-.015em;}
body:not(.home) main h2 {font-size:clamp(26px,2.25vw,31px) !important;line-height:1.22 !important;}
body:not(.home) main h3 {font-size:clamp(20px,1.7vw,23px) !important;line-height:1.27 !important;}
body:not(.home) main p, body:not(.home) main li {font-size:16px !important;line-height:1.75 !important;}
body:not(.home) .section {padding-block:clamp(37px,4vw,62px) !important;}
body:not(.home) .page-title + .section {padding-top:clamp(25px,3vw,43px) !important;}
body:not(.home) .section + .section:not(.cta) {padding-top:clamp(27px,3vw,45px) !important;}
body:not(.home) .section.cta {padding:clamp(42px,4vw,58px) 0 !important;}
body:not(.home) .section.cta h2 {font-size:clamp(25px,2.4vw,30px) !important;}
body:not(.home) .section.cta .container {max-width:700px;}
/* De oude CSS houdt sommige containers kunstmatig breed; voorkom brede lappen tekst */
.page-revive_your_home .revive-intro .revive-text {width:min(750px,calc(100% - 48px)) !important;max-width:750px !important;}
.page-revive_your_home .revive-intro h2 {font-size:clamp(27px,2.4vw,33px) !important;max-width:690px !important;margin-bottom:22px;}
.page-revive_your_home .revive-intro p + p {margin-top:23px;}
.page-revive_your_home .revive-services > .container, .page-revive_your_home .revive-process > .container {width:min(1050px,calc(100% - 48px));max-width:1050px;}
.page-revive_your_home .revive-section-intro {max-width:650px;margin-bottom:32px;}
.page-revive_your_home .revive-section-intro h2 {margin-bottom:13px;}
.page-revive_your_home .revive-cards {display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:16px !important;}
.page-revive_your_home .revive-card {display:block;background:#f5e9dd;border:1px solid #d8c9bb;border-radius:5px;padding:28px 25px 30px;min-width:0;}
.page-revive_your_home .revive-card-accent {display:block;width:34px;height:2px;background:#81766e;margin-bottom:22px;}
.page-revive_your_home .revive-card h3 {margin-bottom:14px;}
.page-revive_your_home .revive-card p {font-size:15px !important;color:var(--muted);line-height:1.7 !important;}
.page-revive_your_home .revive-timeline {display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;list-style:none !important;list-style-type:none !important;gap:20px !important;padding:0 !important;margin:28px 0 0 !important;counter-reset:none !important;}
.page-revive_your_home .revive-timeline li {list-style:none !important;display:block !important;border-top:1px solid #bbaa9c;padding:16px 0 0 !important;margin:0;min-width:0;}
.page-revive_your_home .revive-timeline li::marker {content:'' !important;}
.page-revive_your_home .revive-timeline .timeline-number {display:block;color:#81766e;font:400 16px var(--font-heading);margin-bottom:15px;}
.page-revive_your_home .revive-timeline h3 {margin-bottom:10px;}
.page-revive_your_home .revive-timeline p {font-size:14px !important;line-height:1.6 !important;color:var(--muted);}
/* Tarieven: overzichtelijk en niet meer op volle schermbreedte */
.page-tarieven .price-intro > .container {width:min(760px,calc(100% - 48px));max-width:760px;}
.page-tarieven .price-offers > .container {width:min(1030px,calc(100% - 48px));max-width:1030px;}
.page-tarieven .price-offer-grid {display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:20px !important;}
.page-tarieven .price-offer {min-width:0;display:flex;flex-direction:column;background:#f5e9dd;border:1px solid #d8c9ba;padding:36px;border-radius:5px;}
.page-tarieven .price-offer h2 {margin-bottom:24px;}
.page-tarieven .price-number {font:400 clamp(32px,3vw,43px)/1.1 var(--font-heading);}
.page-tarieven .price-number--word {font-size:clamp(27px,2.6vw,37px);}
.page-tarieven .price-offer .inline-link {margin-top:auto;padding-top:24px;}
.page-tarieven .price-free {display:flex !important;gap:24px;justify-content:space-between;align-items:start;border-top:1px solid #bbaa9a;border-bottom:1px solid #bbaa9a;margin-top:28px;padding:25px 0;}
.page-tarieven .price-free h3 {margin-bottom:8px;}
/* Over: kleine comfortabele leeskolom en twee duidelijke kaders */
.page-over_mij .editorial-about .about-content {width:min(740px,calc(100% - 48px)) !important;max-width:740px !important;}
.page-over_mij .editorial-about h2 {margin-bottom:26px;}
.page-over_mij .editorial-about p + p {margin-top:23px;}
.page-over_mij .about-principles > .container {width:min(1040px,calc(100% - 48px));max-width:1040px;}
.page-over_mij .principles-grid {display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:18px !important;}
.page-over_mij .principle {background:#f5e9dd;border:1px solid #d8c9ba;border-radius:5px;padding:34px 33px 38px;min-width:0;}
.page-over_mij .principle h2 {margin-bottom:20px;}
.page-over_mij .principle p {font-size:16px !important;line-height:1.74 !important;max-width:56ch;}
/* Coaching behoudt het eerder afgesproken zes-thema-raster */
.page-individuele_coaching .coaching-theme-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;}
.page-individuele_coaching .coaching-theme h3 {font-size:22px !important;}
/* blauw CTA op alle subpagina's compacter */
body:not(.home) .cta {padding:42px 0 !important;}
@media(max-width:760px){
 body:not(.home) main {padding-top:130px;}
 body:not(.home) .page-title {padding-top:27px !important;}
 body:not(.home) .page-title .container {width:calc(100% - 40px);}
 .page-revive_your_home .revive-cards,.page-tarieven .price-offer-grid,.page-over_mij .principles-grid {grid-template-columns:1fr !important;}
 .page-revive_your_home .revive-timeline {grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
 .page-revive_your_home .revive-card,.page-tarieven .price-offer,.page-over_mij .principle {padding:24px 22px;}
 .page-individuele_coaching .coaching-theme-grid {grid-template-columns:1fr;}
}
@media(max-width:480px){.page-revive_your_home .revive-timeline {grid-template-columns:1fr !important;}}


/* REVIVANCY CONTACT • 2026-10-16 | Alleen contactpagina */
.page-contact .contact-page-title { padding-top: 36px !important; }
.page-contact .contact-page-title .container { width: min(1020px, calc(100% - 48px)); }
.page-contact .contact-page-title h1 { font-size: clamp(32px, 3vw, 42px) !important; }
.page-contact .contact-page-title .page-intro { max-width: 52ch; font-size: 16px !important; margin-top: 15px; color: var(--muted); }
.page-contact .contact-section { padding-top: 38px !important; }
.page-contact .contact-layout { width: min(1020px, calc(100% - 48px)); display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(34px, 6vw, 92px); align-items: start; }
.page-contact .contact-details { padding-top: 12px; }
.page-contact .contact-detail + .contact-detail { margin-top: 42px; border-top: 1px solid var(--line); padding-top: 35px; }
.page-contact .contact-label { display: block; color: #81766e; font-size: 11px; letter-spacing: .16em; font-weight: 500; margin-bottom: 12px; }
.page-contact .contact-detail h2 { font-size: clamp(24px, 2.2vw, 29px) !important; margin-bottom: 12px; }
.page-contact .contact-detail p { max-width: 39ch; color: var(--muted); }
.page-contact .contact-email { display: inline-block; color: #2F4E60; font-size: 18px; margin-top: 16px; text-underline-offset: 5px; overflow-wrap: anywhere; }
.page-contact .contact-note { border-left: 2px solid #81766e; padding-left: 15px; margin-top: 46px; max-width: 38ch; color: var(--muted); font-size: 14px !important; }
.page-contact .contact-form-card { background: #f5e9dd; border: 1px solid #d8c9ba; padding: clamp(24px, 3vw, 44px); border-radius: 6px; }
.page-contact .contact-form-card h2 { font-size: clamp(25px, 2.3vw, 30px) !important; }
.page-contact .contact-form-intro { margin: 10px 0 26px; color: var(--muted); font-size: 15px !important; }
.page-contact .contact-field { margin-top: 19px; }
.page-contact .contact-field label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.page-contact .contact-field input, .page-contact .contact-field textarea { display: block; width: 100%; border: 1px solid #cdbeb0; border-radius: 4px; background: #fffbf6; color: #2b2a28; font: 16px/1.45 var(--font-body); padding: 11px 13px; min-height: 44px; outline-offset: 2px; }
.page-contact .contact-field textarea { resize: vertical; min-height: 126px; }
.page-contact .contact-field input:focus, .page-contact .contact-field textarea:focus { outline: 2px solid #2f4e60; border-color: #2f4e60; }
.page-contact .contact-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; margin-top: 24px; padding: 13px 18px; border: 0; border-radius: 4px; background: #2f4e60; color: #fff; font: 500 15px var(--font-body); cursor: pointer; }
.page-contact .contact-submit:hover { background: #233e4f; }
.page-contact .contact-submit:focus-visible { outline: 2px solid #2f4e60; outline-offset: 3px; }
.page-contact .contact-submit:disabled { opacity: .7; cursor: wait; }
.page-contact .contact-privacy { margin-top: 18px; font-size: 13px !important; line-height: 1.5 !important; color: var(--muted); }
.page-contact .contact-status { padding: 13px 14px; margin-top: 16px; background: #e4ece8; border-left: 3px solid #527563; font-size: 14px !important; }
.page-contact .contact-status--error { background: #f9e7df; border-left-color: #a85a46; }
@media (max-width: 760px) {
 .page-contact .contact-layout { grid-template-columns: 1fr; gap: 36px; width: calc(100% - 40px); }
 .page-contact .contact-page-title .container { width: calc(100% - 40px); }
 .page-contact .contact-section { padding-top: 30px !important; }
 .page-contact .contact-details { padding-top: 0; }
 .page-contact .contact-detail + .contact-detail { margin-top: 25px; padding-top: 25px; }
 .page-contact .contact-note { margin-top: 28px; }
}


/* Contactpagina compact – uitsluitend nieuwe gecentreerde indeling */
.page-contact .contact-centered-section { padding: 42px 0 64px !important; }
.page-contact .contact-centered { width: min(460px, calc(100% - 40px)); max-width: 460px; margin-inline: auto; }
.page-contact .contact-centered-intro { text-align: center; margin-bottom: 25px; }
.page-contact .contact-centered-intro h1 { font-size: clamp(32px, 3vw, 38px) !important; line-height: 1.14; }
.page-contact .contact-centered-intro p { margin-top: 12px; color: var(--muted); font-size: 15px !important; line-height: 1.65 !important; }
.page-contact .contact-centered .contact-field { margin-top: 13px; }
.page-contact .contact-centered .contact-field label { font-size: 13px; margin-bottom: 5px; }
.page-contact .contact-centered .contact-field input { min-height: 40px; height: 40px; padding: 8px 11px; }
.page-contact .contact-centered .contact-field textarea { min-height: 94px; height: 94px; padding: 9px 11px; resize: vertical; }
.page-contact .contact-centered .contact-submit { margin-top: 19px; min-height: 41px; padding: 10px 14px; font-size: 14px; }
.page-contact .contact-centered .contact-privacy { margin-top: 10px; font-size: 12px !important; line-height: 1.5 !important; }
.page-contact .contact-direct { border-top: 1px solid #c9b6a6; text-align: center; margin-top: 25px; padding-top: 20px; }
.page-contact .contact-direct p { font-size: 14px !important; color: var(--muted); }
.page-contact .contact-direct a { display: inline-block; margin-top: 5px; font-size: 16px; color: #2f4e60; text-underline-offset: 4px; }
@media (max-width:760px) { .page-contact .contact-centered-section { padding-top: 25px !important; padding-bottom: 42px !important; } }


/* Revivancy | online coaching refinement 16-10-2026 */
/* Align page title and all coaching content to the same left edge. */
.page-individuele_coaching .coaching-title .container,
.page-individuele_coaching .coaching-section .coaching-container {
  width: min(920px, calc(100% - 3rem)) !important;
  max-width: 920px !important;
  margin-inline: auto;
}
.page-individuele_coaching .coaching-section--approach p,
.page-individuele_coaching .coaching-section--scope p { max-width: 65ch; }
.page-individuele_coaching .coaching-section-heading { max-width: 780px; }
.page-individuele_coaching .coaching-title { padding-bottom: 0 !important; }
.page-individuele_coaching .coaching-title h1::before {
  content: ''; display: block; width: 68px; height: 2px;
  background: var(--rev-ocean); margin-bottom: 18px;
}
.page-individuele_coaching .coaching-section--audience { position: relative; isolation: isolate; }
.page-individuele_coaching .coaching-section--audience .coaching-container { position: relative; z-index: 1; }
.page-individuele_coaching .coaching-botanical {
  position: absolute; right: max(3vw, 16px); top: 32px;
  width: clamp(95px, 11vw, 160px); height: auto;
  color: var(--rev-ocean); opacity: .32; pointer-events: none;
}
.page-individuele_coaching .coaching-theme-number { color: var(--rev-ocean); font-size: 20px; }
.page-individuele_coaching .coaching-audience-note { border-left-color: var(--rev-ocean); }
/* Gentle curved edge to visually separate two intentional beige shades. */
.page-individuele_coaching .coaching-section--approach {
  position: relative; border-top: 0 !important; isolation: isolate;
}
.page-individuele_coaching .coaching-section--approach::before {
  content: ''; position: absolute; left: 0; right: 0; top: -19px;
  height: 32px; background: #f5e9dd;
  border-radius: 50% 50% 0 0 / 24px 24px 0 0;
  pointer-events: none;
}
.page-individuele_coaching .coaching-section--approach .coaching-container { position: relative; z-index: 1; }
/* Medium-height blue CTA with generous breathing room and a small footer. */
.page-individuele_coaching .section.cta.coaching-cta { padding: 72px 0 76px !important; }
.page-individuele_coaching .section.cta.coaching-cta h2 { margin-bottom: 20px; }
.page-individuele_coaching .section.cta.coaching-cta p { margin-bottom: 32px; }
.page-individuele_coaching .site-footer { padding-block: 23px; }
@media (max-width: 760px) {
  .page-individuele_coaching .coaching-title .container,
  .page-individuele_coaching .coaching-section .coaching-container { width: calc(100% - 2.5rem) !important; }
  .page-individuele_coaching .coaching-botanical { width: 85px; opacity: .16; top: 20px; }
  .page-individuele_coaching .section.cta.coaching-cta { padding: 54px 0 60px !important; }
  .page-individuele_coaching .site-footer { padding-block: 20px; }
}

/* Revivancy refinement v8: airy flourish, consistent CTA, softer bottom seam. */
.page-individuele_coaching .coaching-botanical {
  right: max(2vw, 12px); top: 28px;
  width: clamp(140px, 17vw, 245px);
  opacity: .22; transform: rotate(-7deg);
}
/* Make the CTA visibly shorter on every page, including the home page.
   Flex centering preserves open space around the text without excess height. */
main > .section.cta {
  min-height: 365px;
  box-sizing: border-box;
  padding: 52px 0 70px !important;
  display: flex; flex-direction: column; justify-content: center;
  position: relative;
  overflow: hidden;
}
main > .section.cta .container { position: relative; z-index: 2; }
main > .section.cta h2 { margin-bottom: 17px !important; }
main > .section.cta p { margin-bottom: 28px !important; }
/* A shallow, flowing cream edge between deep ocean CTA and footer. */
main > .section.cta::after {
  content: ''; position: absolute; z-index: 1; pointer-events: none;
  left: -7%; bottom: -1px; width: 114%; height: 25px;
  background: var(--bg);
  border-radius: 48% 52% 0 0 / 90% 100% 0 0;
  transform: rotate(-.45deg);
}
.site-footer { padding: 19px 0 22px !important; }
@media (max-width: 760px) {
  .page-individuele_coaching .coaching-botanical { width: 110px; opacity: .14; right: -12px; top: 30px; }
  main > .section.cta { min-height: 310px; padding: 47px 0 63px !important; }
  main > .section.cta::after { height: 17px; }
  .site-footer { padding: 17px 0 19px !important; }
}


/* ===== REVIVANCY · Consistente layout en mobiele correcties · 16 okt 2026 =====
   Ontwerp: rustige rechthoekige secties, één linkerlijn en compacte CTA's. */
:root { --rev-content: 1040px; }
html,body { max-width:100%; overflow-x:clip; }
/* Alle paginatitels, introducties en inhoud beginnen op dezelfde linkerlijn. */
body:not(.home) .page-title .container,
body:not(.home) main > .section:not(.cta) > .container,
.page-individuele_coaching .coaching-title .container,
.page-individuele_coaching .coaching-section .coaching-container,
.page-over_mij .editorial-about .about-content,
.page-tarieven .price-intro > .container,
.page-tarieven .price-offers > .container,
.page-over_mij .about-principles > .container,
.page-contact .contact-page-title .container {
  width:min(var(--rev-content), calc(100% - 48px)) !important;
  max-width:var(--rev-content) !important;
  margin-left:auto !important; margin-right:auto !important;
}
/* Laat tekstblokken op links starten; beperk regelbreedte zonder centreren. */
body:not(.home) main > .section:not(.cta) > .container > p,
.page-tarieven .price-intro p,
.page-over_mij .editorial-about .about-content > p,
.page-individuele_coaching .coaching-section-heading { max-width:70ch; margin-left:0 !important; margin-right:0 !important; }
.page-over_mij .editorial-about .about-content > p { max-width:70ch; }
.page-individuele_coaching .coaching-section-heading { max-width:70ch !important; }
body:not(.home) .page-title { padding-top:36px !important; }
body:not(.home) .page-title + .section { padding-top:32px !important; }
body:not(.home) .section:not(.cta) { padding-bottom:clamp(34px,4vw,54px) !important; }
body:not(.home) .section + .section:not(.cta) { padding-top:clamp(24px,3vw,38px) !important; }
/* Tarieven: kop, tekst en kaarten delen nu één startpunt. */
.page-tarieven .price-intro { padding-bottom:16px !important; }
.page-tarieven .price-offers { padding-top:28px !important; }
/* Rustige beige overgang; geen bladeren, golven of losse ornamenten. */
.page-individuele_coaching .coaching-botanical { display:none !important; }
.page-individuele_coaching .coaching-section--approach::before,
main > .section.cta::after { content:none !important; display:none !important; }
/* Blauwe CTA-vlakken op alle pagina's één uniforme maat en binnenruimte. */
main > .section.cta,
.page-individuele_coaching .section.cta.coaching-cta,
body:not(.home) .section.cta {
 min-height:0 !important; height:auto !important;
 padding:clamp(38px,4vw,52px) 24px !important;
 display:block !important; border-radius:0 !important;
 margin:0 !important;
}
main > .section.cta .container { max-width:740px !important; margin:auto !important; }
main > .section.cta h2 { margin-bottom:12px !important; }
main > .section.cta p { margin-bottom:18px !important; }
main > .section.cta .text-block { margin-top:13px !important; margin-bottom:0 !important; }
.site-footer { padding:18px 0 20px !important; }
/* Klein scherm: logo en menu nooit buiten de viewport. */
@media(max-width:760px) {
 .site-header { padding-block:12px !important; }
 .site-header .container { display:flex !important; flex-direction:column !important; align-items:center !important; gap:12px !important; padding-inline:12px !important; width:100% !important; }
 .site-header .logo { justify-self:center; max-width:calc(100vw - 32px); }
 .site-header .logo img { height:34px; max-width:min(280px,calc(100vw - 32px)); width:auto; }
 .site-header nav { width:100%; min-width:0; }
 .site-header .nav { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:7px 15px !important; }
 .nav a,.nav-dropdown-toggle {font-size:clamp(12px,3.35vw,14px) !important;white-space:nowrap;}
 .nav-submenu { left:50%; transform:translateX(-50%); min-width:190px; }
 body:not(.home) main { padding-top:124px; }
 body:not(.home) .page-title .container,body:not(.home) main > .section:not(.cta) > .container,
 .page-individuele_coaching .coaching-title .container,
 .page-individuele_coaching .coaching-section .coaching-container,
 .page-over_mij .editorial-about .about-content,
 .page-tarieven .price-intro > .container,.page-tarieven .price-offers > .container,
 .page-over_mij .about-principles > .container,.page-contact .contact-page-title .container {width:calc(100% - 40px) !important;}
 .home .hero {padding-top:160px !important;padding-bottom:clamp(45px,7vh,72px) !important; background-image:linear-gradient(to top,rgba(240,222,203,.40),rgba(240,222,203,.07) 76%),url('../images/hero.webp?v=revivancy-20261015-2') !important;background-position:center !important;background-size:cover !important;}
 .home .hero p { color:#2b2a28 !important; font-size:clamp(15px,3.8vw,17px) !important; font-weight:500 !important; line-height:1.4 !important; letter-spacing:.02em !important; text-shadow:0 1px 3px rgba(245,233,221,.5) !important; margin-top:23px !important; margin-bottom:22px !important; }
 .home .hero h1 { color:#2b2a28 !important; }
 main > .section.cta,.page-individuele_coaching .section.cta.coaching-cta,body:not(.home) .section.cta {padding:36px 20px !important;min-height:0 !important;}
 .site-footer {padding:16px 0 !important;}
}
@media(max-width:380px) { .site-header .nav {gap:6px 10px !important;} .site-header .logo img {height:30px;} }

/* Contact: restore the earlier narrow, centered form (specificity over global layout). */
body.page-contact main > .section.contact-centered-section > .container.contact-centered {
 width:min(460px, calc(100% - 40px)) !important;
 max-width:460px !important;
 margin-inline:auto !important;
}
body.page-contact .contact-centered-intro {text-align:center !important;}
body.page-contact #revivancy-contact-form {width:100%;max-width:100%;margin-inline:auto;}
body.page-contact #revivancy-contact-form input,
body.page-contact #revivancy-contact-form textarea {width:100%;max-width:100%;}
@media(max-width:760px){
 body.page-contact main > .section.contact-centered-section > .container.contact-centered {width:calc(100% - 40px) !important;max-width:460px !important;}
}


/* Revive Your Home — gerichte herstelronde, 16-10-2026.
   Alleen deze pagina; andere pagina's en contactformulier blijven intact. */
body.page-revive_your_home .page-title + .revive-intro {
  padding-top: clamp(16px, 2.5vw, 30px) !important;
  padding-bottom: clamp(36px, 4.2vw, 60px) !important;
}
body.page-revive_your_home .revive-intro .revive-text {
  width: min(var(--rev-content), calc(100% - 48px)) !important;
  max-width: var(--rev-content) !important;
  margin-inline: auto !important;
}
body.page-revive_your_home .revive-intro h2 {
  font-size: clamp(24px, 2.25vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em;
  font-weight: 400;
  max-width: 760px !important;
  margin-bottom: clamp(22px, 2.5vw, 30px) !important;
}
body.page-revive_your_home .revive-intro p {
  max-width: 76ch !important;
}
body.page-revive_your_home main > .section.revive-services {
  background: #f3e7dc !important;
  padding-block: clamp(42px, 5.2vw, 76px) clamp(48px, 5.8vw, 84px) !important;
  border-top: 1px solid rgba(98, 79, 65, .11);
}
body.page-revive_your_home .revive-services .revive-section-intro {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 760px !important;
  margin-bottom: clamp(28px, 3.1vw, 44px) !important;
}
body.page-revive_your_home .revive-services .revive-section-intro h2 {
  font-size: clamp(29px, 3vw, 38px) !important;
  line-height: 1.2;
  margin-bottom: clamp(13px, 1.5vw, 19px) !important;
}
body.page-revive_your_home .revive-services .revive-card {
  background: #f9f0e7 !important;
}
@media (max-width: 760px) {
  body.page-revive_your_home .revive-intro .revive-text {width:calc(100% - 40px) !important;}
  body.page-revive_your_home .revive-intro h2 {font-size:clamp(23px, 5.6vw, 28px) !important;}
  body.page-revive_your_home main > .section.revive-services {padding-block:42px 52px !important;}
}
