/*
 * cassiopeia_dbf — user.css
 * De Betaalfabriek redesign — based on c:\design\index_mockup.html
 */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@300;400;500;600;700&family=Fraunces:opsz,wght@9..144,300..900&family=JetBrains+Mono:wght@400;700&display=swap');
/* Tabler Icons worden als directe <link> geladen in nav.php / seo-head.php */

/* =========================================================
   CSS Variables
   ========================================================= */
:root {
    --dbf-blue-bright: #22B8F0;
    --dbf-blue:        #0B78A1;
    --dbf-navy:        #062F3D;
    --dbf-green:       #5BB75B;
    --dbf-amber:       #F0A62B;
    --dbf-ink:         #101820;
    --dbf-white:       #ffffff;
    --dbf-bg:          #F5F7F5;
    --dbf-border:      #DDE3E2;
    --dbf-muted:       #5C6A6D;
    --dbf-muted-light: #8A8A86;
}

body {
    font-family: 'Archivo', sans-serif;
    color: var(--dbf-ink);
    margin: 0;
}

body.dbf-homepage {
    background: #E9EDEC;
}

/* clip-path helper */
.tag {
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
}

/* =========================================================
   .dbfw — page card wrapper (matches mockup)
   ========================================================= */
.dbfw {
    max-width: 1040px;
    margin: 32px auto;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #D8DDE0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    background-color: var(--dbf-bg);
    background-image:
        repeating-linear-gradient(0deg,   rgba(11,120,161,0.055) 0 1px, transparent 1px 26px),
        repeating-linear-gradient(90deg,  rgba(11,120,161,0.055) 0 1px, transparent 1px 26px);
    font-family: 'Archivo', sans-serif;
    color: var(--dbf-ink);
}

.dbfw a { text-decoration: none; }

/* =========================================================
   ① Countdown bar
   ========================================================= */
.dbf-countdown {
    background: var(--dbf-navy);
    color: #AFE3D8;
    font-size: 12.5px;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    font-family: 'JetBrains Mono', monospace;
}

.dbf-countdown a {
    color: #fff;
    font-weight: 700;
}

.dbf-countdown-tag {
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-amber);
    color: #3A2600;
    font-weight: 700;
    padding: 2px 8px;
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
}

/* =========================================================
   ② Site header
   ========================================================= */
.dbf-site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 32px;
    border-bottom: 1px solid var(--dbf-border);
    background: #fff;
    flex-wrap: wrap;
    gap: 12px;
}

/* Brand / Logo */
.dbf-brand {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.dbf-brand-img {
    width: 140px;
    height: auto;
    display: block;
}

.dbf-brand-name {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    font-weight: 600;
    color: var(--dbf-navy);
}

/* Center navigation */
.dbf-center-nav {
    display: flex;
    gap: 18px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: .05em;
    color: #3A4548;
    flex-wrap: wrap;
}

.dbf-center-nav a {
    color: inherit;
    text-decoration: none;
    transition: color .15s;
}

.dbf-center-nav a:hover,
.dbf-center-nav a.dbf-nav-highlight {
    color: var(--dbf-blue);
    font-weight: 700;
}

/* Actieve pagina in de navigatie */
.dbf-center-nav a.dbf-nav-active {
    color: var(--dbf-blue);
    font-weight: 700;
    position: relative;
}
.dbf-center-nav a.dbf-nav-active::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--dbf-blue);
    border-radius: 1px;
}

/* ─── Dropdown nav item (EENMALIG) ─────────────────────── */
.dbf-nav-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}
.dbf-nav-dd-trigger {
    cursor: pointer;
    color: inherit;
    transition: color .15s;
    user-select: none;
    position: relative;
}
.dbf-nav-dropdown:hover .dbf-nav-dd-trigger,
.dbf-nav-dd-trigger.dbf-nav-active {
    color: var(--dbf-blue);
    font-weight: 700;
}
.dbf-nav-dd-trigger.dbf-nav-active::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--dbf-blue);
    border-radius: 1px;
}
.dbf-nav-dd {
    display: none;
    position: absolute;
    top: 100%;
    left: -14px;
    padding-top: 14px; /* visuele ruimte én hover-brug in één */
    background: transparent;
    filter: drop-shadow(0 6px 16px rgba(0,0,0,.09));
    z-index: 200; /* al gezet hieronder, maar hier herhalen voor zekerheid */
}
.dbf-nav-dd-inner {
    background: #fff;
    border: 1.5px solid var(--dbf-border);
    min-width: 246px;
}
.dbf-nav-dropdown:hover .dbf-nav-dd {
    display: block;
}
.dbf-nav-dd-item {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--dbf-border);
    text-decoration: none;
    color: var(--dbf-ink);
    transition: background .1s;
}
.dbf-nav-dd-item:last-child { border-bottom: none; }
.dbf-nav-dd-item:hover { background: #EFF7FC; }
.dbf-nav-dd-item i {
    font-size: 17px;
    color: var(--dbf-blue);
    margin-top: 1px;
    flex-shrink: 0;
}
.dbf-nav-dd-item strong {
    display: block;
    font-size: 12px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    color: var(--dbf-navy);
    margin-bottom: 2px;
}
.dbf-nav-dd-item small {
    font-size: 11px;
    color: var(--dbf-muted);
    font-family: 'Archivo', sans-serif;
    font-weight: 400;
}
/* ── Homepage eenmalig sub-opties ───────────────────────── */
.hp-eenmalig-opts {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.hp-eenmalig-opt {
    flex: 1;
    border: 1.5px solid var(--dbf-border);
    padding: 10px 12px;
    text-decoration: none;
    color: var(--dbf-ink);
    transition: border-color .15s, background .15s;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.hp-eenmalig-opt:hover {
    border-color: var(--dbf-blue);
    background: #EFF7FC;
}
.hp-eenmalig-opt-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--dbf-navy);
}
.hp-eenmalig-opt-price {
    font-family: 'Fraunces', serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--dbf-navy);
}
.hp-eenmalig-opt-sub {
    font-size: 11px;
    color: var(--dbf-muted);
    line-height: 1.35;
}

/* Right side: INLOGGEN + GRATIS SCAN */
.dbf-header-right {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-shrink: 0;
}

.dbf-login-link {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    color: #3A4548;
    text-decoration: none;
}

.dbf-gratis-scan {
    background: var(--dbf-green);
    color: #0B3B0B;
    padding: 8px 14px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
}

/* =========================================================
   Module wrapper resets (Joomla adds .mod-custom wrappers)
   ========================================================= */
.dbfw .dbf-section .mod-custom,
.dbfw .dbf-section .mod-custom__content,
.dbfw .dbf-section .custom {
    padding: 0 !important;
    margin: 0 !important;
}

/* =========================================================
   ③ Hero section
   ========================================================= */
.dbf-hero {
    /* outer section — no styling, just a container */
}

/* Inner gradient div (inside module 110) */
.dbf-hero-gradient {
    position: relative;
    padding: 48px 32px 30px;
    text-align: center;
    overflow: hidden;
    background: linear-gradient(160deg, var(--dbf-blue-bright) 0%, var(--dbf-blue) 45%, var(--dbf-navy) 100%);
}

.dbf-hero-grid-overlay {
    position: absolute;
    inset: 0;
    opacity: .12;
    background-image:
        repeating-linear-gradient(0deg,  #fff 0 1px, transparent 1px 28px),
        repeating-linear-gradient(90deg, #fff 0 1px, transparent 1px 28px);
    pointer-events: none;
}

.dbf-hero-tag {
    position: relative;
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #3A2600;
    background: var(--dbf-amber);
    padding: 6px 14px;
    margin-bottom: 20px;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
}

.dbf-hero-heading {
    position: relative;
    font-family: 'Fraunces', serif;
    font-size: 40px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.14;
    max-width: 640px;
    margin: 0 auto 14px;
    color: #fff;
}

.dbf-hero-sub {
    position: relative;
    font-size: 14.5px;
    color: #DDF3FB;
    max-width: 480px;
    margin: 0 auto;
}

/* Demo card — overlaps hero by -26px */
.dbf-hero-demo-wrap {
    padding: 0 32px 34px;
    margin-top: -26px;
    position: relative;
    z-index: 2;
}

/* These classes come from the site-grid context — reset on homepage */
.dbfw .dbf-section .mod-custom__content,
.dbfw .dbf-section .custom {
    padding: 0;
    margin: 0;
}

/* =========================================================
   Demo card
   ========================================================= */
.dbf-demo-card {
    background: #fff;
    border: 1px solid var(--dbf-border);
    border-top: 3px solid var(--dbf-blue);
    overflow: hidden;
}

.dbf-demo-tabs {
    display: flex;
    border-bottom: 1px solid var(--dbf-border);
}

.dbf-demo-tab {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    padding: 9px 16px;
    cursor: pointer;
    color: var(--dbf-muted-light);
    border-bottom: 2px solid transparent;
    background: none;
    border-top: none;
    border-left: none;
    border-right: none;
    transition: color .15s;
}

.dbf-demo-tab.active {
    color: var(--dbf-blue);
    border-bottom-color: var(--dbf-blue);
}

/* Amber (IBAN) tab */
.dbf-demo-tab.amber         { color: var(--dbf-amber); }
.dbf-demo-tab.amber:hover   { color: var(--dbf-amber); }
.dbf-demo-tab.amber.active  {
    color: var(--dbf-amber);
    border-bottom-color: var(--dbf-amber);
    background: rgba(240,166,43,0.06);
}

.dbf-demo-panel {
    display: none;
    padding: 26px;
    text-align: center;
}

.dbf-demo-panel.active {
    display: block;
}

.dbf-upload-zone {
    border: 1px dashed #B7C2C4;
    padding: 22px;
    margin-bottom: 14px;
}

.dbf-upload-zone i {
    font-size: 26px;
    color: var(--dbf-blue);
}

.dbf-upload-label {
    font-size: 13.5px;
    font-weight: 700;
    margin-top: 8px;
}

.dbf-upload-formats {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--dbf-muted-light);
    margin-top: 4px;
}

.dbf-demo-btn {
    display: inline-block;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-blue);
    color: #fff;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    font-weight: 700;
    padding: 10px 22px;
    margin-bottom: 12px;
    cursor: pointer;
    text-decoration: none;
}

.dbf-demo-notice {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--dbf-muted);
    margin: 0;
}

.dbf-iban-input {
    max-width: 320px;
    margin: 0 auto 14px;
}

.dbf-iban-input input {
    width: 100%;
    padding: 12px;
    border: 1px solid #B7C2C4;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    text-align: center;
}

/* IBAN input + button row inside the demo card */
.dbf-iban-demo-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.dbf-iban-demo-input {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    padding: 9px 12px;
    border: 1px solid #B7C2C4;
    background: #fff;
    color: var(--dbf-ink);
    width: 200px;
    outline: none;
    text-align: center;
    letter-spacing: .05em;
}
.dbf-iban-demo-input:focus { border-color: var(--dbf-amber); }

/* Amber button variant inside demo card */
.dbf-demo-btn-amber {
    display: inline-block;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-amber);
    color: #3A2600;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    font-weight: 700;
    padding: 10px 18px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}
.dbf-demo-btn-amber:hover { filter: brightness(1.08); }

/* Result display inside demo card */
.dbf-iban-demo-result {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    background: #F0F4F5;
    border: 1px solid var(--dbf-border);
    color: var(--dbf-navy);
    padding: 10px 16px;
    margin: 0 auto 12px;
    max-width: 360px;
    display: none;
    text-align: left;
    white-space: pre;
}

/* =========================================================
   ④ IBAN standalone blok (tussen hero en features)
   ========================================================= */
.dbf-iban-standalone {
    padding: 20px 32px 26px;
    background: var(--dbf-navy);
}

.dbf-iban-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 260px;
}

.dbf-iban-input-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.dbf-iban-sa-input {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    padding: 8px 12px;
    border: 1px solid #2E5A6B;
    background: #0A2530;
    color: #7FD9C4;
    width: 180px;
    outline: none;
    flex-shrink: 0;
    letter-spacing: .05em;
}

.dbf-iban-sa-input::placeholder { color: #3A6B78; }
.dbf-iban-sa-input:focus { border-color: var(--dbf-amber); }

/* =========================================================
   ⑤ Features — station cards
   ========================================================= */
.dbf-features {
    padding: 18px 32px 44px;
}

.dbf-section-divider {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: .14em;
    color: var(--dbf-muted);
    display: flex;
    align-items: center;
    gap: 14px;
    justify-content: center;
    padding: 8px 0 18px;
}

.dbf-section-divider::before,
.dbf-section-divider::after {
    content: '';
    flex: 1;
    max-width: 80px;
    border-top: 1px dashed #B7C2C4;
}

.dbf-grid3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: stretch;
}

.dbf-card {
    background: #fff;
    border: 1px solid var(--dbf-border);
    border-top: 3px solid var(--dbf-blue);
    padding: 20px;
    display: flex;
    flex-direction: column;
    transition: transform .18s ease, box-shadow .18s ease;
    position: relative;
}

.dbf-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(6,47,61,0.10);
}

.dbf-card-green { border-top-color: var(--dbf-green); }
.dbf-card-navy  { border-top-color: var(--dbf-navy); }
.dbf-card-amber { border-top-color: var(--dbf-amber); }

.dbf-stlabel {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    letter-spacing: .12em;
    color: var(--dbf-blue);
    font-weight: 700;
}

.dbf-stlabel.green { color: var(--dbf-green); }
.dbf-stlabel.navy  { color: var(--dbf-navy); }
.dbf-stlabel.amber { color: #B07800; }

.dbf-card-title {
    font-family: 'Fraunces', serif;
    font-size: 18px;
    font-weight: 600;
    margin: 8px 0;
    color: var(--dbf-navy);
}

.dbf-card-body {
    font-size: 13px;
    color: var(--dbf-muted);
    line-height: 1.55;
    margin-bottom: 14px;
}

.dbf-card-badge {
    display: inline-block;
    align-self: flex-start;
    background: #E6F6FD;
    color: var(--dbf-blue);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.dbf-card-new-badge {
    position: absolute;
    top: -11px;
    left: 20px;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-blue);
    color: #ffffff;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    font-weight: 700;
    padding: 3px 9px;
    text-transform: uppercase;
}

/* MEEST GEKOZEN badge — amber, same clip-path shape */
.dbf-card-featured-badge {
    position: absolute;
    top: -11px;
    left: 20px;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-amber);
    color: #3A2600;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    font-weight: 700;
    padding: 3px 9px;
    text-transform: uppercase;
}

/* Featured card — elevated, stronger shadow, amber accent */
.dbf-card.dbf-card-featured {
    transform: translateY(-8px);
    box-shadow: 0 16px 40px rgba(6,47,61,0.18);
    border-top-width: 4px;
    border-top-color: var(--dbf-amber);
    z-index: 1;
}
.dbf-card.dbf-card-featured .dbf-card-btn.green {
    background: var(--dbf-amber);
    color: #3A2600;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
}
.dbf-card.dbf-card-featured .dbf-card-btn.green:hover {
    background: #d4911f;
}

.dbf-card-footer {
    margin-top: auto;
}

.dbf-price-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--dbf-muted-light);
    margin-bottom: 4px;
    text-transform: uppercase;
}

.dbf-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 21px;
    font-weight: 700;
    margin-bottom: 16px;
}

.dbf-price .per {
    font-size: 12px;
    color: var(--dbf-muted-light);
}

.dbf-card-btn {
    display: block;
    text-align: center;
    padding: 8px;
    border: 1px solid var(--dbf-blue);
    color: var(--dbf-blue);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s, color .15s;
    text-transform: uppercase;
}

.dbf-card-btn:hover { background: var(--dbf-blue); color: #fff; }

.dbf-card-btn.green {
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-green);
    color: #0B3B0B;
    border: none;
    text-align: center;
    padding: 9px;
}

.dbf-card-btn.green:hover { filter: brightness(1.1); }

.dbf-card-btn.navy {
    border-color: var(--dbf-navy);
    color: var(--dbf-navy);
}

.dbf-card-btn.navy:hover { background: var(--dbf-navy); color: #fff; }

/* =========================================================
   ⑤ Trust bar (stats) — after station cards
   ========================================================= */
.dbf-stats {
    padding: 20px 32px;
    border-top: 1px solid var(--dbf-border);
    border-bottom: 1px solid var(--dbf-border);
    background: #fff;
    text-align: center;
}

.dbf-trust-text {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: .03em;
    color: var(--dbf-muted-light);
    margin: 0;
}

.dbf-trust-green {
    color: var(--dbf-green);
}

/* =========================================================
   ⑥ Hoe het werkt
   ========================================================= */
.dbf-howto {
    padding: 36px 32px 30px;
    background: var(--dbf-bg);
}

.dbf-howto-title {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 24px;
    color: var(--dbf-navy);
}

.dbf-howto-step {
    text-align: center;
}

.dbf-howto-step-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--dbf-blue);
    margin-bottom: 8px;
}

.dbf-howto-step-title {
    font-size: 13.5px;
    font-weight: 600;
    margin-bottom: 4px;
}

.dbf-howto-step-desc {
    font-size: 12px;
    color: var(--dbf-muted-light);
}

/* =========================================================
   ⑦ IBAN-API block (CTA)
   ========================================================= */
.dbf-cta {
    padding: 26px 32px;
    background: var(--dbf-navy);
}

.dbf-api-block {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    border: 1px dashed #2E5A6B;
    padding: 18px 22px;
}

.dbf-api-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    letter-spacing: .1em;
    color: var(--dbf-amber);
    margin-bottom: 6px;
    text-transform: uppercase;
}

.dbf-api-title {
    font-family: 'Fraunces', serif;
    font-size: 17px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 6px;
}

.dbf-api-desc {
    font-size: 12.5px;
    color: #AFE3D8;
    line-height: 1.5;
    max-width: 420px;
    margin: 0;
}

.dbf-api-code {
    font-family: 'JetBrains Mono', monospace;
    background: #0A2530;
    border: 1px solid #2E5A6B;
    color: #7FD9C4;
    font-size: 11px;
    padding: 12px 16px;
    white-space: nowrap;
    line-height: 1.7;
}

.dbf-api-btn {
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    background: var(--dbf-amber);
    color: #3A2600;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    padding: 9px 16px;
    white-space: nowrap;
    text-decoration: none;
    text-transform: uppercase;
}

/* =========================================================
   ⑧ Footer
   ========================================================= */

/* ── Outer wrapper ─────────────────────────────────────── */
.dbf-footer-full {
    background: var(--dbf-navy);
    color: #AFE3D8;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
}

/* ── Brand bar ─────────────────────────────────────────── */
.dbf-footer-brand-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 40px 20px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    flex-wrap: wrap;
}
.dbf-footer-brand-left {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}
.dbf-footer-brand-name {
    font-family: 'Fraunces', serif;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
}
.dbf-footer-brand-tag {
    font-size: 10.5px;
    opacity: .65;
    white-space: nowrap;
}
.dbf-footer-cta {
    display: inline-block;
    padding: 7px 18px;
    background: var(--dbf-blue);
    color: #fff !important;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    transition: opacity .15s;
}
.dbf-footer-cta:hover { opacity: .85; }

/* ── 4 kolommen ────────────────────────────────────────── */
.dbf-footer-cols {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding: 28px 40px 0;
    border-bottom: 1px solid rgba(255,255,255,.10);
}
.dbf-footer-col {
    padding: 0 20px 28px 0;
}
.dbf-footer-col:first-child { padding-left: 0; }
.dbf-footer-col:last-child  { padding-right: 0; }

.dbf-footer-heading {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
    letter-spacing: .08em;
    margin-bottom: 10px;
}

.dbf-footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dbf-footer-col ul li {
    margin-bottom: 8px;
    line-height: 1.3;
}
.dbf-footer-col a {
    color: #AFE3D8;
    text-decoration: none;
    font-size: 11px;
    transition: color .15s;
}
.dbf-footer-col a:hover { color: #fff; }

.dbf-footer-sub {
    display: block;
    font-size: 9.5px;
    opacity: .55;
    line-height: 1.4;
    margin-top: 1px;
}

/* ── Badges ────────────────────────────────────────────── */
.dbf-footer-badge {
    display: inline-block;
    font-size: 8.5px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    vertical-align: middle;
    margin-left: 5px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.dbf-badge-gratis {
    background: rgba(0, 180, 130, .25);
    color: #6EDFC0;
}
.dbf-badge-nieuw {
    background: rgba(80, 140, 255, .30);
    color: #93BCFF;
}

/* ── Collapsible "Meer artikelen" ──────────────────────── */
details.dbf-footer-more {
    margin-top: 4px;
}
details.dbf-footer-more summary {
    cursor: pointer;
    font-size: 10.5px;
    color: #7BBFB5;
    list-style: none;
    user-select: none;
    margin-bottom: 6px;
}
details.dbf-footer-more summary::-webkit-details-marker { display: none; }
details.dbf-footer-more summary::before {
    content: '+ ';
    font-weight: 700;
}
details.dbf-footer-more[open] summary::before { content: '− '; }

details.dbf-footer-more ul {
    padding-left: 12px;
    margin-top: 4px;
}
details.dbf-footer-more ul li {
    margin-bottom: 5px;
}

.dbf-footer-all-link {
    display: inline-block;
    margin-top: 10px;
    font-size: 10.5px;
    color: #7BBFB5 !important;
    text-decoration: none !important;
}
.dbf-footer-all-link:hover { color: #fff !important; }

/* ── Utility strip ─────────────────────────────────────── */
.dbf-footer-strip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 40px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    flex-wrap: wrap;
}
.dbf-footer-strip a {
    color: #7BBFB5;
    text-decoration: none;
    font-size: 10.5px;
    transition: color .15s;
}
.dbf-footer-strip a:hover { color: #fff; }
.dbf-strip-sep {
    opacity: .35;
    font-size: 10px;
}

/* ── Bottom bar ────────────────────────────────────────── */
.dbf-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 40px;
    font-size: 10px;
    opacity: .55;
    flex-wrap: wrap;
    gap: 8px;
}
.dbf-bottom-legal a {
    color: inherit;
    text-decoration: none;
}
.dbf-bottom-legal a:hover { opacity: 1; color: #AFE3D8; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 900px) {
    .dbf-footer-cols {
        grid-template-columns: repeat(2, 1fr);
        padding: 20px 24px 0;
    }
    .dbf-footer-brand-bar,
    .dbf-footer-strip,
    .dbf-footer-bottom {
        padding-left: 24px;
        padding-right: 24px;
    }
}
@media (max-width: 540px) {
    .dbf-footer-cols {
        grid-template-columns: 1fr;
    }
    .dbf-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}

/* =========================================================
   Inner page header (non-homepage)
   ========================================================= */
.site .header.container-header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 32px;
    background: #fff;
    border-bottom: 1px solid var(--dbf-border);
    padding: 14px 28px;
}

.site .header .grid-child { display: contents; }
.site .header .navbar-brand { flex-shrink: 0; }
.site .header .brand-logo {
    display: flex;
    align-items: center;
    gap: 9px;
    text-decoration: none;
}
.site .header .container-nav { flex: 1; }
.site .header .container-nav a {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: .05em;
    color: #3A4548;
    text-transform: uppercase;
    text-decoration: none;
}
.site .header .container-nav a:hover { color: var(--dbf-blue); }

/* =========================================================
   Inner page content wrapper
   ========================================================= */
.dbf-inner-wrap {
    padding: 44px 36px 52px;
    min-height: 340px;
}

/* ---- Joomla login form (com_users view=login) ---- */
.dbf-inner-wrap .login {
    max-width: 400px;
    margin: 0 auto;
}
.dbf-inner-wrap .login h2,
.dbf-inner-wrap .login .page-header h1 {
    font-family: 'Fraunces', serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--dbf-navy);
    margin-bottom: 24px;
    border: none;
    padding: 0;
}
.dbf-inner-wrap .login .control-group {
    margin-bottom: 16px;
}
.dbf-inner-wrap .login label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--dbf-navy);
    margin-bottom: 5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: 'JetBrains Mono', monospace;
}
.dbf-inner-wrap .login input[type="text"],
.dbf-inner-wrap .login input[type="password"],
.dbf-inner-wrap .login input[type="email"] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--dbf-border);
    background: #fff;
    font-family: 'Archivo', sans-serif;
    font-size: 14px;
    color: var(--dbf-ink);
    box-sizing: border-box;
    outline: none;
}
.dbf-inner-wrap .login input[type="text"]:focus,
.dbf-inner-wrap .login input[type="password"]:focus {
    border-color: var(--dbf-blue);
}
.dbf-inner-wrap .login .btn,
.dbf-inner-wrap .login button[type="submit"] {
    background: var(--dbf-navy);
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    font-weight: 700;
    padding: 12px 24px;
    border: none;
    cursor: pointer;
    width: 100%;
    margin-top: 8px;
    letter-spacing: 0.04em;
}
.dbf-inner-wrap .login .btn:hover,
.dbf-inner-wrap .login button[type="submit"]:hover {
    background: var(--dbf-blue);
}
.dbf-inner-wrap .login .checkbox label {
    text-transform: none;
    font-family: 'Archivo', sans-serif;
    font-size: 13px;
    letter-spacing: 0;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 6px;
}
.dbf-inner-wrap .login .forget {
    margin-top: 16px;
    text-align: center;
}
.dbf-inner-wrap .login .forget a {
    font-size: 13px;
    color: var(--dbf-blue);
    text-decoration: none;
}
.dbf-inner-wrap .alert {
    padding: 12px 16px;
    border-left: 4px solid var(--dbf-amber);
    background: rgba(240,166,43,0.08);
    font-size: 13.5px;
    margin-bottom: 20px;
}
.dbf-inner-wrap .alert-error,
.dbf-inner-wrap .alert-danger {
    border-left-color: #C0392B;
    background: rgba(192,57,43,0.07);
}

/* =========================================================
   SIDEBAR NAVIGATIE (ingelogde gebruikers — optie C)
   ========================================================= */

/* Bredere wrapper + grid layout; overflow:clip knipt de border-radius
   maar creëert géén scroll-container → position:sticky werkt binnen */
.dbfw--sidebar {
    max-width: 1200px;
    margin-top: 0;
    margin-bottom: 0;
    border-radius: 0;
    overflow: clip;
    display: grid;
    grid-template-columns: 210px 1fr;
    align-items: start;
}

/* ── Lichte sidebar ── */
.dbf-sidebar {
    background: #fff;
    display: flex;
    flex-direction: column;
    height: 100vh;
    position: sticky;
    top: 0;
    overflow: hidden;
    border-right: 1px solid var(--dbf-border);
}

/* Logo bovenin — zelfde hoogte als .dbf-countdown rechts */
.dbf-sb-logo {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0 16px;
    min-height: 52px;
    border-bottom: 1px solid var(--dbf-border);
    text-decoration: none;
    flex-shrink: 0;
    box-sizing: border-box;
}

.dbf-sb-logo-img {
    width: 148px;
    height: auto;
    display: block;
}

/* Navigatieblok */
.dbf-sb-nav {
    flex: 1;
    padding: 8px 0 12px;
    overflow-y: auto;
}

/* Sectie-label */
.dbf-sb-section {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--dbf-muted-light);
    padding: 16px 16px 5px;
    text-transform: uppercase;
}

/* Nav-item */
.dbf-sb-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 16px;
    color: #3A4548;
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .02em;
    transition: background .12s, color .12s;
    border-left: 3px solid transparent;
}

.dbf-sb-item i {
    font-size: 15px;
    flex-shrink: 0;
    color: var(--dbf-muted-light);
    transition: color .12s;
}

.dbf-sb-item:hover {
    background: rgba(11,120,161,0.07);
    color: var(--dbf-blue);
}

.dbf-sb-item:hover i { color: var(--dbf-blue); }

.dbf-sb-item.active {
    background: rgba(11,120,161,0.09);
    color: var(--dbf-blue);
    border-left-color: var(--dbf-blue);
    font-weight: 700;
}

.dbf-sb-item.active i { color: var(--dbf-blue); }

/* Onderkant: gebruiker + uitloggen */
.dbf-sb-bottom {
    border-top: 1px solid var(--dbf-border);
    padding: 12px 16px;
    flex-shrink: 0;
}

.dbf-sb-user {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--dbf-muted);
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dbf-sb-logout {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--dbf-muted);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    transition: color .12s;
}

.dbf-sb-logout:hover { color: var(--dbf-ink); }

.dbf-sb-version {
    margin-top: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    color: var(--dbf-muted-light);
    letter-spacing: .04em;
}

/* Countdown rechts: zelfde hoogte als logobox links */
.dbfw--sidebar .dbf-countdown {
    min-height: 52px;
    box-sizing: border-box;
}

/* ── Hoofdinhoud rechts van sidebar ── */
.dbf-main {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-width: 0;        /* grid-item mag krimpen tot kolomgrens */
    overflow-x: auto;   /* horizontaal scrollen als content breder is */
    background-color: var(--dbf-bg);
    background-image:
        repeating-linear-gradient(0deg,   rgba(11,120,161,0.055) 0 1px, transparent 1px 26px),
        repeating-linear-gradient(90deg,  rgba(11,120,161,0.055) 0 1px, transparent 1px 26px);
}

/* Compacte footer onderaan de main-kolom */
.dbf-sb-footer {
    margin-top: auto;
    padding: 12px 28px;
    border-top: 1px solid var(--dbf-border);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: var(--dbf-muted-light);
}
