/* ==========================================================================
   Oosting HorseRiding — gedeelde stylesheet
   Geëxtraheerd uit "Oosting HorseRiding.dc.html" (inline styles + <style>-blok).
   Het visuele ontwerp is ongewijzigd op één punt na: in fase 4 zijn de kleuren
   voor secundaire tekst een slag donkerder gezet, omdat ze onder 4,5:1 uitkwamen
   op de donkerste stop van de sectieverlopen (#E6DCC6). Typografie, maten en
   indeling zijn onaangeroerd. Zie drafts/notes-performance.md voor de metingen.
   ========================================================================== */

/* ---------------- FONTS (self-hosted, geen Google Fonts-domein) ----------- */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('fonts/outfit-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('fonts/outfit-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------------- BASIS ---------------- */
:root {
  --ohr-ink: #21201A;
  --ohr-olive: #6E7256;
  --ohr-olive-light: #CED1B6;
  --ohr-cream: #F7F4EC;
  --ohr-body: #FBF9F3;
  --ohr-text: #54514A;
  --ohr-muted: #646056;
  --ohr-line: rgba(33, 32, 26, 0.12);
  --ohr-max: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Outfit', system-ui, sans-serif;
  color: #21201A;
  background: #FBF9F3;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
input, select, textarea { font-family: inherit; }
::selection { background: #D7DAC4; }

img, video, iframe { max-width: 100%; }

@keyframes ohrUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ohrFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ohrDots { 0%, 80%, 100% { opacity: 0.25; } 40% { opacity: 1; } }
@keyframes ohrMenuOpen { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }

.ohr-grain {
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  opacity: 0.045; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Skip link, toegankelijkheid */
.ohr-skip {
  position: absolute; left: -9999px; top: 0; z-index: 300;
  background: #21201A; color: #F7F4EC; padding: 12px 20px;
  font: 600 13px 'Outfit', sans-serif; border-radius: 0 0 10px 0;
}
.ohr-skip:focus { left: 0; }

.ohr-visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

:focus-visible { outline: 2px solid #6E7256; outline-offset: 2px; }

.ohr-page { position: relative; min-height: 100vh; }
.ohr-wrap { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.ohr-wrap--narrow { max-width: 1120px; }
.ohr-wrap--text { max-width: 820px; }

/* ---------------- HEADER ---------------- */
.ohr-header {
  position: sticky; top: 0; z-index: 60;
  backdrop-filter: blur(14px);
  background: rgba(247, 244, 236, 0.86);
  border-bottom: 1px solid rgba(33, 32, 26, 0.08);
}
.ohr-header__inner {
  max-width: 1280px; margin: 0 auto; padding: 15px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.ohr-logo { display: flex; align-items: center; line-height: 1; }
.ohr-logo img { height: 66px; width: auto; display: block; }

.ohr-desktop-nav { display: flex; align-items: center; gap: 32px; }
.ohr-navlink {
  font: 500 13px 'Outfit', sans-serif; letter-spacing: 0.02em; color: #3A382F;
  transition: color 0.2s ease, transform 0.2s ease;
}
.ohr-navlink:hover { color: #60624B; transform: translateY(-2px); }

.ohr-langs {
  display: flex; align-items: center; gap: 10px;
  padding-left: 8px; border-left: 1px solid rgba(33, 32, 26, 0.14);
}
.ohr-lang {
  padding: 2px; font-size: 11.5px; letter-spacing: 0.1em;
  color: #646056; font-weight: 400;
  transition: color 0.2s ease, transform 0.2s ease;
}
.ohr-lang:hover { color: #60624B; transform: translateY(-2px); }
.ohr-lang[aria-current='true'] { color: #21201A; font-weight: 600; }

.ohr-social {
  display: flex; align-items: center; gap: 14px;
  padding-left: 14px; border-left: 1px solid rgba(33, 32, 26, 0.14);
}
.ohr-social a { display: flex; color: #3A382F; transition: color 0.2s ease, transform 0.2s ease; }
.ohr-social a:hover { color: #60624B; transform: translateY(-2px); }

.ohr-cta {
  display: inline-flex; align-items: center; padding: 11px 22px;
  background: #21201A; color: #F7F4EC;
  font: 600 12.5px 'Outfit', sans-serif; letter-spacing: 0.04em; border-radius: 10px;
  transition: background 0.25s ease, box-shadow 0.18s ease;
}
.ohr-cta:hover { background: #6E7256; box-shadow: 0 0 0 3px #21201A; }

.ohr-mobile-actions { display: none; align-items: center; gap: 8px; flex-shrink: 0; }
.ohr-mobile-actions a.ohr-icon {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 10px; color: #3A382F;
}
.ohr-cta--sm {
  display: inline-flex; align-items: center; padding: 10px 14px;
  background: #21201A; color: #F7F4EC;
  font: 600 11.5px 'Outfit', sans-serif; letter-spacing: 0.03em;
  border-radius: 10px; white-space: nowrap;
}
.ohr-burger {
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px; background: rgba(33, 32, 26, 0.05);
  border: 1px solid rgba(33, 32, 26, 0.12); border-radius: 12px;
  cursor: pointer; color: #21201A; flex-shrink: 0;
}

/* Mobiel menu, volledig scherm */
.ohr-mobile-menu {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 120;
  background: #F7F4EC; display: none; flex-direction: column;
}
.ohr-mobile-menu[data-open='true'] {
  display: flex; animation: ohrMenuOpen 0.3s cubic-bezier(.22, 1, .36, 1);
}
.ohr-mobile-menu__top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px; border-bottom: 1px solid rgba(33, 32, 26, 0.08); flex-shrink: 0;
}
.ohr-mobile-menu__top img { height: 44px; width: auto; display: block; }
.ohr-menu-close {
  width: 46px; height: 46px; display: flex; align-items: center; justify-content: center;
  background: rgba(33, 32, 26, 0.05); border: 1px solid rgba(33, 32, 26, 0.12);
  border-radius: 12px; cursor: pointer; color: #21201A;
}
.ohr-mobile-menu nav {
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  gap: 2px; padding: 24px 32px; overflow-y: auto;
}
.ohr-mobile-menu nav a {
  font: 600 clamp(24px, 7vw, 32px) 'Outfit', sans-serif; color: #21201A;
  padding: 17px 0; border-bottom: 1px solid rgba(33, 32, 26, 0.08);
}
.ohr-mobile-menu__langs { display: flex; align-items: center; gap: 24px; margin-top: 36px; }
.ohr-mobile-menu__langs a {
  padding: 6px 2px; font-size: 17px; letter-spacing: 0.08em;
  color: #646056; font-weight: 400; border-bottom: 0;
}
.ohr-mobile-menu__langs a[aria-current='true'] { color: #21201A; font-weight: 600; }

/* ---------------- HERO (home) ---------------- */
.ohr-main { position: relative; z-index: 2; display: block; }

.ohr-hero {
  position: relative; min-height: calc(100vh - 64px);
  display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden;
  background-color: #2B2A22;
  background-image: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.018) 0 22px, transparent 22px 44px);
}
/* De poster is het LCP-element: een echte <img> in de HTML, niet het
   poster-attribuut van de video. De video ligt eroverheen en wordt pas zichtbaar
   zodra hij daadwerkelijk speelt (site.js zet data-ohr-playing). Zonder
   JavaScript, bij prefers-reduced-motion of bij geweigerde autoplay blijft de
   poster staan: identieke compositie, geen layout shift. */
.ohr-hero-poster, .ohr-hero-poster img, .ohr-hero-video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  display: block;
}
.ohr-hero-video {
  opacity: 0; transition: opacity 0.6s ease;
  transform: translateZ(0); backface-visibility: hidden;
}
.ohr-hero-video[data-ohr-playing='true'] { opacity: 1; }
.ohr-hero__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20, 19, 15, 0.4) 0%, rgba(20, 19, 15, 0.08) 40%, rgba(20, 19, 15, 0.72) 100%);
}
.ohr-hero__body {
  position: relative; z-index: 2; max-width: 1280px; width: 100%; margin: 0 auto;
  padding: 0 40px 64px; color: #F6F3EA;
}
.ohr-eyebrow-row { display: flex; align-items: center; margin-bottom: 26px; }
.ohr-eyebrow {
  font: 600 11.5px 'Outfit', sans-serif; letter-spacing: 0.3em;
  text-transform: uppercase; color: #CED1B6;
}
.ohr-hero h1 {
  font-family: 'Outfit', sans-serif; font-weight: 700;
  font-size: clamp(46px, 8vw, 108px); line-height: 0.98; margin: 0;
  letter-spacing: -0.01em; max-width: 14ch;
}
.ohr-hero h1 em { font-style: italic; color: #CED1B6; }
.ohr-hero__foot {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 32px; margin-top: 36px;
}
.ohr-hero__lead {
  font-size: clamp(16px, 1.5vw, 18.5px); line-height: 1.65; color: #E7E4D8;
  max-width: 46ch; font-weight: 300; margin: 0;
}
.ohr-hero__buttons { display: flex; gap: 14px; flex-wrap: wrap; }
.ohr-btn-ghost {
  display: inline-flex; align-items: center; padding: 15px 28px;
  background: rgba(246, 243, 234, 0.07); color: #F6F3EA;
  border: 1px solid rgba(246, 243, 234, 0.55);
  font: 600 13.5px 'Outfit', sans-serif; letter-spacing: 0.03em;
  border-radius: 4px; backdrop-filter: blur(2px);
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, box-shadow 0.18s ease;
}
.ohr-btn-ghost:hover, .ohr-btn-ghost:focus {
  background: rgba(206, 209, 182, 0.28); border-color: #F6F3EA; color: #fff;
  box-shadow: 0 0 0 3px #F6F3EA;
}

/* ---------------- SECTIES ---------------- */
.ohr-sec { padding: 120px 0; scroll-margin-top: 80px; }
.ohr-sec--tight { padding: 118px 0; }
.ohr-sec--g1 { background: linear-gradient(180deg, #FBF9F3 0%, #F1EADB 100%); }
.ohr-sec--g2 { background: linear-gradient(180deg, #F1EADB 0%, #E7DDC9 100%); }
.ohr-sec--g3 { background: linear-gradient(180deg, #E7DDC9 0%, #F4EEE1 100%); }
.ohr-sec--g4 { background: linear-gradient(180deg, #F4EEE1 0%, #EAE1CF 100%); }
.ohr-sec--g5 { background: linear-gradient(180deg, #EAE1CF 0%, #E6DCC6 100%); }
.ohr-sec--g6 { background: linear-gradient(180deg, #E6DCC6 0%, #E0D5BF 100%); padding: 82px 0 90px; }
.ohr-sec--cream { background: #F7F4EC; }
.ohr-sec--sand { background: #EDE8DB; }

.ohr-sechead { display: flex; align-items: baseline; gap: 16px; margin-bottom: 56px; }
.ohr-sechead--sm { margin-bottom: 30px; }
.ohr-sechead__num {
  font-family: 'Outfit', sans-serif; font-size: 20px; font-weight: 600;
  color: #60624B; font-style: italic;
}
.ohr-sechead__label {
  font: 600 11.5px 'Outfit', sans-serif; letter-spacing: 0.26em;
  text-transform: uppercase; color: #646056;
}
.ohr-sechead__rule { flex: 1; height: 1px; background: rgba(33, 32, 26, 0.12); }

.ohr-h2 {
  font-family: 'Outfit', sans-serif; font-weight: 700;
  font-size: clamp(36px, 4.6vw, 58px); line-height: 1.04; color: #21201A;
  margin: 0; letter-spacing: -0.01em;
}
.ohr-h2--wide { line-height: 1.02; }
.ohr-h3 {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 27px;
  color: #21201A; margin: 0 0 14px;
}
.ohr-lead { font-size: 17.5px; line-height: 1.78; color: #54514A; margin: 30px 0 0; font-weight: 300; }
.ohr-lead + .ohr-lead { margin-top: 20px; }
.ohr-body { font-size: 15px; line-height: 1.7; color: #54514A; font-weight: 300; }

.ohr-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.ohr-grid-story { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 80px; align-items: center; }
.ohr-grid-loc { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: stretch; }
.ohr-stack { display: flex; flex-direction: column; gap: 18px; }

.ohr-figure {
  aspect-ratio: 16 / 10; position: relative; overflow: hidden; border-radius: 14px;
  background: #E7E1D3; border: 1px solid rgba(110, 114, 86, 0.16);
}
.ohr-figure img, .ohr-cover {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
}

.ohr-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ohr-stat {
  background: rgba(255, 255, 255, 0.62); border: 1px solid rgba(110, 114, 86, 0.16);
  border-radius: 16px; padding: 20px 16px; text-align: center;
  box-shadow: 0 18px 42px -32px rgba(33, 32, 26, 0.36); backdrop-filter: blur(12px);
}
.ohr-stat__value {
  font-family: 'Outfit', sans-serif; font-size: 34px; font-weight: 600;
  color: #60624B; line-height: 1;
}
.ohr-stat__value span { font-size: 17px; }
.ohr-stat__value--sm { font-size: 24px; }
.ohr-stat__label {
  font: 500 10px 'Outfit', sans-serif; letter-spacing: 0.08em;
  color: #646056; margin-top: 8px; text-transform: uppercase;
}

/* ---------------- LOOKBOOK ---------------- */
.ohr-lookbook-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; flex-wrap: wrap; margin-bottom: 48px;
}
.ohr-lookbook-head p {
  font-size: 15px; line-height: 1.7; color: #646054; max-width: 340px;
  font-weight: 300; margin: 0;
}
.ohr-collage { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 218px; gap: 14px; }
.ohr-collage figure {
  margin: 0; position: relative; overflow: hidden; border-radius: 14px; background: #E1D7C3;
}
.ohr-collage img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .65s cubic-bezier(.22, 1, .36, 1);
}
.ohr-collage figure:hover img { transform: scale(1.05); }
.ohr-c7 { grid-column: span 7; grid-row: span 2; }
.ohr-c5 { grid-column: span 5; }
.ohr-c4-2 { grid-column: span 4; grid-row: span 2; }
.ohr-c4 { grid-column: span 4; }
.ohr-c12 { grid-column: span 12; }

/* ---------------- KEUZEKAARTEN ---------------- */
.ohr-center { text-align: center; max-width: 620px; margin: 0 auto 56px; }
.ohr-center p {
  font-size: 12px; line-height: 1.6; letter-spacing: 0.02em;
  color: #646056; margin: 16px 0 0; font-weight: 400;
}
.ohr-card {
  position: relative; overflow: hidden; background: #fff;
  border: 1px solid rgba(33, 32, 26, 0.1); border-radius: 16px;
  display: flex; flex-direction: column;
  transition: transform .42s cubic-bezier(.22, 1, .36, 1), box-shadow .42s ease, border-color .3s ease;
}
.ohr-card:hover, .ohr-card:focus-within {
  border-color: #6E7256; transform: translateY(-14px) scale(1.025);
  box-shadow: 0 34px 66px -32px rgba(33, 32, 26, 0.55);
}
.ohr-card__media { aspect-ratio: 16 / 10; position: relative; overflow: hidden; background: #E7E1D3; }
.ohr-card__media img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: center 40%; display: block; transition: transform .6s cubic-bezier(.22, 1, .36, 1);
}
.ohr-card__body { padding: 38px 38px 40px; flex: 1; display: flex; flex-direction: column; }
.ohr-card__kicker {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.22em;
  text-transform: uppercase; color: #60624B;
}
.ohr-card__title {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 36px;
  line-height: 1.08; color: #21201A; margin: 14px 0 0;
}
.ohr-card__text {
  font-size: 15.5px; line-height: 1.7; color: #54514A; margin: 14px 0 28px;
  font-weight: 300; flex: 1;
}
.ohr-card__more {
  display: inline-flex; align-items: center; gap: 10px;
  font: 600 13px 'Outfit', sans-serif; letter-spacing: 0.04em; color: #21201A;
}
.ohr-card__more span { font-size: 16px; color: #60624B; }

/* Hele kaart klikbaar. De link in de titel legt een onzichtbaar vlak over de kaart
   ("stretched link"), dus er is één echte link met de titel als toegankelijke naam
   en het werkt zonder JavaScript. De focusring blijft om de titeltekst staan. */
.ohr-card { cursor: pointer; }
.ohr-card__title a { color: inherit; text-decoration: none; }
.ohr-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.ohr-card:hover .ohr-card__title, .ohr-card:focus-within .ohr-card__title { color: #4E5140; }

/* Kleinere variant, gebruikt onder het offerteformulier. */
.ohr-grid-2--sm { gap: 22px; max-width: 900px; margin: 0 auto; }
.ohr-card--sm .ohr-card__body { padding: 26px 28px 28px; }
.ohr-card--sm .ohr-card__title { font-size: 26px; margin-top: 10px; }
.ohr-card--sm .ohr-card__text { font-size: 14.5px; margin: 10px 0 20px; }
.ohr-card--sm .ohr-card__media { aspect-ratio: 16 / 9; }
.ohr-card--sm:hover, .ohr-card--sm:focus-within { transform: translateY(-8px) scale(1.015); }

/* ---------------- LOCATIE ---------------- */
.ohr-map {
  position: relative; min-height: 440px; overflow: hidden; background: #E2DFD2;
  border: 1px solid rgba(110, 114, 86, 0.16); border-radius: 14px;
  box-shadow: 0 26px 56px -38px rgba(33, 32, 26, 0.55);
  display: flex; align-items: center; justify-content: center;
}
.ohr-map--sm { min-height: 210px; flex: 1; background: #D8D6CB; box-shadow: none; }
/* Kaart naast de praktische gegevens op de locatiepagina: even hoog als het
   paneel ernaast, niet de volle hoogte van de home-variant. */
.ohr-map--side { min-height: 0; aspect-ratio: 16 / 10; border-radius: 10px; }
.ohr-satblok { display: flex; flex-direction: column; }
/* Het iframe vult het kaartvlak. Met alleen height:100% blijft het op zijn eigen
   hoogte van 150px steken, want het kaartvlak heeft geen vaste hoogte; absoluut
   positioneren werkt hier wel, want .ohr-map is position:relative. */
.ohr-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Pijltje bij een link die in een nieuw tabblad opent. */
.ohr-btn__ext { margin-left: 9px; font-size: 15px; line-height: 1; }
.ohr-map img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ohr-map__btn {
  position: absolute; left: 22px; bottom: 22px;
  display: inline-flex; align-items: center; padding: 11px 20px;
  background: rgba(33, 32, 26, 0.86); color: #F7F4EC;
  font: 600 11.5px 'Outfit', sans-serif; letter-spacing: 0.04em;
  border-radius: 12px; backdrop-filter: blur(12px);
  box-shadow: 0 18px 40px -20px rgba(33, 32, 26, 0.65);
}
.ohr-infobox { background: #fff; border: 1px solid rgba(33, 32, 26, 0.1); padding: 28px 30px; }
.ohr-infobox__label {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.18em;
  text-transform: uppercase; color: #60624B; margin-bottom: 18px;
}
.ohr-deflist { display: flex; flex-direction: column; gap: 15px; margin: 0; }
.ohr-defrow { display: flex; gap: 14px; font-size: 14.5px; line-height: 1.5; color: #3A382F; }
.ohr-defrow dt { color: #60624B; font-weight: 700; min-width: 38px; margin: 0; }
.ohr-defrow dd { font-weight: 300; margin: 0; }

/* ---------------- FINAL CTA ---------------- */
.ohr-final { position: relative; padding: 120px 0; overflow: hidden; }
.ohr-final__inner { position: relative; max-width: 820px; margin: 0 auto; padding: 0 40px; text-align: center; }
.ohr-final__kicker {
  font-family: 'Outfit', sans-serif; font-style: italic; font-size: 21px;
  color: #60624B; margin-bottom: 18px;
}
.ohr-final h2 {
  font-family: 'Outfit', sans-serif; font-weight: 700;
  font-size: clamp(36px, 5.4vw, 68px); line-height: 1.02; color: #21201A;
  margin: 0; letter-spacing: -0.01em;
}
.ohr-final p {
  font-size: 16px; line-height: 1.7; color: #646054; margin: 24px auto 40px;
  max-width: 480px; font-weight: 300;
}
.ohr-final__buttons { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.ohr-btn-dark {
  display: inline-flex; align-items: center; padding: 16px 32px;
  background: #21201A; color: #F7F4EC; font: 600 14px 'Outfit', sans-serif;
  letter-spacing: 0.03em; border: none; border-radius: 12px; cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.18s ease;
}
.ohr-btn-dark:hover { background: #6E7256; color: #F7F4EC; box-shadow: 0 0 0 3px #21201A; }
.ohr-btn-outline {
  display: inline-flex; align-items: center; padding: 16px 32px;
  background: transparent; color: #21201A; border: 1px solid rgba(33, 32, 26, 0.3);
  font: 600 14px 'Outfit', sans-serif; letter-spacing: 0.03em; border-radius: 12px; cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.18s ease;
}
.ohr-btn-outline:hover { background: rgba(110, 114, 86, 0.14); border-color: #6E7256; box-shadow: 0 0 0 3px #21201A; }
/* Kleinere knopvariant, o.a. voor "Lees meer over de locatie en de omgeving". */
.ohr-btn--sm { padding: 12px 22px; font-size: 13px; border-radius: 10px; }

/* Bevestiging die na het verzenden op de plek van het formulier komt te staan. */
.ohr-form-done {
  background: #fff; border: 1px solid rgba(110, 114, 86, 0.3); border-radius: 16px;
  padding: 44px 40px; text-align: center; outline: none;
}
.ohr-form-done h3 {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 28px;
  line-height: 1.15; color: #21201A; margin: 0 0 14px;
}
.ohr-form-done p { font-size: 16px; line-height: 1.7; color: #46443C; margin: 0; font-weight: 300; }
.ohr-form-error {
  margin: 16px 0 0; padding: 14px 16px; border-radius: 10px;
  background: #F6E7E2; border: 1px solid #9B4A2F; color: #7A3722;
  font-size: 14.5px; line-height: 1.6;
}

/* ---------------- CONTACT / REVIEWS ---------------- */
.ohr-contact-card {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 30px; background: #21201A; color: #F6F3EA; border-radius: 18px;
  padding: 40px 46px; margin-bottom: 66px;
  box-shadow: 0 30px 64px -34px rgba(33, 32, 26, 0.6);
}
.ohr-contact-card__text { flex: 1; min-width: 280px; }
.ohr-contact-card__label {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.26em;
  text-transform: uppercase; color: #A6AA88; margin-bottom: 14px;
}
.ohr-contact-card p {
  font-family: 'Outfit', sans-serif; font-size: clamp(21px, 2.4vw, 28px);
  line-height: 1.34; font-weight: 500; margin: 0;
}
.ohr-contact-card__actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.ohr-btn-phone {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 18px 30px; background: #6E7256; color: #F7F4EC; border-radius: 12px;
  font: 600 16px 'Outfit', sans-serif; letter-spacing: 0.02em;
  transition: background 0.25s ease, box-shadow 0.18s ease;
}
.ohr-btn-phone:hover { background: #7E8364; box-shadow: 0 0 0 3px rgba(246, 243, 234, 0.25); }
.ohr-btn-wa {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 16px 30px; background: rgba(246, 243, 234, 0.12); color: #F7F4EC;
  border: 1px solid rgba(246, 243, 234, 0.22); border-radius: 12px;
  font: 600 15px 'Outfit', sans-serif; letter-spacing: 0.02em;
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.18s ease;
}
.ohr-btn-wa:hover {
  background: rgba(246, 243, 234, 0.2); border-color: rgba(246, 243, 234, 0.42);
  box-shadow: 0 0 0 3px rgba(246, 243, 234, 0.18);
}

.ohr-reviews-head { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.ohr-reviews-head__label {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.24em;
  text-transform: uppercase; color: #646056;
}
.ohr-reviews-head__rule { flex: 1; height: 1px; background: rgba(33, 32, 26, 0.14); }
.ohr-reviews-head__src { font: 500 12px 'Outfit', sans-serif; color: #646056; }

.ohr-reviews-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ohr-review-card {
  background: rgba(251, 247, 239, 0.92); border: 1px solid rgba(33, 32, 26, 0.08);
  border-radius: 14px; padding: 24px 26px;
  box-shadow: 0 18px 44px -36px rgba(33, 32, 26, 0.42);
}
.ohr-review-card--wide { grid-column: 1 / -1; text-align: center; padding: 30px 34px; }
.ohr-review-card--wide .ohr-review-text { font-size: 19px; line-height: 1.6; }
.ohr-review-card--wide .ohr-review-authorline { justify-content: center; }
.ohr-review-authorline { display: flex; align-items: center; gap: 11px; margin-top: 2px; }
.ohr-review-authorline > div { text-align: left; }
.ohr-review-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: 0 0 36px; display: block; }
.ohr-review-avatar--initial {
  display: flex; align-items: center; justify-content: center;
  background: #6E7256; color: #fff; font: 600 15px 'Outfit', sans-serif;
}
.ohr-review-stars { color: #775C23; letter-spacing: 3px; font-size: 12px; }
.ohr-review-text {
  font-family: 'Outfit', sans-serif; font-size: 16px; line-height: 1.55;
  color: #3A382F; font-style: italic; margin: 13px 0 16px;
}
.ohr-review-author { font: 600 12.5px 'Outfit', sans-serif; color: #21201A; }
.ohr-review-source { font: 400 11.5px 'Outfit', sans-serif; color: #65604F; margin-top: 2px; }

.ohr-social-row {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin-top: 34px; flex-wrap: wrap;
}
.ohr-social-label { font: 500 13px 'Outfit', sans-serif; color: #646056; }
.ohr-social-button {
  display: inline-flex; align-items: center; gap: 8px;
  font: 600 13px 'Outfit', sans-serif; letter-spacing: 0.03em; color: #21201A;
  background: rgba(251, 247, 239, 0.74); border: 1px solid rgba(33, 32, 26, 0.12);
  border-radius: 999px; padding: 11px 17px;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease, color 0.2s ease;
}
.ohr-social-button:hover { background: #FBF7EF; border-color: #6E7256; transform: translateY(-2px); }
.ohr-social-button svg { width: 16px; height: 16px; flex: 0 0 16px; }
.ohr-social-button--brand { color: #60624B; }
.ohr-social-button--brand:hover { color: #21201A; }

/* ---------------- SUBPAGINA'S ---------------- */
.ohr-subhero {
  position: relative; min-height: 54vh; display: flex; align-items: flex-end; overflow: hidden;
  background-color: #D7CFBE;
  background-image: repeating-linear-gradient(135deg, rgba(110, 114, 86, 0.07) 0 16px, transparent 16px 32px);
}
.ohr-subhero--alt {
  background-color: #D5D4C7;
  background-image: repeating-linear-gradient(135deg, rgba(110, 114, 86, 0.06) 0 16px, transparent 16px 32px);
}
/* Het heldbeeld zit sinds fase 4 in een <picture> (AVIF/WebP/JPEG). Zowel het
   directe <img> als de variant binnen <picture> wordt hier gedekt. */
.ohr-subhero > img, .ohr-subhero__img, .ohr-subhero__img img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: center 42%; display: block;
}
.ohr-subhero__scrim {
  position: absolute; inset: 0;
  /* Fase 4: het scrim liep van 0,20 naar 0,68 en dat was niet genoeg voor elke
     foto. Gemeten tegen de lichtste 10% van de pixels achter het kickerlabel liep
     het uiteen van 8,87:1 (locatie, donker beeld) tot 3,61:1 (human wellbeing,
     lichte foto). Eén tekstkleur kan dat niet opvangen, want het verschil zit in
     het beeld, niet in de tekst.
     De bovenste 45% blijft daarom precies zoals hij was (0,20, foto blijft open);
     alleen de onderste helft, waar het tekstblok staat, wordt dieper. */
  background: linear-gradient(180deg,
    rgba(20, 19, 15, 0.2) 0%,
    rgba(20, 19, 15, 0.5) 45%,
    rgba(20, 19, 15, 0.82) 100%);
}
.ohr-subhero__body { position: relative; max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 40px 56px; }
.ohr-subhero__kicker { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
/* Fase 4: het kickerlabel staat halverwege het scrim, waar het beeld nog licht
   is. Gemeten tegen de lichtste 10% van de pixels erachter kwam #CED1B6 op
   3,82:1 bij 11,5 px. Een lichtere tint van dezelfde kleur brengt het op 4,62:1.
   Alleen hier, niet in de home-hero: daar staat het label onderin het scrim en
   haalt #CED1B6 ruim de norm. */
.ohr-subhero__kicker .ohr-eyebrow { color: #E2E4D4; }
.ohr-subhero h1 {
  font-family: 'Outfit', sans-serif; font-weight: 700;
  font-size: clamp(44px, 6.4vw, 82px); line-height: 0.98; color: #F6F3EA;
  margin: 0; letter-spacing: -0.01em;
}

/* Breadcrumbs */
.ohr-breadcrumb { background: #F7F4EC; border-bottom: 1px solid rgba(33, 32, 26, 0.07); }
.ohr-breadcrumb ol {
  max-width: 1280px; margin: 0 auto; padding: 14px 40px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  list-style: none; font: 400 12.5px 'Outfit', sans-serif; color: #65604F;
}
.ohr-breadcrumb a { color: #60624B; }
.ohr-breadcrumb a:hover { color: #21201A; text-decoration: underline; }
.ohr-breadcrumb li[aria-current='page'] { color: #21201A; }
.ohr-breadcrumb li + li::before { content: '›'; margin-right: 8px; color: #656051; }

.ohr-split { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.ohr-split--even { gap: 24px; }
.ohr-split--mid { gap: 52px; align-items: center; }
.ohr-kicker {
  font: 600 11.5px 'Outfit', sans-serif; letter-spacing: 0.22em;
  text-transform: uppercase; color: #60624B;
}
.ohr-h2-sub {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 40px;
  line-height: 1.06; color: #21201A; margin: 14px 0 28px; letter-spacing: -0.01em;
}
.ohr-h2-sub--price { font-size: 38px; margin: 14px 0 10px; }

.ohr-ticks { display: flex; flex-direction: column; gap: 15px; list-style: none; margin: 0; padding: 0; }
.ohr-ticks li {
  display: flex; gap: 14px; font-size: 16px; line-height: 1.55;
  color: #3A382F; font-weight: 300;
}
.ohr-ticks li::before { content: '›'; color: #60624B; font-weight: 700; flex-shrink: 0; }

.ohr-checks { display: flex; flex-direction: column; gap: 12px; list-style: none; margin: 0; padding: 0; }
.ohr-checks li {
  display: flex; gap: 12px; font-size: 14.5px; color: #3A382F; font-weight: 300;
}
.ohr-checks li::before { content: '✓'; color: #60624B; font-weight: 700; }

.ohr-panel { background: #EDE8DB; padding: 36px 38px; }
.ohr-panel--lg { padding: 38px 40px; }
.ohr-panel--white { background: #fff; border: 1px solid rgba(33, 32, 26, 0.1); }
.ohr-panel__label {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.2em;
  text-transform: uppercase; color: #60624B; margin-bottom: 24px;
}
.ohr-rhythm { display: flex; flex-direction: column; gap: 20px; }
.ohr-rhythm__row { display: flex; align-items: baseline; gap: 18px; }
.ohr-rhythm__key {
  font-family: 'Outfit', sans-serif; font-size: 30px; font-weight: 600;
  color: #60624B; min-width: 66px;
}
.ohr-rhythm__key--sm { min-width: 44px; }
.ohr-rhythm__val { font-size: 15px; color: #3A382F; font-weight: 300; }

.ohr-note {
  font-size: 14px; line-height: 1.65; color: #565B43; font-weight: 300; margin: 0;
  background: #EDF0E4; padding: 16px 18px; border-left: 2px solid #6E7256;
}
.ohr-note strong { font-weight: 600; }
.ohr-callout {
  background: #EDF0E4; border-left: 2px solid #6E7256; padding: 20px 26px;
  display: flex; gap: 13px; align-items: center;
}
.ohr-callout span:first-child { color: #60624B; font-size: 18px; }
.ohr-callout span:last-child { font-size: 14.5px; color: #565B43; font-weight: 400; }

.ohr-facts { display: flex; flex-direction: column; gap: 13px; margin: 0; }
.ohr-facts__row {
  display: flex; justify-content: space-between; gap: 16px; font-size: 14.5px;
  border-bottom: 1px solid rgba(33, 32, 26, 0.08); padding-bottom: 13px;
}
.ohr-facts__row:last-child { border-bottom: 0; padding-bottom: 0; }
.ohr-facts dt { color: #646054; font-weight: 300; margin: 0; }
.ohr-facts dd { color: #21201A; font-weight: 600; margin: 0; text-align: right; }

.ohr-prices { display: flex; gap: 18px; flex-wrap: wrap; }
.ohr-price {
  background: #fff; border: 1px solid rgba(33, 32, 26, 0.1); padding: 24px 28px;
  flex: 1; min-width: 150px;
}
.ohr-price__label {
  font: 500 11.5px 'Outfit', sans-serif; color: #646056;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.ohr-price__value {
  font-family: 'Outfit', sans-serif; font-size: 38px; font-weight: 600;
  color: #60624B; margin-top: 4px;
}
.ohr-price__value--sm { font-size: 30px; margin-top: 6px; }
.ohr-price__value span { font-size: 14px; color: #65604F; font-weight: 400; }
.ohr-fineprint { font-size: 13px; color: #646056; font-weight: 300; margin: 16px 0 0; }
.ohr-fineprint--top { margin: 0 0 26px; }
.ohr-fineprint--terms {
  font-size: 12.5px; color: #646056; margin: 18px 0 0; font-weight: 300;
  border-top: 1px solid rgba(33, 32, 26, 0.08); padding-top: 14px;
}

.ohr-quote-lead {
  font-family: 'Outfit', sans-serif; font-size: clamp(24px, 2.8vw, 32px);
  line-height: 1.46; color: #3A382F; font-weight: 500; margin: 0; font-style: italic;
}

/* FAQ */
.ohr-faq { max-width: 820px; margin: 0 auto; }
.ohr-faq__item {
  border-bottom: 1px solid rgba(33, 32, 26, 0.1); padding: 26px 0;
}
.ohr-faq__item h3 {
  font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 20px;
  line-height: 1.35; color: #21201A; margin: 0 0 12px;
}
.ohr-faq__item p { font-size: 15.5px; line-height: 1.75; color: #54514A; font-weight: 300; margin: 0; }
.ohr-faq__item p + p { margin-top: 12px; }

/* Prose, gebruikt door de legal-pagina's */
.ohr-prose { max-width: 820px; margin: 0 auto; }
.ohr-prose h2 {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 28px;
  line-height: 1.2; color: #21201A; margin: 44px 0 14px; letter-spacing: -0.01em;
}
.ohr-prose h3 {
  font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 19px;
  color: #21201A; margin: 28px 0 10px;
}
.ohr-prose p, .ohr-prose li { font-size: 15.5px; line-height: 1.78; color: #54514A; font-weight: 300; }
.ohr-prose a { color: #60624B; text-decoration: underline; }
.ohr-prose table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14.5px; }
.ohr-prose th, .ohr-prose td {
  text-align: left; padding: 11px 12px; border-bottom: 1px solid rgba(33, 32, 26, 0.1); font-weight: 300;
}
.ohr-prose th { font-weight: 600; color: #21201A; }
.ohr-tablewrap { overflow-x: auto; }

/* ---------------- OFFERTEFORMULIER ---------------- */
.ohr-form-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: 40px; align-items: start; }
.ohr-form {
  background: rgba(255, 255, 255, 0.76); border: 1px solid rgba(33, 32, 26, 0.1);
  border-radius: 22px; padding: 34px 36px;
  display: flex; flex-direction: column; gap: 18px;
  backdrop-filter: blur(18px); box-shadow: 0 34px 80px -54px rgba(33, 32, 26, 0.55);
}
.ohr-field { display: flex; flex-direction: column; gap: 7px; }
.ohr-field > span, .ohr-field > label {
  font: 600 10.5px 'Outfit', sans-serif; letter-spacing: 0.05em;
  color: #646054; text-transform: uppercase;
}
.ohr-field input, .ohr-field select, .ohr-field textarea {
  width: 100%; padding: 12px 14px; border: 1px solid rgba(33, 32, 26, 0.18);
  border-radius: 12px; background: #fff; font-size: 14.5px; color: #21201A;
}
.ohr-field textarea { resize: vertical; font-family: 'Outfit', sans-serif; }
.ohr-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* Het toestemmingsvinkje. Het label staat naast het vakje in plaats van erboven,
   en in gewone leesbare tekst: dit is een keuze die de bezoeker moet begrijpen,
   geen veldnaam. Daarom wordt de uppercase-stijl van .ohr-field > label hier
   teruggedraaid. Het raakvlak is de hele labeltekst, niet alleen het vakje. */
.ohr-field--check > label {
  display: flex; align-items: flex-start; gap: 11px; cursor: pointer;
  font: 400 14.5px/1.6 'Outfit', sans-serif; letter-spacing: 0;
  color: #21201A; text-transform: none;
}
.ohr-field--check input[type="checkbox"] {
  width: 18px; height: 18px; flex: 0 0 18px; margin: 3px 0 0;
  padding: 0; accent-color: #6E7256; cursor: pointer;
}
.ohr-honeypot { position: absolute; left: -9999px; }
.ohr-form__submit {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 16px 30px; background: #21201A; color: #F7F4EC; border: none;
  border-radius: 12px; font: 600 14px 'Outfit', sans-serif; letter-spacing: 0.03em;
  cursor: pointer; transition: background 0.25s ease, box-shadow 0.18s ease;
}
.ohr-form__submit:hover { background: #6E7256; box-shadow: 0 0 0 3px #21201A; }
.ohr-form__privacy { font-size: 12.5px; line-height: 1.65; color: #65604F; font-weight: 300; margin: 0; }
.ohr-form__privacy a { color: #60624B; text-decoration: underline; }

.ohr-weeks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ohr-week {
  background: #fff; border: 1px solid rgba(33, 32, 26, 0.12); border-radius: 14px;
  padding: 14px 12px; text-align: left; font-family: 'Outfit', sans-serif;
}
.ohr-week__range { display: block; font-size: 20px; font-weight: 700; line-height: 1.05; color: #21201A; }
.ohr-week__status { display: block; font-size: 11px; margin-top: 6px; color: #65604F; }
.ohr-agenda-note { font-size: 13px; line-height: 1.6; color: #65604F; font-weight: 300; margin: 14px 0 0; }

/* ---------------- FOOTER ---------------- */
.ohr-footer {
  position: relative; z-index: 2;
  background: linear-gradient(180deg, #26241C 0%, #1B1A14 150px);
  padding: 72px 0 32px;
}
.ohr-footer__grid {
  max-width: 1280px; margin: 0 auto; padding: 0 40px;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 44px;
}
.ohr-footer__brand img { height: 104px; width: auto; display: block; margin-bottom: 20px; }
.ohr-footer__brand p {
  font-size: 13.5px; line-height: 1.7; color: #A39F92; margin: 0;
  font-weight: 300; max-width: 240px;
}
.ohr-footer__label {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.18em;
  text-transform: uppercase; color: #9DA083; margin-bottom: 18px;
}
.ohr-footer__list { display: flex; flex-direction: column; gap: 12px; }
.ohr-footer__list a, .ohr-footer__list button {
  font: 400 14px 'Outfit', sans-serif; color: #CFCCBF; text-align: left;
  background: none; border: none; padding: 0; cursor: pointer;
}
.ohr-footer__list a:hover, .ohr-footer__list button:hover { color: #fff; }
.ohr-footer__list a[aria-current='true'] { color: #fff; font-weight: 600; }
.ohr-footer__bottom {
  max-width: 1280px; margin: 48px auto 0; padding: 24px 40px 0;
  border-top: 1px solid rgba(246, 243, 234, 0.12);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
}
/* Fase 4: #8B8779 haalde 4,32:1 tegen de bovenste stop van het footerverloop.
   Een fractie lichter maakt het over het hele verloop minstens 4,60:1. */
.ohr-footer__bottom span, .ohr-footer__bottom a { font-size: 12.5px; color: #8F8C7E; font-weight: 300; }
.ohr-footer__bottom a:hover { color: #fff; }
.ohr-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 18px; }

/* ---------------- 404 ---------------- */
.ohr-404 { padding: 120px 0 100px; background: #F7F4EC; text-align: center; }
.ohr-404 h1 {
  font-family: 'Outfit', sans-serif; font-weight: 700; font-size: clamp(40px, 6vw, 72px);
  line-height: 1.02; color: #21201A; margin: 0 0 18px; letter-spacing: -0.01em;
}
.ohr-404 p { font-size: 16px; line-height: 1.7; color: #646054; font-weight: 300; margin: 0 auto 34px; max-width: 460px; }
.ohr-404__langs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; max-width: 900px; margin: 0 auto; text-align: left; }
.ohr-404__col { background: #fff; border: 1px solid rgba(33, 32, 26, 0.1); border-radius: 14px; padding: 22px 24px; }
.ohr-404__col h2 { font: 600 12px 'Outfit', sans-serif; letter-spacing: 0.18em; text-transform: uppercase; color: #60624B; margin: 0 0 14px; }
.ohr-404__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.ohr-404__col a { font-size: 14.5px; color: #3A382F; font-weight: 300; }
.ohr-404__col a:hover { color: #60624B; text-decoration: underline; }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 900px) {
  .ohr-reviews-grid { grid-template-columns: 1fr; }
  .ohr-review-card--wide { grid-column: auto; }
  .ohr-desktop-nav { display: none !important; }
  .ohr-burger { display: inline-flex !important; }
  .ohr-mobile-actions { display: flex !important; }
  .ohr-404__langs { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 901px) {
  .ohr-mobile-menu { display: none !important; }
}
@media (max-width: 760px) {
  .ohr-wrap, .ohr-hero__body, .ohr-subhero__body, .ohr-final__inner { padding-left: 20px !important; padding-right: 20px !important; }
  .ohr-header__inner, .ohr-footer__grid, .ohr-footer__bottom, .ohr-breadcrumb ol { padding-left: 18px !important; padding-right: 18px !important; }
  .ohr-grid-story, .ohr-grid-2, .ohr-grid-loc, .ohr-split, .ohr-form-grid { grid-template-columns: 1fr !important; gap: 26px !important; }
  .ohr-footer__grid { grid-template-columns: 1fr 1fr !important; gap: 30px !important; }
  .ohr-collage { grid-template-columns: repeat(2, 1fr) !important; grid-auto-rows: 42vw !important; gap: 10px !important; }
  .ohr-collage figure { grid-column: auto !important; grid-row: auto !important; }
  .ohr-sec, .ohr-sec--tight, .ohr-final { padding-top: 66px !important; padding-bottom: 66px !important; }
  .ohr-logo img { height: 52px !important; }
  .ohr-map { min-height: 300px !important; }
  .ohr-weeks { grid-template-columns: repeat(2, 1fr) !important; }
  input, select, textarea { font-size: 16px !important; }
}
@media (max-width: 520px) {
  .ohr-footer__grid { grid-template-columns: 1fr !important; }
  .ohr-404__langs { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important; scroll-behavior: auto !important;
  }
  /* De hero-video verdwijnt; de posterafbeelding eronder blijft staan, dus de
     hero houdt exact dezelfde compositie. site.js laadt de video in dit geval
     sowieso niet, dit is de vangnet-regel voor als hij toch al draait. */
  .ohr-hero-video { display: none !important; }
  /* Ook de hover-zoom op collage- en kaartbeelden staat uit bij reduce. */
  .ohr-collage figure:hover img, .ohr-collage figure:hover picture img,
  .ohr-card:hover .ohr-card__media img, .ohr-card:hover .ohr-card__media picture img {
    transform: none !important;
  }
}

/* ======================================================= FAQ-sectiekop */
.ohr-faq__intro { max-width: 820px; margin: 0 auto 40px; }

/* ============================================== consentbanner (consent.js)
   Vaste overlay onderaan, dus geen layout shift van de inhoud erboven.
   Accepteren en weigeren delen exact dezelfde klasse in een grid van twee
   gelijke kolommen: gelijke grootte, gelijke kleur, gelijke plek. */
.ohr-consent {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
  padding: 16px; display: flex; justify-content: center;
  pointer-events: none;
}
.ohr-consent[data-open="false"] { display: none; }
.ohr-consent__box {
  pointer-events: auto;
  width: 100%; max-width: 720px; max-height: calc(100vh - 32px); overflow-y: auto;
  background: #F7F4EC; color: #21201A;
  border: 1px solid rgba(33, 32, 26, 0.14); border-radius: 18px;
  box-shadow: 0 18px 48px rgba(33, 32, 26, 0.22);
  padding: 26px 28px 24px;
}
.ohr-consent__title {
  font: 500 21px/1.25 'Outfit', sans-serif; letter-spacing: -0.01em;
  color: #21201A; margin: 0 0 10px;
}
.ohr-consent__intro {
  font: 300 14.5px/1.7 'Outfit', sans-serif; color: #54514A; margin: 0 0 18px;
}
.ohr-consent__intro a { color: #60624B; text-decoration: underline; }

/* niveau 2 */
.ohr-consent__panel { margin: 0 0 18px; }
.ohr-consent__fieldset { border: 0; margin: 0; padding: 0; }
.ohr-consent__legend {
  font: 600 11px 'Outfit', sans-serif; letter-spacing: 0.14em;
  text-transform: uppercase; color: #646056; padding: 0; margin-bottom: 12px;
}
.ohr-consent__cat {
  border-top: 1px solid rgba(33, 32, 26, 0.12); padding: 12px 0 10px;
}
.ohr-consent__cathead { display: flex; align-items: center; gap: 10px; }
.ohr-consent__cathead input { width: 17px; height: 17px; accent-color: #6E7256; flex: none; }
.ohr-consent__cathead label {
  font: 500 15px 'Outfit', sans-serif; color: #21201A; cursor: pointer;
  display: flex; align-items: center; gap: 10px;
}
.ohr-consent__cathead input:disabled + label { cursor: default; }
.ohr-consent__always {
  font: 600 10px 'Outfit', sans-serif; letter-spacing: 0.1em; text-transform: uppercase;
  /* Fase 4: olijf op licht-olijf haalde 3,19:1 bij 10 px. Een donkerdere tint van
     dezelfde olijf brengt het op 4,6:1 zonder de pil zelf te veranderen. */
  color: #565944; background: #CED1B6; border-radius: 999px; padding: 3px 8px;
}
.ohr-consent__catdesc {
  font: 300 13.5px/1.65 'Outfit', sans-serif; color: #54514A;
  margin: 6px 0 0; padding-left: 27px;
}

/* niveau 1: twee identieke knoppen naast elkaar */
.ohr-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ohr-consent__btn {
  display: flex; align-items: center; justify-content: center; text-align: center;
  width: 100%; min-height: 50px; padding: 14px 18px;
  background: #21201A; color: #F7F4EC;
  font: 600 14px 'Outfit', sans-serif; letter-spacing: 0.03em;
  border: 1px solid #21201A; border-radius: 12px; cursor: pointer;
  transition: background 0.25s ease, box-shadow 0.18s ease;
}
.ohr-consent__btn:hover { background: #6E7256; border-color: #6E7256; }

.ohr-consent__secondary { margin-top: 14px; text-align: center; }
.ohr-consent__link {
  background: none; border: 0; padding: 6px 4px; cursor: pointer;
  font: 500 14px 'Outfit', sans-serif; color: #21201A; text-decoration: underline;
  text-underline-offset: 3px;
}
.ohr-consent__link:hover { color: #60624B; }

@media (max-width: 560px) {
  .ohr-consent { padding: 10px; }
  .ohr-consent__box { padding: 20px 18px 18px; border-radius: 14px; }
  .ohr-consent__title { font-size: 19px; }
  /* Accepteren en weigeren blijven ook op mobiel naast elkaar op dezelfde regel:
     stapelen zou de ene knop boven de andere zetten en dat is precies het
     onderscheid in prominentie dat hier niet mag. */
  .ohr-consent__btn { font-size: 13px; padding: 14px 10px; }
  .ohr-consent__catdesc { padding-left: 0; }
}
