.aa-consent-banner,
.aa-consent-modal {
  --consent-ink: #101817;
  --consent-soft: #293331;
  --consent-surface: #fbfcf8;
  --consent-muted: #59635f;
  --consent-border: #c9d0c8;
  --consent-signal: #ff4d20;
  font-family: "Helvetica Neue", Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
  color: var(--consent-ink);
}

.aa-consent-banner {
  position: fixed;
  z-index: 1000;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 24px;
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  padding: 22px 24px;
  align-items: center;
  border: 1px solid var(--consent-border);
  border-radius: 8px;
  background: var(--consent-surface);
  box-shadow: 0 22px 60px rgb(16 24 23 / 18%);
}

.aa-consent-banner[hidden],
.aa-consent-modal-wrap[hidden] { display: none !important; }
.aa-consent-copy h2 { margin: 0 0 6px; font-size: 1.25rem; line-height: 1.15; letter-spacing: -.025em; }
.aa-consent-copy p { max-width: 660px; margin: 0; color: var(--consent-muted); font-size: .94rem; line-height: 1.5; }
.aa-consent-copy a { color: var(--consent-ink); text-underline-offset: 3px; }
.aa-consent-actions { display: flex; gap: 10px; align-items: center; }

.aa-consent-button,
.aa-consent-configure {
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid var(--consent-ink);
  border-radius: 8px;
  font: 700 .94rem/1 "Helvetica Neue", Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
  white-space: nowrap;
  cursor: pointer;
}
.aa-consent-button { color: var(--consent-surface); }
.aa-consent-accept { border-color: var(--consent-signal); background: var(--consent-signal); color: var(--consent-ink); }
.aa-consent-necessary, .aa-consent-save { background: var(--consent-ink); }
.aa-consent-configure { padding-inline: 8px; border-color: transparent; background: transparent; color: var(--consent-ink); text-decoration: underline; text-underline-offset: 3px; }
.aa-consent-button:hover, .aa-consent-configure:hover { filter: brightness(.94); }
.aa-consent-button:focus-visible, .aa-consent-configure:focus-visible, .aa-consent-switch:focus-visible, .aa-consent-footer-link:focus-visible { outline: 3px solid #2457f5; outline-offset: 3px; }

.aa-consent-modal-wrap { position: fixed; z-index: 1100; inset: 0; display: grid; padding: 20px; place-items: center; background: rgb(16 24 23 / 55%); }
.aa-consent-modal { width: min(620px, 100%); max-height: calc(100vh - 40px); overflow: auto; border-radius: 8px; background: var(--consent-surface); box-shadow: 0 24px 80px rgb(0 0 0 / 28%); }
.aa-consent-modal > header { padding: 26px 28px 20px; border-bottom: 1px solid var(--consent-border); }
.aa-consent-kicker { margin: 0 0 10px !important; color: var(--consent-muted); font: 700 .72rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace !important; letter-spacing: .1em; text-transform: uppercase; }
.aa-consent-modal h2 { margin: 0 0 8px; font-size: 1.75rem; line-height: 1.05; letter-spacing: -.045em; }
.aa-consent-modal header > p:last-child, .aa-consent-row p { margin: 0; color: var(--consent-muted); font-size: .94rem; line-height: 1.5; }
.aa-consent-preferences { padding: 8px 28px; }
.aa-consent-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 20px 0; align-items: start; border-bottom: 1px solid var(--consent-border); }
.aa-consent-row:last-child { border-bottom: 0; }
.aa-consent-row h3 { margin: 0 0 5px; font-size: 1rem; line-height: 1.25; }
.aa-consent-row strong { color: #176b4d; font: 700 .72rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .06em; text-transform: uppercase; }
.aa-consent-switch { position: relative; width: 48px; height: 28px; padding: 0; border: 0; border-radius: 999px; background: var(--consent-border); cursor: pointer; transition: background 160ms ease; }
.aa-consent-switch span { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: white; transition: transform 160ms ease; }
.aa-consent-switch[aria-checked="true"] { background: var(--consent-ink); }
.aa-consent-switch[aria-checked="true"] span { transform: translateX(20px); }
.aa-consent-modal > footer { display: flex; justify-content: flex-end; gap: 10px; padding: 20px 28px 26px; border-top: 1px solid var(--consent-border); }
.aa-consent-modal-open { overflow: hidden; }
.aa-consent-footer-link { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; cursor: pointer; }

@media (max-width: 800px) {
  .aa-consent-banner { right: 12px; bottom: 12px; left: 12px; grid-template-columns: 1fr; gap: 18px; width: calc(100% - 24px); padding: 20px; }
  .aa-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .aa-consent-button { width: 100%; padding-inline: 12px; }
  .aa-consent-configure { grid-column: 1 / -1; min-height: 38px; }
  .aa-consent-modal > header, .aa-consent-preferences, .aa-consent-modal > footer { padding-right: 20px; padding-left: 20px; }
  .aa-consent-modal > footer { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 380px) {
  .aa-consent-actions, .aa-consent-modal > footer { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .aa-consent-switch, .aa-consent-switch span { transition: none; }
}
