/* Texas Nova Cleaning — Instant Estimator (REBUILD 2026-10-15)
   Brand: navy #13477A, green #57AB39, font Poppins (site theme font).
   Mobile-first; class names keep the site's tnc-est__ convention. */

.tnc-est { font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; color: #17293f; max-width: 680px; margin: 0 auto; overflow-x: hidden; }
.tnc-est * { box-sizing: border-box; }
.tnc-est__header { text-align: center; padding: 18px 12px 6px; }
.tnc-est__title { margin: 0; font-size: 1.55rem; line-height: 1.2; color: #13477A; font-weight: 700; }
.tnc-est__tag { margin: 6px 0 0; font-size: 0.98rem; color: #3c5875; }
.tnc-est__trust { margin: 8px 0 0; font-size: 0.82rem; font-weight: 600; color: #57AB39; }
.tnc-est__body { padding: 8px 12px 16px; }

.tnc-est__progress { margin: 10px 0 14px; }
.tnc-est__progress-label { font-size: 0.8rem; font-weight: 600; color: #13477A; }
.tnc-est__bar { height: 8px; background: #e3ebf3; border-radius: 99px; margin-top: 5px; overflow: hidden; }
.tnc-est__bar-fill { height: 100%; background: #57AB39; border-radius: 99px; transition: width 240ms ease; }

.tnc-est__step { animation: tnc-fadeup 240ms ease-out; }
@keyframes tnc-fadeup { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tnc-est__step { animation: none; } .tnc-est__bar-fill { transition: none; } }

.tnc-est__q { font-size: 1.18rem; line-height: 1.3; color: #13477A; margin: 8px 0 12px; font-weight: 700; }
.tnc-est__q:focus { outline: none; }
.tnc-est__hint { font-size: 0.88rem; color: #51677f; margin: 4px 0 10px; }
.tnc-est__fineprint { font-size: 0.78rem; color: #7186a0; margin: 10px 0 0; }
.tnc-est__error { color: #b3261e; font-size: 0.85rem; font-weight: 600; margin: 6px 0 0; }
.tnc-est__help { text-align: center; font-size: 0.9rem; margin: 16px 0 4px; color: #3c5875; }
.tnc-est__help a { color: #13477A; font-weight: 700; }
.tnc-est__phone { color: #13477A; font-weight: 800; }

.tnc-est__cards { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 12px; }
.tnc-est__cards--2col { grid-template-columns: 1fr 1fr; }
.tnc-est__cards--dates { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); }
@media (min-width: 560px) { .tnc-est__cards { grid-template-columns: 1fr 1fr; } .tnc-est__cards--dates { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); } }
.tnc-est__svc { display: flex; flex-direction: column; gap: 4px; }
.tnc-est__card { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; width: 100%; text-align: left; background: #fff; border: 2px solid #cfdce9; border-radius: 14px; padding: 13px 14px; font: inherit; cursor: pointer; transition: background 120ms ease, border-color 120ms ease, transform 80ms ease; }
.tnc-est__card:active { transform: scale(0.985); }
.tnc-est__card:hover { border-color: #57AB39; }
.tnc-est__card[aria-pressed="true"] { border-color: #57AB39; background: #eef7e9; box-shadow: 0 0 0 2px rgba(87,171,57,.25); }
.tnc-est__card--slim { padding: 11px 12px; align-items: center; text-align: center; }
.tnc-est__card-label { font-weight: 700; color: #13477A; font-size: 0.98rem; }
.tnc-est__card-note { font-size: 0.82rem; color: #51677f; }
.tnc-est__card-who { color: #7a8fa9; }
.tnc-est__card-price { font-weight: 700; color: #57AB39; font-size: 0.9rem; }

.tnc-est__field { margin: 0 0 14px; }
.tnc-est__label { display: block; font-weight: 600; color: #13477A; font-size: 0.95rem; margin: 0 0 6px; }
.tnc-est__select, .tnc-est__input { width: 100%; font: inherit; font-size: 1rem; padding: 12px; border: 2px solid #cfdce9; border-radius: 12px; background: #fff; color: #17293f; }
.tnc-est__select:focus, .tnc-est__input:focus { outline: none; border-color: #57AB39; box-shadow: 0 0 0 3px rgba(87,171,57,.2); }
.tnc-est__select--bad, .tnc-est__input--bad { border-color: #b3261e; }
textarea.tnc-est__input { resize: vertical; min-height: 74px; }

.tnc-est__extra { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 12px; border: 2px solid #e0e9f2; border-radius: 12px; margin: 0 0 8px; background: #fff; }
.tnc-est__extra--on { border-color: #57AB39; background: #eef7e9; }
.tnc-est__extra-main { display: flex; align-items: center; gap: 9px; flex: 1 1 auto; }
.tnc-est__check { width: 20px; height: 20px; accent-color: #57AB39; flex: 0 0 auto; }
.tnc-est__extra-label { font-size: 0.93rem; font-weight: 600; color: #23405f; }
.tnc-est__extra-price { font-size: 0.86rem; font-weight: 700; color: #57AB39; white-space: nowrap; }
.tnc-est__stepper { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.tnc-est__step-btn { width: 32px; height: 32px; border-radius: 50%; border: 2px solid #13477A; background: #fff; color: #13477A; font-size: 1.05rem; font-weight: 800; cursor: pointer; line-height: 1; }
.tnc-est__step-btn:disabled { opacity: .35; cursor: default; }
.tnc-est__step-val { font-weight: 700; min-width: 18px; text-align: center; }

fieldset.tnc-est__radios { border: 0; padding: 0; margin: 0; }
fieldset.tnc-est__radios legend.tnc-est__q { padding: 0; }
.tnc-est__radio { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; border: 2px solid #e0e9f2; border-radius: 12px; margin: 0 0 8px; cursor: pointer; background: #fff; }
.tnc-est__radio input { margin-top: 3px; width: 18px; height: 18px; accent-color: #57AB39; flex: 0 0 auto; }
.tnc-est__radio--on { border-color: #57AB39; background: #eef7e9; }
.tnc-est__radio-label { font-weight: 700; color: #13477A; display: block; }
.tnc-est__radio-note { font-size: 0.82rem; color: #51677f; display: block; }

.tnc-est__notice { background: #eaf2fa; border: 1px solid #b9d2ea; color: #23405f; border-radius: 12px; padding: 12px 14px; font-size: 0.92rem; margin: 0 0 14px; }
.tnc-est__notice--warn { background: #fdf3e3; border-color: #f0d29b; }

.tnc-est__incl { font-size: 0.88rem; color: #3c5875; margin: 6px 0 10px; }
.tnc-est__incl ul { margin: 6px 0 10px; padding-left: 18px; }
.tnc-est__incl li { margin: 2px 0; }
.tnc-est__btn--link { background: none; border: 0; color: #13477A; font: inherit; font-size: 0.88rem; font-weight: 700; cursor: pointer; padding: 4px 0; text-decoration: underline; }

.tnc-est__result { background: #f4f9fd; border: 2px solid #b9d2ea; border-radius: 16px; padding: 18px 16px; margin: 0 0 12px; }
.tnc-est__result-service { margin: 0; font-weight: 700; color: #13477A; }
.tnc-est__total { display: flex; flex-direction: column; gap: 2px; margin: 8px 0 4px; }
.tnc-est__total-label { font-size: 0.9rem; font-weight: 600; color: #51677f; }
.tnc-est__total-amt { font-size: 2.4rem; font-weight: 800; color: #13477A; line-height: 1.05; }
.tnc-est__allin { margin: 4px 0 8px; font-size: 0.9rem; color: #3c5875; }
.tnc-est__recurring { background: #eef7e9; border: 1px solid #bfe0ae; border-radius: 10px; padding: 9px 12px; font-size: 0.92rem; margin: 0 0 8px; }
.tnc-est__breakdown { margin-top: 8px; }
.tnc-est__lines { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.tnc-est__lines td { padding: 6px 4px; border-bottom: 1px solid #dde7f1; }
.tnc-est__lines td:last-child { text-align: right; font-weight: 700; white-space: nowrap; }
.tnc-est__lines tr.tnc-est__line--sub td { border-bottom: 0; border-top: 2px solid #13477A; font-weight: 800; color: #13477A; }
.tnc-est__nextnote { font-size: 0.92rem; color: #3c5875; }

.tnc-est__deposit { border: 2px dashed #57AB39; border-radius: 16px; padding: 14px; margin-top: 18px; background: #fbfef9; }
.tnc-est__custom-lead { font-size: 1rem; color: #23405f; }
.tnc-est__nextsteps ul { margin: 6px 0; padding-left: 18px; }
.tnc-est__trust-row { font-size: 0.85rem; font-weight: 600; color: #57AB39; text-align: center; margin: 14px 0 0; }

.tnc-est__nav { display: flex; gap: 10px; margin: 16px 0 4px; }
.tnc-est__btn { font: inherit; font-weight: 700; border-radius: 12px; padding: 13px 18px; cursor: pointer; border: 2px solid transparent; flex: 1 1 auto; }
.tnc-est__btn--primary { background: #57AB39; color: #fff; }
.tnc-est__btn--primary:hover { background: #4a9130; }
.tnc-est__btn--ghost { background: #fff; border-color: #cfdce9; color: #13477A; flex: 0 1 auto; }
