/* Olgahaus: Cookie-Hinweis. Zwei gleich gestaltete Knoepfe (Ablehnen, Zustimmen),
   damit die Ablehnung nicht schwerer faellt als die Zustimmung. */
.cc {
  position: fixed; z-index: 1000;
  left: 16px; bottom: 16px; right: 16px;
  max-width: 560px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto;
  padding: 24px; border-radius: var(--r-m, 12px);
  background: #FFFFFF; color: var(--ink, #122056);
  border: 2px solid var(--navy, #122056);
  box-shadow: 0 16px 48px rgba(18, 32, 86, 0.28);
  font-family: var(--font, 'Plus Jakarta Sans', 'Helvetica Neue', Arial, sans-serif);
  font-size: 1rem; line-height: 1.55;
}
.cc[hidden] { display: none; }
.cc:focus { outline: none; }
.cc__titel {
  margin: 0 0 8px; padding: 0; border: 0;
  font-size: 1.1875rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em;
  color: var(--navy, #122056);
}
.cc__text { margin: 0 0 14px; max-width: none; font-size: 0.9375rem; color: var(--ink-soft, #3D4468); }
.cc__text a { color: var(--violet, #5C2874); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.cc__text a:hover { color: var(--violet-deep, #481D5C); }
.cc__status { margin: 0 0 14px; max-width: none; font-size: 0.9375rem; font-weight: 700; color: var(--navy, #122056); }
.cc__status[hidden] { display: none; }
.cc__knoepfe { display: flex; gap: 12px; }
.cc__knopf {
  flex: 1 1 0; min-height: 48px; padding: 12px 18px;
  border: 2px solid var(--navy, #122056); border-radius: var(--r-s, 6px);
  background: var(--navy, #122056); color: #FFFFFF;
  font: inherit; font-size: 1rem; font-weight: 700; line-height: 1.2; cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease;
}
.cc__knopf:hover { background: var(--violet, #5C2874); border-color: var(--violet, #5C2874); }
.cc__knopf:focus-visible { outline: 3px solid var(--cyan, #009FE3); outline-offset: 3px; }

/* Link im Seitenfuss, der den Hinweis wieder oeffnet */
.cc-open {
  display: inline; padding: 0; margin: 0; border: 0; background: none; cursor: pointer;
  font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px;
}
.cc-open:hover { color: #FFFFFF; }
.cc-open:focus-visible { outline: 2px solid var(--cyan, #009FE3); outline-offset: 3px; border-radius: 2px; }

@media (max-width: 520px) {
  .cc { left: 12px; right: 12px; bottom: 12px; padding: 20px; }
  .cc__knoepfe { flex-direction: column; }
}
@media (prefers-reduced-motion: no-preference) {
  .cc { animation: cc-ein 240ms cubic-bezier(0.2, 0.6, 0.2, 1); }
  @keyframes cc-ein { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* Kontrast auf den dunklen Fussleisten (Startseite und Rechtstexte) */
.footer-base .cc-open { color: rgba(255, 255, 255, 0.7); }
.foot .cc-open { color: rgba(255, 255, 255, 0.85); }
.foot .cc-open:hover, .footer-base .cc-open:hover { color: #FFFFFF; }

/* Schaltflaeche im Fliesstext der Datenschutzerklaerung */
.cc-inline {
  min-height: 48px; padding: 12px 22px; border: 2px solid var(--navy, #122056); border-radius: var(--r-s, 6px);
  background: var(--navy, #122056); color: #FFFFFF; font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer;
}
.cc-inline:hover { background: var(--violet, #5C2874); border-color: var(--violet, #5C2874); }
.cc-inline:focus-visible { outline: 3px solid var(--cyan, #009FE3); outline-offset: 3px; }
