.cookie-banner{
  position:fixed;
  inset:0;
  z-index:2200;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:clamp(.75rem, 2vw, 1.25rem);
  color:var(--fg);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

.cookie-banner[hidden]{
  display:none;
}

.cookie-banner__backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 3px 3px,
    rgba(0,0,0,.56);
  -webkit-backdrop-filter:blur(2px) saturate(105%);
  backdrop-filter:blur(2px) saturate(105%);
}

.cookie-banner__card{
  position:relative;
  z-index:1;
  width:min(70rem, 100%);
  max-height:min(88vh, 44rem);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:clamp(1rem, 2.3vw, 1.35rem);
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.032)),
    rgba(9,14,24,.985);
  box-shadow:
    0 24px 68px rgba(0,0,0,.46),
    inset 0 1px 0 rgba(255,255,255,.06);
}

.cookie-banner__card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg, rgba(var(--brand-rgb), .88), rgba(var(--brand-indigo-rgb), .62), rgba(var(--brand-green-rgb), .30));
  pointer-events:none;
}

.cookie-banner__header{
  margin-bottom:clamp(.78rem, 1.7vw, 1.05rem);
}

.cookie-banner__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:.52rem;
  color:rgba(185,213,255,.82);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.09em;
  line-height:1.2;
  text-transform:uppercase;
}

.cookie-banner__eyebrow::before{
  content:"";
  width:.48rem;
  height:.48rem;
  border-radius:999px;
  background:rgba(var(--brand-rgb), .92);
  box-shadow:0 0 0 4px rgba(var(--brand-rgb), .12);
}

.cookie-banner__header h2{
  display:flex;
  align-items:center;
  gap:.58rem;
  margin:0;
  color:#fff;
  font-size:clamp(1.18rem, 2vw, 1.45rem);
  line-height:1.08;
  letter-spacing:0;
}

.cookie-banner__icon{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  flex:0 0 auto;
  border-radius:14px;
  border:1px solid rgba(var(--brand-rgb), .22);
  background:rgba(var(--brand-rgb), .12);
  color:#fff;
}

.cookie-banner__icon svg{
  width:1.05rem;
  height:1.05rem;
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cookie-banner__body{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(22rem, .92fr);
  gap:clamp(1rem, 2.5vw, 1.45rem);
  align-items:start;
}

.cookie-banner__text{
  min-width:0;
}

.cookie-banner__lead{
  max-width:58ch;
  margin:0;
  color:rgba(234,241,255,.82);
  font-size:.92rem;
  line-height:1.58;
}

.cookie-banner__hint{
  margin:.72rem 0 0;
  color:rgba(214,226,244,.70);
  font-size:.82rem;
  line-height:1.45;
}

.cookie-banner__hint a{
  color:rgb(var(--brand-rgb));
  text-decoration:underline;
  text-underline-offset:3px;
}

.cookie-banner__details-toggle{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  margin-top:.62rem;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(203,221,248,.76);
  font:inherit;
  font-size:.82rem;
  font-weight:760;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

.cookie-banner__details-toggle:hover,
.cookie-banner__details-toggle:focus-visible{
  color:#fff;
  outline:none;
}

.cookie-banner__controls{
  display:grid;
  gap:.55rem;
}

.cookie-banner__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:.85rem;
  align-items:center;
  min-height:3.25rem;
  padding:.68rem .76rem;
  border:1px solid rgba(155,186,228,.13);
  border-radius:16px;
  background:rgba(255,255,255,.035);
  cursor:pointer;
  transition:border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.cookie-banner__row:hover,
.cookie-banner__row:focus-within{
  border-color:rgba(var(--brand-rgb), .25);
  background:rgba(var(--brand-rgb), .06);
  transform:translateY(-1px);
}

.cookie-banner__row--locked{
  cursor:default;
}

.cookie-banner__row-text{
  display:block;
  min-width:0;
}

.cookie-banner__row-text strong{
  display:block;
  color:rgba(255,255,255,.94);
  font-size:.9rem;
  line-height:1.2;
}

.cookie-banner__row-text small{
  display:block;
  margin-top:.18rem;
  color:rgba(216,227,244,.66);
  font-size:.78rem;
  line-height:1.36;
}

.cookie-banner__switch{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:2.62rem;
  height:1.42rem;
  flex:0 0 auto;
  padding:0 .14rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(4,8,15,.82);
}

.cookie-banner__switch input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer;
}

.cookie-banner__switch-knob{
  display:block;
  width:1rem;
  height:1rem;
  border-radius:999px;
  background:rgba(141,155,178,.82);
  transform:translateX(0);
  transition:transform var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.cookie-banner__switch input:checked + .cookie-banner__switch-knob,
.cookie-banner__switch--locked .cookie-banner__switch-knob{
  transform:translateX(1.18rem);
  background:rgb(var(--brand-green-rgb));
  box-shadow:0 0 0 4px rgba(var(--brand-green-rgb), .16);
}

.cookie-banner__details{
  margin-top:1rem;
  padding-top:.9rem;
  border-top:1px solid rgba(255,255,255,.08);
}

.cookie-banner__details h3{
  margin:0 0 .72rem;
  color:#fff;
  font-size:.98rem;
  line-height:1.2;
}

.cookie-banner__details-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.72rem;
}

.cookie-banner__details section{
  padding:.76rem;
  border:1px solid rgba(155,186,228,.11);
  border-radius:15px;
  background:rgba(255,255,255,.028);
}

.cookie-banner__details h4{
  margin:0 0 .32rem;
  color:rgba(235,245,255,.90);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.cookie-banner__details p{
  margin:0;
  color:rgba(216,227,244,.68);
  font-size:.78rem;
  line-height:1.46;
}

.cookie-banner__buttons{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.55rem;
  margin-top:1rem;
}

.cookie-banner__btn{
  min-height:2.65rem;
  padding:.68rem .9rem;
  border:1px solid transparent;
  border-radius:999px;
  font:inherit;
  font-size:.84rem;
  font-weight:850;
  line-height:1.15;
  cursor:pointer;
  transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), filter var(--transition-fast);
}

.cookie-banner__btn:hover,
.cookie-banner__btn:focus-visible{
  transform:translateY(-1px);
  outline:none;
}

.cookie-banner__btn--primary{
  border-color:rgba(var(--brand-rgb), .35);
  background:linear-gradient(135deg, rgba(var(--brand-rgb), .95), rgba(var(--brand-indigo-rgb), .82));
  color:#fff;
  box-shadow:0 14px 32px rgba(var(--brand-rgb), .18);
}

.cookie-banner__btn--primary:hover,
.cookie-banner__btn--primary:focus-visible{
  filter:brightness(1.05);
}

.cookie-banner__btn--outline{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
  color:rgba(245,250,255,.88);
}

.cookie-banner__btn--outline:hover,
.cookie-banner__btn--outline:focus-visible{
  border-color:rgba(var(--brand-rgb), .28);
  background:rgba(var(--brand-rgb), .075);
  color:#fff;
}

.cookie-banner__btn--ghost{
  border-color:rgba(255,255,255,.10);
  background:rgba(4,8,15,.48);
  color:rgba(216,227,244,.74);
}

.cookie-banner__btn--ghost:hover,
.cookie-banner__btn--ghost:focus-visible{
  border-color:rgba(255,255,255,.18);
  color:#fff;
}

.cookie-dialog{
  width:min(100% - 2rem, 37rem);
  max-height:min(86vh, 46rem);
  margin:auto;
  padding:0;
  border:0;
  border-radius:24px;
  background:transparent;
  color:var(--fg);
  overflow:visible;
}

.cookie-dialog::backdrop{
  background:
    radial-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 3px 3px,
    rgba(3,7,13,.64);
  -webkit-backdrop-filter:blur(2px) saturate(105%);
  backdrop-filter:blur(2px) saturate(105%);
}

.cookie-dialog:not([open]){
  display:none;
}

.cookie-dialog.is-open{
  display:block;
  position:fixed;
  inset:50% auto auto 50%;
  z-index:2300;
  transform:translate(-50%, -50%);
}

.cookie-dialog__panel{
  position:relative;
  max-height:min(86vh, 46rem);
  overflow:auto;
  padding:clamp(1.15rem, 3vw, 1.65rem);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.032)),
    rgba(9,14,24,.985);
  box-shadow:0 28px 72px rgba(0,0,0,.40);
}

.cookie-dialog__close{
  position:absolute;
  top:.85rem;
  right:.85rem;
  display:grid;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:rgba(248,251,255,.78);
  cursor:pointer;
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.cookie-dialog__close:hover,
.cookie-dialog__close:focus-visible{
  border-color:rgba(var(--brand-rgb), .24);
  background:rgba(var(--brand-rgb), .10);
  color:#fff;
  outline:none;
}

.cookie-dialog__close svg{
  width:1.05rem;
  height:1.05rem;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cookie-dialog__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding-right:2.4rem;
  color:rgba(185,213,255,.82);
  font-size:.78rem;
  font-weight:850;
}

.cookie-dialog__eyebrow::before{
  content:"";
  width:.5rem;
  height:.5rem;
  border-radius:999px;
  background:rgba(var(--brand-rgb), .95);
  box-shadow:0 0 0 4px rgba(var(--brand-rgb), .13);
}

.cookie-dialog .cookie-dialog__panel h2{
  margin:.65rem 2.6rem .6rem 0;
  color:#fff;
  font-size:clamp(1.45rem, 3vw, 1.95rem);
  line-height:1.05;
}

.cookie-dialog p{
  max-width:58ch;
  margin:0;
  color:rgba(234,241,255,.80);
  font-size:.96rem;
  line-height:1.62;
}

.cookie-dialog__options{
  display:grid;
  gap:.62rem;
  margin-top:1.1rem;
}

.cookie-dialog__option{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:.72rem;
  align-items:start;
  padding:.78rem .82rem;
  border:1px solid rgba(155,186,228,.13);
  border-radius:16px;
  background:rgba(255,255,255,.035);
  cursor:pointer;
  transition:border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.cookie-dialog__option:hover,
.cookie-dialog__option:focus-within{
  border-color:rgba(var(--brand-rgb), .24);
  background:rgba(var(--brand-rgb), .06);
  transform:translateY(-1px);
}

.cookie-dialog__option--locked{
  cursor:default;
}

.cookie-dialog__option input{
  width:1.12rem;
  height:1.12rem;
  margin:.1rem 0 0;
  accent-color:rgb(var(--brand-rgb));
}

.cookie-dialog__option strong{
  display:block;
  color:rgba(248,251,255,.92);
  font-size:.94rem;
  line-height:1.2;
}

.cookie-dialog__option small{
  display:block;
  margin-top:.24rem;
  color:rgba(216,227,244,.66);
  font-size:.84rem;
  line-height:1.45;
}

.cookie-dialog__actions{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.62rem;
  margin-top:1.12rem;
}

.cookie-dialog__actions .buttonmain,
.cookie-dialog__actions .buttonmainsecond{
  min-height:2.85rem;
}

.cookie-dialog__link{
  display:inline-flex;
  margin-top:.9rem;
  font-size:.9rem;
}

@media (max-width:900px){
  .cookie-banner__body{
    grid-template-columns:minmax(0, 1fr);
  }

  .cookie-banner__details-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:680px){
  .cookie-banner{
    padding:.65rem .65rem calc(env(safe-area-inset-bottom, 0) + .65rem);
  }

  .cookie-banner__backdrop,
  .cookie-dialog::backdrop{
    -webkit-backdrop-filter:blur(1px);
    backdrop-filter:blur(1px);
  }

  .cookie-banner__card{
    max-height:86vh;
    padding:1rem;
    border-radius:20px;
  }

  .cookie-banner__header{
    margin-bottom:.72rem;
  }

  .cookie-banner__header h2{
    font-size:1.16rem;
  }

  .cookie-banner__lead{
    font-size:.88rem;
    line-height:1.52;
  }

  .cookie-banner__hint{
    margin-top:.52rem;
  }

  .cookie-banner__controls{
    gap:.46rem;
  }

  .cookie-banner__row{
    min-height:2.88rem;
    padding:.58rem .64rem;
    border-radius:14px;
  }

  .cookie-banner__row-text small{
    display:none;
  }

  .cookie-banner__details-grid{
    grid-template-columns:minmax(0, 1fr);
  }

  .cookie-banner__buttons{
    grid-template-columns:minmax(0, 1fr);
    gap:.48rem;
    margin-top:.82rem;
  }

  .cookie-banner__buttons [data-cookie-accept-all]{
    order:-1;
  }

  .cookie-banner__btn{
    min-height:2.7rem;
    width:100%;
  }

  .cookie-dialog{
    width:calc(100% - 1rem);
  }

  .cookie-dialog::backdrop,
  .cookie-dialog__panel{
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }

  .cookie-dialog__actions{
    grid-template-columns:1fr;
  }

  .cookie-dialog__actions [data-cookie-accept-all]{
    order:-1;
  }

  .cookie-dialog__actions .buttonmain,
  .cookie-dialog__actions .buttonmainsecond{
    width:100%;
  }
}
