/* home: existing family composition and intentional responsive variants. */
.home-hero-media {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--fs-radius-lg);
}

.home-hero-poster,
.home-hero-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-hero-poster {
  z-index: 1;
  pointer-events: none;
  transition: opacity 150ms ease;
}

.home-hero-media.is-playing .home-hero-poster {
  opacity: 0;
}

.home-hero-title {
  width: 100%;
  max-width: 68rem;
  margin-block: -0.06em;
  color: var(--foreground);
  font-size: 3.55rem;
  font-weight: var(--fs-weight-bold);
  line-height: 0.94;
  letter-spacing: 0;
  text-wrap: balance;
}

.home-hero-intro {
  width: 100%;
  max-width: 42rem;
  color: var(--foreground);
  font-size: var(--fs-font-lg);
  font-weight: var(--fs-weight-medium);
  line-height: var(--fs-line-relaxed);
  letter-spacing: 0;
}

@media (min-width: 48rem) {
  .home-hero-title {
    max-width: 72rem;
    font-size: 5rem;
  }

  .home-hero-intro {
    max-width: 46rem;
    font-size: var(--fs-font-xl);
  }}

@media (min-width: 64rem) {
  .home-hero-title {
    font-size: 6.5rem;
  }}

.home-studio-cta-layout {
  display: grid;
  gap: var(--fs-space-8);
  align-items: center;
}

.home-studio-cta-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  border-radius: var(--fs-radius-lg);
  justify-self: stretch;
}

@media (min-width: 64rem) {
  .home-studio-cta {
    display: flex;
    min-height: clamp(38rem, 72vh, 52rem);
    flex-direction: column;
    justify-content: center;
  }}

.home-studio-cta-copy {
  display: flex;
  max-width: 36rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--fs-space-6);
}

.home-studio-cta-copy :where(.block-heading, p) {
  max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
.home-hero-poster {
    transition: none;
  }}

@media (min-width: 64rem) {

  .home-studio-cta-layout {
    grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(var(--fs-space-12), 5vw, var(--fs-space-24));
  }}
