/* ============================================================================
   FFC Medical Network Directory — Frontend Styles (v2.2)
   ============================================================================
   Defensive: critical layout (display, grid-template, flex) uses !important
   to defeat theme overrides. All classes prefixed `.ffc-md-`.
   ============================================================================ */

/* ─── ROOT RESET ─────────────────────────────────────────────────────────── */
.ffc-md-directory,
.ffc-md-directory *,
.ffc-md-directory *::before,
.ffc-md-directory *::after {
    box-sizing: border-box !important;
}

.ffc-md-directory {
    /* CSS variables (overridden per instance + by typography panel) */
    --ffc-accent: #ED356D;
    --ffc-hero-bg: #ffffff;
    --ffc-hero-text: #000000;
    --ffc-body-bg: #ffffff;
    --ffc-body-text: #000000;
    --ffc-card-bg: #ffffff;
    --ffc-border: #999999;
    --ffc-font-display: 'Bebas Neue', Impact, sans-serif;
    --ffc-font-body: 'Space Grotesk', sans-serif;
    --ffc-font-mono: 'Courier Prime', monospace;

    background: var(--ffc-body-bg);
    color: var(--ffc-body-text);
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif);
    line-height: 1.5;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    overflow-x: hidden;
    position: relative;
}

.ffc-md-directory a {
    text-decoration: none !important;
    color: inherit;
}

.ffc-md-directory ul, .ffc-md-directory ol {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ─── HERO ───────────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-hero {
    background: var(--ffc-hero-bg) !important;
    color: var(--ffc-hero-text) !important;
    padding: calc(var(--ffc-pad-y) * 1.6) var(--ffc-pad-x) calc(var(--ffc-pad-y) * 0.8) !important;
    width: 100%;
    display: block !important;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-breadcrumb {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace);
    font-size: 12px;
    letter-spacing: 0.2em;
    color: color-mix(in srgb, var(--ffc-hero-text, #000) 55%, transparent);
    margin: 0 0 24px 0 !important;
    text-transform: uppercase;
    display: block !important;
}

/* "FIST.CLUB" prefix — settable via the block's Breadcrumb prefix color;
   defaults to a muted tint of the hero text so it stays readable on any hero. */
.ffc-md-directory .ffc-md-breadcrumb-home {
    color: var(--ffc-breadcrumb-color, color-mix(in srgb, var(--ffc-hero-text, #000) 55%, transparent));
}
.ffc-md-directory .ffc-md-breadcrumb-sep {
    color: color-mix(in srgb, var(--ffc-hero-text, #000) 55%, transparent);
}
/* Current page — full hero-text color */
.ffc-md-directory .ffc-md-breadcrumb-current {
    color: var(--ffc-hero-text);
}

.ffc-md-directory .ffc-md-hero-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: clamp(30px, 8.5vw, var(--ffc-hero-title-size, 64px)) !important;
    letter-spacing: 0.02em;
    line-height: 0.9 !important;
    color: var(--ffc-accent) !important;
    margin: 0 0 24px 0 !important;
    font-weight: 400 !important;
    display: block !important;
    padding: 0 !important;
    overflow-wrap: break-word;
}

.ffc-md-directory .ffc-md-hero-lead {
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
    font-size: var(--ffc-hero-lead-size, 16px);
    color: var(--ffc-hero-text);
    opacity: 0.85;
    max-width: 720px;
    margin: 0 0 40px 0 !important;
    line-height: 1.5;
    display: block !important;
    padding: 0 !important;
}

/* ─── STATS BAR (4-COLUMN GRID — defensive!) ─────────────────────────────── */
.ffc-md-directory .ffc-md-stats {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-top: 2px solid var(--ffc-hero-text) !important;
    border-bottom: 2px solid var(--ffc-hero-text) !important;
    list-style: none !important;
    width: 100%;
}

.ffc-md-directory .ffc-md-stat {
    padding: 20px 16px !important;
    border-right: 1px solid color-mix(in srgb, var(--ffc-hero-text) 30%, transparent) !important;
    color: var(--ffc-hero-text);
    margin: 0 !important;
    display: block !important;
}

.ffc-md-directory .ffc-md-stat:last-child {
    border-right: none !important;
}

.ffc-md-directory .ffc-md-stat-num {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: var(--ffc-stat-num-size, 32px) !important;
    line-height: 0.9 !important;
    color: var(--ffc-hero-text) !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ffc-md-directory .ffc-md-stat-lbl {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: var(--ffc-stat-lbl-size, 10px) !important;
    letter-spacing: 0.18em;
    color: var(--ffc-stat-label-color, var(--ffc-hero-text)) !important;
    margin: 8px 0 0 0 !important;
    padding: 0 !important;
    text-transform: uppercase;
}

@media (max-width: 600px) {
    .ffc-md-directory .ffc-md-stats {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .ffc-md-directory .ffc-md-stat:nth-child(2n) {
        border-right: none !important;
    }
    .ffc-md-directory .ffc-md-stat:nth-child(-n+2) {
        border-bottom: 1px solid color-mix(in srgb, var(--ffc-hero-text) 30%, transparent) !important;
    }
}

/* ─── STEP HEADER ────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-step {
    padding: var(--ffc-pad-y) var(--ffc-pad-x) 16px !important;
    border-bottom: 1px solid var(--ffc-border);
    background: var(--ffc-body-bg);
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-step-num {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 12px !important;
    letter-spacing: 0.2em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    text-transform: uppercase;
    margin: 0 0 12px 0 !important;
    display: block !important;
}

.ffc-md-directory .ffc-md-step-heading {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: clamp(24px, 4.5vw, var(--ffc-step-heading-size, 32px)) !important;
    overflow-wrap: break-word;
    letter-spacing: 0.02em;
    line-height: 0.95 !important;
    color: var(--ffc-body-text) !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
    display: block !important;
}

/* ─── FILTERS — defensive grid ───────────────────────────────────────────── */
.ffc-md-directory .ffc-md-filters {
    padding: calc(var(--ffc-pad-y) * 0.5) var(--ffc-pad-x) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    background: var(--ffc-body-bg);
    align-items: end;
    margin: 0 !important;
}

@media (min-width: 768px) {
    .ffc-md-directory .ffc-md-filters {
        grid-template-columns: 2fr 1fr 1fr !important;
    }
}

.ffc-md-directory .ffc-md-filter-group {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-filter-group label {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: var(--ffc-filter-label-size, 11px) !important;
    letter-spacing: 0.18em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    margin: 0 0 8px 0 !important;
    display: block !important;
    text-transform: uppercase;
    padding: 0 !important;
}

.ffc-md-directory .ffc-md-filter-group input,
.ffc-md-directory .ffc-md-filter-group select {
    width: 100% !important;
    background: var(--ffc-filter-bg) !important;
    border: var(--ffc-filter-border-w) solid var(--ffc-body-text) !important;
    color: var(--ffc-body-text) !important;
    padding: 14px 16px !important;
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
    font-size: var(--ffc-filter-font-size, 16px) !important;
    border-radius: var(--ffc-filter-border-r) !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
    margin: 0 !important;
    height: auto !important;
    appearance: auto;
    transition: border-color 0.15s, transform 0.15s;
}

.ffc-md-directory .ffc-md-filter-group input:focus,
.ffc-md-directory .ffc-md-filter-group select:focus {
    outline: none !important;
    border-width: 2px !important;
    transform: translateY(-1px);
    border-color: var(--ffc-accent) !important;
}

.ffc-md-directory .ffc-md-filter-group input::placeholder {
    color: var(--ffc-body-text);
    opacity: 0.4;
}

/* ─── RESULT COUNTER ─────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-result-counter {
    border: var(--ffc-filter-border-w) solid var(--ffc-accent) !important;
    padding: 10px 18px !important;
    color: var(--ffc-accent) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center;
    align-self: stretch;
    min-width: 100px;
    text-align: center;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-result-label {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 10px !important;
    letter-spacing: 0.18em;
    opacity: 0.7;
    text-transform: uppercase;
    margin: 0 0 4px 0 !important;
    color: var(--ffc-accent);
    display: block !important;
}

.ffc-md-directory .ffc-md-result-value {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: var(--ffc-result-counter-size, 28px) !important;
    letter-spacing: 0.04em;
    line-height: 1 !important;
    color: var(--ffc-accent);
    display: block !important;
}

/* ─── REGION HEADER ──────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-region-header {
    padding: calc(var(--ffc-pad-y) * 0.75) var(--ffc-pad-x) 16px !important;
    margin: 14px 0 0 0 !important;
    border-top: 1px solid var(--ffc-border);
    background: var(--ffc-body-bg);
}

.ffc-md-directory .ffc-md-region-label {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.2em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    text-transform: uppercase;
    margin: 0 !important;
    display: block !important;
}

.ffc-md-directory .ffc-md-region-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: clamp(24px, 4.5vw, var(--ffc-region-title-size, 32px)) !important;
    overflow-wrap: break-word;
    letter-spacing: 0.04em;
    color: var(--ffc-body-text) !important;
    margin: 6px 0 4px 0 !important;
    padding: 0 !important;
    text-transform: uppercase;
    font-weight: 400 !important;
    display: block !important;
}

.ffc-md-directory .ffc-md-region-count {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 12px !important;
    color: var(--ffc-body-text);
    opacity: 0.6;
    text-transform: uppercase;
    margin: 0 !important;
    display: block !important;
}

/* ─── SUBREGION ──────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-subregion {
    padding: calc(var(--ffc-pad-y) * 0.5) var(--ffc-pad-x) 12px !important;
    display: flex !important;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    background: var(--ffc-body-bg);
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-subregion-marker {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.2em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    text-transform: uppercase;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-subregion-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 22px !important;
    letter-spacing: 0.04em;
    color: var(--ffc-body-text) !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: uppercase;
    font-weight: 400 !important;
}

.ffc-md-directory .ffc-md-subregion-count {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 12px !important;
    color: var(--ffc-body-text);
    opacity: 0.6;
    margin: 0 !important;
}

/* ─── CARDS GRID ─────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-cards {
    padding:  0 var(--ffc-pad-x) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    background: var(--ffc-body-bg);
    margin: 0 !important;
}

@media (min-width: 768px) {
    .ffc-md-directory .ffc-md-cards {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* ─── SINGLE CARD ────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-card {
    background: var(--ffc-card-bg) !important;
    color: var(--ffc-body-text) !important;
    border: 1px solid var(--ffc-border) !important;
    border-top: none !important;
    border-left: none !important;
    padding: var(--ffc-card-pad) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px;
    position: relative;
    cursor: pointer;
    transition: transform 0.15s, background 0.15s;
    text-decoration: none !important;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-card:hover {
    background: var(--ffc-card-hover-bg) !important;
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .ffc-md-directory .ffc-md-card {
        border-right: none !important;
    }
}

@media (min-width: 768px) {
    .ffc-md-directory .ffc-md-card:nth-child(2n) {
        border-right: none !important;
    }
    .ffc-md-directory .ffc-md-card:only-child {
        grid-column: 1 / -1;
        border-right: none !important;
    }
}

.ffc-md-directory .ffc-md-card.is-hidden,
.ffc-md-directory .ffc-md-region-block.is-hidden {
    display: none !important;
}

/* APPROVED BADGE */
.ffc-md-directory .ffc-md-approved {
    position: absolute !important;
    top: 32px;
    right: 30px;
    background: var(--ffc-approved-bg) !important;
    color: var(--ffc-approved-text) !important;
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.18em;
    padding: 6px 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    line-height: 1;
    margin: 0 !important;
}

/* CARD CONTENT */
.ffc-md-directory .ffc-md-card-specialty {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: var(--ffc-card-spec-size, 12px) !important;
    letter-spacing: 0.18em;
    color: var(--ffc-body-text);
    opacity: 0.55;
    text-transform: uppercase;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-card-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: clamp(22px, 5vw, var(--ffc-card-title-size, 38px)) !important;
    overflow-wrap: break-word;
    letter-spacing: 0.03em;
    line-height: 1.05 !important;
    color: var(--ffc-body-text) !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
}

.ffc-md-directory .ffc-md-card:has(.ffc-md-approved) .ffc-md-card-title {
    padding-right: 110px !important;
}

.ffc-md-directory .ffc-md-card-practice {
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
    font-size: var(--ffc-card-practice-size, 17px) !important;
    color: var(--ffc-body-text);
    opacity: 0.75;
    font-weight: 500;
    margin: 0 !important;
    padding: 0 !important;
}

.ffc-md-directory .ffc-md-card:has(.ffc-md-approved) .ffc-md-card-practice {
    padding-right: 110px !important;
}

/* INFO LINES */
.ffc-md-directory .ffc-md-card-info {
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
    font-size: var(--ffc-card-info-size, 14px) !important;
    color: var(--ffc-body-text);
    opacity: 0.85;
    line-height: 1.65;
    margin: 0 !important;
    padding: 0 !important;
}

.ffc-md-directory .ffc-md-info-line {
    display: flex !important;
    gap: 12px;
    align-items: flex-start;
    padding: 4px 0 !important;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-info-icon {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    color: var(--ffc-body-text);
    opacity: 0.5;
    min-width: 32px;
    margin: 2px 0 0 0 !important;
}

.ffc-md-directory .ffc-md-info-text {
    flex: 1;
    margin: 0 !important;
}

/* LANGUAGES */
.ffc-md-directory .ffc-md-card-langs {
    display: flex !important;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 0 0 !important;
    padding: 0 !important;
}

.ffc-md-directory .ffc-md-lang {
    background: var(--ffc-body-text) !important;
    color: var(--ffc-card-bg) !important;
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em;
    padding: 3px 8px !important;
    line-height: 1.2;
    margin: 0 !important;
}

/* VERIFY FOOTER */
.ffc-md-directory .ffc-md-recommendations-line {
    display: flex !important;
    align-items: center;
    gap: 14px;
    padding: 14px 0 4px !important;
    margin: auto 0 0 0 !important;
    border-top: 2px solid var(--ffc-body-text) !important;
}

.ffc-md-directory .ffc-md-rec-count {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 44px !important;
    line-height: 0.9 !important;
    color: var(--ffc-body-text) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.ffc-md-directory .ffc-md-rec-label {
    display: flex !important;
    flex-direction: column;
    gap: 2px;
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 16px !important;
    letter-spacing: 0.08em;
    color: var(--ffc-body-text) !important;
    text-transform: uppercase;
    line-height: 1;
}

.ffc-md-directory .ffc-md-rec-since {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em;
    color: var(--ffc-body-text) !important;
    opacity: 0.55;
    text-transform: uppercase;
    font-weight: 400 !important;
}

@media (min-width: 600px) {
    .ffc-md-directory .ffc-md-rec-count { font-size: 60px !important; }
    .ffc-md-directory .ffc-md-rec-label { font-size: 19px !important; gap: 4px; }
    .ffc-md-directory .ffc-md-rec-since { font-size: 12px !important; }
}

/* ─── NO RESULTS ─────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-no-results {
    padding: 80px 28px !important;
    text-align: center;
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 28px !important;
    letter-spacing: 0.04em;
    color: var(--ffc-body-text);
    opacity: 0.5;
    background: var(--ffc-body-bg);
    margin: 0 !important;
}

/* ─── WIDE / FULL ALIGN SUPPORT ──────────────────────────────────────────── */
.alignwide .ffc-md-directory,
.alignfull .ffc-md-directory {
    max-width: none;
}

/* ─── CLINIC CARD VARIANT (matches demo's .doctor.clinic-card) ──────────── */
/* ─── CLINIC CARD BORDER ──────────────────────────────────────────────────
   Two independent knobs — edit desktop and mobile/tablet separately.        */

/* DESKTOP (default, ≥1025px) — edit this line for desktop */
.ffc-md-directory .ffc-md-card.is-clinic {
    border: 1px solid #999999 !important;
}

/* MOBILE + TABLET (≤1024px) — edit this line for mobile/tablet */
@media (max-width: 1024px) {
    .ffc-md-directory .ffc-md-card.is-clinic {
        border: 1px solid #999999 !important;
    }
}

.ffc-md-directory .ffc-md-card.is-clinic .ffc-md-card-specialty {
    color: var(--ffc-accent) !important;
    font-weight: 700 !important;
}

/* ─── CLINICS SUBREGION MARKER (pink — matches demo .subregion-header.kliniken) ─ */
.ffc-md-directory .ffc-md-subregion.is-clinics .ffc-md-subregion-marker {
    color: var(--ffc-accent) !important;
}

/* ─── INFO STRIP (emergency note above clinics) ──────────────────────────── */
.ffc-md-directory .ffc-md-info-strip {
    background: var(--ffc-body-text) !important;
    color: var(--ffc-body-bg) !important;
    border: 1px solid var(--ffc-border);
    border-left: 4px solid var(--ffc-accent) !important;
    padding: 18px 20px !important;
    margin: 16px var(--ffc-pad-x) !important;
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif);
    font-size: 13px !important;
    line-height: 1.65 !important;
}

.ffc-md-directory .ffc-md-info-strip-label {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.18em;
    color: var(--ffc-accent) !important;
    margin: 0 0 8px 0 !important;
    text-transform: uppercase;
    display: block !important;
}

.ffc-md-directory .ffc-md-info-strip-text {
    color: var(--ffc-body-bg);
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-info-strip-text strong {
    color: var(--ffc-body-bg) !important;
    font-weight: 700;
}

@media (min-width: 600px) {
    .ffc-md-directory .ffc-md-info-strip {
        padding: 20px 24px !important;
    }
}

/* ─── BOTTOM CTA OPTIONS (matches demo .cta-options) ─────────────────────── */
.ffc-md-directory .ffc-md-info-strip-bottom {
    margin: 32px var(--ffc-pad-x) 0 !important;
}

.ffc-md-directory .ffc-md-cta-options {
    margin: 40px var(--ffc-pad-x) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
}

@media (min-width: 720px) {
    .ffc-md-directory .ffc-md-cta-options {
        grid-template-columns: 1fr 1fr !important;
        gap: 20px !important;
        margin: 50px var(--ffc-pad-x) !important;
    }
}

.ffc-md-directory .ffc-md-cta-options-header {
    grid-column: 1 / -1;
    text-align: center;
    padding: 0 0 8px !important;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-cta-options-label {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.18em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    margin: 0 0 8px 0 !important;
    text-transform: uppercase;
}

.ffc-md-directory .ffc-md-cta-options-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 30px !important;
    letter-spacing: 0.03em;
    line-height: 1.05 !important;
    color: var(--ffc-body-text) !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
}

@media (min-width: 600px) {
    .ffc-md-directory .ffc-md-cta-options-title {
        font-size: 38px !important;
    }
}

.ffc-md-directory .ffc-md-cta-option {
    background: var(--ffc-card-bg) !important;
    border: 2px solid var(--ffc-body-text) !important;
    padding: 28px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    text-decoration: none !important;
    color: var(--ffc-body-text) !important;
    transition: background 0.15s, transform 0.15s;
    cursor: pointer;
}

.ffc-md-directory .ffc-md-cta-option:hover {
    background: color-mix(in srgb, var(--ffc-accent) 5%, var(--ffc-card-bg)) !important;
    transform: translateY(-2px);
}

.ffc-md-directory .ffc-md-cta-option-tag {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 10px !important;
    letter-spacing: 0.18em;
    color: var(--ffc-body-text);
    opacity: 0.6;
    margin: 0 0 12px 0 !important;
    text-transform: uppercase;
}

.ffc-md-directory .ffc-md-cta-option-title {
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 24px !important;
    letter-spacing: 0.03em;
    line-height: 1.05 !important;
    color: var(--ffc-body-text) !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    font-weight: 400 !important;
}

.ffc-md-directory .ffc-md-cta-option-desc {
    font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
    font-size: 13px !important;
    color: var(--ffc-body-text);
    opacity: 0.85;
    line-height: 1.55 !important;
    margin: 0 0 22px 0 !important;
    flex-grow: 1;
}

.ffc-md-directory .ffc-md-cta-option-arrow {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    margin: 4px 0 0 0 !important;
    padding: 16px 20px !important;
    background: var(--ffc-accent) !important;
    border: none;
    font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: 20px !important;
    letter-spacing: 0.08em;
    color: #000 !important;
    transition: background 0.15s;
    min-height: 56px;
    line-height: 1;
}

.ffc-md-directory .ffc-md-cta-option:hover .ffc-md-cta-option-arrow {
    background: var(--ffc-body-text) !important;
    color: var(--ffc-card-bg) !important;
}

.ffc-md-directory .ffc-md-cta-option-arrow span:last-child {
    font-size: 24px;
    margin-top: -3px;
}

@media (min-width: 720px) {
    .ffc-md-directory .ffc-md-cta-option-arrow {
        font-size: 22px !important;
        padding: 18px 22px !important;
    }
}

/* ─── FOOTER ─────────────────────────────────────────────────────────────── */
.ffc-md-directory .ffc-md-footer {
    padding: 28px var(--ffc-pad-x) !important;
    text-align: center;
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
    font-size: 11px !important;
    letter-spacing: 0.13em;
    color: var(--ffc-body-text);
    opacity: 0.7;
    line-height: 1.8 !important;
    border-top: 1px solid var(--ffc-border);
    text-transform: uppercase;
    margin: 0 !important;
}

.ffc-md-directory .ffc-md-footer a {
    color: var(--ffc-body-text) !important;
    text-decoration: none !important;
    opacity: 1;
}

.ffc-md-directory .ffc-md-footer a:hover {
    text-decoration: underline !important;
}

/* ===== Beat Blocksy theme fonts — values now flow from --ffc-font-* (block settings) ===== */
/* Display — var(--ffc-font-display) */
.ffc-md-directory h1, .ffc-md-directory h2, .ffc-md-directory h3, .ffc-md-directory h4,
.ffc-md-hero-title, .ffc-md-region-title, .ffc-md-subregion-title, .ffc-md-card-title,
.ffc-md-stat-num, .ffc-md-step-heading, .ffc-md-cta-option-title, .ffc-md-cta-options-title,
.ffc-md-result-value, .ffc-md-approved {
  font-family: var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif) !important;
}
/* Mono — var(--ffc-font-mono) */
.ffc-md-breadcrumb, .ffc-md-stat-lbl, .ffc-md-region-label, .ffc-md-region-count,
.ffc-md-subregion-marker, .ffc-md-subregion-count, .ffc-md-card-specialty,
.ffc-md-info-strip-label, .ffc-md-step-num, .ffc-md-cta-option-tag,
.ffc-md-cta-options-label, .ffc-md-info-icon {
  font-family: var(--ffc-font-mono, 'Courier Prime', monospace) !important;
}
/* Body — var(--ffc-font-body) */
.ffc-md-directory, .ffc-md-directory p,
.ffc-md-hero-lead, .ffc-md-card-practice, .ffc-md-card-info, .ffc-md-info-strip-text,
.ffc-md-info-text, .ffc-md-cta-option-desc, .ffc-md-lang,
.ffc-md-directory input, .ffc-md-directory select, .ffc-md-directory textarea {
  font-family: var(--ffc-font-body, 'Space Grotesk', sans-serif) !important;
}

/* ── Editable content region (InnerBlocks), shown after hero/stats ── */
.ffc-md-directory .ffc-md-content{
  padding:36px 28px 8px;
  border-bottom:1px solid var(--ffc-border, #999);
  background:var(--ffc-body-bg, #fff);
}
.ffc-md-directory .ffc-md-content > *{
  max-width:640px;
  margin-left:auto;
  margin-right:auto;
}
.ffc-md-directory .ffc-md-content :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--ffc-font-display, 'Bebas Neue', Impact, sans-serif);
  color:var(--ffc-body-text, #000);
  line-height:1.05;
  margin:0 0 14px;
}
.ffc-md-directory .ffc-md-content p,
.ffc-md-directory .ffc-md-content li{
  font-family:var(--ffc-font-body, 'Space Grotesk', sans-serif);
  font-size:16px;
  line-height:1.65;
}
/* Force dark text on every child — the surrounding site is dark-themed (white body
   text), and this block is a light/white island, so inherited white would vanish. */
.ffc-md-directory .ffc-md-content,
.ffc-md-directory .ffc-md-content :is(p,li,span,strong,em,b,i,u,small,blockquote,td,th,figcaption,label,dt,dd){
  color:var(--ffc-body-text, #232323) !important;
}
.ffc-md-directory .ffc-md-content :is(h1,h2,h3,h4,h5,h6){
  color:var(--ffc-body-text, #000) !important;
}
.ffc-md-directory .ffc-md-content a{
  color:var(--ffc-accent, #ED356D) !important;
}

/* ── Intro section (.ffc-md-intro custom block) — light theme by default ──────
   These are the defaults that previously had to live in a page-specific
   override. Baked in here (no !important) so the intro renders as a light
   island on a dark-themed site out of the box. Re-theme by overriding the
   --ffc-intro-* variables on .ffc-md-intro (e.g. for a dark variant) — no
   !important needed because nothing here uses it. */
.ffc-md-intro {
  --ffc-intro-bg: #ffffff;
  --ffc-intro-border: #e5e5e5;
  --ffc-intro-heading: #111111;
  --ffc-intro-text: #333333;
  --ffc-intro-marker: #888888;
  background: var(--ffc-intro-bg);
}
.ffc-md-intro .intro-block {
  border-bottom: 1px solid var(--ffc-intro-border);
}
.ffc-md-intro .intro-content h3,
.ffc-md-intro h3 {
  color: var(--ffc-intro-heading);
}
.ffc-md-intro .intro-content p,
.ffc-md-intro p {
  color: var(--ffc-intro-text);
}
.ffc-md-intro .intro-content p strong,
.ffc-md-intro p strong {
  color: var(--ffc-intro-heading);
}
.ffc-md-intro .marker {
  color: var(--ffc-intro-marker);
}

/* AJAX filter: dim the grid while new results load */
.ffc-md-results.is-loading { opacity: 0.45; pointer-events: none; transition: opacity 0.15s ease; }

/* "Showing X of Y" hint under the capped grid */
.ffc-md-more-hint {
    font-family: var(--ffc-font-mono, 'Courier Prime', monospace);
    font-size: 12px; letter-spacing: 0.04em; color: #888;
    text-align: center; padding: 22px 16px; margin-top: 8px;
    border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}

/* Static (non-clickable) filter label — Stadt oder PLZ */
.ffc-md-filter-group label.ffc-md-filter-label-static{cursor:default;}

/* ─── SKELETON LOADING (AJAX filter, gated >200ms in frontend.js) ─────────── */
.ffc-md-directory .ffc-md-skeleton-card {
    cursor: default !important;
    pointer-events: none;
    gap: 12px !important;
}
.ffc-md-directory .ffc-md-skeleton-card:hover {
    transform: none !important;
    background: var(--ffc-card-bg) !important;
}
.ffc-md-directory .ffc-md-skel-line {
    height: 12px;
    border-radius: 4px;
    background: linear-gradient(90deg,
        rgba(127,127,127,0.14) 25%,
        rgba(127,127,127,0.30) 50%,
        rgba(127,127,127,0.14) 75%);
    background-size: 200% 100%;
    animation: ffc-md-skel-shim 1.2s linear infinite;
}
.ffc-md-directory .ffc-md-skel-line.ffc-md-skel-w40 { width: 40%; }
.ffc-md-directory .ffc-md-skel-line.ffc-md-skel-w85 { width: 85%; }
.ffc-md-directory .ffc-md-skel-line.ffc-md-skel-w60 { width: 60%; }
.ffc-md-directory .ffc-md-skel-line.ffc-md-skel-w50 { width: 50%; }
@keyframes ffc-md-skel-shim {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ffc-md-directory .ffc-md-skel-line { animation: none; }
}

/* ── Praxis login-gate ─────────────────────────────────────────────────────
   Logged-out visitors see praxis cards as a blurred placeholder + lock badge;
   clicking opens the login popup. Server-side output carries no real data. */
.ffc-md-card.is-locked{position:relative;cursor:pointer;overflow:hidden}
.ffc-md-card.is-locked .ffc-md-blur{filter:blur(6px);-webkit-filter:blur(6px);user-select:none;pointer-events:none;opacity:.85}
.ffc-md-card.is-locked:hover{background:var(--ffc-card-hover-bg,transparent)}
.ffc-md-lock-badge{position:absolute;top:var(--ffc-card-pad,24px);right:var(--ffc-card-pad,24px);z-index:2;display:inline-flex;align-items:center;gap:6px;font-family:var(--ffc-font-mono,monospace);font-size:11px;letter-spacing:.08em;font-weight:700;color:#fff;background:var(--ffc-accent,#ED356D);padding:5px 9px;line-height:1}

/* Login popup */
.ffc-md-gate-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}
.ffc-md-gate-modal[hidden]{display:none}
.ffc-md-gate-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.ffc-md-gate-dialog{position:relative;z-index:1;background:#fff;color:#000;max-width:420px;width:100%;padding:38px 32px 32px;border:2px solid var(--ffc-accent,#ED356D);text-align:center;font-family:var(--ffc-font-body,sans-serif)}
.ffc-md-gate-x{position:absolute;top:6px;right:12px;background:none;border:0;font-size:28px;line-height:1;cursor:pointer;color:#000;padding:2px 6px}
.ffc-md-gate-lock{color:var(--ffc-accent,#ED356D);margin-bottom:10px;line-height:1}
.ffc-md-gate-marker{font-family:var(--ffc-font-mono,monospace);font-size:12px;letter-spacing:.1em;color:var(--ffc-accent,#ED356D);margin-bottom:8px}
.ffc-md-gate-title{font-family:var(--ffc-font-display,sans-serif);font-size:30px;line-height:1.05;margin:0 0 10px;text-transform:uppercase}
.ffc-md-gate-text{font-size:14px;line-height:1.55;margin:0 0 22px}
.ffc-md-gate-actions{display:flex;flex-direction:column;gap:10px}
.ffc-md-gate-btn{display:block;padding:14px 18px;font-family:var(--ffc-font-mono,monospace);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:2px solid #000;color:#000;background:#fff;transition:background .15s,color .15s}
.ffc-md-gate-btn:hover{background:#000;color:#fff}
.ffc-md-gate-btn-primary{background:var(--ffc-accent,#ED356D);border-color:var(--ffc-accent,#ED356D);color:#fff}
.ffc-md-gate-btn-primary:hover{background:#000;border-color:#000;color:#fff}

/* ── Custom Region dropdown (light, brutalist) ─────────────────────────────── */
.ffc-md-dd{position:relative}
.ffc-md-dd-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1.5px solid #111;border-radius:0;padding:13px 15px;font-family:inherit;font-size:15px;line-height:1.2;color:#111;text-align:left;cursor:pointer}
.ffc-md-dd-trigger:focus-visible{outline:2px solid var(--ffc-accent,#ED356D);outline-offset:2px}
.ffc-md-dd-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ffc-md-dd-caret{flex:none;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #111;transition:transform .15s}
.ffc-md-dd.is-open .ffc-md-dd-caret{transform:rotate(180deg)}
.ffc-md-dd-panel{display:none;position:absolute;left:0;right:0;top:calc(100% - 1px);z-index:50;background:#fff;border:1px solid #e2e2e2;border-top:none;max-height:330px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.10)}
.ffc-md-dd.is-open .ffc-md-dd-panel{display:block}
.ffc-md-dd-opt{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;background:#fff;border:none;border-bottom:1px solid #f0f0f0;border-radius:0;padding:11px 15px;font-family:inherit;font-size:14px;line-height:1.3;color:#111;text-align:left;cursor:pointer}
.ffc-md-dd-opt.is-all{color:#777}
.ffc-md-dd-opt.is-parent{font-weight:600;letter-spacing:.02em;border-left:3px solid var(--ffc-accent,#ED356D);background:#fafafa}
.ffc-md-dd-opt.is-city{position:relative;padding-left:32px;color:#333}
.ffc-md-dd-opt.is-city::before{content:'—';position:absolute;left:16px;color:var(--ffc-accent,#ED356D)}
.ffc-md-dd-count{flex:none;font-family:var(--ffc-font-mono,'Courier Prime',monospace);font-size:12px;color:#aaa}
.ffc-md-dd-opt:hover,.ffc-md-dd-opt.is-active{background:#fbeaf0;color:#111}
.ffc-md-dd-opt.is-parent:hover,.ffc-md-dd-opt.is-parent.is-active{background:#fbeaf0}
.ffc-md-dd-opt.is-city:hover .ffc-md-dd-count,.ffc-md-dd-opt.is-city.is-active .ffc-md-dd-count{color:var(--ffc-accent,#ED356D)}
@media (max-width:600px){.ffc-md-dd-panel{max-height:260px}}

/* Group header inside custom dropdown (Praxen / Kliniken) */
.ffc-md-dd-group{padding:10px 15px 6px;font-family:var(--ffc-font-mono,'Courier Prime',monospace);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#111;font-weight:600;background:#f4f4f4;border-bottom:1px solid #ececec}
.ffc-md-dd-group + .ffc-md-dd-opt.is-flat{border-top:none}

/* Load-more button + progress */
.ffc-md-more-wrap{text-align:center;margin-top:26px}
.ffc-md-load-more{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #111;border-radius:0;color:#111;font-family:var(--ffc-font-mono,'Courier Prime',monospace);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:14px 30px;cursor:pointer;transition:background .12s,border-color .12s}
.ffc-md-load-more:hover{background:#fbeaf0;border-color:var(--ffc-accent,#ED356D)}
.ffc-md-load-more[disabled]{opacity:.55;cursor:default}
.ffc-md-load-more .ffc-md-dd-caret{border-top-color:#111}
.ffc-md-more-count{margin-top:12px;font-family:var(--ffc-font-mono,'Courier Prime',monospace);font-size:12px;letter-spacing:.05em;color:#888}
.ffc-md-more-done{margin-top:0}


/* --- Empfehlungs-CTA (0 Empfehlungen) --------------------------------- */
.ffc-md-recommendations-line.ffc-md-rec-empty { display:flex; align-items:center; }
.ffc-md-rec-cta { display:inline-flex; align-items:center; gap:8px; color:#ED356D;
  font-family:'Space Grotesk', sans-serif; font-size:13px; font-weight:500; line-height:1.2; }
.ffc-md-rec-cta-ico { flex:0 0 auto; color:#ED356D; }
.ffc-md-rec-cta-text { text-decoration:underline; text-underline-offset:3px; }
.ffc-md-rec-cta-arrow { font-weight:700; }
.ffc-md-card:hover .ffc-md-rec-cta-text { text-decoration:none; }

.ffc-md-rec-cta.is-recommend-link { cursor:pointer; }

.ffc-md-typegroup + .ffc-md-typegroup{margin-top:48px}
