@charset "UTF-8";

/* ==============================================
   J-Publish トップスライダー
   既存の .flexslider や .slides とは名前を分離
   ============================================== */
.jp-slider,
.jp-slider * {
  box-sizing: border-box;
}

.jp-slider {
  --jp-slider-primary: #8B9ADA;
  --jp-slider-text: #333;
  --jp-slider-soft: #f3f3f3;
  width: min(100% - 24px, 1000px);
  margin: 24px auto 32px;
  color: var(--jp-slider-text);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.jp-slider__viewport {
  position: relative;
  overflow: hidden;
  border: 1px solid #e2e2e2;
  border-radius: 8px;
  background: var(--jp-slider-soft);
  touch-action: pan-y;
}

.jp-slider__slides {
  display: grid;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.jp-slider__slide {
  grid-area: 1 / 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .6s ease, visibility 0s linear .6s;
}

/* JavaScriptが無効でも最初の画像とリンクは表示する */
.jp-slider__slide:first-child {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* JavaScript初期化後は is-active のみ表示 */
.jp-slider.is-ready .jp-slider__slide:first-child,
.jp-slider.is-ready .jp-slider__slide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.jp-slider.is-ready .jp-slider__slide.is-active {
  position: relative;
  z-index: 1;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .6s ease, visibility 0s;
}

.jp-slider__slide a,
.jp-slider__slide img {
  display: block;
  width: 100%;
}

.jp-slider__slide img {
  height: auto;
  margin: 0;
  padding: 0;
  object-fit: contain; /* 画像をトリミングしない */
}

.jp-slider__arrow,
.jp-slider__pause {
  font: inherit;
  cursor: pointer;
}

/* JSが無い場合は操作ボタンを表示しない */
.jp-slider__arrow,
.jp-slider__toolbar {
  display: none;
}

.jp-slider.is-ready .jp-slider__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 52px;
  padding: 0;
  color: #333;
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 6px;
  transform: translateY(-50%);
  font-size: 21px;
  line-height: 1;
  transition: background-color .2s ease;
}

.jp-slider__arrow--prev { left: 12px; }
.jp-slider__arrow--next { right: 12px; }

.jp-slider__arrow:hover,
.jp-slider__arrow:focus-visible {
  background: #fff;
}

.jp-slider.is-ready .jp-slider__toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 13px 10px 0;
}

.jp-slider__dots {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 11px;
}

.jp-slider__dot {
  display: block;
  width: 12px;
  height: 12px;
  padding: 0;
  border: 1px solid #8B9ADA;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

.jp-slider__dot.is-active {
  background: #677cc7;
  border-color: #677cc7;
}

.jp-slider__pause {
  min-height: 36px;
  padding: 5px 12px;
  color: var(--jp-slider-text);
  background: #fff;
  border: 1px solid #c5c9d9;
  border-radius: 5px;
  font-size: 13px;
}

.jp-slider__arrow:focus-visible,
.jp-slider__dot:focus-visible,
.jp-slider__pause:focus-visible,
.jp-slider__slide a:focus-visible {
  outline: 3px solid #3154a3;
  outline-offset: 2px;
}

.jp-slider__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
}

@media (max-width: 767px) {
  .jp-slider {
    width: min(100% - 20px, 1000px);
    margin: 14px auto 22px;
  }

  .jp-slider__viewport { border-radius: 5px; }

  .jp-slider.is-ready .jp-slider__arrow {
    width: 34px;
    height: 42px;
    font-size: 17px;
  }

  .jp-slider__arrow--prev { left: 5px; }
  .jp-slider__arrow--next { right: 5px; }

  .jp-slider.is-ready .jp-slider__toolbar { padding-top: 10px; }
}

/* 動きを減らす設定を尊重 */
@media (prefers-reduced-motion: reduce) {
  .jp-slider__slide,
  .jp-slider.is-ready .jp-slider__slide.is-active {
    transition: none;
  }
}
/* 一時停止・再生ボタンを非表示 */
.jp-slider__pause {
  display: none !important;
}