._InteractionDialog_q341p_1 {
  padding: 0;
  margin: 0;
  border: 0;
  height: 100%;
  width: 100%;
  max-height: 100%;
  max-width: 100%;
  overscroll-behavior: none;
  scrollbar-width: none;
  background-color: transparent;
}

/* ダイアログの背面コンテンツのスクロールを抑制するためのラッパー */
._outer_q341p_15 {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  padding: 0 16px;
  position: relative;

  @media (width > 768px) {
    /* https://min-max-calculator.9elements.com/?32,40,768,1200 */
    padding: clamp(2.5rem, -0.722rem + 3.7vw, 3.5rem)
      clamp(2.5rem, -0.722rem + 3.7vw, 3.5rem);
  }
}

._closeButton_q341p_30 {
  align-items: center;
  background-color: transparent;
  border: 0;
  color: var(--TEXT-WHITE);
  cursor: pointer;
  display: flex;
  font-size: var(--FONT-SIZE-BASE);
  gap: var(--SPACE-BLOCK-SPACING-4);
  line-height: 1.5;
  padding: var(--SPACE-BLOCK-SPACING-2);
  position: absolute;
  top: -2.5em;
  right: 0;
  z-index: calc(var(--Z-INDEX-DEFAULT) + 1);
  transition: opacity var(--TRANSITION);

  &:focus-visible {
    opacity: var(--OPACITY-HOVER);
  }

  @media (any-hover: hover) {
    &:hover {
      opacity: var(--OPACITY-HOVER);
    }
  }

  /* icon */
  &::before {
    content: '';
    display: block;
    flex-shrink: 0;
    height: 24px;
    width: 24px;
    background-color: currentColor;
    mask-image: url('/assets/images/common/icon-close.svg');
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
  }
}

._panel_q341p_72 {
  background-color: var(--BG-WHITE);
  max-width: var(--BREAKPOINT-XL);
  overflow: visible;
  position: relative;
  width: 100%;
}

._slide_q341p_80 {
  display: flex;
  flex-direction: column;
  padding: var(--SPACE-BLOCK-SPACING-16);
  gap: var(--SPACE-BLOCK-SPACING-24);

  @media (width > 768px) {
    padding: var(--SPACE-BLOCK-SPACING-48);
  }
}

._slideMedia_q341p_91 {
  > :is(:first-child) {
    margin-top: 0;
  }

  > :is(:last-child) {
    margin-bottom: 0;
  }

  [class*='wrap'] {
    max-width: 1104px;
  }
}

._slideBody_q341p_105 {
  > :is(:first-child) {
    margin-top: 0;
  }

  > :is(:last-child) {
    margin-bottom: 0;
  }
}

._slideContent_q341p_115 {
  display: flex;
  flex-direction: column;
  gap: var(--SPACE-BLOCK-SPACING-16);
}

._heading_q341p_121 {
  font-size: var(--FONT-SIZE-BASE);
  font-weight: var(--FONT-WEIGHT-BOLD);
  line-height: 1.5;

  @media (width > 768px) {
    font-size: var(--FONT-SIZE-XL);
  }
}

._control_q341p_131 {
  align-items: center;
  bottom: clamp(1.5rem, -2.944rem + 9.26vw, 4rem);
  display: flex;
  flex-direction: row;
  gap: var(--SPACE-BLOCK-SPACING-16);
  pointer-events: none;
  position: absolute;
  right: 0;
  z-index: var(--Z-INDEX-DEFAULT);

  @media (width <= 768px) {
    bottom: -60px;
  }

  @media (width > 768px) {
    display: block;
    inset: 0;
  }
}

._arrow_q341p_152 {
  display: block;
  background-color: var(--BG-WHITE);
  border: 1px solid var(--BORDER-BLACK);
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
  height: 40px;
  width: 40px;
  overflow: hidden;
  padding: calc(var(--SPACING) * 10) 0 0 calc(var(--SPACING) * 10);
  pointer-events: auto;
  position: relative;
  transition: background-color var(--TRANSITION);

  @media (width > 768px) {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }

  /* arrow */
  &::before {
    background-color: var(--TEXT-BLACK);
    content: '';
    display: block;
    height: 12px;
    left: 50%;
    mask-repeat: no-repeat;
    mask-size: cover;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 12px;
    transition: background-color var(--TRANSITION);
  }

  &._theme-prev_q341p_189 {
    /* arrow */
    &::before {
      mask-image: url('/assets/images/common/icon-angle-left.svg');
    }

    @media (width > 768px) {
      left: 0;
      transform: translate(-50%, -50%);
    }
  }

  &._theme-next_q341p_201 {
    /* arrow */
    &::before {
      mask-image: url('/assets/images/common/icon-angle-right.svg');
    }

    @media (width > 768px) {
      right: 0;
      transform: translate(50%, -50%);
    }
  }

  &:disabled {
    border: 1px solid var(--BORDER-DEFAULT);
    cursor: default;

    /* arrow */
    &::before {
      background-color: var(--BORDER-DEFAULT);
    }
  }

  &:focus-visible {
    background-color: var(--BG-BLACK);

    /* arrow */
    &::before {
      background-color: var(--TEXT-WHITE);
    }
  }

  @media (any-hover: hover) {
    &:not(:disabled) {
      &:hover {
        background-color: var(--BG-BLACK);

        /* arrow */
        &::before {
          background-color: var(--TEXT-WHITE);
        }
      }
    }
  }
}

.js-dialog__swiper {
  overflow: hidden;
  width: 100%;
}

.js-dialog__swiper .swiper-slide {
  height: auto;
  max-height: 80dvh;
  overflow-y: auto;
}

/* autoHeight 使用時も高さ変化をアニメーションさせず、横スライドのみ統一 */
.js-dialog__swiper.swiper-autoheight .swiper-wrapper {
  transition-property: transform;
}
._MediaModal_1dlhw_1 {
  margin-top: var(--SPACING-MODULE-DEFAULT);

  &:has(button) > button {
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
  }
}

._wrap_1dlhw_14 {
  display: table;
  width: 100%;
  margin-inline: auto;
  vertical-align: top;
  transition: opacity var(--TRANSITION);

  @media (any-hover: hover) {
    &:hover {
      opacity: var(--OPACITY-HOVER);
    }
  }

  &:focus-visible {
    opacity: var(--OPACITY-HOVER);
    outline: none;
    box-shadow:
      0 0 0 2px var(--BORDER-WHITE),
      0 0 0 4px var(--BORDER-BLACK);
  }
}

._dialogTrigger_1dlhw_36 {
  border: 1px dashed var(--COLOR-RIDGE-BLUE-500);
  cursor: pointer;
  display: block;
  position: relative;
  transition: opacity var(--TRANSITION);

  &:hover {
    opacity: var(--OPACITY-HOVER);
  }

  /* icon background */
  &::after {
    content: '';
    display: block;
    background-color: var(--TEXT-BLACK);
    height: 40px;
    width: 40px;
    position: absolute;
    right: 0;
    bottom: 0;
  }

  /* icon */
  &::before {
    content: '';
    display: block;
    background-color: var(--COLOR-WHITE-1000);
    height: 32px;
    width: 32px;
    mask-image: url('/assets/images/common/icon-zoom.svg');
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    position: absolute;
    right: 4px;
    bottom: 4px;
    z-index: var(--Z-INDEX-DEFAULT);
  }
}

._item_1dlhw_77 {
  display: block;
  object-fit: cover;
  width: 100%;
  height: auto;
}

._portrait_1dlhw_84 ._item_1dlhw_77 {
  height: 100%;
  object-fit: contain;
}
