/* ============================================
   PrintLab POC v2 - light theme webshop
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }

:root {
  /* VIGC V3 huisstijl - earthy/editorial palette */
  --bg:             #F5F1E8;   /* paper / warm cream */
  --bg-soft:        #EDE8DC;   /* iets dieper cream */
  --card:           #FAFAFA;   /* editorial white */
  --border:         #E0D9C8;   /* warm border */
  --border-strong:  #C5BBA5;
  --text:           #0A0A0A;   /* ink */
  --text-muted:     #5D5E4A;   /* muted olive */
  --text-dim:       #7D8E8E;   /* sage stone */
  --ink:            #2C2D1F;   /* donker olijf-charcoal — hero/primary */
  --ink-hover:      #4A4540;   /* charcoal clay */
  --glacier:        #6F90A3;   /* glacier-blue accent */
  --glacier-soft:   #DCE5EB;
  --sage:           #A8C0B0;   /* sage mint */
  --sage-soft:      #E8EFE9;
  --coral:          #D9442E;   /* CTA red-orange (V3) */
  --coral-soft:     #FAE7E2;
  --good:           #6F90A3;   /* glacier-blue voor checks */
  --good-soft:      #DCE5EB;
  --warn:           #D9882E;
  --warn-soft:      #FAEFE0;
  --bad:            #B23A2A;
  --bad-soft:       #F5E0DC;
  --shadow-sm:      0 1px 2px rgba(10, 10, 10, .04);
  --shadow-md:      0 4px 18px rgba(10, 10, 10, .07);
  --shadow-lg:      0 18px 44px rgba(10, 10, 10, .10);
  --radius:         8px;
  --radius-lg:      14px;
  --font:           -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono:      ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

html, body { margin: 0; padding: 0; }

body {
  font-family: var(--font);
  background-color: var(--bg);
  background-image:
    linear-gradient(rgba(245, 241, 232, 0.92), rgba(245, 241, 232, 0.92)),
    url("assets/site-bg.jpg");
  background-size: auto, cover;
  background-position: center, center top;
  background-attachment: fixed, fixed;
  background-repeat: repeat, no-repeat;
  color: var(--text);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--ink-hover); text-decoration: underline; }

h1, h2, h3, h4 { color: var(--text); font-weight: 600; line-height: 1.25; margin-top: 0; }
h1 { font-size: 28px; }
h2 { font-size: 22px; }
h3 { font-size: 17px; }
h4 { font-size: 15px; }

p { margin: 0 0 12px; }

code {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  padding: 1px 6px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--ink);
}

.muted { color: var(--text-muted); }
.dim { color: var(--text-dim); font-size: 13px; }

/* ============================================
   Header — 1-balk: logo links, midden = tags+partners+nav, cart rechts
   ============================================ */
.site-header {
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(250, 250, 250, .88);
  overflow: hidden;
  isolation: isolate;
}
/* Achter-de-content video/image layer */
.site-header .header-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
  background-color: var(--bg);
}
.site-header .header-bg video,
.site-header .header-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Cream overlay voor leesbaarheid */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(250, 250, 250, .72) 0%, rgba(245, 241, 232, .80) 100%);
  backdrop-filter: saturate(140%) blur(6px);
  -webkit-backdrop-filter: saturate(140%) blur(6px);
  pointer-events: none;
}
.site-header-inner {
  max-width: none;
  margin: 0;
  padding: 12px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 64px;
}
@media (min-width: 1600px) {
  .site-header-inner { padding: 14px 56px; }
}

/* Logo links */
.brand {
  flex-shrink: 0;
}
.brand a {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.brand img { height: 40px; width: auto; display: block; }

/* Midden-cluster: tags + partners + nav-links */
.header-mid {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: nowrap;
}
.brand-tags {
  display: flex;
  align-items: center;
  gap: 6px;
}
.brand-tag {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
  line-height: 1;
}
.brand-tag.poc {
  color: var(--coral);
  background: var(--coral-soft);
  border: 1px solid #F5C9C0;
}
.brand-tag.tagline {
  color: var(--ink);
  background: var(--bg-soft);
  border: 1px solid var(--border);
}

.partners {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-left: 18px;
  border-left: 1px solid var(--border);
}
.partners .pwr {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.partners img {
  display: block;
  width: auto;
  opacity: .9;
  transition: opacity .15s ease;
}
.partners a:hover img { opacity: 1; }
.partners .logo-vigc { height: 26px; }
.partners .logo-printelligence { height: 26px; }

/* Cart rechts */
.cart-zone {
  flex-shrink: 0;
}

/* Responsive: trim van rechts naar links */
@media (max-width: 1240px) {
  .brand-tag.tagline { display: none; }
}
@media (max-width: 1100px) {
  .partners .pwr { display: none; }
  .header-mid { gap: 16px; }
}
@media (max-width: 980px) {
  .brand-tag.poc { display: none; }
  .partners { padding-left: 0; border-left: 0; }
}
@media (max-width: 820px) {
  .partners { display: none; }
}
@media (max-width: 640px) {
  .header-mid { display: none; }
  .site-header-inner { padding: 10px 18px; min-height: 56px; }
  .brand img { height: 34px; }
}
.topnav {
  display: flex;
  gap: 22px;
  align-items: center;
  font-size: 14px;
  flex-shrink: 0;
  padding-left: 18px;
  border-left: 1px solid var(--border);
}
.topnav a {
  color: var(--text);
  font-weight: 500;
  position: relative;
  padding: 6px 0;
}
.topnav a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.topnav a:hover { color: var(--ink); text-decoration: none; }
.topnav a:hover::after { transform: scaleX(1); }
@media (max-width: 1100px) {
  .topnav { gap: 16px; font-size: 13px; padding-left: 12px; }
}
@media (max-width: 820px) {
  .topnav { padding-left: 0; border-left: 0; }
  .topnav a { font-size: 12.5px; }
}
.topnav a { color: var(--text-muted); }
.topnav a:hover { color: var(--ink); text-decoration: none; }
.cart-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  background: var(--ink);
  color: #fff !important;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  transition: all .15s ease;
  white-space: nowrap;
}
.cart-link:hover {
  background: var(--ink-hover);
  color: #fff !important;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.cart-badge {
  background: var(--coral);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 10px;
  min-width: 20px;
  text-align: center;
}
.cart-badge:empty { display: none; }

/* ============================================
   Page container
   ============================================ */
.page {
  max-width: 1240px;
  margin: 0 auto;
  padding: 28px 32px 80px;
}
@media (max-width: 700px) { .page { padding: 20px 18px 60px; } }

.crumbs {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 18px;
}
.crumbs a { color: var(--text-muted); }
.crumbs a:hover { color: var(--ink); }
.crumbs span.sep { padding: 0 6px; color: var(--text-dim); }

/* ============================================
   Hero (homepage) — video-on-top cinematic
   ============================================ */
.hero {
  background: linear-gradient(135deg, #1a1b12 0%, #2C2D1F 35%, #4A5B5A 70%, #6F90A3 100%);
  color: #fff;
  border-radius: var(--radius-lg);
  padding: 0 0 40px;
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  top: -140px; right: -80px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(217, 68, 46, .35) 0%, transparent 70%);
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  bottom: -120px; left: 25%;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(255, 255, 255, .1) 0%, transparent 70%);
  pointer-events: none;
}
.hero-text {
  position: relative;
  z-index: 1;
  padding: 44px 64px 12px;
  text-align: center;
  max-width: 1080px;
  margin: 0 auto;
}
.hero-text .eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 5px 14px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  color: #fff;
  margin-bottom: 14px;
}
.hero-text h1 {
  color: #fff;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.06;
  margin: 0 auto 14px;
  max-width: 880px;
  letter-spacing: -.015em;
}
.hero-text h1 em {
  font-style: normal;
  color: var(--coral);
  font-weight: 700;
}
.hero-text p {
  font-size: 17px;
  color: rgba(255, 255, 255, .85);
  line-height: 1.55;
  margin: 0 auto 18px;
  max-width: 720px;
}
.hero-bullets {
  list-style: none;
  padding: 0; margin: 0 auto 18px;
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  justify-content: center;
  max-width: 100%;
}
@media (max-width: 720px) { .hero-bullets { flex-wrap: wrap; } }
.hero-bullets li {
  font-size: 13px;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  padding: 6px 14px;
  color: rgba(255, 255, 255, .95);
}
.hero-bullets li::before {
  content: "✓ ";
  color: var(--coral);
  font-weight: 700;
}
.hero-text .hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}
.hero-text .btn-hero-primary {
  display: inline-block;
  background: #fff;
  color: var(--ink);
  border-radius: var(--radius);
  padding: 13px 24px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: transform .12s ease;
}
.hero-text .btn-hero-primary:hover { transform: translateY(-1px); background: #fff; text-decoration: none; }
.hero-text .btn-hero-ghost {
  display: inline-block;
  color: #fff;
  text-decoration: none;
  padding: 13px 6px;
  font-weight: 500;
  font-size: 15px;
  border-bottom: 1px solid rgba(255, 255, 255, .3);
}
.hero-text .btn-hero-ghost:hover { color: var(--coral); text-decoration: none; border-bottom-color: var(--coral); }

.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 26px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  width: 100%;
  max-width: 760px;
}
.hero-stat { text-align: center; }
@media (max-width: 600px) {
  .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
.hero-stat .n {
  display: block;
  font-size: 30px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: -.02em;
}
.hero-stat .l {
  font-size: 11px;
  color: rgba(255, 255, 255, .7);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-top: 6px;
  font-weight: 600;
}

.hero-visual {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 21/9;
  background: #0a0f24;
  overflow: hidden;
}
.hero-visual video, .hero-visual img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, transparent 55%, rgba(44, 45, 31, .85) 100%);
  pointer-events: none;
}
@media (max-width: 900px) {
  .hero-visual { aspect-ratio: 16/9; }
}

/* Feature strip under hero */
.feature-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}
@media (max-width: 800px) { .feature-strip { grid-template-columns: repeat(2, 1fr); } }
.feature {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: all .15s ease;
  box-shadow: var(--shadow-sm);
  min-height: 78px;
}
.feature:hover { border-color: var(--glacier); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.feature .ico {
  flex-shrink: 0;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--coral-soft);
  color: var(--coral);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.feature .title {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin: 0 0 2px;
}
.feature .sub {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
}

/* ============================================
   Category filter pills
   ============================================ */
.cat-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.cat-pill {
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
  padding: 7px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: all .15s ease;
}
.cat-pill:hover { border-color: var(--border-strong); }
.cat-pill.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

/* ============================================
   Product grid (catalog)
   ============================================ */
.section-title {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 8px 0 20px;
}
.section-title h2 { margin: 0; }
.section-title .count { color: var(--text-muted); font-size: 14px; }

.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}
.product-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .18s ease;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.product-card:hover {
  border-color: var(--ink);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  text-decoration: none;
}
.product-card .thumb {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--bg-soft);
}
.product-card .thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .35s ease;
}
.product-card:hover .thumb img { transform: scale(1.04); }
.product-card .body {
  padding: 16px 18px 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.product-card .cat {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--coral);
  margin-bottom: 6px;
}
.product-card h3 {
  font-size: 16px;
  margin: 0 0 4px;
  color: var(--text);
}
.product-card .short {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 12px;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-card .price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.product-card .price {
  color: var(--ink);
  font-weight: 700;
  font-size: 17px;
}
.product-card .price .vanaf { font-size: 11px; color: var(--text-muted); font-weight: 500; margin-right: 4px; }
.product-card .arrow {
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
}

/* ============================================
   Product detail
   ============================================ */
.pd-grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 36px;
  align-items: start;
}
.pd-left { min-width: 0; }
.pd-right {
  position: sticky;
  top: 88px;
}
.pd-gallery {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
  margin-bottom: 24px;
}
.pd-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-title { font-size: 30px; margin: 8px 0 8px; }
.pd-cat {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--coral);
  margin-bottom: 4px;
}
.pd-reviews {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--text-muted);
  margin-bottom: 18px;
}
.stars { color: var(--coral); letter-spacing: 1px; }

.pd-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--border);
  margin: 24px 0 0;
}
.pd-tab {
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-muted);
  padding: 12px 18px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.pd-tab.active {
  color: var(--ink);
  border-bottom-color: var(--ink);
}
.pd-tab:hover:not(.active) { color: var(--text); }
.pd-tab-content {
  padding: 22px 0;
  font-size: 15px;
  color: var(--text);
}
.pd-tab-content[hidden] { display: none; }
.pd-tab-content h4 { margin: 18px 0 6px; }
.spec-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.spec-table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border);
}
.spec-table td:first-child { color: var(--text-muted); width: 35%; }
.spec-table tr:last-child td { border-bottom: 0; }

/* ============================================
   Configurator (right column)
   ============================================ */
.pd-config {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px;
  box-shadow: var(--shadow-sm);
}
.pd-price {
  font-size: 32px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.1;
}
.pd-price-meta {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 20px;
}

.cfg-group {
  margin-bottom: 18px;
}
.cfg-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
  text-transform: none;
}
.cfg-label .hint { font-weight: 400; color: var(--text-muted); margin-left: 6px; font-size: 12px; }

.qty-stepper {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  overflow: hidden;
  background: #fff;
}
.qty-stepper button {
  border: 0;
  background: var(--bg-soft);
  color: var(--text);
  width: 36px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
}
.qty-stepper button:hover { background: var(--border); }
.qty-stepper input {
  border: 0;
  width: 80px;
  text-align: center;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  background: #fff;
}
.qty-stepper input:focus { outline: none; }

.qty-presets {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.qty-preset {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  font-family: inherit;
  font-size: 13px;
  padding: 4px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.qty-preset:hover { border-color: var(--ink); color: var(--ink); }
.qty-preset.active { background: var(--ink); color: #fff; border-color: var(--ink); }

.radio-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.radio-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 14px;
  transition: all .12s ease;
  background: #fff;
}
.radio-row:hover { border-color: var(--border-strong); }
.radio-row input { margin: 0; accent-color: var(--ink); }
.radio-row.checked {
  border-color: var(--ink);
  background: var(--sage-soft);
}
.radio-row .name { flex: 1; }
.radio-row .delta { color: var(--text-muted); font-size: 13px; }
.radio-row .delta.plus { color: var(--coral); font-weight: 600; }

.btn-primary {
  display: block;
  width: 100%;
  background: var(--ink);
  color: #fff;
  border: 0;
  border-radius: var(--radius);
  padding: 14px 20px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 8px;
  transition: background .12s ease;
}
.btn-primary:hover { background: var(--ink-hover); }
.btn-primary:disabled {
  background: var(--border-strong);
  cursor: not-allowed;
}
.btn-secondary {
  display: inline-block;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 10px 18px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
}
.btn-secondary:hover { border-color: var(--ink); }

/* ============================================
   Upload zone
   ============================================ */
.upload-zone {
  border: 2px dashed var(--border-strong);
  border-radius: var(--radius);
  padding: 22px;
  text-align: center;
  cursor: pointer;
  background: var(--bg-soft);
  transition: all .15s ease;
  margin-bottom: 8px;
}
.upload-zone:hover, .upload-zone.drag {
  border-color: var(--ink);
  background: var(--sage-soft);
}
.upload-zone strong { color: var(--text); display: block; margin-bottom: 4px; font-size: 14px; }
.upload-zone .muted { font-size: 12px; }
.upload-zone.has-file {
  border-style: solid;
  border-color: var(--good);
  background: var(--good-soft);
}
.upload-zone.has-file strong { color: var(--good); }

/* ============================================
   Cart page
   ============================================ */
.cart-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 32px;
  align-items: start;
}
.cart-list {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.cart-row {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  gap: 18px;
  padding: 20px;
  border-bottom: 1px solid var(--border);
  align-items: center;
}
.cart-row:last-child { border-bottom: 0; }
.cart-row .thumb {
  aspect-ratio: 1;
  background: var(--bg-soft);
  border-radius: var(--radius);
  overflow: hidden;
}
.cart-row .thumb img { width: 100%; height: 100%; object-fit: cover; }
.cart-row .info h4 { margin: 0 0 4px; font-size: 16px; }
.cart-row .info .opts { font-size: 13px; color: var(--text-muted); margin-bottom: 6px; }
.cart-row .info .aw-ok { color: var(--good); font-size: 13px; font-weight: 500; }
.cart-row .info .aw-miss { color: var(--warn); font-size: 13px; font-weight: 500; }
.cart-row .info .aw-miss::before { content: "⚠ "; }
.cart-row .info .aw-ok::before { content: "✓ "; }
.cart-row .actions { text-align: right; }
.cart-row .actions .line-price { font-weight: 700; font-size: 17px; color: var(--text); margin-bottom: 6px; }
.cart-row .actions .remove {
  display: block;
  margin-top: 6px;
  background: transparent;
  border: 0;
  color: var(--text-muted);
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
  text-decoration: underline;
  margin-left: auto;
}
.cart-row .actions .remove:hover { color: var(--bad); }

.cart-summary {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px;
  box-shadow: var(--shadow-sm);
}
.cart-summary h3 { margin: 0 0 16px; font-size: 16px; }
.cart-summary .row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 14px;
}
.cart-summary .row.total {
  border-top: 1px solid var(--border);
  margin-top: 8px;
  padding-top: 14px;
  font-size: 17px;
  font-weight: 700;
}
.cart-summary .row .label { color: var(--text-muted); }
.cart-summary .row.total .label { color: var(--text); }

.cart-empty {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 60px 32px;
  text-align: center;
}
.cart-empty p { color: var(--text-muted); margin-bottom: 18px; }

/* ============================================
   Checkout
   ============================================ */
.co-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 32px;
  align-items: start;
}
.co-form {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
.co-form h3 { margin: 0 0 18px; }
.co-form .row { display: flex; gap: 16px; }
.co-form .row > * { flex: 1; }
.co-form label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  margin-top: 14px;
}
.co-form input, .co-form select {
  width: 100%;
  border: 1px solid var(--border-strong);
  background: #fff;
  border-radius: var(--radius);
  padding: 10px 14px;
  font-family: inherit;
  font-size: 14px;
  color: var(--text);
}
.co-form input:focus, .co-form select:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: 0 0 0 3px rgba(44, 45, 31, .14);
}

.order-confirm {
  background: var(--good-soft);
  border: 1px solid var(--good-soft);
  border-radius: var(--radius-lg);
  padding: 36px;
  text-align: center;
}
.order-confirm h2 { color: var(--good); margin-bottom: 8px; }
.order-confirm .order-id {
  font-family: var(--font-mono);
  font-size: 22px;
  font-weight: 600;
  background: #fff;
  border: 1px solid var(--good-soft);
  padding: 8px 16px;
  border-radius: var(--radius);
  display: inline-block;
  margin: 12px 0;
}

/* ============================================
   WebMCP info panel (right side)
   ============================================ */
.webmcp-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  font-size: 12px;
  color: var(--text);
  z-index: 40;
  font-family: var(--font);
  overflow: hidden;
}
.webmcp-panel .wp-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px 8px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-soft);
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.webmcp-panel .wp-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--text-dim);
}
.webmcp-panel.ok .wp-dot {
  background: var(--good);
  box-shadow: 0 0 0 3px rgba(22, 163, 74, .2);
  animation: pulse 2s ease-in-out infinite;
}
.webmcp-panel.fail .wp-dot { background: var(--bad); }
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(22, 163, 74, .2); }
  50%      { box-shadow: 0 0 0 5px rgba(22, 163, 74, .1); }
}
.webmcp-panel .wp-body {
  padding: 12px 14px 14px;
}
.webmcp-panel .wp-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 0;
  font-size: 12px;
}
.webmcp-panel .wp-row .label { color: var(--text-muted); }
.webmcp-panel .wp-row .value {
  font-family: var(--font-mono);
  color: var(--text);
  font-weight: 600;
  text-align: right;
}
.webmcp-panel .wp-row .value.warn  { color: var(--warn); }
.webmcp-panel .wp-row .value.good  { color: var(--good); }
.webmcp-panel .wp-divider {
  height: 1px; background: var(--border); margin: 10px 0;
}
.webmcp-panel .wp-help {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 10px;
}
.webmcp-panel .wp-link {
  display: block;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  padding: 8px 10px;
  border-radius: var(--radius);
  background: var(--ink);
  color: #fff !important;
  text-decoration: none;
}
.webmcp-panel .wp-link:hover { background: var(--ink-hover); text-decoration: none; }

/* Desktop ≥1560px: panel rechts NAAST de gecentreerde page-content (= 1240+gap) */
@media (min-width: 1560px) {
  .webmcp-panel {
    position: fixed;
    right: max(18px, calc((100vw - 1240px) / 2 - 268px));
    top: 88px;
    width: 248px;
  }
}
/* Desktop 1100-1559px: fixed rechts maar binnen page-flow rand */
@media (min-width: 1100px) and (max-width: 1559px) {
  .webmcp-panel {
    position: fixed;
    right: 24px;
    top: 88px;
    width: 232px;
  }
}
/* Tablet/mobile: compact rechtsonder */
@media (max-width: 1099px) {
  .webmcp-panel {
    position: fixed;
    right: 14px;
    bottom: 14px;
    width: 228px;
    max-width: calc(100vw - 28px);
  }
}
@media (max-width: 600px) {
  .webmcp-panel {
    right: 10px;
    bottom: 10px;
    width: 200px;
  }
  .webmcp-panel .wp-help { display: none; }
}

/* ============================================
   Toast
   ============================================ */
.toast {
  position: fixed;
  top: 80px;
  right: 24px;
  background: var(--ink);
  color: #fff;
  padding: 12px 18px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  font-size: 14px;
  font-weight: 500;
  z-index: 100;
  animation: toast-in .2s ease;
}
@keyframes toast-in {
  from { transform: translateY(-12px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ============================================
   Over-de-POC page
   ============================================ */

/* Hero block voor de pagina */
.poc-hero {
  background: linear-gradient(135deg, #2C2D1F 0%, #4A5B5A 55%, #6F90A3 100%);
  border-radius: var(--radius-lg);
  padding: 52px 56px;
  color: #fff;
  margin-bottom: 56px;
  position: relative;
  overflow: hidden;
}
@media (max-width: 700px) {
  .poc-hero { padding: 32px 24px; margin-bottom: 36px; }
}
.poc-hero::before {
  content: "";
  position: absolute;
  top: -120px; right: -80px;
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(217, 68, 46, .35) 0%, transparent 70%);
  pointer-events: none;
}
.poc-hero::after {
  content: "";
  position: absolute;
  bottom: -100px; left: 30%;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(255, 255, 255, .12) 0%, transparent 70%);
  pointer-events: none;
}
.poc-hero .eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 5px 12px;
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 999px;
  color: #fff;
  margin-bottom: 18px;
  position: relative; z-index: 1;
}
.poc-hero h1 {
  color: #fff;
  font-size: 46px;
  font-weight: 700;
  line-height: 1.06;
  margin: 0 0 16px;
  max-width: 960px;
  letter-spacing: -.015em;
  position: relative; z-index: 1;
}
.poc-hero h1 em { font-style: normal; color: var(--coral); }
.poc-hero .lede {
  font-size: 18px;
  color: rgba(255, 255, 255, .85);
  max-width: 820px;
  line-height: 1.6;
  position: relative; z-index: 1;
}
.poc-hero .hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  position: relative; z-index: 1;
  max-width: 760px;
}
.poc-hero .stat { text-align: left; }
.poc-hero .stat .n {
  display: block;
  font-size: 32px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: -.02em;
}
.poc-hero .stat .l {
  font-size: 11px;
  color: rgba(255, 255, 255, .7);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-top: 6px;
  font-weight: 600;
}
@media (max-width: 600px) {
  .poc-hero .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .poc-hero h1 { font-size: 32px; }
}

/* Section wrapper — vol-breed binnen page-container voor uniforme alignment */
.section {
  margin: 0 0 80px;
}
.section.section-wide {
  max-width: 100%;
}
/* 2-koloms editorial layout: head links sticky, content rechts */
.section.section-twocol {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 72px;
  align-items: start;
}
.section.section-twocol .section-head {
  position: sticky;
  top: 96px;
  margin-bottom: 0;
  max-width: none;
}
.section.section-twocol .prose {
  max-width: none;
}
@media (max-width: 900px) {
  .section.section-twocol {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .section.section-twocol .section-head {
    position: static;
  }
}
.section .section-head {
  margin-bottom: 28px;
  max-width: 720px;
}
.section .section-head .kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--coral);
  margin-bottom: 10px;
  display: inline-block;
  padding: 4px 12px;
  background: var(--coral-soft);
  border-radius: 999px;
}
.section .section-head h2 {
  font-size: 28px;
  margin: 0 0 10px;
  letter-spacing: -.005em;
}
.section .section-head p {
  color: var(--text-muted);
  font-size: 16px;
  line-height: 1.6;
  max-width: 680px;
  margin: 0;
}

/* Smalle prose-blok voor lange lopende tekst */
.prose {
  max-width: 720px;
  font-size: 15.5px;
  line-height: 1.7;
}
.prose h3 { margin-top: 22px; margin-bottom: 8px; font-size: 17px; }
.prose ul, .prose ol { padding-left: 20px; }
.prose li { margin-bottom: 6px; }
.prose p { margin-bottom: 14px; }

/* Callout met meer karakter */
.callout {
  display: flex;
  gap: 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 4px solid var(--ink);
  border-radius: var(--radius);
  padding: 18px 22px;
  margin: 20px 0;
  font-size: 14px;
  line-height: 1.6;
}
.callout.coral { border-left-color: var(--coral); }
.callout.warn { border-left-color: var(--warn); }
.callout .ico {
  flex-shrink: 0;
  width: 32px; height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bg-soft);
  font-size: 16px;
  font-weight: 700;
}
.callout.coral .ico { background: var(--coral-soft); color: var(--coral); }
.callout .body strong { display: block; font-size: 15px; margin-bottom: 4px; color: var(--text); }
.callout .body { color: var(--text-muted); }

/* TOC kaartje — vol-breed onder hero */
.toc {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 26px 32px;
  margin: -12px 0 64px;
  box-shadow: var(--shadow-sm);
}
.toc h4 {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 18px;
  counter-reset: toc;
}
@media (max-width: 700px) { .toc ol { grid-template-columns: 1fr; } }
.toc ol li {
  counter-increment: toc;
  padding-left: 28px;
  position: relative;
  font-size: 14px;
}
.toc ol li::before {
  content: counter(toc, decimal-leading-zero);
  position: absolute;
  left: 0;
  color: var(--coral);
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 12px;
  top: 2px;
}
.toc a { color: var(--text); }
.toc a:hover { color: var(--ink); text-decoration: none; }

/* === Two-route flowchart cards (volle breedte) === */
.routes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
@media (max-width: 1000px) { .routes-grid { grid-template-columns: 1fr; } }
.route-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  position: relative;
  transition: box-shadow .2s ease;
}
.route-card:hover { box-shadow: var(--shadow-md); }
.route-card .route-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 4px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.route-card.web .route-tag {
  background: var(--coral-soft);
  color: var(--coral);
}
.route-card.cli .route-tag {
  background: var(--good-soft);
  color: var(--good);
}
.route-card .route-tag::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.route-card h3 {
  margin: 0 0 6px;
  font-size: 22px;
}
.route-card .sub {
  color: var(--text-muted);
  font-size: 14px;
  margin: 0 0 20px;
  line-height: 1.55;
}
/* === Flow cards (pure HTML, vervangt Mermaid) === */
.flow {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 20px 0;
  padding: 4px 0;
}
.flow-step {
  background: var(--card);
  border: 2px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 14px 18px;
  box-shadow: var(--shadow-sm);
  transition: transform .15s ease;
  position: relative;
}
.flow-step:hover {
  transform: translateX(4px);
  box-shadow: var(--shadow-md);
}
.flow-step-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.flow-step-num {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--coral);
  background: var(--coral-soft);
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: .06em;
}
.flow-step-ico {
  font-size: 20px;
  line-height: 1;
}
.flow-step-title {
  font-weight: 600;
  font-size: 14.5px;
  color: var(--ink);
  flex: 1;
}
.flow-step-body {
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.55;
  margin-top: 6px;
  padding-left: 30px;
}
.flow-step-body code {
  font-size: 11.5px;
  padding: 1px 5px;
}

/* Kleur-variants */
.flow-step.is-actor { border-color: var(--coral); }
.flow-step.is-actor .flow-step-num { color: var(--coral); background: var(--coral-soft); }

.flow-step.is-transport { border-color: var(--glacier); background: var(--glacier-soft); }
.flow-step.is-transport .flow-step-num { color: var(--glacier); background: #fff; }

.flow-step.is-tools {
  border-color: #6FA088;
  background: linear-gradient(135deg, var(--card) 0%, var(--sage-soft) 100%);
}
.flow-step.is-tools .flow-step-num { color: #4A7058; background: #fff; }

.flow-step.is-result {
  border-style: dashed;
  border-color: var(--text-dim);
  background: var(--bg-soft);
}
.flow-step.is-result .flow-step-num { color: var(--ink); background: #fff; }
.flow-step.is-result .flow-step-title { color: var(--ink); }

/* Verbindings-arrow tussen stappen */
.flow-arrow {
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--text-dim);
  text-align: left;
  padding: 6px 0 6px 28px;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-weight: 600;
  position: relative;
}
.flow-arrow::before {
  content: "";
  position: absolute;
  left: 18px;
  top: -2px; bottom: -2px;
  width: 2px;
  background: var(--border-strong);
  border-radius: 1px;
}
.flow-arrow::after {
  content: "↓";
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--bg-soft);
  color: var(--coral);
  font-size: 14px;
  font-weight: 700;
  width: 14px;
  text-align: center;
  line-height: 1;
}
.flow-arrow .label {
  margin-left: 18px;
}

.route-steps {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  counter-reset: step;
}
.route-steps li {
  counter-increment: step;
  padding: 10px 0 10px 36px;
  position: relative;
  font-size: 14px;
  color: var(--text);
  border-bottom: 1px solid var(--border);
}
.route-steps li:last-child { border-bottom: 0; padding-bottom: 0; }
.route-steps li::before {
  content: counter(step);
  position: absolute;
  left: 0; top: 10px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--bg-soft);
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.route-card.web .route-steps li::before { background: var(--coral-soft); color: var(--coral); }
.route-card.cli .route-steps li::before { background: var(--good-soft); color: var(--good); }
.route-steps li code { font-size: 12px; }

/* === Terminal (CLI conversatie demo) === */
.terminal {
  background: #0a0a0a;
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin: 32px 0 16px;
  box-shadow: 0 10px 32px rgba(15, 23, 42, .18);
  border: 1px solid #1f1f1f;
}
.terminal .term-head {
  background: #181818;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #232323;
}
.terminal .term-dots { display: flex; gap: 6px; }
.terminal .term-dot {
  width: 11px; height: 11px;
  border-radius: 50%;
  background: #3a3a3a;
}
.terminal .term-dot:nth-child(1) { background: #ff5f57; }
.terminal .term-dot:nth-child(2) { background: #febc2e; }
.terminal .term-dot:nth-child(3) { background: #28c840; }
.terminal .term-title {
  color: #888;
  font-family: var(--font-mono);
  font-size: 12px;
  margin: 0 auto;
  padding-right: 38px; /* compenseer dots-breedte */
}
.terminal .term-body {
  padding: 18px 22px 24px;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.65;
  color: #cc3030;
  overflow-x: auto;
  white-space: pre;
}
.terminal .term-body .prompt   { color: #ff6b6b; font-weight: 700; }
.terminal .term-body .you      { color: #ffd0d0; }
.terminal .term-body .tool     { color: #ff4848; font-weight: 600; }
.terminal .term-body .key      { color: #ff8888; }
.terminal .term-body .str      { color: #ffaaaa; }
.terminal .term-body .num      { color: #ff9966; }
.terminal .term-body .ok       { color: #ff3030; font-weight: 700; }
.terminal .term-body .dim      { color: #803030; }
.terminal .term-body .arrow    { color: #ff4848; }
.terminal .term-body .reply    { color: #ffbcbc; }
.terminal .term-body .caret    {
  display: inline-block;
  width: 8px; height: 14px;
  background: #ff4848;
  vertical-align: text-bottom;
  margin-left: 4px;
  animation: blink 1s steps(2) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.term-caption {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  text-align: center;
  margin-top: -6px;
  margin-bottom: 32px;
  font-style: italic;
}

/* === Stack cards (UCP/MCP/etc) === */
.stack-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 18px;
  margin: 8px 0;
  align-items: stretch;
}
.stack-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px 22px 18px;
  transition: all .15s ease;
  display: flex;
  flex-direction: column;
  min-height: 200px;
  box-shadow: var(--shadow-sm);
}
.stack-card:hover {
  border-color: var(--ink);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.stack-card .layer-name {
  font-family: var(--font-mono);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
  letter-spacing: -.01em;
}
.stack-card .layer-tag {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--glacier);
  margin-bottom: 14px;
}
.stack-card .layer-what {
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.55;
  flex: 1;
  margin-bottom: 14px;
}
.stack-card .layer-who {
  font-size: 12px;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
  padding-top: 12px;
  line-height: 1.5;
}
.stack-card.highlight {
  border-color: var(--coral);
  background: linear-gradient(160deg, var(--card) 0%, var(--coral-soft) 100%);
}
.stack-card.highlight .layer-tag { color: var(--coral); }

/* === Tech-stack checklist === */
.checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 28px;
}
@media (max-width: 700px) { .checklist { grid-template-columns: 1fr; } }
.checklist li {
  padding-left: 32px;
  position: relative;
  font-size: 14px;
  line-height: 1.55;
}
.checklist li::before {
  content: "✓";
  position: absolute;
  left: 0; top: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--good-soft);
  color: var(--good);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
}
.checklist li strong { color: var(--text); display: block; }
.checklist li .desc { color: var(--text-muted); font-size: 13px; }

/* === Limits list (with X icon) === */
.limits {
  list-style: none;
  padding: 0;
  margin: 0;
}
.limits li {
  padding: 14px 0 14px 32px;
  border-bottom: 1px solid var(--border);
  position: relative;
  font-size: 14px;
  line-height: 1.55;
}
.limits li:last-child { border-bottom: 0; }
.limits li::before {
  content: "×";
  position: absolute;
  left: 0; top: 12px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--warn-soft);
  color: var(--warn);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
}
.limits li strong { color: var(--text); display: block; margin-bottom: 2px; }
.limits li .desc { color: var(--text-muted); font-size: 13px; }

/* === CTA card === */
.cta-card {
  background: linear-gradient(135deg, var(--card) 0%, var(--bg-soft) 100%);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 44px 44px 40px;
  text-align: center;
  margin-top: 48px;
  box-shadow: var(--shadow-sm);
}
@media (max-width: 700px) {
  .cta-card { padding: 32px 22px; }
}
.cta-card h3 {
  margin: 0 auto 8px;
  font-size: 26px;
  max-width: 720px;
  letter-spacing: -.01em;
}
.cta-card > p {
  margin: 0 auto 28px;
  color: var(--text-muted);
  font-size: 15.5px;
  line-height: 1.6;
  max-width: 680px;
}

/* 3-knoppen rij — uniform formaat, kleur-variatie uit V3 palet */
.cta-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  max-width: 760px;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .cta-actions { grid-template-columns: 1fr; }
}
.cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 20px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  border: 1.5px solid;
  background: var(--card);
  transition: all .18s ease;
  white-space: nowrap;
  letter-spacing: -.005em;
}
.cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  text-decoration: none;
  color: #fff !important;
}
.cta-btn .ico {
  font-size: 16px;
  line-height: 1;
  display: inline-block;
}

/* Variant: Mail Geert — ink/charcoal */
.cta-btn.ink {
  border-color: var(--ink);
  color: var(--ink);
}
.cta-btn.ink:hover { background: var(--ink); }

/* Variant: Partner site — glacier-blue */
.cta-btn.glacier {
  border-color: var(--glacier);
  color: var(--glacier);
}
.cta-btn.glacier:hover { background: var(--glacier); }

/* Variant: External tool — coral */
.cta-btn.coral {
  border-color: var(--coral);
  color: var(--coral);
}
.cta-btn.coral:hover { background: var(--coral); }

/* ============================================
   Footer
   ============================================ */
.site-footer {
  border-top: 1px solid var(--border);
  background: var(--card);
  padding: 28px 0;
  margin-top: 60px;
  font-size: 13px;
  color: var(--text-muted);
}
.site-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
}
.site-footer a { color: var(--text-muted); }
.site-footer a:hover { color: var(--ink); }
.site-footer .poc-note {
  font-size: 11px;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 900px) {
  .pd-grid, .cart-grid, .co-grid { grid-template-columns: 1fr; }
  .pd-right { position: static; }
  .hero { padding: 0 0 32px; }
  .hero-text { padding: 28px 22px 0; }
  .hero-text h1 { font-size: 32px; }
  .hero-stats { gap: 20px; }
  .site-header-inner { padding: 12px 18px; }
  .page { padding: 24px 18px 60px; }
  .topnav { gap: 14px; }
  .topnav a:not(.cart-link) { display: none; }
  .cart-row { grid-template-columns: 80px 1fr; }
  .cart-row .actions { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
}

/* ===== language switcher (i18n.js) ===== */
.lang-switch { display: inline-flex; gap: 2px; margin-left: 14px; vertical-align: middle; }
.lang-switch button {
  font: inherit; font-size: 12px; letter-spacing: 0.04em; cursor: pointer;
  padding: 2px 7px; border-radius: 5px; border: 1px solid transparent;
  background: none; color: inherit; opacity: 0.65;
}
.lang-switch button:hover { opacity: 1; }
.lang-switch button[aria-pressed="true"] {
  opacity: 1; background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.35); font-weight: 600;
}

/* Longer DE/NL labels: give the header room before the responsive trims kick in */
.header-mid { min-width: 0; }
@media (max-width: 1600px) {
  html[lang="de"] .brand-tag.tagline,
  html[lang="nl"] .brand-tag.tagline { display: none; }
}
@media (max-width: 1300px) {
  html[lang="de"] .partners,
  html[lang="nl"] .partners { display: none; }
}
