/* Shared qualification fields and the consultation step flow. */
/* The focused dialog must stay above the site's fixed cookie notice (999999). */
.d4c-backdrop { z-index: 1000000; }
.d4c-wizard [hidden], .lead-question [hidden] { display: none !important; }
.lead-question { min-width: 0; margin: 0; padding: 0; border: 0; }
.lead-question legend { float: none; width: auto; margin: 0 0 8px; color: var(--white); font: 600 18px/1.4 'Manrope', sans-serif; }
.lead-help, .lead-required { color: var(--muted); font-size: 14px; line-height: 1.6; margin: 0 0 16px; }
.lead-required { font-size: 12px; margin-bottom: 8px; }
.lead-choices { display: flex; gap: 12px; }
.lead-choice { position: relative; flex: 1; max-width: 180px; cursor: pointer; }
.lead-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.lead-choice span { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 50px; padding: 12px 18px; border: 1px solid var(--border-hover); border-radius: var(--r-sm); background: var(--ink); color: var(--white); font-size: 16px; font-weight: 600; }
.lead-choice i { visibility: hidden; font-size: 13px; }
.lead-choice:hover span { border-color: var(--accent); }
.lead-choice input:checked + span { border-color: var(--accent); background: var(--accent-dim); color: var(--accent); }
.lead-choice input:checked + span i { visibility: visible; }
.lead-choice input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 4px; }
.lead-detail { margin-top: 20px; }
.lead-detail input { width: 100%; min-width: 0; }
.lead-detail label { display: block; }
.lead-question .lead-detail label, .d4c-wizard .d4-field label { font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: normal; text-transform: none; }
.lead-question input::placeholder { color: var(--muted); opacity: 1; }
.d4c-modal.d4c-wizard { display: flex; flex-direction: column; gap: 0; width: min(660px, 100%); max-height: calc(100dvh - 48px); overflow: clip; padding: 24px 28px; border-radius: var(--r-lg); }
.d4c-wizard-header, #d4c-progress-wrap, .d4c-selection { flex-shrink: 0; }
.d4c-wizard::after { display: none; }
.d4c-wizard-header { padding-right: 40px; }
.d4c-wizard .d4c-modal-title { font-size: clamp(20px, 3vw, 26px); line-height: 1.25; }
.d4c-wizard .d4c-modal-sub { margin: 8px 0 16px; font-size: 14px; }
.d4c-wizard .d4c-close { min-width: 44px; min-height: 44px; top: 18px; right: 18px; }
.d4c-step-counter { color: var(--accent); font-size: 13px; font-weight: 600; margin: 0 0 8px; }
.d4c-progress { list-style: none; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin: 0 0 14px; padding: 0; }
.d4c-progress li { min-width: 0; }
.d4c-progress button { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; min-height: 62px; padding: 7px 0; border: 0; border-top: 2px solid var(--border-hover); border-radius: 0; background: transparent; color: var(--muted); font: inherit; cursor: pointer; }
.d4c-progress button:disabled { cursor: default; }
.d4c-progress button[aria-current], .d4c-progress button.is-complete { border-top-color: var(--accent); }
.d4c-progress button[aria-current] { color: var(--accent); }
.d4c-progress-number { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 13px; font-weight: 700; }
.d4c-progress button[aria-current] .d4c-progress-number { background: var(--accent); color: var(--ink); }
.d4c-progress button.is-complete .d4c-progress-number { background: var(--accent-dim); color: var(--accent); }
.d4c-progress-label { font-size: 11px; line-height: 1.3; }
.d4c-selection { color: var(--muted); font-size: 13px; line-height: 1.6; padding-bottom: 10px; margin: 0 0 12px; border-bottom: 1px solid var(--border-hover); overflow-wrap: anywhere; }
.d4c-wizard .d4c-form { gap: 0; flex: 1 1 auto; min-height: 0; overflow: clip; }
.d4c-step-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; overscroll-behavior: contain; padding: 4px 12px 8px 4px; margin-left: -4px; scrollbar-width: thin; scrollbar-color: rgba(201,162,85,.5) transparent; }
.d4c-step-scroll::-webkit-scrollbar { width: 6px; }
.d4c-step-scroll::-webkit-scrollbar-thumb { border: 0; border-radius: 6px; background: rgba(201,162,85,.5); }
.d4c-step-scroll::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
.d4c-auto-hint { margin: 0 0 8px; font-size: 12px; line-height: 1.5; color: var(--muted); }
.d4c-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.d4c-type-options { grid-template-columns: 1fr; }
.d4c-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 56px; padding: 14px 16px; background: var(--ink); border: 1px solid var(--border-hover); border-radius: var(--r-sm); color: var(--white); font: 600 15px/1.4 'Manrope', sans-serif; text-align: left; cursor: pointer; }
.d4c-option i { flex-shrink: 0; font-size: 12px; color: var(--accent); }
.d4c-option > span { min-width: 0; overflow-wrap: anywhere; }
.d4c-option small { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--muted); }
.d4c-option:hover, .d4c-option[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-dim); }
.d4c-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.d4c-step-title { float: none; width: 100%; margin: 0 0 16px; color: var(--white); font-size: 23px; font-weight: 600; line-height: 1.35; }
.d4c-step-title:focus { outline: none; }
.d4c-step > .d4-field + .d4-field { margin-top: 16px; }
.d4c-step > .d4-contact-hint { margin: 16px 0; font-size: 13px; }
.d4c-step .d4c-service-status { margin-bottom: 18px; font-size: 14px; }
.d4c-step .d4-slots { margin: 20px 0 24px; gap: 12px; }
.d4c-step .d4-slot { min-height: 48px; min-width: 88px; font-size: 16px; }
.d4c-wizard .d4-field input, .d4c-wizard .d4-field textarea { font-size: 16px; }
.d4c-wizard .d4-form-message { font-size: 14px; margin: 4px 0 0; }
.d4c-wizard .d4-form-message:empty { display: none; }
.d4c-actions { display: flex; flex-shrink: 0; align-items: center; gap: 16px; padding-top: 12px; margin-top: 0; }
.d4c-actions:has(> [hidden]):not(:has(> :not([hidden]))) { display: none; }
.d4c-wizard .d4-form-message { flex-shrink: 0; max-height: 64px; overflow-y: auto; }
.d4c-wizard .d4-success { min-height: 0; overflow-y: auto; }
.d4c-actions .d4-confirm-btn { flex: 1; min-height: 48px; }
.d4c-back { min-height: 48px; padding: 12px 20px; border: 1px solid var(--border-hover); border-radius: 100px; background: transparent; color: var(--white); font: 600 14px/1.5 'Manrope', sans-serif; cursor: pointer; }
.d4c-back:hover { border-color: var(--accent); color: var(--accent); }
.d4c-back:disabled { opacity: .5; cursor: wait; }
.d4c-wizard button:focus-visible, .d4c-wizard a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.d4c-wizard .d4-consent { margin-top: 18px; font-size: 13px; }
.d4c-wizard .d4-success h3 { font-size: 22px; margin: 0; }
.d4c-wizard .d4-success-reset { min-height: 44px; font-size: 14px; }
.d4c-wizard .d4-cal-nav { min-width: 44px; min-height: 44px; }
.d4c-wizard .d4-cal-day { min-height: 44px; height: 44px; aspect-ratio: auto; }
.d4c-step[data-step="1"] .d4c-step-title { margin-bottom: 14px; }
.d4c-step[data-step="1"] .d4c-service-status { margin-bottom: 12px; }
@media (max-width: 600px) {
    .d4c-backdrop { padding: 12px; }
    .d4c-modal.d4c-wizard { padding: 20px; max-height: calc(100dvh - 24px); }
    .d4c-wizard .d4c-close { top: 12px; right: 12px; }
    .d4c-progress { gap: 3px; }
    .d4c-progress-label { display: none; }
    .d4c-progress button { min-height: 44px; }
    .d4c-step-title { font-size: 21px; }
    .d4c-actions { gap: 10px; }
    .d4c-actions .d4-confirm-btn { padding-inline: 12px; font-size: 14px; }
    .d4c-back { padding-inline: 16px; }
}
@media (max-height: 650px) {
    .d4c-wizard .d4c-modal-sub { margin-bottom: 10px; }
    .d4c-progress-label { display: none; }
    .d4c-progress button { min-height: 40px; padding-block: 4px; }
    .d4c-progress { margin-bottom: 8px; }
    .d4c-selection { margin-bottom: 6px; padding-bottom: 6px; }
}
@media (max-width: 400px) {
    .d4c-options:not(.d4c-type-options) .d4c-option { padding: 12px 10px; font-size: 14px; }
    .d4c-options:not(.d4c-type-options) .d4c-option i { display: none; }
}
