/* =========================================================
   Cookie banner — D-Detailerz
   Vast, zichtbaar, contrastrijk, dark/light
   ========================================================= */

#cookie-banner[hidden],
.cookie-banner[hidden]{
  display:none !important;
}

#cookie-banner,
.cookie-banner{
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  z-index:9999;
  width:min(1100px, calc(100vw - 24px));
  pointer-events:none;
}

/* hoofdkaart */
#cookie-banner .cookie-banner__inner,
.cookie-banner .cookie-banner__inner{
  pointer-events:auto;
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(280px, .8fr);
  gap:20px;
  padding:20px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(120% 160% at 0% 0%, rgba(126,209,255,.16), transparent 38%),
    radial-gradient(100% 130% at 100% 100%, rgba(255,79,154,.14), transparent 34%),
    linear-gradient(135deg, rgba(20,24,34,.96), rgba(8,12,20,.98));
  box-shadow:
    0 24px 60px rgba(0,0,0,.42),
    0 8px 24px rgba(106,92,255,.18),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  overflow:hidden;
}

/* subtiele glow */
#cookie-banner .cookie-banner__inner::before,
.cookie-banner .cookie-banner__inner::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(106,92,255,.10), transparent 28%, transparent 72%, rgba(255,79,154,.08)),
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 28%);
  opacity:.95;
}

#cookie-banner .cookie-banner__content,
.cookie-banner .cookie-banner__content{
  position:relative;
  z-index:1;
  min-width:0;
}

#cookie-banner .cookie-banner__eyebrow,
.cookie-banner .cookie-banner__eyebrow{
  margin:0 0 .45rem;
  font-size:.78rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#cdb9ff;
}

#cookie-banner h2,
.cookie-banner h2{
  margin:0 0 .8rem;
  font-size:clamp(1.15rem, 1.4vw, 1.45rem);
  line-height:1.12;
  color:#ffffff;
}

#cookie-banner p,
.cookie-banner p{
  margin:.6rem 0 0;
  color:rgba(233,237,246,.86);
  line-height:1.58;
}

#cookie-banner b,
.cookie-banner b{
  color:#ffffff;
}

#cookie-banner .cookie-banner__legal,
.cookie-banner .cookie-banner__legal{
  font-size:.95rem;
  color:rgba(233,237,246,.74);
}

#cookie-banner .cookie-banner__legal a,
.cookie-banner .cookie-banner__legal a{
  color:#7ed1ff;
  text-decoration:none;
}

#cookie-banner .cookie-banner__legal a:hover,
.cookie-banner .cookie-banner__legal a:hover{
  text-decoration:underline;
}

/* acties rechts */
#cookie-banner .cookie-banner__actions,
.cookie-banner .cookie-banner__actions{
  position:relative;
  z-index:1;
  display:grid;
  align-content:start;
  gap:12px;
}

#cookie-banner .btn,
.cookie-banner .btn{
  width:100%;
  min-height:48px;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:#f4f7fc;
  font-weight:800;
  text-decoration:none;
  box-shadow:none;
  transition:
    transform .18s ease,
    background .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    filter .2s ease;
}

#cookie-banner .btn:hover,
.cookie-banner .btn:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
  transform:translateY(-1px);
  filter:none;
}

#cookie-banner .btn:active,
.cookie-banner .btn:active{
  transform:translateY(0) scale(.99);
}

#cookie-banner .btn.btn-primary,
.cookie-banner .btn.btn-primary{
  color:#ffffff;
  border-color:transparent;
  background:linear-gradient(90deg, #6a5cff 0%, #b050ff 50%, #ff4f9a 100%);
  box-shadow:
    0 14px 28px rgba(176,80,255,.24),
    0 0 0 1px rgba(255,255,255,.04) inset;
}

#cookie-banner .btn.btn-primary:hover,
.cookie-banner .btn.btn-primary:hover{
  filter:brightness(1.04);
  background:linear-gradient(90deg, #7265ff 0%, #b95cff 50%, #ff5ca3 100%);
}

/* voorkeuren */
#cookie-banner .cookie-banner__preferences,
.cookie-banner .cookie-banner__preferences{
  grid-column:1 / -1;
  position:relative;
  z-index:1;
  margin-top:2px;
  padding-top:4px;
}

#cookie-banner .cookie-form,
.cookie-banner .cookie-form{
  display:grid;
  gap:14px;
}

#cookie-banner .cookie-form fieldset,
.cookie-banner .cookie-form fieldset{
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}

#cookie-banner .cookie-form legend,
.cookie-banner .cookie-form legend{
  margin:0 0 12px;
  padding:0;
  font-size:1rem;
  font-weight:800;
  color:#ffffff;
}

#cookie-banner .cookie-option,
.cookie-banner .cookie-option{
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

#cookie-banner .cookie-option + .cookie-option,
.cookie-banner .cookie-option + .cookie-option{
  margin-top:10px;
}

#cookie-banner .cookie-option__head,
.cookie-banner .cookie-option__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:16px;
}

#cookie-banner .cookie-option h3,
.cookie-banner .cookie-option h3{
  margin:0 0 .35rem;
  font-size:1rem;
  line-height:1.2;
  color:#ffffff;
}

#cookie-banner .cookie-option p,
.cookie-banner .cookie-option p{
  margin:0;
  font-size:.95rem;
  color:rgba(233,237,246,.78);
}

#cookie-banner .cookie-option__control,
.cookie-banner .cookie-option__control{
  flex:0 0 auto;
  min-width:190px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}

#cookie-banner .cookie-option__control input,
.cookie-banner .cookie-option__control input{
  inline-size:18px;
  block-size:18px;
  accent-color:#8b5cf6;
  cursor:pointer;
}

#cookie-banner .cookie-option__control input[disabled],
.cookie-banner .cookie-option__control input[disabled]{
  cursor:not-allowed;
  opacity:.85;
}

#cookie-banner .cookie-option__control label,
.cookie-banner .cookie-option__control label{
  font-size:.95rem;
  font-weight:700;
  color:#f3f7fd;
  cursor:pointer;
  user-select:none;
}

#cookie-banner .cookie-form__actions,
.cookie-banner .cookie-form__actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:12px;
  padding-top:4px;
}

#cookie-banner .cookie-form__actions .btn,
.cookie-banner .cookie-form__actions .btn{
  width:auto;
  min-width:180px;
}

/* focus */
#cookie-banner :focus-visible,
.cookie-banner :focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(176,80,255,.24);
}

#cookie-banner .cookie-option:has(input:focus-visible),
.cookie-banner .cookie-option:has(input:focus-visible){
  border-color:rgba(126,209,255,.30);
}

/* =========================================
   Light theme
   ========================================= */

body[data-theme="light"] #cookie-banner .cookie-banner__inner,
body[data-theme="light"] .cookie-banner .cookie-banner__inner{
  border:1px solid rgba(106,92,255,.12);
  background:
    radial-gradient(120% 160% at 0% 0%, rgba(56,189,248,.15), transparent 38%),
    radial-gradient(100% 130% at 100% 100%, rgba(255,79,154,.10), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,244,255,.98));
  box-shadow:
    0 18px 44px rgba(76,54,140,.14),
    0 8px 22px rgba(106,92,255,.10),
    inset 0 1px 0 rgba(255,255,255,.92);
}

body[data-theme="light"] #cookie-banner .cookie-banner__eyebrow,
body[data-theme="light"] .cookie-banner .cookie-banner__eyebrow{
  color:#7c3aed;
}

body[data-theme="light"] #cookie-banner h2,
body[data-theme="light"] .cookie-banner h2{
  color:#1a1333;
}

body[data-theme="light"] #cookie-banner p,
body[data-theme="light"] .cookie-banner p{
  color:#4d4368;
}

body[data-theme="light"] #cookie-banner b,
body[data-theme="light"] .cookie-banner b{
  color:#1a1333;
}

body[data-theme="light"] #cookie-banner .cookie-banner__legal,
body[data-theme="light"] .cookie-banner .cookie-banner__legal{
  color:#6d6486;
}

body[data-theme="light"] #cookie-banner .cookie-banner__legal a,
body[data-theme="light"] .cookie-banner .cookie-banner__legal a{
  color:#5b39db;
}

body[data-theme="light"] #cookie-banner .btn,
body[data-theme="light"] .cookie-banner .btn{
  background:#ffffff;
  color:#2f2647;
  border:1px solid rgba(106,92,255,.12);
  box-shadow:0 8px 18px rgba(76,54,140,.06);
}

body[data-theme="light"] #cookie-banner .btn:hover,
body[data-theme="light"] .cookie-banner .btn:hover{
  background:#faf8ff;
}

body[data-theme="light"] #cookie-banner .btn.btn-primary,
body[data-theme="light"] .cookie-banner .btn.btn-primary{
  color:#ffffff;
  border-color:transparent;
  background:linear-gradient(90deg, #6a5cff 0%, #b050ff 50%, #ff4f9a 100%);
  box-shadow:0 12px 24px rgba(176,80,255,.16);
}

body[data-theme="light"] #cookie-banner .cookie-form legend,
body[data-theme="light"] .cookie-banner .cookie-form legend,
body[data-theme="light"] #cookie-banner .cookie-option h3,
body[data-theme="light"] .cookie-banner .cookie-option h3,
body[data-theme="light"] #cookie-banner .cookie-option__control label,
body[data-theme="light"] .cookie-banner .cookie-option__control label{
  color:#1a1333;
}

body[data-theme="light"] #cookie-banner .cookie-option,
body[data-theme="light"] .cookie-banner .cookie-option{
  border:1px solid rgba(106,92,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,244,255,.84));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

body[data-theme="light"] #cookie-banner .cookie-option p,
body[data-theme="light"] .cookie-banner .cookie-option p{
  color:#5d5478;
}

/* =========================================
   Responsive
   ========================================= */

@media (max-width: 900px){
  #cookie-banner,
  .cookie-banner{
    width:calc(100vw - 16px);
    bottom:8px;
  }

  #cookie-banner .cookie-banner__inner,
  .cookie-banner .cookie-banner__inner{
    grid-template-columns:1fr;
    gap:16px;
    padding:16px;
  }

  #cookie-banner .cookie-banner__actions,
  .cookie-banner .cookie-banner__actions{
    grid-template-columns:1fr;
  }
}

@media (max-width: 640px){
  #cookie-banner,
  .cookie-banner{
    left:8px;
    right:8px;
    bottom:8px;
    width:auto;
    transform:none;
  }

  #cookie-banner .cookie-banner__inner,
  .cookie-banner .cookie-banner__inner{
    border-radius:20px;
    padding:14px;
    gap:14px;
  }

  #cookie-banner .cookie-banner__eyebrow,
  .cookie-banner .cookie-banner__eyebrow{
    font-size:.74rem;
  }

  #cookie-banner h2,
  .cookie-banner h2{
    font-size:1.12rem;
  }

  #cookie-banner .cookie-option__head,
  .cookie-banner .cookie-option__head{
    flex-direction:column;
    align-items:flex-start;
  }

  #cookie-banner .cookie-option__control,
  .cookie-banner .cookie-option__control{
    min-width:0;
    width:100%;
    justify-content:space-between;
  }

  #cookie-banner .cookie-form__actions,
  .cookie-banner .cookie-form__actions{
    flex-direction:column-reverse;
  }

  #cookie-banner .cookie-form__actions .btn,
  .cookie-banner .cookie-form__actions .btn{
    width:100%;
    min-width:0;
  }
}

/* =========================================
   Reduced motion
   ========================================= */

@media (prefers-reduced-motion: reduce){
  #cookie-banner .btn,
  .cookie-banner .btn,
  #cookie-banner .cookie-banner__inner,
  .cookie-banner .cookie-banner__inner{
    transition:none !important;
  }
}
