:root {
  --edge-pad: 48px;
  --top-pad: 18px;
}

/* =========================
   HERO
   ========================= */

.hero {
  position: relative;

  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;

  display: grid;
  align-items: end;

  box-sizing: border-box;
  padding: 170px 0 60px;
  overflow: hidden;
}

/* Logo */
.hero-brand {
  position: absolute;
  top: var(--top-pad);
  left: var(--edge-pad);
  z-index: 10050;
}

.hero-brand::before {
  content: "";
  position: absolute;
  inset: -36px;
  border-radius: 999px;
  z-index: -1;

  background:
    radial-gradient(circle at 45% 35%, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .20) 45%, rgba(0, 0, 0, 0) 72%),
    radial-gradient(circle at 50% 55%, rgba(0, 0, 0, .30) 0%, rgba(0, 0, 0, 0) 65%);

  filter: blur(10px);
  opacity: .95;
}

.hero-logo {
  height: clamp(150px, 10vw, 180px);
  width: auto;
  filter: drop-shadow(0 14px 32px rgba(0, 0, 0, .45));
}

/* =========================
   MEDIA LAYER
   ========================= */

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;

  /* Immediate paint fallback */
  background: url("resources/heroVideos/sample1-poster.jpg") center/cover no-repeat;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;

  filter: saturate(1.06) contrast(1.06);
}

.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;

  background:
    radial-gradient(900px 700px at 18% 12%, rgba(18, 192, 138, .18), transparent 60%),
    linear-gradient(180deg, rgba(0, 0, 0, .15), rgba(0, 0, 0, .82) 70%, rgba(0, 0, 0, .92));
}

/* =========================
   CONTENT
   ========================= */

.hero-content {
  position: relative;
  z-index: 2;
  padding-bottom: 18px;
}

.hero h1 {
  margin: 0 0 14px;
  font-size: clamp(2.2rem, 4.2vw, 4.2rem);
  line-height: 1.05;
  letter-spacing: -.04em;
  max-width: 18ch;
  font-weight: 650;
}

.hero p {
  margin: 0 0 22px;
  color: rgba(255, 255, 255, .78);
  line-height: 1.75;
  font-size: 1.05rem;
  max-width: 62ch;
}

.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* =========================================================
   HERO — Responsive (moved from responsive.css)
   Applies to clinic + staff + spa heroes
   ========================================================= */

@media (max-width: 960px) {
  .hero {
    min-height: 100vh;
    
    padding: 128px 0 44px;
    position: relative;
    isolation: isolate;
  }

  .hero-brand {
    top: calc(var(--top-pad) + env(safe-area-inset-top));
    left: calc(var(--edge-pad) + env(safe-area-inset-left));
  }

  /* scale down BOTH clinic + spa hero logos on mobile */
  .hero-logo,
  .hero-logo--spa {
    height: clamp(96px, 22vw, 132px);
  }

  .hero-content {
    padding-bottom: 10px;
  }

  .hero h1 {
    font-size: clamp(2.0rem, 7vw, 3.0rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    max-width: 22ch;
  }

  .hero p {
    font-size: 1.02rem;
    line-height: 1.6;
    max-width: 56ch;
    margin-bottom: 18px;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero-actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }

  .hero-overlay {
    background:
      radial-gradient(700px 520px at 18% 10%, rgba(18, 192, 138, .16), transparent 60%),
      linear-gradient(180deg, rgba(0, 0, 0, .20), rgba(0, 0, 0, .86) 70%, rgba(0, 0, 0, .94));
  }
}

@media (max-width: 420px) {
  .hero {
    min-height: 100vh;
    padding: 118px 0 38px;
  }

  .hero h1 {
    font-size: 2.0rem;
    max-width: 24ch;
  }

  .hero-logo {
    height: 92px;
  }
}
