/* Public and setup pages share the app shell; reading limits belong to content. */
.direct-hero > *, .direct-signup > *, .direct-benefit > div, .direct-feature,
.direct-preview-payment > div, .direct-faq-items, .auth-card { min-width: 0; }
.direct-page, .direct-signup, .auth-shell, .wiz-page { overflow-wrap: anywhere; }
.direct-page .btn, .direct-signup .btn, .auth-card .btn, .wiz-page .btn {
    max-width: 100%; white-space: normal; height: auto; line-height: 1.35;
}
.direct-directory-tools .hm-search { width: min(100%, 22em); min-width: 0; }
.direct-city-select { max-width: 100%; }
.direct-city-select select { min-width: 0; max-width: 100%; }
.direct-page .rl-name, .direct-page .rl-desc { white-space: normal; overflow: visible; text-overflow: clip; }
.direct-page .rl-title { flex-wrap: wrap; }

/* Signup uses both columns without turning one input into a screen-wide field. */
.direct-signup { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.direct-signup > .card { width: 100%; max-width: 42rem; justify-self: end; }
.direct-signup h1 { max-width: 22ch; }
.direct-signup .direct-steps p { max-width: 58ch; }
.direct-faq { max-width: none; }
.direct-faq details p { max-width: 68ch; }
.direct-faq summary { overflow-wrap: anywhere; }

/* Long legal text keeps a reading measure within the same full-width shell. */
.legal-reading { width: 100%; max-width: 54rem; min-width: 0; overflow-wrap: anywhere; }
.legal-reading .card { min-width: 0; }

/* The wizard has full-bleed bands, each aligned to the shared shell. */
.wiz-top-inner, .wiz-head-inner, .wiz-wrap {
    width: 100%; max-width: var(--layout-max); margin-inline: auto; padding-inline: var(--layout-gutter);
}
.wiz-page main.container.page > .alert {
    width: calc(100% - var(--layout-gutter) * 2);
    max-width: calc(var(--layout-max) - var(--layout-gutter) * 2);
}
.wiz-top-inner { height: auto; min-height: calc(var(--space-8) + var(--space-3)); padding-block: var(--space-3); flex-wrap: wrap; }
.wiz-top-label { overflow: visible; white-space: normal; text-overflow: clip; }
.wiz-top-later { white-space: normal; min-height: 2.75rem; display: inline-flex; align-items: center; }
.wiz-grid { grid-template-columns: clamp(12rem, 20vw, 18rem) minmax(0, 1fr); gap: var(--space-6); }
.wiz-card-body { padding-inline: clamp(var(--space-4), 2.5vw, var(--space-6)); }
.wiz-addr .form-row { max-width: 60rem; }
.wiz-page .oh-row { grid-template-columns: minmax(5rem, .5fr) minmax(0, 1fr) auto; }
.wiz-page .oh-times, .wiz-page .oh-times > .stack { min-width: 0; }
.wiz-page .oh-times input[type="time"] { width: 100%; min-width: 0; }
.wiz-page .oh-tools, .wiz-page .oh-list { max-width: 64rem; }
.wiz-page .ck-body { min-width: 0; }
.wiz-bar { flex-wrap: wrap; }
.wiz-bar > form { max-width: 100%; }
.wiz-bar-later { white-space: normal; }

@media (min-width: 64rem) {
    .direct-faq { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: var(--space-8); }
}
@media (max-width: 55rem) {
    .direct-signup { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
    .direct-signup > .card { justify-self: start; }
    .direct-signup .direct-steps { display: none; }
}
@media (max-width: 51.1875rem) {
    .wiz-top-inner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2) var(--space-3); }
    .wiz-top-inner > .spacer, .wiz-top .wiz-short { display: none; }
    .wiz-top .wiz-long { display: inline; }
    .wiz-top-inner > .brand { grid-column: 1; grid-row: 1; }
    .wiz-top-inner > .wiz-draft, .wiz-top-inner > .badge { grid-column: 2; grid-row: 1; justify-self: end; max-width: 100%; }
    .wiz-top-label { display: block; grid-column: 1 / -1; font-size: var(--text-sm); }
    .wiz-top-later { grid-column: 1 / -1; justify-self: start; }
    .wiz-grid { grid-template-columns: minmax(0, 1fr); }
    .wiz-wrap { padding-top: var(--space-5); }
    .wiz-card { margin-inline: 0; border-inline: 1px solid var(--line); border-radius: var(--r); }
    .wiz-card-body { padding-inline: var(--space-4); }
    .wiz-head-row { flex-wrap: wrap; }
    .wiz-bar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); padding-inline: var(--layout-gutter); }
    .wiz-bar > .wiz-bar-next, .wiz-bar > form { grid-column: 1 / -1; grid-row: 1; width: 100%; }
    .wiz-bar > a { min-width: 0; min-height: 2.75rem; margin: 0; padding: var(--space-1); align-self: stretch; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
    .wiz-bar > a.wiz-bar-later:last-of-type { grid-column: 3; }
    .wiz-page main.container.page { padding-bottom: calc(var(--space-8) * 4 + env(safe-area-inset-bottom)); }
}
@media (max-width: 37.5rem) {
    .wiz-page .oh-row { grid-template-columns: minmax(0, 1fr) auto; }
    .wiz-page .oh-row > .oh-times { grid-column: 1 / -1; grid-row: 2; }
    .wiz-page .oh-row > .oh-switch { grid-column: 2; grid-row: 1; }
    .wiz-page .checklist li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; }
    .wiz-page .checklist li > .btn { grid-column: 2; justify-self: start; }
}
@media (max-width: 25rem) {
    .direct-feature-grid { grid-template-columns: minmax(0, 1fr); }
    .direct-preview-address { flex-wrap: wrap; }
    .direct-preview-label { margin-left: 0; }
    .auth-shell-header { flex-wrap: wrap; }
}
@media (max-height: 40rem) {
    .wiz-top, .wiz-head, .wiz-bar { position: static; }
    .wiz-page main.container.page { padding-bottom: var(--space-8); }
}
