section h2 {
  letter-spacing: 0.2em;
  font-size: 8.5vw;
  line-height: 1.8;
  position: relative;
}
section h2 span {
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  section h2 {
    font-size: 38px;
    line-height: 72px;
  }
}

#key .photo {
  height: 127vw;
}

#lead {
  position: relative;
  padding: 15vw 0;
  background: url(../img/lunch/lead_deco2.png) no-repeat right 20vw/30%, url(../img/lunch/lead_deco1.jpg) no-repeat -64vw 0vw/167%, url(../img/lunch/lead_deco3.jpg) no-repeat 0 bottom/70%;
}
#lead h2 {
  margin-bottom: 5vw;
}
#lead h2 span {
  padding-left: 20vw;
  position: relative;
}
#lead h2 span:before {
  content: "";
  width: 20vw;
  border-top: 1px solid;
  position: absolute;
  top: 50%;
  right: -22vw;
}
#lead .photo {
  padding-bottom: 5vw;
}
#lead .photo dt {
  padding-bottom: 5vw;
}
#lead .point {
  position: relative;
  padding: 5vw 5%;
}
#lead .point .list {
  gap: 2vw;
  margin-bottom: 10vw;
}
#lead .point .list li {
  flex: 1;
}
#lead .point .photo-list {
  flex-direction: row-reverse;
  justify-content: flex-end;
}
#lead .point .photo-list li {
  width: 35%;
}
#lead .point .photo-list li:nth-child(2) {
  width: 65%;
  margin-top: 20.45vw;
}
@media screen and (min-width: 768px) {
  #lead {
    padding: 109px 20px 83px;
    background-size: auto, auto, auto;
    background-position: right 0, 0 0, 0 bottom;
  }
  #lead h2 {
    margin-bottom: 0;
    position: absolute;
    top: 151px;
    left: calc(50% + 361px);
    height: 600px;
    font-size: 47px;
    line-height: 81px;
  }
  #lead h2 span {
    padding: 113px 0 0 0;
    display: inline-block;
  }
  #lead h2 span:before {
    height: 193px;
    width: auto;
    border: none;
    border-left: 1px solid;
    top: auto;
    bottom: -200px;
    right: 40px;
    transform: skewX(1deg);
  }
  #lead .photo {
    padding-bottom: 0;
    max-width: 1000px;
    margin: 0 auto;
  }
  #lead .photo dt {
    margin: 0 0 56px -64px;
    padding: 0;
  }
  #lead .photo dd {
    padding: 0 0 0 52px;
  }
  #lead .point {
    position: relative;
    padding: 0;
    max-width: 1290px;
    margin: -66px auto 0;
  }
  #lead .point .list {
    width: 384px;
    gap: 0;
    margin-bottom: 0;
    display: block;
    position: absolute;
    top: 146px;
    right: calc(50% + 142px);
  }
  #lead .point .list li:nth-child(3) {
    margin: 76px 0 0 64px;
  }
  #lead .point .list li:nth-child(2) {
    position: absolute;
    top: 102px;
    right: 0;
  }
  #lead .point .photo-list {
    margin-left: calc(50% - 91px);
    justify-content: flex-end;
    flex-direction: row-reverse;
  }
  #lead .point .photo-list li {
    width: 266px;
  }
  #lead .point .photo-list li:nth-child(2) {
    width: calc(100% - 266px);
    margin-top: 176px;
    height: 470px;
  }
}

#course .box-parallax .img-parallax-pc {
  height: 67vw;
}
#course h2 {
  font-size: 6.8vw;
  margin-bottom: 7vw;
}
#course .course {
  padding: 5vw 5%;
  text-align: center;
  margin-bottom: 10vw;
}
#course .course .tag-price {
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.2em;
  padding-bottom: 5vw;
}
#course .course .tag-price dd {
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  #course .box-parallax {
    height: 758px;
  }
  #course .box-parallax .img-parallax-pc {
    height: auto;
  }
  #course h2 {
    font-size: 38px;
    line-height: 70px;
    margin-bottom: 0;
  }
  #course .course {
    padding: 39px 0 45px 60px;
    text-align: left;
    margin-bottom: 30px;
    position: relative;
    width: 100%;
    max-width: 670px;
    margin: 0 auto;
  }
  #course .course .tag-price {
    text-align: left;
    font-size: 25px;
    line-height: 44px;
    padding-bottom: 20px;
  }
  #course .course .tag-price dd {
    font-size: 20px;
  }
}

#course1 {
  background: url(../img/lunch/course1_deco1.jpg) no-repeat right 0vw/260%, url(../img/lunch/course1_deco2.jpg) no-repeat left 51vw bottom 4vw/96%;
  padding: 15vw 0 5vw;
}
#course1 h2 {
  white-space: nowrap;
}
#course1 h2 span {
  padding-left: 38vw;
}
#course1 .info {
  margin-bottom: 10vw;
}
#course1 .info dt {
  padding-bottom: 5vw;
}
#course1 .floor dt {
  font-size: 7vw;
  letter-spacing: 0.2em;
  padding: 5vw 0;
  line-height: 1.6;
}
#course1 .floor dt span {
  letter-spacing: 0.2em;
  padding-left: 17vw;
}
@media screen and (min-width: 768px) {
  #course1 {
    padding: 106px 20px 140px;
    background-size: auto, auto;
    background-position: 0 0, right 1018px;
  }
  #course1 .wrap {
    max-width: 1063px;
  }
  #course1 h2 {
    white-space: nowrap;
    position: absolute;
    top: 70px;
    left: 0;
  }
  #course1 h2 span {
    padding: 274px 0 0;
  }
  #course1 .course {
    min-height: 300px;
    padding: 70px 0 0px 0;
    margin-bottom: 74px;
  }
  #course1 .course .tag-price {
    position: absolute;
    top: 59px;
    right: 57px;
    padding: 0;
    width: 160px;
  }
  #course1 .course .tag-price dd {
    text-align: center;
  }
  #course1 .course .tag-price dt {
    margin: 0 auto;
    min-height: 164px;
  }
  #course1 .course .list {
    margin: 0 0 0 93px;
  }
  #course1 .course .list li:first-child {
    margin-top: -20px;
  }
  #course1 .info {
    margin-bottom: 71px;
    margin-left: calc(50% - 301px);
  }
  #course1 .info dt {
    padding-bottom: 65px;
  }
  #course1 .floor {
    display: flex;
  }
  #course1 .floor .photo {
    margin-left: -16px;
  }
  #course1 .floor dl {
    width: 350px;
    padding: 0;
    margin-left: 52px;
    letter-spacing: 0.2em;
  }
  #course1 .floor .bnr-shared {
    margin: 0 0 0 10px;
  }
  #course1 .floor dt {
    font-size: 37px;
    line-height: 60px;
    padding: 108px 0 20px;
  }
  #course1 .floor dt span {
    padding-left: 92px;
  }
}

#course2 {
  padding: 10vw 0;
  position: relative;
}
#course2:before {
  content: "";
  background: url(../img/lunch/course2_deco1.jpg) no-repeat 0 0/100%;
  width: 99vw;
  height: 80vw;
  position: absolute;
  left: -9vw;
  top: 48vw;
  z-index: -1;
}
#course2 h2 {
  font-size: 6.5vw;
  font-weight: 600;
}
#course2 .photo {
  margin-bottom: 5vw;
}
#course2 .txt {
  padding-bottom: 10vw;
}
@media screen and (min-width: 768px) {
  #course2 {
    padding: 0 20px 100px;
  }
  #course2:before {
    width: 397px;
    height: 541px;
    left: 0;
    top: -310px;
    z-index: -1;
  }
  #course2 .wrap {
    max-width: 1200px;
    min-height: 690px;
  }
  #course2 .course {
    max-width: 410px;
    margin: 0;
  }
  #course2 .box {
    width: 430px;
  }
  #course2 .photo {
    margin-bottom: 0;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    max-width: 870px;
    left: 480px;
  }
  #course2 h2 {
    font-size: 32px;
    line-height: 64px;
    margin-right: -40px;
    padding: 39px 0 37px;
  }
  #course2 .txt {
    padding-bottom: 60px;
  }
}

#other {
  padding: 0% 5% 20vw;
}
#other .wrap {
  border: 1px solid;
  padding: 20vw 5% 10vw;
}
#other h2 {
  line-height: 1.2;
  background-color: #fff;
  position: absolute;
  top: -5vw;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  padding: 0 15px;
  white-space: nowrap;
}
#other h2 span {
  text-transform: uppercase;
  font-size: 3vw;
  letter-spacing: 0.28em;
  font-weight: 700;
}
#other .menu dl {
  position: relative;
  font-weight: 600;
  border-bottom: 1px dotted #555555;
  padding: 10px 0;
}
#other .menu dl:after {
  content: "." !important;
  clear: both !important;
  display: block !important;
  height: 0 !important;
  visibility: hidden !important;
}
#other .menu dl dt {
  float: left;
  font-size: 18px;
}
#other .menu dl .price {
  float: right;
  text-align: right;
  font-size: 18px;
}
#other .menu dl .txt {
  clear: both;
  color: #6e6e6e;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  #other {
    padding: 77px 20px 190px;
    max-width: 1170px;
    margin: 0 auto;
  }
  #other .wrap {
    max-width: 100%;
    padding: 120px 20px 90px;
  }
  #other h2 {
    line-height: 50px;
    font-size: 38px;
    top: -28px;
    padding: 0 15px;
  }
  #other h2 span {
    font-size: 15px;
  }
  #other .menu {
    display: flex;
    gap: 72px;
    justify-content: center;
    padding: 44px 0 0;
  }
  #other .menu .col {
    width: 405px;
  }
  #other .menu dl {
    padding: 13px 0px;
    line-height: 44px;
    letter-spacing: 0.2em;
  }
  #other .menu dl dt {
    font-size: 20px;
  }
  #other .menu dl .price {
    font-size: 20px;
  }
  #other .menu dl .txt {
    line-height: 35px;
    letter-spacing: 0.1em;
    padding: 5px 0 0;
  }
}

#lunch {
  position: relative;
  padding: 15vw 0;
}
#lunch:before {
  content: "";
  background: url(../img/lunch/lunch_deco.jpg) no-repeat 0 0/100%;
  width: 129vw;
  height: 146vw;
  position: absolute;
  top: -18vw;
  right: -60vw;
  z-index: -1;
}
#lunch .photo1 {
  width: 32%;
  margin: 0;
  position: absolute;
  top: -15vw;
  right: -5vw;
}
#lunch .tit {
  position: relative;
  font-size: 21px;
  font-weight: 600;
  padding: 0px 0 0 26px;
  display: flex;
  align-items: center;
}
#lunch .tit:before {
  content: "";
  position: absolute;
  top: 50%;
  border-top: 1px solid;
  width: 32px;
  left: -5vw;
}
#lunch .tit span {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 10px;
  padding-left: 10px;
}
#lunch h2 {
  margin: 0 auto 10vw;
}
#lunch h2 span {
  padding-top: 22vw;
}
#lunch h2 span.pad {
  padding-top: 34vw;
}
#lunch .photo2 {
  margin-bottom: 5vw;
}
#lunch .info {
  padding-top: 5vw;
}
#lunch .info dt {
  width: 80%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #lunch .info {
    display: flex;
    flex-wrap: wrap;
  }
  #lunch .info dd {
    order: -1;
    margin-bottom: 8vw;
  }
}
@media screen and (min-width: 768px) {
  #lunch {
    padding: 128px 20px 224px;
  }
  #lunch:before {
    width: 846px;
    height: 1128px;
    top: 146px;
    right: 0;
  }
  #lunch .wrap {
    max-width: 1390px;
  }
  #lunch .photo1 {
    width: auto;
    margin: 0;
    top: -36px;
    right: 0;
  }
  #lunch .tit {
    font-size: 28px;
    padding: 0px 0 0 0;
    margin-left: calc(50% - 540px);
    margin-bottom: 91px;
  }
  #lunch .tit:before {
    width: auto;
    width: calc(45vw - 21px);
    left: -45vw;
  }
  #lunch .tit span {
    font-size: 16px;
    padding: 5px 0 0 29px;
  }
  #lunch h2 {
    margin: 0;
    position: absolute;
    top: 71px;
    left: calc(50% + 92px);
  }
  #lunch h2 span {
    padding-top: 91px;
  }
  #lunch h2 span.pad {
    padding-top: 183px;
  }
  #lunch .photo2 {
    margin-bottom: 0px;
    height: 440px;
    width: 49%;
    margin-left: 13px;
    max-width: 680px;
  }
  #lunch .txt {
    top: 655px;
    right: calc(50% + 48px);
    position: absolute;
    height: 400px;
  }
  #lunch .info {
    padding-top: 0;
    margin-left: calc(50% + 121px);
  }
  #lunch .info dt {
    width: auto;
    margin: 0 0 52px 65px;
  }
  #lunch .info .bnr-shared {
    margin: 0;
  }
}

#demae {
  padding: 10px;
  margin: 0 5% 15vw;
}
#demae .wrap {
  padding: 5% 5% 10vw;
}
#demae h2 {
  font-size: 6vw;
  font-weight: 600;
  padding: 5vw 0;
}
#demae .txt {
  padding-bottom: 5vw;
}
@media screen and (min-width: 768px) {
  #demae {
    padding: 20px;
    margin: 0 auto 158px;
    max-width: 1150px;
    width: calc(100% - 40px);
  }
  #demae .wrap {
    padding: 75px 24px 64px 0px;
    max-width: 100%;
    display: flex;
    justify-content: center;
    gap: 76px;
  }
  #demae h2 {
    font-size: 32px;
    padding: 18px 0 30px;
  }
  #demae .info {
    width: 416px;
  }
  #demae .txt {
    padding-bottom: 35px;
  }
}/*# sourceMappingURL=lunch.css.map */