/* ============================================================
   Gedeelde footer-engine — ÉÉN bron voor ALLE thema's
   (_local_portal-thema's + broodjevanjan). Gescoped op de footer-classes zelf
   (thema-onafhankelijk, geen body[class*="site-theme-"]-prefix nodig). Kleuren
   komen uit de inline --footer-* variabelen in themes/_local_portal/partials/footer.php,
   met --local-* fallbacks voor thema's zonder die tokens.
   ============================================================ */
.site-footer-builder-v14516{
    width:100%;
    padding:0;
    border-top:var(--footer-border-top-width,1px) solid var(--footer-border-top-color,var(--footer-border));
    background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.08)),var(--footer-bg);
    color:var(--footer-text);
    box-shadow:0 -18px 42px rgba(5,13,28,.14);
}
.site-footer-builder-v14516 .site-footer-inner-v10{
    width:100%;
    max-width:none;
    padding:0 clamp(18px,3vw,42px) 18px;
}
/* Volle-breedte grid: fr-tracks (via --footer-cols uit de template) rekken uit om de volle
   breedte te vullen. Het aantal tracks volgt het aantal actieve blokken, dus een afwezig
   blok laat geen lege track/gat achter. Mobiel schakelt terug naar één kolom. */
.site-footer-columns-v20{
    display:grid;
    grid-template-columns:var(--footer-cols,1fr);
    align-items:start;
    gap:clamp(24px,3vw,56px);
    padding:26px 0 20px;
    border-bottom:1px solid var(--footer-border);
}
.site-footer-col-v20{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:10px;
}
.site-footer-col-about-v20 .site-footer-logo-v14516{margin-bottom:2px}
/* Merk-rij: logo + titel op één regel, verticaal gecentreerd (titel naast het logo). */
.site-footer-brand-row-v20{display:flex;align-items:center;gap:14px}
.site-footer-brand-row-v20 .site-footer-logo-v14516{flex:0 0 auto;margin-bottom:0}
.site-footer-brand-row-v20 h2{margin:0}
.site-footer-logo-v14516{
    width:var(--footer-logo-size,58px);
    height:var(--footer-logo-size,58px);
    display:grid;
    place-items:center;
    padding:0;
    overflow:hidden;
    border:1px solid var(--footer-logo-frame-color,var(--footer-border));
    border-radius:14px;
    background:rgba(255,255,255,.08);
    box-shadow:none;
}
/* Logo-kader uit (Content → Footer): geen rand, geen vlak en geen thema-hoekjes —
   het logo staat vrij. !important + pseudo-verberging zodat het ook thema's met
   eigen footer-logo-styling (bv. hogerheide's blueprint-hoekjes) verslaat. */
.site-footer-logo-noframe{border:0!important;background:transparent!important}
.site-footer-logo-noframe::before,.site-footer-logo-noframe::after{display:none!important}
.site-footer-logo-v14516 strong{color:var(--footer-link);font-size:1.9rem;font-weight:950;line-height:1}
.site-footer-logo-v14516 img{width:100%;height:100%;object-fit:contain;transform-origin:center;will-change:transform}
.site-footer-builder-v14516 h2{margin:0 0 8px;color:var(--footer-text);font-size:.96rem;font-weight:850}
.site-footer-builder-v14516 p{margin:0;color:color-mix(in srgb,var(--footer-text) 78%,transparent);line-height:1.62}
/* Merk- en nieuwsbrieftekst: begrensde leesbreedte. */
.site-footer-col-about-v20 p,.site-footer-col-newsletter-v20 p{max-width:35ch}
/* Informatie-kolom: op desktop 2 kolommen (column-major, break-inside:avoid). */
.site-footer-legal-items-v20{columns:2;column-gap:28px;font-size:.9rem}
.site-footer-legal-items-v20 a,.site-footer-legal-items-v20 span{display:block;break-inside:avoid;margin-bottom:8px}
.site-footer-legal-v1030 a,.site-footer-legal-v1030 span,.site-footer-bottom-v14516 a{color:var(--footer-link);text-decoration:none;font-weight:760}
.site-footer-legal-v1030 a:hover,.site-footer-bottom-v14516 a:hover{color:var(--footer-link-hover);text-decoration:underline}
/* Bottom-bar: dunne scheiding erboven; copyright links, credit rechts. */
.site-footer-bottom-v14516{
    display:flex!important;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between!important;
    gap:6px 18px;
    margin:16px 0 0!important;
    padding-top:0!important;
    border-top:0!important;
    color:color-mix(in srgb,var(--footer-text) 72%,transparent);
    font-size:.88rem;
}
.site-footer-bottom-v14516 p{flex:0 1 auto;margin:0}
.footer-heart{color:var(--footer-heart,#e5342f)!important;font-size:1.08em;font-weight:950}
/* Nieuwsbrief-kolom: titel, tekst en invoerrij. */
.site-footer-newsletter-v20{display:flex;flex-direction:column;gap:8px}
.site-footer-newsletter-v20 strong{color:var(--footer-text);font-size:.96rem;font-weight:850}
.site-footer-newsletter-row-v20{display:flex;gap:8px;max-width:360px}
.site-footer-newsletter-row-v20 input{flex:1 1 auto;min-width:0;min-height:44px;border-radius:12px}
.site-footer-newsletter-row-v20 button{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 16px;
    white-space:nowrap;
    background:#2563eb;
    color:#fff;
    border:1px solid #2563eb;
    border-radius:12px;
    min-height:44px;
    font-weight:800;
}
.site-footer-newsletter-row-v20 button:hover{background:#1e40af;border-color:#1e40af}
/* Volg ons: icoon-knoppen als tap-doel (≥44px). Merkkleuren die soepel in-/uitfaden
   (icoon toont in rust al zijn merktint; bij hover/focus vult de tegel met de merkkleur
   + een zachte gloed en tilt hij licht op). --brand komt per netwerk hieronder. */
.site-footer-social-v20{display:flex;flex-wrap:wrap;gap:10px}
.site-footer-social-v20 a{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:12px;
    border:1px solid color-mix(in srgb,var(--footer-border) 80%,white 20%);
    background:rgba(255,255,255,.08);
    color:var(--brand,var(--footer-link));
    font-size:1.15rem;
    text-decoration:none;
    transition:background .28s ease,border-color .28s ease,color .28s ease,transform .28s ease,box-shadow .28s ease;
}
.site-footer-social-v20 a:hover,.site-footer-social-v20 a:focus-visible{
    color:#fff;
    border-color:var(--brand,#2563eb);
    background:var(--brand-bg,var(--brand,#2563eb));
    transform:translateY(-3px);
    box-shadow:0 10px 22px var(--brand-glow,rgba(37,99,235,.45));
}
.site-footer-social-facebook{--brand:#1877f2;--brand-glow:rgba(24,119,242,.45)}
.site-footer-social-instagram{--brand:#dc2743;--brand-bg:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);--brand-glow:rgba(220,39,67,.45)}
.site-footer-social-youtube{--brand:#ff0000;--brand-glow:rgba(255,0,0,.4)}
.site-footer-social-whatsapp{--brand:#25d366;--brand-glow:rgba(37,211,102,.45)}
/* Merktint moet winnen van de generieke footer-link-kleur (sommige thema's zetten die
   met !important op elke footer-anchor); vandaar deze gerichte, hoger-specifieke override. */
.site-footer-builder-v14516 .site-footer-social-v20 a{color:var(--brand,var(--footer-link))!important}
.site-footer-builder-v14516 .site-footer-social-v20 a:hover,.site-footer-builder-v14516 .site-footer-social-v20 a:focus-visible{color:#fff!important}
@media(prefers-reduced-motion:reduce){.site-footer-social-v20 a{transition:none}.site-footer-social-v20 a:hover,.site-footer-social-v20 a:focus-visible{transform:none}}
/* Contact-links. */
.site-footer-contact-v20{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.site-footer-contact-v20 a{display:inline-flex;align-items:center;gap:8px;min-height:32px;color:var(--footer-link);text-decoration:none;font-weight:700;font-size:.9rem}
.site-footer-contact-v20 a:hover{color:var(--footer-link-hover)}
/* "Volg ons"/"Informatie"-label. */
.site-footer-connect-label-v20{display:block;font-size:.75rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--footer-link);margin-bottom:2px;opacity:.9}
/* Uitlijning (footer-scoped zodat 't ook zonder default/theme.css werkt, bv. broodjevanjan). */
.site-footer-builder-v14516 .footer-align-left{text-align:left}
.site-footer-builder-v14516 .footer-align-center{text-align:center}
.site-footer-builder-v14516 .footer-align-right{text-align:right}
/* Mobiel: één kolom, pills — goedgekeurde layout, ongewijzigd. */
@media(max-width:700px){
    .site-footer-columns-v20{display:flex;flex-direction:column;gap:22px;padding:20px 0 16px}
    .site-footer-col-v20{width:100%}
    .site-footer-col-about-v20 p,.site-footer-col-newsletter-v20 p{max-width:none}
    .site-footer-newsletter-row-v20{flex-direction:column;max-width:none}
    .site-footer-newsletter-row-v20 input,.site-footer-newsletter-row-v20 button{width:100%}
    .site-footer-legal-items-v20{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}
    .site-footer-legal-items-v20 a,.site-footer-legal-items-v20 span{
        display:inline-flex;
        align-items:center;
        min-height:44px;
        margin-bottom:0;
        padding:0 15px;
        border-radius:999px;
        border:1px solid color-mix(in srgb,var(--footer-border) 82%,white 18%);
        background:rgba(255,255,255,.06);
    }
    .site-footer-contact-v20 a{min-height:44px}
    .site-footer-bottom-v14516{flex-direction:column;align-items:flex-start;justify-content:flex-start!important;gap:4px;text-align:left;font-size:.82rem}
    .site-footer-bottom-v14516 p{width:100%}
    .site-footer-builder-v14516 .footer-align-right{text-align:left}
}
