/*
  De checkout en de winkelwagenpagina.

  De opmaak uit checkout.html van v52, ongewijzigd overgenomen op :root en
  body na, want die staan al in tokens.css en base.css.

  De koppeling naar WooCommerce staat onderaan dit bestand: Woo gebruikt zijn
  eigen klassen voor de velden en de ordersamenvatting, en die krijgen hier de
  opmaak van .veld en .samenvatting uit v52.
*/

/* De box-sizing-reset uit v52 staat al in base.css. */

/* ─────────── HEADER, alleen het logo ─────────── */
.co-header {
padding: 1.6rem 5%;
border-bottom: 1px solid var(--lijn-zacht);
background: rgba(253, 246, 240, 0.95);
}

.co-header-inner { max-width: 1180px; margin: 0 auto; }

.logo-img {
height: 32px;
width: auto;
display: block;
filter: brightness(0) saturate(100%) invert(41%) sepia(21%) saturate(1167%) hue-rotate(296deg) brightness(93%) contrast(89%);
}

/* ─────────── RASTER ─────────── */
.co-wrap {
max-width: 1180px;
margin: 0 auto;
padding: 3rem 5% 4rem;
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 4rem;
align-items: start;
}

/* ─────────── TYPOGRAFIE ─────────── */
.co-sectie { margin-bottom: 2.6rem; }

.co-sectie h2 {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-weight: 400;
font-size: 1.5rem;
color: var(--noir);
margin-bottom: 1.1rem;
}

.co-sectie-kop {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 1.1rem;
gap: 1rem;
}

.co-sectie-kop h2 { margin-bottom: 0; }

.co-sectie-kop a {
font-size: 0.7rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--mauve);
text-decoration: underline;
text-underline-offset: 3px;
}

.co-sectie-kop a:hover { color: var(--wine); }

.co-hint { font-size: 0.75rem; color: var(--mauve); opacity: 0.8; margin-top: 0.5rem; }

/* ─────────── FORMULIER ─────────── */
.veld { margin-bottom: 0.9rem; }

.veld label {
display: block;
font-size: 0.66rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--mauve);
margin-bottom: 0.4rem;
}

.veld input,
.veld select {
width: 100%;
padding: 0.85rem 0.95rem;
font-family: 'Jost', sans-serif;
font-weight: 300;
font-size: 0.9rem;
color: var(--noir);
background: var(--wit);
border: 1px solid var(--lijn);
border-radius: 8px;
transition: border-color 0.2s, box-shadow 0.2s;
}

.veld input::placeholder { color: var(--dusty); }

.veld input:focus,
.veld select:focus {
outline: none;
border-color: var(--gold);
box-shadow: 0 0 0 3px rgba(200, 169, 126, 0.18);
}

.veld select {
appearance: none;
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%239E5A6E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 1rem center;
padding-right: 2.4rem;
}

.veld-rij { display: grid; gap: 0.9rem; }

.veld-rij.twee { grid-template-columns: 1fr 1fr; }

.veld-rij.drie { grid-template-columns: 1fr 1fr 1fr; }

.vink {
display: flex;
align-items: flex-start;
gap: 0.6rem;
margin-top: 0.7rem;
font-size: 0.8rem;
color: var(--mauve);
cursor: pointer;
}

.vink input { margin-top: 0.25rem; accent-color: var(--mauve); width: 15px; height: 15px; flex: none; }

/* ─────────── VERZENDMETHODE EN BETAALBLOK ─────────── */
.keuzelijst { border: 1px solid var(--lijn); border-radius: 10px; overflow: hidden; background: var(--wit); }

.keuze {
display: flex;
align-items: center;
gap: 0.8rem;
padding: 1rem 1.1rem;
cursor: pointer;
border-bottom: 1px solid var(--lijn-zacht);
transition: background 0.2s;
}

.keuze:last-child { border-bottom: none; }

.keuze:hover { background: rgba(242, 196, 206, 0.16); }

.keuze input { accent-color: var(--mauve); width: 16px; height: 16px; flex: none; }

.keuze-tekst { flex: 1; }

.keuze-titel { font-size: 0.9rem; color: var(--noir); }

.keuze-sub { font-size: 0.74rem; color: var(--mauve); opacity: 0.85; }

.keuze-prijs { font-size: 0.9rem; color: var(--noir); white-space: nowrap; }

.kaartmerken { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; opacity: 0.75; }

.pay-logo { height: 22px; width: auto; display: block; border-radius: 4px; flex-shrink: 0; }

.merk {
font-size: 0.58rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--mauve);
border: 1px solid var(--lijn);
border-radius: 4px;
padding: 0.15rem 0.4rem;
background: var(--cream);
}

/* ─────────── PAY NOW ─────────── */
.pay-knop {
width: 100%;
background: var(--gold);
color: var(--noir);
border: none;
border-radius: 8px;
padding: 1.15rem;
font-family: 'Jost', sans-serif;
font-size: 0.85rem;
font-weight: 400;
letter-spacing: 0.16em;
text-transform: uppercase;
cursor: pointer;
transition: all 0.3s;
box-shadow: 0 4px 15px rgba(200, 169, 126, 0.3);
}

.pay-knop:hover {
background: var(--wine);
color: var(--cream);
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(122, 50, 72, 0.4);
}

.ontwerp-notitie {
text-align: center;
font-size: 0.72rem;
color: var(--mauve);
opacity: 0.8;
margin-top: 0.8rem;
}

/* ─────────── ORDERSAMENVATTING ─────────── */
.samenvatting {
background: linear-gradient(to bottom, rgba(242, 196, 206, 0.28), rgba(253, 246, 240, 0.9));
border: 1px solid var(--lijn-zacht);
border-radius: 12px;
padding: 1.6rem;
position: sticky;
top: 2rem;
}

.sv-regels { margin-bottom: 1.4rem; }

.sv-regel {
display: grid;
grid-template-columns: 64px 1fr auto;
gap: 0.9rem;
align-items: center;
padding: 0.9rem 0;
border-bottom: 1px solid var(--lijn-zacht);
}

.sv-regel:first-child { padding-top: 0; }

.sv-regel:last-child { border-bottom: none; }

.sv-foto {
position: relative;
width: 64px;
height: 84px;
border-radius: 6px;
overflow: hidden;
background: linear-gradient(135deg, var(--cream) 0%, var(--blush) 100%);
border: 1px solid var(--lijn-zacht);
}

.sv-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.sv-aantal {
position: absolute;
top: -8px;
right: -8px;
min-width: 21px;
height: 21px;
border-radius: 50%;
background: var(--mauve);
color: var(--cream);
font-size: 0.68rem;
display: flex;
align-items: center;
justify-content: center;
}

.sv-naam {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1.05rem;
line-height: 1.2;
color: var(--noir);
}

.sv-maat {
font-size: 0.68rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--mauve);
margin-top: 0.2rem;
}

.sv-prijs { font-size: 0.88rem; color: var(--noir); white-space: nowrap; }

.korting { display: grid; grid-template-columns: 1fr auto; gap: 0.6rem; margin-bottom: 1.4rem; }

.korting input {
padding: 0.8rem 0.9rem;
font-family: 'Jost', sans-serif;
font-weight: 300;
font-size: 0.85rem;
color: var(--noir);
background: var(--wit);
border: 1px solid var(--lijn);
border-radius: 8px;
}

.korting input::placeholder { color: var(--dusty); }

.korting input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200, 169, 126, 0.18); }

.korting button {
padding: 0 1.4rem;
background: transparent;
border: 1px solid var(--mauve);
color: var(--mauve);
border-radius: 8px;
font-family: 'Jost', sans-serif;
font-size: 0.72rem;
letter-spacing: 0.14em;
text-transform: uppercase;
cursor: pointer;
transition: all 0.25s;
}

.korting button:hover { background: var(--mauve); color: var(--cream); }

.sv-totalen { border-top: 1px solid var(--lijn); padding-top: 1.1rem; }

.sv-rij {
display: flex;
justify-content: space-between;
align-items: baseline;
font-size: 0.85rem;
color: var(--mauve);
margin-bottom: 0.65rem;
}

.sv-rij span:last-child { color: var(--noir); }

.sv-rij.totaal {
border-top: 1px solid var(--lijn);
padding-top: 1rem;
margin-top: 1rem;
margin-bottom: 0.4rem;
}

.sv-rij.totaal .label {
font-size: 0.72rem;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--mauve);
}

.sv-rij.totaal .bedrag {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1.7rem;
color: var(--noir);
}

.sv-belasting { font-size: 0.72rem; color: var(--mauve); opacity: 0.8; line-height: 1.45; }

/* ─────────── VOET ─────────── */
.co-voet {
border-top: 1px solid var(--lijn-zacht);
padding: 1.6rem 5% 2.4rem;
}

.co-voet-inner {
max-width: 1180px;
margin: 0 auto;
display: flex;
gap: 1.8rem;
flex-wrap: wrap;
}

.co-voet a {
font-size: 0.72rem;
color: var(--mauve);
text-decoration: none;
transition: color 0.2s;
}

.co-voet a:hover { color: var(--wine); text-decoration: underline; text-underline-offset: 3px; }

/* ─────────── MOBIEL ─────────── */
@media (max-width: 600px) {
  .co-header { padding: 1.1rem 6%; }
  .logo-img { height: 28px; margin: 0 auto; }
  .co-wrap {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    padding: 1.8rem 6% 2.6rem;
  }
  /* samenvatting eerst op mobiel, zoals in een echte checkout */
  .samenvatting { order: -1; position: static; padding: 1.2rem; }
  .co-sectie { margin-bottom: 2rem; }
  .co-sectie h2 { font-size: 1.35rem; }
  .express-rij { grid-template-columns: 1fr; }
  .express-knop { height: 46px; }
  /* De logorij bij Payment wikkelt onder de kop door en wordt iets kleiner */
  .co-sectie-kop { flex-wrap: wrap; }
  .kaartmerken { gap: 0.35rem; }
  .pay-logo { height: 20px; }
  .scheiding { margin: 1.3rem 0 1.8rem; }
  .veld-rij.twee, .veld-rij.drie { grid-template-columns: 1fr; }
  .sv-regel { grid-template-columns: 56px 1fr auto; gap: 0.7rem; }
  .sv-foto { width: 56px; height: 74px; }
  .sv-naam { font-size: 0.98rem; }
  .sv-rij.totaal .bedrag { font-size: 1.5rem; }
  .co-voet-inner { gap: 1rem; flex-direction: column; }
}

/* ══ MOBIELE CORRECTIE (audit) ═══════════════════════════════════════
   Drie invoervelden naast elkaar is op 375px zo'n 110px per veld, en dit
   is net het scherm waarop mensen afrekenen. */
@media (max-width: 600px) {
  .veld-rij.drie { grid-template-columns: 1fr; }
}

/* ── De koppeling naar WooCommerce ────────────────────────────────────
   WooCommerce levert zijn eigen markup voor de velden, de totalen en de
   betaalmethodes. Hieronder krijgt die de opmaak van .veld, .sv-rij en
   .keuze uit v52, zodat de checkout eruitziet als checkout.html zonder dat
   we Woo's formulierlogica hoeven na te bouwen. */

/* Velden. Woo zet ze in <p class="form-row">, v52 in <div class="veld">. */
.woocommerce-checkout .form-row {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.9rem;
}
.woocommerce-checkout .form-row label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mauve);
  margin-bottom: 0.35rem;
}
.woocommerce-checkout .form-row .required { color: var(--wine); text-decoration: none; }
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row .select2-container .select2-selection {
  width: 100%;
  padding: 0.8rem 0.9rem;
  border: 1px solid var(--lijn);
  border-radius: 8px;
  background: var(--wit);
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--noir);
  box-sizing: border-box;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(200, 169, 126, 0.18);
}

/* Country en State worden door selectWoo vervangen door een select2-widget, en
   die brengt eigen maten mee die niet met onze padding samengaan:

     .select2-selection--single      height: 28px  box-sizing: border-box
     .select2-selection__rendered    line-height: 28px  padding-left: 8px

   Onze regel hierboven zet daar padding: 0.8rem 0.9rem overheen. Met een vaste
   hoogte van 28px en border-box blijft er dan nog geen halve pixel contentruimte
   over, terwijl de tekst met een line-height van 28px gewoon zijn eigen hoogte
   houdt. Die tekst zakt daardoor onder de rand uit. De tekstvelden hebben geen
   vaste hoogte en groeien wel met de padding mee, en die klopten daarom wel.

   Dus: de vaste hoogte eraf en de tekst laten meelopen met de padding. De
   line-height staat bewust op inherit en niet op een getal. Hij komt dan uit
   body, waar 1.6 staat, en dat is precies wat de tekstvelden ook krijgen via
   de `font: inherit` in base.css. Zo is de widget even hoog als het veld
   ernaast, ook als die 1.6 ooit verandert.

   De padding-left van select2 moet er ook af, anders staat de tekst 8px verder
   naar binnen dan bij de tekstvelden ernaast. De negatieve margin van select2
   trok het veld bovendien 4px omhoog ten opzichte van de rij. */
.woocommerce-checkout .form-row .select2-container .select2-selection--single {
  height: auto;
  margin: 0;
}
.woocommerce-checkout .form-row .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: inherit;
  padding-left: 0;
  padding-right: 1.4rem;
  color: var(--noir);
}
.woocommerce-checkout .form-row .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  top: 0;
  right: 0.55rem;
}

/* Twee velden naast elkaar, zoals .veld-rij.twee in v52. */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: calc(50% - 0.45rem);
  display: inline-flex;
  vertical-align: top;
}
.woocommerce-checkout .form-row-first { margin-right: 0.9rem; }

@media (max-width: 600px) {
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last { width: 100%; margin-right: 0; }
}

/* De koppen boven de blokken, zoals .co-sectie h2. */
.woocommerce-checkout .co-sectie h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: 1.5rem;
  color: var(--noir);
  margin-bottom: 1rem;
}

/* De verzendmethodes, zoals .keuzelijst en .keuze in v52. */
.woocommerce-checkout #shipping_method,
.tgp-winkelwagen #shipping_method {
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-checkout #shipping_method li,
.tgp-winkelwagen #shipping_method li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 0;
}

/* De betaalmethodes, zelfde vorm als een verzendkeuze. */
.wc_payment_methods {
  list-style: none;
  margin: 1.2rem 0 0;
  padding: 0;
  border-top: 1px solid var(--lijn-zacht);
}
.wc_payment_methods li {
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--lijn-zacht);
}
.wc_payment_methods label {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--noir);
  cursor: pointer;
}
.wc_payment_methods .payment_box {
  font-size: 0.78rem;
  color: var(--mauve);
  margin-top: 0.5rem;
}
.wc_payment_methods .payment_box p:last-child { margin-bottom: 0; }

/* De verzendregel in de totalen komt uit een <tr> van Woo. */
.samenvatting .woocommerce-shipping-totals,
.samenvatting .woocommerce-shipping-totals th,
.samenvatting .woocommerce-shipping-totals td,
.samenvatting .shop_table {
  display: block;
  width: 100%;
  border: none;
  padding: 0;
  text-align: left;
}
.samenvatting .woocommerce-shipping-totals {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.85rem;
  padding: 0.5rem 0;
}
.samenvatting .woocommerce-shipping-destination { font-size: 0.72rem; color: var(--mauve); }

/* De winkelwagenpagina leent de opmaak van de checkout. */
.tgp-wagen-aantal {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 0.5rem;
}
.tgp-wagen-aantal .quantity input {
  width: 4rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--lijn);
  border-radius: 6px;
  font-family: var(--font-body);
}
.tgp-wagen-acties {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.6rem;
}
.tgp-wagen-bijwerken {
  background: transparent;
  border: 1px solid var(--lijn);
  border-radius: 100px;
  padding: 0.6rem 1.2rem;
  font-family: var(--font-body);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mauve);
  cursor: pointer;
}
.tgp-wagen-bijwerken:hover { border-color: var(--gold); color: var(--wine); }

.wc-proceed-to-checkout { margin-top: 1.2rem; }
.wc-proceed-to-checkout .checkout-button {
  display: block;
  text-align: center;
  text-decoration: none;
  background: var(--gold);
  color: var(--noir);
  border-radius: 8px;
  padding: 0.95rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.wc-proceed-to-checkout .checkout-button:hover { background: var(--wine); color: var(--cream); }

/* Meldingen van WooCommerce, in de stijl van de site. */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  list-style: none;
  border: 1px solid var(--lijn);
  border-left: 3px solid var(--gold);
  border-radius: 8px;
  background: var(--cream);
  padding: 0.9rem 1.1rem;
  margin: 0 auto 1.4rem;
  max-width: 1180px;
  font-size: 0.85rem;
}
.woocommerce-error { border-left-color: var(--wine); }

/* ── De bedankpagina ──────────────────────────────────────────────────
   Bestond niet in v52. Leent van de ordersamenvatting. */
.co-bedankt {
  max-width: 640px;
  margin: 0 auto;
  padding: 3.5rem 5% 5rem;
  text-align: center;
}
.co-bedankt h1 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(2rem, 5vw, 3rem);
  color: var(--noir);
  margin-bottom: 0.8rem;
}
.co-bedankt-lead {
  font-size: 0.9rem;
  color: var(--mauve);
  margin-bottom: 2.2rem;
}
.co-bedankt-kaart { position: static; text-align: left; }
.co-bedankt-kaart .sv-totalen { border-top: none; padding-top: 0; }
.co-bedankt-kaart .sv-regels { margin-top: 1.4rem; }
.co-bedankt-acties { margin-top: 2rem; }
.co-bedankt-acties .pay-knop { display: inline-block; width: auto; padding: 0.9rem 2.4rem; text-decoration: none; }

/* ── Mobiele tikdoelen op 44x44 ──────────────────────────────────────
   Zelfde richtlijn en zelfde vorm als het bestaande blok in cart.css.
   Alles staat in een mediaquery, dus de desktopweergave verandert niet.
   Zie mobiel-audit.md voor de meting per element. */
@media (max-width: 600px) {
  .tgp-wagen-aantal .quantity input {
    min-height: 44px;
  }

  .tgp-wagen-bijwerken {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ── Het kortingsveld ────────────────────────────────────────────────
   .korting is een grid van 1fr auto: invoerveld naast de knop. Zonder
   min-width: 0 mag een grid-item niet kleiner worden dan zijn inhoud, en
   dan wint de knop op een smal scherm. Dit is dezelfde ingreep die
   .email-signup input in footer.css al had. */
@media (max-width: 600px) {
  .korting input {
    min-width: 0;
  }
}

/* ── 16px op alle invoervelden van een touchscreen ───────────────────
   Safari op iOS zoomt bij focus in op elk invoerveld met een lettergrootte
   onder 16px, en zoomt daarna niet vanzelf terug. Je staat dan met een
   uitvergrote checkout die je zelf moet terugknijpen, bij elk volgend veld
   opnieuw. Gemeten op 22 augustus 2026: alle elf velden van de checkout
   stonden op 14,4px (0,9rem).

   De query is breder dan de gebruikelijke 600px van dit theme. Zoomen doet
   iOS op elk formaat, dus ook op een iPad in liggende stand, en daar is
   600px te smal voor. `(hover: none) and (pointer: coarse)` is precies de
   groep waar het om gaat: apparaten die je aanraakt in plaats van aanwijst.
   De 600px blijft ernaast staan voor smalle vensters op een gewone muis, en
   voor browsers die de pointer-query niet ondersteunen.

   Alleen de lettergrootte gaat omhoog. De velden zijn al 51px hoog, dus de
   layout schuift niet. */
@media (max-width: 600px), (hover: none) and (pointer: coarse) {
  .woocommerce-checkout .form-row input[type="text"],
  .woocommerce-checkout .form-row input[type="email"],
  .woocommerce-checkout .form-row input[type="tel"],
  .woocommerce-checkout .form-row input[type="password"],
  .woocommerce-checkout .form-row input[type="number"],
  .woocommerce-checkout .form-row textarea,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row .select2-container .select2-selection,
  .woocommerce-checkout .form-row .select2-container--default .select2-selection--single .select2-selection__rendered,
  .veld input,
  .veld select,
  .korting input,
  .checkout_coupon input,
  .shipping-calculator-form input,
  .shipping-calculator-form select,
  .tgp-wagen-aantal .quantity input {
    font-size: 16px;
  }

  /* Het zoekveld in de landen- en provincielijst van select2 staat in een
     dropdown die aan <body> hangt, dus buiten .woocommerce-checkout. */
  .select2-container .select2-search--dropdown .select2-search__field {
    font-size: 16px;
  }
}

/* ── De tikdoelen die na de vorige ronde nog over waren ──────────────
   Gemeten op de live checkout op 375px, 22 augustus 2026. Zelfde vorm als
   de bestaande blokken: wat een eigen box mag hebben wordt hoger, wat in
   een lopende zin staat krijgt een onzichtbaar tikvlak via ::before, zodat
   de tekst niet uit elkaar geduwd wordt. */
@media (max-width: 600px) {
  /* "Click here to enter your code", 164x19,5px. Staat op een eigen regel
     in de meldingsbalk, dus die mag gewoon hoger. */
  .woocommerce-form-coupon-toggle a.showcoupon,
  a.showcoupon {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* De twee links staan midden in een lopende zin boven de knop. Een hogere
     box zou de regelafstand van die zin oprekken, dus hier het tikvlak. */
  .woocommerce-terms-and-conditions-link,
  .woocommerce-privacy-policy-link,
  a.restore-item {
    position: relative;
  }

  .woocommerce-terms-and-conditions-link::before,
  .woocommerce-privacy-policy-link::before,
  a.restore-item::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 44px;
    min-width: 44px;
  }

  /* De vinkjes en de radioknoppen van de betaalmethode zijn 13x13. Een
     ::before helpt hier niet: een <input> is een vervangen element en toont
     geen pseudo-elementen. Dus het vakje zelf groter, en het label eromheen
     op 44px. Bij het label werkt dat sowieso beter, want een tik op het
     label schakelt het vakje net zo goed. */
  .woocommerce-checkout input[type="checkbox"],
  .woocommerce-checkout input[type="radio"],
  .tgp-winkelwagen input[type="checkbox"] {
    width: 20px;
    height: 20px;
  }

  .wc_payment_methods label,
  .woocommerce-form__label-for-checkbox,
  label[for="ship-to-different-address-checkbox"] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 44px;
  }

  /* De tekst naast een vinkje mag afbreken, het vakje niet krimpen. */
  .woocommerce-form__label-for-checkbox input[type="checkbox"],
  .wc_payment_methods label input {
    flex: 0 0 auto;
  }

  .woocommerce-terms-and-conditions-checkbox-text {
    flex: 1 1 auto;
  }
}

/* ── Het kortingsformulier van WooCommerce ───────────────────────────
   Klik je "Click here to enter your code", dan schuift .checkout_coupon
   open. Dat is Woo's eigen formulier en het theme raakte het nooit aan:
   invoerveld en knop stonden van rand tot rand zonder marge, en de knop was
   de kale grijze van 30px hoog. Het theme had wel opmaak voor .korting,
   maar die klasse rendert op deze pagina niet. Hier krijgt het formulier
   van Woo dezelfde opmaak als .korting. */
.woocommerce-form-coupon-toggle,
form.checkout_coupon {
  padding-left: 1.4rem;
  padding-right: 1.4rem;
  box-sizing: border-box;
}

form.checkout_coupon {
  margin: 0 0 1.6rem;
}

form.checkout_coupon p {
  margin: 0 0 0.6rem;
}

form.checkout_coupon .form-row {
  width: 100%;
  margin: 0 0 0.6rem;
  padding: 0;
  float: none;
}

form.checkout_coupon input[type="text"] {
  width: 100%;
  padding: 0.8rem 0.9rem;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 0.85rem;
  color: var(--noir);
  background: var(--wit);
  border: 1px solid var(--lijn);
  border-radius: 8px;
  box-sizing: border-box;
}

form.checkout_coupon input[type="text"]::placeholder { color: var(--dusty); }

form.checkout_coupon input[type="text"]:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(200, 169, 126, 0.18);
}

form.checkout_coupon button {
  padding: 0 1.4rem;
  min-height: 44px;
  background: transparent;
  border: 1px solid var(--mauve);
  color: var(--mauve);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.25s;
}

form.checkout_coupon button:hover { background: var(--mauve); color: var(--cream); }

/* Op een scherm met ruimte staan veld en knop naast elkaar, net als
   .korting. Daaronder onder elkaar, want 375px is te smal voor allebei. */
@media (min-width: 601px) {
  form.checkout_coupon {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.6rem;
    align-items: start;
  }

  form.checkout_coupon p:first-of-type { grid-column: 1 / -1; }

  form.checkout_coupon .form-row { margin-bottom: 0; }

  form.checkout_coupon input[type="text"] { min-width: 0; }
}
