@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap");

:root {
  --aster-blue: #164d92;
  --aster-orange: #e87722;
  --aster-gray: #58595b;
  --aster-white: #ffffff;
  --aster-gradient: linear-gradient(90deg, #e87722 0%, #164d92 100%);
  --bg-blue-light: rgba(22, 77, 146, 0.05);
  --bg-orange-light: rgba(232, 119, 34, 0.05);
  --bg-green-light: rgba(0, 179, 140, 0.05);
  --bg-gray-light: rgba(88, 89, 91, 0.05);
  --header-shadow: 0 0 20px 4px rgba(0, 0, 0, 0.15);
  --banner-shadow: 6px 6px 30px 0 rgba(10, 41, 81, 0.25);
  --color-primary: #164d92;
  --color-secondary: #f0f4ff;
  --color-tertiary: #58595b;
  --radius-lg: 20px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  width: 100%;
  font-family: "Lato", sans-serif;
  line-height: 1.5;
  color: var(--aster-gray);
  background-color: var(--aster-white);
  overflow-x: hidden;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 90px;
  background: #fff;
  border-bottom: 1px solid #e5e5e5;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 32px;
  z-index: 1000;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.header-logo {
  height: 50px;
}

/* Main Content */
.main {
  width: 100%;
  padding-top: 112px;
}

/* Hero Section */
.hero {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  /*    padding: 3rem 1.5rem;*/
  text-align: center;
}

/*@media (min-width: 768px) {
    .hero {*/
/*        padding: 3rem 3rem;*/
/*}
}*/

@media (min-width: 1024px) {
  .hero {
    width: 100%;
    /*        padding: 3rem 6rem;*/
  }
}

.hero-container {
  /*    max-width: 852px;*/
  width: 100%;
  /*    margin: 0 auto 2.5rem;*/
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.hero-title {
  font-size: 1.875rem;
  font-weight: 800;
  line-height: normal;
  background: var(--aster-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  max-width: 498px;
}

@media (min-width: 768px) {
  .hero-title {
    font-size: 2.5rem;
  }
}

.hero-description {
  font-size: 1rem;
  font-weight: 400;
  line-height: 22px;
  color: var(--aster-gray);
  width: 75%;
}

.divider {
  width: 100%;
  /*    max-width: 1400px;*/
  margin: 0 auto 2.5rem;
}

.divider-line {
  opacity: 0.15;
  stroke: var(--aster-gray);
  stroke-width: 1;
}

/* Service Grid */
.service-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  margin-bottom: 50px;
}

@media (min-width: 768px) {
  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .service-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
  }
}

/* Service Card */
.service-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
}

.service-card .card-content {
  text-align: start;
}

.card-logo-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 123px;
  width: 100%;
}

.card-logo {
  /*    max-width: 100%;*/
  height: auto;
  object-fit: contain;
}

/* Logo specific sizes for pixel-perfect match */
.logo-econsult {
  height: 123px;
  width: 175px;
}

.logo-etriage {
  height: 123px;
  width: 162px;
}

.logo-ipcare {
  height: 123px;
  width: 265px;
}

.card-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  border-radius: var(--radius-lg);
  width: 100%;
  /*    min-width: 320px;*/
}

.card-content.blue {
  background-color: var(--bg-blue-light);
}

.card-content.orange {
  background-color: var(--bg-orange-light);
}

.card-content.green {
  background-color: var(--bg-green-light);
}

.card-text {
  font-size: 1rem;
  font-weight: 400;
  line-height: 22px;
}

.card-title {
  font-weight: 700;
}

.register-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 2rem;
  border-radius: 5px;
  background-color: var(--aster-blue);
  color: white;
  border: none;
  font-family: inherit;
  font-size: 1.125rem;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s;
  width: fit-content;
}

.register-btn:hover {
  background-color: #1a5aa8;
}

/* Global Operations Section */
.global-ops {
  background-color: var(--bg-gray-light);
  display: flex;
  justify-content: center;
}

@media (min-width: 768px) {
  .global-ops {
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .global-ops {
    width: 100%;
    /*        padding: 3rem 6rem;*/
  }
}

.global-ops-container {
  padding: 3.5rem 0;
  /*    width: 100%;*/
}

.banner-img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--banner-shadow);
}

.card-link,
.register-link {
  text-decoration: none;
  cursor: pointer;
}

.card-link:hover img {
  transform: scale(1.05);
  transition: transform 0.2s ease;
}

.register-btn {
  cursor: pointer;
}

/* Center 3rd service card on small screens */
/*@media (min-width: 768px) {
    .service-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .service-card {
        width: 100%;
        max-width: 380px;*/ /* adjust if needed */
/*}
}*/
/* Mobile: Full width cards */
@media (max-width: 767px) {
  .service-grid {
    display: flex;
    flex-direction: column; /* stack vertically */
    align-items: stretch;
  }

  .service-card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 20px;
  }
}

/* When screen is tablet/mobile and cards wrap */
@media (max-width: 991px) {
  .service-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* centers wrapped row */
    /*gap: 24px;*/ /* optional spacing */
  }

  .service-card {
    flex: 0 0 45%; /* two cards per row */
  }

  .service-card:nth-child(3) {
    flex: 0 0 45%;
  }
}
