/* =========================================================
   Frank-Hilft Consent Manager 26
   Datei: /assets/css/consent26.css
   ========================================================= */

:root{
  --fh26-consent-bg:#ffffff;
  --fh26-consent-text:#172126;
  --fh26-consent-muted:#5f6b70;
  --fh26-consent-border:#dfe5e7;
  --fh26-consent-accent:#0d4d58;
  --fh26-consent-accent-hover:#0a3e47;
  --fh26-consent-soft:#f4f7f8;
  --fh26-consent-shadow:0 20px 60px rgba(0,0,0,.18);
}

.fh26-consent-lock{
  overflow:hidden;
}

.fh26-consent-backdrop{
  position:fixed;
  inset:0;
  z-index:999980;
  background:rgba(10,20,24,.48);
  backdrop-filter:blur(3px);
}

.fh26-consent{
  position:fixed;
  left:50%;
  bottom:22px;
  z-index:999990;
  width:min(760px,calc(100% - 32px));
  transform:translateX(-50%);
  background:var(--fh26-consent-bg);
  color:var(--fh26-consent-text);
  border:1px solid var(--fh26-consent-border);
  border-radius:20px;
  box-shadow:var(--fh26-consent-shadow);
  font-family:inherit;
}

.fh26-consent__inner{
  padding:26px;
}

.fh26-consent__title{
  margin:0 0 10px;
  color:var(--fh26-consent-text);
  font-size:clamp(22px,3vw,28px);
  line-height:1.2;
  font-weight:800;
}

.fh26-consent__text{
  margin:0;
  color:var(--fh26-consent-muted);
  font-size:15px;
  line-height:1.6;
}

.fh26-consent__text a{
  color:var(--fh26-consent-accent);
  text-decoration:underline;
  text-underline-offset:2px;
}

.fh26-consent__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.fh26-consent__button{
  min-height:46px;
  padding:11px 18px;
  border:1px solid transparent;
  border-radius:11px;
  font:inherit;
  font-size:15px;
  font-weight:750;
  line-height:1.2;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.fh26-consent__button:hover{
  transform:translateY(-1px);
}

.fh26-consent__button:focus-visible,
.fh26-consent__close:focus-visible,
.fh26-consent__toggle input:focus-visible + span{
  outline:3px solid rgba(13,77,88,.25);
  outline-offset:2px;
}

.fh26-consent__button--primary{
  background:var(--fh26-consent-accent);
  color:#fff;
}

.fh26-consent__button--primary:hover{
  background:var(--fh26-consent-accent-hover);
}

.fh26-consent__button--secondary{
  background:var(--fh26-consent-soft);
  color:var(--fh26-consent-text);
  border-color:var(--fh26-consent-border);
}

.fh26-consent__button--ghost{
  background:#fff;
  color:var(--fh26-consent-accent);
  border-color:var(--fh26-consent-accent);
}

.fh26-consent__modal{
  position:fixed;
  inset:0;
  z-index:1000000;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(10,20,24,.58);
  backdrop-filter:blur(4px);
}

.fh26-consent__dialog{
  position:relative;
  width:min(700px,100%);
  max-height:min(760px,calc(100vh - 40px));
  overflow:auto;
  background:#fff;
  color:var(--fh26-consent-text);
  border-radius:20px;
  box-shadow:var(--fh26-consent-shadow);
}

.fh26-consent__dialog-inner{
  padding:28px;
}

.fh26-consent__close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:var(--fh26-consent-soft);
  color:var(--fh26-consent-text);
  font:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.fh26-consent__categories{
  display:grid;
  gap:12px;
  margin-top:22px;
}

.fh26-consent__category{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:18px;
  border:1px solid var(--fh26-consent-border);
  border-radius:14px;
  background:#fff;
}

.fh26-consent__category h3{
  margin:0 0 5px;
  color:var(--fh26-consent-text);
  font-size:17px;
}

.fh26-consent__category p{
  margin:0;
  color:var(--fh26-consent-muted);
  font-size:14px;
  line-height:1.5;
}

.fh26-consent__required{
  color:var(--fh26-consent-accent);
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}

.fh26-consent__toggle{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.fh26-consent__toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.fh26-consent__toggle span{
  position:relative;
  display:block;
  width:48px;
  height:28px;
  border-radius:999px;
  background:#c9d1d4;
  cursor:pointer;
  transition:background .18s ease;
}

.fh26-consent__toggle span::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
  transition:transform .18s ease;
}

.fh26-consent__toggle input:checked + span{
  background:var(--fh26-consent-accent);
}

.fh26-consent__toggle input:checked + span::after{
  transform:translateX(20px);
}

.fh26-consent__footer-note{
  margin-top:18px;
  color:var(--fh26-consent-muted);
  font-size:13px;
  line-height:1.5;
}

/* Platzhalter für externe Videos */
.fh26-youtube,
.fh26-livid,
.fh26-vimeo{
  position:relative;
  display:grid;
  place-items:center;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:16px;
  background:#111;
  color:#fff;
}

.fh26-media__placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
  background:linear-gradient(135deg,#172126,#0d4d58);
}

.fh26-media__placeholder-inner{
  max-width:520px;
}

.fh26-media__placeholder h3{
  margin:0 0 8px;
  color:#fff;
  font-size:22px;
}

.fh26-media__placeholder p{
  margin:0 0 18px;
  color:rgba(255,255,255,.82);
  line-height:1.5;
}

.fh26-youtube iframe,
.fh26-livid iframe,
.fh26-vimeo iframe{
  width:100%;
  height:100%;
  border:0;
}

@media (max-width:640px){
  .fh26-consent{
    bottom:10px;
    width:calc(100% - 20px);
  }

  .fh26-consent__inner,
  .fh26-consent__dialog-inner{
    padding:20px;
  }

  .fh26-consent__actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .fh26-consent__button{
    width:100%;
  }

  .fh26-consent__category{
    grid-template-columns:1fr auto;
    gap:12px;
    padding:15px;
  }
}

@media (prefers-reduced-motion:reduce){
  .fh26-consent__button,
  .fh26-consent__toggle span,
  .fh26-consent__toggle span::after{
    transition:none;
  }
}
