/* ============================================================
   HELLOGEO - GLOBAL RESPONSIVE CSS
   Sabhi screens ke liye: Mobile, Tablet, Desktop
   Breakpoints:
     Mobile:  max-width: 480px
     Mobile:  max-width: 767px
     Tablet:  max-width: 1024px
     Desktop: min-width: 1025px
   ============================================================ */

/* ---- BASE RESET ---- */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

img, video {
  max-width: 100%;
  height: auto;
}

/* ============================================================
   TYPOGRAPHY - Responsive Font Sizes
   ============================================================ */
h1 { font-size: clamp(1.8rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 4vw, 3rem); }
h3 { font-size: clamp(1.2rem, 3vw, 2rem); }
h4 { font-size: clamp(1rem, 2.5vw, 1.5rem); }
p  { font-size: clamp(0.9rem, 2vw, 1.1rem); }

/* ============================================================
   ABOUT SECTION - Home Page
   ============================================================ */
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  padding: 60px 40px;
}

.about-content .section-title {
  font-size: clamp(1.8rem, 4vw, 3rem) !important;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 20px !important;
}

/* ============================================================
   OFFER SECTION
   ============================================================ */
.offer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* ============================================================
   FOOTER - Responsive
   ============================================================ */
footer .row {
  flex-wrap: wrap;
}

footer .col-2,
footer .col-7,
footer .col-3 {
  flex: 1 1 auto;
  min-width: 0;
}

/* ============================================================
   SECTION TITLES - Common
   ============================================================ */
.sec-title h2,
.sec-title .title,
section h2 {
  font-size: clamp(1.6rem, 4vw, 3rem) !important;
  line-height: 1.2 !important;
}

/* ============================================================
   CONTAINER - Max width control
   ============================================================ */
.container {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 60px;
}

/* ============================================================
   CARDS & GRIDS
   ============================================================ */
.row {
  margin-left: -15px;
  margin-right: -15px;
}

/* ============================================================
   TABLET: max-width 1024px
   ============================================================ */
@media (max-width: 1024px) {
  /* About Section */
  .about-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 40px 20px;
  }

  /* Offer Grid */
  .offer-grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* Images */
  .about-images,
  .offer-image-container {
    order: -1;
  }

  /* Container padding */
  .container {
    padding: 0 40px;
  }

  /* Nav font size */
  .navLink {
    font-size: 0.85rem !important;
  }

  /* Section padding */
  section {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
  }

  /* Features grid */
  .features-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ============================================================
   MOBILE: max-width 767px
   ============================================================ */
@media (max-width: 767px) {
  /* ---- BODY ---- */
  body {
    overflow-x: hidden;
  }

  /* ---- HEADER ---- */
  header, .header {
    height: auto !important;
  }

  /* ---- VIDEO HERO ---- */
  section[style*="100vh"] {
    height: 60vh !important;
    min-height: 350px !important;
  }

  /* ---- ABOUT GRID ---- */
  .about-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    padding: 30px 15px !important;
  }

  /* ---- OFFER GRID ---- */
  .offer-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  /* ---- FEATURES GRID ---- */
  .features-grid {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  /* ---- SECTION TITLES ---- */
  .section-title,
  .sec-title h2,
  h2 {
    font-size: clamp(1.4rem, 6vw, 2rem) !important;
  }

  /* ---- SECTION PADDING ---- */
  section {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* ---- CARDS ---- */
  .col-lg-4,
  .col-md-4,
  .col-lg-3,
  .col-md-3 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 20px;
  }

  .col-lg-6,
  .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 20px;
  }

  /* ---- FOOTER ---- */
  footer .row {
    flex-direction: column !important;
  }

  footer .col-2 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: center;
    padding: 10px !important;
  }

  footer .col-7 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: center;
  }

  footer .col-7 ul {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 10px !important;
  }

  footer .col-3 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    padding: 15px !important;
  }

  /* ---- CONTAINER ---- */
  .container,
  .container-fluid {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* ---- SWIPER / CAROUSEL ---- */
  .swiper-slide {
    width: 100% !important;
  }

  /* ---- BUTTONS ---- */
  .btn,
  button[style] {
    padding: 10px 20px !important;
    font-size: 0.9rem !important;
  }

  /* ---- TESTIMONIAL ---- */
  .testimonial-section .swiper-wrapper {
    flex-direction: column;
  }

  /* ---- IMAGE HEIGHTS ---- */
  div[style*="height: \"500px\""],
  div[style*="height: 500px"],
  div[style*="height: \"250px\""],
  div[style*="height: 250px"] {
    height: 200px !important;
  }

  /* ---- PADDING FIXES ---- */
  div[style*="padding: \"40px 0\""],
  div[style*="padding: \"30px\""] {
    padding: 15px !important;
  }

  /* ---- WHAT'S NEW SECTION ---- */
  .whats-new-grid {
    flex-direction: column !important;
  }

  /* ---- MAP SECTION ---- */
  .map-container iframe {
    height: 250px !important;
  }

  /* ---- CONTACT SECTION ---- */
  .contact-grid,
  .contact-form-wrapper {
    grid-template-columns: 1fr !important;
    flex-direction: column !important;
  }

  /* ---- PARTNERS SECTION ---- */
  .partners-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* ---- PAGE TITLE ---- */
  .page-title-section {
    padding: 80px 15px 40px !important;
  }

  .page-title-section h1 {
    font-size: 1.6rem !important;
  }
}

/* ============================================================
   MOBILE SMALL: max-width 480px
   ============================================================ */
@media (max-width: 480px) {
  /* ---- VIDEO HERO ---- */
  section[style*="100vh"] {
    height: 50vh !important;
    min-height: 280px !important;
  }

  /* ---- SECTION TITLE ---- */
  .section-title,
  h2, h1 {
    font-size: 1.3rem !important;
    line-height: 1.3 !important;
  }

  h3 {
    font-size: 1.1rem !important;
  }

  /* ---- SECTION PADDING ---- */
  section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }

  /* ---- CARDS PADDING ---- */
  .feature-card {
    padding: 15px !important;
  }

  /* ---- CTA BUTTON ---- */
  .cta-button,
  a[style*="padding: \"15px 35px\""] {
    padding: 10px 20px !important;
    font-size: 0.85rem !important;
  }

  /* ---- FOOTER ---- */
  footer {
    padding-top: 40px !important;
    padding-bottom: 20px !important;
  }

  /* ---- HEADER HEIGHT ---- */
  .headerContent {
    height: 60px !important;
  }

  /* ---- LOGO ---- */
  .logoIcon {
    width: 30px !important;
  }

  /* ---- CONTAINER ---- */
  .container {
    padding: 0 12px !important;
  }

  /* ---- PARTNERS GRID ---- */
  .partners-grid {
    grid-template-columns: 1fr !important;
  }

  /* ---- BLOG CARDS ---- */
  .blog-card,
  .news-card {
    margin-bottom: 20px !important;
  }

  /* ---- SOCIAL ICONS FOOTER ---- */
  footer .col-3 {
    gap: 15px !important;
  }
}

/* ============================================================
   ABOUT PAGE RESPONSIVE
   ============================================================ */
@media (max-width: 767px) {
  .about-page .team-section .row {
    flex-direction: column;
  }

  .about-page .team-section .col-lg-3 {
    width: 100%;
    max-width: 300px;
    margin: 0 auto 20px;
  }
}

/* ============================================================
   CONTACT PAGE RESPONSIVE
   ============================================================ */
@media (max-width: 767px) {
  .contact-page .contact-info,
  .contact-page .contact-form {
    width: 100% !important;
    flex: 0 0 100% !important;
  }

  .contact-page input,
  .contact-page textarea,
  .contact-page select {
    width: 100% !important;
    margin-bottom: 15px !important;
  }
}

/* ============================================================
   LEADERSHIP PAGE RESPONSIVE
   ============================================================ */
@media (max-width: 767px) {
  .leadership-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .leadership-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   CAREERS PAGE RESPONSIVE
   ============================================================ */
@media (max-width: 767px) {
  .careers-section .row {
    flex-direction: column;
  }

  .careers-section .col-lg-6 {
    width: 100% !important;
  }
}

/* ============================================================
   INDUSTRY / SERVICES / PRODUCTS - DETAIL PAGES
   ============================================================ */
@media (max-width: 767px) {
  .industry-detail,
  .service-detail,
  .product-detail {
    grid-template-columns: 1fr !important;
    flex-direction: column !important;
  }

  .industry-detail img,
  .service-detail img,
  .product-detail img {
    width: 100% !important;
    height: auto !important;
    max-height: 300px !important;
    object-fit: cover !important;
  }
}

/* ============================================================
   ALLIANCES / PARTNERS PAGE
   ============================================================ */
@media (max-width: 767px) {
  .alliances-grid,
  .partners-list {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .alliances-grid,
  .partners-list {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   COMMUNITY / INCLUSION / SUSTAINABILITY PAGES
   ============================================================ */
@media (max-width: 767px) {
  .community-section,
  .inclusion-section,
  .sustainability-section {
    padding: 30px 15px !important;
  }

  .community-section .row,
  .inclusion-section .row {
    flex-direction: column;
  }

  .community-section .col-lg-6,
  .inclusion-section .col-lg-6 {
    width: 100% !important;
    margin-bottom: 20px;
  }
}

/* ============================================================
   PRIVACY POLICY / TERMS / SECURITY PAGES
   ============================================================ */
@media (max-width: 767px) {
  .policy-page {
    padding: 30px 15px !important;
  }

  .policy-page h2 {
    font-size: 1.3rem !important;
  }
}

/* ============================================================
   BLOG DETAIL PAGE
   ============================================================ */
@media (max-width: 767px) {
  .blog-detail-container {
    flex-direction: column !important;
    padding: 20px 15px !important;
  }

  .blog-detail-content,
  .blog-detail-sidebar {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   NEWS ROOM PAGE
   ============================================================ */
@media (max-width: 767px) {
  .newsroom-grid {
    grid-template-columns: 1fr !important;
  }

  .news-detail-layout {
    flex-direction: column !important;
  }
}

/* ============================================================
   HELLOGEO PACE PAGE
   ============================================================ */
@media (max-width: 767px) {
  .pace-section {
    padding: 30px 15px !important;
  }

  .pace-description {
    flex-direction: column !important;
  }

  .innovation-carousel .swiper-slide {
    width: 280px !important;
  }
}

/* ============================================================
   MEDIA KIT PAGE
   ============================================================ */
@media (max-width: 767px) {
  .media-kit-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   OFFICE MAP
   ============================================================ */
@media (max-width: 767px) {
  .office-map-container {
    height: 300px !important;
  }

  .office-popup {
    max-width: 200px !important;
    font-size: 0.8rem !important;
  }
}

/* ============================================================
   PROJECTS CAROUSEL
   ============================================================ */
@media (max-width: 767px) {
  .projects-carousel .swiper-slide {
    width: 280px !important;
  }

  /* Card image heights */
  .project-card-image {
    height: 180px !important;
  }
}

/* ============================================================
   FUN FACTS SECTION
   ============================================================ */
@media (max-width: 767px) {
  .fun-facts-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .fun-facts-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ============================================================
   OVERRIDE HARD-CODED INLINE STYLES ON MOBILE
   (Last resort overrides for inline styles in JSX)
   ============================================================ */
@media (max-width: 767px) {
  /* Prevent horizontal overflow */
  * {
    max-width: 100%;
  }

  /* Fix any fixed-width containers */
  [style*="width: '200px'"],
  [style*="width: '400px'"],
  [style*="width: '500px'"],
  [style*="width: '600px'"],
  [style*="width: '700px'"],
  [style*="width: '800px'"] {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  /* Fix grid gap on mobile */
  [style*="gap: '80px'"],
  [style*="gap: '60px'"] {
    gap: 20px !important;
  }

  /* Reduce large padding on mobile */
  [style*="padding: '80px'"],
  [style*="padding: '60px'"] {
    padding: 30px 15px !important;
  }

  [style*="paddingTop: '80px'"],
  [style*="paddingTop: '60px'"] {
    padding-top: 40px !important;
  }

  /* Fix large font sizes inline */
  [style*="fontSize: '3rem'"],
  [style*="fontSize: '2.5rem'"] {
    font-size: 1.6rem !important;
  }

  [style*="fontSize: '2rem'"] {
    font-size: 1.4rem !important;
  }
}

@media (max-width: 480px) {
  [style*="fontSize: '3rem'"],
  [style*="fontSize: '2.5rem'"],
  [style*="fontSize: '2rem'"] {
    font-size: 1.3rem !important;
  }

  [style*="gap: '80px'"],
  [style*="gap: '60px'"],
  [style*="gap: '40px'"] {
    gap: 15px !important;
  }
}

/* ============================================================
   DESKTOP OVERFLOW FIX
   Pages par horizontal scroll aa raha tha — yeh fix karta hai
   ============================================================ */

/* Prevent any horizontal overflow sitewide */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}

/* All sections must stay within viewport */
section, article, main, div.container, div.container-fluid {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* ============================================================
   BRAND PAGE — fontSize 52px aur marginRight 200px fix
   ============================================================ */
.brand-page-content h1,
.brand-page-content h2 {
  font-size: clamp(1.5rem, 4vw, 2.8rem) !important;
  word-break: break-word;
}

.brand-page-content .lead {
  font-size: clamp(0.95rem, 2vw, 1.15rem) !important;
}

/* Fix the marginRight: 200px on Brand page */
@media (max-width: 1400px) {
  div[style*="marginRight: \"200px\""],
  div[style*="margin-right: 200px"] {
    margin-right: 0 !important;
  }
}

/* ============================================================
   ALLIANCES / COMMUNITY / INCLUSION — large font fix
   fontSize 60px, 70px, 50px etc.
   ============================================================ */
@media (max-width: 1200px) {
  /* Large font overrides for any page */
  h1[style*="fontSize: \"60px\""],
  h1[style*="font-size: 60px"],
  h2[style*="fontSize: \"60px\""],
  h2[style*="font-size: 60px"] {
    font-size: clamp(1.8rem, 4vw, 3rem) !important;
  }

  h1[style*="fontSize: \"52px\""],
  h1[style*="font-size: 52px"],
  h2[style*="fontSize: \"52px\""] {
    font-size: clamp(1.6rem, 3.5vw, 2.5rem) !important;
  }

  h2[style*="fontSize: \"70px\""],
  h2[style*="font-size: 70px"],
  p[style*="fontSize: \"70px\""] {
    font-size: clamp(1.8rem, 4vw, 3.5rem) !important;
  }

  h2[style*="fontSize: \"40px\""],
  h2[style*="font-size: 40px"],
  h1[style*="fontSize: \"40px\""] {
    font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
  }

  p[style*="fontSize: \"60px\""] {
    font-size: clamp(1.5rem, 3vw, 2.5rem) !important;
  }
}

/* ============================================================
   UNIVERSAL — Content padding on all inner pages
   ============================================================ */
.container {
  padding-left: max(60px, env(safe-area-inset-left)) !important;
  padding-right: max(60px, env(safe-area-inset-right)) !important;
}

/* Ensure text does not overflow viewport */
p, h1, h2, h3, h4, h5, li, span {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* ============================================================
   TABLET (1024px) — Reduce large inline font sizes
   ============================================================ */
@media (max-width: 1024px) {
  /* Any h1 with large inline font */
  h1 {
    font-size: clamp(1.6rem, 4vw, 2.5rem) !important;
    line-height: 1.25 !important;
  }

  h2 {
    font-size: clamp(1.4rem, 3.5vw, 2.2rem) !important;
  }

  /* Remove large right/left margins that cause overflow */
  div[style*="marginRight"] {
    margin-right: 0 !important;
  }

  div[style*="marginLeft: \"200px\""],
  div[style*="margin-left: 200px"] {
    margin-left: 0 !important;
  }
}

/* ============================================================
   MOBILE (767px)
   ============================================================ */
@media (max-width: 767px) {
  /* Force all inline font sizes to scale */
  h1, h1[style] {
    font-size: clamp(1.3rem, 5vw, 1.8rem) !important;
    line-height: 1.3 !important;
  }

  h2, h2[style] {
    font-size: clamp(1.2rem, 4vw, 1.6rem) !important;
  }

  h3, h3[style] {
    font-size: clamp(1rem, 3.5vw, 1.3rem) !important;
  }

  p[style], .lead[style] {
    font-size: clamp(0.9rem, 2.5vw, 1rem) !important;
    line-height: 1.6 !important;
  }

  /* Remove all large fixed margins */
  div[style*="marginRight"],
  div[style*="margin-right"] {
    margin-right: 0 !important;
  }

  /* Container must have padding */
  .container, .container-fluid {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}

/* ============================================================
   DESKTOP CONTAINER PADDING — Global fix for left/right gapping
   Bootstrap default is only 12px each side — not enough
   ============================================================ */

/* Desktop — proper breathing room */
@media (min-width: 1025px) {
  .container,
  .container-fluid,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: 60px !important;
    padding-right: 60px !important;
  }

  /* Sections that use their own full-width layout */
  section > .container,
  section > .container-fluid {
    padding-left: 60px !important;
    padding-right: 60px !important;
  }
}

/* Tablet — medium breathing room */
@media (min-width: 768px) and (max-width: 1024px) {
  .container,
  .container-fluid,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

/* Mobile — minimum breathing room */
@media (max-width: 767px) {
  .container,
  .container-fluid,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}