  :root {
      --border: 1px solid #ffd5bd;
      --text: #50321c;
      --border-light: #50321c54;
      --selected: #50321c1e;
      --lgh: #ffecd5ac;
      --lgh-fl: #ffecd5;
      --lgh-drk: #bea280ac;
      --text-lg: #f4e3cd;
      --muted: #504238;
      --muted-h: #707070;
      --bg: #fff;
      --hover-light: #50321c10;
      --bg-or: #ffefde;
      --radius: 8px;
      --transition: 0.3s ease;
  }

  * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: "Bitter", sans-serif;
  }

  body {
      scroll-behavior: smooth;
      background: var(--bg);
      color: var(--text);
      display: flex;
      flex-direction: column;
      min-height: 100vh;
  }

  input.error, textarea.error {
      border: 2px solid red !important;
      background-color: #ffe5e5;
  }

  .after::after {
        content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: currentColor;
    opacity: 1;
    transform: translateY(1px);
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
  }

  .switch {
    position: relative;
    display: flex;
    gap: 48px;
    font-size: 18px;
    cursor: pointer;

    /* CSS Variablen für ::after */
    --x: 0px;
    --w: 0px;
  }
.hidden {
display: none !important;
}

section {transition: transform 1s, filter 1.5s}
  .switch span {
    padding: 4px 2px;
    white-space: nowrap;
  }

  .switch::after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 0;
    height: 2px;
    width: var(--w);
    background: #000;
    transform: translateX(var(--x));
    transition:
      transform 0.45s cubic-bezier(.22,1,.36,1),
      width 0.35s ease;
  }

  .value {
    font-size: 48px;
    font-weight: 500;
  }
  .after {
    position: relative;
    text-decoration: none;
    display: inline-block;
    overflow: hidden;
  }

  .fs17 {
    font-size: 17px;
  }


  .no-hover:hover {
      text-decoration: none;
  }

  body.oh {
      overflow: hidden;
  }

  header {
      width: 100%;
      border-bottom: var(--border);
      display: flex;
      align-items: center;
      padding: 0 35px;
      position: fixed;
      gap: 20px;
      width: 100%;
      height: 70px;
      z-index: 100;
      backdrop-filter: blur(10px);
      background-color: var(--lgh);
  }

  @media (max-width: 900px) {
      .upper900 {
          width: 200px !important;
          position: absolute !important;
          top: 360px !important;
      }
  }

  .g15 {
      gap: 15px;
  }

  .fs18 {
      font-size: 18px;
  }

  .color-main {
      color: var(--text);
  }

  .hover:hover {
      color: var(--muted);
  }

  .nunder {
      text-decoration: none;
  }

  .hover\[under\]:hover {
      text-decoration: underline dotted;
  }

  .g1rem {
      gap: 1rem;
  }

  .g3rem {
      gap: 3rem;
  }

  .g30 {
      gap: 30px;
  }

  .fz18 {
      font-size: 25px;
  }

  .ff {
      display: flex;
      align-items: center;
      justify-content: center;
  }

  .iff {
      display: inline-flex;
      align-items: center;
      justify-content: center;
  }

  .fdr {
      flex-direction: row;
  }

  .fdc {
      flex-direction: column;
  }

  .wfull {
      width: 100%;
  }

  .hfull {
      height: 100%;
  }

  .fof {
      margin: 0;
      padding-top: 0;
      padding-bottom: 0;
      padding-right: 20px;
      padding-left: 20px;
  }

  .mr75 {
      margin-right: 75px;
  }

  .jcfs {
      justify-content: flex-start;
  }

  .jcsb {
      justify-content: space-between;
  }


  header img {
      width: 60px;
      height: 60px;
  }

  /* Hamburger */
  .hamburger {
      position: fixed;
      right: 2rem;
      z-index: 1000;
      width: 28px;
      top: 25px;
      height: 20px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer;
  }

  .hamburger span {
      display: block;
      height: 2px;
      background: var(--text);
      width: 100%;
      transition: var(--transition);
  }

  /* Hamburger Animation */
  .hamburger.active span:nth-child(1) {
      transform: rotate(45deg) translateY(12.5px);
  }

  .hamburger.active span:nth-child(2) {
      opacity: 0;
  }

  .hamburger.active span:nth-child(3) {
      transform: rotate(-45deg) translateY(-12.5px);
  }

  .hamburger.active {
      transform: scale(.8);
  }

  /* Aside (Menü) */
  aside {
      position: fixed;
      top: 0;
      right: -100%;
      width: 350px;
      z-index: 100;
      transition: var(--transition);
      height: 100vh;
      background: var(--bg-or);
      border-left: var(--border);
      padding: 6rem .5rem;
      display: flex;
      flex-direction: column;
  }

  aside.open {
      right: 0;
  }

  aside a {
      color: var(--text);
      padding: 13px;
      text-decoration: none;
      font-size: 1rem;
      border-radius: 12px;
  }

  aside#menu>a:first-of-type {
      margin-top: 20px;
  }

  .hover\[after\] {
      position: relative;
      text-decoration: none;
      display: inline-block;
      overflow: hidden;
      /* damit nix übersteht */
  }

  .hover\[after\]::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100%;
      height: 2px;
      background-color: currentColor;
      opacity: 0;
      transform: translateY(-2px);
      /* leicht nach oben versteckt */
      transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .hover\[after\]:hover::after {
      opacity: 1;
      transform: translateY(0);
      /* kommt nach unten rein */
  }


  aside a:hover {
      background-color: #0000000a;
  }

  /* Overlay zum Schließen */
  .overlay {
      position: fixed;
      inset: 0;
      background: rgba(255, 255, 255, 0.7);
      backdrop-filter: blur(4px);
      opacity: 0;
      pointer-events: none;
      transition: var(--transition);
      z-index: 50;
  }


  .tdu {
      text-decoration: underline;
  }

  main {
      flex: 1;
  }

  .slideshow {
      position: static;
      height: 600px;
  }

  .trans-auto {
      transition: var(--transition);
  }

  .imag {
      width: 100%;
      height: 600px;
      background-position: center;
      background-size: cover;
      position: absolute;
      top: 0;
      z-index: -1;
      left: 0;
      transition: opacity 1s ease-in-out;
  }


  #slide1 {
      z-index: 1;
  }

  #slide2 {
      z-index: 0;
      opacity: 0;
  }

  .fog {
      width: 100%;
      height: 120px;
      top: 480px;
      z-index: 1;
      position: absolute;
      background-image: linear-gradient(to top, #fff 0%, #00000000 100%);

  }

  @media (max-width: 500px) {
      .headertext {
          display: none;
      }
  }

  @media (max-width: 900px) {
      .imag {
          height: 400px;
      }


      .fog {
          top: 280px;
      }

      .slideshow {
          height: 400px;
      }

      .container {
          padding: 0 !important;

      }

      .no-mobile {
          display: none !important;
      }
  }

  .container {
      width: 100%;
      display: flex;
      z-index: 20;
      padding: 2rem;
      flex-direction: column;
      transition: var(--transition);
      gap: 6rem;
      margin: 0;
  }

  .container.open,
  .slideshow.open {
      transform: translateX(-350px) !important;
  }

  section {
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
  }

  h2 {
      font-size: 3.2rem;
      font-weight: 400;
      margin-bottom: 20px;
  }

  h3 {
      font-size: 1.8rem;
      color: var(--text);
      font-weight: 400;
  }

  p {
      font-size: 1.1rem;
      line-height: 1.8;
      color: var(--muted);
  }

  p strong {
      color: var(--text);
  }

  ul {
      font-size: 1.1rem;
      margin-left: 30px;
  }

  li {
      margin: 10px 0;
  }

  main img {
      width: 95%;
      /* Bild darf nicht breiter als Container werden */
      height: auto;
      /* Höhe passt sich proportional an */
      object-fit: contain;
      /* sorgt dafür, dass das Bild sein Seitenverhältnis behält */
  }


  .main {
      display: flex;
      justify-content: center;
      padding: 2rem;
  }

  p {
      margin: 0;
      margin-block: 0;
      padding: 0;
  }

  .grid-50 {
      display: grid;
      grid-template-columns: 50% 1fr;
      gap: 4.5rem;
      padding: 4rem 0;
  }

  .grid-50-rev {
      display: grid;
      grid-template-columns: 50% 1fr;
      gap: 4.5rem;
      padding: 4rem 0;
  }

  @media (max-width: 1200px) {
      .grid-50 {
          display: flex;
          flex-direction: column;
          gap: 6rem;
      }

      .grid-50-rev {
          display: flex;
          flex-direction: column-reverse;
          gap: 6rem;
      }

      .ydi7Z {
          align-self: center;
      }

      main img {
          width: 100%;
      }

  }

  .df {
      display: flex;
  }

  .aic {
      align-items: center;
  }

  .jcc {
      justify-content: center;
  }

  .g35 {
      gap: 35px;
  }

  .fwb {
      font-weight: 800;
  }

  .mr50 {
      margin-right: 50px;
  }

  .pa {
      position: absolute;
  }

  .t590 {
      top: 590px;
  }

  .w200 {
      width: 200px;
  }

  .color-var\[--muted-h\] {
      color: var(--muted-h);
  }

  .color-var\[--muted\] {
      color: var(--muted);
  }

  .mt0 {
      margin-top: 0px;
  }

  .mb0 {
      margin-bottom: 0px;
  }

  .ml6 {
      margin-left: 6px;
  }

  .mr6 {
      margin-right: 6px;
  }

  .m0 {
      margin: 0px;
  }

  .h200 {
      height: 200px;
  }

  .mt50 {
      margin-top: 50px;
  }

  .w90 {
      width: 90px;
  }

  .h90 {
      height: 90px;
  }

  .g-f {
      gap: 30px;
      display: flex;
      flex-direction: column;
  }

  main section a {
      text-decoration: none;
      color: #707070;
  }

  main section a:hover {
      color: #737373;
      text-decoration: underline dotted;
  }

  .divider {
      border-top: var(--border);
      margin: 3rem 0;
  }

  .mb-2 {
      margin-bottom: 20px;
  }

  .divider-xs {
      border-top: var(--border);
      margin: 1rem 0;
  }

  @media (max-width: 600px) {
      .container {
          gap: 4rem;
      }
  }

  .overlay.show {
      opacity: 1;
      pointer-events: all;
  }


  .up-btn {
      padding: 10px;
      border-radius: 100px;
      width: 50px;
      height: 50px;
      align-items: center;
      z-index: 100;
      justify-content: center;
      cursor: pointer;
      display: none;
      background-color: #fff;
      flex-direction: row;
      position: fixed;
      right: 50px;
      bottom: 50px;
      border: var(--border);
  }

  .bottom {
      position: absolute;
      width: 100%;
      height: 70px;
      left: 0;
      bottom: 0;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      margin-left: 15px;
      gap: 10px;
  }

  .bottom a {
      color: #141414;
      font-size: .875rem;
      text-decoration: underline;
  }

  .bottom a:hover {
      text-decoration: underline dotted;
  }

  .backdrop {
      width: 100%;
      height: 100%;
      position: fixed;
      display: flex;
      opacity: .08;
      align-items: center;
      justify-content: center;
      z-index: -1;
  }

  .backdrop img {
      width: auto;
      height: 50%;
  }

  .box-sel {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 20px;
  }

  .box-sel input[type="checkbox"] {
      /* Basisgröße & Form */
      width: 22px;
      height: 22px;
      padding: 0px;
      border-radius: 4px;
      /* 0 für komplett eckig */
      border: 2px solid var(--text);
      appearance: none;
      /* Entfernt Standardstil */
      background-color: white;
      cursor: pointer;
      display: inline-block;
      transition: all 0.15s ease;
      accent-color: var(--muted);
      /* Farbe für den nativen Haken */
  }

  .box-sel input[type="checkbox"]:checked {
      background-color: var(--lgh-drk);
      /* Box einfärben */
      border-color: var(--text);
  }



  .box-sel input[type="checkbox"]:focus-visible {
      outline: 3px solid rgba(189, 110, 53, 0.25);
      outline-offset: 2px;
  }

  .box-sel input[type="checkbox"]:active {
      transform: scale(0.96);
      opacity: .7;
  }

  .lil {
      margin-top: 50px;

  }

  .lil small {
      display: flex;
      flex-direction: column;
      gap: 3px;
      color: #8b7e75;
  }

  /* HTML: <div class="loader"></div> */
  .loader {
      width: 17px;
      aspect-ratio: 1;
      border-radius: 50%;
      background: #50321c;
      display: grid;
      animation: l22-0 2s infinite linear;
  }

  .loader:before,
  .loader:after {
      content: "";
      grid-area: 1/1;
      margin: 15%;
      border-radius: 50%;
      background: inherit;
      transform: rotate(0deg) translate(150%);
      animation: l22 1s infinite;
  }

  .loader:after {
      animation-delay: -.5s
  }

  @keyframes l22-0 {
      100% {
          transform: rotate(1turn)
      }
  }

  @keyframes l22 {
      100% {
          transform: rotate(1turn) translate(150%)
      }
  }

  .lil strong {
      color: var(--muted);
  }

  .__to_text {
      border: none;
      width: 1.5rem;
      height: auto;

  }

  .mw90 {
      max-width: 90vw;
  }

  .tac {
      text-align: center;
  }

  .asc {
      align-self: center;
  }

  .bo1 {
      border: 1px solid var(--muted);
      border-radius: 20px;
  }

  .btn {
      padding: 15px 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text-lg);
      background-color: var(--text);
      border: 1px solid var(--text);
      border-radius: 20px;
      transition: .5s;
      cursor: pointer;

  }

  .btn:hover:not(:disabled) {
      color: var(--text);
      background-color: transparent;
      border: 1px solid var(--text);
  }

  .btn-white {
      padding: 15px 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text-lg);
      background-color: var(--text);
      border: 1px solid var(--text);
      border-radius: 20px;
      transition: .5s;
      cursor: pointer;

  }

  .nunder:hover {
      text-decoration: none;

  }

  input {
      background-color: white;
      color: var(--text);
  }

  .ff-f {
      align-items: center;
      display: flex;
  }

  .btn-white:hover:not(:disabled) {
      color: var(--text);
      background-color: var(--lgh-fl);
      border: 1px solid var(--text);
  }

  .btn-lgt {
      padding: 15px 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text);
      background: transparent;
      border: 1px solid var(--text);
      border-radius: 20px;
      cursor: pointer;
      transition: .5s;

  }

  .btn-lgt:hover:not(:disabled) {
      color: var(--text-lg);
      background-color: var(--text);
      border: 1px solid var(--text);
  }

  .w-max {
      width: 700px;
      max-width: 90%;
  }

  .input {
      display: flex;
      flex-direction: column;
      gap: 10px;
      width: 100%;
      max-width: 90%;
  }
  .input-deux {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 90%;
    box-sizing: border-box;
  }

  .tal {
      text-align: left;
      align-items: flex-start !important;
  }

  form.fdc {
      width: 100%;
      max-width: 90%;
  }

  .asfs {
      align-self: flex-start;
  }

  .input label, .input-deux label {
      align-self: flex-start;
      font-size: 13px;
  }

  .input input, .input-deux input, .input textarea, .input-deux textarea {
      padding: 20px;
      outline: none;
      border: 1px solid var(--text);
      border-radius: 15px;

  }



  .input div.select {
      height: 58px;
      outline: none;
      border: 1px solid var(--text);
      border-radius: 15px;
      font-size: 13px;
      display: flex;
      flex-direction: column;
      color: var(--muted-h);
      user-select: none;
      cursor: pointer;
      transition: all 1s ease-in;
  }

  .input div.select span {
    transition: opacity .5s;
    display: flex;
    width: 100%;
    justify-content: space-between;
    transition: all 1s;
    padding:0 20px 30px;
    border-bottom: 1px solid var(--bg);
    align-items: center;
    height: 15.5px;
    margin-top: calc((58px - .5px) /2);
  }

  .input div.select.mode span {
    border-bottom: 1px solid var(--border-light);
  }
.input div.select span svg {transition: transform .3s}
  .input div.select.mode span svg {
    transform: rotate(180deg);
  }

  .input div.select div.content {
    padding: 15px 0;
    gap: 10px;
    display: none;
    flex-direction: column;
     align-items: center;
  }

  .input div.select div.content p {
    transition: opacity .5s;
    opacity: 0;
    border-radius: 9px;
    width: calc(100% - 20px);
    padding: 10px;
  }
  .input div.select.mode div.content p {
    opacity: 1;
  }
  .o4 {
    height: 324px !important;
  }
  .mw80 {
    max-width: 80vw;
  }
.input div.select.mode div.content p:nth-of-type(1) {
transition-delay: 0s;
}
.input div.select.mode div.content p:nth-of-type(2) {
transition-delay: .15s;
}
.input div.select.mode div.content p:nth-of-type(3) {
transition-delay: .3s;
}
.input div.select.mode div.content p:nth-of-type(4) {
transition-delay: .45s;
}
.input div.select.mode div.content p:nth-of-type(5) {
transition-delay: .6s;
}
.input div.select.mode div.content p:nth-of-type(6) {
transition-delay: .75s;
}
.input div.select div.content p:nth-of-type(6) {
transition-delay: 0s;
}
.input div.select div.content p:nth-of-type(5) {
transition-delay: .1s;
}
.input div.select div.content p:nth-of-type(4) {
transition-delay: .2s;
}
.input div.select div.content p:nth-of-type(3) {
transition-delay: .3s;
}
.input div.select div.content p:nth-of-type(2) {
transition-delay: .4s;
}
.input div.select div.content p:nth-of-type(1) {
transition-delay: .5s;
}

.input div.select div.content p:hover  {
    background-color: var(--hover-light);
}

.input div.select div.content p.active {
    background-color: var(--selected);
}

  
  .input div.select.mode div.content {
    opacity: 1;
  }

  .input div.select.mode {
    height: 447px;
    transition: all .6s;
  }

  .input textarea, .input-deux textarea {
      resize: none;
      min-height: 200px;
      font-family: "Bitter", serif;
      font-size: 1rem;
      scale: 1;
  }
  .i-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 49%;
  }

  .fs20 {
    font-size: 20px;
  }

  .mr1 {
      margin-right: 15px;
  }

  .jos {
      font-family: "Josefin Sans", sans-serif;
  }


  .df {
      display: flex;
  }

  .aic {
      align-items: center;
  }

  .jcc {
      justify-content: center;
  }

  .form-overlay {
      position: fixed;
      width: 100%;
      height: 100%;
      opacity: 0;
      display: none;
      top: 0;
      backdrop-filter: blur(10px);
      z-index: 1000;
      background-color: #00000039;
  }

  .signature {
      width: 400px;
      height: 250px;
      border: 1px solid var(--text);
      margin-top: 50px;
      display: none;
  }

  button:active {
      transform: scale(.8);
      opacity: .8;
  }

  .form-overlay-container {
      position: fixed;
      top: 50%;
      left: 50%;
      width: 100vw;
      max-width: 1000px;
      height: 100vh;
      max-height: 700px;
      opacity: 0;
      transition: .5s;
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
      transform: translate(-50%, 100%);
      background-color: #fff;
      border-radius: 30px;
      border: 1px solid var(--muted);
  }

  @media (max-width: 1000px) {
      .form-overlay-container {
          border-radius: 0px !important;
          max-height: 100% !important;
          border: none;
      }
  }

  .form-overlay-container .top-overlay-orm {
      width: 100%;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: space-between;
  }

  .kick {
      color: #504238;
      font-size: 13px;
  }

  .cp {
      cursor: pointer;
  }

  .code-5894 {
      width: 120px;
      height: 120px;
      border: 1px solid var(--muted);
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 20px;
  }

  .border-top-mute {
      border-top: 1px solid var(--muted-h);
  }

  .form-overlay-container .top-overlay-orm .overlay-close {
      display: flex;
      width: 24px;
      height: 24px;
      align-items: center;
      justify-content: center;
      font-size: 24px;
  }

  .main-overlay {
      margin-top: 50px;
      display: flex;
      flex-direction: column;
      gap: 20px;
      padding: 20px;
      height: 100%;
  }




  .grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
      gap: 20px;
      max-width: 90vw;
      margin: 0 auto;
  }

  .pdf-card {
      background: white;
      border-radius: 8px;
      border: 1px solid var(--lgh-drk);
      cursor: pointer;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: transform 0.2s, box-shadow 0.2s;
  }

  .pdf-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  }

  .pdf-card canvas {
      width: 100%;
      height: auto;
      display: block;
  }

  .pdf-card .filename {
      padding: 10px;
      text-align: center;
      font-weight: bold;
      background-color: var(--lgh);
      color: var(--text);
  }

  /* Overlay */
  #doverlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.9);
      display: none;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      z-index: 99999999;
  }

  #doverlay canvas {
      max-width: 90%;
      max-height: 80%;
      border: 2px solid white;
      border-radius: 8px;
      margin-bottom: 20px;
  }

  #doverlay #closeOverlay {
      position: absolute;
      top: 20px;
      right: 30px;
      font-size: 28px;
      font-weight: bold;
      color: white;
      cursor: pointer;
  }