/* QRJam — global styles. Two website vibes selectable via data-vibe on <body>. */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Space Grotesk", "Inter", system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--bg);
  color: var(--ink);
  min-height: 100vh;
  transition: background .35s ease, color .35s ease;
}

/* ── Vibe: Warm Modern (the safe variant) ──────────────────────── */
body[data-vibe="warm"] {
  --bg:        #f7f1e6;
  --bg-soft:   #f0e7d3;
  --surface:   #ffffff;
  --ink:       #1c130a;
  --ink-soft:  #5b4f3f;
  --muted:     #968774;
  --line:      rgba(28,19,10,.08);
  --line-strong: rgba(28,19,10,.16);
  --accent:    #e85d3a;
  --accent-ink:#ffffff;
  --accent-soft:#fbe7df;
  --pos:       #157a48;
  --shadow-card: 0 10px 30px -16px rgba(28,19,10,.35), 0 2px 6px rgba(28,19,10,.06);
  --font-display: "Fraunces", "DM Serif Display", Georgia, serif;
  --font-mono: "Space Mono", monospace;
}

/* ── Vibe: Neon Party (the bold variant) ───────────────────────── */
body[data-vibe="neon"] {
  --bg:        #0b0716;
  --bg-soft:   #140e22;
  --surface:   #1a1330;
  --ink:       #ffffff;
  --ink-soft:  rgba(255,255,255,.72);
  --muted:     rgba(255,255,255,.46);
  --line:      rgba(255,255,255,.08);
  --line-strong: rgba(255,255,255,.22);
  --accent:    #ff2bd1;
  --accent-ink:#ffffff;
/*   --accent-soft: rgba(255,43,209,.16); */
  --pos:       #00ffa3;
  --shadow-card: 0 20px 50px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);
  --font-display: "Bricolage Grotesque", "Space Grotesk", sans-serif;
  --font-mono: "Space Mono", monospace;
}

body[data-vibe="neon"] {
  background-image:
/*     radial-gradient(circle at 8% 0%, rgba(255,43,209,.14) 0, transparent 40%), */
    radial-gradient(circle at 92% 100%, rgba(0,255,229,.10) 0, transparent 40%);
  background-attachment: fixed;
}

/* ── Layout ────────────────────────────────────────────────────── */
.app-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 40px;
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.brand {
  display: flex; align-items: center; gap: 10px;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 22px; font-weight: 600;
  letter-spacing: -.02em;
}
.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--accent);
  color: var(--accent-ink);
  font-family: var(--font-mono);
  font-size: 13px; font-weight: 700;
  letter-spacing: -.02em;
}
.brand em { font-style: normal; color: var(--accent); }

.steps {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; color: var(--muted);
  font-family: var(--font-mono); letter-spacing: .04em;
  text-transform: uppercase;
}
.step { display: flex; align-items: center; gap: 8px; }
.step-num {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px;
  border-radius: 999px;
  border: 1px solid var(--line-strong);
  font-size: 11px; font-weight: 600;
  color: var(--muted);
  font-family: var(--font-mono);
  background: transparent;
}
.step.active .step-num {
  background: var(--ink); color: var(--bg);
  border-color: var(--ink);
}
.step.done .step-num {
  background: var(--accent); color: var(--accent-ink);
  border-color: var(--accent);
}
.step.active .step-lbl { color: var(--ink); }
.step-sep { width: 18px; height: 1px; background: var(--line-strong); }

/* ── Buttons ──────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 22px; border: 0; border-radius: 12px;
  background: var(--ink); color: var(--bg);
  font: inherit; font-weight: 600; font-size: 15px;
  cursor: pointer; transition: transform .12s, background .18s, box-shadow .18s;
  font-family: inherit;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn.primary {
  background: var(--accent); color: var(--accent-ink);
  box-shadow: 0 6px 20px -6px var(--accent);
}
body[data-vibe="neon"] .btn.primary {
/*   box-shadow: 0 0 0 1px var(--accent), 0 0 32px rgba(255,43,209,.4); */
}
.btn.primary:hover { filter: brightness(1.05); }
.btn.ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line-strong);
}
.btn.ghost:hover { background: var(--bg-soft); }
.btn.lg { padding: 18px 28px; font-size: 16px; border-radius: 14px; }
.btn.sm { padding: 9px 14px; font-size: 13px; border-radius: 10px; }
.btn.icon-only { padding: 9px; aspect-ratio: 1; }
.btn:disabled { opacity: .35; cursor: not-allowed; transform: none; }

/* ── Inputs ──────────────────────────────────────────────────── */
.input {
  width: 100%;
  padding: 18px 20px;
  border: 1.5px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink);
  border-radius: 14px;
  font: inherit; font-size: 16px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  font-family: var(--font-mono);
}
.input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
}
.input::placeholder { color: var(--muted); }

.label {
  display: block;
  font-size: 12px; font-weight: 600;
  color: var(--muted);
  font-family: var(--font-mono);
  letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: 8px;
}

/* ── Cards / surfaces ─────────────────────────────────────────── */
.surface {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow-card);
}

/* ── Landing ──────────────────────────────────────────────────── */
.landing {
  flex: 1;
  padding: 60px 40px 100px;
  max-width: 1180px;
  margin: 0 auto;
  width: 100%;
}
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px; letter-spacing: .15em; text-transform: uppercase;
  color: var(--accent);
  padding: 6px 12px;
  background: var(--accent-soft);
  border-radius: 999px;
}
.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(42px, 5.5vw, 80px);
  line-height: .95;
  letter-spacing: -.035em;
  margin: 20px 0 24px;
  font-weight: 600;
  text-wrap: balance;
}
body[data-vibe="neon"] .hero h1 { font-weight: 800; }
.hero h1 em {
  font-style: italic;
  color: var(--accent);
}
body[data-vibe="neon"] .hero h1 em {
  font-style: normal;
/*   text-shadow: 0 0 22px rgba(255,43,209,.7); */
}
.hero p.lead {
  font-size: 20px;
  line-height: 1.5;
  color: var(--ink-soft);
  max-width: 600px;
  margin: 0 0 36px;
  text-wrap: balance;
}
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.how-it-works {
  margin-top: 110px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.how-step {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  position: relative;
}
.how-num {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--accent);
  letter-spacing: .1em;
}
.how-step h3 {
  font-family: var(--font-display);
  font-size: 24px;
  margin: 12px 0 8px;
  letter-spacing: -.02em;
  font-weight: 600;
}
.how-step p {
  margin: 0; color: var(--ink-soft); line-height: 1.5; font-size: 15px;
}

/* Hero side preview */
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 60px;
  align-items: center;
}
.hero-preview {
  position: relative;
  height: 480px;
}
.hero-preview-card {
  position: absolute;
  transition: transform .6s cubic-bezier(.3,.7,.4,1);
}
.hero-preview-card.c1 { top: 0; right: 40px; transform: rotate(-6deg); }
.hero-preview-card.c2 { top: 60px; right: 200px; transform: rotate(3deg); z-index: 2; }
.hero-preview-card.c3 { top: 200px; right: 60px; transform: rotate(8deg); z-index: 1; }
.hero-preview:hover .c1 { transform: rotate(-8deg) translate(-12px, -8px); }
.hero-preview:hover .c2 { transform: rotate(0deg) translateY(-12px); }
.hero-preview:hover .c3 { transform: rotate(10deg) translate(14px, 8px); }

/* ── Center container for narrow flows ────────────────────────── */
.flow-center {
  flex: 1;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 56px 40px;
}
.flow-content {
  width: 100%;
  max-width: 720px;
}
.flow-content.wide { max-width: 1280px; }
.flow-title {
  font-family: var(--font-display);
  font-size: clamp(34px, 4vw, 52px);
  letter-spacing: -.025em;
  margin: 0 0 14px;
  font-weight: 600;
  text-wrap: balance;
  line-height: 1.05;
}
body[data-vibe="neon"] .flow-title { font-weight: 700; }
.flow-sub {
  font-size: 17px; color: var(--ink-soft);
  margin: 0 0 36px;
  line-height: 1.5;
  text-wrap: pretty;
}

/* ── Playlist preview tile (after pasting URL) ────────────────── */
.pl-preview {
  display: flex; gap: 18px; align-items: center;
  padding: 16px;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-top: 22px;
}
.pl-cover {
  width: 72px; height: 72px;
  border-radius: 10px;
  background: linear-gradient(135deg, #1db954, #0c8742);
  display: grid; place-items: center;
  color: #fff;
  flex-shrink: 0;
}
.pl-info { flex: 1; min-width: 0; }
.pl-name {
  font-family: var(--font-display);
  font-size: 20px; font-weight: 600; letter-spacing: -.01em;
  margin: 0 0 4px;
}
.pl-meta {
  font-size: 13px; color: var(--muted);
  font-family: var(--font-mono);
  letter-spacing: .03em;
}

/* ── Loading ───────────────────────────────────────────────────── */
.loading-wrap {
  display: flex; flex-direction: column; align-items: center; gap: 36px;
  padding: 80px 0;
}
.loading-cards {
  display: flex; gap: 12px;
  perspective: 800px;
}
.loading-card {
  width: 50px; height: 50px;
  border-radius: 8px;
  background: var(--accent);
  animation: flipper 1.4s infinite ease-in-out;
  transform-style: preserve-3d;
}
.loading-card:nth-child(2) { animation-delay: .15s; background: var(--ink); }
.loading-card:nth-child(3) { animation-delay: .3s; background: var(--accent); }
.loading-card:nth-child(4) { animation-delay: .45s; background: var(--ink); }
.loading-card:nth-child(5) { animation-delay: .6s; background: var(--accent); }
@keyframes flipper {
  0%, 60%, 100% { transform: rotateY(0); }
  30% { transform: rotateY(180deg); }
}
.loading-text {
  font-family: var(--font-mono);
  font-size: 14px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-soft);
  text-align: center;
}
.loading-detail { display: block; color: var(--muted); margin-top: 8px; font-size: 12px; }

/* ── Card overview ─────────────────────────────────────────────── */
.overview-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 24px; flex-wrap: wrap;
  margin-bottom: 32px;
}
.overview-stats {
  display: flex; gap: 28px;
  font-family: var(--font-mono); font-size: 13px; letter-spacing: .04em;
  color: var(--ink-soft);
}
.stat-num {
  display: block;
  font-family: var(--font-display);
  font-size: 32px; color: var(--ink);
  letter-spacing: -.02em; font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.stat-lbl { display: block; margin-top: 6px; text-transform: uppercase; color: var(--muted); }

.toolbar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-bottom: 24px;
}
.toolbar-group {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--ink-soft);
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}
.card-cell {
  position: relative;
  display: flex; flex-direction: column; gap: 10px;
  padding: 12px;
  border-radius: 16px;
  transition: background .18s, transform .15s;
  cursor: pointer;
}
.card-cell:hover { background: var(--bg-soft); }
.card-cell.deleted { opacity: .25; }
.card-cell-inner {
  align-self: center;
  transition: transform .25s cubic-bezier(.3,.7,.4,1);
}
.card-cell:hover .card-cell-inner { transform: translateY(-4px); }
.card-cell-meta {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px;
  font-family: var(--font-mono);
  color: var(--muted);
  letter-spacing: .04em;
}
.card-cell-meta b { color: var(--ink); font-weight: 600; }
.card-actions {
  position: absolute; top: 16px; right: 16px;
  display: flex; gap: 6px;
  opacity: 0; transition: opacity .15s;
}
.card-cell:hover .card-actions { opacity: 1; }
.card-action {
  width: 30px; height: 30px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid; place-items: center;
  cursor: pointer; color: var(--ink-soft);
  transition: all .15s;
}
.card-action:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.card-action.danger:hover { background: #d93025; color: #fff; border-color: #d93025; }

/* ── Style picker ──────────────────────────────────────────────── */
.style-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 12px;
}
.style-card {
  padding: 18px;
  border: 2px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  cursor: pointer;
  transition: all .18s;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.style-card:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.style-card.selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px var(--accent-soft);
}
body[data-vibe="neon"] .style-card.selected {
/*   box-shadow: 0 0 0 1px var(--accent), 0 0 30px rgba(255,43,209,.3); */
}
.style-card-info {
  text-align: center;
}
.style-card-name {
  font-family: var(--font-display);
  font-size: 20px; font-weight: 600;
  letter-spacing: -.01em;
  margin: 0;
}
.style-card-hint {
  font-size: 13px; color: var(--muted); margin-top: 4px;
  font-family: var(--font-mono); letter-spacing: .03em;
}
.style-card-faces {
  display: flex; gap: 10px;
  padding: 12px;
  background: var(--bg-soft);
  border-radius: 14px;
}
.style-side-tag {
  position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 10px; letter-spacing: .12em;
  text-transform: uppercase;
  background: var(--ink); color: var(--bg);
  padding: 3px 8px; border-radius: 999px;
  opacity: 0; transition: opacity .15s;
}
.face-wrap { position: relative; }
.face-wrap:hover .style-side-tag { opacity: 1; }

/* ── Print preview ─────────────────────────────────────────────── */
.print-layout {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 32px;
  align-items: start;
}
.print-controls .surface { padding: 22px; }
.print-section { margin-bottom: 22px; }
.print-section h4 {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 12px;
  font-weight: 600;
}
.toggle-row {
  display: flex; gap: 0; padding: 4px;
  background: var(--bg-soft); border-radius: 10px;
}
.toggle-btn {
  flex: 1; padding: 10px 12px;
  background: transparent; border: 0; border-radius: 8px;
  color: var(--ink-soft); cursor: pointer;
  font: inherit; font-size: 13px; font-weight: 500;
  transition: all .15s;
}
.toggle-btn.active {
  background: var(--surface); color: var(--ink);
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.print-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 22px;
  font-size: 13px;
}
.print-info dt { color: var(--muted); font-family: var(--font-mono); letter-spacing: .04em; }
.print-info dd { margin: 0; color: var(--ink); font-weight: 500; }

/* The simulated A4 page */
.paper {
  background: #ffffff;
  color: #1a1612;
  width: 100%;
  aspect-ratio: 1 / 1.414;
  padding: 4%;
  border-radius: 6px;
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.35), 0 4px 12px rgba(0,0,0,.08);
  display: flex; flex-direction: column;
  position: relative;
  overflow: visible;
}
.paper-grid {
  flex: 1;
  display: grid;
  gap: 32px;
  position: relative;
  overflow: visible;
  padding: 16px;
}
.paper-cell {
  position: relative;
  display: grid; place-items: center;
  background: transparent;
  overflow: visible;
  padding: 12px;
  margin: -12px;
}
.paper-cell.empty { opacity: 0; }
.cut-marks {
  position: absolute; inset: 0;
  pointer-events: none;
}
.paper-foot {
  display: flex; justify-content: space-between;
  font-family: monospace;
  font-size: 9px; color: rgba(0,0,0,.4);
  letter-spacing: .12em; text-transform: uppercase;
  padding-top: 10px;
}

/* ── Edit modal ────────────────────────────────────────────────── */
.modal-scrim {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: grid; place-items: center;
  z-index: 100;
  animation: fade .2s;
}
@keyframes fade { from { opacity: 0; } }
.modal {
  width: min(880px, calc(100vw - 40px));
  max-height: calc(100vh - 60px);
  overflow: auto;
  background: var(--surface);
  border-radius: 22px;
  padding: 36px;
  box-shadow: 0 40px 80px -20px rgba(0,0,0,.4);
  border: 1px solid var(--line);
  animation: pop .25s cubic-bezier(.3,.7,.4,1);
}
@keyframes pop { from { transform: scale(.96); opacity: 0; } }
.modal-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 36px;
  align-items: start;
}
.modal h3 {
  font-family: var(--font-display);
  font-size: 28px; letter-spacing: -.02em;
  margin: 0 0 4px; font-weight: 600;
}
.modal-sub {
  color: var(--muted); margin: 0 0 24px;
  font-family: var(--font-mono); font-size: 12px;
  letter-spacing: .04em; text-transform: uppercase;
}
.modal-field { margin-bottom: 18px; }
.modal-actions {
  display: flex; gap: 10px;
  justify-content: space-between;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.modal-flip {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 16px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--ink-soft);
  cursor: pointer;
  background: var(--bg-soft);
  padding: 8px 14px;
  border-radius: 999px;
  border: 0;
}
.modal-flip:hover { background: var(--line-strong); }

/* ── Slider (range) override ────────────────────────────────── */
.range {
  appearance: none; -webkit-appearance: none;
  width: 100%; height: 4px;
  background: var(--line-strong); border-radius: 999px;
  outline: none;
}
.range::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--accent);
  cursor: pointer;
  border: 3px solid var(--surface);
  box-shadow: 0 0 0 1px var(--line-strong);
}
.range::-moz-range-thumb {
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--accent);
  cursor: pointer;
  border: 3px solid var(--surface);
}

/* helpers */
.row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.spacer { flex: 1; }
.mono { font-family: var(--font-mono); }
.muted { color: var(--muted); }
.ink-soft { color: var(--ink-soft); }


/* ── Customize panel ─────────────────────────────────────────── */
.customize {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px;
  margin-top: 28px;
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-card);
}
.customize-preview {
  align-self: center;
}
.face-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
  margin-bottom: 10px;
}
.customize-title {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: -.02em;
  margin: 0 0 22px;
  font-weight: 600;
}
.customize-field { margin-bottom: 18px; }
.customize-field .label {
  display: flex; justify-content: space-between; align-items: baseline;
}
.hex-pill {
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--muted);
  background: var(--bg-soft);
  padding: 2px 8px;
  border-radius: 999px;
  text-transform: none;
  letter-spacing: 0;
}
.sw-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28px, 1fr));
  gap: 6px;
  margin-bottom: 8px;
}
.sw {
  height: 30px;
  border-radius: 8px;
  border: 1px solid var(--line);
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: transform .12s, box-shadow .12s;
}
.sw:hover { transform: translateY(-1px); }
.sw-on {
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--ink);
}
.color-native {
  width: 100%;
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0;
  background: transparent;
  cursor: pointer;
}
.color-native::-webkit-color-swatch-wrapper { padding: 2px; }
.color-native::-webkit-color-swatch { border-radius: 6px; border: 0; }

.seg {
  display: flex;
  gap: 0;
  padding: 4px;
  background: var(--bg-soft);
  border-radius: 10px;
  flex-wrap: wrap;
}
.seg-btn {
  flex: 1; min-width: 60px;
  padding: 8px 10px;
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: var(--ink-soft);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.seg-btn:hover { color: var(--ink); }
.seg-on {
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

/* ── Mobile responsive ──────────────────────────────────────── */

@media (max-width: 1024px) {
  .topbar { padding: 18px 24px; }
  .landing { padding: 36px 24px 80px; }
  .flow-center { padding: 36px 24px; }
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .hero-preview {
    height: 380px;
    max-width: 460px;
    margin: 0 auto;
  }
  .how-it-works { margin-top: 70px; }
  .print-layout {
    grid-template-columns: 1fr;
  }
  .customize {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .topbar { padding: 14px 18px; gap: 12px; }
  .brand { font-size: 18px; }
  .brand-mark { width: 28px; height: 28px; font-size: 12px; }
  /* Hide step labels (keep dots) and the trailing url on small screens */
  .steps .step-lbl { display: none; }
  .topbar > div:last-child { display: none; }

  .landing { padding: 28px 18px 60px; }
  .flow-center { padding: 28px 18px; }
  .hero h1 { font-size: clamp(40px, 11vw, 56px); }
  .hero p.lead { font-size: 17px; }
  .hero-preview {
    height: 320px;
    width: 340px;
    margin: 0 auto;
  }
  .hero-preview-card.c1 { right: 45px; top: 0; transform: rotate(-6deg); }
  .hero-preview-card.c2 { right: 145px; top: 45px; transform: rotate(3deg); z-index: 2; }
  .hero-preview-card.c3 { right: 53px; top: 145px; transform: rotate(8deg); z-index: 1; }

  .how-it-works {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 56px;
  }
  .how-step { padding: 22px; }

  .flow-title { font-size: clamp(28px, 7vw, 36px); }
  .flow-sub { font-size: 15px; }

  .overview-head { flex-direction: column; align-items: flex-start; }
  .overview-stats { gap: 22px; }
  .stat-num { font-size: 26px; }

  .toolbar { padding: 14px; gap: 12px; }
  .toolbar-group { flex-wrap: wrap; width: 100%; }

  .card-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .card-cell { padding: 8px; }
  /* Cards on mobile resize fluidly */
  .card-actions { opacity: 1; }
  .card-action { width: 28px; height: 28px; }

  .style-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .style-card { padding: 16px; }
  .style-card-faces { padding: 10px; gap: 8px; }

  .customize { padding: 18px; gap: 22px; }

  .print-layout { gap: 22px; }
  .modal { padding: 22px; border-radius: 18px; }
  .modal-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .modal-grid > div:first-child {
    display: flex; flex-direction: column; align-items: center;
  }
  .modal-actions { flex-direction: column; }
  .modal-actions .row { width: 100%; }
  .modal-actions .row .btn { flex: 1; }

  .btn.lg { padding: 16px 22px; font-size: 15px; }

  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { justify-content: center; }
}

@media (max-width: 420px) {
  .card-grid { grid-template-columns: 1fr; }
}

/* Fix: ensure card scales inside its wrappers on mobile.
   Sizes are passed at the React level via useViewportWidth, but center cells.
*/
@media (max-width: 720px) {
  .card-cell-inner { width: 100%; display: flex; justify-content: center; }
}


@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* QRJam header restore */
.topbar,
.site-header,
.app-header,
header {
  background: rgba(13, 6, 24, 0.92) !important;
  background-color: rgba(13, 6, 24, 0.92) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}



/* QRJam Player homepage buttons */
.btn.player-cta,
.btn.player-nav {
  color: #fff;
  background:
/*     linear-gradient(135deg, rgba(255,43,209,0.96), rgba(168,85,247,0.96)); */
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow:
/*     0 0 0 1px rgba(255,43,209,0.22), */
/*     0 12px 34px rgba(255,43,209,0.26); */
}

.btn.player-cta:hover,
.btn.player-nav:hover {
  filter: brightness(1.06);
  box-shadow:
/*     0 0 0 1px rgba(255,43,209,0.36), */
/*     0 16px 42px rgba(255,43,209,0.34); */
}

.btn.player-nav {
  padding-left: 15px;
  padding-right: 15px;
}

@media (max-width: 720px) {
  .btn.player-cta {
    order: 2;
  }
}


/* QRJam Player buttons — gelijkgetrokken met hoofdwebsite */
a.btn {
  text-decoration: none;
}

.btn.player-cta {
  background: var(--accent);
  color: var(--accent-ink);
  border: 0;
  box-shadow: 0 6px 20px -6px var(--accent);
}

body[data-vibe="neon"] .btn.player-cta {
  background: var(--accent);
  color: var(--accent-ink);
  box-shadow:
    0 0 0 1px var(--accent),
/*     0 0 32px rgba(255,43,209,.4); */
}

.btn.player-cta:hover {
  filter: brightness(1.05);
  text-decoration: none;
}

.btn.player-nav {
  background: var(--accent);
  color: var(--accent-ink);
  border: 0;
  box-shadow:
/*     0 0 0 1px rgba(255,43,209,.45), */
/*     0 0 22px rgba(255,43,209,.28); */
  text-decoration: none;
}

.btn.player-nav:hover {
  filter: brightness(1.06);
  text-decoration: none;
}

.hero-actions,
.cta-row {
  align-items: center;
}

@media (max-width: 720px) {
  .btn.player-cta {
    width: 100%;
  }
}

/* Homepage player knop — zelfde formaat als 'Maak mijn kaartjes' */
@media (max-width: 720px) {
  .btn.player-cta {
    width: auto !important;
    min-width: 0;
    align-self: center;
    padding: 18px 28px;
    border-radius: 14px;
  }
}

/* Homepage hero-knoppen mobiel naast elkaar */
@media (max-width: 720px) {
  .hero-actions,
  .cta-row {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
  }

  .hero-actions .btn.primary,
  .hero-actions .btn.player-cta,
  .cta-row .btn.primary,
  .cta-row .btn.player-cta {
    width: auto !important;
    min-width: 0 !important;
    flex: 0 1 calc(50% - 6px);
    padding: 16px 14px;
    font-size: 15px;
    white-space: nowrap;
  }

  .hero-actions .btn.ghost,
  .cta-row .btn.ghost {
    flex: 0 1 auto;
    width: auto !important;
    padding: 16px 24px;
  }
}

@media (max-width: 380px) {
  .hero-actions .btn.primary,
  .hero-actions .btn.player-cta,
  .cta-row .btn.primary,
  .cta-row .btn.player-cta {
    font-size: 14px;
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* Force fix: homepage mobiele knoppen naast elkaar */
@media (max-width: 720px) {
  .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
  }

  .hero-actions .btn.primary,
  .hero-actions .btn.player-cta {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    order: 0 !important;
    padding: 16px 10px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  .hero-actions .btn.ghost {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    width: auto !important;
    min-width: 210px !important;
    order: 0 !important;
    padding: 16px 24px !important;
  }
}

@media (max-width: 390px) {
  .hero-actions .btn.primary,
  .hero-actions .btn.player-cta {
    font-size: 13px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}


/* Inline link naar QRJam Player */
.inline-player-link {
  color: var(--accent);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  transition: filter .18s ease, border-color .18s ease;
}

.inline-player-link:hover {
  filter: brightness(1.12);
  border-bottom-color: var(--accent);
}


/* Inline QRJam Player links */
.inline-player-link {
  color: var(--accent);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  transition: filter .18s ease, border-color .18s ease;
}

.inline-player-link:hover {
  filter: brightness(1.12);
  border-bottom-color: var(--accent);
}


/* Download paywall styles */
.playlist-row-locked {
  opacity: 1 !important;
}

.playlist-row-locked::after {
  display: none !important;
}


/* Playlist price labels */
.playlist-price-free,
.playlist-price-paid {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
  vertical-align: middle;
}

.playlist-price-free {
  color: #071d12;
  background: #2df184;
}

.playlist-price-paid {
  color: #fff;
  background: linear-gradient(135deg, #ff2bd1, #a855f7);
/*   box-shadow: 0 0 16px rgba(255,43,209,.24); */
}


/* Playlist price labels fix */
.playlist-price-free,
.playlist-price-paid {
  display: inline-flex;
  align-items: center;
  margin-left: 2px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .03em;
  vertical-align: middle;
}

.playlist-price-free {
  color: #061d11;
  background: #2df184;
}

.playlist-price-paid {
  color: #fff;
  background: linear-gradient(135deg, #ff2bd1, #a855f7);
/*   box-shadow: 0 0 16px rgba(255,43,209,.24); */
}


/* Playlist price labels exact */
.playlist-price-free,
.playlist-price-paid {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .03em;
  line-height: 1.4;
  vertical-align: middle;
}

.playlist-price-free {
  color: #061d11;
  background: #2df184;
}

.playlist-price-paid {
  color: #fff;
  background: linear-gradient(135deg, #ff2bd1, #a855f7);
/*   box-shadow: 0 0 16px rgba(255,43,209,.24); */
}

/* Playlist prijslabels iets groter/duidelijker */
.playlist-price-free,
.playlist-price-paid {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  line-height: 1;
  min-height: 22px;
  vertical-align: middle;
}

.playlist-price-free {
  color: #04160d;
  background: #35f08a;
  box-shadow: 0 0 14px rgba(53, 240, 138, 0.18);
}

.playlist-price-paid {
  color: #fff;
  background: linear-gradient(135deg, #ff2bd1, #b05cff);
  box-shadow: 0 0 18px rgba(255, 43, 209, 0.28);
}

/* Subregel onder playlisttitel net iets leesbaarder */
.playlist-meta,
.playlist-subline {
  font-size: 13px;
  color: var(--ink-soft);
}

/* Op mobiel nog steeds netjes */
@media (max-width: 640px) {
  .playlist-price-free,
  .playlist-price-paid {
    font-size: 10px;
    padding: 4px 9px;
    min-height: 20px;
  }
}

/* Playlist prijslabels + info regel polish */
.playlist-price-free,
.playlist-price-paid {
  margin-left: 4px;
  padding: 4px 11px;
  font-size: 11px;
  min-height: 22px;
}

.playlist-price-free {
  box-shadow:
    0 0 0 1px rgba(53,240,138,.18),
    0 0 18px rgba(53,240,138,.20);
}

.playlist-price-paid {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
/*     0 0 20px rgba(255,43,209,.32); */
}

/* Info regel onder playlist iets leesbaarder */
main strong {
  color: var(--ink) !important;
}

@media (min-width: 720px) {
  .playlist-price-free,
  .playlist-price-paid {
    transform: translateY(-1px);
  }
}

/* ── Mobile header fix: brand + steps compact ─────────────────── */
@media (max-width: 720px) {
  .brand svg { width: 30px !important; height: 30px !important; }
  .step-num  { width: 18px; height: 18px; font-size: 9px; }
  .step-sep  { width: 8px; }
  .steps     { gap: 5px; }
}

/* ── Verberg logo op mobiel zodra stappen zichtbaar zijn ───────── */
@media (max-width: 720px) {
  .topbar:has(.steps) .brand { display: none; }
}

/* ── Hero knoppen uniform gradient ─────────────────────────────── */
.hero-actions .btn.primary,
.hero-actions .btn.ghost {
/*   background: linear-gradient(135deg, rgba(255,43,209,0.96), rgba(168,85,247,0.96)); */
  color: #fff !important;
  border: none !important;
/*   box-shadow: 0 12px 34px rgba(255,43,209,0.26); */
}
.hero-actions .btn.primary:hover,
.hero-actions .btn.ghost:hover {
  filter: brightness(1.06);
}

/* ── Verwijder ring-shadow op hero knoppen (voorkomt streep) ────── */
body[data-vibe="neon"] .hero-actions .btn.primary,
body[data-vibe="neon"] .hero-actions .btn.ghost {
/*   box-shadow: 0 12px 34px rgba(255,43,209,0.26) !important; */
}

/* ── iOS App nav-knop: zelfde gradient + geen ring-streep ───────── */
body[data-vibe="neon"] .btn.player-nav {
/*   box-shadow: 0 12px 34px rgba(255,43,209,0.26) !important; */
}

/* ── iOS App nav-knop: exacte gradient als App Store knop ───────── */
.btn.player-nav {
/*   background: linear-gradient(135deg, rgba(255,43,209,0.96), rgba(168,85,247,0.96)) !important; */
/*   box-shadow: 0 12px 34px rgba(255,43,209,0.26) !important; */
  border: none !important;
}

/* ── Hero knoppen gelijke breedte op mobiel ─────────────────────── */
@media (max-width: 720px) {
  .hero-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .hero-actions > * {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    box-sizing: border-box;
  }
}

/* ── Hero-actions altijd kolom, eerste rij 2 knoppen naast elkaar ── */
.hero-actions {
  flex-direction: column !important;
  align-items: flex-start !important;
}
.hero-actions > div {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 720px) {
  .hero-actions > div {
    width: 100%;
  }
  .hero-actions > div .btn {
    flex: 1;
  }
}

/* ── Fix: brightness filter veroorzaakte glitch op elementen eronder ── */
.hero-actions .btn.primary:hover,
.hero-actions .btn.ghost:hover {
  filter: none !important;
  transform: translateY(-2px);
  opacity: 0.92;
}

/* ── Fix: GPU compositing glitch op how-step titels ────────────── */
.how-it-works {
  isolation: isolate;
}
.hero-actions .btn:hover,
.hero-actions .btn.primary:hover,
.hero-actions .btn.ghost:hover {
  filter: none !important;
  transform: none !important;
/*   box-shadow: 0 12px 34px rgba(255,43,209,0.26) !important; */
}

/* ── Fix: inline-player-link hover zonder filter glitch ─────────── */
.inline-player-link:hover {
  filter: none !important;
  opacity: 0.8;
  border-bottom-color: var(--accent) !important;
}

/* ── Hero knoppen mobiel: alles gelijke breedte gestapeld ─────── */
@media (max-width: 720px) {
  .hero-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
  }
  .hero-actions > div {
    flex-direction: column !important;
    width: 100% !important;
  }
  .hero-actions > div .btn,
  .hero-actions > div a {
    width: 100% !important;
    text-align: center;
    justify-content: center !important;
  }
  .hero-actions > a {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ─────────────────────────────────────────────
   QRJam mobile responsive final override
   Fixes overlapping hero buttons + compact header
   ───────────────────────────────────────────── */

@media (max-width: 900px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .topbar {
    padding: 14px 18px !important;
    gap: 12px !important;
    justify-content: center !important;
  }

  .topbar .brand {
    font-size: 21px !important;
    min-width: 0 !important;
  }

  .topbar .brand svg {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 auto !important;
  }

  /* Mobiel: navigatie rechts verbergen, anders wordt header te druk */
  .topbar > div:last-child {
    display: none !important;
  }

  /* In de kaartjes-flow: alleen stappen tonen */
  .topbar:has(.steps) .brand {
    display: none !important;
  }

  .topbar .steps {
    margin: 0 auto !important;
    max-width: 100% !important;
  }

  .landing {
    padding: 32px 18px 70px !important;
  }

  .hero-grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .eyebrow {
    max-width: 100% !important;
    white-space: normal !important;
    line-height: 1.5 !important;
    border-radius: 24px !important;
    padding: 10px 18px !important;
  }

  .hero h1 {
    font-size: clamp(42px, 11vw, 64px) !important;
    line-height: .96 !important;
    margin: 22px 0 22px !important;
  }

  .hero p.lead {
    font-size: clamp(17px, 4.2vw, 21px) !important;
    line-height: 1.55 !important;
    margin-bottom: 30px !important;
    max-width: none !important;
  }

  /* Belangrijk: overschrijft oude display:grid !important fix */
  .hero-actions {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    gap: 12px !important;
  }

  .hero-actions > div {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
  }

  .hero-actions .btn,
  .hero-actions > a,
  .hero-actions > div > a {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
    white-space: normal !important;
  }

  .hero-actions .btn.lg {
    min-height: 60px !important;
  }

  .hero-actions > a {
    min-height: 72px !important;
    border-radius: 16px !important;
    padding: 12px 18px !important;
  }

  .hero-preview {
    width: min(100%, 360px) !important;
    height: 300px !important;
    margin: 28px auto 0 !important;
    overflow: visible !important;
  }
}

@media (max-width: 420px) {
  .topbar {
    justify-content: flex-start !important;
  }

  .topbar .brand {
    font-size: 20px !important;
  }

  .topbar .brand svg {
    width: 34px !important;
    height: 34px !important;
  }

  .hero h1 {
    font-size: clamp(38px, 11.5vw, 50px) !important;
  }

  .hero-actions > a span span:last-child {
    font-size: 19px !important;
  }
}


/* QRJam language switch */
.lang-switch {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 4px !important;
  border: 1px solid var(--line, rgba(255,255,255,.12)) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.04) !important;
  backdrop-filter: blur(10px) !important;
  flex: 0 0 auto !important;
}

.lang-btn {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  width: 34px !important;
  height: 30px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  font-size: 17px !important;
  line-height: 1 !important;
  opacity: .62 !important;
  transition: .18s ease !important;
}

.lang-btn:hover,
.lang-btn.active {
  opacity: 1 !important;
  background: rgba(255,255,255,.12) !important;
}

@media (max-width: 900px) {
  .lang-switch {
    margin-left: auto !important;
  }

  .lang-btn {
    width: 32px !important;
    height: 28px !important;
    font-size: 16px !important;
  }
}

/* QRJam language switch - real CSS flags */
.lang-switch {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 4px !important;
  border: 1px solid var(--line, rgba(255,255,255,.12)) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.045) !important;
  backdrop-filter: blur(10px) !important;
  flex: 0 0 auto !important;
}

.lang-btn {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  width: 34px !important;
  height: 30px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  opacity: .62 !important;
  transition: .18s ease !important;
  padding: 0 !important;
}

.lang-btn:hover,
.lang-btn.active {
  opacity: 1 !important;
  background: rgba(255,255,255,.13) !important;
}

.flag-icon {
  width: 20px !important;
  height: 14px !important;
  display: block !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.32) inset !important;
}

.flag-nl {
  background: linear-gradient(
    to bottom,
    #ae1c28 0 33.33%,
    #ffffff 33.33% 66.66%,
    #21468b 66.66% 100%
  ) !important;
}

.flag-gb {
  background:
    linear-gradient(33deg, transparent 0 38%, #fff 38% 45%, #c8102e 45% 52%, #fff 52% 59%, transparent 59% 100%),
    linear-gradient(-33deg, transparent 0 38%, #fff 38% 45%, #c8102e 45% 52%, #fff 52% 59%, transparent 59% 100%),
    linear-gradient(to right, transparent 0 42%, #fff 42% 58%, transparent 58% 100%),
    linear-gradient(to bottom, transparent 0 35%, #fff 35% 65%, transparent 65% 100%),
    linear-gradient(to right, transparent 0 46%, #c8102e 46% 54%, transparent 54% 100%),
    linear-gradient(to bottom, transparent 0 42%, #c8102e 42% 58%, transparent 58% 100%),
    #012169 !important;
}

@media (max-width: 900px) {
  .lang-switch {
    margin-left: auto !important;
  }

  .lang-btn {
    width: 32px !important;
    height: 28px !important;
  }

  .flag-icon {
    width: 19px !important;
    height: 13px !important;
  }
}


/* ─────────────────────────────────────────────
   QRJam language switch - clearer selected state
   ───────────────────────────────────────────── */

.lang-switch {
  gap: 5px !important;
  padding: 5px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.055) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 10px 30px rgba(0,0,0,.22) !important;
}

.lang-btn {
  width: auto !important;
  min-width: 58px !important;
  height: 34px !important;
  padding: 0 10px !important;
  gap: 7px !important;
  border-radius: 999px !important;
  opacity: .55 !important;
  color: rgba(255,255,255,.78) !important;
  font-weight: 800 !important;
  font-size: 11px !important;
  letter-spacing: .04em !important;
  border: 1px solid transparent !important;
  background: transparent !important;
}

.lang-btn[data-lang="nl"]::after {
  content: "NL";
}

.lang-btn[data-lang="en"]::after {
  content: "EN";
}

.lang-btn:hover {
  opacity: .9 !important;
  background: rgba(255,255,255,.09) !important;
}

.lang-btn.active {
  opacity: 1 !important;
  color: #fff !important;
  background:
    linear-gradient(135deg, rgba(239,48,213,.95), rgba(139,92,246,.92)) !important;
  border-color: rgba(255,255,255,.28) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08) inset,
    0 0 18px rgba(239,48,213,.38),
    0 8px 22px rgba(139,92,246,.24) !important;
}

.lang-btn.active .flag-icon {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.65) inset,
    0 0 0 2px rgba(255,255,255,.12) !important;
}

.lang-btn:not(.active) .flag-icon {
  filter: saturate(.75) brightness(.85) !important;
}

@media (max-width: 900px) {
  .lang-btn {
    min-width: 54px !important;
    height: 32px !important;
    padding: 0 9px !important;
    font-size: 10px !important;
  }
}


/* ─────────────────────────────────────────────
   QRJam language flags - clean SVG versions
   ───────────────────────────────────────────── */

.flag-icon {
  width: 26px !important;
  height: 18px !important;
  border-radius: 4px !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.55) inset,
    0 2px 6px rgba(0,0,0,.22) !important;
}

.flag-nl {
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA0MCI+PHBhdGggZmlsbD0iI0FFMUMyOCIgZD0iTTAgMGg2MHY0MEgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDEzLjMzM2g2MHYxMy4zMzRIMHoiLz48cGF0aCBmaWxsPSIjMjE0NjhCIiBkPSJNMCAyNi42NjdoNjBWNDBIMHoiLz48L3N2Zz4=") center / cover no-repeat !important;
}

.flag-gb {
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCAzMCI+CjxwYXRoIGZpbGw9IiMwMTIxNjkiIGQ9Ik0wIDBoNjB2MzBIMHoiLz4KPHBhdGggc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjYiIGQ9Ik0wIDBsNjAgMzBtMC0zMEwwIDMwIi8+CjxwYXRoIHN0cm9rZT0iI0M4MTAyRSIgc3Ryb2tlLXdpZHRoPSIzLjUiIGQ9Ik0wIDBsNjAgMzBtMC0zMEwwIDMwIi8+CjxwYXRoIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTMwIDB2MzBNMCAxNWg2MCIvPgo8cGF0aCBzdHJva2U9IiNDODEwMkUiIHN0cm9rZS13aWR0aD0iNiIgZD0iTTMwIDB2MzBNMCAxNWg2MCIvPgo8L3N2Zz4=") center / cover no-repeat !important;
}

.lang-btn.active .flag-icon {
  transform: scale(1.04) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.8) inset,
    0 0 0 2px rgba(255,255,255,.16),
    0 4px 10px rgba(0,0,0,.28) !important;
}

.lang-btn:not(.active) .flag-icon {
  filter: saturate(.8) brightness(.82) !important;
}

@media (max-width: 900px) {
  .flag-icon {
    width: 24px !important;
    height: 16px !important;
  }
}


/* ─────────────────────────────────────────────
   QRJam language switch - final polish
   ───────────────────────────────────────────── */

.lang-switch {
  padding: 5px !important;
  gap: 6px !important;
  min-height: 42px !important;
  background: rgba(255,255,255,.065) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}

.lang-btn {
  min-width: 70px !important;
  height: 34px !important;
  padding: 0 11px !important;
  gap: 8px !important;
  font-size: 12px !important;
  opacity: .78 !important;
  color: rgba(255,255,255,.8) !important;
}

.lang-btn:not(.active) {
  background: rgba(255,255,255,.035) !important;
}

.lang-btn:not(.active):hover {
  opacity: 1 !important;
  background: rgba(255,255,255,.11) !important;
  color: #fff !important;
}

.lang-btn.active {
  opacity: 1 !important;
  color: #fff !important;
  background: linear-gradient(135deg, #ef30d5, #9b5cf6) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.12) inset,
    0 0 18px rgba(239,48,213,.45),
    0 8px 24px rgba(139,92,246,.28) !important;
}

.flag-icon {
  width: 28px !important;
  height: 19px !important;
  border-radius: 4px !important;
}

.lang-btn:not(.active) .flag-icon {
  filter: saturate(.95) brightness(.95) !important;
  opacity: .9 !important;
}

.lang-btn.active .flag-icon {
  transform: scale(1.03) !important;
}

@media (max-width: 900px) {
  .lang-switch {
    min-height: 38px !important;
  }

  .lang-btn {
    min-width: 62px !important;
    height: 31px !important;
    padding: 0 9px !important;
    font-size: 11px !important;
  }

  .flag-icon {
    width: 24px !important;
    height: 16px !important;
  }
}


/* QRJam mobile hamburger menu */
.qrjam-mobile-menu-toggle,
.qrjam-mobile-menu-button {
  display: none;
}

@media (max-width: 760px) {
  .topbar {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 16px 18px !important;
  }

  .topbar .brand {
    min-width: 0 !important;
  }

  .topbar .brand svg {
    width: 42px !important;
    height: 42px !important;
  }

  .topbar .brand span {
    font-size: 26px !important;
  }

  .topbar .lang-switch {
    justify-self: end !important;
    margin-left: 0 !important;
  }

  .qrjam-mobile-menu-button {
    display: inline-flex !important;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.045);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    box-shadow: 0 0 22px rgba(255,43,214,.08);
  }

  .qrjam-mobile-menu-button span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,255,255,.9);
    transition: transform .2s ease, opacity .2s ease;
  }

  .qrjam-mobile-menu-toggle:checked + .qrjam-mobile-menu-button span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .qrjam-mobile-menu-toggle:checked + .qrjam-mobile-menu-button span:nth-child(2) {
    opacity: 0;
  }

  .qrjam-mobile-menu-toggle:checked + .qrjam-mobile-menu-button span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .topbar .top-actions {
    grid-column: 1 / -1 !important;
    display: none !important;
    width: 100% !important;
    margin-top: 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    background: rgba(18,9,36,.92) !important;
    box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  .qrjam-mobile-menu-toggle:checked ~ .top-actions {
    display: grid !important;
  }

  .topbar .top-actions .btn,
  .topbar .top-actions a {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 13px 14px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .topbar .top-actions span {
    display: none !important;
  }
}

/* QRJam mobile compact header fix */
@media (max-width: 760px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 8px !important;
    padding: 14px 14px !important;
  }

  .topbar .brand {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .topbar .brand svg {
    width: 36px !important;
    height: 36px !important;
  }

  .topbar .brand span {
    font-size: 22px !important;
    white-space: nowrap !important;
  }

  .topbar .lang-switch {
    transform: none !important;
    max-width: none !important;
    padding: 5px !important;
    gap: 4px !important;
  }

  .topbar .lang-switch .lang-btn {
    min-width: 42px !important;
    width: 42px !important;
    height: 34px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
  }

  .topbar .lang-switch .flag-icon {
    margin: 0 !important;
    transform: scale(.95) !important;
  }

  .qrjam-mobile-menu-button {
    display: inline-flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    grid-column: auto !important;
    justify-self: end !important;
  }

  .topbar .top-actions {
    grid-column: 1 / -1 !important;
  }
}

/* QRJam forced mobile hamburger visibility */
@media (max-width: 760px) {
  .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .topbar .qrjam-mobile-menu-toggle {
    display: none !important;
  }

  .topbar .qrjam-mobile-menu-button {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 999 !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    background: rgba(255,255,255,.06) !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    cursor: pointer !important;
    grid-column: auto !important;
    justify-self: end !important;
  }

  .topbar .qrjam-mobile-menu-button span {
    display: block !important;
    width: 18px !important;
    height: 2px !important;
    min-height: 2px !important;
    border-radius: 999px !important;
    background: #fff !important;
    opacity: 1 !important;
  }

  .topbar .top-actions {
    grid-column: 1 / -1 !important;
    display: none !important;
  }

  .topbar .qrjam-mobile-menu-toggle:checked ~ .top-actions {
    display: grid !important;
  }
}

/* QRJam desktop header slightly lighter */
@media (min-width: 761px) {
  .topbar {
    background:
      linear-gradient(90deg, rgba(18, 7, 32, .92) 0%, rgba(13, 14, 31, .90) 48%, rgba(4, 22, 31, .92) 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,.075) !important;
    box-shadow: 0 10px 34px rgba(0,0,0,.16) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
  }
}

/* QRJam desktop header gradient reversed */
@media (min-width: 761px) {
  .topbar {
    background:
      linear-gradient(90deg, rgba(4, 22, 31, .94) 0%, rgba(13, 14, 31, .92) 48%, rgba(10, 4, 22, .96) 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,.075) !important;
    box-shadow: 0 10px 34px rgba(0,0,0,.16) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
  }
}

/* QRJam normalized header nav fallback */
@media (min-width: 761px) {
  .topbar .top-actions,
  .topbar .qrjam-header-actions,
  .topbar .qrjam-normalized-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }
}


/* ── Hamburger menu (mobiel) ──────────────────────────────────── */

.topbar-nav-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.topbar-nav-desktop {
  display: flex;
  align-items: center;
  gap: 20px;
}

.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s;
}
.hamburger:hover {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.22s ease, opacity 0.22s ease;
  transform-origin: center;
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 180px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  overflow: hidden;
  z-index: 200;
}
.mobile-menu a {
  display: block;
  padding: 13px 18px;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--line);
  transition: background 0.12s;
}
.mobile-menu a:last-child {
  border-bottom: none;
}
.mobile-menu a:hover {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  color: var(--accent);
}

@media (max-width: 900px) {
  .topbar-nav-desktop {
    display: none !important;
  }
  .hamburger {
    display: flex !important;
  }
  .topbar > .topbar-nav-wrap {
    display: flex !important;
    align-items: center !important;
  }
  .topbar {
    justify-content: space-between !important;
    position: sticky !important;
    top: 0 !important;
  }
}


/* Hamburger wrap: override last-child hide met gelijke specificity (div.class = 0,2,1) */
@media (max-width: 900px) {
  .topbar > div.topbar-nav-wrap {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
  }
}

/* Sticky header fix: overflow-x: hidden op html/body breekt position:sticky.
   Gebruik clip ipv hidden — zelfde visueel effect, breekt sticky niet. */
@media (max-width: 900px) {
  html, body {
    overflow-x: clip !important;
  }
  .topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
  }
}

/* Footer: breek uit de landing-container padding op mobiel */
@media (max-width: 900px) {
  .landing .qrjam-footer,
  main .qrjam-footer {
    margin-left: -18px !important;
    margin-right: -18px !important;
    border-radius: 0 !important;
  }
}

/* Verwijder bottom padding van landing als footer erin zit */
@media (max-width: 900px) {
  .landing:has(.qrjam-footer) {
    padding-bottom: 0 !important;
  }
}

/* Verwijder bottom padding op desktop ook als footer aanwezig is */
@media (min-width: 901px) {
  .landing:has(.qrjam-footer) {
    padding-bottom: 0 !important;
  }
}

/* Footer full-bleed: breek uit parent container op alle schermformaten */
.landing .qrjam-footer,
main > .qrjam-footer {
  width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Voorkom horizontale scrollbar door 100vw footer (clip i.p.v. hidden, breekt sticky niet) */
html {
  overflow-x: clip !important;
}

/* QRJam linebased compact print sidebar */
.print-controls > .surface {
  padding: 18px !important;
  border-radius: 18px !important;
}

.print-controls > .surface + .surface {
  margin-top: 12px !important;
}

.print-controls .print-section {
  margin-bottom: 15px !important;
}

.print-controls .print-section h4 {
  margin-bottom: 9px !important;
}

.qrjam-coupon-inline {
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(255,255,255,.10);
}

.qrjam-coupon-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}

.qrjam-coupon-row .input {
  min-height: 46px;
}

.qrjam-coupon-row .btn {
  min-height: 46px;
  padding: 0 18px;
  white-space: nowrap;
}

.qrjam-coupon-message {
  margin-top: 9px;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
}

.qrjam-coupon-message.is-success {
  color: #31d375;
}

.qrjam-coupon-message.is-error {
  color: #ff6b8a;
}

.qrjam-small-muted {
  margin: 8px 0 0 !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.qrjam-print-tip-inline {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.10);
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.qrjam-print-tip-inline strong {
  color: var(--ink);
}

.qrjam-actions-compact,
.qrjam-account-compact {
  padding: 16px !important;
}

.qrjam-account-compact p {
  margin-bottom: 12px !important;
}

.qrjam-actions-compact .btn,
.qrjam-account-compact .btn {
  min-height: 42px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

@media (max-width: 680px) {
  .qrjam-coupon-row {
    grid-template-columns: 1fr;
  }

  .qrjam-coupon-row .btn {
    width: 100%;
  }
}

/* QRJam CSS-only print sidebar cleanup */
.print-controls > .surface {
  padding: 18px !important;
  border-radius: 18px !important;
}

.print-controls > .surface + .surface {
  margin-top: 10px !important;
}

.print-controls .print-section {
  margin-bottom: 14px !important;
}

.print-controls .print-section h4 {
  margin-bottom: 8px !important;
}

/* Losse kortingscodekaart compacter maken */
.print-controls > .surface:nth-of-type(2) {
  padding: 16px !important;
}

.print-controls > .surface:nth-of-type(2) .print-section {
  margin-bottom: 0 !important;
}

.print-controls > .surface:nth-of-type(2) input {
  min-height: 44px !important;
}

.print-controls > .surface:nth-of-type(2) .btn {
  min-height: 44px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* Actieknoppen compacter */
.print-controls > .surface:nth-of-type(3) {
  padding: 14px !important;
}

/* Mijn QRJam compacter */
.print-controls > .surface:nth-of-type(4) {
  padding: 15px !important;
}

.print-controls > .surface:nth-of-type(4) p {
  margin-bottom: 11px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.print-controls > .surface:nth-of-type(4) .btn {
  min-height: 40px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* Print tip-card verbergen: scheelt direct hoogte zonder JSX te wijzigen */
.print-controls > .surface:nth-of-type(5) {
  display: none !important;
}

@media (min-width: 980px) {
  .print-controls {
    align-self: start;
  }
}

@media (max-width: 680px) {
  .print-controls > .surface:nth-of-type(5) {
    display: block !important;
  }
}

/* QRJam: visually merge download + coupon card */
@media (min-width: 760px) {
  .print-controls > .surface:first-of-type:has(+ .surface .print-section) {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom-color: rgba(255,255,255,.06) !important;
    padding-bottom: 14px !important;
  }

  .print-controls > .surface:first-of-type:has(+ .surface .print-section) + .surface {
    margin-top: -1px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-top-color: rgba(255,255,255,.06) !important;
    padding-top: 14px !important;
  }

  .print-controls > .surface:first-of-type:has(+ .surface .print-section) + .surface h4 {
    margin-bottom: 8px !important;
  }

  .print-controls > .surface:first-of-type:has(+ .surface .print-section) + .surface p {
    margin-top: 7px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
}

/* Subtiele printtip terug als kleine regel, niet als losse kaart */
.print-controls > .surface:first-of-type::after {
  content: "Print tip: dubbelzijdig printen, omslaan langs de lange kant.";
  display: block;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

/* Nog iets rustiger spacing onder de rechterkolom */
.print-controls > .surface:nth-of-type(3),
.print-controls > .surface:nth-of-type(4) {
  margin-top: 12px !important;
}


/* QRJam sidebar final polish */
@media (min-width: 760px) {
  .print-controls > .surface:first-of-type {
    box-shadow: 0 18px 50px rgba(0,0,0,.18) !important;
  }

  .print-controls > .surface:first-of-type + .surface {
    background: rgba(31,22,56,.70) !important;
    box-shadow: 0 18px 50px rgba(0,0,0,.12) !important;
  }

  .print-controls > .surface:first-of-type::after {
    opacity: .72;
    font-size: 11px;
  }
}

/* Kortingscode-card net iets lager in visuele hiërarchie */
.print-controls > .surface:nth-of-type(2) h4 {
  opacity: .86;
}

.print-controls > .surface:nth-of-type(2) p {
  opacity: .78;
}

/* Mijn QRJam-card rustiger */
.print-controls > .surface:nth-of-type(4) h4 {
  margin-bottom: 7px !important;
}

.print-controls > .surface:nth-of-type(4) p {
  max-width: 92%;
  opacity: .86;
}

.print-controls > .surface:nth-of-type(4) {
  background: rgba(31,22,56,.62) !important;
}

/* Actieknoppen iets minder zwaar */
.print-controls > .surface:nth-of-type(3) {
  background: rgba(31,22,56,.58) !important;
}

.print-controls > .surface:nth-of-type(3) .btn {
  font-size: 13px !important;
}


/* QRJam specs: 2 rijen van 3 */
@media (min-width: 760px) {
  .print-controls .print-info {
    display: grid !important;
    grid-template-columns: auto 1fr auto 1fr auto 1fr !important;
    gap: 10px 18px !important;
    align-items: baseline !important;
  }

  .print-controls .print-info dt {
    margin: 0 !important;
    white-space: nowrap;
  }

  .print-controls .print-info dd {
    margin: 0 !important;
    min-width: 0;
  }
}

/* Op mobiel gewoon weer netjes onder elkaar */
@media (max-width: 759px) {
  .print-controls .print-info {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 8px 14px !important;
  }

  .print-controls .print-info dt,
  .print-controls .print-info dd {
    margin: 0 !important;
  }
}

/* QRJam specs grid v2: 3 compacte blokjes per rij */
@media (min-width: 760px) {
  .print-controls .print-info {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 22px !important;
    row-gap: 4px !important;
    align-items: start !important;
  }

  .print-controls .print-info dt,
  .print-controls .print-info dd {
    margin: 0 !important;
    min-width: 0 !important;
  }

  .print-controls .print-info dt {
    color: var(--muted) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .print-controls .print-info dd {
    color: var(--ink) !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .print-controls .print-info dt:nth-of-type(1) { grid-column: 1; grid-row: 1; }
  .print-controls .print-info dd:nth-of-type(1) { grid-column: 1; grid-row: 2; }

  .print-controls .print-info dt:nth-of-type(2) { grid-column: 2; grid-row: 1; }
  .print-controls .print-info dd:nth-of-type(2) { grid-column: 2; grid-row: 2; }

  .print-controls .print-info dt:nth-of-type(3) { grid-column: 3; grid-row: 1; }
  .print-controls .print-info dd:nth-of-type(3) { grid-column: 3; grid-row: 2; }

  .print-controls .print-info dt:nth-of-type(4) { grid-column: 1; grid-row: 3; margin-top: 10px !important; }
  .print-controls .print-info dd:nth-of-type(4) { grid-column: 1; grid-row: 4; }

  .print-controls .print-info dt:nth-of-type(5) { grid-column: 2; grid-row: 3; margin-top: 10px !important; }
  .print-controls .print-info dd:nth-of-type(5) { grid-column: 2; grid-row: 4; }

  .print-controls .print-info dt:nth-of-type(6) { grid-column: 3; grid-row: 3; margin-top: 10px !important; }
  .print-controls .print-info dd:nth-of-type(6) { grid-column: 3; grid-row: 4; }
}

@media (max-width: 759px) {
  .print-controls .print-info {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 8px 14px !important;
  }
}

/* QRJam specs grid v3: 2 kolommen, 3 rijen - rustiger dan 3 kolommen */
@media (min-width: 760px) {
  .print-controls .print-info {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 34px !important;
    row-gap: 8px !important;
    align-items: start !important;
  }

  .print-controls .print-info dt,
  .print-controls .print-info dd {
    margin: 0 !important;
    min-width: 0 !important;
  }

  .print-controls .print-info dt {
    color: var(--muted) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .print-controls .print-info dd {
    color: var(--ink) !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .print-controls .print-info dt:nth-of-type(1) { grid-column: 1; grid-row: 1; }
  .print-controls .print-info dd:nth-of-type(1) { grid-column: 1; grid-row: 2; }

  .print-controls .print-info dt:nth-of-type(2) { grid-column: 2; grid-row: 1; }
  .print-controls .print-info dd:nth-of-type(2) { grid-column: 2; grid-row: 2; }

  .print-controls .print-info dt:nth-of-type(3) { grid-column: 1; grid-row: 3; margin-top: 8px !important; }
  .print-controls .print-info dd:nth-of-type(3) { grid-column: 1; grid-row: 4; }

  .print-controls .print-info dt:nth-of-type(4) { grid-column: 2; grid-row: 3; margin-top: 8px !important; }
  .print-controls .print-info dd:nth-of-type(4) { grid-column: 2; grid-row: 4; }

  .print-controls .print-info dt:nth-of-type(5) { grid-column: 1; grid-row: 5; margin-top: 8px !important; }
  .print-controls .print-info dd:nth-of-type(5) { grid-column: 1; grid-row: 6; }

  .print-controls .print-info dt:nth-of-type(6) { grid-column: 2; grid-row: 5; margin-top: 8px !important; }
  .print-controls .print-info dd:nth-of-type(6) { grid-column: 2; grid-row: 6; }
}


/* QRJam specs final spacing */
@media (min-width: 760px) {
  .print-controls .print-info {
    row-gap: 5px !important;
    column-gap: 42px !important;
  }

  .print-controls .print-info dt:nth-of-type(3),
  .print-controls .print-info dt:nth-of-type(4),
  .print-controls .print-info dt:nth-of-type(5),
  .print-controls .print-info dt:nth-of-type(6) {
    margin-top: 6px !important;
  }

  .print-controls .print-info dt {
    opacity: .82;
  }

  .print-controls .print-info dd {
    font-size: 12px !important;
  }
}

/* QRJam kleine finetune: kortingscode compacter + printtip iets leesbaarder */

/* Kortingscodeblok iets kleiner */
.print-controls > .surface:nth-of-type(2) {
  padding-top: 13px !important;
  padding-bottom: 13px !important;
}

.print-controls > .surface:nth-of-type(2) h4 {
  margin-bottom: 6px !important;
  font-size: 10px !important;
}

.print-controls > .surface:nth-of-type(2) input {
  min-height: 40px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.print-controls > .surface:nth-of-type(2) .btn {
  min-height: 40px !important;
  padding-top: 9px !important;
  padding-bottom: 9px !important;
}

.print-controls > .surface:nth-of-type(2) p {
  margin-top: 6px !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
}

/* Printtip iets groter en beter leesbaar */
.print-controls > .surface:first-of-type::after {
  font-size: 12px !important;
  line-height: 1.45 !important;
  opacity: .86 !important;
}


/* QRJam: roze focus-glow ook op e-mailadres veld */
.print-controls > .surface:first-of-type input:focus,
.print-controls > .surface:first-of-type input:focus-visible {
  border-color: #ff2bd6 !important;
  box-shadow:
    0 0 0 1px rgba(255, 43, 214, .95),
    0 0 0 4px rgba(255, 43, 214, .16),
    0 0 24px rgba(255, 43, 214, .18) !important;
  outline: none !important;
}

.print-controls > .surface:first-of-type input:hover {
  border-color: rgba(255, 255, 255, .28) !important;
}


/* QRJam: taalkeuze verbergen tijdens configuratie-flow */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam subtielere taalselector */
.topbar .lang-switch {
  padding: 4px !important;
  gap: 3px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.045) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 8px 22px rgba(0,0,0,.18) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

.topbar .lang-switch .lang-btn {
  height: 30px !important;
  min-width: 58px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  background: transparent !important;
  border: 0 !important;
  color: rgba(255,255,255,.62) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  box-shadow: none !important;
  transition:
    background .18s ease,
    color .18s ease,
    box-shadow .18s ease,
    transform .18s ease !important;
}

.topbar .lang-switch .lang-btn:hover {
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.86) !important;
}

.topbar .lang-switch .lang-btn.active,
.topbar .lang-switch .lang-btn[aria-current="true"] {
  background: linear-gradient(135deg, rgba(255,43,214,.86), rgba(255,59,183,.76)) !important;
  color: #fff !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    0 6px 16px rgba(255,43,214,.18) !important;
}

.topbar .lang-switch .lang-btn.active:hover,
.topbar .lang-switch .lang-btn[aria-current="true"]:hover {
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.12),
    0 8px 20px rgba(255,43,214,.22) !important;
}

.topbar .lang-switch .flag-icon {
  transform: scale(.86) !important;
  margin-right: 5px !important;
}

/* Mobiel nog compacter */
@media (max-width: 760px) {
  .topbar .lang-switch {
    padding: 3px !important;
  }

  .topbar .lang-switch .lang-btn {
    min-width: 42px !important;
    width: 42px !important;
    height: 32px !important;
    padding: 0 !important;
    font-size: 0 !important;
  }

  .topbar .lang-switch .flag-icon {
    margin-right: 0 !important;
    transform: scale(.88) !important;
  }
}


/* QRJam language switcher final tweak */
.topbar .lang-switch {
  transform: scale(.92) !important;
  opacity: .92 !important;
}

.topbar .lang-switch .lang-btn.active,
.topbar .lang-switch .lang-btn[aria-current="true"] {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08),
    0 4px 12px rgba(255,43,214,.14) !important;
}

.topbar .lang-switch .lang-btn {
  height: 28px !important;
  min-width: 54px !important;
}


/* QRJam: taalselector rechts op desktop */
@media (min-width: 761px) {
  .topbar {
    display: grid !important;
    grid-template-columns: auto 1fr auto auto !important;
    align-items: center !important;
    column-gap: 14px !important;
  }

  .topbar .brand {
    grid-column: 1 !important;
    justify-self: start !important;
  }

  .topbar .top-actions,
  .topbar .qrjam-header-actions {
    grid-column: 3 !important;
    justify-self: end !important;
  }

  .topbar .lang-switch {
    grid-column: 4 !important;
    justify-self: end !important;
    margin-left: 4px !important;
    transform: scale(.90) !important;
    transform-origin: right center !important;
  }
}

/* Tijdens configuratie blijft hij verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam header fix: desktop nav rechts houden, taalselector helemaal rechts */
@media (min-width: 761px) {
  .topbar {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 14px !important;
  }

  .topbar .brand {
    order: 1 !important;
    flex: 0 0 auto !important;
    margin-right: auto !important;
  }

  .topbar .top-actions,
  .topbar .qrjam-header-actions {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
  }

  .topbar .lang-switch {
    order: 3 !important;
    flex: 0 0 auto !important;
    margin-left: 8px !important;
    margin-right: 0 !important;
    justify-self: auto !important;
    transform: scale(.90) !important;
    transform-origin: right center !important;
  }
}

/* Tijdens configuratie blijft de taalselector verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam header desktop final fix: logo links, nav + language rechts */
@media (min-width: 761px) {
  body .topbar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
  }

  body .topbar > .brand {
    order: 0 !important;
    flex: 0 0 auto !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    justify-self: auto !important;
  }

  body .topbar > .top-actions,
  body .topbar > .qrjam-header-actions {
    order: 10 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    justify-self: auto !important;
  }

  body .topbar > .lang-switch {
    order: 20 !important;
    flex: 0 0 auto !important;
    margin-left: 8px !important;
    margin-right: 0 !important;
    justify-self: auto !important;
    transform: scale(.90) !important;
    transform-origin: right center !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher: neutraal en subtiel */
@media (min-width: 761px) {
  .topbar .lang-switch {
    padding: 3px !important;
    gap: 3px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.035) !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.04),
      0 6px 18px rgba(0,0,0,.14) !important;
    transform: scale(.88) !important;
    opacity: .88 !important;
  }

  .topbar .lang-switch:hover {
    opacity: 1 !important;
    border-color: rgba(255,255,255,.16) !important;
  }

  .topbar .lang-switch .lang-btn {
    height: 28px !important;
    min-width: 50px !important;
    padding: 0 9px !important;
    border-radius: 999px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    color: rgba(255,255,255,.52) !important;
    box-shadow: none !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
  }

  .topbar .lang-switch .lang-btn:hover {
    background: rgba(255,255,255,.055) !important;
    color: rgba(255,255,255,.82) !important;
  }

  .topbar .lang-switch .lang-btn.active,
  .topbar .lang-switch .lang-btn[aria-current="true"] {
    background: rgba(255,255,255,.085) !important;
    border-color: rgba(255,43,214,.34) !important;
    color: #fff !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.055),
      0 0 0 1px rgba(255,43,214,.08) !important;
  }

  .topbar .lang-switch .lang-btn.active:hover,
  .topbar .lang-switch .lang-btn[aria-current="true"]:hover {
    background: rgba(255,255,255,.11) !important;
    border-color: rgba(255,43,214,.46) !important;
    transform: none !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.07),
      0 0 0 1px rgba(255,43,214,.10) !important;
  }

  .topbar .lang-switch .flag-icon {
    transform: scale(.82) !important;
    margin-right: 5px !important;
    filter: saturate(.9) brightness(.95);
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher: desktop flag-only premium style */
@media (min-width: 761px) {
  .topbar .lang-switch {
    padding: 4px !important;
    gap: 4px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.035) !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 8px 20px rgba(0,0,0,.16) !important;
    opacity: .95 !important;
    transform: scale(.92) !important;
    transform-origin: right center !important;
  }

  .topbar .lang-switch .lang-btn {
    width: 38px !important;
    min-width: 38px !important;
    height: 28px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    font-size: 0 !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .topbar .lang-switch .flag-icon {
    margin: 0 !important;
    transform: scale(.9) !important;
    filter: saturate(.95) brightness(.98);
  }

  .topbar .lang-switch .lang-btn:hover {
    background: rgba(255,255,255,.065) !important;
    border-color: rgba(255,255,255,.12) !important;
  }

  .topbar .lang-switch .lang-btn.active,
  .topbar .lang-switch .lang-btn[aria-current="true"] {
    background: rgba(255,255,255,.09) !important;
    border-color: rgba(255,43,214,.42) !important;
    box-shadow:
      0 0 0 1px rgba(255,43,214,.08),
      inset 0 1px 0 rgba(255,255,255,.06) !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher final softening */
@media (min-width: 761px) {
  .topbar .lang-switch {
    margin-left: 14px !important;
    padding: 3px !important;
    gap: 3px !important;
    background: rgba(255,255,255,.028) !important;
    border-color: rgba(255,255,255,.09) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.035),
      0 6px 16px rgba(0,0,0,.12) !important;
  }

  .topbar .lang-switch .lang-btn {
    width: 36px !important;
    min-width: 36px !important;
    height: 26px !important;
  }

  .topbar .lang-switch .lang-btn.active,
  .topbar .lang-switch .lang-btn[aria-current="true"] {
    background: rgba(255,255,255,.075) !important;
    border-color: rgba(255,43,214,.24) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 0 0 1px rgba(255,43,214,.045) !important;
  }

  .topbar .lang-switch .flag-icon {
    transform: scale(.86) !important;
  }
}


/* QRJam language switcher: premium flag pill */
@media (min-width: 761px) {
  .topbar .lang-switch {
    margin-left: 16px !important;
    padding: 5px !important;
    gap: 5px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.045) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 8px 22px rgba(0,0,0,.16) !important;
    opacity: .96 !important;
    transform: scale(.94) !important;
    transform-origin: right center !important;
  }

  .topbar .lang-switch .lang-btn {
    width: 39px !important;
    min-width: 39px !important;
    height: 29px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    font-size: 0 !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: .62 !important;
    transition:
      opacity .18s ease,
      background .18s ease,
      border-color .18s ease,
      transform .18s ease !important;
  }

  .topbar .lang-switch .lang-btn:hover {
    opacity: .9 !important;
    background: rgba(255,255,255,.06) !important;
    border-color: rgba(255,255,255,.12) !important;
  }

  .topbar .lang-switch .lang-btn.active,
  .topbar .lang-switch .lang-btn[aria-current="true"] {
    opacity: 1 !important;
    background: rgba(255,255,255,.10) !important;
    border-color: rgba(255,43,214,.28) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 0 0 1px rgba(255,43,214,.05) !important;
  }

  .topbar .lang-switch .flag-icon {
    margin: 0 !important;
    transform: scale(.92) !important;
    filter: saturate(.96) brightness(1) !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher: vertical premium pill */
@media (min-width: 761px) {
  body .topbar > .lang-switch {
    order: 20 !important;
    flex: 0 0 auto !important;

    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    width: 46px !important;
    min-width: 46px !important;
    height: 88px !important;

    padding: 7px 5px !important;
    gap: 8px !important;
    margin-left: 14px !important;
    margin-right: 0 !important;

    border-radius: 999px !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)) !important;
    border: 1px solid rgba(255,255,255,.13) !important;

    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 10px 28px rgba(0,0,0,.20) !important;

    opacity: .96 !important;
    transform: none !important;
    transform-origin: right center !important;
  }

  body .topbar > .lang-switch .lang-btn {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 50% !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;

    font-size: 0 !important;
    line-height: 0 !important;
    opacity: .62 !important;

    transition:
      opacity .18s ease,
      background .18s ease,
      border-color .18s ease,
      box-shadow .18s ease,
      transform .18s ease !important;
  }

  body .topbar > .lang-switch .lang-btn:hover {
    opacity: .9 !important;
    background: rgba(255,255,255,.06) !important;
  }

  body .topbar > .lang-switch .lang-btn.active,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] {
    opacity: 1 !important;
    background: rgba(255,255,255,.075) !important;
    border-color: rgba(207, 58, 255, .70) !important;
    box-shadow:
      0 0 0 2px rgba(207, 58, 255, .55),
      0 0 18px rgba(207, 58, 255, .32),
      inset 0 1px 0 rgba(255,255,255,.08) !important;
  }

  body .topbar > .lang-switch .flag-icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;

    margin: 0 !important;
    border-radius: 50% !important;

    transform: none !important;
    filter: saturate(.98) brightness(1) !important;
    overflow: hidden !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}

@media (max-width: 760px) {
  body .topbar > .lang-switch {
    flex-direction: row !important;
    width: auto !important;
    height: auto !important;
  }
}


/* QRJam vertical language switcher: compact floating in header */
@media (min-width: 761px) {
  body .topbar {
    position: relative !important;
    min-height: 74px !important;
    padding-right: 108px !important;
  }

  body .topbar > .top-actions,
  body .topbar > .qrjam-header-actions {
    margin-right: 0 !important;
  }

  body .topbar > .lang-switch {
    position: absolute !important;
    right: 34px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;

    width: 42px !important;
    min-width: 42px !important;
    height: 72px !important;

    padding: 5px 4px !important;
    gap: 6px !important;

    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 8px 22px rgba(0,0,0,.18) !important;

    opacity: .96 !important;
  }

  body .topbar > .lang-switch .lang-btn {
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    font-size: 0 !important;
    opacity: .62 !important;
  }

  body .topbar > .lang-switch .lang-btn.active,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] {
    opacity: 1 !important;
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(207,58,255,.48) !important;
    box-shadow:
      0 0 0 1px rgba(207,58,255,.25),
      0 0 12px rgba(207,58,255,.18) !important;
  }

  body .topbar > .lang-switch .flag-icon {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    transform: none !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam vertical language switcher: vlaggen perfect centreren + ring fix */
@media (min-width: 761px) {
  body .topbar > .lang-switch {
    width: 44px !important;
    min-width: 44px !important;
    height: 76px !important;

    padding: 6px 5px !important;
    gap: 6px !important;

    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05),
      0 8px 22px rgba(0,0,0,.18) !important;
  }

  body .topbar > .lang-switch .lang-btn {
    position: relative !important;

    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: grid !important;
    place-items: center !important;

    border-radius: 50% !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;

    font-size: 0 !important;
    line-height: 0 !important;
    opacity: .66 !important;
    overflow: visible !important;
  }

  body .topbar > .lang-switch .flag-icon {
    display: block !important;

    width: 23px !important;
    height: 23px !important;
    min-width: 23px !important;
    min-height: 23px !important;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 50% !important;
    overflow: hidden !important;

    transform: none !important;
    filter: saturate(.98) brightness(1) !important;

    background-position: center center !important;
    background-size: cover !important;
  }

  body .topbar > .lang-switch .lang-btn:hover {
    opacity: .9 !important;
    background: rgba(255,255,255,.055) !important;
  }

  body .topbar > .lang-switch .lang-btn.active,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] {
    opacity: 1 !important;
    background: rgba(255,255,255,.075) !important;
    border-color: rgba(207,58,255,.42) !important;
    box-shadow:
      0 0 0 1px rgba(207,58,255,.34),
      0 0 10px rgba(207,58,255,.16),
      inset 0 1px 0 rgba(255,255,255,.07) !important;
  }

  body .topbar > .lang-switch .lang-btn.active .flag-icon,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] .flag-icon {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher: terug naar subtiele horizontale desktop pill */
@media (min-width: 761px) {
  body .topbar {
    position: relative !important;
    min-height: 74px !important;
    padding-right: 40px !important;
  }

  body .topbar > .top-actions,
  body .topbar > .qrjam-header-actions {
    margin-right: 0 !important;
  }

  body .topbar > .lang-switch {
    position: static !important;
    order: 20 !important;

    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;

    padding: 4px !important;
    gap: 4px !important;
    margin-left: 14px !important;
    margin-right: 0 !important;

    border-radius: 999px !important;
    background: rgba(255,255,255,.035) !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 8px 20px rgba(0,0,0,.16) !important;

    opacity: .95 !important;
    transform: scale(.92) !important;
    transform-origin: right center !important;
  }

  body .topbar > .lang-switch .lang-btn {
    position: relative !important;

    width: 38px !important;
    min-width: 38px !important;
    height: 28px !important;
    min-height: 28px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;

    font-size: 0 !important;
    line-height: 0 !important;
    opacity: .62 !important;
    overflow: hidden !important;
  }

  body .topbar > .lang-switch .lang-btn:hover {
    opacity: .9 !important;
    background: rgba(255,255,255,.06) !important;
    border-color: rgba(255,255,255,.12) !important;
  }

  body .topbar > .lang-switch .lang-btn.active,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] {
    opacity: 1 !important;
    background: rgba(255,255,255,.09) !important;
    border-color: rgba(255,43,214,.24) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 0 0 1px rgba(255,43,214,.045) !important;
  }

  body .topbar > .lang-switch .flag-icon {
    display: block !important;

    width: 23px !important;
    height: 23px !important;
    min-width: 23px !important;
    min-height: 23px !important;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 50% !important;
    overflow: hidden !important;

    transform: none !important;
    filter: saturate(.96) brightness(1) !important;
    background-position: center center !important;
    background-size: cover !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam language switcher: clean NL/EN segmented control */
@media (min-width: 761px) {
  body .topbar > .lang-switch {
    position: static !important;
    order: 20 !important;

    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;

    padding: 3px !important;
    gap: 3px !important;
    margin-left: 14px !important;
    margin-right: 0 !important;

    border-radius: 999px !important;
    background: rgba(255,255,255,.045) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 8px 18px rgba(0,0,0,.14) !important;

    opacity: 1 !important;
    transform: none !important;
  }

  body .topbar > .lang-switch .flag-icon {
    display: none !important;
  }

  body .topbar > .lang-switch .lang-btn {
    width: 46px !important;
    min-width: 46px !important;
    height: 28px !important;
    min-height: 28px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;

    color: rgba(255,255,255,.56) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;

    opacity: 1 !important;
    overflow: hidden !important;
  }

  body .topbar > .lang-switch .lang-btn:hover {
    color: rgba(255,255,255,.86) !important;
    background: rgba(255,255,255,.06) !important;
  }

  body .topbar > .lang-switch .lang-btn.active,
  body .topbar > .lang-switch .lang-btn[aria-current="true"] {
    color: #fff !important;
    background: rgba(255,255,255,.105) !important;
    border-color: rgba(255,43,214,.26) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 0 0 1px rgba(255,43,214,.045) !important;
  }
}

/* Tijdens configuratie blijft taalkeuze verborgen */
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam mobile language switcher: zelfde NL/EN stijl, positie behouden */
@media (max-width: 760px) {
  body .topbar .lang-switch {
    position: static !important;

    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;

    padding: 3px !important;
    gap: 3px !important;

    border-radius: 999px !important;
    background: rgba(255,255,255,.045) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.045),
      0 8px 18px rgba(0,0,0,.14) !important;

    opacity: 1 !important;
    transform: none !important;
  }

  body .topbar .lang-switch .flag-icon {
    display: none !important;
  }

  body .topbar .lang-switch .lang-btn {
    width: 42px !important;
    min-width: 42px !important;
    height: 28px !important;
    min-height: 28px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    box-shadow: none !important;

    color: rgba(255,255,255,.56) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;

    opacity: 1 !important;
    overflow: hidden !important;
  }

  body .topbar .lang-switch .lang-btn:hover {
    color: rgba(255,255,255,.86) !important;
    background: rgba(255,255,255,.06) !important;
  }

  body .topbar .lang-switch .lang-btn.active,
  body .topbar .lang-switch .lang-btn[aria-current="true"] {
    color: #fff !important;
    background: rgba(255,255,255,.105) !important;
    border-color: rgba(255,43,214,.26) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 0 0 1px rgba(255,43,214,.045) !important;
  }
}

/* QRJam: taalselector overal verbergen tijdens configureren, ook mobiel */
body.qrjam-config-flow-active .lang-switch,
body.qrjam-config-flow-active .topbar .lang-switch {
  display: none !important;
}


/* QRJam: verberg taalselector tijdens configuratie-flow via React step */
.topbar.qrjam-config-flow-active .lang-switch {
  display: none !important;
}


/* QRJam config header final fix
   Desktop: logo links, stappen exact gecentreerd, nav rechts.
   Mobiel: logo blijft zichtbaar tijdens configureren. */

/* Desktop configuratie-header */
@media (min-width: 761px) {
  body .topbar.qrjam-config-flow-active {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 74px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  body .topbar.qrjam-config-flow-active > .brand {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 3 !important;
    order: 1 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  body .topbar.qrjam-config-flow-active > .steps {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 2 !important;
    margin: 0 !important;
    justify-content: center !important;
    pointer-events: none !important;
  }

  body .topbar.qrjam-config-flow-active > .topbar-nav-wrap {
    position: relative !important;
    z-index: 3 !important;
    order: 3 !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  body .topbar.qrjam-config-flow-active .topbar-nav-desktop {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body .topbar.qrjam-config-flow-active .lang-switch {
    display: none !important;
  }
}

/* Mobiele configuratie-header */
@media (max-width: 760px) {
  body .topbar.qrjam-config-flow-active {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 64px !important;
    padding: 12px 16px !important;
  }

  body .topbar.qrjam-config-flow-active > .brand {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 5 !important;
    order: 1 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  body .topbar.qrjam-config-flow-active > .steps {
    order: 2 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 10px !important;
    display: flex !important;
    justify-content: center !important;
    transform: none !important;
    position: static !important;
  }

  body .topbar.qrjam-config-flow-active > .topbar-nav-wrap {
    order: 3 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 5 !important;
  }

  body .topbar.qrjam-config-flow-active .lang-switch {
    display: none !important;
  }
}



/* ── Footer ──────────────────────────────────────────────────── */
.qrjam-footer {
  margin-top: 80px;
  padding: 26px clamp(22px, 5vw, 72px);
  border-top: 1px solid rgba(255,255,255,.075);
  background:
    linear-gradient(90deg,
      rgba(10,4,22,.96)  0%,
      rgba(13,14,31,.92) 52%,
      rgba(4,22,31,.94) 100%);
  flex-shrink: 0;
}

.qrjam-footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.qrjam-footer-copy {
  margin: 0;
  color: rgba(242,234,255,.52);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .02em;
}

.qrjam-footer-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.qrjam-footer-links a {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(242,234,255,.68);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: color .15s ease;
}

.qrjam-footer-links a:hover,
.qrjam-footer-links a:focus-visible {
  color: var(--accent);
}

/* Sticky footer: laat de pagina de hele viewport vullen,
   zodat de footer altijd onderaan staat, ook op korte pagina's. */
.app-shell,
body:has(> header.topbar + main + footer.qrjam-footer) {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.app-shell > main,
.app-shell main,
main.landing,
.page-shell,
body:has(> header.topbar + main + footer.qrjam-footer) > main {
  flex: 1 0 auto;
}

@media (max-width: 760px) {
  .qrjam-footer {
    margin-top: 56px;
    padding: 24px 18px calc(24px + env(safe-area-inset-bottom));
  }

  .qrjam-footer-inner {
    flex-direction: column;
    text-align: center;
    gap: 14px;
  }

  .qrjam-footer-copy {
    width: 100%;
  }

  .qrjam-footer-links {
    width: 100%;
    justify-content: center;
    gap: 12px 18px;
  }
}

/* ============================================================
   HEADER NORMALISATIE — consistente hoogte en padding
   ============================================================ */

body .topbar,
body header.topbar {
  padding: 16px 40px !important;
  min-height: 68px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}

body.qrjam-account-page .topbar {
  padding: 16px 40px !important;
  display: flex !important;
  grid-template-columns: unset !important;
}

@media (max-width: 760px) {
  body .topbar,
  body header.topbar,
  body.qrjam-account-page .topbar {
    padding: 14px 18px !important;
    min-height: 58px !important;
  }
}

/* ============================================================
   NAV LINKS — knoppen vervangen door gewone tekst
   ============================================================ */

.topbar .btn.ghost.sm,
.topbar .top-actions a,
.topbar .top-actions .btn,
.topbar-nav-desktop .btn.ghost.sm,
.topbar-nav-desktop a,
body.qrjam-account-page .topbar .top-actions a,
body.qrjam-account-page .topbar .top-actions .btn {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 4px 2px !important;
  border-radius: 0 !important;
  color: var(--ink-soft, #c0aed8) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  letter-spacing: 0 !important;
  transition: color 0.15s ease !important;
  display: inline !important;
}

.topbar .btn.ghost.sm:hover,
.topbar .top-actions a:hover,
.topbar-nav-desktop .btn.ghost.sm:hover,
.topbar-nav-desktop a:hover,
body.qrjam-account-page .topbar .top-actions a:hover {
  color: var(--ink, #f2eaff) !important;
  background: transparent !important;
  border: none !important;
}


/* ============================================================
   CORRECTIE — header nav knoppen TERUGZETTEN naar origineel
   ============================================================ */

.topbar .btn.ghost.sm,
.topbar .top-actions a,
.topbar .top-actions .btn,
.topbar-nav-desktop .btn.ghost.sm,
.topbar-nav-desktop a,
body.qrjam-account-page .topbar .top-actions a,
body.qrjam-account-page .topbar .top-actions .btn {
  border: 1px solid rgba(255,255,255,0.18) !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 6px 14px !important;
  border-radius: 8px !important;
  color: var(--ink-soft, #c0aed8) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  display: inline-flex !important;
}

/* ============================================================
   FOOTER LINKS — knoppen vervangen door gewone tekst
   ============================================================ */

.qrjam-footer .btn.ghost.sm,
.qrjam-footer-links a,
.qrjam-footer-links .btn {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: var(--muted, #7a6b90) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  display: inline !important;
  letter-spacing: 0 !important;
}

.qrjam-footer .btn.ghost.sm:hover,
.qrjam-footer-links a:hover,
.qrjam-footer-links .btn:hover {
  color: var(--ink, #f2eaff) !important;
  background: transparent !important;
  border: none !important;
}


/* ============================================================
   HEADER NAV — iets grotere knoppen
   ============================================================ */

.topbar .btn.ghost.sm,
.topbar .top-actions a,
.topbar .top-actions .btn,
.topbar-nav-desktop .btn.ghost.sm,
.topbar-nav-desktop a,
body.qrjam-account-page .topbar .top-actions a,
body.qrjam-account-page .topbar .top-actions .btn {
  font-size: 14px !important;
  padding: 7px 16px !important;
}


/* ============================================================
   HEADER NAV — subtielere hover
   ============================================================ */

.topbar .btn.ghost.sm:hover,
.topbar .top-actions a:hover,
.topbar .top-actions .btn:hover,
.topbar-nav-desktop .btn.ghost.sm:hover,
.topbar-nav-desktop a:hover,
body.qrjam-account-page .topbar .top-actions a:hover,
body.qrjam-account-page .topbar .top-actions .btn:hover {
  background: transparent !important;
  border-color: rgba(255,255,255,0.35) !important;
  box-shadow: none !important;
  color: var(--ink, #f2eaff) !important;
}


/* Active header page: Home */
body .topbar .topbar-nav-desktop a.btn.qrjam-current-page,
body .topbar .topbar-nav-desktop a.btn.qrjam-current-page:hover {
  color: #fff !important;
  background: rgba(255, 43, 209, .18) !important;
  border-color: rgba(255, 43, 209, .65) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255, 43, 209, .15),
    0 0 18px rgba(255, 43, 209, .18) !important;
}

/* Footer social links — clean final */
.qrjam-footer {
  height: auto !important;
  min-height: 0 !important;
  padding-top: 28px !important;
  padding-bottom: 28px !important;
  box-sizing: border-box !important;
  display: block !important;
}

.qrjam-footer-inner {
  width: 100% !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
  transform: none !important;
}

.qrjam-footer-copy {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.qrjam-footer-links {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
  line-height: 1 !important;
}

.qrjam-footer-links a:not(.social-link) {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  line-height: 1.2 !important;
}

.qrjam-footer-links .social-link {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.07) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 22px rgba(0,0,0,.16) !important;
  color: #fff !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transform: none !important;
}

.qrjam-footer-links a:not(.social-link) + .social-link {
  margin-left: 10px !important;
}

.qrjam-footer-links .social-link + .social-link {
  margin-left: -6px !important;
}

.qrjam-footer-links .social-link::before {
  display: none !important;
  content: none !important;
}

.qrjam-footer-links .social-link:hover,
.qrjam-footer-links .social-link:focus-visible {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.26) !important;
  transform: translateY(-1px) !important;
}

.qrjam-footer-links .social-icon {
  width: 23px !important;
  height: 23px !important;
  flex: 0 0 23px !important;
  display: block !important;
}

.qrjam-footer-links .social-icon-facebook {
  color: #1877F2 !important;
}

.qrjam-footer-links .social-icon-tiktok {
  color: #fff !important;
  filter:
/*     drop-shadow(-1px 0 0 rgba(37,244,238,.95)) */
/*     drop-shadow(1px 0 0 rgba(254,44,85,.9)); */
}

.qrjam-footer-links .social-link span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

@media (max-width: 760px) {
  .qrjam-footer {
    padding-top: 24px !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .qrjam-footer-inner {
    flex-direction: column !important;
    text-align: center !important;
    gap: 14px !important;
  }

  .qrjam-footer-links {
    justify-content: center !important;
    gap: 12px 16px !important;
  }

  .qrjam-footer-links .social-link {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }

  .qrjam-footer-links .social-icon {
    width: 21px !important;
    height: 21px !important;
    flex-basis: 21px !important;
  }
}

/* Footer socials — losse iconen, correct uitgelijnd */
.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  position: relative !important;
  top: 0 !important;
  transform: none !important;
}

.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link:hover,
.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link:focus-visible {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link svg.social-icon {
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
  display: block !important;
  margin: 0 !important;
  position: static !important;
  transform: none !important;
}

.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link svg.social-icon-tiktok {
  transform: scale(1.04) !important;
}

.qrjam-footer .qrjam-footer-links a.btn.ghost.sm.social-link span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}


/* homepage-webplayer-cta-new */
.homepage-webplayer-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border-color: rgba(255, 61, 138, .28) !important;
  background: rgba(255,255,255,.045) !important;
}

.homepage-webplayer-cta:hover {
  border-color: rgba(255, 61, 138, .48) !important;
  background: rgba(255, 61, 138, .10) !important;
  transform: translateY(-1px);
}

@media (max-width: 640px) {
  .homepage-webplayer-cta {
    width: 100%;
  }
}

/* QRJam homepage hero buttons - safe CSS-only polish */
.homepage-webplayer-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 52px !important;
  min-width: 210px !important;
  padding: 0 24px !important;
  border-radius: 14px !important;

  color: #fff !important;
  text-decoration: none !important;
  font-weight: 900 !important;
  font-size: 14px !important;
  letter-spacing: -.01em !important;

  border: 1px solid rgba(255, 61, 138, .34) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)),
    rgba(17, 10, 32, .72) !important;

  box-shadow:
    0 14px 34px rgba(0,0,0,.20),
    0 0 0 1px rgba(255,255,255,.045) inset !important;

  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
}

.homepage-webplayer-cta:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(255, 61, 138, .62) !important;
  background:
    linear-gradient(180deg, rgba(255,61,138,.16), rgba(255,255,255,.045)),
    rgba(18, 10, 34, .86) !important;
  box-shadow:
    0 18px 42px rgba(255, 61, 138, .16),
    0 0 0 1px rgba(255,255,255,.06) inset !important;
}

/* Maak de primaire hero-knop netter naast de webplayer knop */
button.btn.primary.lg {
  min-height: 52px !important;
  border-radius: 14px !important;
  box-shadow:
    0 18px 42px rgba(255, 43, 209, .24),
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

/* "Hoe werkt het?" rustiger maken */
button.btn.secondary.lg,
button.btn.ghost.lg {
  min-height: 48px !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.045) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  box-shadow: none !important;
}

button.btn.secondary.lg:hover,
button.btn.ghost.lg:hover {
  background: rgba(255,255,255,.075) !important;
  border-color: rgba(255,255,255,.22) !important;
}

/* App Store knop op de homepage rustiger/cleaner maken */
a[href*="apps.apple.com/us/app/qrjam-player"] {
  min-height: 48px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035)),
    rgba(255,255,255,.04) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.04) inset !important;
}

a[href*="apps.apple.com/us/app/qrjam-player"]:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(255,255,255,.24) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05)),
    rgba(255,255,255,.05) !important;
}

/* Probeer de hero-knoppen visueel als nette groep te laten vallen */
.homepage-webplayer-cta {
  margin-left: 8px !important;
}

.homepage-webplayer-cta + button,
.homepage-webplayer-cta + a,
button.btn.primary.lg + .homepage-webplayer-cta {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .homepage-webplayer-cta {
    margin-left: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  button.btn.primary.lg,
  button.btn.secondary.lg,
  button.btn.ghost.lg,
  a[href*="apps.apple.com/us/app/qrjam-player"] {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* QRJam homepage CTA 2x2 grid order */
.qrjam-hero-cta-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: min(100%, 470px) !important;
  margin-top: 30px !important;
  margin-bottom: 0 !important;
  align-items: stretch !important;
}

.qrjam-hero-cta-grid > * {
  width: 100% !important;
  min-width: 0 !important;
  height: 54px !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 20px !important;
  border-radius: 15px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;

  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.01em !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  transition:
    transform .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease !important;
}

.qrjam-hero-cta-grid > *:hover {
  transform: translateY(-1px) !important;
}

/* Rij 1 links: Maak mijn kaartjes */
.qrjam-hero-cta-primary {
  order: 1 !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
  box-shadow:
/*     0 18px 42px rgba(255,43,209,.24), */
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

/* Rij 1 rechts: Hoe werkt het? */
.qrjam-hero-cta-how {
  order: 2 !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)),
    rgba(255,255,255,.035) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.035) inset !important;
}

/* Rij 2 links: QRJam Webplayer */
.qrjam-hero-cta-webplayer {
  order: 3 !important;
  color: #fff !important;
  border: 1px solid rgba(255,61,138,.38) !important;
  background:
    linear-gradient(180deg, rgba(255,61,138,.13), rgba(255,255,255,.030)),
    rgba(14, 8, 28, .82) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.045) inset !important;
}

.qrjam-hero-cta-webplayer:hover {
  border-color: rgba(255,61,138,.62) !important;
  box-shadow:
    0 18px 42px rgba(255,61,138,.14),
    0 0 0 1px rgba(255,255,255,.06) inset !important;
}

/* Rij 2 rechts: App Store */
.qrjam-hero-cta-appstore {
  order: 4 !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)),
    rgba(255,255,255,.035) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.035) inset !important;
}

.qrjam-hero-cta-appstore svg {
  width: 19px !important;
  height: 23px !important;
  flex: 0 0 auto !important;
}

.qrjam-hero-cta-appstore span {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
  line-height: 1.05 !important;
}

.qrjam-hero-cta-appstore span span:first-child,
.qrjam-hero-cta-appstore small {
  font-size: 9px !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.70) !important;
  letter-spacing: .01em !important;
}

.qrjam-hero-cta-appstore span span:last-child,
.qrjam-hero-cta-appstore strong {
  font-size: 15px !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
  color: #fff !important;
}

/* oude losse app-store spacing neutraliseren zodra hij in grid staat */
.qrjam-hero-cta-grid .qrjam-hero-cta-appstore {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .qrjam-hero-cta-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 10px !important;
    margin-top: 24px !important;
  }

  .qrjam-hero-cta-grid > * {
    width: 100% !important;
  }
}

/* QRJam hero: primary + how-it-works same style */
.qrjam-hero-cta-primary,
.qrjam-hero-cta-how {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
  box-shadow:
/*     0 18px 42px rgba(255,43,209,.24), */
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

.qrjam-hero-cta-primary:hover,
.qrjam-hero-cta-how:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.03) !important;
  box-shadow:
/*     0 20px 46px rgba(255,43,209,.28), */
    0 0 0 1px rgba(255,255,255,.10) inset !important;
}

/* QRJam safe hero CTA grid - clickable version */
.qrjam-original-cta-hidden {
  display: none !important;
}

.qrjam-safe-hero-cta-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: min(100%, 470px) !important;
  margin-top: 30px !important;
}

.qrjam-safe-cta {
  width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 20px !important;
  border-radius: 15px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;

  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.01em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;

  transition:
    transform .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease !important;
}

.qrjam-safe-cta:hover {
  transform: translateY(-1px) !important;
}

.qrjam-safe-primary,
.qrjam-safe-how {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
  box-shadow:
/*     0 18px 42px rgba(255,43,209,.24), */
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

.qrjam-safe-webplayer {
  color: #fff !important;
  border: 1px solid rgba(255,61,138,.38) !important;
  background:
    linear-gradient(180deg, rgba(255,61,138,.13), rgba(255,255,255,.030)),
    rgba(14, 8, 28, .82) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.045) inset !important;
}

.qrjam-safe-appstore {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)),
    rgba(255,255,255,.035) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.035) inset !important;
}

.qrjam-safe-appstore svg {
  width: 19px !important;
  height: 23px !important;
  flex: 0 0 auto !important;
}

.qrjam-safe-appstore span {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
  line-height: 1.05 !important;
}

.qrjam-safe-appstore span span:first-child,
.qrjam-safe-appstore small {
  font-size: 9px !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.70) !important;
}

.qrjam-safe-appstore span span:last-child,
.qrjam-safe-appstore strong {
  font-size: 15px !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  color: #fff !important;
}

@media (max-width: 760px) {
  .qrjam-safe-hero-cta-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 10px !important;
    margin-top: 24px !important;
  }
}

/* QRJam fix: Maak mijn kaartjes triggers original React flow */
.qrjam-safe-primary {
  appearance: none !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  cursor: pointer !important;
}

/* QRJam stable CTA grid */
.qrjam-original-cta-hidden {
  display: none !important;
}

.qrjam-stable-hero-cta-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: min(100%, 470px) !important;
  margin-top: 30px !important;
}

.qrjam-stable-cta {
  width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 20px !important;
  border-radius: 15px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;

  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.01em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;

  transition:
    transform .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease !important;
}

.qrjam-stable-cta:hover {
  transform: translateY(-1px) !important;
}

.qrjam-stable-primary,
.qrjam-stable-how {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
  box-shadow:
/*     0 18px 42px rgba(255,43,209,.24), */
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

.qrjam-stable-webplayer {
  color: #fff !important;
  border: 1px solid rgba(255,61,138,.38) !important;
  background:
    linear-gradient(180deg, rgba(255,61,138,.13), rgba(255,255,255,.030)),
    rgba(14, 8, 28, .82) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.045) inset !important;
}

.qrjam-stable-appstore {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)),
    rgba(255,255,255,.035) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.035) inset !important;
}

.qrjam-stable-appstore svg {
  width: 19px !important;
  height: 23px !important;
  flex: 0 0 auto !important;
}

.qrjam-stable-appstore span {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
  line-height: 1.05 !important;
}

.qrjam-stable-appstore span span:first-child,
.qrjam-stable-appstore small {
  font-size: 9px !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.70) !important;
}

.qrjam-stable-appstore span span:last-child,
.qrjam-stable-appstore strong {
  font-size: 15px !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  color: #fff !important;
}

@media (max-width: 760px) {
  .qrjam-stable-hero-cta-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 10px !important;
    margin-top: 24px !important;
  }
}

/* QRJam App Store label override */
.qrjam-stable-appstore .qrjam-ios-app-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.01em !important;
  color: #fff !important;
}

/* QRJam hero: Webplayer button same color as Download iOS App */
.qrjam-stable-webplayer,
.qrjam-safe-webplayer {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)),
    rgba(255,255,255,.035) !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.035) inset !important;
}

.qrjam-stable-webplayer:hover,
.qrjam-safe-webplayer:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(255,255,255,.24) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04)),
    rgba(255,255,255,.045) !important;
  box-shadow:
    0 14px 32px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.045) inset !important;
}

/* QRJam fix: voorkom hover-leak van hero CTA's naar de blokken eronder */
.qrjam-stable-hero-cta-grid {
  position: relative !important;
  z-index: 5 !important;
  isolation: isolate !important;
  contain: layout paint !important;
}

.qrjam-stable-hero-cta-grid .qrjam-stable-cta {
  position: relative !important;
  z-index: 1 !important;
}

/* Alleen de knop zelf mag reageren op hover */
.qrjam-stable-hero-cta-grid:hover ~ *,
.qrjam-stable-hero-cta-grid:hover + * {
  text-shadow: inherit !important;
  filter: none !important;
}

/* Step/cards onder de hero mogen niet oplichten door hover op externe elementen */
.qrjam-stable-hero-cta-grid:hover ~ section h2,
.qrjam-stable-hero-cta-grid:hover ~ section h3,
.qrjam-stable-hero-cta-grid:hover ~ section strong,
.qrjam-stable-hero-cta-grid:hover ~ div h2,
.qrjam-stable-hero-cta-grid:hover ~ div h3,
.qrjam-stable-hero-cta-grid:hover ~ div strong {
  color: inherit !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Card titels alleen normaal houden tenzij je de card zelf hovert */
.step-card h3,
.steps-card h3,
.feature-card h3,
.how-card h3,
[class*="step"] h3,
[class*="card"] h3 {
  text-shadow: none !important;
  filter: none !important;
}

/* Hover op CTA's mag geen algemene siblings visueel beïnvloeden */
.qrjam-stable-cta:hover {
  text-shadow: none !important;
}


/* QRJam hero CTA: slightly closer to hero text */
.qrjam-stable-hero-cta-grid {
  margin-top: 20px !important;
}

@media (max-width: 760px) {
  .qrjam-stable-hero-cta-grid {
    margin-top: 18px !important;
  }
}

/* QRJam hero CTA: even closer to hero text */
.qrjam-stable-hero-cta-grid {
  margin-top: 14px !important;
}

@media (max-width: 760px) {
  .qrjam-stable-hero-cta-grid {
    margin-top: 14px !important;
  }
}

/* QRJam inline iOS app link polish */
.inline-player-link {
  font-weight: 900;
  color: var(--accent, #ff2bd1);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* QRJam inline links: geen achtergrondvlak in lopende tekst */
.inline-player-link,
p .inline-player-link,
[class*="card"] .inline-player-link,
[class*="step"] .inline-player-link {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;

  color: var(--accent, #ff2bd1) !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

.inline-player-link:hover,
p .inline-player-link:hover,
[class*="card"] .inline-player-link:hover,
[class*="step"] .inline-player-link:hover {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: #ff3dce !important;
}

/* QRJam final inline text link reset: geen achtergrond, alleen roze tekstlink */
.inline-player-link,
.inline-player-link:visited,
.inline-player-link:hover,
.inline-player-link:focus,
p .inline-player-link,
p .inline-player-link:hover,
[class*="card"] .inline-player-link,
[class*="card"] .inline-player-link:hover,
[class*="step"] .inline-player-link,
[class*="step"] .inline-player-link:hover {
  display: inline !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;

  color: var(--accent, #ff2bd1) !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

/* QRJam fix: static tekstlinks mogen nooit knop/label-achtergrond krijgen */
body main a.qrjam-static-text-link,
body main a.qrjam-static-text-link:link,
body main a.qrjam-static-text-link:visited,
body main a.qrjam-static-text-link:hover,
body main a.qrjam-static-text-link:active,
body main a.qrjam-static-text-link:focus {
  display: inline !important;

  background: none !important;
  background-color: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;

  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  min-width: 0 !important;
  height: auto !important;
  width: auto !important;

  color: var(--accent, #ff2bd1) !important;
  -webkit-text-fill-color: var(--accent, #ff2bd1) !important;

  font: inherit !important;
  font-weight: 900 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: none !important;

  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;

  vertical-align: baseline !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body main a.qrjam-static-text-link::before,
body main a.qrjam-static-text-link::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Override: remove glow/background from secondary CTA buttons */
.qrjam-stable-webplayer,
.qrjam-stable-appstore,
.qrjam-safe-webplayer {
  background: transparent !important;
  box-shadow: none !important;
  border: 1px solid rgba(255,255,255,.15) !important;
}

.qrjam-stable-webplayer:hover,
.qrjam-stable-appstore:hover,
.qrjam-safe-webplayer:hover {
  background: transparent !important;
  box-shadow: none !important;
  border-color: rgba(255,255,255,.24) !important;
}


/* QRJam Webplayer dezelfde stijl als iOS App knop */
.qrjam-stable-webplayer {
  background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)), rgba(255,255,255,.035) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.18), 0 0 0 1px rgba(255,255,255,.035) inset !important;
}
.qrjam-stable-webplayer:hover {
  background: transparent !important;
  box-shadow: none !important;
  border-color: rgba(255,255,255,.24) !important;
}

/* Fix rare streep rechts in Maak mijn kaartjes en Hoe werkt het? */
.qrjam-stable-primary,
.qrjam-stable-how {
  box-shadow: 0 18px 42px rgba(255,43,209,.24) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}

/* Extra zekerheid: verwijder elke mogelijke rechterrand of pseudo-streep */
.qrjam-stable-primary,
.qrjam-stable-how {
  border-right: none !important;
  outline: none !important;
  box-shadow: 0 18px 42px rgba(255,43,209,.24) !important;
}
.qrjam-stable-primary::after,
.qrjam-stable-primary::before,
.qrjam-stable-how::after,
.qrjam-stable-how::before {
  display: none !important;
  content: none !important;
}

/* ===== DEFINITIEVE FIX: Maak mijn kaartjes & Hoe werkt het? ===== */
/* Verwijder alle glow, schaduw, rand en pseudo-strepen */
.qrjam-stable-primary,
.qrjam-stable-how {
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
  color: #fff !important;
}

/* Zorg dat eventuele nep-elementen (strepen) verdwijnen */
.qrjam-stable-primary::before,
.qrjam-stable-primary::after,
.qrjam-stable-how::before,
.qrjam-stable-how::after {
  display: none !important;
  content: none !important;
}

/* Hover ook schoon houden */
.qrjam-stable-primary:hover,
.qrjam-stable-how:hover {
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
  background: linear-gradient(135deg, #ff2bd1 0%, #a855f7 100%) !important;
}

/* BEGIN QRJAM HOME NEON BG */
/* Homepage-only aurora/neon achtergrond. Leestekst blijft bewust op een donkere veil staan. */
body[data-vibe="neon"] {
  --bg: #07030f;
  --bg-soft: #120a22;
  --surface: rgba(24, 16, 46, .72);
  --accent-soft: rgba(255, 43, 209, .16);
  background-color: #07030f !important;
}

body[data-vibe="neon"] .landing {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

body[data-vibe="neon"] .landing::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(7, 3, 15, .76) 0%, rgba(7, 3, 15, .46) 45%, rgba(7, 3, 15, .82) 100%),
    radial-gradient(circle at 14% 16%, rgba(255, 43, 209, .42) 0 9%, transparent 34%),
    radial-gradient(circle at 84% 12%, rgba(0, 255, 229, .34) 0 8%, transparent 30%),
    radial-gradient(circle at 72% 72%, rgba(168, 85, 247, .42) 0 10%, transparent 34%),
    radial-gradient(circle at 18% 82%, rgba(255, 216, 61, .20) 0 8%, transparent 28%),
    linear-gradient(135deg, #07030f 0%, #160927 42%, #071827 100%);
  background-size: 100% 100%, 115% 115%, 125% 125%, 120% 120%, 130% 130%, 100% 100%;
}

body[data-vibe="neon"] .landing::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .50;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.12), transparent 38%);
  background-size: 54px 54px, 54px 54px, 100% 100%;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.72), rgba(0,0,0,.16) 74%, transparent 100%);
}

body[data-vibe="neon"] .hero {
  position: relative;
  z-index: 1;
}

body[data-vibe="neon"] .hero::before {
  content: "";
  position: absolute;
  inset: -34px -28px -36px -32px;
  z-index: -1;
  border-radius: 34px;
  background: linear-gradient(90deg, rgba(7, 3, 15, .82), rgba(7, 3, 15, .54) 68%, rgba(7, 3, 15, .16));
  box-shadow: 0 30px 90px rgba(0,0,0,.26);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

body[data-vibe="neon"] .hero h1,
body[data-vibe="neon"] .hero p.lead {
  text-shadow: 0 2px 18px rgba(0,0,0,.58);
}

body[data-vibe="neon"] .hero-preview {
  position: relative;
  z-index: 1;
}

body[data-vibe="neon"] .hero-preview::before {
  content: "";
  position: absolute;
  inset: 24px 28px 36px 10px;
  z-index: -1;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(0,255,229,.18), rgba(255,43,209,.13) 42%, transparent 72%);
  filter: blur(18px);
}

body[data-vibe="neon"] .landing .eyebrow {
  color: #fff;
  background: linear-gradient(135deg, rgba(255,43,209,.34), rgba(0,255,229,.14));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 0 26px rgba(255,43,209,.20);
}

body[data-vibe="neon"] .landing .how-step {
  background: rgba(18, 12, 34, .66) !important;
  border-color: rgba(255,255,255,.12) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 18px 58px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
}

@media (prefers-reduced-motion: no-preference) {
  body[data-vibe="neon"] .landing::before {
    animation: qrjam-neon-drift 18s ease-in-out infinite alternate;
  }

  @keyframes qrjam-neon-drift {
    from { background-position: 0 0, 0% 0%, 100% 0%, 85% 90%, 0% 100%, 0 0; }
    to   { background-position: 0 0, 8% 4%, 92% 8%, 78% 82%, 8% 92%, 0 0; }
  }
}

@media (max-width: 720px) {
  body[data-vibe="neon"] .landing::before {
    background:
      linear-gradient(180deg, rgba(7, 3, 15, .84) 0%, rgba(7, 3, 15, .54) 44%, rgba(7, 3, 15, .88) 100%),
      radial-gradient(circle at 12% 9%, rgba(255, 43, 209, .40) 0 10%, transparent 38%),
      radial-gradient(circle at 92% 26%, rgba(0, 255, 229, .28) 0 8%, transparent 34%),
      radial-gradient(circle at 65% 78%, rgba(168, 85, 247, .32) 0 12%, transparent 38%),
      linear-gradient(135deg, #07030f 0%, #160927 50%, #071827 100%);
  }

  body[data-vibe="neon"] .hero::before {
    inset: -22px -16px -24px -16px;
    border-radius: 24px;
    background: rgba(7, 3, 15, .68);
  }
}
/* END QRJAM HOME NEON BG */

/* BEGIN QRJAM HERO FLOAT TWEAK */
/* Hero minder 'blokkerig', meer zwevend */
body[data-vibe="neon"] .hero {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body[data-vibe="neon"] .hero::before {
  content: "";
  position: absolute;
  inset: -10px -8px -10px -8px;
  z-index: -1;
  border-radius: 34px;
  background:
    radial-gradient(circle at 18% 28%, rgba(255, 43, 209, .16) 0 0, rgba(255, 43, 209, .10) 16%, transparent 42%),
    radial-gradient(circle at 34% 72%, rgba(168, 85, 247, .10) 0 0, rgba(168, 85, 247, .06) 16%, transparent 38%),
    linear-gradient(90deg,
      rgba(7, 3, 15, .38) 0%,
      rgba(7, 3, 15, .24) 24%,
      rgba(7, 3, 15, .12) 42%,
      rgba(7, 3, 15, .04) 58%,
      rgba(7, 3, 15, 0) 74%);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body[data-vibe="neon"] .hero h1,
body[data-vibe="neon"] .hero p.lead {
  text-shadow: 0 2px 18px rgba(0,0,0,.58);
}

body[data-vibe="neon"] .hero-preview::before {
  content: "";
  position: absolute;
  inset: 16px 24px 28px 6px;
  z-index: -1;
  border-radius: 999px;
  background:
    radial-gradient(circle,
      rgba(0,255,229,.16) 0%,
      rgba(255,43,209,.10) 34%,
      transparent 70%);
  filter: blur(20px);
  opacity: .9;
}

@media (max-width: 720px) {
  body[data-vibe="neon"] .hero::before {
    inset: -8px -6px -8px -6px;
    border-radius: 24px;
    background:
      radial-gradient(circle at 18% 18%, rgba(255, 43, 209, .14) 0 0, rgba(255, 43, 209, .08) 16%, transparent 38%),
      linear-gradient(180deg,
        rgba(7, 3, 15, .34) 0%,
        rgba(7, 3, 15, .20) 34%,
        rgba(7, 3, 15, .08) 58%,
        rgba(7, 3, 15, 0) 78%);
  }
}
/* END QRJAM HERO FLOAT TWEAK */

/* BEGIN QRJAM REMOVE HERO BLOCK */
/* Verwijdert het zichtbare hero-paneel volledig: alleen tekst en kaartjes zweven nog. */
body[data-vibe="neon"] .hero {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-vibe="neon"] .hero::before {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-vibe="neon"] .hero h1 {
  text-shadow:
    0 3px 20px rgba(0, 0, 0, .72),
    0 0 34px rgba(255, 43, 209, .20);
}

body[data-vibe="neon"] .hero p.lead {
  text-shadow:
    0 2px 16px rgba(0, 0, 0, .78),
    0 0 22px rgba(0, 255, 229, .10);
}

body[data-vibe="neon"] .hero-actions,
body[data-vibe="neon"] .hero-links {
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, .34));
}

/* Alleen een losse glow achter de kaartjes, geen rechthoekige plaat meer */
body[data-vibe="neon"] .hero-preview::before {
  inset: 8px 12px 18px -8px !important;
  border-radius: 999px !important;
  background:
    radial-gradient(circle,
      rgba(0, 255, 229, .17) 0%,
      rgba(255, 43, 209, .12) 34%,
      transparent 72%) !important;
  filter: blur(24px) !important;
  opacity: .95 !important;
}
/* END QRJAM REMOVE HERO BLOCK */

/* BEGIN QRJAM SOFTEN STEP CARDS */
/* Stap-kaarten minder blokkerig: geen zware slagschaduw, meer zwevend in de achtergrond */
body[data-vibe="neon"] .landing .how-step {
  background: rgba(14, 9, 28, .46) !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  box-shadow: none !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

body[data-vibe="neon"] .landing .how-step:hover {
  background: rgba(20, 12, 38, .52) !important;
  border-color: rgba(255, 43, 209, .22) !important;
  box-shadow: 0 0 26px rgba(255, 43, 209, .08) !important;
}

/* Verwijder eventuele extra pseudo-schaduwen op kaarten */
body[data-vibe="neon"] .landing .how-step::before,
body[data-vibe="neon"] .landing .how-step::after {
  box-shadow: none !important;
  filter: none !important;
}

/* END QRJAM SOFTEN STEP CARDS */

/* BEGIN QRJAM FOOTER RESTORE ORIGINAL */
/* Footer terug naar originele full-bleed opzet. Neon achtergrond blijft, footer wordt niet meer door neon-patches beïnvloed. */
body[data-vibe="neon"] .landing .qrjam-footer,
body[data-vibe="neon"] main > .qrjam-footer {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 80px !important;

  padding: 26px clamp(22px, 5vw, 72px) !important;
  border-top: 1px solid rgba(255,255,255,.075) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;

  background:
    linear-gradient(90deg,
      rgba(10,4,22,.96) 0%,
      rgba(13,14,31,.92) 52%,
      rgba(4,22,31,.94) 100%) !important;

  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible !important;
}

body[data-vibe="neon"] .landing .qrjam-footer::before,
body[data-vibe="neon"] .landing .qrjam-footer::after {
  content: none !important;
  display: none !important;
}

body[data-vibe="neon"] .qrjam-footer-inner {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
}

@media (max-width: 760px) {
  body[data-vibe="neon"] .landing .qrjam-footer,
  body[data-vibe="neon"] main > .qrjam-footer {
    margin-top: 56px !important;
    padding: 24px 18px calc(24px + env(safe-area-inset-bottom)) !important;
  }

  body[data-vibe="neon"] .qrjam-footer-inner {
    flex-direction: column !important;
    text-align: center !important;
    gap: 14px !important;
  }
}
/* END QRJAM FOOTER RESTORE ORIGINAL */

/* BEGIN QRJAM LANDING OVERFLOW FOOTER FIX */
/* Belangrijk: de neon background mag de landing NIET clippen,
   anders wordt de full-width footer links/rechts afgeknipt. */
body[data-vibe="neon"] .landing {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

/* De pagina zelf mag nog steeds horizontale overflow voorkomen. */
html,
body {
  overflow-x: clip !important;
}
/* END QRJAM LANDING OVERFLOW FOOTER FIX */

/* BEGIN QRJAM NEON SITE BACKGROUND ALL PAGES */
body[data-vibe="neon"][data-neon-page="true"] {
  --bg: #07030f;
  --bg-soft: #120a22;
  background-color: #07030f !important;
  background-image:
    linear-gradient(180deg, rgba(7, 3, 15, .78) 0%, rgba(7, 3, 15, .48) 45%, rgba(7, 3, 15, .86) 100%),
    radial-gradient(circle at 14% 12%, rgba(255, 43, 209, .42) 0 9%, transparent 34%),
    radial-gradient(circle at 86% 10%, rgba(0, 255, 229, .32) 0 8%, transparent 30%),
    radial-gradient(circle at 72% 72%, rgba(168, 85, 247, .40) 0 10%, transparent 34%),
    radial-gradient(circle at 18% 84%, rgba(255, 216, 61, .16) 0 8%, transparent 28%),
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(135deg, #07030f 0%, #160927 42%, #071827 100%) !important;
  background-size:
    100% 100%,
    115% 115%,
    125% 125%,
    120% 120%,
    130% 130%,
    54px 54px,
    54px 54px,
    100% 100% !important;
  background-position:
    0 0,
    0% 0%,
    100% 0%,
    85% 90%,
    0% 100%,
    0 0,
    0 0,
    0 0 !important;
  background-attachment: fixed !important;
}

body[data-vibe="neon"][data-neon-page="true"] main {
  position: relative;
  z-index: 1;
}

@media (max-width: 720px) {
  body[data-vibe="neon"][data-neon-page="true"] {
    background-image:
      linear-gradient(180deg, rgba(7, 3, 15, .84) 0%, rgba(7, 3, 15, .56) 44%, rgba(7, 3, 15, .90) 100%),
      radial-gradient(circle at 12% 9%, rgba(255, 43, 209, .38) 0 10%, transparent 38%),
      radial-gradient(circle at 92% 26%, rgba(0, 255, 229, .27) 0 8%, transparent 34%),
      radial-gradient(circle at 65% 78%, rgba(168, 85, 247, .32) 0 12%, transparent 38%),
      linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px),
      linear-gradient(135deg, #07030f 0%, #160927 50%, #071827 100%) !important;
    background-size:
      100% 100%,
      120% 120%,
      125% 125%,
      125% 125%,
      48px 48px,
      48px 48px,
      100% 100% !important;
  }
}
/* END QRJAM NEON SITE BACKGROUND ALL PAGES */

/* BEGIN QRJAM NEON ACCOUNT PAGE BACKGROUND */
/* Alleen achtergrond voor Mijn QRJam. Geen header/footer selectors. */
body.qrjam-account-page[data-vibe="neon"] {
  --bg: #07030f;
  --bg-soft: #120a22;
  background-color: #07030f !important;
  background-image:
    linear-gradient(180deg, rgba(7, 3, 15, .78) 0%, rgba(7, 3, 15, .48) 45%, rgba(7, 3, 15, .86) 100%),
    radial-gradient(circle at 14% 12%, rgba(255, 43, 209, .42) 0 9%, transparent 34%),
    radial-gradient(circle at 86% 10%, rgba(0, 255, 229, .32) 0 8%, transparent 30%),
    radial-gradient(circle at 72% 72%, rgba(168, 85, 247, .40) 0 10%, transparent 34%),
    radial-gradient(circle at 18% 84%, rgba(255, 216, 61, .16) 0 8%, transparent 28%),
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(135deg, #07030f 0%, #160927 42%, #071827 100%) !important;
  background-size:
    100% 100%,
    115% 115%,
    125% 125%,
    120% 120%,
    130% 130%,
    54px 54px,
    54px 54px,
    100% 100% !important;
  background-position:
    0 0,
    0% 0%,
    100% 0%,
    85% 90%,
    0% 100%,
    0 0,
    0 0,
    0 0 !important;
  background-attachment: fixed !important;
}
/* END QRJAM NEON ACCOUNT PAGE BACKGROUND */

/* BEGIN QRJAM ACTIVE HEADER SELECTOR STYLE */
/* Roze omlijning voor actieve headerpagina. Alleen selector-styling, geen header/footer layout-wijziging. */
body .topbar .topbar-nav-desktop a.btn.qrjam-current-page,
body .topbar .topbar-nav-desktop a.btn.qrjam-current-page:hover,
body .topbar .topbar-nav-desktop a.btn.qrjam-current-page:focus-visible {
  color: #fff !important;
  border-color: rgba(255, 43, 209, .92) !important;
  background: rgba(255, 43, 209, .08) !important;
  box-shadow:
    0 0 0 1px rgba(255, 43, 209, .36),
    0 0 18px rgba(255, 43, 209, .24) !important;
}

body .topbar .mobile-menu a.qrjam-current-page,
body .topbar .mobile-menu a.qrjam-current-page:hover,
body .topbar .mobile-menu a.qrjam-current-page:focus-visible {
  color: #fff !important;
  border: 1px solid rgba(255, 43, 209, .88) !important;
  background: rgba(255, 43, 209, .10) !important;
  box-shadow:
    0 0 0 1px rgba(255, 43, 209, .26),
    0 0 16px rgba(255, 43, 209, .18) !important;
}
/* END QRJAM ACTIVE HEADER SELECTOR STYLE */

/* BEGIN QRJAM NEON CONFIG FLOW BACKGROUND */
/* Zelfde neon achtergrond tijdens 'Maak mijn kaartjes' configureren.
   Alleen background op de content-flow; geen header/footer/layout wijziging. */
body[data-vibe="neon"] main.flow-center {
  background-color: #07030f !important;
  background-image:
    linear-gradient(180deg, rgba(7, 3, 15, .78) 0%, rgba(7, 3, 15, .48) 45%, rgba(7, 3, 15, .86) 100%),
    radial-gradient(circle at 14% 12%, rgba(255, 43, 209, .42) 0 9%, transparent 34%),
    radial-gradient(circle at 86% 10%, rgba(0, 255, 229, .32) 0 8%, transparent 30%),
    radial-gradient(circle at 72% 72%, rgba(168, 85, 247, .40) 0 10%, transparent 34%),
    radial-gradient(circle at 18% 84%, rgba(255, 216, 61, .16) 0 8%, transparent 28%),
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(135deg, #07030f 0%, #160927 42%, #071827 100%) !important;
  background-size:
    100% 100%,
    115% 115%,
    125% 125%,
    120% 120%,
    130% 130%,
    54px 54px,
    54px 54px,
    100% 100% !important;
  background-position:
    0 0,
    0% 0%,
    100% 0%,
    85% 90%,
    0% 100%,
    0 0,
    0 0,
    0 0 !important;
  background-attachment: fixed !important;
}

@media (max-width: 720px) {
  body[data-vibe="neon"] main.flow-center {
    background-image:
      linear-gradient(180deg, rgba(7, 3, 15, .84) 0%, rgba(7, 3, 15, .56) 44%, rgba(7, 3, 15, .90) 100%),
      radial-gradient(circle at 12% 9%, rgba(255, 43, 209, .38) 0 10%, transparent 38%),
      radial-gradient(circle at 92% 26%, rgba(0, 255, 229, .27) 0 8%, transparent 34%),
      radial-gradient(circle at 65% 78%, rgba(168, 85, 247, .32) 0 12%, transparent 38%),
      linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px),
      linear-gradient(135deg, #07030f 0%, #160927 50%, #071827 100%) !important;
    background-size:
      100% 100%,
      120% 120%,
      125% 125%,
      125% 125%,
      48px 48px,
      48px 48px,
      100% 100% !important;
  }
}
/* END QRJAM NEON CONFIG FLOW BACKGROUND */
