/* Equal choices, native dialog semantics and a bounded first layer. */
.consent-banner:not([hidden]) { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: var(--space-s); padding: var(--space-s) var(--gutter); background: var(--bg); color: var(--text); border-block-start: 1px solid var(--line); max-block-size: 30dvh; overflow: auto; }
.consent-banner h2 { font-size: var(--step-0); margin: 0; }
.consent-banner p { font-size: var(--step--1); margin: 0; }
.has-consent-banner body { padding-block-end: 30dvh; }
.consent-actions { display: flex; gap: var(--space-xs); }
.consent-actions .btn-consent { flex: 1 1 0; min-inline-size: 0; }
.btn-consent { font: inherit; font-size: var(--step--1); font-weight: 600; min-block-size: 48px; text-align: center; background: var(--bg); color: var(--text); border: 1px solid var(--line); padding: var(--space-xs) var(--space-s); white-space: normal; cursor: pointer; }
.btn-consent:hover { background: var(--bg-raised); }
.consent-panel { inline-size: min(680px, calc(100% - 32px)); max-block-size: calc(100dvh - 32px); overflow: auto; margin: auto; padding: var(--space-m); border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); color: var(--text); }
.consent-panel[open] { display: grid; gap: var(--space-s); }
.consent-panel::backdrop { background: rgb(0 0 0 / .45); }
.consent-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-s); }
.consent-panel-head h2 { font-size: var(--step-2); }
.consent-category { padding-block: var(--space-s); border-block-start: 1px solid var(--line); }
.consent-category h2 { font-size: var(--step-1); }
.consent-category p { margin-block: var(--space-xs); }
.consent-toggle { display: flex; align-items: center; gap: var(--space-xs); font-weight: 600; }
.consent-toggle input { appearance: auto; inline-size: 24px; block-size: 24px; min-block-size: 24px; margin: 0; accent-color: var(--accent); }
.consent-details > div { display: flex; gap: var(--space-s); flex-wrap: wrap; }
.consent-details dt { font-weight: 600; }
.consent-details dd { margin: 0; }
.consent-gpc { padding: var(--space-s); border: 1px solid var(--line); }
@media (max-width: 700px) {
 .consent-banner:not([hidden]) { display: grid; }
 .consent-panel { padding: var(--space-s); }
 .consent-actions { inline-size: 100%; }
 .btn-consent { padding-inline: var(--space-xs); }
}
@media print { .consent-banner, .consent-panel { display: none; } .has-consent-banner body { padding-block-end: 0; } }

.consent-embed { display: grid; place-items: center; aspect-ratio: 16 / 9; background: var(--bg-raised); }
.consent-embed iframe { display: block; inline-size: 100%; block-size: 100%; border: 0; }
