/* Transit & Flow Group — Master Estimator styles */
.tf-estimator{
  --tf-navy:#02264A; --tf-blue:#0092CD; --tf-ink:#02264A;
  font-family:'Manrope','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  background:#fff; border-radius:22px; border:1px solid rgba(2,38,74,.06);
  box-shadow:0 30px 70px -20px rgba(2,38,74,.28);
  padding:36px 34px; max-width:680px; margin:0 auto; box-sizing:border-box;
}
.tf-estimator *{ box-sizing:border-box; }
.tf-estimator .tfe-head h3{ margin:0 0 8px; color:var(--tf-navy); font-size:25px; font-weight:800; letter-spacing:-.01em; }
.tf-estimator .tfe-head p{ margin:0 0 24px; color:#5b6b78; font-size:14.5px; line-height:1.6; }
.tf-estimator .tfe-row{ margin-bottom:18px; }
.tf-estimator label{ display:block; font-weight:700; color:var(--tf-navy); font-size:13.5px; margin-bottom:8px; }
.tf-estimator .tfe-input{
  width:100%; padding:14px 16px; border:1.5px solid #dbe6ee; border-radius:14px;
  font-size:16px; line-height:1.4; min-height:54px; color:var(--tf-navy); background:#fbfdfe; font-family:inherit;
  transition:border-color .2s, box-shadow .2s, background .2s; appearance:none; -webkit-appearance:none;
}
.tf-estimator select.tfe-input{ text-overflow:ellipsis; }
.tf-estimator select.tfe-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230092CD' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:44px;
}
.tf-estimator .tfe-input:focus{ border-color:var(--tf-blue); outline:none; box-shadow:0 0 0 3px rgba(0,146,205,.15); background:#fff; }
.tf-estimator .tfe-hint{ font-size:12.5px; color:#7c8a98; margin-top:7px; line-height:1.5; }
.tf-estimator .tfe-calc-btn{
  width:100%; border:0; cursor:pointer; color:#fff; background:var(--tf-blue);
  border-radius:14px; padding:17px 20px; font-size:16px; font-weight:800; font-family:inherit; letter-spacing:.01em;
  transition:transform .18s ease, background .18s ease;
  margin-top:4px;
}
@media (hover:hover){ .tf-estimator .tfe-calc-btn:hover{ transform:translateY(-2px); background:var(--tf-navy); } }
.tf-estimator .tfe-calc-btn:active{ transform:translateY(0); }
.tf-estimator .tfe-result{
  margin-top:24px; padding:26px 22px; border-radius:18px; text-align:center; display:none;
  background:linear-gradient(160deg,#F5FAFD 0%,#E7F3FB 100%); border:1px solid rgba(0,146,205,.14);
}
.tf-estimator .tfe-result.tfe-show{ display:block; animation:tfeIn .5s cubic-bezier(.22,1,.36,1) both; }
@keyframes tfeIn{ from{ opacity:0; transform:translateY(14px) scale(.98);} to{ opacity:1; transform:none;} }
.tf-estimator .tfe-price{
  font-size:clamp(30px,7vw,42px); font-weight:900; letter-spacing:-.02em; line-height:1.05;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(92deg,var(--tf-navy) 0%,var(--tf-blue) 90%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.tf-estimator .tfe-note{ font-size:12.5px; line-height:1.55; color:#5b6b78; margin-top:10px; max-width:520px; margin-left:auto; margin-right:auto; }
.tf-estimator .tfe-email{ display:none; margin-top:20px; padding-top:20px; border-top:1px solid rgba(2,38,74,.10); }
.tf-estimator .tfe-email.tfe-show{ display:block; animation:tfeIn .5s cubic-bezier(.22,1,.36,1) both; }
.tf-estimator .tfe-email h4{ margin:0 0 4px; color:var(--tf-navy); font-size:16px; font-weight:800; text-align:center; }
.tf-estimator .tfe-email .tfe-sub{ margin:0 0 16px; color:#5b6b78; font-size:13px; text-align:center; }
.tf-estimator .tfe-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tf-estimator .tfe-email input{
  width:100%; padding:13px 14px; border:1.5px solid #dbe6ee; border-radius:12px; font-size:14.5px;
  color:var(--tf-navy); background:#fbfdfe; font-family:inherit; margin-bottom:12px;
}
.tf-estimator .tfe-email input:focus{ border-color:var(--tf-blue); outline:none; box-shadow:0 0 0 3px rgba(0,146,205,.15); }
.tf-estimator .tfe-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.tf-estimator .tfe-email button{
  width:100%; border:0; cursor:pointer; color:#fff; background:var(--tf-navy);
  border-radius:12px; padding:15px 18px; font-size:15px; font-weight:800; font-family:inherit;
  transition:transform .18s ease, background .18s ease;
}
@media (hover:hover){ .tf-estimator .tfe-email button:hover{ transform:translateY(-2px); background:var(--tf-blue); } }
.tf-estimator .tfe-email button:disabled{ opacity:.7; cursor:default; transform:none; }
.tf-estimator .tfe-email-msg{ font-size:13px; line-height:1.5; margin-top:12px; text-align:center; }
.tf-estimator .tfe-email-msg.tfe-ok{ color:#1a7a3c; }
.tf-estimator .tfe-email-msg.tfe-err{ color:#b23b3b; }
.tf-estimator .tfe-email-msg a{ color:var(--tf-blue); font-weight:700; }
.tf-estimator .tfe-legal{ font-size:11px; color:#9aa7b3; text-align:center; margin-top:14px; line-height:1.5; }
@media (max-width:640px){
  .tf-estimator{ padding:26px 20px; border-radius:18px; }
  .tf-estimator .tfe-grid2{ grid-template-columns:1fr; }
}
/* ---- comprehensive lead form (shared) ---- */
.tf-leadform input, .tf-leadform select, .tf-leadform textarea{
  width:100%; padding:14px; border:1.5px solid #dbe6ee; border-radius:12px; font-size:16px;
  line-height:1.4; color:#02264A; background:#fbfdfe; font-family:inherit; margin-bottom:12px;
  box-sizing:border-box; -webkit-appearance:none; appearance:none;
}
.tf-leadform select{ min-height:52px; padding-right:40px; background-repeat:no-repeat; background-position:right 14px center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230092CD' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
.tf-leadform textarea{ min-height:84px; resize:vertical; }
.tf-leadform input:focus, .tf-leadform select:focus, .tf-leadform textarea:focus{ border-color:#0092CD; outline:none; box-shadow:0 0 0 3px rgba(0,146,205,.15); background:#fff; }
.tf-leadform .tf-lead-row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:640px){ .tf-leadform .tf-lead-row2{ grid-template-columns:1fr; } }

/* ===== v1.37 — service autocomplete search ===== */
.tfe-search-wrap{position:relative}
.tfe-search{width:100%}
.tfe-ac-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:9999;background:#fff;border:1px solid #dbe6ee;border-radius:14px;box-shadow:0 18px 44px -18px rgba(2,38,74,.3);overflow:hidden;display:none;max-height:340px;overflow-y:auto}
.tfe-ac-opt{display:flex;flex-direction:column;gap:3px;padding:11px 15px;cursor:pointer;border-bottom:1px solid #eef3f7}
.tfe-ac-opt:last-child{border-bottom:0}
.tfe-ac-opt:hover,.tfe-ac-opt.on{background:#f2f7fb}
.tfe-ac-label{font-size:15px;font-weight:600;color:#02264A;line-height:1.3}
.tfe-ac-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tfe-ac-group{font-size:11.5px;color:#7c8b98;font-weight:600}
.tfe-ac-tag{font-size:10.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.tfe-ac-price{background:#e9faf3;color:#0a7d4e}
.tfe-ac-quote{background:#eaf4fa;color:#0d5c86}
.tfe-ac-empty{padding:14px 15px;font-size:13.5px;color:#5b6b78;line-height:1.5}
.tfe-ac-empty a{color:#0092CD;font-weight:600}
