/* ========================================
   Layout 001 - メディアテキストアニメーション
   ======================================== */
.layout-001 {
  position: relative;
  @media (max-width: 768px) {
    padding: 0;
  }
}
.layout-001 .wp-block-media-text__media {
  position: relative;
  overflow: hidden;
}

.layout-001 .wp-block-media-text__media img {
  opacity: 1;
  transition: opacity 0.6s ease-out;
}

/* スライド要素（画像の上にオーバーレイ） */
.layout-001 .wp-block-media-text__media::before {
  content: "";
  position: absolute;
  top: 0;
  left: 40%;
  width: 100%;
  height: 100%;
  background: var(--wp--preset--color--primary-light, rgba(74, 144, 226, 0.3));
  z-index: 2;
  opacity: 0;
  transition:
    left 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.3s ease-out;
}

/* 犬のロゴが走り抜ける */
.layout-001 .wp-block-media-text__media::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(50% - 10px);
  width: 120px;
  height: 120px;
  transform: translate(-50%, -50%);
  background-image: url("../../images/logo/logo-dog-01.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: brightness(0) invert(1);
  z-index: 3;
  opacity: 0;
  transition:
    left 0.8s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.4s ease-out;
}

/* ブロックエディタ内では疑似要素を完全に無効化 */
.editor-styles-wrapper .layout-001 .wp-block-media-text__media::before,
.editor-styles-wrapper .layout-001 .wp-block-media-text__media::after,
.editor-style-wrapper .layout-001 .wp-block-media-text__media::before,
.editor-style-wrapper .layout-001 .wp-block-media-text__media::after {
  display: none !important;
}

/* アニメーション開始 */
.layout-001 .wp-block-media-text__media.is-slide-animating::before {
  left: 40%;
  opacity: 0;
}

/* 犬のロゴが走り始める */
.layout-001 .wp-block-media-text__media.is-dog-running::after {
  left: 50%;
  opacity: 1;
}

/* スライドが通り過ぎたら犬がフェードアウト */
.layout-001 .wp-block-media-text__media.is-dog-fadeout::after {
  opacity: 0;
}

/* 画像フェードイン */
.layout-001 .wp-block-media-text__media.is-image-visible img {
  opacity: 1;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .layout-001 .wp-block-media-text__media::before {
    background: var(
      --wp--preset--color--primary-light,
      rgba(74, 144, 226, 0.3)
    );
  }

  .layout-001 .wp-block-media-text__media::after {
    width: 80px;
    height: 80px;
  }
}
.alignfull {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
}
