.elementor-516 .elementor-element.elementor-element-dfc2a6c{--display:flex;}.elementor-516 .elementor-element.elementor-element-cc1c503{--display:flex;--overlay-opacity:0.7;}.elementor-516 .elementor-element.elementor-element-cc1c503::before, .elementor-516 .elementor-element.elementor-element-cc1c503 > .elementor-background-video-container::before, .elementor-516 .elementor-element.elementor-element-cc1c503 > .e-con-inner > .elementor-background-video-container::before, .elementor-516 .elementor-element.elementor-element-cc1c503 > .elementor-background-slideshow::before, .elementor-516 .elementor-element.elementor-element-cc1c503 > .e-con-inner > .elementor-background-slideshow::before, .elementor-516 .elementor-element.elementor-element-cc1c503 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-accent );--background-overlay:'';}:root{--page-title-display:none;}@media(max-width:767px){.elementor-516 .elementor-element.elementor-element-dfc2a6c{--margin-top:0px;--margin-bottom:0px;--margin-left:-10px;--margin-right:0px;}.elementor-516 .elementor-element.elementor-element-cc1c503{--content-width:1600px;}}/* Start custom CSS for html, class: .elementor-element-0a5b846 *//* ===================== GLOBAL SCALE / TYPE ===================== */
:root{
  --accent:#6CAD83;
  --wrap: min(1200px, 92vw);
}
html{ font-size:16px; }
h1,h2,h3{ word-break:normal; overflow-wrap:anywhere; }

/* Headlines fluid */
.svc__head h2,
.lb-gallery h2,
.lb-head h2,
.one-stop h2,
.timeline h2 {
  font-family: Roboto, system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem); /* ~25–40px */
  line-height: 1.2;
}
.projects__head h2{ font-size: clamp(1.5rem, 1rem + 1.8vw, 2.25rem); }

/* Body text fluid */
.svc__head p,
.lb-gallery p,
.lb-head p,
.one-stop p,
.timeline .subtitle,
.step p,
.modal__desc,
.modalInfo li,
.projects .project__content p {
  font-size: clamp(.95rem, .9rem + .3vw, 1.0625rem); /* 15–17px */
  line-height: 1.65;
}

/* Section max width unified */
.svc__grid,
.lb-gallery__head,
.lb-filter,
.lb-masonry,
.lb-contact__inner,
.one-stop__inner,
.timeline { width: var(--wrap); }

/* Eyebrow-Badges spacing */
.svc .eyebrow,
.projects .eyebrow,
.one-stop .eyebrow,
.timeline .eyebrow,
.lb-gallery .eyebrow {
  margin-bottom: clamp(8px, 1vw, 14px);
}

/* Section paddings fluid */
.svc, .lb-gallery, .lb-contact, .one-stop, .timeline {
  padding: clamp(48px, 7vw, 84px) 20px;
}

/* ===================== LEISTUNGEN GRID & MODALS ===================== */
.svc__grid{
  display:grid;
  gap: clamp(12px, 2vw, 20px);
  grid-template-columns: repeat(12, 1fr);
}
.svc__grid > .svcCard{
  grid-column: span 4;                 /* 3 in Reihe */
  aspect-ratio: 4 / 3;
}
@media (max-width: 1024px){
  .svc__grid > .svcCard{ grid-column: span 6; } /* 2 in Reihe */
}
@media (max-width: 580px){
  .svc__grid > .svcCard{ grid-column: 1 / -1; } /* 1 in Reihe */
}

/* Card overlay text sizing */
.svcCard__overlay h3{ font-size: clamp(1rem, .8rem + .8vw, 1.25rem); }
.svcCard__cta{ font-size: clamp(.7rem, .6rem + .4vw, .8rem); padding: .55rem .8rem; }

/* Modal dialog sizing */
.modal__dialog{
  width: min(1000px, 94vw);
  border-radius: 18px;
  padding: clamp(14px, 2vw, 20px);
}
.modal__top h3{
  font-size: clamp(1rem, .7rem + 1vw, 1.25rem);
}
.modal__close{ width: clamp(38px, 6vw, 44px); height: clamp(38px, 6vw, 44px); }

/* Modal layout fluid */
.modal__body{
  display:grid;
  grid-template-columns: minmax(280px, 42%) 1fr;
  gap: clamp(14px, 2vw, 22px);
}
@media (max-width: 860px){
  .modal__body{ grid-template-columns: 1fr; }
}
.modalFigure{ aspect-ratio: 4/3; }

/* Better touch targets inside modal lists */
.modalInfo li{ padding: 2px 0; }

/* ===================== PROJEKTE ===================== */
.projects__list{
  display:grid;
  gap: clamp(12px, 2vw, 18px);
  grid-template-columns: repeat(12, 1fr);
}
.projects .project{
  grid-column: span 4;
  display:grid;
  grid-template-rows: auto 1fr;
  border-radius: 14px;
  overflow:hidden;
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
}
.projects .project img{ width:100%; height:auto; display:block; }
.projects .project__content{ padding: clamp(12px, 2.2vw, 16px); }
.projects .project h3{ font-size: clamp(1rem, .8rem + .6vw, 1.2rem); }

@media (max-width: 1024px){ .projects .project{ grid-column: span 6; } }
@media (max-width: 600px) { .projects .project{ grid-column: 1 / -1; } }

/* ===================== TIMELINE ===================== */
.timeline{ text-align: center; }
.timeline__steps{ padding: clamp(12px, 2.5vw, 24px) 0; }
.timeline__steps::before{ width: 6px; top: clamp(24px, 4vw, 40px); bottom: clamp(16px, 3vw, 24px); }
.step{ padding: clamp(16px, 2.5vw, 24px) clamp(16px, 3vw, 40px); }
.step .dot{ width: clamp(34px, 4.8vw, 40px); height: clamp(34px, 4.8vw, 40px); font-size: clamp(.9rem, .6rem + .8vw, 1rem); }
.card{ max-width: clamp(280px, 60vw, 380px); }
.card h3{ font-size: clamp(1rem, .8rem + .6vw, 1.15rem); }

/* Mobile timeline single column handled by your existing @media, keep. */

/* ===================== ONE-STOP (3 Karten) ===================== */
.one-stop__steps{
  display:grid;
  gap: clamp(16px, 2.5vw, 30px);
  grid-template-columns: repeat(12, 1fr);
}
.one-stop .step{ grid-column: span 4; }
@media (max-width: 1024px){ .one-stop .step{ grid-column: span 6; } }
@media (max-width: 600px) { .one-stop .step{ grid-column: 1 / -1; } }
.one-stop .step .icon{ font-size: clamp(28px, 3.5vw, 38px); }

/* ===================== KONTAKT ===================== */
.lb-grid{
  display:grid;
  grid-template-columns: minmax(260px, 410px) 1fr;
  gap: clamp(16px, 2vw, 28px);
}
@media (max-width: 980px){ .lb-grid{ grid-template-columns: 1fr; } }

.lb-formwrap{ padding: clamp(16px, 2.2vw, 22px); }
.control input, .control select, .control textarea{ font-size: clamp(.95rem, .9rem + .2vw, 1rem); }
.btn{ padding: clamp(12px, 1.6vw, 14px) clamp(18px, 2.4vw, 22px); }

/* ===================== GALERIE (Masonry + Lightbox) ===================== */
/* Feiner gestufte Spalten für breite/kleine Screens */
.lb-masonry{ column-gap: clamp(10px, 1.6vw, 18px); }
@media (min-width:1280px){ .lb-masonry{ column-count: 4; } }
@media (min-width:901px) and (max-width:1279px){ .lb-masonry{ column-count: 3; } }
@media (min-width:601px) and (max-width:900px){ .lb-masonry{ column-count: 2; } }
@media (max-width:600px){ .lb-masonry{ column-count: 1; } }

.it{ margin-bottom: clamp(10px, 1.6vw, 18px); border-radius: 14px; }
.it figcaption{ font-size: clamp(.85rem, .8rem + .2vw, .95rem); }

/* Lightbox controls bigger on touch */
@media (max-width: 768px){
  .lbx__nav{ width:48px; height:48px; font-size:26px; }
  .lbx__close{ width:44px; height:44px; }
}

/* ===================== ACCESSIBILITY / MOTION ===================== */
@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior:auto !important; }
  .svcCard, .it, .card { transition:none !important; }
}/* End custom CSS */
/* Start custom CSS */body {
  background: radial-gradient(at 20% 20%, rgba(108,173,131,0.15), transparent 40%),
              radial-gradient(at 80% 80%, rgba(240,246,243,1), transparent 50%),
              #ffffff;
}



html::before{
  content:"";
  position:fixed; inset:0;
  background:
    linear-gradient(100deg,
      rgba(108,173,131,0.24) 0%,
      rgba(108,173,131,0.12) 22%,
      rgba(108,173,131,0.06) 40%,
      rgba(108,173,131,0.00) 65%) left / 1200px 100% no-repeat;
  pointer-events:none;
  z-index:0;
}
body, #page, .site, .elementor-location-body{ position:relative; z-index:1; }/* End custom CSS */