/*
Theme Name: Obsidian Pulse Merch
Theme URI: https://obsidianpulserecords.be
Author: Obsidian Pulse Records
Author URI: https://obsidianpulserecords.be
Description: FSE block theme voor band merchandise webshops. Volledig WooCommerce-compatibel. Gebouwd voor Obsidian Pulse Records label artiesten.
Version: 1.0.8
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: obsidianpulse-merch
Tags: woocommerce, merch, shop, music, full-site-editing, block-theme, e-commerce
*/

/* ============================================================
   GLOBAL BASE & CSS VARIABLES
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

:root {
  --black:       var(--wp--preset--color--black);
  --off-black:   var(--wp--preset--color--off-black);
  --dark:        var(--wp--preset--color--dark);
  --card-bg:     var(--wp--preset--color--surface);
  --border:      var(--wp--preset--color--border);
  --accent:      var(--wp--preset--color--accent);
  --accent-dim:  var(--wp--preset--color--accent-dim);
  --accent-glow: rgba(232, 197, 71, 0.15);
  --red:         var(--wp--preset--color--red);
  --white:       var(--wp--preset--color--white);
  --muted:       var(--wp--preset--color--muted);
  --display:     var(--wp--preset--font-family--bebas-neue);
  --body:        var(--wp--preset--font-family--barlow);
  --cond:        var(--wp--preset--font-family--barlow-condensed);
}

html { scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--white);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* ============================================================
   UTILITY
   ============================================================ */

.container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }

/* Neutraliseer de globale WP block spacing op template-part footer */
footer.wp-block-template-part { margin-block-start: 0; }

.label {
  font-family: var(--cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
}

.section-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--white);
}
.section-title--accent { color: var(--accent); }

.text-accent { color: var(--accent); }
.text-white  { color: var(--white); }

/* ============================================================
   BUTTONS
   ============================================================ */

.btn {
  display: inline-block;
  font-family: var(--cond);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 32px;
  border-radius: 2px;
  cursor: pointer;
  border: none;
  transition: all 0.2s ease;
  text-decoration: none;
}
.btn-primary { background: var(--accent); color: var(--black); }
.btn-primary:hover { background: #f0d060; transform: translateY(-1px); color: var(--black); }
.btn-outline { background: transparent; color: var(--white); border: 1.5px solid var(--border); }
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }
.btn-red { background: var(--red); color: var(--white); }
.btn-red:hover { background: #e05a48; transform: translateY(-1px); color: var(--white); }
.btn-full { width: 100%; text-align: center; }

/* WordPress button block — gold (default), outline, red */
.wp-block-button__link {
  font-family: var(--cond) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}
.wp-block-button.btn-full { width: 100%; }
.wp-block-button.btn-full .wp-block-button__link { width: 100%; text-align: center; }

.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--white) !important;
  border: 1.5px solid var(--border) !important;
  box-shadow: none !important;
}
.is-style-outline .wp-block-button__link:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

.is-style-red .wp-block-button__link { background: var(--red) !important; color: var(--white) !important; }
.is-style-red .wp-block-button__link:hover { background: #e05a48 !important; transform: translateY(-1px); }

/* ============================================================
   HEADER / NAV
   ============================================================ */

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(10, 10, 10, 0.95) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  padding: 0 !important;
}
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

.logo { display: flex; align-items: baseline; gap: 0; flex-shrink: 0; text-decoration: none; }
.logo-band  { font-family: var(--display); font-size: 28px; color: var(--white); letter-spacing: 0.04em; }
.logo-merch { font-family: var(--display); font-size: 28px; color: var(--accent); letter-spacing: 0.04em; }
.logo-dot   { font-family: var(--display); font-size: 28px; color: var(--muted); }
.logo-be    { font-family: var(--cond); font-size: 13px; font-weight: 600; color: var(--muted); letter-spacing: 0.05em; margin-left: 1px; align-self: flex-end; margin-bottom: 4px; }

.site-header .wp-block-navigation { flex: 1; }
.site-header .wp-block-navigation__container { display: flex; align-items: center; gap: 2rem; list-style: none; margin: 0; padding: 0; justify-content: center; }
.site-header .wp-block-navigation-item__content { font-family: var(--cond); font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); transition: color 0.2s; text-decoration: none; }
.site-header .wp-block-navigation-item__content:hover { color: var(--white); }

/* Fan Shop nav-item — klasse zit op de <li>, niet op de <a> */
.site-header .nav-fan .wp-block-navigation-item__content { color: var(--accent); }
.site-header .nav-fan .wp-block-navigation-item__content:hover { color: #f0d060; }

.nav-cta { display: flex; gap: 0.75rem; align-items: center; flex-shrink: 0; }

/* ============================================================
   HERO
   ============================================================ */

.hero {
  min-height: 92vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  overflow: hidden;
  margin-block-start: 0;
}
.wp-block-html:has(> .hero),
.section-bands {
  margin-block-start: 0;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(255,255,255,0.02) 79px, rgba(255,255,255,0.02) 80px),
    repeating-linear-gradient(90deg, transparent, transparent 79px, rgba(255,255,255,0.02) 79px, rgba(255,255,255,0.02) 80px);
  pointer-events: none;
  z-index: 0;
}

.hero-band-side,
.hero-fan-side {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 92vh;
  padding: 8rem 4rem 5rem;
  z-index: 1;
}
.hero-bottom { margin-top: auto; }

.brand-band { color: var(--white) !important; text-transform: uppercase; }
.brand-merch { color: var(--accent) !important; text-transform: uppercase; }
.brand-be { color: var(--muted) !important; }

/* Donkere variant — voor gebruik op gele/lichte achtergronden */
.brand-name--dark .brand-band  { color: #0a0a0a !important; }
.brand-name--dark .brand-merch { color: var(--red) !important; }
.brand-name--dark .brand-be    { color: #333 !important; }
.hero-band-side { background: linear-gradient(135deg, #0f0f0f 0%, #1a1a1a 100%); border-right: 1px solid var(--border); }
.hero-fan-side  { background: linear-gradient(135deg, #151510 0%, #1f1e13 100%); }

.hero-tag {
  display: inline-block;
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 2px;
  margin-bottom: 2rem;
  width: fit-content;
}
.tag-band { background: var(--accent-glow); color: var(--accent); border: 1px solid rgba(232,197,71,0.3); }
.tag-fan  { background: rgba(217,79,61,0.1); color: var(--red); border: 1px solid rgba(217,79,61,0.3); }

.hero-title {
  font-family: var(--display);
  font-size: clamp(3.5rem, 6vw, 5.5rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  margin-bottom: 1.5rem;
  color: var(--white);
}
.hero-title--fan { color: var(--accent); }
.hero-title em { font-style: italic; color: var(--accent); font-family: var(--body); font-weight: 700; font-size: 0.7em; letter-spacing: 0; line-height: 1.2; display: block; }
.hero-title__fan-em { color: var(--white) !important; }

.hero-sub { font-size: 16px; color: var(--muted); max-width: 380px; line-height: 1.7; margin-bottom: 2.5rem; }

.hero-divider { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 10; display: flex; flex-direction: column; align-items: center; gap: 0; }
.hero-divider-line { width: 1px; height: 120px; background: linear-gradient(to bottom, transparent, var(--border)); }
.hero-divider-badge { background: var(--dark); border: 1px solid var(--border); border-radius: 50%; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: var(--muted); text-align: center; line-height: 1.2; flex-shrink: 0; }
.hero-divider-line-bottom { width: 1px; height: 120px; background: linear-gradient(to top, transparent, var(--border)); }

.hero-stats { display: flex; gap: 2rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.hero-stat-num { font-family: var(--display); font-size: 2rem; color: var(--accent); line-height: 1; }
.hero-stat-label { font-size: 12px; color: var(--muted); font-family: var(--cond); letter-spacing: 0.06em; margin-top: 2px; }

/* ============================================================
   SECTION: VOOR BANDS
   ============================================================ */

.section-bands { padding: 7rem 0; background: var(--off-black); }

.section-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; align-items: center; }
.section-intro-text .section-title { margin: 0.75rem 0 1.5rem; }
.section-intro-text p { color: var(--muted); max-width: 440px; line-height: 1.8; margin-bottom: 2rem; }
.section-intro-text .wp-block-buttons { margin-top: 3.5rem !important; }

.how-it-works { display: flex; flex-direction: column; gap: 1.5rem; }
.step { display: flex; gap: 1.25rem; align-items: flex-start; }
.step-num { font-family: var(--display); font-size: 3rem; line-height: 1; color: var(--border); flex-shrink: 0; width: 2.5rem; text-align: right; }
.step-content h4 { font-family: var(--cond); font-size: 16px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--white); margin-bottom: 4px; }
.step-content p { font-size: 14px; color: var(--muted); margin: 0; }

/* ============================================================
   SECTION: PRODUCTEN GRID
   ============================================================ */

.section-products { background: var(--black); padding: 0 0 7rem; }
.section-products-header { margin-bottom: 2.5rem; }
.section-products-header .section-title { margin-top: 0.75rem; }

.products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.product-card { background: var(--card-bg); padding: 1.75rem 1.5rem; transition: background 0.2s; }
.product-card:hover { background: #242424; }
.product-card-icon { font-size: 28px; margin-bottom: 1rem; display: block; }
.product-card-name { font-family: var(--cond); font-size: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--white); margin-bottom: 4px; }
.product-card-sub { font-size: 12px; color: var(--muted); }

/* ============================================================
   SECTION: FAN MARKETPLACE
   ============================================================ */

.section-fans { padding: 7rem 0; background: var(--black); position: relative; overflow: hidden; }
.section-fans::before { content: ''; position: absolute; top: -200px; right: -200px; width: 600px; height: 600px; background: radial-gradient(circle, rgba(232,197,71,0.04) 0%, transparent 70%); pointer-events: none; }

.fan-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; align-items: center; margin-bottom: 5rem; }
.fan-intro-text { color: var(--muted); max-width: 440px; line-height: 1.8; margin-bottom: 2rem; }

.commission-callout { background: var(--card-bg); border: 1px solid var(--border); border-radius: 4px; padding: 2.5rem; position: relative; overflow: hidden; }
.commission-callout::before { content: '10%'; position: absolute; top: -10px; right: -10px; font-family: var(--display); font-size: 10rem; color: rgba(232,197,71,0.05); pointer-events: none; line-height: 1; }
.commission-callout .label { margin-bottom: 1rem; display: block; }
.commission-callout h3 { font-family: var(--display); font-size: 2.5rem; line-height: 1; margin-bottom: 1rem; color: var(--accent); }
.commission-callout p { font-size: 14px; color: var(--muted); line-height: 1.7; }

.commission-stats { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); display: flex; gap: 1.5rem; }
.commission-stat-num { font-family: var(--display); font-size: 1.5rem; color: var(--accent); }
.commission-stat-num--white { color: var(--white); }
.commission-stat-label { font-size: 12px; color: var(--muted); font-family: var(--cond); letter-spacing: 0.06em; }

.bands-label { margin-bottom: 2rem; }
.band-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
  align-items: stretch; /* gelijke hoogte */
  list-style: none;
  padding: 0;
  margin: 0;
}
.band-cards li { margin: 0; padding: 0; display: flex; } /* flex zodat card de volledige hoogte pakt */
.band-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.band-card:hover { border-color: var(--accent); transform: translateY(-3px); }

/* Banner — featured image als achtergrond, naam gecentreerd */
.band-card-banner {
  height: 140px;
  background: linear-gradient(135deg, #111 0%, #1e1e1e 100%);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem;
  border-bottom: 1px solid var(--border);
}
.band-card-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 1;
  pointer-events: none;
}
.band-card-banner span { position: relative; z-index: 2; font-family: var(--display); font-size: 1.75rem; letter-spacing: 0.06em; color: var(--white); line-height: 1; width: 100%; }

/* Info-sectie groeit mee zodat kaarten even hoog zijn */
.band-card-info { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }

/* Genres op lijn 1, locatie op lijn 2 */
.band-card-meta { display: flex; flex-direction: column; gap: 2px; margin-bottom: 0.5rem; }
.band-card-genre { font-family: var(--cond); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin-bottom: 0; }
.band-location { font-family: var(--cond); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }

.band-card-name { font-family: var(--display); font-size: 1.5rem; letter-spacing: 0.04em; margin-bottom: 0.75rem; }
.band-card-items { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.item-tag { font-family: var(--cond); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; padding: 3px 10px; background: var(--dark); border: 1px solid var(--border); border-radius: 2px; color: var(--muted); }

/* Read-more knop naar de onderkant duwen */
.band-card-info .wp-block-read-more { margin-top: auto; }

/* Archief scene-sections */
.archive-scene { padding: 2rem 0 1.5rem; }
.archive-scene + .archive-scene { padding-top: 3rem; border-top: 1px solid var(--border); }
.archive-scene--international { padding-bottom: 5rem; }
.archive-scene-header { margin-bottom: 2.5rem; }
.archive-scene-header .label { font-size: 13px; letter-spacing: 0.18em; }
.archive-empty { color: var(--muted); font-size: 14px; }

.bc-1 { background: linear-gradient(135deg, #1a0a0a, #2d1212); }
.bc-2 { background: linear-gradient(135deg, #0a0a1a, #12122d); }
.bc-3 { background: linear-gradient(135deg, #0a1a0a, #122d12); }
.bc-4 { background: linear-gradient(135deg, #1a1008, #2d1e0a); }

/* ============================================================
   SECTION: UPLOAD / START
   ============================================================ */

.section-upload { padding: 7rem 0; background: var(--off-black); border-top: 1px solid var(--border); }
.upload-header { text-align: center; max-width: 600px; margin: 0 auto 3rem; }
.upload-header .section-title { margin: 0.75rem 0 1rem; }
.upload-sub { color: var(--muted); }
.upload-grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: stretch; }
/* Neutralize WordPress .is-layout-flow gap die de 2e upload-box naar beneden duwt */
.upload-grid.wp-block-group > * { margin-block-start: 0 !important; }

.upload-box { padding: 3rem; border: 1.5px solid var(--border); border-radius: 4px; position: relative; transition: border-color 0.2s; display: flex !important; flex-direction: column; }
.upload-box .wp-block-buttons { margin-top: auto !important; }
.upload-box:hover { border-color: var(--accent); }
.upload-box--accent { border-color: rgba(232,197,71,0.3); }
.upload-box h3 { font-family: var(--display); font-size: 2rem; letter-spacing: 0.04em; margin: 1rem 0 0.75rem; }
.upload-box p { font-size: 14px; color: var(--muted); margin-bottom: 2rem; line-height: 1.7; }

.upload-box-label { position: absolute; top: -1px; left: 3rem; background: var(--off-black); padding: 0 12px; transform: translateY(-50%); }
.upload-mockup { background: var(--dark); border: 1px dashed var(--border); border-radius: 4px; padding: 2rem; text-align: center; margin-bottom: 1.5rem; color: var(--muted); font-family: var(--cond); font-size: 13px; letter-spacing: 0.06em; }
.upload-mockup--accent { border-color: rgba(232,197,71,0.2); }
.upload-icon { font-size: 2rem; margin-bottom: 0.75rem; display: block; }
.upload-note { font-size: 11px; margin-top: 6px; display: block; }

/* ============================================================
   SECTION: PRICING
   ============================================================ */

.section-pricing { padding: 7rem 0; background: var(--black); }
.pricing-header { text-align: center; max-width: 600px; margin: 0 auto 4rem; }
.pricing-header .section-title { margin: 0.75rem 0 1rem; }
.pricing-header p { color: var(--muted); }

.pricing-table { width: 100%; border-collapse: collapse; background: var(--card-bg); border: 1px solid var(--border); border-radius: 4px; overflow: hidden; font-size: 14px; }
.pricing-table th { background: var(--dark); padding: 1rem 1.5rem; text-align: left; font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--border); }
.pricing-table td { padding: 0.9rem 1.5rem; border-bottom: 1px solid var(--border); color: var(--white); }
.pricing-table tr:last-child td { border-bottom: none; }
.pricing-table tr:hover td { background: rgba(255,255,255,0.02); }
.pricing-table .cat-header td { background: var(--dark); color: var(--accent); font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.price-from { font-family: var(--cond); font-weight: 700; color: var(--accent); }
.moq { color: var(--muted); font-size: 13px; }
.pricing-note { font-size: 13px; color: var(--muted); margin-top: 1.5rem; text-align: center; }

/* ============================================================
   FOOTER
   ============================================================ */

.site-footer {
  background: var(--off-black) !important;
  border-top: 1px solid var(--border);
  padding: 0 !important;
  color: var(--white) !important;
}

.footer-inner { max-width: 1200px; margin: 0 auto; padding: 5rem 2rem 3rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 4rem; margin-bottom: 4rem; }
.footer-brand .logo { margin-bottom: 1.25rem; }
.footer-brand > p { font-size: 14px; color: var(--muted); line-height: 1.7; max-width: 260px; }
.footer-brand-social { margin-top: 1.25rem; display: flex; gap: 0.75rem; }

.footer-col h5 { font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); margin-bottom: 1.25rem; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col ul li { margin-bottom: 0.6rem; }
.footer-col ul a { font-size: 14px; color: var(--white); opacity: 0.6; transition: opacity 0.2s; }
.footer-col ul a:hover { opacity: 1; }

.footer-bottom { padding-top: 2rem; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.footer-bottom p { font-size: 13px; color: var(--muted); }
.footer-badge { background: var(--accent-glow); border: 1px solid rgba(232,197,71,0.25); border-radius: 2px; padding: 4px 12px; font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: var(--accent); }

/* ============================================================
   WOOCOMMERCE OVERRIDES
   ============================================================ */

.woocommerce-store-notice { background: var(--dark) !important; border-bottom: 1px solid var(--border) !important; color: var(--muted) !important; }
.wc-block-components-notice-banner { background: var(--surface) !important; }

/* Lege winkelwagen */
.ob-empty-cart-actions { margin-top: 2rem; }
.ob-404-ctas { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; margin-top: 2.5rem; }
.ob-empty-cart-intro { color: var(--muted); font-size: 14px; margin-bottom: 1.25rem; }
.ob-empty-cart-btns { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Lege mini-cart drawer CTAs (geïnjecteerd via JS) */
.ob-mini-cart-ctas { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 1.5rem; align-items: center; }
.ob-mini-cart-ctas .btn { width: 100%; max-width: 260px; text-align: center; }

/* Verberg originele "Start shopping" knop in lege mini-cart */
.wc-block-mini-cart__drawer .wp-block-woocommerce-empty-mini-cart-contents-block .wp-block-button,
.wc-block-mini-cart__drawer .wp-block-woocommerce-empty-mini-cart-contents-block .wc-block-mini-cart__shopping-button { display: none !important; }

/* ============================================================
   FAQ
   ============================================================ */

.ob-faq { display: flex; flex-direction: column; gap: 0; }

.ob-faq-item {
  border-bottom: 1px solid var(--border);
}
.ob-faq-item:first-child { border-top: 1px solid var(--border); }

.ob-faq-question {
  font-family: var(--cond);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--white);
  padding: 1.1rem 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  user-select: none;
}
.ob-faq-question::-webkit-details-marker { display: none; }
.ob-faq-question::after {
  content: '+';
  font-size: 20px;
  font-weight: 300;
  color: var(--accent);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.ob-faq-item[open] .ob-faq-question::after {
  transform: rotate(45deg);
}
.ob-faq-question:hover { color: var(--accent); }

.ob-faq-answer {
  padding: 0 0 1.25rem;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  max-width: 680px;
}
.ob-faq-answer p { margin: 0 0 0.75rem; }
.ob-faq-answer p:last-child { margin-bottom: 0; }

.ob-faq-group { margin-bottom: 3rem; }
.ob-faq-group:last-child { margin-bottom: 0; }
.ob-faq-group-title {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.5rem;
}

/* ============================================================
   VOOR BANDS PAGINA
   ============================================================ */

/* Geen block-gap rondom de secties */
.section-vb-intro,
.section-vb-b2b,
.section-vb-b2c,
.section-vb-voordelen,
.section-vb-faq,
.section-vb-form { margin-block-start: 0; }

/* Secties */
.section-vb-intro    { background: var(--dark);    padding: 8rem 0 6rem; }
.section-vb-b2b      { background: var(--surface); padding: 6rem 0; }
.section-vb-b2c      { background: var(--dark);    padding: 6rem 0; }
.section-vb-voordelen { background: var(--surface); padding: 6rem 0; }
.section-vb-faq      { background: var(--dark);    padding: 6rem 0; }
.section-vb-form     { background: var(--surface); padding: 6rem 0; }

/* Flow-margin reset binnen containers */
.section-vb-intro .wp-block-group.container > *,
.section-vb-b2b .wp-block-group.container > *,
.section-vb-b2c .wp-block-group.container > *,
.section-vb-voordelen .wp-block-group.container > *,
.section-vb-faq .wp-block-group.container > *,
.section-vb-form .wp-block-group.container > * { margin-block-start: 0; }

/* Intro */
.vb-intro-title { font-family: var(--display); font-size: clamp(3rem, 6vw, 5rem); line-height: 0.92; letter-spacing: 0.02em; color: var(--white); margin: 1.5rem 0 2rem; }
.vb-intro-sub { font-size: 17px; color: var(--muted); max-width: 560px; line-height: 1.7; margin-bottom: 3rem; }
.vb-intro-ctas { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Sectie sub-titel */
.vb-section-sub { font-size: 15px; color: var(--muted); line-height: 1.7; margin: 1rem 0 3rem; }

/* Titels dicht bij het label houden in alle voor-bands secties */
.section-vb-b2b .section-title,
.section-vb-b2c .section-title,
.section-vb-voordelen .section-title,
.section-vb-faq .section-title,
.section-vb-form .section-title { margin: 0.75rem 0 0; }

/* Stappen */
.vb-steps { display: flex; flex-direction: column; margin-bottom: 3rem; }
.vb-step { display: flex; gap: 2rem; align-items: flex-start; padding: 1.75rem 0; border-bottom: 1px solid var(--border); }
.vb-step:first-child { border-top: 1px solid var(--border); }
.vb-step-num { font-family: var(--display); font-size: 3.5rem; line-height: 1; color: var(--accent); flex-shrink: 0; width: 80px; padding-top: 0.1rem; }
.section-vb-b2c .vb-step-num { color: var(--red); }
.vb-step-body h4 { font-family: var(--cond); font-size: 15px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--white); margin: 0 0 0.4rem; }
.vb-step-body p { font-size: 14px; color: var(--muted); line-height: 1.7; margin: 0; }

/* Eye-catcher */
.vb-eyecatcher { display: flex; gap: 1.5rem; align-items: flex-start; background: rgba(240,200,60,0.06); border: 1.5px solid var(--accent); border-radius: 4px; padding: 1.75rem 2rem; margin-bottom: 3rem; }
.vb-eyecatcher--red { background: rgba(229,84,69,0.06); border-color: var(--red); }
.vb-eyecatcher-tag { font-family: var(--cond); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); background: rgba(240,200,60,0.14); padding: 3px 8px; border-radius: 2px; flex-shrink: 0; margin-top: 3px; white-space: nowrap; }
.vb-eyecatcher--red .vb-eyecatcher-tag { color: var(--red); background: rgba(229,84,69,0.14); }
.vb-eyecatcher-body strong { display: block; font-size: 15px; font-weight: 700; color: var(--white); margin-bottom: 0.5rem; }
.vb-eyecatcher-body p { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 0; }

/* Info-blok (bv. "Product niet gevonden?") */
.vb-infoblock { border: 1.5px solid var(--border); border-radius: 4px; padding: 1.5rem 2rem; margin-bottom: 2rem; }
.vb-infoblock-tag { font-family: var(--cond); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 0.6rem; }
.vb-infoblock p { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 0; }

/* CTA rij */
.vb-ctas { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Voordelen */
.vb-voordelen-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.vb-voordeel { background: var(--dark); border: 1.5px solid var(--border); border-radius: 4px; padding: 1.75rem 1.5rem; transition: border-color 0.2s; }
.vb-voordeel:hover { border-color: var(--accent); }
.vb-voordeel-icon { font-size: 2rem; display: block; margin-bottom: 1rem; line-height: 1; }
.vb-voordeel-title { font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--white); margin: 0 0 0.5rem; }
.vb-voordeel-text { font-size: 13px; color: var(--muted); line-height: 1.6; margin: 0; }

/* FAQ grid */
.vb-faq-grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 4rem; }
.vb-faq-grid.wp-block-group > * { margin-block-start: 0 !important; }
.vb-faq-col.wp-block-group > * { margin-block-start: 0; }
.vb-faq-col-title { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin: 0 0 1.25rem; }

/* Formulier container */
.vb-form-container { max-width: 680px; }
.vb-form-container.wp-block-group > * { margin-block-start: 0; }

/* ----------------------------------------
   Contact Form 7
   ---------------------------------------- */

.wpcf7 { margin-top: 2.5rem; }

/* CF7 wraps elke field group in <p> */
.wpcf7-form > p {
  margin: 0 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

/* Labels */
.wpcf7-form label {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
}

/* Alle invoervelden */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  background: var(--dark);
  border: 1.5px solid var(--border);
  border-radius: 2px;
  color: var(--white);
  font-family: var(--body);
  font-size: 14px;
  padding: 12px 16px;
  transition: border-color 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="url"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus { outline: none; border-color: var(--accent); }

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder { color: rgba(255,255,255,0.2); }

/* Select pijl */
.wpcf7-form select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}

.wpcf7-form textarea { min-height: 130px; resize: vertical; }

/* Submit knop */
.wpcf7-form input[type="submit"] {
  font-family: var(--cond);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--black);
  border: none;
  border-radius: 2px;
  padding: 14px 32px;
  cursor: pointer;
  transition: all 0.2s ease;
  width: auto;
}
.wpcf7-form input[type="submit"]:hover { background: #f0d060; transform: translateY(-1px); }

/* Validatie */
.wpcf7-not-valid-tip { font-family: var(--cond); font-size: 11px; letter-spacing: 0.05em; color: var(--red); margin-top: 0.3rem; display: block; }
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid { border-color: var(--red); }

/* Antwoordbericht */
.wpcf7-response-output { font-family: var(--cond); font-size: 13px; letter-spacing: 0.06em; padding: 1rem 1.5rem; border-radius: 2px; margin-top: 1.5rem; border: 1.5px solid var(--border); color: var(--muted); }
.wpcf7-form.sent  .wpcf7-response-output { border-color: var(--accent); color: var(--accent); background: rgba(240,200,60,0.06); }
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.spam   .wpcf7-response-output { border-color: var(--red); color: var(--red); background: rgba(229,84,69,0.06); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-band-side, .hero-fan-side { min-height: auto; }
  .hero-band-side { border-right: none; border-bottom: 1px solid var(--border); }
  .hero-divider { display: none; }
  .section-intro, .fan-intro, .upload-grid { grid-template-columns: 1fr; gap: 3rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .nav-cta { display: none; }
  .products-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
}

@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr; }
  .hero-band-side, .hero-fan-side { padding: 4rem 2rem; }
  .section-bands .section-intro, .section-fans .fan-intro { padding: 0 1rem; }
}

/* ============================================================
   BLOCK SPACING — voorkom WP standaard marges in onze layouts
   ============================================================ */

/* Hero: geen browser-standaard marges op blokken, onze eigen classes zorgen voor spacing */
.hero-band-side > .wp-block-heading,
.hero-band-side > .wp-block-paragraph,
.hero-fan-side > .wp-block-heading,
.hero-fan-side > .wp-block-paragraph { margin-block-start: 0; margin-block-end: 0; }

/* Hero stats */
.hero-stats .wp-block-group { margin: 0; }
.hero-stats .wp-block-paragraph { margin: 0; }

/* How-it-works stappen */
.step > .wp-block-paragraph { margin: 0; }
.step-content > .wp-block-heading,
.step-content > .wp-block-paragraph { margin-block-start: 0; margin-block-end: 0; }
.step-content h4 { margin: 0 0 4px; }

/* Section headers */
.section-intro-text > .wp-block-paragraph { margin: 0; }
.section-intro-text > .wp-block-heading { margin: 0.75rem 0 1.5rem; }
.section-intro-text > .wp-block-buttons { margin: 0; }
.section-products-header > .wp-block-paragraph { margin: 0; }
.section-products-header > .wp-block-heading { margin-top: 0.75rem; margin-bottom: 0; }
.fan-intro > .wp-block-group > .wp-block-paragraph { margin: 0; }
.fan-intro > .wp-block-group > .wp-block-heading { margin: 0.75rem 0 1.5rem; }
.upload-header > .wp-block-paragraph { margin: 0; }
.upload-header > .wp-block-heading { margin: 0.75rem 0 1rem; }
.pricing-header > .wp-block-paragraph { margin: 0; }
.pricing-header > .wp-block-heading { margin: 0.75rem 0 1rem; }

/* Upload box */
.upload-box > .wp-block-heading { margin: 1rem 0 0.75rem; }
.upload-box > .wp-block-paragraph { margin-block-start: 0; margin-block-end: 2rem; }

/* ============================================================
   ARCHIVE: BANDS (ob_band CPT)
   ============================================================ */

.archive-bands { padding: 3rem 0; background: var(--black); position: relative; }

.archive-header { margin-bottom: 4rem; }
.archive-header .wp-block-paragraph { margin: 0; }
.archive-header .wp-block-heading { margin: 0.75rem 0 0; }

/* Band card featured image als banner-achtergrond */
.band-card-banner .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.band-card-banner .wp-block-post-featured-image img,
.band-card-banner .wp-block-post-featured-image figure { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; display: block; margin: 0; }
.band-card-banner .band-card-banner-title { position: relative; z-index: 2; font-family: var(--display); font-size: 1.75rem; letter-spacing: 0.06em; color: var(--white); line-height: 1; margin: 0; width: 100%; text-align: center; }
.band-card-banner .wp-block-post-title { position: relative; z-index: 2; font-family: var(--display); font-size: 1.75rem; letter-spacing: 0.06em; line-height: 1; margin: 0; width: 100%; text-align: center; }
.band-card-banner .wp-block-post-title a { color: var(--white); text-decoration: none; }
.band-card-banner .wp-block-post-title a:hover { color: var(--accent); }

/* Genre taxonomy terms */
.band-card-genre.wp-block-post-terms { margin-bottom: 0.5rem; }
.band-card-genre.wp-block-post-terms a { color: var(--accent); text-decoration: none; font-family: var(--cond); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.band-card-genre.wp-block-post-terms a + a::before { content: ' · '; color: var(--muted); }

/* Band card post-title in info area */
.band-card-info .wp-block-post-title { font-family: var(--display); font-size: 1.5rem; letter-spacing: 0.04em; margin: 0 0 0.75rem; }
.band-card-info .wp-block-post-title a { color: var(--white); text-decoration: none; }
.band-card-info .wp-block-post-excerpt { margin: 0 0 1rem; }
.band-card-info .wp-block-post-excerpt p { font-size: 13px; color: var(--muted); margin: 0; }

/* Read more als outline-knop */
.band-card-info .wp-block-read-more {
  display: block; width: 100%; text-align: center;
  font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 10px; border-radius: 2px;
  background: transparent; color: var(--white); border: 1.5px solid var(--border);
  transition: border-color 0.2s, color 0.2s; text-decoration: none;
}
.band-card-info .wp-block-read-more:hover { border-color: var(--accent); color: var(--accent); }

/* Paginatie */
.wp-block-query-pagination { margin-top: 3rem; display: flex; gap: 0.5rem; justify-content: center; }
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next,
.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-numbers span {
  font-family: var(--cond); font-size: 13px; font-weight: 600; letter-spacing: 0.06em;
  padding: 8px 16px; border: 1px solid var(--border); border-radius: 2px;
  color: var(--muted); text-decoration: none; transition: all 0.2s;
}
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-numbers a:hover { border-color: var(--accent); color: var(--accent); }
.wp-block-query-pagination-numbers .current { border-color: var(--accent); color: var(--accent); }

/* ============================================================
   ARCHIVE: PRODUCTCATALOGUS (ob_product_type CPT)
   ============================================================ */

.archive-products { padding: 7rem 0; background: var(--black); }

.ob-product-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
}
.ob-product-type-grid li { margin: 0; padding: 0; }

.ob-product-type-card { background: var(--card-bg); padding: 1.75rem 1.5rem; transition: background 0.2s; height: 100%; }
.ob-product-type-card:hover { background: #242424; }
.ob-product-type-card .wp-block-post-featured-image { margin: 0 0 1rem; }
.ob-product-type-card .wp-block-post-featured-image img { width: 48px; height: 48px; object-fit: cover; border-radius: 2px; }
.ob-product-type-card .wp-block-post-title { font-family: var(--cond); font-size: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--white); margin: 0 0 4px; }
.ob-product-type-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.ob-product-type-card .wp-block-post-excerpt p { font-size: 12px; color: var(--muted); margin: 0; }
.ob-product-type-card .wp-block-post-terms { font-family: var(--cond); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin: 0 0 6px; }
.ob-product-type-card .wp-block-post-terms a { color: inherit; text-decoration: none; }

/* ============================================================
   SINGLE: BAND & PRODUCTTYPE
   ============================================================ */

/* Neutralise WP blockGap margin op <main> voor band-profielpagina's */
body.single-ob_band main.wp-block-group { margin-block-start: 0; }

.single-band-hero { min-height: 55vh; background: var(--dark); position: relative; display: flex; align-items: flex-end; overflow: hidden; }
.single-band-hero .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.single-band-hero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.45; }
.single-band-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.1) 100%);
  z-index: 1;
}
.single-band-hero-content { position: relative; z-index: 2; padding: 4rem 0 3rem; width: 100%; }
.single-band-hero-content > * { margin-block-start: 0; }
.single-band-hero-content .wp-block-post-terms { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); margin-bottom: 0.75rem; }
.single-band-hero-content .wp-block-post-terms a { color: inherit; text-decoration: none; }
.single-band-hero-content .wp-block-post-title { font-family: var(--display); font-size: clamp(3rem, 8vw, 6rem); line-height: 0.9; letter-spacing: 0.02em; color: var(--white); margin: 0 0 1.25rem; }

.single-band-hero-meta { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.single-band-location { font-family: var(--cond); font-size: 13px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }

.single-band-socials { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.band-social-link { display: inline-block; font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--border); border-radius: 2px; padding: 6px 14px; text-decoration: none; transition: border-color 0.2s, color 0.2s; }
.band-social-link:hover { border-color: var(--accent); color: var(--accent); }

.single-band-body { padding: 5rem 0; background: var(--black); }
.single-band-body .wp-block-post-content { color: var(--muted); line-height: 1.8; font-size: 16px; }
.single-band-body .wp-block-post-content h2,
.single-band-body .wp-block-post-content h3 { color: var(--white); margin: 2rem 0 0.75rem; }
.single-band-body .wp-block-post-content a { color: var(--accent); text-underline-offset: 3px; }

.single-band-footer { padding: 2rem 0 4rem; background: var(--black); border-top: 1px solid var(--border); }

.single-product-type-body { padding: 7rem 0; background: var(--black); }

.single-product-type-header { display: flex; flex-direction: column; gap: 0.5rem; padding-bottom: 3rem; border-bottom: 1px solid var(--border); margin-bottom: 3rem; }
.single-product-type-header .wp-block-post-featured-image { margin: 0 0 1rem; }
.single-product-type-header .wp-block-post-featured-image img { width: 80px; height: 80px; object-fit: cover; border-radius: 4px; }
.single-product-type-header .wp-block-post-terms { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); margin: 0; }
.single-product-type-header .wp-block-post-terms a { color: inherit; text-decoration: none; }
.single-product-type-header .wp-block-post-title { font-family: var(--display); font-size: clamp(2.5rem, 6vw, 5rem); line-height: 0.95; letter-spacing: 0.02em; color: var(--white); margin: 0; }
.single-product-type-header .wp-block-post-excerpt p { color: var(--muted); font-size: 16px; line-height: 1.7; margin: 0; }

.single-product-type-cta { margin-top: 3rem; }

/* Fan shop producten op bandprofielpagina */
.single-band-shop { padding: 5rem 0; background: var(--off-black); border-top: 1px solid var(--border); }
.single-band-shop .section-title { margin-bottom: 2rem; }
.ob-band-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--gap, 1.5rem); list-style: none; padding: 0; margin: 0; }
.ob-band-product-item { list-style: none; }
/* Hergebruik fanshop card stijl */
.ob-band-product-item .fanshop-product-card { height: 100%; }
.ob-band-img-link { display: block; overflow: hidden; }
.ob-band-img-link img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform 0.3s; }
.ob-band-product-item .fanshop-product-card:hover .ob-band-img-link img { transform: scale(1.03); }
/* Prijs in band-shop: klassieke WC markup → goud */
.ob-band-price .woocommerce-Price-amount { color: var(--accent); }
.ob-band-price ins .woocommerce-Price-amount { color: var(--accent); }
.ob-band-price del { display: none; }
/* BTW-tekst onderaan band-shop */
.single-band-vat-text { font-family: var(--cond); font-size: 11px; color: var(--muted); margin: 1.5rem 0 0; text-align: right; }
/* Korte beschrijving op de productkaart (band-shop) */
.ob-band-card-desc {
  font-size: 12px; color: var(--accent); margin: 0; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* Alle bands: geen extra witruimte, rechts uitgelijnd */
.single-band-footer { margin-block-start: 0 !important; }
.single-band-footer .container { display: flex; justify-content: flex-end; }

@media (max-width: 600px) {
  .single-band-hero-content { padding: 3rem 1.5rem; }
}

/* ============================================================
   FANSHOP: archive-product (WooCommerce producten overzicht)
   ============================================================ */

body.woocommerce-page.archive main.wp-block-group,
body.post-type-archive-product main.wp-block-group { margin-block-start: 0; }

.fanshop-hero { background: var(--dark); border-bottom: 1px solid var(--border); padding: 6rem 0 5rem; }
.fanshop-hero .wp-block-heading { font-size: clamp(3rem, 7vw, 5.5rem); line-height: 0.95; margin: 0.5rem 0 1.25rem; }
.fanshop-hero-sub { color: var(--muted); font-size: 17px; max-width: 520px; margin: 0; }

.fanshop-body { padding: 5rem 0 7rem; background: var(--black); }

.fanshop-layout { display: grid; grid-template-columns: 220px 1fr; gap: 4rem; align-items: start; }

/* Sidebar */
.fanshop-sidebar { position: sticky; top: 90px; }
.fanshop-filter-heading { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); margin: 0 0 1.5rem; }
.fanshop-filter-label { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--white); margin: 1.5rem 0 0.5rem; }
.fanshop-sidebar .wp-block-woocommerce-product-categories ul { list-style: none; padding: 0; margin: 0; }
.fanshop-sidebar .wp-block-woocommerce-product-categories li { display: flex; align-items: center; justify-content: space-between; padding: 3px 0; position: relative; }
.fanshop-sidebar .wp-block-woocommerce-product-categories a { font-family: var(--cond); font-size: 13px; color: var(--muted); text-decoration: none; transition: color 0.2s; flex: 1; padding-left: 22px; }
.fanshop-sidebar .wp-block-woocommerce-product-categories a::after { content: ''; position: absolute; inset: 0; }
.fanshop-sidebar .wp-block-woocommerce-product-categories a:hover { color: var(--white); }
.fanshop-sidebar .wp-block-woocommerce-product-categories .current-cat > a { color: var(--accent); }
.fanshop-sidebar .wc-block-product-categories-list-item-count,
.fanshop-sidebar .wc-block-product-categories-list-item__count { font-family: var(--cond); font-size: 11px; color: var(--white); white-space: nowrap; }
.fanshop-sidebar .wp-block-woocommerce-price-filter .wc-block-price-filter__range-input-wrapper { background: var(--surface); }
.fanshop-sidebar .wc-block-components-price-slider__range-input::-webkit-slider-thumb { background: var(--accent); }
.fanshop-sidebar .wc-block-components-form-token-field-wrapper,
.fanshop-sidebar .wc-block-stock-filter { margin-top: 0.5rem; }
.fanshop-sidebar .wc-block-checkbox-list__item label { font-family: var(--cond); font-size: 13px; color: var(--muted); }
.fanshop-sidebar .wp-block-woocommerce-filter-wrapper { margin-top: 1rem; }

/* Sorteer-balk */
.fanshop-sort-bar { margin-bottom: 2rem; }
.fanshop-sort-bar .wc-block-product-results-count { font-family: var(--cond); font-size: 13px; color: var(--muted); }

/* Catalog sorting dropdown — dark theme fix */
.fanshop-sort-bar select option,
.wc-block-catalog-sorting select option { background: #000; color: var(--white); }

.fanshop-sort-bar select,
.wc-block-catalog-sorting select,
.wc-block-catalog-sorting .wc-block-sort-select select,
.wc-block-sort-select__select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center !important;
  border: 1px solid var(--border) !important;
  color: var(--white) !important;
  font-family: var(--cond) !important;
  font-size: 13px !important;
  padding: 6px 32px 6px 10px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
}

/* Product cards */
.fanshop-product-card { background: var(--surface); border: 1px solid var(--border); border-radius: 4px; overflow: hidden; transition: border-color 0.2s, transform 0.2s; height: 100%; position: relative; }
.fanshop-product-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.fanshop-product-card .wc-block-product-image { margin: 0; }
.fanshop-product-card .wc-block-product-image img,
.fanshop-product-card .wc-block-product-image a { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
/* Twee-tone header balk: goud (naam) + zwart (prijs) bovenop de afbeelding */
.fanshop-product-info { padding: 0.5rem 0.75rem; }
.fanshop-product-info .wp-block-post-title {
  position: absolute; top: 0; left: 0; right: 0; z-index: 3;
  height: 32px; background: var(--accent);
  font-family: var(--cond); font-size: 13px; font-weight: 700; letter-spacing: 0.02em;
  margin: 0; padding: 0; overflow: hidden;
}
.fanshop-product-info .wp-block-post-title a {
  position: absolute; inset: 0; z-index: 6;
  display: block; line-height: 32px;
  padding: 0 68px 0 10px;
  color: var(--black) !important; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fanshop-product-info .wc-block-components-product-price {
  position: absolute; top: 0; right: 0; z-index: 4;
  height: 32px; display: flex; align-items: center;
  background: var(--black); border-left: 1.5px solid var(--accent); border-bottom: 1.5px solid var(--accent);
  padding: 0 10px; font-size: 12px; font-weight: 700; white-space: nowrap;
  width: auto; border-radius: 0;
}
.fanshop-product-info .wc-block-components-product-price .wc-block-components-formatted-money-amount { color: var(--accent); }
.fanshop-product-info .wc-block-components-product-price__regular-price { display: none; }
.fanshop-product-info .wc-block-components-product-price small,
.fanshop-product-info .wc-block-components-product-price .woocommerce-price-suffix { display: none; }

/* Band-naam op product cards & single product */
.product-band-link { display: block; font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); text-decoration: none; margin-bottom: 4px; }
.product-band-link:hover { text-decoration: underline; text-underline-offset: 2px; }
.single-product-band { margin: 0.25rem 0 1rem; }
.single-product-band .product-band-link { font-size: 13px; }

/* Fanshop categorie-filter (radio, single-select) */
.fanshop-cat-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-family: var(--cond); font-size: 13px; color: var(--muted); transition: color 0.15s; line-height: 1.3; }
.fanshop-cat-label:hover { color: var(--white); }
.fanshop-cat-label--active { color: var(--accent); }
.fanshop-cat-label input[type="radio"] { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; min-width: 14px; opacity: 0; margin: 0; padding: 0; flex-shrink: 0; }
.fanshop-cat-label .fanshop-cat-text { flex: 1; }
.fanshop-cat-label--active .fanshop-filter-count { color: var(--accent); }
.fanshop-cat-label--parent { font-weight: 700; color: var(--white); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.fanshop-cat-label--child { padding-left: 14px; font-size: 12px; }
/* Parent groep-item: kleine scheiding boven elke ouder */
.fanshop-checkbox-list li.fanshop-cat-parent-item { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--border); }
/* Lege items uitgrijen */
li.fanshop-cat-label--empty .fanshop-cat-label,
li.fanshop-cat-label--empty .fanshop-cat-label:hover { color: var(--muted); opacity: 0.45; }

/* Fanshop checkbox-filters */
.fanshop-filters-form { display: flex; flex-direction: column; gap: 0; }

.fanshop-filter-reset { display: inline-block; font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); text-decoration: none; margin-bottom: 1.25rem; }
.fanshop-filter-reset:hover { text-decoration: underline; text-underline-offset: 2px; }

.fanshop-filter-group { margin-bottom: 1.5rem; }

.fanshop-checkbox-list { list-style: none; padding: 0; margin: 0; }
.fanshop-checkbox-list li { padding: 3px 0; }

.fanshop-checkbox-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-family: var(--cond); font-size: 13px; color: var(--muted); transition: color 0.15s; line-height: 1.3; }
.fanshop-checkbox-label:hover { color: var(--white); }
.fanshop-checkbox-label--empty { opacity: 0.4; pointer-events: none; }

.fanshop-checkbox-label input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; min-width: 14px; border: 1px solid var(--border); border-radius: 2px; background: transparent; cursor: pointer; position: relative; transition: border-color 0.15s, background 0.15s; }
.fanshop-checkbox-label input[type="checkbox"]:checked { background: var(--accent); border-color: var(--accent); }
.fanshop-checkbox-label input[type="checkbox"]:checked::after { content: ''; position: absolute; left: 3px; top: 1px; width: 5px; height: 8px; border: 2px solid var(--black); border-top: none; border-left: none; transform: rotate(45deg); }
.fanshop-checkbox-label input[type="checkbox"]:checked ~ .fanshop-checkbox-text { color: var(--accent); }
.fanshop-checkbox-label input[type="checkbox"]:checked ~ .fanshop-filter-count { color: var(--accent); }

.fanshop-checkbox-text { flex: 1; }
.fanshop-filter-count { color: var(--white); font-size: 11px; white-space: nowrap; }
.fanshop-product-card .wc-block-components-product-button { display: none; }

/* WooCommerce product collection grid override */
.fanshop-products .wp-block-woocommerce-product-collection .wc-block-product-template { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; list-style: none; padding: 0; margin: 0; }
.fanshop-products .wp-block-woocommerce-product-collection .wc-block-product-template li { margin: 0; display: flex; }
.fanshop-products .wp-block-woocommerce-product-collection .wc-block-product-template li > * { flex: 1; }

/* BTW-disclaimer */
.fanshop-vat-note { background: var(--black); padding: 0 0 1.5rem; margin-block-start: 0; }
.fanshop-vat-text { font-family: var(--cond); font-size: 11px; color: var(--muted); margin: 0; text-align: right; }

/* ============================================================
   PAGE: SINGLE PRODUCT (WooCommerce)
   ============================================================ */

/* Variation dropdown — zelfde dark stijl als sort-dropdown */
.wc-block-add-to-cart-form select,
.wc-block-components-product-add-to-cart select,
.variations_form select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center !important;
  border: 1px solid var(--border) !important;
  color: var(--white) !important;
  font-family: var(--cond) !important;
  font-size: 14px !important;
  padding: 8px 36px 8px 12px !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  width: 100%;
}
.wc-block-add-to-cart-form select option,
.wc-block-components-product-add-to-cart select option,
.variations_form select option { background: #000; color: var(--white); }

/* Variation table */
.woocommerce div.product form.variations_form table.variations { border-collapse: collapse; width: 100%; }
.woocommerce div.product form.variations_form table.variations td,
.woocommerce div.product form.variations_form table.variations th,
.wc-block-add-to-cart-form table.variations td,
.wc-block-add-to-cart-form table.variations th { vertical-align: middle !important; padding: 0.5rem 0 !important; }
.woocommerce div.product form.variations_form table.variations td.label,
.woocommerce div.product form.variations_form table.variations th,
.wc-block-add-to-cart-form table.variations td.label,
.wc-block-add-to-cart-form table.variations th { padding-right: 1.5rem !important; white-space: nowrap; width: 1%; }
.woocommerce div.product form.variations_form table.variations td.label label,
.woocommerce div.product form.variations_form table.variations th label,
.wc-block-add-to-cart-form table.variations td.label label,
.wc-block-add-to-cart-form table.variations th label {
  font-family: var(--cond); font-size: 12px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent);
  margin: 0; display: block; line-height: 1;
}
/* td.value: dropdown + Wissen knop naast elkaar */
.woocommerce div.product form.variations_form table.variations td.value,
.wc-block-add-to-cart-form table.variations td.value {
  display: flex !important; align-items: center !important; gap: 10px !important;
}
.woocommerce div.product form.variations_form table.variations td.value select,
.wc-block-add-to-cart-form table.variations td.value select { flex: 1; }
.woocommerce div.product form.variations_form .reset_variations,
.wc-block-add-to-cart-form .reset_variations {
  flex-shrink: 0; white-space: nowrap;
  font-family: var(--cond); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted) !important; text-decoration: none !important;
  border: 1px solid var(--border); padding: 3px 8px; border-radius: 2px;
  transition: color 0.15s, border-color 0.15s;
}
.woocommerce div.product form.variations_form .reset_variations:hover,
.wc-block-add-to-cart-form .reset_variations:hover { color: var(--white) !important; border-color: var(--muted); }

/* Product details tabs / accordion */
.wp-block-woocommerce-product-details { margin-top: 0; }

/* Accordion-stijl (WooCommerce Blocks) */
.wp-block-woocommerce-product-details .wc-block-accordion__panel,
.wp-block-woocommerce-product-details details {
  border-top: 1px solid var(--border);
}
.wp-block-woocommerce-product-details .wc-block-accordion__panel:last-child,
.wp-block-woocommerce-product-details details:last-child {
  border-bottom: 1px solid var(--border);
}
.wp-block-woocommerce-product-details .wc-block-accordion__header-button,
.wp-block-woocommerce-product-details summary {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; padding: 1rem 0;
  font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--white);
  background: transparent; border: none; cursor: pointer;
  list-style: none; text-align: left;
  transition: color 0.2s;
}
.wp-block-woocommerce-product-details .wc-block-accordion__header-button::-webkit-details-marker,
.wp-block-woocommerce-product-details summary::-webkit-details-marker { display: none; }
.wp-block-woocommerce-product-details .wc-block-accordion__header-button:hover,
.wp-block-woocommerce-product-details summary:hover,
.wp-block-woocommerce-product-details summary:hover * { color: var(--accent); }

/* Actieve sectie: goud */
.wp-block-woocommerce-product-details .wc-block-accordion__header-button[aria-expanded="true"],
.wp-block-woocommerce-product-details .wc-block-accordion__header-button[aria-expanded="true"] *,
.wp-block-woocommerce-product-details details[open] > summary,
.wp-block-woocommerce-product-details details[open] > summary * { color: var(--accent) !important; }

/* Toggle-icoon: + / − (alleen als WC geen eigen SVG toont) */
.wp-block-woocommerce-product-details .wc-block-accordion__header-button::after {
  content: '+'; font-family: var(--cond); font-size: 18px; font-weight: 300; color: var(--muted); line-height: 1; flex-shrink: 0;
}
.wp-block-woocommerce-product-details .wc-block-accordion__header-button[aria-expanded="true"]::after { content: '−'; color: var(--accent); }
.wp-block-woocommerce-product-details summary::after {
  content: '+'; font-family: var(--cond); font-size: 18px; font-weight: 300; line-height: 1; flex-shrink: 0; color: var(--muted);
}
.wp-block-woocommerce-product-details details[open] > summary::after { content: '−'; color: var(--accent) !important; }
.wp-block-woocommerce-product-details .wc-block-accordion__content,
.wp-block-woocommerce-product-details details > :not(summary) {
  color: var(--muted); font-size: 15px; line-height: 1.8;
  padding: 0 0 1.5rem;
}

/* Classic WooCommerce tabs — volledige WC-specificiteit overschrijven */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex; list-style: none; padding: 0 !important; margin: 0 !important;
  border-bottom: 1px solid var(--border) !important; gap: 0;
  background: transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: rgba(255,255,255,0.04) !important; border: 1px solid var(--border) !important;
  border-bottom: none !important; border-radius: 4px 4px 0 0 !important;
  margin: 0 2px 0 0 !important; padding: 0 !important;
  transition: background 0.2s, border-color 0.2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  font-family: var(--cond) !important; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: var(--muted) !important; padding: 0.75rem 1.25rem !important;
  transition: color 0.2s; text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover { background: rgba(255,255,255,0.08) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover a { color: var(--white) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--surface) !important; border-color: var(--border) !important;
  border-bottom: 2px solid var(--accent) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--accent) !important; }
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel,
.woocommerce div.product .woocommerce-tabs .panel {
  background: transparent !important; border: none !important; box-shadow: none !important;
  padding: 2rem 0 1rem !important; color: var(--muted) !important;
  font-size: 15px !important; line-height: 1.8 !important;
}
/* Verberg redundante koppen bovenaan tab-inhoud (beschrijving, extra info, beoordelingen) */
.woocommerce-Tabs-panel > h2:first-child,
.woocommerce-tabs .panel > h2:first-child,
.wp-block-woocommerce-product-details .wc-block-accordion__content > h2:first-child,
#reviews > h2:first-child,
.woocommerce-Reviews-title { display: none !important; }
/* "Wees de eerste om X te beoordelen" en andere review-notities in goud */
.woocommerce-noreviews,
.woocommerce-verification-required,
#reply-title,
.comment-reply-title { color: var(--accent) !important; font-family: var(--cond) !important; font-size: 14px !important; font-weight: 700 !important; letter-spacing: 0.06em !important; }
/* Korte omschrijving als label boven productbeschrijving */
.ob-product-label {
  display: block; margin-bottom: 1.25rem;
  font-family: var(--cond); font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}

/* ============================================================
   SINGLE PRODUCT — rechterkolomstyling
   ============================================================ */

/* Sale badge */
body.single-product .wc-block-components-product-sale-badge,
body.single-product .onsale {
  background: var(--red) !important; color: var(--white) !important;
  font-family: var(--cond) !important; font-size: 10px !important; font-weight: 700 !important;
  letter-spacing: 0.1em !important; text-transform: uppercase !important;
  padding: 4px 10px !important; border-radius: 2px !important; border: none !important;
}

/* Prijs — groot en goud */
body.single-product .wc-block-components-product-price {
  font-family: var(--cond); font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 700; line-height: 1;
  margin: 0.5rem 0 1.25rem;
}
body.single-product .wc-block-components-product-price .wc-block-components-formatted-money-amount { color: var(--accent); }
body.single-product .wc-block-components-product-price del .wc-block-components-formatted-money-amount { color: var(--muted); font-size: 0.55em; }

/* Korte beschrijving — als label-badge in rechterkolom */
body.single-product .wc-block-components-product-short-description,
body.single-product .woocommerce-product-details__short-description {
  font-family: var(--cond); font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
  line-height: 1.4; margin-bottom: 0.75rem;
}
body.single-product .wc-block-components-product-short-description p,
body.single-product .woocommerce-product-details__short-description p { margin: 0; }

/* Rating sterren */
body.single-product .wc-block-components-product-rating .wc-block-components-product-rating__stars,
body.single-product .star-rating span { color: var(--accent) !important; }

/* Variatie — reset-link */
body.single-product .reset_variations {
  font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted); text-decoration: none;
  display: inline-block; margin-top: 0.25rem;
}
body.single-product .reset_variations:hover { color: var(--white); }

/* Quantity stepper */
body.single-product .wc-block-components-quantity-selector,
body.single-product .quantity { display: flex; }
body.single-product .wc-block-components-quantity-selector input,
body.single-product .quantity input.qty {
  background: var(--surface) !important; border: 1px solid var(--border) !important;
  color: var(--white) !important; font-family: var(--cond) !important; font-size: 16px !important;
  text-align: center; min-width: 56px; border-radius: 2px !important; padding: 8px !important;
}
body.single-product .wc-block-components-quantity-selector__button,
body.single-product .quantity .qty-btn {
  background: var(--surface) !important; border: 1px solid var(--border) !important;
  color: var(--white) !important; font-size: 18px !important; line-height: 1 !important;
  width: 40px; cursor: pointer; border-radius: 2px !important;
}
body.single-product .wc-block-components-quantity-selector__button:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

/* Toevoegen aan winkelwagen — rode primaire CTA */
body.single-product .wc-block-add-to-cart-form .single_add_to_cart_button,
body.single-product .wc-block-add-to-cart-form button.wp-block-button__link,
body.single-product .wc-block-add-to-cart-form button[type="submit"],
body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button,
body.single-product .woocommerce form.cart .button {
  background: var(--red) !important; color: var(--white) !important;
  font-family: var(--cond) !important; font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: 0.12em !important; text-transform: uppercase !important;
  border: none !important; padding: 14px 28px !important; border-radius: 2px !important;
  cursor: pointer !important; transition: opacity 0.2s !important;
  width: 100% !important; text-align: center !important;
}
body.single-product .wc-block-add-to-cart-form .single_add_to_cart_button:hover,
body.single-product .wc-block-add-to-cart-form button[type="submit"]:hover,
body.single-product .woocommerce form.cart .button:hover { opacity: 0.85 !important; }

/* Product meta: SKU, categorieën, tags */
body.single-product .wp-block-post-terms { font-family: var(--cond); font-size: 12px; }
body.single-product .wp-block-post-terms a { color: var(--muted); text-decoration: none; transition: color 0.2s; }
body.single-product .wp-block-post-terms a:hover { color: var(--white); }
body.single-product .wc-block-components-product-sku { font-family: var(--cond); font-size: 12px; color: var(--muted); }

/* ============================================================
   PAGE: JURIDISCH (page-legal template — gedeeld door 3 pagina's)
   ============================================================ */

.section-legal-hero,
.section-legal-body { margin-block-start: 0; }

.section-legal-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-legal-hero .label { display: block; margin-bottom: 1rem; }
.section-legal-hero .wp-block-post-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0.75rem 0 0;
}

.section-legal-body { padding: 5rem 0 7rem; background: var(--black); }

.section-legal-body .wp-block-post-content > * { max-width: none; }
.section-legal-body .wp-block-post-content h2 {
  font-family: var(--cond);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin: 3rem 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}
.section-legal-body .wp-block-post-content h2:first-child { margin-top: 0; }
.section-legal-body .wp-block-post-content h3 {
  font-family: var(--cond);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 1.75rem 0 0.5rem;
}
.section-legal-body .wp-block-post-content p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  margin: 0 0 1rem;
}
.section-legal-body .wp-block-post-content ul,
.section-legal-body .wp-block-post-content ol {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  padding-left: 1.5rem;
  margin: 0 0 1rem;
}
.section-legal-body .wp-block-post-content li { margin-bottom: 0.4rem; }
.section-legal-body .wp-block-post-content strong { color: var(--white); font-weight: 600; }
.section-legal-body .wp-block-post-content a { color: var(--accent); text-decoration: underline; }
.section-legal-body .wp-block-post-content a:hover { color: var(--white); }

/* ============================================================
   PAGE: FAQ (standalone pagina)
   ============================================================ */

.section-faq-hero,
.section-faq-body { margin-block-start: 0; }

.section-faq-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-faq-hero .label { display: block; margin-bottom: 1rem; }
.faq-hero-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.9;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0.75rem 0 0;
}
.faq-hero-sub {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  margin: 1.25rem 0 0;
}

.section-faq-body { padding: 5rem 0 7rem; background: var(--black); }

/* FAQ ankernavigatie (dynamisch via JS gegenereerd) */
.faq-topic-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 3rem;
}
.faq-topic-nav-link {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 2px;
  padding: 6px 14px;
  text-decoration: none;
  transition: color 0.15s, border-color 0.15s;
  white-space: nowrap;
}
.faq-topic-nav-link:hover { color: var(--accent); border-color: var(--accent); }

/* 2-kolommen grid: ob-faq-group items worden directe grid items via display:contents */
.faq-groups-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 4rem;
  row-gap: 3rem;
  align-items: start;
  margin-top: 3rem;
}
.faq-groups-grid > .wp-block-shortcode { display: contents; }
.faq-groups-grid .ob-faq-group,
.faq-groups-grid .ob-faq { margin-block-start: 0; margin-bottom: 0; }
.faq-groups-grid .ob-faq-group[id] { scroll-margin-top: 2rem; }

/* ============================================================
   PAGE: OVER ONS
   ============================================================ */

.section-over-ons-hero,
.section-over-ons-verhaal,
.section-over-ons-twee-werelden,
.section-over-ons-cta { margin-block-start: 0; }

.section-over-ons-hero {
  padding: 8rem 0 6rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-over-ons-hero .label { display: block; margin-bottom: 1rem; }
.over-ons-hero-title {
  font-family: var(--display);
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: 0.9;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0.75rem 0 0;
}
.over-ons-hero-sub {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.7;
  margin: 1.5rem 0 0;
}

.section-over-ons-verhaal { padding: 6rem 0; background: var(--surface); }
.section-over-ons-verhaal .label { display: block; margin-bottom: 1rem; }
.section-over-ons-verhaal .section-title { margin: 0.75rem 0 2rem; }
.over-ons-verhaal-body {}
.over-ons-verhaal-body p {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin: 0 0 1.25rem;
}
.over-ons-verhaal-body p:last-child { margin-bottom: 0; }
.over-ons-verhaal-body strong { color: var(--white); }

.section-over-ons-twee-werelden { padding: 6rem 0; background: var(--black); }
.section-over-ons-twee-werelden .label { display: block; margin-bottom: 1rem; }
.section-over-ons-twee-werelden .section-title { margin: 0.75rem 0 0; }
.over-ons-twee-werelden-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  margin-top: 3rem;
}
.over-ons-wereld-block {
  background: var(--card-bg);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.over-ons-wereld-block .label { margin-bottom: 1rem; }
.over-ons-wereld-block--band .label { color: var(--accent); }
.over-ons-wereld-block--fan .label  { color: var(--red); }
.over-ons-wereld-block h3 {
  font-family: var(--display);
  font-size: 1.9rem;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1rem;
}
.over-ons-wereld-block p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.75;
  margin: 0 0 1.75rem;
  flex: 1;
}
.over-ons-wereld-block .btn { align-self: flex-start; }

.section-over-ons-cta {
  padding: 6rem 0;
  background: var(--dark);
  text-align: center;
  border-top: 1px solid var(--border);
}
.over-ons-cta-title {
  font-family: var(--display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1rem;
}
.over-ons-cta-sub {
  font-size: 15px;
  color: var(--muted);
  margin: 0 0 2.5rem;
}
.over-ons-ctas { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }

/* ============================================================
   PAGE: PARTNERS
   ============================================================ */

.section-partners-hero,
.section-partners-body { margin-block-start: 0; }

.section-partners-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-partners-hero .label { display: block; margin-bottom: 1rem; }
.section-partners-hero .wp-block-post-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0.75rem 0 0;
}

.partners-hero-sub {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.7;
  margin: 1.25rem 0 0;
}

.section-partners-body { padding: 5rem 0 7rem; background: var(--black); }

/* Logo-strip */
.partner-logo-strip {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 2.5rem;
  padding-bottom: 1.5rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid var(--border);
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.partner-logo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.partner-logo-item img {
  height: 48px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1) brightness(2);
  opacity: 0.45;
  transition: opacity 0.2s, filter 0.2s;
}
.partner-logo-item:hover img { opacity: 1; filter: none; }

/* Type-secties */
.partner-type-section { margin-bottom: 4rem; }
.partner-type-section:last-child { margin-bottom: 0; }
.partner-type-title {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 2rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}

/* Partner cards grid */
.partner-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.partner-card {
  background: var(--dark);
  border: 1px solid var(--border);
  padding: 2rem;
  display: flex;
  gap: 1.75rem;
  align-items: center;
  scroll-margin-top: 5rem;
  transition: border-color 0.2s;
}
.partner-card:target { border-color: var(--accent); }

.partner-card-logo {
  flex-shrink: 0;
  width: 110px;
  display: flex;
  align-items: center;
}
.partner-card-logo img {
  width: 100%;
  height: auto;
  max-height: 70px;
  object-fit: contain;
}

.partner-card-content { flex: 1; min-width: 0; }
.partner-card-name {
  font-family: var(--cond);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 0.75rem;
}
.partner-card-text { font-size: 14px; color: var(--muted); line-height: 1.8; }
.partner-card-text p { margin: 0 0 0.75rem; }
.partner-card-text p:last-child { margin-bottom: 0; }
.partner-card-text ul,
.partner-card-text ol { padding-left: 1.25rem; margin: 0.5rem 0 0.75rem; }
.partner-card-text li { margin-bottom: 0.35rem; }
.partner-card-link {
  display: inline-block;
  margin-top: 1rem;
  font-family: var(--cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  transition: opacity 0.2s;
}
.partner-card-link:hover { opacity: 0.7; }

/* ============================================================
   PAGE: ONTDEK
   ============================================================ */

.section-ontdek-hero,
.section-ontdek-featured,
.section-ontdek-all { margin-block-start: 0; }

.section-ontdek-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-ontdek-hero .label { display: block; margin-bottom: 1rem; }
.ontdek-hero-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.9;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0.75rem 0 0;
}
.ontdek-hero-sub {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.7;
  margin: 1.25rem 0 0;
}

.section-ontdek-featured {
  padding: 5rem 0;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
.section-ontdek-all { padding: 5rem 0 7rem; background: var(--black); }

.ontdek-section-header { margin-bottom: 2.5rem; }
.ontdek-section-header .label { display: block; margin-bottom: 0.75rem; }
.ontdek-section-title {
  font-family: var(--display);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0;
}

.partner-card-since {
  display: block;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ============================================================
   BANDS ARCHIEF (archive-ob_band)
   ============================================================ */

.section-bands-hero,
.section-bands-new,
.archive-bands { margin-block-start: 0; }

.section-bands-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-bands-hero .label { display: block; margin-bottom: 1rem; }
.bands-hero-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1.25rem;
}
.bands-hero-sub {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

/* Nieuw-strip */
.section-bands-new {
  padding: 2.5rem 0 2rem;
  background: var(--off-black);
  border-bottom: 1px solid var(--border);
}
.bands-new-header { margin-bottom: 1.25rem; }
.bands-new-header .label { display: block; margin-bottom: 0.4rem; }
.bands-new-title {
  font-family: var(--display);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--white);
  margin: 0;
}
.new-bands-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 1rem;
}
.new-band-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--dark);
  border: 1px solid var(--border);
  padding: 4px 12px 4px 4px;
  text-decoration: none;
  color: var(--white);
  font-family: var(--cond);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: border-color 0.2s, color 0.2s;
}
.new-band-chip:hover { border-color: var(--accent); color: var(--accent); }
.new-band-chip-thumb {
  width: 40px;
  height: 40px;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}
.new-band-chip-thumb--empty {
  background: var(--border);
}

/* Scene-titels in archief */
.archive-scene-title {
  font-family: var(--display);
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--white);
  margin: 0.4rem 0 0;
}

/* Featured-badge op band cards */
.band-card-featured-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 10;
  width: 28px;
  height: 28px;
  background: var(--accent);
  color: var(--black);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* ============================================================
   VOOR LABELS & BEDRIJVEN (page-voor-labels)
   ============================================================ */

.section-vl-intro,
.section-vl-bandshop,
.section-vl-volume,
.section-vl-doelgroepen,
.section-vl-voordelen,
.section-vl-contact { margin-block-start: 0; }

.section-vl-intro       { background: var(--dark);    padding: 8rem 0 6rem; }
.section-vl-bandshop    { background: var(--surface); padding: 6rem 0; }
.section-vl-volume      { background: var(--dark);    padding: 6rem 0; border-bottom: 1px solid var(--border); }
.section-vl-doelgroepen { background: var(--surface); padding: 6rem 0; }
.section-vl-voordelen   { background: var(--dark);    padding: 6rem 0; }
.section-vl-contact     { background: var(--black);   padding: 6rem 0 7rem; border-top: 1px solid var(--border); }

.section-vl-intro .wp-block-group.container > *,
.section-vl-bandshop .wp-block-group.container > *,
.section-vl-volume .wp-block-group.container > *,
.section-vl-doelgroepen .wp-block-group.container > *,
.section-vl-voordelen .wp-block-group.container > *,
.section-vl-contact .wp-block-group.container > * { margin-block-start: 0; }

.vl-intro-title { font-family: var(--display); font-size: clamp(3rem, 6vw, 5rem); line-height: 0.92; letter-spacing: 0.02em; color: var(--white); margin: 1.5rem 0 2rem; }
.vl-intro-sub   { font-size: 17px; color: var(--muted); line-height: 1.7; margin-bottom: 3rem; }

.section-vl-bandshop .section-title,
.section-vl-volume .section-title,
.section-vl-doelgroepen .section-title,
.section-vl-voordelen .section-title,
.section-vl-contact .section-title { margin: 0.75rem 0 0; }

/* Volume-kaarten */
.vl-volume-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}
.vl-volume-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 4px;
  padding: 2rem 1.75rem;
  transition: border-color 0.2s;
}
.vl-volume-card:hover { border-color: var(--accent); }
.vl-volume-num {
  display: block;
  font-family: var(--display);
  font-size: 3rem;
  line-height: 1;
  color: var(--accent);
  margin-bottom: 1rem;
}
.vl-volume-card h4 {
  font-family: var(--cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 0.5rem;
}
.vl-volume-card p { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 0; }

/* Doelgroep-raster */
.vl-doelgroep-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}
.vl-doelgroep-card {
  background: var(--dark);
  border: 1.5px solid var(--border);
  border-radius: 4px;
  padding: 2rem;
  transition: border-color 0.2s;
}
.vl-doelgroep-card:hover { border-color: var(--accent); }
.vl-doelgroep-title {
  font-family: var(--cond);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.6rem;
}
.vl-doelgroep-text { font-size: 14px; color: var(--muted); line-height: 1.7; margin: 0; }

.section-vl-voordelen .vb-voordelen-grid { margin-top: 3rem; }

.section-vl-contact { background: var(--surface); }

/* ============================================================
   SPONSORING (page-sponsoring)
   ============================================================ */

.section-sp-intro,
.section-sp-aanbod,
.section-sp-voorwaarden,
.section-sp-form { margin-block-start: 0; }

.section-sp-intro       { background: var(--dark);    padding: 8rem 0 6rem; }
.section-sp-aanbod      { background: var(--black);   padding: 6rem 0; }
.section-sp-voorwaarden { background: var(--surface); padding: 6rem 0; }
.section-sp-form        { background: var(--dark);    padding: 6rem 0 7rem; }

.section-sp-intro .wp-block-group.container > *,
.section-sp-aanbod .wp-block-group.container > *,
.section-sp-voorwaarden .wp-block-group.container > *,
.section-sp-form .wp-block-group.container > * { margin-block-start: 0; }

.sp-intro-title { font-family: var(--display); font-size: clamp(3rem, 6vw, 5rem); line-height: 0.92; letter-spacing: 0.02em; color: var(--white); margin: 1.5rem 0 2rem; }
.sp-intro-sub   { font-size: 17px; color: var(--muted); line-height: 1.7; margin-bottom: 3rem; }

.section-sp-aanbod .section-title,
.section-sp-voorwaarden .section-title,
.section-sp-form .section-title { margin: 0.75rem 0 0; }

/* Aanbod-kaarten */
.sp-aanbod-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 3rem 0;
}
.sp-aanbod-card {
  background: var(--dark);
  border: 1.5px solid var(--border);
  border-radius: 4px;
  padding: 2rem 1.75rem;
  transition: border-color 0.2s;
}
.sp-aanbod-card:hover { border-color: var(--accent); }
.sp-aanbod-num {
  display: block;
  font-family: var(--display);
  font-size: 3rem;
  line-height: 1;
  color: var(--accent);
  margin-bottom: 1rem;
}
.sp-aanbod-card h4 {
  font-family: var(--cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 0.5rem;
}
.sp-aanbod-card p { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 0; }

/* Criteria-raster */
.sp-criteria-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}
.sp-criterium {
  background: var(--dark);
  border: 1.5px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  padding: 1.75rem 2rem;
}
.sp-criterium-title {
  font-family: var(--cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 0.5rem;
}
.sp-criterium-text { font-size: 14px; color: var(--muted); line-height: 1.7; margin: 0; }

/* ============================================================
   NIEUWS (index.html + single.html)
   ============================================================ */

.section-news-hero,
.archive-news,
.single-post-hero,
.single-post-body,
.single-post-footer { margin-block-start: 0; }

/* Hero */
.section-news-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-news-hero .label { display: block; margin-bottom: 1rem; }
.news-hero-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1.25rem;
}
.news-hero-sub { font-size: 16px; color: var(--muted); line-height: 1.7; margin: 0; }

/* Archief grid */
.archive-news { padding: 5rem 0 7rem; background: var(--black); }
.archive-news .wp-block-query { margin-block-start: 0; }
.archive-news .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* News card */
.news-card {
  background: var(--dark);
  border: 1.5px solid var(--border);
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s, transform 0.2s;
}
.news-card:hover { border-color: var(--accent); transform: translateY(-3px); }

.news-card .news-card-image,
.news-card .wp-block-post-featured-image { margin: 0; display: block; }
.news-card .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.news-card-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0;
}
.news-card-body > * { margin-block-start: 0; }

.news-card .news-card-category .wp-block-post-terms,
.news-card .wp-block-post-terms {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.5rem;
  display: block;
}
.news-card .wp-block-post-terms a { color: inherit; text-decoration: none; }

.news-card .news-card-title .wp-block-post-title,
.news-card .wp-block-post-title {
  font-family: var(--display);
  font-size: 1.4rem;
  line-height: 1.05;
  letter-spacing: 0.03em;
  color: var(--white);
  margin: 0 0 0.75rem;
}
.news-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.news-card .wp-block-post-title a:hover { color: var(--accent); }

.news-card .news-card-excerpt .wp-block-post-excerpt,
.news-card .wp-block-post-excerpt { flex: 1; }
.news-card .wp-block-post-excerpt p {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
  margin: 0 0 1rem;
}
.news-card .wp-block-post-excerpt .wp-block-post-excerpt__more-link { display: none; }

.news-card .news-card-date .wp-block-post-date,
.news-card .wp-block-post-date {
  font-family: var(--cond);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: auto;
  display: block;
}

/* Paginatie nieuws */
.archive-news .wp-block-query-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 4rem;
}
.archive-news .wp-block-query-pagination a,
.archive-news .wp-block-query-pagination span {
  font-family: var(--cond);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--border);
  padding: 6px 14px;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}
.archive-news .wp-block-query-pagination a:hover { border-color: var(--accent); color: var(--accent); }
.archive-news .wp-block-query-pagination .wp-block-query-pagination-numbers .current { border-color: var(--accent); color: var(--accent); }

/* Single post */
.single-post-hero {
  min-height: 40vh;
  background: var(--dark);
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.single-post-hero .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.single-post-hero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.3; }
.single-post-hero-content {
  position: relative;
  z-index: 1;
  padding: 4rem 2rem;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}
.single-post-hero-content > * { margin-block-start: 0; }

.single-post-category .wp-block-post-terms {
  font-family: var(--cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.75rem;
  display: block;
}
.single-post-category .wp-block-post-terms a { color: inherit; text-decoration: none; }

.single-post-hero-content .wp-block-post-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 0.92;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1rem;
}

.single-post-date .wp-block-post-date {
  font-family: var(--cond);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.single-post-body { padding: 5rem 0 7rem; background: var(--black); }
.single-post-body .wp-block-post-content {
  color: var(--muted);
  line-height: 1.8;
  font-size: 16px;
}
.single-post-body .wp-block-post-content h2,
.single-post-body .wp-block-post-content h3 { color: var(--white); margin: 2rem 0 0.75rem; }
.single-post-body .wp-block-post-content a { color: var(--accent); }
.single-post-body .wp-block-post-content img { max-width: 100%; height: auto; }
.single-post-body .wp-block-post-content > * { margin-block-start: 0; margin-bottom: 1.25rem; }

/* Leesvoortgangsbalk */
.reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: var(--accent);
  transform-origin: left center;
  transform: scaleX(0);
  z-index: 9999;
  animation: reading-progress-grow linear both;
  animation-timeline: scroll(root block);
}
@keyframes reading-progress-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* Single post: neutralise WP blockGap margin on <main> */
body.single main.wp-block-group { margin-block-start: 0; }

/* Single post hero — fullscreen */
.single-post-hero {
  min-height: 65vh;
  background: var(--dark);
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.single-post-hero .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.single-post-hero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.45; }
.single-post-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.1) 100%);
  z-index: 1;
}
.single-post-hero-content {
  position: relative;
  z-index: 2;
  padding: 5rem 2rem 5rem;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}
.single-post-hero-content > * { margin-block-start: 0; }

.single-post-category .wp-block-post-terms {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--black);
  display: inline-block;
  padding: 3px 10px;
  border-radius: 2px;
  margin-bottom: 1.5rem;
}
.single-post-category .wp-block-post-terms a { color: inherit; text-decoration: none; }

.single-post-hero-content .wp-block-post-title {
  font-family: var(--display);
  font-size: clamp(3rem, 7vw, 6.5rem);
  line-height: 0.9;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1.5rem;
  max-width: 900px;
}

.single-post-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.reading-time {
  font-family: var(--cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.single-post-date .wp-block-post-date,
.single-post-date time {
  font-family: var(--cond);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Single post body */
.single-post-body { padding: 5rem 0 4rem; background: var(--black); }
.single-post-body .wp-block-post-content { color: var(--muted); line-height: 1.9; font-size: 17px; }
.single-post-body .wp-block-post-content > * { margin-block-start: 0; margin-bottom: 1.5rem; }
.single-post-body .wp-block-post-content h2,
.single-post-body .wp-block-post-content h3 { font-family: var(--display); letter-spacing: 0.03em; color: var(--white); margin: 2.5rem 0 0.75rem; }
.single-post-body .wp-block-post-content h2 { font-size: clamp(1.75rem, 4vw, 2.5rem); }
.single-post-body .wp-block-post-content h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); }
.single-post-body .wp-block-post-content a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.single-post-body .wp-block-post-content img { max-width: 100%; height: auto; display: block; margin: 2rem auto; }
.single-post-body .wp-block-post-content figcaption { font-family: var(--cond); font-size: 12px; text-align: center; color: var(--muted); margin-top: -1rem; letter-spacing: 0.04em; }

/* Drop cap op eerste alinea */
.single-post-body .wp-block-post-content > p:first-of-type::first-letter {
  float: left;
  font-family: var(--display);
  font-size: 4.5rem;
  line-height: 0.8;
  color: var(--accent);
  margin: 0.1em 0.12em 0 0;
}

/* Blockquote als eyecatcher */
.single-post-body .wp-block-post-content blockquote {
  border: none;
  border-left: 3px solid var(--accent);
  background: rgba(232, 197, 71, 0.05);
  margin: 2rem 0;
  padding: 1.5rem 2rem;
  border-radius: 0 4px 4px 0;
}
.single-post-body .wp-block-post-content blockquote p {
  font-family: var(--cond);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0;
  line-height: 1.5;
}
.single-post-body .wp-block-post-content blockquote cite {
  display: block;
  font-family: var(--cond);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 0.75rem;
}

/* Gerelateerde berichten */
.related-posts {
  padding: 4rem 0;
  background: var(--dark);
  border-top: 1px solid var(--border);
}
.related-posts .container,
.related-posts { margin-block-start: 0; }
.related-posts-title {
  font-family: var(--display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  letter-spacing: 0.04em;
  color: var(--white);
  margin: 0 0 2rem;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 2rem;
}
.related-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}
.related-post-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1.5px solid var(--border);
  text-decoration: none;
  transition: border-color 0.2s, transform 0.2s;
}
.related-post-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.related-post-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
.related-post-thumb--empty {
  background: var(--border);
  aspect-ratio: 16 / 9;
}
.related-post-body {
  padding: 1rem 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1;
}
.related-post-cat {
  font-family: var(--cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}
.related-post-title {
  font-family: var(--display);
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  color: var(--white);
  line-height: 1.05;
}
.related-post-date {
  font-family: var(--cond);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: auto;
  padding-top: 0.5rem;
}

/* Footer back-link */
.single-post-footer { padding: 2.5rem 0 4rem; background: var(--black); border-top: 1px solid var(--border); }
.single-post-footer .container { display: flex; justify-content: flex-end; }

/* ============================================================
   EVENTS ARCHIEF & SINGLE (ob_event)
   ============================================================ */

.section-events-hero,
.archive-events { margin-block-start: 0; }

.section-events-hero {
  padding: 6rem 0 4rem;
  background: var(--dark);
  border-bottom: 1px solid var(--border);
}
.section-events-hero .label { display: block; margin-bottom: 1rem; }
.events-hero-title {
  font-family: var(--display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: 0.02em;
  color: var(--white);
  margin: 0 0 1.25rem;
}
.events-hero-sub { font-size: 16px; color: var(--muted); line-height: 1.7; margin: 0; }

.archive-events { padding: 5rem 0 7rem; background: var(--black); }

/* Event cards grid — zelfde patroon als band-cards */
.event-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}
.event-card {
  background: var(--dark);
  border: 1.5px solid var(--border);
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s, transform 0.2s;
}
.event-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.event-card--sponsored { border-color: rgba(232,197,71,0.3); }

.event-card-banner {
  height: 140px;
  background: linear-gradient(135deg, #111 0%, #1e1e1e 100%);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 1rem;
}
.event-card-banner .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.event-card-banner .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; display: block; margin: 0; }
.event-card-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 60%); z-index: 1; pointer-events: none; }
.event-card-banner-title { position: relative; z-index: 2; font-family: var(--display); font-size: 1.5rem; letter-spacing: 0.04em; color: var(--white); line-height: 1; margin: 0; width: 100%; }
.event-card-banner-title a { color: inherit; text-decoration: none; }
.event-card-banner-title a:hover { color: var(--accent); }

.event-card-featured-badge {
  position: absolute; top: 10px; right: 10px; z-index: 10;
  width: 28px; height: 28px; background: var(--accent); color: var(--black);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1; box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.event-card-sponsored-badge {
  position: absolute; top: 10px; left: 10px; z-index: 10;
  background: var(--accent); color: var(--black);
  font-family: var(--cond); font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 2px;
}

.event-card-info { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.event-card-meta { display: flex; flex-direction: column; gap: 3px; margin-bottom: 0.75rem; }
.event-date { font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.event-location { font-family: var(--cond); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.event-card-info .wp-block-post-excerpt p { font-size: 13px; color: var(--muted); line-height: 1.6; margin: 0 0 1rem; }
.event-card-info .wp-block-read-more {
  margin-top: auto; display: block; width: 100%; text-align: center;
  font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted); border: 1px solid var(--border); padding: 8px;
  transition: border-color 0.2s, color 0.2s; text-decoration: none;
}
.event-card-info .wp-block-read-more:hover { border-color: var(--accent); color: var(--accent); }

/* Single event */
.single-event-hero,
.single-event-body,
.single-event-shop { margin-block-start: 0; }

.single-event-hero { min-height: 40vh; background: var(--dark); position: relative; display: flex; align-items: flex-end; overflow: hidden; }
.single-event-hero .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 0; }
.single-event-hero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.3; }
.single-event-hero-content { position: relative; z-index: 1; padding: 4rem 2rem; max-width: 1200px; margin: 0 auto; width: 100%; }
.single-event-hero-content .wp-block-post-title { font-family: var(--display); font-size: clamp(3rem, 8vw, 6rem); line-height: 0.9; letter-spacing: 0.02em; color: var(--white); margin: 0 0 1.25rem; }

.single-event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.single-event-date { font-family: var(--cond); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); }
.single-event-location { font-family: var(--cond); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.single-event-sponsored-badge { font-family: var(--cond); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; background: var(--accent); color: var(--black); padding: 3px 10px; border-radius: 2px; }
.single-event-sponsored-by { color: var(--black); }
.single-event-website { font-family: var(--cond); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--white); text-decoration: none; border-bottom: 1px solid var(--border); padding-bottom: 1px; transition: color 0.2s, border-color 0.2s; }
.single-event-website:hover { color: var(--accent); border-color: var(--accent); }

.single-event-body { padding: 5rem 0; background: var(--black); }
.single-event-body .container { max-width: 800px; }
.single-event-body .wp-block-post-content { color: var(--muted); line-height: 1.8; font-size: 16px; }
.single-event-body .wp-block-post-content h2,
.single-event-body .wp-block-post-content h3 { color: var(--white); margin: 2rem 0 0.75rem; }

.single-event-shop { padding: 5rem 0 7rem; background: var(--surface); border-top: 1px solid var(--border); }
.single-event-shop .label { display: block; margin-bottom: 0.75rem; }
.single-event-shop-title { font-family: var(--display); font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1; letter-spacing: 0.02em; color: var(--white); margin: 0 0 2.5rem; }
