/* =====================================================================
   TOVERSLEUTEL — Design system
   Fredoka (koppen) + Nunito Sans (tekst). Speels snoepwinkel-thema.
   ===================================================================== */

:root{
  /* merk */
  --tv-blue:#21aada;      --tv-blue-dark:#1a97c4;   --tv-blue-soft:#5ec8ea;
  --tv-pink:#fc4e7b;      --tv-pink-dark:#e13a67;   --tv-pink-soft:#ff86a6;
  --tv-yellow:#ffed00;    --tv-yellow-dark:#e0b400;
  --tv-green:#2bab6e;

  /* inkt & tekst */
  --tv-ink:#1b3a4b;       --tv-ink-2:#12384a;
  --tv-muted:#5d7885;     --tv-muted-2:#8aa6b3;     --tv-muted-3:#b8c8d0;

  /* lijnen & vlakken */
  --tv-line:#eef4f7;      --tv-line-2:#e3f0f6;      --tv-line-3:#d4e3eb;
  --tv-bg:#eaf4f9;        --tv-surface:#f6fbfe;     --tv-white:#fff;

  /* tints voor kaarten/categorieën */
  --tint-pink:#ffe6ee;    --tint-blue:#e3f4fb;      --tint-yellow:#fff7bf;
  --tint-green:#e4f7ee;   --tint-choco:#efe6d6;     --tint-orange:#ffeede;

  --font-head:'Fredoka',system-ui,sans-serif;
  --font-body:'Nunito Sans',system-ui,-apple-system,sans-serif;

  --radius-sm:12px; --radius:16px; --radius-lg:22px; --radius-xl:28px;
  --shadow-card:0 22px 40px -18px rgba(27,58,75,.35);
  --shadow-btn:0 14px 26px -10px rgba(33,170,218,.8);
  --wrap:1440px;
  --gutter:40px;
  --tv-max:1360px; /* buitenmaat van de leesbare contentkolom */
}

/* ---------- reset / basis ---------- */
*,*::before,*::after{box-sizing:border-box;}
body.toversleutel{
  margin:0;
  font-family:var(--font-body);
  color:var(--tv-ink);
  background:
    radial-gradient(1200px 600px at 15% 0%, #d7edf7 0%, transparent 55%),
    radial-gradient(1000px 600px at 90% 20%, #ffe6ee 0%, transparent 50%),
    var(--tv-bg);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
body.toversleutel a{color:var(--tv-blue);}
img{max-width:100%;height:auto;display:block;}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--tv-ink);font-weight:600;margin:0;}
button{font-family:var(--font-body);}

.tv-wrap{max-width:1360px;margin:0 auto;padding:0 40px;}
/* Gecentreerde contentkolom — zelfde patroon als de header. */
.tv-container{width:100%;max-width:100%;margin:0;padding:0;background:var(--tv-white);border-radius:0;overflow:visible;box-shadow:none;}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes floaty2{0%,100%{transform:translateY(0)}50%{transform:translateY(-22px)}}

/* ---------- knoppen ---------- */
.tv-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  text-decoration:none;border:none;cursor:pointer;font-weight:800;font-size:16px;
  padding:16px 30px;border-radius:var(--radius);transition:transform .18s,background .18s;line-height:1;}
body.toversleutel .tv-btn--primary{background:var(--tv-blue);color:#fff;box-shadow:var(--shadow-btn);}
.tv-btn--primary:hover{transform:translateY(-3px);}
body.toversleutel .tv-btn--pink{background:var(--tv-pink);color:#fff;box-shadow:0 14px 26px -10px rgba(252,78,123,.8);}
.tv-btn--pink:hover{transform:translateY(-3px);}
body.toversleutel .tv-btn--ghost{background:#fff;border:2px solid var(--tv-line-2);color:var(--tv-ink);padding:14px 26px;}
body.toversleutel .tv-btn--ghost:hover{border-color:var(--tv-blue);color:var(--tv-blue);}
body.toversleutel .tv-btn--yellow{background:var(--tv-yellow);color:var(--tv-ink);}

.tv-pill{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:13px;
  padding:8px 16px;border-radius:999px;}
.tv-pill--yellow{background:var(--tv-yellow);color:var(--tv-ink);}
.tv-eyebrow{color:var(--tv-pink);font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.5px;}

.tv-section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;gap:16px;}
.tv-section-head h2{font-size:30px;}
.tv-link-more{color:var(--tv-blue);font-weight:800;font-size:15px;text-decoration:none;white-space:nowrap;}

/* =====================================================================
   HEADER
   ===================================================================== */
.tv-topbar{background:linear-gradient(90deg,var(--tv-pink),#ff7aa0);color:#fff;
  font-weight:700;font-size:14px;text-align:center;padding:9px 20px;
  display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;}
.tv-topbar .sep{opacity:.55;}

.tv-header{background:#fff;position:relative;z-index:20;}
.tv-header__main{max-width:var(--tv-max,1360px);margin:0 auto;padding:20px var(--gutter);display:flex;align-items:center;gap:36px;}
.tv-logo{flex-shrink:0;}
.tv-logo img{height:52px;width:auto;}
.tv-search{flex:1;position:relative;}
.tv-search input{width:100%;border:2px solid var(--tv-line-2);background:var(--tv-surface);
  border-radius:999px;padding:15px 22px 15px 52px;font-family:var(--font-body);font-size:15px;
  color:var(--tv-ink);outline:none;font-weight:600;}
.tv-search input:focus{border-color:var(--tv-blue);}
.tv-search svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;}
/* FiboSearch (live search) in de header — zelfde pill-look als het eigen zoekveld */
body.toversleutel .tv-search--fibo .dgwt-wcas-search-wrapp{max-width:none;margin:0;}
body.toversleutel .tv-search--fibo .dgwt-wcas-sf-wrapp{background:transparent;box-shadow:none;}
body.toversleutel .tv-search--fibo .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input{
  width:100%;border:2px solid var(--tv-line-2)!important;background:var(--tv-surface)!important;
  border-radius:999px!important;padding:15px 22px 15px 52px!important;height:auto!important;min-height:0!important;
  font-family:var(--font-body)!important;font-size:15px!important;font-weight:600!important;line-height:1.4!important;
  color:var(--tv-ink)!important;outline:none;box-shadow:none!important;}
body.toversleutel .tv-search--fibo .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input:focus{
  border-color:var(--tv-blue)!important;}
/* plugin-iconen/knop weg — eigen blauwe loep links (zoals ontwerp) */
body.toversleutel .tv-search--fibo .dgwt-wcas-search-submit,
body.toversleutel .tv-search--fibo .dgwt-wcas-ico-magnifier,
body.toversleutel .tv-search--fibo .dgwt-wcas-search-icon{display:none!important;}
.tv-search--fibo{position:relative;}
.tv-search--fibo::before{content:"";position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:20px;height:20px;z-index:2;pointer-events:none;background:var(--tv-blue);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='m20 20-3.2-3.2' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='m20 20-3.2-3.2' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;}
body.toversleutel .tv-search--fibo .dgwt-wcas-preloader{right:16px;}
body.toversleutel .tv-search--fibo .dgwt-wcas-voice-search{right:14px;}
/* suggestiepaneel in merkstijl */
body.toversleutel .dgwt-wcas-suggestions-wrapp{border:1px solid var(--tv-line)!important;border-radius:18px!important;
  box-shadow:0 30px 70px -24px rgba(27,58,75,.4)!important;overflow:hidden;font-family:var(--font-body);}
body.toversleutel .dgwt-wcas-suggestion:hover,
body.toversleutel .dgwt-wcas-suggestion.dgwt-wcas-suggestion-selected{background:var(--tv-surface)!important;}
/* suggestierij: afgeronde thumb, naam in inkt, prijs rechts in Fredoka */
body.toversleutel .dgwt-wcas-suggestion{padding:10px 16px!important;}
body.toversleutel .dgwt-wcas-si{width:52px!important;height:52px!important;flex:0 0 52px!important;
  border-radius:12px;overflow:hidden;background:var(--tint-blue);}
body.toversleutel .dgwt-wcas-si img{width:100%!important;height:100%!important;max-width:none!important;
  max-height:none!important;object-fit:cover;border-radius:12px;}
body.toversleutel .dgwt-wcas-st{color:var(--tv-ink);font-weight:800;font-size:14px;line-height:1.3;}
body.toversleutel .dgwt-wcas-st .dgwt-wcas-st-breadcrumbs,
body.toversleutel .dgwt-wcas-sd{color:var(--tv-muted-2);font-weight:700;font-size:12px;}
/* rij-layout forceren: thumb | titel (rekt) | prijs (vast, nooit afgeknepen) */
body.toversleutel .dgwt-wcas-suggestion{display:flex!important;align-items:center;}
body.toversleutel .dgwt-wcas-content-wrapp{display:flex!important;align-items:center;flex:1 1 auto;min-width:0;gap:12px;}
body.toversleutel .dgwt-wcas-st{flex:1 1 auto;min-width:0;}
body.toversleutel .dgwt-wcas-meta{width:auto!important;max-width:none!important;flex:0 0 auto!important;
  white-space:nowrap!important;text-align:right;margin-left:auto;padding-left:12px;}
body.toversleutel .dgwt-wcas-meta *{white-space:nowrap!important;display:inline;}
body.toversleutel .dgwt-wcas-meta .screen-reader-text{display:none;}
body.toversleutel .dgwt-wcas-sp{color:var(--tv-ink);font-weight:800;}
body.toversleutel .dgwt-wcas-sp .amount,
body.toversleutel .dgwt-wcas-sp .woocommerce-Price-amount{font-family:var(--font-head);font-weight:600;
  font-size:14px;color:var(--tv-ink);white-space:nowrap;}
body.toversleutel .dgwt-wcas-sp del .amount{color:var(--tv-muted-3);font-size:12px;}

.tv-header__actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
/* NB: scope op header — accountpagina-templates gebruiken óók .tv-account als wrapper */
.tv-header a.tv-account{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--tv-ink);
  font-weight:700;font-size:14px;padding:11px 14px;border-radius:14px;}
.tv-header a.tv-account:hover{background:var(--tv-surface);}
body.toversleutel .tv-cart{position:relative;display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;
  font-weight:800;font-size:14px;padding:13px 20px;border-radius:14px;background:var(--tv-blue);
  box-shadow:0 8px 18px -6px rgba(33,170,218,.7);}
.tv-cart:hover{background:var(--tv-blue-dark);}
.tv-cart__count{position:absolute;top:-6px;right:-6px;background:var(--tv-yellow);color:var(--tv-ink);
  font-size:12px;font-weight:800;width:22px;height:22px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;border:2px solid #fff;}

.tv-nav{border-top:1px solid var(--tv-line);position:relative;}
.tv-nav__inner{max-width:var(--tv-max,1360px);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:6px;}
.tv-nav__trigger{display:flex;align-items:center;gap:8px;border:none;cursor:pointer;color:#fff;
  background:var(--tv-pink);font-family:var(--font-body);font-weight:800;font-size:14px;
  padding:15px 20px;border-radius:14px 14px 0 0;transition:background .18s;}
.tv-nav__trigger.is-open{background:var(--tv-pink-dark);}
/* Buiten home sluit de knop niet aan op de hero → ook onderaan rond; open (mega-panel eronder) blijft vlak. */
body.toversleutel:not(.home) .tv-nav__trigger{border-radius:14px;}
body.toversleutel:not(.home) .tv-nav__trigger.is-open{border-radius:14px 14px 0 0;}
.tv-nav a{text-decoration:none;color:var(--tv-ink);font-weight:700;font-size:14px;padding:15px 16px;border-radius:12px;}
.tv-nav a:hover{color:var(--tv-blue);}
.tv-nav a.tv-nav__sale{color:var(--tv-pink);font-weight:800;margin-left:auto;}
.tv-nav__menu-toggle{display:none;}

/* mega menu */
.tv-mega{position:absolute;top:100%;left:0;right:0;z-index:40;display:none;}
.tv-mega.is-open{display:block;}
.tv-mega__inner{max-width:var(--tv-max,1360px);margin:0 auto;padding:0 var(--gutter);}
.tv-mega__panel{background:#fff;border:1px solid var(--tv-line);border-radius:0 20px 20px 20px;
  box-shadow:0 30px 70px -24px rgba(27,58,75,.4);overflow:hidden;
  display:grid;grid-template-columns:260px 1fr 300px;}
.tv-mega__cats{background:var(--tv-surface);padding:16px;border-right:1px solid var(--tv-line);}
.tv-mega__cat{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;
  cursor:pointer;transition:background .15s;color:var(--tv-muted);font-weight:800;font-size:14px;}
.tv-mega__cat:hover,.tv-mega__cat.is-active{background:#fff;color:var(--tv-ink);}
.tv-mega__cat-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tv-mega__cat span.label{flex:1;}
.tv-mega__subs{padding:26px 30px;}
.tv-mega__subs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.tv-mega__subs-head h3{font-size:22px;}
.tv-mega__sub-grid{display:none;grid-template-columns:1fr 1fr;gap:6px 24px;}
.tv-mega__sub-grid.is-active{display:grid;}
.tv-mega__sub-grid a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;
  padding:9px 10px;border-radius:10px;color:var(--tv-muted);font-weight:700;font-size:14px;}
.tv-mega__sub-grid a:hover{background:var(--tv-surface);color:var(--tv-blue);}
.tv-mega__sub-grid .count{color:var(--tv-muted-3);font-size:12px;font-weight:800;}
/* productaanvulling in het paneel: liggende kaartjes onder de subcategorieën */
.tv-mega__prods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;
  padding-top:16px;border-top:1px solid var(--tv-line);}
body.toversleutel a.tv-mega__prod{display:flex;align-items:center;gap:12px;text-decoration:none;
  background:#fff;border:1px solid var(--tv-line);border-radius:14px;padding:10px;
  transition:border-color .15s,box-shadow .15s;}
body.toversleutel a.tv-mega__prod:hover{border-color:var(--tv-blue);
  background:#fff;box-shadow:0 10px 24px -14px rgba(27,58,75,.35);}
.tv-mega__prod-thumb{width:48px;height:48px;flex-shrink:0;border-radius:10px;background-color:var(--tint-blue);
  background-size:cover;background-position:center;}
.tv-mega__prod-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tv-mega__prod-info .name{font-weight:800;color:var(--tv-ink);font-size:13px;line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tv-mega__prod-info .price{font-family:var(--font-head);font-weight:600;font-size:13px;color:var(--tv-blue);}
.tv-mega__promo{padding:22px;}
.tv-mega__promo-card{position:relative;overflow:hidden;height:100%;border-radius:18px;
  background:linear-gradient(150deg,var(--tv-pink),var(--tv-pink-soft));padding:24px;color:#fff;
  display:flex;flex-direction:column;}
.tv-mega__promo-card h4{color:#fff;font-size:20px;margin:14px 0 6px;line-height:1.2;}
.tv-mega__backdrop{position:fixed;inset:0;z-index:30;background:rgba(18,56,74,.28);display:none;}
.tv-mega__backdrop.is-open{display:block;}

/* =====================================================================
   HERO (homepage)
   ===================================================================== */
.tv-hero{position:relative;padding:56px var(--gutter) 64px;background:linear-gradient(180deg,#f6fbfe 0%,#fff 100%);overflow:hidden;}
.tv-hero__blob{position:absolute;border-radius:999px;pointer-events:none;}
.tv-hero__blob--1{width:220px;height:220px;background:rgba(255,237,0,.35);top:-60px;right:180px;animation:floaty 6s ease-in-out infinite;}
.tv-hero__blob--2{width:120px;height:120px;background:rgba(252,78,123,.18);bottom:20px;right:60px;animation:floaty2 7s ease-in-out infinite;}
.tv-hero__grid{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center;}
.tv-hero h1{font-size:58px;line-height:1.05;margin:0 0 20px;}
.tv-hero h1 .accent{color:var(--tv-pink);}
.tv-hero p{font-size:18px;line-height:1.6;color:var(--tv-muted);margin:0 0 30px;max-width:440px;}
.tv-hero__cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.tv-hero__proof{display:flex;align-items:center;gap:22px;margin-top:32px;flex-wrap:wrap;}
.tv-hero__proof .rating{display:flex;align-items:center;gap:7px;}
.tv-hero__proof .rating b{font-weight:800;color:var(--tv-ink);font-size:15px;}
.tv-hero__proof .rating span{color:var(--tv-muted-2);font-size:14px;font-weight:600;}
.tv-hero__proof .divider{width:1px;height:22px;background:var(--tv-line-2);}
.tv-hero__proof .ship{color:var(--tv-muted);font-size:14px;font-weight:700;}
.tv-hero__media{position:relative;}
.tv-hero__img{aspect-ratio:4/3;border-radius:28px;background-color:#fff;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.5) 0 18px,rgba(255,255,255,0) 18px 36px);
  display:flex;align-items:center;justify-content:center;box-shadow:0 30px 60px -24px rgba(252,78,123,.5);
  background-size:contain;background-position:center;background-repeat:no-repeat;}
.tv-hero__media[data-hero-url]{cursor:pointer;}
/* crossfade-laag voor de hero-rotatie (JS maakt dit element aan) */
.tv-hero__img{position:relative;overflow:hidden;}
.tv-hero__img .tv-hero__img-layer{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#fff;
  opacity:0;transition:opacity .7s ease;}
/* crossfade-lagen in de floater (JS maakt deze elementen aan) */
.tv-hero__thumb-layer{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background-size:cover;background-position:center;opacity:0;transition:opacity .45s ease;}
.tv-hero__info-ghost{position:absolute;background:#fff;pointer-events:none;opacity:1;transition:opacity .45s ease;}
.tv-hero__img .ph{font-family:ui-monospace,Menlo,monospace;font-size:13px;letter-spacing:1px;color:rgba(27,58,75,.4);text-transform:uppercase;}
.tv-hero__floater{position:absolute;bottom:-22px;left:-26px;background:#fff;border-radius:18px;padding:14px 18px;
  display:flex;align-items:center;gap:12px;box-shadow:0 20px 40px -16px rgba(27,58,75,.4);animation:floaty 5s ease-in-out infinite;}
.tv-hero__floater .thumb{width:44px;height:44px;border-radius:12px;background:var(--tint-blue);}
.tv-hero__floater .name{font-family:var(--font-head);font-weight:600;color:var(--tv-ink);font-size:15px;}
.tv-hero__floater .price{color:var(--tv-pink);font-weight:800;font-size:14px;}
.tv-hero__floater .unit{color:var(--tv-pink);font-weight:700;font-size:12px;line-height:1.2;}
.tv-hero__floater .unit:empty{display:none;}

/* =====================================================================
   CATEGORIEËN raster (homepage)
   ===================================================================== */
.tv-block{padding:44px var(--gutter) 8px;}
.tv-block--tight{padding:12px var(--gutter) 8px;}
.tv-block--last{padding-bottom:60px;}
/* categorie-slider: horizontaal scrollend met snap + pijlknoppen */
.tv-cats{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:6px;}
.tv-cats::-webkit-scrollbar{display:none;}
.tv-cats{cursor:grab;}
.tv-cats.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none;}
.tv-cats .tv-cat-card{flex:0 0 calc((100% - 5 * 16px) / 6);scroll-snap-align:start;
  user-select:none;-webkit-user-drag:none;}
.tv-cats-nav{display:flex;align-items:center;gap:10px;}
body.toversleutel .tv-cats-nav__btn{width:38px;height:38px;border-radius:999px;border:2px solid var(--tv-line-2);
  background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--tv-blue);padding:0;transition:border-color .15s,opacity .15s;}
body.toversleutel .tv-cats-nav__btn:hover{border-color:var(--tv-blue);}
body.toversleutel .tv-cats-nav__btn:disabled{opacity:.35;cursor:default;border-color:var(--tv-line-2);}
.tv-cats-nav__btn svg{width:18px;height:18px;}
.tv-cat-card{text-decoration:none;border-radius:var(--radius-lg);padding:22px 18px;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;transition:transform .2s ease;}
.tv-cat-card:hover{transform:translateY(-6px);}
.tv-cat-card__img{width:64px;height:64px;border-radius:999px;background:rgba(255,255,255,.7);
  display:flex;align-items:center;justify-content:center;overflow:hidden;background-size:cover;background-position:center;}
.tv-cat-card__name{font-family:var(--font-head);font-weight:500;font-size:16px;color:var(--tv-ink);}
.tv-cat-card__count{font-size:12px;color:var(--tv-muted);font-weight:700;}

/* =====================================================================
   PRODUCTKAART
   ===================================================================== */
.tv-products{display:grid;gap:18px;}
.tv-products--5{grid-template-columns:repeat(5,1fr);}
.tv-products--4{grid-template-columns:repeat(4,1fr);}
.tv-card{background:#fff;border:1px solid var(--tv-line);border-radius:var(--radius-lg);overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease;display:flex;flex-direction:column;position:relative;}
.tv-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card);}
.tv-card__media{position:relative;aspect-ratio:1/1;background-color:var(--tint-blue);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 14px,rgba(255,255,255,0) 14px 28px);
  display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;}
.tv-card__media .ph{font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.5px;color:rgba(27,58,75,.4);text-transform:uppercase;}
.tv-card__badge{position:absolute;top:12px;left:12px;background:var(--tv-pink);color:#fff;
  font-weight:800;font-size:12px;padding:5px 11px;border-radius:999px;z-index:2;}
.tv-card__badge--blue{background:var(--tv-blue);}
.tv-card__body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1;}
.tv-card__tag{font-size:12px;font-weight:800;color:var(--tv-blue);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;}
.tv-card__title{font-family:var(--font-head);font-weight:500;font-size:17px;color:var(--tv-ink);line-height:1.25;margin-bottom:8px;}
.tv-card__title a{color:inherit;text-decoration:none;}
.tv-card__stars{display:flex;align-items:center;gap:6px;margin-bottom:14px;}
.tv-card__stars .reviews{font-size:12px;font-weight:700;color:var(--tv-muted-2);margin-left:2px;}
.tv-card__foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;}
.tv-card__prices{display:flex;flex-direction:column;}
.tv-card__old{font-size:13px;color:var(--tv-muted-3);text-decoration:line-through;font-weight:700;}
.tv-card__price{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);line-height:1.1;}
/* Verpakkingseenheid / gewicht dat bij de prijs hoort (zoals op de live site). */
.tv-card__unit{font-size:12.5px;font-weight:700;color:var(--tv-pink);line-height:1.2;margin-top:2px;}
.tv-card__add{border:none;background:var(--tv-blue);color:#fff;width:46px;height:46px;border-radius:14px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 16px -6px rgba(33,170,218,.7);
  transition:background .18s;text-decoration:none;}
.tv-card__add:hover{background:var(--tv-pink);}
.tv-stars{display:flex;gap:2px;}

/* =====================================================================
   PROMO BANNERS
   ===================================================================== */
.tv-promos{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tv-promo{position:relative;overflow:hidden;border-radius:26px;padding:38px 40px;color:#fff;}
.tv-promo--pink{background:linear-gradient(120deg,var(--tv-pink),var(--tv-pink-soft));}
.tv-promo--blue{background:linear-gradient(120deg,var(--tv-blue),var(--tv-blue-soft));}
.tv-promo__blob{position:absolute;border-radius:999px;}
.tv-promo h3{color:#fff;font-size:28px;margin:16px 0 8px;}
.tv-promo p{margin:0 0 20px;font-size:15px;opacity:.92;max-width:280px;}
.tv-promo .tv-pill{background:rgba(255,255,255,.22);color:#fff;}
.tv-promo__link{text-decoration:none;background:#fff;color:var(--tv-pink);font-weight:800;font-size:15px;
  padding:13px 24px;border-radius:14px;display:inline-block;position:relative;}
.tv-promo--blue .tv-promo__link{background:var(--tv-yellow);color:var(--tv-ink);}

/* =====================================================================
   FOOTER
   ===================================================================== */
/* witte border-top = ademruimte tussen content en USP-band (full-bleed veilig) */
.tv-usps{background:#e3f4fb;padding:34px 0;border-top:56px solid #fff;}
.tv-usps__inner{max-width:var(--tv-max,1360px);margin:0 auto;padding:0 var(--gutter);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.tv-usp{display:flex;align-items:center;gap:16px;}
.tv-usp__ico{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tv-usp__t{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);}
.tv-usp__s{font-size:13px;color:var(--tv-muted);}
.tv-footer{background:var(--tv-surface);color:var(--tv-muted);}
.tv-footer__cols{max-width:var(--tv-max,1360px);margin:0 auto;padding:48px var(--gutter) 32px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px;}
.tv-footer__cols img{height:44px;margin-bottom:18px;}
.tv-footer__cols p{font-size:14px;line-height:1.7;margin:0 0 18px;max-width:280px;}
.tv-footer__col-title{font-family:var(--font-head);font-weight:600;color:var(--tv-ink);font-size:16px;margin-bottom:16px;}
.tv-footer__links{display:flex;flex-direction:column;gap:11px;font-size:14px;}
.tv-footer__links a{color:var(--tv-muted);text-decoration:none;}
.tv-footer__links a:hover{color:var(--tv-blue);}
.tv-socials{display:flex;gap:10px;}
.tv-socials a{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.tv-news{display:flex;gap:8px;}
.tv-news input{flex:1;min-width:0;border:2px solid var(--tv-line-2);border-radius:12px;padding:11px 14px;
  font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--tv-ink);outline:none;background:#fff;}
.tv-news button{border:none;background:var(--tv-blue);color:#fff;font-family:var(--font-body);font-weight:800;
  font-size:14px;padding:0 18px;border-radius:12px;cursor:pointer;}
/* Nieuwsbrief als Gravity Forms (form 2): GF-markup platgeslagen tot dezelfde inline-form — veld links, knop rechts.
   Labels alleen voor screenreaders (placeholder in GF instellen). !important tegen gravity-theme-inline-styles. */
.tv-news--gf{display:block;}
.tv-news--gf .gform_wrapper{margin:0;}
.tv-news--gf .gform_wrapper form{display:flex;gap:8px;align-items:stretch;}
.tv-news--gf .gform_wrapper .gform-body,
.tv-news--gf .gform_wrapper .gform_body{flex:1;min-width:0;}
/* GF ≥2.9: submit is een veld (.gfield--type-submit) ín .gform_fields → fields = flex-rij, veld rekt, knop rekt mee */
.tv-news--gf .gform_wrapper .gform_fields{display:flex!important;flex-wrap:nowrap;align-items:stretch;grid-gap:0;gap:8px;}
.tv-news--gf .gform_wrapper .gfield{margin:0;padding:0;flex:1 1 auto;min-width:0;}
.tv-news--gf .gform_wrapper .gfield.gfield--type-submit{flex:0 0 auto;display:flex;align-items:stretch;}
body.toversleutel .tv-news--gf .gform_wrapper.gravity-theme .gfield--type-submit button,
body.toversleutel .tv-news--gf .gform_wrapper.gravity-theme .gfield--type-submit input[type=submit]{height:100%!important;}
.tv-news--gf .gform_wrapper .gfield_label,
.tv-news--gf .gform_wrapper .gfield_description:not(.validation_message):not(.gfield_validation_message){
  position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0;}
.tv-news--gf .gform_wrapper .ginput_container{margin:0;}
.tv-news--gf .gform_wrapper input[type=email],
.tv-news--gf .gform_wrapper input[type=text]{
  width:100%;box-sizing:border-box;border:2px solid var(--tv-line-2)!important;border-radius:12px!important;
  padding:11px 14px!important;font-family:var(--font-body)!important;font-size:14px!important;font-weight:600!important;
  color:var(--tv-ink)!important;background:#fff!important;outline:none;line-height:1.3!important;min-height:0!important;}
.tv-news--gf .gform_wrapper input[type=email]:focus,
.tv-news--gf .gform_wrapper input[type=text]:focus{border-color:var(--tv-blue)!important;}
.tv-news--gf .gform_wrapper .gform_footer{margin:0!important;padding:0!important;flex:0 0 auto;display:flex;align-items:stretch;}
body.toversleutel .tv-news--gf .gform_wrapper .gform_button,
body.toversleutel .tv-news--gf .gform_wrapper .gfield--type-submit button,
body.toversleutel .tv-news--gf .gform_wrapper .gfield--type-submit input[type=submit],
body.toversleutel .tv-news--gf .gform_wrapper .gform_footer input[type=submit],
body.toversleutel .tv-news--gf .gform_wrapper .gform_footer button{
  border:none;background:var(--tv-blue)!important;color:#fff!important;font-family:var(--font-body)!important;
  font-weight:800!important;font-size:14px!important;padding:0 18px!important;height:100%!important;min-height:0!important;
  line-height:1!important;display:flex;align-items:center;align-self:stretch;
  border-radius:12px!important;cursor:pointer;width:auto!important;margin:0!important;box-shadow:none;
  transition:background .18s;}
body.toversleutel .tv-news--gf .gform_wrapper .gform_button:hover,
body.toversleutel .tv-news--gf .gform_wrapper .gfield--type-submit button:hover,
body.toversleutel .tv-news--gf .gform_wrapper .gform_footer input[type=submit]:hover,
body.toversleutel .tv-news--gf .gform_wrapper .gform_footer button:hover{background:var(--tv-blue-dark)!important;}
.tv-news--gf .gform_wrapper .gform_ajax_spinner{display:none!important;}
/* validatie/bevestiging — onder het veld, compact */
.tv-news--gf .gform_wrapper .gfield_error input[type=email]{border-color:var(--tv-pink)!important;}
.tv-news--gf .gform_wrapper .validation_message,
.tv-news--gf .gform_wrapper .gfield_validation_message{color:var(--tv-pink);font-size:12px;font-weight:700;
  background:none;border:none;padding:6px 0 0;margin:0;}
.tv-news--gf .gform_wrapper .gform_validation_errors{display:none;}
.tv-news--gf .gform_wrapper .gform_required_legend{display:none;}
.tv-news--gf .gform_confirmation_message{background:var(--tint-green);border-radius:12px;padding:12px 16px;
  color:var(--tv-ink);font-weight:700;font-size:14px;line-height:1.5;}
/* "Alle producten" in de Winkel-kolom — gewone link, blauw accent */
body.toversleutel .tv-footer__links a.tv-footer__allbtn{color:var(--tv-blue);font-weight:800;}
/* copyright + realisatie-credit: desktop op één regel, mobiel gestapeld */
.tv-footer__copy{display:inline-flex;flex-wrap:wrap;gap:4px 8px;}
.tv-footer__copy > span + span::before{content:"·";margin-right:8px;color:var(--tv-muted-3);}

.tv-footer__bar{border-top:1px solid var(--tv-line-2);}
.tv-footer__bar-inner{max-width:var(--tv-max,1360px);margin:0 auto;padding:18px var(--gutter);display:flex;align-items:center;
  justify-content:space-between;font-size:13px;color:var(--tv-muted-2);gap:16px;flex-wrap:wrap;}
.tv-footer__bar-inner a{color:var(--tv-muted-2);text-decoration:none;}
.tv-footer__legal{display:flex;gap:18px;}

/* =====================================================================
   BREADCRUMB
   ===================================================================== */
.tv-crumbs{font-size:13px;color:var(--tv-muted);font-weight:700;padding:26px var(--gutter) 8px;}
.tv-crumbs a{color:var(--tv-blue);text-decoration:none;}
.tv-crumbs .sep{margin:0 8px;}

/* =====================================================================
   CATEGORIE / SHOP ARCHIEF
   ===================================================================== */
.tv-cat-hero{padding:32px var(--gutter) 28px;background:linear-gradient(120deg,#e3f4fb,#f6fbfe);}
.tv-cat-hero__row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;}
.tv-cat-hero__row > div:first-child{flex:1 1 auto;min-width:0;}
.tv-cat-hero__count{flex-shrink:0;}
.tv-cat-hero h1{font-size:42px;margin:0 0 8px;}
.tv-cat-hero p,.tv-cat-hero__desc{margin:0;color:var(--tv-muted);font-size:16px;max-width:none;line-height:1.6;}
.tv-cat-hero__desc p{max-width:none;margin:0 0 8px;}
.tv-cat-hero__desc > :last-child{margin-bottom:0;}
.tv-cat-hero__desc h2,.tv-cat-hero__desc h3{font-size:18px;margin:8px 0 4px;color:var(--tv-ink);}
.tv-cat-hero__desc ul,.tv-cat-hero__desc ol{margin:0 0 8px;padding-left:20px;}
.tv-cat-hero__desc a{font-weight:800;}
.tv-cat-hero__count{background:#fff;color:var(--tv-ink);font-weight:800;font-size:13px;padding:9px 16px;
  border-radius:999px;box-shadow:0 6px 16px -8px rgba(27,58,75,.3);white-space:nowrap;}

.tv-shop{display:grid;grid-template-columns:264px 1fr;gap:32px;padding:32px var(--gutter) 56px;}
.tv-filters{align-self:start;}
.tv-filters__box{background:var(--tv-surface);border:1px solid var(--tv-line);border-radius:var(--radius-lg);padding:22px;}
.tv-filters__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.tv-filters__head span{font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--tv-ink);}
.tv-filters__clear{font-size:13px;color:var(--tv-pink);font-weight:800;text-decoration:none;}
.tv-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
.tv-chip{background:var(--tv-blue);color:#fff;font-size:12px;font-weight:800;padding:6px 12px;border-radius:999px;}
.tv-filter-group{border-top:1px solid var(--tv-line);padding-top:18px;margin-top:18px;}
.tv-filter-group:first-of-type{margin-top:0;}
.tv-filter-group__title{font-weight:800;color:var(--tv-ink);font-size:14px;margin-bottom:12px;}
.tv-filter-list{display:flex;flex-direction:column;gap:11px;font-size:14px;color:var(--tv-muted);font-weight:600;}
.tv-check{display:flex;align-items:center;gap:10px;cursor:pointer;}
.tv-check__box{width:20px;height:20px;border-radius:7px;border:2px solid var(--tv-line-3);box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.tv-check--on .tv-check__box{background:var(--tv-blue);border-color:var(--tv-blue);}
.tv-check .num{margin-left:auto;color:var(--tv-muted-3);}
/* filters zijn links (werkend) — zelfde look als de checkbox-mock */
body.toversleutel a.tv-check{text-decoration:none;color:var(--tv-muted);font-weight:600;}
body.toversleutel a.tv-check:hover{color:var(--tv-blue);}
body.toversleutel a.tv-check.tv-check--on{color:var(--tv-ink);font-weight:800;}

/* inklapbare groepen + "Bekijk meer" */
.tv-filter-group--collapsible .tv-filter-group__toggle{display:flex;align-items:center;justify-content:space-between;
  width:100%;gap:10px;background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--font-body);font-weight:800;color:var(--tv-ink);font-size:14px;}
.tv-filter-group--collapsible .tv-filter-group__toggle svg{width:16px;height:16px;color:var(--tv-muted-3);
  flex-shrink:0;transition:transform .2s;}
.tv-filter-group--collapsible.is-open .tv-filter-group__toggle svg{transform:rotate(180deg);color:var(--tv-blue);}
.tv-filter-group--collapsible .tv-filter-list{display:none;}
.tv-filter-group--collapsible.is-open .tv-filter-list{display:flex;margin-top:12px;}
.tv-filter-list .tv-check--extra{display:none;}
.tv-filter-list.show-extra .tv-check--extra{display:flex;}
body.toversleutel .tv-filter-more{font-size:13px;font-weight:800;color:var(--tv-blue);text-decoration:none;margin-top:2px;}
body.toversleutel .tv-filter-more:hover{text-decoration:underline;}

/* prijsfilter — dubbele range-slider zoals ontwerp */
.tv-price-filter{margin:0;}
.tv-price-slider{position:relative;height:18px;margin:2px 4px 12px;}
.tv-price-slider__track{position:absolute;left:0;right:0;top:50%;height:6px;transform:translateY(-50%);
  background:var(--tv-line-2);border-radius:999px;}
.tv-price-slider__fill{position:absolute;top:0;bottom:0;background:var(--tv-blue);border-radius:999px;}
.tv-price-slider input[type=range]{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;height:18px;
  margin:0;-webkit-appearance:none;appearance:none;background:none;pointer-events:none;outline:none;}
.tv-price-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;cursor:pointer;
  width:18px;height:18px;border-radius:999px;background:#fff;border:3px solid var(--tv-blue);box-sizing:border-box;
  box-shadow:0 2px 6px -2px rgba(27,58,75,.4);}
.tv-price-slider input[type=range]::-moz-range-thumb{pointer-events:auto;cursor:pointer;
  width:12px;height:12px;border-radius:999px;background:#fff;border:3px solid var(--tv-blue);
  box-shadow:0 2px 6px -2px rgba(27,58,75,.4);}
.tv-price-labels{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:var(--tv-muted);}

.tv-shop__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap;}
.tv-shop__count{color:var(--tv-muted);font-weight:700;font-size:14px;}
/* Sorteren — zoals ontwerp: label los (muted), pill om de waarde, blauwe chevron */
.tv-sort{display:flex;align-items:center;gap:12px;}
.tv-sort > span{color:var(--tv-muted);font-weight:700;font-size:14px;}
body.toversleutel .tv-sort form.woocommerce-ordering{margin:0;display:flex;align-items:center;
  background:var(--tv-surface);border:1px solid var(--tv-line-2);border-radius:12px;padding:0 16px;}
body.toversleutel .tv-sort select,
body.toversleutel .tv-sort form.woocommerce-ordering select.orderby{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;outline:none;cursor:pointer;
  font-family:var(--font-body);font-weight:800;color:var(--tv-ink);font-size:14px;
  padding:11px 26px 11px 0;background-color:transparent;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2321aada' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right center;background-size:16px;}

/* paginering */
.tv-pagination{margin-top:36px;}
.tv-pagination .nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;}
.tv-pagination a,.tv-pagination span{width:42px;height:42px;border-radius:12px;background:var(--tv-surface);
  border:1px solid var(--tv-line-2);display:flex;align-items:center;justify-content:center;text-decoration:none;
  color:var(--tv-ink);font-weight:800;}
.tv-pagination .current{background:var(--tv-blue);color:#fff;border-color:var(--tv-blue);}
.tv-pagination .dots{border:none;background:none;color:var(--tv-muted-3);}
/* categoriebeschrijving (WP-veld) onderaan de categoriepagina */
.tv-cat-desc{padding-top:56px;padding-bottom:64px;background:linear-gradient(120deg,#e3f4fb,#f6fbfe);}
.tv-cat-desc__inner{color:var(--tv-muted);font-size:16px;line-height:1.75;}
.tv-cat-desc__inner > :first-child{margin-top:0;}
.tv-cat-desc__inner > :last-child{margin-bottom:0;}
.tv-cat-desc__inner h2,.tv-cat-desc__inner h3{color:var(--tv-ink);margin:24px 0 8px;}
.tv-cat-desc__inner h2{font-size:26px;}
.tv-cat-desc__inner h3{font-size:20px;}
.tv-cat-desc__inner p,.tv-cat-desc__inner ul,.tv-cat-desc__inner ol{margin:0 0 14px;}
.tv-cat-desc__inner ul,.tv-cat-desc__inner ol{padding-left:22px;}
.tv-cat-desc__inner a{font-weight:800;}

/* =====================================================================
   PRODUCTDETAIL
   ===================================================================== */
.tv-pd{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;padding:24px var(--gutter) 48px;}
.tv-pd__gallery{display:flex;gap:16px;}
.tv-pd__thumbs{display:flex;flex-direction:column;gap:12px;}
.tv-pd__thumb{width:78px;height:78px;border-radius:16px;background-color:var(--tint-pink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;border:2px solid transparent;}
.tv-pd__thumb.is-active{border-color:var(--tv-pink);}
.tv-pd__main-img{flex:1;position:relative;aspect-ratio:1/1;border-radius:26px;background-color:var(--tint-pink);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.5) 0 18px,rgba(255,255,255,0) 18px 36px);
  display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;}
.tv-pd__main-img .badge{position:absolute;top:18px;left:18px;background:var(--tv-pink);color:#fff;font-weight:800;font-size:13px;padding:7px 14px;border-radius:999px;}
.tv-pd__eyebrow{font-size:13px;font-weight:800;color:var(--tv-blue);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;}
.tv-pd h1{font-size:38px;margin:0 0 12px;line-height:1.1;}
.tv-pd__rating{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.tv-pd__rating b{font-weight:800;color:var(--tv-ink);font-size:14px;}
.tv-pd__rating a{color:var(--tv-blue);font-weight:700;font-size:14px;text-decoration:none;}
.tv-pd__price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap;}
.tv-pd__price{font-family:var(--font-head);font-weight:600;font-size:34px;color:var(--tv-ink);}
.tv-pd__old{font-size:16px;color:var(--tv-muted-3);text-decoration:line-through;font-weight:700;}
.tv-pd__unit{font-size:15px;font-weight:700;color:var(--tv-pink);margin:-4px 0 14px;}
.tv-price-from{font-family:var(--font-body,inherit);font-size:.5em;font-weight:800;color:var(--tv-muted);margin-right:2px;}
.tv-pd__unit[hidden]{display:none;}
.tv-pd__save{background:var(--tv-yellow);color:var(--tv-ink);font-weight:800;font-size:13px;padding:5px 12px;border-radius:999px;}
.tv-pd__desc{color:var(--tv-muted);font-size:15px;line-height:1.6;margin:0 0 26px;max-width:460px;}
.tv-pd__label{font-weight:800;color:var(--tv-ink);font-size:14px;margin-bottom:10px;}
.tv-pd__label--choose{color:var(--tv-pink);}
.tv-pd__variants{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px;}
.tv-pd__variant{border:2px solid var(--tv-line-2);color:var(--tv-muted);font-weight:800;font-size:14px;
  padding:11px 20px;border-radius:14px;cursor:pointer;background:#fff;}
.tv-pd__variant.is-active{border-color:var(--tv-blue);background:var(--tv-surface);color:var(--tv-blue);}
.tv-pd__buy{display:flex;gap:12px;align-items:center;margin-bottom:22px;flex-wrap:wrap;}
.tv-qty{display:flex;align-items:center;gap:16px;border:2px solid var(--tv-line-2);border-radius:16px;padding:6px 16px;}
.tv-qty button{border:none;background:none;font-size:22px;color:var(--tv-blue);cursor:pointer;font-weight:800;line-height:1;}
.tv-qty input{width:28px;border:none;text-align:center;font-weight:800;color:var(--tv-ink);font-size:17px;font-family:var(--font-body);outline:none;-moz-appearance:textfield;}
.tv-qty input::-webkit-outer-spin-button,.tv-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.tv-pd__addbtn{flex:1;border:none;background:var(--tv-blue);color:#fff;font-family:var(--font-body);font-weight:800;
  font-size:17px;padding:17px;border-radius:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:var(--shadow-btn);transition:background .18s;min-width:200px;}
.tv-pd__addbtn:hover{background:var(--tv-pink);}
.tv-pd__assur{background:var(--tv-surface);border-radius:18px;padding:18px 22px;display:flex;flex-direction:column;gap:12px;}
.tv-pd__assur div{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--tv-ink);font-weight:700;}

/* tabs */
.tv-tabs{padding:8px var(--gutter) 40px;}
.tv-tabs__nav{display:flex;gap:8px;border-bottom:2px solid var(--tv-line);margin-bottom:26px;flex-wrap:wrap;}
.tv-tabs__tab{font-family:var(--font-head);font-weight:500;font-size:16px;color:var(--tv-muted-2);padding:14px 20px;cursor:pointer;background:none;border:none;margin-bottom:-2px;}
.tv-tabs__tab.is-active{color:var(--tv-blue);border-bottom:3px solid var(--tv-blue);}
.tv-tabs__panel{display:none;}
.tv-tabs__panel.is-active{display:block;}
.tv-tabs__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;}
.tv-tabs__grid .body{color:var(--tv-muted);font-size:15px;line-height:1.75;}
.tv-tabs__grid .body p{margin:0 0 14px;}
.tv-facts{display:flex;gap:24px;margin-top:20px;flex-wrap:wrap;}
.tv-facts b{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);display:block;}
.tv-facts span{font-size:13px;font-weight:700;color:var(--tv-muted);}
.tv-nutri{background:var(--tv-surface);border-radius:18px;padding:22px;}
.tv-nutri__title{font-weight:800;color:var(--tv-ink);font-size:14px;margin-bottom:12px;}
.tv-nutri__list{display:flex;flex-direction:column;gap:10px;font-size:14px;}
.tv-nutri__row{display:flex;justify-content:space-between;gap:16px;color:var(--tv-muted);font-weight:600;border-bottom:1px solid #e9f1f5;padding-bottom:8px;}
.tv-nutri__row:last-child{border-bottom:none;padding-bottom:0;}
.tv-nutri__row b{text-align:right;white-space:nowrap;}

/* marktdeelnemer/fabrikant-tab (GPSR) */
.tv-md{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;}
.tv-md__card{background:var(--tv-surface);border-radius:18px;padding:22px;}
.tv-md__card h4{font-size:17px;margin:0 0 14px;}
.tv-md__row{margin-bottom:11px;font-size:14px;}
.tv-md__row:last-child{margin-bottom:0;}
.tv-md__row .lbl{display:block;font-size:11px;font-weight:800;color:var(--tv-muted-2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;}
.tv-md__row .val{color:var(--tv-ink);font-weight:600;line-height:1.5;}
.tv-md__row .val a{font-weight:700;}
@media (max-width:700px){.tv-md{grid-template-columns:1fr;}}
.tv-nutri__row b{color:var(--tv-ink);font-weight:800;}

/* =====================================================================
   CONTENT / LANDING
   ===================================================================== */
.tv-content-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--tv-blue) 0%,var(--tv-blue-soft) 100%);padding:64px var(--gutter) 72px;color:#fff;}
.tv-content-hero .inner{position:relative;max-width:640px;}
.tv-content-hero h1{color:#fff;font-size:52px;line-height:1.08;margin:0 0 18px;}
.tv-content-hero p{font-size:18px;line-height:1.65;opacity:.95;margin:0;max-width:520px;}
.tv-content-hero .tv-pill{background:rgba(255,255,255,.2);color:#fff;margin-bottom:20px;}
.tv-content-hero__blob{position:absolute;border-radius:999px;}
.tv-intro{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:64px var(--gutter);align-items:center;}
/* intro-variant: afbeelding links, tekst rechts */
.tv-intro--img-links > div:first-child{order:2;}
.tv-intro h2{font-size:36px;margin:8px 0 18px;line-height:1.15;}
.tv-intro p{color:var(--tv-muted);font-size:16px;line-height:1.75;margin:0 0 16px;}
.tv-intro__img{aspect-ratio:5/4;border-radius:28px;background-color:var(--tint-yellow);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.5) 0 18px,rgba(255,255,255,0) 18px 36px);
  display:flex;align-items:center;justify-content:center;box-shadow:0 30px 60px -24px rgba(255,213,0,.6);background-size:cover;background-position:center;}
.tv-values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tv-value{border-radius:24px;padding:32px 28px;}
.tv-value__ico{width:56px;height:56px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.tv-value h3{font-size:21px;margin:0 0 8px;}
.tv-value p{color:var(--tv-muted);font-size:14px;line-height:1.65;margin:0;}
.tv-stats{margin:56px var(--gutter) 56px;border-radius:28px;background:var(--tv-ink-2);padding:48px 40px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;color:#fff;}
.tv-stat b{font-family:var(--font-head);font-weight:600;font-size:44px;color:var(--tv-yellow);line-height:1;display:block;}
.tv-stat span{font-size:15px;color:#cfe3ec;margin-top:8px;font-weight:600;display:block;}
.tv-cta-band{margin:56px var(--gutter) 64px;position:relative;overflow:hidden;border-radius:28px;
  background:linear-gradient(120deg,var(--tv-pink),var(--tv-pink-soft));padding:52px 48px;text-align:center;color:#fff;}
.tv-cta-band h2{color:#fff;font-size:36px;margin:0 0 12px;}
.tv-cta-band p{font-size:17px;opacity:.95;margin:0 0 26px;}
.tv-cta-band .inner{position:relative;}
.tv-cta-band__blob{position:absolute;border-radius:999px;}

/* =====================================================================
   WOOCOMMERCE cart / checkout — restyle standaard markup
   ===================================================================== */
.tv-page-head{padding:36px var(--gutter) 20px;}
.tv-page-head h1{font-size:38px;}
.woocommerce-cart .tv-container .entry-content,
.woocommerce-checkout .tv-container .entry-content{padding:12px var(--gutter) 56px;}
.woocommerce table.shop_table{border-radius:var(--radius-lg);border:1px solid var(--tv-line);border-collapse:separate;overflow:hidden;}
.woocommerce table.shop_table th{font-family:var(--font-head);color:var(--tv-ink);}
.woocommerce .cart .button,.woocommerce a.button,.woocommerce button.button,
.woocommerce #respond input#submit,.woocommerce #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  background:var(--tv-blue)!important;color:#fff!important;border-radius:var(--radius)!important;
  font-family:var(--font-body)!important;font-weight:800!important;padding:15px 26px!important;box-shadow:var(--shadow-btn);border:none!important;}
.woocommerce #place_order{background:var(--tv-pink)!important;box-shadow:0 14px 26px -10px rgba(252,78,123,.8);}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce form.checkout .col-1,.woocommerce form.checkout .col-2{background:var(--tv-surface);border:1px solid var(--tv-line);border-radius:var(--radius-lg);padding:26px;}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single{
  border:2px solid var(--tv-line-2)!important;border-radius:12px!important;padding:13px 15px!important;font-weight:700;color:var(--tv-ink);}
/* --- WooCommerce notices (merkstijl) --- */
.woocommerce-notices-wrapper{
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-top:20px;
}
.woocommerce-notices-wrapper:empty{padding:0;}
body.toversleutel .woocommerce-message,
body.toversleutel .woocommerce-info,
body.toversleutel .woocommerce-error{
  list-style:none;margin:0 0 16px;padding:16px 20px;
  border:1px solid var(--tv-line);border-top:none;border-left:4px solid var(--tv-blue);
  border-radius:var(--radius);background:var(--tv-surface);
  color:var(--tv-ink);font-weight:700;font-size:15px;line-height:1.5;
  display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;
  box-shadow:0 12px 30px -20px rgba(27,58,75,.5);
}
body.toversleutel .woocommerce-message::before,
body.toversleutel .woocommerce-info::before,
body.toversleutel .woocommerce-error::before{content:none;display:none;}
body.toversleutel .woocommerce-message li,
body.toversleutel .woocommerce-info li,
body.toversleutel .woocommerce-error li{list-style:none;margin:0;flex:1;min-width:60%;}
body.toversleutel .woocommerce-message{border-left-color:var(--tv-green);background:var(--tint-green);}
body.toversleutel .woocommerce-info{border-left-color:var(--tv-blue);background:var(--tint-blue);}
body.toversleutel .woocommerce-error{border-left-color:var(--tv-pink);background:var(--tint-pink);}
/* actie-knop in notice (Bekijk winkelwagen / Ongedaan maken) */
body.toversleutel .woocommerce-message .button,
body.toversleutel .woocommerce-info .button,
body.toversleutel .woocommerce-error .button{
  margin-left:auto;order:2;text-decoration:none;
  background:#fff;border:2px solid var(--tv-line-2);color:var(--tv-ink);
  font-family:var(--font-body);font-weight:800;font-size:13px;
  padding:9px 16px;border-radius:12px;transition:border-color .18s,color .18s;white-space:nowrap;
}
body.toversleutel .woocommerce-message .button:hover,
body.toversleutel .woocommerce-info .button:hover,
body.toversleutel .woocommerce-error .button:hover{border-color:var(--tv-blue);color:var(--tv-blue);}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media(max-width:1200px){
  :root{--gutter:36px;}
  .tv-cats .tv-cat-card{flex-basis:calc((100% - 3 * 16px) / 4);}
  .tv-products--5{grid-template-columns:repeat(3,1fr);}
  .tv-products--4{grid-template-columns:repeat(3,1fr);}
  .tv-footer__cols{grid-template-columns:1fr 1fr;}
  .tv-mega__panel{grid-template-columns:220px 1fr;}
  .tv-mega__promo{display:none;}
}
@media(max-width:900px){
  .tv-hero__grid{grid-template-columns:1fr;}
  .tv-hero h1{font-size:44px;}
  .tv-pd{grid-template-columns:1fr;}
  .tv-intro{grid-template-columns:1fr;gap:28px;}
  .tv-values{grid-template-columns:1fr;}
  .tv-stats{grid-template-columns:repeat(2,1fr);}
  .tv-promos{grid-template-columns:1fr;}
  .tv-tabs__grid{grid-template-columns:1fr;}
  .tv-shop{grid-template-columns:1fr;}
  .tv-filters{order:2;}
  .tv-usps__inner{grid-template-columns:1fr 1fr;}
}
@media(max-width:760px){
  .tv-topbar{gap:12px;font-size:12px;}
  .tv-topbar .sep{display:none;}
  .tv-header__main{flex-wrap:wrap;gap:14px;}
  .tv-search{order:3;flex-basis:100%;}
  .tv-header a.tv-account span{display:none;}
  .tv-nav__inner{overflow-x:auto;gap:2px;}
  .tv-nav a{white-space:nowrap;}
  .tv-mega__panel{grid-template-columns:1fr;}
  .tv-mega__cats{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--tv-line);}
  .tv-mega__cat{white-space:nowrap;}
}
@media(max-width:560px){
  :root{--gutter:20px;}
  .tv-cats{grid-template-columns:repeat(2,1fr);}
  .tv-products--5,.tv-products--4{grid-template-columns:repeat(2,1fr);}
  .tv-hero h1{font-size:34px;}
  .tv-content-hero h1{font-size:34px;}
  .tv-footer__cols{grid-template-columns:1fr;}
  .tv-usps__inner{grid-template-columns:1fr;}
  .tv-stats{grid-template-columns:1fr 1fr;}
  .tv-pd__gallery{flex-direction:column-reverse;}
  .tv-pd__thumbs{flex-direction:row;}
}

/* =====================================================================
   FULL-WIDTH LAYOUT — achtergronden lopen tot schermrand, leesbare inhoud
   gecentreerd op --tv-max met --gutter zijpadding (gelijk aan header/footer).
   Formule: (100% - tv-max)/2 geeft de buitenmarge, + gutter voor de tekst,
   zodat elke sectie exact onder het logo/menu uitlijnt.
   ===================================================================== */
.tv-crumbs,
.tv-hero,
.tv-block,
.tv-block--tight,
.tv-cat-hero,
.tv-shop,
.tv-cat-desc,
.tv-pd,
.tv-tabs,
.tv-intro,
.tv-content-hero,
.tv-cartpage,
.tv-cart-empty,
.tv-auth__hero,
.tv-auth__body,
.tv-404,
.tv-page-head{
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
}

/* Ingesloten banden (stats, CTA) — zelfde breedte als de tekstkolom. */
.tv-stats,
.tv-cta-band{
  width:min(calc(var(--tv-max) - 2 * var(--gutter)), calc(100% - 2 * var(--gutter)));
  margin-left:auto;
  margin-right:auto;
}

/* Productfoto niet gigantisch. */
.tv-pd__main-img{max-height:600px;position:relative;overflow:hidden;}
/* crossfade-laag voor galerijwissel (JS: initGallery) */
.tv-pd__main-img .tv-pd__img-layer{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background-size:cover;background-position:center;opacity:0;transition:opacity .35s ease;z-index:1;}
/* knoppen/badge/bolletjes boven de fade-laag houden */
.tv-pd__main-img .badge{z-index:2;}

/* =====================================================================
   HOOFDMENU — wp_nav_menu levert <ul><li>; horizontaal uitlijnen
   ===================================================================== */
.tv-nav__links{display:flex;align-items:center;gap:6px;flex:1;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.tv-nav__links li{list-style:none;margin:0;padding:0;}
.tv-nav__links a,
.tv-nav__links li > a{
  text-decoration:none;color:var(--tv-ink);font-weight:700;font-size:14px;
  padding:15px 16px;border-radius:12px;display:inline-block;
}
.tv-nav__links a:hover,
.tv-nav__links li > a:hover{color:var(--tv-blue);}
/* "Aanbiedingen" (fallback) rechts uitlijnen. */
.tv-nav__links > a.tv-nav__sale{margin-left:auto;color:var(--tv-pink);font-weight:800;}
/* Laatste menu-item als accent naar rechts (optioneel via menu-class 'sale'). */
.tv-nav__links li.menu-item.sale{margin-left:auto;}
.tv-nav__links li.menu-item.sale > a{color:var(--tv-pink);font-weight:800;}

/* =====================================================================
   WINKELWAGEN
   ===================================================================== */
.tv-cartpage{padding-top:12px;padding-bottom:56px;}
.tv-cartpage__count{color:var(--tv-muted-2);font-size:22px;font-weight:500;}
.tv-cartpage__grid{
  display:grid;grid-template-columns:1fr 400px;gap:32px;align-items:start;
}

/* --- items --- */
.tv-cart-items{display:flex;flex-direction:column;gap:16px;}

.tv-ship-progress{background:var(--tint-green);border-radius:18px;padding:18px 22px;}
.tv-ship-progress__label{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--tv-ink);font-size:14px;margin-bottom:12px;}
.tv-ship-progress__label svg{width:20px;height:20px;color:var(--tv-green);flex-shrink:0;}
.tv-ship-progress__label span{color:var(--tv-green);}
.tv-ship-progress__bar{height:8px;background:#c9ecd8;border-radius:999px;overflow:hidden;}
.tv-ship-progress__bar span{display:block;height:100%;background:var(--tv-green);border-radius:999px;transition:width .4s;}

.tv-cart-item{
  background:#fff;border:1px solid var(--tv-line);border-radius:20px;padding:18px;
  display:flex;gap:18px;align-items:center;
}
.tv-cart-item__media{width:96px;height:96px;border-radius:16px;flex-shrink:0;overflow:hidden;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 12px,rgba(255,255,255,0) 12px 24px);}
.tv-cart-item__media img{width:100%;height:100%;object-fit:cover;border-radius:16px;}
.tv-cart-item__media a{display:block;width:100%;height:100%;}
.tv-cart-item__info{flex:1;min-width:0;}
.tv-cart-item__tag{font-size:12px;font-weight:800;color:var(--tv-blue);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.tv-cart-item__title{font-family:var(--font-head);font-weight:500;font-size:19px;color:var(--tv-ink);margin-bottom:4px;line-height:1.2;}
body.toversleutel .tv-cart-item__title a{color:var(--tv-ink);text-decoration:none;}
body.toversleutel .tv-cart-item__title a:hover{color:var(--tv-blue);}
.tv-cart-item__meta{font-size:13px;color:var(--tv-muted-2);font-weight:700;}
.tv-cart-item__meta p{margin:0;}

.tv-cart-item__qty{border:2px solid var(--tv-line-2);border-radius:14px;padding:8px 14px;gap:14px;}
.tv-cart-item__qty input{width:32px;border:none;background:none;text-align:center;font-family:var(--font-body);
  font-weight:800;color:var(--tv-ink);font-size:16px;-moz-appearance:textfield;padding:0;}
.tv-cart-item__qty input::-webkit-outer-spin-button,
.tv-cart-item__qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.tv-cart-item__qty button{border:none;background:none;font-size:20px;color:var(--tv-blue);cursor:pointer;font-weight:800;line-height:1;}

.tv-cart-item__price{width:96px;text-align:right;font-family:var(--font-head);font-weight:600;font-size:20px;color:var(--tv-ink);flex-shrink:0;}
.tv-cart-item__price del{display:block;font-size:13px;color:var(--tv-muted-3);font-weight:700;}
.tv-cart-item__price ins{text-decoration:none;}

.tv-cart-item__remove{border:none;background:var(--tv-surface);width:40px;height:40px;border-radius:12px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--tv-pink);transition:background .18s;}
.tv-cart-item__remove svg{width:18px;height:18px;}
.tv-cart-item__remove:hover{background:var(--tint-pink);}

.tv-cart-items__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:4px;}
.tv-cart-continue{display:inline-flex;align-items:center;gap:10px;color:var(--tv-blue);font-weight:800;font-size:15px;text-decoration:none;}
.tv-cart-continue svg{width:18px;height:18px;}
.tv-cart-update{border:2px solid var(--tv-line-2);background:#fff;color:var(--tv-muted);font-weight:800;font-size:14px;
  padding:10px 18px;border-radius:12px;cursor:pointer;}
.tv-cart-update:hover{border-color:var(--tv-blue);color:var(--tv-blue);}

/* --- overzicht --- */
.tv-cart-summary{position:sticky;top:20px;display:flex;flex-direction:column;gap:16px;}
.tv-cart-summary__card{background:var(--tv-surface);border:1px solid var(--tv-line);border-radius:22px;padding:26px;}
.tv-cart-summary__card h3{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);margin:0 0 20px;}
.tv-cart-summary__rows{display:flex;flex-direction:column;gap:13px;font-size:15px;}
.tv-cart-summary__row{display:flex;justify-content:space-between;gap:16px;color:var(--tv-muted);font-weight:700;}
.tv-cart-summary__row .val{color:var(--tv-ink);text-align:right;}
.tv-cart-summary__row .val--discount{color:var(--tv-pink);}
.tv-cart-summary__row .val--discount .amount{color:var(--tv-pink);}
.tv-cart-summary__row a{font-size:12px;font-weight:700;}
.tv-cart-summary__total{border-top:1px dashed var(--tv-line-3);margin-top:6px;padding-top:14px;
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;}
.tv-cart-summary__total > span:first-child{font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--tv-ink);}
.tv-cart-summary__total .val{font-family:var(--font-head);font-weight:600;font-size:26px;color:var(--tv-ink);text-align:right;}
.tv-cart-summary__total .val .amount{font-family:var(--font-head);}
/* "(inclusief € x BTW)" — kleine regel eronder i.p.v. achter het bedrag geplakt */
.tv-cart-summary__total .val small.includes_tax,
.tv-co-totals__total .val small.includes_tax,
.tv-minicart__total .val small.includes_tax{
  display:block;margin-top:5px;font-family:var(--font-body);font-size:12px;font-weight:700;
  color:var(--tv-muted-2);line-height:1.4;text-align:right;white-space:nowrap;}
.tv-cart-summary__total .val small.includes_tax .amount,
.tv-co-totals__total .val small.includes_tax .amount,
.tv-minicart__total .val small.includes_tax .amount{
  font-family:var(--font-body);font-size:12px;font-weight:700;color:var(--tv-muted-2);}
/* "(incl. btw)"-label bij regelprijzen/headerbadge overbodig — alles is incl. */
.tv-cart-item__price small.tax_label,
.tv-minicart__line small.tax_label,
.tv-co-item__total small.tax_label,
.tv-cart small.tax_label,
.tv-minicart__total small.tax_label{display:none;}

.tv-cart-coupon{display:flex;gap:8px;margin:20px 0;}
.tv-cart-coupon__input{flex:1;min-width:0;box-sizing:border-box;border:2px solid var(--tv-line-2);border-radius:12px;
  padding:12px 14px;font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--tv-ink);outline:none;background:#fff;}
.tv-cart-coupon__input:focus{border-color:var(--tv-blue);}
.tv-cart-coupon__btn{border:none;background:var(--tint-blue);color:var(--tv-blue);font-family:var(--font-body);
  font-weight:800;font-size:14px;padding:0 18px;border-radius:12px;cursor:pointer;}
.tv-cart-coupon__btn:hover{background:var(--tv-blue);color:#fff;}

.tv-cart-checkout{width:100%;padding:17px;border-radius:16px;}
.tv-cart-checkout svg{width:20px;height:20px;flex-shrink:0;}

.tv-cart-pay{display:flex;align-items:center;justify-content:center;gap:14px;padding:4px;}
.tv-cart-pay > span{font-size:13px;color:var(--tv-muted-2);font-weight:700;}
.tv-cart-pay__badges{display:flex;gap:8px;}
.tv-pay{width:38px;height:24px;border-radius:5px;background:#fff;border:1px solid var(--tv-line);
  display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;}
.tv-pay--ideal{color:#cc0066;}
.tv-pay--visa{color:#1a1f71;font-size:8px;}
.tv-pay--mc i{width:11px;height:11px;border-radius:999px;display:block;}
.tv-pay--mc i:first-child{background:#eb001b;margin-right:-4px;}
.tv-pay--mc i:last-child{background:#f79e1b;opacity:.85;}

/* --- lege winkelwagen --- */
.tv-cart-empty{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding-top:48px;padding-bottom:72px;
}
.tv-cart-empty__icon{
  width:110px;height:110px;border-radius:999px;background:var(--tint-blue);
  display:flex;align-items:center;justify-content:center;color:var(--tv-blue);margin-bottom:26px;
}
.tv-cart-empty__icon svg{width:52px;height:52px;}
.tv-cart-empty h1{font-family:var(--font-head);font-weight:600;font-size:32px;color:var(--tv-ink);margin:0 0 12px;}
.tv-cart-empty p{color:var(--tv-muted);font-size:16px;line-height:1.65;max-width:440px;margin:0 0 28px;}
.tv-cart-empty .cart-empty{display:none;} /* WC-default tekst verbergen — eigen kop/tekst. */

@media (max-width:900px){
  .tv-cartpage__grid{grid-template-columns:1fr;}
  .tv-cart-summary{position:static;}
  .tv-cart-item{flex-wrap:wrap;}
  .tv-cart-item__info{flex:1 1 auto;}
  .tv-cart-item__price{width:auto;}
}

/* =====================================================================
   MINI-CART (drawer)
   ===================================================================== */
body.tv-noscroll{overflow:hidden;}
.tv-minicart__backdrop{position:fixed;inset:0;background:rgba(27,58,75,.4);z-index:1000;
  opacity:0;transition:opacity .3s;}
.tv-minicart__backdrop.is-open{opacity:1;}
.tv-minicart{position:fixed;top:0;right:0;bottom:0;z-index:1001;width:400px;max-width:92vw;
  background:#fff;box-shadow:-30px 0 60px -30px rgba(27,58,75,.5);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .32s ease;}
.tv-minicart.is-open{transform:translateX(0);}

.tv-minicart__head{display:flex;align-items:center;justify-content:space-between;
  padding:22px 24px;border-bottom:1px solid var(--tv-line);flex-shrink:0;}
.tv-minicart__head h2{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);margin:0;}
.tv-minicart__close{border:none;background:var(--tv-surface);width:38px;height:38px;border-radius:12px;
  cursor:pointer;color:var(--tv-ink);display:flex;align-items:center;justify-content:center;transition:background .18s;}
.tv-minicart__close:hover{background:var(--tint-pink);color:var(--tv-pink);}
.tv-minicart__close svg{width:18px;height:18px;}

/* content-wrapper vult resterende hoogte → lijst scrollt, foot pint onderaan */
.tv-minicart .widget_shopping_cart_content{flex:1;min-height:0;display:flex;flex-direction:column;}

.tv-minicart__ship{padding:16px 24px;border-bottom:1px solid var(--tv-line);flex-shrink:0;}
.tv-minicart__ship .tv-ship-progress__label{margin-bottom:10px;font-size:13px;}
.tv-minicart__ship .tv-ship-progress__label:last-child{margin-bottom:0;}
.tv-minicart__ship .tv-ship-progress__label svg{width:18px;height:18px;}

.tv-minicart__list{list-style:none;margin:0;padding:16px 24px;overflow-y:auto;flex:1;min-height:0;
  display:flex;flex-direction:column;gap:14px;}
.tv-minicart__item{display:flex;gap:14px;align-items:center;position:relative;list-style:none;margin:0;padding:0;}
.tv-minicart__thumb{width:64px;height:64px;border-radius:14px;flex-shrink:0;overflow:hidden;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 10px,rgba(255,255,255,0) 10px 20px);}
/* WC-default float/klein overrulen. */
.tv-minicart__thumb img{float:none!important;width:100%!important;height:100%!important;
  object-fit:cover;margin:0!important;box-shadow:none!important;}
.tv-minicart__thumb a{display:block;width:100%;height:100%;}
.tv-minicart__info{flex:1;min-width:0;padding-right:26px;}
.tv-minicart__name{font-family:var(--font-head);font-weight:500;font-size:15px;color:var(--tv-ink);line-height:1.25;}
.tv-minicart__name a{color:var(--tv-ink);text-decoration:none;}
.tv-minicart__name a:hover{color:var(--tv-blue);}
.tv-minicart__meta{font-size:12px;color:var(--tv-muted-2);font-weight:700;}
.tv-minicart__meta p{margin:0;}

.tv-minicart__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;}
.tv-minicart__stepper{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--tv-line-2);
  border-radius:12px;padding:5px 10px;transition:opacity .18s;}
.tv-minicart__stepper.is-busy{opacity:.5;pointer-events:none;}
.tv-minicart__stepper button{border:none;background:none;font-size:17px;color:var(--tv-blue);cursor:pointer;
  font-weight:800;line-height:1;padding:0;width:16px;}
.tv-minicart__num{font-weight:800;color:var(--tv-ink);font-size:14px;min-width:16px;text-align:center;}
.tv-minicart__line{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);white-space:nowrap;}
.tv-minicart__remove{position:absolute;top:0;right:0;width:26px;height:26px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;color:var(--tv-muted-3);text-decoration:none;transition:background .18s,color .18s;}
.tv-minicart__remove:hover{background:var(--tint-pink);color:var(--tv-pink);}
.tv-minicart__remove svg{width:14px;height:14px;}

.tv-minicart__foot{border-top:1px solid var(--tv-line);padding:20px 24px;flex-shrink:0;
  background:var(--tv-surface);display:flex;flex-direction:column;gap:16px;}
.tv-minicart__total{display:flex;justify-content:space-between;align-items:baseline;}
.tv-minicart__total > span:first-child{font-weight:800;color:var(--tv-muted);font-size:15px;}
.tv-minicart__total .val{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);}
.tv-minicart__buttons{display:flex;flex-direction:column;gap:10px;}
.tv-minicart__buttons .tv-btn{width:100%;padding:14px;}

.tv-minicart__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:8px;padding:40px 24px;}
.tv-minicart__empty-icon{width:88px;height:88px;border-radius:999px;background:var(--tint-blue);
  display:flex;align-items:center;justify-content:center;color:var(--tv-blue);margin-bottom:8px;}
.tv-minicart__empty-icon svg{width:40px;height:40px;}
.tv-minicart__empty p{color:var(--tv-muted);font-size:15px;font-weight:700;margin:0 0 12px;}

@media (max-width:480px){
  .tv-minicart{width:100%;max-width:100%;}
}

/* =====================================================================
   JURIDISCHE PAGINA'S (algemene voorwaarden, privacy) — leesbare kolom
   ===================================================================== */
.tv-legal{padding-top:36px;padding-bottom:64px;color:var(--tv-muted);
  font-size:15px;line-height:1.8;
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));}
/* inhoudsopgave-chips */
.tv-legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;}
body.toversleutel .tv-legal-toc a{background:var(--tv-surface);border:2px solid var(--tv-line-2);
  border-radius:999px;padding:7px 14px;font-size:13px;font-weight:800;color:var(--tv-muted);
  text-decoration:none;transition:border-color .15s,color .15s;}
body.toversleutel .tv-legal-toc a:hover{border-color:var(--tv-blue);color:var(--tv-blue);}
/* artikel-/sectiekaarten */
.tv-legal-card{background:#fff;border:1px solid var(--tv-line);border-radius:20px;
  padding:26px;margin-bottom:16px;scroll-margin-top:120px;}
.tv-legal-card__badge{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:11px;font-family:var(--font-head);font-weight:600;
  font-size:15px;color:var(--tv-ink);margin-bottom:12px;}
.tv-legal-card h2{font-size:20px;color:var(--tv-ink);margin:0 0 10px;}
.tv-legal-card p{margin:0 0 12px;}
.tv-legal-card p:last-child{margin-bottom:0;}
.tv-legal-sub{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);
  margin:30px 0 14px;}
/* afsluiter: vragen? */
.tv-legal-cta{background:var(--tv-surface);border:1px solid var(--tv-line);border-radius:20px;
  padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.tv-legal-cta p{margin:0;font-weight:700;color:var(--tv-ink);}
@media (max-width:760px){
  .tv-legal{font-size:14px;padding-top:20px;padding-bottom:44px;}
  .tv-legal-card{padding:18px;border-radius:16px;margin-bottom:12px;}
  .tv-legal-card h2{font-size:17px;}
  .tv-legal-sub{font-size:19px;}
  .tv-legal-cta{padding:18px;}
}

/* =====================================================================
   VEILIGE BETALING — betaalmethode-kaarten
   ===================================================================== */
.tv-paycards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.tv-paycards--2{grid-template-columns:repeat(2,1fr);}
.tv-paycard__badge svg{width:18px;height:18px;}
.tv-paycard{background:#fff;border:1px solid var(--tv-line);border-radius:20px;padding:24px;
  transition:transform .18s,box-shadow .18s;}
.tv-paycard:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.tv-paycard__badge{display:inline-flex;align-items:center;justify-content:center;
  min-width:56px;height:34px;padding:0 12px;border-radius:8px;background:#fff;
  border:1px solid var(--tv-line-2);font-size:13px;font-weight:800;margin-bottom:14px;}
.tv-paycard h3{font-size:19px;margin:0 0 8px;}
.tv-paycard p{margin:0;color:var(--tv-muted);font-size:14px;line-height:1.65;}
@media (max-width:900px){.tv-paycards{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.tv-paycards{grid-template-columns:1fr;gap:12px;}
  .tv-paycard{padding:18px;border-radius:16px;}}

/* verzendtarieven-tabel (bezorging) */
.tv-shiptable-wrap{overflow-x:auto;border:1px solid var(--tv-line);border-radius:var(--radius-lg);
  background:#fff;-webkit-overflow-scrolling:touch;}
.tv-shiptable{width:100%;border-collapse:collapse;font-size:14px;min-width:720px;}
.tv-shiptable thead th{background:var(--tv-surface);font-family:var(--font-head);font-weight:600;
  color:var(--tv-ink);text-align:left;padding:13px 16px;border-bottom:1px solid var(--tv-line);white-space:nowrap;}
.tv-shiptable tbody th{text-align:left;padding:12px 16px;color:var(--tv-ink);font-weight:800;
  border-bottom:1px solid var(--tv-line);white-space:nowrap;background:var(--tv-surface);}
.tv-shiptable tbody td{padding:12px 16px;color:var(--tv-muted);font-weight:600;
  border-bottom:1px solid var(--tv-line);white-space:nowrap;}
.tv-shiptable tbody tr:last-child th,
.tv-shiptable tbody tr:last-child td{border-bottom:none;}
.tv-shipzones{margin-top:16px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--tv-muted);font-weight:600;}
.tv-shipzones__row b{color:var(--tv-ink);font-weight:800;}

/* =====================================================================
   MIJN ACCOUNT — WC-default markup, herstyled naar het designsysteem
   ===================================================================== */
/* layout: nav links, inhoud rechts (markup: .tv-account in de account-templates) */
.tv-account{display:grid;grid-template-columns:264px 1fr;gap:32px;align-items:start;
  padding-top:8px;padding-bottom:64px;
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));}

/* navigatie — WC-default zet float:left;width:30%: overrulen, grid regelt de kolom */
body.toversleutel.woocommerce-account .woocommerce-MyAccount-navigation{width:100%;float:none;}
.woocommerce-MyAccount-navigation{background:var(--tv-surface);border:1px solid var(--tv-line);
  border-radius:var(--radius-lg);padding:14px;}
.tv-account__nav-icon{display:inline-flex;width:20px;height:20px;flex-shrink:0;vertical-align:middle;}
.tv-account__nav-icon svg{width:100%;height:100%;}
body.toversleutel .woocommerce-MyAccount-navigation a{display:flex;align-items:center;gap:10px;}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.woocommerce-MyAccount-navigation li{margin:0;}
body.toversleutel .woocommerce-MyAccount-navigation a{display:block;padding:12px 16px;border-radius:12px;
  font-weight:700;font-size:14px;color:var(--tv-muted);text-decoration:none;transition:background .15s,color .15s;}
body.toversleutel .woocommerce-MyAccount-navigation a:hover{background:#fff;color:var(--tv-ink);}
body.toversleutel .woocommerce-MyAccount-navigation .is-active a{background:var(--tv-blue);color:#fff;}
body.toversleutel .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a{color:var(--tv-pink);}
body.toversleutel .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a:hover{background:var(--tint-pink);}

/* inhoud — WC-default float:right;width:68% overrulen */
body.toversleutel.woocommerce-account .woocommerce-MyAccount-content{width:100%;float:none;}
.woocommerce-MyAccount-content{min-width:0;color:var(--tv-muted);font-size:15px;line-height:1.7;}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{margin:0 0 14px;font-size:20px;}
.woocommerce-MyAccount-content fieldset{border:none;margin:22px 0 0;padding:0;}
.woocommerce-MyAccount-content fieldset legend{font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--tv-ink);margin-bottom:12px;}
.woocommerce-MyAccount-content .form-row label{display:block;font-size:13px;font-weight:800;color:var(--tv-muted);margin-bottom:7px;}
.woocommerce-MyAccount-content .form-row{margin:0 0 14px;}

/* bestellijst (Mijn account → Bestellingen) */
body.toversleutel .woocommerce-MyAccount-content table.my_account_orders{
  width:100%;border-collapse:separate;border-spacing:0;background:#fff;
  border:1px solid var(--tv-line);border-radius:var(--radius-lg);overflow:hidden;font-size:14px;margin:0 0 22px;}
body.toversleutel .my_account_orders thead th{
  background:var(--tv-surface);font-family:var(--font-head);font-weight:600;font-size:14px;color:var(--tv-ink);
  text-align:left;padding:14px 18px;border-bottom:1px solid var(--tv-line);}
body.toversleutel .my_account_orders td{
  padding:14px 18px;border-bottom:1px solid var(--tv-line);color:var(--tv-muted);font-weight:600;vertical-align:middle;}
body.toversleutel .my_account_orders tbody tr:last-child td{border-bottom:none;}
body.toversleutel .my_account_orders tbody tr:hover td{background:var(--tv-surface);}
body.toversleutel .my_account_orders .woocommerce-orders-table__cell-order-number a{font-weight:800;text-decoration:none;}
body.toversleutel .my_account_orders td.woocommerce-orders-table__cell-order-total{color:var(--tv-ink);font-weight:800;}
/* status met gekleurde stip */
body.toversleutel .my_account_orders td.woocommerce-orders-table__cell-order-status{font-weight:800;white-space:nowrap;}
body.toversleutel .my_account_orders td.woocommerce-orders-table__cell-order-status::before{
  content:"";display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:8px;background:currentColor;vertical-align:middle;}
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-processing td.woocommerce-orders-table__cell-order-status{color:var(--tv-blue);}
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-completed td.woocommerce-orders-table__cell-order-status{color:var(--tv-green);}
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-on-hold td.woocommerce-orders-table__cell-order-status{color:var(--tv-yellow-dark);}
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-pending td.woocommerce-orders-table__cell-order-status{color:var(--tv-muted-2);}
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-cancelled td.woocommerce-orders-table__cell-order-status,
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-failed td.woocommerce-orders-table__cell-order-status,
body.toversleutel .my_account_orders tr.woocommerce-orders-table__row--status-refunded td.woocommerce-orders-table__cell-order-status{color:var(--tv-pink);}
/* actieknoppen (Bekijk e.d.) — klein, ghost */
body.toversleutel .my_account_orders a.button{
  background:#fff!important;color:var(--tv-ink)!important;border:2px solid var(--tv-line-2)!important;
  padding:8px 16px!important;border-radius:12px!important;font-size:13px!important;font-weight:800!important;
  box-shadow:none!important;text-decoration:none;display:inline-block;margin:2px 6px 2px 0;}
body.toversleutel .my_account_orders a.button:hover{border-color:var(--tv-blue)!important;color:var(--tv-blue)!important;}
/* paginering onder de tabel */
body.toversleutel .woocommerce-MyAccount-content .woocommerce-pagination{display:flex;gap:10px;justify-content:center;}
/* mobiel: rijen als kaartjes (WC zet data-title op de cellen) */
@media (max-width:760px){
  body.toversleutel .woocommerce-MyAccount-content table.my_account_orders,
  body.toversleutel .my_account_orders tbody,
  body.toversleutel .my_account_orders tr,
  body.toversleutel .my_account_orders td{display:block;width:100%;box-sizing:border-box;}
  body.toversleutel .my_account_orders thead{display:none;}
  body.toversleutel .my_account_orders tr{border-bottom:1px solid var(--tv-line);padding:6px 0;}
  body.toversleutel .my_account_orders tr:last-child{border-bottom:none;}
  body.toversleutel .my_account_orders td{display:flex;justify-content:space-between;gap:16px;border:none;padding:8px 18px;}
  body.toversleutel .my_account_orders td::before{content:attr(data-title);font-weight:800;color:var(--tv-ink);}
  body.toversleutel .my_account_orders td.woocommerce-orders-table__cell-order-status::before{content:attr(data-title);width:auto;height:auto;border-radius:0;background:none;margin:0;}
}

/* besteldetail (view-order) */
.woocommerce-MyAccount-content mark{background:var(--tint-yellow);color:var(--tv-ink);font-weight:800;
  padding:2px 9px;border-radius:8px;}
.woocommerce-MyAccount-content .woocommerce-order-details__title,
.woocommerce-MyAccount-content .woocommerce-customer-details > h2,
.woocommerce-MyAccount-content .woocommerce-column__title{font-size:20px;margin:26px 0 14px;}
body.toversleutel .woocommerce-MyAccount-content table.order_details{
  width:100%;border-collapse:separate;border-spacing:0;background:#fff;
  border:1px solid var(--tv-line);border-radius:var(--radius-lg);overflow:hidden;font-size:14px;margin:0 0 8px;}
body.toversleutel .woocommerce-MyAccount-content table.order_details thead th{
  background:var(--tv-surface);font-family:var(--font-head);font-weight:600;font-size:14px;color:var(--tv-ink);
  text-align:left;padding:14px 18px;border-bottom:1px solid var(--tv-line);}
body.toversleutel .woocommerce-MyAccount-content table.order_details td,
body.toversleutel .woocommerce-MyAccount-content table.order_details tfoot th{
  padding:13px 18px;border-bottom:1px solid var(--tv-line);color:var(--tv-muted);font-weight:600;text-align:left;vertical-align:middle;}
body.toversleutel .woocommerce-MyAccount-content table.order_details .woocommerce-table__product-name a{font-weight:800;text-decoration:none;}
body.toversleutel .woocommerce-MyAccount-content table.order_details .product-quantity{color:var(--tv-muted-2);font-weight:700;}
body.toversleutel .woocommerce-MyAccount-content table.order_details td.woocommerce-table__product-total,
body.toversleutel .woocommerce-MyAccount-content table.order_details tfoot td{color:var(--tv-ink);font-weight:800;text-align:right;}
body.toversleutel .woocommerce-MyAccount-content table.order_details tfoot th{background:var(--tv-surface);}
body.toversleutel .woocommerce-MyAccount-content table.order_details tfoot tr:last-child th,
body.toversleutel .woocommerce-MyAccount-content table.order_details tfoot tr:last-child td{
  border-bottom:none;font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);}
/* klantgegevens: adres(sen) als kaarten */
.woocommerce-MyAccount-content .woocommerce-customer-details address{
  font-style:normal;background:var(--tv-surface);border:1px solid var(--tv-line);border-radius:18px;
  padding:22px;color:var(--tv-muted);line-height:1.7;font-weight:600;border-width:1px!important;}
.woocommerce-MyAccount-content .woocommerce-columns--addresses{display:grid;grid-template-columns:1fr 1fr;gap:22px;width:100%;}
.woocommerce-MyAccount-content .woocommerce-columns--addresses .woocommerce-column{width:100%;max-width:none;float:none;}
@media (max-width:760px){
  .woocommerce-MyAccount-content .woocommerce-columns--addresses{grid-template-columns:1fr;}
}

/* adressen als kaarten */
.woocommerce-MyAccount-content .woocommerce-Addresses{display:grid;grid-template-columns:1fr 1fr;gap:22px;width:100%;}
.woocommerce-MyAccount-content .woocommerce-Address{background:var(--tv-surface);border:1px solid var(--tv-line);
  border-radius:18px;padding:22px;max-width:none;width:auto;float:none;}
.woocommerce-MyAccount-content .woocommerce-Address-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.woocommerce-MyAccount-content .woocommerce-Address-title h3{font-size:18px;margin:0 0 10px;}
.woocommerce-MyAccount-content .woocommerce-Address-title .edit{font-size:13px;font-weight:800;text-decoration:none;}
.woocommerce-MyAccount-content address{font-style:normal;color:var(--tv-muted);line-height:1.7;font-weight:600;}

/* dashboard (tv-dash — markup uit dashboard-template) */
.tv-dash__hi{font-family:var(--font-head);font-weight:600;font-size:26px;color:var(--tv-ink);margin:0 0 6px;}
.tv-dash__hi .emoji{width:24px;height:24px;vertical-align:-3px;}
.tv-dash__lead{margin:0 0 22px;color:var(--tv-muted);font-weight:600;}
.tv-dash__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px;}
.tv-dash__card{display:flex;flex-direction:column;gap:6px;text-decoration:none;background:#fff;
  border:1px solid var(--tv-line);border-radius:18px;padding:22px;transition:transform .18s,box-shadow .18s;}
.tv-dash__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.tv-dash__icon{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  margin-bottom:8px;color:var(--tv-ink);}
.tv-dash__icon svg{width:22px;height:22px;}
.tv-dash__label{font-family:var(--font-head);font-weight:600;font-size:17px;color:var(--tv-ink);}
.tv-dash__desc{font-size:13px;color:var(--tv-muted);font-weight:600;line-height:1.5;}
.tv-dash__logout{margin:0;font-size:14px;color:var(--tv-muted);font-weight:600;}
.tv-dash__logout a{font-weight:800;}

/* uitgelogd: login/registreer als gecentreerde kaart */
body.woocommerce-account:not(.logged-in) .tv-container > .woocommerce:not(:has(.tv-auth)){max-width:640px;margin:0 auto;padding:0 var(--gutter) 40px;}
body.toversleutel .woocommerce form.login,
body.toversleutel .woocommerce form.register{background:#fff;border:1px solid var(--tv-line);
  border-radius:22px;padding:26px;margin:0 0 22px;}
body.toversleutel .woocommerce form.login .form-row label,
body.toversleutel .woocommerce form.register .form-row label{display:block;font-size:13px;font-weight:800;color:var(--tv-muted);margin-bottom:7px;}
body.toversleutel .woocommerce form.login .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-weight:700;color:var(--tv-muted);}
body.toversleutel .woocommerce .lost_password{font-size:13px;font-weight:700;margin:8px 0 0;}
@media (max-width:900px){
  .tv-account{grid-template-columns:1fr;}
  .tv-dash__cards{grid-template-columns:1fr;}
  .woocommerce-MyAccount-content .woocommerce-Addresses{grid-template-columns:1fr;}
}

/* =====================================================================
   CONTACTPAGINA — infokaarten + Gravity Forms in merkstijl
   ===================================================================== */
.tv-contact{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:start;
  padding-top:48px;padding-bottom:64px;
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));}
.tv-contact__info{display:flex;flex-direction:column;gap:16px;}
.tv-contact__intro{color:var(--tv-muted);font-size:15px;line-height:1.7;}
.tv-contact__intro p{margin:0 0 12px;}
.tv-contact__card{display:flex;gap:16px;align-items:flex-start;background:var(--tv-surface);
  border:1px solid var(--tv-line);border-radius:18px;padding:20px 22px;}
.tv-contact__ico{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tv-contact__ico svg{width:22px;height:22px;}
.tv-contact__card h3{font-size:17px;margin:2px 0 6px;}
.tv-contact__card p{margin:0;color:var(--tv-muted);font-size:14px;line-height:1.6;font-weight:600;}
.tv-contact__card a{font-weight:700;text-decoration:none;}
.tv-contact__form{background:#fff;}

/* Gravity Forms — velden zoals de checkout */
.tv-contact__form .gform_title{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);margin:0 0 18px;}
.tv-contact__form .gform_wrapper .gfield{margin-bottom:14px;}
.tv-contact__form .gform_wrapper .gfield_label{display:block;font-size:13px;font-weight:800;color:var(--tv-muted);margin-bottom:7px;font-family:var(--font-body);}
.tv-contact__form .gform_wrapper .gfield_required{color:var(--tv-pink);}
.tv-contact__form .gform_wrapper input[type=text],
.tv-contact__form .gform_wrapper input[type=email],
.tv-contact__form .gform_wrapper input[type=tel],
.tv-contact__form .gform_wrapper input[type=number],
.tv-contact__form .gform_wrapper select,
.tv-contact__form .gform_wrapper textarea{
  width:100%;box-sizing:border-box;border:2px solid var(--tv-line-2)!important;border-radius:12px!important;
  padding:13px 15px!important;font-family:var(--font-body)!important;font-size:14px!important;font-weight:700!important;
  color:var(--tv-ink)!important;background:#fff;outline:none;}
.tv-contact__form .gform_wrapper input:focus,
.tv-contact__form .gform_wrapper textarea:focus,
.tv-contact__form .gform_wrapper select:focus{border-color:var(--tv-blue)!important;}
.tv-contact__form .gform_wrapper textarea{min-height:140px;resize:vertical;}
.tv-contact__form .gform_footer{margin:6px 0 0;padding:0;}
body.toversleutel .tv-contact__form .gform_wrapper .gform_button{
  border:none;cursor:pointer;background:var(--tv-blue)!important;color:#fff!important;
  font-family:var(--font-body)!important;font-weight:800!important;font-size:16px!important;
  padding:16px 30px!important;border-radius:16px!important;box-shadow:var(--shadow-btn);
  transition:background .18s,transform .18s;width:100%;}
body.toversleutel .tv-contact__form .gform_wrapper .gform_button:hover{background:var(--tv-pink)!important;transform:translateY(-2px);}
.tv-contact__form .gform_wrapper .gfield_error input,
.tv-contact__form .gform_wrapper .gfield_error textarea{border-color:var(--tv-pink)!important;}
.tv-contact__form .gform_wrapper .validation_message,
.tv-contact__form .gform_wrapper .gfield_validation_message{color:var(--tv-pink);font-size:12px;font-weight:700;background:none;border:none;padding:4px 0 0;}
.tv-contact__form .gform_wrapper .gform_validation_errors{background:var(--tint-pink);border:1px solid var(--tv-pink);border-radius:14px;padding:14px 18px;margin-bottom:16px;box-shadow:none;}
.tv-contact__form .gform_wrapper .gform_validation_errors h2{font-size:14px;color:var(--tv-ink);margin:0;font-family:var(--font-body);font-weight:800;}
.tv-contact__form .gform_confirmation_message{background:var(--tint-green);border-radius:14px;padding:18px 22px;color:var(--tv-ink);font-weight:700;}
/* Telefoonveld met landkeuze (GF international phone, basic.min.css:
   .gform_wrapper.gravity-theme .gfield--type-phone .x → daarom hier dezelfde
   specificiteit + body-prefix). Landknop + nummer als één samengevoegd veld. */
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone{position:relative;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__input-wrapper{display:flex;align-items:stretch;gap:0;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .ginput_country-selector_container{flex:0 0 auto;display:flex;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .ginput_phone_container{flex:1 1 auto;min-width:0;display:flex;}
/* sublabels "Land"/"Telefoonnummer" niet nodig: hoofdlabel "Telefoon" staat erboven */
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-field-label--type-sub{display:none;}
/* landknop = linkerhelft van het veld */
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector{
  display:inline-flex;align-items:center;gap:8px;margin:0 -2px 0 0;position:relative;z-index:1;
  border:2px solid var(--tv-line-2);border-radius:12px 0 0 12px;background:var(--tv-surface);
  padding:0 14px;min-height:0;height:auto;font-family:var(--font-body);font-size:14px;font-weight:800;color:var(--tv-ink);
  cursor:pointer;box-shadow:none;transition:border-color .15s,background .15s;height:100%;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector:hover,
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector:focus,
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector[aria-expanded=true]{
  border-color:var(--tv-blue);background:#fff;color:var(--tv-ink);z-index:3;outline:none;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector::after{
  background-image:none;width:7px;height:7px;inline-size:7px;block-size:7px;margin-left:2px;
  border-right:2px solid var(--tv-muted-2);border-bottom:2px solid var(--tv-muted-2);transform:translateY(-2px) rotate(45deg);}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__flag-icon{width:22px;height:16px;border-radius:3px;flex:none;box-shadow:0 0 0 1px rgba(27,58,75,.08);}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__dial-code{color:var(--tv-muted);font-weight:800;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__dial-code:empty{display:none;}
/* nummer = rechterhelft */
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone input.gform-phone__input{
  width:100%;margin:0;border-radius:0 12px 12px 0!important;position:relative;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone input.gform-phone__input:focus{z-index:2;}
/* landenlijst: het venster zelf scrollt níet (anders 2 scrollbars), alleen de <ul> */
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__dropdown{
  top:calc(100% + 8px);left:0;width:100%;inline-size:100%;max-width:360px;margin:0;padding:0;overflow:hidden;
  background:#fff;border:2px solid var(--tv-line-2);border-radius:14px;box-shadow:0 18px 40px -18px rgba(27,58,75,.35);z-index:1010;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__search-wrapper{
  margin:0;padding:10px 10px 6px;background:#fff;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__search-wrapper input[type=text]{
  width:100%;box-sizing:border-box;margin:0;border:2px solid var(--tv-line-2)!important;border-radius:10px!important;
  padding:9px 12px 9px 32px!important;background-position:10px center;font-family:var(--font-body)!important;font-size:13px!important;font-weight:700!important;color:var(--tv-ink)!important;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__search-wrapper input[type=text]:focus{border-color:var(--tv-blue)!important;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-list{
  max-height:260px;max-block-size:260px;overflow-y:auto;overflow-x:hidden;margin:0;padding:4px 6px 8px;list-style:none;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-item{
  display:flex;align-items:center;gap:10px;margin:0;padding:8px 10px;border-radius:10px;cursor:pointer;
  font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--tv-ink);}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-item:hover,
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-item--focused{background:var(--tint-blue);color:var(--tv-blue);}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-item--active{background:var(--tint-blue);color:var(--tv-blue);box-shadow:none;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-item--no-results{background:none;color:var(--tv-muted);cursor:default;}
body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-code{margin-left:auto;font-size:12px;font-weight:800;color:var(--tv-muted-2);}

@media (max-width:900px){
  .tv-contact{grid-template-columns:1fr;}
}

/* =====================================================================
   PRODUCTPAGINA — echte WC add-to-cart + WPC variatie-radio's (woovr)
   Gestyled naar de ontwerp-pills (.tv-pd__variant) + koopbalk (.tv-pd__buy).
   ===================================================================== */
/* WC-default zet float:right;width:48% op div.summary — grid regelt de kolommen al */
body.toversleutel div.product div.summary,
body.toversleutel .tv-pd .summary{width:100%;float:none;margin:0;}

/* Live-geüpdatete prijs (found_variation injecteert span.price) — WC-default kleurt
   die groen/1.25em; hier: gewoon de ontwerp-opmaak van .tv-pd__price erven. */
body.toversleutel div.product .tv-pd__price span.price,
body.toversleutel .tv-pd__price .price{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit;}
body.toversleutel .tv-pd__price .price .amount{color:inherit;}
body.toversleutel .tv-pd__price del{color:var(--tv-muted-3);font-size:16px;font-weight:700;}
body.toversleutel .tv-pd__price ins{text-decoration:none;}

/* variatiekeuze als pills — body-prefix: plugin-CSS (frontend.css) laadt later en
   nestelt dieper (.woovr-variation-radio .woovr-variation-info .woovr-variation-price) */
body.toversleutel .tv-pd .woovr-variations{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px;}
body.toversleutel .tv-pd .woovr-variations .woovr-variation{display:inline-flex;width:auto;margin:0;
  align-items:center;border:2px solid var(--tv-line-2);border-radius:14px;padding:10px 16px;
  cursor:pointer;background:#fff;transition:border-color .15s,background .15s;}
body.toversleutel .tv-pd .woovr-variations .woovr-variation:hover{border-color:var(--tv-blue);}
body.toversleutel .tv-pd .woovr-variations .woovr-variation.woovr-variation-active{border-color:var(--tv-blue);background:var(--tv-surface);}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-selector{display:none;} /* radio-bolletje weg — de pill zelf is de keuze */
body.toversleutel .tv-pd .woovr-variation .woovr-variation-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-name{font-weight:800;font-size:14px;color:var(--tv-muted);margin:0;line-height:1.2;}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-name label{cursor:pointer;margin:0;}
body.toversleutel .tv-pd .woovr-variation.woovr-variation-active .woovr-variation-name{color:var(--tv-blue);}
/* prijs per variatie in de pill, zoals op de live site (bijv. "1 kilo / € 10,75"),
   in het huisstijl-roze; hoofdprijs bovenin verandert ook mee (initVariationPrice). */
body.toversleutel .tv-pd .woovr-variation .woovr-variation-price{display:block!important;margin:0;padding:0;
  font-family:var(--font-head);font-weight:600;font-size:15px;line-height:1.2;color:var(--tv-pink);}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-price .amount,
body.toversleutel .tv-pd .woovr-variation .woovr-variation-price bdi{color:inherit;font-size:inherit;font-weight:inherit;}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-price del{color:var(--tv-muted-3);font-size:12px;font-weight:700;margin-right:4px;}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-price ins{text-decoration:none;}
body.toversleutel .tv-pd .woovr-variation .woovr-variation-availability{display:none!important;}
/* standaard dropdown + "Wissen" verbergen — woovr houdt de select gesynchroniseerd */
.tv-pd form.variations_form table.variations{display:none;}

/* melding "kies eerst een variant" (initVariationGuard) */
.tv-pd__choose-warn{background:var(--tint-pink);border:1px solid var(--tv-pink);border-radius:12px;
  padding:10px 14px;margin:-8px 0 18px;color:var(--tv-ink);font-size:13px;font-weight:800;}
.tv-pd__choose-warn.is-shake{animation:tv-shake .4s ease;}
@keyframes tv-shake{
  0%,100%{transform:translateX(0);}
  25%{transform:translateX(-5px);}
  50%{transform:translateX(5px);}
  75%{transform:translateX(-3px);}
}

/* gekozen variatie: prijs + voorraad */
.tv-pd .single_variation{margin:0 0 14px;}
.tv-pd .woocommerce-variation-description p{color:var(--tv-muted);font-size:14px;margin:0 0 8px;}
.tv-pd .woocommerce-variation-price{display:none;} /* prijs staat bovenin en updatet live */
.tv-pd .woocommerce-variation-availability p.stock{margin:4px 0 0;font-size:13px;font-weight:800;}
.tv-pd p.stock.in-stock{color:var(--tv-green);}
.tv-pd p.stock.out-of-stock{color:var(--tv-pink);}

/* koopbalk: aantal + grote knop (variabel én simpel product) */
.tv-pd .woocommerce-variation-add-to-cart,
.tv-pd form.cart:not(.variations_form){display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin:0 0 22px;}
.tv-pd form.cart div.quantity{display:flex;flex-shrink:0;}
.tv-pd form.cart .qty{width:84px;box-sizing:border-box;border:2px solid var(--tv-line-2);border-radius:16px;
  padding:15px 8px;text-align:center;font-family:var(--font-body);font-weight:800;font-size:16px;
  color:var(--tv-ink);outline:none;-moz-appearance:textfield;appearance:textfield;background:#fff;}
/* in de tv-qty-stepper heeft de wrapper de rand — input kaal */
.tv-pd form.cart .tv-qty .qty{width:36px;border:none;border-radius:0;padding:0;background:none;}
.tv-pd form.cart .qty::-webkit-outer-spin-button,
.tv-pd form.cart .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.tv-pd form.cart .qty:focus{border-color:var(--tv-blue);}
body.toversleutel .tv-pd .single_add_to_cart_button{flex:1;min-width:200px;border:none;cursor:pointer;
  font-family:var(--font-body)!important;font-weight:800!important;font-size:17px!important;
  padding:17px 24px!important;border-radius:16px!important;box-shadow:var(--shadow-btn);
  transition:background .18s,transform .18s;}
body.toversleutel .tv-pd .single_add_to_cart_button:hover{background:var(--tv-pink)!important;transform:translateY(-3px);}

/* =====================================================================
   AFREKENEN (checkout) — spiegelt het ontwerp (desktop.dc.html, "AFREKENEN")
   ===================================================================== */

/* slanke checkout-header (afleidingsvrij) */
.tv-co-header{border-bottom:1px solid var(--tv-line);}
.tv-co-header__inner{max-width:var(--tv-max,1360px);margin:0 auto;padding:22px var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:20px;}
.tv-co-header .tv-logo img{height:44px;}
.tv-co-header__secure{display:flex;align-items:center;gap:8px;color:var(--tv-muted);font-weight:700;font-size:14px;}
.tv-co-header__secure svg{width:18px;height:18px;flex-shrink:0;}

/* stappen */
.tv-co-steps{display:flex;align-items:center;justify-content:center;gap:14px;
  padding-top:26px;padding-bottom:8px;flex-wrap:wrap;}
.tv-co-step{display:flex;align-items:center;gap:10px;font-weight:800;font-size:14px;color:var(--tv-muted-2);}
.tv-co-step span{width:28px;height:28px;border-radius:999px;background:var(--tv-line-2);color:var(--tv-muted-2);
  font-size:13px;display:flex;align-items:center;justify-content:center;}
.tv-co-step.is-active{color:var(--tv-ink);}
.tv-co-step.is-active span{background:var(--tv-blue);color:#fff;}
.tv-co-steps i{width:44px;height:2px;background:var(--tv-line-2);}
.tv-co-steps i.is-active{background:var(--tv-blue);}

/* raster: formulier links, sticky overzicht rechts */
.tv-checkout{display:grid;grid-template-columns:1fr 400px;gap:32px;align-items:start;
  padding-top:24px;padding-bottom:56px;}
.tv-co-steps,
.tv-checkout{
  padding-left:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
  padding-right:max(var(--gutter), calc((100% - var(--tv-max)) / 2 + var(--gutter)));
}
.tv-checkout__form{display:flex;flex-direction:column;gap:22px;min-width:0;}
/* Notices (WC-validatie + postcode-plugin) worden direct in de form geïnjecteerd —
   de form is het 2-koloms grid, dus zonder dit duwen ze het formulier opzij. */
.tv-checkout > .woocommerce-NoticeGroup,
.tv-checkout > .woocommerce-notices-wrapper,
.tv-checkout > .woocommerce-error,
.tv-checkout > .woocommerce-info,
.tv-checkout > .woocommerce-message{grid-column:1 / -1;}
.tv-checkout > .woocommerce-NoticeGroup .woocommerce-error{margin:0;}

/* formulierkaarten */
.tv-co-card{border:1px solid var(--tv-line);border-radius:22px;padding:26px;background:#fff;}
.tv-co-card h3{font-size:20px;margin:0 0 18px;}

/* velden (markup van woocommerce_form_field) */
.tv-co-fields{display:grid;gap:14px;}
.tv-co-fields--contact{grid-template-columns:1fr 1fr;}
.tv-co-fields--address{grid-template-columns:2fr 1fr 1fr;}
.tv-co-fields p.form-row{margin:0;padding:0;display:block;}
/* Postcode-plugin (nl-checkout.css) zet float:left + width:22% op form-row-quart* —
   in ons grid vullen velden hun cel zelf. */
body.toversleutel .tv-co-fields .form-row,
body.toversleutel .tv-co-fields .form-row-quart,
body.toversleutel .tv-co-fields .form-row-quart-first{
  float:none!important;width:100%!important;margin-right:0!important;}
/* plugin zet width:48% op #billing_postcode_field.form-row-first/last (ID-specificity) */
body.toversleutel .tv-co-fields #billing_postcode_field,
body.toversleutel .tv-co-fields #shipping_postcode_field{width:100%;float:none;}
/* Vaste gridposities: de postcode-plugin-JS verplaatst velden in de DOM na laden
   (insertBefore/After) — zonder pinning springt de layout. DOM-volgorde is nu
   irrelevant voor de weergave. */
.tv-co-fields--address #billing_postcode_field{grid-column:1;grid-row:1;}
.tv-co-fields--address #billing_house_number_field,
.tv-co-fields--address #billing_huisnummer_field{grid-column:2;grid-row:1;}
.tv-co-fields--address #billing_house_number_suffix_field{grid-column:3;grid-row:1;}
.tv-co-fields--address #billing_street_name_field{grid-column:1;grid-row:2;}
.tv-co-fields--address #billing_city_field{grid-column:2 / -1;grid-row:2;}
.tv-co-fields--address #billing_country_field{grid-column:1 / -1;grid-row:3;}
/* injecties van de plugin (foutmelding/adres-preview/notice) op eigen volle rij */
.tv-co-fields .wcnlpc-error,
.tv-co-fields .wcnlpc-address,
.tv-co-fields .wcnlpc-manual,
.tv-co-fields .woocommerce-NoticeGroup,
.tv-co-fields .wcnlpc-checkout-notice{grid-column:1 / -1;}
.tv-co-fields .woocommerce-NoticeGroup .woocommerce-error{margin:0;}
.tv-co-fields .tv-field--full{grid-column:1 / -1;}
.tv-co-fields .tv-field--city{grid-column:2 / -1;}
.tv-co-fields .tv-field--hidden{display:none!important;}
/* start verborgen, maar WC address-i18n JS mag tonen (inline display wint) — géén !important */
.tv-co-fields .tv-field--start-hidden{display:none;}
/* huisnr. is type=number (postcode-plugin) — spinners weg */
.tv-co-fields input[type=number]{-moz-appearance:textfield;appearance:textfield;}
.tv-co-fields input[type=number]::-webkit-outer-spin-button,
.tv-co-fields input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.tv-co-fields label{display:block;font-size:13px;font-weight:800;color:var(--tv-muted);margin-bottom:7px;}
.tv-co-fields label abbr.required{color:var(--tv-pink);text-decoration:none;}
.tv-co-fields .woocommerce-input-wrapper{display:block;}
.tv-co-fields .input-text{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:14px;outline:none;}
.tv-co-fields .input-text:focus{border-color:var(--tv-blue)!important;}
.tv-co-fields .woocommerce-invalid .input-text{border-color:var(--tv-pink)!important;}
/* selects (land) — native + select2 */
.tv-co-fields select{width:100%;box-sizing:border-box;border:2px solid var(--tv-line-2);border-radius:12px;
  padding:13px 15px;font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--tv-ink);
  background:#fff;outline:none;cursor:pointer;}
.tv-co-fields select:focus{border-color:var(--tv-blue);}
.tv-co-fields .select2-container{width:100%!important;}
body.toversleutel .tv-co-fields .select2-container--default .select2-selection--single{
  height:auto;background:#fff;padding:13px 15px!important;}
.tv-co-fields .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:1.45;padding:0;color:var(--tv-ink);font-weight:700;font-size:14px;}
.tv-co-fields .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:100%;top:0;right:12px;}

/* bezorgmethode — radio-kaarten */
.tv-co-shipopts{display:flex;flex-direction:column;gap:12px;}
.tv-co-shipopt{position:relative;display:flex;align-items:center;gap:14px;background:#fff;
  border:2px solid var(--tv-line-2);border-radius:14px;padding:16px 18px;cursor:pointer;
  transition:border-color .18s,background .18s;}
.tv-co-shipopt input{position:absolute;opacity:0;pointer-events:none;}
.tv-co-shipopt__dot{width:22px;height:22px;border-radius:999px;border:2px solid var(--tv-line-3);background:#fff;
  box-sizing:border-box;flex-shrink:0;transition:border .15s;}
.tv-co-shipopt input:checked + .tv-co-shipopt__dot{border:6px solid var(--tv-blue);}
.tv-co-shipopt.is-chosen,
.tv-co-shipopt:has(> input:checked){border-color:var(--tv-blue);background:var(--tv-surface);}
.tv-co-shipopt__txt{flex:1;min-width:0;}
.tv-co-shipopt__txt b{display:block;font-weight:800;color:var(--tv-ink);font-size:15px;line-height:1.25;}
.tv-co-shipopt__txt small{display:block;font-size:13px;color:var(--tv-muted-2);font-weight:700;line-height:1.3;margin-top:2px;}
.tv-co-shipopt__price{font-weight:800;color:var(--tv-ink);font-size:15px;white-space:nowrap;}
.tv-co-shipopt__price .amount{color:var(--tv-ink);}
.tv-co-shipopt__price.is-free,.tv-co-shipopt__price .is-free-label{color:var(--tv-green);}

/* besteloverzicht (sticky) */
.tv-co-summary{position:sticky;top:20px;background:var(--tv-surface);border:1px solid var(--tv-line);
  border-radius:22px;padding:26px;min-width:0;}
.tv-co-summary h3{font-size:20px;margin:0 0 18px;}
/* generieke WC-kaartregel (#order_review) neutraliseren — kaart-chrome zit op .tv-co-summary */
body.toversleutel .tv-co-summary #order_review{background:none;border:none;border-radius:0;padding:0;}

.tv-co-items{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;}
.tv-co-item{display:flex;gap:12px;align-items:center;}
.tv-co-item__thumb{position:relative;width:52px;height:52px;border-radius:12px;flex-shrink:0;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 10px,rgba(255,255,255,0) 10px 20px);}
.tv-co-item__thumb img{width:100%!important;height:100%!important;object-fit:cover;border-radius:12px;
  float:none!important;margin:0!important;box-shadow:none!important;}
.tv-co-item__qty{position:absolute;top:-7px;right:-7px;background:var(--tv-ink);color:#fff;font-size:11px;font-weight:800;
  min-width:20px;height:20px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;}
.tv-co-item__info{flex:1;min-width:0;}
.tv-co-item__name{font-weight:800;color:var(--tv-ink);font-size:14px;line-height:1.2;}
.tv-co-item__meta{font-size:12px;color:var(--tv-muted-2);font-weight:700;}
.tv-co-item__meta p{margin:0;display:inline;}
.tv-co-item__total{font-weight:800;color:var(--tv-ink);font-size:14px;white-space:nowrap;}

.tv-co-totals{border-top:1px dashed var(--tv-line-3);padding-top:16px;
  display:flex;flex-direction:column;gap:11px;font-size:14px;}
.tv-co-totals__row{display:flex;justify-content:space-between;gap:16px;color:var(--tv-muted);font-weight:700;}
.tv-co-totals__row .val{color:var(--tv-ink);text-align:right;}
.tv-co-totals__row--discount .val,
.tv-co-totals__row--discount .val .amount{color:var(--tv-pink);}
.tv-co-totals__row .val a{font-size:12px;font-weight:700;}
.tv-co-totals__total{border-top:1px dashed var(--tv-line-3);margin-top:4px;padding-top:12px;
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;}
.tv-co-totals__total > span:first-child{font-family:var(--font-head);font-weight:600;font-size:17px;color:var(--tv-ink);}
.tv-co-totals__total .val{font-family:var(--font-head);font-weight:600;font-size:24px;color:var(--tv-ink);text-align:right;}
.tv-co-totals__total .val .amount{font-family:var(--font-head);}
.tv-co-totals__total .val small{font-size:12px;color:var(--tv-muted-2);font-family:var(--font-body);font-weight:700;}

/* betaalmethoden + "Veilig betalen"-knop (WC payment-fragment).
   NB: WC-default stylet via #payment (ID-specificity) — hier dus ook #payment. */
body.toversleutel .woocommerce-checkout #payment,
body.toversleutel .tv-co-summary .woocommerce-checkout-payment{background:none;border:none;padding:0;margin-top:18px;border-radius:0;}
body.toversleutel .woocommerce-checkout #payment ul.payment_methods{border:none;padding:0;margin:0;}
body.toversleutel .woocommerce-checkout #payment div.payment_box{background:var(--tv-surface);color:var(--tv-muted);}
body.toversleutel .woocommerce-checkout #payment div.payment_box::before{content:none;display:none;}
body.toversleutel .woocommerce-checkout #payment div.form-row{padding:0;}
.tv-co-summary .wc_payment_methods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.tv-co-summary .wc_payment_method{position:relative;list-style:none;margin:0;background:#fff;
  border:2px solid var(--tv-line-2);border-radius:14px;transition:border-color .18s;}
.tv-co-summary .wc_payment_method:has(input:checked){border-color:var(--tv-blue);}
.tv-co-summary .wc_payment_method input.input-radio{position:absolute;opacity:0;pointer-events:none;}
.tv-co-summary .wc_payment_method > label{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;
  font-weight:800;color:var(--tv-ink);font-size:14px;margin:0;}
.tv-co-summary .wc_payment_method > label img{max-height:24px;width:auto;display:inline-block;}
.tv-co-summary .payment_box{margin:0 16px 13px;padding:12px 14px;background:var(--tv-surface);border-radius:10px;
  font-size:13px;color:var(--tv-muted);font-weight:600;}
.tv-co-summary .payment_box p{margin:0;}
.tv-co-summary .place-order{padding:0;margin:16px 0 0;}
body.toversleutel .tv-co-summary #place_order{width:100%;border-radius:16px!important;padding:17px!important;
  font-size:16px!important;display:flex;align-items:center;justify-content:center;gap:10px;transition:transform .18s;}
body.toversleutel .tv-co-summary #place_order:hover{transform:translateY(-3px);}
.tv-co-summary #place_order::before{content:"";width:20px;height:20px;flex-shrink:0;background:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 11V8a6 6 0 0 1 12 0v3M5 11h14v9H5z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 11V8a6 6 0 0 1 12 0v3M5 11h14v9H5z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
/* privacytekst — ruimte tussen tekst en knop */
body.toversleutel .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
.tv-co-summary .woocommerce-terms-and-conditions-wrapper{margin:14px 0 18px;font-size:12px;color:var(--tv-muted-2);font-weight:600;}
.tv-co-summary .woocommerce-privacy-policy-text p{margin:0;font-size:12px;color:var(--tv-muted-2);font-weight:600;line-height:1.5;}

.tv-co-note{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;
  color:var(--tv-muted-2);font-size:12px;font-weight:700;}
.tv-co-note svg{width:15px;height:15px;flex-shrink:0;}

/* bol.checkout-snelknop (cvb-gateway, <cvb-button>) — nette kaart op de contentkolom.
   Shadow-DOM binnenin is niet te stylen; host-element wel. flow-root voorkomt
   margin-collapse (blauwe body-balk onder de header). */
/* globaal: voorkomt dat kind-margins uit de witte container klappen (blauwe balk) */
body.toversleutel .tv-container{display:flow-root;}
body.toversleutel cvb-button[type="checkout"]{
  display:block;
  width:min(calc(var(--tv-max) - 2 * var(--gutter)), calc(100% - 2 * var(--gutter)));
  margin:24px auto 0;
  padding:16px 22px;
  background:var(--tv-surface);
  border:1px solid var(--tv-line);
  border-radius:18px;
  box-sizing:border-box;
  color:var(--tv-muted);
}
@media (min-width:800px){
  body.toversleutel cvb-button[type="checkout"]{
    display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-end;gap:8px;}
}

/* login-/coupon-toggles van WC niet in het ontwerp — coupon zit in de winkelwagen */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout form.woocommerce-form-login{display:none;}

@media (max-width:1000px){
  .tv-checkout{grid-template-columns:1fr;}
  .tv-co-summary{position:static;}
}
@media (max-width:560px){
  .tv-co-fields--contact,.tv-co-fields--address{grid-template-columns:1fr;}
  .tv-co-fields .tv-field--city,
  .tv-co-fields .tv-field--full{grid-column:auto;}
  .tv-co-steps i{width:20px;}
}

/* -------------------------------------------------------------------------
   404 — "Helaas, hier valt niks te snoepen!" (groot, speels, eigen illustratie)
   ------------------------------------------------------------------------- */
.tv-404{position:relative;overflow:hidden;min-height:calc(100vh - 260px);padding-top:72px;padding-bottom:88px;
  background:
    radial-gradient(900px 520px at 12% 0%,#fff7bf 0%,transparent 60%),
    radial-gradient(800px 560px at 92% 100%,#ffe6ee 0%,transparent 60%),
    linear-gradient(180deg,#f6fbfe 0%,#e3f4fb 100%);}
.tv-404--photo{background-size:cover;background-position:center;}
.tv-404--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.82) 55%,rgba(255,255,255,.45) 100%);}
.tv-404__blob{position:absolute;border-radius:999px;pointer-events:none;}
.tv-404__blob--1{width:340px;height:340px;background:rgba(33,170,218,.14);left:-120px;top:-100px;animation:floaty 8s ease-in-out infinite;}
.tv-404__blob--2{width:260px;height:260px;background:rgba(255,237,0,.35);right:6%;top:-60px;animation:floaty2 9s ease-in-out infinite;}
.tv-404__blob--3{width:220px;height:220px;background:rgba(252,78,123,.16);left:38%;bottom:-120px;animation:floaty 10s ease-in-out infinite;}
.tv-404__code{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-family:var(--font-head);font-weight:600;
  font-size:min(38vw,460px);line-height:1;color:#fff;opacity:.75;letter-spacing:-.02em;pointer-events:none;user-select:none;
  text-shadow:0 24px 60px rgba(27,58,75,.10);}
.tv-404__candy{position:absolute;pointer-events:none;filter:drop-shadow(0 12px 18px rgba(27,58,75,.14));}
.tv-404__candy--1{width:110px;left:6%;top:22%;transform:rotate(-18deg);animation:floaty 6s ease-in-out infinite;}
.tv-404__candy--2{width:64px;right:9%;top:12%;transform:rotate(22deg);animation:floaty2 7s ease-in-out infinite;}
.tv-404__candy--3{width:96px;right:18%;bottom:10%;transform:rotate(14deg);animation:floaty 7.5s ease-in-out infinite;}
.tv-404__candy--4{width:56px;left:44%;top:8%;animation:floaty2 8.5s ease-in-out infinite;}
.tv-404__candy--5{width:64px;left:16%;bottom:12%;transform:rotate(-12deg);animation:floaty 9s ease-in-out infinite;}
.tv-404__grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
.tv-404__text .tv-pill{margin-bottom:22px;}
.tv-404__text h1{font-size:64px;line-height:1.02;margin:0 0 22px;color:var(--tv-ink);}
.tv-404__text p{font-size:20px;line-height:1.6;color:var(--tv-muted);max-width:560px;margin:0 0 34px;font-weight:600;}
body.toversleutel .tv-404__btn{font-size:18px;padding:18px 34px;}
.tv-404__art{position:relative;}
.tv-404__jar{width:100%;max-width:460px;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 30px 40px rgba(27,58,75,.16));animation:floaty 7s ease-in-out infinite;}
@media (max-width:900px){
  .tv-404{padding-top:48px;padding-bottom:64px;min-height:0;}
  .tv-404__grid{grid-template-columns:1fr;gap:28px;text-align:center;}
  .tv-404__text p{margin-left:auto;margin-right:auto;}
  .tv-404__text h1{font-size:42px;}
  .tv-404__text p{font-size:17px;}
  .tv-404__code{top:22%;font-size:60vw;}
  .tv-404__jar{max-width:300px;}
  .tv-404__candy--1,.tv-404__candy--3{display:none;}
  .tv-404__candy--2{width:44px;right:5%;top:6%;}
  .tv-404__candy--4{width:40px;left:8%;top:6%;}
  .tv-404__candy--5{width:44px;left:auto;right:6%;bottom:6%;}
}

/* -------------------------------------------------------------------------
   INLOGGEN / ACCOUNT AANMAKEN (uitgelogd /my-account/) — woocommerce/myaccount/form-login.php
   ------------------------------------------------------------------------- */
.tv-auth{width:100%;}
.tv-auth__hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--tv-blue) 0%,var(--tv-blue-soft) 100%);
  padding-top:64px;padding-bottom:120px;color:#fff;}
.tv-auth__hero-inner{position:relative;}
.tv-auth__hero .tv-pill{background:rgba(255,255,255,.2);color:#fff;margin-bottom:18px;}
.tv-auth__hero h1{color:#fff;font-size:52px;line-height:1.08;margin:0 0 14px;}
.tv-auth__hero p{font-size:18px;line-height:1.6;opacity:.95;margin:0;max-width:560px;}
.tv-auth__body{position:relative;margin:-80px 0 0;padding-top:0;padding-bottom:64px;}
.tv-auth__body .woocommerce-notices-wrapper{max-width:1040px;margin:0 auto;padding:0;}
.tv-auth__body .woocommerce-notices-wrapper:not(:empty){margin-bottom:18px;}
.tv-authgrid{display:grid;grid-template-columns:1fr;gap:26px;max-width:520px;margin:0 auto;align-items:stretch;}
.tv-authgrid--2{grid-template-columns:1fr 1fr;max-width:1040px;}
.tv-authcard{position:relative;background:#fff;border:1px solid var(--tv-line);border-radius:26px;padding:34px 34px 30px;
  box-shadow:0 30px 60px -30px rgba(27,58,75,.28);display:flex;flex-direction:column;}
.tv-authcard--register{border-top:6px solid var(--tv-pink);}
.tv-authcard--login{border-top:6px solid var(--tv-blue);}
.tv-authcard__ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;margin-bottom:16px;}
.tv-authcard__ico svg{width:26px;height:26px;}
.tv-authcard h2{font-size:28px;margin:0 0 6px;}
.tv-authcard__sub{color:var(--tv-muted);font-size:15px;line-height:1.6;margin:0 0 20px;font-weight:600;}
.tv-authcard__perks{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px;}
.tv-authcard__perks li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--tv-ink);}
.tv-authcard__perks svg{width:22px;height:22px;flex:none;padding:3px;border-radius:999px;background:var(--tint-green);color:var(--tv-green);}
body.toversleutel .tv-authcard form.login,
body.toversleutel .tv-authcard form.register{background:none;border:0;border-radius:0;padding:0;margin:0;display:flex;flex-direction:column;flex:1;}
body.toversleutel .tv-authcard .form-row{margin:0 0 14px;padding:0;}
body.toversleutel .tv-authcard .form-row label{display:block;font-size:13px;font-weight:800;color:var(--tv-muted);margin-bottom:7px;}
body.toversleutel .tv-authcard .form-row label .required{color:var(--tv-pink);text-decoration:none;}
body.toversleutel .tv-authcard .input-text{width:100%;box-sizing:border-box;border:2px solid var(--tv-line-2);border-radius:12px;
  padding:13px 15px;font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--tv-ink);background:#fff;outline:none;}
body.toversleutel .tv-authcard .input-text:focus{border-color:var(--tv-blue);}
body.toversleutel .tv-authcard .input-text::placeholder{color:var(--tv-muted-3);font-weight:600;}
body.toversleutel .tv-authcard .woocommerce-invalid .input-text{border-color:var(--tv-pink);}
.tv-authcard__rowsplit{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
body.toversleutel .tv-authcard .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;color:var(--tv-muted);cursor:pointer;}
body.toversleutel .tv-authcard .woocommerce-form-login__rememberme input{width:18px;height:18px;margin:0;accent-color:var(--tv-blue);}
.tv-authcard__lost{font-size:13px;font-weight:800;color:var(--tv-blue);text-decoration:none;}
.tv-authcard__lost:hover{text-decoration:underline;}
.tv-authcard__note{font-size:13px;color:var(--tv-muted);font-weight:600;line-height:1.55;margin:-4px 0 14px;}
body.toversleutel .tv-authcard .woocommerce-privacy-policy-text{margin:0 0 14px;}
body.toversleutel .tv-authcard .woocommerce-privacy-policy-text p{font-size:12.5px;color:var(--tv-muted-2);line-height:1.55;margin:0;font-weight:600;}
body.toversleutel .tv-authcard .woocommerce-privacy-policy-text a{color:var(--tv-blue);font-weight:800;}
body.toversleutel .tv-authcard .tv-authcard__submit{margin:auto 0 0;padding-top:4px;}
body.toversleutel .tv-authcard .tv-authcard__submit .tv-btn{width:100%;justify-content:center;text-align:center;padding:16px 24px;font-size:16px;}
.tv-auth__guest{text-align:center;margin:26px 0 0;font-size:14px;font-weight:600;color:var(--tv-muted);}
.tv-auth__guest a{font-weight:800;color:var(--tv-blue);text-decoration:none;margin-left:4px;}
.tv-auth__guest a:hover{text-decoration:underline;}
/* ingelogd: hero + navigatie/inhoud-grid dat over de hero heen hangt */
.tv-auth--account .tv-auth__hero{padding-bottom:104px;}
.tv-auth--account .tv-account{margin-top:-72px;position:relative;padding-top:0;}
body.toversleutel .tv-auth--account .woocommerce-MyAccount-navigation{background:#fff;box-shadow:0 30px 60px -30px rgba(27,58,75,.28);}
.tv-account__panel{background:#fff;border:1px solid var(--tv-line);border-radius:26px;padding:34px;min-width:0;
  box-shadow:0 30px 60px -30px rgba(27,58,75,.28);}
.tv-auth--account .tv-dash__hi{margin-top:0;}
.tv-auth--account .woocommerce-MyAccount-content .woocommerce-notices-wrapper:not(:empty){margin-bottom:16px;}
body.toversleutel .tv-account__panel .input-text,
body.toversleutel .tv-account__panel select{width:100%;box-sizing:border-box;border:2px solid var(--tv-line-2);border-radius:12px;
  padding:13px 15px;font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--tv-ink);background:#fff;outline:none;}
body.toversleutel .tv-account__panel .input-text:focus,
body.toversleutel .tv-account__panel select:focus{border-color:var(--tv-blue);}
body.toversleutel .tv-account__panel .woocommerce-Button,
body.toversleutel .tv-account__panel button.button{background:var(--tv-blue);color:#fff;border:0;border-radius:999px;padding:14px 26px;
  font-family:var(--font-body);font-weight:800;font-size:15px;cursor:pointer;box-shadow:var(--shadow-btn);}
body.toversleutel .tv-account__panel .woocommerce-Button:hover,
body.toversleutel .tv-account__panel button.button:hover{background:var(--tv-blue-dark);}
@media (max-width:900px){
  .tv-auth--account .tv-auth__hero{padding-bottom:84px;}
  .tv-auth--account .tv-account{margin-top:-56px;}
  .tv-account__panel{padding:22px 18px;border-radius:20px;}
}

/* wachtwoord vergeten / resetten / bevestiging: zelfde kaart (eigen templates) */
body.toversleutel .tv-authcard form.lost_reset_password{background:none;border:0;border-radius:0;padding:0;margin:0;display:flex;flex-direction:column;}
body.toversleutel .tv-authcard .form-row-first,
body.toversleutel .tv-authcard .form-row-last{width:100%;float:none;}
.tv-authcard__back{margin:16px 0 0;font-size:13px;font-weight:800;text-align:center;}
.tv-authcard__back a{color:var(--tv-blue);text-decoration:none;}
.tv-authcard__back a:hover{text-decoration:underline;}
.tv-authcard--center{text-align:center;align-items:center;}
.tv-authcard--center .tv-authcard__sub{max-width:420px;}
body.toversleutel .tv-authcard--center .tv-authcard__submit{width:100%;}
body.toversleutel .tv-authcard--center .tv-authcard__submit .tv-btn{width:auto;display:inline-flex;padding:15px 30px;}
@media (max-width:900px){
  .tv-auth__hero{padding-top:40px;padding-bottom:96px;}
  .tv-auth__hero h1{font-size:36px;}
  .tv-auth__hero p{font-size:16px;}
  .tv-auth__body{margin-top:-64px;padding-bottom:44px;}
  .tv-authgrid--2{grid-template-columns:1fr;}
  .tv-authcard{padding:24px 22px 22px;border-radius:22px;}
  .tv-authcard h2{font-size:24px;}
}

/* =====================================================================
   MOBIEL ≤760px — volgens mobiel ontwerp (project/site/mobiel.dc.html).
   Staat bewust ONDERAAN: overschrijft eerdere responsive-regels.
   Desktop blijft onaangetast.
   ===================================================================== */
.tv-bottomnav{display:none;}

/* --- TABLET + MOBIEL ≤1024px: hoofdmenu = hamburger + drawer (menulinks wrapten anders over meerdere regels) --- */
@media (max-width:1024px){
  .tv-nav .tv-nav__links{display:none;}
  /* navbalk klapt in; menuknop = hamburger-vierkant in header-actions naast de zoekknop (.tv-header__menubtn).
     De navbalk-trigger zelf is op tablet verborgen (mobiel ≤760 gebruikt hem weer, absoluut linksboven). */
  .tv-nav{border-top:none;position:static;}
  .tv-nav__inner{padding:0;}
  body.toversleutel .tv-nav__trigger{display:none;}
  body.toversleutel .tv-header__main{gap:24px;}
  body.toversleutel .tv-header__menubtn{display:flex;align-items:center;justify-content:center;
    width:46px;height:46px;border:none;border-radius:13px;background:var(--tv-surface);cursor:pointer;padding:0;}
  body.toversleutel .tv-header__menubtn:hover{background:var(--tint-blue);}
  .tv-header__menubtn svg{width:22px;height:22px;}
  /* inline mega-menu opent niet (hamburger → .tv-mmenu-drawer) */
  body.toversleutel .tv-mega{display:none!important;}

  /* --- mobiel menu-venster (drawer, 2 niveaus) --- */
  body.toversleutel .tv-mmenu{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;
    z-index:1001;width:330px;max-width:88vw;background:#fff;overflow-y:auto;
    transform:translateX(-100%);transition:transform .3s ease;
    box-shadow:30px 0 60px -30px rgba(27,58,75,.5);}
  body.toversleutel .tv-mmenu.is-open{transform:none;}
  body.toversleutel .tv-mmenu-backdrop{display:block;position:fixed;inset:0;z-index:1000;
    background:rgba(27,58,75,.4);opacity:0;pointer-events:none;transition:opacity .3s;}
  body.toversleutel .tv-mmenu-backdrop.is-open{opacity:1;pointer-events:auto;}
  .tv-mmenu__head{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--tv-line);
    position:sticky;top:0;background:#fff;z-index:2;}
  .tv-mmenu__title{flex:1;font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--tv-ink);}
  body.toversleutel .tv-mmenu__back,
  body.toversleutel .tv-mmenu__close{display:flex;flex-shrink:0;width:36px;height:36px;border:none;
    border-radius:11px;background:var(--tv-surface);align-items:center;justify-content:center;
    cursor:pointer;color:var(--tv-ink);padding:0;}
  .tv-mmenu__back svg,.tv-mmenu__close svg{width:17px;height:17px;}
  .tv-mmenu__view{padding:10px 12px 20px;}
  body.toversleutel .tv-mmenu__cat{display:flex;align-items:center;gap:12px;width:100%;border:none;
    background:none;cursor:pointer;padding:12px 10px;border-radius:14px;text-align:left;
    font-family:var(--font-body);font-weight:800;font-size:14px;color:var(--tv-ink);}
  body.toversleutel .tv-mmenu__cat:hover{background:var(--tv-surface);}
  .tv-mmenu__cat-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;
    justify-content:center;flex-shrink:0;}
  .tv-mmenu__cat .label{flex:1;}
  body.toversleutel a.tv-mmenu__all{display:block;padding:10px;font-weight:800;font-size:14px;
    text-decoration:none;color:var(--tv-blue);}
  body.toversleutel a.tv-mmenu__sub{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:11px 10px;border-radius:12px;text-decoration:none;color:var(--tv-muted);
    font-weight:700;font-size:14px;}
  body.toversleutel a.tv-mmenu__sub:hover{background:var(--tv-surface);color:var(--tv-blue);}
  .tv-mmenu__sub .count{color:var(--tv-muted-3);font-size:12px;font-weight:800;}
  .tv-mmenu__prods{display:flex;flex-direction:column;gap:10px;margin-top:14px;
    padding-top:14px;border-top:1px solid var(--tv-line);}
  /* primaire menulinks onderaan in de drawer (desktop staan ze in de navbalk) */
  .tv-mmenu__links{margin-top:12px;padding-top:12px;border-top:1px solid var(--tv-line);}
  .tv-mmenu__links-title{display:block;padding:6px 10px 4px;font-size:11px;font-weight:800;letter-spacing:.6px;
    text-transform:uppercase;color:var(--tv-muted-3);}
  .tv-mmenu__links ul,.tv-mmenu__links li{list-style:none;margin:0;padding:0;}
  body.toversleutel .tv-mmenu__links a{display:block;padding:11px 10px;border-radius:12px;text-decoration:none;
    color:var(--tv-ink);font-weight:800;font-size:14px;}
  body.toversleutel .tv-mmenu__links a:hover{background:var(--tv-surface);color:var(--tv-blue);}
  body.toversleutel .tv-mmenu__links a.tv-nav__sale,
  body.toversleutel .tv-mmenu__links li.menu-item.sale > a{color:var(--tv-pink);}
  /* contact-kaart onderaan de rootview */
  body.toversleutel a.tv-mmenu__contact{display:flex;align-items:center;gap:12px;margin:16px 0 4px;padding:14px;
    border-radius:16px;background:var(--tint-blue);text-decoration:none;color:var(--tv-ink);}
  body.toversleutel a.tv-mmenu__contact:hover{background:#d5eef9;}
  .tv-mmenu__contact-ico{width:40px;height:40px;border-radius:12px;background:#fff;display:flex;align-items:center;
    justify-content:center;flex-shrink:0;}
  .tv-mmenu__contact-ico svg{width:20px;height:20px;}
  .tv-mmenu__contact-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .tv-mmenu__contact-title{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);}
  .tv-mmenu__contact-sub{font-size:13px;font-weight:700;color:var(--tv-blue);}

  /* --- topbar: USP's één voor één (auto-rotatie via initTopbarRotate; .is-active = zichtbaar) --- */
  body.toversleutel .tv-topbar--rotate{display:block;position:relative;height:38px;padding:0 20px;overflow:hidden;}
  .tv-topbar--rotate > span{position:absolute;left:20px;right:20px;top:0;height:38px;
    display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease;pointer-events:none;}
  .tv-topbar--rotate > span.is-active{opacity:1;transform:none;}
  .tv-topbar--rotate > .sep{display:none;}

  /* --- zoeken: header-zoekbalk weg (te breed), zoekknop in actions opent het zoekvenster --- */
  .tv-header__main > .tv-search{display:none;}
  body.toversleutel .tv-header__main{justify-content:space-between;}
  body.toversleutel .tv-header__searchbtn{display:flex;align-items:center;justify-content:center;
    width:46px;height:46px;border:none;border-radius:13px;background:var(--tv-surface);cursor:pointer;padding:0;}
  body.toversleutel .tv-header__searchbtn:hover{background:var(--tint-blue);}
  .tv-header__searchbtn svg{width:22px;height:22px;}
  /* zoekvenster: schuift van boven in, zelfde patroon als de filterdrawer */
  body.toversleutel .tv-msearch{display:block;position:fixed;top:0;left:0;right:0;z-index:1001;
    background:#fff;padding:16px 18px 22px;border-radius:0 0 22px 22px;
    transform:translateY(-110%);transition:transform .3s ease;
    box-shadow:0 30px 60px -30px rgba(27,58,75,.5);}
  body.toversleutel .tv-msearch.is-open{transform:none;}
  body.toversleutel .tv-msearch-backdrop{display:block;position:fixed;inset:0;z-index:1000;
    background:rgba(27,58,75,.4);opacity:0;pointer-events:none;transition:opacity .3s;}
  body.toversleutel .tv-msearch-backdrop.is-open{opacity:1;pointer-events:auto;}
  .tv-msearch__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
  .tv-msearch__head > span{font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--tv-ink);}
  body.toversleutel .tv-msearch__close{display:flex;align-items:center;justify-content:center;border:none;
    background:var(--tv-surface);width:36px;height:36px;border-radius:11px;cursor:pointer;color:var(--tv-ink);}
  .tv-msearch__close svg{width:16px;height:16px;}
  body.toversleutel .tv-msearch .tv-search{display:block;}
}

@media (max-width:760px){
  :root{--gutter:18px;}

  /* --- APP-BAR: hamburger | logo | mandje, zoekpill eronder --- */
  .tv-topbar{display:none;}
  /* sticky header (alleen mobiel) */
  body.toversleutel .tv-header{position:sticky;top:0;z-index:100;background:#fff;
    box-shadow:0 10px 30px -18px rgba(27,58,75,.25);}
  body.toversleutel .tv-header__main{
    display:grid;grid-template-columns:42px 1fr 42px;
    grid-template-areas:"burger logo actions" "search search search";
    align-items:center;gap:10px 12px;padding:12px 18px 14px;}
  .tv-header__main .tv-logo{grid-area:logo;justify-self:center;}
  .tv-logo img{height:34px;}
  .tv-header__main .tv-search{grid-area:search;order:0;flex-basis:auto;
    max-height:56px;opacity:1;overflow:hidden;
    transition:max-height .3s ease,opacity .22s ease;}
  .tv-header__actions{grid-area:actions;}
  body.toversleutel .tv-header__searchbtn{display:none;}
  body.toversleutel .tv-header__menubtn{display:none;}
  .tv-header__main > .tv-search{display:block;}
  .tv-header a.tv-account{display:none;}
  /* gescrold (is-stuck via JS): zoekbalk klapt soepel in — alleen bovenaan zichtbaar */
  body.toversleutel .tv-header__main{transition:row-gap .3s ease;}
  body.toversleutel .tv-header.is-stuck .tv-header__main{row-gap:0;}
  body.toversleutel .tv-header.is-stuck .tv-header__main .tv-search{
    max-height:0;opacity:0;pointer-events:none;}
  body.toversleutel a.tv-cart{width:42px;height:42px;padding:0;justify-content:center;border-radius:13px;
    box-shadow:0 6px 14px -5px rgba(33,170,218,.7);}
  body.toversleutel a.tv-cart > span:not(.tv-cart__count){display:none;}
  body.toversleutel a.tv-cart .tv-cart__count{display:flex;top:-5px;right:-5px;width:19px;height:19px;font-size:11px;}
  /* hamburger: bestaande mega-trigger als vierkant linksboven in de header */
  .tv-nav{border-top:none;position:static;}
  .tv-nav__inner{padding:0;overflow:visible;}
  .tv-nav .tv-nav__links{display:none;}
  body.toversleutel .tv-nav__trigger{position:absolute;top:12px;bottom:auto;left:18px;width:42px;height:42px;padding:0;
    border-radius:13px;background:var(--tv-surface);font-size:0;gap:0;z-index:6;
    display:flex;align-items:center;justify-content:center;}
  body.toversleutel .tv-nav__trigger.is-open{background:var(--tint-blue);}
  body.toversleutel .tv-nav__trigger svg{width:20px;height:20px;}
  body.toversleutel .tv-nav__trigger svg path{stroke:var(--tv-blue);}
  /* mega/mmenu-drawer-regels: zie ≤1024px-blok (tablet + mobiel) */

  /* --- HERO: roze gradient-kaart --- */
  .tv-hero{margin:6px 18px 0;padding:24px 22px;border-radius:26px;
    background:linear-gradient(135deg,var(--tv-pink),var(--tv-pink-soft));}
  .tv-hero__grid{display:block;}
  .tv-hero__media,.tv-hero__proof,.tv-hero > .tv-hero__grid p,.tv-hero .tv-btn--ghost{display:none;}
  .tv-hero h1{color:#fff;font-size:27px;line-height:1.1;margin:0 0 14px;}
  .tv-hero h1 .accent{color:var(--tv-yellow);}
  body.toversleutel .tv-hero .tv-pill--yellow{background:rgba(255,255,255,.22);color:#fff;
    font-size:11px;padding:6px 12px;margin-bottom:12px!important;}
  body.toversleutel .tv-hero .tv-btn--primary{background:#fff;color:var(--tv-pink);box-shadow:none;
    font-size:14px;padding:12px 20px;border-radius:13px;}
  .tv-hero__blob--1{width:120px;height:120px;right:-30px;top:-40px;background:rgba(255,237,0,.32);}
  .tv-hero__blob--2{display:none;}

  /* --- CATEGORIEËN: horizontaal scrollende chips --- */
  .tv-cats{display:flex;overflow-x:auto;gap:12px;padding-bottom:6px;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;}
  .tv-cats::-webkit-scrollbar{display:none;}
  .tv-cats .tv-cat-card{flex:0 0 calc((100% - 3 * 12px) / 3.5);padding:14px 6px;border-radius:20px;gap:8px;} /* 3,5 in beeld */
  .tv-cats-nav__btn{display:none!important;} /* mobiel: swipen, geen pijlen */
  .tv-cat-card:hover{transform:none;}
  .tv-cat-card__img{width:54px;height:54px;}
  .tv-cat-card__name{font-size:12px;line-height:1.2;}
  .tv-cat-card__count{display:none;}

  /* --- SECTIES: koppen + 2-koloms productraster --- */
  .tv-block{padding-top:24px;}
  .tv-section-head{margin-bottom:12px;}
  .tv-section-head h2{font-size:18px;}
  .tv-eyebrow{font-size:12px;}
  .tv-link-more{font-size:13px;}
  .tv-products--5,.tv-products--4{grid-template-columns:1fr 1fr;gap:14px;}
  /* homepage-rijen (toppers/nieuw): max 4 kaarten op mobiel */
  .tv-products--5 > *:nth-child(n+5){display:none;}

  /* --- PROMOKAARTEN --- */
  .tv-promos{gap:16px;}
  .tv-promo{padding:24px 22px;border-radius:24px;}
  .tv-promo h3{font-size:22px;margin:12px 0 6px;}
  .tv-promo p{font-size:13px;margin:0 0 16px;}
  .tv-promo__link{font-size:13px;padding:11px 18px;border-radius:12px;}

  /* --- USP-band niet op mobiel (design: footer direct na content) --- */
  .tv-usps{display:none;}

  /* --- CONTENT: waarden-kaarten als rij (icoon links, tekst rechts) --- */
  .tv-values{gap:12px;}
  body.toversleutel .tv-value{display:grid;grid-template-columns:46px 1fr;column-gap:14px;
    padding:20px;border-radius:18px;align-items:start;}
  body.toversleutel .tv-value__ico{grid-row:1 / 3;width:46px;height:46px;border-radius:13px;margin-bottom:0;}
  body.toversleutel .tv-value__ico svg{width:24px!important;height:24px!important;}
  .tv-value h3{font-size:17px;margin:0 0 4px;}
  .tv-value p{font-size:13px;line-height:1.55;}
  body.toversleutel .tv-value .tv-btn{grid-column:1 / -1;width:100%;margin-top:12px!important;}

  /* --- MIJN ACCOUNT (mobiel) --- */
  body.woocommerce-account .tv-crumbs{display:none;}
  /* kop zit ín de wrapper (die heeft al 18px) — zelf geen zijpadding */
  body.woocommerce-account .tv-page-head{padding:14px 0 4px;}
  body.woocommerce-account .tv-page-head h1{font-size:22px;}
  /* ingelogd: zijmarge op de wrapper; .tv-account zelf dan zonder (geen dubbel) */
  body.woocommerce-account.logged-in .tv-container > .woocommerce{padding:0 18px 44px;}
  .tv-account{padding:10px var(--gutter) 40px;gap:16px;}
  /* grid-items mogen niet oprekken door de brede chips-rij */
  .tv-account > *{min-width:0;max-width:100%;}
  /* nav: horizontaal scrollende chips i.p.v. sidebar */
  body.toversleutel .woocommerce-MyAccount-navigation{background:none;border:none;border-radius:0;padding:0;min-width:0;max-width:100%;}
  body.toversleutel .woocommerce-MyAccount-navigation ul{flex-direction:row;gap:8px;overflow-x:auto;
    padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  body.toversleutel .woocommerce-MyAccount-navigation ul::-webkit-scrollbar{display:none;}
  body.toversleutel .woocommerce-MyAccount-navigation a{white-space:nowrap;background:#fff;
    border:2px solid var(--tv-line-2);border-radius:999px;padding:9px 16px;font-size:13px;}
  body.toversleutel .woocommerce-MyAccount-navigation .is-active a{background:var(--tv-blue);
    border-color:var(--tv-blue);color:#fff;}
  body.toversleutel .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a{
    border-color:var(--tint-pink);}
  .tv-account__nav-icon{width:16px;height:16px;}
  /* dashboard */
  .tv-dash__hi{font-size:22px;}
  .tv-dash__hi .emoji{width:20px;height:20px;}
  .tv-dash__lead{font-size:14px;margin-bottom:16px;}
  .tv-dash__cards{gap:12px;margin-bottom:16px;}
  .tv-dash__card{padding:18px;border-radius:16px;}
  .tv-dash__icon{width:40px;height:40px;border-radius:12px;margin-bottom:4px;}
  .tv-dash__label{font-size:16px;}
  /* inhoud + adressen + login compact */
  .woocommerce-MyAccount-content{font-size:14px;}
  .woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{font-size:18px;}
  .woocommerce-MyAccount-content .woocommerce-Address{padding:18px;border-radius:16px;}
  body.toversleutel .woocommerce form.login,
  body.toversleutel .woocommerce form.register{padding:18px;border-radius:18px;}
  /* uitgelogd: login-wrapper met zijmarge (stond tegen de schermrand) */
  body.woocommerce-account:not(.logged-in) .tv-container > .woocommerce{padding:4px 18px 44px;}
  /* eigen templates (.tv-auth): hero/body hebben al gutter — wrapper zonder zijpadding, anders hero niet 100% breed */
  body.woocommerce-account .tv-container > .woocommerce:has(.tv-auth){padding-left:0;padding-right:0;}
  /* koppen in de wrapper geen éigen inspringing meer — anders dubbel (18+18) */
  body.woocommerce-account:not(.logged-in) .tv-container > .woocommerce h2{
    padding-left:0;padding-right:0;margin-left:0;margin-right:0;}

  /* content-hero compact (verhaal + contact) */
  body.toversleutel .tv-content-hero{padding:34px 22px 36px;}
  .tv-content-hero h1{font-size:28px;line-height:1.12;margin:0 0 12px;}
  .tv-content-hero p{font-size:14px;line-height:1.6;}
  body.toversleutel .tv-content-hero .tv-pill{font-size:11px;padding:6px 12px;margin-bottom:14px;}

  /* --- CONTACT: kaarten + formulier compact --- */
  .tv-contact{padding-top:22px;padding-bottom:40px;gap:14px;}
  .tv-contact__info{gap:12px;}
  .tv-contact__card{padding:16px 18px;border-radius:16px;gap:12px;}
  .tv-contact__ico{width:42px;height:42px;border-radius:12px;}
  .tv-contact__ico svg{width:20px;height:20px;}
  .tv-contact__card h3{font-size:16px;margin:0 0 4px;}
  .tv-contact__card p{font-size:13px;}
  .tv-contact__form{padding:18px;border-radius:18px;}
  .tv-contact__form .gform_title{font-size:18px;margin-bottom:14px;}
  .tv-contact__form .gform_wrapper .gfield{margin-bottom:10px;}
  .tv-contact__form .gform_wrapper .gfield_label{font-size:12px;margin-bottom:6px;}
  body.toversleutel .tv-contact__form .gform_wrapper input[type=text],
  body.toversleutel .tv-contact__form .gform_wrapper input[type=email],
  body.toversleutel .tv-contact__form .gform_wrapper input[type=tel],
  body.toversleutel .tv-contact__form .gform_wrapper input[type=number],
  body.toversleutel .tv-contact__form .gform_wrapper select,
  body.toversleutel .tv-contact__form .gform_wrapper textarea{
    padding:12px 14px!important;border-radius:11px!important;}
  body.toversleutel .tv-contact__form .gform_wrapper .gform_button{
    font-size:15px!important;padding:15px!important;border-radius:14px!important;}
  body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__country-selector{padding:0 12px;border-radius:11px 0 0 11px;}
  body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone input.gform-phone__input{border-radius:0 11px 11px 0!important;}
  body.toversleutel .tv-contact__form .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__dropdown{max-width:none;}

  /* donkere stats-balk: 2x2, compacter */
  body.toversleutel .tv-stats{grid-template-columns:1fr 1fr;gap:20px 12px;
    padding:26px 20px;border-radius:22px;margin:22px auto;}
  .tv-stat b{font-size:32px;}
  .tv-stat span{font-size:12px;margin-top:6px;}

  /* roze CTA-band compact */
  body.toversleutel .tv-cta-band{margin:22px auto 26px;padding:30px 24px;border-radius:22px;}
  .tv-cta-band h2{font-size:23px;margin:0 0 10px;}
  .tv-cta-band p{font-size:14px;margin:0 0 18px;}
  body.toversleutel .tv-cta-band .tv-btn{font-size:15px;padding:14px 26px;border-radius:14px;}

  /* --- FOOTER compact: 2 kolommen, geen nieuwsbrief, alles gecentreerd onderin --- */
  .tv-footer__cols{grid-template-columns:1fr 1fr;gap:18px 12px;padding:28px 18px 24px;}
  .tv-footer__cols > div:first-child{grid-column:1 / -1;}
  .tv-footer__cols > div:nth-child(4){display:none;}
  .tv-footer__cols img{height:34px;margin-bottom:14px;}
  .tv-footer__cols p{font-size:13px;margin:0 0 16px;}
  .tv-footer__col-title{font-size:14px;margin-bottom:10px;}
  .tv-footer__links{gap:8px;font-size:13px;}
  .tv-footer__bar-inner{flex-direction:column;align-items:flex-start;text-align:left;gap:8px;
    padding:16px 18px calc(88px + env(safe-area-inset-bottom));}
  .tv-footer__legal{justify-content:flex-start;}
  /* copyright en credit elk op eigen regel, links uitgelijnd */
  .tv-footer__copy{flex-direction:column;align-items:flex-start;gap:4px;}
  .tv-footer__copy > span + span::before{content:none;margin:0;}

  /* --- BOTTOM-NAV (vast onderin) --- */
  body.toversleutel .tv-bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:900;
    display:flex;justify-content:space-around;align-items:flex-end;background:#fff;
    border-top:1px solid var(--tv-line);padding:10px 12px calc(12px + env(safe-area-inset-bottom));}
  body.toversleutel .tv-bottomnav a{display:flex;flex-direction:column;align-items:center;gap:4px;
    text-decoration:none;color:var(--tv-muted-2);font-size:10px;font-weight:800;position:relative;}
  body.toversleutel .tv-bottomnav a svg{width:24px;height:24px;}
  body.toversleutel .tv-bottomnav a.is-active{color:var(--tv-blue);}
  body.toversleutel .tv-bottomnav .tv-bottomnav__count{position:absolute;top:-4px;right:2px;
    background:var(--tv-yellow);color:var(--tv-ink);font-size:10px;font-weight:800;min-width:17px;height:17px;
    padding:0 3px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;}
  /* niet op de afleidingsvrije checkout */
  body.woocommerce-checkout .tv-bottomnav{display:none;}
}

/* --- mfilterbar + filter-drawer + zoekvenster: standaard (desktop) verborgen --- */
.tv-mcathead,.tv-mcathead-desc{display:none;}
.tv-mfilterbar{display:none;}
.tv-shop__filterbtn{display:none;}
.tv-shop__left{display:flex;align-items:center;gap:14px;min-width:0;}
.tv-msearch{display:none;}
.tv-header__searchbtn{display:none;}
.tv-header__menubtn{display:none;}
.tv-msearch-backdrop{display:none;}
.tv-filters-backdrop{display:none;}
.tv-filters__close{display:none;}

/* --- TABLET + MOBIEL ≤900px: filterknop bovenaan + filterkolom als drawer --- */
@media (max-width:900px){
  /* --- filterbar: blauwe Filters-knop + actieve chips, horizontaal scrollend --- */
  body.toversleutel .tv-mfilterbar{display:flex;gap:8px;overflow-x:auto;align-items:center;
    padding:14px var(--gutter);border-bottom:1px solid var(--tv-line);
    -webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .tv-mfilterbar::-webkit-scrollbar{display:none;}
  body.toversleutel .tv-mfilterbar__btn{flex-shrink:0;border:none;background:var(--tv-blue);color:#fff;
    font-family:var(--font-body);font-weight:800;font-size:13px;padding:9px 16px;border-radius:999px;
    display:inline-flex;align-items:center;gap:7px;cursor:pointer;}
  .tv-mfilterbar__btn svg{width:15px;height:15px;}
  body.toversleutel a.tv-mfilterbar__chip{flex-shrink:0;border:2px solid var(--tv-line-2);background:#fff;
    color:var(--tv-ink);font-weight:800;font-size:13px;padding:7px 14px;border-radius:999px;
    text-decoration:none;white-space:nowrap;}

  /* tablet (761–900): Filters-knop staat in de toolbar naast de telling; mfilterbar toont alleen actieve chips */
  body.toversleutel .tv-shop__filterbtn{display:inline-flex;}
  body.toversleutel .tv-mfilterbar .tv-mfilterbar__btn{display:none;}
  body.toversleutel .tv-mfilterbar--empty{display:none;}

  /* --- filterkolom = drawer --- */
  .tv-shop{display:block;}
  body.toversleutel .tv-filters{position:fixed;top:0;left:0;bottom:0;z-index:1001;width:330px;max-width:88vw;
    height:100vh;height:100dvh;min-height:100%;box-sizing:border-box;align-self:auto;
    background:#fff;overflow-y:auto;transform:translateX(-100%);transition:transform .3s ease;
    order:0;padding:16px;box-shadow:30px 0 60px -30px rgba(27,58,75,.5);}
  body.toversleutel .tv-filters.is-open{transform:none;}
  .tv-filters__box{border:none;background:none;border-radius:0;padding:2px;}
  body.toversleutel .tv-filters-backdrop{display:block;position:fixed;inset:0;z-index:1000;
    background:rgba(27,58,75,.4);opacity:0;pointer-events:none;transition:opacity .3s;}
  body.toversleutel .tv-filters-backdrop.is-open{opacity:1;pointer-events:auto;}
  body.toversleutel .tv-filters__close{display:flex;align-items:center;justify-content:center;
    border:none;background:var(--tv-surface);width:36px;height:36px;border-radius:11px;cursor:pointer;
    color:var(--tv-ink);margin-left:6px;}
  .tv-filters__close svg{width:16px;height:16px;}
}

@media (max-width:760px){
  /* --- CATEGORIE: kop volgens ontwerp — [terug] [crumb+titel] [zoek] --- */
  body.tax-product_cat .tv-cat-hero,
  body.post-type-archive-product .tv-cat-hero,
  body.tax-product_cat .tv-crumbs,
  body.post-type-archive-product .tv-crumbs{display:none;}
  /* categoriebeschrijving onderaan: compact */
  .tv-cat-desc{padding-top:32px;padding-bottom:40px;}
  .tv-cat-desc__inner{font-size:14px;line-height:1.65;}
  .tv-cat-desc__inner h2{font-size:20px;}
  .tv-cat-desc__inner h3{font-size:17px;}
  /* zoekbalk verborgen op categorie/product/cart — zoekknop opent het zoekvenster */
  body.tax-product_cat .tv-header__main .tv-search,
  body.post-type-archive-product .tv-header__main .tv-search,
  body.single-product .tv-header__main .tv-search,
  body.woocommerce-cart .tv-header__main .tv-search{display:none;}
  /* …en dan ook de 2e grid-rij (search) weg — anders blijft de row-gap staan */
  body.toversleutel.tax-product_cat .tv-header__main,
  body.toversleutel.post-type-archive-product .tv-header__main,
  body.toversleutel.single-product .tv-header__main,
  body.toversleutel.woocommerce-cart .tv-header__main{
    grid-template-areas:"burger logo actions";grid-template-columns:42px 1fr 42px;}
  /* zoekvenster-regels (.tv-msearch): zie ≤1024px-blok */
  body.toversleutel .tv-mcathead{display:flex;align-items:center;gap:12px;padding:12px 18px 14px;
    border-top:1px solid var(--tv-line);}
  body.toversleutel .tv-mcathead__btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;
    width:42px;height:42px;border:none;border-radius:13px;background:var(--tv-surface);cursor:pointer;
    text-decoration:none;padding:0;}
  .tv-mcathead__btn svg{width:20px;height:20px;}
  .tv-mcathead__txt{flex:1;min-width:0;}
  .tv-mcathead__crumb{font-size:12px;color:var(--tv-muted-2);font-weight:700;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;}
  .tv-mcathead__title{font-family:var(--font-head);font-weight:600;font-size:20px;color:var(--tv-ink);line-height:1.1;}
  /* korte beschrijving onder de kop: blauwe band (zelfde tint als de desktop cat-hero) */
  body.toversleutel .tv-mcathead-desc{display:block;padding:14px 18px 16px;
    background:linear-gradient(120deg,#e3f4fb,#f6fbfe);color:var(--tv-muted);font-size:14px;line-height:1.6;}
  .tv-mcathead-desc p{margin:0 0 6px;}
  .tv-mcathead-desc > :last-child{margin-bottom:0;}
  .tv-mcathead-desc h2,.tv-mcathead-desc h3{font-size:16px;margin:6px 0 2px;color:var(--tv-ink);}
  .tv-mcathead-desc ul,.tv-mcathead-desc ol{margin:0 0 6px;padding-left:18px;}
  .tv-mcathead-desc a{font-weight:800;}

  /* filterbar/drawer-regels staan in het ≤900px-blok (tablet); hier alleen mobiele afwijking */
  body.toversleutel .tv-mfilterbar{padding:16px 18px 14px;flex-wrap:wrap;overflow:visible;}
  /* Filters-knop over de volle breedte; actieve chips wrappen eronder */
  body.toversleutel .tv-mfilterbar .tv-mfilterbar__btn{display:inline-flex;flex:1 0 100%;justify-content:center;
    padding:12px 16px;font-size:14px;border-radius:13px;}
  body.toversleutel .tv-mfilterbar--empty{display:flex;}
  body.toversleutel .tv-shop__filterbtn{display:none;}
  .tv-shop{padding-top:0;}

  /* --- toolbar: "x producten" links, compacte sortering rechts --- */
  .tv-shop__toolbar{margin:16px 0 14px;flex-wrap:nowrap;}
  .tv-shop__count{font-size:13px;}
  .tv-sort > span{display:none;}
  body.toversleutel .tv-sort form.woocommerce-ordering{background:none;border:none;padding:0;}
  body.toversleutel .tv-sort select,
  body.toversleutel .tv-sort form.woocommerce-ordering select.orderby{font-size:13px;padding:6px 22px 6px 0;}

  /* --- raster: "Meer laden" i.p.v. paginering --- */
  .tv-pagination{display:none;}
  body.toversleutel .tv-loadmore{display:block;width:100%;margin:20px 0 8px;
    border:2px solid var(--tv-blue);background:#fff;color:var(--tv-blue);
    font-family:var(--font-body);font-weight:800;font-size:15px;padding:14px;
    border-radius:16px;cursor:pointer;}
  body.toversleutel .tv-loadmore:disabled{opacity:.6;}

  /* checkout-notices/steps kleiner op mobiel gutter */
  .tv-shop__main{min-width:0;}
}

/* --- terug-/zoekknop + galerij-bolletjes op productfoto: desktop verborgen --- */
.tv-pd__mback{display:none;}
.tv-pd__msearch{display:none;}
.tv-pd__dots{display:none;}

@media (max-width:760px){
  /* --- PRODUCTPAGINA (mobiel ontwerp): full-bleed foto, sticky koopbalk --- */
  body.single-product .tv-crumbs{display:none;}
  .tv-pd{display:block;padding:0 0 28px;}
  .tv-pd__gallery{flex-direction:column;gap:0;}
  /* thumbs weg — bolletjes op de foto (JS: initMobileGalleryDots) */
  .tv-pd__thumbs{display:none;}
  body.toversleutel .tv-pd__dots{display:flex;position:absolute;bottom:16px;left:50%;
    transform:translateX(-50%);gap:6px;z-index:3;}
  body.toversleutel .tv-pd__dot{width:8px;height:8px;padding:0;border:none;border-radius:999px;
    background:rgba(27,58,75,.2);cursor:pointer;}
  body.toversleutel .tv-pd__dot.is-active{background:var(--tv-pink);}
  body.toversleutel .tv-pd__main-img{border-radius:0;max-height:none;aspect-ratio:1/1;position:relative;}
  body.toversleutel .tv-pd__mback,
  body.toversleutel .tv-pd__msearch{display:flex;position:absolute;top:14px;z-index:3;
    width:42px;height:42px;border:none;cursor:pointer;border-radius:13px;background:rgba(255,255,255,.9);
    align-items:center;justify-content:center;backdrop-filter:blur(4px);
    box-shadow:0 6px 16px -8px rgba(27,58,75,.35);}
  body.toversleutel .tv-pd__mback{left:14px;}
  body.toversleutel .tv-pd__msearch{right:14px;}
  .tv-pd__mback svg,.tv-pd__msearch svg{width:20px;height:20px;}
  .tv-pd__main-img .badge{top:14px;left:50%;transform:translateX(-50%);font-size:12px;padding:6px 14px;}

  /* info compact */
  .tv-pd__info{padding:20px 18px 0;}
  .tv-pd h1{font-size:26px;margin:0 0 10px;}
  .tv-pd__rating{margin-bottom:14px;}
  .tv-pd__price{font-size:30px;}
  .tv-pd__old{font-size:15px;}
  .tv-pd__desc{font-size:14px;margin:0 0 18px;}
  .tv-pd__assur{padding:16px 18px;gap:10px;margin-bottom:6px;}
  .tv-pd__assur div{font-size:13px;}

  /* sticky koopbalk onderin (stepper + knop) — vervangt de bottom-nav hier */
  body.single-product .tv-bottomnav{display:none;}
  body.single-product .tv-container{padding-bottom:88px;}
  body.toversleutel .tv-pd .woocommerce-variation-add-to-cart,
  body.toversleutel .tv-pd form.cart:not(.variations_form){
    position:fixed;bottom:0;left:0;right:0;z-index:950;margin:0;
    background:#fff;border-top:1px solid var(--tv-line);
    padding:12px 18px calc(14px + env(safe-area-inset-bottom));
    display:flex;align-items:center;gap:12px;flex-wrap:nowrap;}
  body.toversleutel .tv-pd form.cart .tv-qty{padding:0 12px;border-radius:14px;align-self:stretch;align-items:center;}
  body.toversleutel .tv-pd .single_add_to_cart_button{min-width:0;padding:15px!important;
    font-size:15px!important;border-radius:14px!important;}

  /* tabs + gerelateerd compact */
  .tv-tabs{padding-top:14px;}
  .tv-tabs__nav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
    touch-action:pan-x;overscroll-behavior-x:contain;}
  .tv-tabs__nav::-webkit-scrollbar{display:none;}
  .tv-tabs__tab{font-size:14px;padding:12px 14px;white-space:nowrap;}
  .tv-nutri{padding:18px;}
  .tv-md{grid-template-columns:1fr;}
}

/* --- mobiele cart-elementen: desktop verborgen --- */
.tv-mmenu{display:none;}
.tv-mmenu-backdrop{display:none;}
.tv-loadmore{display:none;}
.tv-mcartback{display:none;}
.tv-cart-msticky{display:none;}
.tv-mcartsearch{display:none;}

@media (max-width:760px){
  /* --- WINKELWAGEN (mobiel ontwerp) --- */
  body.woocommerce-cart .tv-container{background:var(--tv-surface);}
  body.woocommerce-cart .tv-bottomnav{display:none;}
  body.woocommerce-cart .tv-crumbs{display:none;}

  /* kop: terugknop + titel */
  body.woocommerce-cart .tv-page-head{display:flex;align-items:center;gap:12px;
    padding:12px 18px;background:#fff;border-bottom:1px solid var(--tv-line);}
  body.toversleutel .tv-mcartback{display:flex;flex-shrink:0;width:42px;height:42px;border-radius:13px;
    background:var(--tv-surface);align-items:center;justify-content:center;text-decoration:none;}
  .tv-mcartback svg{width:20px;height:20px;}
  body.woocommerce-cart .tv-page-head h1{font-size:20px;flex:1;min-width:0;}
  .tv-cartpage__count{font-size:14px;}
  body.toversleutel .tv-mcartsearch{display:flex;flex-shrink:0;width:42px;height:42px;border:none;
    border-radius:13px;background:var(--tv-surface);align-items:center;justify-content:center;
    cursor:pointer;padding:0;}
  .tv-mcartsearch svg{width:20px;height:20px;}

  /* items als compacte kaartjes */
  .tv-cartpage{padding-top:16px;padding-bottom:230px;}
  .tv-cartpage__grid{display:block;}
  .tv-cart-items{gap:12px;}
  .tv-ship-progress{padding:14px 16px;border-radius:16px;}
  .tv-ship-progress__label{font-size:13px;margin-bottom:10px;}
  body.toversleutel .tv-cart-item{position:relative;display:grid;
    grid-template-columns:70px 1fr auto;gap:6px 14px;padding:14px;border-radius:18px;
    grid-template-areas:"media info info" "media qty price";align-items:center;}
  .tv-cart-item__media{grid-area:media;width:70px;height:70px;border-radius:14px;align-self:start;}
  .tv-cart-item__info{grid-area:info;padding-right:26px;}
  .tv-cart-item__tag{display:none;}
  .tv-cart-item__title{font-size:16px;margin-bottom:2px;}
  .tv-cart-item__meta{font-size:12px;}
  .tv-cart-item__qty{grid-area:qty;justify-self:start;padding:5px 11px;border-radius:11px;gap:10px;}
  .tv-cart-item__qty input{font-size:14px;width:24px;}
  /* iOS zoomt in op velden < 16px */
  body.toversleutel .tv-cart-coupon__input{font-size:16px;}
  .tv-cart-item__qty button{font-size:17px;}
  .tv-cart-item__price{grid-area:price;justify-self:end;width:auto;font-size:17px;}
  .tv-cart-item__remove{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:9px;background:none;}
  .tv-cart-item__remove svg{width:15px;height:15px;}

  /* foot (verder winkelen/bijwerken) overbodig — auto-update + terugknop in kop */
  .tv-cart-items__foot{display:none;}

  /* summary-kaart: alleen kortingscode in de flow; totals zitten in de sticky bar */
  .tv-cart-summary{position:static;margin-top:16px;}
  .tv-cart-summary__card{padding:16px;border-radius:16px;background:#fff;}
  .tv-cart-summary__card h3,
  .tv-cart-summary__rows,
  .tv-cart-checkout{display:none;}
  .tv-cart-coupon{margin:0;}
  .tv-cart-pay{display:none;}

  /* sticky totalen + afrekenknop */
  body.toversleutel .tv-cart-msticky{display:block;position:fixed;bottom:0;left:0;right:0;z-index:950;
    background:#fff;border-top:1px solid var(--tv-line);
    padding:16px 18px calc(18px + env(safe-area-inset-bottom));}
  .tv-cart-msticky__rows{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;font-size:14px;}
  .tv-cart-msticky__row{display:flex;justify-content:space-between;color:var(--tv-muted);font-weight:700;}
  .tv-cart-msticky__row .val{color:var(--tv-ink);}
  .tv-cart-msticky__total{display:flex;justify-content:space-between;align-items:baseline;}
  .tv-cart-msticky__total > span:first-child{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);}
  .tv-cart-msticky__total .val{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);text-align:right;}
  .tv-cart-msticky__total .val small.includes_tax{display:block;font-family:var(--font-body);font-size:11px;
    font-weight:700;color:var(--tv-muted-2);white-space:nowrap;}
  body.toversleutel .tv-cart-msticky__btn{width:100%;padding:16px;border-radius:15px;font-size:16px;}
  .tv-cart-msticky__btn svg{width:19px;height:19px;}
}

/* --- mobiele checkout-elementen: desktop verborgen --- */
.tv-co-header__back{display:none;}
.tv-co-msticky{display:none;}

@media (max-width:760px){
  /* --- AFREKENEN (mobiel ontwerp) --- */
  body.woocommerce-checkout .tv-container{background:var(--tv-surface);}

  /* compacte checkout-header: terug | logo | slotje */
  .tv-co-header__inner{padding:10px 18px;gap:12px;}
  .tv-co-header .tv-logo img{height:30px;}
  body.toversleutel .tv-co-header__back{display:flex;flex-shrink:0;width:42px;height:42px;
    border-radius:13px;background:var(--tv-surface);align-items:center;justify-content:center;
    text-decoration:none;}
  .tv-co-header__back svg{width:20px;height:20px;}
  .tv-co-header__secure{font-size:0;gap:0;color:var(--tv-green);}
  .tv-co-header__secure svg{width:20px;height:20px;}

  /* stappen compact, witte balk met lijn — gelijke padding boven/onder */
  .tv-co-steps{background:#fff;border-bottom:1px solid var(--tv-line);
    padding-top:14px;padding-bottom:14px;gap:8px;}
  .tv-co-step{font-size:12px;gap:6px;}
  .tv-co-step span{width:24px;height:24px;font-size:12px;}
  .tv-co-steps i{width:20px;}

  /* kaarten gestapeld */
  .tv-checkout{display:block;padding-top:16px;padding-bottom:200px;}
  .tv-checkout__form{gap:14px;}
  .tv-co-card{padding:18px;border-radius:18px;margin-bottom:14px;}
  .tv-checkout__form .tv-co-card{margin-bottom:0;}
  .tv-co-card h3{font-size:16px;margin-bottom:14px;}
  .tv-co-fields{gap:10px;}
  .tv-co-fields label{font-size:12px;margin-bottom:6px;}
  body.toversleutel .tv-co-fields .input-text{padding:12px 14px!important;border-radius:11px!important;}
  body.toversleutel .tv-co-fields select{padding:12px 14px;border-radius:11px;}
  /* iOS zoomt in op velden < 16px — dus 16px op mobiel (inputs, selects, select2, textarea) */
  body.toversleutel .tv-co-fields .input-text,
  body.toversleutel .tv-co-fields select,
  body.toversleutel .tv-co-fields textarea,
  body.toversleutel .tv-co-fields .select2-container--default .select2-selection--single .select2-selection__rendered,
  body.toversleutel .select2-container .select2-search__field{font-size:16px!important;}
  /* bezorgadres: postcode|huisnr|toevoeging op rij 1, straat en plaats vol breed */
  .tv-co-fields--address{grid-template-columns:1.2fr 1fr 1fr;}
  .tv-co-fields--address #billing_postcode_field{grid-column:1;grid-row:1;}
  .tv-co-fields--address #billing_house_number_field,
  .tv-co-fields--address #billing_huisnummer_field{grid-column:2;grid-row:1;}
  .tv-co-fields--address #billing_house_number_suffix_field{grid-column:3;grid-row:1;}
  .tv-co-fields--address #billing_street_name_field{grid-column:1 / -1;grid-row:2;}
  .tv-co-fields--address #billing_city_field{grid-column:1 / -1;grid-row:3;}
  .tv-co-fields--address #billing_country_field{grid-column:1 / -1;grid-row:4;}
  .tv-co-shipopt{padding:14px;border-radius:13px;gap:12px;}
  .tv-co-shipopt__txt b{font-size:14px;}
  .tv-co-shipopt__txt small{font-size:12px;}

  /* besteloverzicht als gewone kaart in de flow */
  .tv-co-summary{position:static;margin-top:14px;padding:18px;border-radius:18px;background:#fff;}
  .tv-co-summary h3{font-size:16px;}
  /* echte place-order-knop verbergen — sticky knop klikt 'm */
  body.toversleutel .tv-co-summary #place_order{display:none;}

  /* sticky totaal + betaalknop */
  body.toversleutel .tv-co-msticky{display:block;position:fixed;bottom:0;left:0;right:0;z-index:950;
    background:#fff;border-top:1px solid var(--tv-line);
    padding:16px 18px calc(18px + env(safe-area-inset-bottom));}
  .tv-co-msticky__total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;}
  .tv-co-msticky__total > span:first-child{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--tv-ink);}
  .tv-co-msticky__total .val{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--tv-ink);text-align:right;}
  .tv-co-msticky__total .val small.includes_tax{display:block;font-family:var(--font-body);font-size:11px;
    font-weight:700;color:var(--tv-muted-2);white-space:nowrap;}
  body.toversleutel .tv-co-msticky__btn{display:flex;align-items:center;justify-content:center;gap:10px;
    width:100%;border:none;cursor:pointer;background:var(--tv-pink);color:#fff;
    font-family:var(--font-body);font-weight:800;font-size:16px;padding:16px;border-radius:15px;
    box-shadow:0 12px 22px -9px rgba(252,78,123,.8);}
  .tv-co-msticky__btn svg{width:19px;height:19px;flex-shrink:0;}
  /* toetsenbord open (veld gefocust, JS zet body.tv-kbd-open): balk uit de flow — vaste plek onderaan het formulier */
  body.toversleutel.tv-kbd-open .tv-co-msticky{position:static;border:1px solid var(--tv-line);border-radius:18px;
    padding:16px 18px;margin-top:14px;}
  body.tv-kbd-open .tv-checkout{padding-bottom:40px;}

  /* bol-kaart netjes binnen 18px marge + ruimte richting de stappenbalk */
  body.toversleutel cvb-button[type="checkout"]{width:calc(100% - 36px);margin:16px 18px;}
}
