/* ============================================================
   AURA TROCKENBAU — privacy.css
   Cookie-Consent-Banner & Datenschutzeinstellungen-Modal
   ============================================================ */

/* ---------- Consent banner ---------- */
.consent-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:300;
  background:var(--c-black-soft);
  border-top:1px solid var(--c-steel-line);
  box-shadow:0 -12px 40px rgba(0,0,0,0.45);
  padding:22px 28px;
  transform:translateY(120%);
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.consent-banner.is-visible{ transform:translateY(0); }
.consent-banner[hidden]{ display:none; }

.consent-banner-inner{
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; gap:28px; flex-wrap:wrap;
}
.consent-icon{
  width:40px; height:40px; border-radius:50%; border:1px solid var(--c-red);
  color:var(--c-red-bright); display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.consent-icon svg{ width:19px; height:19px; }
.consent-text{ flex:1; min-width:240px; }
.consent-text h3{
  font-size:15px; color:#fff; text-transform:none; margin-bottom:4px; letter-spacing:0;
}
.consent-text p{ font-size:13.5px; margin:0; max-width:640px; }
.consent-text a{ color:var(--c-red-bright); }
.consent-text a:hover{ text-decoration:underline; }
.consent-actions{ display:flex; gap:12px; flex-wrap:wrap; flex-shrink:0; }
.consent-actions .btn{ padding:12px 20px; }

/* ---------- Modal overlay ---------- */
.privacy-modal{
  position:fixed; inset:0; z-index:400;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:rgba(11,11,12,0.72);
  backdrop-filter:blur(4px);
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
@media (max-width:520px){
  .privacy-modal{ padding:0; align-items:flex-end; }
}
.privacy-modal.is-open{ opacity:1; pointer-events:auto; }
.privacy-modal[hidden]{ display:flex; }

.privacy-card{
  width:100%; max-width:920px; max-height:86vh;
  background:#ffffff; color:#1a1a1d;
  border-radius:6px; overflow:hidden;
  display:grid; grid-template-columns:250px 1fr; grid-template-rows:1fr auto;
  transform:translateY(16px) scale(0.98);
  transition:transform .3s cubic-bezier(.16,1,.3,1);
  box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
@media (max-width:520px){
  .privacy-card{ max-height:92vh; border-radius:12px 12px 0 0; }
}
.privacy-modal.is-open .privacy-card{ transform:translateY(0) scale(1); }

.privacy-sidebar{
  background:#eef0f4; padding:32px 24px; border-right:1px solid #dfe2e8;
  grid-row:1 / 2;
}
.privacy-sidebar-title{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase;
  color:#8a8d95; margin-bottom:18px; display:block;
}
.privacy-sidebar nav{ display:flex; flex-direction:column; gap:16px; }
.privacy-sidebar button{
  text-align:left; background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--f-body); font-size:14.5px; color:var(--c-red); line-height:1.4;
}
.privacy-sidebar button:hover{ text-decoration:underline; }
.privacy-sidebar button.is-active{ font-weight:600; color:var(--c-red-deep); }

.privacy-main{
  padding:34px 38px 24px; overflow-y:auto; grid-row:1 / 2;
}
.privacy-main h2{
  font-size:21px; text-transform:none; color:#111; margin-bottom:14px; letter-spacing:0;
  font-family:var(--f-body); font-weight:600;
}
.privacy-main > p{ font-size:14.5px; color:#4b4d54; margin-bottom:26px; max-width:560px; }

.consent-row{
  display:flex; align-items:center; gap:18px; padding:16px 0;
  border-bottom:1px solid #eceef2;
}
.consent-row.is-master{ padding-bottom:22px; margin-bottom:6px; }
.consent-row:last-child{ border-bottom:none; }

.toggle{
  position:relative; width:46px; height:26px; flex-shrink:0;
}
.toggle input{
  position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; z-index:2;
}
.toggle .track{
  position:absolute; inset:0; background:#c6cad2; border-radius:20px; transition:background .2s ease;
}
.toggle .thumb{
  position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.3); transition:transform .2s ease;
}
.toggle input:checked + .track{ background:var(--c-red); }
.toggle input:checked + .track + .thumb{ transform:translateX(20px); }
.toggle input:disabled{ cursor:not-allowed; }
.toggle input:disabled + .track{ background:var(--c-red-deep); opacity:0.55; }
.toggle input:focus-visible + .track{ outline:2px solid var(--c-red); outline-offset:2px; }

.consent-row-label{ flex:1; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.consent-row-label strong{ font-size:15px; color:#1a1a1d; font-weight:600; }
.consent-row-label .always-on{
  font-family:var(--f-mono); font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
  color:#8a8d95; border:1px solid #d7dae0; padding:2px 8px; border-radius:20px;
}
.consent-row-more{
  font-size:13.5px; color:var(--c-red); background:none; border:none; cursor:pointer; padding:0;
  white-space:nowrap;
}
.consent-row-more:hover{ text-decoration:underline; }

.consent-detail{
  display:none; font-size:13.5px; color:#5b5d64; margin:-4px 0 16px; padding-left:64px; max-width:560px;
}
.consent-detail.is-open{ display:block; }
.consent-detail dl{ margin:10px 0 0; display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:12.5px; }
.consent-detail dt{ color:#8a8d95; }
.consent-detail dd{ margin:0; color:#3a3c42; }

.privacy-footer{
  grid-column:1 / -1; grid-row:2 / 3;
  background:var(--c-red); padding:18px 38px;
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;
}
.privacy-footer button{
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase;
  padding:11px 22px; border-radius:3px; border:1px solid transparent; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.privacy-save{ background:#fff; color:var(--c-red-deep); font-weight:700; }
.privacy-save:hover{ background:#f3f1ec; }
.privacy-accept-all{ background:transparent; border-color:rgba(255,255,255,0.6); color:#fff; }
.privacy-accept-all:hover{ background:rgba(255,255,255,0.12); }

.privacy-close{
  position:absolute; top:16px; right:18px; background:none; border:none; color:#8a8d95;
  width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .2s ease, color .2s ease;
}
.privacy-close:hover{ background:#eef0f4; color:#1a1a1d; }
.privacy-close svg{ width:18px; height:18px; }

/* ---------- WhatsApp floating button ---------- */
.whatsapp-fab{
  position:fixed; right:24px; bottom:24px; z-index:310;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,0.35);
  transition:bottom .4s cubic-bezier(.16,1,.3,1), transform .2s ease, box-shadow .2s ease;
}
.whatsapp-fab svg{ width:30px; height:30px; }
.whatsapp-fab:hover{ transform:scale(1.07); box-shadow:0 10px 28px rgba(0,0,0,0.45); }
.whatsapp-fab::before{
  content:''; position:absolute; inset:0; border-radius:50%;
  box-shadow:0 0 0 0 rgba(37,211,102,0.55);
  animation:whatsapp-pulse 2.6s ease-out infinite;
}
@keyframes whatsapp-pulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,0.5); }
  70%{ box-shadow:0 0 0 16px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
body.consent-banner-visible .whatsapp-fab{ bottom:154px; }
@media (max-width:720px){
  .whatsapp-fab{ width:52px; height:52px; right:16px; bottom:16px; }
  .whatsapp-fab svg{ width:27px; height:27px; }
  body.consent-banner-visible .whatsapp-fab{ bottom:230px; }
}
@media (prefers-reduced-motion: reduce){
  .whatsapp-fab::before{ animation:none; }
}
/* ---------- Gated content placeholder (e.g. Google Maps) ---------- */
.consent-gate{
  border:1px dashed var(--c-steel-line); border-radius:var(--radius);
  padding:34px 24px; text-align:center; background:var(--c-black-soft);
}
.consent-gate p{ font-size:13.5px; max-width:340px; margin:0 auto 16px; }
.consent-gate .btn{ font-size:12px; padding:10px 18px; }

/* ---------- Responsive ---------- */
@media (max-width:760px){
  .privacy-card{ grid-template-columns:1fr; grid-template-rows:auto 1fr auto; max-height:88vh; }
  .privacy-sidebar{ border-right:none; border-bottom:1px solid #dfe2e8; padding:20px 22px; grid-row:1 / 2; max-height:140px; overflow-y:auto; }
  .privacy-sidebar nav{ flex-direction:row; flex-wrap:wrap; gap:20px; }
  .privacy-main{ padding:22px 22px 18px; grid-row:2 / 3; overflow-y:auto; }
  .privacy-footer{ padding:16px 22px; grid-row:3 / 4; }
  .consent-detail{ padding-left:0; }
  .consent-banner-inner{ flex-direction:column; align-items:flex-start; }
  .consent-actions{ width:100%; }
  .consent-actions .btn{ flex:1; justify-content:center; }
}
