.navbar.fixed-top {
  top: 1rem;
}

.btn {
  --bs-btn-bg: var(--bs-primary);

  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);

  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-active-bg: var(--bs-primary);
}
.btn-secondary {
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: var(--bs-secondary);

  --bs-btn-hover-border-color: var(--bs-white);
  --bs-btn-hover-bg: var(--bs-secondary);
  --bs-btn-active-bg: var(--bs-secondary);
}
.btn-light:hover {
  color: #fff;
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
}

.font-antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.font-sans {
  font-family: var(--bs-font-sans-serif);
}
.themeswitch button {
  display: none;
}
.themeswitch button:not(.active) {
  display: inline-block;
}

#navbar {
  flex-wrap: wrap;
  align-items: center;
  display: flex;
  justify-content: space-between;
  text-align: start;
  width: 100%;
  background: rgba(255, 255, 255, 0.3);
  padding: 1rem;
  border-radius: var(--bs-border-radius-xl);
  box-shadow: var(--bs-box-shadow);
  backdrop-filter: blur(11px) saturate(40%);
}

#navbar .nav-link {
  color: rgb(var(--bs-white-rgb));
  padding: 0.5rem 1rem;
  font-size: 0.75rem;

  &:hover {
    color: var(--bs-primary);
  }
}

[data-bs-theme="dark"] #navbar .nav-link {
  color: var(--bs-dark);
  &:hover {
    color: var(--bs-dark);
  }
}
[data-bs-theme="light"] #navbar .nav-link {
  color: var(--bs-white);
  &:hover {
    color: var(--bs-white);
  }
}

a:not(.btn) {
  color: var(--bs-link-color);
  text-decoration: none;

  &:hover {
    color: var(--bs-link-color);
    text-decoration: underline;
  }
}

@media (max-width: 991px) {
  #mainmenu .container {
    max-width: 100%;
  }
}

.language-switcher {
  background: #cbcaca;
  border-radius: 1rem;
  padding: 0.5rem 1rem;
  box-shadow: 0 0 8px 0 #00000038;
  font-family: sans-serif;
}

.language-switcher a {
  text-shadow: -1px 1px #fcfcfc;
}

.language-switcher .text-muted {
  color: rgba(var(--bs-white-rgb), 0.7) !important;
}

#navbar .btn {
  color: rgb(var(--bs-white-rgb)) !important;
  border-color: var(--bs-primary) !important;
  transition: transform 0.3s ease, border-color 0.3s ease;
  &:hover {
    border-color: rgba(var(--bs-white-rgb), 0.7) !important;
    transform: translateY(-3px);
  }
}

[data-bs-theme="light"] {
  #navbar {
    background: rgba(0, 0, 0, 0.3);
  }
}

.bd-placeholder-img {
  font-size: 1.125rem;
  text-anchor: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none
}

@media (min-width: 768px) {
  .bd-placeholder-img-lg {
    font-size: 3.5rem
  }
}

.b-example-divider {
  width: 100%;
  height: 3rem;
  background-color: #0000001a;
  border: solid rgba(0, 0, 0, .15);
  border-width: 1px 0;
  box-shadow: inset 0 .5em 1.5em #0000001a, inset 0 .125em .5em #00000026
}

.b-example-vr {
  flex-shrink: 0;
  width: 1.5rem;
  height: 100vh
}

.bi {
  vertical-align: -.125em;
  fill: currentColor
}

.nav-scroller {
  position: relative;
  z-index: 2;
  height: 2.75rem;
  overflow-y: hidden
}

.nav-scroller .nav {
  display: flex;
  flex-wrap: nowrap;
  padding-bottom: 1rem;
  margin-top: -1px;
  overflow-x: auto;
  text-align: center;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch
}

.btn-bd-primary {
  --bd-violet-bg: #712cf9;
  --bd-violet-rgb: 112.520718, 44.062154, 249.437846;
  --bs-btn-font-weight: 600;
  --bs-btn-color: var(--bs-white);
  --bs-btn-bg: var(--bd-violet-bg);
  --bs-btn-border-color: var(--bd-violet-bg);
  --bs-btn-hover-color: var(--bs-white);
  --bs-btn-hover-bg: #6528e0;
  --bs-btn-hover-border-color: #6528e0;
  --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
  --bs-btn-active-color: var(--bs-btn-hover-color);
  --bs-btn-active-bg: #5a23c8;
  --bs-btn-active-border-color: #5a23c8
}

.bd-mode-toggle {
  z-index: 1500
}

.bd-mode-toggle .bi {
  width: 1em;
  height: 1em
}

.bd-mode-toggle .dropdown-menu .active .bi {
  display: block !important
}

/* Hero Block Erweiterungen */
.hero, .ctabreaker, .newsletter-breaker {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat;
}

.hero .hero-overlay, .ctabreaker .ctabreaker-overlay, .newsletter-breaker .newsletter-overlay {
  pointer-events: none;
}

.hero.text-white h1, .hero.text-white p {
  color: #fff;
}

/* Statement Block */
.statement-block {
  position: relative;
}
.statement-block .container {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
@media (max-width: 992px) {
  .statement-block .container {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}
.statement-block .statement-inner {
  max-width: 90vh;
}

.statement-block.statement-light {
  background: #fff;
  color: #000;
}

.statement-block.statement-primary {
  background: var(--bs-primary);
  color: #fff;
}

.statement-block.statement-secondary {
  background: var(--bs-secondary);
  color: #fff;
}


.statement-block.statement-primary2 {
  background:  var(--bs-primary);
  color: #fff;
}
.statement-block.statement-secondary2 {
  background: var(--bs-secondary);
  color: #fff;
}

.statement-block.statement-dark {
  background: #000;
  color: #fff;
}

.statement-block.statement-dark a {
  color: #fff;
  text-decoration: underline;
}

.statement-block.statement-light a {
  color: #000;
  text-decoration: underline;
}

/* Optional: größerer vertikaler Abstand auf Desktop (py-md-7 Ersatz, falls nicht definiert) */
@media (min-width: 768px) {
  .statement-block.py-md-7 {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }
}

/* Kleineres Padding auf sehr kleinen Screens */
@media (max-width: 575.98px) {
  .statement-block {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }

  .statement-block .statement-inner p.fs-1 {
    font-size: calc(1.5rem + .9vw);
  }
}

/* Instagram Block */
.instagram-block {
  position: relative;
}

.instagram-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  align-items: stretch;
}

@media (min-width: 576px) {
  .instagram-grid {
    gap: 1.75rem;
  }
}

@media (min-width: 992px) {
  .instagram-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
}

.instagram-item {
  overflow: hidden;
  position: relative;
  transition: transform .3s cubic-bezier(.19, 1, .22, 1);

  border-radius: var(--bs-border-radius);
  box-shadow: var(--bs-box-shadow);
}

.instagram-item img {
  display: block;
  width: 100%;
  height: auto;
}

.instagram-item:hover {
  transform: scale(1.1);
}

.subpages-block .card {
  border-radius: var(--bs-border-radius);
  box-shadow: var(--bs-box-shadow);
  transition: transform .3s cubic-bezier(.19, 1, .22, 1);
  transform: translateY(0px) scale(1);
}

.subpages-block .card:hover {
  transform: translateY(-5px);
}


/* Newsletter Block */
.newsletter-breaker .form-control.form-control-lg {
  background: #fff;
  border: 0;
  box-shadow: var(--bs-box-shadow-sm);
  padding: 1rem 1.25rem;
  font-size: 1rem;
}
.newsletter-breaker .form-control.form-control-lg:focus {
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);
}
.newsletter-breaker .btn.btn-light.btn-dark-alt {
  background: #000;
  color: #fff;
}

/* Alternativer Dark Button für helle Hintergründe */
.btn-dark-alt {
  background: #000;
  color: #fff !important;
  border: 0;
}
.btn-dark-alt:hover, .btn-dark-alt:focus {
  background: #222;
  color: #fff !important;
}

/* Kleinere Abstände auf sehr kleinen Screens für Newsletter */
@media (max-width: 575.98px) {
  .newsletter-breaker .form-control.form-control-lg {
    padding: .75rem 1rem;
  }
  .newsletter-breaker .btn.btn-light.btn-lg {
    padding: .75rem 1.25rem;
  }
}

/* 50/50 CTA Block */
.cta5050-block {
  padding: 2rem 0;
}
.cta5050-block .cta-col-left,
.cta5050-block .cta-col-right {
  align-items: center;
  position: relative;
}
.cta5050-block .cta-col-left { justify-content: flex-start; }
.cta5050-block .cta-col-right { justify-content: flex-start; }

.cta5050-block h2 {
  line-height: 1.1;
}

/* Angle / subtle divider optional (commented) */
/* .cta5050-block::after { content:''; position:absolute; left:50%; top:0; bottom:0; width:1px; background:rgba(0,0,0,.08); } */

/* Button color Anpassung bei dunklen Hintergründen rechts */
.cta5050-block .cta-col-right.bg-dark a.btn.btn-light,
.cta5050-block .cta-col-right.bg-primary a.btn.btn-light,
.cta5050-block .cta-col-right.bg-secondary a.btn.btn-light {
  background:#fff;
  color:#000 !important;
}

/* Responsive: Abstand wenn gestapelt */
@media (max-width: 991.98px) {
  .cta5050-block .cta-col-left { text-align:center; }
  .cta5050-block .cta-col-right { text-align:center; }
  .cta5050-block .cta-col-left .cta-inner { margin-bottom:2rem; }
}


.block-map {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}
.block-map__content { flex: 0 0 50%; max-width: 50%; }
.block-map__map { flex: 0 0 50%; max-width: 50%; height: 500px; background: #eee; }
@media (max-width: 800px) {
  .block-map__content { flex-basis: 100%; max-width: 100%; }
  .block-map { flex-direction: column; }
  .block-map__map { flex: none; width: 100%; height: 340px; max-width: 100% }
}

/* pageheader-block styles */
.pageheader-block { position:relative; background-size:cover !important; background-position:center center; background-repeat:no-repeat; }
.pageheader-block::before { content:""; position:absolute; inset:0; background:rgba(0,0,0,.0); pointer-events:none; }
.pageheader-block .pageheader-inner { position:relative; z-index:2; }
@media (max-width: 575.98px){
  .pageheader-block { padding-top:150px !important; }
}

.disclaimers {
  padding: 1rem 0;
  display: flex;
  margin: 0 auto;
  justify-content: center;
  gap: 1rem;
  font-family: sans-serif;
}

@media (max-width: 991px) {

  .floating-buttons {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
  }

  #navbar {
    padding: 0.35rem;
  }

  #topbar {
    padding-bottom: 0.3rem !important;
  }

  #navbar .nav-link {
    padding: 0.25rem 0.5rem;
  }

  #navbar > .nav {
    margin: 0 !important;
  }

  .floating-logo {
    padding: 0.5rem 1rem;
    background: rgb(66 66 66 / 30%);
    border-radius: var(--bs-border-radius-xl);
    box-shadow: var(--bs-box-shadow);
    backdrop-filter: blur(11px) saturate(40%);
  }

  .language-switcher {
    transform: translateY(-9px);
  }

}
