/*
Theme Name: Blossombed
Theme URI: https://blossombed.nl
Author: Sandy & Marcel
Author URI: https://blossombed.nl
Description: Custom thema voor Blossombed — tiny house in de bollenstreek. Drietalig (NL/EN/DE) via Polylang, alle content bewerkbaar via ACF.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: blossombed
Tags: custom-theme, holiday-rental, multilingual
*/

:root{
  --cream:#F7F4EE;--sand:#E8E1D3;--bark:#6B5E4E;--field:#4A6741;
  --tulip:#C85A3A;--dusk:#2C2820;--mist:#9B9186;--white:#FDFCFA;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--dusk);font-size:16px;line-height:1.7}
img{display:block;max-width:100%}

/* NAV */
nav{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.1rem 3rem;background:rgba(253,252,250,0.96);border-bottom:1px solid rgba(107,94,78,0.12);backdrop-filter:blur(8px)}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:400;letter-spacing:0.04em;color:var(--dusk);text-decoration:none}
.nav-links{display:flex;gap:1.8rem;list-style:none;align-items:center;flex-wrap:nowrap}
.nav-links a{font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--bark);text-decoration:none;transition:color .2s;white-space:nowrap}
.nav-links a:hover{color:var(--dusk)}
.nav-book{background:var(--dusk);color:var(--white)!important;padding:0.55rem 1.3rem;letter-spacing:0.1em}
.nav-book:hover{background:var(--tulip)!important}
.nav-lang{display:flex;gap:0.4rem;margin-left:0.6rem;padding-left:1rem;border-left:1px solid rgba(107,94,78,0.18)}
.nav-lang a{font-size:0.72rem;letter-spacing:0.14em;color:var(--mist)}
.nav-lang a.active{color:var(--dusk);font-weight:500}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:0.4rem;color:var(--dusk)}
.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--dusk);margin:4px 0;transition:transform .25s,opacity .2s}
.menu-toggle.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* HERO */
.hero{height:100vh;min-height:620px;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(44,40,32,0.82) 0%,rgba(44,40,32,0.2) 55%,rgba(44,40,32,0.05) 100%)}
.hero-content{position:relative;z-index:2;padding:0 4rem 5.5rem;max-width:740px}
.hero-pretitle{font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(253,252,250,0.65);margin-bottom:1rem}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,6.5vw,5.8rem);font-weight:300;color:var(--white);line-height:1.0;margin-bottom:1.4rem}
.hero-title em{font-style:italic}
.badge-row{display:flex;gap:0.6rem;margin-bottom:2rem;flex-wrap:wrap}
.badge{background:rgba(253,252,250,0.13);border:1px solid rgba(253,252,250,0.22);color:rgba(253,252,250,0.88);padding:0.32rem 0.85rem;font-size:0.71rem;letter-spacing:0.1em;backdrop-filter:blur(4px)}
.hero-sub{font-size:1rem;color:rgba(253,252,250,0.82);font-weight:300;max-width:480px;margin-bottom:2.5rem;line-height:1.65}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}
.btn-primary{background:var(--white);color:var(--dusk);padding:0.9rem 2.2rem;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;font-weight:500;display:inline-block;transition:background .2s,color .2s}
.btn-primary:hover{background:var(--tulip);color:var(--white)}
.btn-outline{background:transparent;color:var(--white);border:1px solid rgba(253,252,250,0.5);padding:0.9rem 2.2rem;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;font-weight:400;display:inline-block;transition:background .2s}
.btn-outline:hover{background:rgba(253,252,250,0.12)}

section{padding:6rem 4rem}
.sec{max-width:1140px;margin:0 auto}
.label{font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--mist);margin-bottom:0.7rem}
h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,4vw,3.2rem);font-weight:300;line-height:1.15;color:var(--dusk);text-wrap:pretty}
h3{font-family:'Cormorant Garamond',serif;font-size:1.55rem;font-weight:400;color:var(--dusk);margin-bottom:0.8rem}
p{color:var(--bark);font-weight:300;line-height:1.8}

/* INTRO */
.intro-section{background:var(--cream)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem}
.stat{border-top:1px solid var(--sand);padding-top:1rem}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:300;color:var(--dusk);line-height:1}
.stat-lbl{font-size:0.74rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--mist);margin-top:0.25rem}
.photo-stack{position:relative}
.photo-main{width:100%;height:500px;object-fit:cover;object-position:center}
.photo-float{position:absolute;width:52%;bottom:-2rem;right:-1.5rem;height:160px;object-fit:cover;border:6px solid var(--cream);box-shadow:0 8px 32px rgba(44,40,32,0.18)}

/* GALLERY */
.gallery-wrap{background:var(--white);padding:5rem 4rem 4rem}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0.7rem;margin-top:2.5rem}
.gi{overflow:hidden;background:var(--sand)}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}
.gi:hover img{transform:scale(1.05)}
.g1{grid-column:span 7;grid-row:span 2;height:480px}
.g2{grid-column:span 5;height:232px}
.g3{grid-column:span 5;height:232px}
.g4{grid-column:span 4;height:260px}
.g5{grid-column:span 4;height:260px}
.g6{grid-column:span 4;height:260px}

/* AMENITIES */
.amenities-section{background:var(--cream)}
.amen-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.amen-group{margin-bottom:2.2rem}
.amen-group-title{font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--field);margin-bottom:0.9rem;font-weight:500}
.amen-items{display:grid;grid-template-columns:1fr 1fr;gap:0.4rem 1.2rem}
.amen-item{font-size:0.86rem;color:var(--bark);display:flex;align-items:center;gap:0.55rem;padding:0.32rem 0}
.amen-item::before{content:'';width:5px;height:5px;background:var(--field);border-radius:50%;flex-shrink:0}
.eco{margin-top:1.5rem;padding:1.2rem 1.5rem;background:var(--white);border-left:3px solid var(--field)}
.eco p{font-size:0.86rem}
.eco strong{color:var(--field);font-weight:500}
.photo-tall{width:100%;height:580px;object-fit:cover;object-position:center}

/* LOCATION */
.location-section{background:var(--white)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.dist-list{margin-top:1rem}
.dist-row{display:flex;align-items:center;padding:0.78rem 0;border-bottom:1px solid var(--sand);font-size:0.88rem}
.dist-name{color:var(--dusk);font-weight:400;min-width:200px}
.dist-bar{flex:1;height:2px;background:var(--sand);margin:0 1rem;position:relative}
.dist-fill{position:absolute;left:0;top:0;height:100%;background:var(--tulip)}
.dist-km{color:var(--mist);font-size:0.8rem;text-align:right;min-width:48px}
.loc-photos{display:flex;flex-direction:column;gap:1rem}
.loc-photos img{width:100%;height:200px;object-fit:cover}
.map-wrap{height:280px;background:var(--cream);border:1px solid var(--sand);position:relative;overflow:hidden}
.map-wrap iframe{width:100%;height:100%;border:0;filter:saturate(0.85) contrast(0.95)}

/* BOOKING */
.booking-section{background:var(--dusk);color:var(--white)}
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.book-grid h2{color:var(--white)}
.book-grid p{color:rgba(253,252,250,0.7)}
.book-opts{display:flex;flex-direction:column;gap:0.85rem;margin-top:2rem}
.book-opt{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);padding:1.4rem 1.6rem;display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:var(--white);transition:background .2s,border-color .2s}
.book-opt:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.22)}
.book-opt-lbl{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(253,252,250,0.42);margin-bottom:0.2rem}
.book-opt-title{font-size:0.95rem}
.contact-form{background:rgba(255,255,255,0.05);padding:2rem;border:1px solid rgba(255,255,255,0.1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.85rem}
.fg{display:flex;flex-direction:column;gap:0.35rem;margin-bottom:0.85rem}
.fg label{font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(253,252,250,0.5)}
.fg input,.fg select,.fg textarea{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.14);color:var(--white);padding:0.7rem 0.9rem;font-size:0.88rem;font-family:'DM Sans',sans-serif;outline:none;transition:border-color .15s}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--tulip)}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(253,252,250,0.3)}
.fg select option{background:#2C2820;color:var(--white)}
.form-btn{width:100%;background:var(--white);color:var(--dusk);border:none;padding:0.95rem;font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;transition:background .2s,color .2s}
.form-btn:hover{background:var(--tulip);color:var(--white)}
.form-success{display:none;padding:1rem;background:rgba(74,103,65,0.18);border-left:3px solid var(--field);color:rgba(253,252,250,0.95);font-size:0.86rem;margin-bottom:1rem}
.form-success.on{display:block}

/* CALENDAR */
.cal-section{background:var(--white);padding:4rem}
.cal-inner{max-width:1140px;margin:0 auto}
.cal-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2rem;gap:2rem;flex-wrap:wrap}
.cal-header p.note{font-size:0.8rem;color:var(--mist);text-align:right}
.cal-placeholder{background:var(--cream);border:1px solid var(--sand);padding:2.5rem;text-align:center;color:var(--mist);font-size:0.86rem;line-height:1.8}
.cal-mock{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:1.5rem;max-width:560px;margin-left:auto;margin-right:auto}
.cal-mock .dh{font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--mist);text-align:center;padding:0.4rem 0}
.cal-mock .dc{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:0.78rem;color:var(--bark);background:var(--white);border:1px solid var(--sand)}
.cal-mock .dc.busy{background:var(--tulip);color:var(--white);border-color:var(--tulip)}
.cal-mock .dc.free{background:rgba(74,103,65,0.08);border-color:rgba(74,103,65,0.2);color:var(--field)}
.cal-mock .dc.empty{background:transparent;border-color:transparent;color:transparent}
.cal-mock .dc.past{background:var(--cream);color:rgba(155,145,134,0.5);border-color:var(--sand)}
.cal-grids{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:1000px;margin:1.2rem auto 0}
.cal-grids .cal-mock{margin:0.6rem 0 0;max-width:none}
.cal-month-head{text-align:center}
.cal-month-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--dusk);font-weight:400;letter-spacing:0.02em}
.cal-nav{display:flex;justify-content:flex-end;gap:0.4rem;max-width:1000px;margin:0 auto}
.cal-btn{background:var(--white);border:1px solid var(--sand);width:34px;height:34px;font-size:1.1rem;color:var(--dusk);cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s}
.cal-btn:hover{background:var(--cream);border-color:var(--mist)}
.cal-loading,.cal-error{text-align:center;padding:3rem 1rem;color:var(--mist);font-size:0.88rem;font-style:italic}
.cal-error{color:var(--tulip);font-style:normal}
.leg-free{background:rgba(74,103,65,0.15);border:1px solid var(--field)}
.leg-busy{background:var(--tulip)}
.cal-stamp{margin-left:auto;font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;opacity:0.7}
@media (max-width:760px){
  .cal-grids{grid-template-columns:1fr;gap:1.8rem}
  .cal-stamp{margin-left:0;width:100%;text-align:center;margin-top:0.6rem}
  .cal-legend{flex-wrap:wrap;justify-content:center}
}
.cal-legend{display:flex;gap:2rem;margin-top:1.4rem;justify-content:center}
.leg{display:flex;align-items:center;gap:0.5rem;font-size:0.76rem;color:var(--mist)}
.leg-dot{width:11px;height:11px;border-radius:2px}

/* HOSTS */
.hosts-section{background:var(--cream)}
.hosts-section .photo-main{height:560px}
.host-quote{border-left:2px solid var(--tulip);padding:1.2rem 1.5rem;margin:1.8rem 0}
.host-quote p{font-family:'Cormorant Garamond',serif;font-size:1.22rem;font-style:italic;color:var(--dusk);line-height:1.6;font-weight:300}

/* REVIEWS */
.reviews-section{background:var(--white)}
.reviews-intro{text-align:center;margin-bottom:3rem}
.score{font-family:'Cormorant Garamond',serif;font-size:4.2rem;font-weight:300;color:var(--dusk);line-height:1}
.score-lbl{font-size:0.76rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--mist);margin-top:0.4rem}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.rev-card{padding:2rem;border:1px solid var(--sand);transition:border-color .2s,transform .2s}
.rev-card:hover{border-color:var(--tulip);transform:translateY(-2px)}
.rev-stars{color:var(--tulip);font-size:0.78rem;margin-bottom:0.9rem;letter-spacing:0.1em}
.rev-text{font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--bark);line-height:1.7;margin-bottom:1.4rem;font-style:italic}
.rev-author{font-size:0.74rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--mist)}

/* FAQ */
.faq-section{background:var(--cream)}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;max-width:980px}
.faq-item{padding:1.4rem 1.5rem;background:var(--white);border:1px solid var(--sand);cursor:pointer;transition:border-color .2s}
.faq-item:hover{border-color:var(--mist)}
.faq-item summary{font-weight:500;font-size:0.92rem;color:var(--dusk);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';color:var(--tulip);font-size:1.2rem;font-weight:300;transition:transform .25s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-a{font-size:0.85rem;color:var(--bark);line-height:1.65;margin-top:0.7rem;padding-top:0.7rem;border-top:1px solid var(--sand)}

/* LANG BAR + FOOTER */
.lang-bar{background:var(--dusk);padding:2rem 4rem;display:flex;justify-content:center;gap:3rem;border-top:1px solid rgba(255,255,255,0.06)}
.lang-a{font-size:0.76rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(253,252,250,0.4);text-decoration:none;transition:color .2s}
.lang-a:hover{color:rgba(253,252,250,0.8)}
.lang-a.active{color:rgba(253,252,250,0.95)}
footer{background:var(--dusk);border-top:1px solid rgba(255,255,255,0.07);padding:3rem 4rem 2rem}
.footer-inner{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem}
.foot-logo{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:300;color:var(--white);margin-bottom:0.6rem}
.foot-p{font-size:0.82rem;color:rgba(253,252,250,0.42);line-height:1.7}
.foot-h{font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(253,252,250,0.32);margin-bottom:0.9rem}
.foot-a{display:block;font-size:0.83rem;color:rgba(253,252,250,0.52);text-decoration:none;margin-bottom:0.45rem;transition:color .2s}
.foot-a:hover{color:var(--white)}
.foot-bottom{max-width:1140px;margin:1.8rem auto 0;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,0.07);display:flex;justify-content:space-between;font-size:0.73rem;color:rgba(253,252,250,0.28);flex-wrap:wrap;gap:1rem}

/* RESPONSIVE */
@media (max-width:880px){
  nav{padding:0.9rem 1.4rem}
  .nav-links{position:fixed;top:62px;left:0;right:0;background:var(--white);flex-direction:column;gap:0;padding:1rem 1.4rem 1.6rem;border-bottom:1px solid var(--sand);transform:translateY(-110%);transition:transform .3s ease;z-index:99}
  .nav-links.open{transform:translateY(0)}
  .nav-links li{width:100%;border-bottom:1px solid var(--sand)}
  .nav-links li:last-child{border-bottom:none}
  .nav-links a{display:block;padding:0.85rem 0;font-size:0.82rem}
  .nav-book{margin-top:0.6rem;text-align:center;padding:0.7rem 1rem!important}
  .nav-lang{margin:0.6rem 0 0;padding:0.6rem 0 0;border-left:none;border-top:1px solid var(--sand);justify-content:center}
  .menu-toggle{display:block}
  .hero-content{padding:0 1.6rem 3rem}
  section{padding:3.5rem 1.4rem}
  .gallery-wrap{padding:3rem 1.4rem}
  .cal-section{padding:3rem 1.4rem}
  .lang-bar{padding:1.6rem 1.4rem;gap:1.6rem}
  footer{padding:2.4rem 1.4rem 1.6rem}
  .two-col,.amen-grid,.loc-grid,.book-grid,.footer-inner{grid-template-columns:1fr;gap:2.5rem}
  .photo-float{display:none}
  .photo-main{height:340px}
  .photo-tall{height:380px}
  .hosts-section .photo-main{height:380px}
  .gallery-grid{grid-template-columns:repeat(6,1fr)}
  .g1{grid-column:span 6;grid-row:auto;height:280px}
  .g2,.g3{grid-column:span 6;height:200px}
  .g4,.g5,.g6{grid-column:span 3;height:160px}
  .rev-grid{grid-template-columns:1fr;gap:1rem}
  .faq-grid{grid-template-columns:1fr}
  .stats{gap:1rem}
  .stat-num{font-size:2.1rem}
  .form-row{grid-template-columns:1fr}
  .dist-name{min-width:130px;font-size:0.82rem}
  .foot-bottom{flex-direction:column}
}
