/* ------------------------------------------------------------------
   Home page tightening shard
   - Extracted from tl_global_ui_tightening.css to avoid loading
     homepage-only polish on non-home routes.
   ------------------------------------------------------------------ */

/* --------------------------------------------------------------------------
   Home page tightening: keep the public homepage premium, but less bulky.
   -------------------------------------------------------------------------- */
.tl-home-hub__hero {
  border-radius: 28px !important;
  padding: clamp(24px, 3vw, 38px) !important;
  box-shadow: var(--tl-shadow-soft) !important;
}

.tl-home-hub__hero-grid {
  gap: clamp(18px, 2.6vw, 30px) !important;
  align-items: start !important;
}

.tl-home-hub__kicker {
  margin-bottom: 10px !important;
}

.tl-home-hub__title {
  margin-bottom: 10px !important;
  letter-spacing: -0.03em;
}

.tl-home-hub__copy {
  max-width: 62ch;
  margin-bottom: 14px !important;
}

.tl-home-hub__actions {
  gap: 10px !important;
  margin-top: 14px !important;
}

.tl-home-hub__paths {
  gap: 10px !important;
  margin-top: 14px !important;
}

.tl-home-hub__path {
  min-height: 0 !important;
  padding: 11px 13px !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}

.tl-home-hub__path-label--mobile {
  display: none;
}

.tl-home-hub__path-label--desktop {
  display: inline;
}

.tl-home-hub__visual-card {
  padding: 18px !important;
  border-radius: 24px !important;
  min-height: 0 !important;
}

.tl-home-hub__visual-title {
  margin-bottom: 10px !important;
}

.tl-home-hub__visual-copy {
  margin-bottom: 12px !important;
}

.tl-home-hub__visual-list {
  gap: 10px !important;
}

.tl-home-hub__visual-item {
  padding: 12px 13px !important;
  border-radius: 16px !important;
}

.tl-home-hub__trustbar {
  margin-top: 16px !important;
  gap: 12px !important;
}

.tl-home-hub__metric {
  padding: 14px 16px !important;
  border-radius: 18px !important;
}

.tl-home-hub__section-head,
.tl-home-hub__section,
.tl-home-hub__shell {
  margin-bottom: 16px !important;
}

@media (max-width: 768px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)) {
  .tl-home-hub__hero {
    border-radius: 20px !important;
    padding: 18px 16px !important;
  }

  .tl-home-hub__hero-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .tl-home-hub__visual {
    display: none !important;
  }

  .tl-home-hub__title {
    font-size: clamp(1.8rem, 7.2vw, 2.35rem) !important;
    line-height: 1.15 !important;
  }

  .tl-home-hub__actions {
    grid-template-columns: 1fr 1fr !important;
  }

  .tl-home-hub__paths {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  .tl-home-hub__path {
    padding: 10px 12px !important;
    border-radius: 14px !important;
  }

  .tl-home-hub__trustbar {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .tl-home-hub__metric {
    padding: 12px 13px !important;
    border-radius: 16px !important;
  }
}

@media (max-width: 768px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)) {
  .tl-office-hero--show .tl-office-actions {
    display: none !important;
  }
}



.tl-home-hub__final-cta {
  border: 1px solid rgba(255,255,255,.08) !important;
  background: linear-gradient(135deg, #173e72 0%, #2150a0 58%, #2d83d8 100%) !important;
  box-shadow: var(--tl-shadow-soft) !important;
  color: #ffffff !important;
}

.tl-home-hub__final-cta .tl-home-hub__section-kicker,
.tl-home-hub__final-cta .tl-home-hub__section-title,
.tl-home-hub__final-cta .tl-home-hub__section-copy {
  color: #ffffff !important;
}

.tl-home-hub__final-cta .tl-home-hub__section-copy {
  color: rgba(255,255,255,.86) !important;
}

/* ==========================================================
   Mobile native polish — homepage minimal shell + stronger hero fixes
========================================================== */
@media (max-width: 767.98px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)) {
  body.tl-home-mobile-minimal .tl-site-footer,
  body.tl-home-mobile-minimal .tl-home-page > .tl-home-hub__shell:not(:first-child) {
    display: none !important;
  }

  body.tl-home-mobile-minimal .tl-home-page {
    padding-bottom: calc(var(--tl-bottom-nav-h, 74px) + 18px + var(--tl-safe-bottom, 0px));
  }

  body.tl-home-mobile-minimal .tl-home-hub__shell {
    padding: 12px 12px 0 !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__hero {
    border-radius: 28px !important;
    background: linear-gradient(135deg, #173e72 0%, #204b95 54%, #2d83d8 100%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 22px 48px rgba(15,23,42,.18) !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__hero-grid {
    position: relative;
    z-index: 1;
    padding: 14px !important;
    gap: 12px !important;
  }

  .tl-home-hub__mobile-media {
    display: none !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  body.tl-home-mobile-minimal .tl-home-hub__hero.has-mobile-image::after {
    content: "" !important;
    position: absolute;
    inset: 0;
    display: block !important;
    background:
      linear-gradient(180deg, rgba(9,23,53,.10) 0%, rgba(9,23,53,.34) 42%, rgba(9,23,53,.54) 78%, rgba(9,23,53,.72) 100%),
      var(--tl-home-hub-mobile-image) center center / cover no-repeat !important;
    opacity: .44 !important;
    mix-blend-mode: soft-light !important;
    pointer-events: none;
    z-index: 0;
  }

  body.tl-home-mobile-minimal .tl-home-hub__hero.has-mobile-image::before {
    content: "" !important;
    position: absolute;
    inset: 0;
    display: block !important;
    background:
      radial-gradient(circle at top right, rgba(255,255,255,.18), transparent 28%),
      radial-gradient(circle at bottom left, rgba(255,255,255,.10), transparent 24%),
      linear-gradient(180deg, rgba(11,25,56,.04), rgba(11,25,56,.14));
    pointer-events: none;
    z-index: 0;
  }

  body.tl-home-mobile-minimal .tl-home-hub__content {
    gap: 12px !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__kicker {
    width: fit-content;
    max-width: 100%;
    min-height: 34px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__title {
    margin-top: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: initial !important;
    line-height: 1 !important;
    letter-spacing: -.03em;
    text-shadow: 0 2px 10px rgba(9,23,53,.24);
  }

  body.tl-home-mobile-minimal .tl-home-hub__title-line--top {
    display: block;
    white-space: nowrap !important;
    font-size: clamp(1.02rem, 5.2vw, 1.28rem) !important;
    line-height: 1.16 !important;
    letter-spacing: -.04em !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__title-line--bottom {
    display: block;
    font-size: clamp(1.58rem, 8.7vw, 2.18rem) !important;
    line-height: 1.08 !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__copy {
    max-width: none !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    color: rgba(255,255,255,.92) !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }

  body.tl-home-mobile-minimal .tl-home-hub__actions {
    display: block !important;
  }


  body.tl-home-mobile-minimal .tl-home-hub__paths {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin-top: 10px !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path {
    position: relative;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    min-height: 58px !important;
    padding: 11px 12px !important;
    border-radius: 18px !important;
    background: rgba(7,20,45,.18) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: 0 14px 28px rgba(15,23,42,.12) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  body.tl-home-mobile-minimal .tl-home-hub__path-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path.is-real-estate .tl-home-hub__path-icon {
    background: rgba(37,188,207,.12) !important;
    border-color: rgba(37,188,207,.22) !important;
    color: #41d7e7 !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path.is-offices .tl-home-hub__path-icon {
    background: rgba(88,119,255,.12) !important;
    border-color: rgba(88,119,255,.22) !important;
    color: #b7c5ff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path.is-contractors .tl-home-hub__path-icon {
    background: rgba(225,186,65,.18) !important;
    border-color: rgba(225,186,65,.26) !important;
    color: #f0cb58 !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path.is-materials .tl-home-hub__path-icon {
    background: rgba(34,197,94,.12) !important;
    border-color: rgba(34,197,94,.22) !important;
    color: #7ce3a6 !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path-label {
    display: block;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.32 !important;
    letter-spacing: -.01em !important;
    color: #ffffff !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path-label--desktop {
    display: none !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__path-label--mobile {
    display: block !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__cta-primary,
  body.tl-home-mobile-minimal .tl-home-hub__actions .tl-btnx {
    width: 100% !important;
    min-height: 54px !important;
    justify-content: center !important;
    border-radius: 18px !important;
    font-size: 1.02rem !important;
    background: #e1ba41 !important;
    border-color: transparent !important;
    color: #0f172a !important;
    box-shadow: 0 16px 30px rgba(225,186,65,.26) !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__visual,
  body.tl-home-mobile-minimal .tl-home-hub__visual-card,
  body.tl-home-mobile-minimal .tl-home-hub__coverage,
  body.tl-home-mobile-minimal .tl-home-hub__coverage-chips {
    display: none !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__trustbar {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 12px !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__metric {
    min-height: 110px;
    border-radius: 20px !important;
    padding: 14px 14px 12px !important;
    box-shadow: 0 12px 28px rgba(15,23,42,.06) !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__metric span {
    font-size: 11px !important;
  }

  body.tl-home-mobile-minimal .tl-home-hub__metric strong {
    font-size: 25px !important;
  }
}

/* --- Additional selectors extracted from tl_global_ui_tightening.css during route-based split. --- */

.tl-home-hub__hero,
.tl-home-v4-hero,
.tl-home-v3-hero {border-radius: 32px !important;
  box-shadow: var(--tl-tight-shadow) !important;}

.tl-home-hub__hero-grid,
.tl-home-v4-hero__grid--compact,
.tl-home-v3-hero__grid {padding: 22px 24px 20px !important;
  gap: 18px !important;}

.tl-home-hub__kicker {display: inline-flex !important;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: 0;}

.tl-home-hub__title,
.tl-home-v4-title,
.tl-home-v3-title {font-size: clamp(1.72rem, 2.8vw, 2.9rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  margin-top: 10px !important;
  margin-bottom: 0 !important;}

.tl-home-hub__copy,
.tl-home-v4-copy,
.tl-home-v3-copy {max-width: 54ch !important;
  margin-top: 8px !important;
  font-size: 14px !important;
  line-height: 1.75 !important;}

.tl-home-hub__copy,
.tl-home-v4-copy,
.tl-home-v3-copy {display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;}

.tl-home-hub__rail {gap: 8px !important;}

.tl-home-hub__visual-stat,
.tl-home-hub__service-card,
.tl-home-hub__coverage-strip {border: 1px solid var(--tl-tight-border) !important;
  background: var(--tl-tight-surface) !important;
  box-shadow: var(--tl-tight-shadow-soft) !important;}

.tl-home-hub__service-tag,
.tl-home-hub__route-pill,
.tl-home-hub__visual-route {min-height: 30px;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  border: 1px solid var(--tl-tight-border) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);}

@media (max-width: 1023px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)){
.tl-home-hub__hero-grid,
.tl-home-v4-hero__grid--compact,
.tl-home-v3-hero__grid {padding: 16px !important;}

.tl-home-hub__title {font-size: clamp(1.46rem, 7vw, 2rem) !important;}

.tl-home-hub__copy {font-size: 13px !important;
    line-height: 1.72 !important;
    -webkit-line-clamp: 3;}

.tl-home-hub__visual,
.tl-home-v4-hero__aside--visual,
.tl-home-v3-hero__visual {display: none !important;}

.tl-home-hub__rail {margin-top: 10px !important;}
}

@media (max-width: 767px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)){
.tl-home-hub__hero,
.tl-home-v4-hero,
.tl-home-v3-hero {border-radius: 18px !important;}

.tl-home-hub__kicker {min-height: 28px;
    padding: 4px 10px;
    font-size: 10px !important;}

.tl-home-hub__service-grid,
.tl-home-hub__visual-routes,
.tl-home-hub__coverage-grid {gap: 10px !important;}

.tl-home-hub__copy {display: none;}

.tl-home-hub__rail {margin-top: 8px !important;}
}

@media (max-width: 767.98px), ((hover: none) and (pointer: coarse) and (max-width: 1366px)){
.tl-home-hub__hero {background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,250,252,.98)) !important;
    border: 1px solid var(--tl-tight-border) !important;
    box-shadow: 0 12px 30px rgba(15,23,42,.08) !important;
    color: var(--tl-tight-ink) !important;}

.tl-home-hub__hero::before,
.tl-home-hub__hero::after {display: none !important;}

.tl-home-hub__hero-grid {padding: 16px !important;
    gap: 12px !important;}

.tl-home-hub__kicker {color: #456ba4 !important;
    background: rgba(37,188,207,.08) !important;
    border-color: rgba(37,188,207,.16) !important;
    box-shadow: none !important;}

.tl-home-hub__kicker::before {background: #25bccf !important;
    box-shadow: none !important;
    opacity: 1 !important;}

.tl-home-hub__title {color: var(--tl-tight-ink) !important;
    text-shadow: none !important;}

.tl-home-hub__copy {color: var(--tl-tight-copy) !important;}

.tl-home-hub__path,
.tl-home-hub__coverage-chip {background: #fff !important;
    color: #173e72 !important;
    border-color: rgba(148,163,184,.24) !important;
    box-shadow: 0 8px 20px rgba(15,23,42,.05) !important;}

.tl-home-hub__path-icon {background: rgba(37,188,207,.08) !important;
    border-color: rgba(37,188,207,.16) !important;
    box-shadow: none !important;}

.tl-home-hub__hero {border-radius: 26px !important;}

.tl-home-hub__title {max-width: none !important;
    font-size: clamp(1.82rem, 9.6vw, 2.52rem) !important;
    line-height: 1.06 !important;}

.tl-home-hub__actions {display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;}

.tl-home-hub__paths {display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 8px !important;
    width: 100% !important;}

.tl-home-hub__path {justify-content: flex-start !important;
    min-height: 46px !important;
    padding: 10px 12px !important;
    border-radius: 16px !important;}

.tl-home-hub__visual,
.tl-home-hub__visual-card {display: none !important;}

.tl-home-hub__trustbar {gap: 10px !important;}

.tl-home-hub__metric {border-radius: 18px !important;
    padding: 14px 15px !important;}

.tl-home-hub__final-cta {grid-template-columns: 1fr !important;
    padding: 18px 16px !important;
    border-radius: 24px !important;}

.tl-home-hub__final-cta .tl-home-hub__section-kicker,
.tl-home-hub__final-cta .tl-home-hub__section-title,
.tl-home-hub__final-cta .tl-home-hub__section-copy {color: #fff !important;}

.tl-home-hub__final-cta .tl-btnx {width: 100% !important;
    justify-content: center !important;}
}
