:root {
      --primary-color: #006FFF;
      --secondary-color: #0CAFFF;
      --text-color: #111;
      --bg-light: #f9f9f9;
      --bg-white: #fff;
      --transition-speed: 0.3s;
    }

    .page-container {
      max-width: 1440px;
      margin: 0 auto;
      padding: 0 10px;
    }

  

    /* Hero-Bereich */
.hero-box {
  background: 
        linear-gradient(135deg,
      rgba(51, 51, 51, 0.7),
      rgba(0, 111, 255, 0.3),
      rgba(204, 204, 204, 0.7)
    ),
    url('../img/security_blank.jpg');
  background-size: cover;
  background-position: center; /* Verschiebt den Bildausschnitt nach unten */
  background-repeat: no-repeat;
  color: white;
  font-size: 25px;
  margin: -120px 20px 20px;
  border-radius: 20px;
  text-align: center;
  padding: 100px 60px;
  position: relative;
  z-index: 1;
}
    .hero-box p.subline {
      margin-bottom: 5px;
      text-transform: uppercase;
      letter-spacing: 1px;
      font-size: 12px;
    }
    .hero-box h1 {
      margin: 5px 0 20px;
      font-weight: 800;
    font-size: 50px;
    }
    .btn-white {
      background: #fff;
      color: #000;
      padding: 12px 25px;
      border-radius: 25px;
      font-weight: bold;
      text-decoration: none;
    }

    /* Willkommen */
    .willkommen {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 40px 100px;
      gap: 40px;
    }
    .willkommen-left h2 {
      font-size: 45px;
      font-weight: bold;
      margin: 0;
    }
    .willkommen-right {
      max-width: 700px;
      line-height: 1.6;
    }
    .willkommen-right p {
      margin-top: 0;
      font-size: 16px;
    }

    /* Services-Container – kein BG, horizontale Scroll */
    .services-box {
      background-color: transparent;
      margin: 40px 20px;
      padding: 50px 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }

    /* Tabs: Dezente, rechteckige Buttons mit Rahmen */
.horizontal-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 10px 20px;
  max-width: 1000px;
  margin: 0 auto 30px;
}

.horizontal-nav a {
  display: inline-flex;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--primary-color);
  border: 1px solid #ddd;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
  background: #fff;
  transition: background 0.2s ease, color 0.2s ease;
}

.horizontal-nav a:hover,
.horizontal-nav a.active {
  background: var(--primary-color);
  color: #fff;
}

    /* Horizontal Scroll-Bereich */
    .horizontal-scroll {
      display: flex;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      width: 100%;
    }
    .horizontal-scroll::-webkit-scrollbar {
      display: none;
    }
    .horizontal-scroll {
      scrollbar-width: none;
    }
    .horizontal-slide {
      scroll-snap-align: start;
      flex: none;
      width: 100vw;
      box-sizing: border-box;
      padding: 40px 30px;
    }

    /* Kachel mit Farbverlauf-Rahmen + leichtem Grau innen */
    .tile {
      background-color: #fcfcfc;
      border: 1px solid #eee;
      border-radius: 20px;
      padding: 60px;
      margin: 0 auto;
      width: 80vw;
      max-width: 1200px;
      position: relative;
      overflow: hidden;
      box-shadow: 0 4px 12px rgba(0,0,0,0.05);
      text-align: left;
      min-height: 350px;
    }
.tile::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  padding: 2px;
  background: linear-gradient(90deg, var(--secondary-color), var(--primary-color));
  
  /* Zuerst das Standard-Property */
  mask: 
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: exclude;

  /* Dann die Prefix-Variante für Safari & ältere Chrome-Versionen */
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;

  z-index: -1;
  pointer-events: none;
}
    .tile h2 {
      font-size: 32px;
      font-weight: 700;
      text-transform: uppercase;
      margin-bottom: 20px;
      color: var(--primary-color);
    }
    .tile p {
      font-size: 18px;
      line-height: 1.8;
      color: var(--text-color);
      margin: 0;
    }

.tile h2, 
.tile p {
  /* Sorgt dafür, dass sehr lange Wörter umgebrochen werden können */
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}
    .tile p + p {
      margin-top: 1em;
    }

    /* Pagination-Dots */
    .pagination-dots {
      text-align: center;
      margin-bottom: 5px;
    }
    .dot {
      display: inline-block;
      width: 12px;
      height: 12px;
      margin: 0 5px;
      background-color: var(--bg-light);
      border-radius: 50%;
      cursor: pointer;
      transition: background-color 0.3s;
    }
    .dot.active {
      background-color: var(--primary-color);
    }

    /* CTA */
    .cta {
      text-align: center;
      padding: 30px 30px 50px;
      font-size: 40px;
      font-weight: bold;
        padding-top: 10px !important; /* oder sogar 0, wenn du es eng willst */
    }
    .btn-black-big {
      background: #000;
      color: #fff;
      padding: 12px 25px;
      border-radius: 25px;
      font-weight: bold;
      font-size: 18px;
      margin-top: 20px;
      text-decoration: none;
      display: inline-block;
    }

    /* Smooth Scrolling */
    html {
      scroll-behavior: smooth;
    }

    /* Swipe-Hinweis anfangs versteckt */
    .swipe-hint {
      display: none;
      text-align: center;
      color: grey;
      margin-bottom: 10px;
    }

    /* --- Mobile Anpassungen --- */
    @media (max-width: 768px) {
.horizontal-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 10px;
  background: #f9f9f9;
}

.horizontal-nav a {
  display: inline-flex;
  padding: 6px 12px;
  font-size: 12px;
  color: #006FFF;
  border: 1px solid #ddd;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
  width: auto;
}

      .horizontal-slide {
        width: 100%; /* Damit es sauber reinpasst */
        padding: 20px 15px;
      }
      .tile {
        width: 100%;
        padding: 40px;
        min-height: 300px;
      }
      .tile h2 {
        font-size: 26px;
      }
      .tile p {
        font-size: 16px;
        line-height: 1.6;
      }
      .willkommen {
        flex-direction: column;
        padding: 30px 20px;
      }
      .willkommen-left h2 {
        font-size: 36px;
      }
      .willkommen-right p {
        font-size: 14px;
      }
      .hero-box {
        margin: -95px 10px 30px;
        padding: 120px 20px;
      }
      /* Swipe-Hinweis nur in Mobile anzeigen & horizontal animieren */
      .swipe-hint {
        display: block;
        animation: swipeHintAnim 2s infinite;
      }
    }

    @keyframes swipeHintAnim {
      0% { transform: translateX(0); opacity: 0.8; }
      50% { transform: translateX(10px); opacity: 1; }
      100% { transform: translateX(0); opacity: 0.8; }
    }
  
.horizontal-slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
    padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.horizontal-scroll {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.pagination-dots {
  margin-top: 15px;
  text-align: center;
margin-bottom: 0 !important;
}

.dot {
  width: 12px;
  height: 12px;
  background-color: var(--bg-light);
  border-radius: 50%;
  cursor: pointer;
  display: inline-block;
  margin: 0 5px;
}

.dot.active {
  background-color: var(--primary-color);
}

@media (max-width: 768px) {
  .tile {
    width: 100%;
  }
}