.cookie-consent-banner,
.cookie-consent-panel {
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--inicio-text, var(--color-text-primary, #172033));
  z-index: 9999;
}

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

.cookie-consent-banner {
  position: fixed;
  right: max(18px, env(safe-area-inset-right, 0px));
  bottom: max(18px, env(safe-area-inset-bottom, 0px));
  width: min(356px, calc(100vw - 36px));
  margin: 0;
  padding: 16px;
  border: 1px solid var(--inicio-border, rgba(24, 34, 67, 0.14));
  border-radius: 14px;
  background: color-mix(in srgb, var(--inicio-soft-strong, #ffffff) 96%, var(--inicio-bg, #f5f6fb) 4%);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  pointer-events: none;
  transition:
    opacity 180ms ease,
    transform 180ms ease,
    border-color 180ms ease;
}

.cookie-consent-banner.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}

.cookie-consent-banner__inner {
  display: grid;
  gap: 11px;
}

.cookie-consent-banner__title {
  margin: 0;
  color: var(--inicio-text, var(--color-text-primary, #172033));
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cookie-consent-banner__text {
  margin: 0;
  color: var(--inicio-muted, var(--text-muted, rgba(31, 31, 31, 0.7)));
  font-size: 0.86rem;
  font-weight: 400;
  line-height: 1.45;
}

.cookie-consent-banner__actions {
  display: grid;
  grid-template-columns: 0.78fr 1fr 1fr;
  gap: 8px;
  align-items: center;
}

.cookie-consent-banner__reject {
  border: 0;
  background: transparent;
  color: var(--inicio-muted, var(--text-muted, rgba(31, 31, 31, 0.66)));
  min-height: 36px;
  padding: 8px 6px;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, currentColor 28%, transparent);
  text-underline-offset: 3px;
  cursor: pointer;
  transition:
    color 160ms ease,
    opacity 160ms ease;
}

.cookie-consent-banner__reject:hover,
.cookie-consent-banner__reject:focus-visible {
  color: var(--inicio-text, var(--color-text-primary, #172033));
  outline: none;
}

.cookie-consent-banner__reject:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--inicio-blue, #305fbd) 20%, transparent);
  border-radius: 999px;
}

.cookie-btn {
  min-height: 36px;
  border: 1px solid var(--inicio-border-strong, rgba(24, 34, 67, 0.24));
  border-radius: 999px;
  background: transparent;
  color: var(--inicio-text, var(--color-text-primary, #172033));
  padding: 8px 12px;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  transition:
    border-color 160ms ease,
    color 160ms ease,
    background 160ms ease,
    opacity 160ms ease;
}

.cookie-btn:hover,
.cookie-btn:focus-visible {
  border-color: color-mix(in srgb, var(--inicio-text, #172033) 36%, var(--inicio-border-strong, rgba(24, 34, 67, 0.24)));
  background: color-mix(in srgb, var(--inicio-text, #172033) 5%, transparent);
  outline: none;
}

.cookie-btn:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--inicio-blue, #305fbd) 20%, transparent);
}

.cookie-btn--primary {
  border-color: var(--inicio-primary-cta-border, transparent);
  background: var(--inicio-primary-cta, var(--inicio-red, #990000));
  color: #fff;
}

.cookie-btn--primary:hover,
.cookie-btn--primary:focus-visible {
  border-color: var(--inicio-primary-cta-border, transparent);
  background: var(--inicio-red-hover, var(--inicio-primary-cta, #b30d0d));
  color: #fff;
}

.cookie-btn--ghost,
.cookie-btn--secondary {
  background: color-mix(in srgb, var(--inicio-soft-strong, #ffffff) 72%, transparent);
}

.cookie-link {
  color: var(--inicio-text, var(--color-text-primary, #172033));
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, currentColor 36%, transparent);
  text-underline-offset: 3px;
}

.cookie-consent-panel {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.cookie-consent-panel.is-visible {
  display: flex;
}

.cookie-consent-panel__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 10, 24, 0.46);
}

.cookie-consent-panel__dialog {
  position: relative;
  width: min(620px, 94vw);
  max-height: min(86vh, 720px);
  overflow: hidden;
  border: 1px solid var(--inicio-border, rgba(24, 34, 67, 0.14));
  border-radius: 14px;
  background: var(--inicio-soft-strong, var(--surface-default, #ffffff));
  color: var(--inicio-text, var(--color-text-primary, #172033));
  box-shadow: 0 24px 56px rgba(5, 10, 24, 0.22);
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.cookie-panel__header {
  padding: 22px 22px 14px;
}

.cookie-panel__title {
  margin: 0 0 7px;
  color: var(--inicio-text, var(--color-text-primary, #172033));
  font-size: 1.22rem;
  font-weight: 850;
  line-height: 1.15;
  letter-spacing: 0;
}

.cookie-panel__subtitle {
  margin: 0;
  color: var(--inicio-muted, var(--text-muted, rgba(31, 31, 31, 0.7)));
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.45;
}

.cookie-panel__content {
  display: grid;
  gap: 0;
  overflow: auto;
  padding: 0 22px 4px;
}

.cookie-category {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 15px 0;
  border-top: 1px solid var(--inicio-border, rgba(24, 34, 67, 0.12));
}

.cookie-category__info {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.cookie-category__title {
  margin: 0;
  color: var(--inicio-text, var(--color-text-primary, #172033));
  font-size: 0.98rem;
  font-weight: 760;
  line-height: 1.2;
}

.cookie-category__description {
  margin: 0;
  color: var(--inicio-muted, var(--text-muted, rgba(31, 31, 31, 0.68)));
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.4;
}

.cookie-toggle {
  min-width: 56px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--inicio-border-strong, rgba(24, 34, 67, 0.24));
  border-radius: 999px;
  background: transparent;
  color: var(--inicio-muted, rgba(31, 31, 31, 0.7));
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    opacity 160ms ease;
}

.cookie-toggle[aria-pressed="true"] {
  border-color: color-mix(in srgb, var(--inicio-primary-cta, #990000) 42%, var(--inicio-border-strong, rgba(24, 34, 67, 0.24)));
  background: color-mix(in srgb, var(--inicio-primary-cta, #990000) 10%, transparent);
  color: var(--inicio-primary-cta, #990000);
}

.cookie-toggle:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.cookie-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--inicio-blue, #305fbd) 20%, transparent);
}

.cookie-panel__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
  padding: 16px 22px 20px;
  border-top: 1px solid var(--inicio-border, rgba(24, 34, 67, 0.12));
  background: color-mix(in srgb, var(--inicio-bg, #f5f6fb) 42%, var(--inicio-soft-strong, #ffffff));
}

.cookie-consent-banner,
.cookie-consent-panel,
.cookie-consent-banner__text,
.cookie-consent-banner__actions,
.cookie-panel__title,
.cookie-panel__subtitle,
.cookie-category__title,
.cookie-category__description,
.cookie-panel__footer {
  font-weight: 400;
}

body.dark-theme .cookie-consent-banner,
:root[data-theme="dark"] .cookie-consent-banner,
:root[data-theme="night"] .cookie-consent-banner {
  border-color: rgba(231, 235, 248, 0.18);
  background: #151b2d;
  color: #e7ebf8;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
}

body.dark-theme .cookie-consent-banner__title,
body.dark-theme .cookie-panel__title,
body.dark-theme .cookie-category__title,
:root[data-theme="dark"] .cookie-consent-banner__title,
:root[data-theme="dark"] .cookie-panel__title,
:root[data-theme="dark"] .cookie-category__title,
:root[data-theme="night"] .cookie-consent-banner__title,
:root[data-theme="night"] .cookie-panel__title,
:root[data-theme="night"] .cookie-category__title {
  color: #e7ebf8;
}

body.dark-theme .cookie-consent-banner__text,
body.dark-theme .cookie-panel__subtitle,
body.dark-theme .cookie-category__description,
body.dark-theme .cookie-consent-banner__reject,
:root[data-theme="dark"] .cookie-consent-banner__text,
:root[data-theme="dark"] .cookie-panel__subtitle,
:root[data-theme="dark"] .cookie-category__description,
:root[data-theme="dark"] .cookie-consent-banner__reject,
:root[data-theme="night"] .cookie-consent-banner__text,
:root[data-theme="night"] .cookie-panel__subtitle,
:root[data-theme="night"] .cookie-category__description,
:root[data-theme="night"] .cookie-consent-banner__reject {
  color: rgba(231, 235, 248, 0.72);
}

body.dark-theme .cookie-link,
body.dark-theme .cookie-consent-banner__reject:hover,
body.dark-theme .cookie-consent-banner__reject:focus-visible,
:root[data-theme="dark"] .cookie-link,
:root[data-theme="dark"] .cookie-consent-banner__reject:hover,
:root[data-theme="dark"] .cookie-consent-banner__reject:focus-visible,
:root[data-theme="night"] .cookie-link,
:root[data-theme="night"] .cookie-consent-banner__reject:hover,
:root[data-theme="night"] .cookie-consent-banner__reject:focus-visible {
  color: #e7ebf8;
}

body.dark-theme .cookie-btn,
:root[data-theme="dark"] .cookie-btn,
:root[data-theme="night"] .cookie-btn {
  border-color: rgba(231, 235, 248, 0.24);
  color: var(--inicio-text, #e7ebf8);
  background: transparent;
}

body.dark-theme .cookie-btn:hover,
body.dark-theme .cookie-btn:focus-visible,
:root[data-theme="dark"] .cookie-btn:hover,
:root[data-theme="dark"] .cookie-btn:focus-visible,
:root[data-theme="night"] .cookie-btn:hover,
:root[data-theme="night"] .cookie-btn:focus-visible {
  border-color: rgba(231, 235, 248, 0.44);
  background: rgba(231, 235, 248, 0.08);
}

body.dark-theme .cookie-btn--primary,
body.dark-theme .cookie-btn--primary:hover,
body.dark-theme .cookie-btn--primary:focus-visible,
:root[data-theme="dark"] .cookie-btn--primary,
:root[data-theme="dark"] .cookie-btn--primary:hover,
:root[data-theme="dark"] .cookie-btn--primary:focus-visible,
:root[data-theme="night"] .cookie-btn--primary,
:root[data-theme="night"] .cookie-btn--primary:hover,
:root[data-theme="night"] .cookie-btn--primary:focus-visible {
  border-color: rgba(255, 255, 255, 0.16);
  background: var(--inicio-red, #f44e4e);
  color: #fff;
}

body.dark-theme .cookie-consent-panel__dialog,
:root[data-theme="dark"] .cookie-consent-panel__dialog,
:root[data-theme="night"] .cookie-consent-panel__dialog {
  border-color: rgba(231, 235, 248, 0.18);
  background: #151b2d;
  color: #e7ebf8;
}

body.dark-theme .cookie-panel__footer,
body.dark-theme .cookie-category,
:root[data-theme="dark"] .cookie-panel__footer,
:root[data-theme="dark"] .cookie-category,
:root[data-theme="night"] .cookie-panel__footer,
:root[data-theme="night"] .cookie-category {
  border-color: rgba(231, 235, 248, 0.14);
}

body.dark-theme .cookie-toggle,
:root[data-theme="dark"] .cookie-toggle,
:root[data-theme="night"] .cookie-toggle {
  border-color: rgba(231, 235, 248, 0.26);
  color: var(--inicio-muted, rgba(231, 235, 248, 0.72));
}

body.dark-theme .cookie-toggle[aria-pressed="true"],
:root[data-theme="dark"] .cookie-toggle[aria-pressed="true"],
:root[data-theme="night"] .cookie-toggle[aria-pressed="true"] {
  border-color: rgba(255, 255, 255, 0.18);
  background: color-mix(in srgb, var(--inicio-red, #f44e4e) 18%, transparent);
  color: var(--inicio-red, #f44e4e);
}

@media (max-width: 720px) {
  .cookie-consent-banner {
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
    left: 12px;
    width: auto;
    padding: 14px;
    border-radius: 12px;
  }

  .cookie-consent-banner__inner {
    gap: 10px;
  }

  .cookie-consent-banner__text {
    font-size: 0.84rem;
    line-height: 1.38;
  }

  .cookie-consent-banner__actions {
    grid-template-columns: 0.78fr 1fr 1fr;
    gap: 7px;
  }

  .cookie-btn {
    min-height: 36px;
    padding: 8px 9px;
    font-size: 0.8rem;
  }

  .cookie-consent-banner__reject {
    padding-inline: 4px;
    font-size: 0.78rem;
  }

  .cookie-consent-panel {
    align-items: flex-end;
    padding: 10px;
  }

  .cookie-consent-panel__dialog {
    width: 100%;
    max-height: 86vh;
    border-radius: 12px;
  }

  .cookie-panel__header {
    padding: 18px 18px 12px;
  }

  .cookie-panel__content {
    padding-inline: 18px;
  }

  .cookie-category {
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: start;
  }

  .cookie-toggle {
    justify-self: start;
  }

  .cookie-panel__footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 14px 18px 18px;
  }

  .cookie-panel__footer .cookie-btn--primary {
    grid-column: 1 / -1;
  }
}
