:root{--ink:#1a1714;--paper:#faf6f0;--faded:#6f6a63;--accent:#b8863b;--accent-dark:#8f6529;--line:#e5ddd0;--card:#ffffff;--radius:10px;--font-display:"Playfair Display",Georgia,serif;--font-sans:"Poppins",-apple-system,BlinkMacSystemFont,sans-serif;--espresso:var(--ink);--espresso-light:#3b322a;--gold:var(--accent);--gold-light:#d0a463;--cream:var(--paper);--cream-dark:#f2ebe0;--text:var(--ink);--text-soft:var(--faded);--font-head:var(--font-display);--font-body:var(--font-sans)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--ink);background:var(--paper);line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0 0 .5em;line-height:1.15}p{margin:0 0 1em;color:var(--faded)}.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:.75em}.btn{display:inline-block;padding:.85em 1.8em;border-radius:999px;font-weight:500;font-size:.95rem;cursor:pointer;border:1px solid transparent;transition:all .2s ease}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent-dark)}.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--paper)}.btn-ghost{background:transparent;border:1.5px solid rgba(26,23,20,.25);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink);background:rgba(26,23,20,.05)}.btn-full{width:100%;text-align:center;border:none}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:rgba(250,246,240,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.header-inner{max-width:1160px;margin:0 auto;padding:1rem 1.5rem;justify-content:space-between;gap:1.5rem}.header-inner,.logo{display:flex;align-items:center}.logo img{height:44px;width:auto;display:block}.main-nav{display:flex;gap:2rem;flex:1 1;justify-content:center}.main-nav a{font-size:.92rem;font-weight:500;position:relative}.main-nav a:hover{color:var(--accent-dark)}.header-cta{white-space:nowrap}.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:34px;height:34px;background:none;border:none;cursor:pointer;flex-shrink:0;z-index:210}.hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}.hamburger[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:90}.mobile-nav-overlay.active{opacity:1;pointer-events:auto}.mobile-nav{background:var(--paper);box-shadow:0 12px 24px rgba(26,23,20,.12);display:flex;flex-direction:column;gap:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .25s ease}.mobile-nav.active{max-height:420px;opacity:1;overflow-y:auto}.mobile-nav a{font-size:1.05rem;font-weight:500;padding:1rem 1.5rem;border-bottom:1px solid var(--line)}.mobile-nav a.btn{margin:1.25rem 1.5rem;padding:.85em 1.8em;border-bottom:none;text-align:center}.hero{min-height:82vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem 4rem;background:linear-gradient(180deg,rgba(20,17,14,.68),rgba(20,17,14,.55)),url(/hero.jpg) center 30% /cover no-repeat;color:var(--paper)}.hero-content{max-width:680px}.hero .eyebrow{color:var(--accent)}.hero h1{font-size:clamp(2.4rem,6vw,4rem);color:var(--paper)}.hero-sub{color:#d8d2c8;font-size:1.05rem;max-width:520px;margin:0 auto 2rem}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero .btn-outline{border-color:var(--paper);color:var(--paper)}.hero .btn-outline:hover{background:var(--paper);color:var(--ink)}.section{max-width:1160px;margin:0 auto;padding:5rem 1.5rem}.section-alt{background:#f2ebe0;max-width:none}.section-alt>*{max-width:1160px;margin-left:auto;margin-right:auto}.section-alt.section{padding-left:0;padding-right:0}#diensten.section-alt,#openingstijden.section-alt{max-width:none;padding:5rem 1.5rem}#diensten.section-alt>*,#openingstijden.section-alt>*{max-width:1160px;margin-left:auto;margin-right:auto}.section-head{text-align:center;max-width:640px;margin:0 auto 3rem}.section-intro{color:var(--faded)}.section-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:3.5rem;gap:3.5rem;align-items:center}.section-grid-single{grid-template-columns:1fr;max-width:640px;margin:0 auto}.section-grid-single .eyebrow,.section-grid-single h2{text-align:center}.section-grid-single .checklist{max-width:380px;margin:1.5rem auto 0}.checklist{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-gap:.6rem;gap:.6rem}.checklist li{color:var(--ink);font-weight:500;padding-left:1.6em;position:relative}.checklist li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}.media-placeholder{background:repeating-linear-gradient(45deg,#e9e1d3,#e9e1d3 10px,#f2ebe0 0,#f2ebe0 20px);border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--faded);font-size:.85rem;min-height:320px}.price-list-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:3.5rem;gap:3.5rem}.price-list-column h3{font-size:1.5rem;margin-bottom:1.5rem}.price-list{list-style:none;margin:0;padding:0}.price-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.9em 0;border-bottom:1px solid var(--line)}.price-list-name{color:var(--ink);font-size:.98rem}.price-list-amount{font-family:var(--font-display);color:var(--accent-dark);white-space:nowrap}.services-note{text-align:center;font-size:.82rem;font-style:italic;margin-top:2rem;color:var(--faded)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:3.5rem;gap:3.5rem}.hours-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.hours-list li{display:flex;justify-content:space-between;padding:.7em 0;border-bottom:1px solid var(--line);font-size:.95rem}.hours-list li span:first-child{font-weight:500}.contact-list{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;grid-gap:1.2rem;gap:1.2rem}.contact-list strong{display:block;margin-bottom:.2em;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.contact-list a:hover,.contact-list strong{color:var(--accent-dark)}.map-embed{width:100%;min-height:260px;border:1px solid var(--line);border-radius:var(--radius)}.rating-line{color:var(--accent-dark);font-weight:500;letter-spacing:.02em}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem}.review-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem}.review-card p{color:var(--ink);font-style:italic;margin-bottom:.8em}.review-author{font-size:.82rem;color:var(--faded)}.booking-cta-block{text-align:center;max-width:640px;margin:0 auto}.site-footer{text-align:center;padding:2rem 1.5rem;background:var(--ink);color:#b8b2a8;font-size:.85rem}.site-footer p{color:#b8b2a8;margin:0 0 .4em}.site-footer .footer-credit{font-size:.75rem;color:#8a8479;margin-bottom:0}@media (max-width:900px){.header-cta,.main-nav{display:none}.hamburger{display:flex}.contact-grid,.price-list-grid,.section-grid{grid-template-columns:1fr}.reviews-grid{grid-template-columns:repeat(2,1fr)}.price-list-grid{gap:2.5rem}}@media (max-width:560px){.reviews-grid{grid-template-columns:1fr}.hero{background-position:50%}.logo img{height:36px}}.booking-page{min-height:100vh;background:var(--cream-dark);padding:40px 20px 80px;display:flex;flex-direction:column;align-items:center}.booking-brand{display:block;margin-bottom:32px;line-height:1}.booking-brand-text{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--ink)}.booking-brand-text span{color:var(--accent)}.booking-brand-logo{height:56px;width:auto;display:block}.booking-shell{width:100%;max-width:1040px}.booking-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2.5rem;box-shadow:0 20px 40px rgba(26,23,20,.06);width:100%}.stepper{margin-bottom:28px;flex-wrap:wrap}.stepper,.stepper-item{display:flex;align-items:center;gap:8px}.stepper-sep{color:rgba(26,23,20,.3)}.stepper-btn{background:none;border:none;font-family:var(--font-body);font-weight:600;font-size:.85rem;color:rgba(26,23,20,.35);cursor:default;padding:4px 0}.stepper-btn.enabled{color:var(--text-soft);cursor:pointer}.stepper-btn.active{color:var(--espresso);border-bottom:2px solid var(--gold)}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:32px;gap:32px;align-items:start}.booking-main{min-width:0}.booking-panel{background:var(--cream);border-radius:var(--radius);padding:36px;box-shadow:0 20px 40px rgba(26,23,20,.06);border:1px solid var(--line)}.booking-panel h1{font-size:1.6rem;margin-bottom:24px}.panel-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.panel-header-row h1{margin-bottom:0}.today-btn{background:var(--cream-dark);border:none;border-radius:100px;padding:8px 16px;font-family:var(--font-body);font-weight:600;font-size:.82rem;color:var(--espresso);cursor:pointer}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px}.service-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:10px;border:1.5px solid rgba(26,23,20,.15);background:transparent;cursor:pointer;text-align:left;font-family:var(--font-body);transition:border-color .2s ease,background .2s ease}.service-card.selected,.service-card:hover{border-color:var(--gold)}.service-card.selected{background:rgba(184,134,59,.12)}.service-check{position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.service-name{font-weight:600;color:var(--espresso)}.service-duration{font-size:.82rem;color:var(--text-soft)}.service-price{font-weight:700;color:var(--espresso);margin-top:6px}.day-picker{display:flex;gap:14px;overflow-x:auto;padding-bottom:14px;margin-bottom:24px}.day-col{flex:0 0 auto;flex-direction:column;gap:8px}.day-circle,.day-col{display:flex;align-items:center;width:44px}.day-circle{height:44px;border-radius:50%;border:1.5px solid rgba(26,23,20,.2);background:var(--cream);color:var(--espresso);font-family:var(--font-body);font-weight:700;font-size:.95rem;cursor:pointer;justify-content:center;transition:border-color .2s ease,background .2s ease,color .2s ease}.day-circle:hover{border-color:var(--gold)}.day-circle.selected{background:var(--espresso);border-color:var(--espresso);color:var(--cream)}.day-circle.day-more{border-style:dashed;font-size:1.2rem}.day-col-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.slot-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:10px;gap:10px}.slot-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 6px;border-radius:8px;border:1.5px solid rgba(26,23,20,.15);background:transparent;cursor:pointer;font-weight:600;font-family:var(--font-body);font-size:.88rem;color:var(--espresso)}.slot-btn.selected,.slot-btn:hover{border-color:var(--gold)}.slot-btn.selected{background:var(--gold);color:#fff}.slot-icon{width:14px;height:14px;flex:0 0 auto;opacity:.6}.slot-icon svg{width:100%;height:100%}.details-form{max-width:420px}.details-note{font-size:.82rem;color:var(--text-soft);margin-top:12px;text-align:center}.order-summary{background:var(--cream);border-radius:var(--radius);padding:28px;box-shadow:0 20px 40px rgba(26,23,20,.06);border:1px solid var(--line);position:-webkit-sticky;position:sticky;top:24px}.order-summary h2{font-size:1.1rem;margin-bottom:4px}.order-shop{font-size:.85rem;color:var(--text-soft);margin-bottom:20px}.order-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:16px;border-bottom:1px solid rgba(26,23,20,.1)}.order-line-name{font-weight:600;color:var(--espresso)}.order-line-meta{font-size:.82rem;color:var(--text-soft);margin-top:4px}.order-line-price{white-space:nowrap}.order-line-price,.order-subtotal{font-weight:700;color:var(--espresso)}.order-subtotal{display:flex;justify-content:space-between;padding-top:16px;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em}.order-cta{width:100%;margin-top:20px;text-align:center}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:.9rem;font-weight:500;color:var(--espresso-light)}.field input{padding:11px 14px;border-radius:8px;border:1.5px solid rgba(26,23,20,.15);font-family:var(--font-body);font-size:1rem;background:var(--cream);color:var(--text)}.field input:focus{outline:none;border-color:var(--gold)}.form-error{color:#a13333;font-size:.88rem;margin-bottom:14px}.muted{color:var(--text-soft);font-size:.92rem}.booking-confirm{text-align:center}.confirm-icon{width:56px;height:56px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 20px}.confirm-note{font-size:.88rem;color:var(--text-soft);margin-bottom:24px}.admin-login{max-width:380px}.admin-dashboard{max-width:720px}.appointment-list{display:flex;flex-direction:column;gap:14px}.appointment-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-radius:10px;background:var(--cream-dark)}.appointment-row.cancelled{opacity:.55}.status-badge{font-size:.8rem;font-weight:600;color:var(--text-soft)}@media (max-width:860px){.booking-grid{grid-template-columns:1fr}.order-summary{position:static;order:-1}.slot-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width:560px){.service-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(3,1fr)}.booking-panel{padding:24px}}