/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain:  Avada
*/

html {
  scroll-behavior: smooth;
}

#main {
  --content_bg_image: none !important;
}

/* apply to headings / sections that receive fragment links */
h1[id],
h2[id],
h3[id],
h4[id],
h5[id],
h6[id],
section[id],
div[id] {
  scroll-margin-top: 170px !important;
}

/** Letter Spacing */
.fusion-text {
  --awb-letter-spacing: 0.0325em !important;
}

.fusion-title h1,
.fusion-title h2,
.fusion-title h3,
.fusion-title h4,
.fusion-title h5,
.fusion-title h6 {
  letter-spacing: 0.0325em !important;
  --awb-title-letter-spacing: 0.0325em !important;
}

h1.fusion-title-heading {
  text-transform: uppercase !important;
}

@media (min-width: 720px) {
  h1[id],
  h2[id],
  h3[id],
  h4[id],
  h5[id],
  h6[id],
  section[id],
  div[id] {
    scroll-margin-top: 350px !important;
  }
}
.white-text,
.white-text h1,
.white-text h2,
.white-text h3,
.white-text h4,
.white-text h5,
.white-text h6 {
  color: #fff !important;
}

.lange-hero-video {
  min-height: 750px !important;
}

.lange-hero-text h1,
.lange-hero-text h2,
.lange-hero-text h3 {
  font-size: 2.0875rem !important;
  font-size: clamp(2.0875rem, 5vw, 81px) !important;
  line-height: 1.2 !important;
}

.lange-sub-heading h2,
.lange-sub-heading h3 {
  font-size: 1.5rem !important;
  font-size: clamp(1.1rem, 5.05vw, 22.75px) !important;
  line-height: 1.125 !important;
}

@media (max-width: 700px) {
  .lange-sub-heading.smaller-title-mobile h2,
  .lange-sub-heading.smaller-title-mobile h3 {
    font-size: clamp(1rem, 3.05vw, 14px) !important;
  }
}

@media (min-width: 720px) {
  .lange-sub-heading h2,
  .lange-sub-heading h3 {
    font-size: 1.5rem !important;
    font-size: clamp(1.6rem, 2.7vw, 46.75px) !important;
    line-height: 1.2 !important;
  }
}

.lange-sub-heading strong {
  font-weight: 900 !important;
}

.lange-body-text,
.lange-body-text p {
  font-size: 1.0875rem !important;
  font-size: clamp(1.0875rem, 1.1vw, 19px) !important;
  line-height: 1.7 !important;

  max-width: 99% !important;
  width: 100% !important;
  --awb-margin-right: 0 !important;
}

@media (min-width: 720px) {
  .lange-body-text,
  .lange-body-text p {
    font-size: clamp(1.1875rem, 1.2vw, 20px) !important;
    max-width: 96% !important;
  }
}

.lange-big-text,
.lange-big-text p,
.lange-big-text h1,
.lange-big-text h2,
.lange-big-text h3,
.lange-big-text h4,
.lange-big-text h5,
.lange-big-text h6 {
  font-size: 1.5875rem !important;
  font-size: clamp(1.5875rem, 1.725vw, 30.25px) !important;
  line-height: 1.4 !important;
}

@media (min-width: 720px) {
  .lange-big-text,
  .lange-big-text p,
  .lange-big-text h1,
  .lange-big-text h2,
  .lange-big-text h3,
  .lange-big-text h4,
  .lange-big-text h5,
  .lange-big-text h6 {
    font-size: 1.6875rem !important;
    font-size: clamp(1.6875rem, 1.725vw, 35.25px) !important;
    line-height: 1.475 !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}

/** Alle Titel in Lange Blau */
.fusion-title-heading h1,
.fusion-title-heading h2,
.fusion-title-heading h3,
.fusion-title-heading h4,
.fusion-title-heading h5,
.fusion-title-heading h6 {
  color: var(--awb-color4) !important;
  --awb-text-color: var(--awb-color4) !important;
}

/** General h2 on mobile */
@media only screen and (max-width: 1000px) {
  h2.fusion-responsive-typography-calculated,
  h2.fusion-title-heading,
  h3.fusion-responsive-typography-calculated,
  h3.fusion-title-heading {
    font-size: 1.5rem !important;
    font-size: clamp(1.6rem, 4.2vw, 40.75px) !important;
    line-height: 1.2 !important;
  }
}

/** Shadow on Headaer **/
.fusion-sticky-container.fusion-container-stuck.fusion-sticky-transition {
  box-shadow: 0 0px 40px 0px #0000001c !important;
}

.team-bild .fusion-column-has-bg-image {
  background-position: 25% 50%;
}

.header-navi-lange .awb-menu__main-ul a {
  font-size: 1.0875rem !important;
  font-size: clamp(0.845rem, 0.975vw, 17.2px) !important;
  letter-spacing: 0.0125em;
  font-weight: 600;
  text-decoration: none !important;
  color: rgba(0, 0, 0, 0.525) !important;
  transition: color 0.3s ease;
  text-transform: uppercase !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  --awb-active-color: rgba(0, 0, 0, 0.9525) !important;
  --awb-items-padding-right: clamp(5.5px, 0.75vw, 12px) !important;
  --awb-items-padding-left: clamp(5.5px, 0.75vw, 12px) !important;
}

.header-navi-lange .awb-menu__main-ul .mega-menu-title,
.header-navi-lange .awb-menu__main-ul .mega-menu-title a {
  font-size: 1.0875rem !important;
  font-size: clamp(0.845rem, 0.9vw, 13.75px) !important;
  font-weight: 600;
  text-decoration: none !important;
  color: rgba(0, 0, 0, 0.525) !important;
  transition: color 0.3s ease;
  text-transform: uppercase !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  --awb-active-color: rgba(0, 0, 0, 0.9525) !important;
  --awb-items-padding-right: clamp(5.5px, 0.75vw, 12px) !important;
  --awb-items-padding-left: clamp(5.5px, 0.75vw, 12px) !important;
}

.header-navi-lange .awb-menu__main-ul a:hover {
  color: rgba(0, 0, 0, 0.8) !important;
}

.header-navi-lange .awb-menu__main-ul .awb-menu__main-a_regular a,
.awb-menu__main-li_regular.current-menu-item a.awb-menu__main-a_regular {
  color: rgba(0, 0, 0, 0.9525) !important;
}

.text-pretty,
.text-pretty p,
.text-pretty h1,
.text-pretty h2,
.text-pretty h3,
.text-pretty h4,
.text-pretty h5,
.text-pretty h6 {
  text-wrap-style: pretty !important;
}

.footer-sub-links a {
  margin-left: 6px !important;
  margin-right: 6px !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  color: rgba(0, 0, 0, 0.5) !important;
  transition: color 0.3s ease;
}

.footer-sub-links a:hover {
  color: rgba(0, 0, 0, 0.75) !important;
}

.lange-footer {
  --link_hover_color: rgba(0, 0, 0, 0.9) !important;
}

.lange-footer a {
  transition: color 0.3s ease;
}

.piktogram-hue {
  filter: brightness(145%) saturate(0%) !important;
}

.small-text-shadow {
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.4) !important;
}

/** Language Switcher */
.lange-language-switcher {
  font-size: 1.0875rem !important;
  font-size: clamp(0.245rem, 1.1vw, 15.75px) !important;
  text-transform: uppercase !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  display: inline-flex;
  align-items: baseline;
}

@media (max-width: 860px) {
  .lange-language-switcher {
    font-size: clamp(1rem, 3.5vw, 16px) !important;
  }
}

.lange-language-switcher .sep {
  margin: 0 6px;
  color: rgba(0, 0, 0, 0.5);
}

.lange-language-switcher a {
  text-decoration: none;
  color: rgba(0, 0, 0, 0.5);
  font-weight: 400;
}

.lange-language-switcher a.active {
  color: rgba(0, 0, 0, 0.9525);
  font-weight: 700;
}

.lange-language-switcher a:hover:not(.active),
.lange-language-switcher a:focus-visible:not(.active) {
  color: rgba(0, 0, 0, 0.85);
  text-decoration: underline;
}

.header-lang-toggle {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.contact-field a {
  color: #fff !important;
  font-weight: 600;
}

.lange-long-markdown h2 {
  font-size: 1.5rem !important;
}

.lange-long-markdown h3 {
  font-size: 1.25rem !important;
}

.lange-long-markdown h4 {
  font-size: 1.125rem !important;
}

/** Zoom In Kontakt Video */
.zoom-in-video .fullwidth-video {
  overflow: hidden; /* prevent the scaled video from spilling out */
}

.zoom-in-video .fullwidth-video video {
  width: 100%;
  height: 100%;
  object-fit: cover; /* keep aspect ratio, fill container */
  transform: translate(-50%, -50%) scale(1.2) !important; /* zoom */
  transform-origin: center; /* zoom from the centre */
  display: block;
  /* Optional: uncomment for a subtle fade/zoom-in on load */
  /* transition: transform 400ms ease; */
}

.service-card-heading h2,
.service-card-heading h3,
.service-card-heading h4 {
  font-size: clamp(16.75px, 4.5vw, 19.25px) !important;
  text-transform: uppercase !important;
}

@media (min-width: 720px) {
  .service-card-heading h2,
  .service-card-heading h3,
  .service-card-heading h4 {
    font-size: clamp(13px, 1.35vw, 28px) !important;
    /* line-break: anywhere; */
  }
}

.leistungen-ueberblick a.fusion-button-default .fusion-button-text {
  color: var(--awb-color4) !important;
  text-decoration: none !important;
}

.leistungen-ueberblick a.fusion-button-default .fusion-button-text:after {
  display: none !important;
}

.leistungen-ueberblick a.fusion-button-default .awb-factoryarrow-right {
  color: var(--awb-color4) !important;
}

/** Hover Effect auf Leistungen Überblick */
.leistungen-ueberblick .fusion-layout-column .fusion-column-wrapper:hover {
  background-color: #d2ebf7 !important;
}

.leistungen-ueberblick .fusion-builder-row-inner {
  min-height: 436px !important;
}

.leistungen-ueberblick .fusion-image-element {
  height: 100% !important;
}

.leistungen-ueberblick .has-aspect-ratio {
  aspect-ratio: unset !important;
  height: 100% !important;
}

.leistungen-ueberblick .leistung-start-bild img {
  height: 100% !important;
  object-fit: cover !important;
  background-color: #d2ebf7 !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
}

/** Hover Effect auf Leistungen Mehr erfahren Buttons */
.leistungen-ueberblick .fusion-button.button-flat::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px; /* adjust to sit right at the edge; 0 if you want it flush */
  height: 0;
  border-bottom: 2px solid var(--awb-color4); /* uses the button’s text color */
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.2s ease;
  pointer-events: none; /* don’t block clicks */
}

.leistungen-ueberblick .fusion-button.button-flat:hover::after {
  transform: scaleX(1);
}

.to-top-right #toTop {
  right: 38px !important;
}

/** Team Table */

.team-table table {
  width: 100%;
  border-collapse: separate; /* required for border-spacing to work */
  border-spacing: 24px 0; /* 24px gap between columns, none between rows */
  table-layout: fixed; /* keeps columns stable and prevents layout shifts */
  margin-left: -24px; /* cancel outer left/right spacing from border-spacing */
  margin-right: -24px;
  background: transparent;
  border: 0;
}

.team-table th,
.team-table td {
  padding: 8px 0; /* vertical breathing room only */
  text-align: left;
  vertical-align: top;
  background: transparent;
  border: 0;
  color: inherit;
  font-size: 19px !important;
}

.team-table thead th {
  font-weight: 600;
  font-size: 22.5px !important;
}

.team-table td strong {
  color: #000 !important;
}

.team-table a {
  color: inherit;
  text-decoration: underline;
  word-break: break-word;
  overflow-wrap: anywhere; /* keeps long emails from overflowing */
}

/* Make the second column ~1.2x wider */
.team-table thead th:nth-child(2),
.team-table tbody td:nth-child(2) {
  width: 30% !important;
}

/* Optional: keep phone numbers on one line */
.team-table tbody td:nth-child(4) {
  white-space: nowrap;
}

/* Mobile: stack rows, hide header, add inline labels */
@media (max-width: 860px) {
  .team-table table {
    margin-left: 0px; /* cancel outer left/right spacing from border-spacing */
    margin-right: 0px;
  }

  /* Visually hide thead but keep it accessible */
  .team-table thead,
  .team-table thead tr,
  .team-table thead th {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  /* Remove column gaps when stacking */
  .team-table table {
    border-spacing: 0;
  }

  /* Make rows block-level "cards" without borders/backgrounds */
  .team-table tbody,
  .team-table tr {
    display: block;
    width: 100%;
  }

  .team-table tr {
    padding: 12px 0;
  }

  /* spacing between rows */
  .team-table tr + tr {
    margin-top: 12px;
  }

  /* Each cell becomes a labeled block */
  .team-table td {
    display: block;
    padding: 6px 0;
    white-space: normal; /* allow wrapping on small screens */
    width: auto !important;
  }

  .team-table td::before {
    display: block;
    font-weight: 600;
    opacity: 0.75;
    margin-bottom: 2px;
  }

  /* Inject labels for each column */
  .team-table td:nth-child(1)::before {
    content: "Name";
  }
  .team-table td:nth-child(2)::before {
    content: "Position";
  }
  .team-table td:nth-child(3)::before {
    content: "Email";
  }
  .team-table td:nth-child(4)::before {
    content: "Telefon";
  }

  /* Allow phone numbers to wrap on mobile */
  .team-table tbody td:nth-child(4) {
    white-space: normal;
    word-break: break-word;
  }

  .team-table tbody tr:not(:last-child)::after {
    content: "";
    display: block;
    width: 32%;
    margin: 46px auto 0; /* centers and adds a little space before the line */
    border-bottom: 2px solid var(--awb-custom_color_1);
    opacity: 1; /* subtle line; adjust to taste */
  }
}
