@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,700&display=swap');

/** -----------------------------------
メインビジュアル
-------------------------------------**/
#mainvisual{
  width: 100%;
  height: 100svh;
  position: relative;
}
#mainvisual .mv-wrap{
  width: 100%;
  height: 100%;
  display: flex;
  padding: 10px;
  gap: 10px;
  flex-wrap: wrap;
}
#mainvisual .mv-wrap .mainvisual-img{
  height: calc((100% - 10px) / 2);
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
#mainvisual .mv-wrap .mainvisual-img::before{
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #b3e5fc7f;
  background: #b3e5fcb8;
}
#mainvisual .mv-wrap .mainvisual-img:nth-child(1){
  width: calc(60% - (10px * 0.4));
}
#mainvisual .mv-wrap .mainvisual-img:nth-child(2),
#mainvisual .mv-wrap .mainvisual-img:nth-child(3){
  width: calc(20% - (10px * 0.8));
}
#mainvisual .mv-wrap .mainvisual-img:nth-child(4),
#mainvisual .mv-wrap .mainvisual-img:nth-child(6){
  width: calc(25% - (10px * 0.75));
}
#mainvisual .mv-wrap .mainvisual-img:nth-child(5){
  width: calc(50% - (10px * 0.5));
}

#mainvisual .title-wrap{
  position: absolute;
  width: 100%;
  text-align: center;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
#mainvisual .title-wrap p,
#mainvisual .title-wrap span{
  font-size: 2rem;
  color: #333;
  margin-bottom: 1em;
  font-weight: 700;
  line-height: 1.75;
}
#mainvisual .title-wrap span.title{
  display: inline-block;
  font-weight: 700;
  line-height: 1;
  font-size: 6.4rem;
  color: #1666c0;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 10px;
  margin-top: 10px;
  margin-bottom: 0;
}
#mainvisual .title-wrap span.top::before{
  content: "／";
  transform: scale(-1, 1);
  display: inline-block;
}
#mainvisual .title-wrap span.top::after{
  content: "／";
}

/** -------- スマホ -------- **/
@media screen and (max-width: 960px){
  #mainvisual .title-wrap span.title{
    font-size: 5.5rem;
  }
}
@media screen and (max-width: 768px){
  #mainvisual .title-wrap span.title{
    font-size: 4.5rem;
  }
  #mainvisual .title-wrap p,
  #mainvisual .title-wrap span{
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 570px){
  #mainvisual .title-wrap p,
  #mainvisual .title-wrap span{
    font-size: 1.5rem;
    line-height: 1.5;
  }
  #mainvisual .title-wrap span.title{
    font-size: 3.0rem;
    margin-top: 6px;
  }
  #mainvisual .mv-wrap{
    padding: 6px;
    gap: 6px;
  }
  #mainvisual .mv-wrap .mainvisual-img {
    height: calc((100% - 6px) / 2);
    border-radius: 6px;
  }
  #mainvisual .mv-wrap .mainvisual-img:nth-child(1) {
    width: calc(60% - (6px * 0.4));
  }
  #mainvisual .mv-wrap .mainvisual-img:nth-child(2),
  #mainvisual .mv-wrap .mainvisual-img:nth-child(3) {
    width: calc(20% - (6px * 0.8));
  }
  #mainvisual .mv-wrap .mainvisual-img:nth-child(4),
  #mainvisual .mv-wrap .mainvisual-img:nth-child(6) {
    width: calc(25% - (6px * 0.75));
  }
  #mainvisual .mv-wrap .mainvisual-img:nth-child(5) {
    width: calc(50% - (6px * 0.5));
  }
}


/** -----------------------------------
探す
-------------------------------------**/
#search .map-search{
  position: relative;
  margin-bottom: 12rem;
}
#search .map-search img{
  max-width: 45%;
  margin: 20px auto;
}
#search .area-detail{
  padding: 20px;
  border: 2px solid;
  display: inline-block;
  width: 220px;
  border-radius: 12px;
  text-align: center;
  position: absolute;
  z-index: 2;
  background: #fff;
}
#search .area-detail h3{
  margin-bottom: 0.7em;
}
#search .area-detail h3 a{
  text-decoration: underline;
  color: inherit;
  font-weight: 700;
  transition: .2s all;
}
#search .area-detail h3 a:hover{
  opacity: 0.7;
}
#search .area-detail ul{
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 10px;
  text-align: left;
}
#search .area-detail ul li{
  width: calc(50% - 5px);
  font-size: 14px;
  font-weight: 400;
  color: #333;
}
#search .area-detail ul li::before{
  content: "- ";
}

#search .area-detail.western{
  border-color: #3999ce;
  color: #3999ce;
  bottom: 0;
  left: 0;
}
#search .area-detail.central{
  border-color: #ef8e81;
  color: #ef8e81;
  top: 0;
  left: 10%;
}
#search .area-detail.eastern{
  border-color: #f1d267;
  color: #f1d267;
  top: 0;
  right: 4%;
}
#search .area-detail.izu{
  border-color: #77b587;
  color: #77b587;
  bottom: 0;
  right: 0;
}

#search .field-search{
  gap: 12px;
  justify-content: flex-start;
}
#search .field-search .field-item{
  border: 1px solid #eeeeee;
  border-radius: 12px;
  padding: 12px;
  width: calc(33.33% - 8px);
  display: flex;
  align-items: center;
  gap: 25px;
  position: relative;
  transition: .2s all;
}
#search .field-search .field-item:hover{
  border-color: #4fc3f7;
}

#search .field-search .field-item::after{
  position: absolute;
  content: "";
  right: 18px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid;
  border-right: 1.5px solid;
  transform: translateY(-50%) rotate(45deg);
  transition: .2s all;
}
#search .field-search .field-item:hover::after{
  border-color: #4fc3f7;
  right: 15px;
}

#search .field-search .field-item .icon{
  width: 64px;
  height: 64px;
  background: #fafafa;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: .2s all;
}
#search .field-search .field-item:hover .icon{
  background: rgba(79, 195, 247, 0.1);
}
#search .field-search .field-item .icon img{
  width: 30px;
  height: 30px;
}
#search .field-search .field-item h3{
  font-size: 16px;
  font-weight: 500;
  text-align: left;
  transition: .2s all;
}
#search .field-search .field-item:hover h3{
  color: #4fc3f7;
}

/** -------- スマホ -------- **/
@media screen and (max-width: 960px){
  #search .map-search img{
    padding: 5rem 0;
  }
  #search .area-detail{
    width: 190px;
  }
  #search .field-search .field-item{
    width: calc(50% - 6px);
  }
}
@media screen and (max-width: 768px){
  #search .map-search{
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
  }
  #search .map-search img{
    width: 100%;
    max-width: 100%;
    margin: 0 0 3rem;
    padding: 0 10vw;
  }
  #search .area-detail{
    position: relative;
    width: calc(50% - 0.6rem);
    top: 0!important;
    left: 0!important;
    right: 0!important;
    bottom: 0!important;
  }
  #search .field-search .field-item{
    gap: 10px;
  }
  #search .field-search .field-item h3{
    font-size: 14px;
  }
  #search .field-search .field-item .icon{
    width: 50px;
    height: 50px;
  }
  #search .field-search .field-item .icon img {
    width: 25px;
    height: 25px;
  }
}
@media screen and (max-width: 570px){
  #search .area-detail{
    padding: 10px 15px 15px;
  }
  #search .area-detail h3{
    margin-bottom: 0.4em;
  }
  #search .area-detail ul{
    gap: 2px;
  }
  #search .area-detail ul li{
    width: 100%;
  }
  #search .map-search{
    margin-bottom: 6rem;
  }
  #search .field-search .field-item{
    width: 100%;
  }
  #search .field-search .field-item .icon{
    width: 40px;
    height: 40px;
  }
  #search .field-search .field-item h3{
    font-size: 15px;
  }
}


/** -----------------------------------
まずはご相談ください
-------------------------------------**/
#consultation{
  text-align: center;
}
#consultation .section-title{
  display: inline-block;
  font-size: 4.8rem;
  line-height: 1.5;
  margin-bottom: 0.8em;
  background: linear-gradient(90deg, rgb(23, 45, 169), rgb(155, 216, 241));
  background: -webkit-linear-gradient(0deg, rgb(23, 45, 169), rgb(155, 216, 241));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
#consultation .balloon-wrap{
  position: relative;
}
#consultation .balloon-wrap .title-balloon{
  display: inline-block;
  border-radius: 5rem;
  font-weight: 500;
  padding: 0.5rem 2rem;
  margin-bottom: 2rem;
  font-size: 2rem;
  position: relative;
  z-index: 2;
}
#consultation .balloon-wrap .title-balloon_after{
  position: absolute;
  width: 2rem;
  height: 2rem;
  background: linear-gradient(90deg, rgb(23, 45, 169), rgb(155, 216, 241));
  bottom: 0.5rem;
  left: 50%;
  transform: rotate(45deg) translateX(-50%);
  transform-origin: center;
}
#consultation .flex-container{
  margin-top: 8rem;
}
#consultation .flex-item.img{
  width: 25%;
}
#consultation .flex-item.img .title{
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 2rem;
}
#consultation .flex-item.img .img-box{
  height: 15rem;
}
#consultation .flex-item.img .img-box img{
  object-fit: contain;
}
#consultation .flex-item.text{
  width: 75%;
  padding-bottom: 4rem;
}
#consultation .flex-item.text .swiper-wrapper .swiper-slide{
  background-color: #fff;
  font-weight: 500;
  padding: 2rem;
  border-radius: 1rem;
  text-align: left;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
#consultation .swiper-pagination{
  display: flex;
  align-items: center;
  justify-content: center;
}
#consultation .swiper-pagination-bullet{
  width: 0.5rem;
  height: 0.5rem;
  margin: 0 0.5rem;
}
#consultation .swiper-pagination-bullet-active{
  background: rgba(236, 159, 24, 0.9);
  width: 1.0rem;
  height: 1.0rem;
}

#consultation .onecoin-area{
  margin-top: 8rem;
}
#consultation .onecoin-area p{
  position: relative;
  font-weight: 600;
  margin-bottom: 0.5em;
  display: inline-block;
}
#consultation .onecoin-area p::before,
#consultation .onecoin-area p::after{
  content: "";
  position: absolute;
  width: 1px;
  height: 2rem;
  background-color: #424242;
  top: 48%;
}
#consultation .onecoin-area p::before{
  transform: rotate(-35deg) translateY(-50%);
  left: -0.5rem;
}
#consultation .onecoin-area p::after{
  transform: rotate(35deg) translateY(-50%);
}

/** -------- スマホ -------- **/
@media screen and (max-width: 960px){
}
@media screen and (max-width: 768px){
  #consultation .section-title{
    font-size: clamp(20px,6vw,48px);
  }
  #consultation .flex-item.text{
    width: 65%;
  }
  #consultation .flex-item.img{
    width: 35%;
    padding-right: 2rem;
  }
  #consultation .balloon-wrap .title-balloon{
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 570px){
  #consultation .top-text{
    font-size: 3.6vw;
  }
  #consultation .balloon-wrap .title-balloon{
    font-size: 1.6rem;
  }
  #consultation .flex-container{
    margin-top: 4rem;
  }
  #consultation .flex-item.img{
    width: 100%;
  }
  #consultation .flex-item.img .img-box{
    height: 12rem;
  }
  #consultation .flex-item.text{
    width: 100%;
  }
  #consultation .onecoin-area{
    margin-top: 4rem;
  }
}

/** -----------------------------------
特徴
-------------------------------------**/
#features{
  background: #e1f5fe;
  overflow: hidden;
}
#features .section-inner{
  max-width: 1200px;
}

#features .section-subtitle{
  color: #29b6f7;
  font-weight: 700;
  font-family: "Raleway", sans-serif;
  text-align: center;
  font-size: 2rem;
  letter-spacing: 0.02em;
}
#features .section-title{
  font-weight: 700;
  text-align: center;
  font-size: 3.2rem;
  margin-bottom: 2.5em;
}

#features .flex-container{
  align-items: center;
  position: relative;
  z-index: 1;
}
#features .flex-container:not(:last-of-type){
  margin-bottom: 15rem;
}
#features .flex-container::after{
  position: absolute;
  content: "";
  width: 100%;
  height: 90%;
  background: #fff;
  border-radius: 12px;
  z-index: -1;
  bottom: -5rem;
  left: -7.5vw;
}
#features .flex-container:nth-child(2n)::after{
  left: auto;
  right: -9.5vw;
}

#features .flex-container .text-area{
  width: calc(50% - 20px);
  position: relative;
  padding-top: 130px;
  padding-left: 40px;
}
#features .flex-container .text-area .number{
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 12rem;
  line-height: 1;
  color: #b3e5fc;
  position: absolute;
  top: 0;
  left: 0;
  text-shadow: #fff 7px 7px;
}

#features .flex-container .text-area h3{
  margin-bottom: 1em;
}
#features .flex-container .text-area h3 span{
  font-size: clamp(2rem,2.5vw,2.8rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.75;
  position: relative;
  z-index: 2;
}
#features .flex-container .text-area h3 span::after{
  position: absolute;
  content: "";
  background: rgba(179, 229, 252, 0.57);
  width: 100%;
  height: 0.5em;
  z-index: -1;
  left: 0;
  bottom: -3px;
}
#features .flex-container .text-area p{
  color: #5d5d5d;
}
#features .flex-container .img-area{
  width: calc(50% - 20px);
}
#features .flex-container .img-area img{
  object-fit: contain;
  height: auto;
  width: 75%;
  margin: 0 auto;
}
#features .flex-container .img-area.twoItem img{
  margin-left: 0;
  width: 60%;
  border-radius: 12px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
#features .flex-container .img-area.twoItem img:last-of-type{
  margin-right: 0;
  margin-left: auto;
  margin-top: -3rem;
}

@media screen and (max-width: 960px){
  #features .flex-container:not(:last-of-type){
    margin-bottom: 10rem;
  }
  #features .flex-container:not(:nth-of-type(2)){
    flex-direction: column-reverse;
  }
  #features .flex-container .text-area{
    width: 100%;
    padding-left: 20px;
    padding-right: 40px;
    font-size: 1.5rem;
    padding-top: 110px;
    margin-bottom: 4rem;
  }
  #features .flex-container .text-area .number{
    font-size: 10rem;
  }
  #features .flex-container .text-area h3 span{
    font-size: 2.5rem;
  }
  #features .flex-container .img-area{
    width: 50%;
    position: absolute;
    top: 0;
    right: -1.5rem;
    min-width: 20rem;
    max-width: 40rem;
  }
  #features .flex-container .img-area img{
    margin-right: 0;
    width: 60%;
  }
  #features .flex-container .img-area.twoItem img{
    width: 52%;
  }
  #features .flex-container .img-area.twoItem img:last-of-type{
    margin-top: -7rem;
  }
  #features .flex-container::after{
    width: 100vw;
    height: 85%;
    bottom: 0;
  }
  #features .flex-container:nth-child(2n)::after{
    right: -7.5vw;
  }
}
@media screen and (max-width: 768px){
  #features .section-title{
    font-size: 2.4rem;
  }
  #features .section-subtitle{
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 570px){
  #features .section-title{
    font-size: 2rem;
  }
  #features .section-subtitle{
    font-size: 1.6rem;
  }
  #features .flex-container::after{
    bottom: 10px;
  }
  #features .flex-container .text-area{
    padding-left: 0;
    padding-right: 10px;
    padding-top: 85px;
  }
  #features .flex-container:nth-of-type(2) .text-area{
    padding-left: 10px;
    padding-right: 0;
  }
  #features .flex-container .text-area .number{
    font-size: 7rem;
  }
  #features .flex-container:not(:nth-of-type(2)) .text-area .number{
    left: -1rem;
  }
  #features .flex-container .text-area h3 span{
    font-size: 2rem;
  }
  #features .flex-container .img-area{
    width: 65%;
    top: -1.5rem;
    right: 0;
    max-width: 26rem;
  }
  #features .flex-container .img-area.twoItem img:last-of-type{
    margin-top: -5rem;
  }
  #features .flex-container:not(:last-of-type) {
        margin-bottom: 6rem;
    }
}












/* contact */
#contact table{
  max-width: 800px;
  width: 100%;
  margin: 8rem auto 0;
  line-height: 2.14;
  text-align: left;
  border-spacing: 0 3rem;
}
#contact table td.top{
  vertical-align: top;
}
#contact table input,
#contact table textarea,
#contact table select,
#contact table date{
  font-size: 1.4rem;
  width: 100%;
  padding: 0.8rem;
  border: 2px solid #fff;
  background: #fff;
  border-radius: 1rem;
}
#contact table input:focus,
#contact table textarea:focus,
#contact table select:focus{
  border: 2px solid #f66500;
  outline: 0;
}
#contact table input[name="tel"],
#contact table input[name="date"],
#contact table select[name="time"],
#contact table select[name="people"]{
  width: 40%;
}
#contact table textarea{
  height: 18rem;
  resize: none;
}
#contact input[type="radio"] {
  position: relative;
  width: 16px;
  height: 20px;
  border-radius: 50%;
  vertical-align: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  top: 2px;
  margin-right: 1rem;
}
#contact input[type="radio"]:focus{
  border: 2px solid #fff;
}
#contact input[type="radio"]:checked:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #f66500;
  content: '';
}
#contact .radio{
  width: 100%;
  margin-bottom: 1rem;
}
#contact .radio label{
  width: 30%;
  display: inline-block;
}
#contact table td.title{
  width: 30%;
  padding-right: 20px;
  vertical-align: top;
}
#contact table .label{
  display: inline-block;
  text-align: center;
  width: 5rem;
  background-color: #888;
  padding: .2rem;
  color: #fff;
  font-size: 1.4rem;
  margin-left: 1rem;
  line-height: 1.4;
}
#contact table .label.essential{
  background-color: #f66500;
  border-radius: 5px;
}


/** -------- スマホ -------- **/
@media screen and (max-width: 768px){
  #contact{
    font-size: 1.4rem;
  }
  #contact table{
    margin-top: 2rem;
  }
  #contact table .label{
    width: 4.3rem;
    padding: .2rem;
    font-size: 1.3rem;
    line-height: 1.3;
  }
  #contact table th,
  #contact table td,
  #contact table td.title{
    display: block;
    width: 100%;
  }
  #contact table td.title{
    padding-bottom: 0.5rem;
  }
  #contact table input,
  #contact table textarea,
  #contact table select,
  #contact table date{
    padding: 0.4rem 0.8rem;
  }
}
@media screen and (max-width: 570px){
  #contact .radio label{
    width: 48%;
  }
}
