.consent-layer {
  position:fixed;
  z-index:10000;
  inset:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:22px;
  background:rgba(4,6,6,.48);
  opacity:0;
  visibility:hidden;
  backdrop-filter:blur(7px);
  transition:opacity .22s ease,visibility .22s ease;
}

.consent-layer[hidden] {
  display:none;
}

.consent-layer.is-visible {
  opacity:1;
  visibility:visible;
}

.consent-panel {
  width:min(100%,760px);
  padding:20px;
  border:1px solid rgba(125,225,220,.2);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(23,28,28,.98),rgba(13,16,16,.99));
  box-shadow:0 28px 90px rgba(0,0,0,.48);
  color:#DCE5E3;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transform:translateY(18px) scale(.985);
  transition:transform .22s ease;
}

.consent-layer.is-visible .consent-panel {
  transform:none;
}

.consent-heading {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:start;
}

.consent-icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(125,225,220,.22);
  border-radius:13px;
  background:rgba(108,221,216,.09);
  color:#A8E8E3;
  font-size:20px;
}

.consent-heading h2 {
  margin:0 0 6px;
  color:#F5F7F6;
  font-size:20px;
  line-height:1.25;
  letter-spacing:-.025em;
}

.consent-heading p {
  margin:0;
  color:#A8B3B1;
  font-size:14px;
  line-height:1.6;
}

.consent-heading a {
  color:#A8E8E3;
  text-underline-offset:3px;
}

.consent-preferences {
  margin-top:16px;
  display:grid;
  gap:8px;
}

.consent-preferences[hidden] {
  display:none;
}

.consent-preference {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 13px;
  border:1px solid rgba(125,225,220,.11);
  border-radius:12px;
  background:#0F1212;
}

.consent-preference-copy {
  min-width:0;
  display:grid;
  gap:3px;
}

.consent-preference strong {
  color:#DCE5E3;
  font-size:14px;
}

.consent-preference small {
  color:#7D9190;
  font-size:12px;
  line-height:1.5;
}

.consent-preference input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.consent-toggle {
  position:relative;
  width:38px;
  height:22px;
  flex:0 0 auto;
  border:1px solid #3A4242;
  border-radius:999px;
  background:#1C2221;
  transition:.18s;
}

.consent-toggle::after {
  position:absolute;
  width:14px;
  height:14px;
  top:3px;
  left:3px;
  border-radius:50%;
  background:#859897;
  content:"";
  transition:.18s;
}

.consent-preference input:checked + .consent-toggle {
  border-color:#67D9D4;
  background:#55BBB7;
}

.consent-preference input:checked + .consent-toggle::after {
  background:#fff;
  transform:translateX(16px);
}

.consent-preference input:focus-visible + .consent-toggle {
  outline:2px solid #DCE5E3;
  outline-offset:3px;
}

.consent-preference input:disabled + .consent-toggle {
  opacity:.58;
}

.consent-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:17px;
}

.consent-button {
  min-height:40px;
  padding:9px 14px;
  border-radius:10px;
  font:800 13px/1 Inter,ui-sans-serif,sans-serif;
  cursor:pointer;
  transition:transform .18s,border-color .18s,background .18s,filter .18s;
}

.consent-button[hidden] {
  display:none;
}

.consent-secondary {
  border:1px solid #353D3D;
  background:#171A1A;
  color:#CED6D5;
}

.consent-primary {
  border:1px solid #70DCD5;
  background:linear-gradient(135deg,#A8E8E3,#55C8C3);
  color:#0C1111;
}

.consent-button:hover {
  transform:translateY(-1px);
  filter:brightness(1.06);
}

.consent-button:focus-visible {
  outline:2px solid #A8E8E3;
  outline-offset:3px;
}

.footer-cookie-settings {
  padding:0;
  border:0;
  background:none;
  color:#8D9F9F;
  font:inherit;
  cursor:pointer;
}

.footer-cookie-settings:hover {
  color:#fff;
}

@media (max-width:620px) {
  .consent-layer {
    padding:10px;
  }

  .consent-panel {
    padding:17px;
    border-radius:17px;
  }

  .consent-heading {
    grid-template-columns:38px minmax(0,1fr);
    gap:11px;
  }

  .consent-icon {
    width:38px;
    height:38px;
    border-radius:11px;
    font-size:17px;
  }

  .consent-heading h2 {
    font-size:18px;
  }

  .consent-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .consent-primary {
    grid-column:1/-1;
    grid-row:1;
  }

  .consent-button {
    width:100%;
    padding:9px 8px;
  }
}

@media (max-width:350px) {
  .consent-heading {
    grid-template-columns:1fr;
  }

  .consent-icon {
    display:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .consent-layer,
  .consent-panel,
  .consent-button,
  .consent-toggle,
  .consent-toggle::after {
    transition:none!important;
  }
}