@charset "UTF-8";
/* ============================= 共通パーツレイアウト ============================= */
@media screen {
   :root {
      --color-accent: #732413;
      --color-beige: #F2E8DF;
      --color-olive: #535A3B;
      --color-font: #0D0D0D;

      --font-kaushan: 'Kaushan Script', cursive;
      --font-poppins: 'Poppins', sans-serif;
      --font-zen-antique: 'Zen Antique', serif;
      --font-zen-kaku: 'Zen Kaku Gothic Antique', sans-serif;

      --fs-8: 8px;
      --fs-12: 12px;
      --fs-14: 14px;
      --fs-16: 16px;
      --fs-18: 18px;
      --fs-20: 20px;
      --fs-30: 30px;
      --fs-40: 40px;
      --fs-50: 50px;
      --fs-60: 60px;
      --fs-80: 80px;
   }

   html {
      scroll-behavior: smooth;
   }

   body {
      font-family: var(--font-zen-kaku);
      font-weight: 400;
      color: var(--color-font);
      font-size: var(--fs-16);
      line-height: 1.2;
      background-color: #fff;
   }

   a,
   button[type="submit"] {
      transition: opacity .3s;
   }

   a:hover,
   button[type="submit"]:hover {
      opacity: 0.7;
   }

   img {
      width: 100%;
   }

   .sp,
   .sp540,
   .tab {
      display: none;
   }

   .innerWrap {
      margin: 0 auto;
   }

   h2.h2_common {
      font-size: var(--fs-16);
      display: flex;
      flex-direction: column;
      gap: 20px;
      margin-bottom: 45px;
      font-weight: 500;
      line-height: 2;
   }

   h2.h2_common span {
      font-size: var(--fs-80);
      display: flex;
      flex-direction: column;
      gap: 10px;
      text-transform: uppercase;
      line-height: 1.2;
   }

   h2.h2_common span::after {
      content: "";
      width: 100px;
      height: 1px;
      display: block;
      background-color: var(--color-font);
   }

   h2.h2_common_center {
      align-items: center;
      text-align: center;
   }

   h2.h2_common_center span {
      align-items: center;
   }

   h2.h2_common_white span::after {
      background-color: #fff;
   }

   h2.h2_vertical {
      flex-direction: row-reverse;
   }

   h2.h2_vertical span {
      writing-mode: vertical-rl;
      text-orientation: sideways;
   }

   h2.h2_vertical span::after {

      width: 1px;
      height: 100px;
   }

   h2.h2_vertical p {
      writing-mode: vertical-rl;
      letter-spacing: .43em;
      line-height: 2;
   }

}

/* ============================= ヘッダー・フッターレイアウト ============================= */
@media screen {
   header {
      position: fixed;
      width: 100%;
      left: 0;
      top: 0;
      height: 78px;
      z-index: 100;
      background-color: rgba(255, 255, 255, 0.7);
      font-family: var(--font-poppins);
      font-size: var(--fs-18);
   }

   header .innerWrap {
      max-width: 1320px;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: space-between;
      align-items: center;
   }


   header .innerWrap>nav ul {
      display: flex;
      gap: 28px;
   }

   header .innerWrap>nav ul li a {
      display: flex;
      flex-direction: column;
      align-items: center;
   }


   header .innerWrap>nav ul li a span {
      font-size: var(--fs-8);
   }

   header .innerWrap>section {
      height: 100%;
   }

   header .innerWrap>section ul {
      display: flex;
   }

   header .innerWrap>section ul li a {
      width: 190px;
      height: 78px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
   }

   header .innerWrap>section ul li a span:last-child {
      display: flex;
      align-items: center;
      gap: 6px;
   }

   header .innerWrap>section ul li:first-child a>span:last-child::before {
      content: "";
      display: block;
      width: 18px;
      height: 18px;
      background-image: url(../img/icon_tel.svg);
      background-size: contain;
      background-repeat: no-repeat;
   }

   header .innerWrap>section ul li:last-child a span:last-child::after {
      content: "";
      display: block;
      width: 32px;
      height: 14px;
      background-image: url(../img/icon_eyelash.svg);
      background-size: contain;
      background-repeat: no-repeat;
   }

   header .innerWrap>section ul li:first-child a {
      background-color: var(--color-beige);
   }

   header .innerWrap>section ul li:last-child a {
      background-color: var(--color-accent);
      color: #fff;
   }

   header .innerWrap>section ul li a>span:first-child {
      font-size: var(--fs-12);
   }

   footer {
      background-color: var(--color-font);
      color: #fff;
      height: 160px;
      font-family: var(--font-poppins);
      font-size: var(--fs-14);
   }

   footer .innerWrap {
      max-width: 1000px;
      width: 100%;
      height: 128px;
      padding-top: 32px;
      display: flex;
      justify-content: space-between;
   }

   footer .innerWrap>div {
      display: flex;
      align-items: center;
      gap: 54px;
   }

   footer .innerWrap>div .logo {
      width: 78px;
      height: 78px;
   }

   footer .innerWrap>div>div {
      display: flex;
      flex-direction: column;
      gap: 12px;
   }

   footer .innerWrap>div>div>a {
      display: flex;
      align-items: center;
      gap: 8px;
   }

   footer .innerWrap>div>div>a::before {
      content: "";
      display: block;
      width: 14px;
      height: 14px;
      background-image: url(../img/icon_tel_w.svg);
      background-size: contain;
      background-repeat: no-repeat;
   }

   footer .innerWrap>div>div ul {
      display: flex;
      gap: 12px;
   }

   footer .innerWrap>div>div ul a {
      display: block;
      width: 18px;
      height: 18px;
   }

   footer .innerWrap>nav {
      display: flex;
      gap: 80px;
      ;
   }

   footer .innerWrap>nav li:not(:last-child) {
      margin-bottom: 6px;
   }

   footer>p {
      display: flex;
      justify-content: center;
      font-size: var(--fs-12);
      height: 32px;
   }
}

/* ============================= mainセクションレイアウト ============================= */
@media screen {
   main {
      margin-top: 78px;
   }

   main>section {
      scroll-margin-top: 78px;
   }

   main>section.menu {
      scroll-margin-top: -200px;
   }

   main .innerWrap {
      max-width: 1320px;
      width: 100%;
   }


   main .mainVisual .innerWrap,
   main .menu .innerWrap,
   main .staff .innerWrap,
   main .info .innerWrap {
      max-width: 1200px;
   }

   main .mainVisual .innerWrap {
      height: 810px;
      background-image: url(../img/bg_MV.png);
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      align-items: flex-end;
      gap: 100px;
      padding-bottom: 80px;
   }

   main .mainVisual .innerWrap h1 {
      width: 100%;
      display: flex;
      justify-content: center;
   }

   main .mainVisual .innerWrap h1 p {
      width: 234px;
   }

   main .mainVisual .innerWrap>p {
      font-family: var(--font-zen-antique);
      text-align: right;
      line-height: 2;
      text-shadow: 1px 1px 2px #F2E8DF;
   }

   main .reservation {
      background-image: url(../img/bg_reservation.png);
      background-size: cover;
      background-position: center;
   }

   main .reservation .innerWrap {
      padding-top: 60px;
      padding-bottom: 60px;
      color: #fff;
   }

   main .reservation ul {
      display: flex;
      justify-content: center;
      gap: 54px;
      font-weight: 500;
   }

   main .reservation ul li a {
      width: 364px;
      height: 50px;
      background-color: #fff;
      color: var(--color-font);
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
   }

   main .reservation ul li a::before {
      content: "";
      background-image: url(../img/icon_insta_red.svg);
      background-size: contain;
      background-repeat: no-repeat;
      display: block;
      width: 18px;
      height: 18px;
   }

   main .reservation ul li:nth-child(2) a::before {
      background-image: url(../img/icon_calendar_red.svg);
   }

   main .reservation ul li:nth-child(3) a::before {
      background-image: url(../img/icon_tel_red.svg);
   }

   main .about {
      position: relative;
      z-index: 2;
      background-image: url("../img/bg_about01.png"), url("../img/bg_about02.png");
      background-position: left top, right bottom 300px;
      background-repeat: no-repeat, no-repeat;
      background-size: 730px auto, 465px auto;
      font-weight: 500;
   }

   main .about .innerWrap {
      padding-top: 180px;
      padding-bottom: 160px;
      position: relative;
   }

   main .about .innerWrap::after {
      position: absolute;
      content: "";
      background-image: url(../img/bg_about03.png);
      background-size: contain;
      background-repeat: no-repeat;
      display: block;
      width: 51px;
      height: 358px;
      left: 0;
      bottom: 0;
   }

   main .about .innerWrap h2 {
      padding-left: 710px;
   }

   main .about .innerWrap>section:first-of-type {
      padding: 48px 0 48px 710px;
      background-image: url(../img/frame.svg);
      background-position: right top;
      background-repeat: no-repeat;
      background-size: 172px auto;
   }

   main .about .innerWrap>section:first-of-type h3 {
      font-size: var(--fs-30);
      margin-bottom: 60px;
      line-height: 1.4;
   }

   main .about .innerWrap>section p {
      line-height: 2;
   }

   main .about .innerWrap>section p:not(:last-child) {
      margin-bottom: 40px;
   }

   main .about .innerWrap>section:last-of-type {
      padding-top: 160px;
      padding-left: 180px;
      padding-bottom: 60px;
      background-image: url(../img/frame2.svg);
      background-position: left 80px bottom;
      background-repeat: no-repeat;
      background-size: 172px auto;
   }

   main .menu {
      position: relative;
      z-index: 1;
      padding-top: 340px;
      padding-bottom: 126px;
      margin-top: -310px;
      background-image: url("../img/bg_menu01.png"), url("../img/bg_menu03.png");
      background-position: right top, right bottom;
      background-repeat: no-repeat, no-repeat;
      background-size: 670px auto, 345px auto;
   }

   main .menu .innerWrap>ul {
      display: flex;
      gap: 50px 24px;
      flex-wrap: wrap;
   }

   main .menu .innerWrap>ul>li {
      width: calc(50% - 12px);
      padding: 32px 40px 20px 0;
      background-image: url(../img/frame_red.png), url(../img/bg_menu02.png);
      background-repeat: no-repeat, no-repeat;
      background-position: left top, right bottom;
      background-size: 108px auto, 304px auto;
   }

   main .menu .innerWrap>ul>li h3 {
      padding-left: 50px;
      font-family: var(--font-kaushan);
      font-size: var(--fs-40);
      padding-bottom: 32px;
   }

   main .menu .innerWrap>ul>li h3::first-letter {
      font-size: var(--fs-60);
   }

   main .menu .innerWrap>ul>li section {
      display: flex;
      justify-content: space-between;
   }

   main .menu .innerWrap>ul>li section>p {
      width: 184px;
      ;
   }

   main .menu .innerWrap>ul>li section>div {
      width: calc(100% - 184px - 20px);
   }

   main .menu .innerWrap>ul>li section>div .menu-item {
      display: flex;
      justify-content: space-between;
      line-height: 2;
   }

   main .menu .innerWrap>ul>li section>div .menu-item h4 {
      font-weight: 500;
   }

   main .menu .innerWrap>ul>li section>div .menu-item h4 span {
      display: inline-block;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      text-align: right;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li {
      display: flex;
      align-items: center;
      gap: 20px;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li span {
      font-size: var(--fs-14);
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li.fornew {
      flex-direction: column;
      gap: 0;
      align-items: flex-end;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li.fornew span {
      font-size: var(--fs-12);
   }

   main .staff {
      padding-top: 156px;
      margin-top: -76px;
      padding-bottom: 150px;
      background-image:
         url("../img/bg_staff01.png"),
         url("../img/bg_staff02.png"),
         url("../img/bg_staff03.png");

      background-position:
         left bottom,
         right bottom -40px,
         left top;

      background-repeat:
         no-repeat,
         no-repeat,
         no-repeat;

      background-size:
         405px auto,
         308px auto,
         326px auto;
   }

   main .staff ul {
      display: flex;
      gap: 40px;
      margin-top: -450px;
      padding-left: 70px;
   }

   main .staff ul li {
      text-align: center;
      width: 430px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
   }

   main .staff ul li>p:first-of-type {
      width: 310px;
   }

   main .staff ul li>p:last-of-type {
      line-height: 2;
   }

   main .staff ul li h3 {
      font-size: var(--fs-30);
      font-weight: 700;
      letter-spacing: .1em;
      text-shadow: 1px 2px 4px #732413;
   }

   main .staff ul li:last-child h3 {
      text-shadow: 1px 2px 4px #535A3B;
   }

   main .gallery {
      background-image: url("../img/bg_gallery.png");
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      padding-top: 80px;
   }

   main .gallery .innerWrap {
      max-width: 100%;
   }

   main .gallery .innerWrap h2 {
      width: 100%;
      max-width: 1200px;
      margin: 0 auto 100px;
   }

   main .gallery .treatment_photo {
      width: 220px;
      height: 220px;
      margin-bottom: 24px;
      border-radius: 50%;
      overflow: hidden;
   }

   main .gallery .treatment_photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      /* 中央に配置 */
   }

   main .gallery li.staff_Ayu .treatment_photo {
      border: 2px solid #732413
   }

   main .gallery li.staff_Kiri .treatment_photo {
      border: 2px solid #535A3B
   }

   main .gallery li .gallery-contents::before {
      position: absolute;
      top: 0;
      left: 0;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      color: #fff;
      font-size: var(--fs-14);
      font-weight: 900;
      display: flex;
      align-items: center;
      justify-content: center;
   }

   main .gallery li.staff_Ayu .gallery-contents::before {
      content: "Ayu";
      background-color: rgba(115, 36, 19, 0.7);
   }

   main .gallery li.staff_Kiri .gallery-contents::before {
      content: "Kiri";
      background-color: rgba(83, 90, 59, 0.7);
   }

   main .gallery li {
      width: 220px;
   }

   main .gallery li .gallery-contents {
      position: relative;
   }

   main .gallery li .treatment_detail {
      text-align: center;
      font-size: var(--fs-12);
   }

   main .gallery li .btn_comment {
      display: none;
   }

   main .gallery li.has_comment .btn_comment {
      display: inline;
      position: absolute;
      right: 0;
      top: 200px;
      width: 20px;
      height: 20px;
      cursor: pointer;
   }

   /* オーバーレイのスタイル */
   .overlay {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.7);
      z-index: 1002;
      opacity: 0;
      transition: opacity 0.7s ease-in;
   }

   .overlay.show {
      display: block;
      opacity: 1;
   }

   /* open_commentのスタイル（アニメーション用）*/
   .open_comment {
      display: none;
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translateX(-50%) translateY(-50%);
      width: 400px;
      padding: 30px 24px;
      background-color: rgba(255, 255, 255, 0.8);
      border-radius: 5px;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
      z-index: 1003;
      backdrop-filter: blur(5px);
      line-height: 1.8;
      font-size: var(--fs-14);
      opacity: 0;
      transition: opacity 0.7s ease-in;
   }

   .open_comment.show {
      display: block;
      opacity: 1;
      transform: translateX(-50%) translateY(-50%);
   }


   .open_comment p {
      max-height: 400px;
      overflow-y: auto;
   }

   .open_comment .close-btn {
      position: absolute;
      top: 5px;
      right: 5px;
      width: 20px;
      height: 20px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      font-weight: bold;
      color: #333;
   }

   .open_comment .close-btn:hover {
      color: #732413;
   }

   /* カルーセル用のスタイル */
   .gallery-carousel {
      display: flex;
      gap: 20px;
      overflow-x: auto;
      scroll-behavior: smooth;
      -ms-overflow-style: none;
      /* IE, Edge でスクロールバーを非表示 */
      scrollbar-width: none;
      /* Firefox でスクロールバーを非表示 */
      /* iOSとAndroidでスクロールバーを非表示 */
      -webkit-overflow-scrolling: touch;
      padding: 0 0 150px;
   }

   .gallery-carousel::-webkit-scrollbar {
      display: none;
   }

   .gallery-carousel li {
      flex-shrink: 0;
   }

   .gallery-carousel li:first-child {
      margin-left: calc((100vw - 1200px) / 2);
   }

   .gallery-carousel li:last-child {
      margin-right: calc((100vw - 1200px) / 2);
   }

   /* カルーセルコントローラー用のスタイル */
   .carousel-controls {
      display: flex;
      justify-content: flex-end;
      z-index: 1;
      padding-right: 326px;
      gap: 40px;
      padding-bottom: 100px;
      margin-top: -160px;
   }

   .carousel-controls button {
      background: none;
      border: none;
      cursor: pointer;
   }

   .carousel-controls button img {
      width: 53px;
      height: 53px;
   }

   .next-btn img {
      transform: rotate(180deg);
   }

   main .instagram {
      background-image: url("../img/bg_insta.png");
      background-size: cover;
      background-position: top center;
      padding-top: 80px;
      padding-bottom: 90px;
   }

   main .news {
      background-image: url("../img/bg_insta.png");
      background-size: cover;
      background-position: bottom center;
      padding-top: 60px;
      padding-bottom: 150px;
   }

   main .news .innerWrap {
      max-width: 1000px;
   }

   main .news ul {
      display: flex;
      flex-direction: column;
      gap: 40px;
   }

   main .news ul li {
      padding: 40px;
      background-color: #fff;
      box-shadow: 2px 2px 10px 0 rgba(13, 13, 13, 0.5);
   }

   main .news ul li>div {
      display: inline-flex;
      gap: 40px;
      border-bottom: 1px solid var(--color-font);
      padding-bottom: 4px;
      margin-bottom: 12px;
      letter-spacing: .1em;
   }

   main .news ul li>div h3 {
      font-weight: 500;
   }

   main .news ul li>div span {
      display: flex;
      align-items: center;
      gap: 10px;
   }

   main .news ul li>div span::before {
      content: "◯";
   }

   main .news ul li>p {
      line-height: 2;
   }

   main .info {
      padding-top: 80px;
      padding-bottom: 150px;
      background-image: url('../img/bg_info01.png'), url('../img/bg_info02.png'), url('../img/bg_info03.png');
      background-position: left top, right top 220px, left bottom;
      background-repeat: no-repeat;
      background-size: 756px auto, 368px auto, 834px auto;
      position: relative;
   }

   main .info::after {
      position: absolute;
      right: 0;
      bottom: 0;
      content: "";
      width: 237px;
      height: 224px;
      background-color: var(--color-olive);
   }

   main .info .h2_common {
      font-size: var(--fs-14);
   }

   main .info .innerWrap>div {
      display: flex;
      align-items: flex-end;
      flex-direction: column;
      gap: 35px;
      margin-bottom: 140px;
   }

   main .info .innerWrap div>* {
      width: 480px;
   }

   main .info .innerWrap div ul {
      display: flex;
      flex-direction: column;
      gap: 40px;
      font-size: var(--fs-14);
   }

   main .info .innerWrap div ul li {
      display: flex;
      flex-direction: column;
      gap: 6px;
      align-items: flex-start;
      line-height: 2;
   }

   main .info .innerWrap div ul li span:first-child {
      font-family: var(--font-kaushan);
      padding: 3px 6px;
      background-color: var(--color-beige);
      line-height: 1.2;
   }

   main .info .innerWrap>section {
      display: flex;
      gap: 20px
   }

   main .info .innerWrap>section>* {
      width: calc(50% - 10px);
   }

   main .info .innerWrap>section>ul {
      line-height: 2;
   }

   main .info .innerWrap>section>ul li {
      padding-left: 40px;
      background-image: url(../img/icon_map.svg);
      background-repeat: no-repeat;
      background-position: top .4em left;
   }

   main .info .innerWrap>section>ul li:nth-child(2) {
      background-image: url(../img/icon_train.svg);
   }

   main .info .innerWrap>section>ul li:nth-child(3) {
      background-image: url(../img/icon_car.svg);
   }

   main .info .innerWrap>section>ul li:not(:last-child) {
      margin-bottom: 40px;
   }

   main .info .innerWrap>section>ul li span:last-child {
      font-size: var(--fs-12);
   }

   main .info .innerWrap>section>ul li span:first-child {
      font-weight: 500;
      display: block;
      font-size: var(--fs-16);
   }

   main .info .innerWrap>section>iframe {
      height: 420px;
      z-index: 1;
   }
}


/* ============================= レスポンシブ〜1440px ============================= */
@media screen and (max-width:1440px) {
   .innerWrap {
      padding-left: 20px;
      padding-right: 20px;
   }

   main .gallery .innerWrap {
      padding-left: 0;
      padding-right: 0;
   }

   main .gallery .innerWrap h2 {
      padding-left: 20px;
      padding-right: 20px;
   }

   header .innerWrap {
      padding-right: 0;
   }

   main .about {
      background-position: left top, right bottom calc(100vw * (360 / 1440));
      background-size: calc(100vw * (600 / 1440)) auto, calc(100vw * (465 / 1440)) auto;
   }

   main .about .innerWrap h2 {
      padding-left: calc(100vw * (610 / 1440));
   }

   main .about .innerWrap>section:first-of-type {
      padding: 48px 0 48px calc(100vw * (610 / 1440));
      background-size: calc(100vw * (172 / 1440)) auto;
   }

   main .about .innerWrap>section:last-of-type {
      padding-top: calc(100vw * (160 / 1440));
      padding-left: calc(100vw * (180 / 1440));
      padding-bottom: calc(100vw * (60 / 1440));
      background-position: left calc(100vw * (80 / 1440)) bottom;
      background-size: calc(100vw * (172 / 1440)) auto;
   }

   main .about .innerWrap::after {
      width: calc(100vw * (51 / 1440));
      height: calc(100vw * (358 / 1440));
      left: 20px;
   }

   main .info {
      background-size: calc(100vw * (756 / 1440)) auto, calc(100vw * (368 / 1440)) auto, calc(100vw * (834 / 1440)) auto;
   }
}

/* ============================= レスポンシブ〜1200px ============================= */
@media screen and (max-width:1200px) {
   main .mainVisual .innerWrap {
      height: calc(100vw * (810 / 1200));
      background-size: calc(100vw - 40px) auto;
      gap: calc(100vw * (100 / 1200));
      padding-bottom: calc(100vw * (80 / 1200));
   }

   main .mainVisual .innerWrap h1 p {
      width: calc(100vw * (234 / 1200));
   }

   main .mainVisual .innerWrap>p {
      font-size: calc(100vw * (16 / 1200));
   }

   main .reservation ul {
      gap: calc(100vw * (34 / 1200));
   }

   main .reservation ul li a {
      width: calc(100vw * (364 / 1200));
      gap: calc(100vw * (20 / 1200));
   }

   main .about {
      background-position: left top, right bottom;
   }

   main .about .innerWrap>section:last-of-type {
      padding-top: calc(100vw * (40 / 1440));
      padding-bottom: calc(100vw * (140 / 1440));
      padding-right: calc(100vw * (70 / 1440));
   }

   main .menu .innerWrap>ul>li {
      background-size: calc(100vw * (108 / 1200)) auto, calc(100vw * (304 / 1200)) auto;
      padding: 32px 40px 40px 0;
   }

   main .menu .innerWrap>ul>li section>div .menu-item {
      flex-direction: column;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul {
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li {
      padding-left: 2em;
   }

   main .menu .innerWrap>ul>li section>p {
      width: calc(100vw * (184 / 1200));
   }

   main .menu .innerWrap>ul>li section>div {
      width: calc(100% - (100vw * (184 / 1200)) - 20px);
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li.fornew {
      flex-direction: row;
      gap: 8px;
      align-items: center;
   }

   main .staff ul {
      gap: calc(100vw * (20 / 1200));
      padding-left: 0;
   }

   main .staff ul li {
      width: calc(100vw * (400 / 1200));
      gap: calc(100vw * (20 / 1200));
   }

   main .staff ul li>p:first-of-type {
      width: calc(100vw * (310 / 1200));
   }

   .gallery-carousel li:first-child {
      margin-left: 20px;
   }

   .gallery-carousel li:last-child {
      margin-right: 20px;
   }

   .carousel-controls {
      padding-right: 20px;
   }
}

/* ============================= レスポンシブ〜1100px ============================= */
@media screen and (max-width:1100px) {
   .tab {
      display: initial;
   }

   header .innerWrap {
      justify-content: flex-end;
   }

   header .innerWrap>section ul {
      padding-right: 65px;
   }

   header .innerWrap>nav .sp {
      display: block;
      margin-top: 40px;
      margin-bottom: 40px;
   }

   header .innerWrap>nav .sp p {
      line-height: 1.6;
      margin-bottom: 20px;
   }

   header .innerWrap>nav .sp li a {
      width: 50px;
      height: 50px;
   }

   main .info {
      background-size: calc(100vw * (700 / 1440)) auto, calc(100vw * (368 / 1440)) auto, calc(100vw * (834 / 1440)) auto;
   }
}

/* ============================= レスポンシブ〜1000px ============================= */
@media screen and (max-width:1000px) {
   main .info {
      background-size: calc(100vw * (600 / 1440)) auto, calc(100vw * (368 / 1440)) auto, calc(100vw * (834 / 1440)) auto;
   }
}

/* ============================= レスポンシブ〜900px ============================= */
@media screen and (max-width:900px) {
   main .info {
      background-size: calc(100vw * (500 / 1440)) auto, calc(100vw * (368 / 1440)) auto, calc(100vw * (834 / 1440)) auto;
   }
}

/* ============================= レスポンシブ〜768px ============================= */
@media screen and (max-width:768px) {
   .sp {
      display: initial;
   }

   main>section {
      scroll-margin-top: 50px;
   }

   main>section.menu {
      scroll-margin-top: 0;
   }
   h2.h2_common span {
      font-size: var(--fs-50);
   }

   header {
      height: 50px;
   }

   header .innerWrap>section ul li a {
      width: 178px;
      height: 50px;
   }

   main {
      margin-top: 50px;
   }

   footer {
      height: auto;
   }

   footer .innerWrap {
      height: auto;
      flex-direction: column;
      align-items: center;
      gap: 20px;
      margin-bottom: 40px;
   }

   main .mainVisual .innerWrap {
      background-image: url(../img/bg_MV_sp.png);
      height: calc(100vw * (530 / 540));
   }

   main .mainVisual .innerWrap h1 p {
      width: calc(100vw * (172 / 540));
   }

   main .mainVisual .innerWrap>p {
      font-size: calc(100vw * (11 / 540));
   }

   main .reservation {
      background-image: url(../img/bg_reservation_sp.png);
   }

   main .reservation ul {
      flex-direction: column;
      align-items: center;
   }

   main .reservation ul li a {
      width: calc(100vw * (396 / 540));
      gap: calc(100vw * (20 / 540));
   }

   main .about .innerWrap {
      padding-top: 80px;
      padding-bottom: calc(100vw * (250 / 540));
   }

   main .about .innerWrap h2 {
      padding-left: calc(100vw * (180 / 540));
   }

   main .about {
      background-position: left top calc(100vw * (150 / 540)), right bottom;
      background-size: calc(100vw * (412 / 540)) auto, calc(100vw * (404 / 540)) auto;
   }

   main .about .innerWrap>section:first-of-type {
      margin-top: calc(100vw * (385 / 540));
      padding: 48px 0 48px calc(100vw * (110 / 540));
      background-size: calc(100vw * (127 / 540)) auto;
   }

   main .about .innerWrap>section:last-of-type {
      padding-left: calc(100vw * (20 / 540));
      padding-right: calc(100vw * (70 / 540));
      background-position: left bottom;
   }

   main .about .innerWrap::after {
      width: calc(100vw * (35 / 540));
      height: calc(100vw * (247 / 540));
      left: 0;
   }

   main .menu {
      padding-top: 140px;
      margin-top: -40px;
   }

   main .menu {
      background-size: calc(100vw * (330 / 540)) auto, calc(100vw * (345 / 540)) auto;
   }

   main .menu .innerWrap>ul {
      flex-direction: column;
      gap: 24px;
      flex-wrap: nowrap;
   }

   main .menu .innerWrap>ul>li {
      width: 100%;
   }

   main .menu .innerWrap>ul>li {
      background-size: calc(100vw * (70 / 540)) auto, calc(100vw * (240 / 540)) auto;
      padding: 32px 0 40px 0;
   }

   main .menu .innerWrap>ul>li h3 {
      padding-left: calc(100vw * (40 / 540));
      padding-bottom: calc(100vw * (4 / 540));
   }

   main .menu .innerWrap>ul>li section>p {
      width: calc(100vw * (150 / 540));
   }

   main .menu .innerWrap>ul>li section>div {
      width: calc(100% - (100vw * (150 / 540)) - 20px);
   }

   main .menu .innerWrap>ul>li section>div .menu-item {
      flex-direction: row;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li.fornew {
      flex-direction: column;
      gap: 0;
      align-items: flex-end;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li {
      padding-left: 0;
   }

   main .staff {
      background-position: left bottom,
         right bottom -40px,
         left top;
      background-repeat: no-repeat,
         no-repeat,
         no-repeat;
      background-size:
         calc(100vw * (317 / 540)) auto,
         calc(100vw * (236 / 540)) auto,
         calc(100vw * (243 / 540)) auto;
   }

   main .staff ul {
      display: block;
   }

   main .staff ul li {
      width: calc(100vw * (240 / 540));
      gap: calc(100vw * (20 / 1200));
   }

   main .staff ul li>p:first-of-type {
      width: calc(100vw * (240 / 540));
   }

   main .staff ul li:last-child {

      margin-left: calc(100% - (100vw * (240 / 540)));
      margin-top: calc(220px - (100vw * (240 / 540)));
   }

   main .news ul li>div {
      display: flex;
      flex-direction: column;
      gap: 16px;
   }

   main .news ul li>div h3 {
      line-height: 1.6;
   }

   main .info .innerWrap div>section {
      width: 100%;
   }

   main .info {
      background-position: left top 185px, right top calc(100px + (100vw * (500 / 540))), left bottom;
      background-size: calc(100vw - 20px) auto, calc(100vw * (357 / 540)) auto, calc(100vw * (475 / 540)) auto;
   }

   main .info .innerWrap>div {
      gap: calc(100vw * (350 / 540));
      margin-bottom: 80px;
   }

   main .info .innerWrap>section {
      flex-direction: column;
      gap: 80px;
   }

   main .info .innerWrap>section>* {
      width: 100%;
   }

   main .info .innerWrap>section>iframe {
      height: 300px;
   }

   main .info .innerWrap div> h2 {
      width: 320px;
   }
}

/* ============================= レスポンシブ〜540px ============================= */
@media screen and (max-width:540px) {
   .sp540 {
      display: initial;
   }

   header .innerWrap>section ul li a>span:first-child,
   header .innerWrap>section ul li a span:last-child span {
      display: none;
   }

   header .innerWrap>section ul li:first-child a {
      width: 65px;
   }

   header .innerWrap>section ul li:first-child a>span:last-child::after {
      content: "Tel";
      font-size: 7px;
   }

   header .innerWrap>section ul li:first-child a>span {
      flex-direction: row-reverse;
   }

   header .innerWrap>section ul {
      flex-direction: row-reverse;
   }

   main .about .innerWrap h2 {
      padding-left: calc(100vw * (80 / 540));
   }

   main .about {
      background-position: left top calc(100vw * (220 / 540)), right bottom;
   }

   main .menu .innerWrap>ul>li section>div .menu-item {
      flex-direction: column;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li.fornew {
      flex-direction: row;
      gap: 8px;
      align-items: center;
   }

   main .menu .innerWrap>ul>li section>div .menu-item ul li {
      padding-left: 2em;
   }

   .open_comment {
      width: calc(100vw - 40px);
   }

   .carousel-controls {
      gap: 20px;
      padding-bottom: 20px;
      margin-top: -80px;
   }

   .carousel-controls button img {
      width: 40px;
      height: 40px;
   }
}






/* ============================= ハンバーガー ============================= */
@media screen and (max-width:1100px) {
   .sp.hmbgrbtn-container {
      display: block;
      width: 65px;
      height: 78px;
      position: absolute;
      top: 0;
      right: 0;
      background-color: var(--color-font);
      z-index: 1001;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 4px;
   }

   .sp.hmbgrbtn-container::before {
      content: "Menu";
      font-size: 7px;
      color: #fff;
   }

   /* ハンバーガーボタン */
   .menu-toggle {
      width: 30px;
      height: 24px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer;
      background: none;
      border: none;
   }

   .menu-toggle span {
      display: block;
      height: 1px;
      width: 100%;
      background: #fff;
      transition: all 0.3s ease;
   }

   .menu-toggle span:nth-child(3) {
      width: 20px;
   }

   /* ✗に変形 */
   .menu-toggle.active span:nth-child(1) {
      transform: translateY(11.5px) rotate(45deg);
   }

   .menu-toggle.active span:nth-child(2) {
      opacity: 0;
   }

   .menu-toggle.active span:nth-child(3) {
      transform: translateY(-11.5px) rotate(-45deg);
      width: 100%;
   }

   /* ナビゲーションメニュー */

   header nav.open {
      right: 0;
   }

   header nav {
      position: fixed;
      top: 78px;
      right: -360px;
      /* 初期状態: 画面外 */
      width: 360px;
      height: calc(100vh - 78px);
      color: #fff;
      background: var(--color-font);
      box-shadow: -2px 0 8px rgba(0, 0, 0, 0.2);
      transition: right 0.35s ease;
      z-index: 1000;
      padding: 30px 40px 0;
   }

   header .innerWrap>nav>ul {
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
   }

   header .innerWrap>nav>ul li {
      width: 100%;
      border-bottom: 1px dashed #fff;
      position: relative;
   }

   header .innerWrap>nav>ul li a {
      align-items: flex-start;
      padding-top: 20px;
      padding-bottom: 20px;
   }

   header .innerWrap>nav>ul li::after {
      content: '';
      position: absolute;
      right: 15px;
      top: 50%;
      transform: translateY(-50%);
      border-top: 1px solid #fff;
      border-right: 1px solid #fff;
      width: 10px;
      height: 10px;
      transform: translateY(-50%) rotate(45deg);
   }

   /* オーバーレイ */
   #menu-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.5);
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.35s ease;
      z-index: 999;
   }

   #menu-overlay.active {
      opacity: 1;
      visibility: visible;
   }
}

@media screen and (max-width:768px) {
   .pc {
      display: none;
   }

   .sp.hmbgrbtn-container {
      height: 50px;
   }

   header nav {
      right: -100vw;
      width: 100vw;
      top: 50px;
      height: calc(100vh - 50px);
      overflow-y: auto;
   }
}


/* ============================= フェードイン ============================= */
@media screen {
   .fade-in {
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 0.6s ease-out, transform 0.6s ease-out;
   }

   .fade-in.is-visible {
      opacity: 1;
      transform: translateY(0);
   }
}