.fs36 {
  font-size: 8.8vw;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
@media screen and (min-width: 768px) {
  .fs36 {
    font-size: 36px;
    line-height: 70px;
    letter-spacing: 0.3em;
  }
}

.fs30 {
  font-size: 6.67vw;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
@media screen and (min-width: 768px) {
  .fs30 {
    font-size: 30px;
    line-height: 50px;
    letter-spacing: 0.3em;
  }
}
h2 {
  letter-spacing:5px;
}
#lead {
  position: relative;
  z-index: 2;
  margin: 53.648vh 0 0;
  padding: 26.8vw 0 0;
}
#lead::before {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: 19.3vw;
  top: -19.3vw;
  background: #fff;
}
#lead:after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  background: #8b857d;
  height: 20.67vw;
  top: 0;
}
#lead h2 {
  text-align: center;
}
#lead .txt {
  margin: 10vw var(--wrapPadding) 19vw;
  letter-spacing: 0.1em;
}
#lead .group-img {
  display: flex;
  justify-content: center;
  gap: 0.67vw;
}
#lead .group-img .img {
  width: 30.67vw;
  height: 42.93vw;
}
@media screen and (min-width: 768px) {
  #lead {
    margin: 818px 0 0;
    padding: 116px 0 0;
  }
  #lead::before {
    height: 80px;
    top: -80px;
    background: #fff;
  }
  #lead:after {
    height: 86px;
    top: 0;
  }
  #lead h2 {
    text-align: center;
  }
  #lead .txt {
    margin: 45px 0 159px;
    text-align: center;
    letter-spacing: 0.2em;
  }
  #lead .group-img {
    display: flex;
    justify-content: center;
    gap: 44px;
    margin: 0 30px;
  }
  #lead .group-img .img {
    height: 565px;
    width: 404px;
    max-width: calc((100% - 88px) / 3);
  }
}

.img-para, .img-para2 {
  overflow: hidden;
}
.img-para img, .img-para2 img {
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

#concept {
  position: relative;
  padding: 24.5vw 0 0;
  text-align: center;
}
#concept::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -27.6vw;
  background: url("../img/index/concept_deco_sp.png") no-repeat top center/100% auto;
  height: 119.5vw;
}
#concept .inner {
  position: relative;
  z-index: 2;
}
#concept h2 {
  margin: 9vw 0 5vw;
  font-size: 13.3vw;
  letter-spacing: 0.2em;
  line-height: 1.2;
}
#concept .sub-txt {
  font-size: 4.53vw;
  line-height: 1.5;
  letter-spacing: 0.3em;
  margin: 0 0 13vw;
}
#concept .txt {
  margin: 0 var(--wrapPadding);
}
#concept .row {
  position: relative;
  margin: 13vw var(--wrapPadding) 0;
}
#concept .row .img {
  width: 45.867vw;
  height: 29.8vw;
  margin: 0 auto 21.73vw;
}
#concept .row .img2 {
  width: 73.2vw;
  height: 98.4vw;
  margin: 0 auto 12vw;
}
#concept .row .right .name {
  display: flex;
  align-items: baseline;
  justify-content: center;
  font-size: 7.52vw;
  letter-spacing: 0.2em;
  line-height: 1.5;
}
#concept .row .right .name .fs {
  font-size: 5vw;
}
#concept .row .right .name span {
  text-align: center;
}
#concept .row .right .name span small {
  display: block;
  margin: 1vw 0 0;
  font-size: 3vw;
  letter-spacing: 0.3em;
}
#concept .row .right .txt {
  margin: 11vw 0 0;
}
@media screen and (min-width: 768px) {
  #concept {
    padding: 129px 0 0;
  }
  #concept::before {
    top: 172px;
    background: url("../img/index/concept_deco.png") no-repeat top center;
    height: 1496px;
  }
  #concept h2 {
    margin: 39px 0 25px;
    font-size: 55px;
  }
  #concept .sub-txt {
    font-size: 18px;
    margin: 0 0 63px;
  }
  #concept .txt {
    text-align: inherit;
    margin: 0;
  }
  #concept .row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    position: relative;
    margin: 335px auto 0;
    width: 1200px;
    max-width: calc(100% - 60px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1380px) {
  #concept .row {
    padding-right: 70px;
    box-sizing: border-box;
  }
}
@media screen and (min-width: 768px) {
  #concept .row .img {
    position: absolute;
    top: -160px;
    right: -70px;
    width: 400px;
    height: 260px;
    margin: 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #concept .row .img {
    right: 0;
  }
}
@media screen and (min-width: 768px) {
  #concept .row .img2 {
    width: 568px;
    max-width: calc(50% - 32px);
    height: 765px;
    margin: 0 0 0 3px;
  }
  #concept .row .right {
    width: 455px;
    margin: 0 0 35px;
    text-align: left;
  }
  #concept .row .right .name {
    justify-content: flex-start;
    font-size: 30px;
  }
  #concept .row .right .name .fs {
    font-size: 20px;
  }
  #concept .row .right .name span small {
    margin: 5px 0 0;
    font-size: 12px;
  }
  #concept .row .right .txt {
    margin: 72px 0 0;
    text-align: justify;
    letter-spacing: 0;
  }
}

#point {
  margin: 39vw 0 0;
  padding: 10vw 0 20vw;
}
#point h2 {
  font-size: 8vw;
  letter-spacing: 0.3em;
  line-height: 2;
  margin: 0 auto;
  height: 89vw;
}
#point .row {
  position: relative;
}
#point .row .item {
  margin: 0 7.2vw;
}
#point .row .item + .item {
  margin-top: 26vw;
}
#point .row .item .img {
  height: 105.6vw;
}
#point .row .item h3 {
  position: relative;
  padding: 10vw 0 0 1.3vw;
  line-height: 1.2;
  font-size: 12.53vw;
  letter-spacing: 0;
  margin: 0 0 10vw 24.93vw;
}
#point .row .item h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 30.267vw;
  height: 1px;
  background: #000;
  opacity: 0.4;
}
#point .row .item h3 small {
  display: inline-block;
  vertical-align: middle;
  margin-left: 5.7vw;
  letter-spacing: 0.2em;
  color: #535541;
  font-size: 3vw;
  line-height: 1.5;
}
#point .row .item .group-content {
  margin: 10vw 0 0;
}
#point .row .item .group-content .title {
  font-size: 8vw;
  line-height: 1.875;
  margin: 0 0 6vw;
}
#point .row .item .group-content .txt {
  text-align: justify;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  #point {
    margin: 250px 0 0;
    padding: 98px 0 195px;
  }
  #point h2 {
    font-size: 33px;
    line-height: 63px;
    height: 357px;
  }
  #point .row .item {
    margin: 0;
    min-height: 800px;
  }
  #point .row .item + .item {
    margin-top: 162px;
  }
  #point .row .item .img {
    position: absolute;
    top: 3px;
    left: calc(50vw - 52px);
    width: 652px;
    max-width: calc(50vw + 22px);
    height: 800px;
    max-height: calc(100vh - 100px);
    transition: opacity 0.5s;
    opacity: 0;
  }
  #point .row .item .img.active {
    opacity: 1;
  }
  #point .row .item .img.fixed {
    position: fixed;
    top: 50px;
  }
  #point .row .item .img.end {
    top: auto;
    bottom: 0;
  }
  #point .row .item.item1 .img {
    opacity: 1;
  }
  #point .row .item h3 {
    padding: 35px 0 0;
    font-size: 50px;
    letter-spacing: 0;
    max-width: calc(100% - 60px);
    width: 1200px;
    margin: 0 auto;
  }
  #point .row .item h3::before {
    width: 121px;
  }
  #point .row .item h3 small {
    margin-left: 30px;
    font-size: 12px;
  }
  #point .row .item .group-content {
    width: 1000px;
    margin: 210px auto 0;
    max-width: calc(100% - 60px);
  }
  #point .row .item .group-content .title {
    font-size: 32px;
    line-height: 1.875;
    margin: 0 0 55px;
  }
  #point .row .item .group-content .txt {
    width: 353px;
  }
}

#course {
  padding: 8vw 0 0;
  margin: 15vw 0 0;
}
#course .set1 .sub-txt {
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
}
#course .set1 h2 {
  text-align: center;
  font-size: 8.3vw;
  line-height: 2;
  padding: 0 0 4vw;
  position: relative;
  margin: 12vw 0;
}
#course .set1 h2:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  height: 1px;
  width: 16.267vw;
  bottom: 0;
  background: #000;
}
#course .set1 .txt2 {
  display: flex;
  font-size: 12px;
  line-height: 2;
  letter-spacing: 0;
  margin: 0 var(--wrapPadding);
}
#course .set1 .row {
  position: relative;
  margin: 12vw 7.2vw 0;
}
#course .set1 .row .group-content dl {
  margin: 0 0 52px;
  text-align: center;
}
#course .set1 .row .group-content dl dt {
  font-size: 7.52vw;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
#course .set1 .row .group-content dl dd {
  margin: 5vw 0 0;
  line-height: 1.5;
  font-size: 4.512vw;
  letter-spacing: 0.1em;
}
#course .set1 .row .group-content dl dd small {
  display: inline-block;
  font-size: 3.5vw;
  margin-right: 3vw;
}
#course .set1 .row .group-content dl dd span {
  font-size: 7vw;
  display: inline-block;
  margin: 0 3px 0 0;
  letter-spacing: 0;
}
#course .set1 .row .group-content .group-img {
  margin: 12vw 0;
}
#course .set1 .row .group-content .group-img .img {
  height: 56.42vw;
}
#course .set1 .row .group-content .txt {
  letter-spacing: 0.05em;
  text-align: justify;
}
#course .set1 .row .group-content .title {
  margin: 45px 0 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
#course .set1 .row .group-content .title span {
  min-width: -moz-max-content;
  min-width: max-content;
  letter-spacing: 0.05em;
}
#course .set1 .row .group-content .title::before {
  content: "";
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: #6d6561;
}
#course .set1 .row .group-content .title:after {
  content: "";
  width: 100%;
  background: #6d6561;
  height: 1px;
}
#course .set1 .row .group-content .txt2 {
  margin: 16px 0 12vw;
  font-size: 17px;
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  #course .set1 .row .group-content .txt2 {
    letter-spacing: 0.2em;
  }
}
#course .set1 .row .group-content .img2 {
  height: 61.728vw;
}
#course .set1 .row .group-content .title2 {
  font-size: 5.5vw;
  line-height: 1.5;
  margin: 7vw 0 3vw;
}
#course .set2 {
  position: relative;
  margin: 25vw 0 0;
}
#course .set2 .bg {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  transition: all 1s;
}
#course .set2 .bg.active {
  filter: blur(3px);
}
#course .set2 .overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.54);
  z-index: 2;
  opacity: 0;
  transition: all 1s;
}
#course .set2 .overlay.active {
  opacity: 1;
}
#course .set2 .group-content {
  position: relative;
  z-index: 2;
  color: #fff;
  margin: 50vh 7.2vw 0;
  padding: 26.8vw 0 33.6vw;
}
#course .set2 .group-content dl {
  margin: 0 0 52px;
  text-align: center;
}
#course .set2 .group-content dl dt {
  font-size: 7.52vw;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
#course .set2 .group-content dl dd {
  margin: 5vw 0 0;
  line-height: 1.5;
  font-size: 4.512vw;
  letter-spacing: 0.1em;
}
#course .set2 .group-content dl dd small {
  display: inline-block;
  font-size: 3.5vw;
  margin-right: 3vw;
}
#course .set2 .group-content dl dd span {
  font-size: 7vw;
  display: inline-block;
  margin: 0 3px 0 0;
  letter-spacing: 0;
}
#course .set2 .group-content .txt {
  letter-spacing: 0.05em;
  text-align: justify;
}
#course .set2 .group-content .title {
  margin: 45px 0 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
#course .set2 .group-content .title span {
  min-width: -moz-max-content;
  min-width: max-content;
  letter-spacing: 0.05em;
}
#course .set2 .group-content .title::before {
  content: "";
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: #fff;
  opacity: 0.6;
}
#course .set2 .group-content .title:after {
  content: "";
  width: 100%;
  background: #fff;
  height: 1px;
  opacity: 0.4;
}
#course .set2 .group-content .txt2 {
  margin: 16px 0 0;
  font-size: 17px;
  line-height: 2.2;
}
@media screen and (max-width: 767px) {
  #course .set2 .group-content .txt2 {
    letter-spacing: 0.2em;
  }
}
@media screen and (min-width: 768px) {
  #course {
    padding: 50px 0 0;
    margin: 85px 0 0;
  }
  #course .set1 .sub-txt {
    text-align: right;
    margin: 0 auto;
    width: 1222px;
    max-width: calc(100% - 160px);
    font-size: 14px;
  }
  #course .set1 h2 {
    font-size: 33px;
    padding: 0 0 26px;
    margin: 74px 0 57px;
  }
  #course .set1 h2:after {
    width: 65px;
  }
  #course .set1 .txt2 {
    justify-content: center;
    font-size: 14px;
    line-height: 30px;
    letter-spacing: 0.1em;
    margin: 0;
  }
  #course .set1 .row {
    position: relative;
    display: flex;
    align-items: flex-start;
    margin: 176px 0 0;
  }
  #course .set1 .row .group-img {
    width: calc(50% + 120px);
    max-width: calc(100% - 520px);
  }
  #course .set1 .row .group-img .img {
    height: 600px;
  }
  #course .set1 .row .group-content {
    position: sticky;
    top: 0;
    width: 384px;
    margin: 0 0 0 95px;
    min-height: 100vh;
    box-sizing: border-box;
    padding: 65px 0 60px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #course .set1 .row .group-content {
    margin-left: 50px;
  }
}
@media screen and (min-width: 768px) {
  #course .set1 .row .group-content dl {
    margin: 0 0 52px;
    text-align: left;
  }
  #course .set1 .row .group-content dl dt {
    font-size: 30px;
    letter-spacing: 0.1em;
    line-height: 1.5;
  }
  #course .set1 .row .group-content dl dd {
    text-align: right;
    margin: 21px 9px 0 0;
    font-size: 18px;
  }
  #course .set1 .row .group-content dl dd small {
    font-size: 14px;
    margin-right: 20px;
  }
  #course .set1 .row .group-content dl dd span {
    font-size: 28px;
    margin: 0 3px 0 0;
    letter-spacing: 0;
  }
  #course .set1 .row .group-content .txt {
    letter-spacing: 0.05em;
    line-height: 2.25;
  }
  #course .set1 .row .group-content .title {
    margin: 50px 0 0 9px;
  }
  #course .set1 .row .group-content .txt2 {
    margin: 16px 0 87px;
    font-size: 18px;
    line-height: 40px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #course .set1 .row .group-content .txt2 {
    letter-spacing: 0.05em;
  }
}
@media screen and (min-width: 768px) {
  #course .set1 .row .group-content .img2 {
    height: 277px;
  }
  #course .set1 .row .group-content .title2 {
    font-size: 22px;
    line-height: 1.5;
    margin: 38px 0 23px;
  }
  #course .set2 {
    margin: 105px 0 0;
  }
  #course .set2 .group-content {
    width: 1200px;
    max-width: calc(100% - 160px);
    margin: 30vh auto 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 145px 0 143px;
  }
  #course .set2 .group-content .inner {
    width: 384px;
  }
  #course .set2 .group-content dl {
    margin: 0 0 52px;
    text-align: left;
  }
  #course .set2 .group-content dl dt {
    font-size: 30px;
    letter-spacing: 0.1em;
    line-height: 1.5;
  }
  #course .set2 .group-content dl dd {
    text-align: right;
    margin: 21px 9px 0 0;
    font-size: 18px;
  }
  #course .set2 .group-content dl dd small {
    font-size: 14px;
    margin-right: 20px;
  }
  #course .set2 .group-content dl dd span {
    font-size: 28px;
    margin: 0 3px 0 0;
    letter-spacing: 0;
  }
  #course .set2 .group-content .txt {
    letter-spacing: 0.05em;
    line-height: 2.25;
  }
  #course .set2 .group-content .title {
    margin: 36px 0 0 9px;
  }
  #course .set2 .group-content .txt2 {
    margin: 16px 0 0;
    font-size: 18px;
    line-height: 40px;
    letter-spacing: 0.2em;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #course .set2 .group-content .txt2 {
    letter-spacing: 0.1em;
  }
}

#sake {
  position: relative;
  padding: 30vw 0 20vw;
}
@media screen and (max-width: 767px) {
  #sake .wrap {
    padding: 0 7.2vw;
  }
}
#sake .img {
  width: 74.556vw;
  height: 52vw;
  margin: 0 0 15vw auto;
}
#sake .img2 {
  margin: 0 -3.9vw;
  height: 128vw;
}
#sake .group-content {
  margin: 15vw 0 0;
}
#sake .group-content dl dt {
  font-size: 8.296vw;
  line-height: 2;
  text-align: center;
  letter-spacing: 5px;
}
#sake .group-content dl dd {
  margin: 7vw 0 0;
  display: flex;
  justify-content: center;
  font-size: 6vw;
  line-height: 10vw;
  letter-spacing: 0.1em;
}
#sake .group-content dl dd > small {
  font-size: 4.53vw;
  text-align: center;
  margin: 0 3vw 0 5vw;
}
#sake .group-content dl dd .price {
  font-size: 7vw;
  text-align: right;
  letter-spacing: 0;
}
#sake .group-content dl dd .price small {
  font-size: 4.53vw;
}
#sake .group-content .txt {
  letter-spacing: 0.05em;
  text-align: justify;
  margin: 12vw 0 0;
}
#sake .group-content dl dd.note {
  font-size:80%;
  margin: 1vw 0 0;
}
@media screen and (min-width: 768px) {
  #sake {
    padding: 193px 0 158px;
  }
  #sake .img {
    position: absolute;
    top: 104px;
    right: 0;
    width: calc(50% - 248px);
    height: 351px;
    margin: 0;
  }
}
@media screen and (min-width: 768px) and (min-width: 1501px) {
  #sake .img img {
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  #sake .wrap {
    width: 1366px;
    display: flex;
    align-items: flex-end;
  }
  #sake .img2 {
    width: 641px;
    max-width: calc(100% - 642px);
    height: 882px;
    margin: 0;
  }
  #sake .group-content {
    width: 530px;
    margin: 0 0 11px 110px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  #sake .group-content {
    margin-left: 50px;
  }
}
@media screen and (min-width: 768px) {
  #sake .group-content dl dt {
    font-size: 33px;
    text-align: left;
  }
  #sake .group-content dl dd {
    margin: 63px 0 0;
    justify-content: flex-start;
    font-size: 24px;
    line-height: 40px;
  }
  #sake .group-content dl dd > small {
    font-size: 18px;
    margin: 0 19px 0 27px;
  }
  #sake .group-content dl dd .price {
    font-size: 28px;
  }
  #sake .group-content dl dd .price small {
    font-size: 18px;
  }
  #sake .group-content .txt {
    line-height: 2.25;
    margin: 75px 0 0;
  }
}

#lunch {
  background: url("../img/index/lunch_bg.jpg");
  padding: 18vw 0 22vw;
}
@media screen and (max-width: 767px) {
  #lunch .wrap {
    padding: 0 7.2vw;
  }
}
#lunch .img {
  height: 51vw;
}
#lunch .group-content {
  margin: 15vw 0 0;
}
#lunch .group-content h2 {
  font-size: 8.3vw;
  line-height: 2;
  text-align: center;
}
#lunch .group-content .tit {
  margin: 5vw 0 0;
  text-align: center;
}
#lunch .group-content .tit span {
  display: inline-block;
  line-height: 1.8125;
  border: 1px solid;
  padding: 0 8px;
}
#lunch .group-content .txt {
  margin: 12vw 0 0;
  text-align: justify;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  #lunch {
    padding: 101px 0 100px;
  }
  #lunch .wrap {
    display: flex;
    flex-direction: row-reverse;
    width: 1326px;
  }
  #lunch .img {
    height: 502px;
    width: 847px;
    max-width: calc(100% - 416px);
  }
  #lunch .group-content {
    width: 416px;
    margin: 48px 0 0;
  }
  #lunch .group-content h2 {
    font-size: 33px;
    line-height: 2;
    text-align: left;
  }
  #lunch .group-content .tit {
    margin: 25px 0 0 3px;
    text-align: left;
  }
  #lunch .group-content .txt {
    width: 330px;
    margin: 96px 0 0 6px;
    line-height: 2.25;
  }
}

#floor {
  margin: 15vw 0 0;
  padding: 8vw 0 0;
}
#floor h2 {
  text-align: center;
  font-size: 8.3vw;
  letter-spacing: 0.2em;
  line-height: 2;
  padding: 0 0 4vw;
  position: relative;
  margin: 0 0 12vw;
}
#floor h2:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  height: 1px;
  width: 16.267vw;
  bottom: 0;
  background: #000;
}
#floor > .txt {
  text-align: justify;
  margin: 16vw 7.2vw 0;
}
#floor .row {
  position: relative;
  margin: 20vw 7.2vw 0;
}
#floor .row .img {
  width: 63.6vw;
  height: 37.6vw;
  margin: 0 auto 24.67vw;
}
#floor .row .img2 {
  height: 80vw;
}
#floor .row .group-content {
  margin: 18vw 0 0;
}
#floor .row .group-content .tit {
  margin: 12vw 0 8vw;
}
#floor .row .group-content .txt {
  text-align: justify;
}
@media screen and (min-width: 768px) {
  #floor {
    margin: 96px 0 0;
    padding: 50px 0 0;
  }
  #floor h2 {
    font-size: 33px;
    padding: 0 0 26px;
    margin: 0 0 75px;
  }
  #floor h2:after {
    width: 65px;
  }
  #floor .para {
    height: 700px;
  }
  #floor > .txt {
    text-align: center;
    margin: 112px 0 0;
  }
  #floor .row {
    margin: 223px auto 0;
    width: 1194px;
    max-width: calc(100% - 60px);
    display: flex;
    align-items: flex-end;
  }
  #floor .row .img {
    position: absolute;
    width: 327px;
    height: 194px;
    top: -118px;
    right: -43px;
    margin: 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #floor .row .img {
    right: 0;
  }
}
@media screen and (min-width: 768px) {
  #floor .row .img2 {
    width: 600px;
    max-width: calc(100% - 597px);
    height: 798px;
  }
  #floor .row .group-content {
    margin: 0 0 7px 121px;
    width: 479px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  #floor .row .group-content {
    margin-left: 50px;
  }
}
@media screen and (min-width: 768px) {
  #floor .row .group-content .tit {
    margin: 82px 0 17px;
  }
  #floor .row .group-content .txt {
    text-align: justify;
  }
}

#shopinfo {
  position: relative;
  margin: 25.6vw 0 0;
  padding: 21.73vw 0 20vw;
}
#shopinfo::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3.3vw;
  right: 3.3vw;
  margin: 0 auto;
  border-top: 1px solid;
  border-bottom: 1px solid;
  color: #000;
  opacity: 0.4;
}
#shopinfo .logo {
  width: 83px;
  margin: 0 auto;
}
#shopinfo .tel {
  text-align: center;
  margin: 55px 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
#shopinfo .tel .sub-tel {
  display: block;
  font-size: 15px;
  line-height: 1;
  margin: 0 0 20px;
  letter-spacing: 0.1em;
}
#shopinfo .tel span {
  display: block;
  line-height: 1;
  letter-spacing: -0.04em;
  font-size: 41.5px;
  padding: 0 0 0 28px;
  background: url("../img/shared/icon_tel.png") no-repeat left center/20.5px auto;
}
#shopinfo .btn-web {
  width: 319px;
  margin: 20px auto 0;
}
#shopinfo .btn-web a {
  display: block;
  border: 1px solid #292522;
  color: #fff;
  transition: all 0.5s;
  position: relative;
  overflow: hidden;
  background: #453a2b;
  text-align: center;
  font-size: 18px;
  padding: 6px 0;
  line-height: 2;
  letter-spacing: 0.1em;
}
#shopinfo .btn-web a span {
  position: relative;
  z-index: 2;
  display: inline-block;
}
#shopinfo .info {
  margin: 55px 7.2vw 0;
}
#shopinfo .info dl {
  padding: 0 0 12px;
  border-bottom: 1px dotted #4f402c;
  font-size: 14px;
  line-height: 25px;
}
#shopinfo .info dl + dl {
  margin-top: 13px;
}
#shopinfo .info dl dd {
  margin: 0 0 0 16px;
}
#shopinfo .info dl dd a {
  position: relative;
  padding: 0 0 0 13px;
  display: inline-flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  #shopinfo .info dl dd a {
    margin-left: 20px;
  }
}
#shopinfo .info dl dd a img {
  width: 9.5px;
  display: inline-block;
  margin-right: 10px;
}
#shopinfo .info dl dd a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  left: 0;
  width: 1px;
  height: 15px;
  background: #2e2017;
}
#shopinfo .box-notice {
  margin: 13px 7.2vw 0;
  border-bottom: 1px dotted #4f402c;
  padding: 0 0 22px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 25px;
}
#shopinfo .box-notice .txt {
  margin: 5px 0 0 18px;
}
@media screen and (max-width: 767px) {
  #shopinfo .box-notice .txt {
    letter-spacing: 0;
  }
}
#shopinfo .row1 {
  margin: 45px 4.67vw 0;
  text-align: center;
}
#shopinfo .row1 .title {
  font-size: 20px;
  line-height: 1.5;
  margin: 0 0 36px;
}
#shopinfo .row2 {
  margin: 75px 4.67vw 0;
  position: relative;
}
@media screen and (max-width: 767px) {
  #shopinfo .row2 {
    text-align: center;
  }
  #shopinfo .row2 .img, #shopinfo .row2 .img2 {
    width: 243px;
    margin: 0 auto;
  }
  #shopinfo .row2 .txt {
    text-align: inherit;
  }
}
#shopinfo .row2 .group-txt {
  line-height: 1.875;
  margin: 22px 0;
}
#shopinfo .row2 .group-txt .txt + .txt {
  margin-top: 5px;
}
#shopinfo .row2 .title {
  margin: 18px 0 0;
}
#shopinfo #ggmap {
  margin: 76px 0 0;
  padding: 55px 7.2vw 0;
  position: relative;
}
#shopinfo #ggmap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 3.3vw;
  right: 3.3vw;
  height: 1px;
  background: #4f402c;
  opacity: 0.4;
}
#shopinfo #ggmap h2 {
  font-size: 20px;
  line-height: 1.5;
  text-align: center;
  margin: 0 0 35px;
}
#shopinfo #ggmap .ggmap {
  height: 250px;
}
#shopinfo #ggmap .ggmap iframe {
  width: 100%;
  height: 100%;
}
#shopinfo #ggmap .btn-link {
  margin: 49px 0 0;
}
#shopinfo #ggmap .btn-link a {
  display: block;
  color: #fff;
  border: 1px solid #453a2b;
  transition: all 0.5s;
  position: relative;
  overflow: hidden;
  text-align: center;
  font-size: 18px;
  padding: 6px 0;
  line-height: 2;
  text-decoration: none;
  letter-spacing: 0.1em;
  background: #453a2b;
}
#shopinfo #ggmap .btn-link a span {
  position: relative;
  z-index: 2;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  #shopinfo {
    margin: 243px 0 0;
    padding: 71px 0 126px;
  }
  #shopinfo::before {
    top: -100px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 1400px;
    max-width: calc(100% - 60px);
  }
  #shopinfo .logo {
    width: 110px;
  }
  #shopinfo .logo img{
    width:100%;
    height:auto;
  }
  #shopinfo .tel {
    margin: 65px 0 0;
  }
  #shopinfo .tel .sub-tel {
    font-size: 14px;
  }
  #shopinfo .tel span {
    font-size: 35.5px;
    padding: 0 0 0 22px;
    background: url("../img/shared/icon_tel.png") no-repeat left center/18px auto;
  }
  #shopinfo .btn-web {
    width: 226px;
    margin: 16px auto 0;
  }
  #shopinfo .btn-web a {
    font-size: 16.5px;
    padding: 1.5px 0;
  }
  #shopinfo .btn-web a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 100%;
    background: #fff;
    transform: scale(0);
    transition: transform 0.3s ease-out;
  }
}
@media screen and (min-width: 768px) and (hover: hover) {
  #shopinfo .btn-web a:hover {
    color: #000;
  }
  #shopinfo .btn-web a:hover::before {
    transform: scale(2);
  }
}
@media screen and (min-width: 768px) {
  #shopinfo .info {
    margin: 100px auto 0;
    width: 680px;
  }
  #shopinfo .info dl {
    padding: 0 0 12px 18px;
    display: flex;
    font-size: 15px;
    line-height: 26px;
  }
  #shopinfo .info dl dt {
    width: 170px;
  }
  #shopinfo .info dl dd {
    width: calc(100% - 150px);
    margin: 0 -20px 0 0;
  }
  #shopinfo .info dl dd a {
    padding: 0 0 0 13px;
  }
  #shopinfo .info dl dd a img {
    width: 10px;
    margin-right: 12px;
  }
  #shopinfo .info dl dd a::before {
    height: 16px;
  }
  #shopinfo .box-notice {
    margin: 15px auto 0;
    width: 680px;
    padding: 0 0 22px 18px;
    font-size: 15px;
    line-height: 26px;
  }
  #shopinfo .box-notice .txt {
    margin: 7px 0 0 23px;
  }
  #shopinfo .row1 {
    margin: 93px auto 0;
    width: 680px;
    text-align: left;
  }
  #shopinfo .row1 .title {
    font-size: 20px;
    margin: 0 0 36px 11px;
  }
  #shopinfo .row2 {
    margin: 80px auto 0;
    width: 680px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    position: relative;
    flex-wrap: wrap;
  }
  #shopinfo .row2 .group-txt {
    position: absolute;
    top: 69px;
    right: -41px;
    line-height: 1.875;
    margin: 0;
  }
  #shopinfo .row2 .group-txt .txt + .txt {
    margin-top: 5px;
  }
  #shopinfo .row2 .title {
    width: 100%;
    margin: 18px 0 0;
  }
  #shopinfo #ggmap {
    width: 680px;
    padding: 103px 0 0;
    margin: 126px auto 0;
    position: relative;
  }
  #shopinfo #ggmap::before {
    left: 14px;
    right: 15px;
  }
  #shopinfo #ggmap h2 {
    margin: 0 0 0 11px;
    text-align: left;
  }
  #shopinfo #ggmap .group-btn {
    margin: 1px 0 19px;
    font-size: 12px;
    line-height: 1.5;
    display: flex;
    justify-content: flex-end;
    gap: 30px;
  }
  #shopinfo #ggmap .group-btn .btn a img {
    display: inline-block;
    margin-left: 7px;
    width: 5px;
    vertical-align: baseline;
  }
  #shopinfo #ggmap .group-btn .btn2 a img {
    display: inline-block;
    margin-left: 7px;
    width: 15px;
    vertical-align: baseline;
    position: relative;
    top: 2px;
  }
  #shopinfo #ggmap .ggmap {
    height: 500px;
  }
  #shopinfo #ggmap .btn-link {
    margin: 56px auto 0;
    width: 340px;
  }
  #shopinfo #ggmap .btn-link a {
    color: #000;
    border: 1px solid #292522;
    font-size: 16px;
    padding: 13px 0;
    background: transparent;
  }
  #shopinfo #ggmap .btn-link a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 100%;
    background: #453a2b;
    transform: scale(0);
    transition: transform 0.3s ease-out;
  }
}
@media screen and (min-width: 768px) and (hover: hover) {
  #shopinfo #ggmap .btn-link a:hover {
    color: #fff;
    border-color: #453a2b;
  }
  #shopinfo #ggmap .btn-link a:hover::before {
    transform: scale(2);
  }
}

#news {
  padding: 13.2vw 0 23.3vw;
}
@media screen and (max-width: 767px) {
  #news .wrap {
    padding: 0 7.2vw;
  }
}
#news h2 {
  font-size: 25px;
  line-height: 1.5;
  text-align: center;
}
#news #feed {
  margin: 53px 0 0;
}
#news #feed dl {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  #news #feed dl + dl {
    margin-top: 22px;
  }
}
#news #feed dl dt {
  width: 125px;
}
#news #feed dl dt a {
  display: block;
  height: 87.5px;
}
#news #feed dl dt a span {
  display: block;
  width: 100% !important;
  height: 100% !important;
  background: url("../img/index/rss_img.jpg") no-repeat center/cover;
}
#news #feed dl dd {
  width: calc(100% - 149px);
}
#news #feed dl dd span {
  display: block;
  color: #5a4a3b;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0;
}
#news #feed dl dd a {
  display: block;
  margin: 20px 0 0;
  font-size: 13px;
  line-height: 23px;
  letter-spacing: 0;
  text-align: justify;
}
#news .btn-more {
  margin: 39px 0 0;
}
#news .btn-more a {
  display: block;
  text-decoration: none;
  position: relative;
  background: #453a2b;
  border: 1px solid #101010;
  font-size: 18px;
  line-height: 1.5;
  padding: 10.5px 0;
  letter-spacing: 0.05em;
  overflow: hidden;
  text-align: center;
  color: #fff;
}
#news .btn-more a span {
  display: inline-block;
  position: relative;
  z-index: 2;
}
#news .btn-more a:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  background: url("../img/index/arrow_btn.png") no-repeat center/100% auto;
  width: 15.5px;
  height: 2.5px;
  right: 18px;
  transition: all 0.1s;
}
@media screen and (min-width: 768px) {
  #news {
    padding: 149px 0 121px;
  }
  #news .wrap {
    width: 1200px;
  }
  #news .inner {
    width: 1098px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: 0 0 0 3px;
    max-width: 100%;
  }
  #news h2 {
    font-size: 24px;
    line-height: 1.5;
    text-align: left;
  }
  #news #feed {
    display: flex;
    gap: 78px;
    width: 747px;
    max-width: calc(100% - 150px);
    margin: 12px 0 0;
  }
  #news #feed dl {
    width: 196px;
    display: block;
  }
  #news #feed dl dt {
    width: auto;
  }
  #news #feed dl dt a {
    height: 137px;
  }
  #news #feed dl dt a:hover {
    opacity: 0.8;
  }
  #news #feed dl dd {
    width: auto;
  }
  #news #feed dl dd span {
    position: absolute;
    left: 0;
    top: -30px;
    font-size: 14px;
  }
  #news #feed dl dd a {
    margin: 27px 0 0 3px;
    font-size: 14px;
    line-height: 30px;
  }
  #news .btn-more {
    position: absolute;
    left: 4px;
    width: 136px;
    bottom: 19px;
  }
  #news .btn-more a {
    background: transparent;
    font-size: 12px;
    padding: 7.5px 0 7.5px 18px;
    text-align: left;
    color: #000;
  }
  #news .btn-more a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 100%;
    background: #453a2b;
    transform: scale(0);
    transition: transform 0.3s ease-out;
  }
  #news .btn-more a:after {
    filter: invert(1);
    width: 16px;
    height: 3px;
    right: 13px;
  }
}
@media screen and (min-width: 768px) and (hover: hover) {
  #news .btn-more a:hover {
    color: #fff;
  }
  #news .btn-more a:hover::before {
    transform: scale(2);
  }
  #news .btn-more a:hover:after {
    filter: invert(0);
  }
}