/* Legal content and its client-created contents wrapper share the existing grid. */
.dfl-legal-page .ds-legal-contents {
    grid-area: toc;
    align-self: start;
    position: sticky;
    top: 96px;
    max-height: calc(100vh - 120px);
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
    scrollbar-gutter: stable;
}
.dfl-legal-page .ds-legal-contents .dfl-legal-jump { position: static; }
@media (max-width: 980px) {
    .dfl-legal-page .ds-legal-contents { position: static; max-height: none; overflow: visible; }
}
.ds-question-help .dfl-lede { max-width: 65ch; }
.ds-question-help { padding: 36px 0 !important; }
.ds-question-help .ds-copy-width { max-width: 720px !important; }
.ds-question-form {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
    padding: 18px;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    background: #fff;
}
.ds-question-wide { grid-column: 1 / -1; }
.ds-question-field { min-width: 0; }
.ds-question-field label { display: block; margin-bottom: 6px; color: #142c4f; font-weight: 600; }
.ds-question-field input, .ds-question-field select, .ds-question-field textarea {
    display: block; width: 100%; box-sizing: border-box; min-height: 42px;
    padding: 9px 12px; border: 1px solid #b3c0d0; border-radius: 8px;
    font: inherit; color: #142c4f; background: #fff;
}
.ds-question-field textarea { min-height: 88px; resize: vertical; }
.ds-question-field :is(input,select,textarea):focus-visible { outline: 3px solid #3454f5; outline-offset: 2px; }
.ds-question-field [aria-invalid="true"] { border-color: #a52828; }
.ds-question-note { margin: 6px 0 0; color: #52647b; font-size: 12px; line-height: 1.5; }
.ds-question-note a, .ds-question-alternative a { color: #1e4fd6; text-decoration: underline; overflow-wrap: anywhere; }
.ds-question-form button { margin-top: 12px; min-height: 44px; cursor: pointer; }
.ds-question-form button:disabled { cursor: wait; }
.ds-question-error { margin: 8px 0 0; color: #9b2323; font-size: 13px; line-height: 1.5; }
.ds-question-status { margin: 24px 0; padding: 16px 18px; border: 1px solid #b3c0d0; border-radius: 8px; }
.ds-question-status.is-error { color: #9b2323; border-color: #d7abab; background: #fff8f8; }
.ds-question-status.is-success { color: #075e59; border-color: #8cc8c3; background: #f1faf8; }
.ds-question-status[hidden], .ds-question-error[hidden] { display: none; }
.ds-question-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#ds-question-turnstile { min-height: 66px; }
@media (max-width: 600px) {
    .ds-question-form { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 14px; }
    .ds-question-form button { width: 100%; }
}
