@font-face{font-family:"Fredoka";src:url("../assets/fonts/fredoka.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../assets/fonts/instrument-sans.woff2") format("woff2");font-weight:400 600;font-style:normal;font-display:swap}

:root{
  --bg:#faf7f2;
  --bg2:#efe8dc;
  --ink:#161412;
  --muted:#5b544b;
  --zwart:#111111;
  --goud:#d59b43;
  --goud-donker:#8a5f1f;
  --groen:#7cb342;
  --rood:#f0634f;
  --wit:#ffffff;
  --focus:#161412;
  --kop:"Fredoka","Varela Round",system-ui,sans-serif;
  --tekst:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(16px,4vw,40px);
  --max:1200px;
  --hdr:68px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 12px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--tekst);font-size:1.0625rem;line-height:1.55;font-weight:400;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.donker :focus-visible,.hdr :focus-visible,.footer :focus-visible,.mbar :focus-visible,.hero :focus-visible{--focus:#d59b43;outline-color:#d59b43}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--goud);color:var(--zwart);padding:10px 16px;font-weight:600;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}

.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.sectie{padding-block:clamp(64px,9vw,128px)}
.sectie--alt{background:var(--bg2)}

h1,h2,h3{font-family:var(--kop);font-weight:700;letter-spacing:-.005em;text-wrap:balance}
h2{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.04}
h3{font-size:1.6rem;line-height:1.1}
.lead{font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.5;max-width:46ch}

/* knoppen */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:52px;padding:.7em 1.5em;border:2px solid var(--goud);border-radius:999px;background:var(--zwart);color:var(--wit);font-family:var(--tekst);font-weight:600;font-size:1.05rem;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.btn:hover{background:var(--goud);color:var(--zwart)}
.btn--goud{background:var(--goud);color:var(--zwart)}
.btn--goud:hover{background:var(--zwart);color:var(--goud)}
.btn--groot{min-height:60px;font-size:1.2rem;padding-inline:1.8em}
.btn--zwart{background:var(--zwart);border-color:var(--zwart);color:var(--wit)}
.btn--zwart:hover{background:var(--goud);border-color:var(--zwart);color:var(--zwart)}
.btn svg{width:1.15em;height:1.15em;flex:none}
.tlink{color:var(--wit);font-weight:600;text-decoration:underline;text-decoration-color:var(--goud);text-decoration-thickness:2px;text-underline-offset:5px}
.tlink:hover{text-decoration-color:var(--wit)}

/* header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;background:var(--zwart);color:var(--wit);height:var(--hdr);transition:background-color .2s}
.js .hdr:not(.is-solid){background:transparent}
.hdr-in{height:100%;display:flex;align-items:center;gap:20px;max-width:1360px;margin-inline:auto;padding-inline:var(--pad)}
.logo{display:block;flex:none;width:150px;line-height:0}
.logo img{width:100%;height:auto}
.nav{margin-left:auto}
.nav ul{display:flex;gap:clamp(16px,2.2vw,34px)}
.nav a{display:block;padding:10px 2px;color:var(--wit);font-weight:500;text-decoration:none;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--goud)}
.hdr-bel{display:none}
.hdr-ico{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:2px solid var(--goud);border-radius:50%;background:var(--zwart);color:var(--wit)}
.hdr-ico svg{width:20px;height:20px}
.burger{display:none;width:46px;height:46px;border:2px solid var(--wit);border-radius:50%;background:var(--zwart);cursor:pointer;position:relative;flex:none}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--wit);transition:transform .2s,opacity .2s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:999px){
  .js .burger{display:block}
  .js .nav{position:fixed;inset:var(--hdr) 0 0 0;background:var(--zwart);margin:0;padding:24px var(--pad) 40px;overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
  .js .nav.is-open{visibility:visible;opacity:1;transition:opacity .2s}
  .js .nav ul{flex-direction:column;gap:4px}
  .js .nav a{font-family:var(--kop);font-weight:600;font-size:2rem;padding:12px 0;border-bottom:1px solid #2c2926}
  :root:not(.js) .hdr{position:static;height:auto}
  :root:not(.js) .hdr-in{flex-wrap:wrap;padding-block:12px}
  :root:not(.js) .nav{width:100%;margin:0}
  :root:not(.js) .nav ul{flex-wrap:wrap}
  :root:not(.js) .hero{padding-top:0}
  .menu-open{overflow:hidden}
}
@media (min-width:1000px){
  .logo{width:190px}
  .hdr-ico{display:none}
  .hdr-bel{display:inline-flex;min-height:46px;padding:.5em 1.2em;font-size:1rem;margin-left:12px}
  .nav{margin-left:auto}
}

/* hero */
.hero{background:var(--zwart);color:var(--wit);padding-top:var(--hdr);display:flex;flex-direction:column;position:relative}
.hero-foto{order:-1;height:34svh;min-height:230px;position:relative;overflow:hidden;background:#222}
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;filter:brightness(.62) contrast(1.05)}
.hero-tekst{padding:26px var(--pad) 0}
.hero h1{font-size:clamp(2.3rem,10.4vw,3.2rem);line-height:1.02;letter-spacing:0}
.hero-sub{margin-top:14px;font-size:1.05rem;color:#e6e1d8;max-width:38ch}
.hero-acties{margin-top:22px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}
.hero-info{padding:26px var(--pad) 32px;font-size:.98rem;color:#e6e1d8;line-height:1.5}
.hero-info a{color:var(--wit);text-decoration:none;font-weight:600}
.hero-info a:hover{text-decoration:underline;text-decoration-color:var(--goud);text-underline-offset:4px}
.hero-info .nummers{display:flex;flex-wrap:wrap;gap:0 18px}
.vandaag{margin-top:8px;display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--wit)}
.vandaag::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--goud);flex:none}
@media (min-width:900px){
  .hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);grid-template-rows:1fr auto;min-height:max(100svh,640px);max-height:1100px}
  .hero-foto{order:0;grid-column:2;grid-row:1 / span 2;height:auto;min-height:0}
  .hero-tekst{grid-column:1;grid-row:1 / span 2;align-self:center;padding:48px clamp(24px,4vw,64px) 72px max(var(--pad),calc((100vw - 1360px) / 2 + var(--pad)))}
  .hero h1{font-size:clamp(3rem,4.8vw,4.9rem)}
  .hero-sub{font-size:1.2rem;margin-top:20px}
  .hero-foto img{object-position:12% 50%}
  .hero-info{grid-column:1;grid-row:2;padding:40px clamp(24px,4vw,64px) 44px max(var(--pad),calc((100vw - 1360px) / 2 + var(--pad)))}
}
@media (min-width:900px){
  .hero-infobox{position:absolute;right:0;bottom:0;background:var(--zwart);padding:22px 28px 26px 30px;font-size:.98rem;color:#e6e1d8;line-height:1.55;min-width:290px;z-index:2}
}
.hero-infobox{display:none}
@media (min-width:900px){.hero-infobox{display:block}.hero-info{display:none}}
.hero-infobox a{color:var(--wit);font-weight:600;text-decoration:none}
.hero-infobox a:hover{text-decoration:underline;text-decoration-color:var(--goud);text-underline-offset:4px}
.hero-infobox .nummers{display:flex;flex-direction:column}
@media (prefers-reduced-motion:no-preference){
  .js:not(.no-anim) .hero-foto{clip-path:inset(100% 0 0 0)}
}

/* feitenregel */
.feiten{background:var(--bg);border-bottom:2px solid var(--zwart)}
.feiten ul{display:grid;grid-template-columns:1fr 1fr;max-width:1360px;margin-inline:auto}
.feiten li{padding:16px var(--pad);font-weight:600;font-size:.98rem;line-height:1.3;border-top:1px solid #d9d0c1;display:flex;align-items:center;gap:10px}
.feiten li:nth-child(odd){border-right:1px solid #d9d0c1}
.feiten li:nth-child(-n+2){border-top:0}
.feiten li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--goud);flex:none}
@media (min-width:900px){
  .feiten ul{grid-template-columns:repeat(4,1fr)}
  .feiten li{border-top:0;border-right:1px solid #d9d0c1;padding-block:20px;font-size:1rem}
  .feiten li:last-child{border-right:0}
  .feiten li:nth-child(odd){border-right:1px solid #d9d0c1}
}

/* prijzen */
.prijzen-kop{display:grid;gap:18px;margin-bottom:clamp(32px,5vw,56px)}
.prijzen-kolommen{display:grid;gap:40px}
.pgroep h3{padding-bottom:10px;border-bottom:3px solid var(--zwart)}
.prijs{display:flex;align-items:baseline;gap:10px;padding:13px 0}
.prijs .dienst{flex:0 1 auto;max-width:72%}
.prijs .dienst small{display:block;font-size:.88rem;color:var(--muted);line-height:1.3;margin-top:2px}
.prijs .stip{flex:1 1 20px;min-width:14px;border-bottom:3px dotted var(--goud);transform:translateY(-5px)}
.prijs .bedrag{flex:none;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.pgroep + .pgroep{margin-top:44px}
.prijs-advies{margin-top:clamp(32px,5vw,52px);display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.prijs-advies p{font-family:var(--kop);font-weight:600;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.2;max-width:28ch}
@media (min-width:900px){
  .prijzen-kop{grid-template-columns:5fr 6fr;align-items:end;gap:48px}
  .prijzen-kolommen{grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,96px);align-items:start}
  .pgroep + .pgroep{margin-top:48px}
}

/* kleur */
.kleur-grid{display:grid;gap:40px}
.kleur-tekst h2{margin-bottom:22px}
.kleur-tekst p + p{margin-top:14px}
.kleur-tekst .lead{margin-bottom:0}
.kleur-quote{margin-top:28px;padding:20px 0 0;border-top:3px solid var(--zwart)}
.kleur-quote p{font-family:var(--kop);font-weight:600;font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.25}
.kleur-quote cite{display:block;margin-top:10px;font-style:normal;font-weight:600;color:var(--goud-donker)}
.kleur-bal{margin-top:24px;color:var(--muted)}
.mozaiek{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.mozaiek figure:nth-child(1){grid-row:span 1}
.mozaiek img{width:100%;border-radius:6px;object-fit:cover}
.mozaiek figcaption{margin-top:8px;font-weight:600;font-size:.95rem}
.mozaiek figure:nth-child(2){margin-top:34px}
.mozaiek figure:nth-child(3){margin-top:-18px}
.mozaiek figure:nth-child(4){margin-top:16px}
@media (min-width:900px){
  .kleur-grid{grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,88px);align-items:center}
  .mozaiek{gap:18px}
  .mozaiek figure:nth-child(2){margin-top:56px}
  .mozaiek figure:nth-child(3){margin-top:-30px}
  .mozaiek figure:nth-child(4){margin-top:26px}
}

/* stempelkaart */
.stempel-sectie{background:var(--goud);color:var(--zwart)}
.stempel-grid{display:grid;gap:40px;align-items:center}
.stempel-tekst p{margin-top:16px;max-width:36ch;font-size:1.15rem}
.stempel-tekst p strong{font-weight:600}
.kaart{background:var(--bg);border:4px solid var(--zwart);border-radius:26px;padding:clamp(18px,3.2vw,36px);box-shadow:8px 8px 0 var(--zwart);max-width:640px}
.kaart-kop{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:clamp(14px,2.4vw,24px)}
.kaart-kop h3{font-size:clamp(1.2rem,2.4vw,1.6rem)}
.kaart-kop span{font-size:.9rem;font-weight:600;color:var(--muted)}
.vakken{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1.8vw,16px)}
.vak{aspect-ratio:1;border:2px solid var(--zwart);border-radius:50%;background:var(--wit);display:grid;place-items:center;position:relative}
.stempel{width:88%;aspect-ratio:1;border-radius:50%;background:var(--goud);border:2px solid var(--zwart);display:grid;place-items:center;transform:rotate(var(--r,0deg))}
.stempel svg{width:46%;height:auto;color:var(--zwart);transform:rotate(-8deg)}
.elf{margin-top:clamp(10px,1.8vw,16px);border:3px dashed var(--zwart);border-radius:999px;padding:clamp(12px,2vw,18px) 18px;text-align:center;font-family:var(--kop);font-weight:700;font-size:clamp(1.05rem,2.6vw,1.5rem);line-height:1.15;background:var(--zwart);color:var(--goud);border-style:solid}
@media (min-width:900px){
  .stempel-grid{grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,88px)}
  .kaart{justify-self:end;width:100%}
}
@media (prefers-reduced-motion:no-preference){
  .js:not(.no-anim) .elf{background:var(--bg);color:var(--zwart);border-style:dashed}
}

/* kinderkapsalon */
.kids-grid{display:grid;gap:44px;align-items:center}
.kids-tekst h2{margin-bottom:20px}
.kids-tekst p + p{margin-top:14px}
.kids-tekst .tlink{color:var(--ink);text-decoration-color:var(--goud-donker)}
.kids-foto{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;align-items:end}
.kids-foto figure{position:relative;margin:0}
.kids-foto img{width:100%;border-radius:28px;object-fit:cover}
.kids-foto figure:nth-child(1) img{aspect-ratio:3/4}
.kids-foto figure:nth-child(2) img{aspect-ratio:3/4}
.kids-foto figure:nth-child(2){margin-bottom:34px}
.strook{position:absolute;left:-6px;bottom:14px;padding:7px 14px 8px;font-family:var(--kop);font-weight:600;font-size:1rem;line-height:1.1;color:var(--ink);transform:rotate(-4deg);border-radius:4px;box-shadow:2px 2px 0 rgba(17,17,17,.9)}
.strook--groen{background:var(--groen)}
.strook--rood{background:var(--rood);transform:rotate(3deg)}
.strook--goud{background:var(--goud);transform:rotate(-2deg)}
.strook-rij{position:absolute;left:-6px;bottom:18px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.strook-rij .strook{position:static}
@media (min-width:900px){
  .kids-grid{grid-template-columns:6fr 5fr;gap:clamp(40px,6vw,88px)}
  .kids-foto{order:-1}
  .kids-foto figure:nth-child(2){margin-bottom:60px}
  .strook{font-size:1.1rem}
}

/* team */
.team-kop{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,44px)}
.team-foto img{width:100%;border-radius:6px;aspect-ratio:3/2;object-fit:cover;object-position:50% 40%}
.team-kaarten{margin-top:clamp(28px,4vw,44px);display:grid;gap:14px;grid-template-columns:1fr}
.tkaart{background:var(--zwart);color:var(--wit);border-radius:6px;padding:24px 22px 26px;display:flex;flex-direction:column;gap:12px}
.tkaart h3{font-size:clamp(2rem,3vw,2.5rem);line-height:1}
.tkaart .rol{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--goud);line-height:1.35}
.tkaart blockquote{margin-top:auto;padding-top:10px;color:#e2dcd1;font-size:.98rem;line-height:1.5}
@media (min-width:640px){.team-kaarten{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.team-kaarten{grid-template-columns:repeat(5,1fr)}.tkaart{padding:26px 20px 28px}}

/* openingstijden + contact */
.open-grid{display:grid;gap:40px}
.tijden{width:100%;border-collapse:collapse;margin-top:22px;font-size:1.1rem}
.tijden th,.tijden td{padding:13px 0;text-align:left;border-bottom:3px dotted var(--goud);font-weight:500}
.tijden td{text-align:right;font-variant-numeric:tabular-nums}
.tijden tr:last-child th,.tijden tr:last-child td{border-bottom:0}
.tijden tr.is-vandaag th,.tijden tr.is-vandaag td{font-weight:600;background:var(--zwart);color:var(--wit);border-bottom-color:var(--zwart)}
.tijden tr.is-vandaag th{padding-left:14px;border-radius:6px 0 0 6px}
.tijden tr.is-vandaag td{padding-right:14px;border-radius:0 6px 6px 0}
.tijden .nu{font-weight:500;font-size:.85rem;margin-left:8px;color:var(--goud)}
.open-noot{margin-top:20px;color:var(--ink)}
.open-foto{margin-top:30px;max-width:480px}
.open-foto img{width:100%;border-radius:6px}
.open-foto figcaption{margin-top:8px;font-size:.92rem;color:var(--muted)}
.contact-blok address{font-style:normal;margin-top:20px;font-size:1.15rem;line-height:1.5}
.contact-blok .route{display:inline-block;margin-top:6px;font-weight:600;color:var(--ink);text-decoration-color:var(--goud-donker);text-decoration-thickness:2px;text-underline-offset:5px}
.contact-blok .park{margin-top:14px;color:var(--muted)}
.contact-knoppen{display:grid;gap:12px;margin-top:26px}
.contact-knoppen .btn{width:100%}
.contact-mail{margin-top:18px}
.contact-mail a{font-weight:600}
.form{margin-top:34px;padding:clamp(20px,3vw,32px);background:var(--bg);border:3px solid var(--zwart);border-radius:20px}
.form h3{font-size:1.5rem;margin-bottom:6px}
.form .intro{color:var(--muted);margin-bottom:18px;font-size:1rem}
.veld{margin-bottom:14px}
.veld label{display:block;font-weight:600;margin-bottom:6px;font-size:.98rem}
.veld input,.veld textarea{width:100%;padding:12px 14px;border:2px solid var(--zwart);border-radius:10px;background:var(--wit);font-size:1rem}
.veld textarea{min-height:130px;resize:vertical}
.veld input:focus-visible,.veld textarea:focus-visible{outline:3px solid var(--goud-donker);outline-offset:2px}
.melding{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--zwart);color:var(--wit);font-weight:500}
.melding[hidden]{display:none}
@media (min-width:900px){
  .open-grid{grid-template-columns:5fr 6fr;gap:clamp(48px,7vw,104px);align-items:start}
  .contact-knoppen{grid-template-columns:1fr 1fr}
}

/* footer */
.footer{background:var(--zwart);color:#e6e1d8;padding:clamp(44px,6vw,72px) 0 clamp(28px,4vw,40px)}
.footer-grid{display:grid;gap:30px}
.footer .logo{width:200px}
.footer address{font-style:normal;line-height:1.6}
.footer a{color:var(--wit);text-decoration:none;font-weight:600}
.footer a:hover{text-decoration:underline;text-decoration-color:var(--goud);text-underline-offset:4px}
.footer ul{display:flex;gap:20px;flex-wrap:wrap}
.footer small{display:block;margin-top:30px;padding-top:20px;border-top:1px solid #2c2926;font-size:.9rem;color:#bdb7ad}
@media (min-width:900px){.footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:48px;align-items:start}}

/* vaste balk mobiel */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;gap:10px;padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));background:var(--zwart);border-top:2px solid var(--goud);transform:translateY(110%);transition:transform .25s}
.mbar.is-zichtbaar{transform:none}
.mbar .btn{flex:1;min-height:50px;padding-inline:1em}
@media (max-width:899px){.js .mbar{display:flex}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}
