/* =====================================================================
   KAVARO — design system
   Consistente stijl over homepage, collectie- en productpagina's.
   ===================================================================== */

:root{
  --choc: #2E1D14;
  --walnut: #4A3120;
  --midbrown: #7A5033;
  --taupe: #A6876C;
  --sand: #D8C3A5;
  --beige: #E8DCC6;
  --offwhite: #F6F1E7;
  --warmgrey: #8C8377;
  --anthracite: #232220;
  --line: rgba(46,29,20,0.14);
}

/* ---------- reset ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--offwhite);
  color:var(--choc);
  font-family:'Inter',sans-serif;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;background:none;border:none;}
ul{list-style:none;}

.serif{font-family:'Fraunces',serif;}
.eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:500;color:var(--midbrown);
}
.wrap{max-width:1400px;margin:0 auto;padding:0 6vw;}
section{position:relative;}
.pad{padding:min(12vw,130px) 0;}
.pad-sm{padding:min(9vw,100px) 0;}

h2.reveal-h{
  font-family:'Fraunces',serif;font-weight:400;line-height:1.08;
  font-size:clamp(2rem,4.2vw,3.6rem);
}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:40px;
  margin-bottom:48px;flex-wrap:wrap;
}
.section-head .desc{max-width:38ch;color:var(--walnut);line-height:1.7;font-size:.98rem;}

.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;}
@media (max-width:900px){.split{grid-template-columns:1fr;}}

/* ---------- placeholder / photography treatment ---------- */
.ph{position:relative;overflow:hidden;background:var(--sand);}
.ph img{filter:sepia(.35) saturate(1.25) brightness(.92) contrast(1.02);}
.ph::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(160deg, rgba(46,29,20,.35), rgba(122,80,51,.12) 55%, rgba(46,29,20,.4));
  mix-blend-mode:multiply;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;font-size:.76rem;letter-spacing:.08em;
  text-transform:uppercase;padding:15px 26px;border:1px solid currentColor;transition:all .35s ease;
}
.btn.light{color:var(--offwhite);}
.btn.light:hover{background:var(--offwhite);color:var(--choc);}
.btn.dark{color:var(--choc);border-color:var(--choc);}
.btn.dark:hover{background:var(--choc);color:var(--offwhite);}
.btn .arrow{transition:transform .35s ease;}
.btn:hover .arrow{transform:translateX(5px);}

/* ---------- nav ---------- */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 6vw;transition:background .5s ease, padding .4s ease, box-shadow .4s ease;
}
header.nav.scrolled, header.nav.is-inner{
  background:rgba(246,241,231,.92);backdrop-filter:blur(10px);
  padding:16px 6vw;box-shadow:0 1px 0 var(--line);
}
/* Als het mobiele menu open staat, laat de balk transparant mee-oplichten met
   het donkere menu eronder (i.p.v. een lichte balk erover), zodat logo en
   sluitkruis altijd goed leesbaar blijven. */
body.menu-open header.nav.scrolled, body.menu-open header.nav.is-inner{
  background:transparent;backdrop-filter:none;box-shadow:none;
}
body.menu-open header.nav.scrolled .logo, body.menu-open header.nav.is-inner .logo{color:var(--offwhite);}
body.menu-open header.nav.scrolled .logo-sub, body.menu-open header.nav.is-inner .logo-sub{color:rgba(246,241,231,.6);}
.logo-block{display:flex;flex-direction:column;gap:4px;line-height:1;}
.logo{
  font-family:'Fraunces',serif;font-size:1.35rem;letter-spacing:.04em;font-weight:500;
  color:var(--offwhite);transition:color .4s ease;
}
header.nav.scrolled .logo, header.nav.is-inner .logo{color:var(--choc);}
.logo-sub{
  font-family:'Inter',sans-serif;font-size:.55rem;letter-spacing:.34em;text-transform:uppercase;
  font-weight:400;color:rgba(246,241,231,.6);transition:color .4s ease;padding-left:2px;
}
header.nav.scrolled .logo-sub, header.nav.is-inner .logo-sub{color:var(--midbrown);}
nav.menu{display:flex;gap:34px;}
nav.menu a{
  font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--offwhite);
  position:relative;padding-bottom:4px;transition:color .4s ease;
}
header.nav.scrolled nav.menu a, header.nav.is-inner nav.menu a{color:var(--choc);}
nav.menu a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;
  transition:width .35s ease;
}
nav.menu a:hover::after, nav.menu a.current::after{width:100%;}
.nav-cta{
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--offwhite);
  border:1px solid rgba(246,241,231,.55);padding:10px 20px;transition:all .4s ease;
}
header.nav.scrolled .nav-cta, header.nav.is-inner .nav-cta{color:var(--choc);border-color:var(--choc);}
.nav-cta:hover{background:var(--offwhite);color:var(--choc);}
header.nav.scrolled .nav-cta:hover, header.nav.is-inner .nav-cta:hover{background:var(--choc);color:var(--offwhite);}
.nav-burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:34px;height:34px;z-index:200;position:relative;
}
.nav-burger span{
  display:block;width:100%;height:1px;background:var(--offwhite);transition:all .35s ease;
}
header.nav.scrolled .nav-burger span, header.nav.is-inner .nav-burger span{background:var(--choc);}
body.menu-open header.nav .nav-burger span{background:var(--offwhite);}
body.menu-open header.nav .nav-burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
body.menu-open header.nav .nav-burger span:nth-child(2){opacity:0;}
body.menu-open header.nav .nav-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.mobile-menu{
  position:fixed;inset:0;z-index:150;background:var(--choc);
  display:flex;flex-direction:column;justify-content:center;gap:8px;padding:0 8vw;
  transform:translateY(-100%);transition:transform .45s cubic-bezier(.65,0,.35,1);
}
body.menu-open .mobile-menu{transform:translateY(0);}
.mobile-menu a{
  font-family:'Fraunces',serif;font-size:clamp(1.6rem,7vw,2.4rem);color:var(--offwhite);
  padding:14px 0;border-bottom:1px solid rgba(246,241,231,.14);
}
.mobile-menu a.mm-cta{color:var(--sand);}

@media (max-width:900px){
  nav.menu, .nav-cta{display:none;}
  .nav-burger{display:flex;}
  body.menu-open{overflow:hidden;}
}
@media (min-width:901px){.mobile-menu{display:none;}}

/* ---------- breadcrumb ---------- */
.crumb{font-size:.74rem;letter-spacing:.04em;color:rgba(246,241,231,.75);display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.crumb a{transition:color .3s;}
.crumb a:hover{color:var(--sand);}
.crumb span{opacity:.5;}
.is-inner .crumb{color:var(--warmgrey);}
.is-inner .crumb a:hover{color:var(--choc);}

/* =====================================================================
   HOMEPAGE
   ===================================================================== */

.hero{height:100vh;min-height:680px;display:flex;align-items:flex-end;}
.hero .ph{position:absolute;inset:0;z-index:0;}
.hero-inner{position:relative;z-index:2;width:100%;padding:0 6vw 7vw;color:var(--offwhite);}
.hero-inner .eyebrow{color:var(--sand);margin-bottom:22px;overflow:hidden;}
.hero h1{
  font-family:'Fraunces',serif;font-weight:400;font-size:clamp(2.6rem,6vw,5.4rem);
  line-height:1.05;max-width:15ch;overflow:hidden;
}
.hero h1 span{display:block;overflow:hidden;}
.hero h1 em{font-style:italic;font-weight:300;color:var(--sand);}
.hero-sub{margin-top:28px;max-width:520px;font-size:1.02rem;line-height:1.65;color:rgba(246,241,231,.88);}
.hero-ctas{display:flex;gap:20px;margin-top:44px;flex-wrap:wrap;}
.scroll-cue{
  position:absolute;right:6vw;bottom:6vw;z-index:2;color:var(--offwhite);
  display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.65rem;
  letter-spacing:.16em;text-transform:uppercase;opacity:.75;
}
.scroll-cue .line{width:1px;height:52px;background:rgba(246,241,231,.5);position:relative;overflow:hidden;}
.scroll-cue .line::after{
  content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--sand);
  animation:cue 2.4s ease-in-out infinite;
}
@keyframes cue{0%{top:-100%;}50%{top:0;}100%{top:100%;}}

@media (min-width:901px){.intro .split{grid-template-columns:.85fr 1.15fr;}}
.intro p.lead{font-size:1.08rem;line-height:1.8;color:var(--walnut);margin-top:26px;max-width:46ch;}
.intro-figure{aspect-ratio:4/5;}

.coll-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);}
.coll-card{position:relative;aspect-ratio:3/4.3;overflow:hidden;background:var(--choc);cursor:pointer;}
.coll-card .ph{position:absolute;inset:0;}
.coll-card .ph img{transition:transform 1.1s cubic-bezier(.19,1,.22,1);}
.coll-card:hover .ph img{transform:scale(1.08);}
.coll-card .num{position:absolute;top:22px;left:22px;color:rgba(246,241,231,.7);font-size:.72rem;letter-spacing:.1em;z-index:2;}
.coll-card .info{position:absolute;left:22px;right:22px;bottom:24px;z-index:2;color:var(--offwhite);}
.coll-card .info .eyebrow{color:var(--sand);}
.coll-card .info h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.5rem;margin-top:8px;display:flex;align-items:center;gap:10px;}
.coll-card .info h3 .arrow{opacity:0;transform:translateX(-6px);transition:all .35s ease;}
.coll-card:hover .info h3 .arrow{opacity:1;transform:translateX(0);}
@media (max-width:1000px){.coll-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.coll-grid{grid-template-columns:1fr;}}

.featured{background:var(--beige);}
.feat-pin{height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px 0;}
.feat-track-outer{overflow:hidden;}
.feat-track{display:flex;gap:28px;padding:0 6vw;width:max-content;}
.feat-card{width:min(48vw,360px);flex:0 0 auto;}
@media (max-width:900px){
  /* Op mobiel: geen pin/scroll-jacking, gewoon een native swipebare rij. */
  .feat-pin{height:auto;padding:0;}
  .feat-track-outer{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;}
  /* De kaart is smaller dan het scherm (80vw) en snapt op zijn MIDDEN
     (i.p.v. de linkerkant) tegen het midden van het scherm. Zo staat elke
     kaart — ook de eerste en de laatste — altijd met ruimte aan beide
     kanten, wat je ook doet: scrollen, swipen of gewoon de pagina openen.
     De spacer vóór/na de rij zorgt dat er genoeg scrollruimte is om ook de
     eerste/laatste kaart echt te kunnen centreren. */
  .feat-track{width:max-content;padding:0;gap:24px;}
  .feat-track::before,
  .feat-track::after{content:"";flex:0 0 10vw;}
  .feat-card{width:80vw;scroll-snap-align:center;margin:0;}
  /* Extra: ook binnen de kaart zelf krijgt de tekst wat lucht, zodat de
     titel niet exact op dezelfde lijn als de foto begint. */
  .feat-card .meta{padding-left:4px;padding-right:4px;}
  .feat-progress{display:none;}
}
.feat-img{aspect-ratio:4/5;}
.feat-card .meta{padding-top:20px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.feat-card h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.2rem;color:var(--choc);}
.feat-card .tag{font-size:.78rem;color:var(--midbrown);margin-top:6px;}
.feat-card .props{font-size:.72rem;color:var(--warmgrey);text-align:right;line-height:1.6;white-space:nowrap;}
.feat-progress{height:1px;background:var(--line);margin:30px 6vw 0;position:relative;}
.feat-progress .bar{position:absolute;top:-1px;left:0;height:2px;background:var(--choc);width:0%;}

.material{background:var(--choc);color:var(--offwhite);}
.mat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
@media (max-width:700px){.mat-grid{grid-template-columns:1fr;}}
.mat-cell{aspect-ratio:1/1.1;position:relative;overflow:hidden;}
.mat-cell .ph{position:absolute;inset:0;}
.mat-head{padding:0 6vw;margin-bottom:60px;}
.mat-statements{display:flex;gap:60px;margin-top:40px;flex-wrap:wrap;}
.mat-statements span{font-family:'Fraunces',serif;font-style:italic;font-size:1.1rem;color:var(--sand);position:relative;padding-left:24px;}
.mat-statements span::before{content:"—";position:absolute;left:0;color:var(--taupe);}

.b2b{background:var(--offwhite);}
.b2b .split{align-items:start;}
@media (min-width:901px){.b2b .split{grid-template-columns:.9fr 1.1fr;}}
.b2b p.lead{margin-top:24px;color:var(--walnut);line-height:1.75;max-width:44ch;font-size:1rem;}
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);margin-top:6px;}
@media (max-width:520px){.value-grid{grid-template-columns:1fr;}}
.value-card{background:var(--offwhite);padding:36px 30px;}
.value-card .vn{font-family:'Fraunces',serif;font-size:.85rem;color:var(--taupe);}
.value-card h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.25rem;margin-top:14px;}
.value-card p{font-size:.88rem;color:var(--warmgrey);line-height:1.6;margin-top:10px;}
.b2b .btn{margin-top:36px;}

.process{background:var(--beige);}
.step{display:grid;grid-template-columns:120px 1fr 1fr;gap:30px;align-items:start;padding:34px 0;border-top:1px solid var(--line);}
.step:last-child{border-bottom:1px solid var(--line);}
.step .sn{font-family:'Fraunces',serif;font-size:1rem;color:var(--taupe);}
.step h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.4rem;}
.step p{color:var(--walnut);font-size:.92rem;line-height:1.65;max-width:44ch;}
@media (max-width:800px){.step{grid-template-columns:60px 1fr;}.step p{grid-column:2/3;}}

.statement{background:var(--walnut);color:var(--offwhite);min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;}
.statement h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(2.2rem,5.4vw,4.6rem);line-height:1.15;max-width:16ch;}
.statement h2 .accent{font-style:italic;color:var(--sand);}

.partner-cta{background:var(--choc);color:var(--offwhite);}
.pc-inner{text-align:center;max-width:760px;margin:0 auto;padding:min(14vw,140px) 6vw;}
.pc-inner h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(2rem,4.4vw,3.4rem);}
.pc-inner p{margin-top:22px;color:rgba(246,241,231,.82);line-height:1.75;font-size:1rem;}
.pc-inner .btn{margin-top:38px;}

/* =====================================================================
   COLLECTIEPAGINA
   ===================================================================== */

.p-hero{height:78vh;min-height:500px;display:flex;align-items:flex-end;}
.p-hero .ph{position:absolute;inset:0;z-index:0;}
.p-hero-inner{position:relative;z-index:2;width:100%;padding:0 6vw 6vw;color:var(--offwhite);}
.p-hero-inner .crumb{margin-bottom:20px;}
.p-hero h1{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(2.6rem,6.5vw,5.4rem);line-height:1;}
.p-hero-sub{margin-top:20px;max-width:520px;font-size:1rem;line-height:1.65;color:rgba(246,241,231,.88);}

.colors{background:var(--beige);}
.swatch-row{display:flex;gap:2px;flex-wrap:wrap;background:var(--line);padding:2px;}
.swatch{width:150px;background:var(--offwhite);}
.swatch-block{aspect-ratio:1/1;}
.swatch .name{padding:14px 4px 0;font-size:.8rem;font-family:'Fraunces',serif;}
.swatch .code{padding:2px 4px 14px;font-size:.65rem;color:var(--warmgrey);letter-spacing:.04em;}

.products{background:var(--offwhite);}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:36px 28px;}
.prod-card .img{aspect-ratio:4/5;}
.prod-card .meta{padding-top:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.prod-card h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.15rem;}
.prod-card .tag{font-size:.76rem;color:var(--midbrown);margin-top:6px;}
.prod-card .props{font-size:.7rem;color:var(--warmgrey);text-align:right;line-height:1.6;white-space:nowrap;}

.editorial-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.eg-item{position:relative;overflow:hidden;}
.eg-item .ph{position:absolute;inset:0;}
.eg-item .tag{position:absolute;left:18px;bottom:16px;z-index:2;color:var(--offwhite);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;}
.eg-1{grid-column:span 4;aspect-ratio:16/10;}
.eg-2{grid-column:span 2;aspect-ratio:3/4.4;}
.eg-3{grid-column:span 3;aspect-ratio:4/3.2;}
.eg-4{grid-column:span 3;aspect-ratio:4/3.2;}
@media (max-width:900px){.editorial-grid{grid-template-columns:repeat(2,1fr);}.eg-1,.eg-2,.eg-3,.eg-4{grid-column:span 2;}}

.related{background:var(--beige);}
.related.on-product{background:var(--offwhite);}
.rel-row{display:flex;gap:24px;overflow-x:auto;padding-bottom:8px;}
.rel-card{flex:0 0 auto;width:210px;}
.rel-card .img{aspect-ratio:3/4;}
.rel-card h5{font-family:'Fraunces',serif;font-weight:400;font-size:1rem;margin-top:14px;}
.rel-card .arrow{font-size:.78rem;color:var(--midbrown);margin-top:4px;display:inline-block;}
.rel-card .props{font-size:.72rem;color:var(--warmgrey);margin-top:3px;}

/* =====================================================================
   PRODUCTPAGINA
   ===================================================================== */

.p-top{padding:min(9vw,100px) 0 min(7vw,80px);}
.p-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:6vw;align-items:start;}
.gallery{display:grid;grid-template-columns:1fr;gap:14px;}
.gallery .g-img{aspect-ratio:1/1;}
.info{position:sticky;top:120px;}
.info .eyebrow{margin-bottom:14px;}
.info h1{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.1;}
.info .code{margin-top:10px;font-size:.8rem;color:var(--warmgrey);letter-spacing:.04em;}
.info .desc{margin-top:22px;font-size:1rem;line-height:1.75;color:var(--walnut);max-width:46ch;}
.quick-specs{margin-top:32px;border-top:1px solid var(--line);}
.qs-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:.88rem;}
.qs-row .k{color:var(--warmgrey);}
.qs-row .v{color:var(--choc);font-weight:500;}
.info-ctas{margin-top:32px;display:flex;flex-wrap:wrap;gap:14px;}
.info-note{margin-top:20px;font-size:.78rem;color:var(--warmgrey);line-height:1.6;max-width:42ch;}
@media (max-width:900px){.p-grid{grid-template-columns:1fr;}.info{position:static;}}

.specs{background:var(--choc);color:var(--offwhite);}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 60px;}
.spec-row{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid rgba(246,241,231,.14);}
.spec-row:last-child{border-bottom:1px solid rgba(246,241,231,.14);}
.spec-row .k{font-size:.86rem;color:rgba(246,241,231,.6);}
.spec-row .v{font-size:.9rem;text-align:right;color:var(--offwhite);}
.specs .note{margin-top:34px;font-size:.78rem;color:rgba(246,241,231,.45);max-width:60ch;}
@media (max-width:900px){.spec-grid{grid-template-columns:1fr;}}

/* =====================================================================
   OVERIGE PAGINA'S (Professionals / Partner worden / Over Kavaro / Contact)
   ===================================================================== */

.text-block .split{align-items:start;}
.text-block p.lead{font-size:1.05rem;line-height:1.8;color:var(--walnut);margin-top:22px;max-width:48ch;}

.form-section{background:var(--beige);}
.kavaro-form{max-width:760px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.form-row.full{grid-template-columns:1fr;}
.form-field label{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--midbrown);margin-bottom:8px;}
.form-field input, .form-field select, .form-field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--offwhite);
  font-family:'Inter',sans-serif;font-size:.92rem;color:var(--choc);
}
.form-field textarea{resize:vertical;min-height:110px;}
.form-note{font-size:.8rem;color:var(--warmgrey);margin-top:18px;max-width:56ch;line-height:1.6;}
.form-message{padding:16px 18px;margin-bottom:24px;font-size:.88rem;}
.form-message.success{background:var(--choc);color:var(--offwhite);}
.form-message.error{background:#5a2a1e;color:var(--offwhite);}

@media (max-width:700px){.form-row{grid-template-columns:1fr;}}

/* ---------- voordelen-grid (Professionals) ---------- */
.voordelen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:20px;}
.voordeel-card{background:var(--offwhite);padding:30px 26px;}
.voordeel-card .vn{font-family:'Fraunces',serif;font-size:.8rem;color:var(--taupe);}
.voordeel-card h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.05rem;margin-top:10px;}
.voordeel-card p{font-size:.82rem;color:var(--warmgrey);line-height:1.55;margin-top:8px;}
@media (max-width:900px){.voordelen-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.voordelen-grid{grid-template-columns:1fr;}}

/* ---------- contactgegevens (Contact) ---------- */
.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:6vw;}
.contact-info .block{margin-bottom:28px;}
.contact-info h5{font-family:'Fraunces',serif;font-weight:400;font-size:1rem;margin-bottom:8px;color:var(--choc);}
.contact-info p, .contact-info a{font-size:.92rem;color:var(--walnut);line-height:1.7;}
@media (max-width:700px){.contact-info{grid-template-columns:1fr;}}

/* =====================================================================
   FOOTER
   ===================================================================== */

footer.site-footer{background:var(--choc);color:rgba(246,241,231,.6);padding:60px 6vw 34px;border-top:1px solid rgba(246,241,231,.12);}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;}
.foot-grid .logo-block{margin-bottom:16px;}
.foot-grid .logo{color:var(--offwhite);}
.foot-grid .logo-sub{color:rgba(246,241,231,.5);}
.foot-grid p{font-size:.85rem;line-height:1.7;max-width:32ch;color:rgba(246,241,231,.55);}
.foot-col h5{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);margin-bottom:16px;}
.foot-col ul li a, .foot-col a{display:block;font-size:.85rem;padding:5px 0;color:rgba(246,241,231,.75);transition:color .3s;}
.foot-col a:hover{color:var(--offwhite);}
.foot-bottom{
  margin-top:60px;padding-top:24px;border-top:1px solid rgba(246,241,231,.1);
  display:flex;justify-content:space-between;font-size:.72rem;color:rgba(246,241,231,.4);flex-wrap:wrap;gap:10px;
}
@media (max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){
  /* Extra ademruimte op mobiel: de tekst stond te dicht op de randen. */
  footer.site-footer{padding:48px 8vw 28px;}
  .foot-grid{gap:32px;}
  .foot-grid p{max-width:none;}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr;}}

/* ---------- reveal utility ---------- */
.reveal{opacity:0;transform:translateY(32px);}

/* =====================================================================
   BEHEER / CMS (/beheer/)
   Functioneel en overzichtelijk, zelfde merkkleuren, geen animaties nodig.
   ===================================================================== */

.admin-body{background:var(--beige);min-height:100vh;}
.admin-topbar{
  background:var(--choc);color:var(--offwhite);padding:18px 4vw;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
}
.admin-topbar .logo-block{margin:0;}
.admin-topbar nav{display:flex;gap:22px;flex-wrap:wrap;}
.admin-topbar nav a{font-size:.82rem;letter-spacing:.03em;color:rgba(246,241,231,.8);}
.admin-topbar nav a:hover, .admin-topbar nav a.current{color:var(--offwhite);text-decoration:underline;}
.admin-wrap{max-width:1100px;margin:0 auto;padding:48px 4vw 80px;}
.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:16px;}
.admin-head h1{font-family:'Fraunces',serif;font-weight:400;font-size:1.9rem;}
.admin-card{background:var(--offwhite);padding:34px;margin-bottom:28px;box-shadow:0 1px 0 var(--line);}
.admin-table{width:100%;border-collapse:collapse;background:var(--offwhite);}
.admin-table th, .admin-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:.9rem;}
.admin-table th{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--midbrown);}
.admin-table tr:hover td{background:rgba(46,29,20,.03);}
.admin-table .thumb{width:56px;height:56px;object-fit:cover;background:var(--sand);}
.admin-actions{display:flex;gap:14px;}
.admin-actions a, .admin-actions button{font-size:.8rem;color:var(--midbrown);}
.admin-actions .danger{color:#a3372a;}
.admin-actions a:hover, .admin-actions button:hover{text-decoration:underline;}

.admin-form .form-row{grid-template-columns:1fr 1fr;}
.admin-form fieldset{border:1px solid var(--line);padding:22px;margin-bottom:24px;}
.admin-form legend{font-family:'Fraunces',serif;padding:0 8px;color:var(--choc);}
.admin-form .huidig-beeld{width:120px;height:120px;object-fit:cover;background:var(--sand);margin-bottom:10px;}
.admin-form .hint{font-size:.78rem;color:var(--warmgrey);margin-top:6px;}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--choc);}
.login-box{background:var(--offwhite);padding:48px 40px;width:100%;max-width:400px;}
.login-box .logo-block{margin-bottom:28px;}
.login-box .logo{color:var(--choc);}
.login-box .logo-sub{color:var(--midbrown);}
.login-box h1{font-family:'Fraunces',serif;font-weight:400;font-size:1.4rem;margin-bottom:24px;}
.login-box .form-field{margin-bottom:18px;}
.login-box button{width:100%;justify-content:center;margin-top:8px;}
