/* style#fontfaces */
/* v183: lettertypes zelf gehost (geen Google Fonts meer: privacy + sneller; de oude Google-link was bovendien kapot: opsz 9.144 i.p.v. 9..144) */@font-face {font-family: 'Fraunces'; font-style: italic; font-weight: 300 500; font-display: swap; src: url(/fonts/fraunces-italic-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;} @font-face {font-family: 'Fraunces'; font-style: italic; font-weight: 300 500; font-display: swap; src: url(/fonts/fraunces-italic-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: 'Fraunces'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(/fonts/fraunces-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;} @font-face {font-family: 'Fraunces'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(/fonts/fraunces-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: 'Instrument Sans'; font-style: normal; font-weight: 400 600; font-stretch: 100%; font-display: swap; src: url(/fonts/instrument-sans-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;} @font-face {font-family: 'Instrument Sans'; font-style: normal; font-weight: 400 600; font-stretch: 100%; font-display: swap; src: url(/fonts/instrument-sans-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;}
/* style */
/* ============================================================
   VILLA PALMVIEW — design tokens
   Palette drawn directly from the estate's own interiors:
   zellige green (Casa Oliva kitchen), mint (Casa Brisa island),
   limestone sand (Casa Luz), warm ink.
   ============================================================ */
:root{
  --sand:#F4EFE6;
  --sand-deep:#EAE2D3;
  --ink:#2C2620;
  --ink-soft:#4A4139;
  --zellige:#4F7263;   /* residence A accent */
  --mint:#5FA294;      /* residence B accent (donkerder ivm contrast op wit) */
  --stone:#A8998A;     /* residence C accent */
  --white:#FFFDF9;
  --maxw:1180px;
  --ease-lux:cubic-bezier(0.16,1,0.3,1);
  --serif:"Fraunces",Georgia,serif;
  --sans:"Instrument Sans",-apple-system,Segoe UI,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:clamp(16px,15.2px + .22vw,18px)}
body{
  font-family:var(--sans);
  background:var(--sand);
  color:var(--ink);
  line-height:1.65;
  font-size:16px;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
picture{display:contents}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- scroll progress ---------- */
#progress{position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--zellige),var(--mint));
  z-index:60;transition:width .1s linear}

/* ---------- header / nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;
  padding:20px 28px;display:flex;justify-content:space-between;align-items:center;
  transition:background .5s var(--ease-lux),box-shadow .5s,padding .5s;
  color:var(--white)}
header.scrolled{background:rgba(244,239,230,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  color:var(--ink);padding:12px 28px;box-shadow:0 1px 0 rgba(44,38,32,.08)}
.brand{font-family:var(--serif);font-size:1.25rem;letter-spacing:.04em;text-decoration:none}
nav{display:flex;gap:28px;align-items:center}
nav a{text-decoration:none;font-size:.83rem;letter-spacing:.12em;text-transform:uppercase;
  position:relative;padding-bottom:3px}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--ease-lux)}
nav a:hover::after{transform:scaleX(1);transform-origin:left}
@media(max-width:820px){
  nav a:not(.nav-cta){display:none}
  .nav-toggle{display:block}
  nav.open{position:fixed;top:64px;left:12px;right:12px;background:var(--white);
    border-radius:18px;box-shadow:0 24px 60px -20px rgba(0,0,0,.35);padding:14px;z-index:950;
    max-height:calc(100svh - 84px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  nav.open a:not(.nav-cta){display:block;padding:13px 16px;font-size:1rem;color:var(--ink)}
  nav.open .langs{display:flex;justify-content:center;padding-top:10px}
}
.nav-toggle{display:none;background:none;border:0;font-size:1.35rem;color:inherit;cursor:pointer;padding:6px 10px}
.nav-cta{border:1px solid currentColor;border-radius:999px;padding:9px 20px 8px;
  transition:background .35s,color .35s}
header:not(.scrolled) .nav-cta:hover{background:var(--white);color:var(--ink)}
header.scrolled .nav-cta:hover{background:var(--ink);color:var(--sand)}
.nav-cta::after{display:none}

/* ---------- hero ---------- */
.hero{position:relative;height:auto;min-height:620px;min-height:100svh;display:flex;
  align-items:flex-end;color:var(--white);overflow:hidden}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;
  animation:kenburns 22s var(--ease-lux) forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(24,20,16,.74) 0%,rgba(24,20,16,.20) 45%,rgba(24,20,16,.32) 100%)}
.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);
  margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end;
  box-sizing:border-box;
  padding:calc(76px + 4svh) 24px clamp(48px,9svh,110px)}
.hero-eyebrow{font-size:.8rem;letter-spacing:.28em;text-transform:uppercase;
  margin-bottom:clamp(10px,2svh,22px);opacity:0}
.hero h1{font-size:clamp(2.05rem,3.1vw + 3.2svh,5.2rem);font-weight:300;max-width:15ch}
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(36px)}
.hero-sub{margin-top:clamp(14px,2.4svh,24px);font-size:clamp(.95rem,.8vw + .9svh,1.2rem);max-width:46ch;
  opacity:0;font-weight:400}
.hero-cta-row{margin-top:clamp(18px,3.6svh,36px);display:flex;gap:16px;flex-wrap:wrap;opacity:0}
.loaded .hero-eyebrow{animation:riseIn 1s var(--ease-lux) .2s forwards}
.loaded .hero h1 .w{animation:riseIn 1.1s var(--ease-lux) forwards}
.loaded .hero-sub{animation:riseIn 1.1s var(--ease-lux) 1.15s forwards}
.loaded .hero-cta-row{animation:riseIn 1.1s var(--ease-lux) 1.35s forwards}
@keyframes riseIn{from{opacity:0;transform:translateY(36px)}
  to{opacity:1;transform:translateY(0)}}
.btn{display:inline-block;text-decoration:none;font-size:.85rem;
  letter-spacing:.14em;text-transform:uppercase;border-radius:999px;
  padding:15px 32px 13px;transition:transform .4s var(--ease-lux),background .35s,color .35s}
.btn:hover{transform:translateY(-2px)}
.btn-solid{background:var(--white);color:var(--ink)}
.btn-solid:hover{background:var(--sand-deep)}
.btn-ghost{border:1px solid rgba(255,253,249,.7);color:var(--white)}
.btn-ghost:hover{background:rgba(255,253,249,.12)}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  z-index:2;width:1px;height:52px;overflow:hidden}
.scroll-hint::after{content:"";position:absolute;left:0;top:-52px;width:1px;height:52px;
  background:rgba(255,253,249,.8);animation:drip 2.2s var(--ease-lux) infinite}
@keyframes drip{to{top:52px}}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(38px);
  transition:opacity 1s var(--ease-lux),transform 1s var(--ease-lux)}
.reveal.in{opacity:1;transform:translateY(0)}
.stagger>*{opacity:0;transform:translateY(30px);
  transition:opacity .9s var(--ease-lux),transform .9s var(--ease-lux)}
.stagger.in>*{opacity:1;transform:translateY(0)}
.stagger.in>*:nth-child(1){transition-delay:.05s}
.stagger.in>*:nth-child(2){transition-delay:.17s}
.stagger.in>*:nth-child(3){transition-delay:.29s}
.stagger.in>*:nth-child(4){transition-delay:.41s}
.stagger.in>*:nth-child(5){transition-delay:.53s}
.stagger.in>*:nth-child(6){transition-delay:.65s}

/* ---------- intro ---------- */
.intro{padding:120px 0 90px}
.eyebrow{font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:18px}
.intro h2{font-size:clamp(1.9rem,4vw,3rem);max-width:22ch}
.intro-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;margin-top:44px}
@media(max-width:820px){.intro-cols{grid-template-columns:1fr;gap:28px}}
.intro-cols p{color:var(--ink-soft);font-size:1.05rem}
.intro-cols p+p{margin-top:18px}

/* ---------- counters ---------- */
.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
  background:rgba(44,38,32,.12);border-radius:18px;overflow:hidden;margin:70px 0 0}
@media(max-width:820px){.counters{grid-template-columns:repeat(2,1fr)}}
.counter{background:var(--white);padding:34px 20px;text-align:center}
.counter .num{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.2rem);
  font-weight:300;line-height:1}.counter .num[data-count="28"]::before{content:"up to ";font-size:.4em;font-weight:400;letter-spacing:.04em;margin-right:1px;position:relative;top:-.12em}
.counter .lbl{margin-top:10px;font-size:.78rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-soft)}

/* ---------- residences ---------- */
.residences{padding:100px 0 40px}
.res{margin-top:70px;border-radius:26px;overflow:hidden;
  background:var(--white);box-shadow:0 30px 60px -40px rgba(44,38,32,.35)}
.res-head{display:grid;grid-template-columns:1fr 1fr;min-height:340px}
@media(max-width:820px){.res-head{grid-template-columns:1fr}}
.res-copy{padding:52px 48px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:820px){.res-copy{padding:36px 26px}}
.res-tag{display:inline-block;font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--white);border-radius:999px;
  padding:7px 16px 6px;margin-bottom:20px;width:fit-content}
.res h3{font-size:clamp(1.7rem,3vw,2.4rem)}
.res-meta{margin-top:8px;font-size:.85rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft)}
.res-copy p{margin-top:18px;color:var(--ink-soft)}
.res-cover{overflow:hidden}
.res-cover img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.02);transition:transform 1.4s var(--ease-lux)}
.res:hover .res-cover img{transform:scale(1.08)}
.res-a .res-tag{background:var(--zellige)}
.res-b .res-tag{background:var(--mint)}
.res-c .res-tag{background:var(--stone)}
.res-a{border-top:5px solid var(--zellige)}
.res-b{border-top:5px solid var(--mint)}
.res-c{border-top:5px solid var(--stone)}

/* horizontal gallery strip */
.strip{display:flex;gap:14px;overflow-x:auto;padding:18px 48px 30px;
  scroll-snap-type:x mandatory;cursor:grab;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:var(--sand-deep) transparent}
@media(max-width:820px){.strip{padding:14px 26px 24px}}
.strip.dragging{cursor:grabbing;scroll-snap-type:none}
.strip figure{flex:0 0 auto;width:min(320px,72vw);scroll-snap-align:start;
  border-radius:14px;overflow:hidden;aspect-ratio:3/2;background:var(--sand-deep)}
.strip img{width:100%;height:100%;object-fit:cover;pointer-events:none;
  transition:transform 1.2s var(--ease-lux)}
.strip figure:hover img{transform:scale(1.06)}

/* ---------- parallax band ---------- */
.band{position:relative;height:64vh;min-height:420px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;color:var(--white);
  text-align:center;margin:100px 0}
.band-media{position:absolute;inset:-18% 0;will-change:transform}
.band-media img{width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:rgba(24,20,16,.45)}
.band-inner{position:relative;z-index:2;padding:0 24px}
.band-inner p{font-family:var(--serif);font-size:clamp(1.5rem,3.4vw,2.6rem);
  font-weight:300;max-width:26ch}

/* ---------- amenities ---------- */
.amenities{padding:40px 0 110px}
.amen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:50px}
@media(max-width:900px){.amen-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.amen-grid{grid-template-columns:1fr}}
.amen{background:var(--white);border-radius:18px;padding:30px 26px;
  transition:transform .5s var(--ease-lux),box-shadow .5s}
.amen:hover{transform:translateY(-5px);
  box-shadow:0 24px 44px -30px rgba(44,38,32,.4)}
.amen svg{width:34px;height:34px;stroke:var(--zellige);stroke-width:1.4;
  fill:none;stroke-linecap:round;stroke-linejoin:round;margin-bottom:16px;
  transition:transform .5s var(--ease-lux)}
.amen:hover svg{transform:scale(1.12) rotate(-3deg)}
.amen h4{font-family:var(--serif);font-weight:500;font-size:1.15rem;margin-bottom:6px}
.amen p{font-size:.93rem;color:var(--ink-soft)}

/* ---------- location ---------- */
.location{background:var(--ink);color:var(--sand);padding:110px 0;
  border-radius:34px 34px 0 0}
.location .eyebrow{color:rgba(244,239,230,.6)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
@media(max-width:820px){.loc-grid{grid-template-columns:1fr;gap:34px}}
.location h2{font-size:clamp(1.9rem,4vw,3rem)}
.location p{color:rgba(244,239,230,.78);margin-top:20px}
.loc-list{margin-top:30px;list-style:none}
.loc-list li{display:flex;justify-content:space-between;gap:20px;
  padding:14px 0;border-bottom:1px solid rgba(244,239,230,.15);font-size:.95rem}
.loc-list span:last-child{color:rgba(244,239,230,.6);white-space:nowrap}
.loc-map{border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:#3a342d}
.loc-map iframe{width:100%;height:100%;border:0;filter:grayscale(.25)}

/* ---------- testimonials ---------- */
.testimonials{padding:110px 0;text-align:center}
.quote-box{position:relative;min-height:190px;max-width:760px;margin:40px auto 0}
.quote{position:absolute;inset:0;opacity:0;transform:translateY(16px);
  transition:opacity .9s var(--ease-lux),transform .9s var(--ease-lux);
  pointer-events:none}
.quote.active{opacity:1;transform:translateY(0)}
.quote p{font-family:var(--serif);font-size:clamp(1.25rem,2.6vw,1.7rem);
  font-weight:300;font-style:italic}
.quote cite{display:block;margin-top:20px;font-style:normal;font-size:.82rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.dots{display:flex;gap:10px;justify-content:center;margin-top:26px}
.dots button{width:9px;height:9px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(44,38,32,.25);transition:background .3s,transform .3s}
.dots button.active{background:var(--zellige);transform:scale(1.3)}

/* ---------- FAQ ---------- */
.faq{padding:0 0 110px}
.faq-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:6px 0 22px}
.faq-chip{font-family:var(--sans);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;
  padding:9px 17px;border-radius:999px;border:1px solid var(--hairline);background:var(--white);
  color:var(--ink-soft);cursor:pointer;line-height:1;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.faq-chip:hover{border-color:var(--zellige);color:var(--ink)}
.faq-chip:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.faq-chip[aria-pressed="true"]{background:var(--zellige);border-color:var(--zellige);color:var(--white)}
.faq-chip .n{margin-left:7px;opacity:.55;font-variant-numeric:tabular-nums}
.faq-item[hidden]{display:none}
@media(max-width:520px){.faq-chip{font-size:.74rem;padding:8px 13px}}
.faq-item{background:var(--white);border-radius:16px;margin-top:14px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--sans);font-size:1.02rem;font-weight:600;color:var(--ink);
  padding:22px 26px;display:flex;justify-content:space-between;gap:18px;align-items:center}
.faq-q .plus{flex:0 0 auto;width:22px;height:22px;position:relative;
  transition:transform .5s var(--ease-lux)}
.faq-q .plus::before,.faq-q .plus::after{content:"";position:absolute;
  background:var(--zellige);top:50%;left:50%}
.faq-q .plus::before{width:14px;height:1.6px;transform:translate(-50%,-50%)}
.faq-q .plus::after{width:1.6px;height:14px;transform:translate(-50%,-50%)}
.faq-item.open .plus{transform:rotate(135deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .6s var(--ease-lux)}
.faq-a p{padding:0 26px 24px;color:var(--ink-soft)}

/* ---------- booking / contact ---------- */
.book{background:var(--sand-deep);padding:110px 0;border-radius:34px;
  margin:0 14px 14px;text-align:center}
.book h2{font-size:clamp(2rem,4.5vw,3.2rem)}
.book p{max-width:52ch;margin:22px auto 0;color:var(--ink-soft)}
.book .btn-solid{background:var(--ink);color:var(--sand)}
.book .btn-solid:hover{background:var(--zellige)}
.price-line{margin-top:26px;font-family:var(--serif);font-size:1.25rem}
.book-cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.btn-wa{background:#1FA855;color:#fff}
.btn-wa:hover{background:#178A45}
.tiers{max-width:1000px;margin:34px auto 0}
.tiers-lead{text-align:center;max-width:56ch;margin:0 auto;color:var(--ink-soft);font-size:.95rem}
.tiers-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}
.tier{background:var(--white);border:1px solid var(--hairline);border-radius:18px;
  padding:22px 20px;text-align:left;display:flex;flex-direction:column;gap:8px}
.tier h3{font-family:var(--serif);font-weight:500;font-size:1.28rem;margin:0;letter-spacing:.01em}
.tier .tier-cap{margin:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--zellige);font-weight:600}
.tier p:last-child{margin:0;font-size:.9rem;color:var(--ink-soft);line-height:1.55}
.tiers-note{text-align:center;font-size:.85rem;color:var(--ink-soft);margin:18px auto 0;max-width:56ch}
.engine-embed{max-width:860px;margin:40px auto 0;border-radius:18px;overflow:hidden;
  background:var(--white);border:1px solid var(--hairline)}
.engine-embed[hidden]{display:none}
.engine-embed h3{font-family:var(--serif);font-weight:500;font-size:1.15rem;
  margin:0;padding:18px 20px 0;text-align:center}
.engine-embed iframe{width:100%;min-height:720px;border:0;display:block}
.bf-grid select{font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;
  padding:11px 13px 11px 13px;border-radius:10px;border:1px solid rgba(255,253,249,.3);
  background:rgba(255,253,249,.08);color:inherit;-webkit-appearance:none;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),
    linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}
.bf-grid select:focus{outline:2px solid var(--mint)}
.bf-grid select option{color:#2C2620;background:#FFFDF9}
@media(max-width:820px){.tiers-row{grid-template-columns:1fr}}
.cal-embed{max-width:760px;margin:40px auto 0;border-radius:18px;overflow:hidden;
  background:var(--white);aspect-ratio:4/3}
.cal-embed iframe{width:100%;height:100%;border:0}
.book-note{margin-top:18px;font-size:.85rem;color:var(--ink-soft)}
.quick-q{margin-top:22px;font-size:.85rem;color:var(--ink-soft);
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;align-items:center}
.quick-q a{border:1px solid rgba(44,38,32,.25);border-radius:999px;
  padding:8px 16px 7px;text-decoration:none;transition:background .3s,border-color .3s}
.quick-q a:hover{background:var(--white);border-color:var(--zellige)}

/* ---------- sticky booking bar ---------- */
.bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%,140%);
  z-index:55;background:rgba(44,38,32,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  color:var(--sand);border-radius:999px;display:flex;align-items:center;
  gap:22px;padding:12px 14px 12px 26px;box-shadow:0 20px 50px -18px rgba(24,20,16,.6);
  transition:transform .7s var(--ease-lux);white-space:nowrap}
.bar.show{transform:translate(-50%,0)}
.bar span{font-size:.88rem;letter-spacing:.04em}
@media(max-width:560px){.bar span em{display:none}}
.bar a{background:var(--sand);color:var(--ink);text-decoration:none;
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  border-radius:999px;padding:11px 22px 10px;transition:background .3s}
.bar a:hover{background:var(--mint)}

/* ---------- luxe accenten ---------- */
.hero-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px;opacity:0}
.loaded .hero-chips{animation:riseIn 1.1s var(--ease-lux) 1.25s forwards}
.hero-chips span{border:1px solid rgba(255,253,249,.45);border-radius:999px;
  padding:7px 16px 6px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.eyebrow{display:flex;align-items:center;gap:14px}
.eyebrow::after{content:"";height:1px;width:56px;background:currentColor;opacity:.35}
.audiences-sec{padding:90px 0 30px}
.aud-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:50px}
@media(max-width:960px){.aud-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.aud-grid{grid-template-columns:1fr}}
.aud{background:var(--white);border-radius:18px;padding:30px 26px;position:relative;
  overflow:hidden;transition:transform .5s var(--ease-lux),box-shadow .5s}
.aud:hover{transform:translateY(-5px);box-shadow:0 24px 44px -30px rgba(44,38,32,.4)}
.aud-num{font-family:var(--serif);font-size:2.6rem;font-weight:300;
  color:var(--sand-deep);position:absolute;top:10px;right:18px;line-height:1}
.aud h4{font-family:var(--serif);font-weight:500;font-size:1.2rem;margin-bottom:8px}
.aud p{font-size:.93rem;color:var(--ink-soft)}
.todo-sec{padding:100px 0 30px}
.life-sec{padding:80px 0 10px}
.gen-sec{padding:80px 0 10px}
.days-sec{padding:100px 0 30px}
.days-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:50px}
@media(max-width:900px){.days-grid{grid-template-columns:1fr}}
.day{background:var(--white);border-radius:18px;padding:28px 26px}
.day h4{font-family:var(--serif);font-weight:500;font-size:1.25rem;margin-bottom:14px}
.day ul{list-style:none;margin:0;padding:0}
.day li{padding:8px 0;border-top:1px solid rgba(44,38,32,.1);font-size:.92rem;color:var(--ink-soft)}
.day li:first-child{border-top:0}
.day b{color:var(--zellige);font-weight:600;margin-right:8px;font-variant-numeric:tabular-nums}
.areas-title{font-family:var(--serif);font-weight:500;font-size:1.35rem;margin-top:56px}
.areas{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:720px){.areas{grid-template-columns:1fr}}
.areas li{background:var(--white);border-radius:14px;padding:16px 20px;font-size:.92rem}
.areas b{display:block;margin-bottom:4px}
.areas span{color:var(--ink-soft)}
.transport-tip{margin-top:22px;font-size:.9rem;color:var(--ink-soft);font-style:italic}
.settings-sec{padding:20px 0 60px}
.seasons-sec{padding:80px 0 10px}
.values-sec{padding:90px 0 0}
.ab-intro{margin-top:10px;color:var(--ink-soft);font-size:.95rem}
.cat-title{font-family:var(--serif);font-weight:500;font-size:1.35rem;margin-top:48px}
.cat-title+.todo-grid{margin-top:18px}
.ab-list a{color:var(--zellige);text-decoration:none;border-bottom:1px solid rgba(31,111,109,.35)}
.ab-list a:hover{border-bottom-color:currentColor}
.todo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:50px}
@media(max-width:900px){.todo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.todo-grid{grid-template-columns:1fr}}
.todo{background:var(--white);border:1px solid rgba(44,38,32,.08);border-radius:16px;padding:24px 24px 20px;box-shadow:0 18px 44px -30px rgba(44,38,32,.22);transition:transform .35s var(--ease-lux),box-shadow .35s var(--ease-lux)}
.todo h4{font-family:var(--serif);font-weight:500;font-size:1.1rem;margin-bottom:6px}
.todo p{font-size:.92rem;color:var(--ink-soft)}
.plan-note a{color:var(--zellige)}
.facts-sec{padding:90px 0 20px}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:44px}
.facts>div:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:720px){.facts{grid-template-columns:1fr}}
.facts>div{background:var(--white);border-radius:14px;padding:18px 20px}
.facts dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--zellige);margin-bottom:6px;font-weight:600}
.facts dd{margin:0;font-size:.93rem;color:var(--ink-soft)}
.facts a{color:var(--ink)}

/* ---------- language switcher ---------- */
.langs{display:flex;gap:2px;margin-left:6px}
.langs a{text-decoration:none;font-size:.72rem;letter-spacing:.08em;
  padding:9px 9px 8px;border-radius:8px;opacity:.65;transition:opacity .3s,background .3s}
.langs a:hover{opacity:1}
.langs a[aria-current]{opacity:1;background:rgba(127,127,127,.18)}
.langs a::after{display:none}

/* ---------- estate plan ---------- */
.plan{padding:100px 0 20px}
.plan-note{margin-top:14px;font-size:.85rem;color:var(--ink-soft);font-style:italic}
.plan-viewer{margin-top:36px;background:var(--white);border-radius:22px;padding:18px}
.plan-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.plan-tab{border:1px solid rgba(44,38,32,.25);background:none;border-radius:999px;
  padding:9px 18px 8px;font:inherit;font-size:.82rem;letter-spacing:.08em;
  text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.plan-tab.active{background:var(--zellige);border-color:var(--zellige);color:var(--white)}
.plan-tab:hover:not(.active){border-color:var(--zellige)}
.plan-stage{position:relative;border-radius:14px;overflow:hidden;cursor:zoom-in;background:var(--sand);aspect-ratio:7/5}
.plan-stage .plan-img.active{width:100%;height:100%;object-fit:contain}
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ig-grid a{display:block;overflow:hidden;border-radius:14px}
.ig-grid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;transition:transform .8s var(--ease-lux)}
.ig-grid a:hover img{transform:scale(1.05)}
@media(max-width:820px){.ig-grid{grid-template-columns:repeat(2,1fr)}}

.plan-img{display:none;width:100%;height:auto}
.plan-img.active{display:block;animation:planFade .5s var(--ease)}
@keyframes planFade{from{opacity:0}to{opacity:1}}
.plan-zoom-hint{position:absolute;right:12px;bottom:12px;background:rgba(13,36,56,.7);
  color:var(--white);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  border-radius:999px;padding:7px 14px 6px;pointer-events:none}
.plan-err .plan-err-msg{display:block}
.plan-err-msg{display:none;position:absolute;inset:auto 12px 12px 12px;text-align:center;
  background:rgba(13,36,56,.75);color:var(--white);font-size:.8rem;border-radius:10px;padding:8px}
.plan-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.plan-legend button{border:1px solid rgba(44,38,32,.25);background:none;border-radius:999px;
  padding:8px 15px 7px;font:inherit;font-size:.8rem;cursor:pointer;transition:border-color .3s,background .3s}
.plan-legend button:hover,.plan-legend button.sel{border-color:var(--zellige);background:var(--sand)}
.plan-info{margin-top:12px;font-size:.92rem;color:var(--ink-soft);min-height:1.4em}
.hero-kicker{display:block;margin-top:14px;font-family:var(--serif);font-style:italic;font-size:1.05em;opacity:.92}
.foot-more{margin-top:26px;font-size:.85rem;opacity:.85}
.foot-more a{color:inherit}
.foot-more span{opacity:.7}
.quote-incl{list-style:none;margin:26px auto 0;padding:0;max-width:560px;font-size:.92rem;color:var(--ink-soft)}
.quote-incl li{padding:7px 0 7px 26px;position:relative}
.quote-incl li:before{content:"\2713";position:absolute;left:0;color:var(--zellige);font-weight:700}
.rating-badges{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:44px}
.rating-badges a{border:1px solid rgba(44,38,32,.22);border-radius:999px;padding:10px 18px;
  text-decoration:none;color:var(--ink);font-size:.88rem;background:var(--white);transition:border-color .3s}
.rating-badges a:hover{border-color:var(--zellige)}
.rating-badges strong{color:var(--zellige)}
@media(max-width:600px){
  .plan-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px}
  .plan-tabs::-webkit-scrollbar{display:none}
  .plan-legend{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .areas li,.day{padding:14px 16px}
  .bar span em{display:none}
}
.wa-float{position:fixed;right:18px;bottom:86px;z-index:900;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.45);transition:transform .3s var(--ease)}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px;height:30px;fill:#fff}
@media(min-width:821px){.wa-float{bottom:24px;right:24px}}
.gen-note{margin-top:34px;background:var(--white);border-radius:16px;padding:22px 26px;
  font-size:.95rem;color:var(--ink-soft);border-left:4px solid var(--zellige)}
.plan-max{position:fixed;inset:0;z-index:1200;background:rgba(20,17,14,.94);
  display:none;align-items:center;justify-content:center;cursor:zoom-out;padding:3vh 3vw}
.plan-max.open{display:flex}
.plan-max img{max-width:100%;max-height:100%;border-radius:8px}
.res-mosaic{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:6px;min-height:340px}
.res-mosaic figure{overflow:hidden;margin:0}
.res-mosaic .rm-big{grid-row:1/3}
.res-mosaic img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.3s var(--ease-lux)}
.res-mosaic figure:hover img{transform:scale(1.08)}
@media(max-width:820px){.res-mosaic{min-height:260px}}
.res-plan-link{margin-top:16px;width:fit-content;font-size:.85rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--zellige);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.plan-svg-unused{margin-top:36px;background:var(--white);border-radius:22px;padding:18px}
.plan-svg svg{width:100%;height:auto;display:block}
.pl-ground{fill:var(--sand-deep)}
.pl-pool rect{fill:#BFE0DA;stroke:var(--mint);stroke-width:2}
.pl-pool text,.pl-house text,.pl-cap{font-family:var(--sans);font-size:17px;
  fill:var(--ink);text-anchor:middle}
.pl-sub{font-size:12px!important;letter-spacing:.14em;text-transform:uppercase;
  fill:var(--ink-soft)!important}
.pl-cap{font-size:13px;fill:var(--ink-soft);font-style:italic}
.pl-house rect{fill:var(--white);stroke-width:2.5;
  transition:transform .5s var(--ease-lux)}
.pl-a rect{stroke:var(--zellige)} .pl-b rect{stroke:var(--mint)} .pl-c rect{stroke:var(--stone)}
.pl-house{cursor:pointer}
.plan-svg a:hover .pl-house rect{transform:translateY(-4px)}
.pl-green circle{fill:#9DB89B;opacity:.6}
.pl-beach rect{fill:#F0E3C8;stroke:#D8C193;stroke-width:2}
.pl-beach text{font-family:var(--sans);font-size:15px;fill:var(--ink);text-anchor:middle}
.rating-line{margin-top:22px;text-align:center;color:var(--ink-soft);font-size:.95rem}
.groups{padding:60px 0 20px}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:70;background:rgba(24,20,16,.93);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .45s var(--ease-lux)}
.lb.open{opacity:1;pointer-events:auto}
.lb img{max-width:92vw;max-height:86vh;border-radius:10px;
  transform:scale(.96);transition:transform .45s var(--ease-lux)}
.lb.open img{transform:scale(1)}
.lb button{position:absolute;background:none;border:none;color:var(--sand);
  cursor:pointer;font-size:2rem;line-height:1;padding:16px;opacity:.8;
  transition:opacity .3s,transform .3s}
.lb button:hover{opacity:1;transform:scale(1.1)}
.lb-close{top:14px;right:18px}
.lb-prev{left:8px;top:50%;transform:translateY(-50%)}
.lb-next{right:8px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  color:rgba(244,239,230,.7);font-size:.8rem;letter-spacing:.16em}
.strip figure,.res-cover{cursor:zoom-in}
.strip.dragging figure{cursor:grabbing}

/* ---------- back to top ---------- */
.top-btn{position:fixed;right:18px;bottom:84px;z-index:54;width:44px;height:44px;
  border-radius:50%;border:none;cursor:pointer;background:var(--white);
  color:var(--ink);box-shadow:0 12px 30px -12px rgba(44,38,32,.5);
  opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity .5s var(--ease-lux),transform .5s var(--ease-lux),background .3s}
.top-btn.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.top-btn:hover{background:var(--sand-deep)}
.top-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;
  fill:none;stroke-linecap:round;stroke-linejoin:round;margin:auto;display:block}

/* ---------- footer ---------- */
footer{padding:50px 24px 100px;text-align:center;color:var(--ink-soft);font-size:.85rem}
footer .brand{color:var(--ink);display:inline-block;margin-bottom:10px}
footer{line-height:2}
.foot-featured{font-size:.8rem;opacity:.85}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;
    animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero-media img{animation:none}
  .reveal,.stagger>*,.hero-eyebrow,.hero h1 .w,.hero-sub,.hero-cta-row{
    opacity:1!important;transform:none!important}
  .band-media{transform:none!important}
}

/* ========== POLISH-LAAG: luxe · rust · privacy · uitnodigend ========== */
:root{
  --linen:#EFE9DE;
  --hairline:rgba(44,38,32,.12);
  --shadow-soft:0 24px 70px -30px rgba(44,38,32,.28);
  --ease:cubic-bezier(.22,.7,.25,1);
}
body{line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--zellige);color:#fff}
html{scrollbar-width:thin;scrollbar-color:rgba(44,38,32,.28) transparent}

/* typografie: stille precisie */
.eyebrow{letter-spacing:.24em;text-transform:uppercase;font-size:.72rem;opacity:.75}
h1,h2,h3,h4{letter-spacing:-.012em}
h2{line-height:1.12}
.counters .num,.facts-sec dd,.day b{font-variant-numeric:tabular-nums}

/* ademruimte: luxe = witruimte */
section{scroll-margin-top:84px}
.intro,.settings-sec,.groups,.amenities,.location,.values-sec,.facts-sec{padding-top:110px;padding-bottom:110px}
.wrap>p,.intro p{max-width:66ch}

/* linnen-wash voor rustig ritme */
.values-sec,.testimonials{background:linear-gradient(180deg,var(--linen) 0%,transparent 90%)}

/* hairlines & kaarten: zachter, dieper */
.todo,.aud,.day,.areas li,.quote,.plan-viewer,.gen-note{box-shadow:var(--shadow-soft);border:1px solid var(--hairline)}
.todo,.aud,.day{transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.todo:hover,.aud:hover,.teaser:hover{transform:translateY(-3px);box-shadow:0 34px 90px -34px rgba(44,38,32,.34)}
.faq-item{border-color:var(--hairline)}

/* hero: kalmte + leesbaarheid */
.hero .hero-media:after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,17,14,.18) 0%,rgba(20,17,14,0) 30%,rgba(20,17,14,.42) 100%);pointer-events:none}
.hero-kicker{letter-spacing:.01em}

/* knoppen: uitnodigend, beheerst */
.nav-cta,.bar a,.book .btn,.sub-nav .cta{letter-spacing:.02em;transition:transform .45s var(--ease),background .45s,box-shadow .45s}
.nav-cta:hover,.bar a:hover,.book .btn:hover{transform:translateY(-1px)}
a:focus-visible,button:focus-visible{outline:2px solid var(--zellige);outline-offset:3px;border-radius:6px}

/* beweging: traag en gerust */
.reveal{transform:translateY(14px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.stagger>*{transition-duration:.8s}
@media (prefers-reduced-motion: reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  .reveal,.stagger>*{opacity:1!important;transform:none!important}
}

html{overflow-x:hidden}






/* ---------- video-hero ---------- */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.4s var(--ease-lux);pointer-events:none}
.hero-video.on{opacity:1}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}


figcaption,.res-meta{color:var(--ink-soft)}
/* ---------- mobiele pas ---------- */
@media(max-width:820px){
  :root{--ink-soft:#564c41}
  .hero{min-height:0;height:100svh}
  .hero::after{background:linear-gradient(to top,rgba(24,20,16,.80) 0%,
    rgba(24,20,16,.32) 46%,rgba(24,20,16,.52) 100%)}
  .hero-inner{padding-left:20px;padding-right:20px;
    text-shadow:0 1px 26px rgba(0,0,0,.38)}
  figcaption{color:#4e453b}
  body.p-home .groups,body.p-home /* v80: mobiel toont nu alle secties */
  input,select,textarea{font-size:16px}
  .nav-toggle{display:block}
}

/* ---------- luxe-polish ---------- */
::selection{background:var(--zellige);color:#fff}
.hero-trust{margin-top:clamp(12px,2.2svh,20px);font-size:clamp(.68rem,.5vw + .5svh,.8rem);letter-spacing:.16em;text-transform:uppercase;opacity:1;text-shadow:0 1px 14px rgba(0,0,0,.45)}
figure.ph{border:1px solid rgba(44,38,32,.07);border-radius:18px;
  box-shadow:0 26px 60px -30px rgba(44,38,32,.35)}
figure.ph figcaption{font-family:var(--serif);font-style:italic;font-size:.93rem;padding:12px 16px 14px}
.ph-grid{gap:18px}
@media(min-width:900px){.ph-grid figure.ph:first-child{grid-column:span 2}}
blockquote.wed-quote::before{content:"\201C";position:absolute;left:12px;top:0;
  font-family:var(--serif);font-size:3rem;line-height:1;color:var(--zellige);opacity:.5}
.btn{transition:transform .35s var(--ease-lux),box-shadow .35s var(--ease-lux),background .35s var(--ease-lux)}
.btn:hover{transform:translateY(-2px)}
.btn-solid{box-shadow:0 16px 32px -14px rgba(79,114,99,.6)}
.btn:focus-visible,.chips button:focus-visible,.drop-panel a:focus-visible{
  outline:2px solid var(--zellige);outline-offset:2px}
.drop-panel{box-shadow:0 34px 80px -30px rgba(20,17,14,.45)}

/* ---------- boekformulier + perks ---------- */
.book-form{margin-top:40px;text-align:left;max-width:640px;margin-left:auto;margin-right:auto;
  background:rgba(255,253,249,.07);border:1px solid rgba(255,253,249,.18);border-radius:18px;padding:26px}
.form-title{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin-bottom:16px}
.bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bf-grid label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;letter-spacing:.08em;
  text-transform:uppercase;opacity:.85}
.bf-grid .bf-wide{grid-column:1/-1}
.bf-grid input,.bf-grid textarea{font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;
  padding:11px 13px;border-radius:10px;border:1px solid rgba(255,253,249,.3);
  background:rgba(255,253,249,.95);color:var(--ink)}
.bf-grid input:focus,.bf-grid textarea:focus{outline:2px solid var(--mint)}
.book-form .btn{margin-top:18px}
.hp{position:absolute;left:-9999px}
.form-ok,.form-err{margin-top:14px;font-size:.95rem}
.form-ok{color:var(--mint)} .form-err{color:#f2b8a0}
.direct-perks{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;
  margin-top:26px;padding:0;font-size:.86rem;opacity:.9}
.direct-perks li::before{content:"\2713\00a0";color:var(--mint)}
.promo-line{margin-top:14px;font-size:.95rem;color:var(--mint);letter-spacing:.02em}
.rating-badges a{text-decoration:none;color:inherit;display:inline-block;transition:transform .3s var(--ease-lux)}
.rating-badges a:hover{transform:translateY(-3px)}
figure.ph img{cursor:zoom-in;transition:transform .6s var(--ease-lux)}
figure.ph:hover img{transform:scale(1.04)}
@media(max-width:640px){.bf-grid{grid-template-columns:1fr}}

/* ---------- hoverbrug + citaat + chips + consistentie ---------- */
.nav-group::after{content:"";position:absolute;top:100%;left:-10px;right:-10px;height:20px}
blockquote.wed-quote{margin:34px 0 0;padding:20px 26px 20px 46px;position:relative;border-left:3px solid var(--zellige);
  background:var(--linen,#EFE9DE);border-radius:16px}
blockquote.wed-quote p{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.5}
blockquote.wed-quote cite{display:block;margin-top:10px;font-style:normal;font-size:.85rem;color:var(--ink-soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.chips button{background:var(--white);border:1px solid rgba(44,38,32,.16);border-radius:999px;
  padding:9px 16px 8px;font:inherit;font-size:.85rem;cursor:pointer;transition:all .3s var(--ease-lux)}
.chips button:hover{border-color:var(--ink)}
.chips button.sel{background:var(--ink);border-color:var(--ink);color:var(--white)}
.chip-info{border-left:3px solid var(--zellige);background:var(--linen,#EFE9DE);
  padding:14px 18px;border-radius:14px;margin-top:12px;min-height:52px;color:var(--ink-soft)}
.todo-sec .eyebrow{margin-bottom:8px}
h3.cat-title{margin:36px 0 12px;font-size:1.12rem;letter-spacing:.01em}
.todo-sec .ab-intro{max-width:66ch}

/* ---------- dropdown-menu ---------- */
.nav-group{position:relative}
.nav-drop{background:none;border:0;font:inherit;font-size:.83rem;letter-spacing:.12em;
  text-transform:uppercase;color:inherit;cursor:pointer;padding:0 0 3px;display:inline-flex;
  align-items:center;gap:6px}
.nav-drop::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);
  transition:transform .3s var(--ease-lux)}
.nav-group.open .nav-drop::after{transform:rotate(225deg) translateY(-1px)}
.drop-panel{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);
  background:var(--white);color:var(--ink);border-radius:14px;min-width:200px;padding:10px;
  box-shadow:0 30px 70px -25px rgba(20,17,14,.4);display:none;flex-direction:column;z-index:900}
.nav-group.open .drop-panel{display:flex}
@media(hover:hover){.nav-group:hover .drop-panel{display:flex}}
.drop-panel a{display:block;padding:9px 13px;border-radius:9px;font-size:.8rem;
  letter-spacing:.05em;text-transform:none}
.drop-panel a::after{display:none}
.drop-panel a:hover{background:var(--sand)}
@media(max-width:820px){
.nav-drop{display:none}
nav#mainNav.open{display:flex;flex-direction:column;align-items:stretch}
nav.open .nav-group::after{display:none}
nav.open .nav-drop{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:14px 22px;color:var(--ink);font-size:.92rem;letter-spacing:.06em;border-bottom:1px solid rgba(44,38,32,.1);pointer-events:auto}
nav.open .nav-drop::after{display:inline-block;margin-left:10px;flex:0 0 auto}
nav.open .nav-group{width:100%}
nav#mainNav.open .drop-panel{display:none;position:static;transform:none;box-shadow:none;min-width:0;padding:0 0 6px}
nav#mainNav.open .nav-group.open .drop-panel{display:block}
nav.open .drop-panel a{display:block;padding:11px 30px;font-size:.95rem;color:var(--ink-soft)}
}

/* ---------- fotostrips ---------- */
.grounds-sec{padding:100px 0 30px}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:26px}
figure.ph{margin:0;border-radius:16px;overflow:hidden;background:var(--white);
  box-shadow:0 18px 44px -24px rgba(44,38,32,.28)}
figure.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
figure.ph figcaption{padding:11px 15px 13px;font-size:.84rem;line-height:1.45;color:var(--ink-soft)}

/* ---------- 3D-plannen v2 ---------- */
.plan-tabs{gap:10px;margin-bottom:18px}
.plan-tab{text-transform:none;letter-spacing:.04em;font-size:.88rem;padding:11px 18px;
  background:var(--white);border-color:rgba(44,38,32,.2);border-radius:999px;
  transition:all .3s var(--ease-lux)}
.plan-tab:hover{border-color:var(--zellige);color:var(--zellige)}
.plan-tab.active{background:var(--zellige);border-color:var(--zellige);color:var(--white);
  box-shadow:0 8px 20px -8px rgba(79,114,99,.55)}
.plan-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;
  border-radius:50%;background:rgba(255,253,249,.94);border:1px solid rgba(44,38,32,.16);
  font-size:1.6rem;line-height:1;cursor:pointer;z-index:6;display:flex;align-items:center;
  justify-content:center;box-shadow:0 10px 24px -12px rgba(0,0,0,.35);color:var(--ink);
  transition:transform .25s var(--ease-lux),background .25s}
.plan-nav:hover{background:var(--white);transform:translateY(-50%) scale(1.06)}
.plan-prev{left:14px}.plan-next{right:14px}
.plan-count{position:absolute;top:14px;right:14px;background:rgba(44,38,32,.78);
  color:var(--white);font-size:.74rem;letter-spacing:.1em;padding:5px 11px;
  border-radius:999px;z-index:6;font-variant-numeric:tabular-nums}
.plan-legend{gap:8px;margin-top:16px}
.plan-legend button{background:var(--white);border:1px solid rgba(44,38,32,.16);
  border-radius:999px;padding:9px 16px 8px;font:inherit;font-size:.85rem;cursor:pointer;
  transition:all .3s var(--ease-lux)}
.plan-legend button:hover{border-color:var(--ink)}
.plan-legend button.sel{background:var(--ink);border-color:var(--ink);color:var(--white)}
#planInfo{border-left:3px solid var(--zellige);background:var(--linen,#EFE9DE);
  padding:14px 18px;border-radius:0 12px 12px 0;margin-top:12px;min-height:52px;
  color:var(--ink-soft)}
@media(max-width:640px){.plan-nav{width:40px;height:40px}.plan-prev{left:8px}.plan-next{right:8px}}
.teasers-sec{padding:90px 0 20px}.teaser{display:block;text-decoration:none;color:inherit;position:relative;transition:transform .35s var(--ease)}.teaser:hover{transform:translateY(-4px)}.t-more{position:absolute;right:22px;bottom:16px;color:var(--zellige);font-size:1.1rem}@media(max-width:720px){.teasers-sec .todo-grid{grid-template-columns:1fr!important}}
/* ---------- hero promo pill (P6) ---------- */
.hero-promo{display:inline-flex;align-self:flex-start;margin-top:clamp(12px,2svh,20px);
  padding:8px 18px 7px;background:var(--zellige);color:var(--sand);
  border-radius:999px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;font-weight:600;opacity:0;box-shadow:0 6px 22px rgba(0,0,0,.28)}
.loaded .hero-promo{animation:riseIn 1.1s var(--ease-lux) 1.3s forwards}
.hero-promo:hover{background:#5d8474}
@media(prefers-reduced-motion:reduce){.hero-promo{opacity:1;animation:none}}

/* ---------- meerstaps-formulier ---------- */
.bf-progress{display:none;gap:8px;align-items:center;margin:0 0 18px;
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.js-steps .bf-progress{display:flex;flex-wrap:wrap}
.bf-progress .pdot{width:26px;height:26px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;border:1px solid var(--stone);
  font-weight:600;background:transparent;color:var(--ink-soft)}
.bf-progress .pdot.done,.bf-progress .pdot.now{background:var(--zellige);
  border-color:var(--zellige);color:var(--sand)}
.bf-progress .plbl{margin-right:10px}
.js-steps .bf-step{display:none}
.js-steps .bf-step.on{display:block}
.bf-step .bf-grid{margin-bottom:0}
.bf-navrow{display:flex;gap:12px;margin-top:18px}
.btn.btn-back{background:transparent;border:1px solid var(--stone);color:inherit}

/* ---------- boekingssectie: badge, hints, videocall ---------- */
.rate-badge{display:inline-block;margin:0 0 16px;padding:8px 18px 7px;
  border:1px solid var(--mint);color:var(--mint);border-radius:999px;
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.bf-hint{display:block;margin-top:4px;font-size:.78rem;opacity:.75;font-weight:400}
.bf-check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;
  font-size:.88rem;cursor:pointer}
.bf-check input{margin-top:3px;accent-color:var(--mint)}
.bf-trust{margin-top:12px;font-size:.78rem;opacity:.75}

/* ---------- domein-in-20s strip ---------- */
.glance{padding:26px 0 8px}
.glance-note{text-align:center;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}
.glance-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:1100px;margin:0 auto;padding:0 18px}
.glance-row a{display:block;position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3}
.glance-row img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-lux)}
.glance-row a:hover img{transform:scale(1.05)}
.glance-row span{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;font-size:.72rem;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.55));letter-spacing:.03em}
@media(max-width:760px){.glance-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px}
  .glance-row a{flex:0 0 46%;scroll-snap-align:start}}
/* ---------- dag-nacht-schuif ---------- */
.dn{position:relative;max-width:980px;margin:26px auto 0;border-radius:16px;overflow:hidden;aspect-ratio:3/2}
.dn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dn .dn-top{clip-path:inset(0 calc(100% - var(--dn,50%)) 0 0)}
.dn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;z-index:3}
.dn .dn-line{position:absolute;top:0;bottom:0;left:var(--dn,50%);width:2px;background:var(--sand);z-index:2;pointer-events:none}
.dn .dn-line::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:38px;height:38px;border-radius:50%;background:var(--sand);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:1rem}
.dn .dn-tag{position:absolute;bottom:10px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:rgba(0,0,0,.45);padding:4px 10px;border-radius:999px;z-index:2;pointer-events:none}
.dn .dn-tag.l{left:10px}.dn .dn-tag.r{right:10px}
.cta-micro{margin-top:10px;font-size:.78rem;opacity:.75}
.counter .lbl-sub{display:block;font-size:.68rem;opacity:.7;font-weight:400;letter-spacing:.02em;text-transform:none}
.foot-sign{margin-top:18px;font-family:var(--serif);font-style:italic;opacity:.85}

@media(max-width:640px){.book-cta-row .btn-wa{order:-1}}
.res-meta{display:block;margin:8px 0 10px}
.hero-link{background:none;border:1px solid transparent;text-decoration:underline;text-underline-offset:5px;padding:14px 8px;letter-spacing:.08em}
.glance{width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;padding:30px 0}
.glance .glance-note{max-width:1200px;margin:0 auto 16px;padding:0 24px}
.glance-row{display:flex;gap:16px;width:max-content;animation:glanceGlide 60s linear infinite;will-change:transform}
.glance-row a{flex:0 0 auto;position:relative}
.glance-row img{height:clamp(240px,46vh,460px);width:auto;border-radius:14px;box-shadow:0 18px 44px rgba(20,17,14,.18)}
.glance:hover .glance-row,.glance:active .glance-row{animation-play-state:paused}
@keyframes glanceGlide{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.glance-row{animation:none;width:auto;overflow-x:auto}}
.glance-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab}
.glance-scroll::-webkit-scrollbar{display:none}
.glance-scroll:active{cursor:grabbing}
.glance-row{animation:none !important}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:96px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.grounds-cols{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:start}
.grounds-media{display:grid;gap:14px}
.grounds-media img{width:100%;border-radius:14px;box-shadow:0 14px 34px rgba(20,17,14,.15)}
@media(max-width:820px){.grounds-cols{grid-template-columns:1fr}}
.wing-scroll{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;border-radius:16px}
.wing-scroll::-webkit-scrollbar{display:none}
.wing-scroll:active{cursor:grabbing}
.wing-row{display:flex;gap:12px;width:max-content}
.wing-row figure.ph{flex:0 0 auto;margin:0;aspect-ratio:auto}
.wing-row img{height:clamp(300px,54vh,560px);width:auto;border-radius:14px;display:block;cursor:zoom-in}
.res-head{display:block}
.res .wing-scroll{margin-top:16px}
.wing-scroll{position:relative}
.slide-hint{display:flex;align-items:center;gap:8px;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;opacity:.62;margin:0 0 10px}
.slide-hint::before{content:"";width:26px;height:1px;background:currentColor;display:inline-block}

/* ---------- rustbanden + zwaardere iconen (tekstwoestijn-fix) ---------- */
.band-quiet{height:44vh;min-height:300px}
.band-quiet::after{background:rgba(24,20,16,.10)}
@media(max-width:820px){
  .band-quiet{height:36svh;min-height:230px}
  .amen svg{width:46px;height:46px}
  .amen{padding:26px 22px}
}

/* ---------- 'Ideaal voor'-categorierooster ---------- */
.ideal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.ideal-grid{grid-template-columns:repeat(2,1fr)}}
.ideal-grid .teaser{display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:22px 20px;min-height:0}
.ideal-grid .teaser h4{margin:0;font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.25}
.ideal-grid .teaser .t-more{opacity:.55;transition:transform .3s var(--ease-lux)}
.ideal-grid .teaser:hover .t-more{transform:translateX(4px)}
.grounds-after{margin-top:26px}
@media (prefers-reduced-motion: reduce){.ideal-grid .teaser .t-more{transition:none}}

/* ===== v64 ===== */

/* ==========================================================================
   v64 — compacte, conversiegerichte layoutlaag
   Doel: minder loze witruimte, gevarieerde paginaopeningen, foto's doen het
   zware werk. Cascade-veilig onderaan de bestaande <style> geplaatst.
   ========================================================================== */

/* ---------- ritme ---------- */
.sec{padding:clamp(52px,6.4vw,80px) 0}
.sec-tight{padding:clamp(30px,3.6vw,46px) 0}
.sec-linen{background:var(--sand-deep)}
.sec-ink{background:var(--ink);color:#fff}
.sec-ink .eyebrow{color:rgba(255,253,249,.62)}
.sec+.sec.sec-flush{padding-top:0}
.sec>.wrap>.eyebrow{margin-bottom:10px}
.sec h2{font-size:clamp(1.85rem,3.6vw,2.9rem);letter-spacing:-.01em}
.sec-lead{margin-top:12px;max-width:60ch;color:var(--ink-soft)}
.sec-ink .sec-lead{color:rgba(255,253,249,.8)}

/* ---------- opening A: hero-full (beeldvullend) ---------- */
.sub-hero.hero-full{position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:76vh;min-height:76svh;padding:132px 0 clamp(40px,6svh,74px);background:none;color:#fff;max-width:none}
.sub-hero.hero-full::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(20,17,14,.52) 0%,rgba(20,17,14,.18) 34%,rgba(20,17,14,.80) 100%),
             linear-gradient(90deg,rgba(20,17,14,.55) 0%,rgba(20,17,14,.16) 52%,rgba(20,17,14,0) 78%),
             var(--hero) center/cover no-repeat;
  animation:shZoom 26s ease-in-out infinite alternate}
.sub-hero.hero-full>.wrap{position:relative;z-index:1;width:100%}
.sub-hero.hero-full h1{color:#fff;max-width:16ch;font-size:clamp(2.25rem,5.2vw,4rem);
  text-shadow:0 2px 34px rgba(0,0,0,.34)}
.sub-hero.hero-full .eyebrow{color:rgba(255,253,249,.82)}
.sub-hero.hero-full .sh-lead{color:rgba(255,253,249,.94);max-width:54ch;margin-top:14px;
  text-shadow:0 1px 20px rgba(0,0,0,.36)}
.sub-hero.hero-full .sh-chips li{border-color:rgba(255,255,255,.5);color:#fff}
.sub-hero.hero-full .hero-link{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
@media(prefers-reduced-motion:reduce){.sub-hero.hero-full::before{animation:none}}

/* ---------- opening B: hero-stack (tekst links, gelaagde beelden rechts) --- */
.sub-hero.hero-stack{display:block;background:none;color:inherit;max-width:none;
  padding:clamp(116px,13svh,164px) 0 clamp(44px,6svh,80px)}
.hs-grid{display:grid;grid-template-columns:.94fr 1.06fr;gap:clamp(26px,4.4vw,60px);align-items:center}
.hs-art{position:relative;padding-bottom:52px;padding-right:34px}
.hs-art figure{margin:0;overflow:hidden;border-radius:18px;
  box-shadow:0 32px 70px -34px rgba(44,38,32,.5);border:1px solid rgba(44,38,32,.07)}
.hs-art img{width:100%;height:100%;object-fit:cover}
.hs-art .hs-a{aspect-ratio:4/3}
.hs-art .hs-b{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1/1;
  border:5px solid var(--sand);border-radius:18px}
@media(prefers-reduced-motion:no-preference){
  .hs-art .hs-a img{animation:shZoom 24s ease-in-out infinite alternate}}

/* ---------- opening C: hero-frame (redactioneel + triptiek) ---------- */
.sub-hero.hero-frame{display:block;background:none;color:inherit;max-width:none;
  padding:clamp(120px,14svh,168px) 0 0;text-align:center}
.hero-frame h1{max-width:18ch;margin:6px auto 0;font-size:clamp(2.1rem,4.6vw,3.5rem)}
.hero-frame .sh-lead{max-width:58ch;margin:16px auto 0;color:var(--ink-soft)}
.hero-frame .sh-chips{justify-content:center}
.hf-strip{display:grid;grid-template-columns:1fr 1.28fr 1fr;gap:12px;
  max-width:1320px;margin:clamp(30px,4vw,52px) auto 0;padding:0 16px}
.hf-strip figure{margin:0;overflow:hidden;border-radius:16px;aspect-ratio:3/4;
  box-shadow:0 28px 64px -36px rgba(44,38,32,.45)}
.hf-strip figure:nth-child(2){aspect-ratio:1/1;align-self:end}
.hf-strip img{width:100%;height:100%;object-fit:cover}

/* gedeelde hero-onderdelen */
.sub-hero .sh-lead{font-size:1.02rem;line-height:1.6}
.sub-hero .sh-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px;padding:0;list-style:none}
.sub-hero .sh-chips li{border:1px solid rgba(44,38,32,.18);border-radius:999px;padding:7px 14px;
  font-size:.74rem;letter-spacing:.09em;text-transform:uppercase}
.sub-hero-cta{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:20px}
.hero-link{font-size:.9rem;border-bottom:1px solid rgba(44,38,32,.32);padding-bottom:2px;text-decoration:none}

/* ---------- bewijsbalk direct onder de hero ---------- */
.proofbar{background:var(--sand-deep);border-top:1px solid rgba(44,38,32,.07);
  border-bottom:1px solid rgba(44,38,32,.07);padding:18px 0}
.proofbar ul{display:flex;flex-wrap:wrap;gap:10px clamp(20px,4vw,54px);justify-content:center;
  list-style:none;margin:0;padding:0}
.proofbar li{display:flex;align-items:baseline;gap:8px;font-size:.88rem;color:var(--ink-soft)}
.proofbar b{font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1}

/* ---------- duo: beeld + korte tekst, afwisselend ---------- */
.duo{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(26px,4.4vw,60px);align-items:center}
.duo+.duo{margin-top:clamp(46px,5.6vw,74px)}
.duo.rev .duo-media{order:2}
.duo-media{margin:0;overflow:hidden;border-radius:20px;border:1px solid rgba(44,38,32,.07);
  box-shadow:0 30px 68px -34px rgba(44,38,32,.46)}
.duo-media img{width:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform 1.2s var(--ease-lux)}
.duo-media:hover img{transform:scale(1.035)}
.duo-copy h2{font-size:clamp(1.6rem,2.9vw,2.35rem);margin-bottom:12px}
.duo-copy p{color:var(--ink-soft);max-width:46ch}
.duo-facts{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.duo-facts li{background:var(--white);border:1px solid rgba(44,38,32,.09);border-radius:999px;
  padding:6px 13px;font-size:.79rem;color:var(--ink-soft)}
.duo-cta{margin-top:18px;display:inline-block}

/* ---------- fotomozaïek ---------- */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:12px}
.mosaic figure{margin:0;overflow:hidden;border-radius:14px;position:relative;
  box-shadow:0 22px 52px -34px rgba(44,38,32,.42);cursor:zoom-in}
.mosaic figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-lux)}
.mosaic figure:hover img{transform:scale(1.05)}
.mosaic figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.mosaic figure:nth-child(6){grid-column:span 4;grid-row:span 4}

/* ---------- cta-band midden op de pagina ---------- */
.cta-band{position:relative;display:grid;place-items:center;text-align:center;color:#fff;
  min-height:clamp(280px,40svh,420px);padding:56px 0;
  background:linear-gradient(180deg,rgba(20,17,14,.42),rgba(20,17,14,.62)),var(--cta) center/cover no-repeat}
.cta-band .cb-line{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.2;
  max-width:22ch;margin:0 auto 22px;text-shadow:0 2px 26px rgba(0,0,0,.35)}
.cta-band .btn{border-color:rgba(255,255,255,.75)}

/* ---------- compacte lijstblokken ---------- */
.tick{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:10px 26px}
.tick li{position:relative;padding-left:22px;font-size:.92rem;color:var(--ink-soft)}
.tick li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;
  background:var(--zellige)}
.linklist{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:0 30px}
.linklist li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid rgba(44,38,32,.1);font-size:.92rem}
.linklist li b{font-weight:500}
.linklist li span{color:var(--ink-soft);font-size:.84rem;text-align:right;white-space:nowrap}
.sec-ink .linklist li{border-bottom-color:rgba(255,253,249,.16)}
.sec-ink .linklist li span{color:rgba(255,253,249,.66)}

/* ---------- klimkaart-cijferregel ---------- */
.todo h4 .cl-side{display:block;font-family:var(--sans);font-size:.64rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px}
.todo p.cl-nums{font-variant-numeric:tabular-nums;color:var(--zellige);font-weight:600;
  font-size:.9rem;margin:2px 0 6px}

/* ---------- FAQ compacter ---------- */
.sec .faq-item{margin-bottom:8px}
.faq-wrap{max-width:840px}

/* ---------- btn-ghost: was wit-op-wit op lichte achtergronden ---------- */
.btn-ghost{border:1px solid rgba(44,38,32,.26);color:var(--ink);background:transparent}
.btn-ghost:hover{background:rgba(44,38,32,.06);border-color:rgba(44,38,32,.42)}
.band .btn-ghost,.cta-band .btn-ghost,.sec-ink .btn-ghost,.hero .btn-ghost,
.sub-hero.hero-full .btn-ghost{border-color:rgba(255,253,249,.7);color:var(--white)}
.band .btn-ghost:hover,.cta-band .btn-ghost:hover,.sec-ink .btn-ghost:hover,
.sub-hero.hero-full .btn-ghost:hover{background:rgba(255,253,249,.14)}

/* ---------- verwante pagina's onderaan ---------- */
.rel-sec{padding:clamp(30px,3.6vw,46px) 0 clamp(44px,5vw,66px)}
.rel-sec .eyebrow{margin-bottom:12px}

/* ---------- homepage: leegte dichten ---------- */
.ideal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ideal-grid .teaser{position:relative;display:block;min-height:190px;border-radius:16px;overflow:hidden;
  padding:0;border:0;background:var(--ink);box-shadow:0 24px 56px -34px rgba(44,38,32,.5)}
.ideal-grid .teaser img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1s var(--ease-lux)}
.ideal-grid .teaser::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,17,14,.06) 40%,rgba(20,17,14,.76) 100%)}
.ideal-grid .teaser span{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;color:#fff;
  font-family:var(--serif);font-size:1.12rem;line-height:1.2}
.ideal-grid .teaser:hover img{transform:scale(1.06)}
.intro-cols{align-items:start}
.intro-fig{margin:0;border-radius:20px;overflow:hidden;border:1px solid rgba(44,38,32,.07);
  box-shadow:0 30px 66px -36px rgba(44,38,32,.46)}
.intro-fig img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* vleugelkaarten: .res-head is een 2-koloms grid met min-height 340px, maar
   er staat maar één kolom in — dat gaf per kaart een half leeg vlak */
.p-home .res-head{grid-template-columns:1fr;min-height:0}
.p-home .res-copy{padding:30px 34px 18px}
.p-home .res-tag{margin-bottom:12px}
.p-home .res{margin-top:clamp(26px,3vw,38px)}
.p-home .slide-hint{margin-top:2px}

/* homepage-secties dichter op elkaar */
.p-home .intro{padding-top:clamp(48px,5.4vw,70px);padding-bottom:clamp(34px,4vw,52px)}
.p-home .residences,.p-home .amenities,.p-home .location,.p-home .values-sec,
.p-home .facts-sec,.p-home .settings-sec,.p-home .teasers-sec,.p-home .grounds-sec,
.p-home .testimonials{padding-top:clamp(48px,5.4vw,72px);padding-bottom:clamp(48px,5.4vw,72px)}
.p-home .plan{padding-top:clamp(34px,4vw,52px)}
.p-home .band-quiet .band-media img{max-height:52svh;object-fit:cover}
.p-home .faq{padding-bottom:clamp(56px,6vw,84px)}

/* ---------- mobiel ---------- */
@media(max-width:900px){
  .hs-grid{grid-template-columns:1fr;gap:26px}
  .hs-art{order:0;padding-bottom:38px;padding-right:22px}
  .duo{grid-template-columns:1fr;gap:22px}
  .duo.rev .duo-media{order:0}
  .duo+.duo{margin-top:40px}
  .mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:128px}
  .mosaic figure:nth-child(1){grid-column:span 2;grid-row:span 2}
  .mosaic figure:nth-child(6){grid-column:span 2;grid-row:span 2}
  .hf-strip{grid-template-columns:1fr 1fr;gap:10px}
  .hf-strip figure:nth-child(3){display:none}
  .sub-hero.hero-full{min-height:82svh;padding-top:104px}
  .sub-hero.hero-stack{padding-top:96px}
  .sub-hero.hero-frame{padding-top:100px}
  .proofbar ul{gap:8px 20px}
  .proofbar li{font-size:.8rem}
  .proofbar b{font-size:1.24rem}
}
@media(max-width:560px){
  .mosaic{grid-auto-rows:112px}
  .cta-band{min-height:300px}
}

/* ===== v64 homepage-ritme ===== */
.p-home .band{height:52vh;min-height:340px;margin:clamp(52px,6vw,78px) 0}
.p-home .intro-cols{grid-template-columns:1.04fr .96fr;gap:clamp(28px,4vw,54px);margin-top:32px;align-items:start}
.p-home .intro-side p{margin-bottom:20px}
.p-home .intro-text p+p{margin-top:18px}
.p-home .counters{margin-top:clamp(34px,4vw,48px)}
.p-home .wing-scroll{margin-top:18px}
.p-home .teasers-sec .todo-grid{margin-top:26px!important}
.p-home .glance{padding:0}
@media(max-width:900px){.p-home .intro-cols{grid-template-columns:1fr}}


.foot-trust{display:inline-block;margin:10px 0 4px;padding:7px 14px 6px;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:.82rem;letter-spacing:.02em;line-height:1.5}
.foot-trust b{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;opacity:.95}
.foot-checked{display:block;margin-top:8px;font-size:.78rem;opacity:.72}

/* ---------- Google-reviews: redactionele opmaak ---------- */
.gr-sec{padding:104px 0 96px;background:var(--linen,#EFE9DE)}
.gr-sec .wrap{max-width:1080px}
.gr-head{max-width:46ch}
.gr-lead{margin:44px 0 0;padding:0 0 0 52px;position:relative;max-width:56ch}
.gr-lead:before{content:"\201C";position:absolute;left:0;top:-.30em;
  font-family:var(--serif);font-size:5rem;line-height:1;color:var(--zellige);opacity:.26}
.gr-lead p{font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(1.18rem,1.7vw,1.58rem);line-height:1.52;letter-spacing:-.004em;
  color:var(--ink);margin:0}
.gr-lead cite,.gr-row cite{display:block;font-style:normal;font-size:.72rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);opacity:.72}
.gr-lead cite{margin-top:22px}
.gr-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:66px;
  border-top:1px solid rgba(44,38,32,.12)}
.gr-row blockquote{margin:0;padding:34px 38px 0 0}
.gr-row blockquote+blockquote{padding-left:38px;border-left:1px solid rgba(44,38,32,.12)}
.gr-row p{font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:1.02rem;line-height:1.62;color:var(--ink);margin:0 0 16px}
.gr-note{margin-top:52px;font-size:.82rem;color:var(--ink-soft);opacity:.7}
@media(max-width:900px){
  .gr-sec{padding:76px 0 68px}
  .gr-row{grid-template-columns:1fr;margin-top:44px}
  .gr-row blockquote{padding:28px 0 0}
  .gr-row blockquote+blockquote{padding-left:0;border-left:0;border-top:1px solid rgba(44,38,32,.12)}
  .gr-lead{padding-left:34px}
}

/* v79: wing-row-foto's vullen hun kaart (geen wit onder de foto) */
.wing-row figure.ph{display:flex;background:transparent;box-shadow:0 14px 34px rgba(20,17,14,.15)}
.wing-row figure.ph img{aspect-ratio:auto;width:auto;height:clamp(300px,54vh,560px);object-fit:cover}
/* v79: trage automatische beweging in galerijfoto's; stopt onder de muis */
@keyframes kbDrift{0%{transform:scale(1.001)}50%{transform:scale(1.075)}100%{transform:scale(1.001)}}
/* v84: drift alleen voor foto's die in beeld zijn (IntersectionObserver zet .kbon) */
img.kbon{animation:kbDrift 28s ease-in-out infinite}
.mosaic figure:nth-child(2n) img.kbon,.wing-row figure:nth-child(2n) img.kbon,
.strip figure:nth-child(2n) img.kbon,.ig-grid a:nth-child(2n) img.kbon{animation-duration:34s;animation-delay:-12s}
.mosaic figure:nth-child(3n) img.kbon,.wing-row figure:nth-child(3n) img.kbon{animation-duration:31s;animation-delay:-6s}
.mosaic figure:hover img,.wing-row figure:hover img,.strip figure:hover img,
.ig-grid a:hover img,.ph-grid figure.ph:hover img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){img.kbon{animation:none}}

/* v80: compactere Ideal-for-tegels + 2 kolommen op mobiel */
.teaser{min-height:150px!important}
@media(max-width:820px){
  .teasers-sec .todo-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px}
  .teaser{min-height:112px!important}
  .teaser span{font-size:.95rem;left:12px;right:12px;bottom:10px}
}

/* v82: Ideal-for — uniforme kleinere tegels die duidelijk klikbaar zijn */
.teaser{min-height:0!important;height:112px!important;border-radius:14px}
.teaser span{background:rgba(20,17,14,.62);padding:7px 14px;border-radius:999px;
  width:max-content;max-width:calc(100% - 24px);font-size:1rem;line-height:1.2;
  left:12px;bottom:12px;right:auto;backdrop-filter:blur(3px);
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.35)}
.teaser span::after{content:"\2192";font-family:inherit;transition:transform .3s var(--ease-lux)}
.teaser:hover span::after{transform:translateX(4px)}
.teaser:hover span{background:rgba(20,17,14,.8)}
.teaser:focus-visible{outline:3px solid var(--zellige);outline-offset:2px}
@media(max-width:820px){
  .teaser{height:88px!important}
  .teaser span{font-size:.88rem;padding:6px 11px;left:10px;bottom:10px}
}

/* v86: Ideal-for als tekstknoppen (geen foto's meer) */
.tbtn{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--white);border:1px solid var(--hairline);border-radius:14px;
  padding:18px 20px;text-decoration:none;color:var(--ink);
  font-family:var(--serif);font-size:1.06rem;line-height:1.25;box-shadow:var(--shadow-soft);
  transition:transform .3s var(--ease-lux),border-color .3s,box-shadow .3s}
.tbtn .tb-arrow{color:var(--zellige);font-size:1.1rem;transition:transform .3s var(--ease-lux)}
.tbtn:hover{transform:translateY(-2px);border-color:var(--zellige);box-shadow:0 18px 40px -22px rgba(44,38,32,.35)}
.tbtn:hover .tb-arrow{transform:translateX(4px)}
.tbtn:focus-visible{outline:3px solid var(--zellige);outline-offset:2px}
@media(max-width:820px){.tbtn{padding:14px 16px;font-size:.98rem}}
/* style */
.ph picture,.duo-media picture{display:block}.ph picture img,.duo-media picture img{display:block;width:100%;height:100%;object-fit:cover}
/* style#galCss */
/* ============ v88 — galerij-module: pijlen, teller, klik-door-alle-foto's ============ */
.galx{position:relative}
.galx .wing-scroll{scroll-snap-type:none}
.galx::before,.galx::after{content:"";position:absolute;top:0;bottom:0;width:70px;z-index:2;
  pointer-events:none;opacity:1;transition:opacity .4s var(--ease-lux)}
.galx::before{left:0;border-radius:16px 0 0 16px;
  background:linear-gradient(90deg,var(--gal-fade,#F4EFE6) 4%,var(--gal-fade0,rgba(244,239,230,0)))}
.galx::after{right:0;border-radius:0 16px 16px 0;
  background:linear-gradient(270deg,var(--gal-fade,#F4EFE6) 4%,var(--gal-fade0,rgba(244,239,230,0)))}
.galx.at-start::before{opacity:0}
.galx.at-end::after{opacity:0}

.gal-btn{position:absolute;top:50%;z-index:5;width:46px;height:46px;border-radius:50%;padding:0;
  border:1px solid rgba(44,38,32,.10);background:rgba(255,255,255,.94);color:#2C2620;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transform:translateY(-50%);
  box-shadow:0 12px 30px -12px rgba(20,17,14,.55);
  transition:opacity .35s var(--ease-lux),background .3s,box-shadow .3s,transform .3s}
.gal-btn svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.gal-prev{left:12px}
.gal-next{right:12px}
.gal-btn:hover{background:#fff;transform:translateY(-50%) scale(1.07);
  box-shadow:0 16px 34px -12px rgba(20,17,14,.6)}
.gal-btn:focus-visible{outline:2px solid var(--zellige,#4F7263);outline-offset:3px}
.gal-btn[disabled]{opacity:0;pointer-events:none}

.gal-count{position:absolute;top:14px;right:14px;z-index:5;pointer-events:none;
  background:rgba(24,20,16,.58);color:#F4EFE6;font-size:.72rem;letter-spacing:.14em;
  padding:6px 12px;border-radius:999px;font-variant-numeric:tabular-nums;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

/* klik-affordance op elke galerijfoto */
.wing-row figure.ph,.mosaic figure{position:relative}
.wing-row figure.ph img,.mosaic figure img{cursor:zoom-in}
.wing-row figure.ph::after,.mosaic figure::after{content:"";position:absolute;right:12px;bottom:12px;
  width:34px;height:34px;border-radius:50%;z-index:2;pointer-events:none;opacity:0;transform:scale(.9);
  background:rgba(255,255,255,.94) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232C2620' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4H4v5M15 4h5v5M15 20h5v-5M9 20H4v-5'/%3E%3C/svg%3E") center/15px no-repeat;
  box-shadow:0 8px 20px -8px rgba(20,17,14,.55);
  transition:opacity .3s var(--ease-lux),transform .3s var(--ease-lux)}
.wing-row figure.ph:hover::after,.mosaic figure:hover::after,
.mosaic figure:focus-visible::after{opacity:1;transform:scale(1)}
.mosaic figure:focus-visible{outline:2px solid var(--zellige,#4F7263);outline-offset:3px}
@media(hover:none){
  .wing-row figure.ph::after,.mosaic figure::after{opacity:.9;transform:scale(1)}
}

/* ---------- volledig scherm: fotoviewer ---------- */
.galv{position:fixed;inset:0;z-index:9999;background:rgba(16,13,11,.96);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease-lux),visibility .35s}
.galv.open{opacity:1;visibility:visible}
.galv-main{flex:1 1 auto;display:flex;align-items:center;justify-content:center;
  width:100%;min-height:0;padding:58px 84px 6px;box-sizing:border-box}
.galv-img{max-width:min(1500px,90vw);max-height:100%;object-fit:contain;border-radius:10px;
  box-shadow:0 40px 90px rgba(0,0,0,.55);opacity:0;transform:scale(.985);
  transition:opacity .3s var(--ease-lux),transform .45s var(--ease-lux)}
.galv-img.ready{opacity:1;transform:scale(1)}
.galv-foot{flex:0 0 auto;width:100%;padding:10px 18px 18px;text-align:center;box-sizing:border-box}
.galv-cap{color:rgba(244,239,230,.82);font-family:var(--serif,Georgia,serif);font-style:italic;
  font-size:.95rem;line-height:1.5;margin:0 auto 6px;max-width:62ch}
.galv-count{color:rgba(244,239,230,.55);font-size:.74rem;letter-spacing:.18em;
  font-variant-numeric:tabular-nums;margin-bottom:10px}
.galv-thumbs{display:flex;gap:8px;overflow-x:auto;padding:3px 4px 5px;
  scrollbar-width:none;max-width:min(1100px,94vw);margin:0 auto}
.galv-thumbs::-webkit-scrollbar{display:none}
.galv-thumbs button{flex:0 0 auto;width:74px;height:52px;padding:0;border:0;border-radius:8px;
  overflow:hidden;cursor:pointer;background:none;opacity:.42;
  transition:opacity .3s var(--ease-lux)}
.galv-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.galv-thumbs button:hover{opacity:.85}
.galv-thumbs button.on{opacity:1;box-shadow:0 0 0 2px rgba(244,239,230,.9)}
.galv-thumbs button:focus-visible{outline:2px solid rgba(244,239,230,.9);outline-offset:2px}
.galv-btn{position:absolute;z-index:3;width:52px;height:52px;border-radius:50%;padding:0;
  border:1px solid rgba(244,239,230,.16);background:rgba(244,239,230,.10);color:#F4EFE6;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .3s,transform .3s}
.galv-btn svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.galv-btn:focus-visible{outline:2px solid rgba(244,239,230,.9);outline-offset:3px}
.galv-close{top:18px;right:18px}
.galv-close:hover{background:rgba(244,239,230,.2);transform:scale(1.06)}
.galv-prev,.galv-next{top:50%;transform:translateY(-50%)}
.galv-prev{left:18px}
.galv-next{right:18px}
.galv-prev:hover,.galv-next:hover{background:rgba(244,239,230,.2);transform:translateY(-50%) scale(1.06)}
.galv.solo .galv-prev,.galv.solo .galv-next,.galv.solo .galv-thumbs,.galv.solo .galv-count{display:none}
@media(max-width:820px){
  .gal-btn{width:40px;height:40px}
  .gal-prev{left:8px}
  .gal-next{right:8px}
  .galx::before,.galx::after{width:44px}
  .galv-main{padding:52px 10px 6px}
  .galv-btn{width:44px;height:44px}
  .galv-prev{left:8px}
  .galv-next{right:8px}
  .galv-close{top:12px;right:12px}
  .galv-thumbs button{width:58px;height:42px}
  .galv-cap{font-size:.88rem}
}
@media (prefers-reduced-motion: reduce){
  .galv,.galv-img,.gal-btn,.galx::before,.galx::after{transition:none}
}
/* style#css89 */
/* ============ v89 ============ */
/* randvervaging weg bij de strips (stoorde); pijlen + teller blijven */
.galx::before,.galx::after{content:none}

/* knoppen die op een LICHTE band moeten leesbaar zijn (btn-ghost is wit) */
.btn-ink{border:1px solid rgba(44,38,32,.28);color:var(--ink);background:transparent}
.btn-ink:hover{background:rgba(44,38,32,.05);border-color:rgba(44,38,32,.42)}
.btn-sm{padding:9px 17px;font-size:.74rem;letter-spacing:.11em}

/* contactknop boven de plattegrondlegende */
.legend-cta{flex:0 0 100%;width:100%;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:0 0 4px;padding-bottom:14px;border-bottom:1px solid rgba(44,38,32,.10)}
.legend-cta span{font-size:.82rem;color:var(--ink-soft)}
.ideal-cta{margin:34px auto 0;max-width:none;text-align:center}

/* reviews: gecentreerd, zonder platformnaam */
.gr-sec .gr-head{max-width:none;text-align:center;margin:0 auto}
.gr-sec .gr-head .eyebrow{justify-content:center}
.gr-lead{margin:40px auto 0;padding:44px 0 0;max-width:52ch;text-align:center}
.gr-lead:before{left:50%;transform:translateX(-50%);top:0;font-size:4rem;opacity:.22}
.gr-lead cite{display:block;margin-top:18px;font-style:normal;font-size:.72rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);opacity:.75}
.gr-row{margin-top:58px}
.gr-row blockquote{padding:34px 26px 0;text-align:center;
  border-left:1px solid rgba(44,38,32,.12)}
.gr-row blockquote:first-child{border-left:0}
.gr-sec .gr-note{text-align:center;margin-top:44px}
.gr-sec .gr-note.gr-src{margin-top:14px}
@media(max-width:820px){
  .gr-row{grid-template-columns:1fr}
  .gr-row blockquote{border-left:0;border-top:1px solid rgba(44,38,32,.12);padding:26px 4px 0}
  .gr-row blockquote:first-child{border-top:0}
}

/* boekformulier: rustiger ritme tussen badge, titel en velden
   (.book p is specifieker dan .rate-badge — vandaar de langere selector) */
.book-form{padding:32px 32px 36px}
.book .book-form .rate-badge{margin:0 0 24px;max-width:none;padding:7px 16px 6px;
  font-size:.72rem;line-height:1.5;white-space:nowrap}
.book .book-form .form-title{margin:0 0 4px;font-size:1.34rem}
.book-form .bf-progress{margin:0 0 30px}
@media(max-width:560px){
  .book .book-form .rate-badge{white-space:normal;line-height:1.6}
  .book-form{padding:24px 20px 28px}
}
/* style#css91 */
/* ============ v91 — beschikbaarheid ============ */
.book-form .bf-avail{max-width:none}
.bf-avail{margin:6px 0 0;font-size:.86rem;line-height:1.5;padding:9px 13px;border-radius:12px}
.bf-avail.is-busy{background:rgba(176,92,72,.14);color:#7d3a2c;border:1px solid rgba(176,92,72,.32)}
.bf-avail.is-free{background:rgba(79,114,99,.13);color:#33564a;border:1px solid rgba(79,114,99,.30)}
.book-form .bf-next[disabled]{opacity:.45;cursor:not-allowed}.bf-avail.is-hint{background:transparent;color:var(--ink-soft,#564c41);padding-left:0;padding-right:0;border:0}.bf-avail.is-calc{color:var(--ink-soft,#564c41);border-style:dotted}.bf-avail.is-calc::after{content:"";display:inline-block;width:.85em;height:.85em;margin-left:.5em;vertical-align:-.12em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:bfspin .8s linear infinite}@keyframes bfspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.bf-avail.is-calc::after{animation:none}}.bf-avail.is-price{background:rgba(79,114,99,.08);color:#2f4a3e;border:1px dashed rgba(79,114,99,.35);font-variant-numeric:tabular-nums}.bf-flex{display:flex;gap:10px;align-items:flex-start;margin:8px 0 0;font-size:.86rem;line-height:1.45;color:var(--ink,#2c2620)}.bf-flex input{margin-top:3px;flex:none}.bf-direct{margin:10px 0 0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.bf-direct small{font-size:.8rem;color:var(--ink-soft,#564c41);max-width:60ch;line-height:1.4}.bf-direct .bf-direct-btn{text-decoration:none}.bf-promo-link{display:inline-block;margin-top:8px;font-size:.9rem;color:#2f4a3e;text-decoration:underline;text-underline-offset:3px}.book-form .is-invalid,.book-form input.is-invalid,.book-form textarea.is-invalid,.book-form select.is-invalid{border-color:#b05c48!important;box-shadow:0 0 0 3px rgba(176,92,72,.16)!important}.bf-avail.is-hint{background:transparent;color:var(--ink-soft,#564c41);padding-left:0;padding-right:0;border:0}.bf-avail.is-price{background:rgba(79,114,99,.08);color:#2f4a3e;border:1px dashed rgba(79,114,99,.35);font-variant-numeric:tabular-nums}.bf-flex{display:flex;gap:10px;align-items:flex-start;margin:8px 0 0;font-size:.86rem;line-height:1.45;color:var(--ink,#2c2620)}.bf-flex input{margin-top:3px;flex:none}.book-form .is-invalid,.book-form input.is-invalid,.book-form textarea.is-invalid,.book-form select.is-invalid{border-color:#b05c48!important;box-shadow:0 0 0 3px rgba(176,92,72,.16)!important}
#vpv-availability{margin:6px 0 30px}
/* style#css93 */
/* ============ v93 ============ */
.intro .wrap .intro-welcome{font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.45;letter-spacing:-.005em;
  text-align:center;max-width:38ch;margin:0 auto;padding:6px 0}
@media(max-width:820px){.intro .wrap .intro-welcome{max-width:none;font-size:clamp(1.2rem,5.4vw,1.6rem)}}
.intro .counters{margin-top:clamp(38px,6vw,64px)}
/* style#css94 */
/* ============ v94 — datumkiezer ============ */
.vpk{position:absolute;z-index:9998;width:min(320px,92vw);padding:14px 14px 10px;
  background:var(--white,#FFFDF9);border:1px solid rgba(44,38,32,.12);border-radius:16px;
  box-shadow:0 26px 60px -24px rgba(20,17,14,.45);color:var(--ink,#2C2620);
  font-size:.9rem;line-height:1.2}
.vpk[hidden]{display:none}
.vpk-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.vpk-title{font-family:var(--serif,Georgia,serif);font-size:1.02rem}
.vpk-title::first-letter{text-transform:uppercase}
.vpk-top button{width:30px;height:30px;border-radius:50%;border:1px solid rgba(44,38,32,.16);
  background:transparent;color:inherit;cursor:pointer;font-size:16px;line-height:1}
.vpk-top button:disabled{opacity:.28;cursor:default}
.vpk-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.vpk-wd span{text-align:center;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft,#4A4139);opacity:.7}
.vpk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.vpk-days button,.vpk-days span{height:36px;border:0;background:transparent;border-radius:9px;
  font:inherit;color:inherit;cursor:pointer;font-variant-numeric:tabular-nums}
.vpk-days button:hover:not(:disabled){background:rgba(79,114,99,.14)}
.vpk-days button:disabled{cursor:default;color:rgba(44,38,32,.30)}
.vpk-days button.is-busy{text-decoration:line-through;color:rgba(176,92,72,.55)}
.vpk-days button.is-in{background:rgba(79,114,99,.10)}
.vpk-days button.is-a,.vpk-days button.is-b{background:var(--zellige,#4F7263);color:#fff}
.vpk-days button:focus-visible{outline:2px solid var(--zellige,#4F7263);outline-offset:1px}
.vpk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:10px;padding-top:9px;border-top:1px solid rgba(44,38,32,.10)}
.vpk-legend{display:flex;align-items:center;gap:6px;font-size:.72rem;
  color:var(--ink-soft,#4A4139);opacity:.85}
.vpk-legend i{width:14px;height:2px;background:rgba(176,92,72,.55);display:inline-block}
.vpk-clear{border:0;background:transparent;color:var(--ink-soft,#4A4139);cursor:pointer;
  font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}
.vpk-none{margin:8px 0 0;font-size:.74rem;color:var(--ink-soft,#4A4139);opacity:.8}
.book-form input[name=arrival],.book-form input[name=departure]{cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4139' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='2.5'/%3E%3Cpath d='M8 3v4M16 3v4M3.5 10h17'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:17px;padding-right:42px}
.book-form input[name=arrival]::-webkit-calendar-picker-indicator,
.book-form input[name=departure]::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none}
/* style#css96 */
/* ============ v96 ============ */
/* 1. even veel lucht boven als onder de welkomzin
   (body.p-home .intro is specifieker dan .intro — vandaar de langere selector) */
:root{--intro-gap:clamp(38px,6vw,64px)}
body .intro.intro{padding-top:var(--intro-gap)}
body .intro.intro .counters{margin-top:var(--intro-gap)}
.intro .wrap .intro-welcome{padding:0}

/* 3. meer lucht tussen de buitenfoto's en de afsluitende zin */
.grounds-sec .grounds-after{margin-top:clamp(44px,6vw,78px)}

/* 6. afscheidsgroet boven Instagram, in de stijl van de welkomzin */
.sign-block{margin:0 auto clamp(30px,5vw,52px);text-align:center;max-width:38ch}
.sign-block .sign-line{font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.45;letter-spacing:-.005em;margin:0}
.sign-block .sign-name{margin:10px 0 0;font-size:.78rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-soft);opacity:.8}

/* 7. Instagram-knop op één lijn met de titel */
.ig-follow{text-align:left;margin-top:22px}

/* videolussen op /villa/ */
.vclips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.vclips figure{margin:0}
.vclips .vwrap{position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 26px 60px -30px rgba(44,38,32,.42);background:var(--sand-deep,#EAE2D3)}
.vclips video{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
.vclips figcaption{font-family:var(--serif);font-style:italic;font-size:.93rem;
  padding:10px 2px 0;color:var(--ink-soft)}
@media(max-width:820px){.vclips{grid-template-columns:1fr;gap:20px}}
/* style#v97-fixes */
/* ======================================================================
   v97 — correcties na audit 27-07-2026. Dit blok staat bewust als laatste
   zodat het de historische v80/v82-lagen overschrijft zonder ze te raken.
   ====================================================================== */

/* --- 1. iOS safe areas (notch, Dynamic Island, home-indicator) --- */
.bar{bottom:calc(18px + env(safe-area-inset-bottom,0px))}
.wa-float{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
.top-btn{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.galv-foot{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
.vpk{padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
@media(min-width:821px){.wa-float{bottom:calc(24px + env(safe-area-inset-bottom,0px))}}
/* zwevende knoppen overlapten elkaar op mobiel */
@media(max-width:820px){.top-btn{bottom:calc(158px + env(safe-area-inset-bottom,0px))}}
/* de sticky boekbalk dekte de verzendknop af */
@media(max-width:820px){.book{padding-bottom:170px}}

/* --- 2. Tap targets minimaal 44x44 (Apple HIG) --- */
.vpk{width:min(360px,96vw)}
.vpk-days button{height:44px}
.vpk-top button{width:44px;height:44px}
.vpk-clear{min-height:44px;padding:12px 16px}
.langs a{min-height:44px;display:inline-flex;align-items:center;padding:10px 12px;font-size:.8rem}
.gal-btn,.plan-nav,.galv-btn{width:44px;height:44px}
.galv-thumbs button{height:44px}
.plan-legend button,.quick-q a,.faq-chip{min-height:44px;display:inline-flex;align-items:center}
.bar a{min-height:44px;display:inline-flex;align-items:center;padding:12px 24px}
.bf-check input{width:22px;height:22px;flex:0 0 22px}
.nav-toggle{min-width:44px;min-height:44px}

/* --- 3. Minimale leesbare tekstgrootte --- */
.vpk-wd span,.counter .lbl-sub,.bf-hint,.bf-trust,.gr-lead cite{font-size:.75rem}

/* --- 4. Hero: CTA binnen een halve seconde in beeld i.p.v. na 2,45 s --- */
.hero h1 .w{animation-duration:.5s!important}
.hero h1 .w:nth-child(1){animation-delay:.06s!important}
.hero h1 .w:nth-child(2){animation-delay:.11s!important}
.hero h1 .w:nth-child(3){animation-delay:.16s!important}
.hero h1 .w:nth-child(4){animation-delay:.21s!important}
.hero h1 .w:nth-child(5){animation-delay:.26s!important}
.hero h1 .w:nth-child(6){animation-delay:.31s!important}
.hero h1 .w:nth-child(7){animation-delay:.36s!important}
.hero h1 .w:nth-child(n+8){animation-delay:.4s!important}
.loaded .hero-sub{animation-delay:.3s!important;animation-duration:.55s!important}
.loaded .hero-promo{animation-delay:.4s!important;animation-duration:.55s!important}
.loaded .hero-cta-row{animation-delay:.48s!important;animation-duration:.55s!important}

/* --- 5. Mobiele hero: paste niet in 844 px en de foto zat onder 80% zwart --- */
@media(max-width:640px){
  .hero-inner{padding-top:calc(52px + 2svh);padding-bottom:clamp(32px,6svh,64px)}
  .hero-eyebrow{font-size:.66rem;letter-spacing:.16em}
  .hero h1{font-size:clamp(1.85rem,2vw + 3svh,2.6rem)}
  .hero-sub{font-size:1rem;max-width:32ch}
  .hero-chips{gap:6px}
  .hero-chips span{font-size:.7rem;padding:5px 10px}
  .hero-trust{display:none}
  .hero::after{background:linear-gradient(to top,rgba(24,20,16,.62) 0%,rgba(24,20,16,.34) 42%,rgba(24,20,16,.10) 100%)}
}

/* --- 6. Verticaal ritme op mobiel (was 220 px leegte per sectie) --- */
@media(max-width:640px){
  .intro,.residences,.amenities,.location,.book,.gr-sec,.settings-sec,
  .groups,.plans,.reviews,.tiers,.faq-sec{padding-top:64px!important;padding-bottom:64px!important}
  .book{padding-bottom:170px!important}
}

/* --- 7. Landschapsmodus (bestond niet) --- */
@media (orientation:landscape) and (max-height:520px){
  .hero{min-height:0;height:100svh}
  .hero-inner{padding-top:calc(40px + 1svh);padding-bottom:20px}
  .hero-chips,.hero-trust,.scroll-hint{display:none}
  .hero h1{font-size:clamp(1.6rem,3.4vh + 1vw,2.2rem)}
  .wing-row img{height:min(62vh,300px)}
}

/* --- 8. Contrast: vier combinaties zakten onder WCAG AA --- */
.promo-line,.rate-badge{color:#3A5749}
.res-b .res-tag{background:#3A5749;color:#FFFDF9}
.res-c .res-tag{background:#6F6154;color:#FFFDF9}
.btn-wa{background:#14663A}
.btn-wa:hover{background:#0F5330}

/* --- 9. De felgroene WhatsApp-bol binnen het palet trekken --- */
.wa-float{background:var(--ink,#2C2620);box-shadow:0 10px 24px -12px rgba(0,0,0,.5)}
.wa-float:hover{transform:none;background:#1D1814}
.wa-float svg,.wa-float path{fill:var(--sand,#F4EFE6)}

/* --- 10. Leesvoortgangsbalk hoort niet op een villasite --- */
#progress{display:none!important}

/* --- 11. Rustigere, minder mechanische beweging --- */
.glance-row{animation-duration:110s!important}
@keyframes kbDrift{0%{transform:scale(1.002)}50%{transform:scale(1.028)}100%{transform:scale(1.002)}}
/* animeerde 'top' (layout per frame) -> nu transform (composited) */
@keyframes drip{to{transform:translateY(26px)}}

/* --- 13. Fotoviewer: inzoomen op materiaal en detail --- */
.galv-img{touch-action:pinch-zoom}
/* sluiten ook binnen duimbereik */
@media(max-width:820px){
  .galv-close{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));right:18px;
              width:52px;height:52px;z-index:10000}
}

/* --- 14. Regellengte --- */
.grounds-txt p{max-width:66ch}

/* --- 15. Vormcontrast: niet alles is een pil --- */
.res-card,.card,.tier-card,.gr-card,.plan-stage{border-radius:10px}
.btn-solid{box-shadow:0 10px 24px -16px rgba(44,38,32,.55)}

/* --- 16. Juridische footerlinks --- */
.legal-links{margin-top:14px;font-size:.78rem;line-height:2;opacity:.85}
.legal-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legal-links a:hover{opacity:.7}
.legal-sep{opacity:.45;padding:0 8px}

/* --- 17. Prijsblok --- */
.priceband{background:var(--linen,#EFE9DE);padding:34px 0}
.priceband .wrap{max-width:var(--maxw,1180px);margin:0 auto;padding:0 24px}
.priceband-in{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 26px}
.priceband strong{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.32rem}
.priceband span{color:var(--ink-soft,#4A4139);font-size:.95rem}
.priceband a{color:#3A5749;text-decoration:underline;text-underline-offset:3px;font-size:.95rem}
@media(max-width:640px){.priceband{padding:26px 0}.priceband strong{font-size:1.12rem}}

/* --- 18. Toestemmingsvinkje bij het formulier --- */
.bf-consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0 4px;
            font-size:.82rem;line-height:1.5;color:var(--ink-soft,#4A4139)}
.bf-consent input{width:22px;height:22px;flex:0 0 22px;margin-top:1px;accent-color:#3A5749}
.bf-consent a{color:#3A5749;text-underline-offset:3px}

/* --- 19. h4 -> h3 (headingsprong h2->h4 weggewerkt, uiterlijk gelijk) --- */
.amen h3.sub-h{font-family:var(--serif);font-weight:500;font-size:1.15rem;margin:0 0 6px}
.aud  h3.sub-h{font-family:var(--serif);font-weight:500;font-size:1.2rem;margin:0 0 8px}
.day  h3.sub-h{font-family:var(--serif);font-weight:500;font-size:1.25rem;margin:0 0 14px}
.todo h3.sub-h{font-family:var(--serif);font-weight:500;font-size:1.1rem;margin:0 0 6px}
/* --- 20. FAQ-vragen krijgen een heading zonder visueel te veranderen --- */
h3.faq-h{margin:0;padding:0;font:inherit;font-size:inherit;font-weight:inherit;
         letter-spacing:inherit;line-height:inherit;color:inherit;display:block}

/* --- 21. Naregeling na rendertest op 390x844, 375x667, 844x390 en 1440x900 --- */
.btn,.btn-solid,.btn-back,.btn-wa,.hero-link{min-height:44px;display:inline-flex;
  align-items:center;justify-content:center}
.hero-promo{min-height:44px;display:inline-flex;align-items:center}
.nav-drop,.nav-group>button{min-height:44px;padding-top:8px;padding-bottom:8px}
footer a,.foot-more a,.foot-social a,.foot-featured a,.legal-links a{
  display:inline-flex;align-items:center;min-height:34px;padding:4px 2px}
.foot-more a,.legal-links a{min-height:44px;padding:8px 4px}
/* geen tekst meer onder 12 px */
.hero-eyebrow{font-size:.8rem;letter-spacing:.14em}
.eyebrow{font-size:.76rem}
.hero-chips span{font-size:.76rem}
@media(max-width:640px){
  .hero-eyebrow{font-size:.76rem;letter-spacing:.12em}
  .hero-chips span{font-size:.76rem;padding:6px 10px}
}

/* --- 22. Laatste labels onder 12 px opgetrokken (rendertest ronde 2) --- */
.res-tag,.plan-count,.plan-zoom-hint,.tier-note,.gal-count{font-size:.78rem}
.btn{font-size:.86rem}
.foot-social a,.foot-featured a{min-height:38px}

/* --- 23. Navigatiepil en hero-kopregel (rendertest ronde 3) --- */
.nav-cta{white-space:nowrap}
.brand{white-space:nowrap}
.hero-eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){
  .hero-inner{padding-top:calc(84px + 2svh)}
  .hero-eyebrow{white-space:normal;overflow:visible}
}
@media(max-width:400px){.hero-eyebrow{font-size:.7rem;letter-spacing:.1em}}

/* --- 24. Header paste niet meer op 360-390 px (rendertest ronde 4, gemeten
       tegen v96: nav was 198 px breed, na de langere CTA 223 px) --- */
.rate-badge{font-size:.78rem}
.nav-cta{white-space:nowrap}
@media(max-width:820px){
  header{padding-left:16px;padding-right:16px}
  .nav-cta{font-size:.76rem;padding:10px 12px;letter-spacing:0}
}
@media(max-width:400px){.nav-cta{font-size:.74rem;padding:10px 11px;letter-spacing:0}}

/* --- 25. De hero-eyebrow werd op desktop tot 0 px geknepen: overflow:hidden
       maakt een flex-item krimpbaar onder zijn eigen inhoudshoogte, en de
       langere H1 liet de hero-kolom overlopen. --- */
.hero-eyebrow{overflow:visible;text-overflow:clip}
.hero-inner>*{flex:0 0 auto}
@media(min-width:821px){.hero h1{font-size:clamp(2rem,2.6vw + 2.6svh,4.3rem)}}

/* --- 26. De width/height-attributen op img-elementen gelden als presentatie-hint met
       een definitieve hoogte zodra de CSS zelf geen height zet. Daardoor won
       height=600 van aspect-ratio:1 en werden o.a. de Instagram-tegels
       165x600 in plaats van vierkant. Deze ene regel herstelt dat overal;
       elke expliciete CSS-hoogte (.hero-media img, .wing-row img, .band-media
       img, ...) is specifieker en blijft dus gewoon gelden. --- */
img{height:auto}

/* --- 27. Op mobiel waren de galerijfoto's 600-810 px breed op een scherm van
       390 px, dus je zag altijd maar een fragment. Nu past elke foto in beeld
       en klikt de horizontale rij netjes per foto vast. --- */
@media(max-width:820px){
  .wing-row img,.wing-row figure.ph img{
    height:auto;width:min(84vw,340px);aspect-ratio:3/2;object-fit:cover}
  .glance-row img{height:auto;width:min(70vw,290px);aspect-ratio:3/2;object-fit:cover}
  .wing-row{scroll-snap-type:x proximity}
  .wing-row figure{scroll-snap-align:center}
}

/* --- 28. Instagram-widget: container voor de live feed. Blijft verborgen tot
       de widget echt inhoud heeft gerenderd; daarna verdwijnen de vaste foto's. --- */
.ig-embed{margin-top:18px;min-height:0}
.ig-embed[hidden]{display:none!important}
.ig-embed behold-widget{display:block;width:100%}
.ig-embed iframe{display:block;width:100%;border:0;border-radius:14px}
.ig-note{margin-top:10px;font-size:.78rem;color:var(--ink-soft,#4A4139);opacity:.75}

/* --- 29. Sectie 'In de buurt': dorpenkaart met OpenStreetMap-embed (zelfde
       aanpak als de bestaande kaart, geen API-sleutel, geen cookies). --- */
.dorpen-sec .dorpen-lead{max-width:66ch;margin-top:14px}
.dorpen-sub{margin-top:52px;font-family:var(--serif,Georgia,serif);font-weight:500;font-size:1.35rem}
.dorp-map{margin-top:30px;background:var(--white,#FFFDF9);border-radius:16px;padding:16px;
          border:1px solid var(--hairline,rgba(44,38,32,.12))}
.dorp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.dorp-chip{border:1px solid rgba(44,38,32,.22);background:none;border-radius:999px;
           padding:10px 16px;font:inherit;font-size:.82rem;cursor:pointer;min-height:44px;
           display:inline-flex;align-items:center;transition:background .35s var(--ease,ease),
           border-color .35s var(--ease,ease),color .35s var(--ease,ease)}
.dorp-chip:hover{border-color:#3A5749}
.dorp-chip.is-on{background:#3A5749;border-color:#3A5749;color:var(--white,#FFFDF9)}
.dorp-map iframe{display:block;width:100%;height:clamp(280px,42vh,440px);border:0;border-radius:12px;
                 background:var(--sand,#F4EFE6)}
.dorp-readout{margin-top:12px;font-size:.9rem;color:var(--ink-soft,#4A4139);min-height:1.5em}
.dorp-readout strong{color:var(--ink,#2C2620)}
.dorp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px}
.dorp-card{background:var(--white,#FFFDF9);border:1px solid var(--hairline,rgba(44,38,32,.12));
           border-radius:12px;padding:20px 20px 16px}
.dorp-card h3{font-family:var(--serif,Georgia,serif);font-weight:500;font-size:1.18rem;margin:0 0 6px}
.dorp-card p{margin:0;font-size:.94rem;color:var(--ink-soft,#4A4139);max-width:42ch}
.dorp-facts{margin:14px 0 0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.84rem}
.dorp-facts dt{color:var(--ink-soft,#4A4139);opacity:.8}
.dorp-facts dd{margin:0;color:var(--ink,#2C2620)}
.dorp-link{margin-top:14px;border:0;background:none;padding:10px 0;font:inherit;font-size:.84rem;
           color:#3A5749;cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:44px}
.dorp-link:hover{opacity:.75}
.dorp-caveat{margin-top:22px;font-size:.8rem;color:var(--ink-soft,#4A4139);opacity:.8;max-width:62ch}
@media(max-width:640px){
  .dorp-map{padding:12px}
  .dorp-grid{grid-template-columns:1fr}
  .dorpen-sub{margin-top:40px}
}

/* --- 30. Dorpen worden als vlak getoond, niet als speld. De vorm is geschaald
       op de bebouwde kern en ligt over de kaart, dus zonder extra verzoek. --- */
.dorp-mapwrap{position:relative;line-height:0}
.dorp-zone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.85);
  border-radius:50%;pointer-events:none;opacity:0;
  background:rgba(58,87,73,.16);border:2px solid rgba(58,87,73,.6);
  box-shadow:0 0 0 1px rgba(255,253,249,.55) inset;
  transition:opacity .45s var(--ease,ease),transform .45s var(--ease,ease),
             width .45s var(--ease,ease),height .45s var(--ease,ease)}
.dorp-zone.is-on{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media (prefers-reduced-motion: reduce){.dorp-zone{transition:none}}
/* style */
.gr-note.gr-src{text-align:center}.promo-line{font-weight:600}
/* style#vpBarCss */
/* v138 — sticky boekbalk: verbergt zich bij de boekingssectie en staat ook op de dieptepagina's */
.bar.vp-atbook{transform:translate(-50%,140%)!important}
.bar .vp-wa{background:#25D366;padding:0;width:44px;height:44px;min-height:44px;flex:0 0 44px;
  display:inline-flex;align-items:center;justify-content:center;border-radius:999px}
.bar .vp-wa:hover{background:#1FB457}
.bar .vp-wa svg{width:24px;height:24px;fill:#fff;display:block}
@media(max-width:820px){.bar{max-width:calc(100vw - 24px)}}
/* op smalle schermen is de merknaam ruis: de knoppen krijgen de ruimte */
@media(max-width:640px){.bar span{display:none}.bar{padding:12px 14px}}
/* de balk wijkt nu zelf; de oude noodruimte onder de boekingssectie kan kleiner */
@media(max-width:820px){.book{padding-bottom:96px}}
@media(max-width:640px){.book{padding-bottom:96px!important}}
/* style#chipsMobile */
@media (max-width:820px){
  .sub-hero .sh-chips{gap:7px 14px;margin:14px 0 18px}
  .sub-hero .sh-chips li{border:0;border-radius:0;padding:0;font-size:.74rem;letter-spacing:.1em}
  .sub-hero .sh-chips li::before{content:"·";margin-right:10px;opacity:.65}
  .sub-hero.hero-full .sh-chips li{text-shadow:0 1px 14px rgba(0,0,0,.5)}
  .hero-chips{gap:7px 14px}
  .hero-chips span{border:0;border-radius:0;padding:0;font-size:.72rem;letter-spacing:.08em;text-shadow:0 1px 14px rgba(0,0,0,.5)}
  .hero-chips span::before{content:"·";margin-right:10px;opacity:.65}
}
/* style#idealCenter */
/* v182: 7 tegels = 4 + 3 gecentreerd op pc (8-koloms raster), laatste oneven tegel gecentreerd op mobiel */@media (min-width:821px){.ideal-grid{grid-template-columns:repeat(8,1fr)}.ideal-grid>.tbtn{grid-column:span 2}.ideal-grid>.tbtn:nth-child(4n+1):nth-last-child(3){grid-column:2 / span 2}}@media (max-width:820px){.ideal-grid>.tbtn:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 5px)}}
/* style#floatFix */
@media (max-width:820px){.top-btn{display:none!important}}.bar.dodge{transform:translate(-50%,140%)!important}
@media(min-width:821px){.bar .vp-wa{display:none}}
@media(max-width:820px){.wa-float{display:none!important}} /* v228: op mobiel zit WhatsApp in de boekbalk */ /* v228: op desktop staat de zwevende WhatsApp-bol al rechtsonder */
/* style#wpBandCss */
.wp-band{padding:clamp(56px,7vw,96px) 0;background:var(--sand-deep);border-top:1px solid rgba(44,38,32,.08);border-bottom:1px solid rgba(44,38,32,.08)}
.wp-band-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
.wp-band-copy .eyebrow{margin-bottom:8px}
.wp-band .btn-solid{background:var(--ink);color:var(--sand);box-shadow:0 16px 32px -16px rgba(44,38,32,.55)}
.wp-band .btn-solid:hover{background:var(--zellige);color:#fff}
.wp-band-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.1;margin:0 0 16px;max-width:16ch}
.wp-band-txt{max-width:52ch;color:var(--ink-soft);margin:0 0 14px;font-size:1.02rem}
.wp-band-dates{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 26px}
.wp-band-media{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 60px -34px rgba(44,38,32,.4);background:var(--sand)}
.wp-band-media picture{display:block;height:100%}
.wp-band-media img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:820px){.wp-band{padding:44px 0 52px}.wp-band-in{grid-template-columns:1fr;gap:22px}.wp-band-media{order:-1;aspect-ratio:16/10}.wp-band-copy h2{max-width:none}}
/* style#wpNavCss */
@media(min-width:821px) and (max-width:1140px){nav{gap:12px}.nav-winter{letter-spacing:.05em;font-size:.78rem}.nav-cta{padding:9px 14px 8px}}
@media(min-width:821px) and (max-width:1000px){nav{gap:11px}nav a,nav .nav-drop{font-size:.72rem;letter-spacing:.05em}.nav-winter{font-size:.72rem}.nav-cta{padding:8px 11px 7px}.langs a{padding-left:5px;padding-right:5px}}
/* style#css170 */
/* ============ v170 — boekingspaneel: kalender + formulier ============ */
.book .book-eyebrow{display:block;text-align:center;max-width:none;margin:0 auto}
.book .book-eyebrow::after,.book .book-eyebrow::before{display:none}
.book .book-rates{margin:14px auto 0;font-size:.92rem}
.book .book-rates a{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(44,38,32,.35)}
.book .book-rates a:hover{text-decoration-color:var(--zellige)}
.book .book-panel{display:grid;grid-template-columns:1.2fr 1fr;max-width:1060px;margin:38px auto 0;
  background:var(--white);border:1px solid var(--hairline);border-radius:22px;box-shadow:var(--shadow-soft);
  text-align:left;overflow:hidden}
.book .book-panel p{max-width:none;margin:0}
.book-cal{padding:28px 28px 22px;border-right:1px solid var(--hairline)}
.bc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.bc-head h3{font-family:var(--serif);font-weight:500;font-size:1.15rem;margin:0}
.book .book-panel .bc-head p{font-size:.84rem;color:var(--ink-soft);margin-top:2px}
.bc-nav{display:flex;gap:6px;flex:none}
.bc-nav button{width:40px;height:40px;border-radius:50%;border:1px solid var(--hairline);background:transparent;font-size:1.3rem;cursor:pointer;color:var(--ink);line-height:1}
.bc-nav button:hover:not(:disabled){background:rgba(79,114,99,.12)}
.bc-nav button:disabled{opacity:.3;cursor:default}
.bc-months{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:20px}
.bc-month h4{font-family:var(--serif);font-weight:500;font-size:1.02rem;margin:0 0 10px}
.bc-month h4::first-letter{text-transform:uppercase}
.bc-wd,.bc-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.bc-wd span{font-size:.68rem;text-align:center;color:var(--ink-soft);opacity:.7;text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px}
.bc-days button,.bc-days span{height:40px;border:0;border-radius:10px;background:transparent;font:inherit;font-size:.9rem;
  cursor:pointer;color:var(--ink);position:relative;font-variant-numeric:tabular-nums;padding:0}
.bc-days span{cursor:default}
.bc-days button.is-free::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--zellige);transform:translateX(-50%)}
.bc-days button.is-promo.is-free::after{background:#C79A3B}
.bc-days button:hover:not(:disabled){background:rgba(79,114,99,.14)}
.bc-days button:disabled{cursor:default;color:rgba(44,38,32,.32)}
.bc-days button.is-busy{text-decoration:line-through;color:rgba(176,92,72,.6)}
.bc-days button.is-alt{color:rgba(44,38,32,.5)}.bc-days button.is-alt::after{opacity:.35}
.bc-days button.is-in{background:rgba(79,114,99,.12);border-radius:0}
.bc-days button.is-a,.bc-days button.is-b{background:var(--zellige);color:#fff}
.bc-days button.is-a{border-radius:10px 0 0 10px}
.bc-days button.is-b{border-radius:0 10px 10px 0}
.bc-days button.is-a.is-b{border-radius:10px}/* v186: vertrek op de aankomstdag van de volgende gast: geen doorstreping meer als kandidaat of als gekozen vertrekdag */.bc-days button.is-dep.is-busy{text-decoration:none;color:var(--ink)}.bc-days button.is-b.is-busy{text-decoration:none;color:#fff}
/* v188: wisseldagen. Doorstreping blijft voorbehouden aan volledig bezette nachten;
   een dag waarop enkel aangekomen of vertrokken kan worden krijgt een diagonale halve vulling. */
.bc-days button.is-half{text-decoration:none;background-image:linear-gradient(315deg,rgba(176,92,72,.32) 0 50%,transparent 50%)}
.bc-days button.is-half-in{background-image:linear-gradient(135deg,rgba(176,92,72,.32) 0 50%,transparent 50%)}
.bc-days button.is-half:not(:disabled){color:var(--ink)}
.bc-days button.is-half.is-a,.bc-days button.is-half.is-b,.bc-days button.is-half.is-in{background-image:none}
.bc-legend .l-half i{width:12px;height:12px;border-radius:3px;border:1px solid rgba(44,38,32,.18);background:linear-gradient(315deg,rgba(176,92,72,.45) 0 50%,transparent 50%)}
.bc-days button:focus-visible{outline:2px solid var(--zellige);outline-offset:1px}
.bc-legend{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:18px;font-size:.78rem;color:var(--ink-soft)}
.bc-legend span{display:inline-flex;align-items:center;gap:7px}
.bc-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--zellige)}
.bc-legend .l-busy i{width:14px;height:2px;border-radius:0;background:rgba(176,92,72,.6)}
.bc-legend .l-promo i{background:#C79A3B}
.bc-legend .l-sel i{width:14px;border-radius:2px;opacity:.35}
.bc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline)}
.book .book-panel .bc-none{font-size:.78rem;color:var(--ink-soft)}
.bc-clear{border:0;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 0}
.bc-clear[hidden]{display:none}
.book .book-panel .book-form{margin:0;max-width:none;background:transparent;border:0;border-radius:0;padding:28px 28px 26px;
  display:flex;flex-direction:column;gap:14px}
.book .book-panel .book-form .form-title{margin:0;font-size:1.15rem;font-weight:500}
.book .book-panel .bf-sub{font-size:.84rem;color:var(--ink-soft);margin-top:-8px}
.book .book-panel .bf-grid input,.book .book-panel .bf-grid textarea{background:var(--sand);border-color:var(--hairline)}
.bf-tiers{grid-column:1/-1;display:flex;gap:8px;margin-top:-4px}
.bf-tiers button{flex:1;border:1px solid var(--hairline);background:transparent;border-radius:999px;padding:8px 6px;font:inherit;font-size:.78rem;cursor:pointer;color:var(--ink-soft);line-height:1.25;letter-spacing:0;text-transform:none}
.bf-tiers button b{display:block;font-weight:600;color:var(--ink);font-size:.86rem}
.bf-tiers button.on{border-color:var(--zellige);background:rgba(79,114,99,.1);color:var(--ink)}
.bf-tiers button:hover{border-color:var(--zellige)}
.bf-tiers button:focus-visible{outline:2px solid var(--zellige);outline-offset:1px}
.book .book-panel .bf-avail{margin:0}
.book .book-panel .bf-avail.is-hint{min-height:1.4em}
.book .book-panel .bf-flex{margin:0}
.book .book-panel .bf-avail.is-price{background:var(--sand);border:0;padding:14px 16px;color:var(--ink);font-size:.9rem;line-height:1.5}
.book .book-panel .bf-direct{display:flex;flex-direction:column;gap:8px}
.book .book-panel .bf-direct small{font-size:.76rem}
.book .book-panel .btn{margin:0;width:100%;text-align:center}
.book .book-panel .bf-step[data-step="1"] .bf-navrow{flex-direction:column;gap:12px;margin-top:4px}
.book .book-panel .bf-or{display:flex;align-items:center;gap:12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);opacity:.8;margin:0}
.book .book-panel .bf-or::before,.book .book-panel .bf-or::after{content:"";flex:1;height:1px;background:var(--hairline)}
.book .book-panel .btn-ink:hover{background:rgba(44,38,32,.06);color:var(--ink)}
.book .book-panel .book-form .bf-next[disabled]{opacity:.45}
.book .book-panel .bf-progress{margin:0 0 4px}
.book-form:not(.past1) .bf-progress{display:none}
.book .book-panel #staySummary{margin:0;font-size:.82rem}
.book .book-panel #nightsHint{margin:0;font-size:.82rem}
.book .book-panel .bf-trust{margin:0;font-size:.76rem;line-height:1.5}
.book .book-panel .bf-check,.book .book-panel .bf-consent{margin:0}
.book .book-panel .form-ok,.book .book-panel .form-err{margin:0}
.book .book-panel .form-ok{color:#33564a;background:rgba(79,114,99,.12);border-radius:12px;padding:12px 14px}
.book .book-panel .form-err{color:#7d3a2c}
.book .trust-row{list-style:none;display:flex;justify-content:center;gap:10px 30px;flex-wrap:wrap;margin:26px auto 0;padding:0;font-size:.82rem;color:var(--ink-soft);max-width:900px}
.book .trust-row li::before{content:"\2713";color:var(--zellige);margin-right:7px;font-weight:600}
.book .cta-alt{margin-top:26px;font-size:.9rem;color:var(--ink-soft)}
.book .cta-alt a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(44,38,32,.35)}
.book .cta-alt a.wa{color:#178A45;font-weight:600;text-decoration-color:rgba(23,138,69,.4)}
.book .book-note{margin-top:12px}
@media(max-width:900px){
  .book .book-panel{grid-template-columns:1fr;margin-top:30px}
  .book-cal{border-right:0;border-bottom:1px solid var(--hairline);padding:22px 18px 18px}
  .bc-months{grid-template-columns:1fr}
  .bc-month:nth-child(2){display:none}
  .book .book-panel .book-form{padding:22px 18px 22px}
  .bc-days button,.bc-days span{height:44px}
  .bf-tiers button{font-size:.72rem;padding:8px 4px}
}
/* style#heroWide */
/* v182: herotitel op pc over 3-4 regels i.p.v. 5, zodat de knop hoger staat (ook boven de cookiebalk op 1280x720 / 1440x757) */@media(min-width:1024px){.hero h1{max-width:22ch}.hero-inner{padding-bottom:clamp(88px,11.5svh,120px)}}
/* style#tiersMob */
/* v182: pakketkeuze op smalle schermen als drie leesbare rijen i.p.v. krappe cirkels */@media(max-width:620px){.bf-tiers{flex-direction:column;gap:6px;margin-top:2px}.bf-tiers button{display:flex;align-items:baseline;justify-content:space-between;gap:12px;text-align:left;border-radius:12px;padding:11px 14px;font-size:.84rem;line-height:1.3}.bf-tiers button b{display:inline;font-size:.95rem;flex:none}}
/* style#v182grid */
/* v182: geen eenzame kaart op de laatste rij (alleen rasters met exact 4 items, en de blog met 3n+1) */@media(min-width:760px){.tick:has(>li:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}}@media(min-width:901px){.amenities .amen-grid:has(>.amen:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}.todo-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}}@media(min-width:1100px){.amenities .amen-grid:has(>.amen:nth-child(4):last-child){grid-template-columns:repeat(4,1fr)}.todo-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,1fr)}}@media(min-width:821px){.blog-grid>.blog-card:first-child:nth-last-child(3n+1){grid-column:1 / -1;padding:34px 36px}.blog-grid>.blog-card:first-child:nth-last-child(3n+1) h3{font-size:1.45rem;max-width:36ch}.blog-grid>.blog-card:first-child:nth-last-child(3n+1) p{max-width:72ch;font-size:.97rem}}
/* style#v183 */
/* v183 */@media(max-width:820px){#mainNav:not(.open){gap:0}#mainNav.open .nav-cta{background:var(--zellige,#4F7263);color:#fff;border-color:var(--zellige,#4F7263);text-align:center;align-self:center;padding:13px 28px;margin-top:4px}}@media(max-width:820px){#mainNav.open{gap:2px}#mainNav.open .nav-cta{margin:14px 0 8px;letter-spacing:.1em;font-size:.82rem}}.glance{position:relative}.glance-scroll .glance-row{max-width:none;overflow:visible;width:max-content;scroll-snap-type:none}.glance-btn{position:absolute;top:50%;z-index:5;width:46px;height:46px;border-radius:50%;padding:0;border:1px solid rgba(44,38,32,.10);background:rgba(255,255,255,.94);color:#2C2620;cursor:pointer;display:flex;align-items:center;justify-content:center;transform:translateY(-50%);box-shadow:0 12px 30px -12px rgba(20,17,14,.55);transition:background .3s,box-shadow .3s,transform .3s}.glance-btn svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}.glance-btn:hover{background:#fff;transform:translateY(-50%) scale(1.07)}.glance-btn:focus-visible{outline:2px solid var(--zellige,#4F7263);outline-offset:3px}.glance-prev{left:max(14px,calc(50vw - 600px))}.glance-next{right:max(14px,calc(50vw - 600px))}@media(max-width:820px){.glance-btn{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){.glance-btn{transition:none}}
/* style#v183nrua */
.nrua{word-break:break-all}
/* style#vreelsCss */
/* v185: verticale films onder de videolussen */
.vclips.vreels{grid-template-columns:repeat(2,minmax(0,330px));justify-content:center;margin-top:34px}
.vclips.vreels video{aspect-ratio:9/16}
@media(max-width:820px){.vclips.vreels{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
/* style#vstageCss */
/* v186: filmstage - er speelt altijd maar EEN video tegelijk */
.vstage{margin-top:26px}
.vframe{position:relative;width:100%;aspect-ratio:16/9;border-radius:18px;overflow:hidden;
  background:#141110;box-shadow:var(--shadow-soft);margin-inline:auto;
  transition:height .45s cubic-bezier(.22,.61,.36,1)}
.vstage.portrait .vframe{aspect-ratio:9/16;height:min(70svh,640px);width:auto;max-width:100%}
.vstage.square .vframe{aspect-ratio:1/1;height:min(70svh,640px);width:auto;max-width:100%}
.vslide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;
  transition:opacity .55s ease;display:flex;align-items:center;justify-content:center}
.vslide.on{opacity:1;visibility:visible}
.vslide video{display:block;width:100%;height:100%;object-fit:cover;background:#141110}
.vslide figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;
  padding:52px 20px 18px;font-family:var(--serif);font-style:italic;color:#fff;
  font-size:1rem;line-height:1.35;text-align:center;pointer-events:none;
  background:linear-gradient(to top,rgba(18,15,14,.66),rgba(18,15,14,.18) 55%,rgba(18,15,14,0));
  text-shadow:0 1px 12px rgba(0,0,0,.5)}
.vctrl{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px}
.vbtn{width:44px;height:44px;border-radius:50%;border:1px solid rgba(74,65,57,.28);
  background:transparent;color:var(--ink);font-size:1.25rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease,border-color .25s ease,transform .25s ease}
.vbtn:hover{background:rgba(79,114,99,.10);border-color:rgba(79,114,99,.55);transform:translateY(-1px)}
.vbtn:focus-visible{outline:2px solid var(--accent,#4F7263);outline-offset:3px}
.vnum{font-variant-numeric:tabular-nums;font-size:.8rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);min-width:4.5em;text-align:center;margin:0}
@media(max-width:820px){
  .vframe{border-radius:14px}
  .vstage.portrait .vframe{height:min(66svh,520px)}
  .vstage.square .vframe{height:auto;width:100%}
  .vslide figcaption{font-size:.92rem;padding:44px 16px 14px}
}
@media(prefers-reduced-motion:reduce){
  .vslide{transition:none}
  .vframe{transition:none}
}
/* style#geoCss */
.geo-sum{padding:clamp(26px,3.2vw,40px) 0 0}.geo-fact{max-width:66ch;margin:0;font-size:1.02rem;line-height:1.65;color:var(--ink-soft);padding-left:18px;border-left:2px solid var(--zellige)}.geo-club{margin:26px 0 0;position:relative;border-radius:14px;overflow:hidden;background:var(--sand-deep)}.geo-club img{display:block;width:100%;height:auto}.geo-club figcaption{padding:10px 2px 0;font-size:.82rem;color:var(--ink-soft)}.gr-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.gr-photos a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:var(--sand-deep)}.gr-photos img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}.gr-photos a:hover img{transform:scale(1.04)}.gr-more{margin-top:14px;font-size:.92rem}@media(max-width:820px){.gr-photos{grid-template-columns:repeat(2,1fr)}}
