.ttcq-extra{margin:18px 0 12px;padding:18px;background:#f2f7fa;border:1px solid #c7dbe7;border-left:4px solid #d49834;border-radius:12px;color:#153950;max-width:100%;font:inherit}
.ttcq-extra *{box-sizing:border-box}.ttcq-extra h3{font-size:1.15rem!important;line-height:1.3;margin:0 0 6px;color:#12334c}.ttcq-extra p{margin:0 0 14px;color:#38556c}.ttcq-extra fieldset{border:1px solid #d4e2eb;background:white;padding:14px;margin:12px 0;border-radius:10px;min-width:0;display:block}.ttcq-extra legend{font-size:1rem!important;font-weight:700;color:#183d59;margin-bottom:7px;white-space:normal}.ttcq-extra .ttcq-options{display:flex;gap:8px;flex-wrap:wrap}.ttcq-extra .ttcq-option{display:inline-flex;align-items:center;gap:7px;border:1px solid #c6d8e3;border-radius:9px;padding:10px 12px;cursor:pointer;white-space:normal;line-height:1.3}.ttcq-extra .ttcq-option:has(input:checked){background:#eaf5fd;border-color:#266e9c}.ttcq-extra .ttcq-option input{accent-color:#246d98;min-width:16px;height:16px;cursor:pointer}.ttcq-extra .ttcq-text{width:100%;border:1px solid #b9cfdc;border-radius:8px;padding:12px;margin-top:4px;font:inherit}.ttcq-extra .ttcq-error{background:#fff2ee;color:#9a331d;border-left:3px solid #bf482e;padding:10px 12px;margin-top:12px;display:none}.ttcq-extra .ttcq-error.ttcq-visible{display:block}.ttcq-extra details{border:1px solid #d4e3ea;border-radius:8px;background:white;margin:12px 0;padding:0 12px}.ttcq-extra details summary{cursor:pointer;padding:12px 0;font-weight:750}.ttcq-extra .ttcq-note{font-size:13px;line-height:1.5;color:#4c6575}.ttcq-pill{font-weight:700;font-size:12px;padding:4px 8px;border-radius:20px;background:#fff1d7;color:#87551b;margin-left:8px}.ttcq-message{background:#fff8e8;padding:12px;color:#71501f;border-radius:7px;margin:14px 0;border:1px solid #e7c98b}.ttcq-status{padding:9px 12px;background:#e8f5ec;color:#285b36;border-radius:7px;margin:10px 0;font-weight:700}.ttcq-preview{position:fixed;top:8px;right:8px;z-index:999999;background:#5e3116;color:#fff;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #3335}@media(max-width:600px){.ttcq-extra{padding:12px}.ttcq-extra fieldset{padding:10px}.ttcq-extra .ttcq-options{flex-direction:column}.ttcq-extra .ttcq-option{width:100%}}

/* Version 0.2.0: conceal price on screen until the questionnaire for the selected service is completed.
   The UI gate does not replace server-side enforcement in the estimator. */
html.ttcq-price-gate section.tte:not(.ttcq-price-unlocked) section.tte-calculator .tte-breakdown,
html.ttcq-price-gate section.tte:not(.ttcq-price-unlocked) section.tte-calculator .tte-preview-status,
html.ttcq-price-gate section.tte:not(.ttcq-price-unlocked) section.tte-calculator .tte-calculator-bottom,
html.ttcq-price-gate section.tte:not(.ttcq-price-unlocked) section.tte-calculator .tte-controls button.tte-secondary,
html.ttcq-price-gate section.tte section.tte-calculator > button.tte-secondary.ttcq-original-question-button {display:none!important}
.ttcq-gate-notice{margin:12px 0 18px;padding:14px 16px;background:#fff4dd;border:1px solid #dfba69;border-left:4px solid #d89227;border-radius:10px;color:#4f3820;font-size:1rem;line-height:1.5}
.ttcq-gate-notice strong{display:block;margin-bottom:4px}.ttcq-gate-notice a{font-weight:750;color:#13597a;text-decoration:underline;cursor:pointer}

/* Independent accessible dialog used only when the original estimator form is unavailable. */
dialog.ttcq-fallback-dialog{width:min(96vw,760px);max-width:760px;max-height:90vh;overflow:auto;overscroll-behavior:contain;border:1px solid #9bb6c4;border-radius:14px;padding:20px;background:#fff;color:#153950;box-shadow:0 16px 45px #071e2d66;z-index:999999;position:fixed}
dialog.ttcq-fallback-dialog::backdrop{background:rgba(5,22,35,.7)}
.ttcq-fallback-dialog form{margin:0;display:block}
.ttcq-fallback-dialog h2{color:#14384f;font-size:1.5rem;line-height:1.3;margin:0 0 8px}
.ttcq-fallback-dialog h3{font-size:1.2rem;margin:20px 0 12px;color:#14384f}
.ttcq-fallback-dialog .ttcq-fallback-intro{line-height:1.5;color:#34566c;margin:0 0 14px}
.ttcq-fallback-dialog .ttcq-general-question{border:1px solid #c9dae4;background:#fff;border-radius:10px;padding:12px;margin:14px 0;min-width:0}
.ttcq-fallback-dialog .ttcq-general-question legend{font-weight:700;line-height:1.4;color:#153950;padding:0 6px}
.ttcq-fallback-dialog .ttcq-options{display:flex;gap:9px;flex-wrap:wrap}
.ttcq-fallback-dialog .ttcq-option{display:flex;align-items:center;gap:8px;cursor:pointer;border:1px solid #ccdbe4;border-radius:7px;padding:10px;background:#fff}
.ttcq-fallback-dialog input[type=radio]{accent-color:#19658e;min-width:16px;min-height:16px}
.ttcq-fallback-dialog .ttcq-fallback-actions{display:flex;justify-content:flex-end;gap:12px;margin:18px 0 2px;flex-wrap:wrap}
.ttcq-fallback-dialog .ttcq-fallback-actions button{padding:12px 16px;font:inherit;font-weight:700;border-radius:8px;cursor:pointer}
.ttcq-fallback-dialog .ttcq-fallback-cancel{border:1px solid #bacfdb;background:#fff;color:#20475c}
.ttcq-fallback-dialog .ttcq-fallback-save{border:1px solid #174f6e;background:#12618a;color:white}
@media(max-width:600px){dialog.ttcq-fallback-dialog{padding:14px}.ttcq-fallback-dialog .ttcq-option{width:100%}.ttcq-fallback-dialog .ttcq-fallback-actions button{width:100%}}

/* Guided two-step questionnaire: general job questions, then service details. */
.ttcq-wizard-progress{display:flex;align-items:center;gap:12px;margin:14px 0 18px;color:#153950;font-weight:750}
.ttcq-wizard-progress-text{white-space:nowrap}
.ttcq-wizard-progress-track{height:8px;flex:1;overflow:hidden;border-radius:99px;background:#e3edf2}
.ttcq-wizard-progress-fill{display:block;height:100%;width:50%;border-radius:inherit;background:#c85300;transition:width .18s ease}
.ttcq-wizard-step[hidden]{display:none!important}
.ttcq-wizard-heading{margin:10px 0 4px;color:#153950;font-size:1.2rem;line-height:1.35}
.ttcq-wizard-hint{margin:0 0 14px;color:#496373}
.ttcq-wizard-error{display:none;margin:12px 0;padding:10px 12px;border-left:4px solid #b43b28;background:#fff1ed;color:#842b1d;font-weight:650}
.ttcq-wizard-error:not(:empty){display:block}
.ttcq-wizard-back,.ttcq-wizard-next{padding:12px 16px;min-height:46px;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
.ttcq-wizard-back{border:1px solid #173a49;background:#fff;color:#173a49}
.ttcq-wizard-next{border:1px solid #c85300;background:#c85300;color:#fff}
.ttcq-wizard-back[hidden],.ttcq-wizard-next[hidden],.ttcq-wizard-save[hidden]{display:none!important}
@media(max-width:600px){.ttcq-wizard-progress{align-items:flex-start;flex-direction:column;gap:8px}.ttcq-wizard-progress-track{width:100%;flex:none}.ttcq-wizard-back,.ttcq-wizard-next,.ttcq-wizard-save{width:100%}}
