/* Shared consent controls for the current visual identity. */
.expert-consent[hidden],
.expert-consent [hidden] { display: none !important; }
.expert-consent {
  position: fixed;
  z-index: 12000;
  inset-inline: 20px;
  inset-block-end: max(20px, env(safe-area-inset-bottom));
  width: min(1100px, calc(100% - 40px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 22px 24px;
  border: 1px solid #786095;
  border-radius: 14px;
  background: #171027;
  color: #f7f3ff;
  box-shadow: 0 14px 60px #05020b66;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.8;
  text-align: start;
  max-height: min(75dvh, 620px);
  overflow-y: auto;
  opacity: 0;
  transition: opacity 200ms ease;
}
.expert-consent.is-visible { opacity: 1; }
.expert-consent #consentTitle {
  margin: 0 0 7px;
  font-family: inherit;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #fff;
}
.expert-consent #consentDescription {
  max-width: 76ch;
  margin: 0;
  color: #d7cfe3;
  font-size: 13px;
  line-height: 1.9;
}
.expert-consent .consent-banner__actions { display: grid; gap: 8px; min-width: 176px; }
.expert-consent .consent-btn {
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid #8b6aaf;
  border-radius: 7px;
  background: #312044;
  color: #fff;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.expert-consent .consent-btn--accept,
.expert-consent .consent-btn--reject { background: #473065; }
.expert-consent .consent-btn:hover { background: #593c7d; border-color: #b796dc; }
.expert-consent :focus-visible,
.consent-settings-link:focus-visible { outline: 2px solid #d5b8fc; outline-offset: 4px; }
.expert-consent .consent-banner__links { display: flex; flex-wrap: wrap; gap: 16px; margin-block-start: 10px; }
.expert-consent .consent-banner__links a { color: #d9bcff; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.expert-consent .consent-banner__preferences { display: grid; gap: 14px; margin-block: 18px 8px; padding-block-start: 15px; border-top: 1px solid #544063; }
.expert-consent .consent-choice { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.expert-consent .consent-choice input { width: 18px; height: 18px; flex: 0 0 18px; margin-block-start: 4px; accent-color: #ad78f7; }
.expert-consent .consent-choice strong { display: block; font-size: 13px; color: #fff; }
.expert-consent .consent-choice small { display: block; font-size: 12px; color: #d7cfe3; line-height: 1.8; }
.expert-consent .consent-btn--save { justify-self: start; min-width: 160px; }
.consent-settings-link { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .expert-consent { inset-inline: 10px; inset-block-end: max(10px, env(safe-area-inset-bottom)); width: calc(100% - 20px); grid-template-columns: 1fr; gap: 14px; padding: 18px; border-radius: 12px; }
  .expert-consent .consent-banner__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
  .expert-consent .consent-btn--customize { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .expert-consent { transition: none; }
}
