:root{
  --peat:#231A14; --peat-2:#33271F; --ground:#F5EFE6; --sand:#EADFD1; --line:#DCCDBC;
  --ember:#B0441A; --ember-light:#E88A5A; --muted:#6E5E52; --muted-2:#5E4F44; --white:#FFFFFF;
  --ok:#2F6B3B; --ok-bg:#E3F0E2; --warn:#8A5A00; --warn-bg:#FBEFD3; --err:#A1301A; --err-bg:#FBE3DC;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--ground);color:var(--peat);font-family:Inter,system-ui,sans-serif;font-size:17px;line-height:1.55}
a{color:var(--ember)}a:hover{color:#7E2F10}
.display{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-0.02em}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* Header iconen */
.hdr-actions{display:flex;align-items:center;gap:8px}
.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:1px solid #5C4A3D;background:transparent;color:var(--ground);cursor:pointer;text-decoration:none}
.icon-btn:hover{background:var(--peat-2);color:var(--ground)}
.icon-btn.light{border-color:var(--line);color:var(--peat)}
.icon-btn.light:hover{background:var(--sand);color:var(--peat)}
.cart-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--ember-light);color:var(--peat);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cart-count[hidden]{display:none}

/* Knoppen */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;border:0;font:600 16px/1.2 Inter,system-ui,sans-serif;cursor:pointer;text-decoration:none;transition:background .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn-dark{background:var(--peat);color:var(--ground)}.btn-dark:hover{background:#3A2C22;color:var(--ground)}
.btn-ember{background:var(--ember);color:#fff}.btn-ember:hover{background:#953812;color:#fff}
.btn-ghost{background:transparent;color:var(--peat);border:1px solid var(--line)}.btn-ghost:hover{background:var(--sand);color:var(--peat)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn-block{width:100%}

/* Winkelwagen-lade */
.drawer-backdrop{position:fixed;inset:0;background:rgba(35,26,20,.45);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:90}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,100%);background:var(--ground);box-shadow:-12px 0 40px rgba(0,0,0,.18);transform:translateX(100%);visibility:hidden;transition:transform .3s ease,visibility .3s;z-index:91;display:flex;flex-direction:column}
.drawer-open .drawer{transform:none;visibility:visible}.drawer-open .drawer-backdrop{opacity:1;visibility:visible}
.drawer-hd{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}
.drawer-hd h2{margin:0;font-size:24px}
.drawer-bd{flex:1;overflow:auto;padding:8px 24px}
.drawer-ft{border-top:1px solid var(--line);padding:20px 24px;display:flex;flex-direction:column;gap:12px;background:var(--white)}
.free-bar{font-size:14px;color:var(--muted-2)}
.free-track{height:6px;border-radius:999px;background:var(--sand);overflow:hidden;margin-top:6px}
.free-fill{height:100%;background:var(--ember);border-radius:999px;transition:width .3s}

/* Regels */
.line{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.line:last-child{border-bottom:0}
.line-img{width:64px;height:64px;border-radius:12px;background:#fff;object-fit:cover}
.line-name{font-weight:600;font-size:15px;line-height:1.3}
.line-meta{font-size:13px;color:var(--muted)}
.line-price{font-weight:600;text-align:right;white-space:nowrap}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;margin-top:6px}
.qty button{width:36px;height:36px;border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--peat);border-radius:999px}
.qty button:hover{background:var(--sand)}
.qty span{min-width:28px;text-align:center;font-weight:600;font-size:15px}
.link-btn{border:0;background:none;padding:0;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;margin-left:10px}
.link-btn:hover{color:var(--ember)}
.empty{padding:48px 0;text-align:center;color:var(--muted)}

.sum-row{display:flex;justify-content:space-between;font-size:15px}
.sum-row.total{font-size:20px;font-weight:700;padding-top:8px;border-top:1px solid var(--line)}
.sum-row .muted{color:var(--muted)}

/* Formulieren */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:14px;font-weight:600}
.field input,.field select{width:100%;min-width:0;height:50px;padding:0 14px;border:1px solid #CDBBA8;border-radius:12px;background:#fff;font:inherit;color:var(--peat)}
.field input:focus,.field select:focus{outline:2px solid var(--ember-light);outline-offset:1px;border-color:var(--ember)}
.field input[aria-invalid="true"]{border-color:var(--err);background:#FFF8F6}
.field .hint{font-size:13px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid-addr{display:grid;grid-template-columns:2fr 1fr;gap:14px}
@media (max-width:560px){.grid-2,.grid-addr{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--ember)}

.card{background:#fff;border-radius:20px;padding:28px}
.alert{border-radius:12px;padding:14px 16px;font-size:15px}
.alert-err{background:var(--err-bg);color:var(--err)}
.alert-ok{background:var(--ok-bg);color:var(--ok)}
.alert-warn{background:var(--warn-bg);color:var(--warn)}
.alert[hidden]{display:none}

.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600}
.st-paid,.st-shipped{background:var(--ok-bg);color:var(--ok)}
.st-pending{background:var(--warn-bg);color:var(--warn)}
.st-failed,.st-canceled,.st-expired,.st-refunded{background:var(--err-bg);color:var(--err)}

/* Simpele header voor subpagina's */
.sub-hdr{background:var(--peat);color:var(--ground)}
.sub-hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;padding-bottom:16px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ground);text-decoration:none;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;letter-spacing:-0.02em}
.brand:hover{color:var(--ground)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,calc(100% + 48px));visibility:hidden;background:var(--peat);color:var(--ground);padding:14px 20px;border-radius:14px;font-size:15px;z-index:95;transition:transform .3s,visibility .3s;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.toast.show{transform:translate(-50%,0);visibility:visible}
.spinner{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.drawer,.drawer-backdrop,.toast,.free-fill{transition:none}.spinner{animation-duration:2s}}

/* ---------- Site-header (landingspagina) ---------- */
html{scroll-padding-top:84px}
.site-hdr{position:sticky;top:0;z-index:60;background:var(--peat);color:var(--ground)}
.site-hdr-in{position:relative;max-width:1200px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px}
.main-nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:15px}
.main-nav a{color:#E9DDD0;text-decoration:none}
.main-nav a:hover{color:#fff}
.nav-account,.menu-btn,.mb-close{display:none}

/* ---------- Mobiele winkelbalk ---------- */
.m-cartbar{display:none}

@media (max-width:820px){
  html{scroll-padding-top:68px}
  .site-hdr-in{padding:10px 16px;gap:8px}
  .site-hdr .brand span{font-size:20px}
  .hdr-actions{margin-left:auto;gap:6px}
  .menu-btn{display:inline-flex}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:4px 16px 16px;background:var(--peat);border-top:1px solid #3A2C22;box-shadow:0 16px 32px rgba(0,0,0,.3)}
  .site-hdr.menu-open .main-nav{display:flex}
  .main-nav a{padding:15px 4px;font-size:18px;border-bottom:1px solid #3A2C22}
  .main-nav a:last-child{border-bottom:0}
  .nav-account{display:block}
  .site-hdr [data-account-link]{display:none}
  .site-hdr.menu-open .mb-open{display:none}
  .site-hdr.menu-open .mb-close{display:inline}

  .hero-in{padding:20px 16px 36px!important;gap:16px!important}
  .slide{gap:20px!important}
  .slide > div:last-child{order:-1;flex-basis:100%!important;border-radius:20px!important}
  .slide h1,.slide h2{font-size:clamp(38px,11vw,52px)!important}
  .slide p{font-size:17px!important}
  .dot{width:30px}
  .nav-btn{width:46px!important;height:46px!important}

  [data-m="sec"]{padding:60px 16px!important;gap:28px!important}
  [data-m="cta"]{padding:0 16px 60px!important}
  [data-m="ctabox"]{padding:36px 24px!important;border-radius:22px!important}
  #modellen article{padding:18px!important}
  #modellen article > div:first-of-type{height:150px!important}
  footer > div{padding:40px 16px calc(40px + env(safe-area-inset-bottom))!important}

  .m-cartbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 18px;border-radius:999px;background:var(--peat);color:var(--ground);box-shadow:0 10px 30px rgba(0,0,0,.3);transform:translateY(calc(100% + 40px));transition:transform .3s ease}
  .m-cartbar.show{transform:none}
  .drawer-open .m-cartbar{transform:translateY(calc(100% + 40px))}
  .m-cartbar-info{display:flex;flex-direction:column;line-height:1.2;font-size:13px;color:#D9C9B9;min-width:0}
  .m-cartbar-info strong{font-size:16px;color:var(--ground)}
  .m-cartbar .btn{min-height:44px;padding:10px 18px;background:var(--ember-light);color:var(--peat)}
  body.has-cartbar{padding-bottom:84px}
}
@media (max-width:360px){
  .site-hdr .brand span{display:none}
}
@media (prefers-reduced-motion:reduce){.m-cartbar{transition:none}}
@media (max-width:820px){.wrap{padding-left:16px;padding-right:16px}.card{padding:22px 18px}}

/* ---------- Moor-textuur achter header en hero (doorlopend) ---------- */
:root{--hdr-h:72px}
.moor-bg{
  background-color:var(--peat);
  background-image:
    linear-gradient(90deg,rgba(24,17,12,.80) 0%,rgba(24,17,12,.58) 50%,rgba(24,17,12,.40) 100%),
    url("../images/hero-bg.jpg");
  background-repeat:no-repeat,no-repeat;
  background-size:100% 100%,max(100vw,1800px) auto;
  background-position:0 0,center 0;
}
.moor-bg-hero{
  background-position:0 0,center calc(-1 * var(--hdr-h));
  /* onderkant zacht laten overlopen in de effen kleur */
  background-image:
    linear-gradient(180deg,rgba(35,26,20,0) 70%,rgba(35,26,20,.9) 100%),
    linear-gradient(90deg,rgba(24,17,12,.80) 0%,rgba(24,17,12,.58) 50%,rgba(24,17,12,.40) 100%),
    url("../images/hero-bg.jpg");
  background-repeat:no-repeat,no-repeat,no-repeat;
  background-size:100% 100%,100% 100%,max(100vw,1800px) auto;
  background-position:0 0,0 0,center calc(-1 * var(--hdr-h));
}
@media (max-width:820px){
  :root{--hdr-h:64px}
  .moor-bg{background-size:100% 100%,max(100vw,1500px) auto}
  .moor-bg-hero{background-size:100% 100%,100% 100%,max(100vw,1500px) auto;
    background-image:
      linear-gradient(180deg,rgba(35,26,20,0) 60%,rgba(35,26,20,.92) 100%),
      linear-gradient(180deg,rgba(24,17,12,.55),rgba(24,17,12,.70)),
      url("../images/hero-bg.jpg")}
  .moor-bg:not(.moor-bg-hero){background-image:linear-gradient(180deg,rgba(24,17,12,.55),rgba(24,17,12,.55)),url("../images/hero-bg.jpg")}
}
