.hero.hero--panorama {
  display: block;
  padding: 0;
  background: var(--color-bg);
  isolation: isolate;
}

.hero.hero--panorama::before { content: none; }

.hero-gallery {
  position: relative;
  width: 100%;
  height: clamp(216px, 60vw, 440px);
  overflow: hidden;
  background: var(--color-bg-alt);
}

.hero-slides,
.hero-slide,
.hero-slide picture {
  position: absolute;
  inset: 0;
}

.hero-slide {
  opacity: 0;
  visibility: hidden;
  transition: opacity 700ms ease, visibility 700ms;
  pointer-events: none;
}

.hero-slide.is-active {
  opacity: 1;
  visibility: visible;
}

.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
}

.hero-slide--portrait img { object-position: 50% 30%; }

.hero-layout {
  position: relative;
  padding: 32px 20px 44px;
}

.hero-content {
  max-width: 650px;
  margin-inline: auto;
  text-align: center;
}

.hero.hero--panorama h1 {
  max-width: 21ch;
  margin: 0 auto 22px;
  font-size: clamp(2rem, 8.8vw, 3.4rem);
  line-height: 1.1;
  letter-spacing: -0.018em;
}

.hero--panorama .hero-lead { margin-bottom: 26px; }

@media (min-width: 900px) {
  .hero-gallery {
    position: absolute;
    inset: 0;
    height: 100%;
    background: var(--color-bg);
  }

  .hero-slide { left: 36%; }
  .hero-slide img { object-position: 50% 26%; }
  .hero-slide--portrait img { object-position: 50% 30%; }

  /* The overlay protects the fixed text while either real photo is shown. */
  .hero-gallery::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #F8F6F2 0%, #F8F6F2 39%, rgba(248, 246, 242, 0.98) 43%, rgba(248, 246, 242, 0.80) 49%, rgba(248, 246, 242, 0.24) 59%, rgba(248, 246, 242, 0) 67%);
    content: "";
    pointer-events: none;
  }

  .hero-layout {
    display: flex;
    width: min(90%, 1440px);
    min-height: clamp(610px, 49vw, 760px);
    align-items: center;
    margin-inline: auto;
    padding: 64px 0;
    pointer-events: none;
  }

  .hero-content {
    width: 48%;
    max-width: 650px;
    margin: 0;
    text-align: left;
    pointer-events: auto;
  }

  .hero.hero--panorama .eyebrow { margin: 0 0 24px; font-size: 0.8rem; }
  .hero.hero--panorama .eyebrow::before { margin: 0 0 18px; }

  .hero.hero--panorama h1 {
    max-width: none;
    margin: 0 0 26px;
    font-size: clamp(2.8rem, 4.55vw, 4.25rem);
    line-height: 1.1;
  }

  .hero--panorama .hero-lead { margin: 0 0 34px; }
  .hero--panorama .hero-actions { justify-content: flex-start; }
  .hero--panorama .hero-actions .button { min-width: 240px; min-height: 60px; padding-inline: 28px; font-size: 1.125rem; }
}

/* Keep the approved photo's headroom and the face visible in both layouts. */
.hero-slide--samples img { object-position: 100% 0; }

/* The sewing photo keeps both the face and the hands in the frame. */
.hero-slide--sewing img { object-position: 100% 35%; }

/* Retain the raised hand at the right edge and the headroom above the tulle. */
.hero-slide--tulle img { object-position: 70% 0; }

@media (min-width: 900px) {
  .hero-slide--sewing img { object-position: 100% 60%; }
  .hero-slide--tulle img { object-position: 90% 0; }
}

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