/* ★ PC/SP出し分け表示用クラス */
.u-pc-ib { display: inline-block !important; }
.u-sp-ib { display: none !important; }

@media only screen and (max-width: 768px) {
    .u-pc-ib { display: none !important; }
    .u-sp-ib { display: inline-flex !important; }
}

/* ==========================================================================
   1. ステップ進捗バー（画像表示用）
   ========================================================================== */
.p-step-nav {
  width: 100%;
  margin: 0 auto 30px;
  text-align: center;
}
.p-step-nav__img {
  margin: 0 auto;
  width: 100%;
}
/* 銀行振込用：PC表示時の最大幅を920pxに限定 */
.p-step-nav__img--bank {
  max-width: 920px;
}
/* クレジットカード用：PC表示時の最大幅を770pxに限定 */
.p-step-nav__img--credit {
  max-width: 770px;
}
.p-step-nav__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
    2. ダウンロードボタン & カード基本設定 (PC表示時)
    ========================================================================== */
.p-step-dlbtn {
margin-top: 20px;
margin-bottom: 20px;
}
.p-step-dlbtn a.p-step-dlbtn__btn--pc {
display: inline-flex;
align-items: center;
gap: 10px;
background: #fff;
border-radius: 8px;
padding: 17px 25px;
font-size: 14px;
color: #1C385E;
text-decoration: none;
font-weight: 400;
}
.p-step-dlbtn__icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
border-radius: 50%;
background: #6D8AB0;
flex-shrink: 0;
}
.p-step-dlbtn__icon svg {
width: 14px;
height: 14px;
display: block;
}

.c-flow-item {
margin-bottom: 30px !important;
}
.c-flow-item:last-child {
margin-bottom: 0 !important;
}

.c-card03__btn {
  max-width: 335px;
  margin-bottom: 45px;
}

.c-card03__btn .c-btn {
display: flex !important;
width: 100% !important;
max-width: 100% !important;
flex: 1 1 100% !important;
min-height: 74px;
box-sizing: border-box !important;
justify-content: center !important;
position: relative !important;
}

.c-box__contents,
.c-card03.c-card03--bg02,
.c-card03__txtbox.c-card03__txtbox--pcfull {
width: 100% !important;
max-width: 100% !important;
flex: 1 1 100% !important;
flex-basis: 100% !important;
display: block !important;
box-sizing: border-box !important;
}

/* 専用フォームボタン (PC標準設定) */
a.c-btn.c-btn--spbottom,
.c-card03__btn .c-btn {
display: flex !important;
width: 100% !important;
max-width: 100% !important;
flex: 1 1 100% !important;
min-height: 74px;
box-sizing: border-box !important;
justify-content: center !important;
position: relative !important;
}
.c-card03__btn .c-btn .c-btn__icon {
position: absolute !important;
right: 20px !important;
}
.c-card03__btn .c-btn .c-btn__txt {
width: 100% !important;
text-align: center !important;
}
.c-card03__btn {
    margin-bottom: 45px;
}

/* 角丸リセット用 */
.c-card03--no-bottom-radius {
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
margin-bottom: 3px !important;
}
.c-card03--no-top-radius {
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}

/* ★ キャプション注記のPC時下マージン */
@media only screen and (min-width: 769px) {
  .c-card03__caption {
    margin-bottom: 32px !important;
  }
}

/* <h5> 見出しスタイル */
.c-card03__txtbox h5 {
display: flex !important;
align-items: center !important;
gap: 8px !important;
color: #1C385E !important;
font-size: 15px !important;
font-weight: 700 !important;
line-height: 2.1 !important;
margin-top: 50px !important;
margin-bottom: 20px !important;
}
.c-card03__txtbox h5::before {
content: '' !important;
display: block !important;
width: 8px !important;
height: 8px !important;
background-color: #1C385E !important;
border-radius: 50% !important;
flex-shrink: 0 !important;
}

/* ==========================================================================
    3. STEPスライドショー（p-step-slider）PC共通スタイル
    ========================================================================== */
/* ★ 1. カード（.c-card03）を親基準にし、ラッパーは矢印を受け止める親要素とする */
.c-card03 {
  position: relative !important;
}

/* ラッパー */
.p-step-slider-wrap {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 8px 0 48px !important;
  box-sizing: border-box !important;
}

/* ★ 2. Swiperコンテナ自体の幅 */
.p-step-slider.swiper {
  position: relative !important;
  max-width: 920px !important;
  width: 100% !important;
  overflow: hidden !important;
  padding: 10px 0 !important;
  margin: 0 auto !important;
}

@media only screen and (min-width: 769px) {
  .p-step-slider .swiper-slide {
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
  }
}

/* ★ 3. 画像エリア指定：高さを500pxに統一 */
.p-step-slider__img {
  width: 100% !important;
  height: 500px !important;
  overflow: hidden;
  box-sizing: border-box !important;
  margin-bottom: 20px;
}
.p-step-slider__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* スライド下のテキスト */
.p-step-slider__caption {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  color: #131F2A !important;
  margin-bottom: 8px !important;
}
.p-step-slider__desc {
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 24px !important;
  color: #131F2A !important;
  min-height: 20px !important;
  margin-bottom: 0 !important;
}
.p-step-slider__desc a {
  color: #131F2A !important;
  text-decoration: underline !important;
  word-break: break-all !important;
}

/* 国税庁法人番号公表サイトのアンカーリンク */
a.c-txtlink01.js-houjin-link {
  text-decoration: underline !important;
  background: none !important;
  padding: 0 !important;
  display: inline !important;
}
a.c-txtlink01.js-houjin-link::before,
a.c-txtlink01.js-houjin-link::after {
  content: none !important;
  display: none !important;
}

/* ★ 4. 矢印ボタン配置：高さ中央（top:250px）、左右位置はカード両端（20px）に絶対配置 */
.swiper-button-prev.p-step-slider__nav,
.swiper-button-next.p-step-slider__nav {
  position: absolute !important;
  z-index: 20 !important;
  width: 43px !important;
  height: 43px !important;
  top: 250px !important; 
  margin-top: 0 !important;
  transform: translateY(-50%) !important;
  background: none !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  border: 1px solid #1c385e !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.p-step-slider-wrap .swiper-button-lock {
  display: flex !important;
}
.p-step-slider__nav::after {
  content: none !important;
}
.p-step-slider__nav svg {
  width: 11px;
  height: 9px;
  display: block;
}

/* 左右端の位置（カード端から20pxに固定） */
.swiper-button-prev.p-step-slider__nav--prev,
.swiper-button-prev.p-step-slider__nav,
.swiper-button-prev {
  left: 20px !important;
  right: auto !important;
}

.swiper-button-next.p-step-slider__nav--next,
.swiper-button-next.p-step-slider__nav,
.swiper-button-next {
  right: 20px !important;
  left: auto !important;
}

/* ページネーション */
.p-step-slider__pagination {
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 15px;
  height: 15px;
  margin-top: 28px !important;
}
.p-step-slider__pagination .swiper-pagination-bullet {
  width: 15px;
  height: 15px;
  border-radius: 50px;
  background: #C3C9D8;
  opacity: 1;
  margin: 0 !important;
}
.p-step-slider__pagination .swiper-pagination-bullet-active {
  background: #1C385E;
}

@media only screen and (min-width: 769px) {
  .js-sliderStep01Wrap .p-step-slider.swiper {
    max-width: 950px !important;
    width: 100% !important;
    margin: 0 auto !important;
  }

  .js-sliderStep01Wrap .swiper-slide {
    box-sizing: border-box !important;
    padding-left: 1px !important;
    padding-right: 1px !important;
  }

  .js-sliderStep01Wrap .p-step-slider__img {
    width: 100% !important;
    max-width: 100% !important;
    height: 560px !important;
    margin-bottom: 20px !important;
  }

  .js-sliderStep01Wrap .swiper-button-prev.p-step-slider__nav,
  .js-sliderStep01Wrap .swiper-button-next.p-step-slider__nav {
    top: 280px !important;
  }
}

/* ★ 5. STEP03専用 1枚表示スライダー */
.js-sliderStep03aWrap,
.js-sliderStep03bWrap,
.js-sliderStep03cWrap {
  max-width: 100% !important;
  padding-bottom: 0 !important;
}
.js-sliderStep03cWrap {
  padding-bottom: 23px !important;
}

.js-sliderStep03a.p-step-slider.swiper,
.js-sliderStep03b.p-step-slider.swiper,
.js-sliderStep03c.p-step-slider.swiper {
  max-width: 750px !important; 
}

.js-sliderStep03aWrap .p-step-slider__img,
.js-sliderStep03bWrap .p-step-slider__img,
.js-sliderStep03cWrap .p-step-slider__img {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto;
  margin-right: auto;
}

/* STEP03のみテキストを中央揃え */
.js-sliderStep03aWrap .p-step-slider__caption,
.js-sliderStep03bWrap .p-step-slider__caption,
.js-sliderStep03cWrap .p-step-slider__caption,
.js-sliderStep03aWrap .p-step-slider__desc,
.js-sliderStep03bWrap .p-step-slider__desc,
.js-sliderStep03cWrap .p-step-slider__desc {
  text-align: center !important;
}

.p-step-slider-link-text {
  text-align: center !important;
  margin-top: 38px !important;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 24px;
  letter-spacing: 0;
  color: #131F2A;
}
.p-step-slider-link-text a {
  color: #131F2A;
  text-decoration: underline;
  font-weight: 500;
}

@media only screen and (min-width: 769px) {
  .p-step-slider-link-text {
    margin-bottom: 38px !important;
  }
}

@media only screen and (min-width: 769px) {
  .js-sliderStep03a.p-step-slider .swiper-slide,
  .js-sliderStep03b.p-step-slider .swiper-slide,
  .js-sliderStep03c.p-step-slider .swiper-slide {
    width: 100% !important;
  }
}

/* ==========================================================================
    4. レスポンシブ表示（768px以下：SP最適化）
    ========================================================================== */
    
@media only screen and (max-width: 768px) {

  /* ★ 追加：SP表示時のみテキスト下に10pxの余白 */
  .sp-mb10 {
    margin-bottom: 10px !important;
  }

  /* レイアウト崩れ防止 */
  .c-box,
  .c-box__contents,
  .c-card03,
  .c-card03__txtbox {
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
  }

  /* スライダーラッパー：相対位置の基準 */
  .p-step-slider-wrap,
  .js-sliderStep01Wrap,
  .js-sliderStep03aWrap,
  .js-sliderStep03bWrap,
  .js-sliderStep03cWrap {
      position: relative !important;
      width: 100% !important;
      max-width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
      box-sizing: border-box !important;
  }

  /* Swiperコンテナ */
  .p-step-slider.swiper,
  .p-step-slider .swiper-wrapper {
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      box-sizing: border-box !important;
  }

  /* 各スライド */
  .p-step-slider .swiper-slide {
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: flex-start !important;
  }

  /* 画像要素 */
  .p-step-slider__img {
      margin-left: auto !important;
      margin-right: auto !important;
      margin-bottom: 10px !important;
  }

  .js-sliderStep01Wrap .p-step-slider__img,
  .js-sliderStep03aWrap .p-step-slider__img,
  .js-sliderStep03bWrap .p-step-slider__img,
  .js-sliderStep03cWrap .p-step-slider__img {
      max-width: 230px !important;
      width: 100% !important;
      height: 300px !important;
  }

  .js-sliderStep03aWrap .p-step-slider__img,
  .js-sliderStep03bWrap .p-step-slider__img,
  .js-sliderStep03cWrap .p-step-slider__img {
      max-width: 230px !important;
      width: 100% !important;
      height: 190px !important;
  }
  .p-step-slider__img img {
      width: 100% !important;
      height: 100% !important;
      object-fit: contain !important;
      display: block !important;
  }

  /* テキストの左寄せ設定 */
  .p-step-slider__caption,
  .js-sliderStep03aWrap .p-step-slider__caption,
  .js-sliderStep03bWrap .p-step-slider__caption,
  .js-sliderStep03cWrap .p-step-slider__caption {
      font-size: 14px !important;
      text-align: left !important;
      width: 100% !important;
  }
  .p-step-slider__desc,
  .js-sliderStep03aWrap .p-step-slider__desc,
  .js-sliderStep03bWrap .p-step-slider__desc,
  .js-sliderStep03cWrap .p-step-slider__desc {
      font-size: 15px !important;
      line-height: 20px !important;
      min-height: auto !important;
      text-align: left !important;
      width: 100% !important;
  }

  /* ページネーション（ドット）：中央配置 */
  .p-step-slider__pagination {
      position: relative !important;
      bottom: auto !important;
      left: auto !important;
      right: auto !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 10px !important;
      margin-top: 16px !important;
      height: 26px !important; /* 矢印と同じ高さで中央揃え */
      z-index: 10 !important;
  }
  .p-step-slider__pagination .swiper-pagination-bullet {
      width: 10px !important;
      height: 10px !important;
      margin: 0 !important;
  }

  /* 矢印ボタン：ドットと同じ高さ（margin-top調整）でカードの最左右端（端から2px）に固定 */
  .swiper-button-prev.p-step-slider__nav.p-step-slider__nav--prev,
  .swiper-button-next.p-step-slider__nav.p-step-slider__nav--next {
      display: flex !important;
      visibility: visible !important;
      opacity: 1 !important;
      position: absolute !important;
      top: auto !important;
      bottom: 0 !important; /* 下部ラインに揃える */
      width: 26px !important;
      height: 26px !important;
      margin-top: 0 !important;
      transform: none !important;
      z-index: 20 !important;
      background: none !important;
      border: 1px solid #1c385e !important;
      border-radius: 50% !important;
      align-items: center !important;
      justify-content: center !important;
  }
  .p-step-slider__nav svg {
      width: 9px !important;
      height: 8px !important;
  }

  .swiper-button-prev.p-step-slider__nav.p-step-slider__nav--prev {
      left: 2px !important;
      right: auto !important;
  }
  .swiper-button-next.p-step-slider__nav.p-step-slider__nav--next {
      right: 2px !important;
      left: auto !important;
  }

  /* h5 見出し（下マージン: 20px） */
  .c-card03__txtbox h5 {
      margin-top: 30px !important;
      margin-bottom: 20px !important;
      font-size: 14px !important;
  }

  /* h5の直後のスライドショー上部余白調整 */
  .c-card03__txtbox h5 + .p-step-slider-wrap {
      margin-top: 0 !important;
  }

  /* SP専用フォームボタン */
  .c-card03__btn {
      width: 100% !important;
      padding: 0 !important;
      margin: 20px 0 40px 0 !important;
      box-sizing: border-box !important;
  }
  .c-card03__btn .c-btn,
  a.c-btn.c-btn--spbottom {
      position: relative !important;
      bottom: auto !important;
      left: auto !important;
      right: auto !important;
      width: 100% !important;
      max-width: 100% !important;
      min-height: 58px !important;
      background-color: #274068 !important;
      border-radius: 8px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      box-shadow: none !important;
      margin: 0 !important;
      padding: 0 50px 0 20px !important;
      box-sizing: border-box !important;
      transform: none !important;
  }
  .c-card03__btn .c-btn .c-btn__txt {
      font-family: "Noto Sans JP", sans-serif !important;
      font-size: 13px !important;
      font-weight: 500 !important;
      color: #FFFFFF !important;
      text-align: center !important;
      line-height: 1 !important;
      width: 100% !important;
      margin: 0 !important;
  }
  .c-card03__btn .c-btn .c-btn__icon {
      position: absolute !important;
      right: 16px !important;
      top: 50% !important;
      transform: translateY(-50%) !important;
      width: 36px !important;
      height: 36px !important;
      background-color: rgba(255, 255, 255, 0.2) !important;
      border-radius: 50% !important;
  }
}