/* ==========================================================================
   ADGO DIGITAL - GLOBAL TYPOGRAPHY REFINEMENT
   Balances oversized headings, lead paragraphs, card titles, and body content
   across desktop, tablet, and mobile breakpoints.
   ========================================================================== */

/* 1. HERO TYPOGRAPHY (HOMEPAGE) */
.tp-hero-title {
  font-size: 58px !important;
  line-height: 1.24 !important;
  letter-spacing: -0.02em;
}
@media (min-width: 1400px) {
  .tp-hero-title {
    font-size: 62px !important;
  }
}
@media (max-width: 1199px) {
  .tp-hero-title {
    font-size: 48px !important;
  }
}
@media (max-width: 991px) {
  .tp-hero-title {
    font-size: 40px !important;
  }
}
@media (max-width: 575px) {
  .tp-hero-title {
    font-size: 32px !important;
    line-height: 1.2 !important;
  }
}

/* Hero Badge Tag ("We're" pill) */
.tp-hero-title-sm {
  font-size: 15px !important;
  line-height: 1 !important;
  padding: 8px 18px !important;
  width: auto !important;
  height: auto !important;
  vertical-align: middle;
  margin-right: 12px;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  border-radius: 50px !important;
}
.tp-hero-title-sm svg {
  width: 42px;
  height: 9px;
}
@media (max-width: 575px) {
  .tp-hero-title-sm {
    font-size: 13px !important;
    padding: 6px 12px !important;
  }
  .tp-hero-title-sm svg {
    width: 32px;
  }
}

/* Hero Description Paragraph */
.tp-hero-customer-text p {
  font-size: 17px !important;
  line-height: 1.65 !important;
  margin-top: 18px !important;
  margin-bottom: 35px !important;
  color: #4a4a4a;
}
@media (max-width: 575px) {
  .tp-hero-customer-text p {
    font-size: 15px !important;
    margin-top: 12px !important;
    margin-bottom: 25px !important;
  }
}

/* Hero Side Heading */
.tp-hero-right-content p {
  font-size: 17px !important;
  line-height: 1.45 !important;
}

/* 2. INNER PAGE HERO BANNER HEADINGS */
.tp-section-ai-title,
.tp-service-hero-left h1 {
  font-size: 46px !important;
  line-height: 1.26 !important;
  letter-spacing: -0.02em !important;
}
@media (min-width: 1400px) {
  .tp-section-ai-title,
  .tp-service-hero-left h1 {
    font-size: 50px !important;
  }
}
@media (max-width: 991px) {
  .tp-section-ai-title,
  .tp-service-hero-left h1 {
    font-size: 36px !important;
  }
}
@media (max-width: 575px) {
  .tp-section-ai-title,
  .tp-service-hero-left h1 {
    font-size: 28px !important;
  }
}

/* Inner Page Subtitle / Intro Paragraph */
.tp-section-ai-para,
.tp-service-hero-right p {
  font-size: 17px !important;
  line-height: 1.65 !important;
  letter-spacing: normal !important;
  margin-bottom: 35px !important;
}
@media (max-width: 575px) {
  .tp-section-ai-para,
  .tp-service-hero-right p {
    font-size: 15px !important;
    margin-bottom: 25px !important;
  }
}

/* 3. SECTION HEADINGS (H2) */
.tp-section-title {
  font-size: 40px !important;
  line-height: 1.26 !important;
  letter-spacing: -0.01em !important;
}
@media (min-width: 1400px) {
  .tp-section-title {
    font-size: 42px !important;
  }
}
@media (max-width: 991px) {
  .tp-section-title {
    font-size: 32px !important;
  }
}
@media (max-width: 575px) {
  .tp-section-title {
    font-size: 26px !important;
  }
}

/* Section Subtitle / Eyebrow Label */
.tp-section-subtitle,
.tp-section-ai-subtitle,
.tp-ff-dm.fs-18.ls-m-4 {
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
}

/* Section Lead Description Paragraphs */
.tp-service-para {
  font-size: 17px !important;
  line-height: 1.65 !important;
}
@media (max-width: 575px) {
  .tp-service-para {
    font-size: 15px !important;
  }
}

/* 4. CARDS & ITEM TITLES */
.tp-project-title {
  font-size: 26px !important;
  line-height: 1.3 !important;
}
@media (max-width: 575px) {
  .tp-project-title {
    font-size: 20px !important;
  }
}

.tp-service-item-title a,
.tp-service-item-title {
  font-size: 24px !important;
  line-height: 1.3 !important;
}
@media (max-width: 575px) {
  .tp-service-item-title a,
  .tp-service-item-title {
    font-size: 20px !important;
  }
}

/* 5. TESTIMONIALS */
.tp-testimonial-area p.fs-25,
.tp-testimonial-area .fs-25,
.tp-testimonial-slider p,
.tp-testimonial-quote p,
.tp-testimonial-item-five p {
  font-size: 20px !important;
  line-height: 1.6 !important;
}
@media (max-width: 575px) {
  .tp-testimonial-area p.fs-25,
  .tp-testimonial-area .fs-25,
  .tp-testimonial-slider p,
  .tp-testimonial-quote p,
  .tp-testimonial-item-five p {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }
}

/* 6. FAQ SECTION */
.tp-faq-ai-title-wrap .tp-section-ai-title {
  font-size: 40px !important;
}
@media (max-width: 991px) {
  .tp-faq-ai-title-wrap .tp-section-ai-title {
    font-size: 32px !important;
  }
}
@media (max-width: 575px) {
  .tp-faq-ai-title-wrap .tp-section-ai-title {
    font-size: 26px !important;
  }
}

.tp-faq-btn {
  font-size: 18px !important;
  line-height: 1.4 !important;
  padding: 18px 24px 18px 0 !important;
}
@media (max-width: 575px) {
  .tp-faq-btn {
    font-size: 16px !important;
    padding: 14px 20px 14px 0 !important;
  }
}
.tp-faq-details-para p {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: #555;
}

/* 7. STATS NUMBERS (PURECOUNTER) & COUNTER ITEMS */
.tp-counter-item {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}
.tp-counter-item p {
  margin-bottom: 12px !important;
  line-height: 1.15 !important;
}
.tp-counter-item span.tp-text-grey-1,
.tp-counter-item > span:not(.purecounter) {
  display: block !important;
  text-align: center !important;
  line-height: 1.35 !important;
  padding: 0 8px !important;
}
.tp-stat-number,
.fs-70 span[data-purecounter-duration],
p.fs-70 span[data-purecounter-duration],
.tp-counter-item p span.purecounter {
  font-size: 46px !important;
  line-height: 1.15 !important;
}
@media (max-width: 991px) {
  .tp-counter-item p {
    margin-bottom: 8px !important;
  }
}
@media (max-width: 575px) {
  .tp-counter-item p {
    margin-bottom: 6px !important;
  }
  .tp-stat-number,
  .fs-70 span[data-purecounter-duration],
  p.fs-70 span[data-purecounter-duration],
  .tp-counter-item p span.purecounter {
    font-size: 34px !important;
  }
}

/* 8. FOOTER COLUMN TITLES */
.tp-footer-widget-title {
  font-size: 18px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em;
  margin-bottom: 20px !important;
}
.tp-footer-cst-dec {
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* 9. GLOBAL UTILITY DOWN-SCALING */
/* Caps overly massive classes across all dynamic content */
.fs-72,
.fs-70 {
  font-size: 42px !important;
  line-height: 1.2 !important;
}
@media (max-width: 991px) {
  .fs-72,
  .fs-70 {
    font-size: 32px !important;
  }
}
@media (max-width: 575px) {
  .fs-72,
  .fs-70 {
    font-size: 26px !important;
  }
}

.fs-65,
.fs-60,
.fs-55,
.fs-52,
.fs-50 {
  font-size: 34px !important;
  line-height: 1.25 !important;
}
@media (max-width: 991px) {
  .fs-65,
  .fs-60,
  .fs-55,
  .fs-52,
  .fs-50 {
    font-size: 28px !important;
  }
}
@media (max-width: 575px) {
  .fs-65,
  .fs-60,
  .fs-55,
  .fs-52,
  .fs-50 {
    font-size: 24px !important;
  }
}

.fs-45,
.fs-40 {
  font-size: 26px !important;
  line-height: 1.3 !important;
}
@media (max-width: 575px) {
  .fs-45,
  .fs-40 {
    font-size: 22px !important;
  }
}

.fs-35 {
  font-size: 24px !important;
  line-height: 1.35 !important;
}
@media (max-width: 575px) {
  .fs-35 {
    font-size: 20px !important;
  }
}

/* Tame large paragraph text utilities */
p.fs-25,
div.fs-25,
span.fs-25:not(.badge),
p.fs-22,
p.fs-20 {
  font-size: 17px !important;
  line-height: 1.65 !important;
}
@media (max-width: 575px) {
  p.fs-25,
  div.fs-25,
  span.fs-25:not(.badge),
  p.fs-22,
  p.fs-20 {
    font-size: 15px !important;
  }
}

/* 10. HEADER RESPONSIVENESS & LAPTOP FIT (PREVENT MENU WRAPPING) */
.tp-header-area {
  z-index: 999;
}
.tp-main-menu nav > ul {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
}
.tp-main-menu nav > ul > li {
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
}
.tp-main-menu nav > ul > li > a {
  white-space: nowrap !important;
  font-family: var(--tp-ff-heading) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  display: inline-block !important;
}

/* Screen widths: 1200px - 1440px (Standard Laptops & MacBooks) */
@media (min-width: 1200px) and (max-width: 1440px) {
  .tp-main-menu nav > ul > li {
    margin: 0 7px !important;
  }
  .tp-main-menu nav > ul > li > a {
    font-size: 13px !important;
    padding: 24px 0 !important;
    letter-spacing: 0 !important;
  }
  .tp-header-btn .tp-btn-lg {
    padding: 10px 18px !important;
    font-size: 13px !important;
  }
  .tp-header-logo img {
    max-width: 130px !important;
    height: auto !important;
  }
}

/* Screen widths: 1441px - 1600px (Medium-Large Laptops / Desktops) */
@media (min-width: 1441px) and (max-width: 1600px) {
  .tp-main-menu nav > ul > li {
    margin: 0 11px !important;
  }
  .tp-main-menu nav > ul > li > a {
    font-size: 14px !important;
    padding: 26px 0 !important;
    letter-spacing: 0.01em !important;
  }
  .tp-header-btn .tp-btn-lg {
    padding: 12px 22px !important;
    font-size: 14px !important;
  }
}

/* Screen widths: 1601px+ (Large monitors) */
@media (min-width: 1601px) {
  .tp-main-menu nav > ul > li {
    margin: 0 16px !important;
  }
  .tp-main-menu nav > ul > li > a {
    font-size: 15px !important;
    padding: 28px 0 !important;
  }
}

/* 11. SERVICE ITEM OFFERINGS LIST (EQUAL HEIGHT, LINE-HEIGHT & BULLETS) */
.tp-service-area .row {
  display: flex !important;
  flex-wrap: wrap !important;
}
.tp-service-area .col-lg-4,
.tp-service-area .col-md-6 {
  display: flex !important;
  flex-direction: column !important;
  margin-bottom: 30px !important;
}
.tp-service-item {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  flex: 1 1 auto !important;
  margin-bottom: 0 !important;
}
@media (min-width: 992px) {
  .tp-service-item {
    min-height: 480px !important;
  }
  .tp-service-item-title {
    min-height: 65px !important;
  }
}
.tp-service-item-icon {
  min-height: 60px !important;
  display: flex !important;
  align-items: center !important;
}
.tp-service-item-title {
  font-size: 24px !important;
  line-height: 1.35 !important;
  margin-bottom: 20px !important;
}
.tp-service-item-title a {
  font-size: 24px !important;
  line-height: 1.35 !important;
}
.tp-service-item ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  flex-grow: 1 !important;
}
.tp-service-item ul li {
  list-style: none !important;
  margin-bottom: 14px !important;
}
.tp-service-item ul li:last-child {
  margin-bottom: 0 !important;
}
.tp-service-item ul li a {
  display: block !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  padding-left: 20px !important;
  position: relative !important;
  color: #333333 !important;
  font-weight: 500 !important;
  transition: all 0.3s ease !important;
}
.tp-service-item ul li a:hover {
  color: #030303 !important;
}
.tp-service-item ul li a::before {
  position: absolute !important;
  content: "" !important;
  top: 9px !important;
  left: 2px !important;
  transform: none !important;
  width: 6px !important;
  height: 6px !important;
  background: var(--tp-common-black, #030303) !important;
  border-radius: 50% !important;
}

/* Equal height for services slider items */
.tp-service-sa-slider .swiper-slide {
  height: auto !important;
  display: flex !important;
}
.tp-service-sa-item {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
.tp-service-sa-item .tp-service-sa-item-text {
  flex-grow: 1 !important;
}

@media (max-width: 575px) {
  .tp-service-item-title,
  .tp-service-item-title a {
    font-size: 20px !important;
    line-height: 1.35 !important;
  }
  .tp-service-item ul li a {
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
}

/* 12. GLOBAL LINE-HEIGHT HARMONIZATION */
/* Eliminates line collision across all headings and text components */
h1, .h1 {
  line-height: 1.25 !important;
}
h2, .h2 {
  line-height: 1.28 !important;
}
h3, .h3 {
  line-height: 1.35 !important;
}
h4, .h4 {
  line-height: 1.38 !important;
}
h5, .h5, h6, .h6 {
  line-height: 1.4 !important;
}

p,
.tp-service-para,
.tp-section-ai-para {
  line-height: 1.65 !important;
}

/* Prevent text clipping in tight utility classes */
.lh-110-per,
.lh-120-per,
.lh-1 {
  line-height: 1.28 !important;
}
.lh-130-per,
.lh-140-per {
  line-height: 1.45 !important;
}
.lh-26 {
  line-height: 1.6 !important;
}
.lh-28 {
  line-height: 1.65 !important;
}
.lh-36 {
  line-height: 1.5 !important;
}

/* 13. BLOG DETAILS STICKY SIDEBAR */
.tp-blog-details-area .row {
  display: flex !important;
  flex-wrap: wrap !important;
}

.tp-blog-details-area .row > .col-lg-4 {
  align-self: stretch !important;
}

@media (min-width: 992px) {
  .tp-sidebar-wrap,
  .sticky-top-sidebar {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 100px !important;
    z-index: 8 !important;
    max-height: calc(100vh - 120px) !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }
  .tp-sidebar-wrap::-webkit-scrollbar,
  .sticky-top-sidebar::-webkit-scrollbar {
    display: none !important;
  }
}

