:root {
  --green: var(--green);
  --teal: var(--teal);
  --lachs: var(--lachs);
  --redbrown: var(--redbrown);
  --font-text: "DIN Condensed";
  --font-heading: "pf-marlet-display";
}

.hide {
  display: none !important;
}

/*#region header*/
/* ------------------------------------------------------------------------------------------------- */
.one-container .site-content {
  padding-left: clamp(1rem, 1.875vw, 1.5rem);
  padding-right: clamp(1rem, 1.875vw, 1.5rem);
}

.rel {
  position: relative;
}

.a-test {
  position: absolute;
  top: 20px;
  left: 50%;
}

/*#endregion*/

body {
  touch-action: manipulation !important;
  font-family: var(--font-text);
}

body p {
  font-size: 1.25rem;
  font-family: var(--font-text);
}

body h1,
body h2,
body h3 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
}

.content-heading {
  font-size: clamp(2.25rem, 5vw, 4rem) !important;
  line-height: 1.1 !important;
  margin-bottom: 25px !important;
  color: white;
  text-align: center;
}

.content-list {
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  line-height: 1.2 !important;
  color: white;
  font-family: var(--font-text) !important;
  margin-left: 24px;
}

.content-text,
.content-text p {
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  line-height: 1.2 !important;
  color: white !important;
  font-family: var(--font-text) !important;
  text-align: center;
}

.content-text p {
  margin-bottom: 25px !important;
}

.content-text ul {
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  line-height: 1.2 !important;
  color: white;
  font-family: var(--font-text) !important;
  margin-left: 24px;
  margin-bottom: 25px;
}

.content-text a,
.content-text a {
  color: var(--lachs) !important;
  text-decoration: underline !important;
}

.content-text a:hover,
.content-text a:focus-visible {
  opacity: 0.8 !important;
}

p.content-text {
  margin-bottom: 25px !important;
}

.content-text.ta-left {
  text-align: left !important;
}

/*#region telefon-linkliste */
/* ------------------------------------------------------------------------------------------------- */
.tel-demo {
  color: white;
  font-family: var(--font-text) !important;
  line-height: 1.2 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
}

.linksammlung-title {
  color: white;
  font-family: var(--font-text) !important;
  line-height: 1.2 !important;
  margin-bottom: 0 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
}

.linksammlung-list {
  list-style-type: none;
  color: var(--lachs);
  text-decoration: underline;
  font-family: var(--font-text) !important;
  padding-left: 0 !important;
  line-height: 1.2 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
}

.linksammlung-list a:hover {
  color: var(--lachs) !important;
  opacity: 0.8 !important;
}

/*#endregion*/

/* #region Telefonnummer-Links*/
.phone-numbers-container {
  margin-bottom: 45px;
}

.phone-numbers-container p {
  line-height: 1.2 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  color: white;
  font-family: var(--font-text) !important;
  text-decoration: none !important;
  margin-bottom: 0 !important;
}

.phone-numbers-container a {
  line-height: 1.2 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  color: var(--lachs);
  font-family: var(--font-text) !important;
  text-decoration: none !important;
  margin-bottom: 0 !important;
}

.phone-numbers-container a:hover,
.phone-numbers-container a:focus,
.phone-numbers-container a:focus-visible {
  color: var(--lachs) !important;
  opacity: 0.8 !important;
  text-decoration: underline !important;
}

@media (max-width: 600px) {
  .phone-number-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
  }
}


/*#endregion*/

/*#region #1 buttons */
/* ------------------------------------------------------------------------------------------------- */
.kb-button.kb-btn-global-fill {
  background: transparent !important;
  border-radius: 0 !important;
  border: 2px solid white !important;
  font-family: var(--font-text) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  font-size: 1.5rem !important;
  padding: 16px 0 12px 0 !important;
  transition: none !important;
}

.kb-button.kb-btn-global-fill:hover {
  background: var(--lachs) !important;
  color: var(--redbrown) !important;
  border-color: var(--lachs) !important;
}

.kb-button.kb-btn-global-fill:focus-visible {
  background: var(--lachs) !important;
  color: var(--redbrown) !important;
  border-color: var(--lachs) !important;
  outline: 2px dashed var(--lachs) !important;
}

/*#endregion*/

/*#region #2 utility classes */
/* ------------------------------------------------------------------------------------------------- */
.green {
  color: var(--green);
}

.bg-green {
  background-color: var(--green);
}

.teal {
  color: var(--teal);
}

.bg-teal {
  background-color: var(--teal);
}

.lachs {
  color: var(--lachs);
}

.bg-lachs {
  background-color: var(--lachs);
}

.redbrown {
  color: var(--redbrown);
}

.bg-redbrown {
  background-color: var(--redbrown);
}

/*#endregion*/

/*#region #3 header */
/* ------------------------------------------------------------------------------------------------- */
.screen-reader-text:focus,
.screen-reader-text:focus-visible {
  background: var(--redbrown) !important;
  color: white !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 1.25rem !important;
  outline: 2px dashed white !important;
}

header#main-header {
  position: absolute;
  max-width: 1280px;
  width: 100%;
  height: 120px;
  background: transparent;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  z-index: 100;
}

header .wrapper {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.header-column-1 span {
  color: transparent;
}

.header-column-2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 45px;
}


.intro-main {
  color: white;
  font-size: clamp(2.625rem, 7.344vw, 5.875rem) !important;
  text-align: center;
  line-height: 1.1;
  font-family: var(--font-heading);
  font-weight: 700;
}

.main-nav ul {
  list-style-type: none;
  margin: 0;
}

.header-logo {
  position: relative;
  max-width: clamp(8.75rem, 14.063vw, 11.25rem);
  top: 25px;
  margin-bottom: 25px;
}

/*#endregion*/

/*#region #4 navigation & trigger */
/* ------------------------------------------------------------------------------------------------- */
.burger-menu-toggle {
  position: absolute;
  top: 20px;
  right: 16px;
  display: block;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 9999;
  position: relative;
}

button:hover,
button:focus,
button:focus-visible {
  background-color: transparent !important;
}

button.burger-menu-toggle:focus-visible {
  outline: 2px dashed white !important;
}

.burger-icon {
  width: 36px;
  height: 30px;
  transition: transform 0.3s ease;
}

.burger-line {
  fill: white;
  transition: all 0.2s ease-in-out;
  transform-origin: center;
}

/* Menu Styles - Unified for all screen sizes */
.main-menu-wrapper {
  position: absolute;
  top: 68px;
  right: 22px;
  width: 140px;
  z-index: 9998;
  padding: 16px 8px 8px 8px;
  background-color: var(--green);
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}

.main-menu-wrapper.active {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0);
}

.main-menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  list-style-type: none;
  margin: 0;
  gap: 6px;
  line-height: 1;
}

.main-menu a {
  text-decoration: none;
  color: white;
  font-size: 2rem !important;
  font-family: var(--font-text);
  font-weight: 700;
}

.main-menu a:hover {
  color: var(--teal) !important;
  -webkit-text-stroke: 0.01px transparent;
  transform: translateZ(0);
}

.main-menu a:focus-visible {
  outline: 2px dashed var(--green) !important;
}

.main-menu .current-menu-item a {
  color: var(--teal);
}

.burger-menu-toggle.active .top-line {
  transform: translate(-10px, 9px) rotate(45deg);
}

.burger-menu-toggle.active .middle-line {
  opacity: 0;
  transform: scaleX(0);
}

.burger-menu-toggle.active .bottom-line {
  transform: translate(-10px, -9px) rotate(-45deg) !important;
}

/*#endregion*/

/*#region #5 testimonial slider */
/* ------------------------------------------------------------------------------------------------- */
.testimonial-slide {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: clamp(1rem, 2.5vw, 3rem);
  height: 100%;
  background: transparent;
}

.testimonial-text {
  flex: 1;
}

.testimonial-text p {
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  line-height: 1.1 !important;
}

.testimonial-text p:last-of-type {
  margin-bottom: 0 !important;
}

.testimonial-image {
  flex: 1;
}

.testimonial-image img {
  max-width: 100%;
  height: auto;
  border-radius: 0;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.splide__arrow {
  background: transparent;
  opacity: 1;
  transform: translateY(0);
}

.splide__arrow svg {
  fill: white;
  transform: scale(1.5);
  opacity: 1;
  width: auto;
  height: auto;
}

.splide__arrow svg:hover {
  opacity: 1;
}

.splide__arrow--next {
  right: -64px !important;
  bottom: 120px !important;
}

.splide__arrow--prev {
  transform: rotate(180deg);
  left: -64px !important;
  bottom: 120px !important;
}

.splide__arrow:disabled {
  opacity: 0.5;
}

.splide__arrow:focus {
  background: transparent !important;
}

.splide__arrow:focus-visible {
  outline: 2px dashed black !important;
  outline-offset: 15px !important;
  border-radius: 0 !important;
}

.splide__pagination {
  bottom: -64px !important;
  gap: 3px !important;
}

.splide__pagination__page {
  height: 12px !important;
  width: 12px !important;
  background: white !important;
  opacity: 0.6 !important;
}

.splide__pagination__page.is-active,
.splide__pagination__page:hover,
.splide__pagination__page:focus-visible {
  opacity: 1 !important;
  background: white !important;
  transform: scale(1.4) !important;
}

.splide__pagination__page:focus-visible {
  outline: 2px dashed black !important;
}

.splide__pagination__page:focus {
  outline: none !important;
}


@media (max-width: 800px) {
  .testimonial-slide {
    flex-direction: column-reverse;
  }

  .testimonial-text {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .splide__arrow--next {
    top: 35% !important;
    right: 16px !important;
  }

  .splide__arrow--prev {
    transform: rotate(180deg);
    top: 35% !important;
    left: 16px !important;
  }

  .splide__pagination {
    display: none !important;
  }
}

/*#endregion*/

/*#region #6 formular */
/* ------------------------------------------------------------------------------------------------- */
.wsf-form select.wsf-field {
  color: var(--redbrown) !important;
  font-family: var(--font-text) !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  line-height: 1 !important;
}

.wsf-form .wsf-label-position-inside input.wsf-field[placeholder] + label,
.wsf-form .wsf-label-position-inside textarea.wsf-field[placeholder] + label {
  color: var(--redbrown) !important;
  font-family: var(--font-text) !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
}

.wsf-form .wsf-text-danger {
  color: var(--redbrown) !important;
}

.wsf-form input[type=checkbox].wsf-field + label.wsf-label {
  color: white !important;
  font-size: 1.5rem !important;
  font-family: var(--font-text) !important;
  font-weight: 700 !important;
}

.wsf-form input[type=checkbox].wsf-field + label.wsf-label .wsf-text-danger {
  color: white !important;
}

.wsf-form:not(.wsf-label-position-inside-hide) .wsf-label-position-inside input.wsf-field[placeholder]:focus + label,
.wsf-form:not(.wsf-label-position-inside-hide) .wsf-label-position-inside input.wsf-field[placeholder]:not(:placeholder-shown) + label,
.wsf-form:not(.wsf-label-position-inside-hide) .wsf-label-position-inside textarea.wsf-field[placeholder]:focus + label,
.wsf-form:not(.wsf-label-position-inside-hide) .wsf-label-position-inside textarea.wsf-field[placeholder]:not(:placeholder-shown) + label {
  top: -0 !important;
  left: 14px !important;
  font-size: 1rem !important;
  border-bottom: 1px solid white !important;
}

div#wsf-1-field-wrapper-9 {
  text-align: center !important;
}

button#wsf-1-field-9 {
  background: transparent !important;
  border: 2px solid white !important;
  border-radius: 0 !important;
  padding: 14px 24px 10px !important;
  font-size: 1.5rem !important;
  font-family: var(--font-text) !important;
  font-weight: 700 !important;
  min-width: 240px !important;
  color: white !important;
  line-height: 1.2 !important;
}

button#wsf-1-field-9:hover {
  background: var(--lachs) !important;
  color: var(--redbrown) !important;
  border-color: var(--lachs) !important;
}

button#wsf-1-field-9:focus-visible {
  background: var(--lachs) !important;
  color: var(--redbrown) !important;
  border-color: var(--lachs) !important;
  outline: 2px dashed var(--lachs) !important;
}

.wsf-form input[type=date].wsf-field,
.wsf-form input[type=datetime-local].wsf-field,
.wsf-form input[type=file].wsf-field,
.wsf-form input[type=month].wsf-field,
.wsf-form input[type=password].wsf-field,
.wsf-form input[type=search].wsf-field,
.wsf-form input[type=time].wsf-field,
.wsf-form input[type=week].wsf-field,
.wsf-form input[type=email].wsf-field,
.wsf-form input[type=number].wsf-field,
.wsf-form input[type=tel].wsf-field,
.wsf-form input[type=text].wsf-field,
.wsf-form input[type=url].wsf-field,
.wsf-form select.wsf-field,
.wsf-form textarea.wsf-field {
  border-radius: 0 !important;
  padding: 10.5px 10px 8px 10px !important;
  border-color: white !important;
}

.wsf-form.wsf-validated .wsf-field:invalid ~ .wsf-invalid-feedback,
.wsf-form.wsf-validated .wsf-field.wsf-invalid ~ .wsf-invalid-feedback,
.wsf-form.wsf-validated [role=\"radiogroup\"][data-wsf-invalid] ~ .wsf-invalid-feedback,
.wsf-form.wsf-validated [data-select-min-max]:invalid ~ .wsf-invalid-feedback,
.wsf-form.wsf-validated [data-checkbox-min-max]:invalid ~ .wsf-invalid-feedback,
.wsf-form.wsf-validated .wsf-input-group:has(.iti .wsf-field:invalid) ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated .wsf-field:invalid ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated .wsf-field.wsf-invalid ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated [role=\"radiogroup\"][data-wsf-invalid] ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated [data-select-min-max]:invalid ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated [data-checkbox-min-max]:invalid ~ .wsf-invalid-feedback,
.wsf-form .wsf-validated .wsf-input-group:has(.iti .wsf-field:invalid) ~ .wsf-invalid-feedback {
  color: white !important;
  font-size: 1rem !important;
}

.wsf-alert.wsf-alert-success,
.wsf-form .wsf-alert.wsf-alert-success {
  background: var(--redbrown) !important;
  color: white !important;
  border-left: 0 !important;
  padding: 16px 24px !important;
}

.wsf-alert.wsf-alert-success > p,
.wsf-form .wsf-alert.wsf-alert-success > p {
  color: white !important;
  font-size: 2rem !important;
  margin-bottom: 15px !important;
}

.wsf-form input[type=date].wsf-field:focus,
.wsf-form input[type=datetime-local].wsf-field:focus,
.wsf-form input[type=file].wsf-field:focus,
.wsf-form input[type=month].wsf-field:focus,
.wsf-form input[type=password].wsf-field:focus,
.wsf-form input[type=search].wsf-field:focus,
.wsf-form input[type=time].wsf-field:focus,
.wsf-form input[type=week].wsf-field:focus,
.wsf-form input[type=email].wsf-field:focus,
.wsf-form input[type=number].wsf-field:focus,
.wsf-form input[type=tel].wsf-field:focus,
.wsf-form input[type=text].wsf-field:focus,
.wsf-form input[type=url].wsf-field:focus,
.wsf-form select.wsf-field:focus,
.wsf-form textarea.wsf-field:focus {
  outline-color: var(--green) !important;
}


/*#endregion*/

/*#region #7 ausbildungen tabelle */
/* ------------------------------------------------------------------------------------------------- */
.light-section .about-heading {
  color: black;
}

.light-section .ausbildungen-table {
  color: black;
}

.dark-section .about-heading {
  color: white;
}

.dark-section .ausbildungen-table {
  color: white;
}

.about-heading {
  font-size: clamp(2.25rem, 5vw, 4rem) !important;
}

.ausbildungen-table {
  font-family: var(--font-text);
  border: none;
  font-size: 2rem;
}

.ausbildungen-table td {
  border: none;
  padding: 0;
  line-height: 1.2;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  ;
}

.ausbildungen-table tr {
  vertical-align: top;
}

.ausbildungen-table tr > td {
  padding-right: 24px;
}

.ausbildungen-table .column-links {
  white-space: nowrap;
}

.ausbildungen-table {
  width: 100%;
  border-collapse: collapse;
}

.column-links {
  white-space: nowrap;
  font-weight: bold;
}

@media (max-width: 800px) {

  .ausbildungen-table,
  .ausbildungen-table tbody,
  .ausbildungen-table tr,
  .ausbildungen-table td {
    display: block;
    width: 100%;
  }

  .column-links {
    white-space: normal;
  }

  .column-rechts {
    padding-bottom: 16px !important;
  }
}

/*#endregion*/

/*#region #8 footer */
/* ------------------------------------------------------------------------------------------------- */
footer#main-footer {
  background: var(--green);
}

footer#main-footer ul {
  list-style-type: none;
  margin: 0;
}

footer .wrapper {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  max-width: 1280px;
  width: 100%;
  margin-inline: auto;
  padding: 64px clamp(1rem, 1.875vw, 1.5rem);
}

footer img {
  max-width: 120px;
  width: 100%;
}

footer a {
  color: white;
  text-decoration: none;
  font-family: var(--font-text);
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  line-height: 1.2;
}

footer a:hover {
  color: var(--teal);
}

footer a:focus-visible {
  color: var(--teal);
  outline: 4px dashed var(--teal);
}

.footer-column-3 {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

/*#endregion*/


/* #region 404 Seite */
.error404 div#page {
  display: none !important;
}

/* #endregion */

h2.content-heading.ta-left,
.content-text.ta-left p {
  text-align: left !important;
}