/* ============================================================
   Villa Mondi Curaçao — Gedeelde stylesheet
   Bevat: fonts, variabelen, reset, nav, footer, buttons,
          breadcrumb, reveal, typografie-hulpklassen.
   Pagina-specifieke CSS staat inline in elk HTML-bestand.
   ============================================================ */

/* ── SELF-HOSTED FONTS ── */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/playfair-display-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/playfair-display-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/playfair-display-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/playfair-display-latin-500-italic.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/dm-sans-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/dm-sans-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/dm-sans-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/cinzel-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cinzel-latin-500-normal.woff2') format('woff2');}

/* ── DESIGN TOKENS ── */
:root{
  --cream:#F8F3EC; --cream-deep:#EDE4D4; --sand:#D4B896;
  --gold:#C9A55A; --gold-light:#E8D5A0;
  --earth:#7A5C3C; --earth-dark:#8B6340;
  --text:#1E140A; --text-mid:#5C3E28; --text-light:#9B7E67;
  --white:#FFFFFF; --nav-h:84px; --max-w:1160px; --r:3px;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --ig-a:#f09433; --ig-b:#dc2743; --ig-c:#bc1888;
}

/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-font-smoothing:antialiased;text-size-adjust:100%;-webkit-text-size-adjust:100%;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{cursor:pointer;border:none;background:none;font-family:inherit;}

/* ── FOCUS VISIBLE (WCAG 2.1 AA) ── */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
:focus:not(:focus-visible){outline:none;}

/* ── ANIMATIES ── */
@keyframes fadeIn{to{opacity:1;}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}
@keyframes sPulse{0%,100%{opacity:.3;}50%{opacity:1;}}

/* ── REVEAL (scroll-animatie) ── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* ── SKIP LINK / TOEGANKELIJKHEID ── */
.skip-link{position:absolute;top:-100px;left:16px;z-index:10000;background:var(--gold);color:var(--earth-dark);padding:10px 18px;border-radius:var(--r);font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;transition:top .2s;}
.skip-link:focus{top:16px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ── NAV (structuur — gedeeld over alle pagina's) ── */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 5%;transition:background .4s var(--ease),box-shadow .4s var(--ease);}
.nav-logo{height:54px;width:auto;}
.nav-links{display:flex;align-items:center;gap:30px;list-style:none;}
.nav-links a{font-family:'Cinzel',serif;font-size:.54rem;letter-spacing:.22em;text-transform:uppercase;transition:opacity .3s,color .3s;}
.nav-links a:hover{opacity:.6;}
.nav-right{display:flex;align-items:center;gap:9px;}
.lang-wrap{display:flex;gap:5px;}
.lang-flag{width:30px;height:30px;border-radius:50%;border:2px solid transparent;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .3s,transform .2s;cursor:pointer;line-height:1;}
.lang-flag:hover{transform:scale(1.1);}
.lang-flag.active{border-color:var(--gold);}
.nav-insta{width:36px;height:36px;border-radius:50%;background:linear-gradient(45deg,var(--ig-a),var(--ig-b),var(--ig-c));display:flex;align-items:center;justify-content:center;transition:transform .3s,opacity .3s;flex-shrink:0;}
.nav-insta:hover{transform:scale(1.1);opacity:.9;}
.nav-insta svg{width:17px;height:17px;fill:white;}
.nav-email{font-family:'Cinzel',serif;font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 16px;border-radius:var(--r);transition:all .3s;display:flex;align-items:center;gap:6px;}
.nav-email:hover{background:var(--gold);border-color:var(--gold);}
.nav-email svg{width:13px;height:13px;}
.hamburger{display:none;flex-direction:column;gap:5px;padding:6px;}
.hamburger span{display:block;width:22px;height:1.5px;transition:transform .3s var(--ease),opacity .3s ease;}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;z-index:998;background:var(--earth-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;opacity:0;pointer-events:none;transition:opacity .4s ease;}
.mobile-menu.open{opacity:1;pointer-events:all;}
.mobile-menu a{font-family:'Cinzel',serif;font-size:.9rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);transition:color .3s;}
.mobile-menu a:hover{color:var(--gold);}
.mobile-close{position:absolute;top:24px;right:28px;font-size:2rem;color:var(--sand);line-height:1;}
.mobile-lang{display:flex;gap:10px;margin-top:12px;}

/* ── KNOPPEN ── */
.btn-p{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text);background:var(--gold);padding:14px 32px;border-radius:var(--r);border:1.5px solid var(--gold);transition:all .35s var(--ease);display:inline-block;touch-action:manipulation;}
.btn-p:hover{background:var(--gold-light);border-color:var(--gold-light);}
.btn-g{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:rgba(255,255,255,.05);padding:14px 28px;border-radius:var(--r);border:2px solid rgba(255,255,255,.7);transition:all .35s var(--ease);display:inline-block;backdrop-filter:blur(2px);}
.btn-g:hover{border-color:var(--gold);color:var(--gold);}
.btn-gd{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--earth);background:transparent;padding:14px 28px;border-radius:var(--r);border:1.5px solid rgba(122,92,60,.35);transition:all .35s var(--ease);display:inline-block;}
.btn-gd:hover{background:var(--gold);color:var(--earth-dark);border-color:var(--gold);}

/* ── TYPOGRAFIE HULPKLASSEN ── */
.container{max-width:var(--max-w);margin:0 auto;}
.sec-tag{font-family:'Cinzel',serif;font-size:.52rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:11px;}
.sec-h2{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.2;color:var(--text);margin-bottom:16px;}
.sec-h2 em{font-style:italic;color:var(--earth);}
.divider{display:flex;align-items:center;gap:12px;margin:13px 0 24px;}
.divider .line{height:1px;width:42px;background:linear-gradient(90deg,transparent,var(--gold));}
.divider .line.r{background:linear-gradient(90deg,var(--gold),transparent);}
.divider .gem{width:5px;height:5px;background:var(--gold);transform:rotate(45deg);}
.body-text{font-size:1rem;line-height:1.9;font-weight:300;color:var(--text-mid);}

/* ── BREADCRUMB (subpagina's) ── */
.breadcrumb{padding:16px 5%;background:var(--cream-deep);border-bottom:1px solid rgba(201,165,90,.15);}
.breadcrumb-inner{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;gap:8px;font-family:'Cinzel',serif;font-size:.42rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-light);}
.breadcrumb a{color:var(--earth);transition:color .2s;}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb .sep{color:var(--sand);}

/* ── FOOTER ── */
footer{background:var(--text);color:rgba(237,228,212,.72);padding:60px 5% 40px;text-align:center;}
.f-logo{height:56px;margin:0 auto 20px;opacity:.9;}
.f-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:1160px;margin:0 auto 44px;text-align:left;}
.f-col-title{font-family:'Cinzel',serif;font-size:.44rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:16px;}
.f-col a{display:block;font-size:.88rem;color:rgba(237,228,212,.80);margin-bottom:9px;transition:color .25s;font-family:'DM Sans',sans-serif;}
.f-col a:hover{color:var(--gold);}
.f-bottom{font-family:'Cinzel',serif;font-size:.42rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(237,228,212,.62);}

/* ── RESPONSIVE: NAV + FOOTER ── */
@media(max-width:980px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
}
@media(max-width:700px){
  .f-grid{grid-template-columns:1fr 1fr;}
  .f-grid .f-col:last-child{grid-column:1/-1;}
}
@media(max-width:480px){.f-grid{grid-template-columns:1fr;}}
@media(max-width:640px){
  .nav-links,.nav-email{display:none;}
  .hamburger{display:flex;}
}

/* ── COOKIEYES-KNOPPEN IN HUISSTIJL (overschrijft hun standaardkleur) ── */
.cky-btn.cky-btn-accept{background-color:#C9A55A!important;border-color:#C9A55A!important;color:#1E140A!important;}
.cky-btn.cky-btn-accept:hover{background-color:#E8D5A0!important;border-color:#E8D5A0!important;color:#1E140A!important;}
