
/* Krankenfahrdienste.Info – UI (shared) */
:root{
  --kfd-bg:#FEF5E2;
  --kfd-card:#ffffff;
  --kfd-primary:#2D4B77;
  /* Theme primary/accent color (used for primary CTA like phone button)
     Prefer common "accent" variables first because many themes style buttons with accent, not primary. */
  --kfd-theme-primary: var(
    --wp--preset--color--accent,
    var(--wp--preset--color--tertiary,
      var(--wp--preset--color--primary,
        var(--wp--preset--color--secondary,
          var(--global-palette1,
            var(--ast-global-color-0,
              var(--e-global-color-primary, var(--kfd-accent, #E68C54))
            )
          )
        )
      )
    )
  );
  --kfd-text:#1f2937;
  --kfd-muted:#5b6473;
  --kfd-accent:#E68C54;
  --kfd-accent2:var(--kfd-accent);
  --kfd-red:#b42318;
  --kfd-radius:18px;
  --kfd-shadow: 0 18px 40px rgba(45,75,119,.12);
}

/* --- Site header spacing (logo/menu) – global --- */
/* Controlled via Settings → KFD Suche → "Header-Abstand oben" (CSS var: --kfd-header-offset). */
#masthead,
header.site-header,
.site-header,
#site-header,
.wp-site-blocks > header:first-child,
body > #header,
body > header#header,
body > .ct-header,
body > header.ct-header{
  padding-top: var(--kfd-header-offset, 0px) !important;
}

/* --- Navigation (WordPress Navigation Block) – nicer mobile panel + dropdowns --- */
/* Matches theme via WP preset vars, with safe fallbacks. */
:root{
  --kfd-nav-bg: var(--wp--preset--color--base, #ffffff);
  --kfd-nav-fg: var(--wp--preset--color--contrast, #111827);
  --kfd-nav-border: rgba(0,0,0,.10);
  --kfd-nav-shadow: 0 18px 40px rgba(0,0,0,.14);
  --kfd-nav-panel-bg: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,246,235,.78));
  --kfd-nav-hover: rgba(230,140,84,.16);
}

/* Mobile hamburger overlay (WP Navigation Block)
   Some themes render the responsive menu as full-screen; we turn it into a centered panel. */
@media (max-width: 980px){
  .wp-block-navigation__responsive-container.is-menu-open{
    background: rgba(0,0,0,.20) !important;
    background: color-mix(in srgb, var(--wp--preset--color--contrast, #111827) 18%, transparent) !important;
    backdrop-filter: blur(2px);
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding: 16px !important;
  }

  /* The dialog becomes the actual "panel" */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{
    position: relative !important;
    width: min(620px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 32px) !important;
    overflow: auto !important;
    margin: 0 auto !important;
    /* padding set once, below at "v1.17.6" — two earlier patch rounds (this file's
       own history) also set it here and were fully overridden by that later rule;
       removed rather than left as dead weight. */
    box-sizing: border-box !important;
    background: var(--kfd-nav-panel-bg) !important;
    color: var(--kfd-nav-fg) !important;
    border: 1px solid var(--kfd-nav-border) !important;
    border-radius: 22px !important;
    box-shadow: var(--kfd-nav-shadow) !important;
  }

  /* width/padding removed here: KFD v1.17.6 further down has the exact same
     selector and re-sets width:100%/padding:0 (plus margin:0) with identical
     values — same selector, later wins, so these were dead duplicates. */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    text-align: left !important;
  }

  /* Make the list fill the panel instead of hugging the right edge.
     Only `margin` still applies here — width/flex-direction/align-items/gap are
     re-set below by the more specific "ul.wp-block-navigation__container" rule
     (KFD v1.17.6), which always wins regardless of source order, so the
     duplicate values here were dead weight. Verified via live computed-style
     diff (before/after, menu + "Erklärungen" open) — no visual change. */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
    margin: 10px 0 0 0 !important;
  }

  /* .wp-block-navigation-item{width:100%} removed here: the more specific
     "ul...> li.wp-block-navigation-item" rule below (KFD v1.17.6) always wins
     and re-sets the same width anyway. Verified live, no visual change. */

  /* padding/border-radius here are the final values (14px 16px / 18px), and
     overflow:visible is included too — this used to be split across a second,
     identical-selector rule in KFD v1.17.5 further down (padding:14px 16px;
     border-radius:18px; overflow:visible), which only ever existed to override
     these two values; merged into one rule instead of leaving the old values
     here to be silently overridden a rule later. */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
    width: 100% !important;
    justify-content: space-between !important;
    display:flex !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    background: rgba(255,255,255,.70) !important;
    overflow: visible !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus{
    background: var(--kfd-nav-hover) !important;
  }

  /* Close button: nicer hit-area and consistent placement */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
    position:absolute !important;
    top: 14px !important;
    right: 14px !important;
    border-radius: 12px !important;
    padding: 10px !important;
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    z-index: 6 !important;
  }


  /* Submenu "Erklärungen" (mobile overlay)
     - "Erklärungen" toggles ONLY (no navigation)
     - small chevron inside the same pill (right aligned)
     - children clearly nested (indent + subtle left accent)
  */

  /* .kfd-nav-erklaerungen{position:relative} removed here: KFD v1.18.6 further
     down sets "body ... li.wp-block-navigation-item.kfd-nav-erklaerungen" with
     display:block + position:relative — strictly more specific (adds body + li
     tag) and always matches the same real <li>, so this was dead weight. */

  /* Use the real menu item as trigger (no injected duplicate). */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation-item__content{
    position: relative !important;
    padding-right: 44px !important;
    cursor: pointer !important;
    user-select: none;
  }

  /* Hide WP's detached toggle button for this one item (prevents extra arrows / duplicates). */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > :is(button.wp-block-navigation-submenu__toggle, button.wp-block-navigation__submenu-icon){
    display: none !important;
  }

  /* Small chevron on the parent only */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation-item__content::after{
    content: '';
    position: absolute;
    right: 18px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .55;
    pointer-events: none;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen.kfd-submenu-open > .wp-block-navigation-item__content::after{
    transform: rotate(-135deg);
    opacity: .70;
  }

  /* Children: collapsed by default */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container{
    display: none !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: calc(100% - 16px) !important;
    margin: 10px 0 0 16px !important;
    padding: 10px 10px 10px 12px !important;
    list-style: none !important;
    padding-inline-start: 0 !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.46) !important;
    box-shadow: none !important;
    overflow: visible !important;
    border-left: 3px solid rgba(230,140,84,.32) !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen.kfd-submenu-open > .wp-block-navigation__submenu-container{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  /* Kill any theme offsets that cause left-cutoff */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container *{
    text-indent: 0 !important;
    transform: none !important;
    clip-path: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  /* Prevent extra arrows inside submenu */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container :is(button.wp-block-navigation-submenu__toggle, button.wp-block-navigation__submenu-icon){
    display: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container li,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container .wp-block-navigation-item{
    margin: 0 !important;
    padding: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 12px 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    background: rgba(255,255,255,.74) !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.kfd-nav-erklaerungen > .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus{
    background: rgba(255,255,255,.86) !important;
  }
}

/* Dropdown / submenu popups (desktop + mobile) */
.wp-block-navigation__submenu-container{
  background: var(--kfd-nav-panel-bg) !important;
  color: var(--kfd-nav-fg) !important;
  border: 1px solid var(--kfd-nav-border) !important;
  border-radius: 18px !important;
  padding: 12px !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.12) !important;
  min-width: 260px;
  max-width: 360px;
}

.wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  border-radius: 12px;
  padding: 8px 10px;
}

.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus{
  background: var(--kfd-nav-hover);
}

/* Center top-level dropdowns under their parent on desktop (prevents "stuck to the far right") */
@media (min-width: 981px){
  .wp-block-navigation__container > .wp-block-navigation-item.has-child{
    position: relative;
  }
  .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container{
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }
  .wp-block-navigation__submenu-container .wp-block-navigation-item:not(:last-child){
    border-bottom: 1px solid rgba(0,0,0,.06);
    padding-bottom: 6px;
    margin-bottom: 6px;
  }
}

/* Classic themes: basic dropdown polish (safe) */
nav ul.sub-menu,
nav ul.children{
  background: var(--kfd-nav-bg);
  border-radius: 16px;
  padding: 10px;
  border: 1px solid var(--kfd-nav-border);
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
}

/* Removed 2026-09: dead compatibility CSS for Astra/Kadence/GeneratePress/
   OceanWP/Blocksy/Neve/Elementor mobile menus. This site runs its own
   kfd-fse-theme (confirmed via body class), so none of those selectors ever
   matched — pure unused weight + ~68 needless !important declarations.
   If the theme is ever changed away from kfd-fse-theme, the removed rules
   are recoverable from git history / the v1.21.2 zip. */

.kfd{font-family: system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif; color:var(--kfd-text);}
.kfd *{box-sizing:border-box;}
.kfd-card{
  background:var(--kfd-card);
  border-radius:var(--kfd-radius);
  box-shadow:var(--kfd-shadow);
  padding:22px;
}
.kfd-card--hero{background: var(--kfd-bg); border:1px solid rgba(45,75,119,.06);}
.kfd-hero{display:grid;grid-template-columns: 1.15fr .85fr; gap:22px; align-items:center;}
.kfd-hero__headline{grid-column:1 / -1;}
.kfd-hero__headline p{max-width:none;}

@media (max-width: 980px){.kfd-hero{grid-template-columns:1fr;}}

.kfd-hero h1{
  margin:0 0 10px 0;
  line-height:1.05;
  letter-spacing:-.02em;
  font-size: clamp(28px, 3.2vw, 44px);
  color:var(--kfd-primary);
}
.kfd-hero h1 span{color:var(--kfd-accent2) !important;background:none !important;}
.kfd-hero p{margin:0 0 18px 0; color:var(--kfd-muted); font-size: 16px;}

.kfd-form{margin-top:10px;}
.kfd-form__row{display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap;}
.kfd-form__row--3{margin-top:14px; align-items:stretch;}
.kfd-input{flex:1; min-width: 260px;}
.kfd-input span{display:block; font-size:12px; color:var(--kfd-muted); margin-bottom:6px;}
.kfd-input input{
  width:100%; height:46px; padding: 10px 14px;
  border:1px solid rgba(45,75,119,.14);
  border-radius: 12px;
  outline:none;
  background:#fff;
  font-size: 15px;
}
.kfd-input input:focus{border-color:rgba(98,134,195,.8); box-shadow:0 0 0 4px rgba(98,134,195,.18);}

.kfd-btn{
  height:46px; padding: 0 20px; border:none; cursor:pointer;
  border-radius: 10px; font-weight:800; color:#fff;
  background: var(--kfd-accent);
  box-shadow: 0 10px 20px rgba(230,140,84,.22);
}
.kfd-btn:hover{filter:brightness(.98);}
.kfd-btn:active{transform: translateY(1px);}

.kfd-fieldset{
  flex:1; min-width: 280px;
  border:1px solid rgba(45,75,119,.08);
  border-radius: 14px;
  padding: 12px 12px 10px 12px;
  background: rgba(255,255,255,.45);
}
.kfd-fieldset legend{padding:0 6px; font-weight:700; color:var(--kfd-primary);}
.kfd-hint{margin:10px 4px 0 4px; font-size: 12px; color: var(--kfd-muted);}

.kfd-pills{display:flex; flex-wrap:wrap; gap:10px; padding:8px 2px 2px 2px;}
.kfd-pill{display:inline-flex;}
.kfd-pill input{position:absolute; opacity:0; pointer-events:none;}
.kfd-pill__inner{
  display:flex; align-items:center; gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  border:1px solid rgba(45,75,119,.14);
  background:#fff;
  color: var(--kfd-primary);
  font-weight:700;
  cursor:pointer;
  user-select:none;
}
.kfd-pill__inner svg{width:18px;height:18px; color: var(--kfd-pill-icon-color, currentColor); fill: currentColor; opacity:.9;}
.kfd-pill input:checked + .kfd-pill__inner{
  background: rgba(230,140,84,.16);
  border-color: rgba(230,140,84,.55);
}

.kfd-hero__art{display:flex; justify-content:center;}
.kfd-illustration{
  width:100%;
  max-width: 420px;
  aspect-ratio: 4 / 3;
  position:relative;
  border-radius: 22px;
  overflow:hidden;
  background: linear-gradient(180deg, rgba(252,228,173,1) 0%, rgba(253,244,226,1) 100%);
  border:1px solid rgba(45,75,119,.06);
}
.kfd-map{
  position:absolute; inset:0;
  background-image:
    linear-gradient(90deg, rgba(45,75,119,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(45,75,119,.08) 1px, transparent 1px);
  background-size: 56px 56px;
  opacity:.55;
  transform: rotate(-8deg) scale(1.1);
}
.kfd-van{
  position:absolute;
  left: 16%;
  top: 48%;
  transform: translateY(-50%);
  width: 68%;
  height: 42%;
  background:
    radial-gradient(circle at 22% 72%, #153165 0 12px, transparent 13px),
    radial-gradient(circle at 75% 72%, #153165 0 12px, transparent 13px),
    linear-gradient(#ffffff, #ffffff) 0 0/100% 70% no-repeat,
    linear-gradient(#6286c3, #6286c3) 0 70%/100% 30% no-repeat;
  border-radius: 18px;
  box-shadow: 0 16px 26px rgba(0,0,0,.12);
  outline: 3px solid rgba(45,75,119,.06);
}
.kfd-van::after{
  content:"+";
  position:absolute;
  right: 18%;
  top: 18%;
  width: 40px; height: 40px;
  border-radius: 12px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(98,134,195,.18);
  color: var(--kfd-primary);
  font-weight: 900;
  font-size: 28px;
}

.kfd-results{margin-top:18px;}
.kfd-result-card{display:flex; justify-content:space-between; gap:14px; align-items:flex-start; padding:18px; border-radius:16px; border:1px solid rgba(45,75,119,.08); background:#fff; box-shadow: 0 10px 20px rgba(0,0,0,.06); margin-bottom:12px;}
.kfd-result-title{margin:0 0 6px 0; font-size: 18px; color:var(--kfd-primary);}
.kfd-result-meta{margin:0; color:var(--kfd-muted); font-size: 13px; line-height:1.35;}
.kfd-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.kfd-badge{font-size:12px; padding:6px 10px; border-radius:999px; border:1px solid rgba(45,75,119,.12); background: rgba(98,134,195,.10); color: var(--kfd-primary); font-weight:700;}
.kfd-badge--premium{background: rgba(240,153,97,.18); border-color: rgba(240,153,97,.55);}

.kfd-actions{display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; align-items:center;}
.kfd-action{
  display:inline-flex; align-items:center; justify-content:center;
  height:40px; padding:0 14px; border-radius: 12px;
  border:1px solid rgba(45,75,119,.14);
  background:#fff; color: var(--kfd-primary); font-weight:800; text-decoration:none;
}
.kfd-action--primary{background: var(--kfd-accent); color:#fff; border-color: transparent;}
.kfd-action:hover{filter:brightness(.98);}

.kfd-empty{padding:18px; border-radius:16px; border:1px dashed rgba(45,75,119,.25); background: rgba(255,255,255,.45); color: var(--kfd-muted);}
.kfd-dispatch{padding:18px; border-radius:16px; border:1px solid rgba(240,153,97,.4); background: rgba(240,153,97,.12);}
.kfd-dispatch h3{margin:0 0 6px 0; color:var(--kfd-primary);}
.kfd-dispatch p{margin:0; color:var(--kfd-muted);}
.kfd-dispatch .kfd-actions{margin-top:12px; justify-content:flex-start;}

/* Dispatch card note (Rettungsleitstelle) */
.kfd-dispatch-note{margin:8px 0 0 0; color:var(--kfd-muted); font-size:13px; line-height:1.35;}

.kfd-grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; margin-top:16px;}
@media (max-width: 980px){.kfd-grid3{grid-template-columns:1fr;}}
.kfd-card--link{display:block; text-decoration:none; color:inherit; border:1px solid rgba(45,75,119,.06);}
.kfd-card--link h3{margin: 8px 0 6px 0; color: var(--kfd-primary);}
.kfd-card--link p{margin:0; color: var(--kfd-muted);}
.kfd-icon{width:40px;height:40px;border-radius:14px;display:flex;align-items:center;justify-content:center;background: rgba(230,140,84,.16); color: var(--kfd-link-icon-color, var(--kfd-primary));}
.kfd-icon svg{width:22px;height:22px; fill: currentColor;}

.kfd-comingsoon-ill{width:100%; max-width: 520px; height:auto; display:block; filter: drop-shadow(0 16px 26px rgba(0,0,0,.10));}

/* --- Hinweistext unter KTW/RTW rot --- */
.kfd-hint.kfd-hint--red{
  color: var(--kfd-red);
  font-weight: 700;
}

/* Loading state */
.kfd-loading{padding:14px 16px;border:1px dashed rgba(21,49,101,.25);border-radius:14px;background:rgba(255,255,255,.55);color:var(--kfd-muted);font-weight:700;}

.kfd-hero__copy h1 span{color:var(--kfd-accent2) !important; background:transparent !important;}

/* --- KTW/RTW: Hintergrund wie andere, aber rote Schrift/Icons --- */
.kfd-pill input[value="ktw"] + .kfd-pill__inner,
.kfd-pill input[value="rtw"] + .kfd-pill__inner{
  color: var(--kfd-red);
  --kfd-pill-icon-color: var(--kfd-red);
}
.kfd-pill input[value="ktw"]:checked + .kfd-pill__inner,
.kfd-pill input[value="rtw"]:checked + .kfd-pill__inner{
  color: var(--kfd-red);
  --kfd-pill-icon-color: var(--kfd-red);
  border-color: rgba(180,35,24,.35);
}

/* --- Ergebnisse: präsenter + 2 Spalten --- */
.kfd-results{margin-top:16px;}
.kfd-results-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
  padding:14px 16px; border-radius:16px;
  border:1px solid rgba(45,75,119,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,246,235,.68));
  box-shadow: 0 10px 20px rgba(0,0,0,.05);
  margin: 0 0 12px 0;
}
.kfd-results-head h2{margin:0; font-size:18px; color:var(--kfd-primary);}
.kfd-results-head p{margin:0; color:var(--kfd-muted); font-size:13px;}
.kfd-results--shown{animation:kfdPop .32s ease-out;}
.kfd-results--flash .kfd-results-head{animation:kfdFlash 1.2s ease-out;}
@keyframes kfdPop{from{transform:translateY(6px);opacity:.0;}to{transform:translateY(0);opacity:1;}}
@keyframes kfdFlash{0%{box-shadow:0 0 0 rgba(230,140,84,0);}20%{box-shadow:0 0 0 6px rgba(230,140,84,.18);}100%{box-shadow:0 0 0 rgba(230,140,84,0);}}

/* grid */
.kfd-results-grid{display:grid; grid-template-columns:1fr; gap:12px;}
@media (min-width: 920px){
  .kfd-results-grid{grid-template-columns:1fr 1fr;}
}

/* cards */
.kfd-result-card{
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,246,235,.62));
  backdrop-filter: blur(6px);
  border: 1px solid rgba(45,75,119,.10);
  border-radius:16px;
  padding:14px;
  box-shadow: 0 12px 24px rgba(0,0,0,.06);
  position: relative;
}
.kfd-result-card::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:4px;
  border-radius:16px 0 0 16px;
  background: rgba(230,140,84,.70);
}
.kfd-result-main{display:flex; gap:12px; align-items:flex-start;}
.kfd-result-logo{
  width:56px; height:56px; border-radius:14px; overflow:hidden;
  background: rgba(230,140,84,.10);
  border:1px solid rgba(230,140,84,.22);
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
}
.kfd-result-logo img{width:100%; height:100%; object-fit:cover; display:block;}
.kfd-result-logo span{font-weight:800; color:rgba(45,75,119,.75); font-size:12px; letter-spacing:.02em;}
.kfd-result-top{display:flex; align-items:center; gap:10px; justify-content:space-between;}
.kfd-result-title{margin:0; font-size:16px;}
.kfd-result-meta{margin:4px 0 0 0; color:var(--kfd-muted); font-size:13px;}
.kfd-contact{margin-top:10px; display:grid; gap:6px; font-size:13px; color:var(--kfd-muted);}
.kfd-contact a{color:inherit; text-decoration:none; border-bottom:1px dashed rgba(45,75,119,.25);}
.kfd-contact a:hover{color:var(--kfd-primary); border-bottom-color: rgba(45,75,119,.45);}
.kfd-contact-row{display:flex; gap:8px; align-items:flex-start;}
.kfd-contact-ic{width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; opacity:.85; margin-top:1px;}
.kfd-actions{margin-top:12px;}
.kfd-badge--premium{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:999px;
  background: linear-gradient(180deg, rgba(230,140,84,.22), rgba(255,246,235,.85));
  border:1px solid rgba(230,140,84,.35);
  color: rgba(45,75,119,.95);
  font-weight:700;
  font-size:12px;
}

/* --- Hilfe Buttons + Panels --- */
.kfd-fieldset legend{display:flex; align-items:center; gap:8px;}
.kfd-help-btn{
  width:18px; height:18px; border-radius:999px;
  border:1px solid rgba(45,75,119,.25);
  background: rgba(255,255,255,.75);
  color: rgba(45,75,119,.95);
  font-weight:800;
  font-size:12px;
  line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
}
.kfd-help-btn:hover{border-color: rgba(230,140,84,.55);}

.kfd-modal{
  position:fixed; inset:0; z-index:9999;
  display:none;
}
.kfd-modal--open{display:block;}
.kfd-modal__backdrop{
  position:absolute; inset:0;
  background: rgba(20, 25, 35, .45);
}
.kfd-modal__panel{
  position:absolute; left:50%; top:50%;
  transform: translate(-50%, -50%);
  width:min(920px, calc(100% - 28px));
  max-height: calc(100% - 28px);
  overflow:auto;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,246,235,.82));
  border:1px solid rgba(45,75,119,.10);
  box-shadow: 0 24px 60px rgba(0,0,0,.25);
  padding:16px;
}
.kfd-modal__close{
  position:sticky;
  top:0;
  float:right;
  width:34px; height:34px;
  border-radius:12px;
  border:1px solid rgba(45,75,119,.12);
  background: rgba(255,255,255,.8);
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.kfd-modal__content{padding-top:6px;}

/* --- Hilfe-Popover (am ?-Symbol) --- */
.kfd-help{
  position:fixed;
  z-index:9999;
  display:none;
  left:12px; top:12px; /* wird per JS gesetzt */
}
.kfd-help--open{display:block;}
.kfd-help__panel{
  position:relative;
  width:min(560px, calc(100vw - 24px));
  max-height:min(72vh, 640px);
  overflow:auto;
  border-radius:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,246,235,.86));
  border:1px solid rgba(45,75,119,.12);
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
  padding:14px 14px 12px;
}
.kfd-help__arrow{
  position:absolute;
  width:12px; height:12px;
  transform: rotate(45deg);
  background: rgba(255,255,255,.92);
  border:1px solid rgba(45,75,119,.12);
  top:-6px;
  left:18px;
}
.kfd-help--top .kfd-help__arrow{
  top:auto;
  bottom:-6px;
}
.kfd-help__close{
  position:sticky;
  top:0;
  float:right;
  width:34px; height:34px;
  border-radius:12px;
  border:1px solid rgba(45,75,119,.12);
  background: rgba(255,255,255,.82);
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.kfd-help__title{margin:6px 0 10px 0;}
.kfd-help__body{display:grid; gap:14px;}
@media(min-width: 880px){
  .kfd-help__body{grid-template-columns: 1.2fr .8fr; align-items:start;}
}
.kfd-help__text{color:var(--kfd-muted); font-size:14px; line-height:1.55;}
.kfd-help__media img{width:100%; height:auto; border-radius:14px; border:1px solid rgba(45,75,119,.10);}

html.kfd-modal-open{overflow:hidden;}

/* --- Ergebnisseite: Kopfzeile + Filteranzeige --- */
.kfd--results-page{padding-top:6px;}
.kfd-results-page-head{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  justify-content:space-between;
  margin: 0 0 12px 0;
}
.kfd-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight:700;
  color: var(--kfd-primary);
  background: rgba(255,255,255,.65);
  border:1px solid rgba(45,75,119,.12);
  padding:10px 12px;
  border-radius:14px;
}
.kfd-back:hover{border-color: rgba(230,140,84,.45);}
.kfd-filterbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.kfd-filterpill{
  background: rgba(255,246,235,.72);
  border:1px solid rgba(230,140,84,.22);
  color: rgba(45,75,119,.88);
  padding:8px 10px;
  border-radius:999px;
  font-size:13px;
}
.kfd-filterpill strong{font-weight:800;}

/* --- Results header: back button + filter pills (modal) --- */
.kfd-results-head__top{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px;}
.kfd-back{
  appearance:none; border:0; background:transparent; padding:4px 0;
  color: var(--kfd-primary); font-weight:800; cursor:pointer;
}
.kfd-back:hover{opacity:.85; text-decoration:underline;}
.kfd-results-count{color:var(--kfd-muted); font-weight:700; font-size:13px;}
.kfd-filter-pills{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.kfd-filter-pill{
  font-size:12px; line-height:1;
  padding:7px 10px;
  border-radius:999px;
  background: rgba(255,246,235,.86);
  border:1px solid rgba(45,75,119,.10);
  color: rgba(45,75,119,.85);
}

/* --- Modal header: 'Filter ändern' button --- */
.kfd-results-head__left{display:flex; align-items:center;}
.kfd-results-head__right{display:flex; align-items:center; gap:10px;}
.kfd-change-filter{
  appearance:none;
  border:1px solid rgba(45,75,119,.14);
  background: rgba(255,246,235,.86);
  color: var(--kfd-primary);
  padding:7px 10px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  cursor:pointer;
}
.kfd-change-filter:hover{opacity:.9;}

/* --- Hero image replacement (admin setting) --- */
.kfd-hero__img{
  width:100%;
  max-width: 560px;
  margin-left:auto;
}
.kfd-hero__img img{
  width:100%;
  height:auto;
  display:block;
  border-radius: 22px;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.10));
}
section.kfd[data-kfd-hero-img="1"] .kfd-illustration{
  display:none !important;
}

/* Hero image sizing (selected via plugin settings) */
.kfd-hero__img{
  width: 100%;
  max-width: var(--kfd-hero-img-max, 560px);
  margin: 0 auto;
}
.kfd-hero__img img{
  width: 100%;
  height: auto;
  display:block;
  transform: scale(var(--kfd-hero-img-scale, 1.1));
  transform-origin: center;
}

/* Ensure span highlight works regardless of theme overrides */
.kfd .kfd-hero__title span{color:var(--kfd-accent2) !important;background:none !important;}

.kfd .kfd-hl{color:var(--kfd-accent2) !important;background:none !important;}

.kfd-hero__subtitle{max-width:none;}

/* Center hero headline + subtitle */
.kfd-hero__headline{ text-align:center; }
.kfd-hero__subtitle{ margin-left:auto; margin-right:auto; }

.kfd-hero__subtitle{ max-width: 80ch; }

.kfd .kfd-hl, .kfd .kfd-hero__title span{ color: var(--kfd-accent) !important; }

/* =========================
   v1.16.4 – Results header cleanup + modern cards
   ========================= */

/* Header: single count, tidy layout */
.kfd-results-head{
  display:block !important;
  align-items:unset !important;
}
.kfd-results-head__main{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.kfd-results-titlewrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.kfd-results-titlewrap h2{margin:0; font-size:18px;}
.kfd-results-badge{
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(45,75,119,.12);
  background: rgba(255,255,255,.75);
  color: rgba(45,75,119,.92);
  font-weight:800;
  font-size:13px;
  line-height:1;
  white-space:nowrap;
}
.kfd-results-subline{margin:0; color:var(--kfd-muted); font-size:13px;}

/* Hide count in legacy/inline header only. In modal we show it under the title.
   No !important needed: .kfd-results-count (~line 706) never sets `display`,
   so there is nothing here to out-rank. */
.kfd-results-head:not(.kfd-results-head--modal) .kfd-results-count{display:none;}

/* Cards: more modern + better hierarchy */
.kfd-result-card{
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.kfd-result-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(0,0,0,.08);
  border-color: rgba(230,140,84,.28);
}
/* No !important needed: earlier same-specificity .kfd-result-title/-meta rules
   (~lines 429-430, 538-539) already lose the cascade to these later ones. */
.kfd-result-title{font-size:17px;}
.kfd-result-meta{font-size:14px; line-height:1.45;}

/* Contact pills (bigger + nicer) */
/* v1.19.3 – Align all card content with the primary phone button */
.kfd-result-copy{
  flex:1;
  min-width:0;
}

.kfd-contact-pills{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}

.kfd-contact-pill{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(45,75,119,.12);
  background: rgba(255,255,255,.72);
  color: rgba(45,75,119,.92);
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  line-height:1.1;
}
.kfd-contact-pill:hover{
  border-color: rgba(230,140,84,.40);
  filter: brightness(.99);
}
.kfd-contact-pill svg{
  width:16px;
  height:16px;
  flex:0 0 auto;
}
.kfd-contact-pill span{display:block; flex:1; min-width:0;}

/* Phone pill: PRIMARY CTA (most important contact)
   - takes a full row in each provider card
   - bigger + high contrast
*/
.kfd-contact-pill--phone{
  order:-1;
  width:100%;
  flex: 0 0 100%;
  justify-content:center;
  font-size:19px;
  font-weight:900;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(45,75,119,.22);
  background: var(--kfd-theme-primary, var(--kfd-accent)) !important;
  color:#fff;
  box-shadow: 0 14px 28px rgba(45,75,119,.18);
}
.kfd-contact-pill--phone:hover{
  filter: brightness(1.06);
  border-color: rgba(45,75,119,.30);
}
.kfd-contact-pill--phone svg{
  width:20px;
  height:20px;
  color:#fff;
  opacity:.95;
}
.kfd-contact-pill--phone span{
  flex: 0 0 auto;
  font-size:19px;
  font-weight:900;
}

/* Subtle hint that the whole card opens a detail page */
.kfd-result-more{
  margin-top: 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:13px;
  font-weight:800;
  color: rgba(45,75,119,.72);
  opacity:.95;
  user-select:none;
}
.kfd-result-more__arrow{opacity:.85;}
.kfd-result-card:hover .kfd-result-more{color: rgba(45,75,119,.88);}


/* Action buttons: slightly larger.
   No !important needed: same-specificity .kfd-action(s) rule earlier in this
   file (~line 435) already loses the cascade to this later one by source order. */
.kfd-actions{gap:10px;}
.kfd-action{
  height:42px;
  padding:0 16px;
  border-radius:14px;
  font-size:14px;
}

/* ===== KFD v1.16.5: Results header layout + map preview ===== */
.kfd-results-head{display:block;}
.kfd-results-head__bar{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.kfd-results-head__bar-left{justify-self:start;}
.kfd-results-head__bar-center{justify-self:center; text-align:center;}
.kfd-results-head__bar-right{justify-self:end;}

.kfd-results-titlewrap{display:inline-flex; align-items:center; justify-content:center; gap:10px;}
.kfd-results-badge{margin-left:0;}

.kfd-back,
.kfd-change-filter{
  height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(45,75,119,.14);
  background:#fff;
  font-weight:700;
  cursor:pointer;
}
.kfd-back{background:transparent;}

@media (max-width: 720px){
  .kfd-results-head__bar{grid-template-columns:1fr; justify-items:start;}
  .kfd-results-head__bar-center{justify-self:start; text-align:left;}
  .kfd-results-titlewrap{justify-content:flex-start;}
  .kfd-results-head__bar-right{justify-self:start;}
}

/* ===== KFD v1.16.6: Modal results header tidy ===== */
.kfd-results-head__bar{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:10px !important;
}
.kfd-results-head__titleRow{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:10px;
}
.kfd-results-head__titleLeft{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.kfd-results-head__titleLeft h2{
  margin:0;
  font-size:18px;
}

@media (max-width: 720px){
  .kfd-results-head__titleRow{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ===== KFD v1.16.7: Modal header centered + card/map embedding fixes ===== */
.kfd-modal__panel{overflow-x:hidden;}

.kfd-results-head--modal{
  display:block !important;
  padding:14px 16px !important;
}
.kfd-results-head--modal .kfd-results-toprow{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-bottom:10px;
}
.kfd-results-head--modal .kfd-results-toprow__center{width:100%; text-align:center;}

.kfd-results-head--modal .kfd-results-title{
  margin:0;
  font-size:18px;
  line-height:1.2;
}
.kfd-results-head--modal .kfd-results-count{
  margin-top:2px;
  font-size:13px;
  font-weight:800;
  color: rgba(45,75,119,.78);
}
.kfd-results-head--modal .kfd-results-subline{
  margin:4px 0 0 0;
  font-size:13px;
}

/* Ensure old controls never show (we removed them from markup, but keep safe) */
.kfd-results-head--modal .kfd-back,
/* No !important needed: two classes here already out-specificity the plain
   .kfd-change-filter rules (~lines 720, 950). */
.kfd-results-head--modal .kfd-change-filter{display:none;}

/* Modal results header: filter pills bottom centered */
.kfd-results-head--modal .kfd-filter-pills{
  width:100%;
  justify-content:center;
  margin-top:10px;
}



/* ===== Global site background (KFD v1.17.1) ===== */
body.kfd-site-bg{
  position: relative;
  background: transparent !important;
}
body.kfd-site-bg::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image: url('kfd-site-bg.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: var(--kfd-site-bg-opacity, 1);
}

/* ===== Mobile Navigation (Hamburger) – refined for consistency (KFD v1.17.5) =====
   Goal: no cut-off text, consistent indentation, cleaner nested submenu look. */
@media (max-width: 980px){
  /* Dialog padding: this round's value (58px 14px 16px) was itself overridden by
     a later round ("v1.17.6", further down) to 62px 18px 18px — removed as dead
     weight rather than left as a third, never-applied padding declaration. */

  /* :where(.container, .submenu-container){list-style,margin,padding:0} removed
     here: :where() always contributes zero specificity, so this had the exact
     same specificity as KFD v1.17.6's ":where(ul.container, ul.submenu-container)"
     further down — which comes later and re-sets all three (plus more), so it
     always won anyway. */

  /* gap:10px on .wp-block-navigation__container removed here: the more specific
     "ul.wp-block-navigation__container" rule further down (KFD v1.17.6) sets
     gap:12px and always wins, so this was already dead. Verified live, no
     visual change. */

  /* padding/border-radius/overflow now merged into the single
     .wp-block-navigation-item__content rule near the top of this file. */

  /* Submenu wrapper: no extra "box" – just a subtle left accent + indent */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    margin: 8px 0 0 0 !important;
    padding: 0 0 0 14px !important; /* indent */
    background: transparent !important;
    border: none !important;
    border-left: 2px solid rgba(230,140,84,.22) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container li,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    padding: 12px 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(0,0,0,.06) !important;
    background: rgba(255,255,255,.64) !important;
  }

  /* The identical ":where(item__content, item__label)" hard-reset used to be
     repeated here byte-for-byte — removed as a pure duplicate of the one in
     KFD v1.17.6 further down (same selector, same values, that one wins as
     the later declaration anyway). */

  /* Toggle button for submenus (chevron) – nicer and doesn’t shift text */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle{
    margin-left: auto !important;
    border-radius: 12px !important;
    padding: 10px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: rgba(255,255,255,.55) !important;
  }
}

/* ===== Mobile Navigation (Hamburger) – final layout lock (KFD v1.17.6) =====
   Fixes: left cut-off text, inconsistent indentation, messy submenu alignment.
   Scope: ONLY when the WP Navigation Block overlay is open on mobile. */
@media (max-width: 980px){
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{
    padding: 62px 18px 18px !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Reset any theme offsets that shift the list left/right */
  .wp-block-navigation__responsive-container.is-menu-open
  :where(ul.wp-block-navigation__container, ul.wp-block-navigation__submenu-container){
    margin: 0 !important;
    padding: 0 !important;
    padding-inline-start: 0 !important;
    list-style: none !important;
    transform: none !important;
    translate: none !important;
    left: 0 !important;
    right: 0 !important;
    inset: auto !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__container{
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__container > li.wp-block-navigation-item{
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  /* Make each top-level entry a full-width "pill" with consistent padding */
  .wp-block-navigation__responsive-container.is-menu-open
  ul.wp-block-navigation__container > li.wp-block-navigation-item > a.wp-block-navigation-item__content{
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: rgba(255,255,255,.70) !important;
    overflow: visible !important;
  }

  /* Hard reset for cut-off culprits */
  .wp-block-navigation__responsive-container.is-menu-open
  :where(.wp-block-navigation-item__content, .wp-block-navigation-item__label){
    margin-left: 0 !important;
    text-indent: 0 !important;
    transform: none !important;
    clip-path: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  /* Parent items with submenu: keep link + toggle on one line */
  .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.has-child{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.has-child > a.wp-block-navigation-item__content{
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.has-child > button.wp-block-navigation-submenu__toggle{
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: rgba(255,255,255,.60) !important;
    height: 48px !important;
    min-width: 48px !important;
  }

  /* Submenu: nested, slightly indented, visually calmer */
  .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container{
    flex-basis: 100% !important;
    width: 100% !important;
    margin-top: 10px !important;
    padding-left: 14px !important;
    border-left: 2px solid rgba(230,140,84,.22) !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container > li{
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container > li > a.wp-block-navigation-item__content{
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    background: rgba(255,255,255,.64) !important;
  }
}




/* ===== KFD v1.18.6 – Mobile 'Erklärungen' accordion (robust, no hiding of label) ===== */
@media (max-width: 980px){
  body .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-item.kfd-nav-erklaerungen{
    display: block !important;
    position: relative !important;
  }

  /* Make the trigger a full-width pill and reserve space for the chevron */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > :where(a.wp-block-navigation-item__content, button.wp-block-navigation-item__content, button.wp-block-navigation-submenu__toggle, .wp-block-navigation-item__content){
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: 44px !important;
    cursor: pointer !important;
  }

  /* Only hide the *detached* icon-toggle if a real anchor exists. */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen.kfd-erk-has-anchor > :where(button.wp-block-navigation-submenu__toggle, button.wp-block-navigation__submenu-icon){
    display: none !important;
  }

  /* If the label itself is the toggle button, keep it visible. */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > button.wp-block-navigation-submenu__toggle{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: rgba(255,255,255,.70) !important;
    border-radius: 18px !important;
  }

  /* Small chevron on the parent trigger (always) */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > :where(a.wp-block-navigation-item__content, button.wp-block-navigation-item__content, button.wp-block-navigation-submenu__toggle, .wp-block-navigation-item__content)::after{
    content: '';
    position: absolute;
    right: 18px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .55;
    pointer-events: none;
  }

  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen.kfd-submenu-open > :where(a.wp-block-navigation-item__content, button.wp-block-navigation-item__content, button.wp-block-navigation-submenu__toggle, .wp-block-navigation-item__content)::after{
    transform: rotate(-135deg);
    opacity: .70;
  }

  /* Ensure submenu uses our accordion show/hide, not theme transforms */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container{
    display: none !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
  }
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen.kfd-submenu-open > ul.wp-block-navigation__submenu-container{
    display: flex !important;
  }

  /* Submenu items: no extra chevrons */
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container
  :where(button.wp-block-navigation-submenu__toggle, button.wp-block-navigation__submenu-icon){
    display: none !important;
  }
}

/* ===== KFD v1.18.7 – Cleaner formatting for the opened 'Erklärungen' submenu (mobile overlay) =====
   Goal: nested items look clearly subordinate, without heavy "pill-in-pill" boxing.
*/
@media (max-width: 980px){
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen.kfd-submenu-open > ul.wp-block-navigation__submenu-container{
    /* keep it clearly nested and aligned under the parent */
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important; /* match spacing of the other menu pills */
    width: calc(100% - 18px) !important;
    margin: 10px 0 0 18px !important;
    padding: 6px 0 6px 14px !important;
    background: transparent !important;
    border: none !important;
    border-left: 2px solid rgba(230,140,84,.26) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container > li{
    margin: 0 !important; /* spacing handled by gap */
  }


body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container
  > li > a.wp-block-navigation-item__content{
    /* calmer nested items */
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(0,0,0,.06) !important;
    background: rgba(255,255,255,.62) !important;
    box-shadow: none !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container
  > li > a.wp-block-navigation-item__content:hover,
  body .wp-block-navigation__responsive-container.is-menu-open
  li.wp-block-navigation-item.kfd-nav-erklaerungen > ul.wp-block-navigation__submenu-container
  > li > a.wp-block-navigation-item__content:focus{
    background: rgba(255,255,255,.78) !important;
  }
}

/* =========================
   Provider / Dispatch Detail Pages
   ========================= */

.kfd-result-card[data-kfd-url]{
  cursor: pointer;
}
.kfd-result-card[data-kfd-url]:focus{
  outline: 2px solid rgba(0,0,0,.25);
  outline-offset: 3px;
}

.kfd-profile{
  max-width: 980px;
  margin: 18px auto;
  padding: 0 16px;
  display: grid;
  gap: 14px;
}

.kfd-profile-card,
.kfd-profile-map,
.kfd-profile-social{
  background: linear-gradient(180deg,
    var(--wp--preset--color--base, rgba(255,255,255,.88)),
    rgba(255,246,235,.70)
  );
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* Make the top profile card feel like the result cards (subtle accent bar) */
.kfd-profile-card{
  position: relative;
  overflow: hidden;
}
.kfd-profile-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background: rgba(230,140,84,.70);
}

.kfd-profile-head{
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 10px;
}

.kfd-profile-logo{
  flex: 0 0 auto;
  /* Larger logo on detail pages */
  width: 92px;
  height: 92px;
  border-radius: 20px;
}

.kfd-profile-logo span{ font-size: 18px; }

.kfd-profile-headcopy{
  min-width: 0;
}

.kfd-profile-type{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .7;
  margin-bottom: 2px;
}

.kfd-profile-name{
  font-size: 22px;
  font-weight: 900;
  line-height: 1.15;
}

.kfd-profile-address{
  margin: 6px 0 0 0;
  opacity: .85;
}

/* Profile contact pills: make them match the card UI (and prevent theme overrides) */
.kfd-profile .kfd-contact-pills{
  margin-top: 14px;
  gap: 12px;
}
.kfd-profile .kfd-contact-pill{
  border-radius: 18px;
  padding: 14px 16px;
  background: rgba(255,255,255,.86);
  border-color: rgba(45,75,119,.14);
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
  font-size: 15px;
}
.kfd-profile .kfd-contact-pill--phone{
  font-size: 22px;
  padding: 16px 18px;
  border-radius: 18px;
}
.kfd-profile .kfd-contact-pill--phone span{
  font-size: 22px;
}

.kfd-profile-subtitle{
  margin: 0 0 10px 0;
  font-size: 16px;
  font-weight: 900;
}

.kfd-map-embed{
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
}

.kfd-map-embed iframe{
  width: 100%;
  height: 320px;
  border: 0;
  display: block;
}

.kfd-map-link{
  margin: 10px 0 0 0;
  font-size: 14px;
  opacity: .85;
}

.kfd-contact-pill--social{
  opacity: .95;
}

/* v1.20.3 – Provider page pills: cleaner, consistent look */
.kfd-profile .kfd-profile-contact,
.kfd-profile .kfd-profile-social-pills{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap: 12px !important;
}

.kfd-profile .kfd-contact-pill{
  width:100% !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap: 12px !important;
  margin:0 !important;
  text-decoration:none !important;
  border-radius: 18px !important;
  border: 1px solid rgba(45,75,119,.14) !important;
  background: rgba(255,255,255,.86) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.05) !important;
}

.kfd-profile .kfd-pill-ico{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 auto;
  background: rgba(45,75,119,.08);
  color: rgba(45,75,119,.9);
  font-size: 16px;
  line-height: 1;
}

.kfd-profile .kfd-contact-pill--phone{
  justify-content:center !important;
  gap: 10px !important;
  background: var(--kfd-theme-primary, var(--kfd-accent, #E68C54)) !important;
  color: #fff !important;
  border-color: rgba(45,75,119,.22) !important;
  box-shadow: 0 14px 28px rgba(45,75,119,.18) !important;
}

.kfd-profile .kfd-contact-pill--phone .kfd-pill-ico{
  background: rgba(255,255,255,.18);
  color: #fff;
}

.kfd-profile .kfd-contact-pill--phone span{
  font-weight: 900 !important;
}

.kfd-profile .kfd-profile-social-pills .kfd-contact-pill{
  justify-content:flex-start !important;
}

@media (max-width: 780px){
  .kfd-map-embed iframe{ height: 260px; }
}


/* Startseiten-Statistik unter der Suche */
.kfd-home-stats{
  margin-top:18px;
  display:grid;
  gap:14px;
}

.kfd-home-stats-card{
  /* gleiche Optik wie die Such-Card */
  background: rgba(255,255,255,.55) !important;
  border: 1px solid rgba(21,49,101,.06) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.06) !important;
  padding: 0 !important;
}
.kfd-home-stats__row{
  display:grid;
  grid-template-columns: 1fr 240px;
  gap:16px;
  align-items:center;
  padding:16px 18px;
}
.kfd-home-stats__text{
  color:#b00020;
  font-weight:700;
  font-size:16px;
  line-height:1.35;
}
.kfd-home-stats__text strong{
  font-weight:900;
  font-size:20px;
}
.kfd-home-stats__region{
  font-weight:900;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.kfd-home-stats__img{
  justify-self:end;
  width:100%;
  max-width:240px;
}
.kfd-home-stats__img img{
  width:100%;
  height:auto;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  display:block;
}
@media (max-width: 780px){
  .kfd-home-stats__row{
    grid-template-columns: 1fr;
    text-align:center;
  }
  .kfd-home-stats__img{
    justify-self:center;
    max-width:320px;
  }
}
