/* CBAMdesk - eigen product DPS Media. Eigen huisstijl, deelt niets met andere
   eigen sites. Industrieel en zakelijk: grafiet, diep groenblauw als drager,
   amber alleen waar het over geld gaat. */
:root{
  --ink:#12202B; --sub:#4E5F6D; --paper:#FFFFFF; --vlak:#F4F7F8;
  --lijn:#DFE7EA; --accent:#0B6E5F; --accent-donker:#085146; --accent-licht:#E4F1EE;
  --geld:#A85B00; --geld-licht:#FBF0E1; --geld-lijn:#EBD3AD;
  --groen:#12805C; --groen-licht:#E3F2EC;
  --rood:#B3372B; --rood-licht:#F9E8E5;
  --schaduw:0 10px 30px -14px rgba(18,32,43,.20);
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 16.5px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
img{max-width:100%}
a{color:var(--accent)}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
.smal{max-width:780px;margin:0 auto;padding:0 22px}
.verstopt{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
header{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--lijn);z-index:50}
.nav{display:flex;align-items:center;gap:24px;padding:13px 0}
.logo{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:19px;color:var(--ink);
  text-decoration:none;letter-spacing:-.02em}
.logo .merk-teken{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;
  background:var(--accent);color:#fff}
.logo .merk-teken svg{display:block}
.logo span{color:var(--accent)}
.nav .links{display:flex;gap:20px;margin-left:auto;align-items:center}
.nav a.item{color:var(--sub);text-decoration:none;font-size:15px;font-weight:600}
.nav a.item:hover{color:var(--ink)}
.knop{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;
  font-size:15.5px;padding:11px 22px;border-radius:8px;border:0;cursor:pointer;transition:background .25s ease}
.knop:hover{background:var(--accent-donker)}
.knop.groot{font-size:17px;padding:14px 28px}
.knop.rustig{background:var(--paper);color:var(--accent);border:1.5px solid var(--accent)}
.knop.rustig:hover{background:var(--accent-licht)}
.knop[disabled]{opacity:.6;cursor:progress}
@media(max-width:860px){.nav .links a.item{display:none}}

/* hero */
.hero{padding:74px 0 58px;background:linear-gradient(180deg,var(--vlak),var(--paper))}
.hero h1{font-size:clamp(30px,4.5vw,45px);line-height:1.13;letter-spacing:-.025em;margin:0 0 16px;max-width:19ch}
.hero p.intro{font-size:19px;color:var(--sub);max-width:58ch;margin:0 0 24px}
.hero .cta-rij{display:flex;gap:13px;flex-wrap:wrap;align-items:center}
.hero .zeker{font-size:14px;color:var(--sub);margin-top:14px}
.badge{display:inline-block;background:var(--accent-licht);color:var(--accent-donker);font-size:13.5px;
  font-weight:700;padding:6px 14px;border-radius:999px;margin-bottom:18px}
.badge.geld{background:var(--geld-licht);color:var(--geld)}

/* secties */
section{padding:56px 0}
section.vlak{background:var(--vlak)}
h1{font-size:clamp(27px,4vw,40px);line-height:1.15;letter-spacing:-.025em;margin:0 0 14px}
h2{font-size:clamp(23px,3.1vw,31px);letter-spacing:-.02em;line-height:1.22;margin:0 0 13px}
h3{font-size:19px;margin:24px 0 8px}
.sub{color:var(--sub);max-width:64ch}
p{max-width:72ch}

/* kaarten en rasters */
.raster{display:grid;gap:18px;margin-top:26px}
.raster.k2{grid-template-columns:repeat(2,1fr)}
.raster.k3{grid-template-columns:repeat(3,1fr)}
.raster.k4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.raster.k3,.raster.k4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.raster.k2,.raster.k3,.raster.k4{grid-template-columns:1fr}}
.kaart{background:var(--paper);border:1px solid var(--lijn);border-radius:var(--radius);padding:22px 20px}
.kaart h3{margin:0 0 8px;font-size:17.5px}
.kaart p{margin:0;color:var(--sub);font-size:15.5px}
.kaart a{font-weight:600}

/* tabellen */
.tabel-omhulsel{overflow-x:auto;margin:22px 0}
table{border-collapse:collapse;width:100%;font-size:15.5px;min-width:520px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--lijn)}
th{font-size:13.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--sub)}
td.getal,th.getal{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:var(--vlak)}

/* de rekentool */
.tool{background:var(--paper);border:1px solid var(--lijn);border-radius:14px;box-shadow:var(--schaduw);
  padding:24px 22px;margin:0 0 8px}
.tool h2{margin:0 0 6px;font-size:24px}
.tool .toelichting{color:var(--sub);font-size:15.5px;margin:0 0 18px;max-width:70ch}
.regel{display:grid;grid-template-columns:1.7fr 1.1fr .7fr auto;gap:12px;align-items:end;margin-bottom:12px}
@media(max-width:860px){.regel{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.regel{grid-template-columns:1fr}}
.veld{display:flex;flex-direction:column;gap:5px;position:relative}
.veld label{font-size:13.5px;font-weight:700;color:var(--sub)}
.veld input,.veld select{font:inherit;font-size:15.5px;padding:10px 12px;border:1.5px solid var(--lijn);
  border-radius:8px;background:var(--paper);color:var(--ink);width:100%}
.veld input:focus,.veld select:focus{outline:0;border-color:var(--accent)}
.veld .hint{font-size:12.5px;color:var(--sub)}
.weg{background:none;border:1.5px solid var(--lijn);color:var(--sub);border-radius:8px;padding:10px 13px;
  cursor:pointer;font:inherit;font-size:14px;height:44px}
.weg:hover{border-color:var(--rood);color:var(--rood)}
.suggesties{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--paper);
  border:1.5px solid var(--lijn);border-top:0;border-radius:0 0 8px 8px;max-height:280px;overflow:auto;
  box-shadow:var(--schaduw)}
.suggesties button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--lijn);
  padding:9px 12px;font:inherit;font-size:14.5px;cursor:pointer;color:var(--ink)}
.suggesties button:hover,.suggesties button:focus{background:var(--accent-licht)}
.suggesties b{font-variant-numeric:tabular-nums}
.suggesties small{display:block;color:var(--sub);font-size:12.5px;line-height:1.4}
.tool-knoppen{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:6px}
.tool-instellingen{display:flex;gap:18px;flex-wrap:wrap;align-items:end;margin:18px 0 4px;
  padding-top:16px;border-top:1px solid var(--lijn)}
.tool-instellingen .veld{max-width:190px}

/* uitkomst */
.uitkomst{margin-top:22px;border:1.5px solid var(--geld-lijn);background:var(--geld-licht);
  border-radius:12px;padding:20px}
.uitkomst .totaal{font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-.03em;color:var(--geld);
  font-variant-numeric:tabular-nums;line-height:1.1}
.uitkomst .totaal-bij{color:var(--sub);font-size:15px;margin:4px 0 0}
.uitkomst table{background:var(--paper);border-radius:8px}
.uitkomst .waarschuwing{color:var(--rood);font-size:14.5px}
.besparing{margin-top:18px;border:1.5px solid var(--groen);background:var(--groen-licht);border-radius:12px;padding:18px 20px}
.besparing .bedrag{font-size:clamp(22px,4vw,30px);font-weight:800;color:var(--groen);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.besparing p{margin:6px 0 0;font-size:15.5px}

/* conversieblok */
.cta-blok{background:var(--ink);color:#fff;border-radius:14px;padding:30px 28px;margin:44px 0}
.cta-blok h2{color:#fff;margin:0 0 8px}
.cta-blok p{color:#C7D4DC;max-width:62ch}
.cta-blok a{color:#7FD3C2}
.cta-form{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 10px;max-width:560px}
.cta-form input[type=email]{flex:1 1 240px;font:inherit;font-size:16px;padding:13px 14px;border:0;border-radius:8px}
.cta-blok .klein{font-size:13.5px;color:#9FB2BD}
.funnel-ok{background:var(--groen-licht);border:1.5px solid var(--groen);color:#0B5D43;border-radius:10px;
  padding:14px 16px;font-weight:600;margin:16px 0}

/* lijsten */
ul.vink{list-style:none;padding:0;margin:16px 0}
ul.vink li{position:relative;padding-left:28px;margin-bottom:9px}
ul.vink li::before{content:"";position:absolute;left:4px;top:.55em;width:9px;height:5px;
  border-left:2.5px solid var(--groen);border-bottom:2.5px solid var(--groen);transform:rotate(-45deg)}

/* faq */
.faq{border-top:1px solid var(--lijn);margin-top:30px}
.faq details{border-bottom:1px solid var(--lijn);padding:15px 0}
.faq summary{font-weight:700;cursor:pointer;font-size:17px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--accent);font-weight:800}
.faq details[open] summary::after{content:"\2212"}
.faq p{margin:10px 0 0;color:var(--sub)}

/* verwante links */
.verwant{background:var(--vlak);border-radius:12px;padding:22px;margin:34px 0}
.verwant h2{font-size:20px;margin:0 0 12px}
.verwant ul{margin:0;padding-left:20px;columns:2;column-gap:30px}
.verwant li{margin-bottom:7px;break-inside:avoid}
@media(max-width:620px){.verwant ul{columns:1}}

/* footer */
footer{background:var(--ink);color:#B9C7D0;padding:46px 0 26px;margin-top:60px}
footer .kolommen{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:26px}
@media(max-width:860px){footer .kolommen{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer .kolommen{grid-template-columns:1fr}}
footer h4{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 12px}
footer a{display:block;color:#B9C7D0;text-decoration:none;font-size:15px;margin-bottom:7px}
footer a:hover{color:#fff}
footer .logo{color:#fff}
footer .logo span{color:#7FD3C2}
footer .onder{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;
  border-top:1px solid #26343E;margin-top:30px;padding-top:18px;color:#8FA1AC}

/* cookiebanner */
.cookiebalk{position:fixed;left:0;right:0;bottom:0;z-index:99;background:var(--paper);
  border-top:1px solid var(--lijn);box-shadow:0 -8px 28px -14px rgba(18,32,43,.3);padding:18px 0}
.cookiebalk-binnen{max-width:1140px;margin:0 auto;padding:0 22px;display:grid;
  grid-template-columns:1fr auto;gap:22px;align-items:center}
@media(max-width:820px){.cookiebalk-binnen{grid-template-columns:1fr}}
.cookiebalk h2{font-size:19px;margin:0 0 6px}
.cookiebalk p{font-size:14.5px;color:var(--sub);margin:0}
.cookiebalk-keuzes{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.cookiebalk label{display:flex;gap:8px;align-items:center;font-size:15px}
.cookiebalk label.vast span{color:var(--sub);font-size:13.5px}
.cookiebalk-knoppen{display:flex;gap:10px;flex-wrap:wrap}
.cookiebalk-knoppen .knop{font-size:15px;padding:11px 18px}

/* zonder javascript */
.no-js .alleen-js{display:none}
.no-js .zonder-js{display:block}
.zonder-js{display:none}

@media print{
  header,footer,.cta-blok,.tool-knoppen,.faq summary::after{display:none}
  body{font-size:12pt;color:#000}
  .uitkomst,.besparing{border:1px solid #000;background:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt}
}

/* mobiel: de knop in de balk mag de logotekst niet wegdrukken, en de secties
   staan op een telefoon te ver uit elkaar */
@media(max-width:620px){
  .nav{gap:12px;padding:11px 0}
  .logo{font-size:17px}
  .nav .knop{font-size:14px;padding:9px 13px}
  .hero{padding:40px 0 26px}
  section{padding:34px 0}
  .hero p.intro{font-size:17px}
  .tool{padding:18px 16px}
  .cta-blok{padding:24px 20px;margin:30px 0}
  .verwant ul{columns:1}
}

/* kopieerbare brieven bij de leveranciersuitvraag */
.kopieerblok{position:relative;margin:16px 0 26px}
.kopieerblok .knop{position:absolute;top:12px;right:12px;font-size:14px;padding:8px 14px}
.kopieerblok pre{background:var(--vlak);border:1px solid var(--lijn);border-radius:10px;
  padding:44px 18px 18px;overflow-x:auto;font:400 14.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:pre-wrap;margin:0;color:var(--ink)}
@media(max-width:620px){
  .kopieerblok .knop{position:static;display:block;margin-bottom:10px}
  .kopieerblok pre{padding:16px}
}

/* de vraag direct onder de uitkomst, op het moment dat het bedrag nog op het
   scherm staat */
.vervolg{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--geld-lijn);font-size:15.5px;
  display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.vervolg .knop{flex:none}
