/* wiebelde.nl — één stylesheet, zelf-gehoste Poppins, geen framework, geen externe requests.
   Vormtaal in lijn met de DOWB-cases: diepgroen, witte afgeronde panelen, gouden pill-knoppen. */

@font-face{font-family:Poppins;src:url(/assets/fonts/poppins-400.woff2) format('woff2');
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url(/assets/fonts/poppins-500.woff2) format('woff2');
  font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url(/assets/fonts/poppins-600.woff2) format('woff2');
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url(/assets/fonts/poppins-700.woff2) format('woff2');
  font-weight:700;font-style:normal;font-display:swap}

:root{
  --groen:#002B22; --groen-2:#0b4234; --salie:#8FB8A4; --salie-l:#dcebe2;
  --mint:#eef7f1; --mint-2:#e2f0e8; --creme:#F6F3EC;
  --goud:#FFA800; --goud-d:#e89600;
  --ink:#132a22; --ink-2:#41564d; --muted:#6b8078; --faint:#93a8a0;
  --line:#dfeae4; --line-2:#edf4f0; --card:#fff;
  --ok:#0f7a4e; --ok-bg:#e6f6ee; --ok-line:#a5ddc1;
  --neu:#607269; --neu-bg:#eef2f0; --neu-line:#d0dcd6;
  --warn:#a76100; --warn-bg:#fff5e3; --warn-line:#f2c789;
  --bad:#bf2a24; --bad-bg:#fdeeec; --bad-line:#f3b3ad;
  --schaduw:0 2px 4px rgba(0,43,34,.04), 0 8px 24px rgba(0,43,34,.05);
  --schaduw-s:0 1px 2px rgba(0,43,34,.05);
  --r:16px; --r-s:10px; --r-paneel:30px;
  --wrap:1180px; --col:860px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--groen);color:var(--ink);
  font:400 16px/1.65 Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.col{max-width:var(--col)}
a{color:var(--groen-2);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:rgba(11,66,52,.3)}
a:hover{text-decoration-color:currentColor}

h1{font-size:clamp(28px,4vw,40px);line-height:1.14;font-weight:700;letter-spacing:-.025em;margin:0 0 18px}
h2{font-size:clamp(20px,2.4vw,25px);line-height:1.25;font-weight:700;letter-spacing:-.018em;margin:40px 0 14px}
h3{font-size:17px;font-weight:600;letter-spacing:-.008em;margin:26px 0 8px}
p{margin:0 0 14px}
strong,b{font-weight:600}

/* ── Kop ─────────────────────────────────────────────────────────── */
header.top{background:var(--groen)}
header.top .bar{display:flex;align-items:center;gap:26px;padding-block:18px;flex-wrap:wrap}
header.top a.logo{color:#fff;font-weight:700;font-size:21px;letter-spacing:-.035em;
  white-space:nowrap;text-decoration:none}
header.top a.logo span{color:var(--goud)}
form.zoek{display:flex;flex:1;min-width:280px;max-width:540px;background:#fff;
  border-radius:99px;overflow:hidden;padding:5px 5px 5px 6px}
form.zoek input{flex:1;min-width:0;padding:9px 14px;border:0;background:transparent;
  font:500 16px/1.4 Poppins,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums}
form.zoek input::placeholder{color:var(--faint);font-weight:400}
form.zoek input:focus{outline:0}
form.zoek button{padding:10px 22px;border:0;border-radius:99px;background:var(--goud);
  color:var(--groen);cursor:pointer;font:700 15px/1.4 Poppins,sans-serif;white-space:nowrap}
form.zoek button:hover{background:var(--goud-d)}
/* Op de homepage staat de zoekbalk al groot in de hero; die in de kop is dan dubbelop. */
header.top.compact form.zoek{display:none}

/* ── Wit paneel over de groene ondergrond, zoals in de DOWB-cases ── */
main{background:var(--mint);border-radius:var(--r-paneel) var(--r-paneel) 0 0;
  padding:44px 0 66px;margin-top:6px}

/* ── Homepage-hero ───────────────────────────────────────────────── */
.home-hero{background:var(--groen);color:#fff;padding:26px 0 60px}
.home-hero h1{color:#fff;max-width:15ch;margin:0 0 14px}
.home-hero .sub{color:#bcd6c8;font-size:17.5px;max-width:54ch;margin:0 0 28px;line-height:1.6}
.home-hero form.zoek{max-width:600px;padding:7px 7px 7px 10px}
.home-hero form.zoek input{padding:13px 16px;font-size:17px}
.home-hero form.zoek button{padding:13px 28px;font-size:16px}
.home-hero .onder{color:#8fb0a1;font-size:13.5px;margin:16px 0 0}

/* ── Nummer-hero ─────────────────────────────────────────────────── */
.hero{margin:0 0 22px}
.hero .kicker{display:inline-block;font-size:12.5px;font-weight:600;color:var(--groen-2);
  background:var(--salie-l);padding:5px 13px;border-radius:99px;margin:0 0 12px;letter-spacing:.02em}
.hero h1{margin:0 0 10px}
.hero .alt{font-size:14px;color:var(--muted);margin:0}

/* ── Verdict ─────────────────────────────────────────────────────── */
.verdict{display:flex;gap:15px;align-items:flex-start;padding:18px 22px;border-radius:var(--r);
  border:1px solid;margin:0 0 18px}
.verdict svg{flex:none;width:24px;height:24px;margin-top:1px}
.verdict .lbl{display:block;font-weight:700;font-size:18px;letter-spacing:-.015em;margin-bottom:3px}
.verdict p{margin:0;font-size:15px;color:var(--ink-2)}
.v-onbekend,.v-neutraal{background:var(--neu-bg);border-color:var(--neu-line)}
.v-onbekend svg,.v-neutraal svg{color:var(--neu)}
.v-veilig,.v-handig{background:var(--ok-bg);border-color:var(--ok-line)}
.v-veilig svg,.v-handig svg{color:var(--ok)}
.v-storend{background:var(--warn-bg);border-color:var(--warn-line)}
.v-storend svg{color:var(--warn)}
.v-gevaarlijk{background:var(--bad-bg);border-color:var(--bad-line)}
.v-gevaarlijk svg{color:var(--bad)}

/* ── Cijferrij ───────────────────────────────────────────────────── */
.cijfers{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0 0 30px}
.cijfers div{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;box-shadow:var(--schaduw-s)}
.cijfers .k{display:block;font-size:12px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}
.cijfers .v{display:block;font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.2;
  color:var(--groen);font-variant-numeric:tabular-nums}
.cijfers .v.klein{font-size:15.5px;font-weight:600;letter-spacing:-.005em;color:var(--ink)}
.cijfers.donker div{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
.cijfers.donker .k{color:#8fb0a1}
.cijfers.donker .v{color:#fff}

/* ── Kaarten ─────────────────────────────────────────────────────── */
.kaart{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:24px 26px;margin:0 0 20px;box-shadow:var(--schaduw-s)}
.kaart.accent{background:var(--salie-l);border-color:#c6ded1}
.kaart > :first-child{margin-top:0}
.kaart > :last-child{margin-bottom:0}
.kaart h2{font-size:18.5px;margin:0 0 14px}

dl.feiten{display:grid;grid-template-columns:180px 1fr;gap:0;margin:0;font-size:15.5px}
dl.feiten dt{color:var(--muted);padding:11px 0;border-top:1px solid var(--line-2)}
dl.feiten dd{margin:0;padding:11px 0;border-top:1px solid var(--line-2);font-weight:500}
dl.feiten dt:first-of-type,dl.feiten dd:first-of-type{border-top:0;padding-top:0}

.bron{font-size:13px;color:var(--muted);line-height:1.55}
.leeg{color:var(--muted);font-size:15px}

/* ── Nummerroosters ──────────────────────────────────────────────── */
ul.nummers{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
ul.nummers a{display:block;padding:15px 17px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-s);text-decoration:none;color:var(--ink);box-shadow:var(--schaduw-s);
  transition:transform .12s,box-shadow .12s,border-color .12s}
ul.nummers a:hover{border-color:var(--salie);box-shadow:var(--schaduw);transform:translateY(-1px)}
ul.nummers a .nr{display:block;font-weight:700;font-size:16.5px;letter-spacing:-.015em;
  color:var(--groen);font-variant-numeric:tabular-nums}
ul.nummers .n{display:block;color:var(--muted);font-size:13px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Tabel ───────────────────────────────────────────────────────── */
.tabelwrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--schaduw-s)}
table.lijst{width:100%;border-collapse:collapse;font-size:15px}
table.lijst th,table.lijst td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line-2)}
table.lijst th{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);background:var(--mint-2)}
table.lijst tr:last-child td{border-bottom:0}
table.lijst td:first-child{font-weight:600;font-variant-numeric:tabular-nums}
table.lijst .num{font-variant-numeric:tabular-nums}

/* ── Meldingen ───────────────────────────────────────────────────── */
.melding{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 22px;margin:0 0 12px;box-shadow:var(--schaduw-s)}
.melding .kop{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:9px;font-size:14px}
.melding .tag{font-weight:600;font-size:12.5px;padding:3px 11px;border-radius:99px}
.tag-handig,.tag-veilig{background:var(--ok-bg);color:var(--ok)}
.tag-neutraal{background:var(--neu-bg);color:var(--neu)}
.tag-storend{background:var(--warn-bg);color:var(--warn)}
.tag-gevaarlijk{background:var(--bad-bg);color:var(--bad)}
.melding .cat{color:var(--ink-2)}
.melding .tijd{color:var(--faint);margin-left:auto}
.melding .naam{font-size:13.5px;color:var(--muted);margin:0 0 7px}
.melding p.tekst{margin:0;font-size:15.5px;color:var(--ink-2);line-height:1.65}
.sorteer{font-size:14px;color:var(--muted);margin:0 0 14px}
.sorteer strong{color:var(--ink)}

/* ── Formulier ───────────────────────────────────────────────────── */
.meldform fieldset{border:0;padding:0;margin:0 0 20px}
.meldform legend{font-weight:600;font-size:15.5px;padding:0;margin-bottom:11px}
.meldform label{display:block;font-weight:500;font-size:15px;margin-bottom:7px}
.meldform .opties{display:flex;flex-wrap:wrap;gap:9px}
.meldform .keuze{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;
  border:1px solid var(--line);border-radius:99px;background:var(--card);cursor:pointer;
  font-size:15px;font-weight:500;transition:border-color .12s,background .12s}
.meldform .keuze:hover{border-color:var(--salie)}
.meldform .keuze input{margin:0;accent-color:var(--groen-2)}
.meldform .keuze:has(input:checked){border-color:var(--groen-2);background:var(--salie-l);
  color:var(--groen);font-weight:600}
.meldform .veld{margin:0 0 18px}
.meldform input[type=text],.meldform select,.meldform textarea{
  width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:12px;
  font:400 15.5px/1.5 Poppins,sans-serif;color:var(--ink);background:var(--card)}
.meldform textarea{resize:vertical;min-height:120px}
.meldform input:focus,.meldform select:focus,.meldform textarea:focus{
  outline:0;border-color:var(--salie);box-shadow:0 0 0 3px rgba(143,184,164,.3)}
.meldform button{padding:13px 30px;border:0;border-radius:99px;background:var(--goud);
  color:var(--groen);font:700 16px/1.4 Poppins,sans-serif;cursor:pointer}
.meldform button:hover{background:var(--goud-d)}
.fout{background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:12px;
  padding:13px 16px;margin:0 0 18px;font-size:15px;color:var(--bad)}

/* ── Stappen ─────────────────────────────────────────────────────── */
ol.stappen{list-style:none;counter-reset:s;margin:0 0 24px;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
ol.stappen li{counter-increment:s;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:22px 24px;box-shadow:var(--schaduw-s);
  font-size:14.5px;color:var(--ink-2)}
ol.stappen li::before{content:counter(s);display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:99px;background:var(--goud);color:var(--groen);
  font-weight:700;font-size:15px;margin-bottom:13px}
ol.stappen strong{display:block;color:var(--groen);font-size:16.5px;margin-bottom:5px;
  letter-spacing:-.01em}

/* ── Actielijst ──────────────────────────────────────────────────── */
ul.doen{list-style:none;margin:0;padding:0}
ul.doen li{padding:16px 0;border-top:1px solid var(--line);font-size:15.5px;color:var(--ink-2)}
ul.doen li:first-child{border-top:0;padding-top:0}
ul.doen strong{color:var(--groen)}

/* ── Salie-band (CTA), zoals de DOWB-cases ───────────────────────── */
.band{background:var(--salie);color:#fff;padding:46px 0;margin:46px 0 -66px;text-align:center}
.band h2{color:#fff;margin:0 0 10px}
.band p{color:#f4faf6;max-width:56ch;margin:0 auto 20px}
.knop{display:inline-block;padding:13px 30px;border-radius:99px;background:var(--goud);
  color:var(--groen);font-weight:700;text-decoration:none;font-size:16px}
.knop:hover{background:var(--goud-d);text-decoration:none}

.ad{margin:34px 0;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--r);background:var(--card)}

/* ── Footer ──────────────────────────────────────────────────────── */
footer.end{background:var(--groen);color:#9dbdb0;padding:40px 0 48px;font-size:14.5px}
footer.end nav{margin-bottom:16px}
footer.end nav a{color:#fff;margin-right:24px;display:inline-block;font-weight:500;
  text-decoration:none}
footer.end nav a:hover{color:var(--goud)}
footer.end p{margin:0 0 10px;max-width:72ch;line-height:1.65}
footer.end a{color:#cfe4d8}
footer.end .fijn{color:#6d8d80;font-size:13px}

@media (max-width:640px){
  .wrap{padding:0 18px}
  main{padding:30px 0 46px;border-radius:22px 22px 0 0}
  header.top .bar{gap:12px;padding-block:14px}
  form.zoek{order:3;width:100%;max-width:none}
  .home-hero{padding:16px 0 40px}
  .home-hero .sub{font-size:16px;margin-bottom:22px}
  dl.feiten{grid-template-columns:1fr}
  dl.feiten dt{padding-bottom:0;border-top:1px solid var(--line-2)}
  dl.feiten dd{padding-top:3px;border-top:0}
  dl.feiten dt:first-of-type{border-top:0}
  h2{margin-top:32px}
  .band{padding:34px 0;margin:34px 0 -46px}
}

/* Gidsen-index: titel als link met een korte samenvatting eronder. */
ul.gidsen{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px}
ul.gidsen li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
ul.gidsen a{display:block;font-weight:700;font-size:16.5px;color:var(--groen);
  text-decoration:none;line-height:1.35}
ul.gidsen a:hover{color:var(--groen-2);text-decoration:underline}
ul.gidsen li:hover{border-color:var(--salie);box-shadow:var(--schaduw)}
ul.gidsen p.uitleg{margin:6px 0 0;font-size:14px;color:var(--muted);line-height:1.55}
ul.nummers.breed li{grid-column:span 2}
ul.nummers.breed a{display:block;padding:12px 14px}
ul.nummers.breed .n{font-weight:600}
@media(max-width:640px){ul.nummers.breed li{grid-column:auto}}

/* Feitentabel op de landcodepagina: label links, waarde rechts. */
table.feiten th{width:34%;text-align:left;font-weight:600;color:var(--groen);
  background:var(--mint);vertical-align:top;white-space:nowrap}
table.feiten td{vertical-align:top}
@media(max-width:520px){
  table.feiten th{white-space:normal;width:40%}
}

/* ── Zoekbalk in gidsen (op mint paneel) ─────────────────────────── */
form.zoek.groot{max-width:600px;margin:4px 0 26px;border:2px solid var(--groen);padding:6px 6px 6px 10px}
form.zoek.groot input{padding:12px 14px;font-size:17px}

/* ── Snel melden: één klik op de soort gesprek ───────────────────── */
.snelmeld{margin:0 0 26px}
.snelmeld h2{margin:0 0 6px;font-size:19px}
.snelmeld p{margin:0 0 14px}
.snelmeld .knoppen{display:flex;flex-wrap:wrap;gap:9px}
.snelmeld button{padding:10px 16px;border:1.5px solid var(--line);border-radius:99px;background:#fff;
  color:var(--groen);cursor:pointer;font:600 14.5px/1.3 Poppins,sans-serif}
.snelmeld button:hover{border-color:var(--groen-2);background:var(--salie-l)}
.snelmeld .meer{margin:12px 0 0;font-size:14px}

/* ── Linkblokken op de homepage ──────────────────────────────────── */
ul.linkwolk{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
ul.linkwolk a{display:inline-block;padding:7px 13px;border-radius:99px;background:#fff;
  color:var(--groen);text-decoration:none;font-weight:500;font-size:14.5px;border:1px solid var(--line)}
ul.linkwolk a:hover{border-color:var(--groen-2)}
.faq h3{font-size:17px;margin:20px 0 6px}

/* Feitelijke openingszin op nummerpagina's */
.opening{font-size:1.05rem;margin:0 0 .6rem}

/* ── Huisadvertenties (src/Huisadv.php + /huisadv.js) ─────────────── */
/* Vaste hoogte vooraf, zodat er niets verspringt als het script de banner invult. */
.adv{min-height:150px}
@media (max-width:700px){.adv{min-height:274px}}
.adv{margin:38px 0}
.adv-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px 4px}
.adv a.b{display:flex;align-items:center;gap:22px;min-height:124px;padding:18px 24px;border-radius:var(--r);
  text-decoration:none;position:relative;overflow:hidden;box-shadow:var(--schaduw)}
.adv .b-vis{flex:0 0 auto}
.adv .b-txt{flex:1 1 auto;min-width:0}
.adv .b-kop{display:block;font-weight:700;font-size:19px;line-height:1.25;letter-spacing:-.015em;margin:0 0 4px}
.adv .b-sub{display:block;font-size:14.5px;line-height:1.5}
.adv .b-knop{flex:0 0 auto;display:inline-block;padding:12px 24px;border-radius:99px;font-weight:700;font-size:15px;white-space:nowrap}
.adv .b-merk{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;margin-top:8px;opacity:.85}
/* A: dewebsiteofferte.nl (huisstijl B: aubergine + zonnegeel) */
.adv .wo{background:#2A1456;color:#fff}
.adv .wo .b-sub{color:#E3DAF5}
.adv .wo .b-knop{background:#FFCB3D;color:#21103F}
.adv .wo:hover .b-knop{background:#ffd866}
.adv .wo .b-merk{color:#FFCB3D}
/* B: De Online Website Bouwer (crème + diepgroen + goud) */
.adv .dowb{background:#F6F3EC;color:#002B22;border:1px solid #e8e1cf}
.adv .dowb .b-sub{color:#41564d}
.adv .dowb .b-knop{background:#002B22;color:#fff}
.adv .dowb:hover .b-knop{background:#0b4234}
.adv .dowb .b-merk{color:#002B22}
.adv .sterren{color:#FFA800;letter-spacing:1px;margin-right:4px}
@media (max-width:700px){
  .adv a.b{flex-direction:column;align-items:flex-start;gap:14px;min-height:250px;padding:22px}
  .adv .b-kop{font-size:20px}
}
/* Zijbanners: rail naast de leeskolom, alleen als er ruimte is */
main{position:relative}
.zij-rail{display:none}
@media (min-width:1280px){
  .zij-rail{display:block;position:absolute;top:44px;bottom:66px;width:160px}
  .zij-rail.links{left:calc(50% - 430px - 184px)}
  .zij-rail.rechts{right:calc(50% - 430px - 184px)}
}
.zij{position:sticky;top:24px}
.zij[hidden]{display:none}
.zij a.z{display:flex;flex-direction:column;gap:12px;width:160px;min-height:300px;padding:20px 16px;border-radius:var(--r);
  text-decoration:none;box-shadow:var(--schaduw)}
.zij .z-kop{font-weight:700;font-size:18px;line-height:1.22;letter-spacing:-.015em}
.zij .z-sub{font-size:13.5px;line-height:1.45;flex:1 1 auto}
.zij .z-knop{align-self:flex-start;padding:9px 18px;border-radius:99px;font-weight:700;font-size:14px}
.zij .z-merk{font-size:11.5px;font-weight:600;opacity:.85}
.zij .wo{background:#2A1456;color:#fff}.zij .wo .z-sub{color:#E3DAF5}.zij .wo .z-knop{background:#FFCB3D;color:#21103F}.zij .wo .z-merk{color:#FFCB3D}
.zij .dowb{background:#F6F3EC;color:#002B22;border:1px solid #e8e1cf}.zij .dowb .z-sub{color:#41564d}.zij .dowb .z-knop{background:#002B22;color:#fff}
.zij .b-vis{transform:scale(.8);transform-origin:left top;margin-bottom:-10px}
