/* ==========================================================
   EDV-Service.ME – Helix Ultimate 2.2.10
   Modern, calm, accessible design for private customers,
   seniors and small businesses.
   ========================================================== */
:root {
  --edv-green: #2f7d4f;
  --edv-green-dark: #205b39;
  --edv-green-soft: #e7f1e9;
  --edv-ink: #17231d;
  --edv-text: #3f4c45;
  --edv-muted: #6d7872;
  --edv-sand: #f6f4ef;
  --edv-line: #dfe6e1;
  --edv-white: #ffffff;
  --edv-radius: 24px;
  --edv-shadow: 0 18px 55px rgba(23,35,29,.12);
}

html { scroll-behavior: smooth; }
body {
  color: var(--edv-text);
  background: var(--edv-white);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, .sppb-btn:focus-visible {
  outline: 3px solid rgba(47,125,79,.38) !important;
  outline-offset: 3px;
}

/* Header / navigation */
#sp-header {
  background: rgba(255,255,255,.96) !important;
  min-height: 82px;
  box-shadow: 0 1px 0 rgba(23,35,29,.08);
  backdrop-filter: saturate(150%) blur(12px);
  -webkit-backdrop-filter: saturate(150%) blur(12px);
  transition: box-shadow .25s ease, background .25s ease;
  z-index: 999;
}
#sp-header.header-sticky {
  box-shadow: 0 10px 34px rgba(23,35,29,.12);
}
#sp-header .logo { min-height: 82px; display:flex; align-items:center; }
#sp-header .logo img { max-height: 46px; width:auto; }
.sp-megamenu-parent > li > a,
.sp-megamenu-parent > li > span {
  min-height: 82px;
  display:flex;
  align-items:center;
  padding: 0 13px;
  color: var(--edv-ink) !important;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: none;
}
.sp-megamenu-parent > li:hover > a,
.sp-megamenu-parent > li.active > a { color: var(--edv-green) !important; }
.sp-megamenu-parent .sp-dropdown .sp-dropdown-inner {
  border: 1px solid var(--edv-line);
  border-radius: 18px;
  box-shadow: var(--edv-shadow);
  padding: 10px;
}
.sp-megamenu-parent .sp-dropdown li.sp-menu-item > a {
  border-radius: 10px;
  padding: 10px 12px;
  color: var(--edv-ink);
}
.sp-megamenu-parent .sp-dropdown li.sp-menu-item > a:hover {
  background: var(--edv-green-soft);
  color: var(--edv-green-dark);
}
/* Contact as a clear call-to-action without changing the menu structure */
.sp-megamenu-parent > li.item-113 > a,
.sp-megamenu-parent > li > a[href*="kontakt"] {
  min-height: 44px;
  margin: 19px 0 19px 8px;
  padding: 0 19px;
  border-radius: 999px;
  background: var(--edv-green);
  color: #fff !important;
}
.sp-megamenu-parent > li.item-113 > a:hover,
.sp-megamenu-parent > li > a[href*="kontakt"]:hover {
  background: var(--edv-green-dark);
  color: #fff !important;
}
#offcanvas-toggler { color: var(--edv-ink); }
.offcanvas-menu { background: #fff; }
.offcanvas-menu .offcanvas-inner ul.menu > li > a,
.offcanvas-menu .offcanvas-inner ul.menu > li > span {
  color: var(--edv-ink);
  font-size: 18px;
  padding: 9px 0;
}

/* Helix main body: SP Page Builder controls its own spacing */
body.com-sppagebuilder #sp-main-body { padding: 0; }
#sp-main-body { overflow: hidden; }
.sppb-row-container { max-width: 1240px; }

/* Global typography and components */
h1, h2, h3, h4, h5, h6,
.sppb-addon-title { color: var(--edv-ink); }
h1 { font-weight: 800; letter-spacing: -.035em; }
h2 { font-weight: 750; letter-spacing: -.025em; }
.sppb-btn {
  border-radius: 999px !important;
  font-weight: 700 !important;
  min-height: 48px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding-left: 23px !important;
  padding-right: 23px !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.sppb-btn:hover { transform: translateY(-2px); }
.sppb-btn-primary,
.btn-primary {
  background: var(--edv-green) !important;
  border-color: var(--edv-green) !important;
  color: #fff !important;
  box-shadow: 0 10px 28px rgba(47,125,79,.22);
}
.sppb-btn-primary:hover,
.btn-primary:hover {
  background: var(--edv-green-dark) !important;
  border-color: var(--edv-green-dark) !important;
}
.sppb-addon-single-image img,
.sppb-addon-image-layouts img,
.sppb-img-responsive {
  border-radius: 20px;
}

/* Homepage hero */
.edv-home-hero {
  position: relative;
  overflow: hidden;
  padding: 106px 0 82px !important;
  background:
    radial-gradient(circle at 88% 15%, rgba(255,255,255,.22), transparent 32%),
    linear-gradient(135deg, #edf5ef 0%, #f8f7f2 58%, #e9f1eb 100%) !important;
}
.edv-home-hero::before {
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-170px;
  top:-180px;
  border-radius:50%;
  border:72px solid rgba(47,125,79,.08);
  pointer-events:none;
}
.edv-home-hero::after {
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  left:5%;
  bottom:-95px;
  border-radius:50%;
  background:rgba(47,125,79,.075);
  pointer-events:none;
}
.edv-home-hero .sppb-row-container { position:relative; z-index:2; }
.edv-home-hero h1,
.edv-home-hero .sppb-addon-title[style*="46"] {
  font-size: clamp(42px, 5.2vw, 72px) !important;
  line-height: 1.04 !important;
  max-width: 780px;
  margin-bottom: 24px !important;
}
.edv-home-hero .edv-hero-lead {
  max-width: 720px;
  font-size: 18px;
  color: #46524b;
}
.edv-home-hero .edv-hero-quick {
  position: relative;
  padding: 34px 34px 30px !important;
  margin: 10px 0 0 30px !important;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(47,125,79,.13);
  border-radius: 28px;
  box-shadow: var(--edv-shadow);
}
.edv-home-hero .edv-hero-quick::before {
  content:"Schnelleinschätzung";
  display:inline-block;
  margin-bottom:14px;
  padding:7px 11px;
  border-radius:999px;
  background:var(--edv-green-soft);
  color:var(--edv-green-dark);
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* Homepage service bento – deliberately breaks the long linear page */
.edv-home-services {
  padding: 92px 0 !important;
  background: #fff;
}
.edv-home-services > .sppb-row-container > .sppb-row {
  display: grid !important;
  grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr);
  grid-template-rows: 1fr 1fr;
  gap: 22px;
}
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"] {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
}
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(1) {
  grid-row: 1 / span 2;
}
.edv-home-services .edv-service-card,
.edv-home-services .sppb-column-addons {
  height: 100%;
}
.edv-home-services .edv-service-card {
  position:relative;
  min-height: 205px;
  padding: 32px !important;
  border-radius: 26px;
  border: 1px solid var(--edv-line);
  background: var(--edv-sand);
  overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:first-child .edv-service-card {
  min-height: 455px;
  background: linear-gradient(145deg, #183127 0%, #244c39 100%);
  color:#fff;
}
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:first-child .edv-service-card h2,
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:first-child .edv-service-card h3,
.edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:first-child .edv-service-card p {
  color:#fff !important;
}
.edv-home-services .edv-service-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--edv-shadow);
  border-color: rgba(47,125,79,.28);
}
.edv-home-services .edv-service-card-button { margin-top: 14px; }

/* Contact block */
.edv-home-contact {
  padding: 94px 0 !important;
  background: var(--edv-sand) !important;
}
.edv-home-contact > .sppb-row-container > .sppb-row {
  align-items: center;
  padding: 26px;
  background:#fff;
  border:1px solid var(--edv-line);
  border-radius:30px;
  box-shadow:0 22px 64px rgba(23,35,29,.09);
}
.edv-home-contact img { border-radius:22px; }
.edv-home-contact .custom-contact-info {
  margin-top:24px;
  padding:20px 22px;
  border-radius:18px;
  background:var(--edv-green-soft);
}
.edv-home-contact .custom-contact-info a {
  color:var(--edv-green-dark);
  font-weight:800;
}

/* Trust / proof section */
.edv-home-trust { padding: 96px 0 !important; background:#fff; }
.edv-home-trust > .sppb-row-container > .sppb-row {
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
}
.edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"] {
  width:auto !important;
  max-width:none !important;
  flex:none !important;
  padding:0 !important;
}
.edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(1),
.edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(2) {
  grid-column:span 6;
  padding:28px !important;
  border-radius:26px;
  background:var(--edv-sand);
}
.edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(n+3) {
  grid-column:span 2;
  padding:22px 16px !important;
  border:1px solid var(--edv-line);
  border-radius:20px;
  background:#fff;
  text-align:center;
  transition:transform .2s ease, box-shadow .2s ease;
}
.edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(n+3):hover {
  transform:translateY(-4px);
  box-shadow:0 14px 34px rgba(23,35,29,.09);
}
.edv-home-trust .sppb-addon-feature .sppb-addon-title {
  font-size:15px !important;
  line-height:1.35 !important;
}

/* Regional area */
.edv-home-regions { background:#17231d !important; padding:0 !important; }
.edv-region-overview {
  max-width:1240px;
  margin:0 auto;
  padding:80px 24px;
  color:#dce5df;
}
.edv-region-overview h2 { color:#fff; font-size:clamp(30px,4vw,48px); }
.edv-region-overview p { max-width:900px; color:#dce5df; }
.edv-region-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.edv-region-links a {
  display:inline-flex;
  padding:10px 15px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
}
.edv-region-links a:hover { background:#fff; color:var(--edv-ink); }

/* Generic SP Page Builder pages – calmer, more dimensional */
body.com-sppagebuilder .sppb-section:not(.edv-home-hero):not(.edv-home-services):not(.edv-home-contact):not(.edv-home-trust):not(.edv-home-regions) {
  position:relative;
}
body.com-sppagebuilder .sppb-addon-feature {
  border-radius:20px;
}
body.com-sppagebuilder .sppb-addon-feature .sppb-icon-container { color:var(--edv-green); }
body.com-sppagebuilder .sppb-addon-image-content img,
body.com-sppagebuilder .sppb-addon-single-image img { box-shadow:0 14px 44px rgba(23,35,29,.10); }

/* Blog / Joomla content */
body.com-content #sp-main-body { padding:72px 0 88px; }
.article-list .article,
.article-details {
  border:1px solid var(--edv-line);
  border-radius:22px;
  box-shadow:0 12px 38px rgba(23,35,29,.07);
  overflow:hidden;
}
.article-list .article { padding:24px; transition:transform .2s ease, box-shadow .2s ease; }
.article-list .article:hover { transform:translateY(-3px); box-shadow:var(--edv-shadow); }

/* Footer */
#sp-bottom {
  background:#1b2821 !important;
  color:#dce5df;
  padding:64px 0 42px;
}
#sp-bottom h3, #sp-bottom h4, #sp-bottom .sp-module-title { color:#fff; }
#sp-bottom a { color:#dce5df; }
#sp-bottom a:hover { color:#fff; }
#sp-footer {
  background:#142019 !important;
  color:#c8d2cc;
  border-top:1px solid rgba(255,255,255,.08);
}
#sp-footer a { color:#fff; }

/* Reveal – only enabled when custom.js has loaded */
.edv-reveal-ready .edv-reveal {
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s ease, transform .6s ease;
}
.edv-reveal-ready .edv-reveal.edv-inview {
  opacity:1;
  transform:none;
}

@media (max-width: 1199px) {
  .sp-megamenu-parent > li > a, .sp-megamenu-parent > li > span { padding-left:9px; padding-right:9px; font-size:14px; }
}
@media (max-width: 991px) {
  #sp-header, #sp-header .logo { min-height:72px; }
  #sp-header .logo img { max-height:40px; }
  .edv-home-hero { padding:72px 0 60px !important; }
  .edv-home-hero .edv-hero-quick { margin:28px 0 0 !important; }
  .edv-home-services > .sppb-row-container > .sppb-row { grid-template-columns:1fr; grid-template-rows:auto; }
  .edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(1) { grid-row:auto; }
  .edv-home-services > .sppb-row-container > .sppb-row > [class*="col-"]:first-child .edv-service-card { min-height:280px; }
  .edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(1),
  .edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(2) { grid-column:span 12; }
  .edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(n+3) { grid-column:span 4; }
}
@media (max-width: 767px) {
  body { font-size:16px; }
  .edv-home-hero h1 { font-size:38px !important; }
  .edv-home-services, .edv-home-contact, .edv-home-trust { padding:62px 0 !important; }
  .edv-home-contact > .sppb-row-container > .sppb-row { padding:16px; border-radius:22px; }
  .edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(n+3) { grid-column:span 6; }
  .edv-region-overview { padding:60px 20px; }
}
@media (max-width: 480px) {
  .edv-home-trust > .sppb-row-container > .sppb-row > [class*="col-"]:nth-child(n+3) { grid-column:span 12; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .edv-reveal-ready .edv-reveal { opacity:1; transform:none; }
}
