/* =========================================================================
   TechPulse — Design v5 ("Technology Built for Business")
   Overrides / extends site.css + portal-ux.css to match the approved
   homepage design exactly, and carries the same header/footer/colour
   system across every page on the site.
   ========================================================================= */

:root {
  --tp-navy: #0b1730;
  --tp-navy-2: #0e1f3d;
  --tp-blue: #2563eb;
  --tp-blue-dark: #1d4ed8;
  --tp-green: #22c55e;
  --tp-green-dark: #16a34a;
  --tp-gradient-text: linear-gradient(90deg, #3b82f6 0%, #22c55e 100%);
  --tp-gradient-kicker: linear-gradient(90deg, #2563eb, #22c55e);
}

/* ---------- Top navbar (dark) ---------- */
body.tp-public-site .navbar-tp {
  background: var(--tp-navy) !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
}
body.tp-public-site .navbar-tp .brand-name-simple { color: #fff; }
body.tp-public-site .navbar-tp .brand-name-simple::after {
  content: "INTEGRATED SOLUTIONS";
  display: block;
  font-size: .52rem;
  letter-spacing: .14em;
  font-weight: 700;
  color: var(--tp-green);
  margin-top: -2px;
}
body.tp-public-site .navbar-tp .nav-link-tp { color: rgba(255,255,255,.82) !important; }
body.tp-public-site .navbar-tp .nav-link-tp:hover,
body.tp-public-site .navbar-tp .nav-link-tp.active { color: #fff !important; }
body.tp-public-site .navbar-tp .nav-link-tp.active { position: relative; }
body.tp-public-site .navbar-tp .nav-link-tp.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
  background: var(--tp-gradient-kicker); border-radius: 2px;
}
body.tp-public-site .navbar-tp .navbar-toggler,
body.tp-public-site .navbar-tp .navbar-toggler i { color: #fff !important; }
body.tp-public-site .navbar-tp .free-demo-app-login-btn {
  color: rgba(255,255,255,.85) !important; border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 999px; padding: .4rem .9rem; font-size: .78rem;
}
body.tp-public-site .navbar-tp .free-demo-app-login-btn:hover { border-color: var(--tp-green) !important; color: #fff !important; }
body.tp-public-site .navbar-tp .portal-nav-btn { color: rgba(255,255,255,.85) !important; }
body.tp-public-site .navbar-tp .portal-nav-btn:hover { color: #fff !important; }

.navbar-tp .nav-search-tp {
  display: flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: .45rem 1rem;
  color: rgba(255,255,255,.6); font-size: .82rem; margin-right: .75rem;
}
.navbar-tp .nav-search-tp input {
  background: transparent; border: none; outline: none; color: #fff; font-size: .82rem; width: 130px;
}
.navbar-tp .nav-search-tp input::placeholder { color: rgba(255,255,255,.45); }

.btn-get-in-touch {
  background: var(--tp-blue); color: #fff !important; font-weight: 700; font-size: .84rem;
  border-radius: 999px; padding: .55rem 1.3rem; display: inline-flex; align-items: center; gap: .5rem;
  text-decoration: none; transition: background .2s ease, transform .2s ease; box-shadow: 0 6px 16px rgba(37,99,235,.35);
  white-space: nowrap;
}
.btn-get-in-touch:hover { background: var(--tp-blue-dark); color: #fff !important; transform: translateY(-1px); }
.btn-get-in-touch.tp-btn-get-in-touch-mobile { width: 100%; justify-content: center; margin-top: .75rem; padding: .75rem 1.3rem; font-size: .9rem; }

/* ---------- Gradient kicker (small dash + label) ---------- */
.tp-kicker-v5 {
  display: inline-flex; align-items: center; gap: .5rem; font-size: .76rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase; color: var(--tp-blue); margin-bottom: .9rem;
}
.tp-kicker-v5::before, .tp-kicker-v5::after { content: ""; width: 22px; height: 3px; border-radius: 2px; background: var(--tp-gradient-kicker); }
.tp-kicker-v5.tp-kicker-v5-light { color: #a7f3d0; }
.tp-kicker-v5.tp-kicker-v5-end::after { display: none; }

.tp-gradient-word {
  background: var(--tp-gradient-text); -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- HERO ---------- */
.tp-hero-v5 {
  position: relative; overflow: hidden; padding: 8.5rem 0 3.5rem; margin-top: 0;
  background: radial-gradient(120% 140% at 100% 0%, #12294d 0%, var(--tp-navy) 55%, var(--tp-navy) 100%);
}
.tp-hero-v5::before {
  content: ""; position: absolute; inset: 0; opacity: .18; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 42px 42px;
}
.tp-hero-v5 .row { position: relative; z-index: 2; }
.tp-hero-v5-copy .tp-kicker-v5 { color: #93c5fd; }
.tp-hero-v5-copy h1 {
  font-size: clamp(2.1rem, 4vw, 3.1rem); font-weight: 800; color: #fff; line-height: 1.15; margin-bottom: 1.1rem;
}
.tp-hero-v5-copy p {
  color: rgba(255,255,255,.68); font-size: 1.05rem; max-width: 480px; margin-bottom: 2rem;
}
.tp-hero-v5-actions { display: flex; gap: .9rem; flex-wrap: wrap; }
.tp-hero-v5-actions .tp-btn-hero-primary {
  background: var(--tp-blue); color: #fff; font-weight: 700; padding: .85rem 1.7rem; border-radius: 10px;
  display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; transition: transform .2s ease, background .2s ease;
}
.tp-hero-v5-actions .tp-btn-hero-primary:hover { background: var(--tp-blue-dark); transform: translateY(-2px); }

.tp-hero-v5-visual { position: relative; }
.tp-hero-v5-visual .tp-hero-v5-frame {
  border-radius: 14px; overflow: hidden; box-shadow: 0 30px 70px rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.1);
}
.tp-hero-v5-visual .tp-hero-v5-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tp-hero-v5-note {
  position: absolute; top: -1.6rem; right: -.5rem; color: #fff; font-family: 'Caveat', 'Segoe Script', cursive;
  font-size: 1.5rem; line-height: 1.15; text-align: right; transform: rotate(-4deg); text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
.tp-hero-v5-note .tp-note-accent { color: var(--tp-green); }
.tp-hero-v5-note svg { display: block; margin-left: auto; margin-top: 2px; width: 90px; }

/* ---------- Feature strip under hero ---------- */
.tp-feature-strip-v5 { background: #0a1526 !important; border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); }
.tp-feature-strip-v5 .row { --bs-gutter-x: 0; margin: 0; }
.tp-feature-strip-v5 .row > div { background: transparent !important; }
.tp-feature-strip-v5-item {
  display: flex !important; align-items: center; gap: .9rem; padding: 1.4rem 1.6rem;
  border-left: 1px solid rgba(255,255,255,.08); background: transparent !important; min-height: 88px;
}
.tp-feature-strip-v5 .col-lg-3:first-child .tp-feature-strip-v5-item { border-left: none; }
.tp-feature-strip-v5-icon {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 10px; background: rgba(37,99,235,.22) !important; color: #60a5fa !important;
  display: flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.tp-feature-strip-v5-item strong { display: block; color: #ffffff !important; font-size: .92rem; font-weight: 700; line-height: 1.3; }
.tp-feature-strip-v5-item small { display: block; color: rgba(255,255,255,.6) !important; font-size: .78rem; margin-top: 2px; }

/* ---------- Featured Solutions / Business Applications ---------- */
.tp-apps-v5-section { padding: 5.5rem 0; background: #f5f7fb; }
.tp-apps-v5-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; flex-wrap: wrap; }
.tp-apps-v5-head h2,
.tp-apps-v5-head h2 * { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; color: #0b1730 !important; margin-bottom: .6rem; opacity: 1 !important; }
.tp-apps-v5-head h2 .tp-gradient-word { color: transparent !important; background: var(--tp-gradient-text) !important; -webkit-background-clip: text !important; background-clip: text !important; }
.tp-apps-v5-head p { color: #46536b !important; max-width: 560px; margin: 0; opacity: 1 !important; }
.tp-apps-v5-nav { display: flex; align-items: center; gap: .9rem; }
.tp-apps-v5-nav button {
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid #d7dde8; background: #fff; color: var(--tp-navy);
  display: flex; align-items: center; justify-content: center; font-size: .8rem;
}
.tp-apps-v5-nav a { color: var(--tp-blue); font-weight: 700; font-size: .88rem; text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.tp-apps-v5-nav a:hover { color: var(--tp-blue-dark); }

.tp-app-card-v5 {
  position: relative; border-radius: 14px; padding: 1.9rem 1.7rem; min-height: 210px; color: #fff; overflow: hidden;
  display: flex; flex-direction: column; text-decoration: none; height: 100%;
  box-shadow: 0 12px 28px rgba(15,23,42,.14);
  transition: transform .25s ease, box-shadow .25s ease;
}
.tp-app-card-v5:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(15,23,42,.22); }
.tp-app-card-v5 .tp-app-v5-icon {
  width: 46px; height: 46px; border-radius: 12px; background: rgba(255,255,255,.18); backdrop-filter: blur(2px);
  display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 1rem;
}
.tp-app-card-v5 h3 { color: #fff; font-size: 1.15rem; font-weight: 700; margin-bottom: .55rem; }
.tp-app-card-v5 p { color: rgba(255,255,255,.82); font-size: .88rem; margin-bottom: 1.1rem; flex-grow: 1; }
.tp-app-card-v5 .tp-app-v5-link { color: #fff; font-weight: 700; font-size: .84rem; display: inline-flex; align-items: center; gap: .4rem; }
.tp-app-card-v5 .tp-app-v5-arrow {
  position: absolute; right: 1.3rem; bottom: 1.3rem; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; font-size: .72rem; color: #fff;
}
.tp-app-card-v5.tp-c1 { background: linear-gradient(135deg,#1e40af 0%,#1d4ed8 55%,#2563eb 100%); }
.tp-app-card-v5.tp-c2 { background: linear-gradient(135deg,#065f46 0%,#0f9d58 60%,#16a34a 100%); }
.tp-app-card-v5.tp-c3 { background: linear-gradient(135deg,#075985 0%,#0ea5e9 65%,#0284c7 100%); }
.tp-app-card-v5.tp-c4 { background: linear-gradient(135deg,#5b21b6 0%,#7c3aed 60%,#9333ea 100%); }
.tp-app-card-v5.tp-c5 { background: linear-gradient(135deg,#9a3412 0%,#ea580c 60%,#f97316 100%); }
.tp-app-card-v5.tp-c6 { background: linear-gradient(135deg,#0f766e 0%,#14b8a6 60%,#2dd4bf 100%); }

/* ---------- Why choose ---------- */
.tp-why-v5 { padding: 5.5rem 0; background: #fff; }
.tp-why-v5-image { position: relative; border-radius: 16px; overflow: hidden; }
.tp-why-v5-image img { width: 100%; display: block; border-radius: 16px; }
.tp-why-v5-copy h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; color: var(--tp-navy); margin-bottom: .9rem; }
.tp-why-v5-copy p { color: #5b6779; font-size: 1rem; max-width: 520px; margin-bottom: 2.2rem; }
.tp-why-v5-stats { display: flex; flex-wrap: wrap; gap: 1.8rem 2.4rem; }
.tp-why-v5-stat { display: flex; align-items: flex-start; gap: .8rem; min-width: 180px; }
.tp-why-v5-stat .tp-why-v5-icon {
  width: 42px; height: 42px; border-radius: 50%; background: rgba(37,99,235,.1); color: var(--tp-blue);
  display: flex; align-items: center; justify-content: center; font-size: 1.05rem; flex-shrink: 0;
}
.tp-why-v5-stat strong { display: block; color: var(--tp-navy); font-weight: 700; font-size: .92rem; }

/* ---------- CTA ---------- */
.tp-cta-v5 {
  position: relative; overflow: hidden; background: linear-gradient(120deg, var(--tp-navy) 0%, #0e2244 100%);
  padding: 3.6rem 0; margin: 0 0 0;
}
.tp-cta-v5::before {
  content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image: radial-gradient(circle at 85% 30%, rgba(37,99,235,.35), transparent 55%), radial-gradient(circle at 10% 90%, rgba(34,197,94,.25), transparent 55%);
}
.tp-cta-v5-inner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.tp-cta-v5-inner .tp-kicker-v5 { color: #a7f3d0; }
.tp-cta-v5-inner h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; margin-bottom: .5rem; }
.tp-cta-v5-inner p { color: rgba(255,255,255,.68); margin: 0; }
.tp-cta-v5-btn {
  background: var(--tp-blue); color: #fff; font-weight: 700; padding: .9rem 1.8rem; border-radius: 10px;
  display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; white-space: nowrap;
}
.tp-cta-v5-btn:hover { background: var(--tp-blue-dark); color: #fff; }

/* ---------- Footer ---------- */
body.tp-public-site .footer-tp { background: var(--tp-navy); }
body.tp-public-site .footer-title { color: #fff; }
body.tp-public-site .footer-links a { color: rgba(255,255,255,.65); }
body.tp-public-site .footer-links a:hover { color: var(--tp-green); }
body.tp-public-site .footer-desc { color: rgba(255,255,255,.55); }
body.tp-public-site .social-link { background: rgba(255,255,255,.08); color: #fff; }
body.tp-public-site .social-link:hover { background: var(--tp-blue); }
body.tp-public-site .footer-bottom { border-top: 1px solid rgba(255,255,255,.08); }

/* ---------- Inner-page hero banner (About/Services/Products/Contact/etc.) ---------- */
body.tp-public-site .page-hero {
  background: radial-gradient(120% 140% at 100% 0%, #12294d 0%, var(--tp-navy) 55%, var(--tp-navy) 100%) !important;
  padding-top: 8.5rem;
}
body.tp-public-site .page-hero h1 { color: #fff !important; }
body.tp-public-site .page-hero p { color: rgba(255,255,255,.68) !important; }
body.tp-public-site .section-badge,
body.tp-public-site .hero-badge { background: rgba(37,99,235,.14); color: #93c5fd; border-color: rgba(147,197,253,.3); }

/* ---------- Shared buttons / cards recolor (site-wide consistency) ---------- */
body.tp-public-site .btn-tp-primary,
body.tp-public-site .tp-btn-primary { background: var(--tp-blue) !important; border-color: var(--tp-blue) !important; }
body.tp-public-site .btn-tp-primary:hover,
body.tp-public-site .tp-btn-primary:hover { background: var(--tp-blue-dark) !important; }
body.tp-public-site .service-icon,
body.tp-public-site .tp-solution-icon { color: var(--tp-blue); }
body.tp-public-site .service-card:hover .service-icon { background: var(--tp-blue); }

/* ---------- Scroll-reveal safety net ----------
   The reveal-on-scroll fade (site.css .tp-reveal) can leave content stuck
   at opacity:0 if the IntersectionObserver never fires in time (full-page
   screenshots, slow devices, print views). Content must never depend on
   JS to become visible, so we neutralise the hidden starting state and
   keep only a harmless, always-visible transition. */
body.tp-public-site .tp-reveal { opacity: 1 !important; transform: none !important; }

/* ================= RESPONSIVE / MOBILE-FRIENDLY ================= */
@media (max-width: 991.98px) {
  .tp-feature-strip-v5-item { border-left: none; border-top: 1px solid rgba(255,255,255,.08); }
  .tp-feature-strip-v5 .col-lg-3:first-child .tp-feature-strip-v5-item { border-top: none; }
  .navbar-tp .nav-search-tp { display: none; }
  .tp-hero-v5-note { display: none; }
  .tp-hero-v5 { padding-top: 6.5rem; text-align: left; }
  .tp-hero-v5-visual { margin-top: 2rem; }
  .tp-apps-v5-head { align-items: flex-start; }
  .tp-why-v5-image { margin-bottom: 1rem; }
}

@media (max-width: 767.98px) {
  .tp-hero-v5 { padding: 6rem 0 2.5rem; }
  .tp-hero-v5-copy h1 { font-size: 1.9rem; }
  .tp-hero-v5-copy p { font-size: .96rem; max-width: 100%; }
  .tp-hero-v5-actions .tp-btn-hero-primary { width: 100%; justify-content: center; }
  .tp-feature-strip-v5-item { padding: 1.1rem 1.2rem; min-height: auto; }
  .tp-apps-v5-section, .tp-why-v5 { padding: 3.5rem 0; }
  .tp-apps-v5-head h2, .tp-apps-v5-head h2 * { font-size: 1.6rem; }
  .tp-apps-v5-nav { width: 100%; justify-content: space-between; }
  .tp-app-card-v5 { min-height: 180px; padding: 1.5rem 1.4rem; }
  .tp-why-v5-copy h2 { font-size: 1.5rem; }
  .tp-why-v5-stats { gap: 1.3rem 1.6rem; }
  .tp-why-v5-stat { min-width: 130px; }
  .tp-cta-v5-inner { flex-direction: column; align-items: flex-start; text-align: left; }
  .tp-cta-v5-inner > div:last-child { width: 100%; }
  .tp-cta-v5-btn { width: 100%; justify-content: center; }
}

@media (max-width: 575.98px) {
  .tp-feature-strip-v5 .row > div { width: 100%; flex: 0 0 100%; max-width: 100%; }
  .tp-feature-strip-v5-item { border-top: 1px solid rgba(255,255,255,.08); }
  .tp-feature-strip-v5 .col-lg-3:first-child .tp-feature-strip-v5-item,
  .tp-feature-strip-v5 .col-6:first-child .tp-feature-strip-v5-item { border-top: none; }
  .navbar-tp .brand-name-simple { font-size: 1.05rem; }
  .btn-get-in-touch:not(.tp-btn-get-in-touch-mobile) { display: none; }
}

/* =========================================================================
   V6 — NAV OVERFLOW FIX
   On real laptop widths (1024–1399px, the two "Tablet/Desktop" sizes you
   flagged) the full nav row — Portal Login, 6 links (2 with dropdown
   carets), the search pill, and the "Get In Touch" button — was wider than
   the viewport. body has overflow-x:hidden (site.css), so the excess was
   silently clipped off the right edge instead of wrapping: the button
   rendered as "Get In" with no arrow, cut off mid-word, exactly like your
   screenshot. Root cause was width, not the button itself, so the fix
   trims width at that range and guarantees the CTA never shrinks or clips.
   ========================================================================= */
.navbar-tp .container,
.navbar-tp .d-flex.align-items-center.justify-content-between {
  flex-wrap: nowrap;
  min-width: 0;
}
.navbar-collapse { min-width: 0; }
.btn-get-in-touch { flex-shrink: 0; }
@media (min-width: 992px) and (max-width: 1399.98px) {
  .navbar-tp .nav-search-tp { display: none; }
  .d-lg-flex.align-items-center.gap-1.ms-auto { gap: .1rem 0.65rem !important; }
  .nav-link-tp { padding: .7rem .35rem !important; font-size: .82rem !important; }
  .portal-text-link { display: none; }
  .btn-get-in-touch { padding: .55rem 1rem; font-size: .8rem; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .navbar-brand-tp .brand-name-simple::after { display: none; }
  .nav-link-tp { font-size: .78rem !important; }
}

/* =========================================================================
   V6 — UNIFIED LIGHT CARD SYSTEM
   Applies the flat, white-bordered card look (circular flat-blue icon,
   bold navy title, gray description, blue "Learn More →" link) across
   every card grid on the site — services, featured solutions/products
   (home + Products page), so cards read as one consistent component
   everywhere instead of three different treatments (gradient icon cards
   here, colored gradient tiles there, dark image-overlay tiles elsewhere).
   ========================================================================= */
body.tp-public-site .tp-service-modern {
  border-radius: 12px;
  border-color: #e5e9f0;
  box-shadow: 0 1px 3px rgba(15,35,66,.04);
}
body.tp-public-site .tp-service-modern:hover {
  box-shadow: 0 10px 24px rgba(15,35,66,.08);
  border-color: #cfe0f5;
  transform: none;
}
body.tp-public-site .tp-service-modern .tp-service-icon {
  background: var(--tp-blue) !important;
  border-radius: 50%;
  width: 52px; height: 52px;
  box-shadow: none;
}
body.tp-public-site .tp-service-modern .tp-service-number { display: none; }
body.tp-public-site .tp-service-modern h3 { margin-top: 1rem; }

/* Featured Solutions / Business Applications (home) — flat card, not gradient tile */
body.tp-public-site .tp-app-card-v5 {
  background: #fff !important;
  border: 1px solid #e5e9f0 !important;
  box-shadow: 0 1px 3px rgba(15,35,66,.04) !important;
  color: inherit;
}
body.tp-public-site .tp-app-card-v5:hover {
  box-shadow: 0 10px 24px rgba(15,35,66,.08) !important;
  border-color: #cfe0f5 !important;
  transform: translateY(-3px);
}
body.tp-public-site .tp-app-card-v5 .tp-app-v5-icon {
  background: var(--tp-blue) !important;
  color: #fff !important;
  border-radius: 50%;
  backdrop-filter: none;
}
body.tp-public-site .tp-app-card-v5 h3 { color: var(--tp-navy) !important; }
body.tp-public-site .tp-app-card-v5 p { color: #5b6779 !important; }
body.tp-public-site .tp-app-card-v5 .tp-app-v5-link { color: var(--tp-blue) !important; }
body.tp-public-site .tp-app-card-v5 .tp-app-v5-arrow {
  background: #eef4ff !important; color: var(--tp-blue) !important;
}

/* Products page solution cards — same flat card instead of dark photo tile */
body.tp-public-site .tp-solution-card {
  background: #fff !important;
  border: 1px solid #e5e9f0 !important;
  box-shadow: 0 1px 3px rgba(15,35,66,.04) !important;
}
body.tp-public-site .tp-solution-card:before,
body.tp-public-site .tp-solution-card-overlay { display: none; }
body.tp-public-site .tp-solution-card:hover {
  box-shadow: 0 10px 24px rgba(15,35,66,.08) !important;
  border-color: #cfe0f5 !important;
}
body.tp-public-site .tp-solution-card .tp-solution-icon {
  position: static;
  background: var(--tp-blue) !important;
  border: none !important;
  border-radius: 50%;
  backdrop-filter: none;
  margin-bottom: .75rem;
}
body.tp-public-site .tp-solution-card .tp-solution-label { color: var(--tp-blue) !important; }
body.tp-public-site .tp-solution-card h3,
body.tp-public-site .tp-solution-card-content h3 { color: var(--tp-navy) !important; text-shadow: none; max-width: 100%; }
body.tp-public-site .tp-solution-card p,
body.tp-public-site .tp-solution-card-content p { color: #5b6779 !important; -webkit-line-clamp: unset; }
body.tp-public-site .tp-solution-card a { color: var(--tp-blue) !important; }
body.tp-public-site .tp-solution-arrow {
  background: #eef4ff !important; color: var(--tp-blue) !important; border: none !important;
}
body.tp-public-site .tp-solution-card:hover .tp-solution-arrow { background: var(--tp-blue) !important; color: #fff !important; }


/* =========================================================================
   V7 — CLEAN CORPORATE HEADER / READABILITY FINAL
   Exact direction from the supplied header screenshot:
   white header, visible but subtle bottom divider, readable Portal Login,
   full company name, no desktop search field, and a clear Get In Touch CTA.
   ========================================================================= */
body.tp-public-site .navbar-tp {
  background: #ffffff !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid #dfe7f0 !important;
  box-shadow: 0 2px 12px rgba(11,31,58,.06) !important;
  min-height: 74px !important;
  padding: 0 !important;
}
body.tp-public-site .navbar-tp > .container { min-height: 74px; }
body.tp-public-site .navbar-brand-tp {
  min-height: 74px;
  height: 74px;
  gap: 10px !important;
  color: #0b2a5b !important;
}
body.tp-public-site .navbar-brand-tp .brand-logo-img {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  border-radius: 5px !important;
}
body.tp-public-site .navbar-brand-tp .brand-name-simple {
  display: block;
  color: #103f8f !important;
  font-size: clamp(1.08rem, 1.55vw, 1.36rem) !important;
  line-height: 1.02 !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
  white-space: nowrap;
}
body.tp-public-site .navbar-brand-tp .brand-subtitle {
  display: block;
  margin-top: 3px;
  color: #203a5f !important;
  font-size: .52rem !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  font-weight: 800 !important;
}
body.tp-public-site .navbar-tp .brand-name-simple::after { content: none !important; display: none !important; }
body.tp-public-site .navbar-tp .nav-link-tp {
  color: #243b5b !important;
  background: transparent !important;
  font-size: .88rem !important;
  font-weight: 650 !important;
  padding: .72rem .72rem !important;
  border-radius: 7px !important;
}
body.tp-public-site .navbar-tp .nav-link-tp:hover {
  color: #1769e0 !important;
  background: #f4f8fd !important;
}
body.tp-public-site .navbar-tp .nav-link-tp.active {
  color: #1769e0 !important;
  background: transparent !important;
}
body.tp-public-site .navbar-tp .nav-link-tp.active::after {
  left: .72rem !important;
  right: .72rem !important;
  bottom: -.32rem !important;
  height: 3px !important;
  background: #1769e0 !important;
  border-radius: 3px !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn {
  min-height: 42px;
  padding: .62rem .9rem !important;
  border: 1px solid #0b1f3a !important;
  border-radius: 8px !important;
  background: #0b1f3a !important;
  color: #ffffff !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  box-shadow: 0 3px 10px rgba(11,31,58,.16) !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn i,
body.tp-public-site .navbar-tp .portal-nav-btn::after { color: #ffffff !important; }
body.tp-public-site .navbar-tp .portal-nav-btn:hover,
body.tp-public-site .navbar-tp .portal-nav-btn.show {
  background: #1769e0 !important;
  border-color: #1769e0 !important;
  color: #ffffff !important;
}
body.tp-public-site .navbar-tp .portal-menu-tp,
body.tp-public-site .navbar-tp .mega-menu-tp {
  background: #ffffff !important;
  border: 1px solid #d9e2ec !important;
  box-shadow: 0 14px 34px rgba(11,31,58,.12) !important;
}
body.tp-public-site .navbar-tp .btn-get-in-touch {
  min-height: 44px;
  padding: .66rem 1.05rem !important;
  border: 1px solid #1769e0 !important;
  border-radius: 8px !important;
  background: #1769e0 !important;
  color: #ffffff !important;
  font-size: .86rem !important;
  font-weight: 700 !important;
  box-shadow: 0 5px 14px rgba(23,105,224,.18) !important;
}
body.tp-public-site .navbar-tp .btn-get-in-touch:hover {
  background: #1258bf !important;
  border-color: #1258bf !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}
body.tp-public-site .navbar-tp .nav-search-tp { display: none !important; }
body.tp-public-site .navbar-tp .navbar-toggler {
  color: #0b1f3a !important;
  background: #ffffff !important;
}
body.tp-public-site .navbar-tp .navbar-toggler i { color: #0b1f3a !important; }

/* Keep the page itself clean and white around the header/content boundary. */
body.tp-public-site { background: #ffffff !important; color: #172b4d; }
body.tp-public-site .tp-tech-background { opacity: .035 !important; }

@media (min-width: 992px) and (max-width: 1399.98px) {
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: 1.08rem !important; }
  body.tp-public-site .navbar-brand-tp .brand-logo-img { width: 39px !important; height: 39px !important; min-width: 39px !important; }
  body.tp-public-site .navbar-tp .nav-link-tp { font-size: .80rem !important; padding-left: .43rem !important; padding-right: .43rem !important; }
  body.tp-public-site .navbar-tp .portal-nav-btn { font-size: .78rem !important; padding-left: .7rem !important; padding-right: .7rem !important; }
  body.tp-public-site .navbar-tp .btn-get-in-touch { font-size: .78rem !important; padding-left: .78rem !important; padding-right: .78rem !important; }
}
@media (max-width: 991.98px) {
  body.tp-public-site .navbar-brand-tp { min-height: 64px; height: 64px; }
  body.tp-public-site .navbar-tp > .container { min-height: 64px; }
  body.tp-public-site .navbar-brand-tp .brand-logo-img { width: 38px !important; height: 38px !important; min-width: 38px !important; }
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: 1rem !important; }
  body.tp-public-site .navbar-tp .navbar-collapse { background: #ffffff; border-top: 1px solid #e4eaf2; padding: .5rem 0 1rem; }
  body.tp-public-site .navbar-tp .nav-link-tp { font-size: .92rem !important; padding: .78rem .25rem !important; border-bottom: 1px solid #e6ebf2; border-radius: 0 !important; }
}

/* =========================================================================
   TechPulse V6 — Dark Technology Corporate Theme
   ========================================================================= */
body.tp-public-site {
  --tp-v6-bg:#031426; --tp-v6-panel:rgba(5,27,48,.92); --tp-v6-border:rgba(93,188,255,.28);
  --tp-v6-border-strong:rgba(77,181,255,.55); --tp-v6-text:#f5fbff; --tp-v6-muted:#b9ccda;
  background:#031426!important;color:var(--tp-v6-text)!important;font-family:"Plus Jakarta Sans",system-ui,sans-serif;
}
body.tp-public-site .tp-tech-background{
  position:fixed!important;inset:0!important;z-index:-2!important;display:block!important;
  background:linear-gradient(180deg,rgba(1,10,22,.48),rgba(1,14,27,.82)),url('/images/techpulse-technology-background.png') center/cover no-repeat!important;
}
body.tp-public-site .tp-tech-background::after{content:"";position:absolute;inset:0;
 background:radial-gradient(circle at 15% 20%,rgba(35,145,255,.14),transparent 30%),radial-gradient(circle at 85% 70%,rgba(0,218,255,.10),transparent 32%);}
body.tp-public-site .tp-bg-orb,body.tp-public-site .tp-bg-grid{opacity:.10!important}
body.tp-public-site .bg-white,body.tp-public-site .bg-light,body.tp-public-site .bg-body,body.tp-public-site .bg-body-tertiary{
 background-color:rgba(3,20,38,.94)!important;color:var(--tp-v6-text)!important;
}
body.tp-public-site .navbar-tp{background:rgba(2,14,28,.97)!important;border-bottom:1px solid rgba(80,180,255,.26)!important;
 box-shadow:0 8px 28px rgba(0,0,0,.35)!important;backdrop-filter:blur(14px);}
body.tp-public-site .navbar-tp>.container{min-height:82px!important}
body.tp-public-site .navbar-brand-tp{gap:.75rem!important}
body.tp-public-site .navbar-brand-tp .brand-logo-img{width:52px!important;height:52px!important;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,151,255,.22))}
body.tp-public-site .navbar-brand-tp .brand-name-simple{color:#fff!important;font-size:1.30rem!important;line-height:1.08!important;font-weight:800!important;letter-spacing:-.025em}
body.tp-public-site .navbar-brand-tp .brand-subtitle{color:#8fdcff!important;font-size:.56rem!important;letter-spacing:.16em!important;font-weight:800!important}
body.tp-public-site .navbar-tp .nav-link-tp{color:#d8e8f4!important;font-size:.91rem!important;font-weight:650!important}
body.tp-public-site .navbar-tp .nav-link-tp:hover,body.tp-public-site .navbar-tp .nav-link-tp.active{color:#fff!important}
body.tp-public-site .navbar-tp .nav-link-tp.active::after{background:linear-gradient(90deg,#2494ff,#39d9ff)!important;height:3px!important}
body.tp-public-site .navbar-tp .portal-nav-btn{color:#fff!important;background:#0b2c4b!important;border:1px solid rgba(78,184,255,.38)!important;
 border-radius:9px!important;padding:.62rem .95rem!important;font-size:.84rem!important;font-weight:700!important;box-shadow:0 5px 16px rgba(0,0,0,.25)}
body.tp-public-site .navbar-tp .portal-nav-btn:hover,body.tp-public-site .navbar-tp .portal-nav-btn.show{background:#15588b!important;color:#fff!important;border-color:rgba(91,207,255,.7)!important}
body.tp-public-site .navbar-tp .mega-menu-tp,body.tp-public-site .navbar-tp .portal-menu-tp{background:#061b30!important;border:1px solid var(--tp-v6-border)!important;box-shadow:0 18px 45px rgba(0,0,0,.45)!important}
body.tp-public-site .navbar-tp .dropdown-item{color:#dcecf6!important}
body.tp-public-site .navbar-tp .dropdown-item:hover,body.tp-public-site .navbar-tp .dropdown-item:focus{background:#0c3659!important;color:#fff!important}
body.tp-public-site .navbar-tp .mega-menu-heading{color:#79cfff!important}
body.tp-public-site .navbar-tp .navbar-toggler{color:#fff!important;border:1px solid rgba(93,188,255,.35)!important;border-radius:8px!important}
body.tp-public-site .navbar-tp .navbar-collapse{background:#04182b!important}
body.tp-public-site .navbar-tp .btn-get-in-touch{background:linear-gradient(135deg,#1687ff,#19bce8)!important;color:#fff!important;
 border:1px solid rgba(147,232,255,.55)!important;border-radius:9px!important;padding:.68rem 1.15rem!important;font-size:.86rem!important;font-weight:800!important;box-shadow:0 8px 20px rgba(0,137,255,.22)}
body.tp-public-site .tp-hero-v5,body.tp-public-site .tp-feature-strip-v5,body.tp-public-site .tp-apps-v5-section,
body.tp-public-site .tp-premium-section,body.tp-public-site .tp-feature-band,body.tp-public-site .tp-why-v5,body.tp-public-site .tp-cta-v5{
 color:var(--tp-v6-text)!important;background:rgba(2,18,34,.84)!important;border-color:var(--tp-v6-border)!important}
body.tp-public-site .tp-hero-v5{padding-top:6.8rem!important;background:linear-gradient(90deg,rgba(2,15,29,.96) 0%,rgba(2,18,34,.90) 45%,rgba(2,18,34,.62) 100%)!important}
body.tp-public-site .tp-hero-v5::before{opacity:.12!important}
body.tp-public-site .tp-hero-v5-copy h1{color:#fff!important;font-size:clamp(2.35rem,4.4vw,4rem)!important;line-height:1.10!important;letter-spacing:-.04em}
body.tp-public-site .tp-hero-v5-copy p{color:#c6d8e5!important;font-size:1.08rem!important;line-height:1.75!important}
body.tp-public-site .tp-gradient-word{background:linear-gradient(90deg,#4cb5ff,#42e3ff)!important;-webkit-background-clip:text!important;background-clip:text!important}
body.tp-public-site .tp-kicker-v5{color:#72cfff!important}
body.tp-public-site .tp-btn-hero-primary,body.tp-public-site .tp-btn-primary{background:linear-gradient(135deg,#147ff1,#16bde8)!important;color:#fff!important;border:1px solid rgba(130,225,255,.48)!important}
body.tp-public-site .tp-btn-tp-outline,body.tp-public-site .tp-btn-outline-light{color:#fff!important;border-color:rgba(104,204,255,.48)!important}
body.tp-public-site .tp-btn-tp-outline:hover,body.tp-public-site .tp-btn-outline-light:hover{background:rgba(43,157,225,.15)!important;color:#fff!important}
body.tp-public-site .tp-section-heading h2,body.tp-public-site .tp-section-heading h2 *,body.tp-public-site .tp-apps-v5-head h2,
body.tp-public-site .tp-apps-v5-head h2 *,body.tp-public-site .tp-feature-title,body.tp-public-site .tp-feature-title *,
body.tp-public-site .tp-why-v5-copy h2,body.tp-public-site .tp-cta-v5 h2,body.tp-public-site h1,body.tp-public-site h2,
body.tp-public-site h3,body.tp-public-site h4,body.tp-public-site h5,body.tp-public-site h6{color:#f7fbff!important}
body.tp-public-site p,body.tp-public-site .tp-section-heading p,body.tp-public-site .tp-apps-v5-head p,body.tp-public-site .tp-feature-copy,
body.tp-public-site .text-muted{color:#b9cedd!important;line-height:1.72!important}
body.tp-public-site a{color:#72cfff}body.tp-public-site a:hover{color:#b7efff}
body.tp-public-site .tp-service-modern,body.tp-public-site .tp-solution-card,body.tp-public-site .tp-app-card-v5,
body.tp-public-site .service-card,body.tp-public-site .product-card,body.tp-public-site .portfolio-card,body.tp-public-site .blog-card,
body.tp-public-site .testimonial-card,body.tp-public-site .tp-check-list>div,body.tp-public-site .card{
 background:linear-gradient(145deg,rgba(7,35,58,.96),rgba(4,24,43,.96))!important;color:#eaf6ff!important;
 border:1px solid var(--tp-v6-border)!important;box-shadow:0 12px 35px rgba(0,0,0,.24)!important;border-radius:12px!important}
body.tp-public-site .tp-service-modern:hover,body.tp-public-site .tp-solution-card:hover,body.tp-public-site .tp-app-card-v5:hover,
body.tp-public-site .service-card:hover,body.tp-public-site .product-card:hover,body.tp-public-site .portfolio-card:hover,
body.tp-public-site .blog-card:hover,body.tp-public-site .card:hover{border-color:rgba(77,181,255,.55)!important;transform:translateY(-3px);box-shadow:0 18px 45px rgba(0,0,0,.32),0 0 25px rgba(28,156,255,.08)!important}
body.tp-public-site .tp-service-modern h3,body.tp-public-site .tp-solution-card h3,body.tp-public-site .tp-app-card-v5 h3,
body.tp-public-site .service-card h3,body.tp-public-site .product-card h3,body.tp-public-site .portfolio-card h3,body.tp-public-site .blog-card h3{
 color:#fff!important;font-size:1.12rem!important;line-height:1.35!important}
body.tp-public-site .tp-service-modern p,body.tp-public-site .tp-solution-card p,body.tp-public-site .tp-app-card-v5 p,
body.tp-public-site .service-card p,body.tp-public-site .product-card p,body.tp-public-site .portfolio-card p,body.tp-public-site .blog-card p{
 color:#b8ccda!important;font-size:.94rem!important;line-height:1.68!important}
body.tp-public-site .tp-service-icon,body.tp-public-site .tp-solution-icon,body.tp-public-site .tp-app-v5-icon{
 background:rgba(26,143,232,.18)!important;color:#58c6ff!important;border:1px solid rgba(79,195,255,.28)!important}
body.tp-public-site input,body.tp-public-site textarea,body.tp-public-site select,body.tp-public-site .form-control,body.tp-public-site .form-select{
 background:rgba(4,25,43,.92)!important;color:#f3faff!important;border:1px solid rgba(91,185,237,.34)!important}
body.tp-public-site input::placeholder,body.tp-public-site textarea::placeholder{color:#829bad!important}
body.tp-public-site input:focus,body.tp-public-site textarea:focus,body.tp-public-site select:focus,body.tp-public-site .form-control:focus,body.tp-public-site .form-select:focus{
 border-color:#36b8ff!important;box-shadow:0 0 0 .2rem rgba(36,148,255,.15)!important}
body.tp-public-site label,body.tp-public-site .form-label{color:#eaf6ff!important;font-weight:650!important}
body.tp-public-site table{color:#e8f5ff!important;border-color:rgba(91,185,237,.25)!important}
body.tp-public-site table th{background:#0a3150!important;color:#fff!important}
body.tp-public-site table td{background:rgba(4,26,45,.92)!important;color:#c8dbe7!important;border-color:rgba(91,185,237,.20)!important}
body.tp-public-site .tp-hero-v5-frame,body.tp-public-site .tp-image-frame{border:1px solid rgba(91,195,255,.35)!important;box-shadow:0 24px 65px rgba(0,0,0,.42)!important}
body.tp-public-site .tp-image-label{background:rgba(3,20,37,.90)!important;border:1px solid rgba(83,188,245,.28)!important;color:#fff!important}
body.tp-public-site .footer-tp{background:#020d1a!important;border-top:1px solid rgba(75,180,245,.25)!important}
body.tp-public-site .footer-title{color:#fff!important}
body.tp-public-site .footer-links a,body.tp-public-site .footer-desc,body.tp-public-site .footer-bottom{color:#a9bfce!important}
body.tp-public-site .footer-links a:hover{color:#55caff!important}
body.tp-public-site .page-hero,body.tp-public-site .inner-hero,body.tp-public-site .section-hero,body.tp-public-site .content-section,body.tp-public-site .premium-section{
 background:rgba(2,18,34,.86)!important;color:#f5fbff!important}
body.tp-public-site .page-hero h1,body.tp-public-site .inner-hero h1{color:#fff!important;font-size:clamp(2rem,4vw,3.25rem)!important}
body.tp-public-site .page-hero p,body.tp-public-site .inner-hero p{color:#bed1df!important}
body.tp-public-site .text-primary{color:#55bfff!important}body.tp-public-site .text-secondary{color:#b9ccda!important}
body.tp-public-site .text-dark{color:#f1f8fd!important}
body.tp-public-site .border,body.tp-public-site .border-top,body.tp-public-site .border-bottom,body.tp-public-site .border-start,body.tp-public-site .border-end{border-color:rgba(83,184,241,.24)!important}
@media(max-width:991px){
 body.tp-public-site .navbar-tp>.container{min-height:72px!important}
 body.tp-public-site .navbar-brand-tp .brand-logo-img{width:45px!important;height:45px!important}
 body.tp-public-site .navbar-brand-tp .brand-name-simple{font-size:1.08rem!important}
 body.tp-public-site .tp-hero-v5{padding:7rem 0 3rem!important}
}
@media(max-width:575px){
 body.tp-public-site .navbar-brand-tp .brand-logo-img{width:40px!important;height:40px!important}
 body.tp-public-site .navbar-brand-tp .brand-name-simple{font-size:.94rem!important}
 body.tp-public-site .tp-hero-v5-copy h1{font-size:2.15rem!important}
 body.tp-public-site .tp-hero-v5-copy p{font-size:.98rem!important}
 body.tp-public-site .tp-service-modern h3{font-size:1.05rem!important}
 body.tp-public-site .tp-service-modern p{font-size:.91rem!important}
}

/* ========================================================================
   V7 FINAL — EXACT TECHPULSE TECHNOLOGY BACKGROUND + COMPACT TYPOGRAPHY
   Uses the supplied laptop/circuit image as the visual background throughout
   the public website. Content remains readable through controlled overlays.
   ======================================================================== */
body.tp-public-site {
  --tp-v7-bg: #031426;
  --tp-v7-panel: rgba(3, 20, 38, .78);
  --tp-v7-panel-strong: rgba(3, 20, 38, .90);
  --tp-v7-border: rgba(86, 190, 255, .30);
  --tp-v7-border-strong: rgba(86, 190, 255, .52);
  --tp-v7-text: #f5fbff;
  --tp-v7-muted: #c1d2df;
  background: #031426 !important;
  color: var(--tp-v7-text) !important;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif !important;
}

/* The exact image supplied by the user — static, full-page, no alternate image. */
body.tp-public-site .tp-tech-background {
  position: fixed !important;
  inset: 0 !important;
  z-index: -2 !important;
  display: block !important;
  opacity: 1 !important;
  background: url('/images/techpulse-technology-background.png') center center / cover no-repeat !important;
  filter: none !important;
  animation: none !important;
}
body.tp-public-site .tp-tech-background::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(1,10,22,.50), rgba(1,12,24,.72)) !important;
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}
body.tp-public-site .tp-tech-background::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, rgba(1,10,22,.18), rgba(1,10,22,.05), rgba(1,10,22,.22)) !important;
  opacity: 1 !important;
}
body.tp-public-site .tp-bg-orb,
body.tp-public-site .tp-bg-grid { display: none !important; }

/* Never leave large plain white/light sections over the requested background. */
body.tp-public-site .tp-hero-v5,
body.tp-public-site .tp-feature-strip-v5,
body.tp-public-site .tp-apps-v5-section,
body.tp-public-site .tp-premium-section,
body.tp-public-site .tp-feature-band,
body.tp-public-site .tp-why-v5,
body.tp-public-site .tp-cta-v5,
body.tp-public-site .tp-solutions-section,
body.tp-public-site .tp-solutions-page-grid,
body.tp-public-site .tp-solutions-why,
body.tp-public-site .content-section,
body.tp-public-site .section-tp,
body.tp-public-site .section-tp-alt,
body.tp-public-site .premium-section,
body.tp-public-site .section-hero,
body.tp-public-site main,
body.tp-public-site .container-fluid {
  background: transparent !important;
  color: var(--tp-v7-text) !important;
}

body.tp-public-site .tp-hero-v5,
body.tp-public-site .tp-apps-v5-section,
body.tp-public-site .tp-why-v5,
body.tp-public-site .tp-solutions-page-grid,
body.tp-public-site .tp-solutions-why {
  border-color: var(--tp-v7-border) !important;
}

/* Header: professional, compact and readable over the exact image. */
body.tp-public-site .navbar-tp {
  background: rgba(2, 13, 27, .88) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(103, 202, 255, .28) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.30) !important;
  backdrop-filter: blur(12px) saturate(120%);
  min-height: 70px !important;
}
body.tp-public-site .navbar-tp > .container { min-height: 70px !important; }
body.tp-public-site .navbar-brand-tp { min-height: 70px !important; height: 70px !important; gap: 9px !important; }
body.tp-public-site .navbar-brand-tp .brand-logo-img {
  width: 43px !important; height: 43px !important; min-width: 43px !important;
}
body.tp-public-site .navbar-brand-tp .brand-name-simple {
  color: #fff !important;
  font-size: 1.10rem !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}
body.tp-public-site .navbar-brand-tp .brand-subtitle {
  color: #9de5ff !important;
  font-size: .48rem !important;
  letter-spacing: .13em !important;
  font-weight: 800 !important;
}
body.tp-public-site .navbar-tp .nav-link-tp {
  color: #dbeaf4 !important;
  font-size: .82rem !important;
  font-weight: 650 !important;
  padding: .60rem .62rem !important;
}
body.tp-public-site .navbar-tp .nav-link-tp:hover,
body.tp-public-site .navbar-tp .nav-link-tp.active { color: #fff !important; }
body.tp-public-site .navbar-tp .nav-link-tp.active::after {
  background: #36b8ff !important;
  height: 2px !important;
  bottom: -.28rem !important;
}

/* Portal button: solid professional CTA, no futuristic/AI-looking gradient. */
body.tp-public-site .navbar-tp .portal-nav-btn {
  background: #0a3150 !important;
  color: #fff !important;
  border: 1px solid #49bfff !important;
  border-radius: 7px !important;
  padding: .54rem .78rem !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn:hover,
body.tp-public-site .navbar-tp .portal-nav-btn.show {
  background: #1769e0 !important;
  border-color: #55caff !important;
  color: #fff !important;
}

body.tp-public-site .navbar-tp .btn-get-in-touch {
  background: #1769e0 !important;
  color: #fff !important;
  border: 1px solid #62cfff !important;
  border-radius: 7px !important;
  padding: .58rem .92rem !important;
  font-size: .79rem !important;
  font-weight: 700 !important;
  box-shadow: 0 5px 15px rgba(0,95,180,.25) !important;
}
body.tp-public-site .navbar-tp .btn-get-in-touch:hover {
  background: #0e58c9 !important;
  border-color: #8be0ff !important;
  transform: none !important;
}

/* Compact, professional typography — reduce oversized V6 headings. */
body.tp-public-site h1,
body.tp-public-site h2,
body.tp-public-site h3,
body.tp-public-site h4,
body.tp-public-site h5,
body.tp-public-site h6 { letter-spacing: -.018em !important; }
body.tp-public-site h1 { font-size: clamp(2.0rem, 3.4vw, 3.05rem) !important; line-height: 1.12 !important; }
body.tp-public-site h2 { font-size: clamp(1.55rem, 2.5vw, 2.15rem) !important; line-height: 1.18 !important; }
body.tp-public-site h3 { font-size: 1.10rem !important; line-height: 1.30 !important; }
body.tp-public-site h4 { font-size: 1.00rem !important; }
body.tp-public-site p,
body.tp-public-site li { font-size: .93rem !important; line-height: 1.68 !important; color: var(--tp-v7-muted) !important; }
body.tp-public-site small { font-size: .78rem !important; }
body.tp-public-site .tp-hero-v5-copy h1 { font-size: clamp(2.0rem, 3.5vw, 3.05rem) !important; line-height: 1.10 !important; }
body.tp-public-site .tp-hero-v5-copy p { font-size: .96rem !important; line-height: 1.68 !important; }
body.tp-public-site .page-hero h1,
body.tp-public-site .inner-hero h1,
body.tp-public-site .tp-solutions-page-hero h1 { font-size: clamp(2.0rem, 3.6vw, 3.15rem) !important; line-height: 1.10 !important; }
body.tp-public-site .page-hero p,
body.tp-public-site .inner-hero p,
body.tp-public-site .tp-solutions-page-hero p { font-size: .96rem !important; line-height: 1.68 !important; }

/* Kicker/labels: compact rather than oversized AI-style UI. */
body.tp-public-site .tp-kicker-v5,
body.tp-public-site .tp-solutions-kicker,
body.tp-public-site .tp-solutions-kicker-light {
  font-size: .68rem !important;
  letter-spacing: .10em !important;
}

/* Cards: dark professional panels, consistent borders and moderate text. */
body.tp-public-site .tp-service-modern,
body.tp-public-site .tp-solution-card,
body.tp-public-site .tp-app-card-v5,
body.tp-public-site .service-card,
body.tp-public-site .product-card,
body.tp-public-site .portfolio-card,
body.tp-public-site .blog-card,
body.tp-public-site .testimonial-card,
body.tp-public-site .card,
body.tp-public-site .tp-check-list > div {
  background: rgba(3, 22, 39, .84) !important;
  border: 1px solid var(--tp-v7-border) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.22) !important;
  border-radius: 10px !important;
  backdrop-filter: blur(7px);
}
body.tp-public-site .tp-service-modern:hover,
body.tp-public-site .tp-solution-card:hover,
body.tp-public-site .tp-app-card-v5:hover,
body.tp-public-site .service-card:hover,
body.tp-public-site .product-card:hover,
body.tp-public-site .portfolio-card:hover,
body.tp-public-site .blog-card:hover,
body.tp-public-site .card:hover {
  border-color: var(--tp-v7-border-strong) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.30) !important;
}
body.tp-public-site .tp-service-modern h3,
body.tp-public-site .tp-solution-card h3,
body.tp-public-site .tp-app-card-v5 h3,
body.tp-public-site .service-card h3,
body.tp-public-site .product-card h3,
body.tp-public-site .portfolio-card h3,
body.tp-public-site .blog-card h3 { font-size: 1.04rem !important; color:#fff !important; }
body.tp-public-site .tp-service-modern p,
body.tp-public-site .tp-solution-card p,
body.tp-public-site .tp-app-card-v5 p,
body.tp-public-site .service-card p,
body.tp-public-site .product-card p,
body.tp-public-site .portfolio-card p,
body.tp-public-site .blog-card p { font-size: .89rem !important; color:#bfd1de !important; }

/* Buttons: remove overly AI/futuristic gradients; use clean corporate controls. */
body.tp-public-site .tp-btn-hero-primary,
body.tp-public-site .tp-btn-primary,
body.tp-public-site .tp-btn,
body.tp-public-site .tp-cta-v5-btn {
  background: #1769e0 !important;
  color: #fff !important;
  border: 1px solid #5bc9ff !important;
  border-radius: 7px !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  box-shadow: 0 6px 16px rgba(0,90,170,.22) !important;
}
body.tp-public-site .tp-btn-hero-primary:hover,
body.tp-public-site .tp-btn-primary:hover,
body.tp-public-site .tp-btn:hover,
body.tp-public-site .tp-cta-v5-btn:hover {
  background: #0f5dcc !important;
  color:#fff !important;
  transform: translateY(-1px);
}
body.tp-public-site .tp-btn-tp-outline,
body.tp-public-site .tp-btn-outline-light {
  background: rgba(2,18,34,.55) !important;
  color:#fff !important;
  border:1px solid rgba(102,205,255,.55) !important;
  border-radius:7px !important;
  font-size:.82rem !important;
}

/* Forms and tables: strong contrast, never transparent enough to lose text. */
body.tp-public-site input,
body.tp-public-site textarea,
body.tp-public-site select,
body.tp-public-site .form-control,
body.tp-public-site .form-select {
  background: rgba(2,17,31,.90) !important;
  color: #f4fbff !important;
  border: 1px solid rgba(93,190,244,.38) !important;
  font-size: .91rem !important;
}
body.tp-public-site input::placeholder,
body.tp-public-site textarea::placeholder { color:#91a9b9 !important; }
body.tp-public-site label,
body.tp-public-site .form-label { color:#e9f6ff !important; font-size:.85rem !important; font-weight:650 !important; }
body.tp-public-site table th { background: rgba(5,45,73,.95) !important; color:#fff !important; font-size:.82rem !important; }
body.tp-public-site table td { background: rgba(2,18,32,.88) !important; color:#c9dce8 !important; font-size:.85rem !important; }

/* Remove accidental white surfaces created by Bootstrap utility classes. */
body.tp-public-site .bg-white,
body.tp-public-site .bg-light,
body.tp-public-site .bg-body,
body.tp-public-site .bg-body-tertiary {
  background: rgba(3,20,38,.82) !important;
  color: var(--tp-v7-text) !important;
}

/* Footer stays dark but still reveals the same supplied technology image underneath. */
body.tp-public-site .footer-tp {
  background: rgba(1,10,21,.90) !important;
  border-top: 1px solid var(--tp-v7-border) !important;
}
body.tp-public-site .footer-title { color:#fff !important; font-size:.88rem !important; }
body.tp-public-site .footer-links a,
body.tp-public-site .footer-desc,
body.tp-public-site .footer-bottom { color:#aec4d2 !important; font-size:.80rem !important; }

@media (max-width: 991.98px) {
  body.tp-public-site .navbar-tp .navbar-collapse {
    background: rgba(2,15,29,.97) !important;
    border-top: 1px solid var(--tp-v7-border) !important;
  }
  body.tp-public-site .navbar-tp .nav-link-tp {
    font-size: .86rem !important;
    padding: .66rem .25rem !important;
  }
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: 1.00rem !important; }
  body.tp-public-site h1 { font-size: 2.0rem !important; }
  body.tp-public-site h2 { font-size: 1.65rem !important; }
}
@media (max-width: 575px) {
  body.tp-public-site .navbar-brand-tp .brand-logo-img { width: 38px !important; height: 38px !important; min-width:38px !important; }
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: .90rem !important; }
  body.tp-public-site .navbar-brand-tp .brand-subtitle { font-size:.42rem !important; }
  body.tp-public-site .tp-hero-v5-copy h1 { font-size: 1.85rem !important; }
  body.tp-public-site .tp-hero-v5-copy p { font-size:.91rem !important; }
  body.tp-public-site h2 { font-size:1.50rem !important; }
  body.tp-public-site p, body.tp-public-site li { font-size:.89rem !important; }
}


/* ========================================================================
   V23 FINAL READABILITY PASS — REMOVE DUPLICATE BRAND SUBTITLE + DARK FORMS
   ======================================================================== */
/* The company name already contains the full legal/brand name. Do not repeat
   "INTEGRATED SOLUTIONS" underneath it in the header. */
body.tp-public-site .navbar-brand-tp .brand-name-simple::after,
body.tp-public-site .navbar-brand-tp .brand-subtitle {
  display: none !important;
  content: none !important;
}
body.tp-public-site .navbar-brand-tp .brand-name-simple {
  font-size: 1.02rem !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: -.018em !important;
  color: #f8fbff !important;
  max-width: 420px !important;
  white-space: normal !important;
}

/* Keep the entire public site on the requested technology background. */
body.tp-public-site .bg-white,
body.tp-public-site .bg-light,
body.tp-public-site .card.bg-white,
body.tp-public-site .contact-form-box {
  background: rgba(3, 20, 38, .90) !important;
  color: #f5fbff !important;
  border: 1px solid var(--tp-v7-border) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.24) !important;
}

/* Contact page: the previous white form inherited pale text, making labels
   and the heading almost invisible. Explicitly set every text/input state. */
body.tp-public-site .contact-form-box h1,
body.tp-public-site .contact-form-box h2,
body.tp-public-site .contact-form-box h3,
body.tp-public-site .contact-form-box h4,
body.tp-public-site .contact-form-box h5,
body.tp-public-site .contact-form-box h6 {
  color: #ffffff !important;
}
body.tp-public-site .contact-form-box p,
body.tp-public-site .contact-form-box .text-muted {
  color: #bcd0df !important;
}
body.tp-public-site .contact-form-box label,
body.tp-public-site .contact-form-box label.tp-label {
  color: #e7f3fb !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}
body.tp-public-site .contact-form-box .form-control-tp,
body.tp-public-site .contact-form-box input,
body.tp-public-site .contact-form-box select,
body.tp-public-site .contact-form-box textarea {
  color: #f4faff !important;
  background: #172a3b !important;
  border: 1px solid rgba(102, 190, 238, .55) !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  font-size: .88rem !important;
}
body.tp-public-site .contact-form-box .form-control-tp::placeholder,
body.tp-public-site .contact-form-box input::placeholder,
body.tp-public-site .contact-form-box textarea::placeholder {
  color: #a9bdcc !important;
  opacity: 1 !important;
}
body.tp-public-site .contact-form-box .form-control-tp:focus,
body.tp-public-site .contact-form-box input:focus,
body.tp-public-site .contact-form-box select:focus,
body.tp-public-site .contact-form-box textarea:focus {
  border-color: #4fc3ff !important;
  background: #14283a !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(79,195,255,.14) !important;
  outline: none !important;
}
body.tp-public-site .contact-form-box select option {
  background: #172a3b !important;
  color: #f4faff !important;
}
body.tp-public-site .contact-form-box .btn-submit {
  background: #1769e0 !important;
  color: #ffffff !important;
  border: 1px solid #55caff !important;
  border-radius: 7px !important;
  font-size: .86rem !important;
  font-weight: 700 !important;
  padding: .72rem 1.2rem !important;
}
body.tp-public-site .contact-form-box .btn-submit:hover {
  background: #0e58c9 !important;
}

/* Any generic public-site light utility surface should remain readable on
   the same dark technology treatment instead of creating white islands. */
body.tp-public-site .bg-white h1,
body.tp-public-site .bg-white h2,
body.tp-public-site .bg-white h3,
body.tp-public-site .bg-white h4,
body.tp-public-site .bg-white h5,
body.tp-public-site .bg-white h6,
body.tp-public-site .bg-light h1,
body.tp-public-site .bg-light h2,
body.tp-public-site .bg-light h3,
body.tp-public-site .bg-light h4,
body.tp-public-site .bg-light h5,
body.tp-public-site .bg-light h6 {
  color: #ffffff !important;
}
body.tp-public-site .bg-white p,
body.tp-public-site .bg-white li,
body.tp-public-site .bg-white span,
body.tp-public-site .bg-white small,
body.tp-public-site .bg-white .text-muted,
body.tp-public-site .bg-light p,
body.tp-public-site .bg-light li,
body.tp-public-site .bg-light span,
body.tp-public-site .bg-light small,
body.tp-public-site .bg-light .text-muted {
  color: #c1d2df !important;
}

/* Generic labels and form controls on dark public pages. */
body.tp-public-site .form-label,
body.tp-public-site label {
  color: #e7f3fb !important;
}
body.tp-public-site input,
body.tp-public-site select,
body.tp-public-site textarea {
  color-scheme: dark;
}

/* Ensure the exact background remains visible behind every public page. */
body.tp-public-site .section-tp,
body.tp-public-site .section-tp-alt,
body.tp-public-site main {
  background: transparent !important;
}


/* ========================================================================
   V24 — APPROVED PROFESSIONAL HEADER
   Reference direction approved by user: dark technology header, clear logo,
   one-line brand name, balanced navigation, readable portal and CTA.
   ======================================================================== */
body.tp-public-site .navbar-tp {
  background: rgba(2, 14, 30, .96) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(77, 180, 255, .32) !important;
  box-shadow: 0 5px 22px rgba(0,0,0,.22) !important;
  min-height: 72px !important;
  padding: 0 !important;
  backdrop-filter: blur(10px);
}
body.tp-public-site .navbar-tp > .container {
  min-height: 72px !important;
  width: min(100% - 32px, 1440px) !important;
  max-width: 1440px !important;
}
body.tp-public-site .navbar-brand-tp {
  min-height: 72px !important;
  height: 72px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-shrink: 0 !important;
}
body.tp-public-site .navbar-brand-tp .brand-logo-img {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  object-fit: contain !important;
  border-radius: 4px !important;
  background: #fff !important;
  padding: 2px !important;
}
body.tp-public-site .navbar-brand-tp .brand-name-simple {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
  color: #ffffff !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: clamp(1.05rem, 1.28vw, 1.28rem) !important;
  line-height: 1 !important;
  font-weight: 750 !important;
  letter-spacing: -.025em !important;
  text-transform: none !important;
}
/* No second brand line in the header. */
body.tp-public-site .navbar-brand-tp .brand-subtitle,
body.tp-public-site .navbar-brand-tp .brand-name-simple::after {
  display: none !important;
  content: none !important;
}
body.tp-public-site .navbar-tp .nav-link-tp {
  color: rgba(245, 249, 255, .90) !important;
  background: transparent !important;
  font-size: .84rem !important;
  line-height: 1 !important;
  font-weight: 650 !important;
  padding: .78rem .72rem !important;
  border-radius: 6px !important;
  white-space: nowrap !important;
}
body.tp-public-site .navbar-tp .nav-link-tp:hover {
  color: #ffffff !important;
  background: rgba(39, 126, 226, .13) !important;
}
body.tp-public-site .navbar-tp .nav-link-tp.active {
  color: #ffffff !important;
  background: transparent !important;
}
body.tp-public-site .navbar-tp .nav-link-tp.active::after {
  left: .72rem !important;
  right: .72rem !important;
  bottom: -.30rem !important;
  height: 2px !important;
  background: #1597ff !important;
  border-radius: 2px !important;
}
body.tp-public-site .navbar-tp .portal-links-tp {
  flex-shrink: 0 !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn {
  min-width: 138px !important;
  height: 42px !important;
  padding: 0 .82rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .28rem !important;
  border: 1px solid #1597ff !important;
  border-radius: 7px !important;
  background: rgba(5, 30, 55, .86) !important;
  color: #ffffff !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn i,
body.tp-public-site .navbar-tp .portal-nav-btn::after {
  color: #ffffff !important;
}
body.tp-public-site .navbar-tp .portal-nav-btn:hover,
body.tp-public-site .navbar-tp .portal-nav-btn.show {
  background: #1769e0 !important;
  border-color: #48baff !important;
  color: #ffffff !important;
}
body.tp-public-site .navbar-tp .btn-get-in-touch {
  min-width: 132px !important;
  height: 42px !important;
  padding: 0 1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  border: 1px solid #1769e0 !important;
  border-radius: 7px !important;
  background: #1769e0 !important;
  color: #ffffff !important;
  font-size: .82rem !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  box-shadow: 0 4px 14px rgba(23,105,224,.20) !important;
}
body.tp-public-site .navbar-tp .btn-get-in-touch:hover {
  background: #0f5dcc !important;
  border-color: #0f5dcc !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}
/* Prevent the header from ever being clipped horizontally. */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  body.tp-public-site .navbar-tp > .container { width: calc(100% - 28px) !important; }
  body.tp-public-site .navbar-tp .brand-name-simple { font-size: 1.02rem !important; }
  body.tp-public-site .navbar-tp .nav-link-tp { font-size: .78rem !important; padding-left: .52rem !important; padding-right: .52rem !important; }
  body.tp-public-site .navbar-tp .portal-nav-btn { min-width: 126px !important; font-size: .76rem !important; }
  body.tp-public-site .navbar-tp .btn-get-in-touch { min-width: 118px !important; font-size: .76rem !important; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  body.tp-public-site .navbar-tp > .container { width: calc(100% - 22px) !important; }
  body.tp-public-site .navbar-tp .brand-logo-img { width: 38px !important; height: 38px !important; min-width: 38px !important; }
  body.tp-public-site .navbar-tp .brand-name-simple { font-size: .92rem !important; }
  body.tp-public-site .navbar-tp .nav-link-tp { font-size: .72rem !important; padding-left: .34rem !important; padding-right: .34rem !important; }
  body.tp-public-site .navbar-tp .portal-nav-btn { min-width: 112px !important; font-size: .70rem !important; }
  body.tp-public-site .navbar-tp .btn-get-in-touch { min-width: 104px !important; font-size: .70rem !important; padding-left: .55rem !important; padding-right: .55rem !important; }
}
@media (max-width: 991.98px) {
  body.tp-public-site .navbar-tp { min-height: 64px !important; }
  body.tp-public-site .navbar-tp > .container { min-height: 64px !important; }
  body.tp-public-site .navbar-brand-tp { min-height: 64px !important; height: 64px !important; }
  body.tp-public-site .navbar-brand-tp .brand-logo-img { width: 38px !important; height: 38px !important; min-width: 38px !important; }
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: .98rem !important; }
  body.tp-public-site .navbar-tp .navbar-collapse { background: rgba(2,14,30,.98) !important; border-top: 1px solid rgba(77,180,255,.24) !important; }
  body.tp-public-site .navbar-tp .nav-link-tp { color: #edf7ff !important; font-size: .90rem !important; padding: .78rem .25rem !important; border-bottom: 1px solid rgba(77,180,255,.16); }
}
@media (max-width: 575.98px) {
  body.tp-public-site .navbar-tp > .container { width: calc(100% - 20px) !important; }
  body.tp-public-site .navbar-brand-tp .brand-name-simple { font-size: .86rem !important; }
}
