@charset "utf-8";

/* ============================================================
   1440px MAX VIEWPORT SCALE FIX
   - Original design behavior is preserved up to 1440px.
   - vw-based dimensions stop growing above 1440px.
   - SP/tablet behavior remains equivalent because vw is smaller
     than the 1440px cap at those viewport widths.
   ============================================================ */

/* ===========================
 style
 =========================== */

 .slick-track {
    display: flex !important;
  }
  .slick-slide {
    height: auto;
  }
  

 :root {
    --primary-lightbrown: #9D9684;
    --primary-brown: #4A3D3D;
    --primary-beige: #EDEBE6;
    --contentPadding: 0 2.7%;
    --fontFamilyEN: 'Crimson Text';
    --fontFamilyJP: 'Shippori Mincho';
    --background: 237 235 230;

    /*
      フォントサイズ基準（calc構文）
      近しい文字サイズは下記の5種類に統一。
    */
    --fz-en-title: calc(0.7rem + min(0.45vw, 6.48px));
    --fz-body: calc(1.1rem + min(0.3vw, 4.32px));
    --fz-button: calc(1.1rem + min(0.4vw, 5.76px));
    --fz-small-title: calc(1.0rem + min(0.3vw, 4.32px));
    --fz-chef-name: calc(0.9rem + min(0.5vw, 7.2px));

    --fz-en-title-sp: calc(0.6rem + min(1.2vw, 17.28px));
    --fz-body-sp: calc(0.8rem + min(1.4vw, 20.16px));
    --fz-button-sp: calc(1.1rem + min(0.8vw, 11.52px));
    --fz-section-title-sp: calc(1.0rem + min(2.2vw, 31.68px));
    --fz-chef-name-sp: calc(1.1rem + min(1.6vw, 23.04px));

    /*
      旧メモ
      フォントサイズ基準（calc構文）
      calc(固定最小値 + 可変vw) で、小さい画面でも潰れず、大画面でも大きくなりすぎない。

      見出し大  : calc(1.2rem + min(1.2vw, 17.28px))  ≒ PC:約2.4rem / SP:約1.6rem
      見出し中  : calc(1.0rem + min(0.8vw, 11.52px))  ≒ PC:約2.0rem / SP:約1.4rem
      本文      : calc(1.1rem  + min(0.4vw, 5.76px))  ≒ PC:約1.4rem / SP:約1.2rem
      補足・小  : calc(1.1rem + min(0.3vw, 4.32px))  ≒ PC:約1.2rem / SP:約1.1rem
    */
}


/* article header */

.article__header {
    margin-right: auto;
}


/* =========================
   top slider（フェード）
========================= */

.slider-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.pc-slider {
  display: block;
  height: min(53vw, 763.2px);
  margin: min(2vw, 28.8px) 0;
}

.sp-slider {
  display: none;
}

.slider-wrap img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slider-wrap img.active {
  opacity: 1;
}

@media (max-width: 768px) {
  .pc-slider {
    display: none;
  }
  .sp-slider {
    display: block;
    height: min(145vw, 2088px);
    z-index: 2;
  }
  .slider-wrap img {
    height: 125%;
  }
}


/* =========================
   about
========================= */

.title__JA {
    width: min(10.5vw, 151.2px);
    height: auto;
}

.title__EN {
    color: var(--primary-lightbrown);
    transform: rotate(90deg);
    letter-spacing: min(0.4vw, 5.76px);
    margin: 0 max(-2vw, -28.8px);
    font-size: var(--fz-en-title);
}

#about {
    margin: 0 0 min(10vw, 144px) 0;
}

.about__blockSP {
    display: none;
}

.about__blockPC {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    margin: min(14vw, 201.6px) min(12vw, 172.8px) 0px 0;
    position: relative;
}

.about__box {
    display: flex;
    flex-wrap: wrap;
    width: min(55vw, 792px);
    gap: min(2.4vw, 34.56px);
    transform: rotate(45deg);
    margin: min(24vw, 345.6px) min(2vw, 28.8px) 0 0;
    transition: transform 1s ease;
}

.about__box.is-active {
    transform: rotate(0deg);
}

.about__img {
    width: min(26vw, 374.4px);
    height: auto;
}

.box__brown {
    width: 450px;
    height: 450px;
    background-color: #9D9684;
}

.about__title {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.beige {
    width: min(45vw, 648px);
    height: min(45vw, 648px);
    background: var(--primary-lightbrown);
    position: absolute;
    top: min(50vw, 720px);
    left: min(53vw, 763.2px);
    transform: translate(-50%, -50%) rotate(45deg);
    opacity: 0.1;
    z-index: -100;
}

.about__txt {
    display: block;
    width: min(36vw, 518.4px);
    text-align: center;
    font-size: var(--fz-body);
    letter-spacing: min(0.12vw, 1.728px);
    line-height: 3.2;
    margin: max(-16vw, -230.4px) min(5vw, 72px) 0 auto;
}

.about__detail {
    display: block;
}

.illust_dot {
    position: absolute;
    display: block;
    width: min(20vw, 288px);
    height: auto;
    top: max(-10vw, -144px);
    right: max(-4vw, -57.6px);
    opacity: 0.1;
}

@media screen and (max-width:768px) {

    #about {
        margin: 0 0 min(24vw, 345.6px) 0;
    }

    .title__JA {
        width: min(18vw, 259.2px);
        height: auto;
    }

    .title__EN {
        font-size: var(--fz-en-title-sp);
    }

    .about__box {
        display: flex;
        flex-wrap: wrap;
        width: min(70vw, 1008px);
        gap: min(3vw, 43.2px);
        margin: max(-22vw, -316.8px) min(38vw, 547.2px) 0px 0;
    }

    .about__title {
        display: flex;
        justify-content: flex-end;
        align-items: flex-start;
        margin: 0 min(5vw, 72px) 0 0;
    }

    .beige {
        width: min(60vw, 864px);
        height: min(60vw, 864px);
        position: absolute;
        top: min(99vw, 1425.6px);
        left: min(55vw, 792px);
        transform: translate(-50%, -50%) rotate(45deg);
        opacity: 0.1;
        z-index: -100;
    }

    .about__blockPC {
        flex-direction: column;
        justify-content: flex-end;
        align-items: flex-end;
        margin: min(18vw, 259.2px) min(0vw, 0px) 0px 0;
        position: relative;
    }

    .about__imgBox {
        order: 2;
        margin: min(17vw, 244.8px) 0 0;
    }

    .about__detail {
        display: block;
        margin: 0;
        order: 1;
    }

    .about__txt {
        display: block;
        width: min(82vw, 1180.8px);
        text-align: -webkit-right;
        font-size: var(--fz-body-sp);
        line-height: 3.0;
        margin: min(11vw, 158.4px) min(5vw, 72px) 0 auto;
    }

    .about__img {
        width: min(33vw, 475.2px);
        height: auto;
    }

    .box__brown {
        width: 215px;
        height: 215px;
    }

    .illust_dot {
        position: absolute;
        display: block;
        width: min(46vw, 662.4px);
        height: auto;
        top: max(-34vw, -489.6px);
        left: auto;
        opacity: 0.1;
    }
}


/* =========================
   menu
========================= */

.section--menu {
    background: rgb(var(--background) / 60%);
    padding: min(10vw, 144px) 0;
    position: relative;
    overflow: hidden;
}

.menu__title {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.menu__contents {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: min(3vw, 43.2px);
    margin: 60px 0 0;
}

.img_cutlery {
    position: absolute;
    width: min(24vw, 345.6px);
    top: min(30vw, 432px);
    left: min(19vw, 273.6px);
}

.diamond_menu {
    width: 480px;
    height: 480px;
    background: #EDEBE6;
    position: absolute;
    top: 120px;
    left: 80%;
    transform: translate(-50%, -50%) rotate(45deg);
    opacity: 0.2;
    z-index: -100;
}

.menu__bento {
    display: block;
    position: relative;
}

.menu__bento::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(71, 61, 61, 0.6);
}

.menu__detail_bento {
    position: absolute;
    text-align: center;
    bottom: 0;
    left: 37%;
    color: #ffffff;
}

.menu__detail_catering {
    position: absolute;
    text-align: center;
    bottom: 0;
    left: 29%;
    color: #ffffff;
}

h3 {
    writing-mode: vertical-rl;
    display: block;
    position: relative;
    color: var(--primary-brown);
    background-color: #ffffff;
    margin: 0;
    font-size: min(1.8vw, 25.92px);
    letter-spacing: min(0.6vw, 8.64px);
    padding: min(2vw, 28.8px);
    margin: 0 auto min(4vw, 57.6px);
}

.border_bento {
    writing-mode: vertical-rl;
    display: block;
    position: absolute;
    top: max(-0.8vw, -11.52px);
    left: min(2.6vw, 37.44px);
    color: #ffffff;
    margin: 0;
    font-size: min(1.8vw, 25.92px);
    letter-spacing: min(0.5vw, 7.2px);
    padding: min(2vw, 28.8px);
    border: 2px solid #ffffff;
}

.border_catering {
    writing-mode: vertical-rl;
    display: block;
    position: absolute;
    top: max(-0.8vw, -11.52px);
    left: min(6.1vw, 87.84px);
    color: #ffffff;
    margin: 0;
    font-size: min(1.8vw, 25.92px);
    letter-spacing: min(0.68vw, 9.792px);
    padding: min(1.6vw, 23.04px) min(1.9vw, 27.36px);
    border: 2px solid #ffffff;
}

.menu__text {
    text-align: center;
    font-size: min(1.3vw, 18.72px);
    letter-spacing: min(0.3vw, 4.32px);
    line-height: 2;
    margin: 0 0 min(3vw, 43.2px) 0;
}

.menu__detail_catering h3 {
    margin: 0 auto min(2vw, 28.8px);
}

.menu__detail_catering .menu__text {
    margin: 0 0 min(2vw, 28.8px) 0;
}

.menu__detail_bento > .menu__btn {
    font-size: min(1.6vw, 23.04px);
    margin: min(2.1vw, 30.24px) 0 0;
}

.menu__detail_catering > .menu__btn {
    font-size: min(1.6vw, 23.04px);
    margin: min(1vw, 14.4px) 0 0;
}

.section--menu .diamond {
    width: min(36vw, 518.4px);
    height: min(36vw, 518.4px);
    background: var(--primary-lightbrown);
    opacity: 0.1;
    position: absolute;
    top: min(32vw, 460.8px);
    left: min(92vw, 1324.8px);
    transform: translate(-50%, -50%) rotate(45deg);
}

.section--menu .illust_dot {
    position: absolute;
    display: block;
    width: min(20vw, 288px);
    height: auto;
    top: min(3vw, 43.2px);
    right: min(11vw, 158.4px);
    opacity: 0.1;
}

.menu__bento .detail__btn {
    margin: 0 0 min(2.4vw, 34.56px) 0;
    gap: min(1vw, 14.4px);
    justify-content: center;
}

.menu__bento .detail__btn img {
    width: min(4vw, 57.6px);
}

.detail__btn a {
    display: contents;
}

@media screen and (max-width:768px) {

    .section--menu {
        margin: 0;
        padding: min(24vw, 345.6px) 0;
    }

    .section--menu .diamond {
        width: min(76vw, 1094.4px);
        height: min(76vw, 1094.4px);
        opacity: 0.2;
        position: absolute;
        top: min(91vw, 1310.4px);
        left: min(91vw, 1310.4px);
        transform: translate(-50%, -50%) rotate(45deg);
        z-index: -9999;
    }

    .section--menu .illust_dot {
        width: min(46vw, 662.4px);
        height: auto;
        top: min(41vw, 590.4px);
        left: min(58vw, 835.2px);
    }

    .img_cutlery {
        position: absolute;
        width: min(38vw, 547.2px);
        top: min(70vw, 1008px);
        left: min(10vw, 144px);
    }

    .menu__contents {
        display: block;
    }

    .menu__title {
        display: flex;
        justify-content: center;
        margin: 0 0 0 min(7vw, 100.8px);
        align-items: flex-start;
    }

    .menu__bento {
        margin: min(6vw, 86.4px) 0 0;
    }

    /* =========================
       SP 縦書きタイトル修正
       元のサイズ・位置を維持
    ========================= */

    .menu__detail_bento {
        top: min(20vw, 288px);
        left: min(36vw, 518.4px);
        transform: none;
        width: auto;
        color: #ffffff;
    }

    .menu__detail_catering {
        top: min(11vw, 158.4px);
        left: min(28vw, 403.2px);
        bottom: 0;
        transform: none;
        width: auto;
        color: #ffffff;
    }

    h3 {
        writing-mode: vertical-rl;
        text-orientation: upright;
        display: block;

        /* 固定幅・固定高を持たせず元の細さを維持 */
        width: auto;
        height: auto;

        font-size: min(4vw, 57.6px);
        letter-spacing: min(1.8vw, 25.92px);
        padding: min(5.5vw, 79.2px) min(4.5vw, 64.8px);
        margin: 0 auto min(4.5vw, 64.8px);

        line-height: 1;
        white-space: nowrap;
    }

    .border_bento {
        writing-mode: vertical-rl;
        text-orientation: upright;
        display: block;

        width: auto;
        height: auto;

        top: max(-2vw, -28.8px);
        left: min(4.5vw, 64.8px);

        font-size: min(4vw, 57.6px);
        letter-spacing: min(1.8vw, 25.92px);
        padding: min(5.5vw, 79.2px) min(4.5vw, 64.8px);
        margin: 0 auto min(4.5vw, 64.8px);

        line-height: 1;
        white-space: nowrap;
        border: 1px solid #ffffff;
    }

    .border_catering {
        writing-mode: vertical-rl;
        text-orientation: upright;
        display: block;

        width: auto;
        height: auto;

        top: max(-2vw, -28.8px);
        left: min(13vw, 187.2px);

        font-size: min(4vw, 57.6px);
        letter-spacing: min(1.8vw, 25.92px);
        padding: min(5.5vw, 79.2px) min(4.5vw, 64.8px);
        margin: 0 auto min(4.5vw, 64.8px);

        line-height: 1;
        white-space: nowrap;
        border: 1px solid #ffffff;
    }

    .menu__text {
        text-align: center;
        font-size: min(3vw, 43.2px);
        letter-spacing: 2px;
        line-height: 2;
        margin: 0 0 15% 0;
    }

    .menu__bento .detail__btn {
        display: none;
    }

}


/* =========================
   instagram
========================= */

.section--instagram {
    max-width: 1040px;
    margin: 0 auto;
}

.instagram__blockSP {
    display: none;
}

.instagram__blockPC {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin: min(9vw, 129.6px) 0;
    gap: min(8vw, 115.2px);
}

.instagram__contents {
    display: flex;
    flex-wrap: wrap;
    width: min(35vw, 504px);
    gap: min(2.4vw, 34.56px);
}

.instagram__detail {
    margin: 0 80px 0 0;
}

.insta_img {
    width: min(16vw, 230.4px);
    height: auto;
}

.instagram__title {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin: 0 min(1vw, 14.4px) min(4vw, 57.6px);
}

.instagram__title > .title__JA {
    writing-mode: vertical-rl;
    font-size: min(2vw, 28.8px);
    letter-spacing: min(0.8vw, 11.52px);
}

.instagram__title > .title__EN {
    font-size: var(--fz-en-title);
    margin: min(3vw, 43.2px) max(-4vw, -57.6px) min(0vw, 0px);
}

.instagram__btn,
.note__btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: min(20vw, 288px);
    padding: min(2vw, 28.8px) min(2vw, 28.8px);
    border: solid 1px #4A3D3D;
    gap: min(1vw, 14.4px);
}

.instagram__btn > p {
    font-size: var(--fz-button);
    letter-spacing: min(0.2vw, 2.88px);
}

.instagram__btn > img {
    width: min(2vw, 28.8px);
    height: auto;
}

.note {
    display: flex;
    justify-content: space-between;
    border: solid 1px #4A3D3D;
    width: auto;
}

.note__block {
    margin: 0 auto;
    padding: 36px 160px;
}

.note__txt_block {
    text-align: center;
}

.note__txt {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: var(--fz-body);
    text-align: center;
}

.note__txt > img {
    width: 110px;
    height: auto;
}

.note__btn > img {
    width: 30px;
    height: auto;
}

.note__txt02 {
    font-size: var(--fz-body);
}

.note__btn > p {
    font-size: var(--fz-button);
}

.note__img {
    width: 400px;
    height: auto;
}

@media screen and (max-width:768px) {

    .section--instagram {
        max-width: min(98vw, 1411.2px);
        margin: auto;
    }

    .instagram__blockPC {
        display: none;
    }

    .instagram__blockSP {
        display: flex;
        justify-content: flex-start;
        align-items: baseline;
        margin: min(24vw, 345.6px) 0;
    }

    .instagram__contents {
        display: flex;
        flex-wrap: wrap;
        width: min(67vw, 964.8px);
        gap: min(2vw, 28.8px);
    }

    .insta_img {
        width: min(31.5vw, 453.6px);
        height: auto;
    }

    .instagram__title {
        margin: max(-2vw, -28.8px);
    }

    .instagram__title > .title__JA {
        font-size: var(--fz-section-title-sp);
        letter-spacing: min(2vw, 28.8px);
    }

    .instagram__title > .title__EN {
        font-size: var(--fz-en-title-sp);
        margin: min(5vw, 72px) max(-8vw, -115.2px) 0px max(-7vw, -129.6px);
    }

    .instagram__detail {
        margin: 0px 0 0 min(6vw, 86.4px);
    }

    .instagram__btn,
    .note__btn {
        width: min(65.5vw, 943.2px);
        padding: min(5vw, 72px) min(11vw, 158.4px);
        border: solid 1px #4A3D3D;
        gap: min(3vw, 43.2px);
        margin: min(4vw, 57.6px) 0;
    }

    .instagram__btn > p,
    .note__btn > p {
        font-size: var(--fz-button-sp);
        letter-spacing: 2px;
    }

    .instagram__btn > img {
        width: min(5.5vw, 79.2px);
        height: auto;
    }

    .note {
        display: block;
        border: solid 1px #4A3D3D;
        width: auto;
        margin: 64px auto;
        overflow: hidden;
        width: 89%;
    }

    .note__block {
        margin: 0 auto;
        padding: 40px 0;
    }

    .note__txt {
        font-size: var(--fz-button-sp);
    }

    .note__txt > img {
        width: 90px;
        height: auto;
    }

    .note__txt02 {
        font-size: var(--fz-button-sp);
    }

    .note__img {
        width: 100%;
        height: auto;
    }
}


/* =========================
   gallery
========================= */



/* ----------
   共通
---------- */

.section--gallery {
    background-color: rgba(var(--background) / 60%);
    position: relative;
}

.gallery__contents::before,
.gallery__contents::after {
    display: none !important;
}

.gallery__title {
    display: flex;
    align-items: flex-start;
}

.gallery__block {
    display: flex;
}

.Pointer {
    display: flex;
    gap: 24px;
    position: relative;
    z-index: 10;
}

.Pointer .prev,
.Pointer .next {
    display: block;
    position: relative;
    z-index: 9999;
    cursor: pointer;
}

.prev,
.next {
    position: relative;
    z-index: 11;
    cursor: pointer;
}


.gallery__block .diamond {
    background: var(--primary-lightbrown);
    position: absolute;
    transform: translate(-50%, -50%) rotate(45deg);
    opacity: 0.2;
    z-index: -100;
}

.gallery__block .illust_dot {
    position: absolute;
    display: block;
    height: auto;
    opacity: 0.1;
}

.detail__btn {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}




/* ----------
   1440px以上
---------- */

@media screen and (min-width: 1201px) {

    .section--gallery {
        margin: min(10vw, 144px) 0;
        padding: min(10vw, 144px) 0 min(10vw, 144px) min(10vw, 144px);
    }

    .gallery__block {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }

    .gallery__contents {
        margin: 40px 0 0 90px;
    }

    .bento__illust {
        width: min(20vw, 288px);
        height: auto;
        position: absolute;
        bottom: min(8vw, 172.8px);
    }

    .gallery__title > .title__JA {
        width: min(5vw, 72px);
        height: auto;
    }

    .gallery__title > .title__EN {
        margin: min(1vw, 14.4px) 0 0 max(-2vw, -28.8px);
    }

    .Pointer img {
        width: 62px;
    }

    .gallery__slider {
        width: 1200px;
        margin: 40px 0 0;
    }

    .gallery__slider .slick-list {
        padding-right: 20%;
    }

    /* アイテム間の余白 */
    .gallery__slider .slick-slide {
        padding: 0 12px;
    }

    .gallery__slider .slick-list {
        margin: 0 -12px;
        padding-right: 20%;
    }

    .gallery__item img {
        width: 400px;
        height: auto;
    }

    .gallery__txt {
        font-size: var(--fz-body);
        margin: min(2vw, 28.8px) 0 0;
    }

    .gallery__txt span {
        font-size: var(--fz-small-title);
    }

    .detail__btn {
        gap: min(1vw, 14.4px);
        margin: min(8vw, 115.2px) min(11vw, 158.4px) 0;
    }

    .detail__btn p {
        font-size: var(--fz-button);
    }

    .detail__btn img {
        width: min(4.6vw, 66.24px);
        height: auto;
    }

    .gallery__block .diamond {
        width: min(32vw, 460.8px);
        height: min(32vw, 460.8px);
        top: min(54vw, 777.6px);
        left: min(16vw, 230.4px);
    }

    .gallery__block .illust_dot {
        width: min(20vw, 288px);
        top: max(-4vw, -57.6px);
        right: max(-1vw, -14.4px);
    }
}


/* ----------
   767px〜1200px（タブレット大）
---------- */

@media screen and (min-width: 601px) and (max-width: 1200px) {

    .section--gallery {
        margin: min(10vw, 144px) 0;
        padding: min(10vw, 144px) 0 min(5vw, 72px) min(10vw, 144px);
    }

    .gallery__contents {
        margin: 32px 0 0 0;
        width: 100%;
    }

    .bento__illust {
        width: min(22vw, 316.8px);
        height: auto;
        position: absolute;
        bottom: min(4vw, 57.6px);
        left: min(0vw, 0px);
    }

    .gallery__title > .title__JA {
        width: min(4vw, 57.6px);
        height: auto;
    }

    .gallery__title > .title__EN {
        margin: min(1vw, 14.4px) 0 0 max(-2vw, -28.8px);
    }

    .Pointer {
        margin: 0;
        gap: 16px;
    }

    .Pointer img {
        width: 48px;
    }

    .gallery__slider {
        width: 100%;
        margin: 24px 0 0;
    }

    /* アイテム間の余白 */
    .gallery__slider .slick-slide {
        padding: 0 10px;
    }

    .gallery__slider .slick-list {
        margin: 0 -10px;
        padding-right: 8%;
    }

    .gallery__item img {
        width: 100%;
        height: auto;
    }

    .gallery__txt {
        font-size: var(--fz-body);
        margin: min(2vw, 28.8px) 0 0;
    }

    .gallery__txt span {
        font-size: var(--fz-small-title);
    }

    .detail__btn {
        gap: min(1vw, 14.4px);
        margin: min(6vw, 86.4px) min(2vw, 28.8px) 0;
    }

    .detail__btn p {
        font-size: var(--fz-button-sp);
    }

    .detail__btn img {
        width: min(4vw, 57.6px);
        height: auto;
    }

    .gallery__block .diamond {
        width: min(40vw, 576px);
        height: min(40vw, 576px);
        top: min(60vw, 864px);
        left: min(20vw, 288px);
    }

    .gallery__block .illust_dot {
        width: min(22vw, 316.8px);
        top: max(-4vw, -57.6px);
        right: max(-1vw, -14.4px);
    }
}


/* ----------
   600px〜767px（タブレット小）
---------- */

@media screen and (min-width: 376px) and (max-width: 600px) {

    .section--gallery {
        margin: 0;
        padding: min(20vw, 288px) min(5vw, 72px);
    }

    .gallery__contents {
        margin: 24px 0 0 0;
        width: 100%;
    }

    .bento__illust {
        width: min(40vw, 576px);
        height: auto;
        position: absolute;
        bottom: min(10vw, 144px);
        left: max(-1vw, -14.4px);        
    }

    .gallery__title > .title__JA {
        width: 37px;
        height: auto;
    }

    .gallery__title > .title__EN {
        margin: min(1vw, 14.4px) 0 0 max(-2vw, -28.8px);
    }

    .Pointer {
        margin: 0 0 0 min(40vw, 576px);
        gap: 12px;
    }

    .Pointer img {
        width: min(10vw, 144px);
    }

    .gallery__slider {
        width: 100%;
        margin: 20px 0 0;
    }

    /* アイテム間の余白 */
    .gallery__slider .slick-slide {
        padding: 0 6px;
    }

    .gallery__slider .slick-list {
        margin: 0 -6px;
        padding-right: 10%;
    }

    .gallery__item img {
        width: 78%;
        height: auto;
    }

    .gallery__txt {
        font-size: var(--fz-body-sp);
        margin: min(3vw, 43.2px) 0 0;
    }

    .gallery__txt span {
        display: block;
        font-size: var(--fz-body-sp);
        margin: min(1vw, 14.4px) 0;
    }

    .detail__btn {
        gap: min(2vw, 28.8px);
        margin: min(8vw, 115.2px) 0 0;
    }

    .detail__btn p {
        font-size: var(--fz-button-sp);
    }

    .detail__btn img {
        width: min(10vw, 144px);
        height: auto;
    }

    .gallery__block .diamond {
        width: min(60vw, 864px);
        height: min(60vw, 864px);
        top: min(100vw, 1440px);
        left: min(28vw, 403.2px);
    }

    .gallery__block .illust_dot {
        width: min(36vw, 518.4px);
        top: max(-10vw, -144px);
        left: min(66vw, 950.4px);
    }
}


/* ----------
   375px以下（SP）
---------- */

@media screen and (max-width: 375px) {

    .gallery__title > .title__JA {
        width: 37px;
        height: auto;
    }

    .section--gallery {
        margin: 0;
        padding: min(24vw, 345.6px) min(8vw, 115.2px);
    }

    .gallery__contents {
        margin: 80px 0 0 0;
    }

    .gallery__item img {
        width: 220px;
        height: auto;
    }

    .Pointer {
        justify-content: flex-start;
        margin: 0 0 0 min(30vw, 432px);
        gap: min(4vw, 57.6px);
    }

    .Pointer img {
        width: min(12vw, 172.8px);
    }

    .gallery__slider {
        width: 400px;
        margin: 40px 0 0;
    }

    .gallery__slider .slick-list {
        padding-right: 38%;
    }

    .gallery__txt {
        font-size: var(--fz-body-sp);
        margin: min(4vw, 57.6px) 0;
    }

    .gallery__txt span {
        display: block;
        font-size: var(--fz-body-sp);
        margin: min(2vw, 28.8px) 0;
    }

    .bento__illust {
        width: min(40vw, 576px);
        height: auto;
        position: absolute;
        bottom: min(16vw, 230.4px);
        left: max(-1vw, -14.4px);
    }

    .gallery__block .diamond {
        width: min(76vw, 1094.4px);
        height: min(76vw, 1094.4px);
        top: min(112vw, 1612.8px);
        left: min(28vw, 403.2px);
    }

    .gallery__block .illust_dot {
        width: min(46vw, 662.4px);
        top: max(-14vw, -201.6px);
        left: min(66vw, 950.4px);
    }

    .detail__btn p {
        font-size: var(--fz-button-sp);
    }

    .detail__btn img {
        width: min(14vw, 201.6px);
        height: auto;
    }

    .detail__btn {
        gap: min(2vw, 28.8px);
        margin: 0;
    }
}


/* =========================
   map
========================= */

.section--map {
    position: relative;
}

.map__title {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.map__title > .title__JA {
    width: min(5vw, 72px);
    height: auto;
    margin: 0 20px 0 0;
}

.map__contents > img {
    width: min(40vw, 576px);
}

.map__contents {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: min(6vw, 86.4px);
    margin: min(5vw, 72px) 0 0;
}

.map__txt {
    font-size: var(--fz-body);
    line-height: 2.0;
}

.section--map .illust_dot {
    position: absolute;
    display: block;
    width: min(21vw, 302.4px);
    height: auto;
    top: min(53vw, 763.2px);
    left: max(-1vw, -14.4px);
    opacity: 0.1;
}

@media screen and (max-width:768px) {

    .section--map {
        position: relative;
        margin: min(24vw, 345.6px) 0;
    }

    .map__contents {
        display: block;
        margin: 20px auto;
        text-align: center;
    }

    .map__title {
        display: flex;
        justify-content: center;
        align-items: flex-start;
        margin: 0 max(-6vw, -86.4px) 0 0;
    }

    .map__title > .title__JA {
        width: min(12vw, 172.8px);
        height: auto;
        margin: 0 min(2vw, 28.8px) 0 0;
    }

    .map__contents > img {
        width: min(76vw, 1094.4px);
    }

    .map__txt {
        font-size: var(--fz-body-sp);
        line-height: 2.0;
        text-align: left;
        margin: min(13vw, 187.2px);
    }

    .section--map .illust_dot {
        width: min(46vw, 662.4px);
        height: auto;
        top: min(158vw, 2275.2px);
        left: max(-19vw, -273.6px);
    }
}


/* =========================
   chef
========================= */

.section--chef {
    width: min(80vw, 1152px);
    height: auto;
    background-color: rgb(255, 255, 255, 0.5);
    padding: min(5vw, 72px) min(9vw, 129.6px);
    margin: min(10vw, 144px) auto 0;
}

.chef__contents {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: min(5vw, 72px);
    margin: min(4vw, 57.6px) 0 0;
}

.chef__contents img {
    width: min(24.4vw, 351.36px);
    height: auto;
}

.title__EN_chef {
    font-size: var(--fz-en-title);
    color: var(--primary-lightbrown);
}

.chef__title > .title__JA {
    font-size: min(2vw, 28.8px);
    width: auto;
}

.chef__detail span {
    font-size: var(--fz-body);
    letter-spacing: 1.0px;
}

.chef__name {
    font-size: min(1.8vw, 25.92px);
    margin: min(1vw, 14.4px) 0 0;
    letter-spacing: min(0.4vw, 5.76px);
}

.chef__txt {
    font-size: var(--fz-body);
    margin: 40px 0 0;
    line-height: 2.5;
}

@media screen and (max-width:768px) {

    .pcBr {
        display: none;
    }

    .title__EN_chef {
        font-size: var(--fz-en-title-sp);
    }

    .section--chef {
        width: min(90vw, 1296px);
        height: auto;
        padding: min(10vw, 144px) min(8vw, 115.2px);
        margin: 0 auto;
    }

    .chef__contents {
        display: block;
        margin: 40px 0 0;
    }

    .chef__contents img {
        width: min(64vw, 921.6px);
        height: auto;
    }

    .chef__contents {
        display: block;
        margin: 40px auto 0;
        text-align: center;
    }

    .chef__detail span {
        font-size: var(--fz-body-sp);
        letter-spacing: min(0.08vw, 1.152px);
    }

    .chef__name {
        font-size: var(--fz-chef-name-sp);
        margin: min(1vw, 14.4px) 0 0;
        letter-spacing: min(1.08vw, 15.552px);
    }

    .chef__detail {
        margin: 30px 0 0;
    }

    .chef__txt {
        font-size: var(--fz-body-sp); /* SP:約1.4rem */
        text-align: left;
        letter-spacing: min(0.2vw, 2.88px);
        margin: min(3vw, 43.2px) 0 0;
        line-height: 2.5;
    }

    .chef__title > .title__JA {
        font-size: var(--fz-section-title-sp);
        width: auto;
    }
}