/* ============================================================
   MED·X — cinematic full-bleed hero
   Brand photography, charcoal scrim, elegant type. No line graphics.
   ============================================================ */

.hero-photo {
  position: relative;
  min-height: 100vh; min-height: 100svh;
  display: flex; align-items: center;
  overflow: hidden;
  background: var(--charcoal);
}

/* Full-bleed brand photograph with a slow cinematic zoom */
.hero-photo__bg { position: absolute; inset: 0; z-index: 0; }
.hero-photo__bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: 64% 50%;
  transform-origin: 64% 50%;
  animation: heroZoom 20s var(--ease-out) forwards;
}
@keyframes heroZoom { from { transform: scale(1.14); } to { transform: scale(1); } }

/* Left-weighted scrim keeps the photo rich on the right, text crisp on the left */
.hero-photo__scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(101deg,
      rgba(35,33,32,0.95) 0%,
      rgba(35,33,32,0.86) 30%,
      rgba(35,33,32,0.52) 60%,
      rgba(35,33,32,0.20) 100%),
    linear-gradient(to top, rgba(35,33,32,0.70) 0%, transparent 44%);
}

/* Content */
.hero-photo__inner {
  position: relative; z-index: 2; width: 100%;
  padding-block: clamp(4.5rem, 6vh, 6.5rem) clamp(2.5rem, 5vh, 4rem);
}
.hero-photo__content { max-width: 780px; }
.hero-photo .h-hero {
  font-size: clamp(2.1rem, 1.4rem + 2.9vw, 3.8rem);
  line-height: 1.05; margin: 0.8rem 0 1.1rem; max-width: 16ch;
}
.hero-photo .lead { max-width: 52ch; color: var(--light-soft); }
.hero-photo .btn-row { margin-top: 1.4rem; }

/* thin olive accent rule under the eyebrow for a refined, editorial touch */
.hero-photo .eyebrow { margin-bottom: 1.1rem; }

/* Scroll cue */
.hero-photo__scroll {
  position: absolute; left: 50%; bottom: 1.8rem; transform: translateX(-50%); z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 0.7rem;
  text-decoration: none; color: var(--light-faint);
  font-family: var(--font-body); text-transform: uppercase; letter-spacing: 0.26em; font-size: 0.62rem;
}
.hero-photo__scroll::after {
  content: ""; width: 1px; height: 42px;
  background: linear-gradient(var(--light-faint), transparent);
  animation: scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { opacity: 0.25; transform: scaleY(0.6); transform-origin: top; }
  50%      { opacity: 1;    transform: scaleY(1);   transform-origin: top; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-photo__bg img { animation: none; transform: none; }
  .hero-photo__scroll::after { animation: none; }
}

@media (max-width: 680px) {
  .hero-photo { min-height: 92vh; min-height: 92svh; }
  .hero-photo__bg img { object-position: 66% 50%; }
  .hero-photo__scroll { display: none; }
}

/* ============================================================
   Partners logo strip — uniform, muted, premium
   ============================================================ */
.logo-strip {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: var(--line-on-light); border: 1px solid var(--line-on-light);
  margin-top: 3rem;
}
.logo-tile {
  background: var(--light); display: grid; place-items: center;
  min-height: 148px; padding: 2rem 2.4rem;
}
.logo-tile img {
  max-height: 60px; max-width: 80%; width: auto; object-fit: contain;
  mix-blend-mode: multiply;              /* melts the white logo backgrounds into the tile — no more boxes */
  filter: grayscale(1); opacity: 0.88;
  transition: opacity .4s var(--ease), filter .4s var(--ease);
}
.logo-tile:hover img { filter: grayscale(0); opacity: 1; }
/* placeholder tiles until real logos are added */
.logo-tile.is-placeholder {
  font-family: var(--font-body); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.66rem; color: var(--ink-soft); opacity: 0.4; text-align: center;
}
@media (max-width: 900px) { .logo-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .logo-strip { grid-template-columns: repeat(2, 1fr); } }
