/* =====================================================================
   AfD Kreisverband Ems-Vechte – Ergänzungen zum Grund-Theme (main.css)
   Karte mit Nachbarkreisen, Seitenkopf mit Logo, Ansprechpartner, Bankdaten.
   ===================================================================== */

/* ---------- Karte Weser-Ems ---------- */
.afd-map--ev .afd-map__ctx{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.28);stroke-width:1;stroke-linejoin:round;opacity:0;animation:afd-fade 1.6s ease .1s forwards}
.afd-map--ev .afd-map__label{opacity:0;animation:afd-ev-pop .8s var(--afd-ease) calc(2.1s + var(--l,0) * .25s) forwards}
.afd-map--ev .afd-map__label circle{fill:#fff}
.afd-map--ev .afd-map__label .afd-map__pulse{fill:none;stroke:#fff;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:afd-ev-pulse 2.4s ease-out calc(2.8s + var(--l,0) * .4s) infinite}
.afd-map--ev .afd-map__label text{font:700 19px/1 "Bitter",Georgia,serif;fill:#fff;paint-order:stroke;stroke:rgba(0,40,70,.55);stroke-width:4px;stroke-linejoin:round;letter-spacing:.01em}
.js .afd-map--ev:not(.is-in) .afd-map__ctx,.js .afd-map--ev:not(.is-in) .afd-map__label,.js .afd-map--ev:not(.is-in) .afd-map__pulse{animation-play-state:paused}
@keyframes afd-ev-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.afd-map--ev .afd-map__label{transform-box:fill-box}
@keyframes afd-ev-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(4.2);opacity:0}}
.afd-hero__map{max-width:500px}
@media (max-width:1024px){.afd-hero__map{max-width:320px}.afd-map--ev .afd-map__label text{font-size:24px}}
@media (max-width:767px){.afd-hero__map{max-width:280px}}

/* ---------- Seitenkopf mit Logo / Buttons / Social ---------- */
.afd-page-hero__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.afd-page-hero--aside .afd-page-hero__inner{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.afd-page-hero .afd-page-hero__aside{display:flex;justify-content:center}
.afd-page-hero__img{width:100%;max-width:420px;height:auto;filter:drop-shadow(0 24px 40px rgba(0,20,50,.35))}
.afd-page-hero .afd-page-hero__extra{margin-top:clamp(24px,3vw,36px);display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.afd-page-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.afd-page-hero__extra .afd-social{margin:0}
.afd-social--light a{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28)}
.afd-social--light a:hover{background:#fff;color:var(--afd-blue-600)}
@media (max-width:860px){
	.afd-page-hero--aside .afd-page-hero__inner{grid-template-columns:minmax(0,1fr)}
	.afd-page-hero .afd-page-hero__aside{order:-1;justify-content:flex-start}
	.afd-page-hero__img{max-width:220px}
}

/* ---------- Ansprechpartner ---------- */
.afd-contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:22px}
.afd-contacts__item{position:relative;padding:28px 28px 26px;border-radius:var(--afd-radius);background:#fff;border:1px solid var(--afd-line);overflow:hidden;isolation:isolate;transition:transform .45s var(--afd-ease),box-shadow .45s var(--afd-ease),border-color .3s}
.afd-contacts__item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--afd-grad-sky);transform:scaleY(.25);transform-origin:top;transition:transform .5s var(--afd-ease)}
.afd-contacts__item:hover{transform:translateY(-4px);box-shadow:var(--afd-shadow);border-color:transparent}
.afd-contacts__item:hover::before{transform:none}
.afd-section--soft .afd-contacts__item{border-color:transparent;box-shadow:var(--afd-shadow-sm)}
.afd-contacts__kicker{margin:0 0 .35em;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--afd-sky)}
.afd-contacts__title{font-size:clamp(1.15rem,1.4vw,1.3rem);margin:0 0 .8em}
.afd-contacts ul{list-style:none;margin:0 0 .6em;padding:0;display:grid;gap:.45em}
.afd-contacts li{display:flex;align-items:flex-start;gap:.6em;font-size:.97rem;min-width:0}
.afd-contacts li .afd-icon{width:18px;flex:none;margin-top:.25em;color:var(--afd-blue-600)}
.afd-contacts li a{color:var(--afd-ink);text-decoration:none;overflow-wrap:anywhere}
.afd-contacts li a:hover{color:var(--afd-blue-600);text-decoration:underline}

/* ---------- Bankverbindung / Infobox ---------- */
.afd-bank{position:relative;margin:1.6em 0;padding:clamp(24px,3vw,34px);border-radius:var(--afd-radius);background:var(--afd-grad);color:#fff;overflow:hidden;isolation:isolate;box-shadow:var(--afd-shadow)}
.afd-bank::after{content:"";position:absolute;right:-80px;top:-80px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(127,212,245,.45),transparent 70%);z-index:-1}
.afd-bank h3,.afd-bank h4{color:#fff;margin:0 0 .8em;font-size:1.15rem}
.afd-bank dl{display:grid;grid-template-columns:auto 1fr;gap:.5em 1.4em;margin:0}
.afd-bank dt{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.75;align-self:center}
.afd-bank dd{margin:0;font-weight:700;font-size:1.08rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.afd-bank a{color:#fff}
@media (max-width:480px){.afd-bank dl{grid-template-columns:1fr;gap:.15em}.afd-bank dd{margin-bottom:.6em}}

/* ---------- Textbausteine ---------- */
.afd-btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4em}
.afd-prose .afd-btn{text-decoration:none}
.afd-note{font-size:.92rem;color:var(--afd-muted);border-left:3px solid var(--afd-sky);padding-left:1em}

/* ---------- Beiträge, die mit Elementor gebaut wurden ---------- */
.afd-prose .elementor-section-wrap,.afd-prose .e-con,.afd-prose .elementor-element{max-width:100%}
.afd-prose .e-con{--padding-left:0px;--padding-right:0px;padding-left:0!important;padding-right:0!important}
.afd-prose .elementor-heading-title{color:var(--afd-navy);font-family:"Bitter",Georgia,serif}
.afd-prose .elementor-widget-image img{border-radius:var(--afd-radius-sm)}

/* ---------- Kleine Bildschirme: nichts darf seitlich überstehen ---------- */
@media (max-width:420px){
	.afd-page-hero__title{font-size:clamp(2rem,10vw,2.5rem)}
	.afd-page-hero__actions .afd-btn{width:100%;justify-content:center}
}

/* ---------- Karten-Raster: unvollständige letzte Reihe zentriert ---------- */
.afd-topics{display:flex;flex-wrap:wrap;justify-content:center}
.afd-topics>.afd-topic{flex:0 1 calc((100% - (var(--cols,3) - 1) * 22px) / var(--cols,3));min-width:0}
.afd-bank{margin-top:0}
.e-con.afd-cols:not(.afd-cols--top) > .e-con-inner > .e-con{align-self:stretch;justify-content:center}

/* ---------- Fotos füllen ihre Rahmen immer vollständig ---------- */
.afd-member__media > img.afd-member__img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover;object-position:50% 22%}
.afd-post__media{position:relative}
.afd-post__media > img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover}

/* ---------- Untergruppe in einem Personen-Abschnitt (z. B. Beisitzer) ---------- */
.afd-prose .afd-kicker.afd-subgroup{margin:clamp(36px,4vw,56px) 0 clamp(18px,2vw,26px)}
.e-con .elementor-widget-afd-members + .elementor-widget-afd-members{margin-top:22px!important}
@media (max-width:640px){.e-con .elementor-widget-afd-members + .elementor-widget-afd-members{margin-top:14px!important}}

/* ---------- Seitenkopf: kleinere zweite Zeile ---------- */
.afd-page-hero__title .afd-page-hero__sub{display:block;margin-top:.3em;font-size:.48em;line-height:1.15;letter-spacing:-.01em}
.afd-page-hero__title{max-width:20ch}

/* ---------- Social-Buttons mit Kürzel (z. B. zwei Facebook-Seiten) ---------- */
.afd-social a.has-tag{width:auto;min-width:44px;padding:0 15px 0 13px;display:inline-flex;align-items:center;gap:7px;border-radius:999px}
.afd-social__tag{font-weight:800;font-size:.8rem;letter-spacing:.08em;line-height:1}
