#key .photo {
   background: url("../img/banquet/key.jpg") no-repeat center top/cover;
}

@media only screen and (min-width: 768px) {
   #key .photo {
      margin-left: 0;
   }
}

.txt {
   text-align: start;
}

@media only screen and (max-width: 767px) {
   .txt br {
      display: none;
   }
}

@media only screen and (min-width: 768px) {
   .txt-c .txt {
      text-align: center;
   }
}

#sec1 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec1 {
      padding: 20vw 0;
   }

   #sec1 h2 {
      font-size: 6vw;
      line-height: 1.5;
      letter-spacing: 0;
   }

   #sec1 h2 span {
      font-size: 8vw;
      letter-spacing: 0.1em;
   }

   #sec1 .price {
      font-size: 8vw;
      line-height: 1.5;
      letter-spacing: 0;
   }

   #sec1 .block1 .txt p {
      padding-top: 4vw;
   }

   #sec1 .block1 figure {
      padding-top: 8vw;
   }

   #sec1 .block1 .list-menu {
      padding-top: 8vw;
   }

   #sec1 .block1 .list-menu .txt-r {
      text-align: center;
   }

   #sec1 .block1 .list-menu .note {
      padding: 2vw 0 8vw;
   }

   #sec1 .block1 .list-menu dl {
      padding-bottom: 15px;
   }

   #sec1 .block1 .list-menu dl+dl {
      padding-top: 15px;
   }

   #sec1 .block1 .list-menu dl dt {
      width: 30%;
      flex: inherit;
   }

   #sec1 .block1 .list-menu dl dd {
      width: 70%;
      text-align: left;
   }

   #sec1 .block2 {
      padding-top: 4vw;
   }

   #sec1 .block2 .col {
      padding-top: 12vw;
   }

   #sec1 .block2 .price {
      text-align: center;
   }

   #sec1 .block2 .price dd {
      font-size: 14px;
   }

   #sec1 .block2 .txt br {
      display: block;
   }

   #sec1 .block2 .txt br.pc {
      display: none;
   }

   #sec1 .block2 figure {
      padding-top: 12vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec1 {
      padding: 110px 0 240px;
   }

   #sec1 .wrap-sp {
      width: 92%;
      margin: 0 auto;
   }

   #sec1 h2 {
      font-size: 30px;
      line-height: 60px;
      letter-spacing: 0;
   }

   #sec1 h2 span {
      font-weight: 800;
   }

   #sec1 .price {
      font-size: 30px;
      line-height: 40px;
      letter-spacing: 0;
   }

   #sec1 .price span {
      font-size: 42px;
   }

   #sec1 .block1 {
      display: flex;
      justify-content: space-between;
      padding-bottom: 133px;
   }

   #sec1 .block1 .col {
      width: 42%;
   }

   #sec1 .block1 .txt {
      padding-top: 30px;
   }

   #sec1 .block1 .txt p+p {
      padding-top: 30px;
   }

   #sec1 .block1 figure {
      max-width: 400px;
      padding-top: 35px;
   }

   #sec1 .block1 .list-menu {
      display: block;
      width: 48.8%;
      padding-top: 280px;
   }
   #sec1 .block1 .list-menu .note {
      font-size: 12px;
      padding: 12px 0 45px;
   }
   #sec1 .block1 .course1 {
	  margin: 0px 0 30px;
      line-height: 2;
	  padding: 1em 1em 1.2em;
      background: #efefef;
   }
	
   #sec1 .course-sub-txt1 {
	  display: inline-block;
	  font-size: 14px;
	  line-height: 1.5;
	  padding-bottom: 20px;
	}
	
	#sec1 .block1 .course-sub-txt2 {
	  padding: 20px 0 0 20px;
	}
   #sec1 .block1 .list-menu dl {
      line-height: 28px;
      padding: 0 0 26px 20px;
   }

   #sec1 .block1 .list-menu dl+dl {
      padding-top: 28px;
   }

   #sec1 .block1 .list-menu dl dt {
      width: 175px;
      flex: inherit;
   }

   #sec1 .block1 .list-menu dl dd {
      width: calc(100% - 175px);
      text-align: left;
   }

   #sec1 .block2 {
      display: flex;
   }

   #sec1 .block2 .box {
      width: 39%;
   }

   #sec1 .block2 .col+.col {
      padding-top: 90px;
   }

   #sec1 .block2 .price {
      display: flex;
      align-items: baseline;
      flex-wrap: wrap;
      gap: 7px;
   }

   #sec1 .block2 .price dd {
      font-size: 12px;
   }

   #sec1 .block2 .txt {
      width: 90%;
      padding-top: 33px;
   }
   #sec1 .block2 .txt2 {
      width: 90%;
      padding-top: 20px;
   }

   #sec1 .block2 figure {
      width: 61%;
      max-width: 700px;
      padding-top: 7px;
   }
}

@media only screen and (min-width: 1201px) {
   #sec1 .block1 {
      padding-top: 4%;
   }
   #sec1 .block2 {
      padding-top: 4%;
   }
}

#sec2 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec2 {
      padding-bottom: 20vw;
   }

   #sec2 h2 {
      font-size: 6.4vw;
      line-height: 1;
      letter-spacing: 0.1em;
   }

   #sec2 h2 span {
      font-size: 12.8vw;
      letter-spacing: 0;
   }

   #sec2 h2 small {
      font-size: 4.8vw;
      letter-spacing: 0;
   }

   #sec2 [class*="box"] {
      display: flex;
      flex-direction: column;
      gap: 8vw;
      padding-top: 8vw;
      position: relative;
   }

   #sec2 [class*="box"] .col {
      padding-top: 20vw;
      position: relative;
   }

   #sec2 [class*="box"] .no {
      position: absolute;
      top: 0;
      z-index: -1;
   }

   #sec2 [class*="box"] h3 {
      font-size: 6.4vw;
      line-height: 1.5;
      letter-spacing: 0;
   }

   #sec2 [class*="box"] .txt {
      padding-top: 6vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec2 {
      padding-bottom: 240px;
   }

   #sec2 .wrap-sp {
      width: 88.2%;
      margin-left: 4%;
   }

   #sec2 h2 {
      font-size: 48px;
      line-height: 55px;
      letter-spacing: 0.1em;
   }

   #sec2 h2 span {
      font-size: 96px;
      letter-spacing: 0;
   }

   #sec2 h2 small {
      font-size: 30px;
      letter-spacing: 0;
   }

   #sec2 [class*="box"] {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 0px;
      position: relative;
   }

   #sec2 [class*="box"] .col {
      width: 380px;
      padding-top: 93px;
   }

   #sec2 [class*="box"] .no {
      position: absolute;
      top: 0;
      z-index: -1;
   }

   #sec2 [class*="box"] h3 {
      font-size: 30px;
      line-height: 40px;
      letter-spacing: 0;
   }

   #sec2 [class*="box"] .txt {
      padding-top: 40px;
   }

   #sec2 [class*="box"] figure {
      width: calc(100% - 400px);
      max-width: 720px;
   }

   #sec2 .box1 {
      margin-top: 65px;
   }

   #sec2 .box2 {
      margin-top: 150px;
      flex-direction: row-reverse;
   }

   #sec2 .box3 {
      margin-top: 150px;
   }
}

#sec3 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec3 {
      padding-bottom: 20vw;
   }

   #sec3 h2 {
      font-size: 8vw;
      line-height: 1.2;
      letter-spacing: 0.1em;
   }

   #sec3 .floormap {
      margin: 8vw -9.2vw 0;
   }

   #sec3 .box {
      display: flex;
      flex-wrap: wrap;
      gap: 2vw 4%;
      padding-top: 12vw;
   }

   #sec3 .box .item {
      width: 48%;
   }

   #sec3 .box h3 {
      font-weight: 400;
      padding-top: 6vw;
   }

   #sec3 .box .txt {
      padding-top: 3vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec3 {
      padding-bottom: 227px;
   }

   #sec3 .wrap-sp {
      padding: 0 1.6% 0 4%;
   }

   #sec3 h2 {
      font-size: 50px;
      line-height: 60px;
      letter-spacing: 0.1em;
   }

   #sec3 .floormap {
      padding-top: 67px;
   }

   #sec3 .box {
      display: flex;
      flex-wrap: wrap;
      gap: 30px;
      padding-top: 150px;
   }

   #sec3 .box .item {
      width: calc(50% - 15px);
   }

   #sec3 .box h3 {
      font-weight: 400;
      padding-top: 44px;
   }

   #sec3 .box .txt {
      padding-top: 20px;
   }
}

#sec4 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec4 {
      padding-bottom: 20vw;
   }

   #sec4 .wrap-sp {
      border: 1px solid #222;
      padding: 12vw 6.6vw;
   }

   #sec4 .wrap-sp:before {
      content: '';
      border: 1px solid #222;
      position: absolute;
      top: 2vw;
      right: -2vw;
      bottom: -2vw;
      left: 2vw;
   }

   #sec4 .logo {
      font-size: 8vw;
      letter-spacing: 0.2em;
      line-height: 1.5;
      text-align: center;
   }

   #sec4 .logo h3 {
      font-size: 5.3vw;
      letter-spacing: 0.025em;
   }

   #sec4 .logo img {
      width: 60vw;
   }

   #sec4 .text {
      font-size: 13px;
      line-height: 24px;
      text-align: center;
      padding-top: 8vw;
   }

   #sec4 .text h3 {
      background-color: #b72e00;
      color: #fff;
      border-radius: 50px;
      font-size: 5.6vw;
      line-height: 1.5;
      letter-spacing: 0.1em;
      text-align: center;
      padding-bottom: 1vw;
   }

   #sec4 .text .tel {
      padding: 6vw 0 4vw;
   }

   #sec4 .text .tel a {
      display: inline-block;
      font-size: 9.8vw;
      line-height: 1;
      letter-spacing: 0;
      background: url("../img/shared/icon-tel-black.png") no-repeat top 2vw left/5.4vw auto;
      padding-left: 8vw;
   }

   #sec4 .text .note {
      letter-spacing: 0.05em;
   }

   #sec4 .text time {
      display: block;
      letter-spacing: 0.05em;
      padding-top: 4vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec4 {
      padding-bottom: 160px;
   }

   #sec4 .wrap-sp {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 40px 109px;
      width: 84.2%;
      border: 1px solid #222;
      position: relative;
      text-align: center;
      margin-left: 4%;
      padding: 40px 0 30px;
   }

   #sec4 .wrap-sp:before {
      content: '';
      border: 1px solid #222;
      position: absolute;
      top: 10px;
      right: -10px;
      bottom: -10px;
      left: 10px;
   }

   #sec4 .logo {
      width: 370px;
      font-size: 40px;
      letter-spacing: 0.1em;
      line-height: 40px;
   }

   #sec4 .logo h3 {
      font-size: 30px;
      letter-spacing: 0.025em;
      padding-bottom: 18px;
   }

   #sec4 .logo img {
      padding: 10px 0;
   }

   #sec4 .text {
      width: 540px;
      line-height: 28px;
      padding-top: 10px;
   }

   #sec4 .text h3 {
      font-size: 30px;
      line-height: 40px;
      letter-spacing: 0.1em;
      background-color: #b72e00;
      color: #fff;
      border-radius: 50px;
      padding: 3px 0 7px;
   }

   #sec4 .tel {
      font-weight: 400;
      font-size: 70px;
      line-height: 120px;
      letter-spacing: 0;
      background: url("../img/shared/icon-tel-black.png") no-repeat top 43px left 14px/33px auto;
      padding-left: 30px;
   }

   #sec4 .note {
      letter-spacing: 0.05em;
      margin-top: -18px;
   }

   #sec4 time {
      display: block;
      letter-spacing: 0.1em;
      padding-top: 11px;
   }
}