/* style.css */

/* =========================
   Farben aus deinem Bild:
   Blau ~ #30649c
   Rot  ~ #fa3435
   Normaler Text: schwarz
========================= */
:root{
  --brand-blue: #30649c;
  --brand-blue-dark: #1f466e;
  --brand-red: #fa3435;

  --text-color: #000000;
  --muted: #6b7280;
  --soft-bg: #f7f8fb;

  --shadow: 0 10px 28px rgba(0,0,0,.10);
}

html, body { height: 100%; }
body{
  margin: 0;
  font-family: Arial, sans-serif;
  color: var(--text-color);
  background: #fff;
}

.page-wrapper{ min-height: 100vh; display:flex; flex-direction:column; }
main{ flex:1; }

section{ scroll-margin-top: 100px; }

/* =========================
   NAVBAR / HEADER
========================= */
#mainHeader{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 1000;
  background:#fff;
  transition: background-color .3s ease, box-shadow .3s ease, padding .3s ease;
}

#mainHeader.scrolled{
  background-color: rgba(255,255,255,.95);
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
}

/* Brand Lockup */
.brand-lockup{
  display: inline-flex;
  flex-direction: column;
  line-height: 1.05;
  text-decoration: none;
}

.brand-title{
  font-weight: 800;
  color: var(--brand-blue);
  font-size: 1.05rem;
}

.brand-sub{
  font-weight: 800;
  color: var(--brand-red);
  font-size: .95rem;
}

@media (min-width: 992px){
  .brand-title{ font-size: 1.25rem; }
  .brand-sub{ font-size: 1.02rem; }
}

.navbar .nav-link{
  color:#333;
  font-weight: 600;
}

.navbar .nav-link:hover{ color: var(--brand-blue); }

/* =========================
   HERO
========================= */
.hero{
  position: relative;
  height: 100vh;
  background: url('img/bg.jpg') center center / cover no-repeat fixed;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(120deg, rgba(0,0,0,.55), rgba(0,0,0,.35));
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 2.2rem 1rem;
}

.hero-content{
  text-align:center;
  color:#fff;
  max-width: 920px;
}

.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .85rem;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  font-weight: 700;
  font-size: .95rem;
  margin-bottom: 1rem;
}

.hero-badge-dot{
  width:10px; height:10px;
  border-radius:50%;
  background: var(--brand-red);
  box-shadow: 0 0 0 6px rgba(250,52,53,.18);
}

/* “Brücke”-Wort hervorheben */
.bridge-word{
  color: #fff;
  position: relative;
  display:inline-block;
}

.bridge-word::after{
  content:"";
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -10px;
  width: 120%;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-red));
  opacity: .9;
}

.hero-content h1{
  font-size: 2.6rem;
  font-weight: 900;
  line-height: 1.15;
  margin-bottom: 1.1rem;
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}

.hero-content p{
  font-size: 1.15rem;
  margin-bottom: 1.8rem;
  color: rgba(255,255,255,.92);
}

@media (max-width: 768px){
  .hero-content h1{ font-size: 2.05rem; }
  .hero-content p{ font-size: 1.02rem; }
}

/* Buttons */
.hero-buttons{
  display:flex;
  gap: 1rem;
  justify-content:center;
  flex-wrap:wrap;
}

/* Bootstrap Buttons optisch anpassen */
.btn{
  padding: .85rem 1.35rem;
  font-weight: 800;
  border-radius: 10px;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.btn:hover{ transform: translateY(-2px); box-shadow: var(--shadow); }

.btn-primary{
  background: var(--brand-red);
  border-color: var(--brand-red);
}
.btn-primary:hover{
  background: #d8282a;
  border-color: #d8282a;
}

.btn-secondary{
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.25);
  color:#fff;
}
.btn-secondary:hover{
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.35);
  color:#fff;
}

.btn-outline-primary{
  border-color: var(--brand-blue);
  color: var(--brand-blue);
}
.btn-outline-primary:hover{
  background: var(--brand-blue);
  border-color: var(--brand-blue);
}

/* Bridge-Motiv im Hero */
.hero-bridge{
  margin-top: 2.2rem;
  display:flex;
  flex-wrap: wrap;
  gap:.6rem;
  align-items:center;
  justify-content:center;
  position: relative;
}

.bridge-line{
  position:absolute;
  left:0; right:0;
  top: 50%;
  height: 2px;
  background: rgba(255,255,255,.25);
  transform: translateY(-50%);
}

.bridge-arch{
  width: 220px;
  height: 40px;
  border: 2px solid rgba(255,255,255,.35);
  border-top: none;
  border-radius: 0 0 999px 999px;
  position: relative;
  z-index: 1;
}

.bridge-pill{
  z-index: 2;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  padding: .35rem .75rem;
  border-radius: 999px;
  font-weight: 800;
  font-size: .92rem;
  backdrop-filter: blur(6px);
}

.hero-bottom-divider{
  position:absolute;
  left:0; right:0; bottom:-1px;
}
.hero-bottom-divider svg{
  display:block;
  width:100%;
  height: 120px;
}

/* =========================
   TITLES / HIGHLIGHT
========================= */
.section-title{
  font-size: 2.35rem;
  font-weight: 900;
  position: relative;
  display:inline-block;
}

.section-title .highlight{ color: var(--brand-red); }

.section-title::after{
  content:"";
  position:absolute;
  left:50%;
  transform: translateX(-50%);
  bottom:-10px;
  width: 70px;
  height: 4px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-red));
}

@media (max-width: 768px){
  .section-title{ font-size: 2rem; }
}

/* =========================
   ÜBER UNS IMAGE CARD
========================= */
.image-card{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
}

.image-card img{
  display:block;
  width:100%;
  height: 380px;
  object-fit: cover;
}

@media (max-width: 576px){
  .image-card img{ height: 300px; }
}

.image-card-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.35));
}

.image-card-badge{
  position:absolute;
  left: 16px;
  bottom: 16px;
  padding: .7rem .9rem;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  color:#111;
  box-shadow: var(--shadow);
}

/* Icon bubbles */
.icon-bubble{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(48,100,156,.12);
  color: var(--brand-blue);
  display:grid;
  place-items:center;
  font-size: 1.15rem;
}

/* =========================
   BRIDGE DIVIDER
========================= */
.bridge-divider svg{
  display:block;
  width:100%;
  height: 90px;
}

/* =========================
   CONTENT SECTION / FEATURE CARDS
========================= */
.content-section{ background: var(--soft-bg); }

.feature-card{
  position: relative;
  overflow: hidden;
  border-radius: 18px !important;
  transition: transform .2s ease, box-shadow .2s ease;
}

.feature-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-red));
}

.feature-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.feature-icon{
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(250,52,53,.10);
  color: var(--brand-red);
  display:grid;
  place-items:center;
}

.rounded-4{ border-radius: 1rem !important; }

/* Checklist */
.checklist{
  list-style: none;
  padding: 0;
  margin: 0;
}
.checklist li{
  position: relative;
  padding-left: 28px;
  margin: .5rem 0;
  color:#111;
}
.checklist li::before{
  content:"";
  position:absolute;
  left:0;
  top:.35rem;
  width: 16px;
  height: 16px;
  border-radius: 5px;
  background: rgba(48,100,156,.18);
  border: 1px solid rgba(48,100,156,.28);
}
.checklist li::after{
  content:"✓";
  position:absolute;
  left:3px;
  top:-1px;
  font-size: 13px;
  font-weight: 900;
  color: var(--brand-blue);
}

/* Bridge Panel */
.bridge-panel{
  background: #fff;
  border-radius: 20px;
  padding: 1.2rem 1.2rem 1rem;
  border: 1px solid rgba(0,0,0,.06);
  position: relative;
  overflow:hidden;
}
.bridge-panel::before{
  content:"";
  position:absolute;
  left:-40px;
  top:-60px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(48,100,156,.20), transparent 70%);
}
.bridge-panel-head{
  display:flex;
  gap: 1rem;
  align-items:flex-start;
}
.bp-icon{
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  background: rgba(48,100,156,.12);
  color: var(--brand-blue);
  font-size: 1.3rem;
}
.bp-footer .bp-badge{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: rgba(250,52,53,.08);
  border: 1px solid rgba(250,52,53,.18);
  color:#111;
  font-weight: 700;
}

/* =========================
   KONDITIONEN (Pricing)
========================= */
.price-card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 20px;
  padding: 1.2rem;
  transition: transform .2s ease, box-shadow .2s ease;
}
.price-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.price-head{
  display:flex;
  gap: 1rem;
  align-items:flex-start;
  margin-bottom: .9rem;
}

.price-icon{
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  background: rgba(250,52,53,.10);
  color: var(--brand-red);
  font-size: 1.3rem;
}

.price-value{
  border-radius: 16px;
  padding: .9rem 1rem;
  background: linear-gradient(90deg, rgba(48,100,156,.10), rgba(250,52,53,.08));
  border: 1px solid rgba(0,0,0,.06);
  margin-bottom: 1rem;
}

.price-value .pv-main{
  font-size: 2rem;
  font-weight: 900;
  color: #111;
  line-height: 1.1;
}
.price-value .pv-sub{
  font-size: 1rem;
  font-weight: 800;
  color: var(--brand-blue-dark);
}
.price-value .pv-note{
  color: var(--muted);
  font-weight: 700;
}

.price-value.compact .pv-main{
  font-size: 2.1rem;
  color: var(--brand-blue);
}

/* Info band */
.info-band{
  display:flex;
  gap: 1rem;
  align-items:flex-start;
  background: var(--soft-bg);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 20px;
  padding: 1.2rem;
}
.ib-icon{
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  background: rgba(48,100,156,.12);
  color: var(--brand-blue);
  font-size: 1.3rem;
}

/* =========================
   GALERIE CARDS
========================= */
.product-card{
  background:#fff;
  border-radius: 16px;
  overflow:hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}
.product-card img{
  width:100%;
  height: 250px;
  object-fit: cover;
  transition: transform .35s ease;
  cursor:pointer;
}
.product-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 12px 26px rgba(0,0,0,.14);
}
.product-card:hover img{ transform: scale(1.05); }

/* =========================
   KONTAKT / TIMELINE
========================= */
.icon-accent{ color: var(--brand-red); }

.contact-card{
  position:relative;
  overflow:hidden;
  transition: transform .3s ease, box-shadow .3s ease;
  cursor:pointer;
  border-radius: 16px;
}
.contact-card::before{
  content:"";
  position:absolute;
  top:-50%;
  left:-50%;
  width:200%;
  height:200%;
  background: linear-gradient(120deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.10) 40%, transparent 70%);
  transform: rotate(25deg) translateX(-100%);
  transition: transform .6s ease;
}
.contact-card:hover::before{ transform: rotate(25deg) translateX(100%); }
.contact-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}

/* Timeline */
.timeline{ position:relative; padding-left: 30px; }
.timeline::before{
  content:"";
  position:absolute;
  top:0;
  left:12px;
  width:3px;
  height:100%;
  background:#e6e8ee;
  z-index:0;
}
.timeline::after{
  content:"";
  position:absolute;
  top:0;
  left:12px;
  width:3px;
  height: 100%;
  background: linear-gradient(180deg, var(--brand-blue), var(--brand-red));
  opacity: .35;
  z-index:1;
}

.step-item{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  padding:.55rem 1rem;
  border-radius: 12px;
  background: transparent;
  position:relative;
  z-index:3;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.step-item:hover{
  background:#fff;
  transform: translateX(6px);
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
}

.step-number{
  width:40px;
  height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  background: var(--brand-blue);
  color:#fff;
  transition: background .25s ease;
}
.step-item:hover .step-number{ background: var(--brand-red); }
.step-number i{ font-size: 1rem; }

/* =========================
   FOOTER
========================= */
.copyright-bar{
  width:100%;
  background:#111;
  color:#fff;
  text-align:center;
  padding:.75rem 0;
  font-size: .92rem;
}
.copyright-bar a{
  color:#fff;
  text-decoration:none;
  margin: 0 .35rem;
}
.copyright-bar a:hover{ text-decoration: underline; }

/* =========================
   AOS smoother
========================= */
[data-aos]{ opacity:0; transform: translateY(26px); transition-property: opacity, transform; }
[data-aos].aos-animate{ opacity:1; transform: translateY(0); }
