/* ==========================================================================
   Contact page (827): contact details + offices, per Contact_page.html
   (2026-09-25, block contact-information-section + v34-v37 overrides).
   Loaded last; overrides the older .contact-information-* rules in style.css.
   ========================================================================== */
body.page-id-827 .contact-information {
  position: relative;
  padding: 120px 24px !important;
  background: #030A11 !important;
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px;
}
body.page-id-827 .contact-information::before,
body.page-id-827 .contact-information::after { content: none !important; }

body.page-id-827 .contact-information .contact-information-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 64px 24px !important;
  width: min(1280px, 100%) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
}

/* card: icon, title, rule, detail (+ office photo), stacked with 32px rhythm */
body.page-id-827 .contact-information .contact-information-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  width: auto !important;
  min-width: 0;
  padding: 0 40px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px;
}
body.page-id-827 .contact-information .contact-information-card::before,
body.page-id-827 .contact-information .contact-information-card::after { content: none !important; }
body.page-id-827 .contact-information .contact-information-card > .elementor-element { margin: 0; max-width: 100%; }

body.page-id-827 .contact-information .contact-information-icon,
body.page-id-827 .contact-information .contact-information-icon img {
  display: block;
  width: 50px !important; height: 50px !important; max-width: none !important;
  object-fit: contain;
  margin: 0 !important;
}
body.page-id-827 .contact-information .contact-information-title { margin-top: 32px !important; width: 100% !important; }
body.page-id-827 .contact-information .contact-information-title .elementor-heading-title {
  margin: 0 !important;
  color: #fff !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 25px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: -.01em !important;
}
body.page-id-827 .contact-information .contact-information-rule {
  display: block !important;
  width: 72px !important; min-width: 0 !important; max-width: 72px !important;
  height: 2px !important; min-height: 0 !important;
  margin-top: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  flex: none !important;
  background: linear-gradient(90deg, #32C0E9, #0083C1 42%, #0BD3C5) !important;
}
body.page-id-827 .contact-information .contact-information-card--call .contact-information-rule { background: linear-gradient(90deg, #8BBCC8, #32C0E9) !important; }
body.page-id-827 .contact-information .contact-information-card--connect .contact-information-rule { background: linear-gradient(90deg, #10D1C9, #32C0E9) !important; }
body.page-id-827 .contact-information .contact-information-card--canada .contact-information-rule { background: linear-gradient(90deg, #32C0E9, #40A8E8) !important; }
body.page-id-827 .contact-information .contact-information-card--us .contact-information-rule { background: linear-gradient(90deg, #B688D8, #32C0E9) !important; }
body.page-id-827 .contact-information .contact-information-card--india .contact-information-rule { background: linear-gradient(90deg, #89D85D, #32C0E9) !important; }

body.page-id-827 .contact-information .contact-information-detail { margin-top: 32px !important; width: 100% !important; }
body.page-id-827 .contact-information .contact-information-detail p {
  margin: 0 !important;
  color: #fff !important;
  font: 400 18px/1.5 Inter, Arial, sans-serif !important;
}
/* links: thin sky underline that retracts on hover while the text turns sky */
body.page-id-827 .contact-information .contact-information-detail a {
  display: inline;
  color: #fff !important;
  text-decoration: none !important;
  background-image: linear-gradient(90deg, #32C0E9, #32C0E9);
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: 0 100%;
  transition: color .25s ease, background-size .3s cubic-bezier(.22,1,.36,1);
}
body.page-id-827 .contact-information .contact-information-detail a:is(:hover, :focus-visible) {
  color: #32C0E9 !important;
  background-size: 0 1px;
}
body.page-id-827 .contact-information .contact-information-detail a:focus-visible { outline: 2px solid #32C0E9; outline-offset: 3px; }

/* socials (LinkedIn only in the design) */
body.page-id-827 .contact-information .contact-socials {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 32px !important;
  width: 100% !important;
  margin-top: 32px !important;
  padding: 0 !important;
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 32px;
}
body.page-id-827 .contact-information .contact-socials .elementor-widget-image { width: auto !important; margin: 0 !important; }
body.page-id-827 .contact-information .contact-socials a { display: grid; place-items: center; width: 32px; height: 32px; }
body.page-id-827 .contact-information .contact-socials img {
  display: block;
  width: 32px !important; height: 32px !important; max-width: none !important;
  object-fit: contain;
  transition: opacity .25s ease, transform .25s ease;
}
body.page-id-827 .contact-information .contact-socials a:is(:hover, :focus-visible) img { opacity: .82; transform: translateY(-2px); }

/* office photos: 331 x 400, 8px corners; on desktop they share one top line */
body.page-id-827 .contact-information .contact-location-image,
body.page-id-827 .contact-information .contact-location-frame {
  width: 100% !important;
  max-width: 331px !important;
  margin-top: 32px !important;
  padding: 0 !important;
  position: static !important;
  overflow: hidden !important;
  border-radius: 8px !important;
  flex: none !important;
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px;
}
body.page-id-827 .contact-information .contact-location-frame .contact-location-image { max-width: none !important; margin: 0 !important; }
body.page-id-827 .contact-information .contact-location-image img {
  position: static !important;
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 400px !important;
  margin: 0 !important;
  border-radius: 8px !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  clip-path: none !important;
}
body.page-id-827 .contact-information .contact-information-card--us .contact-location-image img { object-position: 22% center !important; }

@media (min-width: 1025px) {
  body.page-id-827 .contact-information .contact-information-card--canada .contact-location-image,
  body.page-id-827 .contact-information .contact-information-card--us .contact-location-image,
  body.page-id-827 .contact-information .contact-location-frame--india { margin-top: auto !important; }
  body.page-id-827 .contact-information .contact-information-card--canada .contact-information-detail,
  body.page-id-827 .contact-information .contact-information-card--us .contact-information-detail,
  body.page-id-827 .contact-information .contact-information-card--india .contact-information-detail { padding-bottom: 32px !important; }
}
@media (max-width: 1024px) {
  body.page-id-827 .contact-information { padding: 120px 48px !important; }
  body.page-id-827 .contact-information .contact-information-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.page-id-827 .contact-information .contact-information-card { padding: 0 24px !important; }
}
@media (max-width: 700px) {
  body.page-id-827 .contact-information { padding: 76px 24px !important; }
  body.page-id-827 .contact-information .contact-information-grid { grid-template-columns: 1fr !important; gap: 56px !important; }
  body.page-id-827 .contact-information .contact-information-card { padding: 0 !important; }
  body.page-id-827 .contact-information .contact-information-title .elementor-heading-title { font-size: 24px !important; }
  body.page-id-827 .contact-information .contact-location-image,
  body.page-id-827 .contact-information .contact-location-frame { max-width: none !important; }
  body.page-id-827 .contact-information .contact-location-image img { height: auto !important; aspect-ratio: 331 / 400; }
}

/* detail-min-heights: the design reserves 41px under the contact cards and 64px under the office
   cards (tablet and desktop), so rows keep the same rhythm whatever the line count. */
@media (min-width: 701px) {
  body.page-id-827 .contact-information .contact-information-card--email .contact-information-detail,
  body.page-id-827 .contact-information .contact-information-card--call .contact-information-detail,
  body.page-id-827 .contact-information .contact-socials { min-height: 41px !important; }
  body.page-id-827 .contact-information .contact-information-card--canada .contact-information-detail,
  body.page-id-827 .contact-information .contact-information-card--us .contact-information-detail,
  body.page-id-827 .contact-information .contact-information-card--india .contact-information-detail { min-height: 64px !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.page-id-827 .contact-information .contact-information-detail a,
  body.page-id-827 .contact-information .contact-socials img { transition: none; }
}
