#key .kv {
  height: 110vw;
  background: url("../img/menu/kv.jpg") center/cover;

}
header{
  height: 110vw;
}
@media only screen and (min-width: 768px) {
  header,#key .kv {
    height: 1010px;
  }
}
@media only screen and (max-width: 768px) {
  .logo{
    top: 24vw;
  }
}

.ttl {
  font-size: 8vw;
  letter-spacing: 0.2em;
  position: relative;
}
.ttl span {
  font-size: 3vw;
  letter-spacing: 0.08em;
}
@media only screen and (min-width: 768px) {
  .ttl {
    font-size: 40px;
    line-height: 44px;
  }
  .ttl span {
    font-size: 12px;
  }
}

#sec1 {
  padding: 28vw 0px 16vw;
}
#sec1 h2 {
  height: 64vw;
  font-size: 5vw;
  margin: 0px auto;
  letter-spacing: 0.2em;
  position: relative;
  z-index: 1;
}
#sec1 h2::before {
  content: "";
  position: absolute;
  top: -10vw;
  right: -24%;
  width: 80%;
  height: 25vw;
  background: url("../img/menu/sec1_deco.jpg") center/cover;
  z-index: -1;
}
#sec1 h2 span {
  font-size: 3vw;
  letter-spacing: 0.08em;
  position: relative;
  left: -8px;
}
#sec1 .sec1-txt {
  margin: 6vw 0px 0px;
  letter-spacing: 0;
}
@media only screen and (min-width: 768px) {
  #sec1 {
    padding: 228px 0px 150px;
  }
  #sec1 h2 {
    font-size: 25px;
    line-height: 44px;
    height: 310px;
    position: absolute;
    top: -53px;
    right: 157px;
    margin: 0px;
  }
  #sec1 h2::before {
    width: 148px;
    height: 150px;
    top: -90px;
    right: -62px;
  }
  #sec1 h2 span {
    font-size: 12px;
  }
  #sec1 .sec1-txt {
    height: 390px;
    margin: 0px 0px 0px 218px;
    letter-spacing: 0.1em;
  }
  #sec1 .sec1-txt p:nth-child(2) {
    margin: 0px 32px;
  }
}

#sec2 {
  background: url("../img/shared/bg2.jpg") repeat top center;
  padding: 12vw 0px 16vw;
}
#sec2 h2::before {
  content: "";
  position: absolute;
  left: 0px;
  bottom: -10px;
  width: 150%;
  height: 1px;
  background-color: #000;
}
#sec2 h2 span {
  margin: 0px 0px 0px 6%;
}
#sec2 h3 span {
  margin: 0px 0px 0px 6%;
}
#sec2 .sec2-row1 {
  margin: 12vw 0px;
}
#sec2 .sec2-row1 .sec2-img {
  margin: 0px -6% 8vw;
}
#sec2 .sec2-box2 {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  margin: 8vw -4%;
  width: 108%;
  padding: 6vw 4% 4vw;
}
#sec2 .sec2-box2 .sec2-listtxt {
  font-size: 3.5vw;
  letter-spacing: 0em;
}
#sec2 .sec2-box2 .sec2-listtxt span {
  font-size: 3vw;
}
#sec2 .sec2-box2 .sec2-listtxt .sec2-col {
  width: 50%;
}
#sec2 .sec2-box2 .sec2-listtxt .sec2-col dl dt {
  width: 64%;
}
#sec2 .sec2-box2 .sec2-listtxt .sec2-col dl dd {
  width: 36%;
  align-self: center;
}
#sec2 .sec2-box2 .sec2-txt2 {
  text-align: center;
  margin: 6vw 0px 0px;
}
#sec2 .sec2-box2::before, #sec2 .sec2-box2::after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 98%;
  height: 5vw;
  background: url("../img/menu/sec2_deco2.jpg") center/cover;
  z-index: -1;
}
#sec2 .sec2-box2::before {
  top: 0px;
  background: url("../img/menu/sec2_deco1.jpg") center/cover;
}
@media only screen and (min-width: 768px) {
  #sec2 {
    padding: 132px 0px;
  }
  #sec2 h2 span {
    margin: 0px 13px;
  }
  #sec2 h3 span {
    margin: 0px;
  }
  #sec2 .sec2-row1 {
    margin: 113px 0px 0px;
  }
  #sec2 .sec2-row1 .sec2-img {
    width: 965px;
    margin: 0px 0px 0px -250px;
  }
  #sec2 .sec2-row1 .sec2-box1 {
    width: 390px;
    margin: 0px -174px 45px 0px;
    align-self: end;
  }
  #sec2 .sec2-row1 .sec2-box1 .sec2-txt1 {
    margin: 12px 0px 0px 12px;
  }
  #sec2 .sec2-box2 {
    width: 1033px;
    margin: 56px 0px 0px -16px;
    padding: 61px 100px 24px;
  }
  #sec2 .sec2-box2 .sec2-listtxt {
    font-size: 25px;
    line-height: 65px;
    letter-spacing: 0.2em;
  }
  #sec2 .sec2-box2 .sec2-listtxt span {
    font-size: 17px;
  }
  #sec2 .sec2-box2 .sec2-listtxt .sec2-col {
    width: 370px;
  }
  #sec2 .sec2-box2 .sec2-listtxt .sec2-col dl dt {
    width: 260px;
  }
  #sec2 .sec2-box2 .sec2-listtxt .sec2-col dl dd {
    width: calc(100% - 260px);
  }
  #sec2 .sec2-box2 .sec2-txt2 {
    margin: 19px 0px 0px;
    line-height: 25px;
  }
  #sec2 .sec2-box2::before, #sec2 .sec2-box2::after {
    width: 1033px;
    height: 71px;
  }
}
@media only screen and (min-width: 1000px) and (max-width: 1200px) {
  #sec2 .sec2-row1 .sec2-box1 {
    margin: 0px 16px 45px 0px;
  }
  #sec2 .sec2-row1 .sec2-img {
    margin: 0px 0px 0px -380px;
  }
}
@media only screen and (min-width: 1201px) and (max-width: 1400px) {
  #sec2 .sec2-row1 .sec2-box1 {
    margin: 0px -70px 45px 0px;
  }
  #sec2 .sec2-row1 .sec2-img {
    margin: 0px 0px 0px -320px;
  }
}

#sec3 {
  background: url("../img/shared/bg2.jpg") repeat top center;
  padding: 0px 0px 20vw;
}
#sec3 .sec3-box1 {
  margin: 8vw 0px;
}
#sec3 .sec3-box1 h2 span {
  margin: 0px 0px 0px 6%;
}
#sec3 .sec3-box1 .sec3-txt1 {
  margin: 4vw 0px;
}
#sec3 .sec3-box1 dl {
  font-size: 4.5vw;
  letter-spacing: 0.2em;
}
#sec3 .sec3-box1 dl span {
  font-size: 3vw;
}
#sec3 .sec3-box1 dl dt {
  width: 60%;
}
#sec3 .sec3-box1 dl dd {
  width: 40%;
}
#sec3 .sec3-row2 {
  margin: 16vw 0px 0px;
}
#sec3 .sec3-box2 {
  box-sizing: border-box;
}
#sec3 .sec3-box2 h3 {
  font-size: 7vw;
  margin: 2vw 0px 0px;
}
#sec3 .sec3-box2 h3 span {
  font-size: 3vw;
  margin: 0px 0px 0px 4%;
}
#sec3 .sec3-box2 .sec3-txt2 {
  font-size: 5vw;
  letter-spacing: 0.2em;
  line-height: 1.2;
}
#sec3 .sec3-box2 .sec3-txt2 span {
  font-size: 3vw;
}
#sec3 .sec3-box2 .sec3-txt3 {
  margin: 4vw 0px 12vw;
}
#sec3 .sec3-box2 .sec3-box3 {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  text-align: center;
  padding: 0px 0px 2vw;
}
#sec3 .sec3-box2 .sec3-box3 .sec3-txt4 {
  width: 16%;
  background-color: #fff;
  margin: 0px auto -3vw;
  position: relative;
  top: -4vw;
}
@media only screen and (min-width: 768px) {
  #sec3 {
    padding: 0px 0px 150px;
  }
  #sec3 .sec3-row1 {
    flex-direction: row-reverse;
  }
  #sec3 .sec3-img1 {
    width: 750px;
    margin: 0px -183px 0px 0px;
  }
  #sec3 .sec3-box1 {
    width: 430px;
    margin: 100px 0px 0px -47px;
  }
  #sec3 .sec3-box1 h2 span {
    margin: 0px 0px 0px 40px;
  }
  #sec3 .sec3-box1 .sec3-txt1 {
    margin: 9px 0px 64px;
  }
  #sec3 .sec3-box1 dl {
    font-size: 25px;
    line-height: 45px;
  }
  #sec3 .sec3-box1 dl span {
    font-size: 17px;
  }
  #sec3 .sec3-box1 dl dt {
    width: 270px;
  }
  #sec3 .sec3-box1 dl dd {
    width: calc(100% - 270px);
  }
  #sec3 .sec3-row2 {
    margin: 152px 0px 0px;
  }
  #sec3 .sec3-img2 {
    width: 649px;
    margin: 0px 0px 0px -150px;
  }
  #sec3 .sec3-box2 {
    width: 394px;
    margin: 60px 34px 0px 0px;
  }
  #sec3 .sec3-box2 h3 {
    font-size: 30px;
    margin: 0px 0px 0px 24px;
  }
  #sec3 .sec3-box2 h3 span {
    font-size: 12px;
    margin: 0px 12px 0px 0px;
  }
  #sec3 .sec3-box2 .sec3-txt2 {
    font-size: 25px;
    line-height: 30px;
    margin: 0px 0px 36px 29px;
  }
  #sec3 .sec3-box2 .sec3-txt2 span {
    font-size: 17px;
  }
  #sec3 .sec3-box2 .sec3-txt3 {
    margin: 0px 0px 51px 28px;
  }
  #sec3 .sec3-box2 .sec3-box3 {
    padding: 0px 0px 10px;
  }
  #sec3 .sec3-box2 .sec3-box3 .sec3-txt4 {
    width: 90px;
    top: -18px;
    margin: 0px auto -18px;
  }
}
@media only screen and (min-width: 1000px) and (max-width: 1200px) {
  #sec3 .sec3-box1 {
    margin: 100px 0px 0px 12px;
  }
  #sec3 .sec3-img1 {
    margin: 0px -240px 0px 0px;
  }
}

#sec4 {
  padding: 18vw 0px 12vw;
}
#sec4 h2 {
  text-align: right;
  position: relative;
}
#sec4 h2 span {
  margin: 0px 0px 0px 8%;
}
#sec4 h2::before {
  content: "";
  position: absolute;
  right: 0px;
  bottom: -12px;
  width: 150%;
  height: 1px;
  background-color: #000;
}
#sec4 .sec4-row .sec4-box1 .sec4-txt1 {
  letter-spacing: 0.2em;
  font-size: 6vw;
  line-height: 1.2;
  margin: 3vw 0px 6vw;
}
#sec4 .sec4-row .sec4-box1 .sec4-txt1 span {
  font-size: 5vw;
}
#sec4 .sec4-row .sec4-box1 .sec4-txt1 span span {
  font-size: 3vw;
}
#sec4 .sec4-row1 {
  margin: 16vw 0px 12vw;
}
#sec4 .sec4-row3 {
  margin: 12vw 0px 16vw;
}
#sec4 .sec4-btn {
  background: none;
  border: 2px solid #d3d3d3;
  color: #000;
  padding: 0px 8%;
  width: 70%;
  margin: 0px auto 12vw;
}
#sec4 .sec4-btn i {
  float: right;
  position: relative;
}
#sec4 .sec4-btn i::before {
  content: "+";
  position: absolute;
  top: 0px;
  left: 0px;
  font-size: 18px;
}
#sec4 .sec4-btn:hover {
  color: #fff;
  background-color: #101277;
}
#sec4 .sec4-btn:hover i::before {
  content: "-";
  font-size: 30px;
  line-height: 44px;
}
#sec4 .sec4-bnr {
  width: 90%;
  margin: 0px auto;
  display: block;
}
@media only screen and (min-width: 768px) {
  #sec4 {
    padding: 198px 0px 119px;
  }
  #sec4 h2 span {
    margin: 0px 0px 0px 38px;
  }
  #sec4 .sec4-row .sec4-box1 .sec4-txt1 {
    font-size: 30px;
    line-height: 44px;
    margin: 0px;
  }
  #sec4 .sec4-row .sec4-box1 .sec4-txt1 span {
    font-size: 25px;
  }
  #sec4 .sec4-row .sec4-box1 .sec4-txt1 span span {
    font-size: 17px;
  }
  #sec4 .sec4-row .sec4-box1 .sec4-txt2 {
    margin: 12px 0px 0px;
  }
  #sec4 .sec4-row1 {
    margin: 112px 0px 0px;
  }
  #sec4 .sec4-row1 .sec4-img1 {
    width: 850px;
    margin: 0px 0px 0px -186px;
  }
  #sec4 .sec4-row1 .sec4-box1 {
    margin: 200px -88px 0px 0px;
    width: 372px;
  }
  #sec4 .sec4-row2 {
    flex-direction: row-reverse;
    margin: 50px 0px 46px;
  }
  #sec4 .sec4-row2 .sec4-img2 {
    width: 529px;
    margin: 0px 19px 0px 0px;
  }
  #sec4 .sec4-row2 .sec4-box1 {
    width: 440px;
    margin: 247px 0px 0px 9px;
  }
  #sec4 .sec4-row3 .sec4-img3 {
    width: 528px;
    margin: 0px 0px 0px 22px;
  }
  #sec4 .sec4-row3 .sec4-box1 {
    width: 390px;
    margin: 257px 11px 0px 0px;
  }
  #sec4 .sec4-btn {
    width: 270px;
    margin: 149px auto 80px;
    padding: 0px 45px;
  }
  #sec4 .sec4-bnr {
    width: 602px;
  }
}
@media only screen and (min-width: 1000px) and (max-width: 1200px) {
  #sec4 h2 {
    margin: 0px 24px 0px 0px;
  }
  #sec4 .sec4-row1 .sec4-box1 {
    margin: 200px 12px 0px 0px;
  }
  #sec4 .sec4-row1 .sec4-img1 {
    margin: 0px 0px 0px -280px;
  }
}
.remodal-wrapper:has(> .modal-menu){
  background: #fff;
}
.modal-menu .remodal-close{
  top: -10vw;
  right: -2%;
}
.modal-menu .dis-flex-pc{
  padding: 5vw 2%;
  border: none;
  line-height: 2.5;
}
.modal-menu .col .box{
  margin: 0px 0px 8vw;
}
.modal-menu .col .box .ttl-menu{
  font-size: 15px;
  line-height: 2;
  color: #fff;
  background: #000;
  margin: 0px 0px 2vw;
  font-weight: 600;
}
.modal-menu .col .box dl{
  border-bottom: 1px dashed #000;
}
.modal-menu .col .box dt{
  font-weight: 600;
  text-align: left;
}
.modal-menu .col .box dd{
  text-align: right;
}
@media only screen and (min-width: 768px){
  .modal-menu .remodal-close{
    top: -50px;
    right: 10px;
  }
  .modal-menu .dis-flex-pc{
    padding: 40px 0px;
    max-width: 1000px;
    font-size: 15px;
    line-height: 48px;
  }
  .modal-menu .col{
    width: 480px;
  }
  .modal-menu .col .box{
    margin: 0px 0px 32px;
  }
  .modal-menu .col .box .ttl-menu{
    font-size: 18px;
    line-height: 40px;
    margin: 0px 0px 24px;
  }
  .modal-menu .col .box dt{
    width: calc(100% - 72px);
  }
  .modal-menu .col .box dd{
    width: 80px;
  }
.ttl_menu{
	text-align: center;
    margin-top: 25px;
    font-size: 25px;
  }
}
