@charset "utf-8";
/* CSS Document */

/* ===============================
	mv_common
 =============================== */
#mv_common {
  height: 540px;
  background-image: url(../img/guide/mv_bg.webp);
  margin-top: -138px;
}
#mv_common .mv_img {
  left: -76px;
  bottom: 70px;  
}
#mv_common .title p,
#mv_common .title p span {
  font-size: 25px;
}
@media screen and (max-width: 1136px) {
  #mv_common {
    margin-top: -192px;
  }
}
@media screen and (max-width: 844px) {
  #mv_common {
    margin-top: -192px;
  }
}
@media screen and (max-width: 750px) {
  #mv_common {
    height: 80vw;
    background-image: url(../img/guide/mv_bg_sp.webp);
    margin-top: 0;
  }  
  #mv_common .mv_img {
    width: 22.66666666666667vw;
    left: -11.46666666666667vw;
    bottom: 6.53333333333333vw;
  }
  #mv_common .title p,
  #mv_common .title p span {
    font-size: 4.13333333333333vw;
  }
}

/* ===============================
	guide
 =============================== */
#guide {
  padding-top: 150px;
}
#guide .txt_area {
  margin-left: 8.22222222222222%;
  margin-right: 4.44444444444444%;
}
#guide h3.title {
  font-family: "Zen Kaku Gothic Antique", sans-serif;    
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.923076923076923;
  color: var(--C-green);
  margin-bottom: 16px;
}
#guide h4.title {
  font-family: "Zen Kaku Gothic Antique", sans-serif;    
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.851851851851852;
  margin-bottom: 42px;
}
#guide p {
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 2
}
#guide .guide_img {
  width: 100%;
  min-height: 254px;
  background: url(../img/guide/guide_img.webp) center no-repeat;
  background-size: contain;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 100px;
  padding: 20px;
}
#guide .guide_img span {
  font-family: "Zen Kaku Gothic Antique", sans-serif;    
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.851851851851852;
  color: var(--C-white);
}
@media screen and (max-width: 750px) {
  #guide {
    padding-top: 15.2vw;
  }
  #guide .wrap {
    padding: 0;
  }
  #guide .txt_area {
    margin-left: 9vw;
    margin-right: 9vw;
  }
  #guide h3.title {   
    font-size: 3.46666666666667vw;
    margin-bottom: 0;
  }
  #guide h4.title {
    font-size: 5.2vw;
    letter-spacing: 0;
    white-space: nowrap;
    margin-bottom: 5.6vw;
  }
  #guide p {
    font-size: 3.33333333333333vw;
  }
  #guide .guide_img {
    background-size: cover;
    min-height: 33.86666666666667vw;
    margin-top: 13.33333333333333vw;
  }
  #guide .guide_img span {
    font-size: 4vw;
  }
}

/* ===============================
	flow
 =============================== */
#flow {
  overflow-x: clip;
  margin-top: 28px;
}
#flow h3.title {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0.12em;
  writing-mode: tb;
  color: var(--C-white);
  margin-left: 68px;
  position: relative;
  z-index: +1;
}
#flow h3.title::after {
  content: '';
  width: 394px;
  height: 336px;
  background: url(../img/guide/flow_title_img.svg) center no-repeat;
  background-size: contain;
  display: block;
  position: absolute;
  top: -50%;
  bottom: -50%;
  left: 0;
  right: 0;
  margin: auto;
  z-index: -1;
}
@media screen and (max-width: 750px) {
  #flow {
    margin-top: 3.2vw;
  }
  #flow .wrap {
    overflow: visible;
  }
  #flow h3.title {
    font-size: 4vw;
    margin: auto;
  }
  #flow h3.title::after {
    width: 52.53333333333333vw;
    height: 44.8vw;
  }
}

/* ===============================
	all_flow
 =============================== */
#all_flow {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  background: url(../img/guide/flow_bg.svg) center no-repeat;
  background-size: contain;
  max-width: 770px;
  margin: auto;
  margin-top: -52px;
  padding: 0 10.64935064935065%;
  position: relative;
  z-index: +2;
}
#all_flow li {
  background: var(--C-white);
  width: 52px;
  height: 272px;
  display: flex;
  justify-content: center;
  position: relative;
  padding-top: 50px;
  padding-bottom: 20px;
}
#all_flow li::before {
  content: '';
  width: 44px;
  height: 41px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: block;
  position: absolute;
  top: -20px;
  left: -12px;
}
#all_flow li:nth-child(1)::before {
  background-image: url(../img/guide/num_01.svg);
}
#all_flow li:nth-child(2)::before {
  background-image: url(../img/guide/num_02.svg);
}
#all_flow li:nth-child(3)::before {
  background-image: url(../img/guide/num_03.svg);
}
#all_flow li:nth-child(4)::before {
  background-image: url(../img/guide/num_04.svg);
}
#all_flow li:nth-child(5)::before {
  background-image: url(../img/guide/num_05.svg);
}
#all_flow li:nth-child(6)::before {
  background-image: url(../img/guide/num_06.svg);
}
#all_flow li:nth-child(7)::before {
  background-image: url(../img/guide/num_07.svg);
}
#all_flow li p {
  font-family: "Zen Kaku Gothic Antique", sans-serif;    
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.14em;
  writing-mode: tb;
}
@media screen and (max-width: 930px) {
  #all_flow {
    flex-direction: column;
    align-items: center;
    background-image: url(../img/guide/flow_bg_sp.svg);
    max-width: none;
    height: 107.7333333333333vw;
    margin: auto;
    margin-top: 9.86666666666667vw;
    padding: 7.73333333333333vw 0;
  }
  #flow .wrap {
    padding: 0 6.13333333333333vw;
  }
  #all_flow li {
    width: 69.6vw;
    height: 10.66666666666667vw;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
  }
  #all_flow li::before {
    width: 6.66666666666667vw;
    height: 5.46666666666667vw;
    top: 0;
    bottom: 0;
    left: 2.93333333333333vw;
    margin: auto;
  }
  #all_flow li p { 
    font-size: 3.86666666666667vw;
    writing-mode: inherit;
  }
}

/* ===============================
	flow_detail
 =============================== */
.splide__track:has(#flow_detail) {
  overflow: visible;
}
#flow_detail {
  display: flex;
  flex-direction: column;
  gap: 172px;
  position: relative;
  margin: 134px 20px 164px !important;
}
#flow_detail::after {
  content: '';
  width: 3px;
  height: 100%;
  background: #bddeb0;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: -3;
}
#flow_detail li {
  position: relative;
  display: flex;
  flex-direction: row;
  padding: 58px 50px;
}
#flow_detail .step_7 {
  padding-bottom: 44px;
}
#flow_detail li::before {
  content: '';
  width: 100%;
  height: 100%;
  background: var(--C-white);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: -1;
}
#flow_detail li::after {
  content: '';
  width: calc(100% + (20px * 2));
  height: calc(100% + (20px * 2));
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: -20px;
  bottom: -20px;
  left: -20px;
  right: -20px;
  margin: auto;
  z-index: -2;
}
#flow_detail .step_1::after {
  background-image: url(../img/guide/flow_bg_01.webp);
}
#flow_detail .step_2::after {
  background-image: url(../img/guide/flow_bg_02.webp);
}
#flow_detail .step_3::after {
  background-image: url(../img/guide/flow_bg_03.webp);
}
#flow_detail .step_4::after {
  background-image: url(../img/guide/flow_bg_04.webp);
}
#flow_detail .step_5::after {
  background-image: url(../img/guide/flow_bg_05.webp);
}
#flow_detail .step_6::after {
  background-image: url(../img/guide/flow_bg_06.webp);
}
#flow_detail .step_7::after {
  background-image: url(../img/guide/flow_bg_07.webp);
}
#flow_detail p.title {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: 0.14em;
  writing-mode: tb;
  color: var(--C-green);
  position: relative;
  display: flex;
  align-items: flex-end;
  margin-top: 56px;
  margin-right: 86px;
}
#flow_detail p.title::before {
  content: '';
  width: 63px;
  height: 59px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: -88px;
  left: 0;
  right: 0;
  margin: auto;
}
#flow_detail .step_1 p.title::before {
  background-image: url(../img/guide/flow_num_01.svg);
}
#flow_detail .step_2 p.title::before {
  background-image: url(../img/guide/flow_num_02.svg);
}
#flow_detail .step_3 p.title::before {
  background-image: url(../img/guide/flow_num_03.svg);
}
#flow_detail .step_4 p.title::before {
  background-image: url(../img/guide/flow_num_04.svg);
}
#flow_detail .step_5 p.title::before {
  background-image: url(../img/guide/flow_num_05.svg);
}
#flow_detail .step_6 p.title::before {
  background-image: url(../img/guide/flow_num_06.svg);
}
#flow_detail .step_7 p.title::before {
  background-image: url(../img/guide/flow_num_07.svg);
}
#flow_detail .detail_con {
  position: relative;
  width: calc(100% - 116px);
}
#flow_detail .step_2 .detail_con {
  padding-bottom: 252px;
}
#flow_detail .step_3 .detail_con {
  padding-bottom: 48px;
}
#flow_detail .step_4 .detail_con {
  padding-bottom: 144px;
}
#flow_detail .step_5 .detail_con {
  padding-bottom: 260px;
}
#flow_detail .step_6 .detail_con {
  padding-bottom: 68px;
}
#flow_detail .step_7 .detail_con {
  padding-bottom: 44px;
}
#flow_detail .detail_con h3 {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.95;
  margin-bottom: 24px;
}
#flow_detail .detail_con p {
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 2;
}
#flow_detail .detail_con span {
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 2.153846153846154;
  display: block;
}
#flow_detail .detail_con strong {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.833333333333333;
  text-decoration: underline;
  text-decoration-color: var(--C-green);
  text-underline-offset: 12px;
  display: block;
  margin-top: 24px;
}
#flow_detail .detail_con .list_img {
  max-width: none;
  max-height: none;
  position: absolute;
}
#flow_detail .step_1 .detail_con .list_img {
  bottom: 90px;
  left: -254px;
}
#flow_detail .step_2 .detail_con .list_img {
  bottom: 0;
  right: 0;
}
#flow_detail .step_3 .detail_con .list_img {
  top: -232px;
  right: -210px;
}
#flow_detail .step_4 .detail_con .list_img {
  bottom: -154px;
  right: -10px;
}
#flow_detail .step_5 .detail_con .list_img {
  bottom: 0;
  right: 0;
}
#flow_detail .step_6 .detail_con .list_img {
  top: 0;
  bottom: 0;
  right: -12px;
  margin: auto;
}
#flow_detail .step_7 .detail_con .list_img {
  top: -144px;
  right: -414px;
}
#flow_detail .contact_con {
  background-color: var(--C-green);
  text-align: center;
  padding: 0 16px;
}
#flow_detail .contact_con li {
  flex-direction: column;
  position: relative;
  padding: 28px 0;
}
#flow_detail .contact_con li:nth-child(1) {
  padding-bottom: 0;
}
#flow_detail .contact_con li:nth-child(2) {
  padding-top: 0;
}
#flow_detail .contact_con li:not(:first-child)::after {
  content: '';
  width: 100%;
  height: 2px;
  background: var(--C-white);
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 0;
}
#flow_detail .contact_con li:last-child::after {
  content: none;
}
#flow_detail .contact_con li:first-child p {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--C-white);
}
#flow_detail .contact_con a {
  background: var(--C-white);
  border-radius: 100px;
  width: 294px;
  height: 68px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
}
#flow_detail .contact_con a p {
  font-family: "Zen Kaku Gothic Antique", sans-serif;    
  font-size: 23px;
  font-weight: 700;
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 6px;
}
#flow_detail .contact_con a.tel p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: 700; 
}
#flow_detail .contact_con a p::before {
  content: '';
  width: 34px;
  height: 34px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: inline-block;
}
#flow_detail .contact_con a.tel p::before {
  background-image: url(../img/common/contact_icon_tel.svg);
}
#flow_detail .contact_con a.line p::before {
  background-image: url(../img/common/contact_icon_line.svg);
}
#flow_detail .contact_con a.mail p::before {
  background-image: url(../img/common/contact_icon_mail.svg);
}
#flow_detail .contact_con span {
  font-size: 16px;
  letter-spacing: 0.1em;
  color: var(--C-white);
  display: block;
  margin-top: 4px;
}
@media only screen and (min-width: 750px) and (max-width: 970px) {
  #flow_detail li.step_7 h3 {
    width: calc(100% - (210px + 4%));
  }
}
@media only screen and (min-width: 750px) and (max-width: 940px) {
  #flow_detail li.step_3 h3 {
    width: 78%;
  }
  #flow_detail li.step_6 h3,
  #flow_detail li.step_6 span {
    width: calc(100% - (239px + 2%)); 
  }
}
@media screen and (max-width: 750px) {
  .splide__track:has(#flow_detail) {
    overflow: hidden;
  }
  #flow_detail {
    flex-direction: row;
    gap: 0;
    margin: 12vw 1.86666666666667vw 10.13333333333333vw !important;
  }
  #flow_detail::after {
    content: none;
  }
  #flow_detail li {
    height: 146.4vw;
    flex-direction: column;
    padding: 3.46666666666667vw;
  }
  #flow_detail .step_7 {
    padding-bottom: 3.46666666666667vw;
  }
  #flow_detail li::after {
    width: calc(100% + (1.86666666666667vw * 2));
    height: calc(100% + (1.86666666666667vw * 2));
    top: -1.86666666666667vw;
    bottom: -1.86666666666667vw;
    left: -1.86666666666667vw;
    right: -1.86666666666667vw;
  }
  #flow_detail .step_1::after {
    background-image: url(../img/guide/flow_bg_01_sp.webp);
  }
  #flow_detail .step_2::after {
    background-image: url(../img/guide/flow_bg_02_sp.webp);
  }
  #flow_detail .step_3::after {
    background-image: url(../img/guide/flow_bg_03_sp.webp);
  }
  #flow_detail .step_4::after {
    background-image: url(../img/guide/flow_bg_04_sp.webp);
  }
  #flow_detail .step_5::after {
    background-image: url(../img/guide/flow_bg_05_sp.webp);
  }
  #flow_detail .step_6::after {
    background-image: url(../img/guide/flow_bg_06_sp.webp);
  }
  #flow_detail .step_7::after {
    background-image: url(../img/guide/flow_bg_07_sp.webp);
  }
  #flow_detail p.title {
    font-size: 3.73333333333333vw;
    writing-mode: inherit;
    margin: auto;
    margin-top: 10.66666666666667vw;
    margin-bottom: 2.93333333333333vw;
  }
  #flow_detail p.title::before {
    width: 8.4vw;
    height: 7.86666666666667vw;
    top: -8vw;
  }
  #flow_detail .detail_con {
    width: 100%;
    height: 100%;
  }
  #flow_detail .detail_con h3 {
    font-size: 4vw;
    letter-spacing: 0.04em;
    line-height: 1.833333333333333;
    margin-bottom: 1.86666666666667vw;
    margin-left: 6.4vw;
  }
  #flow_detail .detail_con p,
  #flow_detail .detail_con span {
    font-size: 3.33333333333333vw;
    letter-spacing: 0.05em;
    line-height: 2.04;
    margin-left: 6.4vw;
  }
  #flow_detail .detail_con strong {
    font-size: 4vw;
    letter-spacing: 0.04em;
    text-underline-offset: 1.86666666666667vw;
    margin-top: 1.86666666666667vw;
    margin-left: 6.4vw;
  }
  #flow_detail .detail_con .list_img {
    width: 100%;
    max-width: 100%;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    margin: auto !important;
  }
  #flow_detail .step_1 .detail_con .list_img {
    display: none;
  }
  #flow_detail .contact_con {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    padding: 0 2.66666666666667vw;
  }
  #flow_detail .contact_con li {
    height: auto;
    padding: 3.73333333333333vw 0 3.2vw;
  }
  #flow_detail .contact_con a {
    width: 57.86666666666667vw;
    height: 13.6vw;
  }
  #flow_detail .contact_con a p { 
    font-size: 4.4vw;
    gap: 1.6vw;
  }
  #flow_detail .contact_con li:first-child p {
    font-size: 4vw;
  }
  #flow_detail .contact_con li a.tel p {
    font-size: 4.8vw;
  }
  #flow_detail .detail_con .contact_con p,
  #flow_detail .detail_con .contact_con span {
    margin-left: 0;
  }
  #flow_detail .contact_con a p::before {
    width: 6.66666666666667vw;
    height: 6.66666666666667vw;
  }
  #flow_detail .contact_con span {
    font-size: 2.66666666666667vw;
    margin-top: 1.6vw;
  }
  #flow .splide__arrows {
    width: 100%;
    height: fit-content;    
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: +1;
  }
  #flow .splide__arrow {
    transition: 0.4s;
  }
  #flow .splide__arrow.splide__arrow--prev {
    position: absolute;
    left: -4.53333333333333vw;
  }
  #flow .splide__arrow.splide__arrow--next {
    position: absolute;
    right: -4.53333333333333vw;
  }
  #flow .splide__arrow::before {
    content: '';
    width: 12.26666666666667vw;
    height: 12.26666666666667vw;
    background: url(../img/guide/slide_arrow.svg) center no-repeat;
    background-size: contain;
    display: block;
  }
  #flow .splide__arrow.splide__arrow--prev::before {
    transform: rotate(180deg);
  }
  #flow .splide--slide:has(.step_1.is-active) .splide__arrow--prev,
  #flow .splide--slide:has(.step_7.is-active) .splide__arrow--next {
    opacity: 0;
  }
  #flow .splide__arrow svg {
    display: none;
  }
}