/* ============================================================
   Air Mastery — Klaro Custom Styling (Edel + Mobile-flat)
   Premium Floating-Chip unten rechts, Glas-Effekt, refined Typography.
   ============================================================ */

/* ===== Klaro-Variablen — Air-Mastery-Farben ===== */
.klaro {
  --background-color: #0B0F1A;
  --background-color-secondary: #141929;
  --background-color-secondary-hover: #1d2336;
  --button-text-color: #ffffff;
  --button-background-color: #306FD5;
  --button-background-color-hover: #5B93E8;
  --green1: #306FD5;
  --green2: #5B93E8;
  --green3: #306FD5;
  --text-color: #F0F4FF;
  --text-color-secondary: #8B97B8;
  --font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --border-radius: 14px;
  font-size: 13px;
}

/* ===== Cookie-Notice — Premium-Glass-Look ===== */
.klaro .cookie-notice {
  position: fixed !important;
  right: 18px !important;
  bottom: 18px !important;
  left: auto !important;
  width: 320px !important;
  max-width: calc(100vw - 36px) !important;

  /* Premium Glass-Background: subtiler Gradient + starkes Blur */
  background:
    linear-gradient(160deg, rgba(20, 25, 41, 0.92) 0%, rgba(11, 15, 26, 0.94) 100%) !important;
  backdrop-filter: blur(32px) saturate(160%);
  -webkit-backdrop-filter: blur(32px) saturate(160%);

  /* Edler Border-Stack: außen subtle Highlight, innen feines Linework */
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 16px !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.05) inset,
    0 20px 50px -10px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(48, 111, 213, 0.06) !important;

  padding: 14px 16px 12px !important;
  z-index: 99999 !important;
  font-family: 'Inter', sans-serif !important;
  /* explizit sichtbar — keine Animation die hängen kann */
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  display: block !important;
}

/* Title weglassen — kein Header-Bloat */
.klaro .cookie-notice .cn-title { display: none !important; }
.klaro .cookie-notice .cn-body  { margin: 0 !important; padding: 0 !important; }

/* Text */
.klaro .cookie-notice .cn-body p,
.klaro .cookie-notice .cn-body .cn-changes,
.klaro .cookie-notice .cn-body .cn-ok > p {
  color: #C5CDE0 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.005em !important;
  margin: 0 0 11px 0 !important;
  padding: 0 !important;
}
.klaro .cookie-notice .cn-body p a {
  color: #7CB1FF !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(124, 177, 255, 0.3);
  padding-bottom: 0.5px;
  transition: border-color 0.15s ease;
}
.klaro .cookie-notice .cn-body p a:hover {
  border-bottom-color: rgba(124, 177, 255, 1);
}

/* Button-Row */
.klaro .cookie-notice .cn-body .cn-ok,
.klaro .cookie-notice .cn-ok {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
}
.klaro .cookie-notice .cn-buttons,
.klaro .cookie-notice .cm-buttons {
  display: flex !important;
  gap: 7px !important;
  flex: 1 1 100%;
  justify-content: flex-end;
}

/* Buttons — basis */
.klaro .cookie-notice .cm-btn,
.klaro .cookie-notice .cm-btn.cm-btn-success,
.klaro .cookie-notice button.cm-btn {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  padding: 7px 13px !important;
  border-radius: 9px !important;
  border: none !important;
  cursor: pointer !important;
  transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: -0.01em;
  line-height: 1;
}

/* Primary (Alle akzeptieren) — refined gradient */
.klaro .cookie-notice .cm-btn-success,
.klaro .cookie-notice .cm-btn-accept-all,
.klaro .cookie-notice .cm-btn.cm-btn-success {
  background: linear-gradient(180deg, #5092ff 0%, #306FD5 100%) !important;
  color: #fff !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.15) inset,
    0 4px 14px rgba(48, 111, 213, 0.35),
    0 0 0 1px rgba(48, 111, 213, 0.2) !important;
}
.klaro .cookie-notice .cm-btn-success:hover {
  background: linear-gradient(180deg, #5B93E8 0%, #4080e5 100%) !important;
  transform: translateY(-0.5px);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 6px 18px rgba(48, 111, 213, 0.45),
    0 0 0 1px rgba(48, 111, 213, 0.3) !important;
}

/* Decline */
.klaro .cookie-notice .cm-btn-decline {
  background: transparent !important;
  color: #8B97B8 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  padding: 6px 12px !important;
}
.klaro .cookie-notice .cm-btn-decline:hover {
  color: #F0F4FF !important;
  border-color: rgba(255,255,255,0.18) !important;
  background: rgba(255,255,255,0.02) !important;
}

/* Learn more / Einstellungen — als Text-Link */
.klaro .cookie-notice .cm-btn-info,
.klaro .cookie-notice .cm-btn-learn-more {
  background: transparent !important;
  color: #7CB1FF !important;
  padding: 7px 4px !important;
  font-weight: 500 !important;
  border: none !important;
  border-bottom: 1px solid rgba(124, 177, 255, 0.0);
  border-radius: 0 !important;
}
.klaro .cookie-notice .cm-btn-info:hover {
  color: #7CB1FF !important;
  border-bottom-color: rgba(124, 177, 255, 0.5);
}

/* ===== Settings-Modal (wenn user „Einstellungen" klickt) ===== */
.klaro .cookie-modal { z-index: 100000 !important; }
.klaro .cookie-modal .cm-bg {
  background: rgba(0,0,0,0.65) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.klaro .cookie-modal .cm-modal {
  background:
    linear-gradient(180deg, rgba(20, 25, 41, 0.98) 0%, rgba(11, 15, 26, 0.99) 100%) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 18px !important;
  color: #F0F4FF !important;
  font-family: 'Inter', sans-serif !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.05) inset,
    0 30px 80px rgba(0,0,0,0.7) !important;
}
.klaro .cookie-modal .cm-header h1,
.klaro .cookie-modal .cm-header h2,
.klaro .cookie-modal h1,
.klaro .cookie-modal h2 {
  color: #F0F4FF !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}
.klaro .cookie-modal p,
.klaro .cookie-modal .cm-purposes p {
  color: #C5CDE0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}
.klaro .cookie-modal .cm-services .cm-service {
  background: rgba(255,255,255,0.025) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 12px !important;
  /* WICHTIG: links Platz für den absolut positionierten Toggle-Schalter lassen
     (sonst überlappt der Schalter den Service-Namen — Klaro-Default war padding-left:60px). */
  padding: 14px 16px 14px 76px !important;
  margin: 8px 0 !important;
}
/* Schalter innerhalb der Service-Karte einrücken + vertikal an den Titel ausrichten. */
.klaro .cookie-modal .cm-services .cm-service .cm-switch {
  left: 16px !important;
  top: 14px !important;
}
.klaro .cookie-modal .cm-services .cm-service .title {
  color: #F0F4FF !important;
  font-weight: 600 !important;
}
.klaro .cookie-modal .cm-services .cm-service .description {
  color: #8B97B8 !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
}

/* Toggle Switch */
.klaro .cookie-modal .cm-list-input + .cm-list-label .slider {
  background-color: rgba(255,255,255,0.12) !important;
}
.klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider {
  background: linear-gradient(180deg, #5092ff, #306FD5) !important;
}

/* PoweredBy verstecken */
.klaro .cookie-notice .cn-powered-by,
.klaro .cookie-modal .cm-powered-by,
.klaro [class*="powered-by"] { display: none !important; }

/* ============================================================
   MOBILE (< 640px) — STACK Layout, sehr flach (~70-85px hoch)
   Text oben (max 2 Zeilen), Buttons rechts unten
   ============================================================ */
@media (max-width: 640px) {
  .klaro .cookie-notice {
    right: 8px !important;
    left: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    max-width: none !important;
    padding: 8px 11px 8px !important;
    border-radius: 12px !important;
  }

  /* Body: Stack — Text-Block oben, Button-Block unten */
  .klaro .cookie-notice .cn-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
  }

  /* Text mini, max 2 Zeilen, dann ellipsis */
  .klaro .cookie-notice .cn-body p,
  .klaro .cookie-notice .cn-body .cn-changes {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    color: #C5CDE0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Button-Row rechts unten, kompakt */
  .klaro .cookie-notice .cn-ok,
  .klaro .cookie-notice .cn-body .cn-ok {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
    margin: 0 !important;
    flex-wrap: nowrap !important;
  }
  .klaro .cookie-notice .cn-buttons,
  .klaro .cookie-notice .cm-buttons {
    display: flex !important;
    flex: 0 0 auto !important;
    gap: 5px !important;
    flex-wrap: nowrap !important;
  }

  /* Buttons mini */
  .klaro .cookie-notice .cm-btn {
    padding: 5px 9px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    white-space: nowrap;
    line-height: 1.1 !important;
  }
  .klaro .cookie-notice .cm-btn-decline {
    padding: 4px 8px !important;
  }
  /* Settings-Link auf mobile: ausblenden — spart Platz */
  .klaro .cookie-notice .cm-btn-info,
  .klaro .cookie-notice .cm-btn-learn-more {
    display: none !important;
  }
}

/* Sehr kleine Screens (< 380px) — nochmal kompakter */
@media (max-width: 380px) {
  .klaro .cookie-notice {
    padding: 7px 10px !important;
    border-radius: 11px !important;
  }
  .klaro .cookie-notice .cn-body p,
  .klaro .cookie-notice .cn-body .cn-changes {
    font-size: 10px !important;
    line-height: 1.3 !important;
  }
  .klaro .cookie-notice .cm-btn {
    padding: 4px 8px !important;
    font-size: 9.5px !important;
  }
}

/* ============================================================
   TABLET (641px – 1024px)
   ============================================================ */
@media (min-width: 641px) and (max-width: 1024px) {
  .klaro .cookie-notice {
    width: 300px !important;
    right: 14px !important;
    bottom: 14px !important;
    padding: 12px 14px 10px !important;
  }
  .klaro .cookie-notice .cn-body p {
    font-size: 11.5px !important;
  }
  .klaro .cookie-notice .cm-btn {
    font-size: 11px !important;
    padding: 6px 11px !important;
  }
}
