@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@200;400;500;700;900&display=swap");
#timeline_cash, .w_sub, .timeline, .w860 {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

#timeline_cash {
  font-size: 14px;
  font-family: "NotoSans_Japanese","Noto Sans JP","メイリオ", "Meiryo","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "ＭＳ Ｐゴシック", "MS P Gothic", "sans-serif";
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding: 0px 15px; }

.border-right_solid {
  border-right: 1px solid #ccc; }

.border-bottom_solid {
  border-bottom: 1px solid #ccc; }

.border-right_dot {
  border-right: dotted 1px #666; }

.border-bottom_thin {
  border-bottom: 1px solid #666; }

.timeline {
  background: #fff;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  position: relative; }
  .timeline p {
    text-align: center;
    margin: 0px;
    line-height: 1.2em; }

.p-dot {
  margin-top: 5px !important; }
  .p-dot::before {
    display: block;
    content: "";
    margin: 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #666;
    margin-bottom: 5px; }

.w_sub {
  width: 25%;
  padding: 10px;
  height: 80px; }

.w_sub_head {
  height: 25px;
  background: #1F5F8B;
  color: #fff;
  font-weight: bold; }

.w_sub_center {
  display: flex;
  justify-content: center;
  align-items: center; }

.day30 {
  left: calc(50% - 28px );
  position: absolute; }
  @media (max-width: 500px) {
    .day30 {
      left: calc(50% - 15px ); } }

.day15 {
  left: calc(62.5% - 28.5px);
  position: absolute; }

.day20 {
  left: calc(93.25% - 28.5px);
  position: absolute; }

.day15plus5 {
  left: calc(68.25% - 28.5px);
  position: absolute; }

.souki-ato::after {
  display: block;
  content: "";
  width: calc(100vw / 8);
  max-width: 112px;
  height: 2px;
  background: #666;
  position: absolute;
  top: 3px;
  left: 25px; }
  @media (max-width: 500px) {
    .souki-ato::after {
      left: 15px; } }

.normal-ato::after {
  display: block;
  content: "";
  width: calc(100vw / (100 / 43.25) - 7.5px);
  max-width: 378px;
  height: 2px;
  background: #666;
  position: absolute;
  top: 3px;
  left: 25px; }
  @media (max-width: 500px) {
    .normal-ato::after {
      left: 15px;
      width: calc(100vw / (100 / 43.25) - 21.5px); } }

.other-ato::after {
  display: block;
  content: "";
  width: calc(100vw / (100 / 18.75) - 7.5px );
  max-width: 155px;
  height: 2px;
  background: #666;
  position: absolute;
  top: 3px;
  left: 25px; }
  @media (max-width: 500px) {
    .other-ato::after {
      left: 15px; } }

.end-point::before, .end-point_left10::before {
  display: block;
  font-family: "Font Awesome 5 Free";
  content: '\f105';
  font-weight: 600;
  font-size: 16px;
  position: absolute;
  top: -4px;
  left: 18px; }

.sp-visible {
  display: none; }
  @media (max-width: 500px) {
    .sp-visible {
      display: block; } }

@media (max-width: 500px) {
  .end-point_left10::before {
    left: 10px; } }

.bg-blue30 {
  background: rgba(29, 124, 210, 0.3); }

.bg-blue50 {
  background: rgba(29, 124, 210, 0.5); }

.bg-blue70 {
  background: rgba(29, 124, 210, 0.7); }

.bg-blue100 {
  background: #1d7cd2; }

.bg-white {
  background: #fff; }

.bg-gray {
  background: #f7f7f7;
  font-weight: bold; }

.bg-red::after, .bg-red::before {
  background: #f13256; }

.bg-title {
  background: #f8ece5; }

.bg-yellow {
  background: #fffce1; }

.color-red {
  color: #f13256; }

.color-gray {
  color: #666; }

.font-bold {
  font-weight: bold; }

.h100 {
  height: 100px; }

.w860 {
  max-width: 860px;
  width: 100%;
  margin: 20px auto 0px; }

.w_sub-pd20 {
  padding: 20px; }

/*********************
明細発行日などのイメージ図
*********************/
.Mcycle-box {
  width: 100%;
  display: inline-flex;
  margin-bottom: 20px;
  position: relative;
  z-index: 0; }
  .Mcycle-box::after {
    content: "";
    border-left: 3px solid #2586DB;
    position: absolute;
    left: 50%;
    bottom: -17px;
    height: 100%;
    z-index: -1; }
  .Mcycle-box::before {
    content: "";
    position: absolute;
    left: calc(50% - 4.5px);
    bottom: -20px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 6px 0 6px;
    border-color: #2586db transparent transparent transparent; }

.Mcycle-box-center {
  box-sizing: border-box;
  width: 80px;
  background: #2586DB;
  color: #fff;
  border-radius: 10px;
  font-weight: 600;
  text-align: center;
  padding: 9px;
  margin: 0 30px;
  max-height: 45px; }
  @media (max-width: 500px) {
    .Mcycle-box-center {
      width: 60px;
      height: 33px;
      padding: 5px;
      font-size: 14px;
      margin: 0 10px;
      border-radius: 7px; } }

.Mcycle-box-side {
  box-sizing: border-box;
  width: calc(100% / 2 - 70px);
  padding: 10px; }
  @media (max-width: 500px) {
    .Mcycle-box-side {
      width: calc(100% / 2 - 40px);
      padding: 10px 0px; } }
  .Mcycle-box-side dl {
    display: flex;
    width: 100%;
    line-height: 1.5em; }
    @media (max-width: 500px) {
      .Mcycle-box-side dl {
        display: block; } }
  .Mcycle-box-side dl dt {
    font-weight: bold;
    margin-right: 20px;
    width: 40px; }
    @media (max-width: 500px) {
      .Mcycle-box-side dl dt {
        width: 100%; } }
  .Mcycle-box-side dl dd {
    font-weight: normal;
    width: calc(100% - 60px);
    font-weight: 500; }
    @media (max-width: 500px) {
      .Mcycle-box-side dl dd {
        width: 100%;
        font-size: 14px; } }
  .Mcycle-box-side dl dd p {
    font-size: 12px;
    color: #888;
    line-height: 1.5em;
    padding-top: 10px;
    box-sizing: border-box; }
  .Mcycle-box-side .border {
    border-top: 1px solid #ccc;
    margin: 15px 0px;
    width: 100%; }
  .Mcycle-box-side .side-n {
    display: flex;
    width: 100%; }
    @media (max-width: 980px) {
      .Mcycle-box-side .side-n {
        display: block; } }
    .Mcycle-box-side .side-n .side-n1 {
      width: calc(100% / 2 - 5px);
      margin-right: 5px; }
      @media (max-width: 980px) {
        .Mcycle-box-side .side-n .side-n1 {
          width: 100%;
          margin-right: 0px; } }
    .Mcycle-box-side .side-n .side-n2 {
      width: calc(100% / 2 - 5px);
      margin-left: 5px; }
      @media (max-width: 980px) {
        .Mcycle-box-side .side-n .side-n2 {
          width: 100%;
          margin-left: 0px;
          margin-top: 15px; } }
  .Mcycle-box-side .side-n-title {
    font-size: 12px;
    color: #888;
    text-align: center;
    padding: 2px 5px;
    background: #e1e1e1;
    margin-bottom: 5px;
    border-radius: 5px; }

.Mcycle-box-side-gray {
  border-top: 2px solid #888888; }
  .Mcycle-box-side-gray dl, .Mcycle-box-side-gray dl dt, .Mcycle-box-side-gray dl dd {
    color: #888; }

.Mcycle-box-side-blue {
  border-top: 2px solid #2586DB; }
  .Mcycle-box-side-blue span {
    background: #FFFA5E; }
  .Mcycle-box-side-blue dl, .Mcycle-box-side-blue dl dt, .Mcycle-box-side-blue dl dd {
    color: #2586DB; }

.Mcycle-box-title-box {
  width: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center; }

.Mcycle-box-title {
  width: calc(100% / 2);
  max-width: 200px;
  text-align: center;
  position: relative;
  display: inline-block;
  margin: 1.5em 35px 1.5em 0;
  padding: 7px 10px;
  color: #888;
  font-size: 16px;
  background: #FFF;
  border: solid 2px #EFEFEF;
  box-sizing: border-box;
  border-radius: 15px;
  font-weight: 600; }
  @media (max-width: 500px) {
    .Mcycle-box-title {
      font-size: 14px;
      margin: 1.5em 20px 1.5em 0;
      padding: 7px 0px; } }
  .Mcycle-box-title:before {
    content: "";
    position: absolute;
    bottom: -24px;
    left: 50%;
    margin-left: -15px;
    border: 12px solid transparent;
    border-top: 12px solid #FFF;
    z-index: 2; }
  .Mcycle-box-title:after {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 50%;
    margin-left: -17px;
    border: 14px solid transparent;
    border-top: 14px solid #EFEFEF;
    z-index: 1; }
  .Mcycle-box-title p {
    margin: 0;
    padding: 0; }

.Mcycle-box-title-blue {
  background: #E5F1FC;
  color: #2586DB;
  border: solid 2px #fff;
  margin: 1.5em 0 1.5em 35px; }
  @media (max-width: 500px) {
    .Mcycle-box-title-blue {
      margin: 1.5em 0 1.5em 20px; } }
  .Mcycle-box-title-blue:before {
    border-top: 12px solid #E5F1FC; }
  .Mcycle-box-title-blue:after {
    border-top: 14px solid #fff; }
