:root {
  --ke-ink: #171717;
  --ke-muted: #505050;
  --ke-teal: #046e6e;
  --ke-teal-dark: #035858;
  --ke-beige: #c2a990;
  --ke-pale: #b9d3d0;
  --ke-pale-soft: #eef5f4;
  --ke-coral: #c85a4a;
  --ke-white: #fff;
  --ke-line: #d7e2e0;
  --ke-radius: 20px;
  --ke-shadow: 0 12px 36px rgba(4, 60, 60, .10);
}
html { scroll-behavior: smooth; overflow-x: hidden; }
body, button, input, select, textarea, h1, h2, h3, h4, h5, h6, blockquote,
.elementor-widget-text-editor, .elementor-button {
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
}
body { color: var(--ke-ink); line-height: 1.65; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { color: var(--ke-ink); line-height: 1.16; letter-spacing: -.025em; }
h1 { text-wrap: balance; }
h2, h3 { text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
a { text-underline-offset: .18em; }
.elementor-widget-text-editor a:not(.elementor-button), .elementor-widget-theme-post-content a:not(.elementor-button) {
  color: var(--ke-teal-dark); text-decoration: underline; text-decoration-thickness: .08em;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--ke-coral) !important; outline-offset: 3px !important;
}

/* Einheitliche, kontrastreiche Aktionen */
.elementor-button, button, input[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px; border-radius: 999px !important; font-weight: 700 !important;
  letter-spacing: .01em;
  line-height: 1.18 !important;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.elementor-button, input[type="submit"], button[type="submit"] {
  background: var(--ke-teal) !important; color: var(--ke-white) !important;
  border: 2px solid var(--ke-teal) !important; box-shadow: 0 7px 18px rgba(4, 110, 110, .18);
}
.elementor-button:hover, .elementor-button:focus-visible, input[type="submit"]:hover, button[type="submit"]:hover {
  background: var(--ke-teal-dark) !important; border-color: var(--ke-teal-dark) !important;
  color: var(--ke-white) !important; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(4, 88, 88, .24);
}
.elementor-button .elementor-button-text { color: inherit; }

/* Sekundäraktionen auf dunklen Flächen – wird global automatisch erkannt. */
.elementor-button[data-ke-on-dark="true"],
.ehp-button[data-ke-on-dark="true"] {
  background: var(--ke-white) !important;
  color: var(--ke-teal-dark) !important;
  border-color: var(--ke-white) !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}
.elementor-button[data-ke-on-dark="true"]:hover,
.elementor-button[data-ke-on-dark="true"]:focus-visible,
.ehp-button[data-ke-on-dark="true"]:hover,
.ehp-button[data-ke-on-dark="true"]:focus-visible {
  background: var(--ke-beige) !important;
  color: var(--ke-ink) !important;
  border-color: var(--ke-beige) !important;
}
[data-ke-text-on-dark="true"],
[data-ke-text-on-dark="true"] :is(a,span,strong,em),
main [data-ke-text-on-dark="true"].elementor-heading-title {
  color: var(--ke-white) !important;
}
main [data-ke-text-on-dark="true"] a {
  color: var(--ke-white) !important;
  text-decoration-color: rgba(255,255,255,.75) !important;
}

/* Startseite: CTA „Kostenloser Selbsttest“ stabil wie alle Aktionen auf Dunkelgrün. */
.page-id-169 .elementor-element-504cc934 .elementor-button,
.page-id-169 .elementor-element-504cc934 .elementor-button .elementor-button-text {
  background: var(--ke-white) !important;
  color: var(--ke-teal-dark) !important;
  border-color: var(--ke-white) !important;
}
.page-id-169 .elementor-element-504cc934 .elementor-button .elementor-button-text {
  background: transparent !important;
  border: 0 !important;
}
.page-id-169 .elementor-element-504cc934 .elementor-button:hover,
.page-id-169 .elementor-element-504cc934 .elementor-button:focus-visible,
.page-id-169 .elementor-element-504cc934 .elementor-button:hover .elementor-button-text,
.page-id-169 .elementor-element-504cc934 .elementor-button:focus-visible .elementor-button-text {
  background: transparent !important;
  color: var(--ke-ink) !important;
  border: 0 !important;
}

/* Header und Navigation */
.elementor-location-header {
  position: relative; z-index: 20; background: rgba(255,255,255,.97);
  box-shadow: 0 1px 0 rgba(4, 110, 110, .12);
}

/* Tabellen: Desktop bleibt klassisch, mobil werden Inhalte lesbarer. */
.elementor-widget-text-editor table,
.elementor-widget-html table,
.elementor-widget-theme-post-content table,
.entry-content table {
  width: 100%;
  border-collapse: collapse;
}
.elementor-widget-text-editor table th,
.elementor-widget-text-editor table td,
.elementor-widget-html table th,
.elementor-widget-html table td,
.elementor-widget-theme-post-content table th,
.elementor-widget-theme-post-content table td,
.entry-content table th,
.entry-content table td {
  border: 1px solid var(--ke-line);
  padding: .9rem 1rem;
  vertical-align: top;
}
.elementor-widget-text-editor table th,
.elementor-widget-html table th,
.elementor-widget-theme-post-content table th,
.entry-content table th {
  background: var(--ke-pale-soft);
  color: var(--ke-teal-dark);
  font-weight: 800;
}
.ke-table-scroll-hint {
  display: none;
  margin: 0 0 10px;
  color: var(--ke-muted);
  font-size: .92rem;
}
.ke-responsive-table-wrap {
  max-width: 100%;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item {
  border-radius: 999px; font-weight: 600; min-height: 44px;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus-visible,
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active {
  background: var(--ke-pale-soft); color: var(--ke-teal-dark) !important;
}

body.elementor-page main > .elementor, body.elementor-page .elementor-location-single > .elementor { overflow: clip; }
body.elementor-page .elementor-widget-text-editor { color: var(--ke-ink); }
body.elementor-page .elementor-widget-divider .elementor-divider-separator { border-color: var(--ke-pale); }
body.elementor-page .elementor-widget-image img { border-radius: 16px; }
.balken-wrapper { max-width: 100%; overflow: hidden; }
.balken-wrapper > .elementor-widget-container { width: 100% !important; max-width: 100% !important; }
.balken-wrapper .elementor-heading-title { max-width: 100%; overflow-wrap: anywhere; }

/* Barriereärmere Lesebreite: nur für Textwidgets, die per JS als zu breit erkannt werden. */
@media (min-width: 1025px) {
  main .ke-readable-text {
    width: 100% !important;
    max-width: 860px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  main .ke-readable-text.zitat,
  main .ke-readable-text.ke-highlight-readable {
    max-width: 960px !important;
  }
  main .ke-readable-text :is(p, li, blockquote) {
    max-width: 100%;
  }
  main :is(.wp-block-paragraph, .wp-block-list, .wp-block-heading, .entry-content > p, .entry-content > ul, .entry-content > ol),
  main .elementor-widget-theme-post-content :is(p:not(.ehp-zigzag__description), ul:not(.elementor-icon-list-items), ol, blockquote) {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }
  main .elementor-widget-icon-list:not(.elementor-location-header *):not(.elementor-location-footer *) .elementor-icon-list-items {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }
}

/*
 * Seitenrhythmus nach dem Vorbild der Methodenseite:
 * heller Einstieg, ruhige Inhaltsflächen und wenige dunkelgrüne Zwischenbänder.
 */
.page-id-169 .elementor-element-042b500,
.page-id-276 .elementor-element-6f0a7be,
.page-id-1157 .elementor-element-767da48,
.page-id-1704 .elementor-element-07d82fd,
.page-id-12 .elementor-element-382869d,
.page-id-43 .elementor-element-5a95e82,
.page-id-1455 .elementor-element-d169abe,
.page-id-791 .elementor-element-64fa1c2,
.page-id-1920 .elementor-element-64b8112 {
  background-color: var(--ke-pale-soft) !important;
  background-image: linear-gradient(135deg, #f4f8f7 0%, #e2efed 100%) !important;
}
.page-id-169 .elementor-element-042b500 h1,
.page-id-276 .elementor-element-6f0a7be h1,
.page-id-1157 .elementor-element-767da48 h1,
.page-id-1704 .elementor-element-07d82fd h1,
.page-id-12 .elementor-element-382869d h1,
.page-id-43 .elementor-element-5a95e82 h1,
.page-id-1455 .elementor-element-d169abe h1,
.page-id-791 .elementor-element-64fa1c2 h1,
.page-id-1920 .elementor-element-64b8112 h1 {
  width: auto !important;
  max-width: 100%;
  padding-right: 0 !important;
  background: transparent !important;
  box-decoration-break: clone;
}

/* Große ehemals mittelgrüne Flächen werden zu leichten Wechselabschnitten. */
.page-id-169 .elementor-element-2ce17d7,
.page-id-169 .elementor-element-ae97101,
.page-id-169 .elementor-element-9ffc566,
.page-id-276 .elementor-element-7d5af10,
.page-id-276 .elementor-element-88691d7,
.page-id-276 .elementor-element-1c04673,
.page-id-1157 .elementor-element-ed30047,
.page-id-12 .elementor-element-e2c4e92,
.page-id-12 .elementor-element-5520516 {
  background-color: #f7f9f8 !important;
  background-image: none !important;
}

/* Einzelne dramaturgische Zwischenbänder bleiben bewusst kräftig. */
.page-id-169 .elementor-element-ce2cc8a,
.page-id-276 .elementor-element-8afe2d8,
.page-id-12 .elementor-element-0658c8d {
  background-color: var(--ke-teal) !important;
  background-image: none !important;
  color: var(--ke-white) !important;
  padding-block: clamp(36px, 5vw, 68px) !important;
}
.page-id-169 .elementor-element-ce2cc8a :is(h1,h2,h3,h4,p,li,blockquote,.elementor-heading-title,.elementor-widget-text-editor),
.page-id-276 .elementor-element-8afe2d8 :is(h1,h2,h3,h4,p,li,blockquote,.elementor-heading-title,.elementor-widget-text-editor),
.page-id-12 .elementor-element-0658c8d :is(h1,h2,h3,h4,p,li,blockquote,.elementor-heading-title,.elementor-widget-text-editor) {
  color: var(--ke-white) !important;
}

/* Helle Hero-Bilder wirken wie eigenständige Flächen statt wie alte Spaltenlayouts. */
.page-id-169 .elementor-element-042b500 img,
.page-id-276 .elementor-element-6f0a7be img,
.page-id-1157 .elementor-element-767da48 img,
.page-id-12 .elementor-element-382869d img,
.page-id-791 .elementor-element-64fa1c2 img {
  border-radius: 22px !important;
  box-shadow: 0 16px 42px rgba(4, 60, 60, .12);
}

/* Wiederkehrende Karten */
body.elementor-page .elementor-widget-icon-box, body.elementor-page .elementor-widget-image-box,
body.elementor-page .elementor-widget-testimonial, body.elementor-page .elementor-widget-accordion,
body.elementor-page .elementor-widget-toggle, body.elementor-page .elementor-widget-form,
body.elementor-page .elementor-widget-posts article, body.elementor-page .elementor-widget-loop-grid article {
  border-radius: var(--ke-radius);
}
.elementor-widget-icon-box .elementor-icon-box-wrapper, .elementor-widget-image-box .elementor-image-box-wrapper { height: 100%; }
.elementor-widget-icon-box .elementor-icon, .elementor-widget-icon-box .elementor-icon-box-icon { color: var(--ke-teal); }
.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-image-box .elementor-image-box-title { margin-bottom: .55rem; }

/* Erfahrungsberichte */
.elementor-widget-testimonial-carousel .elementor-testimonial, .elementor-widget-reviews .elementor-testimonial {
  height: 100%;
  box-sizing: border-box;
  background: var(--ke-white);
  border: 1px solid var(--ke-line);
  border-radius: var(--ke-radius);
  box-shadow: none;
  padding: 30px !important;
}
.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper { align-items: stretch; }
.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
}
.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper { padding-top: 2px; }
.elementor-widget-reviews .elementor-testimonial__header { padding-bottom: 18px; }
.elementor-widget-reviews .elementor-testimonial__content { padding-top: 20px; }
.elementor-widget-reviews .elementor-testimonial__text { line-height: 1.52; }
.elementor-swiper-button { color: var(--ke-teal-dark) !important; }
.swiper-pagination-bullet-active { background: var(--ke-teal) !important; }

/* Formulare */
.elementor-form .elementor-field-label, label { color: var(--ke-ink); font-weight: 650; }
.elementor-field, input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea {
  min-height: 48px; color: var(--ke-ink) !important; background: var(--ke-white) !important;
  border: 1.5px solid #71817f !important; border-radius: 10px !important;
}
textarea { min-height: 140px; }
.elementor-field:focus, input:focus, select:focus, textarea:focus {
  border-color: var(--ke-teal) !important; box-shadow: 0 0 0 3px rgba(4, 110, 110, .16) !important;
}
::placeholder { color: #606968; opacity: 1; }

/* FAQ */
.elementor-accordion .elementor-accordion-item, .elementor-toggle .elementor-toggle-item {
  border: 1px solid var(--ke-line) !important; border-radius: 14px; overflow: hidden;
  margin-bottom: 12px; background: var(--ke-white);
}
.elementor-accordion .elementor-tab-title, .elementor-toggle .elementor-tab-title { min-height: 52px; color: var(--ke-ink) !important; }
.elementor-accordion .elementor-tab-title.elementor-active, .elementor-toggle .elementor-tab-title.elementor-active {
  background: var(--ke-pale-soft); color: var(--ke-teal-dark) !important;
}

/* Blogkarten */
.elementor-posts .elementor-post, .elementor-loop-container article {
  overflow: hidden; background: var(--ke-white); border: 1px solid var(--ke-line);
  box-shadow: 0 8px 26px rgba(4, 60, 60, .08); transition: transform .2s ease, box-shadow .2s ease;
}
.elementor-posts .elementor-post:hover, .elementor-loop-container article:hover { transform: translateY(-4px); box-shadow: var(--ke-shadow); }
.elementor-posts .elementor-post__text { padding: 22px 24px 26px; }
.elementor-posts .elementor-post__thumbnail img { border-radius: 0; }
.elementor-posts .elementor-post__read-more { color: var(--ke-teal-dark) !important; font-weight: 700; }

/* Hello-Plus-CTA-Karten, unter anderem auf der Eventseite */
.ehp-cta {
  overflow: hidden;
  border: 1px solid var(--ke-line) !important;
  border-radius: 24px !important;
  background: var(--ke-white) !important;
  box-shadow: var(--ke-shadow);
}
.ehp-cta__image-container,
.ehp-cta__img { border-radius: 0 !important; }
.ehp-cta__text-container { padding: clamp(24px, 4vw, 52px) !important; }
.ehp-cta__heading { color: var(--ke-ink) !important; letter-spacing: -.025em; }
.ehp-cta__description { color: var(--ke-muted) !important; font-size: 1.08rem; line-height: 1.65; }
.ehp-button {
  min-height: 48px !important;
  padding: 12px 24px !important;
  border: 2px solid var(--ke-teal) !important;
  border-radius: 999px !important;
  background: var(--ke-teal) !important;
  color: var(--ke-white) !important;
  font-weight: 700 !important;
  box-shadow: 0 7px 18px rgba(4, 110, 110, .18);
}
.ehp-button:hover,
.ehp-button:focus-visible {
  background: var(--ke-teal-dark) !important;
  border-color: var(--ke-teal-dark) !important;
  color: var(--ke-white) !important;
}
.page-id-1704 .elementor-element-850c994 { padding-block: clamp(52px, 7vw, 88px); }
.page-id-1704 .elementor-element-b5de2c5 { max-width: 100% !important; }

/* Fußbereich */
.elementor-location-footer {
  border-top: 0;
  background: var(--ke-teal-dark) !important;
  color: var(--ke-white);
}
.elementor-location-footer .elementor-element-c3852aa {
  padding: clamp(54px, 7vw, 86px) clamp(24px, 5vw, 64px) 26px !important;
  background: var(--ke-teal-dark) !important;
}
.elementor-location-footer .footer,
.elementor-location-footer .elementor-element-60de92f {
  max-width: 1180px;
  margin-inline: auto;
  gap: clamp(30px, 5vw, 70px);
}
.elementor-location-footer h2,
.elementor-location-footer h3,
.elementor-location-footer h4,
.elementor-location-footer p,
.elementor-location-footer li,
.elementor-location-footer .elementor-heading-title,
.elementor-location-footer .elementor-widget-text-editor { color: var(--ke-white) !important; }
.elementor-location-footer h2,
.elementor-location-footer h3,
.elementor-location-footer h4,
.elementor-location-footer .elementor-heading-title { font-size: 1.15rem !important; letter-spacing: .01em; }
.elementor-location-footer a {
  color: var(--ke-white) !important;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.58);
  text-decoration-thickness: .07em;
  text-underline-offset: .22em;
}
.elementor-location-footer a:hover { text-decoration-color: var(--ke-white); }
.elementor-location-footer .elementor-element-ad80acd {
  width: 100%;
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.28);
}

.page-id-43 main .elementor-widget-form, .page-id-1455 main .elementor-widget-form, .page-id-791 main .elementor-widget-form {
  background: var(--ke-pale-soft); border: 1px solid var(--ke-line); box-shadow: var(--ke-shadow);
  padding: clamp(22px, 4vw, 42px);
}
.page-id-2295 .method-bridge blockquote { font-family: Roboto, Arial, Helvetica, sans-serif !important; }

/* Abschluss der Methodenseite */
.page-id-2295 .method-cta {
  padding: clamp(58px, 7vw, 90px) 24px !important;
  background: var(--ke-white) !important;
  color: var(--ke-ink) !important;
}
.page-id-2295 .method-cta > .e-con-inner {
  max-width: 1040px !important;
  padding: clamp(32px, 5vw, 58px) !important;
  border: 1px solid var(--ke-line);
  border-radius: 28px;
  background-color: var(--ke-pale-soft) !important;
  background-image: linear-gradient(135deg, #f4f8f7 0%, #e2efed 100%) !important;
  box-shadow: var(--ke-shadow);
}
.page-id-2295 .method-cta .elementor-widget-text-editor { color: var(--ke-ink) !important; font-size: 1.12rem; }
.page-id-2295 .method-cta .method-secondary-button .elementor-button {
  background: var(--ke-white) !important;
  color: var(--ke-teal-dark) !important;
  border-color: var(--ke-teal) !important;
  box-shadow: none;
}
.page-id-2295 .method-cta .method-secondary-button .elementor-button:hover {
  background: var(--ke-pale) !important;
  color: var(--ke-ink) !important;
}
.page-id-2295 .method-cta small { color: var(--ke-muted); }

/* Gemeinsamer Zeitstrahl */
.ke-timeline {
  position: relative;
  display: grid !important;
  gap: 24px !important;
  width: 100%;
  max-width: 980px;
  margin: 30px auto 0;
  padding: 8px 0 8px 84px !important;
}
.ke-timeline::before {
  content: "";
  position: absolute;
  top: 34px;
  bottom: 34px;
  left: 31px;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(var(--ke-teal), var(--ke-pale));
}
.ke-timeline > .elementor-widget-icon,
.ke-timeline > .elementor-hidden-mobile { display: none !important; }
.ke-timeline__step {
  position: relative;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(24px, 3vw, 34px) !important;
  border: 1px solid var(--ke-line);
  border-radius: 20px;
  background: var(--ke-white);
  box-shadow: 0 8px 26px rgba(4, 60, 60, .07);
}
.ke-timeline__step::before {
  content: attr(data-step);
  position: absolute;
  top: 28px;
  left: -84px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border: 6px solid #f7f9f8;
  border-radius: 50%;
  background: var(--ke-teal);
  color: var(--ke-white);
  font-size: 1.25rem;
  font-weight: 800;
  box-shadow: 0 5px 16px rgba(4, 88, 88, .18);
}
.ke-timeline__step h2,
.ke-timeline__step h3,
.ke-timeline__step strong:first-child {
  display: block;
  margin: 0 0 12px;
  color: var(--ke-teal-dark) !important;
  font-size: clamp(1.2rem, 2vw, 1.5rem) !important;
  line-height: 1.28;
}
.ke-timeline__step p { color: var(--ke-ink); }
.ke-timeline__step p:last-child { margin-bottom: 0; }
.ke-timeline__action { margin-top: 22px; }
.ke-timeline__action .elementor-button { position: static !important; margin: 0; }
.page-id-1157 .elementor-element-c3df610,
.page-id-276 .elementor-element-88691d7 { background: #f7f9f8 !important; }
.page-id-276 .elementor-element-f588f5f,
.page-id-1157 .elementor-element-c5e17eb {
  --width: 100% !important;
  width: 100% !important;
  max-width: 1080px !important;
  margin-inline: auto !important;
}
.page-id-276 .elementor-element-f588f5f > .e-con-inner {
  width: 100% !important;
  max-width: 980px !important;
}
.page-id-1157 .elementor-element-c5e17eb > .elementor-element-7e2727f { display: none !important; }
.page-id-1157 .elementor-element-5b643b8 {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 980px !important;
  margin-inline: auto !important;
}

/* Vollbreite lokale Standortübersicht */
.page-id-43 .ke-location {
  width: 100vw !important;
  max-width: none !important;
  margin: clamp(58px, 8vw, 100px) calc(50% - 50vw) 0 !important;
  padding: clamp(52px, 7vw, 88px) max(24px, calc((100vw - 1140px) / 2)) !important;
  background: var(--ke-teal-dark) !important;
  color: var(--ke-white);
}
.ke-location__inner {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(480px, 1.35fr);
  gap: clamp(36px, 6vw, 78px);
  align-items: center;
  width: 100%;
  max-width: 1280px;
  margin: auto;
}
.ke-location__copy h2,
.ke-location__copy p,
.ke-location__copy address { color: var(--ke-white) !important; }
.ke-location__copy h2 {
  margin: 10px 0 20px;
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
  font-size: clamp(2rem, 3.4vw, 2.85rem);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.12;
}
.ke-location__copy address { margin: 24px 0; font-style: normal; font-size: 1.08rem; }
.ke-eyebrow {
  display: inline-block;
  color: var(--ke-pale);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ke-location__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 16px; }
.ke-arrival-tab {
  min-height: 42px;
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.55) !important;
  background: transparent !important;
  color: var(--ke-white) !important;
  box-shadow: none !important;
}
.ke-arrival-tab.is-active { background: var(--ke-white) !important; color: var(--ke-teal-dark) !important; }
.ke-arrival-panel { min-height: 58px; }
.ke-location__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.ke-location__actions .elementor-button { background: var(--ke-white) !important; color: var(--ke-teal-dark) !important; border-color: var(--ke-white) !important; }
.ke-location__copy small { display: block; margin-top: 20px; color: rgba(255,255,255,.75); line-height: 1.5; }
.ke-location__map-wrap { display: grid; gap: 12px; }
.ke-local-map {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
  background: #dfe8df;
}
.ke-local-map img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0 !important;
  transition: transform .28s ease;
}
.ke-local-map:hover img,
.ke-local-map:focus-visible img { transform: scale(1.012); }
.ke-local-map:focus-visible {
  outline: 3px solid var(--ke-white);
  outline-offset: 5px;
}
.ke-map-marker {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 38px;
  transform: translate(-50%, -100%);
  filter: drop-shadow(0 10px 10px rgba(0, 36, 36, .30));
}
.ke-map-marker::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  border-radius: 50% 50% 50% 0;
  background: var(--ke-teal);
  transform: rotate(-45deg);
}
.ke-map-marker::after {
  content: "";
  position: absolute;
  left: 9px;
  top: 9px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--ke-white);
}
.ke-map-external-link {
  justify-self: end;
  color: var(--ke-white) !important;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ke-map-external-link:focus-visible {
  outline: 3px solid var(--ke-white);
  outline-offset: 4px;
  border-radius: 8px;
}

.page-id-12 .elementor-element-382869d,
.page-id-169 .elementor-element-9ffc566,
.page-id-1157 .elementor-element-ed30047 {
  align-items: flex-start !important;
}

/* Startseite: modernere Feature- und Angebotssektionen ohne Elementor-Inhalte umzubauen. */
.page-id-169 .elementor-element-2ce17d7,
.page-id-169 .elementor-element-ae97101 {
  position: relative;
  overflow: hidden;
  padding-inline: clamp(24px, 4vw, 64px) !important;
}
.page-id-169 .elementor-element-2ce17d7::before,
.page-id-169 .elementor-element-ae97101::before {
  content: "";
  position: absolute;
  inset: 34px clamp(20px, 4vw, 60px);
  border-radius: 34px;
  background:
    radial-gradient(circle at 16% 12%, rgba(185,211,208,.45), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.72), rgba(238,245,244,.7));
  pointer-events: none;
}
.page-id-169 .elementor-element-2ce17d7 > *,
.page-id-169 .elementor-element-ae97101 > * {
  position: relative;
  z-index: 1;
}
.page-id-169 .elementor-element-d52740f,
.page-id-169 .elementor-element-16e1e97 {
  max-width: 960px !important;
  margin-inline: auto !important;
  text-align: center;
}
.page-id-169 .elementor-element-de2f259,
.page-id-169 .elementor-element-1800eb9 {
  max-width: 1120px !important;
  margin-inline: auto !important;
}
.page-id-169 .elementor-element-de2f259 > .elementor-element,
.page-id-169 .elementor-element-1800eb9 > .elementor-element,
.page-id-169 .elementor-element-de2f259 .elementor-widget-icon-box,
.page-id-169 .elementor-element-1800eb9 .elementor-widget-icon-box,
.page-id-169 .elementor-element-de2f259 .elementor-widget-text-editor,
.page-id-169 .elementor-element-1800eb9 .elementor-widget-text-editor {
  border-radius: 24px;
}
.page-id-169 .elementor-element-de2f259 .elementor-widget-container,
.page-id-169 .elementor-element-1800eb9 .elementor-widget-container {
  transition: transform .22s ease, box-shadow .22s ease;
}
.page-id-169 .elementor-element-de2f259 .elementor-widget-container:hover,
.page-id-169 .elementor-element-1800eb9 .elementor-widget-container:hover {
  transform: translateY(-4px);
}

@media (max-width: 850px) {
  .ke-location__inner { grid-template-columns: 1fr; }
  .ke-location__map-wrap { order: -1; }
}

@media (max-width: 1024px) {
  h1 { font-size: clamp(2.35rem, 6vw, 3rem) !important; }
  h2 { font-size: clamp(1.8rem, 4.5vw, 2.35rem) !important; }
  .elementor-location-header .elementor-menu-toggle { min-width: 48px; min-height: 48px; border-radius: 12px !important; }
}
@media (max-width: 767px) {
  body { font-size: 17px; }
  h1 { font-size: clamp(1.95rem, 9.2vw, 2.45rem) !important; line-height: 1.14 !important; }
  h2 { font-size: clamp(1.65rem, 8vw, 2.1rem) !important; }
  h3 { font-size: clamp(1.25rem, 6vw, 1.55rem) !important; line-height: 1.22 !important; }
  .elementor-button {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 12px 18px !important;
    font-size: .98rem !important;
  }
  .elementor-location-header {
    box-shadow: 0 1px 0 rgba(4, 110, 110, .10);
  }
  .elementor-location-header :is(.e-con, .elementor-section, .elementor-container, .e-con-inner) {
    min-height: 0 !important;
  }
  .elementor-location-header :is(.e-con, .elementor-section) {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
  .elementor-location-header .elementor-widget-image {
    margin-block: 0 !important;
  }
  .elementor-location-header .elementor-widget-image img,
  .elementor-location-header img[src*="Logo"],
  .elementor-location-header img[alt*="Katrin"] {
    width: auto !important;
    max-width: 78px !important;
    max-height: 78px !important;
  }
  .elementor-location-header .elementor-widget-button {
    display: none !important;
  }
  .elementor-location-header .elementor-widget-nav-menu {
    position: absolute !important;
    top: 23px;
    right: 14px;
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    pointer-events: none;
  }
  .elementor-location-header .elementor-button {
    width: auto;
    min-height: 42px;
    padding: 9px 14px !important;
    font-size: .86rem !important;
    box-shadow: none;
  }
  .elementor-location-header .elementor-menu-toggle {
    min-width: 44px !important;
    min-height: 44px !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    pointer-events: auto;
  }
  .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown {
    left: auto !important;
    right: 0 !important;
    width: min(360px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    pointer-events: auto;
    box-shadow: 0 16px 40px rgba(4, 60, 60, .16);
    border-radius: 14px;
    overflow: hidden;
  }
  .elementor-widget-testimonial-carousel .elementor-testimonial, .elementor-widget-reviews .elementor-testimonial { padding: 22px !important; }
  .ehp-cta__text-container { padding: 26px 22px !important; }
  .ehp-button { width: 100%; justify-content: center; text-align: center; }
  .elementor-location-footer .elementor-element-c3852aa { padding-inline: 22px !important; }
  .ke-timeline { padding-left: 58px !important; }
  .ke-timeline::before { left: 23px; }
  .ke-timeline__step::before { left: -59px; width: 48px; height: 48px; border-width: 5px; font-size: 1rem; }
  .page-id-43 .ke-location { width: 100vw !important; margin-inline: calc(50% - 50vw) !important; padding-inline: 22px !important; }
  .ke-location__actions { align-items: stretch; flex-direction: column; }
  .ke-location__actions .elementor-button { width: 100%; }
  .ke-local-map { border-radius: 22px; }
  .ke-map-external-link { justify-self: start; }
  .ke-map-marker { width: 24px; height: 34px; }
  .ke-map-marker::before { width: 24px; height: 24px; }
  .ke-map-marker::after { left: 8px; top: 8px; width: 8px; height: 8px; }
  .ke-responsive-table-wrap {
    display: block;
    overflow-x: auto;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
  }
  .ke-responsive-table-wrap .ke-table-scroll-hint {
    display: block;
  }
  table.ke-responsive-table {
    min-width: 0 !important;
    border-collapse: separate;
    border-spacing: 0 14px;
  }
  table.ke-responsive-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  table.ke-responsive-table tbody,
  table.ke-responsive-table tr,
  table.ke-responsive-table td,
  table.ke-responsive-table th {
    display: block;
    width: 100% !important;
  }
  table.ke-responsive-table tr {
    overflow: hidden;
    border: 1px solid var(--ke-line);
    border-radius: 18px;
    background: var(--ke-white);
    box-shadow: 0 8px 24px rgba(4, 60, 60, .07);
  }
  table.ke-responsive-table td,
  table.ke-responsive-table th {
    box-sizing: border-box;
    border: 0 !important;
    border-bottom: 1px solid var(--ke-line) !important;
    padding: 12px 16px !important;
  }
  table.ke-responsive-table tr > :last-child {
    border-bottom: 0 !important;
  }
  table.ke-responsive-table td:not(.ke-row-heading)::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: var(--ke-teal-dark);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  table.ke-responsive-table .ke-row-heading {
    background: var(--ke-pale-soft);
    color: var(--ke-ink);
    font-weight: 800;
  }
  #CybotCookiebotDialog {
    max-width: calc(100vw - 24px) !important;
    max-height: 78vh !important;
    border-radius: 18px !important;
  }
  #CybotCookiebotDialog button {
    min-height: 44px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important; animation-duration: .01ms !important;
    animation-iteration-count: 1 !important; transition-duration: .01ms !important;
  }
}

/* Korrekturen Juli 2026 */
.ke-spaced-intro {
  margin-top: clamp(28px, 4vw, 44px) !important;
  font-weight: 700;
}

.ke-highlight-sentence {
  margin: clamp(28px, 4vw, 42px) 0 !important;
  padding: 22px 26px;
  border-left: 5px solid var(--ke-teal);
  border-radius: 0 18px 18px 0;
  background: rgba(4,110,110,.08);
  color: var(--ke-teal-dark) !important;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
}

/* Alte Workshop-/Quizseiten: bessere Kontraste für Elemente, die Elementor braun auf hellem/grünem Grund ausgibt. */
.page-id-656 main button,
.page-id-656 main .elementor-button,
.page-id-1032 main .elementor-button,
.page-id-1120 main .elementor-button,
.page-id-1233 main .elementor-button {
  background: var(--ke-teal) !important;
  border-color: var(--ke-teal) !important;
  color: var(--ke-white) !important;
}
.page-id-656 main button:hover,
.page-id-1032 main .elementor-button:hover,
.page-id-1120 main .elementor-button:hover,
.page-id-1233 main .elementor-button:hover {
  background: var(--ke-teal-dark) !important;
  border-color: var(--ke-teal-dark) !important;
}
.page-id-377 main p[style],
.page-id-278 main p[style],
.page-id-656 main p[style] {
  color: var(--ke-ink) !important;
}
.page-id-656 main .elementor-element-16596cd,
.page-id-656 main .elementor-element-16596cd p {
  color: var(--ke-ink) !important;
}
.page-id-1488 main .elementor-element-d61f599,
.page-id-1488 main .elementor-element-d61f599 p {
  color: var(--ke-teal-dark) !important;
}
.page-id-1488 main .elementor-element-d61f599 {
  max-width: 960px !important;
  margin-inline: auto !important;
  padding: clamp(28px, 4vw, 46px) !important;
  border: 1px solid var(--ke-line);
  border-radius: 28px;
  background: var(--ke-pale-soft);
  box-shadow: var(--ke-shadow);
}
.page-id-377 main .elementor-element-a0ec3c0,
.page-id-377 main .elementor-element-a0ec3c0 p,
.page-id-278 main .elementor-element-7e75c9e,
.page-id-278 main .elementor-element-7e75c9e p {
  color: var(--ke-teal-dark) !important;
}

.page-id-1157 .elementor-widget-icon-list .elementor-icon-list-item {
  align-items: flex-start !important;
  gap: 12px !important;
}

.page-id-1157 .elementor-widget-icon-list .elementor-icon-list-icon {
  flex: 0 0 1.35em !important;
  margin-top: .22em;
}

.page-id-1157 .elementor-widget-icon-list .elementor-icon-list-text {
  display: block;
  line-height: 1.55;
}

.page-id-1157 .elementor-element-094e70f,
.page-id-1157 .elementor-element-39ae4c5,
.page-id-1157 .elementor-element-bc839c3 {
  width: min(100%, 860px) !important;
}

.page-id-1157 .elementor-element-c3be558 p {
  max-width: 700px;
  margin-inline: auto;
}

/* Firmenangebot: CTA-Text auf Dunkelgrün kontrastreich halten. */
.page-id-1157 main :is(.elementor-element-3d8044b, .elementor-element-dc23a35, .elementor-element-c3be558, .elementor-element-bc839c3) :is(p, li, h2, h3, .elementor-widget-text-editor, .elementor-heading-title) {
  color: var(--ke-white) !important;
}

.ke-muted-link {
  color: inherit;
  font-weight: 700;
  opacity: .65;
}
