/* ==========================================================
   Hartung | Immobilien & Werte — Cookie-Consent
   DSGVO-konform, im Markenstil
   ========================================================== */

:root{
  --cb-gold:#C58727;
  --cb-gold-dark:#A06D1E;
  --cb-gold-light:#FAF1E1;
  --cb-dark:#3D3A3A;
  --cb-dark-soft:#5C5858;
  --cb-gray-300:#BFBAB6;
  --cb-gray-200:#E6E2DF;
  --cb-gray-100:#F2EFEC;
  --cb-white:#FFFFFF;
}

/* ============ BANNER ============ */
#hartung-cookie-banner{
  position:fixed;
  left:24px; right:24px; bottom:24px;
  z-index:99998;
  background:#FFFFFF;
  border:1px solid var(--cb-gray-200);
  border-radius:16px;
  box-shadow:0 20px 60px rgba(61,58,58,0.2), 0 4px 12px rgba(61,58,58,0.08);
  font-family:'Montserrat',-apple-system,sans-serif;
  color:var(--cb-dark);
  max-width:1100px;
  margin:0 auto;
  animation:cb-slide-up .35s cubic-bezier(.2,.8,.2,1);
}
@keyframes cb-slide-up{
  from{transform:translateY(30px); opacity:0}
  to{transform:translateY(0); opacity:1}
}

#hartung-cookie-banner .cb-content{
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;
  padding:24px 28px;
  align-items:center;
}
@media(max-width:780px){
  #hartung-cookie-banner{left:12px; right:12px; bottom:12px}
  #hartung-cookie-banner .cb-content{
    grid-template-columns:1fr;
    gap:16px;
    padding:20px 22px;
  }
}

#hartung-cookie-banner .cb-text h3{
  font-family:'Montserrat',sans-serif;
  font-size:17px;
  font-weight:700;
  color:var(--cb-dark);
  margin:0 0 6px;
  display:flex;
  align-items:center;
  gap:10px;
}
#hartung-cookie-banner .cb-text h3::before{
  content:"🍪";
  font-size:22px;
}
#hartung-cookie-banner .cb-text p{
  font-size:14px;
  color:var(--cb-dark-soft);
  line-height:1.55;
  margin:0;
}
#hartung-cookie-banner .cb-text a{
  color:var(--cb-gold-dark);
  font-weight:600;
  text-decoration:underline;
}
#hartung-cookie-banner .cb-text a:hover{color:var(--cb-gold)}

#hartung-cookie-banner .cb-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
@media(max-width:780px){
  #hartung-cookie-banner .cb-actions{
    flex-direction:column-reverse;
    align-items:stretch;
  }
}

.cb-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  font-family:'Montserrat',sans-serif;
  font-size:14px;
  font-weight:600;
  border-radius:10px;
  cursor:pointer;
  border:none;
  transition:all .15s ease;
  white-space:nowrap;
  text-decoration:none;
  line-height:1;
}
.cb-btn-primary{
  background:var(--cb-gold);
  color:#fff;
}
.cb-btn-primary:hover{
  background:var(--cb-gold-dark);
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(197,135,39,0.35);
}
.cb-btn-secondary{
  background:transparent;
  color:var(--cb-dark);
  border:1.5px solid var(--cb-gray-300);
}
.cb-btn-secondary:hover{
  background:var(--cb-gray-100);
  border-color:var(--cb-dark);
}
.cb-btn-link{
  background:transparent;
  color:var(--cb-dark-soft);
  padding:8px 12px;
  font-weight:500;
  text-decoration:underline;
}
.cb-btn-link:hover{color:var(--cb-gold-dark)}

/* ============ MODAL ============ */
#hartung-cookie-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  font-family:'Montserrat',-apple-system,sans-serif;
}
#hartung-cookie-modal .cb-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(61,58,58,0.6);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  animation:cb-fade .25s ease;
}
@keyframes cb-fade{from{opacity:0}to{opacity:1}}

#hartung-cookie-modal .cb-modal{
  position:relative;
  background:#FFFFFF;
  border-radius:20px;
  max-width:620px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  padding:36px 36px 28px;
  box-shadow:0 32px 80px rgba(0,0,0,0.25);
  animation:cb-pop .3s cubic-bezier(.2,.9,.3,1.1);
}
@keyframes cb-pop{
  from{transform:scale(.94); opacity:0}
  to{transform:scale(1); opacity:1}
}
@media(max-width:600px){
  #hartung-cookie-modal .cb-modal{padding:28px 24px 22px}
}

#hartung-cookie-modal h3{
  font-family:'Montserrat',sans-serif;
  font-size:22px;
  font-weight:700;
  color:var(--cb-dark);
  margin:0 0 8px;
}
#hartung-cookie-modal .cb-modal-intro{
  font-size:14.5px;
  color:var(--cb-dark-soft);
  line-height:1.6;
  margin:0 0 24px;
}
#hartung-cookie-modal .cb-modal-intro a{
  color:var(--cb-gold-dark);
  text-decoration:underline;
}

.cb-category{
  border:1px solid var(--cb-gray-200);
  border-radius:12px;
  padding:18px 20px;
  margin-bottom:12px;
  background:#FFFFFF;
  transition:border-color .2s ease;
}
.cb-category:hover{border-color:var(--cb-gold)}

.cb-cat-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:6px;
}
.cb-cat-head strong{
  font-size:15px;
  color:var(--cb-dark);
  font-weight:700;
}
.cb-category p{
  font-size:13.5px;
  color:var(--cb-dark-soft);
  line-height:1.5;
  margin:0;
}

/* Toggle Switch */
.cb-toggle{
  position:relative;
  display:inline-block;
  width:44px;
  height:24px;
  flex-shrink:0;
  cursor:pointer;
}
.cb-toggle input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
}
.cb-toggle-slider{
  position:absolute;
  inset:0;
  background:var(--cb-gray-300);
  border-radius:24px;
  transition:background .25s ease;
}
.cb-toggle-slider::before{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:18px;
  height:18px;
  background:#fff;
  border-radius:50%;
  transition:transform .25s ease;
  box-shadow:0 2px 4px rgba(0,0,0,0.2);
}
.cb-toggle input:checked + .cb-toggle-slider{background:var(--cb-gold)}
.cb-toggle input:checked + .cb-toggle-slider::before{transform:translateX(20px)}

.cb-toggle-locked{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:600;
  color:var(--cb-gold-dark);
  text-transform:uppercase;
  letter-spacing:0.08em;
  background:var(--cb-gold-light);
  padding:6px 12px;
  border-radius:999px;
}

.cb-modal-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:24px;
  flex-wrap:wrap;
}
@media(max-width:520px){
  .cb-modal-actions{flex-direction:column-reverse}
  .cb-modal-actions .cb-btn{width:100%}
}

/* ============ FLOATING FOOTER LINK ============ */
#hartung-consent-revoke{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:90;
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(6px);
  border:1px solid var(--cb-gray-200);
  border-radius:999px;
  padding:8px 14px 8px 10px;
  font-family:'Montserrat',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--cb-dark-soft);
  cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
  transition:all .2s ease;
  text-decoration:none;
}
#hartung-consent-revoke:hover{
  color:var(--cb-gold-dark);
  border-color:var(--cb-gold);
  background:#FFFFFF;
}
#hartung-consent-revoke svg{width:14px; height:14px}
@media(max-width:600px){
  #hartung-consent-revoke{
    left:12px;
    bottom:90px; /* über Sticky-CTA */
    padding:7px 12px;
    font-size:11px;
  }
}
