/* eko.css — ekosphere Design-Core v12.0.0
   Header / Footer werden NICHT gestaltet.
   Sämtliche Content-Regeln sind auf main#content begrenzt.
   Chirurgisch gekürzt: framework-invasive Elementor-Resets entfernt / entschärft.
*/

/* =========================================================
   1) Design Tokens
   ========================================================= */
:root{
  --ek-primary:#00DCFF;
  --ek-primary-dark:#00C0E0;
  --ek-secondary:#004F4D;

  --ek-cta:#0E6E62;
  --ek-cta-hover:#0A5A51;

  --ek-btn-neutral:#555555;
  --ek-btn-neutral-hover:#444444;

  --ek-ink:#0F172A;
  --ek-text-muted:#4E4E4E;

  --ek-bg:#FFFFFF;
  --ek-card-bg:#FFFFFF;
  --ek-border:#E5E7EB;

  --ek-link:#0B5FFF;
  --ek-link-hover:#0B5FFF;

  --ek-hero-max:1100px;
  --ek-hero-bg:none;

  --ek-font-size-body:20px;
  --ek-line-height-body:1.65;

  --ek-section-space-y:clamp(24px,3vw,32px);
  --ek-content-pad:clamp(16px,2vw,24px);
  --ek-block-gap:clamp(18px,2vw,24px);

  --ek-header-offset:120px;
  --ek-admin-offset:0px;
  --ek-anchor-gap:12px;
  --ek-scroll-offset:calc(var(--ek-header-offset) + var(--ek-admin-offset) + var(--ek-anchor-gap));
}

body.admin-bar{ --ek-admin-offset:32px; }

@media (max-width:782px){
  body.admin-bar{ --ek-admin-offset:46px; }
}

@media (max-width:767px){
  :root{ --ek-header-offset:132px; }
}

/* =========================================================
   2) Base / Reset — nur Hauptinhalt
   ========================================================= */
main#content,
main#content * ,
main#content *::before,
main#content *::after{
  box-sizing:border-box;
}

main#content img,
main#content iframe{
  max-width:100%;
  display:block;
}

main#content img{
  height:auto;
}

main#content{
  text-rendering:optimizeLegibility;
  word-wrap:break-word;
  overflow-wrap:break-word;
  font-size:var(--ek-font-size-body) !important;
  line-height:var(--ek-line-height-body) !important;
  text-align:justify;
  margin-top:0 !important;
  padding-top:0 !important;
  background:transparent;
}

/* Nur eigene Content-Komponenten neutralisieren, NICHT Elementor-Core breit */
main#content .ek-section-gap,
main#content .ek-stack0,
main#content .ek-container,
main#content .ek-hero,
main#content .ek-hero-image,
main#content .ek-image-block,
main#content .ek-card,
main#content .ek-faq,
main#content .ek-nav-grid,
main#content .ek-grid-cards,
main#content .ek-services-grid,
main#content .ek-mission-grid,
main#content .ek-doo-grid,
main#content .ek-two-col-block,
main#content .ek-leistungen{
  background:transparent;
}

/* Content-Typografie nur im Hauptinhalt */
main#content,
main#content p,
main#content li,
main#content address,
main#content .ek-note,
main#content .ek-sub,
main#content .ek-price,
main#content .ek-services-intro-text,
main#content .ek-card p,
main#content .ek-card li,
main#content input,
main#content textarea,
main#content select,
main#content label,
main#content summary,
main#content .panel,
main#content .ek-leistungen__intro,
main#content .ek-leistungen__desc,
main#content .ek-leistungen__cta,
main#content .ek-toc-list,
main#content .ek-toc-list a{
  font-family:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  color:var(--ek-ink);
  font-size:var(--ek-font-size-body) !important;
}

main#content p,
main#content li,
main#content address{
  font-size:var(--ek-font-size-body) !important;
  text-align:justify;
  text-justify:inter-word;
}

main#content :lang(de) :where(p, li, address),
main#content :lang(en) :where(p, li, address){
  hyphens:auto;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  overflow-wrap:break-word;
  word-break:normal;
}

main#content :where(code, pre, a){
  overflow-wrap:anywhere;
}

main#content p{ margin:0 0 1.2em; }

main#content p:empty{
  display:none;
  margin:0 !important;
}

main#content ul:not(.ek-list):not(.ek-toc-list){
  margin:0 0 1.2em 1.5em;
  padding:0;
}

main#content ol{
  margin:0 0 1.2em 1.5em;
  padding:0;
  list-style:decimal;
}

main#content ul:not(.ek-list):not(.ek-toc-list) li,
main#content ol li{ margin:0 0 .4em; }

main#content address{
  font-style:normal;
  margin:0;
}

/* =========================================================
   3) Headings / Anchor-Jumps
   ========================================================= */
main#content :where(h2[id], h3[id]){
  scroll-margin-top:var(--ek-scroll-offset);
}

main#content h1,
main#content h2,
main#content h3,
main#content h4,
main#content h5,
main#content h6{
  margin:0 0 .7em;
  font-weight:700;
  line-height:1.3;
  color:var(--ek-ink);
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  text-wrap:balance;
  text-align:center !important;
}

main#content h1{ font-size:clamp(1.5rem,1.1rem + 0.6vw,1.8rem); }
main#content h2{ font-size:clamp(1.8rem,1.3rem + 0.9vw,2.2rem); }
main#content h3{ font-size:clamp(1.5rem,1.1rem + 0.6vw,1.8rem); }
main#content h4{ font-size:1.25rem; }
main#content h5{ font-size:1.1rem; }
main#content h6{ font-size:.95rem; }

main#content .elementor-widget-heading .elementor-heading-title,
main#content .ek-hero h1,
main#content .ek-card h3,
main#content .ek-leistungen__title{
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  text-wrap:balance;
}

main#content h2,
main#content .ek-container > h2,
main#content .ek-section-gap .ek-container > h2,
main#content .ek-faq > h2,
main#content #ek-faq-home-title{
  text-align:center !important;
}

main#content .ek-container h3{ text-align:center; }

main#content .ek-section-gap .ek-container > h3{
  margin:40px 0 18px !important;
}

main#content .ek-section-gap .ek-container > h2 + h3{
  margin-top:24px !important;
}

main#content .ek-section-gap .ek-container > h3 + .ek-services-grid,
main#content .ek-section-gap .ek-container > h3 + .ek-grid-cards,
main#content .ek-section-gap .ek-container > h3 + .ek-mission-grid,
main#content .ek-section-gap .ek-container > h3 + .ek-doo-grid{
  margin-top:0 !important;
}

/* =========================================================
   4) Layout / Utilities
   ========================================================= */
main#content .ek-container{
  max-width:1100px;
  margin:0 auto;
  padding:0 8px;
  background:transparent;
}

main#content .ek-gap40{ height:32px; }

main#content .ek-section-gap{
  margin:0;
  padding-block:var(--ek-section-space-y);
}

main#content .ek-stack0{
  margin:0;
  padding-block:0;
}

main#content .ek-section-gap > *:last-child,
main#content .ek-stack0 > *:last-child{
  margin-bottom:0;
}

main#content .ek-services-intro-text{
  margin:0 0 20px;
  padding:0;
  text-align:justify;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-services-grid + .ek-services-intro-text{
  margin-top:24px;
}

main#content .ek-section-gap[aria-labelledby="ek-home-cta"] p,
main#content .ek-section-gap[aria-labelledby="ek-home-cta"] .ek-services-intro-text{
  font-size:var(--ek-font-size-body) !important;
  line-height:var(--ek-line-height-body) !important;
}

/* =========================================================
   5) Hero / Image / 0-Gap-Fixes
   ========================================================= */
main#content .ek-hero,
main#content .ek-hero-image,
main#content .ek-image-block{
  margin:0 !important;
  padding:0 !important;
}

main#content .ek-hero-image,
main#content .ek-image-block{
  line-height:0;
}

main#content .ek-hero-image img,
main#content .ek-image-block img{
  display:block;
  width:100%;
  height:auto;
  margin:0 !important;
}

/* Nur direkte, kontrollierte 0-Gap-Fixes auf eigene Komponenten */
main#content .ek-hero-image + .ek-hero,
main#content .ek-image-block + .ek-hero,
main#content .ek-hero + section[aria-labelledby="ek-toc-title"],
main#content .ek-hero + .ek-section-gap,
main#content section[aria-labelledby="ek-toc-title"],
main#content section[aria-labelledby="ek-toc-title"] .ek-container,
main#content .ek-faq--toc,
main#content .ek-faq--toc > details{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

main#content .ek-hero{
  position:relative;
  width:100%;
  color:#fff;
  overflow:hidden;
  background-image:var(--ek-hero-bg);
  background-size:cover;
  background-position:center;
  z-index:1;
}

main#content .ek-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.75);
  z-index:0;
}

main#content .ek-hero__inner{
  position:relative;
  max-width:1100px;
  margin:0 auto !important;
  padding:32px 40px !important;
  text-align:center;
  z-index:1;
  box-sizing:border-box !important;
}

main#content .ek-blackbox{
  background:rgba(0,0,0,.75);
  color:#fff;
  margin:0 !important;
  padding:32px !important;
  box-sizing:border-box !important;
}

main#content .ek-hero h1{
  font-size:clamp(2rem,1.5rem + 1.4vw,2.6rem);
  font-weight:700;
  line-height:1.25;
  margin:0 0 20px !important;
}

main#content .ek-hero p,
main#content .ek-hero li,
main#content .ek-hero .ek-services-intro-text,
main#content .ek-blackbox p,
main#content .ek-blackbox li,
main#content .ek-blackbox span,
main#content .ek-blackbox small,
main#content .ek-blackbox strong,
main#content .ek-blackbox em{
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-hero p{
  margin:0;
  max-width:none;
  width:100%;
  line-height:var(--ek-line-height-body);
  text-align:justify;
}

main#content .ek-hero .ek-services-intro-text{
  margin:0 0 20px !important;
  text-align:justify;
}

main#content .ek-hero :where(h1,h2,h3,p,li,span,em,strong,small){
  color:#fff !important;
}

main#content .ek-hero .ek-list{
  width:100%;
  max-width:none;
  margin:0 !important;
}

main#content .ek-hero .ek-list,
main#content .ek-hero .ek-list li{
  text-align:justify;
}

main#content .ek-hero .ek-list li:last-child{
  margin-bottom:0 !important;
}

main#content .ek-blackbox :where(h1,h2,h3,h4,h5,h6,p,li,span,em,strong,small){
  color:#fff;
}

main#content .ek-blackbox p{
  color:#fff;
  margin:0 0 .6rem;
  line-height:var(--ek-line-height-body);
  text-align:justify;
}

main#content .ek-blackbox > *:last-child{
  margin-bottom:0;
}

main#content .ek-blackbox--services{
  background:transparent;
  color:#fff;
}

main#content .ek-blackbox--services h2{
  color:#fff;
}

main#content .ek-blackbox--services .ek-services-grid--dark .ek-card,
main#content .ek-blackbox--services .ek-services-grid--dark .ek-card :where(h1,h2,h3,h4,h5,h6,p,li,span,em,strong,small,a){
  color:#000 !important;
}

@media (max-width:767px){
  main#content .ek-hero,
  main#content .ek-hero-image,
  main#content .ek-image-block,
  main#content .ek-hero + .ek-section-gap,
  main#content .ek-hero + section[aria-labelledby="ek-toc-title"]{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  main#content .ek-hero{
    padding:0 !important;
  }

  main#content .ek-hero__inner{
    padding:24px 20px !important;
  }
}

/* =========================================================
   6) Two-Column Block
   ========================================================= */
main#content .ek-two-col-block{
  display:flex;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:clamp(18px,3vw,34px);
}

main#content .ek-two-col-block__content,
main#content .ek-two-col-block__text{
  flex:0 1 70%;
  min-width:0;
  padding:1.4rem;
}

main#content .ek-two-col-block__media,
main#content .ek-two-col-block__placeholder{
  flex:0 1 30%;
  padding:1.4rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

main#content .ek-two-col-block__media img{
  width:100%;
  height:auto;
}

main#content .ek-two-col-block--40-60 .ek-two-col-block__media,
main#content .ek-two-col-block--kontakt .ek-two-col-block__media,
main#content .ek-two-col-block--immobilien .ek-two-col-block__media{
  flex-basis:40%;
}

main#content .ek-two-col-block--40-60 .ek-two-col-block__content,
main#content .ek-two-col-block--kontakt .ek-two-col-block__content,
main#content .ek-two-col-block--immobilien .ek-two-col-block__content{
  flex-basis:60%;
}

main#content .ek-map-embed{ width:100%; }

main#content .ek-map-embed iframe{
  width:100%;
  border:0;
  display:block;
}

main#content .ek-two-col-block--kontakt{ align-items:stretch; }

main#content .ek-two-col-block--kontakt .ek-two-col-block__media{
  padding:0;
  align-items:stretch;
  justify-content:stretch;
}

main#content .ek-two-col-block--kontakt .ek-two-col-block__content{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

main#content .ek-two-col-block--kontakt .ek-map-embed{
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-height:0;
}

main#content .ek-two-col-block--kontakt .ek-map-embed iframe{
  width:100%;
  height:100%;
}

main#content .ek-two-col-block--kontakt address{
  margin:0 0 18px;
}

main#content .ek-two-col-block--kontakt .ek-contact-intro{
  margin-top:0;
}

@media (max-width:900px){
  main#content .ek-two-col-block{
    flex-direction:column;
    gap:24px;
  }

  main#content .ek-two-col-block__content,
  main#content .ek-two-col-block__text,
  main#content .ek-two-col-block__media,
  main#content .ek-two-col-block__placeholder{
    flex:1 1 100%;
    max-width:100%;
    padding:1.2rem;
  }

  main#content .ek-two-col-block--kontakt .ek-two-col-block__media{
    padding:0;
  }

  main#content .ek-two-col-block--kontakt .ek-map-embed{
    min-height:320px;
  }
}

/* =========================================================
   7) Cards / Buttons / CTAs
   ========================================================= */
main#content .ek-card{
  background:var(--ek-card-bg);
  border:1px solid var(--ek-border);
  border-radius:0;
  padding:1.4rem;
  display:flex;
  flex-direction:column;
  height:100%;
}

main#content .ek-card.ek-card--form{
  padding:0 !important;
  overflow:hidden;
}

main#content .ek-card.ek-card--form > *{
  margin:0 !important;
}

main#content .ek-card.ek-card--form .wpcf7,
main#content .ek-card.ek-card--form form,
main#content .ek-card.ek-card--form .elementor-widget-container,
main#content .ek-card.ek-card--form .wpcf7-form,
main#content .ek-card.ek-card--form .wpcf7-form p,
main#content .ek-card.ek-card--form .wpcf7-form-control-wrap{
  margin:0 !important;
}

main#content .ek-services-grid .ek-card{
  background:#F3F4F6;
  border:1px solid var(--ek-primary);
  padding:1.6rem;
}

main#content .ek-card > *:last-child{
  margin-bottom:0;
}

main#content .ek-card h3,
main#content .ek-services-grid .ek-card h3,
main#content .ek-grid .ek-card h3,
main#content .ek-grid-cards .ek-card h3{
  text-align:center !important;
}

main#content .ek-sub,
main#content .ek-price{
  margin:0;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-card .ek-sub{
  margin:.25rem 0 1rem !important;
  text-align:center !important;
}

main#content .ek-service-img{
  display:block;
  max-width:120px;
  width:100%;
  margin:0 auto 1rem;
}

main#content .ek-services-grid--companies .ek-service-img,
main#content .ek-mission-grid .ek-service-img,
main#content .ek-services-grid--why .ek-service-img,
main#content .ek-services-grid--innovation .ek-service-img{
  max-width:100%;
  width:100%;
  margin:0 0 1rem;
}

main#content .ek-card__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:14px;
  text-align:center;
}

main#content .ek-card > .ek-card__cta{
  margin-top:auto;
  padding-top:1.2rem;
}

main#content .ek-card__cta a,
main#content .ek-card__cta a:link,
main#content .ek-card__cta a:visited{
  display:inline-flex;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center;
  gap:10px;
  min-width:120px;
  padding:.6em 1.4em;
  border-radius:2px !important;
  font-size:var(--ek-font-size-body) !important;
  font-weight:500;
  line-height:1.2;
  text-decoration:none !important;
  text-decoration-color:#fff !important;
  border:1px solid transparent;
  background:var(--ek-btn-neutral) !important;
  border-color:var(--ek-btn-neutral) !important;
  color:#fff !important;
  white-space:normal;
  text-align:center;
}

main#content .ek-card__cta a > img{
  display:inline-block !important;
  flex:0 0 auto;
  width:22px;
  height:22px;
  margin:0 !important;
  vertical-align:middle;
}

main#content .ek-card__cta a > span,
main#content .ek-card__cta a > strong,
main#content .ek-card__cta a > em,
main#content .ek-card__cta a > small{
  display:inline !important;
  color:#fff !important;
  line-height:1.2;
  text-decoration-color:#fff !important;
}

/* Buttons bewusst nur auf echte Content-Buttons / CTA-Kontexte */
main#content .ek-btn,
main#content .ek-card__cta a,
main#content .ek-card__cta .elementor-button,
main#content .ek-text-block .elementor-button,
main#content .ek-hero .elementor-button,
main#content .ek-blackbox .elementor-button,
main#content button,
main#content input[type="submit"]{
  font-family:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-weight:500;
  font-size:var(--ek-font-size-body) !important;
  border-radius:2px !important;
}

main#content .ek-btn--whatsapp,
main#content .ek-btn--whatsapp:link,
main#content .ek-btn--whatsapp:visited,
main#content .ek-card__cta a.ek-btn--whatsapp,
main#content .ek-card__cta a.ek-btn--whatsapp:link,
main#content .ek-card__cta a.ek-btn--whatsapp:visited,
main#content .ek-card__cta a[href*="wa.me"],
main#content .ek-card__cta a[href*="api.whatsapp.com"],
main#content .ek-card__cta a[href*="whatsapp"]{
  background:var(--ek-cta) !important;
  border-color:var(--ek-cta) !important;
  color:#fff !important;
}

main#content .ek-btn--whatsapp:hover,
main#content .ek-btn--whatsapp:focus,
main#content .ek-btn--whatsapp:focus-visible,
main#content .ek-card__cta a.ek-btn--whatsapp:hover,
main#content .ek-card__cta a.ek-btn--whatsapp:focus,
main#content .ek-card__cta a.ek-btn--whatsapp:focus-visible,
main#content .ek-card__cta a[href*="wa.me"]:hover,
main#content .ek-card__cta a[href*="wa.me"]:focus,
main#content .ek-card__cta a[href*="wa.me"]:focus-visible,
main#content .ek-card__cta a[href*="api.whatsapp.com"]:hover,
main#content .ek-card__cta a[href*="api.whatsapp.com"]:focus,
main#content .ek-card__cta a[href*="api.whatsapp.com"]:focus-visible,
main#content .ek-card__cta a[href*="whatsapp"]:hover,
main#content .ek-card__cta a[href*="whatsapp"]:focus,
main#content .ek-card__cta a[href*="whatsapp"]:focus-visible{
  background:var(--ek-cta-hover) !important;
  border-color:var(--ek-cta-hover) !important;
  color:#fff !important;
  text-decoration:underline !important;
  text-decoration-color:#fff !important;
}

main#content .ek-btn--primary,
main#content .ek-btn--primary:link,
main#content .ek-btn--primary:visited,
main#content .ek-btn--solid,
main#content .ek-btn--solid:link,
main#content .ek-btn--solid:visited,
main#content .ek-card__cta a.ek-btn--solid,
main#content .ek-card__cta a.ek-btn--solid:link,
main#content .ek-card__cta a.ek-btn--solid:visited,
main#content .ek-card__cta a[href*="/kontakt"],
main#content .ek-card__cta a[href*="/kontakt"]:link,
main#content .ek-card__cta a[href*="/kontakt"]:visited,
main#content .ek-card__cta a[href*="kontakt"],
main#content .ek-card__cta a[href*="kontakt"]:link,
main#content .ek-card__cta a[href*="kontakt"]:visited{
  background:var(--ek-btn-neutral) !important;
  border-color:var(--ek-btn-neutral) !important;
  color:#fff !important;
}

main#content .ek-btn--primary:hover,
main#content .ek-btn--primary:focus,
main#content .ek-btn--primary:focus-visible,
main#content .ek-btn--solid:hover,
main#content .ek-btn--solid:focus,
main#content .ek-btn--solid:focus-visible,
main#content .ek-card__cta a.ek-btn--solid:hover,
main#content .ek-card__cta a.ek-btn--solid:focus,
main#content .ek-card__cta a.ek-btn--solid:focus-visible,
main#content .ek-card__cta a[href*="/kontakt"]:hover,
main#content .ek-card__cta a[href*="/kontakt"]:focus,
main#content .ek-card__cta a[href*="/kontakt"]:focus-visible,
main#content .ek-card__cta a[href*="kontakt"]:hover,
main#content .ek-card__cta a[href*="kontakt"]:focus,
main#content .ek-card__cta a[href*="kontakt"]:focus-visible{
  background:var(--ek-btn-neutral-hover) !important;
  border-color:var(--ek-btn-neutral-hover) !important;
  color:#fff !important;
  text-decoration:underline !important;
  text-decoration-color:#fff !important;
}

main#content .ek-card__cta a,
main#content .ek-card__cta a:link,
main#content .ek-card__cta a:visited,
main#content .ek-card__cta a span,
main#content .ek-card__cta a strong,
main#content .ek-card__cta a em,
main#content .ek-card__cta a small,
main#content .ek-card__cta a .elementor-button-text{
  color:#fff !important;
  text-decoration:none !important;
  text-decoration-color:#fff !important;
}

main#content .ek-card__cta a:hover,
main#content .ek-card__cta a:focus,
main#content .ek-card__cta a:focus-visible,
main#content .ek-card__cta a:hover span,
main#content .ek-card__cta a:focus span,
main#content .ek-card__cta a:focus-visible span,
main#content .ek-card__cta a:hover strong,
main#content .ek-card__cta a:focus strong,
main#content .ek-card__cta a:focus-visible strong,
main#content .ek-card__cta a:hover em,
main#content .ek-card__cta a:focus em,
main#content .ek-card__cta a:focus-visible em,
main#content .ek-card__cta a:hover small,
main#content .ek-card__cta a:focus small,
main#content .ek-card__cta a:focus-visible small,
main#content .ek-card__cta a:hover .elementor-button-text,
main#content .ek-card__cta a:focus .elementor-button-text,
main#content .ek-card__cta a:focus-visible .elementor-button-text{
  color:#fff !important;
  text-decoration:underline !important;
  text-decoration-color:#fff !important;
}

@media (max-width:640px){
  main#content .ek-card__cta a,
  main#content .ek-card__cta .ek-btn{
    flex:1 1 100%;
    width:100%;
    justify-content:center;
  }
}

main#content .ek-card__cta{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:stretch;
}

main#content .ek-card__cta > a{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:center;
  justify-content:center;
}

main#content .ek-card__cta > a span{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}

main#content .ek-price,
main#content .ek-price strong,
main#content .ek-price small{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}

main#content .ek-card .ek-sub,
main#content .ek-card .ek-list li,
main#content .ek-note,
main#content .ek-services-intro-text,
main#content .ek-team-card__role{
  overflow-wrap:anywhere;
  word-break:normal;
}

main#content .ek-card__cta .ek-btn{
  flex:1 1 220px;
}

/* =========================================================
   8) Grids
   ========================================================= */
main#content .ek-grid-cards,
main#content .ek-services-grid{
  display:grid;
  gap:24px;
  align-items:stretch;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

@media (max-width:767px){
  main#content .ek-grid-cards,
  main#content .ek-services-grid{
    grid-template-columns:1fr;
  }
}

main#content .ek-grid-cards--3,
main#content .ek-services-grid.ek-grid-cards--3{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

main#content .ek-grid-cards--4{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

@media (max-width:1024px){
  main#content .ek-grid-cards--3,
  main#content .ek-services-grid.ek-grid-cards--3{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:767px){
  main#content .ek-grid-cards--3,
  main#content .ek-grid-cards--4,
  main#content .ek-services-grid.ek-grid-cards--3{
    grid-template-columns:1fr !important;
  }
}

@media (min-width:768px){
  main#content .ek-services-grid.ek-services-grid--companies{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:40px;
  }
}

@media (max-width:767px){
  main#content .ek-services-grid.ek-services-grid--companies{
    grid-template-columns:1fr !important;
    gap:24px;
  }
}

/* =========================================================
   9) Leistungen Hub
   ========================================================= */
main#content .ek-leistungen{
  padding:clamp(28px,4vw,64px) 0;
  background:#fff;
  color:var(--ek-ink);
}

main#content .ek-leistungen .ek-container{
  max-width:1100px;
  padding:0 16px;
}

main#content .ek-leistungen__intro{
  max-width:920px;
  margin:0 auto 22px;
  font-size:var(--ek-font-size-body) !important;
  line-height:1.55;
  opacity:.92;
  text-align:justify;
}

main#content .ek-leistungen__grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
}

@media (max-width:1100px){
  main#content .ek-leistungen__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px){
  main#content .ek-leistungen__grid{
    grid-template-columns:1fr;
  }
}

main#content .ek-leistungen__card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  background:#F3F4F6;
  border:1px solid var(--ek-primary);
  border-radius:0;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(2,6,23,.06);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  min-height:100%;
}

main#content .ek-leistungen__card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 50px rgba(2,6,23,.10);
  border-color:var(--ek-primary-dark);
}

main#content .ek-leistungen__card:focus-visible{
  outline:2px solid var(--ek-primary);
  outline-offset:3px;
}

main#content .ek-leistungen__media{
  aspect-ratio:16 / 9;
  background:
    linear-gradient(135deg, rgba(0,220,255,.22), rgba(0,79,77,.12)),
    radial-gradient(1200px 240px at 20% 20%, rgba(0,220,255,.35), transparent 60%),
    radial-gradient(900px 220px at 80% 40%, rgba(0,79,77,.20), transparent 55%);
  border-bottom:1px solid rgba(0,220,255,.25);
}

main#content .ek-leistungen__body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

main#content .ek-leistungen__title{
  margin:0;
  font-size:18px;
  line-height:1.25;
  text-align:left;
}

main#content .ek-leistungen__desc{
  margin:0;
  font-size:var(--ek-font-size-body) !important;
  line-height:1.55;
  opacity:.9;
  text-align:justify;
}

main#content .ek-leistungen__cta{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:var(--ek-font-size-body) !important;
  font-weight:600;
  color:var(--ek-secondary);
}

main#content .ek-leistungen__cta span{
  border-bottom:1px solid rgba(0,79,77,.25);
}

/* =========================================================
   10) Mission / Team
   ========================================================= */
main#content .ek-mission-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px;
  align-items:stretch;
}

@media (max-width:900px){
  main#content .ek-mission-grid{
    grid-template-columns:1fr;
  }
}

main#content #ek-why-ekosphere{ margin-top:40px; }
main#content #ek-team-ulcinj,
main#content #ek-team-workpermit{ margin-top:24px; }

main#content .ek-team-intro--single{ margin:0 0 32px; }

main#content .ek-team-intro--single p{
  margin:0;
  text-align:justify;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-team-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  align-items:stretch;
}

main#content .ek-team-card{
  position:relative;
  width:100%;
  aspect-ratio:3 / 4;
  background:#000;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(15,23,42,.25);
}

main#content .ek-team-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

main#content .ek-team-card__overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:14px 16px 12px;
  background:linear-gradient(to top, rgba(0,0,0,.9), rgba(0,0,0,0));
  color:#fff !important;
  text-align:left;
}

main#content .ek-team-card__accent{
  position:absolute;
  left:0;
  bottom:0;
  width:4px;
  height:40px;
  background:var(--ek-primary);
}

main#content .ek-team-card__name{
  margin:0 0 4px;
  font-weight:700;
  color:#fff !important;
  font-size:20px !important;
}

main#content .ek-team-card__role{
  margin:0;
  font-size:calc(var(--ek-font-size-body) - 8px) !important;
  line-height:1.25;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:1;
  color:#fff !important;
}

@media (min-width:768px) and (max-width:1199px){
  main#content .ek-team-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
  }
}

@media (max-width:767px){
  main#content .ek-team-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }

  main#content .ek-team-card__overlay{ padding:10px 12px 10px; }
}

/* =========================================================
   11) Lists / DOO Grid
   ========================================================= */
main#content .ek-list{
  margin:0 0 1.2em;
  padding:0;
  list-style:none;
}

main#content .ek-list li{
  position:relative;
  padding-left:1.4em;
  margin:0 0 .4em;
  text-align:justify;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-list:not(.ek-list--negative) li::before{
  content:"";
  position:absolute;
  left:0;
  top:.38em;
  width:.72em;
  height:.38em;
  border-left:3px solid var(--ek-primary);
  border-bottom:3px solid var(--ek-primary);
  transform:rotate(-45deg);
  transform-origin:left center;
  box-sizing:border-box;
}

main#content .ek-list.ek-list--success li::before{
  border-left-color:var(--ek-cta) !important;
  border-bottom-color:var(--ek-cta) !important;
}

main#content .ek-list--negative{
  padding-left:0;
  margin:0;
}

main#content .ek-list--negative li{
  position:relative;
  padding-left:1.6em;
}

main#content .ek-list--negative li::before{
  content:"✕";
  position:absolute;
  left:0;
  top:.02em;
  color:#DC2626;
  font-weight:700;
  line-height:1;
}

main#content .ek-grid > *,
main#content .ek-grid--2 > *,
main#content .ek-card,
main#content .ek-card > *,
main#content .ek-list,
main#content .ek-list li,
main#content .ek-note{
  min-width:0;
}

main#content .ek-card .ek-list{ margin-top:0; }

main#content .ek-card .ek-list li{
  text-align:left;
  text-justify:auto;
}

main#content .ek-card .ek-note{
  text-align:center !important;
  text-justify:auto !important;
}

main#content .ek-doo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin:0 8px 24px;
}

@media (max-width:1100px){
  main#content .ek-doo-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px){
  main#content .ek-doo-grid{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   12) Navigation Grids
   ========================================================= */
main#content .ek-nav-grid{
  display:grid !important;
  gap:24px;
  align-items:stretch;
  grid-template-columns:1fr;
  margin-bottom:var(--ek-block-gap);
}

@media (min-width:768px){
  main#content .ek-nav-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

main#content .ek-nav-grid > .ek-card{
  background:#F3F4F6;
  border:1px solid var(--ek-primary);
  padding:1.6rem;
  text-decoration:none;
  color:inherit;
}

main#content .ek-nav-grid > .ek-card:hover,
main#content .ek-nav-grid > .ek-card:focus{
  text-decoration:none;
}

main#content .ek-nav-grid > .ek-card:focus-visible{
  outline:2px solid var(--ek-primary);
  outline-offset:3px;
}

main#content .ek-nav-grid .ek-service-img{
  width:100%;
  max-width:100%;
  margin:0 0 1rem;
}

main#content .ek-nav-grid .ek-card p{
  text-align:justify;
  font-size:var(--ek-font-size-body) !important;
}

/* =========================================================
   13) FAQ / TOC
   ========================================================= */
main#content .ek-faq{
  counter-reset:ekstep;
}

main#content .ek-faq > h2,
main#content #ek-faq-home-title{
  text-align:center !important;
}

main#content .ek-faq:not(.ek-faq--toc){
  max-width:1100px;
  margin-inline:auto;
  padding-inline:8px;
}

main#content .ek-faq > .ek-services-intro-text{
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

main#content .ek-faq > details{
  border:1px solid var(--ek-border);
  margin:0 0 1rem;
  border-radius:0;
  overflow:hidden;
  background:#fff;
  transition:box-shadow .2s ease, transform .2s ease;
}

main#content .ek-faq > details:last-of-type{
  margin-bottom:0;
}

main#content .ek-faq > details > summary{
  position:relative;
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.75rem 1rem;
  background:linear-gradient(#FAFAFA,#F7F7F7);
  cursor:pointer;
  list-style:none;
  text-align:left;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-faq > details > summary::-webkit-details-marker{
  display:none;
}

main#content .ek-faq > details > summary:hover{
  background:#F3F4F6;
}

main#content .ek-faq > details > summary:focus-visible{
  outline:2px solid var(--ek-primary);
  outline-offset:2px;
}

main#content .ek-faq > details > summary::before{
  counter-increment:ekstep;
  content:counter(ekstep);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 1.9rem;
  width:1.9rem;
  height:1.9rem;
  font-size:.9rem;
  font-weight:700;
  color:var(--ek-primary);
  background:#fff;
  border:2px solid var(--ek-primary);
  border-radius:0;
}

main#content .ek-faq > details > summary::after{
  content:"▾";
  margin-left:auto;
  opacity:.7;
  transition:transform .2s ease;
}

main#content .ek-faq > details[open] > summary::after{
  transform:rotate(180deg);
}

main#content .ek-faq > details > summary span{
  font-size:var(--ek-font-size-body) !important;
  font-weight:600;
  line-height:1.25;
  text-align:left;
}

main#content .ek-faq > details > .panel{
  display:none;
  padding:12px 16px 14px;
  border-top:1px solid var(--ek-border);
  background:#fff;
  text-align:justify;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-faq > details > .panel,
main#content .ek-faq > details > .panel p,
main#content .ek-faq > details > .panel li,
main#content .ek-faq > details > .panel ul,
main#content .ek-faq > details > .panel ol{
  text-align:justify !important;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-faq > details[open] > .panel{
  display:block !important;
  animation:ek-faq-reveal .18s ease;
}

@keyframes ek-faq-reveal{
  from{
    opacity:0;
    transform:translateY(-2px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

main#content .ek-faq > details[open]{
  box-shadow:0 6px 16px rgba(15,23,42,.12);
  transform:translateY(-1px);
}

main#content .ek-faq .panel > *:last-child{
  margin-bottom:0;
}

main#content section.ek-section-gap[aria-labelledby="ek-toc-title"]{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  position:relative;
  z-index:40;
  background:transparent;
}

main#content section.ek-section-gap[aria-labelledby="ek-toc-title"] > *{
  margin-bottom:0 !important;
}

main#content section.ek-section-gap[aria-labelledby="ek-toc-title"] .ek-container{
  padding-left:0 !important;
  padding-right:0 !important;
}

main#content .ek-faq--toc{
  counter-reset:none;
  margin:0 !important;
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  width:100% !important;
  z-index:40;
}

main#content .ek-faq--toc > details{
  margin:0 !important;
  border-radius:0;
  background:#F9FAFB !important;
  border:1px solid #a8dce6 !important;
}

main#content .ek-faq--toc > details > summary{
  padding:.75rem 1rem !important;
  background:var(--ek-primary) !important;
  color:#000 !important;
  justify-content:center;
  text-align:center !important;
}

main#content .ek-faq--toc > details > summary:hover,
main#content .ek-faq--toc > details > summary:focus,
main#content .ek-faq--toc > details > summary:focus-visible{
  background:var(--ek-primary-dark) !important;
  color:#000 !important;
}

main#content .ek-faq--toc > details > summary::before{
  content:"≡";
  counter-increment:none;
  color:#000 !important;
  background:#fff !important;
  border:2px solid #000 !important;
}

main#content .ek-faq--toc > details > summary::after{
  color:#000 !important;
}

main#content .ek-faq--toc > details > summary span{
  font-size:var(--ek-font-size-body) !important;
  font-weight:600 !important;
  line-height:1.25;
  color:#000 !important;
  text-align:center !important;
}

main#content .ek-faq--toc > details > .panel{
  padding:0 16px 14px !important;
  text-align:left !important;
  background:#F9FAFB !important;
  border-top:1px solid #a8dce6 !important;
}

main#content .ek-faq--toc .ek-toc-list{
  list-style:decimal !important;
  list-style-position:outside !important;
  margin:12px 0 !important;
  padding:0 0 0 2rem !important;
  font-size:var(--ek-font-size-body) !important;
  text-align:left !important;
}

main#content .ek-faq--toc .ek-toc-list li{
  display:list-item !important;
  list-style:decimal !important;
  margin:0 0 .35rem !important;
  padding-left:0 !important;
  text-align:left !important;
  font-size:var(--ek-font-size-body) !important;
  color:var(--ek-ink) !important;
}

main#content .ek-faq--toc .ek-toc-list li::before{
  content:none !important;
}

main#content .ek-faq--toc .ek-toc-item--h3{
  margin-left:1rem !important;
  opacity:.95;
}

main#content .ek-faq--toc .ek-toc-list,
main#content .ek-faq--toc .ek-toc-list ol,
main#content .ek-faq--toc .ek-toc-list li,
main#content .ek-faq--toc .ek-toc-list li::marker,
main#content .ek-faq--toc .ek-toc-list a,
main#content .ek-faq--toc .ek-toc-list a:link,
main#content .ek-faq--toc .ek-toc-list a:visited,
main#content .ek-faq--toc .panel .ek-toc-list a,
main#content .ek-faq--toc .panel .ek-toc-list a:link,
main#content .ek-faq--toc .panel .ek-toc-list a:visited{
  color:var(--ek-ink) !important;
}

main#content .ek-faq--toc .ek-toc-list a,
main#content .ek-faq--toc .ek-toc-list a:link,
main#content .ek-faq--toc .ek-toc-list a:visited{
  text-decoration:none !important;
  border-bottom:none !important;
  text-align:left !important;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-faq--toc .ek-toc-list a:hover,
main#content .ek-faq--toc .ek-toc-list a:focus,
main#content .ek-faq--toc .ek-toc-list a:focus-visible{
  color:var(--ek-secondary) !important;
  text-decoration:underline !important;
  border-bottom:none !important;
}

@media (max-width:767px){
  main#content .ek-faq--toc .ek-toc-list{
    list-style:decimal !important;
    list-style-position:outside !important;
    padding-left:1.8rem !important;
    margin-left:12px !important;
  }

  main#content .ek-faq--toc .ek-toc-list li{
    display:list-item !important;
    list-style:decimal !important;
    padding-left:0 !important;
    margin-left:0 !important;
  }

  main#content .ek-faq--toc .ek-toc-item--h3{
    margin-left:.75rem !important;
  }

  main#content .ek-faq:not(.ek-faq--toc),
  main#content .ek-container,
  main#content .ek-nav-grid,
  main#content .ek-doo-grid,
  main#content .ek-mission-grid,
  main#content .ek-grid-cards,
  main#content .ek-services-grid{
    padding-left:16px !important;
    padding-right:16px !important;
  }

  main#content .ek-faq > .ek-services-intro-text{
    max-width:none;
  }

  main#content .ek-faq > details > .panel{
    padding:12px 14px 14px;
  }

  main#content section[aria-labelledby="ek-toc-title"] .ek-container{
    padding-left:16px !important;
    padding-right:16px !important;
  }

  main#content .ek-faq--toc > details > summary,
  main#content .ek-faq--toc > details > .panel{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}

main#content .ek-faq details .panel{ margin-top:0; }

main#content .ek-faq details .panel > p + .ek-list{
  margin-top:10px;
}

main#content .ek-faq > :where(p, .ek-services-intro-text) + details{
  margin-top:1rem;
}

/* =========================================================
   14) Elementor / Containers
   ========================================================= */
main#content .elementor-widget-html .elementor-widget-container{
  background:transparent !important;
  padding:0 !important;
}

main#content .elementor-widget-heading h1.elementor-heading-title{ font-size:clamp(1.5rem,1.1rem + 0.6vw,1.8rem) !important; }
main#content .elementor-widget-heading h2.elementor-heading-title{
  font-size:clamp(1.8rem,1.3rem + 0.9vw,2.2rem) !important;
  text-align:center !important;
}
main#content .elementor-widget-heading h3.elementor-heading-title{ font-size:clamp(1.5rem,1.1rem + 0.6vw,1.8rem) !important; }
main#content .elementor-widget-heading h4.elementor-heading-title{ font-size:1.25rem !important; }
main#content .elementor-widget-heading h5.elementor-heading-title{ font-size:1.1rem !important; }
main#content .elementor-widget-heading h6.elementor-heading-title{ font-size:.95rem !important; }

@media (min-width:900px){
  main#content .ek-card{
    height:100%;
  }
}

/* =========================================================
   15) Notes / Legal
   ========================================================= */
main#content .ek-note{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:.55em;
  margin:0;
  font-size:calc(var(--ek-font-size-body) - 4px) !important;
  line-height:1.5;
  text-align:left !important;
  text-justify:auto !important;
}

main#content .ek-note::before{
  content:"ℹ";
  flex:0 0 auto;
  font-size:1em;
  line-height:1.4;
  color:var(--ek-secondary);
  font-weight:700;
}

main#content .ek-note.ek-note--hint{ margin-bottom:0; }

main#content .ek-note.ek-note--sources{
  margin-top:28px;
  padding-top:12px;
  font-size:calc(var(--ek-font-size-body) - 2px) !important;
  line-height:1.45;
}

main#content .ek-note.warn{
  margin-top:1.2em;
  font-size:calc(var(--ek-font-size-body) - 2px) !important;
  line-height:1.45;
}

main#content .ek-note.warn ul,
main#content .ek-note.warn ol{
  text-align:left !important;
  list-style-position:outside;
}

/* =========================================================
   16) Link Overrides
   ========================================================= */
body:not(.wp-admin) main#content a[href]:not(.elementor-button):not(.ek-btn):not(.ek-leistungen__card):not(.ek-card__cta a):not(.ek-faq--toc .ek-toc-list a),
body:not(.wp-admin) main#content a[href]:not(.elementor-button):not(.ek-btn):not(.ek-leistungen__card):not(.ek-card__cta a):not(.ek-faq--toc .ek-toc-list a):visited{
  color:var(--ek-link) !important;
  text-decoration:none !important;
  font-size:var(--ek-font-size-body) !important;
}

body:not(.wp-admin) main#content a[href]:not(.elementor-button):not(.ek-btn):not(.ek-leistungen__card):not(.ek-card__cta a):not(.ek-faq--toc .ek-toc-list a):hover,
body:not(.wp-admin) main#content a[href]:not(.elementor-button):not(.ek-btn):not(.ek-leistungen__card):not(.ek-card__cta a):not(.ek-faq--toc .ek-toc-list a):focus,
body:not(.wp-admin) main#content a[href]:not(.elementor-button):not(.ek-btn):not(.ek-leistungen__card):not(.ek-card__cta a):not(.ek-faq--toc .ek-toc-list a):focus-visible{
  color:var(--ek-link-hover) !important;
  text-decoration:underline !important;
}

main#content a.elementor-button,
main#content .ek-btn,
main#content .ek-card__cta a{
  text-decoration:none !important;
}

main#content a.ek-leistungen__card,
main#content .ek-nav-grid > a.ek-card{
  color:inherit !important;
  text-decoration:none !important;
}

main#content a.ek-leistungen__card:hover,
main#content a.ek-leistungen__card:focus,
main#content a.ek-leistungen__card:focus-visible,
main#content .ek-nav-grid > a.ek-card:hover,
main#content .ek-nav-grid > a.ek-card:focus,
main#content .ek-nav-grid > a.ek-card:focus-visible{
  color:inherit !important;
  text-decoration:none !important;
}

main#content .ek-blackbox a{
  color:var(--ek-primary) !important;
  text-decoration:underline !important;
  font-size:var(--ek-font-size-body) !important;
}

main#content .ek-blackbox a:hover,
main#content .ek-blackbox a:focus,
main#content .ek-blackbox a:focus-visible{
  color:#fff !important;
  text-decoration:underline !important;
}

main#content .ek-blackbox--services .ek-services-grid--dark .ek-card,
main#content .ek-blackbox--services .ek-services-grid--dark .ek-card h3,
main#content .ek-blackbox--services .ek-services-grid--dark .ek-card p,
main#content .ek-blackbox--services .ek-services-grid--dark .ek-card li,
main#content .ek-blackbox--services .ek-services-grid--dark .ek-card a:not(.elementor-button){
  color:#000 !important;
}

/* =========================================================
   16a) TOC-Linkfarbe hart fixieren
   ========================================================= */
body:not(.wp-admin) main#content .ek-faq--toc .ek-toc-list a[href],
body:not(.wp-admin) main#content .ek-faq--toc .ek-toc-list a[href]:visited{
  color:var(--ek-ink) !important;
  text-decoration:none !important;
}

body:not(.wp-admin) main#content .ek-faq--toc .ek-toc-list a[href]:hover,
body:not(.wp-admin) main#content .ek-faq--toc .ek-toc-list a[href]:focus,
body:not(.wp-admin) main#content .ek-faq--toc .ek-toc-list a[href]:focus-visible{
  color:var(--ek-secondary) !important;
  text-decoration:underline !important;
}

/* =========================================================
   17) Leistungen Montenegro – gezielte Layout-Fixes
   ========================================================= */
main#content #ek-zuordnung-kontakt .ek-card__cta--cluster{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

main#content #ek-zuordnung-kontakt .ek-btn--whatsapp{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

main#content #ek-zuordnung-kontakt .ek-btn--whatsapp img{
  flex:0 0 auto;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(320px,420px);
  grid-template-areas:
    "title title"
    "map text"
    "map text"
    "map text";
  column-gap:24px;
  row-gap:16px;
  align-items:start;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > h3{
  grid-area:title;
  margin-bottom:0;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > .ek-map-embed{
  grid-area:map;
  width:100%;
  height:100%;
  min-height:0 !important;
  align-self:stretch;
  margin:0;
  overflow:hidden;
  border-radius:0;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > .ek-map-embed iframe{
  width:100%;
  height:100%;
  min-height:0 !important;
  aspect-ratio:auto;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > p{
  grid-area:text;
  margin:0;
}

main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > ul{
  grid-area:text;
  align-self:end;
  margin:0;
}

@media (max-width:900px){
  main#content #ek-zuordnung-kontakt .ek-card--kontaktstack{
    grid-template-columns:1fr;
    grid-template-areas:
      "title"
      "map"
      "text";
  }

  main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > .ek-map-embed{
    min-height:320px !important;
  }

  main#content #ek-zuordnung-kontakt .ek-card--kontaktstack > ul{
    align-self:auto;
  }
}

main#content #ek-reviews-title + .ek-services-intro-text + .ek-grid-cards,
main#content #ek-reviews-title ~ .ek-grid-cards.ek-grid-cards--3{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:stretch !important;
}

main#content #ek-reviews-title ~ .ek-grid-cards.ek-grid-cards--3 > .ek-card{
  height:100%;
}

main#content #ek-reviews-title ~ .ek-grid-cards.ek-grid-cards--3 > .ek-card p:first-child strong{
  display:inline-block;
  margin-bottom:.2rem;
}

@media (max-width:1024px){
  main#content #ek-reviews-title + .ek-services-intro-text + .ek-grid-cards,
  main#content #ek-reviews-title ~ .ek-grid-cards.ek-grid-cards--3{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:767px){
  main#content #ek-reviews-title + .ek-services-intro-text + .ek-grid-cards,
  main#content #ek-reviews-title ~ .ek-grid-cards.ek-grid-cards--3{
    grid-template-columns:1fr !important;
  }
}

/* =========================================================
   18) Prozess-Blöcke – Typografie-Fix
   ========================================================= */
main#content .ek-process{
  font-size:var(--ek-font-size-body) !important;
  line-height:var(--ek-line-height-body) !important;
}

main#content .ek-process p,
main#content .ek-process li,
main#content .ek-process span,
main#content .ek-process strong{
  font-size:var(--ek-font-size-body) !important;
  line-height:var(--ek-line-height-body) !important;
}

main#content .ek-process p{
  text-align:justify !important;
  text-justify:inter-word !important;
}

main#content .ek-process h3{
  margin:0 0 .7em;
  text-align:center !important;
}

/* =========================================================
   19) Kontaktblock Links / Adressblock
   ========================================================= */
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content address,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content address *{
  font-style:normal !important;
  font-size:var(--ek-font-size-body) !important;
  line-height:var(--ek-line-height-body) !important;
}

main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content address{
  margin:0 0 18px;
  text-align:left !important;
  text-justify:auto !important;
}

main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content address strong{
  font-weight:700 !important;
}

main#content #ek-kontakt-daten + .ek-two-col-block a,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content a,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-list a,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="tel:"],
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="mailto:"],
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href*="wa.me"]{
  color:var(--ek-link) !important;
  text-decoration:none !important;
  font-size:var(--ek-font-size-body) !important;
}

main#content #ek-kontakt-daten + .ek-two-col-block a:hover,
main#content #ek-kontakt-daten + .ek-two-col-block a:focus,
main#content #ek-kontakt-daten + .ek-two-col-block a:focus-visible,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content a:hover,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content a:focus,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-two-col-block__content a:focus-visible,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-list a:hover,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-list a:focus,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] .ek-list a:focus-visible,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="tel:"]:hover,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="tel:"]:focus,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="tel:"]:focus-visible,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="mailto:"]:hover,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="mailto:"]:focus,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href^="mailto:"]:focus-visible,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href*="wa.me"]:hover,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href*="wa.me"]:focus,
main#content .ek-section-gap[aria-labelledby="ek-kontakt-daten"] a[href*="wa.me"]:focus-visible{
  color:var(--ek-link-hover) !important;
  text-decoration:underline !important;
}

/* =========================================================
   19a) Leistungen / Kontakt / FAQ – Inline-Style-Ersatz
   ========================================================= */
main#content .ek-two-col-block--kontakt{
  align-items:stretch;
}

main#content .ek-two-col-block--kontakt .ek-two-col-block__media{
  display:flex;
  min-width:0;
}

main#content .ek-two-col-block--kontakt .ek-two-col-block__content{
  min-width:0;
}

main#content .ek-two-col-block--kontakt .ek-map-embed{
  flex:1;
  height:100%;
  overflow:hidden;
  border-radius:0;
}

main#content .ek-two-col-block--kontakt .ek-map-embed iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

main#content .ek-two-col-block--kontakt a,
main#content .ek-two-col-block--kontakt address,
main#content .ek-two-col-block--kontakt li,
main#content .ek-card__cta a,
main#content .ek-text-block a{
  overflow-wrap:anywhere;
  word-break:break-word;
}

@media (max-width:860px){
  main#content .ek-two-col-block--kontakt .ek-map-embed{
    height:320px;
  }
}

main#content .ek-text-block--cta-gap{
  margin-top:12px;
}

/* =========================================================
   20) Globaler Textumbruch / Shrink-Fix
   ========================================================= */
/* Nur echte Problem-Komponenten, kein breites Elementor-Framework-Hacking */
main#content .ek-card,
main#content .ek-card > *,
main#content .ek-services-grid > *,
main#content .ek-grid-cards > *,
main#content .ek-nav-grid > *,
main#content .ek-mission-grid > *,
main#content .ek-doo-grid > *,
main#content .ek-two-col-block > *,
main#content .ek-two-col-block__content,
main#content .ek-two-col-block__text,
main#content .ek-two-col-block__media,
main#content .ek-two-col-block__placeholder,
main#content .ek-leistungen__card,
main#content .ek-team-card,
main#content .ek-faq > details{
  min-width:0 !important;
}

main#content h1,
main#content h2,
main#content h3,
main#content h4,
main#content h5,
main#content h6,
main#content .elementor-heading-title,
main#content .elementor-heading-title span,
main#content .ek-card h3,
main#content .ek-leistungen__title{
  white-space:normal !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  hyphens:auto;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  text-wrap:wrap !important;
}

main#content p,
main#content li,
main#content address,
main#content span,
main#content strong,
main#content em,
main#content small,
main#content .panel,
main#content .ek-services-intro-text,
main#content .ek-leistungen__desc,
main#content .ek-note{
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
}

main#content .elementor-button,
main#content .elementor-button-text,
main#content .ek-btn,
main#content .ek-card__cta a,
main#content .ek-card__cta a span,
main#content .ek-card__cta a strong,
main#content .ek-card__cta a em,
main#content .ek-card__cta a small{
  white-space:normal !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  line-height:1.2;
  text-align:center;
}

main#content h1,
main#content h2,
main#content h3,
main#content .elementor-heading-title{
  text-wrap:wrap !important;
}

/* =========================================================
   20a) Preisblock / Preiszeilen / Buchungs-CTA
   ========================================================= */
main#content .ek-card .ek-price{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  margin:.45rem 0 1.05rem !important;
  text-align:center !important;
  white-space:normal !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
}

main#content .ek-card .ek-price strong{
  display:block;
  width:100%;
  margin:0;
  font-size:clamp(1.45rem,1.2rem + 0.55vw,1.8rem) !important;
  line-height:1.05 !important;
  font-weight:700 !important;
  letter-spacing:.01em;
  color:var(--ek-ink) !important;
  text-align:center !important;
}

main#content .ek-card .ek-price small{
  display:block;
  width:100%;
  max-width:26ch;
  margin:0 auto;
  font-size:calc(var(--ek-font-size-body) - 5px) !important;
  line-height:1.35 !important;
  color:var(--ek-text-muted) !important;
  text-align:center !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
}

main#content .ek-services-grid .ek-card .ek-card__cta{
  align-items:stretch;
}

main#content .ek-services-grid .ek-card .ek-card__cta a{
  min-width:0 !important;
}

@media (max-width:640px){
  main#content .ek-card .ek-price strong{
    font-size:clamp(1.3rem,1.15rem + 0.7vw,1.55rem) !important;
  }

  main#content .ek-card .ek-price small{
    max-width:100%;
  }
}