.amex-consent[hidden] { display: none !important; }
.amex-consent {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 10000;
  width: min(26rem, calc(100% - 2rem));
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  padding: .75rem;
  border: 1px solid #d1d9e6;
  border-radius: 12px;
  background: #fff;
  color: #00175a;
  box-shadow: 0 8px 36px rgba(0, 15, 55, .25);
  font-family: 'DM Sans', sans-serif;
  text-align: left;
  line-height: 1.45;
}
.amex-consent__header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .375rem; }
.amex-consent__title { margin: 0; font-family: inherit; font-size: .9375rem; font-weight: 700; }
.amex-consent__text { margin: 0 0 .25rem; font-size: .875rem; }
.amex-consent__note { margin: 0; font-size: .8125rem; color: #4a5568; }
.amex-consent__details { display: inline-flex; align-items: center; min-height: 24px; flex-shrink: 0; font-size: .8125rem; color: #0040a1; text-decoration: underline; text-underline-offset: 3px; }
.amex-consent__actions { display: flex; gap: .5rem; margin-top: .625rem; }
.amex-consent__button {
  flex: 1;
  min-height: 44px;
  border: 1px solid #00175a;
  border-radius: 7px;
  padding: .5rem .75rem;
  background: #00175a;
  color: #fff;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
}
.amex-consent__button:hover { background: #0040a1; border-color: #0040a1; }
.amex-consent__button:focus-visible, .amex-consent__details:focus-visible,
.amex-consent-preferences:focus-visible { outline: 3px solid #006fcf; outline-offset: 4px; }
.amex-consent-preferences {
  min-height: 44px;
  padding: .4rem 0;
  color: inherit;
  background: none;
  border: 0;
  font: inherit;
  font-size: .875rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
@media (max-width: 420px) {
  .amex-consent { left: .5rem; bottom: max(.5rem, env(safe-area-inset-bottom)); width: calc(100% - 1rem); }
}
