.consent-ui {
    color: #263431;
    background: #fff;
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.55;
}
.consent-ui[hidden] { display: none; }
.consent-ui h1, .consent-ui h2 { font-weight: 700; line-height: 1.25; margin: 0 0 1rem; }
.consent-ui h1 { font-size: 1.9rem; }
.consent-ui h2 { font-size: 1.25rem; }
.consent-ui p { margin: .75rem 0; }
.consent-ui a { color: #34604a; text-decoration: underline; }
.consent-ui button {
    border: 1px solid #577765;
    border-radius: .5rem;
    padding: .65rem 1rem;
    background: #f1f6f2;
    color: #263431;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
}
.consent-ui button:hover { background: #e3eee6; }
.consent-ui button:disabled { opacity: .65; cursor: wait; }
.consent-ui :focus-visible { outline: 3px solid #41664f; outline-offset: 3px; }
.consent-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.consent-dialog {
    position: fixed;
    margin: auto;
    width: min(38rem, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    padding: 1.5rem;
    border: 1px solid #b6c9bc;
    border-radius: .85rem;
    overflow: auto;
}
.consent-dialog::backdrop { background: #152d2466; }
.consent-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.consent-dialog-heading button { padding: .25rem .75rem; font-size: 1.4rem; }
.consent-page { max-width: 48rem; margin: 2.5rem auto; padding: 1.5rem; }
.consent-ui fieldset { margin: 1.5rem 0; padding: 0; border: 0; }
.consent-ui legend { font-weight: 700; margin-bottom: .75rem; }
.consent-choice { display: flex; gap: .85rem; align-items: start; margin: 1rem 0; cursor: pointer; }
.consent-choice input { width: 1.25rem; height: 1.25rem; margin-top: .25rem; flex-shrink: 0; accent-color: #41664f; }
.consent-choice span span { display: block; font-size: .925rem; }
.consent-status { min-height: 1.5em; }
.consent-error { color: #9a2626; }
@media (max-width: 480px), (max-height: 480px) {
    .consent-actions { flex-direction: column; }
    .consent-actions button { width: 100%; }
    .consent-dialog { padding: 1rem; }
}
