@media (max-width: 900px) {
  .casa,
  .casa__wrap,
  .casa__panel {
    overflow: visible;
  }

  .casa__wrap {
    padding-top: 0;
    min-height: 0;
  }

  .casa__panel {
    width: min(100%, 22.5rem);
    max-width: min(92vw, 22.5rem);
    margin: 0 auto;
    margin-left: clamp(1.15rem, 5.5vw, 2.25rem);
    margin-right: clamp(0.35rem, 2vw, 0.85rem);
    padding: 0 clamp(0.85rem, 4vw, 1.35rem) clamp(0.75rem, 2.5vw, 1.1rem);
    padding-top: clamp(10.25rem, 44vw, 13rem);
    min-height: 0;
    box-sizing: border-box;
  }

  .casa__content {
    transform: none;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    padding-inline: 0.1rem;
    position: relative;
    z-index: 2;
  }

  .casa__lead {
    font-size: clamp(0.48rem, 2.35vw, 0.88rem);
    line-height: 1.1;
    letter-spacing: clamp(-0.04em, -0.35vw, 0.01em);
    white-space: nowrap;
    max-width: 100%;
  }

  .casa__prefix {
    font-size: clamp(1.55rem, 7.2vw, 2.2rem);
    line-height: 1.08;
    white-space: normal;
  }

  .casa__suffix {
    font-size: clamp(0.95rem, 4.2vw, 1.4rem);
    line-height: 1.15;
    white-space: normal;
    max-width: 100%;
  }

  .casa__title span {
    font-size: clamp(1.75rem, 8.5vw, 2.85rem);
    padding-block: clamp(0.28rem, 1.1vw, 0.42rem);
    padding-inline: clamp(0.65rem, 3vw, 1.1rem);
  }

  .casa__figure {
    position: absolute;
    top: clamp(-5.5rem, calc(-10vw - 3.125rem), -4.625rem);
    left: clamp(-3.35rem, -14vw, -2.1rem);
    z-index: 5;
    width: clamp(19.5rem, 118%, 26rem);
    max-width: none;
    margin: 0;
    pointer-events: auto;
    transform-origin: left top;
    transform: translateX(-115%);
  }

  .casa__figure.is-visible {
    transform: translateX(0);
  }

  .casa__figure.is-visible:hover {
    transform: translateX(0) scale(1.03);
  }
}

@media (max-width: 380px) {
  .casa__panel {
    width: min(100%, 20.5rem);
    max-width: 94vw;
    margin-left: clamp(1rem, 5vw, 1.85rem);
    margin-right: clamp(0.25rem, 1.75vw, 0.65rem);
    padding-inline: clamp(0.65rem, 3.5vw, 0.85rem);
    padding-top: clamp(9.15rem, 40vw, 11.25rem);
  }

  .casa__lead {
    font-size: clamp(0.45rem, 2.15vw, 0.68rem);
    letter-spacing: -0.04em;
  }

  .casa__prefix {
    font-size: clamp(1.4rem, 6.8vw, 1.85rem);
  }

  .casa__title span {
    font-size: clamp(1.55rem, 7.8vw, 2.1rem);
  }

  .casa__suffix {
    font-size: clamp(0.82rem, 3.9vw, 1.1rem);
  }

  .casa__figure {
    width: clamp(17.75rem, 116%, 22rem);
    top: clamp(-4.9rem, calc(-9vw - 2.875rem), -4.15rem);
    left: clamp(-2.85rem, -13vw, -1.75rem);
  }
}
