:root {
  --bg-slate-50: #ffffff;
  --bg-slate-900: #0071ce;
  --bg-white: #ffffff;
  --slate-900: #020617;
  --slate-800: #1e293b;
  --slate-700: #334155;
  --slate-600: #475569;
  --slate-500: #64748b;
  --slate-400: #94a3b8;
  --slate-300: #cbd5f5;
  --slate-200: #e2e8f0;
  --slate-100: #f1f5f9;

  /* Logo-Brandfarben */
  --logo-blue:   #0071ce;
  --logo-red:    #eb272a;
  --logo-yellow: #ffc800;
  --logo-green:  #00a651;

  /* Aus Logo abgeleitete Töne */
  --blue-50:  #e6f3ff;
  --blue-100: #cde7ff;
  --blue-600: var(--logo-blue);
  --blue-700: #005a9e;

  --orange-50:  #fff9e6;
  --orange-100: #fff1bf;
  --orange-500: var(--logo-blue);
  --orange-600: #94a3b8;

  --green-100: #e0f7ec;
  --green-400: #5fd798;
  --green-500: var(--logo-green);
  --green-600: #008f45;

  --indigo-100: #e0e7ff;
  --teal-100: #ccfbf1;

  --shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.08);
  --radius-xl: 1rem;
  --radius-2xl: 1.25rem;

  /* Layout */
  --container-max: 1120px;
  /* etwas kleinere Seitenränder (gewünscht), bleibt aber responsive */
  --gutter: clamp(10px, 1.2vw, 14px);
  --prose-max: 75ch;
}

/* Bewegungen reduzieren (Barrierefreiheit) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* Sinnvolle Standard-Breite für eingebettete Inhalte */
.embed-wrap {
  max-width: 100%;

  /* ✅ NEU (global): externe Einbettungen sollen NICHT "extern" aussehen */
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  padding: 0;
  margin: 0;
}
.embed-frame,
.embed-wrap iframe {
  width: 100%;
  border: 0;
  display: block;
  background: transparent;
}

/* RESET & GLOBAL */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg-slate-50);
  color: var(--slate-800);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Accessible focus */
:focus-visible {
  outline: 3px solid #111;
  outline-offset: 2px;
}

button {
  font-family: inherit;
  border: none;
  cursor: pointer;
}

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Skip link */
.skip-link{
  position:absolute;
  left:-999px;
  top:12px;
  background:#fff;
  border:2px solid #111;
  padding:8px 12px;
  border-radius:10px;
  z-index:99999;
}
.skip-link:focus{ left:12px; }

/* Readability for long text pages (AGB/Datenschutz/Impressum etc.) */
.prose{
  max-width: var(--prose-max);
}

/* ===== Login Dropdown (global) ===== */
.nav-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
}

.nav-mid{
  display:flex;
  align-items:center;
  gap:18px;
  white-space:nowrap; /* wichtig: verhindert, dass "eingeloggt" alles verschiebt */
}

.nav-account{
  position:relative;  /* Dropdown soll sich daran ausrichten */
  display:flex;
  align-items:center;
  gap:14px;
  white-space:nowrap;
}

.nav-link-small{ font-size:0.85rem; }

.login-dropdown{
  position:absolute;
  top: calc(100% + 12px);
  right:0;
  width: 360px;
  background:#fff;
  border-radius: 10px;
  box-shadow: 0 18px 60px rgba(0,0,0,.20);
  overflow:hidden;
  display:none;
  z-index:9999;
  border:1px solid #e8edf2;
}
.login-dropdown.is-open{ display:block; }
.login-dropdown::before{
  content:"";
  position:absolute;
  top:-10px;
  right:26px;
  border-width: 0 10px 10px 10px;
  border-style: solid;
  border-color: transparent transparent #fff transparent;
  filter: drop-shadow(0 -2px 1px rgba(0,0,0,.08));
}

.ld-head{ padding: 14px 16px; border-bottom: 1px solid #e8edf2; font-weight: 800; color: #0f2233; font-size: 18px; }
.ld-body{ padding: 14px 16px 16px; }
.ld-label{ display:block; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; font-size: 13px; margin: 10px 0 6px; color: #0f2233; }
.ld-input{ width: 100%; height: 44px; padding: 0 12px; border: 2px solid #e6eaef; border-radius: 8px; outline: none; font-size: 14px; box-sizing: border-box; }
.ld-submit{ width: 100%; margin-top: 12px; height: 44px; display:flex; align-items:center; justify-content: space-between; padding: 0 14px; box-sizing: border-box; }
.ld-arrow{ font-size: 22px; line-height: 1; }
.ld-link{ display:inline-block; margin-top: 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; text-decoration: none; color: #0071ce; }
.ld-link:hover{ text-decoration: underline; }

.ld-error{
  margin: 0 0 10px;
  padding: 10px;
  border-radius: 8px;
  background:#fee2e2;
  color:#b91c1c;
  font-size:0.9rem;
}
.ld-error ul{ margin:0; padding-left:1.2rem; }

@media (max-width: 520px){
  .login-dropdown{ right:0; left:0; width:auto; margin:0 12px; }
  .login-dropdown::before{ right: 38px; }
}

/* Screenreader-only Label */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Standard für alle Seiten */
.nav-logo-img{
  height: clamp(70px, 10vw, 160px);
  width: auto;
  object-fit: contain;
}

/* NUR Startseite: eigenes Logo */
.nav-logo-img1{
  height: clamp(70px, 10vw, 160px);
  width: auto;
  object-fit: contain;
}

/* Startseite Mobile: Platzierung wie du es willst */
@media (max-width: 1023px){
  .nav-logo-img1{
    transform: translateX(0); /* oder -30px wenn du es willst */
  }
}

/* NAVIGATION */

.nav {
  position: relative; /* kein sticky, damit nichts überlappt */
  z-index: 40;
  background: #ffffff;
  border-bottom: 1px solid var(--slate-200);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0;
  flex-wrap: wrap;
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  flex: 0 0 auto;
}

.nav-logo-icon {
  position: relative;
  width: 60px;
  height: 60px;
}

.nav-logo-icon-sun {
  position: absolute;
  right: -8px;
  top: -8px;
  font-size: 18px;
  animation: pulse-slow 2s infinite;
}

.nav-logo-icon-umbrella {
  font-size: 28px;
}

.nav-logo-text {
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: -0.03em;
  color: var(--slate-800);
}

.nav-logo-text span {
  color: var(--logo-blue);
}

/* Suchfeld oben */
.nav-search {
  flex: 1 1 220px;
  min-width: 0;
  max-width: 380px;
  display: flex;
  align-items: center;
  background: #fff;
  padding: 6px 12px;
  border-radius: 12px;
  border: 1px solid #cccccc;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
}

.nav-search:focus-within {
  border-color: var(--logo-blue);
  box-shadow: 0 0 4px rgba(0, 113, 206, 0.4);
}

.nav-search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 0.95rem;
  padding: 6px 6px;
  background: transparent;
  color: #333;
  min-width: 0;
}

.nav-search-btn {
  border: none;
  background: var(--logo-blue);
  color: #fff;
  font-size: 0.9rem;
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: 0.2s ease;
  white-space: nowrap;
}

.nav-search-btn:hover {
  background: var(--blue-700);
  transform: translateY(-1px);
}

/* Links */
.nav-links {
  display: none;
  align-items: center;
  gap: 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate-600);
  flex: 0 0 auto;
  flex-wrap: wrap;
}

.nav-links a:hover {
  color: var(--logo-blue);
}

.nav-button {
  background: var(--logo-blue);
  color: #fff;
  padding: 0.45rem 1.3rem;
  border-radius: 999px;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(0, 113, 206, 0.45);
  transition: all 0.18s ease;
  font-size: 0.85rem;
}

.nav-button:hover {
  background: var(--blue-700);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 90, 158, 0.55);
}

/* NAV Breakpoints */

/* Desktop: Links sichtbar (ab 1024px) */
@media (min-width: 1024px) {
  .nav-links {
    display: flex;
  }
}

/* Mobile & Tablet: alles untereinander, Logo oben zentriert */
@media (max-width: 1023px) {
  .nav-inner {
    flex-direction: column;
    align-items: stretch;
  }

  .nav-logo {
    justify-content: center;
  }

  .nav-search {
    max-width: 100%;
    width: 100%;
  }

  .nav-links {
    display: flex;
    justify-content: center;
    gap: 0.8rem;
    font-size: 0.85rem;
  }

  .nav-logo-img {
    transform: translateX(-20px);
  }
  .nav-logo-img1 {
    transform: translateX(-90px);
  }
}

/* HERO (für Startseite – AGB-Seite nutzt das nicht, ist aber ok, es hier zu lassen) */

.hero {
  position: relative;
  overflow: hidden;
  background: #fff;
}

.hero-bg-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--orange-50), var(--blue-50));
  opacity: 0.5;
  pointer-events: none;
}

.hero-blob {
  position: absolute;
  width: 380px;
  height: 380px;
  border-radius: 999px;
  filter: blur(40px);
  opacity: 0.3;
  mix-blend-mode: multiply;
  animation: blob 18s infinite;
}

.hero-blob.yellow {
  right: -80px;
  top: -80px;
  background: #facc15;
}

.hero-blob.blue {
  left: -80px;
  top: -80px;
  background: #60a5fa;
  animation-delay: 3s;
}

.hero-inner {
  position: relative;
  z-index: 10;
  padding: 3rem 0 4rem;
}

@media (min-width: 768px) {
  .hero-inner {
    padding: 2rem 0 1rem;
  }
}

.hero-center {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding: 0 0.5rem;
}

.hero-title {
  font-size: 2.4rem;
  line-height: 1.1;
  letter-spacing: -0.05em;
  font-weight: 800;
  color: var(--slate-900);
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .hero-title {
    font-size: 3.4rem;
  }
}

.hero-title span {
  background: linear-gradient(to right, var(--blue-600), var(--blue-700));
  -webkit-background-clip: text;
  color: transparent;
}

.hero-subtitle {
  font-size: 1rem;
  color: var(--slate-500);
  margin-bottom: 2.5rem;
  line-height: 1.7;
}

@media (min-width: 768px) {
  .hero-subtitle {
    font-size: 1.125rem;
  }
}

/* SMART SEARCH (Home) */

.smart-search {
  max-width: 640px;
  margin: 1.5rem auto 2.5rem;
}

.smart-search-form {
  background: #fff;
  border-radius: 1.25rem;
  padding: 0.35rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--slate-100);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .smart-search-form {
    flex-direction: row;
    align-items: center;
  }
}

.smart-search-input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  height: 56px;
  background: var(--slate-100);
  border-radius: 0.9rem;
  padding: 0 1rem;
  border: 1px solid transparent;
  transition: all 0.15s ease;
}

.smart-search-input-wrap:focus-within {
  background: #fff;
  border-color: var(--blue-100);
  box-shadow: 0 0 0 4px #dbeafe;
}

.smart-search-icon {
  margin-right: 0.75rem;
  font-size: 1.2rem;
  color: var(--logo-blue);
}

.smart-search-input {
  border: none;
  outline: none;
  flex: 1;
  font-size: 1rem;
  background: transparent;
  color: var(--slate-800);
}

.smart-search-input::placeholder {
  color: var(--slate-400);
}

.smart-search-button {
  height: 56px;
  width: 100%;
  background: var(--blue-600);
  color: #fff;
  border-radius: 0.9rem;
  font-weight: 600;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  box-shadow: 0 18px 30px rgba(37, 99, 235, 0.25);
  transition: background 0.15s ease, transform 0.1s ease;
  margin-top: 0.25rem;
}

.smart-search-button:hover {
  background: var(--blue-700);
  transform: translateY(-1px);
}

@media (min-width: 768px) {
  .smart-search-button {
    width: auto;
    padding: 0 2.2rem;
    margin-top: 0;
  }
}

.smart-search-surprise {
  margin-top: 0.9rem;
  display: flex;
  justify-content: center;
}

.smart-search-surprise button {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--slate-500);
  background: rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  border: 1px solid var(--slate-200);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.smart-search-surprise button:hover {
  color: var(--blue-600);
  border-color: var(--blue-100);
}

/* AI RESULT CARDS */

.ai-results {
  margin-top: 3rem;
}

.ai-results-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  color: var(--slate-800);
  font-weight: 700;
}

.ai-results-header span.icon {
  color: var(--blue-600);
}

.ai-results-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 960px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .ai-results-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.ai-card {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.1rem 1.3rem;
  border: 1px solid var(--slate-100);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ai-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.1);
}

.ai-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}

.ai-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 0.75rem;
  background: var(--blue-50);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue-700);
  font-size: 1.1rem;
}

.ai-card-badge {
  background: var(--green-100);
  color: var(--green-600);
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
}

.ai-card-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.ai-card-desc {
  font-size: 0.85rem;
  color: var(--slate-500);
  min-height: 3rem;
  margin-bottom: 0.7rem;
}

.ai-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.7rem;
  border-top: 1px solid #f8fafc;
}

.ai-card-price {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  font-size: 0.75rem;
  color: var(--slate-500);
  font-weight: 500;
}

.ai-card-link {
  font-size: 0.8rem;
  color: var(--blue-600);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}

.ai-card-link:hover {
  color: var(--blue-700);
}

/* TRUST CHIPS */

.trust-chips {
  margin-top: 2.4rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  font-size: 0.8rem;
  color: var(--slate-500);
}

.trust-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.trust-chip span.icon {
  font-size: 1rem;
  color: var(--green-500);
}

/* GENERISCHE SECTION / CATEGORIES */

.section {
  position: relative;
  z-index: 10;
}

.section-categories {
  padding: 4rem 0;
  background: #fff;
}

.section-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 2rem;
  gap: 1rem;
}

.section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
}

.category-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .category-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.category-card {
  position: relative;
  background: #fff;
  border-radius: 1.2rem;
  padding: 1.5rem;
  border: 1px solid var(--slate-100);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.category-card:hover {
  border-color: var(--blue-100);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
  transform: translateY(-3px);
}

.category-icon {
  width: 56px;
  height: 56px;
  border-radius: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.2rem;
  font-size: 1.5rem;
}

/* ✅ Modern & neutral (ohne Farben) */
.category-icon{
  width: 56px;               /* falls nicht schon gesetzt */
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 18px;

  background: rgba(255,255,255,0.92);      /* neutral */
  border: 1px solid rgba(15,23,42,0.10);   /* feine Border */
  box-shadow:
    0 10px 26px rgba(15,23,42,0.08),
    inset 0 1px 0 rgba(255,255,255,0.9);   /* “soft” */
  color: #0f172a;                           /* einheitlich dunkel */
  font-size: 26px;                          /* Emoji/Icon Größe */
  line-height: 1;
}

/* ✅ gleiche Optik für alle Kategorien (kein bunt) */
.category-icon.pur,
.category-icon.compact,
.category-icon.kategorie,
.category-icon.rundum{
  background: rgba(255,255,255,0.92);
  color: #0f172a;
  border-color: rgba(15,23,42,0.10);
}

/* ✅ optional: kleiner “modern hover” */
.category-card:hover .category-icon{
  transform: translateY(-2px);
  box-shadow:
    0 14px 34px rgba(15,23,42,0.12),
    inset 0 1px 0 rgba(255,255,255,0.9);
}
.category-icon{
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}


.category-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}

.category-desc {
  font-size: 0.83rem;
  color: var(--slate-400);
  margin-bottom: 1rem;
}

.category-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.category-list li {
  font-size: 0.87rem;
  color: var(--slate-600);
  display: flex;
  align-items: center;
  margin-bottom: 0.55rem;
  transition: color 0.12s ease;
}

.category-list li span.dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--slate-300);
  margin-right: 0.45rem;
  transition: background 0.12s ease;
}

.category-list li:hover {
  color: var(--blue-600);
}

.category-list li:hover span.dot {
  background: var(--blue-600);
}

/* FEATURE SECTION (dunkler Block) */

.feature-section {
  padding: 5rem 0;
  background: var(--bg-slate-900);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.feature-dot-bg {
  position: absolute;
  inset: 0;
  opacity: 0.1;
  background-image: radial-gradient(#4b5563 1px, transparent 1px);
  background-size: 30px 30px;
}

.feature-grid {
  display: grid;
  gap: 3rem;
}

@media (min-width: 768px) {
  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }
}

/* Card / Glas-Effekt für "Unser Versprechen" */
.feature-dark-bg {
  background: radial-gradient(
      circle at top left,
      rgba(255, 255, 255, 0.08),
      transparent
    ),
    rgba(0, 0, 0, 0.7);
  padding: 2.5rem 2rem;
  border-radius: 20px;
  backdrop-filter: blur(8px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

/* Pill / Label oben */
.feature-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* Titel & Text */
.feature-title {
  margin-top: 1rem;
  font-size: 2rem;
  font-weight: 800;
  color: #fff;
}

.feature-text {
  margin-top: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
}

/* Feature-Liste */
.feature-list {
  margin-top: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.feature-item {
  display: flex;
  gap: 0.9rem;
}

.feature-icon {
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.feature-item-title {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.15rem;
  color: #fff;
}

.feature-item-text {
  font-size: 0.9rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
}

/* Hinweistext zur Buchungsmaschine */
.feature-note {
  margin-top: 1.8rem;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
}

/* Feature-Karten-Stack (rechte Seite) */
.feature-card-stack {
  position: relative;
  padding: 0 0.5rem;
}

.feature-card-stack::before,
.feature-card-stack::after {
  content: "";
  position: absolute;
  border-radius: 1.5rem;
  inset: 18px 0;
  background: var(--blue-600);
  opacity: 0.18;
  transform: rotate(6deg);
  z-index: 0;
}

.feature-card-stack::after {
  background: var(--blue-700);
  transform: rotate(-3deg);
  opacity: 0.18;
}

.feature-card {
  position: relative;
  background: #fff;
  color: var(--slate-900);
  border-radius: 1.5rem;
  padding: 2rem 1.8rem;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.5);
  z-index: 1;
  transition: transform 0.25s ease;
}

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

.feature-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--slate-100);
  padding-bottom: 1rem;
  margin-bottom: 1.4rem;
}

.feature-card-header-title {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--slate-400);
  font-weight: 700;
}

.feature-card-header-dest {
  font-size: 1.2rem;
  font-weight: 700;
  margin-top: 0.1rem;
}

.feature-card-header-icon {
  font-size: 1.8rem;
  color: var(--blue-600);
}

.feature-card-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--slate-100);
  border-radius: 1rem;
  padding: 0.85rem 1rem;
  font-size: 0.85rem;
  margin-bottom: 0.7rem;
}

.feature-card-price {
  font-weight: 700;
  color: var(--blue-600);
}

.feature-card-price.free {
  color: var(--green-600);
}

.feature-card-btn {
  width: 100%;
  margin-top: 1.5rem;
  padding: 0.9rem 1rem;
  background: var(--bg-slate-900);
  color: #fff;
  border-radius: 1rem;
  font-weight: 700;
  font-size: 0.9rem;
}

.feature-card-btn:hover {
  background: var(--blue-700);
}

/* Call-to-Action Button hell */
.feature-white-btn {
  display: inline-block;
  margin: 1.5rem 0 2.5rem;
  padding: 0.85rem 1.8rem;
  background: #fff;
  color: #000;
  font-weight: 700;
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.25s ease;
  text-decoration: none;
  border: 2px solid #fff;
}

.feature-white-btn:hover {
  background: transparent;
  color: #fff;
}

/* FOOTER */

.footer {
  background: var(--bg-slate-50);
  border-top: 1px solid var(--slate-200);
  padding-top: 4rem;
  padding-bottom: 2rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.footer-title {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--slate-900);
}

.footer-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.85rem;
  color: var(--slate-500);
}

.footer-list li {
  margin-bottom: 0.45rem;
}

.footer-list a:hover {
  color: var(--blue-600);
}

.footer-contact-icons {
  display: flex;
  gap: 1rem;
  font-size: 1.2rem;
  color: var(--slate-400);
}

.footer-contact-icons span:hover {
  color: var(--blue-600);
  cursor: pointer;
}

.footer-bottom {
  border-top: 1px solid var(--slate-200);
  padding-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  font-size: 0.8rem;
  color: var(--slate-400);
}

@media (min-width: 768px) {
  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

.footer-bottom-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
}

.footer-bottom-links a:hover {
  color: #0f172a;
}

/* CHAT WIDGET */

.chat-widget {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
}

.chat-toggle {
  display: none;
}

.chat-window {
  width: 320px;
  max-width: calc(100vw - 3rem);
  background: #fff;
  border-radius: 1.3rem;
  border: 1px solid var(--slate-200);
  box-shadow: 0 25px 60px rgba(15, 23, 42, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

@media (min-width: 768px) {
  .chat-window {
    width: 380px;
  }
}

.chat-header {
  background: var(--bg-slate-900);
  color: #fff;
  padding: 0.8rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.chat-header-left {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.chat-header-avatar {
  background: var(--logo-blue);
  border-radius: 0.7rem;
  padding: 0.4rem 0.6rem;
  font-size: 1rem;
}

.chat-header-title {
  font-size: 0.8rem;
  font-weight: 700;
}

.chat-header-status {
  font-size: 0.7rem;
  color: var(--slate-400);
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.chat-header-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--green-400);
}

.chat-header-close {
  font-size: 1rem;
  color: var(--slate-400);
  padding: 0.2rem 0.4rem;
  border-radius: 999px;
}

.chat-header-close:hover {
  background: #0f172a;
  color: #fff;
}

.chat-body {
  background: #ffffff;
  padding: 0.75rem;
  height: 280px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

@media (min-width: 768px) {
  .chat-body {
    height: 340px;
  }
}

.chat-message {
  max-width: 85%;
  padding: 0.6rem 0.75rem;
  border-radius: 1.1rem;
  font-size: 0.8rem;
  line-height: 1.5;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.chat-message.assistant {
  background: #fff;
  color: var(--slate-700);
  border: 1px solid var(--slate-100);
  border-bottom-left-radius: 0.2rem;
  align-self: flex-start;
}

.chat-message.user {
  background: var(--logo-blue);
  color: #fff;
  border-bottom-right-radius: 0.2rem;
  align-self: flex-end;
}

.chat-input-wrap {
  border-top: 1px solid var(--slate-100);
  padding: 0.6rem 0.6rem 0.7rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: #fff;
}

.chat-input {
  flex: 1;
  border-radius: 999px;
  border: 1px solid transparent;
  background: var(--slate-100);
  padding: 0.5rem 0.9rem;
  font-size: 0.8rem;
  color: var(--slate-800);
  outline: none;
}

.chat-input::placeholder {
  color: var(--slate-400);
}

.chat-input:focus {
  border-color: #bfdbfe;
  box-shadow: 0 0 0 2px #dbeafe;
  background: #fff;
}

.chat-send-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: var(--blue-600);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  box-shadow: 0 12px 24px rgba(37, 99, 235, 0.3);
}

.chat-send-btn:hover {
  background: var(--blue-700);
}

.chat-fab {
  position: relative;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: var(--bg-slate-900);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.5);
  transition: transform 0.15s ease, background 0.15s ease;
}

.chat-fab:hover {
  transform: scale(1.05);
  background: #020617;
}

.chat-fab-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--logo-blue);
}

.chat-fab-badge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--logo-blue);
  animation: ping 1.3s infinite;
  opacity: 0.75;
}

/* toggle states */
#chat-toggle:checked ~ .chat-window {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

#chat-toggle:checked ~ label.chat-fab {
  transform: rotate(90deg);
  background: #1f2937;
  color: var(--slate-300);
}

#chat-toggle:checked ~ label.chat-fab .chat-fab-badge {
  display: none;
}

/* SOCIAL BAR – Desktop rechts unten */

.social-bar {
  position: fixed;
  bottom: 24px;
  right: 24px;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  z-index: 50;
}

.social-bar a {
  text-decoration: none;
}

.social-item {
  width: 64px;
  height: 64px;
  border-radius: 999px;
  background: var(--blue-600);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.35);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.social-item img {
  width: 60%;
  height: 60%;
  object-fit: contain;
  display: block;
}

.social-item:hover {
  transform: translateY(-3px) scale(1.05);
  background: var(--blue-700);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.45);
}

/* Iframes */
.booking-iframe {
  width: 100%;
  min-height: 80vh;
  border: none;
}

/* ================================
   EMBED – GLEICH WIE ANGEBOTE.PHP
   ================================ */

.embed-wrap{
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}

.embed-frame{
  width: 100%;
  border: 0;
  display: block;
  background: #fff;

  /* ✅ IDENTISCH ZU ANGEBOTE.PHP */
  height: 640px;        /* <- fester, sauberer Wert */
  overflow: auto;       /* internes Scrollen OK */
}

/* Mobile */
@media (max-width: 768px){
  .embed-frame{
    height: 720px;
  }
}


/* ========= AGB / SEITENINHALT ========= */

.section.page-content {
  padding: 2rem 0 3rem;
}

.section.page-content .container {
  background: #fff;
  border-radius: 1rem;
  padding: 1.75rem 1.5rem 2.5rem;
}

@media (max-width: 768px){
  .section.page-content .container{
    padding: 1.25rem 1.0rem 2rem;
  }
}

.section.page-content h1 {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: var(--slate-900);
}

.section.page-content h2 {
  font-size: 1.4rem;
  margin-top: 2rem;
  margin-bottom: 0.6rem;
}

.section.page-content h3 {
  font-size: 1.05rem;
  margin-top: 1.2rem;
  margin-bottom: 0.4rem;
}

.section.page-content p {
  margin-bottom: 0.7rem;
  max-width: 70ch;
  font-size: 0.95rem;
  color: var(--slate-700);
}

/* ========= NEWSLETTER ========= */

/* ---------- Newsletter Hero ---------- */
.hero-newsletter {
  background: #ffffff;
  padding: 3.5rem 0 3rem;
}

.hero-newsletter-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 2.5rem;
  align-items: stretch;
}

.hero-newsletter-left .hero-title {
  font-size: 2.3rem;
  margin-bottom: 0.75rem;
}

.hero-newsletter-subtitle {
  max-width: 36rem;
  font-size: 1rem;
  line-height: 1.6;
}

.hero-newsletter-highlights {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  font-size: 0.95rem;
}

.hero-newsletter-highlights li + li {
  margin-top: 0.4rem;
}

/* ---------- Formularkarte ---------- */
.feature-card-newsletter {
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
  padding: 1.6rem 1.6rem 1.9rem;
}

.feature-card-row-column {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 0.9rem;
}

.newsletter-form input,
.newsletter-form select {
  width: 100%;
}

.newsletter-step-label {
  margin-top: 0.3rem;
  margin-bottom: 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #4b5563;
}

.newsletter-step-text {
  font-size: 0.85rem;
  margin-bottom: 0.7rem;
}

/* Erfolg/Fehler */
.newsletter-message {
  margin-bottom: 0.9rem;
  font-size: 0.9rem;
  padding: 0.7rem 0.9rem;
  border-radius: 8px;
}

.newsletter-message-success {
  background: #ecfdf3;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.newsletter-message-error {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.newsletter-consent {
  font-size: 0.82rem;
  margin: 0.8rem 0 1rem;
}

.newsletter-consent input {
  margin-right: 0.35rem;
}

.newsletter-submit-btn {
  width: 100%;
  margin-bottom: 0.5rem;
}

.newsletter-hint {
  font-size: 0.78rem;
  opacity: 0.8;
}

/* ---------- Interessen-Karten ---------- */
.newsletter-interests {
  margin-top: 0.4rem;
  margin-bottom: 1.2rem;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  padding: 0.9rem 0.9rem 1rem;
}

.newsletter-interests-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.newsletter-interests-header span {
  color: #111827;
}

.interest-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.6rem;
}

.interest-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #ffffff;
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.interest-card:hover {
  border-color: #0284c7;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.interest-card-content {
  flex: 1;
}

.interest-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.15rem;
  color: #111827;
}

.interest-card-desc {
  font-size: 0.8rem;
  line-height: 1.5;
  color: #4b5563;
}

.interest-card-checkbox {
  margin-left: 0.6rem;
  margin-top: 0.15rem;
}

.interest-card-checkbox input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
}

/* ---------- Vorteile / Ablauf ---------- */
.newsletter-benefits {
  padding-top: 3rem;
}

.newsletter-benefits-header {
  max-width: 40rem;
  margin-bottom: 2rem;
}

.newsletter-benefits-grid {
  align-items: flex-start;
}

.newsletter-steps-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 1.4rem 1.6rem;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
  font-size: 0.95rem;
}

.newsletter-steps-list {
  margin: 0.6rem 0 1rem;
  padding-left: 1.2rem;
}

.newsletter-steps-list li + li {
  margin-top: 0.6rem;
}

.newsletter-steps-note {
  font-size: 0.8rem;
  opacity: 0.85;
}

/* FAQ-Block */
.newsletter-faq {
  padding-top: 2.5rem;
}

/* ---------- Mobile Anpassungen ---------- */

@media (max-width: 768px) {
  .section.page-content {
    padding: 1.5rem 0 2.5rem;
  }

  .section.page-content .container {
    padding: 1.25rem 1rem 2rem;
    border-radius: 0.75rem;
  }

  .section.page-content h1 {
    font-size: 1.6rem;
  }

  .section.page-content h2 {
    font-size: 1.25rem;
  }

  .section.page-content p {
    font-size: 0.9rem;
  }

  .footer-bottom {
    align-items: flex-start;
  }

  /* Social-Bar mobil zentriert, horizontal – kein Konflikt mit Chat */
  .social-bar {
    position: static;
    bottom: auto;
    right: auto;
    margin: 1.5rem auto 0;
    flex-direction: row;
    justify-content: center;
  }

  .social-item {
    width: 52px;
    height: 52px;
  }

  /* Chat-Widget: leicht nach innen, Fenster fast volle Breite */
  .chat-widget {
    left: 12px;
    bottom: 16px;
  }

  .chat-window {
    width: 100vw;
    max-width: calc(100vw - 2rem);
  }

  .container {
    padding: 0 1rem;
  }

  .feature-dark-bg {
    padding: 1.8rem 1.4rem;
    margin-bottom: 1.5rem;
  }

  .feature-title {
    font-size: 1.5rem;
  }

  .feature-item {
    align-items: flex-start;
  }

  .hero-newsletter-inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-newsletter-right {
    order: -1; /* Formular zuerst anzeigen */
  }

  .feature-card-newsletter {
    margin-bottom: 1.5rem;
  }

  .footer-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (min-width: 700px) {
  .interest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ANIMATIONS */

@keyframes pulse-slow {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.6;
  }
}

@keyframes blob {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  33% {
    transform: translate(20px, -15px) scale(1.1);
  }
  66% {
    transform: translate(-15px, 25px) scale(0.95);
  }
}

@keyframes ping {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

/* =========================================================
   ✅ NUR-ZUSATZ: LOGO GRÖSSER + BURGER-MENÜ (NAV ONLY)
   (keine anderen Seiten betroffen)
   ========================================================= */

/* LOGO überall größer (überschreibt nur Logo-Regeln) */
.nav-logo-img{
  height: clamp(130px, 10vw, 190px);
  width: auto;
  object-fit: contain;
}
.nav-logo-img1{
  height: clamp(130px, 30vw, 190px);
  width: auto;
  object-fit: contain;
}

/* Burger Button (wird nur genutzt wenn du ihn im HTML einfügst) */
.nav-toggle{
  display:none;
  width:46px;
  height:46px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--slate-200);
  box-shadow:0 6px 20px rgba(15,23,42,.08);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  -webkit-tap-highlight-color: transparent;
}

.burger{
  width:22px;
  height:16px;
  position:relative;
}
.burger span{
  position:absolute;
  left:0;
  width:22px;
  height:2px;
  background:#111827;
  border-radius:999px;
  transition: transform .2s ease, top .2s ease, opacity .2s ease;
}
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ top:7px; }
.burger span:nth-child(3){ top:14px; }

/* Burger -> X (wenn .nav.is-open gesetzt ist) */
.nav.is-open .burger span:nth-child(1){ top:7px; transform:rotate(45deg); }
.nav.is-open .burger span:nth-child(2){ opacity:0; }
.nav.is-open .burger span:nth-child(3){ top:7px; transform:rotate(-45deg); }

/* Mobile: Links als Panel statt in einer Zeile */
@media (max-width: 1023px){

  /* Burger anzeigen */
  .nav-toggle{ display:inline-flex; }

  /* NAV oben: nur für Mobile stabil machen */
  .nav-inner{
    display:grid;
    grid-template-columns: 1fr auto;
    align-items:center;
    gap: .75rem;
  }

  /* Die alte mobile-Regel (flex-direction:column) bleibt zwar im CSS,
     aber Grid überschreibt sie nur für die NAV – Rest der Seite bleibt gleich. */

  /* nav-links im geschlossenen Zustand aus */
  .nav-links{
    display:none !important;
    grid-column: 1 / -1;
    width:100%;
    margin-top:.5rem;
    background:#fff;
    border:1px solid var(--slate-200);
    border-radius:16px;
    padding:12px;
    box-shadow:0 18px 50px rgba(15,23,42,.10);
    flex-direction:column;
    gap:8px;
  }

  /* offen */
  .nav.is-open .nav-links{
    display:flex !important;
  }

  /* Touch-freundlich */
  .nav-links a{
    padding:12px 14px;
    border-radius:12px;
    background:#fff;
    border:1px solid var(--slate-100);
    font-size:.95rem;
  }

  .nav-links .nav-button{
    width:100%;
    justify-content:center;
  }

  /* Login-Dropdown mobil stabil (nur innerhalb der NAV) */
  .login-dropdown{
    position: static !important;
    width: 100%;
    margin-top: 6px;
    box-shadow: none;
    border-radius: 12px;
  }
  .login-dropdown::before{ display:none; }
}
/* ===== Chatbot Fix (alle Seiten): Checkbox wirklich unsichtbar ===== */
#chat-toggle,
.chat-widget input[type="checkbox"]{
  position: fixed !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

/* Optional: sorgt dafür, dass Chat immer über dem iFrame liegt */
.chat-widget{
  position: fixed !important;
  z-index: 99999 !important;
}

/* ===== EMBED FIX (Mobile bedienbar) ===== */
.embed-wrap{
  position: relative;
  max-width: 100%;

  /* ✅ GEÄNDERT: keine optische Umrandung mehr */
  background: transparent;
  border-radius: 0;
  overflow: visible;
  border: 0;
  box-shadow: none;
}

/* ===== iFrame: KEIN innerer Scrollbar (so gut wie möglich) + sinnvolle Höhen ===== */
.embed-frame{
  width: 100%;
  display: block;
  border: 0;
  overflow: hidden;         /* verhindert optische Scrollbars wo möglich */
  min-height: 85vh;         /* Fallback statt riesiger px-Werte */
}

@media (max-width: 768px){
  .embed-frame{
    min-height: 88vh;       /* Mobile: kein leerer Platz */
  }
}


/* große Screens etwas kompakter */
@media (min-width: 1200px){
  .embed-frame{
    min-height: 2000px;
  }
}
/* ===== FIX: iFrame muss auf Mobile klickbar sein (Cookie-Banner etc.) ===== */
.embed-wrap,
.embed-frame{
  pointer-events: auto !important;
}

.embed-frame{
  touch-action: manipulation !important; /* bessere Touch-Klicks */
}
/* ===== BLOG: "Weitere Blogbeiträge" Button auf Smartphone fix ===== */
@media (max-width: 520px){

  /* Kopfbereich sauber umbrechen */
  .ext-head{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  /* Button-Container volle Breite */
  .ext-head > div:last-child{
    width: 100%;
  }

  /* Button selbst: volle Breite, gut klickbar, kein abgeschnittenes Layout */
  .btn-small{
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 0.95rem;
    line-height: 1.1;
    white-space: nowrap;
  }
}

/* FIX: Chat-Overlay blockiert sonst Footer-Klicks */
.chat-widget{
  pointer-events: none;          /* Wrapper fängt keine Klicks ab */
}

/* Diese Teile vom Chat bleiben klickbar */
.chat-widget .chat-fab,
.chat-widget .chat-window,
.chat-widget .chat-header-close,
.chat-widget .chat-send-btn,
.chat-widget .chat-input{
  pointer-events: auto;
}

/* Wenn Chat geschlossen ist, soll das (unsichtbare) Fenster keine Klicks fangen */
.chat-toggle:not(:checked) ~ .chat-window{
  pointer-events: none;
}

.press-card{
  display:block;
  text-decoration:none;
  color:inherit;
}
.press-card:active{
  transform: translateY(0); /* mobile tap fühlt sich stabil an */
}
/* ✅ SAFE FIX: Nur Deko-Layer dürfen keine Klicks blocken */
.hero-bg-gradient,
.hero-blob{
  pointer-events: none !important;
}

/* ✅ Presse-Kacheln auf Mobile immer sauber klickbar */
.press-card{
  display: block;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

/* Wenn Chat vorhanden ist: geschlossen darf er NICHT klicken blocken */
.chat-toggle:not(:checked) ~ .chat-window{
  pointer-events: none !important;
}

/* ✅ FIX: Presse-Karten müssen über allem liegen + klickbar sein */
.category-grid {
  position: relative;
  z-index: 5;
}

a.category-card,
a.category-card * {
  pointer-events: auto !important;
}

a.category-card {
  display: block;            /* wichtig: ganze Karte klickbar */
  position: relative;
  z-index: 6;                /* über evtl. Overlays */
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* ✅ Falls ein unsichtbarer Overlay drüber liegt: alles was "deko" ist darf nie klicken blocken */
.hero-bg-gradient,
.hero-blob {
  pointer-events: none !important;
}
.category-card-link{
  display:block;
  color: inherit;
  text-decoration:none;
}
.category-card-link:focus{
  outline: 3px solid rgba(0,113,206,.35);
  outline-offset: 6px;
  border-radius: 12px;
}
.category-card-link:hover .category-card{
  transform: translateY(-2px);
}
/* =========================================================
   HEADER: mehr Platz nutzen (weiße Ränder links/rechts)
   ========================================================= */

/* Nur der Header-Container wird breiter */
.nav .container{
  max-width: 1400px;   /* vorher wahrscheinlich ~1100/1200 */
  width: 100%;
  padding-left: 28px;
  padding-right: 28px;
}

/* Auf sehr großen Screens noch mehr Luft */
@media (min-width: 1600px){
  .nav .container{
    max-width: 1600px;
  }
}
/* =========================================================
   MOBILE NAV: Menü soll scrollen, damit "Mein Profil" sichtbar bleibt
   ========================================================= */
@media (max-width: 1023px){
  /* wenn dein Burger-Menü über .nav.is-open gesteuert wird */
  .nav.is-open .nav-links{
    max-height: calc(100vh - 120px); /* Platz für Header */
    overflow-y: auto;                /* wichtig: scrollen statt abschneiden */
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;            /* damit letzter Punkt nicht "klebt" */
  }

  /* optional: Links & Buttons im Menü wie Buttons untereinander */
  .nav.is-open .nav-links a{
    display: block;
  }
}
/* =========================================================
   USER PROFILE: Mobile Padding + Layout
   ========================================================= */
.profile-container{
  padding: 30px 0;
}

/* Handy: links/rechts Rand */
@media (max-width: 768px){
  .profile-container{
    padding-left: 16px;
    padding-right: 16px;
  }
}
/* =========================================================
   USER PROFILE – Mobile Fix (rechte Spalte unter Inhalt)
   ========================================================= */
@media (max-width: 768px){

  /* Card Layout: von Row -> Column */
  .booking-row{
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Rechte Spalte volle Breite */
  .booking-actions{
    width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
    margin-top: 12px;
  }

  /* Status + Icons links ausrichten */
  .booking-actions .row-right{
    justify-content: flex-start !important;
  }

  /* Stornieren Button sauber untereinander */
  .booking-actions form{
    width: 100%;
  }

  .booking-actions button{
    width: 100% !important;
  }
}

/* ===== Mobile Menü: Mein Profil wie normale Links ===== */
@media (max-width: 768px){

  .nav-link-mobile{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:14px 18px;
    border-radius:999px;
    font-size:1rem;
    font-weight:600;
    color:#475569;
    background:#ffffff;
    border:1px solid #e2e8f0;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(15,23,42,0.08);
  }

  .nav-link-mobile:hover{
    background:#f8fafc;
  }

}

/* =========================================================
   ✅ USER PROFILE – Booking Cards: einheitliches Design
   Voraussetzung: beide Karten haben .booking-card und innen .booking-row
   (falls eine Karte die Klasse nicht hat: im HTML hinzufügen)
   ========================================================= */

:root{
  --card-bg: #fff;
  --card-bd: #e2e8f0;
  --card-shadow: 0 12px 30px rgba(15,23,42,.08);
  --muted: #64748b;
  --title: #0f172a;
}

/* Card-Wrapper: beide Buchungen identisch */
.booking-card{
  background: var(--card-bg);
  border: 1px solid var(--card-bd);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
  padding: 16px 18px;
  margin: 16px 0;
}

/* Row-Layout: links Inhalt, rechts Aktionen */
.booking-row{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

/* Linker Content-Block (Text) */
.booking-main{
  flex: 1 1 auto;
  min-width: 0;
}

/* Kleine Labels wie "Buchungsnummer" */
.booking-label{
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 4px;
}

/* Buchungsnummer/Headline */
.booking-id{
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--title);
  margin: 0 0 10px;
  line-height: 1.2;
}

/* Standard-Textzeilen */
.booking-line{
  font-size: .92rem;
  color: #334155;
  line-height: 1.45;
  margin: 4px 0;
}

/* Sekundärinfos (IBAN/BIC etc) dezenter */
.booking-meta{
  font-size: .86rem;
  color: var(--muted);
  margin-top: 8px;
}

/* Rechter Block (Status + Icons + Button) */
.booking-actions{
  flex: 0 0 220px;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

/* Status als Pill (statt normaler Text) */
.booking-status{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

/* optional, falls du auch andere Status hast */
.booking-status.is-cancelled{
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

/* Icon-Reihe rechts (Stift/Mülleimer) */
.booking-actions-icons{
  display: inline-flex;
  gap: 10px;
  align-items: center;
}
.booking-actions-icons a,
.booking-actions-icons button{
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--card-bd);
  background: #fff;
  box-shadow: 0 8px 18px rgba(15,23,42,.06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.booking-actions-icons a:hover,
.booking-actions-icons button:hover{
  transform: translateY(-1px);
}

/* Stornieren Button: einheitlich */
.booking-cancel-btn,
.booking-actions button[type="submit"]{
  width: 100%;
  height: 42px;
  border-radius: 999px;
  font-weight: 800;
  background: #ef4444;
  color: #fff;
  box-shadow: 0 14px 26px rgba(239,68,68,.25);
}
.booking-cancel-btn:hover,
.booking-actions button[type="submit"]:hover{
  filter: brightness(.95);
  transform: translateY(-1px);
}

/* Mobile: alles untereinander, rechts-block volle Breite */
@media (max-width: 768px){
  .booking-card{ padding: 14px 14px; }
  .booking-row{ flex-direction: column; }
  .booking-actions{
    width: 100%;
    min-width: 0;
    align-items: stretch;
  }
  .booking-status{ align-self: flex-start; }
}

/* =========================================================
   ✅ FINAL – MOBILE LOGO GRÖSSER (SAFE FIX)
   - gilt für ALLE Seiten
   - bricht kein bestehendes Layout
   ========================================================= */

@media (max-width: 768px){

  /* ===============================
     Unterseiten (page-sub)
     =============================== */
  body.page-sub .nav-logo-img{
    height: 150px !important;     /* 🔧 Wunschgröße: 100 / 110 / 120 / 140 */
    width: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    transform: none !important;   /* entfernt translateX(-20px) */
  }

  /* ===============================
     Startseite (page-home)
     =============================== */
  body.page-home .nav-logo-img{
    height: 150px !important;
    width: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    transform: none !important;
  }

  /* Falls Startseite ein eigenes Logo nutzt */
  body.page-home .nav-logo-img1{
    height: 150px !important;
    width: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    transform: none !important;   /* entfernt translateX(-90px) */
  }

  /* Sauberes Alignment */
  .nav-logo a{
    display: inline-flex;
    align-items: center;
  }
}
/* =========================================================
   ✅ FINAL FIX: Logo links + Größen (Startseite größer)
   - Mobile/Tablet bis 1023px
   - überschreibt NUR die NAV/Logo-Regeln (safe)
   ========================================================= */

@media (max-width: 1023px){

  /* weniger Rand links/rechts im Header */
  .nav .container{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Header: Logo links, Burger rechts (nicht mehr untereinander) */
  .nav-inner{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
  }

  /* Logo wirklich links */
  .nav-logo{
    justify-content: flex-start !important;
    margin-right: auto !important;
  }

  /* alle alten Verschiebungen killen */
  .nav-logo-img,
  .nav-logo-img1{
    transform: none !important;
    margin-left: 0 !important;
  }

  /* STARTSEITE: größer */
  body.page-home .nav-logo-img,
  body.page-home .nav-logo-img1{
    height: 140px !important; /* wenn zu groß: 110px */
    width: auto !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  /* UNTERSEITEN: etwas kleiner als Startseite */
  body:not(.page-home) .nav-logo-img{
    height: 160px !important; /* wenn zu klein: 100-105px */
    width: auto !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  /* Links im Header sollen auf Mobile NICHT als Reihe erscheinen (Burger übernimmt das) */
  .nav-links{
    display: none !important;
  }

  /* Burger rechts */
  .nav-toggle{
    display: inline-flex !important;
    margin-left: auto !important;
  }
}

/* =========================================================
   ✅ ANGEBOTE.PHP – Externer Buchungsbereich breiter & größer
   ========================================================= */

/* Nur Angebote-Seite */
body.page-angebote .section > .container{
  max-width: 1400px;          /* breiter als Standard */
  padding-left: 16px;
  padding-right: 16px;
}

/* iframe-Wrapper nutzt volle Breite */
body.page-angebote .embed-wrap{
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;

  /* ✅ GEÄNDERT: keine Card-Optik */
  border-radius: 0;
}

/* iframe selbst größer wirken lassen */
body.page-angebote .embed-frame{
  width: 100%;
  min-height: 85vh;           /* Desktop */
}

/* ===============================
   MOBILE: fast volle Bildschirmbreite
   =============================== */
@media (max-width: 768px){

  body.page-angebote .section > .container{
    max-width: 100%;
    padding-left: 8px;        /* 🔥 deutlich weniger Rand */
    padding-right: 8px;
  }

  body.page-angebote .embed-frame{
    min-height: 90vh;         /* größerer sichtbarer Bereich */
  }
}

/* ===============================
   SEHR GROSSE SCREENS
   =============================== */
@media (min-width: 1600px){
  body.page-angebote .section > .container{
    max-width: 1600px;
  }
}
body.page-angebote .section{
  padding-top: 1rem;
}

/* =========================================================
   ✅ ANGEBOTE: Externes Buchungssystem VOLLE BREITE
   - exakt unter Logo / Suche / Anmelden
   ========================================================= */

/* Container auf Angebote-Seite aufheben */
.container-full{
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Inhalt leicht nach unten */
.section-full{
  padding-top: 1.5rem;
}

/* iframe-Wrapper: volle Breite */
.section-full .embed-wrap{
  max-width: 100% !important;
  margin: 0 !important;

  /* ✅ GEÄNDERT: randlos */
  border-radius: 0 !important;
  border-left: 0;
  border-right: 0;
  box-shadow: none !important;
  border: 0 !important;
  background: transparent !important;
}

/* iframe selbst */
.section-full .embed-frame{
  width: 100% !important;
  min-height: 88vh;
  background: transparent !important;
}

/* Desktop sehr groß */
@media (min-width: 1400px){
  .section-full .embed-frame{
    min-height: 92vh;
  }
}

/* Mobile: wirklich randlos */
@media (max-width: 768px){
  .section-full{
    padding-top: 0.5rem;
  }

  .section-full .embed-frame{
    min-height: 94vh;
  }
}
/* =========================================================
   ✅ ANGEBOTE: Titel unter Logo + iFrame Full Width
   ========================================================= */

.angebote-intro{
  padding-top: 1.4rem;
  padding-bottom: 0.8rem;
}

/* iFrame-Container auf Angebote-Seite randlos */
.container-full{
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Embed-Block: keine optische Einengung */
.angebote-embed .embed-wrap{
  max-width: 100% !important;
  margin: 0 !important;

  /* ✅ GEÄNDERT: ohne Card */
  border-radius: 0 !important;
  box-shadow: none !important;
  border: 0 !important;
  background: transparent !important;
  border-left: 0 !important;
  border-right: 0 !important;
}

.angebote-embed .embed-frame{
  width: 100% !important;
  min-height: 88vh;
  background: transparent !important;
}

@media (max-width: 768px){
  .angebote-intro{
    padding-top: 0.8rem;
    padding-bottom: 0.6rem;
  }
  .angebote-embed .embed-frame{
    min-height: 94vh;
  }
}
/* =========================================================
   ✅ PIXEL-FIX: Logo & Angebote-Text exakt links bündig
   ========================================================= */

/* Gemeinsame linke Kante definieren */
:root{
  --content-left: 20px; /* 🔧 EIN Wert für alles */
}

/* HEADER: Logo & Navigation weiter nach links */
.nav .container{
  padding-left: var(--content-left) !important;
}

/* ANGEBOTE: Titel + Text exakt unter Logo */
.angebote-intro{
  padding-left: var(--content-left) !important;
  padding-right: var(--content-left) !important;
}

/* Mobile: etwas enger */
@media (max-width: 768px){
  :root{
    --content-left: 16px;
  }
}
/* =========================================================
   ✅ FEINJUSTIERUNG: NUR LOGO minimal nach links
   - Text & Content-Kante bleiben unverändert
   ========================================================= */

/* Desktop & Tablet */
.nav-logo{
  margin-left: -50px;   /* 🔧 Wert anpassen: -8px / -12px / -16px */
}

/* Mobile etwas weniger */
@media (max-width: 768px){
  .nav-logo{
    margin-left: -30px;
  }
}
/* ================================
   EMBED: wirklich NICHT "extern" aussehen
   -> kein Rahmen, kein Schatten, keine Rundung, kein Abstand
   ================================ */

/* Wrapper/Section ohne Hintergrund-Trennung */
.section-full,
.angebote-embed,
.section-full .container,
.angebote-embed .container,
.container-full{
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Embed-Card komplett neutralisieren */
.embed-wrap{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* iFrame ohne Rand & ohne extra spacing */
.embed-frame,
.embed-wrap iframe{
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  outline: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Wenn du "volle Browserbreite" willst (auch außerhalb .container) */
.embed-fullbleed{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
/* =========================================================
   FULL BLEED EMBED (keine Seitenränder)
   ========================================================= */

/* iFrame-Section ohne Padding/Margin */
.section.angebote-embed{
  padding: 0 !important;
  margin: 0 !important;
}

/* Wrapper komplett neutralisieren */
.angebote-embed .embed-wrap{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Full-bleed: exakt Browserbreite */
.embed-fullbleed{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* iFrame selbst */
.angebote-embed .embed-frame,
.angebote-embed iframe{
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  min-height: 92vh; /* Desktop */
}

/* Mobile: mehr Höhe */
@media (max-width: 768px){
  .angebote-embed .embed-frame,
  .angebote-embed iframe{
    min-height: 94vh;
  }
}
/* =========================================================
   ANGEBOTE: iFrame ohne Seitenränder + ohne "externen Rahmen"
   (Header/Titel bleiben wie sie sind)
   ========================================================= */

/* Wrapper neutralisieren: keine Umrandung/Shadow/Round */
.embed-wrap.embed-fullbleed{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  padding: 0 !important;
}

/* Full-bleed (nimmt die Container-Ränder nur für den Embed weg) */
.embed-wrap.embed-fullbleed{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* iFrame selbst: kein Rand */
.embed-wrap.embed-fullbleed .embed-frame,
.embed-wrap.embed-fullbleed iframe{
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
/* =========================================
   ANGEBOTE: iFrame exakt so breit wie Text
   ========================================= */
  body.page-angebote .section .container{
  max-width: 1400px;
}

/* embed-wrap: keine extra Polster/Rahmen, damit es bündig ist */
body.page-angebote .embed-wrap{
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-radius: 16px;         /* kannst du lassen oder kleiner machen */
  border: 0 !important;        /* nimmt die Umrandung weg */
  box-shadow: none !important; /* nimmt den "externen" Card-Look weg */
  background: transparent !important;
  overflow: hidden;
}

/* iframe selber: volle Breite vom Container */
body.page-angebote .embed-frame{
  width: 100% !important;
  display: block;
  border: 0 !important;
}

/* Erzwingt identische linke Kante */
.section-embed-align .embed-wrap{
  margin-left: 0;
  margin-right: 0;
}

/* iframe exakt so breit wie Überschrift */
.section-embed-align .embed-frame{
  width: 100%;
  display: block;
}
/* =========================
   MOBILE OPTIMIERUNG (Drop-in)
   ========================= */

/* bessere Umbrüche bei langen Strings (IBAN, Buchungsnr etc.) */
.card, .card * {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* kleine Smartphones */
@media (max-width: 640px) {

  /* Container nicht zu eng */
  .container.profile-container {
    padding-left: 14px;
    padding-right: 14px;
  }

  /* Kopfbereich: Button unter Text, voll breit */
  .top-row {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .top-row .btn-primary {
    width: 100%;
    justify-content: center;
  }

  /* Booking Card Layout:
     Die 2-Spalten-Flexbox in deiner Card wird gestackt */
  .card > div[style*="display:flex"][style*="justify-content:space-between"] {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  /* rechte Spalte (Status + Actions) unter den Details */
  .card div[style*="text-align:right"][style*="min-width:180px"] {
    text-align: left !important;
    min-width: 0 !important;
    width: 100% !important;
    border-top: 1px solid #eef2f7;
    padding-top: 12px;
  }

  /* Action-Row: größer, leichter zu tippen */
  .row-right {
    justify-content: flex-start !important;
    gap: 10px;
  }
  .icon-btn {
    padding: 10px 12px;
    font-size: 18px;
    border-radius: 12px;
    background: rgba(0,0,0,0.04);
  }

  /* Stornieren-Button bleibt full width, aber etwas größer */
  .card form button[type="submit"] {
    padding: 0.6rem 0.9rem !important;
    font-size: 0.9rem !important;
  }

  /* Textgrößen minimal harmonisieren */
  h1 { font-size: 1.35rem; line-height: 1.2; }
  h2 { font-size: 1.1rem; }

  /* Footer Links: umbrechen statt zu quetschen */
  .footer-bottom {
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
  }
  .footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
  }
}
.nav { position: relative; }

.nav-burger{
  display:none;
  border:0;
  background:transparent;
  padding:10px;
  border-radius:12px;
  cursor:pointer;
}
.nav-burger span{
  display:block;
  width:26px;
  height:2px;
  background:#111;
  margin:6px 0;
  border-radius:999px;
}

.nav-logout{ margin-left:1rem; font-size:0.85rem; }

@media (max-width: 900px){
  .nav-burger{ display:inline-flex; flex-direction:column; }

  .nav-links{
    display:none;
    position:absolute;
    left:0; right:0;
    top:64px;                 /* ggf. anpassen */
    background:#fff;
    border-top:1px solid #e2e8f0;
    padding:12px 16px;
    z-index:1000;
  }
  .nav-links.is-open{ display:flex; flex-direction:column; gap:10px; }

  .nav-links a{ padding:10px 8px; border-radius:10px; }
  .nav-links a:hover{ background:rgba(0,0,0,0.04); }

  .nav-logout{ margin-left:0; font-size:1rem; }
}
/* =========================================
   ✅ SMARTPHONE OPTIMIERUNG (Profil)
   ========================================= */
@media (max-width: 520px){

  /* Container etwas enger */
  .container.profile-container{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Top-Zeile: Button unter den Text */
  .top-row{
    flex-direction: column;
    align-items: flex-start;
  }
  .top-row .btn-primary{
    width: 100%;
    justify-content: center;
    margin-top: 10px;
  }

  /* Karten: weniger Innenabstand */
  .card{
    padding: 0.9rem 0.95rem;
  }

  /* WICHTIG: Rechte Spalte (Status/Buttons) darf nicht min-width 180px erzwingen */
  .card > div{
    flex-direction: column;
    align-items: flex-start;
  }

  /* Diese Regel greift auf deinen inneren Wrapper:
     <div style="display:flex; justify-content:space-between..."> */
  .card div[style*="justify-content:space-between"]{
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Status/Actions Block: volle Breite statt rechts */
  .card div[style*="text-align:right"]{
    text-align: left !important;
    min-width: 0 !important;
    width: 100% !important;
    margin-top: 10px;
  }

  /* Icon-Buttons: etwas größer für Touch */
  .icon-btn{
    font-size: 20px;
    padding: 10px 12px;
  }

  /* Row-right: Buttons links ausrichten, mehr Platz */
  .row-right{
    justify-content: flex-start;
    gap: 10px;
  }

  /* Stornieren Button: mehr Höhe */
  .card button[type="submit"]{
    min-height: 44px;
  }

  /* Mobile Menü Panel: etwas näher nach oben, falls Header höher ist */
  .nav-panel{
    top: 104px; /* bei sehr kleinen Geräten wirkt 92px manchmal zu knapp */
  }

  /* Suchfeld: größerer Tap Bereich */
  .nav-search-input{
    height: 46px;
  }
}
