/* Cookie-Banner Hamster. Optik an styles.css / mode-v2.css angelehnt.
   Wird ausschließlich von consent.js eingehängt. */

.cc-root{
  position:fixed; inset:auto 0 0 0; z-index:9999;
  display:flex; justify-content:center;
  padding:16px; pointer-events:none;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.cc-root[hidden]{ display:none; }

.cc-card{
  pointer-events:auto;
  width:100%; max-width:1120px;
  background:#fff; color:#21242e;
  border:1px solid #dde4f5; border-radius:16px;
  box-shadow:0 18px 48px rgba(10,30,71,.22);
  padding:24px 26px;
  animation:cc-in .28s ease-out both;
}
@keyframes cc-in{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .cc-card{ animation:none; } }

.cc-title{
  margin:0 0 8px; font-size:19px; font-weight:700; line-height:1.3;
  color:#0a1e47;
}
.cc-text{ margin:0; font-size:15px; line-height:1.6; color:#3d4560; }
.cc-text a{ color:#167bd9; text-decoration:underline; }

/* Aktionen. "Akzeptieren" und "Ablehnen" sind bewusst gleich groß und gleich
   gewichtet - eine versteckte oder blasse Ablehnung wäre nicht zulässig. */
.cc-actions{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  margin-top:18px;
}
.cc-btn{
  flex:0 0 auto; min-width:190px;
  font:inherit; font-size:15px; font-weight:600;
  padding:13px 22px; border-radius:10px; cursor:pointer;
  border:2px solid transparent; transition:filter .15s ease, background .15s ease;
}
.cc-btn:focus-visible{ outline:3px solid #2d62ff; outline-offset:2px; }
.cc-btn--accept{ background:#167bd9; color:#fff; }
.cc-btn--accept:hover{ filter:brightness(1.08); }
.cc-btn--reject{ background:#fff; color:#0a1e47; border-color:#0a1e47; }
.cc-btn--reject:hover{ background:#eef3fd; }
.cc-btn--link{
  min-width:0; background:none; border:none; padding:13px 6px;
  color:#5a6480; font-weight:500; text-decoration:underline;
}
.cc-btn--link:hover{ color:#0a1e47; }
.cc-spacer{ flex:1 1 auto; }
.cc-legal{ display:flex; gap:18px; font-size:14px; }
.cc-legal a{ color:#5a6480; text-decoration:underline; }
.cc-legal a:hover{ color:#0a1e47; }

/* Detail-Ebene */
.cc-details{ margin-top:20px; border-top:1px solid #e4eaf7; padding-top:18px; }
.cc-details[hidden]{ display:none; }
.cc-group{
  display:grid; grid-template-columns:auto 1fr; gap:14px;
  padding:14px 0; border-bottom:1px solid #f0f3fa;
}
.cc-group:last-of-type{ border-bottom:none; }
.cc-group h3{ margin:0 0 4px; font-size:15px; font-weight:600; color:#0a1e47; }
.cc-group p{ margin:0; font-size:14px; line-height:1.55; color:#5a6480; }
.cc-group .cc-fixed{
  align-self:start; margin-top:2px;
  font-size:13px; font-weight:600; color:#7e86a0; white-space:nowrap;
}

.cc-switch{ align-self:start; margin-top:2px; position:relative; display:inline-block; width:48px; height:28px; }
.cc-switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cc-track{
  position:absolute; inset:0; border-radius:999px;
  background:#c9d2e6; transition:background .18s ease; pointer-events:none;
}
.cc-track::after{
  content:""; position:absolute; top:3px; left:3px; width:22px; height:22px;
  border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(10,30,71,.35);
  transition:transform .18s ease;
}
.cc-switch input:checked + .cc-track{ background:#167bd9; }
.cc-switch input:checked + .cc-track::after{ transform:translateX(20px); }
.cc-switch input:focus-visible + .cc-track{ outline:3px solid #2d62ff; outline-offset:2px; }

@media (max-width:720px){
  .cc-root{ padding:10px; }
  .cc-card{ padding:20px 18px; max-height:88vh; overflow-y:auto; }
  .cc-title{ font-size:17px; }
  .cc-btn{ flex:1 1 100%; min-width:0; }
  .cc-btn--link{ flex-basis:auto; }
  .cc-actions{ gap:8px; }
  .cc-legal{ width:100%; justify-content:center; padding-top:4px; }
}

/* Fußnoten-Link "Cookie-Einstellungen" auf den Seiten */
.cc-reopen{ background:none; border:none; padding:0; font:inherit; color:inherit;
  text-decoration:underline; cursor:pointer; }
