/* ============================================================
   CORPORATE DIRECTORY PAGE STYLES (corporate-directory.css)
   Supplemental styles for corporate-directory.html – imports shared
   design tokens from style.css.
   ============================================================ */

/* ============================================================
   1. PAGE HERO
   ============================================================ */
.corp-hero {
  margin-top: 85px;
  /* offset for fixed navbar */
  background-color: var(--color-white);
}

.corp-hero__intro {
  padding: 70px var(--section-pad-x);
  max-width: 1512px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}

.corp-hero__heading {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 48px;
  text-transform: uppercase;
  color: var(--color-dark);
  line-height: 1.3;
  flex: 0 1 800px;
}

.corp-hero__heading .text-blue {
  color: var(--color-primary);
}

.corp-hero__divider {
  flex-shrink: 0;
  width: 2px;
  height: 155px;
  background-color: var(--color-border);
  margin: 0 10px;
}

.corp-hero__desc {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 20px;
  color: var(--color-text);
  line-height: 1.6;
  flex: 1 0 280px;
  max-width: 500px;
}

.corp-hero__banner {
  width: 100%;
  aspect-ratio: 1512 / 486;
  overflow: hidden;
}

.corp-hero__banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transform: translateY(80px);
  animation: slideUpHeroImage 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: 0.4s;
}

/* ============================================================
   2. CORPORATE OFFICE SECTION
   ============================================================ */
.corp-office {
  background-color: var(--color-bg-light);
  padding: var(--section-pad-y) var(--section-pad-x);
}

.corp-office__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  display: flex;
  gap: 30px;
  align-items: stretch;
}

.corp-office__card {
  flex: 1 1 800px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  padding: 60px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 30px;
}

.corp-office__heading {
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-transform: uppercase;
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.3;
}

.corp-office__subtitle {
  color: var(--color-primary);
  font-size: 25px;
}

.corp-office__title {
  color: var(--color-dark);
  font-size: 48px;
}

.corp-office__details {
  display: flex;
  flex-direction: column;
  gap: 25px;
  font-size: 18px;
  width: 100%;
  max-width: 500px;
}

.corp-info-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.corp-info-block__label {
  font-family: var(--font-heading);
  font-weight: 500;
  text-transform: uppercase;

  color: var(--color-dark);
}

.corp-info-block__text {
  font-family: var(--font-body);
  color: var(--color-text);
  line-height: 1.4;
}

.corp-office__contact-row {
  display: flex;
  justify-content: center;
  gap: 50px;
  width: 100%;
}

.corp-office__map {
  flex: 0 0 562px;
  background-color: #ddd;
  /* placeholder if no image */
  overflow: hidden;
}

.corp-office__map img,
.corp-office__map iframe {
  width: 100%;
  height: 100%;
  min-height: 416px;
  object-fit: cover;
  display: block;
  border: 0;
}

/* ============================================================
   3. BRANCH DIRECTORY GRID
   ============================================================ */
.corp-directory {
  padding: var(--section-pad-y) var(--section-pad-x);
  background-color: var(--color-white);
}

.corp-directory__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--color-border);
  border-left: 1px solid var(--color-border);
}

.corp-branch {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 80px;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  min-height: 455px;
  overflow: hidden;
  cursor: pointer;
}

/* Light blue gradient behind the city name */
.corp-branch::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 250px;
  background: linear-gradient(to bottom, #c2e6ff 0%, rgba(255, 255, 255, 0) 100%);
  opacity: 0;
  z-index: 1;
  pointer-events: none;
  transition: opacity var(--trans-med);
}

.corp-branch:hover::before {
  opacity: 0.5;
}

.corp-branch__title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 48px;
  text-transform: uppercase;
  color: var(--color-dark);
  line-height: 1.3;
  text-align: center;
  position: relative;
  z-index: 2;
  word-break: break-word;
  transition: color var(--trans-med);
}

.corp-branch:hover .corp-branch__title {
  color: var(--color-primary);
}

.corp-branch__details {
  display: flex;
  flex-direction: column;
  gap: 25px;
  font-size: 18px;
  text-align: center;
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 335px;

  max-height: 0;
  opacity: 0;
  margin-top: 0;
  overflow: hidden;
  transform: translateY(15px);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.corp-branch:hover .corp-branch__details {
  max-height: 400px;
  opacity: 1;
  margin-top: 31px;
  transform: translateY(0);
}

.corp-branch__contact-row {
  display: flex;
  justify-content: center;
  gap: 20px;
  width: 100%;
}

/* ============================================================
   4. RESPONSIVE
   ============================================================ */
@media (max-width: 1200px) {
  .corp-office__inner {
    flex-direction: column;
  }

  .corp-office__card {
    flex: none;
  }

  .corp-office__map {
    flex: none;
    width: 100%;
    height: 400px;
  }

  .corp-branch {
    padding: 40px 30px;
  }
}

@media (max-width: 1024px) {
  .corp-hero__divider {
    display: none;
  }

  .corp-hero__desc {
    flex: none;
    max-width: 100%;
  }

  .corp-directory__inner {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .corp-hero__intro {
    flex-direction: column;
    padding: 50px 24px;
    gap: 24px;
  }

  .corp-hero__heading {
    font-size: 34px;
    flex: none;
  }

  .corp-office {
    padding: 50px 24px;
  }

  .corp-office__card {
    padding: 40px 20px;
  }

  .corp-office__title {
    font-size: 36px;
  }

  .corp-office__contact-row,
  .corp-branch__contact-row {
    flex-direction: column;
    gap: 25px;
  }

  .corp-directory {
    padding: 50px 24px;
  }

  .corp-directory__inner {
    grid-template-columns: 1fr;
  }

  .corp-branch__title {
    font-size: 36px;
  }

  .corp-branch {
    min-height: 380px;
  }
}

@media (max-width: 480px) {
  .corp-hero__heading {
    font-size: 28px;
  }
}