/* v234-PREVIEW — /villa/ (de villa van dichtbij): rustiger, één ritme, één typografische schaal.
   Alleen gelinkt op de 5 /villa/-pagina's. Raakt #book (boekingspaneel), kalender, chat en de plan-viewer-werking NIET aan.
   Geen hover-zoom, klikdoelen >= 24 px, --sand blijft #F4EFE6. */

/* ---------- 7. Eén typografische schaal ---------- */
:root{--v-body:1rem;--v-small:.9rem;--v-cap:.72rem;--v-h2:clamp(1.7rem,3.2vw,2.5rem);--v-h3:1.16rem;--v-line:rgba(44,38,32,.12)}
main>section:not(.book) .eyebrow,.sub-hero .eyebrow{font-size:var(--v-cap);letter-spacing:.24em}
main>section:not(.book):not(.cta-band):not(.rvs) h2{font-size:var(--v-h2)!important;line-height:1.14;font-weight:400}
main>section:not(.book):not(.cta-band) .wrap>p:not(.eyebrow),.duo-copy p,.uk-lede,#kamers .wrap>p{font-size:var(--v-body);line-height:1.7;color:var(--ink-soft)}
.todo h3,.amen h3,.amen h4,.rm-card h4,.rm-group{font-family:var(--serif);font-size:var(--v-h3);font-weight:400;letter-spacing:0}
.todo p,.amen p,.rm-bd,.duo-facts li,.faq-a p{font-size:var(--v-small);line-height:1.6}
.rm-sub,.uk-no,.uk-bdg,.proofbar span{font-size:var(--v-cap);letter-spacing:.14em;text-transform:uppercase}
.faq-q{font-size:1rem;font-weight:500}
.faq-q,.uk-tab,.uk-nav,.vbtn,.nav-drop,.nav-toggle,.uk-view{font-family:inherit}

/* ---------- 7. Kaarten en foto's: haarlijn i.p.v. schaduw ---------- */
.hs-art figure,.duo-media,.mosaic figure,.todo,.amen,.faq-item,.vframe,#tour video,figure.ph{box-shadow:none!important}
.todo,.amen,.faq-item{border:1px solid var(--v-line);border-radius:14px}
.hs-art figure,.duo-media,.vframe,#tour video{border-radius:14px!important}
.todo,.amen{transition:none}

/* ---------- 8. Eén ritme en één uitlijningsas ---------- */
main>section.sec:not(.sec-flush),main>section.amenities,main>section.plan{padding-top:clamp(64px,7vw,104px)!important;padding-bottom:clamp(64px,7vw,104px)!important}
main>section.sec+section.sec.sec-flush{padding-top:0!important}
.amenities .amen-grid,.todo-grid{margin-top:28px!important}
.duo-copy .eyebrow{margin-bottom:12px}

/* ---------- 1. Eerste scherm ---------- */
.hero-stack .sh-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:18px 0 24px;list-style:none}
.hero-stack .sh-chips li{margin:0}
@media(min-width:821px){
  .hero-stack .sh-chips li{border:1px solid rgba(44,38,32,.18);border-radius:999px;padding:6px 13px;font-size:var(--v-cap);letter-spacing:.12em;text-transform:uppercase}
  .hero-stack .sh-chips li::before{display:none}
}
@media(max-width:820px){
  .sub-hero.hero-stack{padding-top:84px!important}
  .hero-stack .hs-grid{display:flex;flex-direction:column;gap:22px}
  .hero-stack .hs-art{order:-1;padding-bottom:30px;padding-right:18px}
  .hero-stack .hs-art .hs-b{width:38%}
  .hero-stack .hs-copy h1{margin-top:4px}
  .hero-stack .sh-chips{gap:4px 14px;margin:14px 0 20px}
}

/* ---------- 2. Kerncijfers + feitenalinea als één rustige band ---------- */
.proofbar{padding:16px 0}
.geo-sum{padding-top:clamp(28px,3.4vw,44px)!important;padding-bottom:0!important}
.geo-fact{border-left:0!important;padding-left:0!important;font-size:var(--v-small)!important;max-width:70ch;color:var(--ink-soft)}
@media(max-width:820px){
  .proofbar ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 0;justify-items:center}
}

/* ---------- 4. Galerij ---------- */
#gallery .mosaic figure{border-radius:10px;border:0;cursor:zoom-in}
#gallery .mosaic figure img{transition:none!important;transform:none!important;animation:none!important}
@media(min-width:821px){
  /* uniform raster: 6 per rij, gelijke 3:2-tegels, laatste rij gecentreerd (geen eenzame tegel, geen gaten) */
  #gallery .mosaic{display:flex!important;flex-wrap:wrap;justify-content:center;gap:10px}
  #gallery .mosaic figure{flex:0 0 calc((100% - 30px)/4);aspect-ratio:3/2;height:auto;grid-column:auto!important;grid-row:auto!important}
  #gallery .mosaic figure img{width:100%;height:100%;object-fit:cover}
  #gallery .mosaic figure::after{display:none}
}
@media(min-width:1100px){#gallery .mosaic figure{flex-basis:calc((100% - 50px)/6)}}
#gallery .mosaic figure:focus-visible{outline:2px solid var(--zellige);outline-offset:3px}
@media(max-width:820px){
  #gallery .wrap{padding-right:0}
  #gallery .mosaic{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:0 24px 4px 0;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  #gallery .mosaic::-webkit-scrollbar{display:none}
  #gallery .mosaic figure{flex:0 0 84%;aspect-ratio:4/3;scroll-snap-align:start;grid-column:auto!important;grid-row:auto!important;height:auto}
  #gallery .mosaic figure img{width:100%;height:100%;object-fit:cover}
  #gallery .mosaic figure::after{display:none} /* rechtsonder staat nu het +N-label */
}
@media(min-width:560px) and (max-width:820px){#gallery .mosaic figure{flex-basis:62%}}
.g234-nav{display:none}
.g234-box{position:relative}
.g234-more{display:none}
@media(max-width:820px){
  .g234-more{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:6px;padding:6px 11px 6px 9px;border-radius:999px;
    background:rgba(20,17,14,.6);color:#FFFDF9;font-size:.82rem;line-height:1;letter-spacing:.04em;font-variant-numeric:tabular-nums;
    pointer-events:none;opacity:0;transition:opacity .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .g234-more.on{opacity:1}
  .g234-more svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
  .g234-more b{font-weight:600}
}
@media(prefers-reduced-motion:reduce){.g234-more{transition:none}}
@media(max-width:820px){
  .g234-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
}

/* ---------- 6. Video: tour en filmstage samen ---------- */
#tour .v234{margin-top:26px}
#tour .v234>.reveal{margin-top:0!important}
#tour .v234 .vstage{margin-top:22px}
@media(min-width:1000px){
  #tour .v234{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:20px;align-items:start}
  #tour .v234 .vstage{margin-top:0}
  #tour .v234 .vstage .vframe,#tour .v234 .vstage.square .vframe{width:100%!important;height:auto!important;aspect-ratio:1/1}
}

/* ---------- 5. Kamers: haarlijnlijst, per verblijf inklapbaar ---------- */
#kamers .wrap>h2+p{margin:14px 0 30px}
#kamers .rm-wing{border-top:1px solid var(--v-line);margin-top:6px}
#kamers .rm-wing:last-of-type{border-bottom:1px solid var(--v-line)}
#kamers .rm-sum{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:6px 0}
#kamers .rm-sum::-webkit-details-marker{display:none}
#kamers .rm-sum::after{content:"";width:9px;height:9px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg);margin:0 6px 4px 16px;flex:none}
#kamers .rm-wing[open] .rm-sum::after{transform:rotate(-135deg);margin-bottom:-4px}
#kamers .rm-sum:focus-visible{outline:2px solid var(--zellige);outline-offset:2px}
#kamers .rm-group{margin:0!important}
#kamers .rm-grid{gap:0 28px;padding-bottom:14px}
#kamers .rm-card{background:transparent!important;border:0!important;border-top:1px solid var(--v-line)!important;border-radius:0!important;padding:16px 0 12px!important}
#kamers .rm-card h4{margin-bottom:2px}
#kamers .rm-link{font-size:.85rem}
@media(min-width:821px){#kamers .rm-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}

/* ---------- 3. FAQ vlak vóór boeken: zelfde as als de rest ---------- */
.faq .faq-wrap{max-width:var(--max,1180px)}
.faq .faq-wrap>.reveal{max-width:840px}
.faq .faq-item{margin-top:0;margin-bottom:8px;background:var(--white)}

@media(prefers-reduced-motion:reduce){#gallery .mosaic{scroll-behavior:auto}}
