/* ─────────────────────────────────────────────────────────────────────────────
   AANVRAAGDETAILPAGINA — nagebouwd naar de APP (Robbie, 16 augustus 2026:
   "op de foto zie je de app zoals hij eruit ziet voor ophalers, de klanten
   versie is bijna identiek alleen andere acties").

   WAT DE EERSTE VERSIE FOUT DEED, zodat het niet terugkomt:
     · een GROENE TITELBALK. De app heeft die niet: de titel staat als grote
       donkere tekst op de grijze achtergrond, zonder kader eromheen.
     · alles op een WITTE ondergrond. De app zet witte kaarten op een lichtgrijs
       veld; dat contrast is wat de kaarten laat zweven.
     · de gegevens als RIJEN onder elkaar. De app gebruikt losse kaartjes in twee
       kolommen, met een hoofdletterlabel in grijs en de waarde eronder in blauw.
     · EMOJI als iconen. Die renderen per toestel anders en kleuren niet mee.

   Alles gescoped onder .pmad zodat het nooit botst met het thema, Elementor of
   de opmaak van de voorstelkaarten.

   ⚠ RAAK NIETS AAN BINNEN .proposalListingBox, .perposalModalBox,
   .requestAction-btn, .adsProcced of .cancleReq. Dat is de bestaande
   voorstel-shortcode en die is bewust ongewijzigd (Robbie is er tevreden over);
   de opmaak daarvan staat in het thema.

   MOBIEL EERST: daar zit het meeste verkeer en de app is een telefoonapp.
   Desktop krijgt vanaf 900px twee kolommen.
   ───────────────────────────────────────────────────────────────────────────── */

.pmad {
  --pmad-veld:   #eef1f5;  /* het grijze veld waar de kaarten op liggen */
  --pmad-kaart:  #ffffff;
  --pmad-navy:   #123141;  /* titels en labels */
  /* Precies het midden tussen navy en grijs, voor een kop die ONDERGESCHIKT moet ogen zonder
     secundair te worden. --pmad-grijs bleek daarvoor te ver weg (Robbie, 19 augustus 2026:
     "die andere is nu iets te grijs, verschil mag minder groot"). Alleen in gebruik bij
     .pmadKopTweede; pak hem er gerust bij als er ooit een tweede rangorde-kop komt. */
  --pmad-navyZacht: #3b5360;
  --pmad-blauw:  #0d7fa6;  /* de waarden in de feitenkaartjes */
  --pmad-grijs:  #64757e;
  --pmad-lijn:   #e3e9ee;
  /* ⚠ DIT MOET HETZELFDE GROEN ZIJN ALS "Kies deze ophaler" (Robbie, 17 augustus 2026).
     Die knop is `.accept_proposal_btn` in het thema en staat op #95C11F (style.css r380 en
     de inline stijlen in custom-functions.php r1143/r1171). Hier stond #7ab929, terwijl het
     commentaar bij de bod-knop verderop al beweerde dat het dezelfde kleur was. Dat klopte
     dus niet, en op een pagina waar beide knoppen onder elkaar staan zie je dat meteen.
     Verander dit alleen mee met die themaknop. */
  --pmad-groen:  #95C11F;
  --pmad-groenH: #7da31a;  /* de donkerdere hover, zelfde paar als afd-popup.css */
  --pmad-petrol: #0b5f7d;  /* de donkere actieknop uit de app */
  --pmad-rood:   #d1452f;  /* verwijderen */
  --pmad-licht:  #00b6f1;  /* het lichtblauw van de huisstijl, voor de chatknop */
  --pmad-groenD: #4d7c0f;  /* tekst in het richtprijsvak */
  --pmad-groenL: #f0f7e2;  /* vulling van het richtprijsvak */
  --pmad-r:      16px;
  --pmad-schaduw: 0 1px 2px rgba(18, 49, 65, .05), 0 2px 10px rgba(18, 49, 65, .05);

  /* Het grijze veld loopt van rand tot rand, ook binnen een smalle themacontainer.
     Zo oogt het als de app zonder dat we aan het thema of aan <body> hoeven te komen. */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--pmad-veld);
  color: var(--pmad-navy);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* De twee kolomwikkels bestaan alleen op desktop. Op mobiel lost display:contents ze op,
   zodat alles in EEN kolom doorloopt in precies de volgorde van de app. */
.pmad .pmadLinks,
.pmad .pmadRechts { display: contents; }

.pmad .pmadBinnen {
  max-width: 720px;
  margin: 0 auto;
  padding: 6px 16px 48px;
}

/* ── Terug ─────────────────────────────────────────────────────────────────── */
.pmad .pmadTerug {
  display: inline-flex; align-items: center; gap: 10px;
  margin: 10px 0 14px;
  color: var(--pmad-navy); text-decoration: none;
  font-size: 20px; font-weight: 600;
}
.pmad .pmadTerug:hover { color: var(--pmad-blauw); }

/* ── Foto: witte kaart met de afbeelding erin, precies zoals de app ────────── */
.pmad .pmadFotoKaart {
  position: relative;
  background: var(--pmad-kaart);
  border-radius: var(--pmad-r);
  padding: 8px;
  box-shadow: var(--pmad-schaduw);
}
.pmad .pmadStrip {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  border-radius: 11px;
}
.pmad .pmadStrip::-webkit-scrollbar { display: none; }
.pmad .pmadStrip img {
  flex: 0 0 100%;
  /* Hoger dan eerst (Robbie, 16 augustus 2026: "geef de foto container meer ruimte").
     `cover` en niet `contain`: met contain past de hele foto in het vak en hou je donkere balken
     naast een staande foto over ("doet heel dom niet het hele vak vullen"). Afsnijden mag hier,
     want de volledige foto is een tik verderop te zien in de fotolaag. Verander dit dus niet
     terug zonder die fotolaag mee te wegen. */
  width: 100%; height: 360px;
  object-fit: cover;
  background: var(--pmad-navy);
  cursor: zoom-in;
  scroll-snap-align: center;
  display: block;
  border-radius: 11px;
}
.pmad .pmadGeenFoto {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  /* Even hoog als een echte foto (Robbie, 16 augustus 2026), zodat de kaart niet inzakt
     op een aanvraag zonder foto en de pagina er niet anders uitziet per aanvraag. Bij een
     wijziging van de fotohoogte hoort deze mee te gaan, ook in het desktopblok onderaan. */
  /* Donkerblauw, de huisstijlkleur (Robbie, 16 augustus 2026). Grijs op grijs viel weg tegen
     het veld eromheen. */
  height: 360px; border-radius: 11px;
  background: var(--pmad-navy); color: rgba(255,255,255,.62); font-size: 14px;
}
.pmad .pmadPijl {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: rgba(18, 49, 65, .42); color: #fff; font-size: 22px; line-height: 1;
  cursor: pointer; display: grid; place-items: center; padding: 0;
}
.pmad .pmadVorige   { left: 16px; }
.pmad .pmadVolgende { right: 16px; }
.pmad .pmadBolletjes {
  position: absolute; left: 0; right: 0; bottom: 18px;
  display: flex; justify-content: center; gap: 6px;
}
.pmad .pmadBolletjes span {
  width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .55);
}
.pmad .pmadBolletjes span.aan { background: #fff; }

/* ── Titel: grote donkere tekst OP het veld, geen balk eromheen ────────────── */
.pmad .pmadTitel {
  margin: 20px 0 10px;
  font-size: 29px; line-height: 1.17; font-weight: 800;
  color: var(--pmad-navy); letter-spacing: -.01em;
}
.pmad .pmadPlaats {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 20px;
  color: var(--pmad-grijs); font-size: 17px;
}
.pmad .pmadPlaats .pmadIco { color: var(--pmad-grijs); flex: none; }

/* ── Feitenraster: twee kolommen witte kaartjes ────────────────────────────── */
.pmad .pmadFeiten {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
/* Een laatste eenling loopt over de volle breedte, net als "HOEVEELHEID" in de app. */
.pmad .pmadFeit:last-child:nth-child(odd) { grid-column: 1 / -1; }
.pmad .pmadFeit {
  display: flex; flex-direction: column; gap: 7px;
  background: var(--pmad-kaart);
  border-radius: 14px;
  padding: 15px 16px;
  box-shadow: var(--pmad-schaduw);
  min-width: 0;
}
.pmad .pmadFeitKop {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: var(--pmad-grijs);
}
.pmad .pmadFeitKop .pmadIco { color: var(--pmad-blauw); flex: none; }
.pmad .pmadFeitWaarde {
  font-size: 17px; font-weight: 700; color: var(--pmad-blauw);
  overflow-wrap: anywhere;
}

/* ── Gewone kaart (inhoud, beschrijving, acties) ───────────────────────────── */
.pmad .pmadKaart {
  background: var(--pmad-kaart);
  border-radius: var(--pmad-r);
  padding: 20px 18px;
  box-shadow: var(--pmad-schaduw);
  margin-bottom: 14px;
}
.pmad .pmadBlokKop {
  margin: 0 0 12px;
  font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: var(--pmad-navy);
}
.pmad .pmadBlokKopLijn {
  margin-top: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--pmad-lijn);
}
.pmad .pmadAfval { list-style: disc; margin: 0; padding-left: 22px; }
.pmad .pmadAfval li { margin-bottom: 6px; font-size: 17px; }
.pmad .pmadAfval li:last-child { margin-bottom: 0; }
.pmad .pmadOms { margin: 0; font-size: 17px; color: var(--pmad-navy); }

/* ── Actieblok ────────────────────────────────────────────────────────────── */
.pmad .pmadSectie {
  margin: 0 0 6px;
  font-size: 26px; font-weight: 800; color: var(--pmad-navy); letter-spacing: -.01em;
}
.pmad .pmadSectieToel { margin: 0 0 16px; color: var(--pmad-grijs); font-size: 16px; }

/* Richtprijs: label links, bedrag rechts, in een zacht groen vak. Welk bedrag hier
   staat hangt af van de rol; zie de prijsval in includes/aanvraag-detail.php. */
.pmad .pmadRichtprijs {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: var(--pmad-groenL);
  border: 1px solid #dcecc2;
  border-radius: 10px;
  padding: 15px 16px;
}
.pmad .pmadRpLabel  { font-size: 17px; font-weight: 700; color: var(--pmad-groenD); }
.pmad .pmadRpBedrag { font-size: 21px; font-weight: 800; color: var(--pmad-groenD); white-space: nowrap; }
.pmad .pmadRpNoot   { margin: 8px 2px 0; font-size: 14px; color: var(--pmad-grijs); }

/* Eigenaarsknoppen. De verwijderknop komt uit [delete_request_button]; alleen de
   omlijsting is van ons, de knop zelf blijft die van het thema. */
/* ⚠ NOOIT `.pmadVerwijder > *` GEBRUIKEN, EN DIT IS DE REDEN.
   [delete_request_button] geeft niet alleen een knop terug maar ook een <style>- en een
   <script>-blok. Een universele kindselector met `display: inline-flex` overrulet de
   display:none die de browser zelf op die twee zet, en dan staat de complete CSS en JavaScript
   als rode tekst op de pagina (Robbie, 16 augustus 2026: "dat gaat niet goed", met schermafbeelding).
   Selecteer dus ALLEEN echte knoppen, en zet style/script voor de zekerheid expliciet uit. */
.pmad style,
.pmad script { display: none !important; }

/* ═══ DE DRIE EIGENAARSKNOPPEN ═══════════════════════════════════════════════
   Onder elkaar, volle breedte, alle drie GEVULD met kleur. Geen witte knoppen
   (Robbie, 16 augustus 2026, twee keer: "zonder kleur" en daarna "waarom zijn
   die knoppen ineens weer zo spugelijk, nu weer met een witte achtergrond").

   ⚠ WAAROM HIER `!important` STAAT, EN WAAROM DAT UITZONDERLIJK IS.
   De verwijderknop komt uit [delete_request_button] en de chatknop uit
   [afval_chat]. Allebei brengen ze een eigen <style> mee met `!important`
   erin (zie .delete-btn__desktop / .delete-btn__mobile). Zonder tegengewicht
   wint die inline stijl en blijft de knop wit, precies wat er misging. Alles
   staat achter `.pmad`, dus het reikt niet verder dan deze pagina.

   ⚠ MAAR NOOIT `display` FORCEREN OP DE VERWIJDERKNOP. De shortcode levert een
   desktop- EN een mobiele variant en verbergt er telkens een met
   `display:none !important`. Overrule je dat, dan staan er ineens TWEE
   verwijderknoppen onder elkaar. Kleur, breedte en vorm mogen wel. */
.pmad .pmadEigenaarActies { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.pmad .pmadVerwijder { display: block; width: 100%; }

/* ⚠ `.pmadChat .afchat-cta` STOND HIER OOK IN EN IS ER 19 AUGUSTUS 2026 UITGEHAALD.
   Die selector zette met !important breedte, hoogte, padding, radius en letter op de chatknop,
   terwijl de toelichting verderop in dit bestand al zei dat de opmaak van die knop naar de
   chatplugin was verhuisd "zodat er één plek is in plaats van twee die elkaar overschreeuwen".
   Dat was dus precies wat er tóch gebeurde, en daardoor was niet te achterhalen waarom die knop
   er anders uitzag dan verwacht. De knop wordt nu volledig bepaald in
   afval-chat/assets/afval-chat.css, inclusief breedte en hoogte. Zet hem hier niet terug. */
.pmad .pmadKnop,
.pmad .pmadVerwijder a,
.pmad .pmadVerwijder button {
  width: 100% !important;
  box-sizing: border-box !important;
  min-height: 52px !important;
  padding: 13px 18px !important;
  margin: 0 !important;
  border-radius: 9px !important;
  border: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

/* Bewerken: gevuld petrol. */
.pmad .pmadKnop {
  display: inline-flex !important;
  background: var(--pmad-petrol) !important;
  color: #fff !important;
}
.pmad .pmadKnop:hover { background: #094e67 !important; color: #fff !important; }

/* Verwijderen: gevuld rood. Display bewust ongemoeid, zie de waarschuwing hierboven. */
.pmad .pmadVerwijder a,
.pmad .pmadVerwijder button {
  background: var(--pmad-rood) !important;
  color: #fff !important;
}
/* ⚠ EEN VARIANT TONEN, NIET ALLEBEI. De shortcode levert `delete-btn__desktop` EN
   `delete-btn__mobile` en verbergt er telkens een met een media query. Hier stond even
   `display: inline-flex !important` op alle knoppen, en toen stond Verwijderen DUBBEL in beeld
   (Robbie, 16 augustus 2026). Precies de valkuil die drie regels hoger al beschreven stond.
   We kiezen zelf welke variant blijft: de desktopvariant, want onze knop is op elke breedte
   even breed en dan is de mobiele tweeling overbodig. */
.pmad .pmadVerwijder .delete-btn__mobile { display: none !important; }
.pmad .pmadVerwijder .delete-btn__desktop { display: inline-flex !important; }
.pmad .pmadVerwijder a *,
.pmad .pmadVerwijder button * { color: #fff !important; }

.pmad .pmadVerwijder a:hover,
.pmad .pmadVerwijder button:hover { background: #b23825 !important; color: #fff !important; }

/* ── De chatknop uit [afval_chat] ──────────────────────────────────────────
   Bewust alleen `.afchat-cta` binnen .pmadChat: die klasse zit op de openknop
   en NIET op de knoppen in de chatmodal, die blijven van de chatplugin.
   De plugin zet er `--vertical` op (icoon boven het label) en geeft het LABEL
   een eigen kleur. Alleen de knop kleuren gaf donkere tekst op een donkere
   knop, dus het label en het icoon moeten expliciet mee. */
.pmad .pmadChat { margin-top: 10px; }
/* ── De chatknop ──────────────────────────────────────────────────────────
   DE OPMAAK VAN DE KNOP ZELF STAAT NU IN DE CHATPLUGIN (afval-chat.css, blok onderaan),
   bij de bron dus (Robbie, 16 augustus 2026: "doe de knop fiksen in de afvalchat plugin zodat je
   het bij de bron aanpakt"). Hier blijft alleen over dat de wikkel de volle breedte pakt; zo is er
   een plek waar de knop gedefinieerd wordt in plaats van twee die elkaar overschreeuwen. */
.pmad .pmadChat,
.pmad .pmadChat .afchat-cta-wrapper {
  display: block; width: 100%; max-width: none; margin: 0; padding: 0;
}
.pmad .pmadChat { margin-top: 10px; }

/* ── Lege staat ───────────────────────────────────────────────────────────── */
.pmadLeeg {
  max-width: 560px; margin: 40px auto; padding: 22px;
  background: #fff8e6; border: 1px solid #f0dca8; border-radius: 12px;
  font-size: 15px; line-height: 1.6;
}
.pmadLeeg code { background: #fff; padding: 2px 6px; border-radius: 5px; word-break: break-all; }

/* ─────────────────────────────────────────────────────────────────────────────
   DESKTOP. Bewust minder aandacht dan mobiel (Robbie), maar wel netjes: de
   aanvraag links, de acties en voorstellen rechts, precies zoals de huidige
   pagina dat doet.
   ───────────────────────────────────────────────────────────────────────────── */
@media (min-width: 900px) {
  /* TWEE ECHTE KOLOMMEN, en dat is bewust geen grid-template-areas meer. In die opzet liep het
     actieblok over drie rijen; die rijen groeiden met hem mee, waardoor titel en plaats meters uit
     elkaar kwamen te staan (Robbie, 16 augustus 2026, schermafbeelding). Twee wikkels die elk hun
     eigen inhoud dragen kunnen dat probleem niet hebben. */
  .pmad .pmadBinnen {
    max-width: 1140px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
    align-items: start;
    column-gap: 26px;
    padding: 10px 24px 64px;
  }
  .pmad .pmadTerug     { grid-column: 1 / -1; }
  .pmad .pmadLinks     { display: block; grid-column: 1; min-width: 0; }
  .pmad .pmadRechts    { display: block; grid-column: 2; min-width: 0; }
  .pmad .pmadGeplaatst { grid-column: 1 / -1; }

  .pmad .pmadStrip img,
  .pmad .pmadGeenFoto { height: 440px; }
  .pmad .pmadTitel { font-size: 32px; margin-top: 22px; }
  /* Drie kolommen feiten past hier prettiger dan twee halfbrede kaartjes. */
  .pmad .pmadFeiten { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pmad .pmadFeit:last-child:nth-child(odd) { grid-column: auto; }
}


/* ═══ DE ONGELEZEN-BADGE ZICHTBAAR HOUDEN ══════════════════════════════════
   Gemeten in de console op de echte pagina: de klasse wordt gezet
   (`afchat-badge has-unread`), `display` is `flex` en de server antwoordt met
   `success: true`. Alles werkt dus, en tóch was hij niet te zien. Dat kan dan
   alleen nog de PLAATSING zijn: de chatplugin heeft een media-query die de badge
   absoluut positioneert met eigen offsets, afgestemd op de oude staande knop.
   In onze liggende knop belandt hij daarmee buiten beeld.
   Alles wat hem kan verstoppen wordt hier dichtgezet. Lelijk maar sluitend, en
   het blijft achter .pmad dus buiten deze pagina verandert er niets.
   (16 augustus 2026, na vier mislukte pogingen op basis van aannames.) */
.pmad .pmadChat .afchat-cta { position: relative !important; overflow: visible !important; }
.pmad .pmadChat .afchat-badge.has-unread {
  position: static !important;
  inset: auto !important;
  /* GEEN `transform: none` HIER. bouncePause beweegt via transform, dus die regel zette de
     animatie stil terwijl de badge verder klopte. Stond er om een verschoven positionering
     terug te halen; `position: static` en `inset: auto` hierboven doen dat al. */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffc400 !important;
  /* Ook de longhand, want een `background-color !important` uit een specifiekere selector wint
     anders van de shorthand hierboven. Dat hield de badge donker in plaats van geel. */
  background-color: #ffc400 !important;
  color: #123141 !important;
  /* De puls hoort erbij: dat is het signaal, niet de versiering. Mijn eigen blok in de
     chatplugin overschreef de animatie omdat het even specifiek is en later staat. */
  animation: bouncePause 2s ease-in-out infinite !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  clip-path: none !important;
  overflow: visible !important;
  z-index: 2 !important;
}


/* De bod-knop, door aanvraag-detail.js vanuit de voorstellenlijst hierheen verhuisd zodat hij
   bij de andere acties staat, net als in de app. Groen, want dit is de knop waar het om draait
   voor een uitvoerder: hetzelfde groen als "Kies deze ophaler" in de voorstelkaarten. */
.pmad .pmadBodKnop { margin-top: 10px; }
.pmad .pmadBodKnop > a,
.pmad .pmadBodKnop > button,
.pmad .pmadBodKnop > input {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  min-height: 52px !important;
  padding: 13px 18px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: var(--pmad-groen) !important;
  color: #fff !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
.pmad .pmadBodKnop > a:hover,
.pmad .pmadBodKnop > button:hover { background: var(--pmad-groenH) !important; color: #fff !important; }


/* ═══ DE EIGEN BOD-POP-UP ═══════════════════════════════════════════════════
   Nagebouwd naar de app: een bottom sheet die van onderen opschuift, witte kaart
   met alleen de BOVENhoeken rond, donkere waas erachter. Zie assets/aanvraag-detail.js.
   Op desktop wordt het een gewoon gecentreerd venster, want een sheet onderaan een
   breed scherm oogt vreemd. */
body.pmadSheetOpen { overflow: hidden; }

.pmadSheetWaas {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; align-items: flex-end; justify-content: center;
  background: rgba(18, 49, 65, .55);
}
.pmadSheetWaas[hidden] { display: none; }

.pmadSheet {
  width: 100%; max-width: 560px;
  box-sizing: border-box;
  background: #fff;
  border-radius: 24px 24px 0 0;
  padding: 22px 20px 26px;
  max-height: 92vh; overflow-y: auto;
  color: #123141;
  font-size: 16px; line-height: 1.5;
  animation: pmadSheetOp .22s ease-out;
}
@keyframes pmadSheetOp { from { transform: translateY(100%); } to { transform: translateY(0); } }

.pmadSheetKop { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.pmadSheetKop h2 { margin: 0; font-size: 24px; font-weight: 800; color: #123141; }
.pmadSheetSluit {
  flex: none; width: 38px; height: 38px; border: 0; border-radius: 50%;
  background: #eef1f5; color: #123141; font-size: 22px; line-height: 1; cursor: pointer;
  display: grid; place-items: center; padding: 0;
}
.pmadSheetSluit:hover { background: #e0e6ec; }

.pmadVeldLabel { display: block; margin: 0 0 7px; font-size: 16px; color: #3d5561; }
.pmadVeldLabel span { color: #8a9aa4; }
.pmadVeld {
  box-sizing: border-box; width: 100%;
  margin: 0 0 18px;
  padding: 15px 16px;
  border: 1px solid #dfe8ee; border-radius: 10px;
  background: #f6fafc; color: #123141;
  font-size: 18px; line-height: 1.3;
  appearance: auto;
}
.pmadVeld:focus { outline: 0; border-color: #00b6f1; background: #fff; }
.pmadBedrag { margin-bottom: 6px; }

/* De foutmelding die de app niet toont maar die we wel nodig hebben: de server weigert
   onder de 50 euro, en dat antwoord moet ergens landen. De pop-up blijft open staan. */
.pmadVeldFout { margin: 0 0 14px; color: #c0392b; font-size: 15px; font-weight: 600; }
.pmadVeldFout[hidden] { display: none; }

.pmadSheetKnop {
  width: 100%; box-sizing: border-box;
  min-height: 54px; padding: 14px 18px; margin-top: 6px;
  border: 0; border-radius: 9px;
  background: var(--pmad-groen); color: #fff;
  font-size: 18px; font-weight: 700; cursor: pointer;
}
.pmadSheetKnop:hover { background: var(--pmad-groenH); }
.pmadSheetKnop:disabled { opacity: .65; cursor: default; }

/* De originele themaknop blijft in de DOM als terugval, maar uit beeld.
   Werkt onze pop-up ooit niet, dan is hij hiermee in een regel weer zichtbaar. */
.pmad .pmadOrigineelVerborgen { display: none !important; }

/* Onze eigen openknop, zelfde vorm als de andere drie in het actieblok. */
.pmad .pmadBodOpen {
  box-sizing: border-box; width: 100%;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 13px 18px;
  border: 0; border-radius: 9px;
  background: var(--pmad-groen); color: #fff;
  font-size: 17px; font-weight: 700; line-height: 1.2; cursor: pointer;
}
.pmad .pmadBodOpen:hover { background: var(--pmad-groenH); }

@media (min-width: 700px) {
  .pmadSheetWaas { align-items: center; }
  .pmadSheet { border-radius: 18px; animation: none; }
}


/* ═══ DE KEUZELIJSTEN LEESBAAR HOUDEN ══════════════════════════════════════
   In de pop-up toonden de dropdowns alleen puntjes in plaats van "Geen selectie"
   (Robbie, 16 augustus 2026). Dat is het klassieke gevolg van themastijl op
   `select`: een `-webkit-text-fill-color` of een `text-indent` die de tekst
   wegduwt, en die wint van een gewone kleurregel. Alles wat de tekst onzichtbaar
   kan maken wordt hier dichtgezet, en we tekenen ons eigen pijltje omdat
   `appearance: none` de standaardpijl weghaalt.
   De <option>-regels zijn er apart bij: sommige thema's kleuren die los. */
.pmadSheet select.pmadVeld {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  color: #123141 !important;
  -webkit-text-fill-color: #123141 !important;
  opacity: 1 !important;
  text-indent: 0 !important;
  text-shadow: none !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  height: auto !important;
  padding: 15px 44px 15px 16px !important;
  background-color: #f6fafc !important;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%23123141' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 14px 9px !important;
}
.pmadSheet select.pmadVeld:focus { background-color: #fff !important; border-color: #00b6f1 !important; }
.pmadSheet select.pmadVeld option {
  color: #123141 !important;
  -webkit-text-fill-color: #123141 !important;
  background: #fff !important;
  font-size: 16px !important;
  text-indent: 0 !important;
}


/* ═══ FOTO OP VOLLE GROOTTE ═════════════════════════════════════════════════
   De app kan een foto opentikken; dat kon hier niet (Robbie, 16 augustus 2026).
   Eigen laag, want de foto's staan in onze eigen carousel en niet in een
   galerij van het thema. Bewust simpel: donkere achtergrond, de foto zo groot
   als hij past, sluiten met de knop, met Escape of door naast de foto te tikken. */
body.pmadFotoOpen { overflow: hidden; }

.pmadFotoLaag {
  position: fixed; inset: 0; z-index: 100000;
  display: flex; align-items: center; justify-content: center;
  background: rgba(9, 26, 36, .93);
  padding: 24px;
}
.pmadFotoLaag[hidden] { display: none; }
.pmadFotoLaag img {
  max-width: 100%; max-height: 100%;
  width: auto; height: auto;
  object-fit: contain;
  border-radius: 8px;
  display: block;
}
.pmadFotoSluit {
  position: absolute; top: 18px; right: 18px;
  width: 44px; height: 44px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 26px; line-height: 1; cursor: pointer;
  display: grid; place-items: center; padding: 0;
}
.pmadFotoSluit:hover { background: rgba(255, 255, 255, .28); }


/* Bewerken kan niet meer zodra er een voorstel is geaccepteerd. De knop blijft staan maar grijs
   en niet klikbaar: verdwijnt hij helemaal, dan lijkt het of er iets ontbreekt. De uitleg eronder
   vertelt waarom, want een grijze knop zonder reden is een raadsel. */
.pmad .pmadKnop.pmadKnopUit {
  background: #e6ecf0 !important;
  color: #8a9aa4 !important;
  cursor: default !important;
  pointer-events: none;
}
.pmad .pmadKnopNoot { margin: 2px 2px 0; font-size: 14px; color: var(--pmad-grijs); }


/* Navigatie in de vergrote weergave. Hoorde er vanaf het begin in te zitten: zonder deze knoppen
   bediende de pijltoets de strip op de achtergrond in plaats van de foto die je groot bekijkt. */
.pmadFotoPijl {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 32px; line-height: 1; cursor: pointer;
  display: grid; place-items: center; padding: 0;
}
.pmadFotoPijl:hover { background: rgba(255, 255, 255, .3); }
.pmadFotoPijl[hidden] { display: none; }
.pmadFotoVorige   { left: 16px; }
.pmadFotoVolgende { right: 16px; }
.pmadFotoTeller {
  position: absolute; left: 0; right: 0; bottom: 22px;
  text-align: center; color: rgba(255, 255, 255, .8);
  font-size: 15px; font-weight: 600;
}
.pmadFotoTeller[hidden] { display: none; }

/* De pijlen in de preview zijn nu ook echt bedienbaar, dus ze moeten boven de foto liggen. */
.pmad .pmadPijl { z-index: 2; }


/* ═══ HET AOD-AANBOD ════════════════════════════════════════════════════════
   Vorm gekozen in ontwerp/aod-kaart.html, variant 3A-2 (Robbie, 17 augustus 2026).
   Dat bestand staat los van WordPress: pas de vorm daar eerst aan en breng hem
   dan hierheen, dat scheelt een release per ontwerpronde.

   ⚠ DE KOP IS GRIJS, NIET DONKERBLAUW, EN DAT IS EEN CORRECTIE.
   Er heeft een donkerblauwe kop in gezeten omdat het rode AOD-logo botst met
   groen. Dat klopte op zichzelf, maar op de echte pagina viel dat donkere blok
   uit de toon tegen de lichte kaarten eromheen (Robbie, 17 augustus 2026: "past
   het niet helemaal lekker die donkere kleur header, pak die maar grijs zoals de
   onderkant"). De kop heeft nu DEZELFDE grijstint als de keurmerkbalk onderaan,
   waardoor de kaart een lichte boven- en onderrand krijgt met de witte body
   ertussen. Zet hem niet terug naar donker zonder het te vragen.

   ⚠ WAT HIER NIET MEER IN HOORT, allemaal op verzoek weggehaald:
     · een USP-lijst ("ik wil de usp weg hebben");
     · een losse <h2> naast de pil, want de pil DRAAGT de titel;
     · een intro-alinea of een badge "Directe oplossing";
     · elk gekleurd vak om de 10.000+ ("waarom dat 10.000+ in zo een achterlijke
       groen container"). De twee cijfers staan als kolommen met een scheidingslijn.
   Het patroon van drie ontwerprondes: elke afkeuring ging over VERPAKKING, niet
   over inhoud. Bouw hier dus geen kaders of vlakken omheen.

   ⚠ DE POP-UP WORDT HIER NIET GESTIJLD. Die komt uit afd-popup.css en is gedeeld
   met het AOD-voorstel; er gaat een boeking doorheen. Het harnas faalt zodra dit
   bestand een .pmAfd*-selector bevat. */
/* ═══ TWEE SECTIEKOPPEN, EN ZE LEVEN OP VERSCHILLENDE PLEKKEN ═══════════════
   Onder de Acties-container staat "Directe oplossing" boven de AOD-kaart en
   daaronder "Voorstellen" boven de biedingen (Robbie, 17 augustus 2026).
   Ze scheiden ook echt twee dingen: een vaste prijs van de partner tegenover
   biedingen van ophalers.

   ⚠ HET VERSCHIL IN HERKOMST IS FUNCTIONEEL:
     .pmadAodSectie      -> gerenderd IN pm_ad_aod_aanbod(), dus hij verdwijnt
                            samen met de kaart. Anders bleef er een kop boven
                            een gat staan voor uitvoerders, uitgelogde bezoekers
                            en aanvragen zonder partnerprijs.
     .pmadVoorstellenKop -> gerenderd in pm_aanvraag_detail_render(), dus ALTIJD,
                            "ook als er geen AOD-oplossing is, maar dan weten
                            mensen dat daar de voorstellen komen te staan".
   [proposal_post_form] heeft zelf geen sectiekop (custom-functions.php r1245),
   dus er wordt niets gedubbeld. */
.pmad .pmadAodSectie,
.pmad .pmadVoorstellenKop {
  margin: 26px 2px 12px;
  font-size: 20px; font-weight: 800; color: var(--pmad-navy); letter-spacing: -.01em;
  line-height: 1.2;
}
/* De AOD-kop zit al ín de wikkel, die zijn eigen ruimte eronder regelt. */
.pmad .pmadAodSectie { margin-bottom: 10px; }

/* ── De tweede kop een tint lichter (Robbie, 19 augustus 2026) ─────────────
   "Andere oplossingen" hoort ondergeschikt te ogen aan "Aanbevolen oplossing";
   twee identiek donkere koppen maken er weer twee gelijkwaardige lijsten van, en
   dat is precies wat we met de hernoeming wilden oplossen.
   Eerst stond hier --pmad-grijs (#64757e), maar dat sprong te ver: de kop werd
   secundair in plaats van ondergeschikt. Nu --pmad-navyZacht (#3b5360), precies
   het midden tussen navy en grijs. Contrast is daarmee ruim in orde (ruim 7:1 op
   het veld #eef1f5, drempel voor grote vette tekst is 3:1).
   ⚠ ALLEEN via .pmadKopTweede, die PHP alleen meegeeft als er een aanbod boven
   staat. Zet deze kleur dus niet op .pmadVoorstellenKop zelf: zonder aanbod heet
   die kop "Voorstellen" en is hij de enige op de pagina. */
.pmad .pmadVoorstellenKop.pmadKopTweede { color: var(--pmad-navyZacht); }

/* ⚠ DE RUIMTE ONDER DE KAART IS NIET COSMETISCH. Direct hieronder rendert
   [proposal_post_form] de echte voorstelkaarten, en die brengen hun eigen marges
   mee uit het thema. Zonder deze marge plakt het AOD-aanbod tegen het eerste
   voorstel aan en lijken het één blok (Robbie, 17 augustus 2026, met
   schermafbeelding van een echt voorstel eronder). Het zijn twee losse dingen en
   dat moet je kunnen zien.
   De marge BOVEN is 0: de kop "Directe oplossing" zit in deze wikkel en brengt
   zijn eigen ruimte mee. */
.pmad .pmadAodWikkel { display: block; margin: 0 0 26px; }

/* ⚠ DE OMLIJNING HOORT BIJ DE KOP "AANBEVOLEN OPLOSSING" (Robbie, 19 augustus 2026: "ik wil
   best de AOD kaart omlijnen"). De bodkaarten eronder hebben alleen een schaduw, dus deze rand
   is het enige wat de kaart als een ANDER soort ding markeert in plaats van als de eerste rij
   van een lijst. Haal hem niet weg zonder de kop mee terug te zetten.

   ⚠ HET VERLOOP IN DE RAND GAAT VIA DE TWEE-ACHTERGRONDEN-TRUC, en dat is geen mooidoenerij
   maar de enige manier die werkt. De rand was eerst vlak lime-groen (--pmad-groen) en dat
   vloekte met de teal-naar-blauwe pil en knop op dezelfde kaart (Robbie: "ik vind de rand om
   de AOD kaart nog wel een beetje vloeken met de button").
   `border-image` zou voor de hand liggen maar NEGEERT border-radius: dan wordt deze kaart
   vierkant. Daarom:
     laag 1 (padding-box) = de witte kaartvulling, tot aan de binnenkant van de rand
     laag 2 (border-box)  = het verloop, dat dus alleen in de 2px rand zichtbaar blijft
   De rand zelf is `transparent`, want anders schildert hij over laag 2 heen.
   Dezelfde twee tinten en dezelfde hoek als de knop en de pil, zodat de kaart één object is.
   ⚠ Verander je de kaartvulling, pas dan laag 1 mee aan: die twee moeten gelijk blijven. */
.pmad .pmadAod {
  border: 2px solid transparent;
  border-radius: var(--pmad-r);
  background:
    linear-gradient(var(--pmad-kaart), var(--pmad-kaart)) padding-box,
    linear-gradient(90deg, #1ec98d, #0aa0e9) border-box;
  box-shadow: var(--pmad-schaduw);
  /* overflow hidden laat de gekleurde kop- en voetbalk binnen de ronde hoeken vallen. */
  overflow: hidden;
}

/* ── De kop: logo links, groene pil rechts, op één rij ─────────────────────
   WIT, niet grijs en niet donkerblauw. Dit is de derde kleur die geprobeerd is:
   donkerblauw viel uit de toon, grijs was de tussenstap, wit werd het (Robbie,
   17 augustus 2026: "doe toch maar wit in die header"). Het lijntje eronder doet
   nu het scheiden, want het kleurverschil met de body is weg. */
.pmad .pmadAodTop {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  /* ⚠ 15.5px EN NIET 14px, EN DAT IS GEEN SLORDIGHEID.
     HET LOGO EN DEZE PADDING ZIJN ÉÉN AFSPRAAK, want de wens was twee keer:
     het logo kleiner MAAR de kopbalk even hoog en de ruimte eromheen niet mee
     krimpen (Robbie, 17 augustus 2026: "het logo van hun graag 5% kleiner maar de
     header zelfde formaat laten", en daarna "zonder dat de ruimte eromheen ook
     kleiner wordt, dus enkel in verhouding het logo 5% kleiner").
     De rekensom: de kopbalk houdt een vaste binnenhoogte van 58px.
       30px logo -> 14px  padding  (de oorspronkelijke maat)
       27px logo -> 15.5px padding (nu; twee keer 5%, 30 -> 28.5 -> 27)
     Wat het logo inlevert komt er als witruimte bij, dus de balk blijft even hoog
     en het logo wordt alleen relatief kleiner. Alleen HEIGHT wordt gezet en
     `width: auto`, zodat het krimpen in verhouding gebeurt en het logo niet
     vervormt. PAS JE DE LOGOHOOGTE AAN, REKEN DEZE PADDING DAN MEE: (58 - hoogte) / 2. */
  padding: 15.5px 18px;
  background: var(--pmad-kaart);
  border-bottom: 1px solid var(--pmad-lijn);
}
.pmad .pmadAodLogo { height: 27px; width: auto; display: block; }

/* ⚠ DE GROENE PIL, EN BEWUST NIET DE PROFIELBADGE UIT HET THEMA.
   Er is een kopie van `.verified-user-badge` geprobeerd (schildje +
   "Officiële partner Afvalophalen.nl", custom-functions.php r1022) en meteen
   teruggedraaid: "doe maar dat oude, dus dat groen Officiële partner, niet de
   officiële die we voor ander gebruiken" (Robbie, 17 augustus 2026). Die badge
   hoort bij een ophaler in zijn profiel; hier is het een label op het aanbod van
   de vaste partner.
   DE TEKST MOET KORT BLIJVEN: hij staat naast een breed logo in een kolom van
   380px ("dan past het tenminste naast elkaar"). De volledige zin uit het profiel
   past daar niet naast en duwt het logo weg. */
/* De pil draagt HETZELFDE verloop als de boekknop (Robbie, 19 augustus 2026: "Officiele partner
   pil mogelijk ook dan net wat anders zodat het een mooi geheel is"). Kaart en knop hoorden
   anders twee kleurfamilies te dragen: lime-groen bovenin, teal-naar-blauw onderin.
   ⚠ ZELFDE RICHTING (90deg) EN DEZELFDE TWEE TINTEN als de knop. De pil is smal, dus je ziet
   er maar een stukje van het verloop; door dezelfde hoek aan te houden loopt hij visueel in
   dezelfde lijn als de knop eronder in plaats van als een losse gekleurde vlek. */
.pmad .pmadAodPil {
  flex: none;
  background-image: linear-gradient(90deg, #1ec98d, #0aa0e9); color: #fff;
  border-radius: 999px; padding: 5px 12px;
  font-size: 12px; font-weight: 800; line-height: 1.2; white-space: nowrap;
}

.pmad .pmadAodBody { padding: 18px; }

/* ── Prijs ────────────────────────────────────────────────────────────────── */
.pmad .pmadAodPrijsRij { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 9px; margin: 0 0 4px; }
.pmad .pmadAodPrijs { font-size: 34px; font-weight: 800; color: var(--pmad-navy); letter-spacing: -.02em; line-height: 1; }
.pmad .pmadAodPrijsSub { font-size: 14px; font-weight: 600; color: var(--pmad-grijs); }
.pmad .pmadAodStreep { height: 1px; background: var(--pmad-lijn); margin: 16px 0; }

/* ── De twee cijfers, gescheiden door een lijn ─────────────────────────────── */
.pmad .pmadAodCijfers { display: flex; margin: 0 0 16px; text-align: center; }
.pmad .pmadAodCijfer { flex: 1; min-width: 0; }
.pmad .pmadAodCijfer + .pmadAodCijfer { border-left: 1px solid var(--pmad-lijn); }
.pmad .pmadAodCijferTop { display: flex; align-items: center; justify-content: center; gap: 6px; }
.pmad .pmadAodCijferTop b { font-size: 20px; font-weight: 800; color: var(--pmad-navy); line-height: 1.1; }
.pmad .pmadAodGoogleIco { width: 17px; height: 17px; flex: none; }

/* ⚠ `b.pmadAodSterren` EN NIET ALLEEN `.pmadAodSterren`, EN DAT IS DE HELE BUG.
   De regel hierboven kleurt ELKE <b> in de cijferkop navy en is met twee klassen
   plus een element specifieker dan een losse klasse. Het sterretje kwam daardoor
   donkerblauw uit de bus in plaats van goud, en dat was op de pagina te zien
   (Robbie, 17 augustus 2026). Met het element erbij wint deze regel wel.
   #ffd700 is de kleur die het thema voor ECHTE reviewsterren gebruikt
   (`.starIcon i` en `.stars_listing .star i`, style.css r489/r501), dus de ster
   hier is dezelfde kleur als bij de beoordelingen van de ophalers. */
/* VIJF sterren sinds 19 augustus 2026, niet één meer. Reden: de bodkaarten eronder tonen een
   RIJ van vijf sterren (custom-functions.php r995), dus één los sterretje naast "4,8" verloor
   het visueel van elke bieder, ook van een bieder met een lagere score. Vijf sterren tonen bij
   4,8 is bovendien consistent met hoe die bodkaarten zelf rekenen: die ronden af met
   `round($sum / $count)`, dus een 4,6 staat daar ook als vijf gevulde sterren.
   Kleiner gezet (13px) met wat letterafstand, anders wordt de rij naast het getal en het
   Google-logo te breed voor de halve kolom. */
.pmad .pmadAodCijferTop b.pmadAodSterren { color: #ffd700; font-size: 13px; letter-spacing: .5px; }
.pmad .pmadAodCijferBij { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 600; color: var(--pmad-grijs); }

/* ── De boekknop ──────────────────────────────────────────────────────────
   ⚠ 15px / 600 IS NIET WILLEKEURIG: het is exact de letter van "Kies deze
   ophaler", de knop die er vlak onder staat (Robbie, 17 augustus 2026: "wil wel
   zelfde lettergrootte in die groene knop hebben als de officiele eronder").
   LET OP WAAR DIE WAARDE VANDAAN KOMT: de stylesheet zegt 16px
   (style.css r383), maar het thema zet er een INLINE stijl overheen met
   `font-size: 15px !important; font-weight: 600 !important`
   (custom-functions.php r1145-1146). Inline met !important wint, dus 15px is wat
   je op het scherm ziet. Ga je dit ooit narekenen, kijk dan naar de inline stijl
   en niet naar style.css. */
/* ⚠ DIE 15px/600-AFSPRAAK HIERBOVEN GELDT NIET MEER, EN DAT IS BEWUST (Robbie, 19 augustus
   2026). Hij was er juist om de knop GELIJK te maken aan "Kies deze ophaler" eronder, en dat
   is precies het probleem gebleken: twee identieke groene knoppen onder elkaar lezen als twee
   rijen in één lijst, en in een lijst wint het laagste bedrag. Nu draagt deze knop de
   CTA-stijl van de homepage (homepage.css r201-209), zodat er hiërarchie ontstaat zonder dat
   de bodkaarten eronder aangeraakt hoeven worden. Robbie: "we kunnen de button net zo doen
   als onze homepage buttons".

   ⚠ WEL DE VORM VAN DE HOMEPAGEKNOP, NIET DE KLEUR. Er heeft even het teal-naar-blauw-verloop
   van de homepage op gezeten (#1ec98d → #0aa0e9) en dat is teruggedraaid (Robbie, 19 augustus
   2026: "vind de knop niet echt passen doe die maar terug groen maar wel graag 3d effect").
   Terecht: die kaart is verder groen met een rood AOD-logo, en dan trekt een blauwe helft het
   geheel uit de toon. De knop is nu weer gewoon --pmad-groen, met --pmad-groenD (#4d7c0f) als
   onderrand: dat is de donkerste tint uit hetzelfde paar, dus het randje leest als schaduw en
   niet als een tweede kleur.

   DE HIËRARCHIE ZIT DUS NIET MEER IN DE KLEUR maar in de vorm: de 3D-rand die indrukt, twee
   regels in plaats van één, en groter/vetter dan "Kies deze ophaler" eronder. Samen met de
   groene omlijning om de kaart is dat genoeg onderscheid. Maak hem dus niet óók nog plat en
   15px "voor de consistentie", want dan is het verschil weg.

   ⚠ ZONDER pmPuls EN pmGlans. De homepageknop pulseert continu en heeft een glans die
   eroverheen sweept. Op een hero waar het de enige CTA is werkt dat; vlak boven een lijstje
   concurrerende knoppen leest permanente beweging als een advertentie, en dat ondergraaft
   juist de kop "Aanbevolen oplossing". Zet die animaties hier dus niet alsnog aan. */
.pmad .pmadAodKnop {
  box-sizing: border-box; width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  min-height: 50px; padding: 14px 18px;
  border: 0; border-radius: 14px;
  color: #fff; line-height: 1.2; cursor: pointer; text-align: center;
  /* ⚠ DE 3D-RAND IS EEN TWEEDE ACHTERGRONDLAAG EN GEEN border-bottom, en dat is nodig, niet
     slim willen doen. Een `border-bottom` kan geen verloop dragen, en de voor de hand liggende
     oplossing `border-image: linear-gradient(...)` NEGEERT border-radius: dan worden de hoeken
     van deze knop weer vierkant. Twee achtergrondverlopen over elkaar volgen de ronde hoeken
     wel. De onderste laag is 4px hoog en staat onderaan, de bovenste vult de rest.
     De randkleuren zijn dezelfde twee tinten op ~78% helderheid, zodat de rand aan de linker-
     én de rechterkant meeloopt met de knop erboven. Dat was het probleem van de vorige poging:
     een vlakke groene rand onder een blauwe rechterhelft gaf een zichtbare naad. */
  background-image:
    linear-gradient(90deg, #179d6e, #087db6),
    linear-gradient(90deg, #1ec98d, #0aa0e9);
  background-size: 100% 4px, 100% 100%;
  background-position: bottom, top;
  background-repeat: no-repeat;
  transition: transform .1s, filter .15s;
}
.pmad .pmadAodKnop:hover { filter: brightness(1.05); }
/* Dezelfde "ingedrukt"-beweging als op de homepage: de knop zakt en de onderrand wordt dunner. */
/* ⚠ HET INDRUKKEN KRIMPT NU DE ACHTERGRONDSTROOK EN NIET border-bottom-width. Die border is er
   sinds het verloop niet meer (zie het blok hierboven), dus de oude regel deed niets. */
.pmad .pmadAodKnop:active { transform: translateY(2px); background-size: 100% 2px, 100% 100%; }
.pmad .pmadAodKnopHoofd { font-size: 17px; font-weight: 800; letter-spacing: -.3px; }
.pmad .pmadAodKnopSub { font-size: 12px; font-weight: 600; letter-spacing: -.05px; opacity: .95; }

/* ── Keurmerkbalk onder de knop ────────────────────────────────────────────
   ⚠ HET NIWO-LOGO IS NIET TRANSPARANT (palette-PNG zonder tRNS), dus de
   achtergrond is hard wit. Daarom staat het in een WITTE CHIP op een grijze
   balk: dan oogt dat witte vlak als opzet in plaats van als een fout. Komt er
   ooit een transparante PNG of een SVG, dan kan die chip weg. */
.pmad .pmadAodKeur {
  display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
  padding: 13px 18px;
  background: #f6f9fb;
  border-top: 1px solid var(--pmad-lijn);
}
.pmad .pmadAodKeurChip {
  display: inline-flex; align-items: center; gap: 7px;
  background: #fff; border: 1px solid var(--pmad-lijn); border-radius: 8px;
  padding: 6px 10px;
  font-size: 12.5px; font-weight: 700; color: var(--pmad-grijs);
}
.pmad .pmadAodKeurChip img { height: 20px; width: auto; display: block; }
.pmad .pmadAodKeurWa { padding: 7px 11px; }
.pmad .pmadAodKeurWa svg { width: 18px; height: 18px; flex: none; display: block; }

/* ── Al geboekt: bevestiging in plaats van de kaart ────────────────────────── */
.pmad .pmadAodKlaar { text-align: center; margin-top: 16px; }
.pmad .pmadAodVink {
  display: inline-grid; place-items: center;
  width: 46px; height: 46px; margin-bottom: 10px;
  border-radius: 50%; background: #eaf6d8; color: var(--pmad-groen);
}
.pmad .pmadAodVink .pmadIco { width: 26px; height: 26px; }
.pmad .pmadAodKlaarKop { margin: 0 0 6px; font-size: 21px; font-weight: 800; color: var(--pmad-navy); }
.pmad .pmadAodKlaarTekst { margin: 0; font-size: 15px; color: var(--pmad-grijs); }
.pmad .pmadAodKlaarTekst b { color: var(--pmad-groenD); }


/* ═══ CONTACTGEGEVENS VAN DE KLANT, NA BETALING ═════════════════════════════
   Nagebouwd naar de app (app/app.html, klantContactBoxHTML): een groene kop met
   een vinkje, daaronder rijen label/waarde, en bij het nummer een WhatsApp-knop.

   ⚠ WIE DIT ZIET WORDT NIET HIER BEPAALD. De betaalmuur is die van de app,
   `afval_app_klant_contact_for()` in wp-content/mu-plugins/afval-app-api.php:
   er moet een rij in {prefix}op_factuur_log staan voor deze aanvraag én deze
   uitvoerder. Nooit hier een eigen zichtbaarheidsregel bijbouwen; twee
   betaalmuren lopen uiteen en dan lekt de ene wat de andere afschermt. */
.pmad .pmadContact { border: 1px solid #dcecc2; border-top: 3px solid var(--pmad-groen); }
.pmad .pmadContactKop {
  display: flex; align-items: center; gap: 9px;
  margin: 0 0 4px;
  font-size: 19px; font-weight: 800; color: var(--pmad-navy);
}
.pmad .pmadContactKop .pmadIco { color: var(--pmad-groen); flex: none; }
.pmad .pmadContactToel { margin: 0 0 14px; font-size: 14.5px; color: var(--pmad-grijs); }

.pmad .pmadContactRij {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 10px 0; border-top: 1px solid var(--pmad-lijn);
}
.pmad .pmadContactLabel { font-size: 13px; font-weight: 700; color: var(--pmad-grijs); }
.pmad .pmadContactWaarde {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-size: 15px; font-weight: 600; color: var(--pmad-navy);
  overflow-wrap: anywhere; text-align: right;
}
.pmad .pmadContactWaarde a { color: var(--pmad-blauw); text-decoration: none; }
.pmad .pmadContactWaarde a:hover { text-decoration: underline; }

/* De WhatsApp-knop in het groen van WhatsApp zelf, niet in ons huisgroen: hij moet
   herkenbaar zijn als WhatsApp, net als in de app. */
.pmad .pmadWaKnop {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; border-radius: 999px;
  background: #25D366; color: #fff !important;
  font-size: 13.5px; font-weight: 700; text-decoration: none !important;
}
.pmad .pmadWaKnop:hover { background: #1da851; }
.pmad .pmadWaKnop svg { width: 15px; height: 15px; flex: none; display: block; }

/* Beheerder kijkt mee: geen boekknop, wel de reden. De boeking eist serverzijdig
   eigenaarschap, dus een knop zou daar netjes op afketsen. */
.pmad .pmadAodBeheer {
  margin: 0; padding: 11px 13px;
  background: #f6f9fb; border: 1px dashed var(--pmad-lijn); border-radius: 9px;
  font-size: 13.5px; color: var(--pmad-grijs);
}
