:root {
  --ksf-plum:#412d4d;
  --ksf-plum-deep:#2e2038;
  --ksf-violet:#745b82;
  --ksf-rose:#d7879a;
  --ksf-rose-pale:#f7e7ec;
  --ksf-lilac:#f3eef7;
  --ksf-mist:#f8f6fa;
  --ksf-cream:#fffdfb;
  --ksf-ink:#30283a;
  --ksf-muted:#6d6573;
  --ksf-line:#e8e2eb;
  --ksf-shadow:0 22px 70px rgba(65,45,77,.10);
}

html { scroll-behavior:smooth; }
body.ksf-global-theme { margin:0; color:var(--ksf-ink); background:var(--ksf-cream); font-family:"Avenir Next",Avenir,Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:17px; line-height:1.72; }
body.ksf-global-theme * { box-sizing:border-box; }
body.ksf-global-theme #page-container { overflow:visible; padding-top:0 !important; background:var(--ksf-cream); }
body.ksf-global-theme a { color:var(--ksf-plum); text-decoration:none; }
body.ksf-global-theme #main-content .entry-content a,
body.ksf-global-theme #main-content .et_pb_text a { background-image:none !important; box-shadow:none !important; text-decoration:none !important; }
body.ksf-global-theme #main-content .entry-content a::after,
body.ksf-global-theme #main-content .entry-content p a::after,
body.ksf-global-theme #main-content .entry-content span a::after,
body.ksf-global-theme #main-content .et_pb_text a::after,
body.ksf-global-theme.single-post #main-content a::after { content:none !important; display:none !important; width:0 !important; height:0 !important; border:0 !important; background:none !important; box-shadow:none !important; }
body.ksf-global-theme p { padding-bottom:0; }
body.ksf-global-theme h1, body.ksf-global-theme h2, body.ksf-global-theme h3, body.ksf-global-theme h4 { color:var(--ksf-plum); font-family:inherit; font-weight:750; line-height:1.12; letter-spacing:-.035em; overflow-wrap:break-word; }
body.ksf-global-theme h1 { font-size:clamp(42px,5vw,76px); }
body.ksf-global-theme h2 { font-size:clamp(32px,3.5vw,52px); }
body.ksf-global-theme h3 { font-size:clamp(24px,2vw,31px); }
body.ksf-global-theme button, body.ksf-global-theme input, body.ksf-global-theme textarea, body.ksf-global-theme select { font:inherit; }

.ksf-skip-link { position:fixed; z-index:100000; top:12px; left:12px; padding:12px 18px; border-radius:99px; color:#fff !important; background:var(--ksf-plum); transform:translateY(-160%); }
.ksf-skip-link:focus { transform:none; }
.ksf-global-header { position:relative; z-index:1000; width:min(1600px,calc(100% - 48px)); min-height:82px; display:flex; align-items:center; gap:26px; margin:18px auto; padding:12px 16px 12px 22px; border:1px solid rgba(116,91,130,.14); border-radius:999px; background:rgba(255,255,255,.96); box-shadow:0 10px 40px rgba(65,45,77,.07); }
.ksf-brand { min-width:224px; display:flex; align-items:center; gap:11px; color:var(--ksf-plum) !important; text-decoration:none; line-height:1.05; }
.ksf-brand-mark { width:45px; height:45px; display:grid; place-items:center; flex:0 0 auto; border:1px dashed #bcaec5; border-radius:50%; background:var(--ksf-lilac); font-size:11px; font-weight:800; letter-spacing:.05em; }
.ksf-brand strong { display:block; font-size:16px; letter-spacing:.035em; }
.ksf-brand small { display:block; margin-top:6px; color:var(--ksf-muted); font-size:9px; letter-spacing:.04em; }
.ksf-primary-nav { display:flex; align-items:center; justify-content:center; gap:clamp(14px,2vw,30px); flex:1; }
.ksf-primary-nav a { color:var(--ksf-ink) !important; font-size:14px; font-weight:650; text-decoration:none; white-space:nowrap; }
.ksf-primary-nav a:hover, .ksf-primary-nav a:focus { color:var(--ksf-rose) !important; }
.ksf-nav-clinic::before { content:"○"; margin-right:7px; color:var(--ksf-rose); }
.ksf-nav-dropdown { position:relative; }
.ksf-nav-dropdown summary { display:flex; align-items:center; gap:6px; padding:8px 0; color:var(--ksf-ink); font-size:14px; font-weight:650; white-space:nowrap; cursor:pointer; list-style:none; }
.ksf-nav-dropdown summary::-webkit-details-marker { display:none; }
.ksf-nav-dropdown summary span { color:var(--ksf-rose); font-size:16px; transition:transform .2s ease; }
.ksf-nav-dropdown[open] summary span { transform:rotate(180deg); }
.ksf-nav-dropdown-menu { position:absolute; top:calc(100% + 12px); right:-20px; width:245px; display:grid; gap:3px; padding:14px; border:1px solid var(--ksf-line); border-radius:20px; background:#fff; box-shadow:var(--ksf-shadow); }
.ksf-nav-dropdown-menu::before { content:""; position:absolute; right:30px; bottom:100%; width:70px; height:14px; }
.ksf-primary-nav .ksf-nav-dropdown-menu a { padding:11px 13px; border-radius:11px; white-space:normal; }
.ksf-primary-nav .ksf-nav-dropdown-menu a:hover,
.ksf-primary-nav .ksf-nav-dropdown-menu a:focus { color:var(--ksf-plum) !important; background:var(--ksf-lilac); }
.ksf-header-cta { min-height:52px; display:inline-flex; align-items:center; justify-content:center; padding:13px 24px; border-radius:999px; color:#fff !important; background:var(--ksf-plum); box-shadow:0 10px 28px rgba(65,45,77,.18); font-size:14px; font-weight:750; text-decoration:none; white-space:nowrap; }
.ksf-header-cta:hover { background:var(--ksf-violet); }
.ksf-menu-toggle { display:none; width:48px; height:48px; padding:12px; border:0; border-radius:50%; background:var(--ksf-lilac); }
.ksf-menu-toggle span { display:block; height:2px; margin:4px 0; background:var(--ksf-plum); }

body.ksf-global-theme #main-content { min-height:55vh; background:var(--ksf-cream); }
body.ksf-global-theme #main-content > .container { width:min(1160px,calc(100% - 40px)); max-width:none; padding:72px clamp(24px,5vw,72px) 100px; }
body.ksf-global-theme #main-content > .container::before { display:none; }
body.ksf-global-theme #left-area { float:none; width:100%; padding:0; }
body.ksf-global-theme #sidebar { display:none; }
body.ksf-global-theme article.page > .entry-title { margin:0 0 42px; }

/* Die Plugin-Seiten sind eigenständige, breite Layouts und dürfen nicht in den
 * schmaleren Standard-Leserahmen von WordPress gezwungen werden. */
body.ksf-global-theme.ksfv-page #main-content > .container,
body.ksf-global-theme.ksfv-page #main-content .container,
body.ksf-global-theme.ksfv-page #content-area,
body.ksf-global-theme.ksfv-page #left-area,
body.ksf-global-theme.ksfv-page article.page,
body.ksf-global-theme.ksfv-page article.page .entry-content {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.ksf-global-theme.ksfv-page article.page > .entry-title { display:none !important; }

/* Bestehende Divi-Seiten werden in das gemeinsame, luftige System eingebettet. */
body.ksf-global-theme .et_pb_section { background-color:transparent; }
body.ksf-global-theme .et_pb_row { width:min(1160px,calc(100% - 40px)); max-width:none; }
body.ksf-global-theme .et_pb_text { color:var(--ksf-ink); }
body.ksf-global-theme .et_pb_text_inner { overflow-wrap:break-word; }
body.ksf-global-theme:not(.ksfv-page) #main-content h1,
body.ksf-global-theme:not(.ksfv-page) #main-content h2,
body.ksf-global-theme:not(.ksfv-page) #main-content h3,
body.ksf-global-theme:not(.ksfv-page) #main-content h4 { color:var(--ksf-plum) !important; }
body.ksf-global-theme .et_pb_button, body.ksf-global-theme a.et_pb_button { border:0 !important; border-radius:999px !important; color:#fff !important; background:var(--ksf-plum) !important; box-shadow:0 10px 28px rgba(65,45,77,.16); font-size:16px !important; font-weight:750 !important; }
body.ksf-global-theme .et_pb_button:hover, body.ksf-global-theme a.et_pb_button:hover { padding:.3em 1em !important; background:var(--ksf-violet) !important; }
body.ksf-global-theme .et_pb_button::after { display:none !important; }

/* Inhalts- und Rechtstexte */
body.ksf-legal-page #main-content { padding:74px 20px 110px; background:linear-gradient(180deg,var(--ksf-lilac),var(--ksf-cream) 390px); }
body.ksf-legal-page #main-content .et_pb_section, body.ksf-legal-page #main-content > .container { width:min(1080px,100%); margin:0 auto; padding:0 !important; border-radius:36px; background:#fff !important; box-shadow:var(--ksf-shadow); }
body.ksf-legal-page #main-content .et_pb_row { width:100%; padding:clamp(34px,6vw,78px) !important; }
body.ksf-legal-page #main-content h1:first-child, body.ksf-legal-page #main-content .entry-title { margin-bottom:38px; }
body.ksf-legal-page #main-content h2 { margin-top:1.4em; font-size:clamp(27px,3vw,39px); }
body.ksf-legal-page #main-content h3 { margin-top:1.3em; }
body.ksf-legal-page #main-content p, body.ksf-legal-page #main-content li { color:#514958; }

/* Klinik-Datenbank: gleiches Design, vollständig getrennte Funktion. */
body.ksf-clinic-page #main-content { padding:72px 20px 115px; background:linear-gradient(180deg,var(--ksf-lilac),var(--ksf-cream) 470px); }
body.ksf-clinic-page #main-content .et_pb_section { padding:0 !important; }
body.ksf-clinic-page #main-content .et_pb_row { width:min(1180px,100%); padding:clamp(18px,3vw,38px) 0 !important; }
body.ksf-clinic-page #main-content .et_pb_text { margin-bottom:24px; }
body.ksf-clinic-page #main-content .et_pb_text:not(.et_pb_text_2) { border-radius:30px; }
body.ksf-clinic-page .ksf-rating-form-container, body.ksf-clinic-page .ksf-ratings-container { max-width:1100px; }
body.ksf-clinic-page .ksf-hospital-search, body.ksf-clinic-page .ksf-rating-form, body.ksf-clinic-page .ksf-rating-item { border-color:var(--ksf-line); border-radius:28px; box-shadow:0 14px 46px rgba(65,45,77,.06); }
body.ksf-clinic-page .ksf-search-box input, body.ksf-clinic-page .ksf-form-field input, body.ksf-clinic-page .ksf-form-field textarea, body.ksf-clinic-page .ksf-form-field select { border-color:#d9d0df; border-radius:14px; background:var(--ksf-mist); }
body.ksf-clinic-page .ksf-search-box button, body.ksf-clinic-page #ksf-rating-submit { border-radius:999px; background:var(--ksf-plum); }
body.ksf-clinic-page .ksf-search-results, body.ksf-clinic-page .ksf-selected-hospital, body.ksf-clinic-page .ksf-rating-details, body.ksf-clinic-page .ksf-no-ratings { border-radius:18px; background:var(--ksf-lilac); }
body.ksf-clinic-page .ksf-rating-experience { border-left-color:var(--ksf-rose); border-radius:0 18px 18px 0; background:var(--ksf-rose-pale); }
body.page-id-44829 #main-content a {
  color:var(--ksf-plum) !important;
  border:0 !important;
  background-image:none !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
body.page-id-44829 #main-content a *,
body.page-id-44829 #main-content a span,
body.page-id-44829 #main-content a strong { color:inherit !important; text-decoration:none !important; }
body.page-id-44829 #main-content a::before,
body.page-id-44829 #main-content a::after { border:0 !important; background:none !important; box-shadow:none !important; text-decoration:none !important; }
body.page-id-44829 #main-content p > a:not(.ksf-flag-spam-button):hover { color:var(--ksf-rose) !important; }

/* Die FAQ war bisher als dunkelblaues Divi-Akkordeon gestaltet. */
body.page-id-44829 .et_pb_accordion .et_pb_toggle {
  overflow:hidden;
  margin-bottom:18px !important;
  padding:0 !important;
  border:1px solid var(--ksf-line) !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:0 12px 35px rgba(65,45,77,.07) !important;
}
body.page-id-44829 .et_pb_accordion .et_pb_toggle_title {
  padding:24px 70px 24px 28px !important;
  color:var(--ksf-plum) !important;
  font-size:clamp(18px,1.6vw,22px) !important;
  line-height:1.35 !important;
}
body.page-id-44829 .et_pb_accordion .et_pb_toggle_title::before {
  right:24px !important;
  width:34px;
  height:34px;
  display:grid !important;
  place-items:center;
  margin-top:-17px !important;
  border-radius:50%;
  color:#fff !important;
  background:var(--ksf-plum);
  font-family:Arial,sans-serif !important;
  font-size:25px !important;
  font-weight:400 !important;
  content:"+" !important;
}
body.page-id-44829 .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title::before { content:"−" !important; }
body.page-id-44829 .et_pb_accordion .et_pb_toggle_content {
  padding:0 28px 28px !important;
  color:var(--ksf-ink) !important;
  background:#fff !important;
  font-size:17px !important;
  line-height:1.7 !important;
}
body.page-id-44829 .et_pb_accordion .et_pb_toggle_content p,
body.page-id-44829 .et_pb_accordion .et_pb_toggle_content strong { color:var(--ksf-ink) !important; }
body.page-id-44829 .et_pb_accordion .et_pb_toggle_content a { color:var(--ksf-plum) !important; }

.ksf-global-footer { width:min(1600px,calc(100% - 48px)); margin:28px auto 22px; overflow:hidden; border-radius:42px; color:rgba(255,255,255,.78); background:var(--ksf-plum-deep); }
.ksf-footer-main { display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:clamp(34px,5vw,90px); padding:clamp(46px,6vw,86px); }
.ksf-footer-main h2 { margin:0 0 22px; color:#fff !important; font-size:17px !important; letter-spacing:0; }
.ksf-footer-main a { display:block; margin:12px 0; color:rgba(255,255,255,.82) !important; text-decoration:none; }
.ksf-footer-main a:hover { color:#fff; }
.ksf-footer-brand p { max-width:430px; margin-top:24px; }
.ksf-footer-logo { width:150px; height:90px; display:grid; place-items:center; border:1px dashed rgba(255,255,255,.42); border-radius:22px; color:#fff; text-align:center; font-size:11px; font-weight:800; letter-spacing:.1em; }
.ksf-footer-bottom { display:flex; justify-content:space-between; gap:22px; padding:24px clamp(46px,6vw,86px); border-top:1px solid rgba(255,255,255,.12); font-size:13px; }
.ksf-footer-bottom a { color:#fff !important; }

@media (max-width:1100px) {
  .ksf-global-header { border-radius:30px; }
  .ksf-menu-toggle { display:block; margin-left:auto; }
  .ksf-primary-nav { position:absolute; top:calc(100% + 10px); right:0; left:0; display:none; align-items:stretch; flex-direction:column; gap:0; padding:18px; border:1px solid var(--ksf-line); border-radius:26px; background:#fff; box-shadow:var(--ksf-shadow); }
  .ksf-primary-nav.is-open { display:flex; }
  .ksf-primary-nav a { padding:13px 15px; border-radius:12px; }
  .ksf-primary-nav a:hover { background:var(--ksf-lilac); }
  .ksf-nav-dropdown summary { padding:13px 15px; }
  .ksf-nav-dropdown-menu { position:static; width:auto; margin:0 8px 8px; padding:8px; border:0; border-radius:14px; background:var(--ksf-mist); box-shadow:none; }
  .ksf-nav-dropdown-menu::before { display:none; }
  .ksf-header-cta { display:none; }
  .ksf-footer-main { grid-template-columns:1.4fr 1fr 1fr; }
  .ksf-footer-main > :last-child { grid-column:2; }
}

@media (max-width:720px) {
  body.ksf-global-theme { font-size:16px; }
  .ksf-global-header { width:calc(100% - 24px); margin:12px auto; padding:10px 12px; }
  .ksf-brand { min-width:0; }
  .ksf-brand strong { font-size:14px; }
  .ksf-global-footer { width:calc(100% - 24px); border-radius:28px; }
  .ksf-footer-main { grid-template-columns:1fr; padding:40px 28px; }
  .ksf-footer-main > :last-child { grid-column:auto; }
  .ksf-footer-bottom { flex-direction:column; padding:22px 28px; }
  body.ksf-legal-page #main-content, body.ksf-clinic-page #main-content { padding:42px 12px 80px; }
  body.ksf-legal-page #main-content .et_pb_section, body.ksf-legal-page #main-content > .container { border-radius:26px; }
  body.ksf-clinic-page .ksf-rating-form-container, body.ksf-clinic-page .ksf-ratings-container { padding:20px; }
  body.page-id-44829 .et_pb_accordion .et_pb_toggle_title { padding:20px 60px 20px 20px !important; }
  body.page-id-44829 .et_pb_accordion .et_pb_toggle_content { padding:0 20px 22px !important; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }
