/*
 * Plan Builder styles.
 *
 * Merges the CSS halves of two Elementor snippets that were always loaded
 * together:
 *   7314  Plan Builder v8   - the stepper, progress and layout
 *   7540  intro start button size + even spacing (CSS only, no script)
 *
 * Order preserved: 7314 first, then 7540, so 7540 still wins where they
 * overlap - it did before, sitting later in the document.
 */
.tm-pb5 .elementor-field-group{display:none!important}
.tm-pb5 .elementor-field-group.tm-show{display:flex!important;flex-direction:column}
.tm-pb5 .elementor-field-type-recaptcha_v3,
.tm-pb5 .elementor-field-type-honeypot{display:none!important}
.tm-pb5 .elementor-button-wrapper{display:none!important}

.tm-pb5{background:#fff!important;border:1px solid #E1E4ED!important;border-radius:18px!important;padding:30px 36px!important;box-shadow:0 12px 40px rgba(27,33,80,.08)!important;max-width:100%!important;box-sizing:border-box!important}

.tm-pb5 .tm-head{margin-bottom:22px;display:none}
.tm-pb5 .tm-section-label{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#6b7090;font-family:Poppins,sans-serif;margin-bottom:6px}
.tm-pb5 .tm-progress-track{height:4px;background:#ECF0FB;border-radius:2px;overflow:hidden;margin-bottom:8px}
.tm-pb5 .tm-progress-fill{height:100%;background:#f57b20;border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}
.tm-pb5 .tm-progress-text{font-size:12px;color:#6b7090;font-family:Poppins,sans-serif}

.tm-pb5 .tm-q-wrap{position:relative;display:flex;flex-direction:column;justify-content:flex-start}
.tm-pb5 .elementor-field-group{opacity:0;transform:translateY(8px);transition:opacity .32s ease,transform .32s ease}
.tm-pb5 .elementor-field-group.tm-show{opacity:1!important;transform:translateY(0)!important}
.tm-pb5 .elementor-field-group.tm-exit{opacity:0!important;transform:translateY(-6px)!important;transition:opacity .2s ease,transform .2s ease}

.tm-pb5 .tm-q-category{font-size:11px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#C85A0E;font-family:Poppins,sans-serif;margin-bottom:8px}
.tm-pb5 .elementor-field-label{font-size:20px!important;font-weight:600!important;color:#3f4150!important;font-family:Poppins,sans-serif!important;line-height:1.3!important;margin-bottom:16px!important}

.tm-pb5 .tm-q-wrap.tm-details .elementor-field-label{font-size:13px!important;margin-bottom:5px!important;color:#6B7090!important;font-weight:600!important}
.tm-pb5 .tm-q-wrap.tm-details .elementor-field-group{margin-bottom:10px;opacity:1!important;transform:none!important;transition:none!important}
.tm-pb5 .tm-q-wrap.tm-details .tm-q-category{display:none}
.tm-pb5 .tm-q-wrap.tm-details .elementor-field-textual{height:40px!important;font-size:14px!important;padding:8px 14px!important}
.tm-pb5 .tm-q-wrap.tm-details textarea.elementor-field-textual{height:unset!important;min-height:60px!important}
.tm-pb5 .tm-details-head{font-size:20px;font-weight:600;color:#3f4150;font-family:Poppins,sans-serif;margin-bottom:14px;display:none}

.tm-pb5 .tm-field-error .elementor-field-textual{border-color:#d33a3a!important;background:#fbeaea!important}
.tm-pb5 .tm-error-msg{color:#d33a3a;font-size:12px;font-family:Poppins,sans-serif;margin-top:3px;display:none}
.tm-pb5 .tm-field-error .tm-error-msg{display:block!important}

.tm-pb5 .elementor-field-type-radio input[type=radio],
.tm-pb5 .elementor-field-type-checkbox input[type=checkbox]{position:absolute!important;opacity:0!important;width:0!important;height:0!important}
.tm-pb5 .elementor-field-subgroup{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:10px!important;width:100%!important;max-width:520px!important}
.tm-pb5 .elementor-field-subgroup .elementor-field-option{display:block!important;width:100%!important}
.tm-pb5 .elementor-field-subgroup label{display:flex!important;align-items:center!important;justify-content:space-between!important;cursor:pointer!important;border-radius:12px!important;background:#ECF0FB!important;border:1.5px solid #e1e4ed!important;color:#3F4150!important;padding:14px 18px!important;font-size:15px!important;font-family:Poppins,sans-serif!important;transition:background .15s,border-color .15s!important;width:100%!important;box-sizing:border-box!important}
.tm-pb5 .elementor-field-subgroup label:hover{background:#fff1e3!important;border-color:#f57b20!important}
.tm-pb5 .elementor-field-subgroup .elementor-field-option:has(input:checked) label{background:#f57b20!important;border-color:#f57b20!important;color:#fff!important;font-weight:500!important}
.tm-pb5 .elementor-field-subgroup label::after{content:'';width:20px;height:20px;border-radius:50%;border:1.5px solid #e1e4ed;flex-shrink:0;transition:all .2s;background:#fff}
.tm-pb5 .elementor-field-subgroup .elementor-field-option:has(input:checked) label::after{content:'✓';background:#fff;color:#f57b20;border-color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;line-height:20px;text-align:center}

.tm-pb5 .elementor-form-fields-wrapper{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;width:100%!important}
.tm-pb5 .elementor-field-group{width:100%!important;max-width:100%!important}
/*
 * Text fields match the house numbers in tm-forms.css exactly - 1px border,
 * 10px radius, 13px/16px padding, 15px text. They used to be slightly
 * chunkier (1.5px, 12px, 16px text, a fixed 48px height) which is what made
 * the planner read as "close but not quite" next to the other forms.
 *
 * The fixed height is gone deliberately: with vertical padding it fought the
 * line box and left the text sitting high. The option ROWS above keep their
 * 12px radius - those match the reference PbRow, which is a different control.
 */
.tm-pb5 .elementor-field-textual{border:1px solid #e1e4ed!important;border-radius:10px!important;padding:13px 16px!important;font-size:15px!important;line-height:1.45!important;font-family:Poppins,sans-serif!important;background:#ECF0FB!important;min-height:unset!important;box-sizing:border-box!important;width:100%!important;transition:background .15s,border-color .15s,box-shadow .15s!important}
.tm-pb5 .elementor-field-textual:focus{background:#fff!important;border-color:#f57b20!important;box-shadow:0 0 0 3px rgba(245,123,32,.18)!important;outline:none!important}
.tm-pb5 textarea.elementor-field-textual{min-height:120px!important;resize:vertical}
.tm-pb5 .elementor-field-textual:focus{border-color:#f57b20!important;background:#fff!important;outline:none!important}
.tm-pb5 textarea.elementor-field-textual{height:unset!important;min-height:78px!important;resize:vertical!important}

.tm-pb5 .tm-nav{display:none;gap:12px;margin-top:20px;align-items:center;flex-wrap:nowrap}
.tm-pb5 .tm-btn{border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;border:none!important;font-family:Poppins,sans-serif;transition:background .15s;line-height:1;-webkit-tap-highlight-color:transparent}
.tm-pb5 .tm-nav .tm-btn-next{background:#f57b20!important;color:#fff!important;font-size:16px!important;font-weight:600!important;padding:15px 40px!important;flex:0 0 auto!important;width:auto!important;box-shadow:0 6px 16px rgba(245,123,32,.32)}
.tm-pb5 .tm-nav .tm-btn-next:hover{background:#C85A0E!important}
.tm-pb5 .tm-nav .tm-btn-back{background:#ECF0FB!important;color:#6B7090!important;padding:13px 26px!important;flex:0 0 auto!important}
.tm-pb5 .tm-nav .tm-btn-back:hover{background:#e1e4ed!important}
.tm-pb5 .tm-nav .tm-btn-back:disabled{opacity:0;pointer-events:none}
.tm-pb5 .tm-nav .tm-btn-skip{background:none!important;color:#6b7090!important;padding:13px 6px!important;margin-left:auto!important;text-decoration:underline;font-size:13px;box-shadow:none!important;flex:0 0 auto!important}
.tm-pb5 .tm-nav .tm-btn-skip:hover{color:#f57b20!important}

.tm-pb5 .tm-reset-row{display:none;margin-top:16px;text-align:center;font-family:Poppins,sans-serif;font-size:13px;color:#6b7090;line-height:1.6}
.tm-pb5 .tm-reset-row button{background:none;border:none;padding:0;margin:0;cursor:pointer;font-family:Poppins,sans-serif;font-size:13px;color:#6b7090;text-decoration:underline;-webkit-tap-highlight-color:transparent}
.tm-pb5 .tm-reset-row button:hover{color:#f57b20}
.tm-pb5 .tm-reset-confirm{display:none}
.tm-pb5 .tm-reset-row.tm-confirming .tm-reset-start{display:none}
.tm-pb5 .tm-reset-row.tm-confirming .tm-reset-confirm{display:inline}
.tm-pb5 .tm-reset-row .tm-reset-yes{color:#d33a3a!important;font-weight:600!important;margin:0 4px 0 6px!important}
.tm-pb5 .tm-reset-row .tm-reset-yes:hover{color:#d33a3a!important}
.tm-pb5 .tm-reset-row .tm-reset-no{color:#6B7090!important;margin-left:4px!important}

.tm-pb5 .tm-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 0}
.tm-pb5 .tm-intro-title{font-size:28px;font-weight:700;color:#283071;font-family:Poppins,sans-serif;margin-bottom:10px}
.tm-pb5 .tm-intro-sub{font-size:15px;color:#6B7090;font-family:Poppins,sans-serif;margin-bottom:6px}
.tm-pb5 .tm-intro-time{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#C85A0E;font-family:Poppins,sans-serif;background:#fff1e3;padding:6px 14px;border-radius:50px;margin-top:10px}
.tm-pb5 .tm-btn-start{background:#283071!important;color:#fff!important;font-size:16px!important;padding:15px 40px!important;margin-top:24px;display:inline-block;width:auto;max-width:100%;border:none!important;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600}
.tm-pb5 .tm-btn-start:hover{background:#f57b20!important}
.tm-pb5 .tm-shortcut{margin:22px auto 0;max-width:520px;background:#ECF0FB;border:1.5px dashed #E1E4ED;border-radius:14px;padding:16px 18px;font-family:Poppins,sans-serif;text-align:center}
.tm-pb5 .tm-shortcut-txt{font-size:14px;color:#6B7090;line-height:1.5;margin-bottom:10px}
.tm-pb5 .tm-shortcut-txt strong{color:#283071}
.tm-pb5 .tm-shortcut a{display:inline-block;background:#fff;border:1.5px solid #f57b20;color:#C85A0E;font-weight:600;font-size:13px;padding:9px 18px;border-radius:8px;text-decoration:none}
.tm-pb5 .tm-shortcut a:hover{background:#f57b20;color:#fff}

@media(max-width:600px){
  .tm-pb5{padding:22px 16px!important;width:100%!important;max-width:100%!important}
  .tm-pb5 .elementor-field-subgroup{max-width:100%!important;width:100%!important}
  .tm-pb5 .elementor-field-subgroup label{white-space:normal!important;overflow-wrap:anywhere!important}
  .tm-pb5 .tm-nav .tm-btn-next,.tm-pb5 .tm-btn-submit-fake{padding:14px 26px!important;font-size:15px!important}
  .tm-pb5 .tm-nav .tm-btn-back{padding:13px 18px!important}
}

#tm-estimate-bar{position:static!important;transform:none!important;left:auto!important;bottom:auto!important;z-index:auto!important;width:100%!important;margin:24px 0 0!important;pointer-events:auto!important;animation:none!important}
#tm-estimate-bar .tm-est-inner{max-width:none!important;width:100%!important;min-width:0!important;box-sizing:border-box!important}
#tm-estimate-bar .tm-est-sublabel{color:#6B7090!important}
#tm-estimate-bar .tm-est-num,#tm-estimate-bar .tm-est-num.tm-orange{color:#6B7090!important}

/* ---- was snippet 7540 ---- */
/* Kill the hard line break so spacing is controlled by margins only */
.tm-pb5 .tm-intro br{display:none !important}

/* Bigger, bolder primary CTA */
.tm-pb5 .tm-btn-start{
  font-size:20px !important;
  font-weight:700 !important;
  padding:20px 56px !important;
  border-radius:8px !important;
  letter-spacing:.2px !important;
  box-shadow:0 10px 24px rgba(40,48,113,.30) !important;
  transition:background .15s, transform .15s, box-shadow .15s !important;
  margin-top:34px !important;
  margin-bottom:0 !important;
}
.tm-pb5 .tm-btn-start:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px rgba(245,123,32,.34) !important;
}

/* Equal gap below the button, matching the 34px above it */
.tm-pb5 .tm-intro .tm-shortcut{margin-top:34px !important}

@media (max-width:600px){
  .tm-pb5 .tm-btn-start{
    font-size:18px !important;
    padding:17px 34px !important;
    margin-top:26px !important;
  }
  .tm-pb5 .tm-intro .tm-shortcut{margin-top:26px !important}
}

/*
 * SPECIFICITY: beating the legacy copy in uploads/tm-css/tm-planbuilder.css.
 *
 * The planner is styled by TWO stylesheets. This one ships in the plugin; the
 * other is an orphan left in wp-content/uploads by the snippet migration, is
 * NOT in git, and is still enqueued. Its rule for the question steps reads
 *
 *   .tm-pb5 .tm-q-wrap:not(.tm-details) .elementor-field-group .elementor-field-textual
 *
 * which is 0-5-0 and !important, so the plain .tm-pb5 .elementor-field-textual
 * rule above loses to it even though it also carries !important - among
 * !important declarations, specificity still decides.
 *
 * Hence the deliberately heavier selectors below. They are ugly and they are a
 * symptom: the real fix is to dequeue the uploads copy once its contents have
 * been diffed against this file, which is a job of its own because anything
 * only in that file would vanish with it.
 */
.tm-pb5.elementor-widget-form .tm-q-wrap .elementor-field-group .elementor-field-textual,
.tm-pb5.elementor-widget-form .tm-q-wrap:not(.tm-details) .elementor-field-group .elementor-field-textual{border:1px solid #e1e4ed!important;border-radius:10px!important;padding:13px 16px!important;font-size:15px!important;line-height:1.45!important;background:#ECF0FB!important;height:auto!important}
.tm-pb5.elementor-widget-form .tm-q-wrap .elementor-field-group .elementor-field-textual:focus{background:#fff!important;border-color:#f57b20!important;box-shadow:0 0 0 3px rgba(245,123,32,.18)!important;outline:none!important}

/*
 * Absorbed from uploads/tm-css/tm-planbuilder.css on 2026-09-14, when that
 * second copy was retired.
 *
 * Two stylesheets were loading on this page and fighting: this one, ported from
 * snippets 7314 + 7540, and a near-duplicate under uploads/ enqueued by
 * assets/css-router.php. 101 rules were identical, 12 disagreed, and the
 * uploads copy usually won because its selectors carried an extra class. That
 * cost three separate "fixes" on 2026-09-14 - the field sizing, the field
 * padding and radius, and the card around the create-account row - each of
 * which was really just this duplication showing through.
 *
 * A diff found only THREE rules that existed nowhere else. Everything else the
 * uploads copy held was either identical or the older design this file already
 * supersedes. These three are them, so retiring that file changes nothing.
 */
.tm-pb5 .elementor-field-subgroup .elementor-field-option label{gap:14px !important;line-height:1.5 !important;padding:15px 18px !important;align-items:center !important}

@media (max-width:600px){
  .tm-pb5 .elementor-field-subgroup .elementor-field-option label{gap:10px !important}
}
