#header .black {
  display: block !important;
}

#header .white {
  display: none !important;
}

main img {
  width: 100%;
}

.web_font2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  letter-spacing: 0.15em
}

.web_font3 {
  font-family: 'Roboto', sans-serif;
  font-style: italic;
}

.border {
  border-bottom: 1px dashed #cdcdd2
}

.border2 {
  border-bottom: 1px dashed #03071f
}

.border3 {
  border-bottom: 1px solid #cdcdd2
}

.border4 {
  border-bottom: 1px solid #03071f
}

.border5 {
  border-bottom: 2px solid #03071f
}

.bg_dot {
  background: url("../common/images/bg_dot.png") left top repeat;
  background-size: 5px 5px
}

.ttl_style_mini {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  line-height: 1;
  margin-bottom: 45px;
  text-transform: uppercase;
  margin-bottom: 30px;
  font-size: 1.2rem
}

.ttl_style_mini span {
  font-size: 2.3rem;
  margin-right: 10px;
  letter-spacing: 0.12em;
  line-height: 1
}

.mini_mini_txt_style {
  font-size: 1.0rem;
  line-height: 1.5
}


/*------------------------------------------------------------
Mv_area
------------------------------------------------------------*/
#Mv_area {
  position: relative;
}

#Mv_area h1 {
  position: absolute;
  top: 30px;
  left: 0;
  right: 0;
  margin: auto;
  width: 87%;
  z-index: 2;
}

#Mv_area .swiper-container-mv {
  position: relative;
}

#Mv_area .swiper-pagination-mv {
  position: absolute;
  bottom: 20px !important;
  text-align: center;
  z-index: 1;
}

#Mv_area .swiper-pagination-mv .swiper-pagination-bullet {
  background-color: #03071f;
  opacity: 1 !important;
  margin: 0 9px !important;
}

#Mv_area .swiper-pagination-mv .swiper-pagination-bullet-active {
  background-color: #f64077;
  position: relative;
}

#Mv_area .swiper-pagination-mv .swiper-pagination-bullet-active::before {
  display: block;
  content: "";
  width: 14px;
  height: 14px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #f64077;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -7px;
  margin-top: -7px;
  border-radius: 100px;
}

/*------------------------------------------------------------
pickup swiper
------------------------------------------------------------*/
.swiper-pagination-graduation-pickup {
  position: absolute;
  bottom: -50px !important;
  text-align: center;
}
.swiper-pagination-graduation-pickup .swiper-pagination-bullet {
  background-color: #03071f;
  opacity: 1 !important;
  margin: 0 9px !important;
}

.swiper-pagination-graduation-pickup .swiper-pagination-bullet-active {
  background-color: #f64077;
  position: relative;
}

.swiper-pagination-graduation-pickup .swiper-pagination-bullet-active::before {
  display: block;
  content: "";
  width: 14px;
  height: 14px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #f64077;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -7px;
  margin-top: -7px;
  border-radius: 100px;
}

/*------------------------------------------------------------
page_in_link_nav_style2
------------------------------------------------------------*/
.page_in_link_nav_style2 {
  background-color: #03071f;
  box-sizing: border-box;
  padding: 15px;
  width: 100%;
}

.page_in_link_nav_style2 .wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  position: relative;
}

.page_in_link_nav_style2 .wrap:before {
  display: block;
  content: '';
  width: 3px;
  height: 100%;
  background: url(../common/images/dot_line_tate_w.png) top repeat-y;
  background-size: 3px 218px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -2px;
  opacity: .6;
}

.page_in_link_nav_style2 .wrap:after {
  display: block;
  content: '';
  width: 100%;
  height: 3px;
  background: url(../common/images/dot_line_yoko_w.png) top repeat-x;
  background-size: 216px 3px;
  position: absolute;
  top: 50%;
  left: 0;
  opacity: .6;
}

.page_in_link_nav_style2 li {
  width: calc((100% / 2) - 15px);
}

.page_in_link_nav_style2 li a {
  color: #fff;
}

.page_in_link_nav_style2 dl {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
}

.page_in_link_nav_style2 dl::after {
  display: block;
  content: '';
  width: 10px;
  height: 6px;
  background: url(../common/images/icon_arrow_down_w.png) top repeat-y;
  background-size: 10px 6px;
  position: absolute;
  top: 50%;
  right: 0;
  margin-top: -3px;
}

.page_in_link_nav_style2 dt img {
  width: auto;
}

.page_in_link_nav_style2 dd {
  line-height: 1.2;
}

@media screen and (max-width: 370px) {
  .page_in_link_nav_style2 dl {
    gap: 8px;
  }

  .page_in_link_nav_style2 dd {
    font-size: 1.2rem;
  }
}

/*------------------------------------------------------------
Lead_area
------------------------------------------------------------*/
#Lead_area {
  padding: 50px 0 45px;
}

#Lead_area .box_nanameline_style {
  padding: 30px 20px;
  text-align: center;
}

#Lead_area .ttl {
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 2.8rem;
  margin-bottom: 25px;
  letter-spacing: 0.1em;
  line-height: 1;
}

#Lead_area .ttl+.txt {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 10px;
}

#Lead_area .plan-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 5px;
  margin-top: 20px;
  margin-left: -4px;
  margin-bottom: 5px;
  width: calc(100% + 8px);
}

#Lead_area .plan-list li {
  border: solid 1px #000;
  border-radius: 50%;
  display: grid;
  grid-template-rows: 15px 1fr;
  align-items: center;
  justify-content: center;
  place-items: center;
  aspect-ratio: 1 / 1;
  width: calc(25% - 4px);
  padding: 7px 0 4px;
  position: relative;
}

#Lead_area .plan-list li .num {
  width: 15px;
}

#Lead_area .plan-list li .num img {
  height: 100%;
}

#Lead_area .plan-list li .item {
  flex: 1;
  display: flex;
  align-items: center;
  line-height: 1.2;
  font-size: 1.15rem;
}

#Lead_area .plan-list li .caution {
  position: absolute;
  top: 16px;
  right: 12px;
  font-size: 8px;
}

/*------------------------------------------------------------
Search_area
------------------------------------------------------------*/
#Search_area {
  padding: 60px 0 45px;
}

#Search_area .search_wrapper {
  border: solid 1px #03071f;
  box-shadow: 4px 4px 0 0 #03071f;
  padding: 20px;
}

#Search_area .search_wrapper .head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 15px;
}

#Search_area .search_wrapper .head img {
  width: 18px;
  height: 20px;
}

#Search_area .search_wrapper .acc_wrap {
  border-top: solid 1.5px #03071f;
}

#Search_area .search_wrapper .acc_btn {
  font-size: 1.0rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
}

#Search_area .search_wrapper .acc_btn .web_font2 {
  padding-right: 14px;
  font-size: 1.2rem;
}

#Search_area .search_wrapper .acc_btn::before,
#Search_area .search_wrapper .acc_btn::after {
  content: none;
}

#Search_area .search_wrapper .acc_btn .icon {
  background-color: #03071f;
  position: relative;
  width: 24px;
  height: 24px;
}

#Search_area .search_wrapper .acc_btn .icon::before,
#Search_area .search_wrapper .acc_btn .icon::after {
  content: '';
  background-color: #fff;
  width: 60%;
  height: 2px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

#Search_area .search_wrapper .acc_btn .icon::after {
  transform: rotate(90deg);
}

#Search_area .search_wrapper .acc_btn.open .icon::after {
  transform: rotate(0deg);
}

#Search_area .search_wrapper .acc_box ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 20px;
}

#Search_area .search_wrapper .acc_box:not(.category) ul {
  gap: 10px 7px;
}

#Search_area .search_wrapper .acc_box a {
  background-color: #f6f3f4;
  border-radius: 100px;
  padding: 5px 10px;
  font-weight: 700;
}

#Search_area .search_wrapper .acc_box li.active a {
  background-color: #03071f;
  color: #fff;
}

/*------------------------------------------------------------
Reason_area
------------------------------------------------------------*/
#Reason_area {
  margin-bottom: 60px;
}

#Reason_area .ttl-img {
  text-align: center;
}

#Reason_area .ttl-img img {
  width: 188px;
}

#Reason_area .cat_list_wrap {
  padding-top: 30px;
  position: relative;
}

#Reason_area .list {
  position: relative;
}

#Reason_area .list::after {
  content: '';
  background-size: 58px 51px;
  background-repeat: no-repeat;
  display: block;
  position: absolute;
  top: -20px;
  left: 12.6%;
  z-index: 20;
  width: 58px;
  height: 51px;
}

#Reason_area .list.num1::after {
  background-image: url(../images/num_slide01.webp);
}

#Reason_area .list.num2::after {
  background-image: url(../images/num_slide02.webp);
}

#Reason_area .list.num3::after {
  background-image: url(../images/num_slide03.webp);
}

#Reason_area .list.num4::after {
  background-image: url(../images/num_slide04.webp);
}

#Reason_area .list.num5::after {
  background-image: url(../images/num_slide05.webp);
}

#Reason_area .cat_list_wrap .list_inner {
  padding: 0 33px;
}

#Reason_area .cat_list_wrap .thumb {
  width: 100%;
  margin-bottom: 18px;
}

#Reason_area .cat_list_wrap .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#Reason_area .cat_list_wrap .ttl {
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 24px;
}

#Reason_area .cat_list_wrap small {
  display: inline-block;
  font-size: 1rem;
}

#Reason_area .cat_list_wrap .swiper-button-prev,
#Reason_area .cat_list_wrap .swiper-button-next {
  width: 25px;
  height: 50px;
  margin-top: 0;
  top: auto;
  bottom: 150px;
}

#Reason_area .cat_list_wrap .swiper-button-prev {
  left: 0;
}

#Reason_area .cat_list_wrap .swiper-button-next {
  right: 0;
}

#Reason_area .cat_list_wrap .swiper-button-prev::after {
  background: url(../images/btn_slide_left_sp.webp) left top no-repeat;
  background-size: 25px 50px;
}

#Reason_area .cat_list_wrap .swiper-button-next::after {
  background: url(../images/btn_slide_right_sp.webp) left top no-repeat;
  background-size: 25px 50px;
}

/*------------------------------------------------------------
Hakama_area
------------------------------------------------------------*/
#Hakama_area {
  margin-bottom: 60px;
}

#Hakama_area .ttl_style span {
  font-size: 3.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

#Hakama_area .ttl_style strong img {
  width: auto;
  height: 30px;
}

#Hakama_area .ttl_style strong img {
  width: auto;
  height: 30px;
}

#Hakama_area .sec01 .out_wrap {
  padding: 0 0 60px;
  background: url(../common/images/bg_dot.webp) repeat left top;
  background-size: 5px 5px;
}

#Hakama_area .sec01 .swiper-container {
  overflow: inherit;
}

#Hakama_area .sec01 .list {
  position: relative;
}

#Hakama_area .sec01 .list::after {
  content: '';
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50px;
  z-index: -1;
}

#Hakama_area .sec01 .list::before {
  content: '';
  background-size: 58px 51px;
  width: 58px;
  height: 51px;
  position: absolute;
  top: -25px;
  left: 5.3%;
  z-index: 20;
}

#Hakama_area .sec01 .list.num1::before {
  background-image: url(../images/num_slide01.webp);
}

#Hakama_area .sec01 .list.num2::before {
  background-image: url(../images/num_slide02.webp);
}

#Hakama_area .sec01 .list.num3::before {
  background-image: url(../images/num_slide03.webp);
}

#Hakama_area .sec01 .list.num4::before {
  background-image: url(../images/num_slide04.webp);
}

#Hakama_area .sec01 .list.num5::before {
  background-image: url(../images/num_slide05.webp);
}

#Hakama_area .sec01 .list.num6::before {
  background-image: url(../images/num_slide06.webp);
}

#Hakama_area .sec01 .list.num7::before {
  background-image: url(../images/num_slide07.webp);
}

#Hakama_area .sec01 .list a {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#Hakama_area .sec01 .list .img_wrap {
  display: flex;
  align-items: flex-end;
}

#Hakama_area .sec01 .list .big {
  width: 47%;
}

#Hakama_area .sec01 .list .small {
  width: 53%;
}

#Hakama_area .sec01 .list .cate_logo {
  position: absolute;
  top: 0;
  right: 5.5%;
  width: 145px;
  height: auto;
}

#Hakama_area .sec01 .list .txt_wrap {
  padding: 20px 9% 0;
}

#Hakama_area .sec01 .list .txt_wrap .ttl {
  font-size: 1.5rem;
  margin-bottom: 10px;
  text-align: center;
}

#Hakama_area .sec01 .swiper-pagination {
  bottom: -40px !important;
}

#Hakama_area .sec01 .cat_list_wrap .swiper-button-prev,
#Hakama_area .sec01 .cat_list_wrap .swiper-button-next {
  width: 25px;
  height: 50px;
  margin-top: 0;
  top: 340px;
  bottom: auto;
}

#Hakama_area .sec01 .cat_list_wrap .swiper-button-prev {
  left: 0;
}

#Hakama_area .sec01 .cat_list_wrap .swiper-button-next {
  right: 0;
}

#Hakama_area .sec01 .cat_list_wrap .swiper-button-prev::after {
  background: url(../images/btn_slide_left_sp.webp) left top no-repeat;
  background-size: 25px 50px;
}

#Hakama_area .sec01 .cat_list_wrap .swiper-button-next::after {
  background: url(../images/btn_slide_right_sp.webp) left top no-repeat;
  background-size: 25px 50px;
}

#Hakama_area .sec02 {
  margin-top: 40px;
}

#Hakama_area .sec02 .btn {
  margin-top: 80px;
}

/*------------------------------------------------------------
Photo_area
------------------------------------------------------------*/
#Photo_area {
  height: 380px;
  background: url(../hakama_photo/images/bg_photoplan.webp) no-repeat center center / cover;
  position: relative;
  transition: all .15s 0s ease-in-out;
}

#Photo_area .inner {
  height: 100%;
}

#Photo_area a.all {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

#Photo_area .txt_wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: calc(100% - 20px);
  position: relative;
}

#Photo_area img {
  height: auto;
}

#Photo_area .photo01,
#Photo_area .photo02 {
  position: absolute;
  width: 60px;
}

#Photo_area .photo01 {
  top: 165px;
  left: -10px;
}

#Photo_area .photo02 {
  top: 135px;
  right: -10px;
  width: 70px;
}

#Photo_area .btn {
  background: none;
  border: solid 2px #fff;
  position: absolute;
  bottom: 26px;
  left: 0;
  right: 0;
  margin: auto;
}

@media (hover: hover) and (pointer: fine) {
  #Photo_area:hover {
    opacity: 0.8;
  }
}

/*------------------------------------------------------------
Flow_area
------------------------------------------------------------*/
#Flow_area {
  margin-top: 60px;
}

#Flow_area .ttl_style+.txt {
  font-size: 1.4rem;
  text-align: center;
}

#Flow_area .tab_wrapper {
  margin-top: 35px;
}

#Flow_area .tab_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5.3%;
  margin-bottom: 22px;
}

#Flow_area .tab_wrap .tab {
  background-color: #cee8f1;
  cursor: pointer;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 19px;
  position: relative;
  width: calc(50% - 10.6%);
}

#Flow_area .tab_wrap .tab.active {
  background-color: #97d5ec;
}

#Flow_area .tab_wrap .tab+.tab::before {
  content: '';
  background: url(../flow/images/line.png) left top repeat-y;
  background-size: 2px 6px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
  margin: auto;
  width: 2px;
  height: 86%;
}

#Flow_area .tab_contents {
  display: none;
}

#Flow_area .tab_contents.active {
  display: block;
}

#Flow_area .tab_contents ul {
  position: relative;
}

#Flow_area .tab_contents ul::before {
  content: '';
  background: url(../flow/images/line.png) left top repeat-y;
  background-size: 2px 6px;
  height: 100%;
  width: 2px;
  position: absolute;
  top: 0;
  left: 13%;
  z-index: 1;
}

#Flow_area .tab_contents li {
  background-color: #cee8f1;
  display: flex;
  align-items: flex-start;
  position: relative;
}

#Flow_area .tab_contents li::after {
  content: '';
  background-color: #f64077;
  position: absolute;
  top: 0;
  left: 13%;
  margin-left: -9px;
  width: 20px;
  height: 3px;
  z-index: 2;
}

#Flow_area .tab_contents li+li {
  margin-top: 30px;
}

#Flow_area .tab_contents .num {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 13%;
  flex-shrink: 0;
  padding: 20px 0;
  position: relative;
}

#Flow_area .tab_contents .num p {
  width: auto;
  height: 35px;
}

#Flow_area .tab_contents .num p+p {
  width: auto;
  height: 28px;
}

#Flow_area .tab_contents .num img {
  height: 100%;
  object-fit: contain;
}

#Flow_area .tab_contents .wrap {
  padding: 40px 0;
}

#Flow_area .tab_contents .wrap .inner {
  padding: 0 30px;
}

#Flow_area .tab_contents .wrap dt {
  margin: 0 auto 32px;
  width: 170px;
}

#Flow_area .tab_contents .wrap h3 {
  font-size: 1.7rem;
  text-align: center;
  margin-bottom: 22px;
}

#Flow_area .tab_contents .wrap h3+p {
  font-weight: 700;
}

#Flow_area .tab_contents .acc_area {
  border-bottom: solid 2px #03071f;
}

#Flow_area .tab_contents .acc_btn {
  border-top: solid 2px #03071f;
  text-align: center;
  padding: 12px;
}

#Flow_area .tab_contents .acc_box {
  background-color: #fff;
  border-top: solid 2px #03071f;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 20px 10px;
}

#Flow_area .tab_contents .acc_box .btn {
  width: 100%;
}
#Flow_area .tab_contents .acc_box .btn_nowrap {
  margin-top: 10px;
}
#Flow_area .tab_contents .acc_box .btn_nowrap a {
  display: block;
  line-height: 1.2;
}

@media screen and (max-width: 375px) {
  #Flow_area .tab_contents .acc_box {
    padding: 20px 10px;
  }
}


/*------------------------------------------------------------
Graduation_area
------------------------------------------------------------*/
#Graduation_area {
  padding: 60px 0;
}

#Graduation_area .ttl_style+.txt {
  font-size: 1.4rem;
  text-align: center;
  margin-bottom: 30px;
}

/*------------------------------------------------------------
Faq_area
------------------------------------------------------------*/
#Faq_area {
  margin-bottom: 100px;
}

#Faq_area .inner {
  position: relative;
}

#Faq_area .inner::after {
  content: '';
  border-top: dashed 1px #000;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 40px);
  height: 1px;
  z-index: -1;
}

#Faq_area .inner.is-open::after {
  content: none;
}

#Faq_area ul {
  border-bottom: solid 2px #03071f;
}

#Faq_area .acc_btn {
  border-top: solid 2px #03071f;
  padding: 14px 0;
}

#Faq_area .acc_btn span {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
}

#Faq_area .acc_btn span::before {
  content: '';
  background: url(../faq/images/icon_q.png) left top no-repeat;
  background-size: 30px 30px;
  display: block;
  width: 30px;
  height: 30px;
}

#Faq_area .acc_box {
  padding: 0 0 14px;
}

#Faq_area .acc_box span {
  display: block;
  padding: 0 25px 0 40px;
  position: relative;
}

#Faq_area .acc_box span::before {
  content: '';
  background: url(../faq/images/icon_a.png) left top no-repeat;
  background-size: 30px 30px;
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}

#Faq_area .faq_btn {
  background-color: #000;
  border: none;
  border-radius: calc(infinity * 1px);
  color: #fff;
  font-size: 1.2rem;
  display: block;
  margin: 20px auto 0;
  position: relative;
  max-width: 164px;
  width: 100%;
  height: 40px;
}

#Faq_area .faq_btn::after {
  content: '';
  border-bottom: solid 2px #fff;
  border-right: solid 2px #fff;
  position: absolute;
  top: -4px;
  bottom: 0;
  right: 15px;
  transform: rotate(45deg);
  margin: auto;
  width: 8px;
  height: 8px;
}

#Faq_area .faq_btn.is-open::after {
  top: 3px;
  transform: rotate(-135deg);
}

/*------------------------------------------------------------
Shop_area
------------------------------------------------------------*/
#Shop_area {
  margin-bottom: 60px;
}

#Shop_area .bubble {
  position: absolute;
  top: -30px;
  left: 40px;
}

#Shop_area .bubble img {
  width: auto;
}

#Shop_area .shop_list_area .acc_btn dt img {
  width: auto;
}

#Shop_area .shop_text {
  margin-top: 20px;
  font-size: 1.4rem;
  font-weight: 400;
  font-family: 'Noto Sans JP';
  text-align: center;
  letter-spacing: .001em;
}

@media screen and (max-width: 375px) {
  #Shop_area .bubble {
    top: -20px;
  }

  #Shop_area .bubble img {
    width: 80px;
    height: auto;
  }
}
