/* Contact and privacy additions; existing site layout stays unchanged. */
[hidden] { display: none !important; }
.form-trap { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.contact-privacy, .contact-status { font-size: 0.9rem; margin: 1rem 0; }
.contact-status:empty { display: none; }
.contact-status.is-error, .field-error, .consent-error { color: #9d2525; }
.contact-status.is-success { color: #215c3e; }
.contact-status:focus { outline: 2px solid var(--brisen-blue); outline-offset: 5px; }
input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: #9d2525 !important; }
.privacy-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.map-placeholder { padding: 3rem 1.5rem; min-height: 18rem; background: #fff; border: 1px solid var(--brisen-border); border-radius: 4px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.map-placeholder p { max-width: 40rem; margin-bottom: 1rem; }
.map-placeholder .button { margin: 0.5rem 0 1rem; }
body.consent-open { overflow: hidden; }
.consent-dialog { box-sizing: border-box; width: min(42rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 2.5rem; margin: auto; border: 1px solid var(--brisen-border); border-radius: 1.25rem; background: #fff; color: var(--brisen-text); box-shadow: 0 1rem 4rem rgba(16,35,63,0.25); overflow-y: auto; }
.consent-dialog::backdrop { background: rgba(16,35,63,0.55); }
.consent-dialog h2 { margin: 0.6rem 2rem 1rem 0; font-size: 2rem; }
.consent-dialog p { margin-bottom: 1rem; }
.consent-eyebrow { color: var(--brisen-blue); font-size: 0.75rem; font-weight: 400; letter-spacing: 0.12em; }
.consent-dialog .consent-close { position: absolute; right: 0.7rem; top: 0.7rem; width: 2.75rem; height: 2.75rem; padding: 0; line-height: 1; font-size: 1.7rem; border-radius: 50%; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1.5rem; }
.consent-actions .button { flex: 1 1 9rem; padding: 0.7rem 1rem; height: auto; line-height: 1.5; white-space: normal; min-height: 2.75rem; color: var(--brisen-blue-dark) !important; box-shadow: inset 0 0 0 1px var(--brisen-blue); }
.consent-links { font-size: 0.9rem; }
.consent-option { padding: 1rem 0; border-top: 1px solid var(--brisen-border); }
.consent-option strong, .consent-option label { font-size: 1rem; color: var(--brisen-blue-dark); }
.consent-option > span { float: right; font-size: 0.85rem; color: var(--brisen-muted); }
.consent-option p { font-size: 0.95rem; margin: 0.5rem 0 0; }
.consent-dialog button:focus-visible, .consent-dialog a:focus-visible { outline: 2px solid var(--brisen-blue); outline-offset: 3px; }
.document-page { padding: 0; }
.document-shell { width: min(48rem, calc(100% - 3rem)); margin: 3rem auto; }
.document-shell h1 { font-size: clamp(2rem, 5vw, 3rem); margin-top: 1.5rem; }
.document-shell h2 { font-size: 1.7rem; margin-top: 2rem; }
.document-shell .field { margin: 1.25rem 0; }
.document-shell input, .document-shell textarea { width: 100%; }
.document-shell a { overflow-wrap: anywhere; }
.document-shell table { font-size: 0.9rem; }
@media (max-width: 480px) {
    .consent-dialog { padding: 1.5rem; }
    .consent-dialog h2 { font-size: 1.7rem; }
    .consent-actions { flex-direction: column; }
    .consent-actions .button { flex-basis: auto; width: 100%; }
    .consent-option > span { float: none; display: block; }
}
