@charset "utf-8";

/*==============================
    remの基準
==============================*/
html{
    font-size: 10px;
}
html.is-back-scroll-pending{
    visibility: hidden;
}
@media only screen and (max-width:1500px){
    html{
        font-size: calc((10 / 1500) * 100vw);
    }
}
@media only screen and (max-width:1215px){
    html{
        font-size: 10px;
    }
}

/*==============================
    変数設定
==============================*/
/* 幅の基準 */
:root {
    --widthBase : 192rem;
}
@media only screen and (max-width:1920px){
    :root {
        --widthBase : 100vw;
    }
}
@media only screen and (max-width:1400px){
    :root {
        --widthBase : 1400px;
    }
}
@media only screen and (max-width:1215px){
    :root {
        --widthBase : 375px;
    }
}
@media only screen and (max-width:374px){
    :root {
        --widthBase : 100vw;
    }
}

:root {
    /* フッターの上の余白 */
    --footerPc: 15rem;
    --footerSp: 8rem;

    /* 色 */
    --textColor: #333;
    --textColorWhite: #fff;
    --textColorWhite25: rgba(255,255,255,0.25);
    --textColorWhite30: rgba(255,255,255,0.3);
    --textColorWhite40: rgba(255,255,255,0.4);
    --textColorWhite50: rgba(255,255,255,0.5);
    --textColorWhite55: rgba(255,255,255,0.55);
    --textColorWhite80: rgba(255,255,255,0.8);
    --textColorWhite90: rgba(255,255,255,0.9);
    --textColorFooterDeco: rgba(255,255,255,0.031);
    --textColorMarquee: #e8e4df;
    --textColorCheckBg: rgba(0,0,2,0.031);
    --textColorCheckBg10: rgba(0,0,2,0.102);
    --textColorGray: #888;
    --textColorWarmGray: #8c8987;
    --textColorTeal: #25797a;
    --textColorGold: #af9e79;
    --textColorNote: #c82d38;
    --linkColorBlue: #2d8cc8;
    --whiteColor: #fff;
    --bodyBaseColor: #faf5f0;
    --contactColor: #2a7c7d;
    --bgColor: #fff;
    --bgColorDark: #0a0a0a;
    --bgColorDarkGray: #2d2d2d;
    --bgColorCharcoal: #282929;
    --bgColorPanorama: #3d3d3d;
    --bgColorPanoramaPc: #2c2d29;
    --bgColorBlack: #111;
    --bgColorBeige: #ebe6e1;
    --bgColorBeigeLight: #faf5f0;
    --bgColorBeigeLight2: #f2efeb;
    --bgColorBeigeLight3: #faf9f7;
    --bgColorFooterSns: rgba(255,255,255,0.051);
    --bgColorTechnology: #9a9085;
    --bgColorTabActive: #d4d0cb;
    --bgColorTag: #e8e8e8;
    --bgColorNew: #ffff00;
    --bgColorAreaBtn01: #8b8b8b;
    --bgColorAreaBtn02: #887d78;
    --bgColorAreaBtn03: #a09883;
    --bgColorAreaBtn04: #83937f;
    --bgColorAreaBtn05: #7f8593;
    --bgColorAreaBtn01Hover: #9a9a9a;
    --bgColorAreaBtn02Hover: #968880;
    --bgColorAreaBtn03Hover: #857d6a;
    --bgColorAreaBtn04Hover: #6b7a67;
    --bgColorAreaBtn05Hover: #686e7a;
    --borderColor: #ccc;
    --borderColorBeige: #d9d4d0;
    --maskColorDark22: rgba(0,0,0,0.22);
    --maskColorDark30: rgba(34,34,34,0.302);
    --maskColorDark50: rgba(10,10,10,0.5);
    --maskColorDark55: rgba(0,0,0,0.55);
    --maskColorDark65: rgba(10,10,10,0.65);
    --maskColorDarkGray40: rgba(45,45,45,0.4);
    --maskColorDarkGray70: rgba(45,45,45,0.7);
    --bgColorHeaderUtility: rgba(45,45,45,0.149);
    --paginationColor: #fff;
    --paginationColorActive: #2c4a3f;
    --bgColorPagerActive: #2a7c7d;
    --btnCatalogBg: #b6a587;
    --btnCatalogOutline: #c4b38e;
    --btnReserveBg: #286a68;
    --keyColor: #018cd4;
    --tapHighlightColor: rgba(0,0,0,0.25);
    --shadowColor08: rgba(0,0,0,0.08);
    --shadowColor12: rgba(0,0,0,0.12);
    --shadowColor18: rgba(0,0,0,0.18);
    --editor_linkColor: #295ea2;
    --editor_borderColor: #ccc;
    --lineupSubtitColor: #c4b38e;
    --performanceColor: #c4b38e;
    --performanceColor01: #e1ddd8;
    --guaranteeColor01: #f9f4ef;
    --guaranteeColor02: #af9c7a;
    --tabactiveColor: #ab9668;
    --earthquakesColor: #358182;
    --costColor: #2d2d2c;
    --costColor01: #96b7c3;
    --costColor02: #ece9e7;
    --costColor03: #d7dfe3;
    --costColor04: #b9a780;
    --costColor05: #c0bab5;
    --costColor06: #86827f;
    --costColor07: #c3bfbb;
    --gradeColor: #e8e3df;
    --gradeColor01: #35485e;
    --gradeColor02: #a74452;
    --gradeColor03: #2c9d71;
    --gradeColor04: #85a520;
    --gradeColor05: #d7dadf;
    --gradeColor06: #eddadc;
    --gradeColor07: #d7efe5;
    --gradeColor08: #eef5d7;
    --gradeColor09: #b63030;

    /* フォントサイズ（PC） */
    --pcFontSize10: 1rem;
    --pcFontSize11: 1.1rem;
    --pcFontSize12: 1.2rem;
    --pcFontSize13: 1.3rem;
    --pcFontSize14: 1.4rem;
    --pcFontSize15: 1.5rem;
    --pcFontSize16: 1.6rem;
    --pcFontSize17: 1.7rem;
    --pcFontSize18: 1.8rem;
    --pcFontSize19: 1.9rem;
    --pcFontSize20: 2rem;
    --pcFontSize22: 2.2rem;
    --pcFontSize24: 2.4rem;
    --pcFontSize26: 2.6rem;
    --pcFontSize28: 2.8rem;
    --pcFontSize30: 3rem;
    --pcFontSize32: 3.2rem;
    --pcFontSize34: 3.4rem;
    --pcFontSize35: 3.5rem;
    --pcFontSize36: 3.6rem;
    --pcFontSize38: 3.8rem;
    --pcFontSize40: 4rem;
    --pcFontSize44: 4.4rem;
    --pcFontSize45: 4.5rem;
    --pcFontSize50: 5rem;
    --pcFontSize54: 5.4rem;
    --pcFontSize60: 6rem;
    --pcFontSize70: 7rem;
    --pcFontSize80: 8rem;
    --pcFontSize100: 10rem;
    --pcFontSize110: 11rem;
    --pcFontSize130: 13rem;
    --pcFontSize140: 14rem;
    --pcFontSize150: 15rem;
    --pcFontSize200: 20rem;

    /* letter-spacing（PC） */
    --pcLetterSpacingMinus20: -0.02em;
    --pcLetterSpacing10: 0.01em;
    --pcLetterSpacing20: 0.02em;
    --pcLetterSpacing30: 0.03em;
    --pcLetterSpacing40: 0.04em;
    --pcLetterSpacing50: 0.05em;
    --pcLetterSpacing60: 0.06em;
    --pcLetterSpacing70: 0.07em;
    --pcLetterSpacing80: 0.08em;
    --pcLetterSpacing90: 0.09em;
    --pcLetterSpacing100: 0.1em;
    --pcLetterSpacing110: 0.11em;
    --pcLetterSpacing120: 0.12em;
    --pcLetterSpacing130: 0.13em;
    --pcLetterSpacing140: 0.14em;
    --pcLetterSpacing150: 0.15em;
    --pcLetterSpacing160: 0.16em;
    --pcLetterSpacing170: 0.17em;
    --pcLetterSpacing180: 0.18em;
    --pcLetterSpacing190: 0.19em;
    --pcLetterSpacing200: 0.2em;
    --pcLetterSpacing210: 0.21em;

    /* フォントサイズ（SP）*/
    --spFontSize8: calc((8 / 375) * var(--widthBase));
    --spFontSize10: calc((10 / 375) * var(--widthBase));
    --spFontSize11: calc((11 / 375) * var(--widthBase));
    --spFontSize12: calc((12 / 375) * var(--widthBase));
    --spFontSize13: calc((13 / 375) * var(--widthBase));
    --spFontSize14: calc((14 / 375) * var(--widthBase));
    --spFontSize15: calc((15 / 375) * var(--widthBase));
    --spFontSize16: calc((16 / 375) * var(--widthBase));
    --spFontSize17: calc((17 / 375) * var(--widthBase));
    --spFontSize18: calc((18 / 375) * var(--widthBase));
    --spFontSize19: calc((19 / 375) * var(--widthBase));
    --spFontSize20: calc((20 / 375) * var(--widthBase));
    --spFontSize22: calc((22 / 375) * var(--widthBase));
    --spFontSize23: calc((23 / 375) * var(--widthBase));
    --spFontSize24: calc((24 / 375) * var(--widthBase));
    --spFontSize26: calc((26 / 375) * var(--widthBase));
    --spFontSize28: calc((28 / 375) * var(--widthBase));
    --spFontSize30: calc((30 / 375) * var(--widthBase));
    --spFontSize32: calc((32 / 375) * var(--widthBase));
    --spFontSize34: calc((34 / 375) * var(--widthBase));
    --spFontSize36: calc((36 / 375) * var(--widthBase));
    --spFontSize38: calc((38 / 375) * var(--widthBase));
    --spFontSize40: calc((40 / 375) * var(--widthBase));
    --spFontSize44: calc((44 / 375) * var(--widthBase));
    --spFontSize50: calc((50 / 375) * var(--widthBase));
    --spFontSize60: calc((60 / 375) * var(--widthBase));
    --spFontSize70: calc((70 / 375) * var(--widthBase));
    --spFontSize80: calc((80 / 375) * var(--widthBase));

    /* letter-spacing（SP） */
    --spLetterSpacing10: 0.01em;
    --spLetterSpacing20: 0.02em;
    --spLetterSpacing30: 0.03em;
    --spLetterSpacing40: 0.04em;
    --spLetterSpacing50: 0.05em;
    --spLetterSpacing60: 0.06em;
    --spLetterSpacing70: 0.07em;
    --spLetterSpacing80: 0.08em;
    --spLetterSpacing90: 0.09em;
    --spLetterSpacing100: 0.1em;
    --spLetterSpacing110: 0.11em;
    --spLetterSpacing120: 0.12em;
    --spLetterSpacing130: 0.13em;
    --spLetterSpacing140: 0.14em;
    --spLetterSpacing150: 0.15em;
    --spLetterSpacing160: 0.16em;
    --spLetterSpacing170: 0.17em;
    --spLetterSpacing180: 0.18em;
    --spLetterSpacing190: 0.19em;
    --spLetterSpacing200: 0.2em;
    --spLetterSpacing210: 0.21em;
}

/*==============================
    基本設定
==============================*/
body{
    color:var(--textColor);
    font-size:var(--pcFontSize12);
    /* サイトに応じで使用するフォントを読込み */
    font-family: "YakuHanJP", "Zen Kaku Gothic New", sans-serif;
    margin:0;
    padding:0;
    text-align:left;
    background: var(--bgColorBeige);
    -webkit-text-size-adjust:100%;
    -webkit-tap-highlight-color:var(--tapHighlightColor);
    position:relative;
    word-break:break-all;
    min-width:1180px;
}
@media only screen and (max-width:1215px){
    body{
        min-width:0;
    }
}

body *, body *::before, body *::after{box-sizing:border-box;}
img{vertical-align:bottom;}
h1,h2,h3,h4,h5,h6{font-weight:normal;}
th{
    font-weight:normal;
    text-align:left;
}

/*font layout*/
.fBold{font-weight:bold;}
.fCormorant{font-family:'Cormorant', serif;}
.fZenKakuGothicNew{font-family:"YakuHanJP", "Zen Kaku Gothic New", sans-serif;}
.fZenOldMincho{font-family:"YakuHanMP", "Zen Old Mincho", serif;}

/*rollover*/
.ro a:hover,
a.ro:hover,
a .ro:hover,
.cursorPointer:hover{ opacity:0.8; }
.ro a,
a.ro,
a .ro,
.cursorPointer{
    transition:opacity 0.2s ease-out;
}
.cursorPointer{cursor:pointer;}
@media only screen and (max-width:1215px){
    .ro a:hover,
    a.ro:hover,
    a .ro:hover,
    .cursorPointer:hover{ opacity:1; }
}

/*rollover(brightnessによる変化)*/
.cursorPointer.brt:hover,.cursorPointer .brt:hover,
.brt a:hover,a.brt:hover,a .brt:hover{ -webkit-filter: brightness(1.1);filter: brightness(1.1); }
.cursorPointer.brt,.cursorPointer .brt,
.brt a,
a.brt,
a .brt{
    transition:filter 0.2s ease-out;
}
@media only screen and (max-width:1215px){
    .cursorPointer.brt:hover,.cursorPointer .brt:hover,
    .brt a:hover,a.brt:hover,a .brt:hover{ filter:none; }
}

/*ro無効化*/
.ro .no_ro a:hover,
.ro a.no_ro:hover,
.ro .no_ro .cursorPointer:hover,
.ro .cursorPointer.no_ro:hover{ opacity:1; }

/* 電話リンクの無効化 */
a[href^="tel:"]{
    pointer-events:none;
    cursor:default;
}
@media only screen and (max-width:1215px){
    a[href^="tel:"]{
        pointer-events:auto;
        cursor:pointer;
    }
}

a{color: inherit;text-decoration: none;}

/*-----------------------------------------------
	jsHide
-----------------------------------------------*/
.jsHide,
.ro a.jsHide{
    /* filter: blur(20px) brightness(4); */
    transform:translateY(50px);
    opacity:0;
    transition:transform 3s cubic-bezier(0.19, 1, 0.22, 1), filter 3s cubic-bezier(0.19, 1, 0.22, 1), opacity 3s cubic-bezier(0.19, 1, 0.22, 1);
    transform-origin:center top;
}
.jsHide.jsShow,
.ro a.jsHide.jsShow{
    /* filter: blur(0) brightness(1); */
    transform:translateY(0);
    opacity:1;
}
.jsHideFade,
.ro a.jsHideFade{
    opacity:0;
    transition:opacity 3s cubic-bezier(0.19, 1, 0.22, 1);
}
.jsHideFade.jsShow,
.ro a.jsHideFade.jsShow{
    opacity:1;
}
.jsHideFadeP .jsHideFadeC,
.ro a.jsHideFadeP .jsHideFadeC{
    opacity:0;
    transition:opacity 5s cubic-bezier(0.19, 1, 0.22, 1);
}
.jsHideFadeP .jsHideFadeC:nth-child(2){
    transition-delay:0.2s;
}
.jsHideFadeP .jsHideFadeC:nth-child(3){
    transition-delay:0.4s;
}
.jsHideFadeP .jsHideFadeC:nth-child(4){
    transition-delay:0.6s;
}
.jsHideFadeP .jsHideFadeC:nth-child(5){
    transition-delay:0.8s;
}
.jsHideFadeP .jsHideFadeC:nth-child(6){
    transition-delay:1.0s;
}
.jsHideFadeP .jsHideFadeC:nth-child(7){
    transition-delay:1.2s;
}
.jsHideFadeP .jsHideFadeC:nth-child(8){
    transition-delay:1.4s;
}
.jsHideFadeP .jsHideFadeC:nth-child(9){
    transition-delay:1.6s;
}
.jsHideFadeP .jsHideFadeC:nth-child(10){
    transition-delay:1.8s;
}
.jsHideFadeP.jsShow .jsHideFadeC,
.ro a.jsHideFadeP.jsShow .jsHideFadeC{
    opacity:1;
}

/* container */
#container{
    overflow:hidden;
    width: 100%;
    margin:0 auto;
}

/*========================================
    レスポンシブ用(不要な場合は削除)
========================================*/
.spOnly,
.brSp,
.imgSp{
    display:none;
}
.img100{
    width:100%;
    height:auto;
}
@media only screen and (max-width:1215px){
    .spNone,
    .brPc,
    .imgPc{
        display:none;
    }
    .spOnly{
        display:block;
    }
    .brSp,
    .imgSp{
        display:inline;
    }
    .imgR{
        width:100%;
        height:auto;
    }
}

/*-----------------------------------------------
    imgCover
-----------------------------------------------*/
/* imgCover */
.imgCover,
.imgCont{
    position:relative;
}
.imgCover img {
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
    object-fit:cover;
}
.imgCont img{
    width:auto;
    height:auto;
    max-width:100%;
    max-height:100%;
    display:block;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
}

/*-----------------------------------------------
    wrapper
-----------------------------------------------*/
.wrapper1720{
    width:172rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
.wrapper1660{
    width:166rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
.wrapper1420{
    width:142rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
.wrapper1380{
    width:138rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
.wrapper1200{
    width:120rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
.wrapper800{
    width:80rem;
    max-width:calc(100% - 10rem);
    margin:0 auto;
}
@media only screen and (max-width:1215px){
    .wrapper1720,
    .wrapper1660,
    .wrapper1420,
    .wrapper1380,
    .wrapper1200,
    .wrapper800{
        width:100%;
        max-width:none;
    }
    .wrapperSp{
        width:92%;
        margin:0 auto;
    }
    .wrapperFit{
        max-width: 40rem;
        margin: 0 auto;
	}
}

/*==============================
    section title（共通）
    EVENT見出しを基準。個別調整は各セクションclassで上書き
==============================*/
.secTit{
    display:flex;
    align-items:center;
    gap:2rem;
    margin:0 0 2rem;
}
.secTitEn{
    font-size:var(--pcFontSize60);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.secTitJa{
    font-size:var(--pcFontSize20);
    line-height:calc(24 / 20);
    letter-spacing:var(--pcLetterSpacing40);
}
.secLead{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(32 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
@media only screen and (max-width:1215px){
    .secTit {
        gap: 1rem;
        margin: 0 0 1rem;
    }
    .secTitEn{
        font-size:var(--spFontSize30);
        letter-spacing:0;
    }
    .secTitJa{
        font-size:var(--spFontSize14);
        line-height:calc(22 / 14);
    }
    .secLead{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
}

/*==============================
    section list button（共通）
    WORKS一覧ボタンを基準。個別調整は各セクションclassで上書き
==============================*/
.secListBtn{
    position:relative;
    display:flex;
    align-items:center;
    box-sizing:border-box;
    width:28rem;
    height:6.5rem;
    padding:0 3rem 0 4rem;
    border:1px solid var(--bgColorDarkGray);
    border-radius:100px;
    background:var(--bgColorDarkGray);
    font-size:var(--pcFontSize14);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWhite);
    transition:background 0.2s ease-out, color 0.2s ease-out;
}
.secListBtnArrow{
    position:absolute;
    top:0;
    right:3rem;
    bottom:0;
    width:17px;
    height:5px;
    margin:auto 0;
    transition:filter 0.2s ease-out;
}
.secListBtn:hover{
    background:var(--bgColor);
    color:var(--bgColorDark);
}
.secListBtn:hover .secListBtnArrow{
    filter:brightness(0);
}
@media only screen and (max-width:1215px){
    .secListBtn{
        width:100%;
        height:calc((50 / 375) * var(--widthBase));
        font-size:var(--spFontSize12);
        padding:0 2rem 0 2rem;
    }
    .secListBtn:hover{
        background:var(--bgColorDarkGray);
        color:var(--textColorWhite);
    }
    .secListBtn:hover .secListBtnArrow{
        filter:none;
    }
    .secListBtnArrow {
        right: 2rem;
    }
}

/*==============================
    section empty message（共通）
    一覧0件時など。個別調整は各ページCSSで上書き
==============================*/
.secCmnError{
    margin:0;
    padding:8rem 0;
    font-size:var(--pcFontSize18);
    line-height:calc(28 / 18);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColor);
    text-align:center;
}
@media only screen and (max-width:1215px){
    .secCmnError{
        padding:4rem 0;
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
}

/*==============================
    header
==============================*/
.header{
    position:fixed;
    top:0;
    left:0;
    z-index:100;
    width:100%;
    color:var(--textColorWhite);
    font-family:"YakuHanMP", "Zen Old Mincho", serif;
    transition:background-color 0.25s ease, box-shadow 0.25s ease;
}
.header.is-scrolled{
    background:var(--maskColorDarkGray40);
    box-shadow:0 0.4rem 2rem rgba(0,0,0,0.25);
    /* スクロール時のグレー背景の高さを旧デザインページ（common_hf.css）と揃える */
    padding-bottom:2rem;
}
.header.is-scrolled .headerUtility{
    background:transparent;
}
.header .headerInner{
    width:100%;
    padding:0;
}
.header .headerUtility{
    display:flex;
    justify-content:space-between;
    align-items:center;
    box-sizing:border-box;
    height:4rem;
    padding:0 3.5rem;
    margin:0 0 2rem;
    background:var(--bgColorHeaderUtility);
}
.header .headerCatch{
    font-size:var(--pcFontSize12);
    line-height:calc(16 / 12);
    letter-spacing:var(--pcLetterSpacing40);
}
.header .headerUtilityList{
    display:flex;
    align-items:center;
    list-style:none;
}
.header .headerUtilityItem{
    font-size:var(--pcFontSize12);
    line-height:calc(16 / 12);
    letter-spacing:var(--pcLetterSpacing40);
}
.header .headerUtilityItem:not(:first-child)::before{
    content:"";
    display:inline-block;
    width:1px;
    height:1rem;
    margin:0 2.5rem;
    background:var(--textColorWhite);
    vertical-align:-0.1em;
}
.header .headerMain{
    display:flex;
    align-items:center;
    padding:0 3.5rem;
}
.header .headerLogo{
    width: 33.1rem;
    flex-shrink:0;
    margin:0 3rem 0 0;
}
.header .gNavi{
    flex:1 1 auto;
    min-width:0;
    margin:0 4rem 0 0;
}
.header .gNaviList{
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-end;
    align-items:center;
    gap:0 3rem;
    list-style:none;
}
.header .gNaviItem{
    font-size:var(--pcFontSize15);
    line-height:calc(22 / 15);
    letter-spacing:var(--pcLetterSpacing40);
    white-space:nowrap;
}
.header .headerBtn{
    display:flex;
    flex-shrink:0;
    align-items:center;
    gap:0.8rem;
    margin:0 4rem 0 0;
}
.header .headerBtnCatalog,
.header .headerBtnReserve{
    display:flex;
    justify-content:center;
    align-items:center;
    min-width:15rem;
    height:5rem;
    padding:0 1.6rem;
    border-radius:999px;
    font-size:var(--pcFontSize15);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    white-space:nowrap;
}
.header .headerBtnCatalog{
    background:var(--btnCatalogBg);
}
.header .headerBtnReserve{
    background:var(--btnReserveBg);
    color:var(--textColorWhite);
}
.header .menuBtn{
    display:flex;
    flex-shrink:0;
    align-items:center;
    gap:1.2rem;
    margin:0;
    padding:0;
    border:none;
    background:transparent;
    color:var(--textColorWhite);
    cursor:pointer;
}
.header .menuBtnBars{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:0.6rem;
}
.header .menuBtnBar{
    display:block;
    width:2.8rem;
    height:1px;
    background:var(--textColorWhite);
}
.header .menuBtnTxt{
    margin:0;
    font-size:var(--pcFontSize18);
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
@media only screen and (max-width:1800px){
    .header .gNaviItem {
        font-size: var(--pcFontSize14);
    }
}
@media only screen and (max-width:1700px){
    .header .headerLogo{
        width: 28.1rem;
    }
    .header .gNaviItem{
        font-size: var(--pcFontSize13);
    }
}
@media only screen and (max-width:1600px){
    .header .headerLogo{
        width: 23.1rem;
    }
    .header .gNaviItem{
        font-size: var(--pcFontSize12);
    }
    .header .headerBtnCatalog, .header .headerBtnReserve{
        min-width: 13rem;
    }
}
@media only screen and (max-width:1400px){
    .header .gNaviList{
        gap:0 1.2rem;
    }
    /* .header .gNaviItem{
        font-size:var(--pcFontSize11);
    }
    .header .headerBtnCatalog,
    .header .headerBtnReserve{
        min-width:9rem;
        height:3.2rem;
        padding:0 1.2rem;
        font-size:var(--pcFontSize11);
    } */
}
@media only screen and (max-width:1215px){
    .header .headerInner{
        padding:0;
    }
    .header .headerUtility{
        display:none;
    }
    .header .headerMain{
        padding:2rem 1.5rem 0;
    }
    .header.is-scrolled{
        padding-bottom:0;
    }
    .header.is-scrolled .headerMain{
        padding:1.2rem 1.5rem;
    }
    .header .headerLogo{
        width:19.5rem;
    }
    .header .gNavi,
    .header .headerBtn{
        display:none;
    }
    .header .menuBtn{
        margin:0 0 0 auto;
        gap: 0.5rem;
    }
    .header .menuBtnTxt{
        font-size:var(--spFontSize14);
    }
    .header .menuBtnBar {
        width: 2rem;
    }
    .header .menuBtnBars {
        gap: 0.5rem;
    }
}

/*==============================
    globalMenu（ハンバーガー）
==============================*/
body.is-menuOpen{
    overflow:hidden;
}
.globalMenu{
    position:fixed;
    top:0;
    left:0;
    z-index:200;
    visibility:hidden;
    width:100%;
    height:100%;
    background:transparent;
    color:var(--textColorWhite);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.35s ease, visibility 0.35s ease;
}
.globalMenu::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:var(--maskColorDark50);
}
.globalMenu.is-open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}
.globalMenu .globalMenuScroll{
    position:relative;
    z-index:1;
    overflow-x:hidden;
    overflow-y:auto;
    width:calc((1800 / 1920) * var(--widthBase));
    max-width:100%;
    height:100%;
    margin-left:auto;
    background:var(--bgColorDarkGray);
    -webkit-overflow-scrolling:touch;
}
.globalMenu .globalMenuInner{
    box-sizing:border-box;
    width:100%;
    min-height:100%;
    padding:4rem 6rem 6rem;
}
.globalMenu .globalMenuHead{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    margin:0 0 5rem;
}
.globalMenu .globalMenuLogo{
    display:none;
    margin:0;
    font-family:"Cormorant", serif;
    font-size:var(--pcFontSize28);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing80);
}
.globalMenu .globalMenuClose{
    display:flex;
    align-items:center;
    gap:1.2rem;
    margin:0;
    padding:0;
    border:none;
    background:transparent;
    color:var(--textColorWhite);
    cursor:pointer;
}
.globalMenu .globalMenuCloseBars{
    position:relative;
    display:block;
    width:2rem;
    height:2rem;
}
.globalMenu .globalMenuCloseBar{
    position:absolute;
    top:50%;
    left:0;
    display:block;
    width:100%;
    height:1px;
    background:var(--textColorWhite);
}
.globalMenu .globalMenuCloseBar:nth-child(1){
    transform:rotate(45deg);
}
.globalMenu .globalMenuCloseBar:nth-child(2){
    transform:rotate(-45deg);
}
.globalMenu .globalMenuCloseTxt{
    margin:0;
    font-size:var(--pcFontSize18);
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuCta,
.globalMenu .globalMenuHome{
    display:none;
}
.globalMenu .globalMenuNavMain{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:4rem 3.5rem;
    margin:0 0 5.5rem;
    font-family:"YakuHanMP", "Zen Old Mincho", serif;
}
.globalMenu .globalMenuLayoutBottom{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:4rem 3.5rem;
    margin:0 0 5rem;
    align-items:start;
}
.globalMenu .globalMenuNavSub{
    display:contents;
}
.globalMenu .globalMenuAside{
    grid-column:span 2;
    padding:0 0 0 2rem;
}
.globalMenu .globalMenuTrigger{
    display:none;
}
.globalMenu .globalMenuTit{
    margin:0 0 2rem;
    padding:0 0 1.8rem;
    border-bottom:1px solid var(--textColorWhite25);
    font-size:var(--pcFontSize18);
    line-height:calc(28 / 18);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuList{
    margin:0;
    padding:0;
    list-style:none;
    font-family:"YakuHanMP", "Zen Old Mincho", serif;
}
.globalMenu .globalMenuItem{
    margin:0 0 1rem;
    font-size:var(--pcFontSize15);
    line-height:calc(28 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuItem:last-child{
    margin:0;
}
.globalMenu .globalMenuSns{
    margin:0 0 3rem;
}
.globalMenu .globalMenuSnsLabel{
    margin:0 0 1.6rem;
    font-size:var(--pcFontSize18);
    font-weight:500;
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuSnsList{
    display:flex;
    align-items:center;
    gap:1.2rem;
    margin:0;
    padding:0;
    list-style:none;
}
.globalMenu .globalMenuSnsLink{
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
    width:5rem;
    height:5rem;
    border-radius:50%;
    background:var(--bgColorFooterSns);
}
.globalMenu .globalMenuSnsIco{
    width:2.2rem;
    height:auto;
    vertical-align:bottom;
}
.globalMenu .globalMenuCompany{
    margin:0 0 1.2rem;
    font-size:var(--pcFontSize16);
    font-weight:500;
    line-height:calc(26 / 16);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuCompanySep{
    margin:0 0.8rem;
}
.globalMenu .globalMenuAddress{
    margin:0 0 2rem;
    font-size:var(--pcFontSize13);
    line-height:calc(22 / 13);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuTelNum{
    display:inline-flex;
    align-items:center;
    gap:1rem;
    margin:0 0 1rem;
    font-size:var(--pcFontSize28);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuTelIco{
    flex-shrink:0;
    width:28px;
    height:18px;
    vertical-align:bottom;
    filter:brightness(0) invert(1);
}
.globalMenu .globalMenuTelNote{
    margin:0;
    font-size:var(--pcFontSize13);
    line-height:calc(22 / 13);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuSubLink{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    margin:0;
    padding:0;
    list-style:none;
}
.globalMenu .globalMenuSubLinkItem{
    position:relative;
    padding:0 2.5rem 0 0;
    font-size:var(--pcFontSize13);
    letter-spacing:var(--pcLetterSpacing40);
}
.globalMenu .globalMenuSubLinkItem:not(:last-child)::after{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    width:1px;
    height:1em;
    background:var(--textColorWhite);
    transform:translateY(-50%);
}
.globalMenu .globalMenuSubLinkItem:not(:first-child){
    padding-left:2.5rem;
}
@media only screen and (max-width:1400px){
    .globalMenu .globalMenuInner{
        padding:3rem 4rem 5rem;
    }
    .globalMenu .globalMenuNavMain,
    .globalMenu .globalMenuLayoutBottom{
        gap:3rem 2rem;
    }
    .globalMenu .globalMenuTit{
        font-size:var(--pcFontSize15);
    }
    .globalMenu .globalMenuItem{
        font-size:var(--pcFontSize13);
    }
}
@media only screen and (max-width:1215px){
    .globalMenu{
        background:var(--bgColorDarkGray);
    }
    .globalMenu::before{
        content:none;
    }
    .globalMenu .globalMenuScroll{
        width:100%;
        margin-left:0;
        background:transparent;
    }
    .globalMenu .globalMenuInner{
        padding:1.5rem 2rem 6rem;
    }
    .globalMenu .globalMenuHead{
        justify-content:space-between;
        margin:0 0 2.5rem;
    }
    .globalMenu .globalMenuLogo{
        display:block;
        font-size:var(--spFontSize24);
    }
    .globalMenu .globalMenuClose{
        gap:0.5rem;
    }
    .globalMenu .globalMenuCloseBars{
        width:1.6rem;
        height:1.6rem;
    }
    .globalMenu .globalMenuCloseTxt{
        font-size:var(--spFontSize14);
    }
    .globalMenu .globalMenuBody{
        display:flex;
        flex-direction:column;
    }
    .globalMenu .globalMenuNavMain,
    .globalMenu .globalMenuLayoutBottom,
    .globalMenu .globalMenuNavSub{
        display:contents;
    }
    .globalMenu .globalMenuCta{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:1rem;
        order:1;
        margin:0 0 1.5rem;
    }
    .globalMenu .globalMenuCtaItem{
        display:flex;
        justify-content:center;
        align-items:center;
        box-sizing:border-box;
        height:calc((48 / 375) * var(--widthBase));
        border-radius:999px;
        font-size:var(--spFontSize13);
        line-height:1;
        letter-spacing:var(--spLetterSpacing40);
        text-align:center;
    }
    .globalMenu .globalMenuCtaCatalog{
        background:var(--btnCatalogBg);
        color:var(--textColor);
    }
    .globalMenu .globalMenuCtaReserve{
        background:var(--btnReserveBg);
        color:var(--textColorWhite);
    }
    .globalMenu .globalMenuCtaEvent,
    .globalMenu .globalMenuCtaModel{
        border:1px solid var(--textColorWhite);
        background:transparent;
        color:var(--textColorWhite);
    }
    .globalMenu .globalMenuHome{
        display:flex;
        justify-content:space-between;
        align-items:center;
        order:2;
        box-sizing:border-box;
        padding:1.8rem 0;
        border-bottom:1px solid var(--textColorWhite25);
    }
    .globalMenu .globalMenuHomeTxt{
        display:flex;
        flex-direction:column;
        gap:0.4rem;
    }
    .globalMenu .globalMenuEn{
        display:block;
        font-size:var(--spFontSize12);
        font-style:italic;
        line-height:1;
        letter-spacing:var(--spLetterSpacing40);
        color:var(--textColorWhite80);
    }
    .globalMenu .globalMenuJa{
        display:block;
        font-size:var(--spFontSize15);
        line-height:1.3;
        letter-spacing:var(--spLetterSpacing40);
    }
    .globalMenu .globalMenuHomeArrow{
        position:relative;
        flex-shrink:0;
        width:1.2rem;
        height:1.2rem;
    }
    .globalMenu .globalMenuHomeArrow::before{
        content:"";
        position:absolute;
        top:50%;
        left:50%;
        width:0.7rem;
        height:0.7rem;
        border-top:1px solid var(--textColorWhite);
        border-right:1px solid var(--textColorWhite);
        transform:translate(-60%, -50%) rotate(45deg);
    }
    .globalMenu .globalMenuCol{
        order:3;
        border-bottom:1px solid var(--textColorWhite25);
    }
    .globalMenu .globalMenuTit{
        display:none;
    }
    .globalMenu .globalMenuTrigger{
        display:flex;
        justify-content:space-between;
        align-items:center;
        width:100%;
        margin:0;
        padding:1.8rem 0;
        border:none;
        background:transparent;
        color:var(--textColorWhite);
        text-align:left;
        cursor:pointer;
    }
    .globalMenu .globalMenuTriggerTxt{
        display:flex;
        flex-direction:column;
        gap:0.4rem;
        min-width:0;
        padding:0 1.5rem 0 0;
    }
    .globalMenu .globalMenuPlus{
        position:relative;
        flex-shrink:0;
        width:1.4rem;
        height:1.4rem;
    }
    .globalMenu .globalMenuPlus::before,
    .globalMenu .globalMenuPlus::after{
        content:"";
        position:absolute;
        top:50%;
        left:50%;
        background:var(--textColorWhite);
        transform:translate(-50%, -50%);
    }
    .globalMenu .globalMenuPlus::before{
        width:1.4rem;
        height:1px;
    }
    .globalMenu .globalMenuPlus::after{
        width:1px;
        height:1.4rem;
        transition:opacity 0.2s ease, transform 0.2s ease;
    }
    .globalMenu .globalMenuCol.is-open .globalMenuPlus::after{
        opacity:0;
        transform:translate(-50%, -50%) rotate(90deg);
    }
    .globalMenu .globalMenuList{
        display:none;
        padding:0 0 1.8rem;
    }
    .globalMenu .globalMenuCol.is-open .globalMenuList{
        display:block;
    }
    .globalMenu .globalMenuItem{
        margin:0 0 1.2rem;
        font-size:var(--spFontSize13);
        line-height:1.4;
        letter-spacing:var(--spLetterSpacing40);
    }
    .globalMenu .globalMenuItem a{
        display:inline-flex;
        align-items:center;
        gap:0.8rem;
    }
    .globalMenu .globalMenuItem a::before{
        content:"";
        flex-shrink:0;
        width:0.4rem;
        height:0.4rem;
        background:var(--textColorWhite);
    }
    .globalMenu .globalMenuSubLink{
        order:4;
        justify-content:center;
        margin:3rem 0 2.5rem;
    }
    .globalMenu .globalMenuSubLinkItem{
        padding:0 1.2rem 0 0;
        font-size:var(--spFontSize11);
        letter-spacing:var(--spLetterSpacing40);
    }
    .globalMenu .globalMenuSubLinkItem:not(:first-child){
        padding-left:1.2rem;
    }
    .globalMenu .globalMenuAside{
        order:5;
        grid-column:auto;
        padding:0;
        text-align:center;
    }
    .globalMenu .globalMenuSns{
        margin:0 0 2.5rem;
    }
    .globalMenu .globalMenuSnsLabel{
        margin:0 0 1.4rem;
        font-size:var(--spFontSize16);
    }
    .globalMenu .globalMenuSnsList{
        justify-content:center;
        gap:1rem;
    }
    .globalMenu .globalMenuSnsLink{
        width:calc((44 / 375) * var(--widthBase));
        height:calc((44 / 375) * var(--widthBase));
    }
    .globalMenu .globalMenuSnsIco{
        width:calc((18 / 375) * var(--widthBase));
    }
    .globalMenu .globalMenuCompany{
        margin:0 0 1rem;
        font-size:var(--spFontSize14);
    }
    .globalMenu .globalMenuAddress{
        margin:0 0 1.5rem;
        font-size:var(--spFontSize11);
        line-height:1.6;
    }
    .globalMenu .globalMenuTelNum{
        justify-content:center;
        margin:0 0 0.8rem;
        font-size:var(--spFontSize24);
    }
    .globalMenu .globalMenuTelIco{
        width:22px;
        height:14px;
    }
    .globalMenu .globalMenuTelNote{
        font-size:var(--spFontSize11);
        line-height:1.5;
    }
}

/*==============================
    footer
==============================*/
.footer{
    position:relative;
    overflow:hidden;
    padding:15rem 0;
    background:url("../img/common/bgFooter.jpg") no-repeat center / cover;
    color:var(--textColorWhite);
}
.footer .footerTop{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:6rem;
    margin:0 0 6rem;
}
.footer .footerInfo{
    flex:0 0 50rem;
    min-width:0;
}
.footer .footerLogo{
    margin:0 0 3.6rem;
    line-height:1;
}
.footer .footerLogoImg{
    display:block;
    width:36.5rem;
    height:7rem;
}
.footer .footerCompany{
    margin:0 0 2.4rem;
    font-size:var(--pcFontSize18);
    font-weight:500;
    line-height:calc(28 / 18);
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerCompanySep{
    margin:0 1.6rem;
}
.footer .footerAddress{
    margin:0 0 2rem;
    font-size:var(--pcFontSize15);
    line-height:calc(20 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerDesc{
    margin:0 0 3rem;
    font-size:var(--pcFontSize13);
    line-height:calc(24 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWhite40);
}
.footer .footerTel{
    margin:0 0 3.5rem;
}
.footer .footerTelNum{
    display:inline-flex;
    align-items:center;
    gap:1.2rem;
    margin:0 0 1.5rem;
    font-size:var(--pcFontSize30);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWhite);
}
.footer .footerTelIco{
    flex-shrink:0;
    width:28px;
    height:18px;
    vertical-align:bottom;
    filter:brightness(0) invert(1);
}
.footer .footerTelNote{
    margin:0;
    font-size:var(--pcFontSize13);
    line-height:calc(22 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColorWhite);
}
.footer .footerSns{
    margin:0 0 4rem;
}
.footer .footerSnsLabel{
    margin:0 0 1.6rem;
    font-size:var(--pcFontSize18);
    font-weight:500;
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerSnsList{
    display:flex;
    align-items:center;
    gap:1.2rem;
    margin:0;
    padding:0;
    list-style:none;
}
.footer .footerSnsLink{
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
    width:50px;
    height:50px;
    border-radius:50%;
    background:var(--bgColorFooterSns);
}
.footer .footerSnsIco{
    width:22px;
    height:auto;
    vertical-align:bottom;
}
.footer .footerBannerList{
    display:flex;
    gap:1rem;
    margin:0 0 3.7rem;
    padding:0;
    list-style:none;
}
.footer .footerBannerImg{
    width:200px;
    height:74px;
    object-fit:cover;
    vertical-align:bottom;
}
.footer .footerSubLinkList{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    margin:0;
    padding:0;
    list-style:none;
}
.footer .footerSubLinkItem{
    position:relative;
    padding:0 3rem 0 0;
    font-size:var(--pcFontSize13);
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerSubLinkItem:not(:last-child)::after{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    width:1px;
    height:1em;
    background:var(--textColorWhite);
    transform:translateY(-50%);
}
.footer .footerSubLinkItem:not(:first-child){
    padding-left:3rem;
}
.footer .footerNav{
    display:grid;
    flex:1 1 auto;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:5.5rem 5rem;
    min-width:0;
}
.footer .footerNavTit{
    margin:0 0 2.2rem;
    padding:0 0 2.5rem;
    border-bottom:1px solid var(--textColorWhite25);
    font-size:var(--pcFontSize18);
    line-height:calc(28 / 18);
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerNavList{
    margin:0;
    padding:0;
    list-style:none;
}
.footer .footerNavItem{
    margin:0 0 1rem;
    font-size:var(--pcFontSize15);
    line-height:calc(30 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.footer .footerNavItem:last-child{
    margin:0;
}
.footer .footerBottom{
    position:relative;
}
.footer .footerSummary{
    margin:0 0 2.5rem;
    font-size:var(--pcFontSize13);
    line-height:calc(28 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    text-align:left;
    color:var(--textColorWhite40);
}
.footer .footerCopy{
    position:relative;
    z-index:1;
    margin:0;
    font-size:var(--pcFontSize13); 
    line-height:calc(28 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    text-align:left;
    color:var(--textColorWhite40);
}
.footer .footerDeco{
    position:absolute;
    right:0;
    bottom:2rem;
    z-index:0;
    margin:0;
    font-size:var(--pcFontSize140);
    font-weight:700;
    font-style:italic;
    line-height:1;
    letter-spacing:var(--pcLetterSpacingMinus20);
    color:var(--textColorFooterDeco);
    white-space:nowrap;
    pointer-events:none;
}
@media only screen and (max-width:1800px){
    .footer .footerNav{
        gap: 5.5rem 3rem;
    }
}
@media only screen and (max-width:1700px){
    .footer .footerInfo{
        flex:0 0 49rem;
    }
    .footer .footerNav{
        gap: 5.5rem 2.5rem;
    }
    .footer .footerNavTit{
        font-size: var(--pcFontSize16);
    }
    .footer .footerNavItem{
        font-size: var(--pcFontSize14);
    }
}
@media only screen and (max-width:1650px){
    .footer .footerNav{
        gap: 5.5rem 2rem;
    }
    .footer .footerNavTit{
        font-size: var(--pcFontSize15);
    }
    .footer .footerNavItem{
        font-size: var(--pcFontSize12);
    }
}
@media only screen and (max-width:1215px){
    .footer{
        padding:5.6rem 0 calc(65px + 5.6rem);
    }
    .footer .footerTop{
        flex-direction:column;
        gap:0;
        margin:0 0 4rem;
    }
    .footer .footerInfo{
        flex:none;
        width:100%;
    }
    .footer .footerLogo{
        margin:0 0 2.4rem;
    }
    .footer .footerLogoImg{
        width:calc((211 / 375) * var(--widthBase));
        height:auto;
    }
    .footer .footerCompany{
        margin:0 0 1.6rem;
        font-size:var(--spFontSize13);
        letter-spacing:0;
    }
    .footer .footerCompanySep{
        margin:0 0.8rem;
    }
    .footer .footerAddress{
        margin:0 0 1.6rem;
        font-size:var(--spFontSize12);
        letter-spacing:0;
    }
    .footer .footerDesc{
        margin:0 0 1.6rem;
        font-size:var(--spFontSize11);
        line-height:calc(22 / 11);
        letter-spacing:0;
    }
    .footer .footerTel{
        margin:0 0 2.8rem;
    }
    .footer .footerTelNum{
        margin:0 0 1rem;
        font-size:var(--spFontSize24);
        letter-spacing:0;
    }
    .footer .footerTelIco{
        width:22px;
        height:auto;
    }
    .footer .footerTelNote{
        font-size:var(--spFontSize11);
        line-height:calc(18 / 11);
        letter-spacing:0;
    }
    .footer .footerSns{
        display:flex;
        flex-wrap:wrap;
        align-items:center;
        gap:1.2rem 2.4rem;
        margin:0 0 2.4rem;
    }
    .footer .footerSnsLabel{
        margin:0;
        font-size:var(--spFontSize16);
        letter-spacing:0;
    }
    .footer .footerSnsList{
        gap:1.5rem;
    }
    .footer .footerSnsLink{
        width:40px;
        height:40px;
    }
    .footer .footerSnsIco{
        width:18px;
    }
    .footer .footerBannerList{
        gap:1rem;
        margin:0 0 3rem;
    }
    .footer .footerBannerItem{
        flex:1 1 0;
        min-width:0;
    }
    .footer .footerBannerImg{
        width:100%;
        height:auto;
    }
    .footer .footerSubLinkItem{
        padding:0 1.2rem 0 0;
        font-size:var(--spFontSize11);
        letter-spacing:0;
    }
    .footer .footerSubLinkItem:not(:first-child){
        padding-left:1.2rem;
    }
    .footer .footerNav{
        display:none;
    }
    .footer .footerBottom{
        padding:4rem 0 0;
        border-top:1px solid var(--textColorWhite25);
    }
    .footer .footerSummary{
        max-width:none;
        margin:0 0 2rem;
        font-size:var(--spFontSize11);
        line-height:calc(22 / 11);
        letter-spacing:0;
        text-align:left;
    }
    .footer .footerCopy{
        font-size:var(--spFontSize10);
        line-height:calc(18 / 10);
        letter-spacing:0;
        text-align:left;
    }
    .footer .footerDeco{
        right:auto;
        left:unset;
        right: 0;
        bottom:calc(65px + 0.4rem);
        font-size:var(--spFontSize50);
    }
}

/*==============================
    floatMenu（SP追従）
==============================*/
.floatMenu{
    display:none;
}
@media only screen and (max-width:1215px){
    body{
        padding-bottom:65px; /* floatMenu */
    }
    .floatMenu{
        position:fixed;
        right:0;
        bottom:0;
        left:0;
        z-index:150;
        display:block;
        height:65px;
    }
    .floatMenu .floatMenuList{
        display:flex;
        width:100%;
        height:100%;
        margin:0;
        padding:0;
        list-style:none;
        border-top: 1px solid var(--borderColorBeige);
    }
    .floatMenu .floatMenuItem{
        flex:1 1 0;
        min-width:0;
        height:100%;
        border-right: 1px solid var(--borderColorBeige);
    }
    .floatMenu .floatMenuItem:last-child{
        border-right: none;
    }
    .floatMenu .floatMenuLink{
        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:center;
        gap:0.6rem;
        box-sizing:border-box;
        width:100%;
        height:100%;
        color:var(--textColorWhite);
    }
    .floatMenu .floatMenuCatalog{
        background:var(--btnCatalogBg);
    }
    .floatMenu .floatMenuReserve{
        background:var(--btnReserveBg);
    }
    .floatMenu .floatMenuEvent,
    .floatMenu .floatMenuTel{
        background:var(--bgColorDarkGray);
    }
    .floatMenu .floatMenuIco{
        display:block;
        width:auto;
        height:17px;
        object-fit:contain;
        vertical-align:bottom;
    }
    .floatMenu .floatMenuTxt{
        font-size:var(--spFontSize12);
        line-height:1;
        letter-spacing:0;
    }
}

/*==============================
    page top（下層共通ヒーロー）
==============================*/
.secPageTop{
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    height:42rem;
    overflow:hidden;
    color:var(--textColorWhite);
}
.secPageTop .pageTopBg{
    position:absolute;
    inset:0;
    background-repeat:no-repeat;
    background-position:center;
    background-size:cover;
}
.secPageTop .pageTopInner{
    position:relative;
    z-index:1;
    text-align:center;
}
.secPageTop .pageTopTit{
    margin:0;
}
.secPageTop .pageTopTitEn{
    display:block;
    font-size:var(--pcFontSize60);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing80);
}
.secPageTop .pageTopTitJa{
    display:block;
    margin:1.6rem 0 0;
    font-size:var(--pcFontSize20);
    line-height:calc(26 / 20);
    letter-spacing:var(--pcLetterSpacing40);
}
@media only screen and (max-width:1215px){
    .secPageTop{
        height:calc((240 / 375) * var(--widthBase));
    }
    .secPageTop .pageTopTitEn{
        font-size:var(--spFontSize30);
        letter-spacing:var(--spLetterSpacing40);
    }
    .secPageTop .pageTopTitJa{
        margin:1rem 0 0;
        font-size:var(--spFontSize14);
        line-height:calc(22 / 14);
        letter-spacing:0;
    }
}

/*==============================
    breadcrumb（パンくず）
    PC: pageTop直後 / SP: main末尾（orderで並べ替え）
==============================*/
.pnkz{
    padding:2.4rem 0 0;
}
.pnkz .pnkzList{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.8rem 0;
    list-style:none;
}
.pnkz .pnkzItem{
    display:flex;
    align-items:center;
    font-size:var(--pcFontSize13);
    line-height:calc(20 / 13);
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColor);
}
.pnkz .pnkzItem:not(:last-child)::after{
    content:"—";
    margin:0 1rem;
    color:var(--textColor);
}
.pnkz .pnkzLink{
    color:var(--textColorWarmGray);
}
.pnkz .pnkzCurrent{
    color:var(--textColor);
}
@media only screen and (max-width:1215px){
    main{
        display:flex;
        flex-direction:column;
    }
    main > .pnkz{
        order:1;
        margin:5rem 0 0;
        padding:1rem 0;
        border-top:1px solid var(--borderColorBeige);
    }
    .pnkz .pnkzList{
        display:block;
        gap:0;
        white-space:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:thin;
        scrollbar-color:#c4c4c4 transparent;
    }
    .pnkz .pnkzList::-webkit-scrollbar{
        height:0.3rem;
    }
    .pnkz .pnkzList::-webkit-scrollbar-track{
        background:transparent;
    }
    .pnkz .pnkzList::-webkit-scrollbar-thumb{
        background:#c4c4c4;
        border-radius:0;
    }
    .pnkz .pnkzList::-webkit-scrollbar-button{
        display:none;
        width:0;
        height:0;
    }
    .pnkz .pnkzItem{
        display:inline;
        font-size:var(--spFontSize12);
        line-height:calc(18 / 12);
        letter-spacing:0;
    }
    .pnkz .pnkzItem:not(:last-child)::after{
        margin:0 0.4rem;
        font-size:var(--spFontSize10);
    }
}

/*==============================
    pager（ページネーション）
==============================*/
.pager{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:2rem;
}
.pager .pagerList{
    display:flex;
    align-items:center;
    gap:1rem;
    list-style:none;
}
.pager .pagerItem{
    display:flex;
    align-items:center;
}
.pager .pagerEllipsis{
    margin:0 -0.5rem;
}
.pager .pagerArrow,
.pager .pagerNum{
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
    width:4rem;
    height:4rem;
    border:none;
    border-radius:50%;
    background:var(--bgColorBeige);
    font-size:var(--pcFontSize14);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColor);
    transition:background 0.2s ease-out, color 0.2s ease-out, opacity 0.2s ease-out, border-color 0.2s ease-out;
}
.pager .pagerNum{
    border:1px solid var(--borderColorBeige);
}
.pager .pagerArrow{
    background:var(--bgColor);
}
.pager .pagerArrow.isDisabled{
    background:var(--bgColorBeigeLight);
    pointer-events:none;
    cursor:default;
    opacity:0.45;
}
.pager .pagerItem.isActive .pagerNum{
    border-color:var(--bgColorPagerActive);
    background:var(--bgColorPagerActive);
    color:var(--textColorWhite);
}
.pager .pagerArrowImg{
    width:17px;
    height:5px;
    vertical-align:top;
    filter:brightness(0);
}
.pager .pagerDots{
    position:relative;
    display:block;
    box-sizing:border-box;
    width:2.4rem;
    height:4rem;
    overflow:hidden;
    font-size:0;
    color:transparent;
}
.pager .pagerDots::before{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:2px;
    height:2px;
    border-radius:50%;
    background:var(--textColorWarmGray);
    transform:translate(-50%, -50%);
    box-shadow:0.5rem 0 0 var(--textColorWarmGray), -0.5rem 0 0 var(--textColorWarmGray);
}
@media only screen and (max-width:1215px){
    .pager{
        gap:1rem;
    }
    .pager .pagerList{
        gap:0.5rem;
    }
    .pager .pagerArrow,
    .pager .pagerNum{
        width:calc((34 / 375) * var(--widthBase));
        height:calc((34 / 375) * var(--widthBase));
        font-size:var(--spFontSize12);
    }
    .pager .pagerDots{
        width:1.6rem;
        height:calc((34 / 375) * var(--widthBase));
    }
    .pager .pagerDots::before{
        width:2px;
        height:2px;
        box-shadow:0.3rem 0 0 var(--textColorWarmGray), -0.3rem 0 0 var(--textColorWarmGray);
    }
}

/*==============================
    favoriteBtn（お気に入りハート：全ページ共通）
==============================*/
/* お気に入りハート */
:root{
    --favoriteHeartColor: #ef5959;
    --favoriteRippleColor: rgba(229, 57, 53, 0.35);
}
.favoriteBtn{
    position:absolute;
    top:2rem;
    right:2.5rem;
    z-index:2;
    display:flex;
    justify-content:center;
    align-items:center;
    box-sizing:border-box;
    width:5rem;
    height:5rem;
    padding:0;
    border:none;
    border-radius:50%;
    background:var(--bgColor);
    box-shadow:0 0.2rem 0.8rem var(--shadowColor12);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
}
.favoriteBtn .favoriteBtnRipple{
    position:absolute;
    top:50%;
    left:50%;
    z-index:0;
    width:100%;
    height:100%;
    border-radius:50%;
    background:var(--favoriteRippleColor);
    opacity:0;
    transform:translate(-50%, -50%) scale(0.4);
    pointer-events:none;
}
.favoriteBtn.isRipple .favoriteBtnRipple{
    animation:favoriteRipple 0.55s ease-out;
}
.favoriteBtn .heart-icon{
    position:relative;
    z-index:1;
    display:block;
    flex-shrink:0;
    box-sizing:content-box;
    width:2rem;
    height:1.6rem;
    overflow:visible;
    fill:var(--borderColorBeige);
    stroke:none;
    transform-origin:center center;
    transition:fill 0.25s ease-out;
}
.favoriteBtn.isActive .heart-icon{
    fill:var(--favoriteHeartColor);
}
.favoriteBtn.isRipple .heart-icon{
    animation:favoriteHeartPop 0.45s cubic-bezier(0.22, 1.2, 0.36, 1);
}
@keyframes favoriteRipple{
    0%{
        opacity:0.7;
        transform:translate(-50%, -50%) scale(0.4);
    }
    100%{
        opacity:0;
        transform:translate(-50%, -50%) scale(2.4);
    }
}
@keyframes favoriteHeartPop{
    0%{
        transform:scale(1);
    }
    35%{
        transform:scale(1.2);
    }
    65%{
        transform:scale(0.95);
    }
    100%{
        transform:scale(1);
    }
}
@media only screen and (max-width:1215px){
    .favoriteBtn{
        top:1.5rem;
        right:1.5rem;
        width:3.6rem;
        height:3.6rem;
    }
    .favoriteBtn .heart-icon{
        width:1.6rem;
        height:1.2rem;
    }
}

/*==============================
    secCmnContact
==============================*/
.secCmnContact{
    background: var(--bgColorBeige);
    padding:0 0 15rem;
}
.secCmnContact .contactInner{
    padding-top:calc((30 / 1920) * var(--widthBase));
}
.secCmnContact .contactPanel{
    position:relative;
    box-sizing:border-box;
    padding:4.4rem 8rem 7rem;
    border:1px solid var(--borderColorBeige);
    border-radius: 0.3rem;
}
.secCmnContact .contactHead{
    margin:0 0 2.8rem;
    text-align:center;
}
.secCmnContact .contactTit{
    position: absolute;
    top: -6px;
    left: 50%;
    z-index: 1;
    margin: 0;
    font-size: var(--pcFontSize60);
    font-weight: 500;
    font-style: italic;
    line-height: 1;
    letter-spacing: var(--pcLetterSpacing40);
    white-space: nowrap;
    color: var(--textColor);
    transform: translate(-50%, -50%);
    background: var(--bgColorBeige);
    padding: 0 4rem;
}
.secCmnContact .contactLead{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(32 / 15);
    letter-spacing:var(--pcLetterSpacing40);
}
.secCmnContact .contactBtnList{
    display:flex;
    gap:2.8rem;
    margin:0 0 5.6rem;
    padding:0;
    list-style:none;
}
.secCmnContact .contactBtnItem{
    flex:1 1 0;
    min-width:0;
}
.secCmnContact .contactBtn{
    position:relative;
    display:flex;
    align-items:center;
    box-sizing:border-box;
    width:100%;
    height: 10.5rem;
    padding:0 4rem 0 0;
    color:var(--textColorWhite);
    border-radius: 0.3rem;
}
.secCmnContact .contactBtnCatalog{
    background:var(--btnCatalogBg);
}
.secCmnContact .contactBtnReserve{
    background:var(--btnReserveBg);
}
.secCmnContact .contactBtnInquiry{
    background:var(--bgColorDark);
}
.secCmnContact .contactBtnThumb{
    flex-shrink:0;
    width: 10.5rem;
    height: 10.5rem;
    margin:0;
    object-fit:cover;
    vertical-align:bottom;
}
.secCmnContact .contactBtnTxt{
    flex:1 1 auto;
    min-width:0;
    padding:0 0 0 2.4rem;
    font-size:var(--pcFontSize18);
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
}
.secCmnContact .contactBtnArrow{
    position:absolute;
    top:0;
    right:3rem;
    bottom:0;
    width:17px;
    height:5px;
    margin:auto 0;
    filter:brightness(0) invert(1);
}
.secCmnContact .contactTel{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:3rem;
}
.secCmnContact .contactTelLabel{
    margin:0;
    font-size:var(--pcFontSize15);
    line-height:calc(30 / 15);
    letter-spacing:var(--pcLetterSpacing40);
    text-align:right;
    font-weight: bold;
}
.secCmnContact .contactTelBody{
    position:relative;
    padding:0 0 0 3rem;
    border-left:1px solid var(--borderColor);
}
.secCmnContact .contactTelNum{
    display:inline-flex;
    align-items:center;
    gap:1.2rem;
    margin: 0 0 0.8rem;
    font-size:var(--pcFontSize30);
    font-weight:500;
    line-height:1;
    letter-spacing:var(--pcLetterSpacing40);
    color:var(--textColor);
}
.secCmnContact .contactTelIco{
    flex-shrink:0;
    width:28px;
    height:18px;
    vertical-align:bottom;
}
.secCmnContact .contactTelNumTxt{
    line-height:1;
    padding-bottom: 0.3rem;
}
.secCmnContact .contactTelNote{
    margin:0;
    font-size:var(--pcFontSize13);
    line-height:calc(20 / 13);
    letter-spacing:var(--pcLetterSpacing40);
}

@media only screen and (max-width:1215px){
    .secCmnContact{
        padding: 0 0 1rem;
    }
    .secCmnContact .contactInner{
        padding-top:calc((24 / 375) * var(--widthBase));
    }
    .secCmnContact .contactPanel{
        padding: 2.7rem 1.4rem 2.5rem;
        border-radius: 0.3rem;
    }
    .secCmnContact .contactHead{
        margin: 0 0 2rem;
    }
    .secCmnContact .contactTit{
        top: -0.2rem;
        padding:0 1.6rem;
        font-size:var(--spFontSize34);
        letter-spacing:0;
    }
    .secCmnContact .contactLead{
        font-size:var(--spFontSize12);
        line-height:calc(22 / 12);
        letter-spacing:0;
    }
    .secCmnContact .contactBtnList{
        flex-direction:column;
        gap: 0.9rem;
        margin:0 0 1.7rem;
    }
    .secCmnContact .contactBtn{
        overflow:hidden;
        height:calc((65 / 375) * var(--widthBase));
        min-height:0;
        padding: 0 calc(1.5rem + 1.3rem) 0 0;
        border-radius:0.3rem;
    }
    .secCmnContact .contactBtnThumb{
        width:calc((65 / 375) * var(--widthBase));
        height:100%;
    }
    .secCmnContact .contactBtnTxt{
        padding:0 0 0 1.6rem;
        font-size:var(--spFontSize14);
        letter-spacing:0;
    }
    .secCmnContact .contactBtnArrow{
        right:1.6rem;
        width: 1.3rem;
    }
    .secCmnContact .contactTel{
        flex-direction:column;
        align-items:center;
        gap: 0.7rem;
    }
    .secCmnContact .contactTelLabel{
        text-align:center;
        font-size:var(--spFontSize13);
        letter-spacing:0;
    }
    .secCmnContact .contactTelBody{
        display:flex;
        flex-direction:column;
        align-items:center;
        padding:0;
        border-left:none;
        text-align:center;
    }
    .secCmnContact .contactTelNum{
        justify-content:center;
        margin: 0 0 0.7rem;
        font-size: var(--spFontSize24);
        letter-spacing:0;
        gap: 1rem;
    }
    .secCmnContact .contactTelIco{
        width: 2.4rem;
        height:auto;
    }
    .secCmnContact .contactTelNote{
        font-size:var(--spFontSize11);
        line-height: calc(18 / 11);
        letter-spacing:0;
    }
}