:root {
  --primary: #0056D2;
  --accent: #00C896;
  --dark: #0056D2;
  --light: #F5F7FA;
}

/* global für alle heros Standard (Desktop) */
[class^="hero"] h1 {
  font-size: 2.2rem !important;
  font-weight: bold;
}
[class^="hero"] p.lead {
  font-size: 1.50rem;
}

/* global für alle heros Mobile-Anpassung */
@media (max-width: 767.98px) {
  [class^="hero"] h1 {
    font-size: 2rem;
    line-height: 1.2;
  }
  [class^="hero"] p.lead {
    font-size: 1.25rem;
  }
}

/* ===== Hero Sections ===== */
.hero {
  height: 100vh;
  background: url('../img/hero-banner2-min.png') center 80%/cover no-repeat;
  position: relative;
  display: flex;
  align-items: center;
}
.hero::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 86, 210, 0.4);
}
.hero .container {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
}
@media (max-width: 767.98px) {
  .hero {
    background-position: center 90%;
    height: 80vh;
    align-items: flex-end;
    padding-bottom: 40px;
  }
}
.hero-warum, .hero-preise, .hero-registration, .hero-login,
.hero-dashboard, .hero-legal, .hero-kundenmeinungen,
.hero-kontakt, .hero-support, .small-hero, .hero-socialmedia, .hero-faq, .hero-checkout {
  height: 50vh;
  position: relative;
}
.hero-warum {
  background: url('../img/hero-warum-min.png') center 50%/cover no-repeat;
}
.hero-preise {
  background: url('../img/hero-preise-min.png') center 85%/cover no-repeat;
}
.hero-registration {
  background: url('../img/hero-register-min.png') center 85%/cover no-repeat;
}
.hero-login {
  background: url('../img/hero-login-min.png') center 40%/cover no-repeat;
}
.hero-dashboard {
  background: url('../img/hero-dashboard-min.png') center 40%/cover no-repeat;
}
.hero-legal {
  background: url('../img/hero-impressum-min.png') center 70%/cover no-repeat;
}
.hero-kundenmeinungen {
  background: url('../img/hero-kundenmeinungen-min.png') center 40%/cover no-repeat;
}
.hero-kontakt {
  background: url('../img/hero-kontakt-min.png') center 35%/cover no-repeat;
}
.hero-socialmedia {
  background: url('../img/hero-socialmedia-min.png') center 90%/cover no-repeat;
}
.hero-faq {
  background: url('../img/hero-faq-min.png') center 90%/cover no-repeat;
}
.hero-support {
  background: url('../img/hero-support-min.png') center 55%/cover no-repeat;
}
.small-hero {
  background: url('../img/hero-banner2-min.png') center 85%/cover no-repeat;
}
.hero-checkout {
  background: url('../img/hero-checkout-min.png') center 40%/cover no-repeat;
}

[class^="hero"]::after, .small-hero::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 86, 210, 0.4);
}
[class^="hero"] .container, .small-hero .container {
  position: relative;
  z-index: 2;
}

/* ===== Navbar Varianten ===== */
.navbar-custom {
  background: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.navbar-custom .nav-link,
.navbar-custom .navbar-brand {
  color: #fff !important;
}
.navbar-custom.scrolled {
  background: #fff !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.navbar-custom.scrolled .nav-link,
.navbar-custom.scrolled .navbar-brand {
  color: #0056D2 !important;
}
.navbar-dark-custom {
  background-color: #2B2B2B;
}
.navbar-dark-custom .nav-link {
  color: #fff !important;
  transition: color 0.3s ease;
}
.navbar-dark-custom .nav-link:hover {
  color: #0056D2 !important; 
}
.navbar-light .nav-link {
  position: relative;
  color: #2B2B2B !important;
  transition: color 0.3s ease;
}
.navbar-light .nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0%;
  height: 2px;
  background: #0056D2;
  transition: width 0.3s ease;
}
.navbar-light .nav-link:hover::after {
  width: 100%;
}
@media (max-width: 991.98px) {
  .navbar-collapse {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    padding: 1rem;
    border-radius: 0.5rem;
  }
  .navbar-collapse .nav-link {
    color: #2B2B2B !important;
    font-size: 1.2rem;
  }
}

/* Hintergrundfarbe für mobile Navbar (eingeklappt) */
@media (max-width: 991.98px) {
  .navbar-dark-custom .navbar-collapse {
    background-color: #444;
  }
  .navbar-dark-custom .navbar-nav .nav-link {
    color: #fff !important;
    padding: 10px 15px;
  }
  .navbar-dark-custom .navbar-nav .nav-link:hover,
  .navbar-dark-custom .navbar-nav .nav-link:focus,
  .navbar-dark-custom .dropdown-menu .dropdown-item:hover {
    background-color: #555;
    color: #ffcc00 !important;
  }
  .navbar-dark-custom .dropdown-menu {
    background-color: #444;
    border: none;
  }
  .navbar-dark-custom .dropdown-menu .dropdown-item {
    color: #fff !important;
  }
  .navbar-dark-custom .dropdown-menu .dropdown-item:hover {
    background-color: #444;
    color: #ffcc00 !important;
  }
}

/* Hamburger-Icon weiß einfärben */
.navbar-dark-custom .navbar-toggler {
  border-color: #fff;
}
.navbar-dark-custom .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28 255,255,255, 1%29' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* ===== Buttons ===== */
.btn-accent {
  background-color: var(--accent);
  color: #fff;
  border-radius: 8px;
  transition: all 0.3s ease;
}
.btn-accent:hover {
  background-color: var(--primary);
  color: #fff;
}

/* ===== Cards ===== */
.price-card .card-header {
  font-size: 1.25rem;
  font-weight: bold;
}
.card .fa-2x {
  color: var(--primary);
}

.form-control { 
	height: calc(1.5em + 1rem + 2px) !important;
}

/* ===== Darkmode: Formulare ===== */
[data-theme='dark'] .form-control {
  background-color: #111827 !important;
  border: 1px solid #374151 !important;
  color: #f3f4f6 !important;
}
[data-theme='dark'] .form-control:focus {
  border-color: #66a6ff !important;
  box-shadow: 0 0 0 0.2rem rgba(102, 166, 255, 0.25) !important;
  outline: none !important;
}
[data-theme='dark'] .form-control::placeholder {
  color: #9ca3af !important;
}
[data-theme='dark'] .card {
  background-color: #1f2937;
  border: 1px solid #374151;
  color: #e5e7eb;
}
[data-theme='dark'] label {
  color: #d1d5db;
}
[data-theme='dark'] .btn-accent {
  background-color: #2563eb;
  border-color: #2563eb;
  color: #fff;
}
[data-theme='dark'] .btn-accent:hover {
  background-color: #1d4ed8;
  border-color: #1d4ed8;
  color: #fff;
}

/* ===== Darkmode: Hero ===== */
[data-theme='dark'] [class^="hero"],
[data-theme='dark'] .small-hero {
  filter: brightness(0.8) contrast(1.05);
  position: relative;
}
[data-theme='dark'] [class^="hero"]::after,
[data-theme='dark'] .small-hero::after {
  background: rgba(0, 0, 0, 0.35);
}
[data-theme='dark'] [class^="hero"] h1,
[data-theme='dark'] [class^="hero"] p,
[data-theme='dark'] .small-hero h1,
[data-theme='dark'] .small-hero p {
  color: #f9fafb !important;
}

/* ===============================
   Einheitliche Selectboxen
   =============================== */
.select-wrapper {
  position: relative;
  display: block;
  width: 100%;
}
.select-wrapper select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  color: #2B2B2B;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  padding: 6px 2.2rem 6px 8px;
  height: calc(1.8em + .5rem + 2px);
  transition: all 0.2s ease;
  cursor: pointer;
}
.select-wrapper select:hover,
.select-wrapper select:focus {
  background: #f5f7fa;
  border-color: #0056D2;
  color: #2B2B2B;
  box-shadow: 0 0 0 0.2rem rgba(0, 86, 210, 0.15);
  outline: none;
}
.select-wrapper i {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  pointer-events: none;
  font-size: 0.8rem;
  color: #2B2B2B;
  transition: transform 0.3s ease;
}
.select-wrapper select:focus + i {
  transform: translateY(-50%) rotate(180deg);
}
/* Darkmode Select */
[data-theme='dark'] .select-wrapper select {
  background: #111827;
  color: #f3f4f6;
  border: 1px solid #374151;
}
[data-theme='dark'] .select-wrapper select:hover,
[data-theme='dark'] .select-wrapper select:focus {
  background: #1f2937;
  border-color: #66a6ff;
  color: #f9fafb;
  box-shadow: 0 0 0 0.2rem rgba(102, 166, 255, 0.25);
}
[data-theme='dark'] .select-wrapper i {
  color: #f3f4f6;
}

/* Kompakter Select (z.B. Language Switcher) */
.select-wrapper.select-compact {
  width: auto;
  min-width: 70px;
}
.select-wrapper.select-compact select {
  width: auto;
  min-width: 70px;
  padding-right: 2rem;
}

/* ===== Navbar + Footer Animations ===== */
.cart-badge {
  position: absolute;
  top: -1px;
  right: -2px;
  font-size: .70rem;
  line-height: 1;
  padding: .25rem .35rem;
}
.navbar-dark-custom .nav-link {
  position: relative;
  font-size: 15px;
  font-weight: 500;
  color: #fff !important;
  padding-bottom: 2px;
  transition: all 0.25s ease;
}
.navbar-dark-custom .nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: #0056D2;
  transition: width 0.3s ease;
}
.navbar-dark-custom .nav-link:hover {
  color: #0056D2 !important;
  letter-spacing: 0.5px;
}
.navbar-dark-custom .nav-link:hover::after,
.navbar-dark-custom .nav-link.active::after {
  width: 100%;
}
.dropdown-menu .dropdown-item {
  position: relative;
  font-size: 14px;
  font-weight: 500;
  padding-bottom: 2px;
  transition: all 0.25s ease;
}
.dropdown-menu .dropdown-item:hover {
  color: #0056D2;
  letter-spacing: 0.5px;
}
.dropdown-menu .dropdown-item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: #0056D2;
  transition: width 0.3s ease;
}
.dropdown-menu .dropdown-item:hover::after {
  width: 100%;
}

/* ===== Darkmode: Navbar + Dropdown ===== */
[data-theme='dark'] body {
  background-color: #0b0f17;
  color: #e5e7eb;
}
[data-theme='dark'] .navbar-dark-custom {
  background-color: #111827 !important;
  border-bottom: 1px solid #1f2937;
}
[data-theme='dark'] .navbar-dark-custom .navbar-brand img {
  filter: brightness(0.85);
}
[data-theme='dark'] .navbar-dark-custom .nav-link {
  color: #d1d5db !important;
}
[data-theme='dark'] .navbar-dark-custom .nav-link::after {
  background: #66a6ff;
}
[data-theme='dark'] .navbar-dark-custom .nav-link:hover,
[data-theme='dark'] .navbar-dark-custom .nav-link.active {
  color: #66a6ff !important;
}
[data-theme='dark'] .dropdown-menu {
  background-color: #1f2937;
  border: 1px solid #374151;
}
[data-theme='dark'] .dropdown-item {
  color: #e5e7eb;
}
[data-theme='dark'] .dropdown-item:hover {
  background-color: #374151;
  color: #66a6ff;
}
[data-theme='dark'] .dropdown-menu .dropdown-item::after {
  background: #66a6ff;
}
[data-theme='dark'] .btn-outline-light {
  border-color: #e5e7eb;
  color: #e5e7eb;
}
[data-theme='dark'] .btn-outline-light:hover {
  background-color: #e5e7eb;
  color: #111827;
}

/* ===== Darkmode Toggle Button ===== */
.themeToggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
  height: calc(1.8em + .5rem + 2px);
  padding: 2px 10px;
  border-radius: 6px;
  border: 1px solid #ccc;
  background: #fff;
  color: #2B2B2B;
  cursor: pointer;
  transition: all 0.2s ease;
}
.themeToggle:hover {
  background: #f5f7fa;
  border-color: #0056D2;
  color: #0056D2;
}
.themeToggle:focus {
  outline: none;
  border-color: #0056D2;
  box-shadow: 0 0 0 0.2rem rgba(0, 86, 210, 0.25);
}
.themeToggle.animate { animation: rotateFade 0.5s ease; }
@keyframes rotateFade {
  0%   { transform: rotate(0deg);   opacity: 1; }
  50%  { transform: rotate(90deg);  opacity: 0; }
  51%  { transform: rotate(-90deg); opacity: 0; }
  100% { transform: rotate(0deg);   opacity: 1; }
}
[data-theme='dark'] .themeToggle {
  background-color: #111827;
  border: 1px solid #374151;
  color: #f3f4f6;
}
[data-theme='dark'] .themeToggle:hover {
  background: #1f2937;
  border-color: #66a6ff;
  color: #66a6ff;
}

/* ===== Footer ===== */
.footer {
  color:#666;
  font-size: 14px;
}
.footer a.footer-link {
  position: relative;
  color:#666;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  margin-right: 10px;
  transition: all 0.25s ease;
  padding-bottom: 2px;
}
.footer a.footer-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: #000;
  transition: width 0.3s ease;
}
.footer a.footer-link:hover {
  color:#000;
  letter-spacing: 0.5px;
}
.footer a.footer-link:hover::after {
  width: 100%;
}
[data-theme='dark'] .footer {
  background:#0b0f17;
  color:#9ca3af;
}
[data-theme='dark'] .footer a.footer-link {
  color:#d1d5db;
}
[data-theme='dark'] .footer a.footer-link::after {
  background:#66a6ff;
}
[data-theme='dark'] .footer a.footer-link:hover {
  color:#66a6ff;
  letter-spacing: 0.5px;
}

/* ===== Darkmode: Modals ===== */
[data-theme='dark'] #progressModal .modal-content,
[data-theme='dark'] #agbModal .modal-content,
[data-theme='dark'] #datenschutzModal .modal-content {
  background:#1f2937;
  color:#e5e7eb;
}
[data-theme='dark'] #progressModal .spinner-border {
  color:#66a6ff !important;
}
[data-theme='dark'] #progressModal .progress-text {
  color:#d1d5db;
}
[data-theme='dark'] #agbModal .modal-header,
[data-theme='dark'] #datenschutzModal .modal-header {
  border-bottom:1px solid #374151;
}
[data-theme='dark'] #agbModal .modal-footer,
[data-theme='dark'] #datenschutzModal .modal-footer {
  border-top:1px solid #374151;
}
[data-theme='dark'] #agbModal .btn-secondary,
[data-theme='dark'] #datenschutzModal .btn-secondary {
  background:#374151;
  border-color:#4b5563;
  color:#e5e7eb;
}
[data-theme='dark'] #agbModal .btn-secondary:hover,
[data-theme='dark'] #datenschutzModal .btn-secondary:hover {
  background:#4b5563;
  color:#fff;
}
[data-theme='dark'] #agbModal a,
[data-theme='dark'] #datenschutzModal a {
  color:#d1d5db;
  font-weight: 500;
  position: relative;
  text-decoration: none;
  transition: all 0.25s ease;
  padding-bottom: 2px;
}
[data-theme='dark'] #agbModal a::after,
[data-theme='dark'] #datenschutzModal a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background:#66a6ff;
  transition: width 0.3s ease;
}
[data-theme='dark'] #agbModal a:hover,
[data-theme='dark'] #datenschutzModal a:hover {
  color:#66a6ff;
  letter-spacing: 0.5px;
}
[data-theme='dark'] #agbModal a:hover::after,
[data-theme='dark'] #datenschutzModal a:hover::after {
  width: 100%;
}

/* ===============================
   Auth-Boxen (Login & Register)
   =============================== */
.auth-fullsize {
  background: #fff;
  border-radius: 1rem;
  padding: 2.5rem 2rem;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  width: 100%;
  
  /* max-width: 480px; */ /* breite der card box */
  
  margin: 0 auto;
}
.auth-fullsize h2 {
  font-size: 1.4rem;
  color: var(--primary);
  font-weight: 600;
  text-align: left;
  position: relative;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}
.auth-fullsize h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 3px;
  background: var(--primary);
  border-radius: 2px;
}
.auth-fullsize h3 {
  font-size: 1.4rem;
  color: var(--primary);
  font-weight: 600;
  text-align: left;
  position: relative;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}
.auth-fullsize h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 3px;
  background: var(--primary);
  border-radius: 2px;
}
.auth-fullsize h4 {
  font-size: 1.4rem;
  color: var(--primary);
  font-weight: 600;
  text-align: left;
  position: relative;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}
.auth-fullsize h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 3px;
  background: var(--primary);
  border-radius: 2px;
}
.auth-fullsize .form-group { margin-bottom: 1.2rem; }
.auth-fullsize .form-control {
  border-radius: 0.4rem;
  padding: 0.6rem 0.9rem;
  font-size: 0.95rem;
}
.auth-fullsize .btn-login {
  background-color: var(--primary);
  color: #fff;
  font-weight: 600;
  border-radius: 0.5rem;
  padding: 0.7rem 1rem;
  font-size: 0.95rem;
  width: 100%;
  transition: all 0.2s ease;
  box-shadow: 0 4px 8px rgba(0,86,210,0.15);
}
.auth-fullsize .btn-login:hover {
  background-color: #003a91;
  box-shadow: 0 6px 12px rgba(0,86,210,0.25);
}
/* Darkmode */
[data-theme='dark'] .auth-fullsize {
  background: #1f2937;
  color: #eaeaea;
  border: 1px solid #374151;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
[data-theme='dark'] .auth-fullsize h2 { color: #66a6ff; }
[data-theme='dark'] .auth-fullsize h2::after { background: #66a6ff; }
[data-theme='dark'] .auth-fullsize h3 { color: #66a6ff; }
[data-theme='dark'] .auth-fullsize h3::after { background: #66a6ff; }
[data-theme='dark'] .auth-fullsize h4 { color: #66a6ff; }
[data-theme='dark'] .auth-fullsize h4::after { background: #66a6ff; }
[data-theme='dark'] .auth-fullsize label { color: #d1d5db; }

/* ===============================
   Aktiver Link (Navbar + Dropdown)
   =============================== */
.navbar-dark-custom .nav-link.active,
.navbar-light .nav-link.active {
  color: var(--primary) !important;
  font-weight: 600;
}
.navbar-dark-custom .nav-link.active::after,
.navbar-light .nav-link.active::after {
  width: 100%;
}
.dropdown-menu .dropdown-item.active {
  color: var(--primary) !important;
  font-weight: 600;
}
[data-theme='dark'] .dropdown-menu .dropdown-item.active {
  color: #66a6ff !important;
}

/* ===== Rechtstexte (Impressum, Datenschutz, AGB, Disclaimer) ===== */
.legal-text {
  font-size: 1rem;
  line-height: 1.7;
  color: #2B2B2B;
}

.legal-text p,
.legal-text ul,
.legal-text ol {
  margin-bottom: 1rem;
}

.legal-text ul,
.legal-text ol {
  padding-left: 1.5rem;
}

.legal-text hr {
  margin: 2rem 0;
  border-top: 1px solid #ddd;
}

/* Darkmode */
[data-theme='dark'] .legal-text {
  color: #e5e7eb;
}
[data-theme='dark'] .legal-text h2 {
  color: #66a6ff;
  border-color: #66a6ff;
}
[data-theme='dark'] .legal-text h3 {
  color: #66a6ff;
  border-color: #66a6ff;
}
[data-theme='dark'] .legal-text h4 {
  color: #66a6ff;
  border-color: #66a6ff;
}
[data-theme='dark'] .legal-text hr {
  border-color: #374151;
}
.legal-text .card {
  border: none;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.legal-text .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}
.legal-text .card h2 {
  font-size: 1.25rem;
  color: var(--primary);
  margin-bottom: 1rem;
  font-weight: 600;
}
.legal-text .card h3 {
  font-size: 1.25rem;
  color: var(--primary);
  margin-bottom: 1rem;
  font-weight: 600;
}
.legal-text .card h4 {
  font-size: 1.25rem;
  color: var(--primary);
  margin-bottom: 1rem;
  font-weight: 600;
}
.legal-text dl dt {
  font-weight: 600;
  color: #444;
}
.legal-text dl dd {
  margin-bottom: 0.5rem;
}
[data-theme='dark'] .legal-text dl dt {
  color: #e5e7eb;
}
/* Einheitliches H2-Design für Legal-Seiten */
.legal-text h2,
.legal-text h3,
.legal-text h4 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--primary);
  position: relative;
  padding-bottom: 0.4rem;
  margin-bottom: 1.5rem;
  display: inline-block; /* macht die Linie kurz */
}

.legal-text h2::after,
.legal-text h3::after,
.legal-text h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;     /* kurze Linie */
  height: 3px;
  background: var(--primary);
  border-radius: 2px;
}

/* Darkmode Anpassung */
[data-theme='dark'] .legal-text h2,
[data-theme='dark'] .legal-text h3,
[data-theme='dark'] .legal-text h4 {
  color: #66a6ff;
}

[data-theme='dark'] .legal-text h2::after,
[data-theme='dark'] .legal-text h3::after,
[data-theme='dark'] .legal-text h4::after {
  background: #66a6ff;
}
/* ===============================
   Startseite (index.php)
   =============================== */

/* Feature Cards */
.feature-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  border-radius: 1rem;
  border: none;
}
.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.feature-card i {
  color: var(--primary);
}

/* CTA Abschluss-Block */
.cta-section {
  background: var(--primary);
  color: #fff;
  padding: 4rem 0;
  text-align: center;
  border-radius: 0.75rem;
}
.cta-section h2 {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.cta-section p {
  font-size: 1.1rem;
  margin-bottom: 2rem;
}
.cta-section .btn {
  margin: 0.3rem;
  font-size: 1.05rem;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  font-weight: 600;
}
/* ===== Testimonials ===== */
.testimonial-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.testimonial-img img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.testimonial-body {
  padding: 1.5rem;
  text-align: center;
}
.testimonial-body .stars {
  color: #ffc107;
  font-size: 1.1rem;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}
.testimonial-body p {
  font-size: 0.95rem;
  color: #444;
  margin-bottom: 1rem;
  font-style: italic;
}
.testimonial-body .author {
  font-weight: 600;
  color: var(--primary);
}
.testimonial-body .author span {
  display: block;
  font-size: 0.85rem;
  color: #6c757d;
  font-weight: 400;
}
/* Intro-Badge */
.intro-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border-radius: 50rem;
  background: var(--primary);
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}
.intro-badge i {
  margin-right: 0.4rem;
}
/* Intro Badge als Call-to-Action */
.intro-badge {
  padding: 1rem 1.5rem;
  background: var(--primary);
  color: #fff;
  font-weight: 600;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
  font-size: 1.1rem;
}

.intro-badge:hover {
  background: #003a91;
  transform: translateY(-5px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.2);
  color: #fff;
  text-decoration: none;
}
/* =====================================
   Warum-Seite: Cards, Schritte & Badges
   ===================================== */

/* Icon-Cards */
.card .fa-2x {
  color: var(--primary);
  transition: transform 0.3s ease;
}
.card:hover .fa-2x {
  transform: scale(1.2);
}

/* Schritt-Nummern */
.badge.rounded-pill.bg-primary {
  font-size: 1rem;
  padding: 0.5rem 0.8rem;
}

/* Trust-Badges */
.badge.bg-success {
  font-size: 0.9rem;
  padding: 0.6rem 0.9rem;
  border-radius: 50rem;
  font-weight: 500;
}

/* Hover-Effekt für Trust-Badges */
.badge.bg-success:hover {
  background-color: #28a745 !important;
  color: #fff;
  transform: translateY(-2px);
  transition: all 0.25s ease;
}

/* CTA-Button im letzten Abschnitt */
section.bg-light .btn-primary {
  padding: 0.8rem 2rem;
  font-size: 1.1rem;
  font-weight: 600;
  box-shadow: 0 4px 10px rgba(0,86,210,0.2);
}
section.bg-light .btn-primary:hover {
  box-shadow: 0 6px 14px rgba(0,86,210,0.3);
  transform: translateY(-2px);
}
.badge.rounded-pill {
  margin-right: 0.75rem;
}
/* Einheitliche Abstände und zentrierte Ausrichtung für Step-Badges */
/* Step-Badges (Warum-Seite) */
.step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  padding: 0.6rem 0.9rem;
  min-width: 38px;
  min-height: 38px;
  margin-right: 0.5rem;
  font-weight: 600;
}

/* Abstand & Hover für Vorteilskarten */
.card.shadow-sm.border-0 {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card.shadow-sm.border-0:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.15);
}

/* Trust-Badges */
.badge.bg-success {
  font-size: 0.9rem;
  padding: 0.6rem 1rem;
  border-radius: 30px;
}
/* ===============================
   Testimonials
   =============================== */
.testimonial-card {
  background: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}
.testimonial-card .testimonial-img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
.testimonial-card .testimonial-body {
  padding: 1rem 1.25rem;
}
.testimonial-card .stars {
  color: #ffc107;
  font-size: 0.95rem;
}
.testimonial-card .author {
  margin-top: 0.75rem;
  font-weight: 500;
  color: #333;
}
.testimonial-card .author span {
  font-weight: normal;
  font-size: 0.9rem;
  color: #666;
}

/* ===== Darkmode: Testimonials ===== */
[data-theme='dark'] .testimonial-card {
  background: #1f2937;
  border: 1px solid #374151;
  color: #e5e7eb;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
[data-theme='dark'] .testimonial-card:hover {
  box-shadow: 0 10px 25px rgba(0,0,0,0.8);
}
[data-theme='dark'] .testimonial-card .author {
  color: #f3f4f6;
}
[data-theme='dark'] .testimonial-card .author span {
  color: #9ca3af;
}
[data-theme='dark'] .testimonial-card .stars {
  color: #fbbf24; /* gelblich, besser sichtbar */
}
/* Darkmode: Texte in Testimonials */
[data-theme='dark'] .testimonial-card p {
  color: #e5e7eb !important; /* heller Text */
}

[data-theme='dark'] .testimonial-card .text-muted,
[data-theme='dark'] .testimonial-card .author span {
  color: #9ca3af !important; /* abgeschwächt für Nebentexte */
}
.pricing-card {
  border-radius: 1rem;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  background: #fff;
}
.pricing-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}
.pricing-header {
  font-size: 1.1rem;
  font-weight: 600;
  padding: 0.75rem;
}
.pricing-body {
  padding: 1.5rem;
}
.pricing-body .price {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--primary);
}
.package-desc ul {
  padding-left: 1.2rem;
  margin-bottom: 0;
}
[data-theme='dark'] .pricing-card {
  background: #1f2937;
  border: 1px solid #374151;
  color: #e5e7eb;
}
[data-theme='dark'] .pricing-body .price {
  color: #66a6ff;
}
.badge {
  font-size: 0.9rem;
  padding: 0.5em 0.75em;
  border-radius: 0.5rem;
}

.price-card .card-header i {
  font-size: 1rem;
}
/* ===============================
   Packages / Pricing Cards
   =============================== */
.plan-card {
  border-radius: 0.75rem;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.plan-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.plan-card .card-header {
  font-size: 1rem;
  font-weight: 600;
  padding: 0.75rem 1rem;
  background: var(--primary);
  color: #fff;
  border-bottom: none;
}

.plan-card .card-body {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
}

.plan-card .card-title {
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.plan-card .price {
  font-size: 1.25rem;
  color: var(--primary);
}

.plan-card ul {
  margin-top: 0.5rem;
  margin-bottom: 0.2rem;
  padding-left: 1.2rem;
}
.plan-card ul li {
  margin-bottom: 0.12rem;
}

.plan-card .btn {
  border-radius: 0.5rem;
  font-weight: 600;
  padding: 0.6rem;
}

/* Darkmode */
[data-theme='dark'] .plan-card {
  background: #1f2937;
  border: 1px solid #374151;
}
[data-theme='dark'] .plan-card .card-header {
  background: #2563eb;
  color: #fff;
}
[data-theme='dark'] .plan-card .card-title,
[data-theme='dark'] .plan-card .price {
  color: #f9fafb;
}
[data-theme='dark'] .plan-card ul {
  color: #d1d5db;
}
.package-section + .package-section {
  border-top: 2px solid #e9ecef;
  margin-top: 2rem;
  padding-top: 2rem;
}
.package-header {
  font-size: 1.5rem;
  font-weight: 600;
  margin: 2rem 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 3px solid var(--primary);
  display: inline-block;
}
.package-section:nth-of-type(even) {
  background-color: #f8f9fa; /* hellgrau */
  padding: 2rem 1rem;
  border-radius: 0.75rem;
}
.badge-trust {
  border: 1px solid #007C91;   /* Petrol */
  color: #007C91;
  font-weight: 500;
}
.footer-link {
  color: #666; /* neutrales Grau */
  text-decoration: none;
  transition: color 0.2s ease-in-out;
}

.footer-link:hover {
  color: #007C91; /* dein Petrol CI-Farbton */
  text-decoration: underline;
}
.hint-text {
  display: flex;               /* Immer sichtbar */
  align-items: center;
  margin-top: 6px;
  font-size: 0.85rem;
  color: #666;
  line-height: 1.3;
  min-height: 20px;            /* Platz reservieren */
}

.hint-text::before {
  content: "\f05a";            /* FontAwesome: info-circle */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  margin-right: 6px;
  color: #007C91;
}
.hint-hidden {
  color: transparent !important;
  visibility: hidden; /* Icon + Text verschwinden */
  height: 0;
  margin: 0;
  padding: 0;
}
.hint-hidden::before {
  content: "" !important; /* Icon ausblenden */
}
.basic-hint {
  margin-top: 6px;
  font-size: 0.85em;
  color: #0d6efd; /* Bootstrap Blau */
  display: flex;
  align-items: center;
  gap: 6px;
}
.basic-hint i {
  font-size: 1em;
}
.card.in-cart {
  border: 2px solid #28a745 !important; /* grüner Rahmen */
  box-shadow: 0 0 12px rgba(40, 167, 69, 0.3);
}
.card.in-cart {
  border: 2px solid #28a745 !important; /* grüner Rahmen */
  background-color: #eaf9f0 !important; /* sehr dezentes Hellgrün */
  box-shadow: 0 0 12px rgba(40, 167, 69, 0.25);
  transition: all 0.3s ease-in-out;
}
button i {
  margin-right: 0.2rem;
}
/* in assets/css/custom.css */
.is-invalid {
  border-color: #dc3545 !important;
  background-color: #fff6f6;
}
/* Wrapper für den Balken */
.password-strength {
  margin-top: 0.25rem;
}

/* Der farbige Balken selbst */
.password-strength .strength-bar {
  width: 0;
  height: 6px;
  border-radius: 3px;
  background-color: #dc3545; /* Standard: rot (schwach) */
  transition: width 0.3s ease, background-color 0.3s ease;
}

/* Textlabel unter dem Balken */
.password-strength .strength-label {
  font-size: 0.85rem;
  margin-top: 0.25rem;
  display: block;
}
.password-criteria {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

.password-criteria.show {
  max-height: 200px; /* genug Platz für 4 Zeilen */
  opacity: 1;
}
.input-group .toggle-password {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Fix: Caret-Pfeil im Konto-Dropdown mittig ausrichten */
.navbar .dropdown-toggle::after {
  vertical-align: middle !important;
  margin-left: .25rem;   /* etwas Abstand zum Text */
  margin-top: 0;         /* verhindert nach unten verrutschen */
  position: relative;
  top: 0;                /* sorgt, dass der Pfeil mittig bleibt */
}
/* =========================================
   Fix: Dropdown in Navbar (Bootstrap 4.6)
   ========================================= */
.navbar-dark-custom .dropdown-menu {
  display: none;               /* Standard Bootstrap-Reset */
  position: absolute;          /* Wichtig, sonst schiebt es sich ins Layout */
  min-width: 12rem;            /* Breite */
  z-index: 1050;               /* Überlappt anderen Content */
  margin-top: 0.5rem;          /* kleiner Abstand */
  border-radius: 0.5rem;       /* rundere Ecken */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15); /* etwas Tiefe */
}

/* Sichtbar, wenn .show-Klasse da ist */
.navbar-dark-custom .dropdown-menu.show {
  display: block;
}

/* Mobile: Dropdown auf volle Breite setzen */
@media (max-width: 991.98px) {
  .navbar-dark-custom .dropdown-menu {
    position: static;      /* Menü innerhalb des mobilen Blocks */
    float: none;
    width: 100%;
    margin-top: 0;
    box-shadow: none;
    border-radius: 0;
  }
}
/* ===== Fix: Dropdown sichtbar im Navbar ===== */
.navbar-dark-custom .dropdown-menu {
  display: none;          /* Standard */
  position: absolute;     /* wichtig, damit es über dem Content schwebt */
  top: 100%;              /* direkt unter dem Toggle */
  left: auto;
  right: 0;
  margin-top: 0.5rem;
  z-index: 1050;          /* über Navbar-Inhalt */
}

.navbar-dark-custom .dropdown-menu.show {
  display: block !important;
}
.navbar-dark-custom .dropdown-menu {
  position: absolute !important;
  z-index: 2000 !important;
}
/* Mobile Navbar Dropdown: Aktiver Link Hintergrundfarbe heller */

  .navbar-dark-custom .dropdown-menu .dropdown-item:active,
  .navbar-dark-custom .dropdown-menu .dropdown-item.active {
    background-color: #007C91 !important; /* dein Petrol / CI-Farbe */
    color: #fff !important;
  }
/* Fix: Dropdown-Menüs im mobilen Navbar sollen bündig unter dem Opener erscheinen */
@media (max-width: 991.98px) {
  .navbar-dark-custom .dropdown-menu {
    position: relative !important;
    width: 100% !important;
    margin: 0;
    border: none;
    box-shadow: none;
  }
}
/* Fix: Lange Dropdown-Menüs im mobilen Navbar scrollbar machen */
@media (max-width: 991.98px) {
  .navbar-dark-custom .dropdown-menu {
    position: relative !important;
    width: 100% !important;
    margin: 0;
    border: none;
    box-shadow: none;
    max-height: 60vh;       /* Begrenze Höhe */
    overflow-y: auto;       /* Scrollbar aktivieren */
  }
}
@media (max-width: 991.98px) {
  .navbar-dark-custom .dropdown-menu {
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  }
}
@media (max-width: 991.98px) {
  /* Container, der aufklappt */
  .navbar-dark-custom .navbar-collapse {
    max-height: 80vh;        /* nimmt max. 80% der Höhe */
    overflow-y: auto;        /* eigenes Scrollen erlauben */
    margin-bottom: 0.5rem;   /* etwas Luft unten */
  }

  /* Dropdown-Menüs im mobilen Zustand */
  .navbar-dark-custom .dropdown-menu {
    max-height: 70vh;        /* auch die Sub-Menüs begrenzen */
    overflow-y: auto;
    border-bottom: 2px solid #0056D2;  /* sichtbarer Abschluss */
    border-radius: 0 0 0.5rem 0.5rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  }
}
/* ================================
   Checkout & Order Review Styles
   ================================ */

/* Karten */
.card {
  border-radius: 0.75rem;
}

/* Hover-Effekt für Zahlungsarten-Karten */
.hover-shadow {
  transition: box-shadow 0.25s ease-in-out, transform 0.2s ease-in-out;
}
.hover-shadow:hover {
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, .15) !important;
  transform: translateY(-2px);
}

/* Laufzeit-Block */
#runtimeOptions {
  /*
  border-top: 1px solid #eee;
  padding-top: 1rem;
  */
}
#runtimeOptions label {
  font-weight: 600;
}
#runtimeOptions select {
  max-width: 200px;
}

/* Summen-Darstellung */
#cartSummary ul,
.summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#cartSummary li,
.summary-list li {
  padding: 0.25rem 0;
  font-size: 0.95rem;
}
#cartSummary li strong,
.summary-list li strong {
  font-weight: 600;
}

.summary-total {
  font-size: 1.25rem;
  font-weight: 700;
  color: #28a745; /* Bootstrap Grün */
}

/* Zahlungsarten-Icons */
.payment-icon {
  font-size: 1.2rem;
  margin-right: 0.4rem;
}

/* ================================
   Farb-Set für Stati / Badges
   ================================ */
/* Einheitliche Icons + Badges */
.badge i {
  font-size: 0.85em;
  margin-right: 4px;
  vertical-align: middle;
}

/* Abstände optimieren */
.badge {
  padding: 0.35em 0.6em;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 0.45rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* Farben feiner abgestimmt */
.badge-success {
  background-color: #28a745;
}
.badge-info {
  background-color: #17a2b8;
}
.badge-warning {
  background-color: #ffc107;
  color: #212529;
}
.badge-danger {
  background-color: #dc3545;
}

/* Alerts mit Icons schöner darstellen */
.alert {
  padding: 0.6rem 1rem;
  border-radius: 0.4rem;
  display: flex;
  align-items: center;
  font-size: 0.95rem;
}

.alert i {
  font-size: 1.1em;
  margin-right: 0.5rem;
  opacity: 0.9;
}

.alert-success {
  border-left: 4px solid #28a745;
}

.alert-info {
  border-left: 4px solid #17a2b8;
}

.alert-warning {
  border-left: 4px solid #ffc107;
}

.alert-danger {
  border-left: 4px solid #dc3545;
}
.status-info {
  color: #0c5460;
  background-color: #d1ecf1;
  border: 1px solid #bee5eb;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
}
.status-success {
  color: #155724;
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
}
.status-warning {
  color: #856404;
  background-color: #fff3cd;
  border: 1px solid #ffeeba;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
}
.status-danger {
  color: #721c24;
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
}
/* Einheitliches Styling für alle Suggest-Dropdowns */
.plz-suggest {
  position: absolute;
  z-index: 5000;                /* ganz oben */
  
  background-color: #f8f9fa;    /* etwas dunkler als Weiß */
  /* background-color: #f1f1f1; */    /* dunkleres Grau statt rein weiß */
  
  border: 1px solid #666;       /* dunklere Umrandung */
  border-radius: .35rem;
  box-shadow: 0 6px 16px rgba(0,0,0,0.35); /* kräftiger Schatten */
  max-height: 260px;
  overflow-y: auto;
  font-family: inherit;
  font-size: 1rem;
  margin-top: 2px;
}

.plz-suggest ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.plz-suggest li {
  padding: 0.75rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid #ddd; /* etwas dunkler */
  
  background-color: #f8f9fa;     /* dunkler Grundton */
  /*background-color: #f1f1f1;*/    /* dunkleres Grau statt rein weiß */
  
  color: #111;                   /* sehr dunkles Grau statt Schwarz */
  transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}

.plz-suggest li:last-child {
  border-bottom: none;
}

.plz-suggest li:hover {
  background-color: #d0d0d0 !important; /* dunkler Hover */
  color: #0056D2 !important;            /* CI-Blau für Text */
  font-weight: 500;
}

@media (max-width: 575.98px) {
  .card .card-body {
	padding: 0.75rem; /* weniger Innenabstand */
  }
  .card .card-title {
	font-size: 1rem;
  }
  .card .card-text {
	font-size: 0.875rem;
  }
}
@media (max-width: 767.98px) {
  .card-text.mobile-smaller {
    font-size: 0.85rem;   /* kleiner als Standard */
    line-height: 1.3;     /* etwas enger, damit es kompakter wirkt */
  }
}
@media (max-width: 767.98px) {
  .card-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;   /* maximal 2 Zeilen */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 2.0em;       /* sorgt dafür, dass auch kurze Titel gleich hoch sind */
    line-height: 1.1;        /* sauberes Zeilenmaß */
  }
}
/* Mobile: kleiner machen */
@media (max-width: 576px) {
  h1 { font-size: 1.4rem; line-height: 1.3; }
  h2 { font-size: 1.2rem; line-height: 1.3; }
  h3 { font-size: 1.05rem; line-height: 1.3; }
  h4 { font-size: 0.95rem; line-height: 1.3; }
  h5 { font-size: 0.9rem; line-height: 1.3; }
  h6 { font-size: 0.85rem; line-height: 1.3; }
}


.g-recaptcha {
  transform: scale(0.9);
  transform-origin: 0 0; /* oben links skalieren */
}
@media (max-width: 575.98px) {
  .g-recaptcha {
    transform: scale(0.85);
    transform-origin: 0 0;
  }
}
.recaptcha-wrapper {
  display: flex;
  justify-content: center; /* mittig im Formular */
  margin-top: 0.1rem;
}
.recaptcha-wrapper .g-recaptcha {
  transform: scale(1);
  transform-origin: center;
}
/* Nur Mobile verkleinern */
@media (max-width: 576px) {
  .recaptcha-wrapper .g-recaptcha {
    transform: scale(0.9);
    transform-origin: center;
  }
}
/* ===== Custom Badge Colors ===== */
.bg-teal {
    background-color: #00C8C8 !important; /* helles Türkis (CI-kompatibel) */
}
.bg-purple {
    background-color: #7B5CF5 !important; /* sanftes Lila */
}
/* ============================================================
   Preis-Layout mit Streichpreis
   ============================================================ */
.price-wrapper {
    line-height: 1.3;
}
.price {
    font-size: 1.25rem;
    color: #0056D2; /* deine Primärfarbe */
}
.price.text-success {
    color: #00C896 !important; /* CI-Akzentgrün */
}

.streichpreis {
    margin-top: -2px;
    font-size: 0.8rem;
    color: #6c757d; /* Bootstrap Grau */
}

.streichpreis s {
    color: #999;
    opacity: 0.7;
    text-decoration-thickness: 2px;
}
/* =============================
   Custom Badge Farben (CI)
   ============================= */
.bg-accent {
    background-color: #00C896 !important; /* Akzentgrün */
    color: #fff !important;
}

/* ============================================================
   Featureliste kompakt / dynamische Höhe (fix)
   ============================================================ */
/* ============================================================
   Featureliste Animation + Chevron
   ============================================================ */
.feature-list {
    overflow: hidden;
    position: relative;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.4s ease, opacity 0.4s ease;
}

.feature-list.compact {
    max-height: 140px;
    opacity: 1;
}
@media (max-width: 575.98px) {
    .feature-list.compact { max-height: 90px; }
}
@media (max-width: 767.98px) {
    .feature-list.compact { max-height: 115px; }
}
@media (min-width: 1200px) {
    .feature-list.compact { max-height: 160px; }
}

.feature-list.expanded {
    max-height: 1000px !important;
    opacity: 1;
}
.feature-list.compact::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40px;
    /*background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); */
}
.feature-list.expanded::after {
    display: none !important;
}

/* Toggle-Link mit Chevron */
.toggle-features {
    font-size: 0.9rem;
    text-decoration: none;
    margin-top: 4px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: color 0.3s ease;
}
.toggle-features:hover { text-decoration: underline; }

.toggle-features .chevron {
    transition: transform 0.3s ease;
}
.toggle-features.active .chevron {
    transform: rotate(180deg);
}
/* ============================================================
   Toggle-Button Fokus-Outline entfernen (nur visuell)
   ============================================================ */
.toggle-features:focus,
.toggle-features:focus-visible,
.toggle-features:active {
    outline: none !important;
    box-shadow: none !important;
}
.nowrap {
  white-space: nowrap;
}

/* ============================================================
   Checkout: Mengenfeld optimieren (ohne Pfeile, kompakter)
   ============================================================ */
.qty-input {
  width: 60px;                /* schmaler als Standard */
  text-align: center;         /* Zahl mittig */
  -moz-appearance: textfield; /* Firefox: keine Pfeile */
}

/* Entfernt Spinner (Chrome, Safari, Edge, Opera) */
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Optional: etwas kompaktere Höhe */
.qty-input.form-control-sm {
  padding: 0.25rem 0.3rem !important;
  margin: 0 auto; /* mittig in der Zelle */
}

/* Optional: leicht abgerundet, CI-neutral */
.qty-input {
  border-radius: 0.25rem;
}

/* ============================================================
   🔧 Mobile Navbar Fix – alles wieder einzeilig
   ============================================================ */
@media (max-width: 767.98px) {
  /* 1️. Flex-Container enger zusammenrücken */
  .navbar .d-flex.align-items-center.ml-auto.d-lg-none {
    flex-wrap: nowrap !important;
    gap: 4px; /* moderner Abstand statt margin */
  }

  /* 2️. Language Switcher schmaler machen */
  .navbar .select-wrapper.select-compact {
    min-width: 70px;
    max-width: 85px;
  }

  .navbar .select-wrapper.select-compact select {
    padding-left: 0.3rem;
    padding-right: 1.2rem; /* Platz für Chevron */
    font-size: 0.8rem;
  }

  /* Chevron dichter an das Select */
  .navbar .select-wrapper i.fa-chevron-down {
    right: 4px;
    font-size: 0.65rem;
  }

  /* 3️. Icons (Darkmode, Cart, Hamburger) leicht zusammenrücken */
  .navbar .themeToggle,
  .navbar .nav-link.position-relative,
  .navbar .navbar-toggler {
    margin-left: 2px !important;
    margin-right: 2px !important;
    padding: 0.25rem 0.4rem !important;
  }

  /* 4️. Gesamte Navbar etwas kompakter */
  .navbar .navbar-brand img {
    height: 38px !important;
  }
}

#badgeSearches, #badgeMatches, #badgeOrders, #badgeSubs, #badgeMailbox,  {
  font-size: 0.50rem;
  min-width: 60px;
  text-align: center;
}