/* =========================================================
   Praktijk Janke Ritsema
   Concept: een rustige behandelkamer. Veel lucht, foto's als
   ramen, de prijslijst als drukwerk.
   Kleuren komen uit de salon: logo-bruin, linnen, natuursteen,
   koper van de kraan, poederroze van de bloemen.
   ========================================================= */

/* Lettertypes staan op de site zelf (geen Google) */
@font-face { font-family: "Gloock"; src: url("fonts/gloock-regular.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("fonts/outfit-regular.woff") format("woff"); font-weight: 100 599; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("fonts/outfit-bold.woff") format("woff"); font-weight: 600 900; font-style: normal; font-display: swap; }

:root {
  /* Kleuren */
  --linnen: #f3eee8;      /* achtergrond pagina */
  --papier: #fbf8f4;      /* lichte vlakken */
  --steen: #e7ddd2;       /* band, zoals de stenen wand */
  --cacao: #3b2a22;       /* tekst en logo-bruin */
  --cacao-zacht: #6d5a4e; /* rustige tekst */
  --koper: #9a6047;       /* accent, zoals de kraan */
  --roos: #e9d6c9;        /* zacht poederroze */
  --room: #f2e7d7;        /* crème uit het logo */
  --lijn: #d8cabd;        /* dunne lijnen */

  /* Letters */
  --display: "Gloock", "Bodoni 72", Didot, Georgia, serif;
  --tekst: "Outfit", "Avenir Next", "Segoe UI", system-ui, sans-serif;

  /* Maten */
  --breed: 1160px;
  --smal: 680px;
  --rand: clamp(16px, 4vw, 40px);
  --ruimte: clamp(64px, 9vw, 120px);

  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--linnen);
  color: var(--cacao);
  font-family: var(--tekst);
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0; }

h1, h2, h3 {
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.005em;
  margin: 0;
  text-wrap: balance;
}
h1 { font-size: clamp(2.5rem, 5.4vw, 4.4rem); }
h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 1.8rem); }

:focus-visible { outline: 2px solid var(--koper); outline-offset: 3px; }

.wrap { width: min(100%, var(--breed)); margin-inline: auto; padding-inline: var(--rand); }
.wrap-smal { width: min(100%, calc(var(--smal) + 2 * var(--rand))); margin-inline: auto; padding-inline: var(--rand); }

/* Kleine kopjes in hoofdletters, zoals op de prijslijst */
.label {
  font-family: var(--tekst);
  font-size: 0.78rem;
  font-weight: 450;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--koper);
}

.lead { font-size: clamp(1.1rem, 1.6vw, 1.25rem); color: var(--cacao-zacht); max-width: 36em; }
.stack { display: flex; flex-direction: column; gap: 1.1rem; }
.stack-groot { display: flex; flex-direction: column; gap: 1.75rem; }

/* ---------- Knoppen ---------- */
.knoppen { display: flex; flex-wrap: wrap; gap: 0.9rem 1.6rem; align-items: center; }
.knop {
  display: inline-flex; align-items: center; gap: 0.6em;
  padding: 0.95em 1.7em;
  background: var(--cacao); color: var(--room);
  border: 1px solid var(--cacao); border-radius: 999px;
  font-size: 0.82rem; font-weight: 450; letter-spacing: 0.16em; text-transform: uppercase;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease;
}
.knop:hover { background: var(--koper); border-color: var(--koper); }
.knop-licht { background: transparent; color: var(--cacao); }
.knop-licht:hover { background: var(--cacao); color: var(--room); border-color: var(--cacao); }
.link {
  font-size: 0.82rem; font-weight: 450; letter-spacing: 0.16em; text-transform: uppercase;
  text-decoration: none; padding-bottom: 3px;
  border-bottom: 1px solid var(--koper);
}
.link:hover { color: var(--koper); }

/* ---------- Kop ---------- */
.kop {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20;
  background: color-mix(in srgb, var(--linnen) 92%, transparent);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--lijn);
}
.kop-binnen { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 78px; }
.merk { display: flex; align-items: center; gap: 0.85rem; text-decoration: none; }
.merk img { width: 52px; height: 52px; }
.merk-naam { display: flex; flex-direction: column; line-height: 1.15; }
.merk-naam strong { font-family: var(--display); font-weight: 400; font-size: 1.2rem; }
.merk-naam span { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--cacao-zacht); }

.menu { display: flex; align-items: center; gap: clamp(0.9rem, 1.5vw, 1.6rem); }
.menu a { white-space: nowrap; }
.merk-naam { white-space: nowrap; }
.merk { flex-shrink: 0; }
.menu a:not(.knop) {
  font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
  padding-block: 6px; border-bottom: 1px solid transparent;
}
.menu a:not(.knop):hover { border-bottom-color: var(--lijn); }
.menu a[aria-current="page"] { border-bottom-color: var(--koper); }
.menu .knop { padding: 0.8em 1.3em; font-size: 0.74rem; }

.menu-knop {
  display: none;
  background: none; border: 1px solid var(--lijn); border-radius: 999px;
  color: var(--cacao); font: inherit; font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase;
  padding: 0.7em 1.1em; cursor: pointer;
}

@media (max-width: 1240px) {
  .menu-knop { display: inline-flex; }
  .menu {
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--linnen); border-bottom: 1px solid var(--lijn);
    padding: 0.5rem var(--rand) 1.5rem;
  }
  .menu:not(.open) { display: none; }
  .menu a:not(.knop) { padding-block: 0.95rem; border-bottom: 1px solid var(--lijn); font-size: 0.86rem; }
  .menu a[aria-current="page"] { color: var(--koper); border-bottom-color: var(--lijn); }
  .menu .knop { margin-top: 1.25rem; justify-content: center; }
}
@media (max-width: 420px) { .merk-naam span { display: none; } }

/* ---------- Secties ---------- */
.sectie { padding-block: var(--ruimte); }
.sectie-steen { background: var(--steen); }
.sectie-papier { background: var(--papier); }
.sectie-donker { background: var(--cacao); color: var(--room); }
.sectie-donker .label { color: var(--roos); }
.sectie-donker .lead { color: color-mix(in srgb, var(--room) 80%, var(--cacao)); }
.sectie-kop { display: flex; flex-direction: column; gap: 1rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); max-width: 40rem; }

/* Foto's: altijd netjes bijgesneden, welke foto je er ook in zet */
.foto { width: 100%; height: 100%; object-fit: cover; background: var(--steen); }
.foto-kader { position: relative; overflow: hidden; background: var(--steen); }
.foto-kader img { position: absolute; inset: 0; }
.r-staand { aspect-ratio: 4 / 5; }
.r-hoog { aspect-ratio: 3 / 4; }
.r-vierkant { aspect-ratio: 1 / 1; }
.r-breed { aspect-ratio: 3 / 2; }

/* ---------- Home: openingsbeeld ---------- */
.held { padding-block: clamp(40px, 6vw, 80px) var(--ruimte); }
.held-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.held-tekst { display: flex; flex-direction: column; gap: 1.6rem; min-width: 0; }
.held-foto { position: relative; }
.held-foto .foto-kader { border-radius: 2px; }
.held-foto::after {
  content: ""; position: absolute; inset: 18px -18px -18px 18px;
  border: 1px solid var(--koper); opacity: .45; z-index: -1; pointer-events: none;
}
.held-foto { z-index: 0; }
.held-foto .foto-kader img { object-position: 50% 30%; }
.held .knoppen { margin-top: 0.6rem; }
@media (max-width: 860px) {
  .held-grid { grid-template-columns: 1fr; }
  .held-foto { order: -1; margin-right: 18px; }
  .held-foto .foto-kader { aspect-ratio: 4 / 3.4; }
}

/* ---------- Drie pijlers uit het logo ---------- */
.pijlers-titel {
  display: flex; align-items: center; gap: 1.2rem; justify-content: center;
  font-size: 0.8rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--cacao-zacht);
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.pijlers-titel::before, .pijlers-titel::after { content: ""; height: 1px; width: min(12vw, 120px); background: var(--lijn); }
.pijlers { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--lijn); }
.pijler {
  display: flex; flex-direction: column; gap: 0.9rem;
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2.25rem) 0;
  text-decoration: none;
}
.pijler + .pijler { border-left: 1px solid var(--lijn); }
.pijler h3 { transition: color .25s ease; }
.pijler p { color: var(--cacao-zacht); }
.pijler .link { align-self: flex-start; margin-top: auto; }
.pijler p { margin-bottom: 0.4rem; }
.pijler:hover h3 { color: var(--koper); }
@media (max-width: 760px) {
  .pijlers { grid-template-columns: 1fr; }
  .pijler { padding-inline: 0; padding-bottom: 2rem; }
  .pijler + .pijler { border-left: 0; border-top: 1px solid var(--lijn); }
}

/* ---------- Tekst naast foto ---------- */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.duo > * { min-width: 0; }
.duo-omgekeerd > .duo-foto { order: 2; }
@media (max-width: 820px) {
  .duo { grid-template-columns: 1fr; }
  .duo-omgekeerd > .duo-foto { order: 0; }
}

.brief p + p { margin-top: 1.1rem; }
.handtekening { font-family: var(--display); font-size: 1.6rem; margin-top: 1.4rem; }

/* ---------- Stappen ---------- */
.stappen { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); list-style: none; margin: 0; padding: 0; counter-reset: stap; }
.stappen li { display: flex; flex-direction: column; gap: 0.7rem; padding-top: 1.4rem; border-top: 1px solid var(--lijn); counter-increment: stap; }
.stappen li::before { content: counter(stap); font-family: var(--display); font-size: 1.5rem; color: var(--koper); }
.stappen p { color: var(--cacao-zacht); }
@media (max-width: 760px) { .stappen { grid-template-columns: 1fr; } }

/* ---------- Paginakop (subpagina's) ---------- */
.pagina-kop { padding-block: clamp(48px, 7vw, 96px) clamp(40px, 5vw, 64px); }
.pagina-kop-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(2rem, 6vw, 5rem); align-items: end; }
.pagina-kop-grid > * { min-width: 0; }
.pagina-kop .stack-groot { padding-bottom: 0.5rem; }
@media (max-width: 820px) { .pagina-kop-grid { grid-template-columns: 1fr; } }

/* Snelle navigatie binnen een pagina */
.ankers { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ankers a {
  font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none;
  padding: 0.6em 1.1em; border: 1px solid var(--lijn); border-radius: 999px; background: var(--papier);
  transition: border-color .2s ease, color .2s ease;
}
.ankers a:hover { border-color: var(--koper); color: var(--koper); }

/* ---------- Behandelingen ---------- */
.behandeling { padding-block: clamp(56px, 7vw, 96px); border-top: 1px solid var(--lijn); scroll-margin-top: 90px; }
.behandeling:first-of-type { border-top: 0; }
.behandeling-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 6vw, 5.5rem); align-items: start; }
.behandeling-grid > * { min-width: 0; }
.behandeling:nth-of-type(even) .behandeling-grid { grid-template-columns: 1.15fr 0.85fr; }
.behandeling:nth-of-type(even) .behandeling-foto { order: 2; }
@media (max-width: 820px) {
  .behandeling-grid, .behandeling:nth-of-type(even) .behandeling-grid { grid-template-columns: 1fr; }
  .behandeling:nth-of-type(even) .behandeling-foto { order: 0; }
  .behandeling-foto .foto-kader { aspect-ratio: 3 / 2; }
}
.behandeling-tekst { display: flex; flex-direction: column; gap: 1.25rem; }
.behandeling-tekst ul { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.35rem; color: var(--cacao-zacht); }
.behandeling-tekst ul li::marker { color: var(--koper); }
.tijden { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.4rem; }
.tijd {
  display: flex; align-items: baseline; gap: 0.9rem;
  padding: 0.7rem 1.1rem; border: 1px solid var(--lijn); background: var(--papier);
  font-variant-numeric: tabular-nums;
}
.tijd span { font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cacao-zacht); }
.tijd strong { font-weight: 450; }
.opmerking { font-size: 0.95rem; color: var(--cacao-zacht); border-left: 1px solid var(--koper); padding-left: 1rem; }

/* ---------- Prijslijst (zoals het drukwerk) ---------- */
.prijslijst { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2.5rem, 5vw, 4.5rem) clamp(2rem, 5vw, 5rem); }
.prijslijst > * { min-width: 0; }
@media (max-width: 820px) { .prijslijst { grid-template-columns: 1fr; } }
.prijsgroep { display: flex; flex-direction: column; gap: 1rem; }
.prijsgroep-kop {
  font-family: var(--tekst); font-weight: 400; line-height: 1.4;
  border: 1px solid var(--cacao-zacht); padding: 0.75rem 1.1rem;
  font-size: 0.86rem; font-style: italic; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cacao);
}
.prijsgroep-kop a { text-decoration: none; }
.prijsgroep-kop a:hover { color: var(--koper); }
.prijsregels { list-style: none; margin: 0; padding: 0 1.1rem; display: flex; flex-direction: column; gap: 0.35rem; }
.prijsregels li {
  display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  font-size: 0.86rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cacao-zacht);
  font-variant-numeric: tabular-nums;
}
.prijsregels li span:last-child { color: var(--cacao); white-space: nowrap; }
.prijs-noot { font-size: 0.95rem; color: var(--cacao-zacht); }

/* ---------- Contactkaarten ---------- */
.kanalen { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.kanalen > * { min-width: 0; }
@media (max-width: 980px) { .kanalen { grid-template-columns: 1fr; } }
.kanaal {
  display: flex; flex-direction: column; gap: 0.75rem;
  padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--papier); border: 1px solid var(--lijn);
}
.kanaal-waarde { font-family: var(--display); font-size: clamp(1.05rem, 1.65vw, 1.4rem); white-space: nowrap; user-select: all; }
@media (max-width: 980px) { .kanaal-waarde { font-size: min(1.45rem, calc((100vw - 80px) / 16)); } }
.kanaal p { color: var(--cacao-zacht); }
.kanaal .link { align-self: flex-start; margin-top: auto; }

.gegevens { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 2rem; margin: 0; }
.gegevens dt { font-size: 0.76rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--koper); padding-top: 0.25em; }
.gegevens dd { margin: 0; }
@media (max-width: 480px) { .gegevens { grid-template-columns: 1fr; gap: 0.15rem; } .gegevens dd { margin-bottom: 0.7rem; } }

.agenda-plek {
  display: flex; flex-direction: column; gap: 0.6rem; align-items: flex-start;
  padding: clamp(1.5rem, 3vw, 2rem); border: 1px dashed var(--cacao-zacht);
}

/* ---------- Afspraakband ---------- */
.afspraak { text-align: center; }
.afspraak .stack-groot { align-items: center; }
.afspraak .lead { margin-inline: auto; }
.afspraak .knop { background: var(--room); color: var(--cacao); border-color: var(--room); }
.afspraak .knop:hover { background: var(--roos); border-color: var(--roos); }
.afspraak .knop-licht { background: transparent; color: var(--room); border-color: color-mix(in srgb, var(--room) 50%, transparent); }
.afspraak .knop-licht:hover { background: var(--room); color: var(--cacao); }
.afspraak .knoppen { justify-content: center; }

/* ---------- Voet ---------- */
.voet { background: var(--cacao); color: var(--room); padding-block: clamp(56px, 7vw, 88px) 32px; }
.voet a { text-decoration: none; }
.voet a:hover { color: var(--roos); }
.voet-grid { display: grid; grid-template-columns: 1.1fr 0.9fr 1.3fr 0.9fr; gap: 2.5rem; }
.voet ul li, .gegevens dd { overflow-wrap: anywhere; }
.voet-grid > * { min-width: 0; }
.voet .label { color: var(--roos); margin-bottom: 0.9rem; display: block; }
.voet ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.voet-logo { width: 110px; height: 110px; }
.voet-merk { display: flex; flex-direction: column; gap: 1rem; }
.voet-merk p { color: color-mix(in srgb, var(--room) 75%, var(--cacao)); max-width: 22em; font-size: 0.95rem; }
.voet-onder {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem;
  margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--room) 18%, var(--cacao));
  font-size: 0.82rem; color: color-mix(in srgb, var(--room) 65%, var(--cacao));
}
@media (max-width: 860px) { .voet-grid { grid-template-columns: 1fr 1fr; } .voet-merk { grid-column: 1 / -1; } }
@media (max-width: 480px) { .voet-grid { grid-template-columns: 1fr; } }

/* Rustig infaden bij laden */
@media (prefers-reduced-motion: no-preference) {
  .held-tekst, .held-foto, .pagina-kop { animation: rustig 0.9s ease both; }
  .held-foto { animation-delay: .12s; }
  @keyframes rustig { from { opacity: .001; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}

/* ---------- Huidverzorging: merken ---------- */
.merken { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem); }
.merken > * { min-width: 0; }
@media (max-width: 860px) { .merken { grid-template-columns: 1fr; } }
/* Elke kaart deelt dezelfde rijen: foto, ondertitel, naam, tekst, ideaal bij. Zo staat alles op gelijke hoogte. */
.merk-kaart { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0.9rem; align-content: start; scroll-margin-top: 90px; }
.merk-kaart .foto-kader { aspect-ratio: 5 / 4; margin-bottom: 0.6rem; }
.merk-kaart .label { align-self: end; }
.merk-kaart h3 { font-size: clamp(1.6rem, 2.4vw, 2rem); }
.merk-kaart p { color: var(--cacao-zacht); }
.ideaal { align-self: end; padding-top: 1rem; border-top: 1px solid var(--lijn); font-size: 0.97rem; color: var(--cacao) !important; }
.ideaal span { display: block; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--koper); margin-bottom: 0.2rem; }

.slotzin { text-align: center; }
.slotzin .stack-groot { align-items: center; }
.slotzin .lead { margin-inline: auto; }
.slotzin-tekst { font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.2; text-wrap: balance; }

/* ---------- App-knop (zwevend) ---------- */
.app-knop {
  position: fixed; z-index: 30;
  right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 0.8rem 1.15rem 0.8rem 1rem;
  background: var(--cacao); color: var(--room); text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--room) 25%, var(--cacao)); border-radius: 999px;
  font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase;
  box-shadow: 0 8px 24px -10px rgba(59, 42, 34, 0.55);
  transition: background-color .25s ease;
}
.app-knop:hover { background: var(--koper); }
@media (max-width: 600px) { .voet { padding-bottom: 96px; } }

/* ---------- Cadeaubon ---------- */
.bon-plek { display: flex; justify-content: center; padding: clamp(0.5rem, 2vw, 1.5rem); }
.bon {
  width: min(100%, 440px); aspect-ratio: 1.58 / 1;
  background: var(--cacao); color: var(--room);
  padding: 12px; transform: rotate(-2deg);
  box-shadow: 0 30px 50px -30px rgba(59, 42, 34, 0.6);
}
.bon-binnen {
  height: 100%; border: 1px solid color-mix(in srgb, var(--room) 45%, var(--cacao));
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem;
  padding: 1rem; text-align: center;
}
.bon-binnen img { width: clamp(48px, 9vw, 72px); height: auto; margin-bottom: 0.25rem; }
.bon-titel { font-family: var(--display); font-size: clamp(1.6rem, 3.6vw, 2.3rem); line-height: 1; }
.bon-sub { font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--roos); }
.bon-lijn { width: 70%; margin-top: 0.7rem; border-bottom: 1px solid color-mix(in srgb, var(--room) 45%, var(--cacao)); text-align: left; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; padding-bottom: 0.2rem; color: color-mix(in srgb, var(--room) 75%, var(--cacao)); }
.bon-voet { margin-top: 0.6rem; font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--room) 70%, var(--cacao)); }

.cadeau-strook {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 2rem;
  margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--lijn); background: var(--linnen); text-decoration: none;
}
.cadeau-tekst { flex: 1 1 18rem; min-width: 0; font-family: var(--display); font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.3; }
.cadeau-strook:hover .link { color: var(--koper); }

/* ---------- Tekstpagina (privacy) ---------- */
.tekstpagina { display: flex; flex-direction: column; gap: 0.9rem; }
.tekstpagina h2 { font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin-top: 1.6rem; }
.tekstpagina h2:first-child { margin-top: 0; }
.tekstpagina p, .tekstpagina ul { color: var(--cacao-zacht); }
.tekstpagina ul { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.35rem; }
.tekstpagina li::marker { color: var(--koper); }
.tekstpagina a { color: var(--cacao); text-decoration-color: var(--koper); text-underline-offset: 3px; }
.voet-onder a { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--room) 35%, var(--cacao)); text-underline-offset: 3px; }

/* Lange Nederlandse woorden netjes laten passen op smalle telefoons */
h1, h2, h3 { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
@media (max-width: 480px) {
  h1 { font-size: clamp(2rem, 9vw, 2.5rem); }
  h2 { font-size: clamp(1.6rem, 7.2vw, 2rem); }
}


/* Lange behandelingsnamen passen op één regel */
.behandeling-tekst h2 { font-size: clamp(1.75rem, 2.5vw, 2.4rem); overflow-wrap: normal; hyphens: manual; }

/* ---------- Instagram ---------- */
.insta { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.insta > * { min-width: 0; }
@media (max-width: 860px) { .insta { grid-template-columns: 1fr; } }
.insta-naam { font-family: var(--display); font-size: clamp(1.9rem, 3.4vw, 2.8rem); line-height: 1.05; text-decoration: none; overflow-wrap: anywhere; }
.insta-naam:hover { color: var(--koper); }
.insta-tegels { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.5rem, 1.2vw, .9rem); }
.insta-tegels a { display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--steen); }
.insta-tegels img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s ease; }
.insta-tegels a:hover img { transform: scale(1.04); opacity: .92; }
@media (prefers-reduced-motion: reduce) { .insta-tegels img { transition: none; } .insta-tegels a:hover img { transform: none; } }

/* ---------- Telefoon: compacter, zodat je minder hoeft te scrollen ---------- */
@media (max-width: 820px) {
  :root { --ruimte: 56px; }
  .duo-foto .foto-kader, .pagina-kop .foto-kader { aspect-ratio: 4 / 3; }
  .pagina-kop { padding-block: 32px 40px; }
  .behandeling { padding-block: 44px; }
  .behandeling-grid { gap: 1.5rem; }
  .behandeling-foto .foto-kader { aspect-ratio: 16 / 9; }
  .duo { gap: 1.75rem; }
  .sectie-kop { margin-bottom: 1.75rem; }
}
@media (max-width: 760px) {
  .pijler { padding-top: 1.4rem; padding-bottom: 1.4rem; gap: 0.6rem; }
}
@media (max-width: 600px) {
  .sectie-stappen { display: none; }
  /* Voet: logo naast de tekst, Bezoek en Pagina's naast elkaar */
  .voet { padding-top: 44px; }
  .voet-grid { grid-template-columns: 1fr 1fr; gap: 1.75rem 1.25rem; }
  .voet-merk { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 1rem; }
  .voet-logo { width: 68px; height: 68px; flex-shrink: 0; }
  .voet-merk p { font-size: 0.9rem; }
  .voet-contact { grid-column: 1 / -1; order: 3; }
  .voet .label { margin-bottom: 0.5rem; }
  .voet ul { gap: 0.2rem; font-size: 0.98rem; }
  .voet-onder { margin-top: 2rem; padding-top: 1.1rem; flex-direction: column; gap: 0.3rem; }
}
