.rv-club,.rv-card{box-sizing:border-box;font-family:inherit;color:#0e0d0e}
.rv-club{--rv-border:#e7e7e7;--rv-muted:#0e0d0e;--rv-bg:#fff;--rv-soft:#f7f7f8;--rv-accent:#3faf36;max-width:1120px;margin:24px auto;color:#0e0d0e}
.rv-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}
.rv-header h2{font-size:clamp(28px,5vw,48px);line-height:1;margin:3px 0 8px;color:#0e0d0e}
.rv-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;color:#0e0d0e}
.rv-season,.rv-muted,.rv-footer{color:#0e0d0e;font-size:13px}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rv-card{background:var(--rv-bg);border:1px solid var(--rv-border);border-radius:16px;padding:20px;box-shadow:0 6px 24px rgba(0,0,0,.04);color:#0e0d0e}
.rv-card--wide{grid-column:1/-1}
.rv-card h3{margin:0 0 4px;font-size:19px;color:#3faf36}
.rv-table-wrap{overflow:auto;margin-top:14px}
.rv-table{width:100%;border-collapse:collapse;font-size:14px;color:#0e0d0e}
.rv-table th,.rv-table td{text-align:left;padding:10px 9px;border-bottom:1px solid var(--rv-border);white-space:nowrap}
.rv-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#3faf36;font-weight:700}
.rv-table td{color:#0e0d0e}
.rv-highlight{background:#f0f0f0}
.rv-match{padding:13px 0;border-bottom:1px solid var(--rv-border)}
.rv-match:last-child{border-bottom:0}
.rv-match-meta{font-size:12px;color:#0e0d0e;margin-bottom:5px}
.rv-match-line{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;font-size:14px;color:#0e0d0e}
.rv-match-line span:last-child{text-align:right}
.rv-score{min-width:44px;text-align:center;font-size:16px;color:#0e0d0e}
.rv-vs{color:#0e0d0e}
.rv-alert{padding:12px 14px;border-radius:10px;margin:10px 0;font-size:13px;color:#0e0d0e}
.rv-alert--warning{background:#fff8e7;border:1px solid #f0d891}
.rv-alert--error{background:#fff0f0;border:1px solid #efb3b3}
.rv-empty{padding:22px 0;color:#0e0d0e;font-size:14px}
.rv-status{font-size:12px;font-weight:800;padding:7px 10px;border-radius:999px;white-space:nowrap;color:#0e0d0e}
.rv-status--ok{background:#e9f8ef}
.rv-status--warning{background:#fff4d7}
.rv-status--error{background:#ffe7e7}
.rv-footer{margin-top:14px;color:#0e0d0e}
.rv-footer a{color:#0e0d0e}
.rv-competition{font-size:14px;font-weight:700;margin:5px 0 10px;color:#0e0d0e}
.rv-fixtures .rv-fixture{white-space:normal;min-width:210px}
.rv-fixtures .rv-result{text-align:center;font-size:15px}
.rv-fixtures th:last-child,.rv-fixtures td:last-child{padding-right:12px}
@media(max-width:720px){.rv-grid{grid-template-columns:1fr}.rv-card--wide{grid-column:auto}.rv-header{align-items:center}.rv-table{font-size:12px}.rv-card{padding:16px}}
@media(max-width:600px){.rv-fixtures{font-size:12px}.rv-fixtures th,.rv-fixtures td{padding:9px 6px}.rv-fixtures .rv-fixture{min-width:175px}}

.rv-info-list{margin:14px 0 0;padding:0}
.rv-info-row{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--rv-border);color:#0e0d0e}
.rv-info-row:last-child{border-bottom:0}
.rv-info-row dt{font-weight:700;color:#3faf36}
.rv-info-row dd{margin:0;color:#0e0d0e}
@media(max-width:520px){.rv-info-row{grid-template-columns:1fr;gap:3px}}

.rv-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;min-height:56px}
.rv-info-head h3{margin-right:auto}
.rv-club-logo{display:block;width:64px;height:64px;object-fit:contain;object-position:center;flex:0 0 64px;margin:-4px 0 0 12px}
@media(max-width:520px){.rv-club-logo{width:52px;height:52px;flex-basis:52px}.rv-info-head{min-height:48px}}

/* Clubinformatie v0.8 */
.rv-club-info dt,.rv-club-info dd{color:#0e0d0e}
.rv-info-content h3{margin:0 0 6px}
@media(max-width:620px){
}

.rv-club-info{color:#0e0d0e}
.rv-club-info .rv-info-title{color:#3faf36;margin:0 0 12px}
.rv-info-layout{display:flex;align-items:flex-start;gap:22px}
.rv-info-logo-wrap{flex:0 0 192px;display:flex;align-items:flex-start;justify-content:center}
.rv-club-info .rv-club-logo{width:192px;height:192px;max-width:192px;object-fit:contain;object-position:center;margin:0;flex:0 0 192px}
.rv-info-content{flex:1;min-width:0}
.rv-club-info .rv-info-list{margin:0;padding:0}
.rv-club-info .rv-info-row{display:grid;grid-template-columns:minmax(105px,145px) 1fr;gap:10px;padding:5px 0;border-bottom:0;line-height:1.25}
.rv-club-info .rv-info-row dt{font-weight:700;color:#0e0d0e}
.rv-club-info .rv-info-row dd{margin:0;color:#0e0d0e}
@media(max-width:620px){
  .rv-info-layout{gap:14px}
  .rv-info-logo-wrap{flex-basis:120px}
  .rv-club-info .rv-club-logo{width:120px;height:120px;max-width:120px;flex-basis:120px}
  .rv-club-info .rv-info-row{grid-template-columns:1fr;gap:1px;padding:4px 0}
}


/* v1.5 — uniforme Regiovoetbal-componenten voor alle huidige en toekomstige clubs */
.rv-block{
  box-sizing:border-box;
  width:100%;
  color:#0e0d0e;
  font:inherit;
}
.rv-block h3{
  color:#3faf36;
  margin:0 0 8px;
  font:inherit;
  font-size:1.25em;
  font-weight:700;
  line-height:1.2;
}
.rv-block .rv-muted{
  color:#0e0d0e;
  margin:0 0 10px;
  line-height:1.35;
}
.rv-block .rv-competition{
  color:#0e0d0e;
  margin:0 0 10px;
  font-weight:600;
}
.rv-block .rv-table{
  width:100%;
  border-collapse:collapse;
  color:#0e0d0e;
}
.rv-block .rv-table th{
  color:#3faf36;
  text-align:left;
  font-weight:700;
}
.rv-block .rv-table td{
  color:#0e0d0e;
}
.rv-block .rv-table th,
.rv-block .rv-table td{
  padding:8px 10px;
  vertical-align:top;
}
.rv-block .rv-table tbody tr{
  border-top:1px solid rgba(14,13,14,.10);
}
.rv-block .rv-table-wrap{
  width:100%;
  overflow-x:auto;
}
.rv-block .rv-highlight{
  font-weight:700;
}
.rv-block a{
  color:#0e0d0e;
}
.rv-club-info.rv-block .rv-info-title{
  color:#3faf36;
  margin:0 0 12px;
}
.rv-club-info.rv-block .rv-info-layout{
  display:flex;
  align-items:flex-start;
  gap:22px;
}
.rv-club-info.rv-block .rv-info-logo-wrap{
  flex:0 0 192px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}
.rv-club-info.rv-block .rv-club-logo{
  display:block;
  width:192px;
  height:192px;
  max-width:192px;
  object-fit:contain;
  object-position:center;
  margin:0;
  flex:0 0 192px;
}
.rv-club-info.rv-block .rv-info-content{
  flex:1;
  min-width:0;
}
.rv-club-info.rv-block .rv-info-list{
  margin:0;
  padding:0;
}
.rv-club-info.rv-block .rv-info-row{
  display:grid;
  grid-template-columns:minmax(105px,145px) 1fr;
  gap:10px;
  padding:5px 0;
  border:0;
  line-height:1.25;
}
.rv-club-info.rv-block .rv-info-row dt,
.rv-club-info.rv-block .rv-info-row dd{
  color:#0e0d0e;
}
.rv-club-info.rv-block .rv-info-row dt{
  font-weight:700;
}
.rv-club-info.rv-block .rv-info-row dd{
  margin:0;
}
@media(max-width:620px){
  .rv-club-info.rv-block .rv-info-layout{gap:14px}
  .rv-club-info.rv-block .rv-info-logo-wrap{flex-basis:120px}
  .rv-club-info.rv-block .rv-club-logo{
    width:120px;height:120px;max-width:120px;flex-basis:120px
  }
  .rv-club-info.rv-block .rv-info-row{
    grid-template-columns:1fr;
    gap:1px;
    padding:4px 0;
  }
}

/* v1.7 — los clublogo */
.rv-club-logo-standalone{
  width:150px;
  height:168px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.rv-club-logo-standalone img{
  display:block;
  width:75px;
  height: 84px;
  max-width: 75px;
  max-height: 84px;
  object-fit:contain;
  object-position:center;
  margin:0;
}

.rv-club-logo-standalone a{
  display:block;
  width:150px;
  height:168px;
  line-height:0;
  text-decoration:none;
}

/* v2.2 — uniforme logo-fallback */
.rv-club-logo-standalone .rv-logo-fallback{
  display:flex;
  width:150px;
  height:168px;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:10px;
  color:#3faf36;
  font-weight:700;
  font-size:18px;
  line-height:1.15;
  text-align:center;
  text-transform:uppercase;
}
.rv-club-logo-standalone a .rv-logo-fallback{
  color:#3faf36;
  text-decoration:none;
}
.rv-info-logo-wrap a{
  text-decoration:none;
}
.rv-info-logo-fallback{
  display:flex;
  width:192px;
  min-height:192px;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:12px;
  color:#3faf36;
  font-weight:700;
  font-size:20px;
  line-height:1.15;
  text-align:center;
  text-transform:uppercase;
}
.rv-info-logo-wrap a .rv-info-logo-fallback{
  color:#3faf36;
}
@media(max-width:620px){
  .rv-info-logo-fallback{
    width:120px;
    min-height:120px;
    font-size:16px;
  }
}

/* v2.3 authoritative standalone logo sizing */
.rv-club-logo-standalone{
  width:150px !important;
  height:168px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
.rv-club-logo-standalone a{
  display:flex !important;
  width:150px !important;
  height:168px !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:0 !important;
  text-decoration:none !important;
}
.rv-club-logo-standalone img{
  display:block !important;
  width:150px !important;
  height:168px !important;
  min-width:150px !important;
  min-height:168px !important;
  max-width:150px !important;
  max-height:168px !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
}

/* v2.4 — Regiovoetbal logo carousel */
.rv-logo-slider{
  --rv-visible:5;
  position:relative;
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  box-sizing:border-box;
}
.rv-logo-slider__viewport{width:100%;overflow:hidden}
.rv-logo-slider__track{
  display:flex;
  align-items:center;
  gap:16px;
  transition:transform .35s ease;
  will-change:transform;
}
.rv-logo-slide{
  flex:0 0 calc((100% - (var(--rv-visible) - 1) * 16px) / var(--rv-visible));
  min-width:0;
  height:168px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
.rv-logo-slide a{
  display:flex;
  width:150px;
  height:168px;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  line-height:0;
}
.rv-logo-slide img{
  display:block;
  width:150px !important;
  height:168px !important;
  min-width:150px !important;
  min-height:168px !important;
  max-width:150px !important;
  max-height:168px !important;
  object-fit:contain;
  object-position:center;
  margin:0 !important;
}
.rv-logo-slide .rv-logo-fallback{
  display:flex;
  width:150px;
  height:168px;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:10px;
  color:#3faf36;
  font-weight:700;
  font-size:18px;
  line-height:1.15;
  text-align:center;
  text-transform:uppercase;
}
.rv-logo-slider__arrow{
  flex:0 0 38px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#3faf36;
  color:#fff;
  font-size:28px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
}
.rv-logo-slider__arrow:hover,.rv-logo-slider__arrow:focus{opacity:.88}
@media(max-width:1024px){.rv-logo-slider{--rv-visible:3}}
@media(max-width:620px){
  .rv-logo-slider{--rv-visible:2;gap:6px}
  .rv-logo-slider__track{gap:10px}
  .rv-logo-slider__arrow{flex-basis:32px;width:32px;height:32px;font-size:24px}
  .rv-logo-slide{flex-basis:calc((100% - 10px) / 2)}
}

/* v2.5 — handmatige één-rij logoslider, logo's exact 150 x 168 px */
.rv-logo-slider{
  position:relative !important;
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  box-sizing:border-box !important;
}
.rv-logo-slider__viewport{
  width:100% !important;
  overflow:hidden !important;
}
.rv-logo-slider__track{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:18px !important;
  transition:transform .35s ease !important;
  will-change:transform !important;
}
.rv-logo-slide{
  flex:0 0 150px !important;
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
  height:168px !important;
  min-height:168px !important;
  max-height:168px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
}
.rv-logo-slide a{
  display:flex !important;
  width:150px !important;
  height:168px !important;
  min-width:150px !important;
  min-height:168px !important;
  max-width:150px !important;
  max-height:168px !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  line-height:0 !important;
}
.rv-logo-slide img{
  display:block !important;
  width:150px !important;
  height:168px !important;
  min-width:150px !important;
  min-height:168px !important;
  max-width:150px !important;
  max-height:168px !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
}
.rv-logo-slide .rv-logo-fallback{
  display:flex !important;
  width:150px !important;
  height:168px !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  padding:10px !important;
  color:#3faf36 !important;
  font-weight:700 !important;
  font-size:18px !important;
  line-height:1.15 !important;
  text-align:center !important;
  text-transform:uppercase !important;
}
.rv-logo-slider__arrow{
  flex:0 0 40px !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  border:0 !important;
  border-radius:50% !important;
  background:#3faf36 !important;
  color:#fff !important;
  font-size:28px !important;
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
  padding:0 !important;
  box-shadow:none !important;
}
.rv-logo-slider__arrow:hover,
.rv-logo-slider__arrow:focus{
  background:#3faf36 !important;
  color:#fff !important;
  opacity:.85 !important;
}
@media(max-width:620px){
  .rv-logo-slider{gap:8px !important}
  .rv-logo-slider__track{gap:12px !important}
  .rv-logo-slider__arrow{
    flex-basis:34px !important;
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    font-size:24px !important;
  }
}

/* v2.6 — maximaal 5 logo's desktop, 2 mobiel */
.rv-logo-slider__viewport{
  max-width:822px !important; /* 5 x 150 + 4 x 18px */
}
.rv-logo-slider__track{
  gap:18px !important;
}
.rv-logo-slide{
  flex:0 0 150px !important;
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
}
@media(max-width:620px){
  .rv-logo-slider__viewport{
    max-width:312px !important; /* 2 x 150 + 1 x 12px */
  }
  .rv-logo-slider__track{
    gap:12px !important;
  }
}

/* v2.7 — mobiel: twee logo's volledig zichtbaar */
@media(max-width:620px){
  .rv-logo-slider__viewport{
    max-width:286px !important; /* 2 x 138 + 1 x 10 */
  }
  .rv-logo-slider__track{
    gap:10px !important;
  }
  .rv-logo-slide,
  .rv-logo-slide a{
    flex:0 0 138px !important;
    width:138px !important;
    min-width:138px !important;
    max-width:138px !important;
    height:155px !important;
    min-height:155px !important;
    max-height:155px !important;
  }
  .rv-logo-slide img{
    width:138px !important;
    height:155px !important;
    min-width:138px !important;
    min-height:155px !important;
    max-width:138px !important;
    max-height:155px !important;
  }
  .rv-logo-slide .rv-logo-fallback{
    width:138px !important;
    height:155px !important;
    font-size:16px !important;
  }
}

/* v2.8 — regionale laatste uitslagen */
.rv-regio-results-block .rv-regio-missing{
  color:#0e0d0e;
  font-style:italic;
}
@media(max-width:620px){
  .rv-regio-results-block .rv-table{
    min-width:720px;
  }
}

/* v3.3 — mobiele wedstrijdtabellen zonder horizontaal scrollen */
@media(max-width:620px){
  .rv-block .rv-table-wrap{
    overflow:visible !important;
  }

  .rv-block .rv-fixtures{
    width:100% !important;
    min-width:0 !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
  }

  .rv-block .rv-fixtures thead{
    display:none !important;
  }

  .rv-block .rv-fixtures tbody,
  .rv-block .rv-fixtures tr{
    display:block !important;
    width:100% !important;
  }

  .rv-block .rv-fixtures tr{
    display:grid !important;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "date time"
      "fixture result";
    column-gap:10px;
    row-gap:4px;
    padding:10px 0 !important;
    border-top:1px solid rgba(14,13,14,.10) !important;
  }

  .rv-block .rv-fixtures td{
    display:block !important;
    width:auto !important;
    padding:0 !important;
    border:0 !important;
    color:#0e0d0e !important;
  }

  .rv-block .rv-fixtures .rv-date{
    grid-area:date;
    font-size:14px;
    line-height:1.3;
  }

  .rv-block .rv-fixtures .rv-time{
    grid-area:time;
    font-size:14px;
    line-height:1.3;
    text-align:right;
    white-space:nowrap;
  }

  .rv-block .rv-fixtures .rv-fixture{
    grid-area:fixture;
    min-width:0;
    font-size:15px;
    line-height:1.35;
    overflow-wrap:anywhere;
  }

  .rv-block .rv-fixtures .rv-result{
    grid-area:result;
    align-self:start;
    text-align:right;
    white-space:nowrap;
    font-size:15px;
    line-height:1.35;
    padding-left:8px !important;
  }

  .rv-block .rv-fixtures:not(:has(.rv-result)) tr{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "date time"
      "fixture fixture";
  }
}

/* v3.8 — vaste VoetbalJournaal regiobanner */
.rv-region-banner{
  position:relative;
  width:100%;
  max-width:1200px;
  aspect-ratio:1200 / 675;
  overflow:hidden;
  box-sizing:border-box;
  background:
    linear-gradient(115deg, rgba(4,35,17,.58) 0%, rgba(4,35,17,.12) 33%, rgba(255,255,255,.02) 100%),
    linear-gradient(90deg, #2d6b2e 0%, #397c35 52%, #3f8138 100%);
  isolation:isolate;
}
.rv-region-banner::before{
  content:"";
  position:absolute;
  inset:-10% auto auto -4%;
  width:18%;
  height:75%;
  background:linear-gradient(90deg, rgba(15,67,31,.5), rgba(78,145,66,.38));
  transform:skewX(-23deg);
  z-index:0;
}
.rv-region-banner::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:25%;
  z-index:0;
  background:
    radial-gradient(circle, rgba(76,130,67,.45) 0 18%, transparent 21%) 0 0 / 32px 32px,
    linear-gradient(to bottom, rgba(11,53,24,.05), rgba(2,32,13,.60));
  opacity:.8;
}
.rv-region-banner__title{
  position:absolute;
  z-index:2;
  left:4.8%; right:4.8%; top:25%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  color:#fff;
  text-align:center;
  text-transform:uppercase;
  font-family:Impact, "Arial Narrow", "Arial Black", sans-serif;
  font-weight:900;
  line-height:.98;
}
.rv-region-banner__title span{
  display:block;
  width:100%;
  font-size:clamp(28px, 7.1vw, 102px);
}
.rv-region-banner__vj{
  position:absolute;
  z-index:2;
  left:50%;
  bottom:3.3%;
  transform:translateX(-50%);
  width:24%;
  height:auto;
  max-height:17%;
  object-fit:contain;
}
@media(max-width:620px){
  .rv-region-banner__title{top:23%;left:4%;right:4%}
  .rv-region-banner__title span{font-size:clamp(24px, 7.6vw, 52px)}
  .rv-region-banner__vj{width:30%;bottom:3%}
}

/* v3.9 — theme-safe visuele regiobanner */
.rv-region-banner{display:block !important;position:relative !important;width:100% !important;max-width:1200px !important;aspect-ratio:1200 / 675 !important;overflow:hidden !important;box-sizing:border-box !important;margin:0 !important;}
.rv-region-banner__title{display:flex !important;position:absolute !important;}
.rv-region-banner__vj{display:block !important;position:absolute !important;}

/* v4.0 — regiobanner vaste ontwerpmaat 1200 × 675 px */
.rv-region-banner{
  width:1200px !important;
  height:675px !important;
  max-width:100% !important;
  aspect-ratio:1200 / 675 !important;
  min-height:0 !important;
  box-sizing:border-box !important;
}
/* Op smallere schermen schaalt de volledige 1200×675 compositie proportioneel. */
@supports (aspect-ratio: 1200 / 675){
  .rv-region-banner{
    height:auto !important;
    aspect-ratio:1200 / 675 !important;
  }
}

/* v4.1 — regiobanners als vaste bronafbeeldingen */
.rv-region-banner-image{
  display:block !important;
  width:100% !important;
  max-width:1200px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
}
.rv-region-banner-image img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:1200px !important;
  aspect-ratio:1200 / 675 !important;
  object-fit:contain !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

/* v4.2 — volledige regiobanner klikbaar */
.rv-region-banner-image > a{
  display:block !important;
  width:100% !important;
  max-width:1200px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
  text-decoration:none !important;
}
