/* ===============================
   ROOT VARIABLEN
================================= */
:root{
  --primary:#0998d5;
  --primary-dark:#0678aa;
  --white:#ffffff;
  --paper:#f3fbff;
}

/* ===============================
   RESET & BASIS
================================= */
*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'Montserrat', sans-serif;
  background:var(--paper);
  color:#0b2b3a;
}

/* ===============================
   FLYER HAUPTFLÄCHE
================================= */
.flyer{
  background:var(--primary);
  color:var(--white);
  min-height:100vh;
}

/* ===============================
   HEADER
================================= */
.header{
  position:relative;
  text-align:center;
  padding-top:30px;
  padding-bottom:10px;
}

/* Logo */
.logo-wrapper{
  margin-bottom:24px;
}

.logo-img{
  height:102px;
  width:auto;
  display:block;
  margin:0 auto;
}

/* ===============================
   NAVIGATION
================================= */
.nav-centered{
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
}

/* Pill-Container */
.nav-links{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:6px 8px;
}

.nav-links a{
  color:var(--white);
  text-decoration:none;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  font-size:13px;
  padding:9px 18px;
  border-radius:30px;
  transition:opacity 0.2s ease;
  white-space:nowrap;
}

.nav-links a:hover{
  opacity:0.65;
}

/* B2B-Link hervorgehoben */
.nav-links a.nav-b2b{
  opacity:0.75;
}

.nav-links a.nav-b2b:hover{
  opacity:0.5;
}

/* Hamburger-Button */
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:rgba(255,255,255,0.15);
  border:1px solid rgba(255,255,255,0.3);
  border-radius:12px;
  padding:11px 14px;
  cursor:pointer;
}

.nav-toggle span{
  display:block;
  width:22px;
  height:2px;
  background:var(--white);
  border-radius:2px;
  transition:all 0.3s ease;
}

/* Mobile */
@media(max-width:700px){
  .nav-toggle{
    display:flex;
  }

  .nav-links{
    display:none;
    flex-direction:column;
    border-radius:20px;
    padding:10px;
    gap:4px;
    min-width:180px;
    position:absolute;
    top:calc(100% + 10px);
    left:50%;
    transform:translateX(-50%);
    z-index:100;
    background:rgba(9,152,213,0.95);
    border:1px solid rgba(255,255,255,0.35);
  }

  .nav-links.open{
    display:flex;
  }

  .nav-links a{
    text-align:center;
    padding:11px 20px;
  }
}

/* ===============================
   CONTAINER
================================= */
.container{
  max-width:1100px;
  margin:0 auto;
  padding:20px 20px 40px;
}

/* ===============================
   HERO SECTION
================================= */
.hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:40px;
  margin-top:10px;
}

.hero-head{
  text-align:center;
  width:100%;
}

.hero-body{
  display:inline-flex;
  align-items:center;
  gap:60px;
}

.hero-info{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  max-width:380px;
}

@media(max-width:700px){
  .hero-body{
    flex-direction:column;
    align-items:center;
  }
  .hero-info{
    align-items:center;
    text-align:center;
  }
}

/* ===============================
   TYPOGRAFIE
================================= */

/* Hauptheadline */
.h-title{
  font-family:'Birthstone', cursive;
  font-size:clamp(60px, 8vw, 120px);
  line-height:0.9;
  margin-top:0;
  margin-bottom:10px;
}

/* Subline */
.h-sub{
  font-family:'Birthstone', cursive;
  font-size:clamp(26px, 4vw, 42px);
  margin-bottom:25px;
}

/* Lead Text */
.h-lead{
  font-weight:700;
  font-size:18px;
  margin-bottom:20px;
}

/* Bullet Points */
.bullets{
  list-style:disc;
  text-align:left;
  width:fit-content;
  padding-left:20px;
  font-weight:600;
  margin-bottom:30px;
}

.bullets li{
  margin-bottom:8px;
}

/* ===============================
   BUTTONS
================================= */
.btn{
  display:inline-block;
  padding:14px 30px;
  border:2px solid var(--white);
  border-radius:30px;
  text-decoration:none;
  color:var(--white);
  font-weight:900;
  letter-spacing:1px;
  text-transform:uppercase;
  transition:0.3s ease;
}

.btn:hover{
  background:var(--white);
  color:var(--primary);
}

/* CTA Row */
.cta-row{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:40px;
}

/* ===============================
   PREIS BADGE
================================= */
.badge{
  width:220px;
  aspect-ratio:1/1;
  border-radius:20px;
  border:2px dashed var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  margin:0 auto;
}

.badge small{
  display:block;
  font-weight:800;
}

.badge .price{
  font-size:55px;
  font-weight:900;
  line-height:1;
  margin:5px 0;
}

.badge .per{
  font-weight:800;
}

/* ===============================
   SEKTIONEN
================================= */
.section{
  margin-top:80px;
  text-align:center;
}

.section h2{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:15px;
  font-size:20px;
}

.section p{
  font-size:18px;
  font-weight:600;
  line-height:1.6;
}

/* ===============================
   GALLERY
================================= */
.gallery{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:280px;
  gap:10px;
  margin-top:30px;
}

/* Zeile 1 (items 1-3) & Zeile 3 (items 6-8): je span 2 */
.gallery-item:nth-child(-n+3),
.gallery-item:nth-child(n+6){
  grid-column:span 2;
}

/* Zeile 2 (items 4-5): je span 3 */
.gallery-item:nth-child(4),
.gallery-item:nth-child(5){
  grid-column:span 3;
}

.gallery-item{
  margin:0;
  overflow:hidden;
  border-radius:14px;
  cursor:pointer;
}

.gallery-item img{
  transition:transform 0.3s ease;
}

.gallery-item:hover img{
  transform:scale(1.04);
}

/* Untere Hälfte anzeigen */
.gallery-item--bottom img{
  object-position:center bottom;
}

/* Obere Hälfte anzeigen */
.gallery-item--top img{
  object-position:center top;
}

/* ===============================
   LIGHTBOX
================================= */
.lightbox{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.92);
  z-index:1000;
  align-items:center;
  justify-content:center;
}

.lightbox.open{
  display:flex;
}

.lightbox-img{
  max-width:88vw;
  max-height:88vh;
  object-fit:contain;
  border-radius:10px;
  user-select:none;
}

.lightbox-close{
  position:absolute;
  top:18px;
  right:22px;
  background:none;
  border:none;
  color:white;
  font-size:30px;
  cursor:pointer;
  opacity:0.7;
  transition:opacity 0.2s;
  line-height:1;
}

.lightbox-close:hover{
  opacity:1;
}

.lightbox-prev,
.lightbox-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:50%;
  color:white;
  font-size:28px;
  width:50px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background 0.2s;
  user-select:none;
}

.lightbox-prev:hover,
.lightbox-next:hover{
  background:rgba(255,255,255,0.25);
}

.lightbox-prev{ left:18px; }
.lightbox-next{ right:18px; }

.lightbox-counter{
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,0.6);
  font-size:13px;
  font-family:'Montserrat', sans-serif;
  font-weight:600;
  letter-spacing:1px;
}

.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.gallery-item--wide{
  grid-column:span 2;
}

.gallery-ph{
  width:100%;
  height:100%;
  background:rgba(255,255,255,0.1);
  border:1.5px solid rgba(255,255,255,0.22);
  border-radius:14px;
  transition:background 0.25s ease;
}

.gallery-ph:hover{
  background:rgba(255,255,255,0.18);
}

@media(max-width:700px){
  .gallery{
    grid-template-columns:repeat(2, 1fr);
    grid-auto-rows:200px;
  }
  .gallery-item:nth-child(-n+3),
  .gallery-item:nth-child(n+6){
    grid-column:span 1;
  }
  .gallery-item:nth-child(4),
  .gallery-item:nth-child(5){
    grid-column:span 2;
  }
}

/* ===============================
   FAHRPLAN – MOBILE (vertikal)
================================= */
.fahrplan{
  display:inline-block;
  margin-top:30px;
  text-align:left;
}

.fahrplan-stops{
  list-style:none;
  margin:0;
  padding:0;
  position:relative;
}

/* Vertikale Linie */
.fahrplan-stops::before{
  content:'';
  position:absolute;
  left:10px;
  top:8px;
  bottom:8px;
  width:2px;
  background:var(--white);
}

.fahrplan-stops li{
  position:relative;
  padding:6px 0 6px 36px;
  font-weight:800;
  font-size:14px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

/* Haltestellen-Punkt */
.fahrplan-stops li::before{
  content:'';
  position:absolute;
  left:4px;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--white);
}

/* FAHRPLAN – DESKTOP (horizontal) */
@media(min-width:701px){
  .fahrplan{
    display:block;
    width:100%;
    margin-top:40px;
    text-align:center;
    position:relative;
  }

  /* End-Caps links & rechts */
  .fahrplan::before,
  .fahrplan::after{
    content:'';
    position:absolute;
    top:-5px;
    width:2px;
    height:12px;
    background:var(--white);
  }
  .fahrplan::before{ left:0; }
  .fahrplan::after { right:0; }

  /* Horizontale Strecke */
  .fahrplan-stops{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding-top:0;
  }

  /* Hauptlinie oben */
  .fahrplan-stops::before{
    left:0;
    right:0;
    top:0;
    bottom:auto;
    width:100%;
    height:2px;
  }

  .fahrplan-stops li{
    flex:1;
    text-align:center;
    padding:46px 4px 0;
    font-size:12px;
    position:relative;
  }

  /* Vertikaler Strich – startet direkt an der Hauptlinie */
  .fahrplan-stops li::after{
    content:'';
    position:absolute;
    left:50%;
    top:2px;
    transform:translateX(-50%);
    width:2px;
    height:16px;
    background:var(--white);
  }

  /* Punkt am Ende des Strichs */
  .fahrplan-stops li::before{
    top:18px;
    left:50%;
    transform:translateX(-50%);
  }
}

/* ===============================
   B2B LEISTUNGEN
================================= */
.b2b-leistungen{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px;
  max-width:860px;
  margin:32px auto 0;
  text-align:left;
}

.b2b-card{
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.2);
  border-radius:14px;
  padding:24px 26px;
}

.b2b-card-title{
  font-weight:800;
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:12px;
}

.b2b-card p{
  font-size:13px;
  line-height:1.7;
  opacity:0.9;
  margin-bottom:14px;
}

.b2b-card .bullets{
  font-size:13px;
  width:auto;
}

.b2b-card--wide{
  grid-column:1 / -1;
  background:rgba(255,255,255,0.18);
}

@media(max-width:700px){
  .b2b-leistungen{
    grid-template-columns:1fr;
  }
}

/* ===============================
   B2B FORM
================================= */
.b2b-form{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:520px;
  margin:24px auto 0;
}

.b2b-input{
  background:rgba(255,255,255,0.15);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:10px;
  padding:14px 18px;
  color:var(--white);
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  outline:none;
  transition:border-color 0.2s;
}

.b2b-input::placeholder{
  color:rgba(255,255,255,0.6);
}

.b2b-input:focus{
  border-color:rgba(255,255,255,0.8);
}

.b2b-textarea{
  min-height:120px;
  resize:vertical;
}

.b2b-form .btn{
  align-self:center;
  margin-top:8px;
}

/* Submit-Button: solid weiß mit primärfarbe als Text */
.b2b-submit{
  background:var(--white);
  color:var(--primary);
  border-color:var(--white);
}

.b2b-submit:hover{
  background:transparent;
  color:var(--white);
}

/* Datums-Input: calendar-icon weiß */
.b2b-input--date{
  color-scheme:dark;
}

.b2b-note{
  max-width:520px;
  margin:12px auto 0;
  font-size:13px;
  opacity:0.7;
  text-align:center;
}

.b2b-note--error{
  border:1px solid rgba(255,255,255,0.45);
  padding:10px 16px;
  border-radius:10px;
  opacity:1;
}

.nav-active{
  opacity:1 !important;
  font-weight:700;
}

/* ===============================
   FAHRZEUG SPECS
================================= */
.fahrzeug-intro{
  max-width:600px;
  margin:0 auto 36px;
  line-height:1.6;
}

.fahrzeug-specs{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:0;
  max-width:660px;
  margin:0 auto;
  border:1px solid rgba(255,255,255,0.3);
  border-radius:12px;
  overflow:hidden;
  text-align:left;
}

.spec-item{
  display:flex;
  flex-direction:column;
  padding:14px 20px;
  border-bottom:1px solid rgba(255,255,255,0.15);
  border-right:1px solid rgba(255,255,255,0.15);
}

.spec-item:nth-child(even){
  border-right:none;
}

.spec-item:nth-last-child(-n+2){
  border-bottom:none;
}

.spec-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  opacity:0.7;
  margin-bottom:4px;
}

.spec-value{
  font-size:14px;
  font-weight:600;
}

@media(max-width:700px){
  .fahrzeug-specs{
    grid-template-columns:1fr;
  }
  .spec-item{
    border-right:none;
  }
  .spec-item:nth-last-child(-n+2){
    border-bottom:1px solid rgba(255,255,255,0.15);
  }
  .spec-item:last-child{
    border-bottom:none;
  }
}

/* ===============================
   IMPRESSUM
================================= */
.impressum{
  max-width:640px;
  margin:0 auto;
  text-align:left;
}

.impressum-block{
  padding:28px 0;
  border-bottom:1px solid rgba(255,255,255,0.15);
  line-height:1.8;
}

.impressum-block:last-child{
  border-bottom:none;
}

.impressum-block h2{
  font-size:14px;
  font-weight:800;
  letter-spacing:1px;
  text-transform:uppercase;
  margin:0 0 10px;
}

.impressum-block a{
  color:var(--white);
  opacity:0.85;
  text-decoration:underline;
}

.impressum-source{
  margin-top:16px;
  font-size:13px;
  opacity:0.7;
}

/* ===============================
   FOOTER
================================= */
.footer{
  text-align:center;
  margin-top:100px;
  padding:30px 20px;
  font-weight:600;
  font-size:14px;
  border-top:1px solid rgba(255,255,255,0.3);
  line-height:2;
}

.footer-link{
  color:var(--white);
  text-decoration:none;
  opacity:0.8;
}

.footer-link:hover{
  opacity:1;
  text-decoration:underline;
}

/* ===============================
   LANGUAGE SWITCH
================================= */
.lang-switch{
  position:absolute;
  top:20px;
  right:24px;
  display:flex;
  align-items:center;
  gap:2px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.5px;
  z-index:10;
}

.lang-switch a{
  color:var(--white);
  text-decoration:none;
  padding:5px 10px;
  border-radius:20px;
  opacity:0.55;
  transition:opacity 0.2s, background 0.2s;
}

.lang-switch a:hover{
  opacity:1;
}

.lang-switch a.lang-active{
  opacity:1;
  background:rgba(255,255,255,0.2);
}

.lang-sep{
  color:var(--white);
  opacity:0.35;
  font-size:11px;
  user-select:none;
}

@media(max-width:700px){
  .lang-switch{
    top:14px;
    right:14px;
  }
}