@charset "utf-8";

@font-face {
    font-family: 'Noto Serif Japanese';
    font-style: normal;
    font-weight: 400;
    src: url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Regular.woff2) format('woff2'),
        url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Regular.woff) format('woff'),
        url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Regular.otf) format('opentype');
}

@font-face {
    font-family: 'Noto Serif Japanese';
    font-style: normal;
    font-weight: 700;
    src: url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Bold.woff2) format('woff2'),
        url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Bold.woff) format('woff'),
        url(../fonts/NotoSerifCJKjp/NotoSerifCJKjp-Bold.otf) format('opentype');
}

/*==============================
    remの基準
==============================*/
html {
    font-size: 10px;
}

@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: 14rem;
    --footerSp: 10rem;

    --footerContactPc: 20rem;
    --footerContactSp: 14rem;

    /* 色 */
    --textColor: #2b2927;
    --keyColor: #018cd4;
    --privacyColor: #006699;
    --whiteColor: #fff;
    --white_light2Color: rgba(255, 255, 255, 0.2);
    --white_light3Color: rgba(255, 255, 255, 0.4);
    --gray_lightColor: #ddd;
    --gray_light2Color: #a8aeaf;
    --gray_light3Color: #cecece;
    --gray_light4Color: #d0d0d0;
    --greenColor: #27aa41;
    --green_darkColor: #3c845a;
    --green_dark2Color: #40865d;
    --green_dark3Color: #006a2d;
    --green_dark4Color: #1f8b34;
    --orangeColor: #ff4e00;
    --orange_darkColor: #ec5816;
    --orange_lightColor: #ff6c00;
    --brownColor: #92603c;
    --brown_darkColor: #53331c;
    --yellowColor: #e9c510;
    --yellow_lightColor: #fffc00;
    --yellow_light2Color: #eac512;
    --beigeColor: #faf6ef;
    --beige_darkColor: #f2efea;
    --beige_dark2Color: #dbd5cc;
    --beige_lightColor: #f9f9f9;
    --black_lightColor: #191f20;
    --black_light2Color: rgba(15, 15, 15, 0.15);
    --bgFooterColor: #191f20;
    --borderFnaviColor: #333333;
    --bgbtnNaviColor: #f2efea;
    --bgFnaviColor: #eac512;
    --borderFnaviColor: #333333;
    --linkColor: #258be5;
    --editor_linkColor: #295ea2;
    --editor_borderColor: #ccc;
    --colorCalculation: #8c0000;
    --designLineColor: #55483c4d;

    /* フォントサイズ（PC） */
    --pcFontSize10: 1rem;
    --pcFontSize11: 1.1rem;
    --pcFontSize12: 1.2rem;
    --pcFontSize13: 1.3rem;
    --pcFontSize14: 1.4rem;
    --pcFontSize15: 1.5rem;
    --pcFontSize16: 1.6rem;
    --pcFontSize18: 1.8rem;
    --pcFontSize20: 2rem;
    --pcFontSize21: 2.1rem;
    --pcFontSize22: 2.2rem;
    --pcFontSize23: 2.3rem;
    --pcFontSize24: 2.4rem;
    --pcFontSize25: 2.5rem;
    --pcFontSize26: 2.6rem;
    --pcFontSize28: 2.8rem;
    --pcFontSize30: 3rem;
    --pcFontSize32: 3.2rem;
    --pcFontSize33: 3.3rem;
    --pcFontSize34: 3.4rem;
    --pcFontSize35: 3.5rem;
    --pcFontSize36: 3.6rem;
    --pcFontSize40: 4rem;
    --pcFontSize42: 4.2rem;
    --pcFontSize44: 4.4rem;
    --pcFontSize45: 4.5rem;
    --pcFontSize48: 4.8rem;
    --pcFontSize50: 5rem;
    --pcFontSize55: 5.5rem;
    --pcFontSize60: 6rem;
    --pcFontSize70: 7rem;
    --pcFontSize72: 7.2rem;
    --pcFontSize80: 8rem;
    --pcFontSize90: 9rem;
    --pcFontSize100: 10rem;

    /* line-height（PC） */
    --pcLineHeight10_15: calc(15 / 10);
    --pcLineHeight11_16: calc(16 / 11);
    --pcLineHeight11_20: calc(20 / 11);
    --pcLineHeight12_22: calc(22 / 12);
    --pcLineHeight12_24: calc(24 / 12);
    --pcLineHeight12_28: calc(28 / 12);
    --pcLineHeight13_19: calc(19 / 13);
    --pcLineHeight13_30: calc(30 / 13);
    --pcLineHeight14_21: calc(21 / 14);
    --pcLineHeight14_26: calc(26 / 14);
    --pcLineHeight14_28: calc(28 / 14);
    --pcLineHeight14_30: calc(30 / 14);
    --pcLineHeight14_31: calc(31 / 14);
    --pcLineHeight14_34: calc(34 / 14);
    --pcLineHeight15_30: calc(30 / 15);
    --pcLineHeight15_35: calc(35 / 15);
    --pcLineHeight15_36: calc(36 / 15);
    --pcLineHeight16_20: calc(20 / 16);
    --pcLineHeight16_28: calc(28 / 16);
    --pcLineHeight16_30: calc(30 / 16);
    --pcLineHeight16_31: calc(31 / 16);
    --pcLineHeight16_32: calc(32 / 16);
    --pcLineHeight16_36: calc(36 / 16);
    --pcLineHeight16_40: calc(40 / 16);
    --pcLineHeight18_30: calc(30 / 18);
    --pcLineHeight18_32: calc(32 / 18);
    --pcLineHeight18_36: calc(36 / 18);
    --pcLineHeight18_38: calc(38 / 18);
    --pcLineHeight18_40: calc(40 / 18);
    --pcLineHeight18_42: calc(42 / 18);
    --pcLineHeight18_48: calc(48 / 18);
    --pcLineHeight20_24: calc(24 / 20);
    --pcLineHeight20_36: calc(36 / 20);
    --pcLineHeight20_40: calc(40 / 20);
    --pcLineHeight20_42: calc(42 / 20);
    --pcLineHeight22_30: calc(30 / 22);
    --pcLineHeight22_38: calc(38 / 22);
    --pcLineHeight22_42: calc(42 / 22);
    --pcLineHeight22_56: calc(56 / 22);
    --pcLineHeight23_56: calc(56 / 23);
    --pcLineHeight24_42: calc(42 / 24);
    --pcLineHeight26_30: calc(30 / 26);
    --pcLineHeight26_40: calc(40 / 26);
    --pcLineHeight26_50: calc(50 / 26);
    --pcLineHeight26_56: calc(56 / 26);
    --pcLineHeight28_42: calc(42 / 28);
    --pcLineHeight28_50: calc(50 / 28);
    --pcLineHeight28_55: calc(55 / 28);
    --pcLineHeight30_42: calc(42 / 30);
    --pcLineHeight30_70: calc(70 / 30);
    --pcLineHeight32_50: calc(50 / 32);
    --pcLineHeight32_55: calc(55 / 32);
    --pcLineHeight32_56: calc(56 / 32);
    --pcLineHeight32_65: calc(65 / 32);
    --pcLineHeight33_70: calc(70 / 33);
    --pcLineHeight33_80: calc(80 / 33);
    --pcLineHeight35_65: calc(65 / 35);
    --pcLineHeight36_50: calc(50 / 36);
    --pcLineHeight40_60: calc(60 / 40);
    --pcLineHeight40_65: calc(65 / 40);
    --pcLineHeight40_70: calc(70 / 40);
    --pcLineHeight40_80: calc(80 / 40);
    --pcLineHeight44_60: calc(60 / 44);
    --pcLineHeight50_70: calc(70 / 50);
    --pcLineHeight50_100: calc(100 / 50);
    --pcLineHeight60_80: calc(80 / 60);

    /* letter-spacing（PC） */
    --pcLetterSpacing10_50: 0.05em;
    --pcLetterSpacing10_200: 0.2em;
    --pcLetterSpacing11_50: 0.05em;
    --pcLetterSpacing12_50: 0.05em;
    --pcLetterSpacing12_100: 0.10em;
    --pcLetterSpacing12_150: 0.15em;
    --pcLetterSpacing13_50: 0.05em;
    --pcLetterSpacing13_200: 0.2em;
    --pcLetterSpacing13_250: 0.25em;
    --pcLetterSpacing14_40: 0.04em;
    --pcLetterSpacing14_50: 0.05em;
    --pcLetterSpacing14_60: 0.06em;
    --pcLetterSpacing14_100: 0.1em;
    --pcLetterSpacing14_300: 0.3em;
    --pcLetterSpacing15_100: 0.1em;
    --pcLetterSpacing15_150: 0.15em;
    --pcLetterSpacing16_40: 0.04em;
    --pcLetterSpacing16_50: 0.05em;
    --pcLetterSpacing16_60: 0.06em;
    --pcLetterSpacing16_100: 0.1em;
    --pcLetterSpacing16_150: 0.15em;
    --pcLetterSpacing16_200: 0.2em;
    --pcLetterSpacing18_50: 0.05em;
    --pcLetterSpacing18_60: 0.06em;
    --pcLetterSpacing18_100: 0.1em;
    --pcLetterSpacing18_150: 0.15em;
    --pcLetterSpacing18_200: 0.2em;
    --pcLetterSpacing18_300: 0.3em;
    --pcLetterSpacing20_50: 0.05em;
    --pcLetterSpacing20_60: 0.06em;
    --pcLetterSpacing20_80: 0.08em;
    --pcLetterSpacing20_100: 0.1em;
    --pcLetterSpacing21_50: 0.05em;
    --pcLetterSpacing22_40: 0.04em;
    --pcLetterSpacing22_50: 0.05em;
    --pcLetterSpacing22_100: 0.1em;
    --pcLetterSpacing22_150: 0.15em;
    --pcLetterSpacing23_100: 0.1em;
    --pcLetterSpacing24_50: 0.05em;
    --pcLetterSpacing24_100: 0.1em;
    --pcLetterSpacing25_100: 0.1em;
    --pcLetterSpacing24_80: 0.08em;
    --pcLetterSpacing26_40: 0.04em;
    --pcLetterSpacing26_50: 0.05em;
    --pcLetterSpacing26_100: 0.1em;
    --pcLetterSpacing28_50: 0.05em;
    --pcLetterSpacing28_80: 0.08em;
    --pcLetterSpacing28_200: 0.2em;
    --pcLetterSpacing30_30: 0.03em;
    --pcLetterSpacing30_40: 0.04em;
    --pcLetterSpacing30_50: 0.05em;
    --pcLetterSpacing30_80: 0.08em;
    --pcLetterSpacing30_100: 0.1em;
    --pcLetterSpacing30_150: 0.15em;
    --pcLetterSpacing30_200: 0.2em;
    --pcLetterSpacing30_250: 0.25em;
    --pcLetterSpacing32_50: 0.05em;
    --pcLetterSpacing32_60: 0.06em;
    --pcLetterSpacing32_100: 0.1em;
    --pcLetterSpacing33_100: 0.1em;
    --pcLetterSpacing33_200: 0.2em;
    --pcLetterSpacing34_60: 0.06em;
    --pcLetterSpacing35_300: 0.3em;
    --pcLetterSpacing36_50: 0.05em;
    --pcLetterSpacing36_100: 0.1em;
    --pcLetterSpacing40_50: 0.05em;
    --pcLetterSpacing40_80: 0.08em;
    --pcLetterSpacing40_100: 0.1em;
    --pcLetterSpacing40_200: 0.2em;
    --pcLetterSpacing42_40: 0.04em;
    --pcLetterSpacing44_100: 0.1em;
    --pcLetterSpacing44_150: 0.15em;
    --pcLetterSpacing44_200: 0.2em;
    --pcLetterSpacing44_250: 0.25em;
    --pcLetterSpacing48_250: 0.25em;
    --pcLetterSpacing55_50: 0.05em;
    --pcLetterSpacing50_100: 0.1em;
    --pcLetterSpacing60_50: 0.05em;
    --pcLetterSpacing60_100: 0.1em;
    --pcLetterSpacing60_250: 0.25em;

    /* フォントサイズ（SP）*/
    --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));
    --spFontSize20: calc((20 / 375) * var(--widthBase));
    --spFontSize22: calc((22 / 375) * var(--widthBase));
    --spFontSize24: calc((24 / 375) * var(--widthBase));
    --spFontSize26: calc((26 / 375) * var(--widthBase));
    --spFontSize27: calc((27 / 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));
    --spFontSize39: calc((39 / 375) * var(--widthBase));
    --spFontSize40: calc((40 / 375) * var(--widthBase));

    /* line-height（SP） */
    --spLineHeight10_13: calc(13 / 10);
    --spLineHeight10_18: calc(18 / 10);
    --spLineHeight10_20: calc(20 / 10);
    --spLineHeight11_15: calc(15 / 11);
    --spLineHeight11_20: calc(20 / 11);
    --spLineHeight11_24: calc(24 / 11);
    --spLineHeight12_18: calc(18 / 12);
    --spLineHeight12_20: calc(20 / 12);
    --spLineHeight12_22: calc(22 / 12);
    --spLineHeight12_24: calc(24 / 12);
    --spLineHeight12_26: calc(26 / 12);
    --spLineHeight12_30: calc(30 / 12);
    --spLineHeight13_20: calc(20 / 13);
    --spLineHeight13_24: calc(24 / 13);
    --spLineHeight13_26: calc(26 / 13);
    --spLineHeight13_28: calc(28 / 13);
    --spLineHeight13_30: calc(30 / 13);
    --spLineHeight13_34: calc(34 / 13);
    --spLineHeight14_19: calc(19 / 14);
    --spLineHeight14_20: calc(20 / 14);
    --spLineHeight14_22: calc(22 / 14);
    --spLineHeight14_26: calc(26 / 14);
    --spLineHeight15_22: calc(22 / 15);
    --spLineHeight16_26: calc(26 / 16);
    --spLineHeight16_30: calc(30 / 16);
    --spLineHeight16_32: calc(32 / 16);
    --spLineHeight16_40: calc(40 / 16);
    --spLineHeight16_45: calc(45 / 16);
    --spLineHeight17_25: calc(25 / 17);
    --spLineHeight17_35: calc(35 / 17);
    --spLineHeight18_24: calc(24 / 18);
    --spLineHeight18_26: calc(26 / 18);
    --spLineHeight18_28: calc(28 / 18);
    --spLineHeight18_30: calc(30 / 18);
    --spLineHeight18_34: calc(34 / 18);
    --spLineHeight18_38: calc(38 / 18);
    --spLineHeight18_40: calc(40 / 18);
    --spLineHeight20_26: calc(26 / 20);
    --spLineHeight20_30: calc(30 / 20);
    --spLineHeight20_36: calc(36 / 20);
    --spLineHeight20_40: calc(40 / 20);
    --spLineHeight22_38: calc(38 / 22);
    --spLineHeight24_40: calc(40 / 24);
    --spLineHeight27_30: calc(30 / 27);
    --spLineHeight30_40: calc(40 / 30);
    --spLineHeight30_60: calc(60 / 30);

    /* letter-spacing（SP） */
    --spLetterSpacing10_0: 0;
    --spLetterSpacing10_50: 0.05em;
    --spLetterSpacing11_0: 0;
    --spLetterSpacing11_50: 0.05em;
    --spLetterSpacing11_100: 0.1em;
    --spLetterSpacing11_150: 0.15em;
    --spLetterSpacing12_0: 0;
    --spLetterSpacing12_100: 0.1em;
    --spLetterSpacing12_150: 0.15em;
    --spLetterSpacing13_0: 0;
    --spLetterSpacing13_35: 0.035em;
    --spLetterSpacing13_50: 0.05em;
    --spLetterSpacing13_100: 0.1em;
    --spLetterSpacing13_200: 0.2em;
    --spLetterSpacing14_0: 0;
    --spLetterSpacing14_50: 0.05em;
    --spLetterSpacing14_150: 0.15em;
    --spLetterSpacing15_0: 0;
    --spLetterSpacing15_100: 0.1em;
    --spLetterSpacing16_0: 0;
    --spLetterSpacing16_50: 0.05em;
    --spLetterSpacing16_100: 0.1em;
    --spLetterSpacing16_200: 0.2em;
    --spLetterSpacing16_250: 0.25em;
    --spLetterSpacing17_200: 0.20em;
    --spLetterSpacing17_250: 0.25em;
    --spLetterSpacing18_0: 0;
    --spLetterSpacing18_50: 0.05em;
    --spLetterSpacing18_200: 0.2em;
    --spLetterSpacing20_0: 0;
    --spLetterSpacing20_30: 0.03em;
    --spLetterSpacing20_50: 0.05em;
    --spLetterSpacing20_150: 0.15em;
    --spLetterSpacing22_50: 0.05em;
    --spLetterSpacing22_60: 0.06em;
    --spLetterSpacing22_100: 0.1em;
    --spLetterSpacing27_100: 0.1em;
    --spLetterSpacing28_50: 0.05em;
    --spLetterSpacing30_30: 0.03em;
    --spLetterSpacing30_50: 0.05em;
    --spLetterSpacing30_100: 0.1em;
    --spLetterSpacing34_100: 0.1em;
    --spLetterSpacing34_200: 0.2em;
}

/*==============================
    基本設定
==============================*/
body {
    color: var(--textColor);
    font-size: var(--pcFontSize12);
    font-family: "YakuHanMP", "游明朝体", YuMincho, "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", 'Noto Serif Japanese';
    margin: 0;
    padding: 0;
    text-align: left;
    background: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.25);
    position: relative;
    word-break: break-all;
    min-width: 1180px;
    overflow-y: scroll;
}

@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;
}

.fLato {
    font-family: "Lato", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif
}

.fShippori {
    font-family: "Shippori Mincho", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif
}

.fOrange {
    color: var(--orange_lightColor);
}

.fOrange2 {
    color: var(--orangeColor);
}

.fYellow {
    color: var(--yellowColor);
}

.fWhite {
    color: var(--whiteColor);
}

.fGreen {
    color: var(--green_darkColor);
}

.fGreen2 {
    color: var(--greenColor);
}

.fWineRed {
    color: var(--colorCalculation);
}

.bgYl {
    background: linear-gradient(transparent 65%, var(--yellow_lightColor) 65%, var(--yellow_lightColor) 90%, transparent 90%);
}

.bgYl100 {
    background: linear-gradient(transparent 10%, var(--yellow_lightColor) 10%, var(--yellow_lightColor) 80%, transparent 80%);
}

.bgYl2 {
    background: linear-gradient(transparent 65%, var(--yellow_light2Color) 65%, var(--yellow_light2Color) 90%, transparent 90%);
}

.bgYl.jsAnim,
.bgYl100.jsAnim,
.bgYl2.jsAnim {
    background-size: 0% 100%;
    background-repeat: no-repeat;
    transition: background-size 0.8s ease-out 0.4s;
}

.bgYl.jsShow,
.bgYl100.jsShow,
.bgYl2.jsShow {
    background-size: 100% 100%;
}

/*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;
}

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

/* #header + #container{
    padding-top: 11rem;
}
@media only screen and (max-width:1215px){
    #header + #container{
        padding-top: 6rem;
    }
} */

/*========================================
    レスポンシブ用(不要な場合は削除)
========================================*/
.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
-----------------------------------------------*/
.wrapper1820 {
    max-width: calc(100% - 10rem);
    width: 182rem;
    margin: 0 auto;
}

.wrapper1720 {
    max-width: calc(100% - 10rem);
    width: 172rem;
    margin: 0 auto;
}

.wrapper1690 {
    max-width: calc(100% - 10rem);
    width: 169rem;
    margin: 0 auto;
}

.wrapper1620 {
    max-width: calc(100% - 10rem);
    width: 162rem;
    margin: 0 auto;
}

.wrapper1600 {
    max-width: calc(100% - 10rem);
    width: 160rem;
    margin: 0 auto;
}

.wrapper1560 {
    max-width: calc(100% - 10rem);
    width: 156rem;
    margin: 0 auto;
}

.wrapper1320 {
    max-width: calc(100% - 10rem);
    width: 132rem;
    margin: 0 auto;
}

.wrapper1280 {
    max-width: calc(100% - 10rem);
    width: 128rem;
    margin: 0 auto;
}

.wrapper1260 {
    max-width: calc(100% - 10rem);
    width: 126rem;
    margin: 0 auto;
}

.wrapper1160 {
    max-width: calc(100% - 10rem);
    width: 116rem;
    margin: 0 auto;
}

.wrapper1000 {
    max-width: calc(100% - 10rem);
    width: 100rem;
    margin: 0 auto;
}

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

    .wrapper1820,
    .wrapper1720,
    .wrapper1620,
    .wrapper1600,
    .wrapper1560,
    .wrapper1320,
    .wrapper1280,
    .wrapper1260,
    .wrapper1160,
    .wrapper1000 {
        max-width: none;
        width: 100%;
    }

    .wrapperFit {
        max-width: 40rem;
        margin: 0 auto;
    }

    .wrapperSp {
        width: 92%;
        margin: 0 auto;
    }

    .wrapperSp335 {
        width: 89.336%;
        margin: 0 auto;
    }

    .wrapperSp355 {
        width: 94.667%;
        margin: 0 auto;
    }
}

/*-----------------------------------------------
    jsHide
-----------------------------------------------*/
/* .jsHide,
.jsHideHero{
    transition: opacity .6s ease-in;
}
.jsHide:not(.jsShow),
.jsHideHero:not(.jsShow){
    opacity: 0;
} */

.jsHide,
.ro a.jsHide {
    transform: translateY(50px);
    opacity: 0;
    transition: transform 1.6s cubic-bezier(0.19, 1, 0.22, 1), filter 1s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.3s cubic-bezier(0.19, 1, 0.22, 1);
    transform-origin: center top;
}

.jsHide.jsShow,
.ro a.jsHide.jsShow {
    transform: translateY(0);
    opacity: 1;
}

/*-----------------------------------------------
    jsHideAnime
-----------------------------------------------*/
.jsHideAnime {
    opacity: 0;
    transform: translateY(30px);
    filter: blur(4px);
    transition: 
        opacity 1.6s ease,
        transform 1.6s cubic-bezier(0.19, 1, 0.22, 1),
        filter 2s ease;
    will-change: opacity, transform, filter;
}

.jsHideAnime.jsShow {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

/*-----------------------------------------------
    hoverZoom
-----------------------------------------------*/
.hoverZoom {
    overflow: hidden;
}

.hoverZoom img:not(.noZoom) {
    -webkit-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}

.hoverZoom:hover img:not(.noZoom) {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

/*-----------------------------------------------
    isTarget
-----------------------------------------------*/
.isTarget {
    position: relative;
    display: inline-block;
    padding-right: 1.4rem;
}

.isTarget::after {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    top: -0.3rem;
    right: 0;
    width: 1rem;
    height: 1rem;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
}

.isTarget.lazyloaded::after {
    background-image: url(../img/common/iconTarget.png);
}

/*-----------------------------------------------
    アニメーション
-----------------------------------------------*/
.fadeup {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

/* === 左からフェードイン（テキスト用） === */
.fadeleft {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fadeleft.is-visible {
    opacity: 1;
    transform: translateX(0);
}


/* ロード時のアニメーション */
.heroOverlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
}

/* 下端ぼかし付きオーバーレイを最初から用意 */
.heroOverlay-color {
    position: absolute;
    inset: 0;
    background: #d4c9bf;
    /* 不透明しっかり色 */
    opacity: 1;

    -webkit-mask-image: linear-gradient(to bottom,
            rgba(0, 0, 0, 1) 0%,
            rgba(0, 0, 0, 0.7) 75%,
            rgba(0, 0, 0, 0.3) 95%,
            rgba(0, 0, 0, 0) 100%);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: bottom;
    -webkit-mask-size: 100% 100%;

    mask-image: linear-gradient(to bottom,
            rgba(0, 0, 0, 1) 0%,
            rgba(0, 0, 0, 0.7) 75%,
            rgba(0, 0, 0, 0.3) 95%,
            rgba(0, 0, 0, 0) 100%);
    mask-repeat: no-repeat;
    mask-position: bottom;
    mask-size: 100% 100%;
    height: 160vh;
}

/* フェードアウト開始：上に抜けるだけ */
.heroOverlay.fadeout .heroOverlay-color {
    animation: overlaySlideUp 2s ease forwards;
}

@keyframes overlaySlideUp {
    0% {
        opacity: 1;
        transform: translateY(0%);
    }

    100% {
        opacity: 0;
        transform: translateY(-100%);
    }
}

/* ページ全体を最初ぼかしておく */
/* #container {
    filter: blur(12px);
    transition: filter 3s ease;
} */

/*-----------------------------------------------
    herder
-----------------------------------------------*/
#header {
    height: 12.1rem;
    width: 100%;
    position: absolute;
    display: flex;
    align-items: flex-end;
    top: 0;
    left: 0;
    color: #fff;
    z-index: 10000;
}

#header .headerWrapper {
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 0 13rem 0 3rem;
}

#header .leftBox {
    flex-shrink: 0;
    height: 100%;
    display: flex;
    align-items: center;
    position: relative;
    top: 2rem;
    left: 4rem;
}

#header .headerLogo {
    display: inline-block;
    width: 13rem;
}

#header .rightBox {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0 0 0 auto;
}

#header .gNaviList {
    display: flex;
    align-items: center;
}

#header .gNaviItem {
    margin-left: 4rem;
}

#header .gNaviItem:first-child {
    margin-left: 0;
}

#header .naviLink {
    font-size: var(--pcFontSize14);
    letter-spacing: var(--pcLetterSpacing14_300);
    font-weight: bold;
    text-decoration: none;
    color: var(--textColor);
    display: block;
}

#header .linkList {
    margin-left: 2.5rem;
    display: flex;
    gap: 4rem;
}

#header .linkItem {
    width: 13rem;
}

#header .linkInner {
    position: relative;
    height: 12rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    font-size: var(--pcFontSize13);
    line-height: var(--pcLineHeight13_19);
    letter-spacing: var(--pcLetterSpacing13_200);
    color: var(--textColor);
    padding-bottom: 5rem;
}

#header .linkItem:nth-child(2) .linkInner {}

#header .linkInner::after {
    position: absolute;
    content: "";
    bottom: 0;
}

#header .linkItem:nth-child(1) .linkInner::after {
    width: 11rem;
    height: 6.5rem;
    left: calc(50% - 5.5rem);
    background: url(../img/common/iconHeaderLink01.png) center top / cover;
}

#header .linkItem:nth-child(2) .linkInner::after {
    width: 12.7rem;
    height: 8.3rem;
    left: calc(50% - 6.7rem);
    bottom: -2.5rem;
    background: url(../img/common/iconHeaderLink02.png) center top / cover;
}

@media only screen and (max-width:1215px) {
    #header {
        height: 5rem;
        width: 100%;
        display: block;
        border-bottom: none;
    }

    #header::after {
        background-image: none;
        opacity: 1;
        background: rgb(255, 255, 255, 0.502);
    }

    #header .headerWrapper {
        padding: 0;
    }

    #header.naviOpen .headerWrapper {
        display: none;
    }

    #header .headerLogo {
        width: 8.4rem;
    }

    #header .rightBox {
        display: none;
    }

    #header .leftBox {
        top: 2.5rem;
        left: 2rem;
    }
}

/*-----------------------------------------------
    footer
-----------------------------------------------*/
#footer {
    background-color: #dcd3ca;
    padding: 12.6rem 0 6rem;
    color: #55483c;
    font-family: "YakuHanJP_Narrow", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    overflow: hidden;
}

#footer .innerFlex {
    display: flex;
    gap: 11.5385%;
}

#footer .boxLogo {
    display: flex;
    gap: 7.8rem;
}

#footer .boxLogo .txtEng {
    mix-blend-mode: overlay;
    padding-top: 1rem;
}

/* boxLink */
#footer .boxLink {
    display: flex;
    gap: 5rem;
}

#footer .imgTxt {
    margin-top: 3rem;
}

#footer .boxLink .item {
    position: relative;
}

#footer .footerLink {
    margin-top: 4rem;
}

#footer .boxLink .item::before {
    content: '';
    position: absolute;
    height: 11.5rem;
    width: 0.1rem;
    background: #55483c;
    top: calc(50% - 5.525rem);
    right: -2.5rem;
}

#footer .boxLink .item:last-child::before {
    display: none;
}

#footer .boxLink.privacy .item:before {
    display: none;
}

#footer .boxLink .itemAdd {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_150);
    line-height: var(--pcLineHeight12_24);
    white-space: nowrap;
}

#footer .boxLink .itemTel {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing30_50);
    margin-top: 1.5rem;
    display: block;
    white-space: nowrap;
}

#footer .boxLink .itemOpen {
    font-size: var(--pcFontSize10);
    margin-top: 2.2rem;
    white-space: nowrap;
}

#footer .boxBtn {
    margin-top: 4.6rem;
}

#footer .boxBtn .link {
    width: 32rem;
    height: 8rem;
    border: 0.1rem solid #55483c;
    display: flex;
    align-items: center;
    gap: 2rem;
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing18_150);
    padding-left: 2.2rem;
}

#footer .boxBtn .link+.link {
    margin-top: 2rem;
}

#footer .footerLeft {
    width: 48.7179%;
    margin-top: 2rem;
}

#footer .footerRight {
    width: 39.7436%;
}

#footer .footerRight .txtRight {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing30_150);
    line-height: var(--pcLineHeight30_70);
    font-weight: bold;
    white-space: nowrap;
}

#footer .footerRight .linkList {
    margin-top: 5rem;
    padding-top: 5.6rem;
    border-top: 0.1rem solid #55483c;
}

#footer .footerRight .itemMenu {
    display: flex;
    justify-content: space-between;
}

/* #footer .footerRight .listMenu {
    width: calc((100% - 30%) / 3);
} */

#footer .footerRight .titMenu {
    font-size: var(--pcFontSize22);
    letter-spacing: var(--pcLetterSpacing22_150);
    margin-bottom: 3rem;
}

#footer .footerRight .txtMenu {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_150);
    line-height: var(--pcLineHeight12_22);
    margin-bottom: 2.6rem;
}

#footer .footerInfo {
    display: flex;
    justify-content: space-between;
    margin-top: 20rem;
}

#footer .footerInfo .item {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_100);
}

#footer .copy {
    font-size: var(--pcFontSize10);
    letter-spacing: var(--pcLetterSpacing10_200);
}

@media only screen and (max-width:1600px) {
    #footer .footerRight .txtRight {
        font-size: var(--pcFontSize26);
    }
}
@media only screen and (max-width:1215px) {
    #footer {
        padding: 5rem 0 6rem;
        position: relative;
        z-index: 2;
    }

    #footer .innerFlex {
        gap: 0;
        flex-direction: column;
        padding: 0 2rem;
        position: relative;
    }

    #footer .boxLink {
        gap: 3.4rem;
        flex-direction: column;
    }

    #footer .footerRight .txtRight {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        line-height: var(--spLineHeight11_24);
        text-align: right;
        white-space: wrap;
        position: absolute;
        top: 8rem;
        right: 2rem;
    }

    #footer .footerRight {
        width: 100%;
    }

    #footer .footerLeft {
        width: 100%;
        margin-top: 0;
    }

    #footer .boxLogo {
        gap: 0;
        justify-content: space-between;
    }

    #footer .boxLogo .txtEng {
        padding-top: 0.4rem;
        width: 17.9rem;
    }

    #footer .boxLogo .img {
        width: 10rem;
    }

    #footer .boxLink .itemOpen {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        margin-top: 1.7rem;
        white-space: nowrap;
    }

    #footer .footerLink {
        margin-top: 10.8rem;
    }

    #footer .boxLink .itemTel {
        margin-top: 0.7rem;
    }

    #footer .boxLink .item::before {
        content: '';
        position: absolute;
        height: 0.1rem;
        width: 100%;
        background: #55483c25;
        bottom: -20px;
        right: unset;
        left: 0;
        top: unset;
    }

    #footer .boxBtn .link {
        width: 100%;
        height: 6rem;
        gap: 1.5rem;
        font-size: var(--pcFontSize18);
        letter-spacing: var(--pcLetterSpacing18_150);
        padding-left: 2.2rem;
    }

    #footer .link .img {
        width: 1.7rem;
    }

    #footer .link:nth-child(2) .img {
        width: 2rem;
    }

    #footer .footerRight .linkList {
        margin-top: 4.8rem;
        padding-top: 0;
        border-top: none;
    }

    #footer .footerRight .listMenu {
        width: 60%;
    }

    #footer .footerRight .listMenu:nth-child(3) {
        width: 40%;
    }

    #footer .footerRight .listMenu:first-child {
        width: 100%;
        margin-bottom: 0.8rem;
    }

    #footer .footerRight .itemMenu {
        display: flex;
        gap: 0;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    #footer .footerRight .txtMenu {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        margin-bottom: 2rem;
        line-height: var(--spLineHeight11_20);
    }

    #footer .footerRight .titMenu {
        font-size: var(--spFontSize20);
        letter-spacing: var(--spLetterSpacing20_150);
        margin-bottom: 3.2rem;
    }

    #footer .boxBtn .link+.link {
        margin-top: 1.5rem;
    }

    #footer .boxBtn {
        margin-top: 3.8rem;
    }

    #footer .footerInfo {
        margin-top: 4rem;
        flex-direction: column;
        align-items: center;
    }

    #footer .copy {
        margin-top: 2.7rem;
        letter-spacing: var(--pcLetterSpacing10_50);
    }
}



/*-----------------------------------------------
    btnNavi
-----------------------------------------------*/
.btnNavi {
    width: 11rem;
    height: 12rem;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10000;
}

.btnNavi .cursorPointer:hover {
    opacity: 1;
    transition: filter 0.2s ease-out;
    filter: none;
    -webkit-filter: brightness(1.1);
    filter: brightness(1.1);
}

.btnNavi .naviCover {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-flow: column;
    text-decoration: none;
    height: 12rem;
    color: #fff;
    transition: all 0.5s;
    background: #bcaea1;
}

.btnNavi .border {
    width: 6rem;
    height: 1.3rem;
    position: relative;
}

.btnNavi .border .inner,
.btnNavi .border .inner::before,
.btnNavi .border .inner::after {
    display: block;
    width: 6rem;
    height: 0.1rem;
    background: #fff;
    left: 0;
    right: 0;
    margin: auto;
    transition: all 0.5s;
}

.btnNavi .border .inner {
    width: 0;
    height: 0;
}

.btnNavi .border .inner::before {
    content: '';
    position: absolute;
    transition: all 0.4s ease-out;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.btnNavi .border .inner::after {
    content: '';
    position: absolute;
    transition: all 0.4s ease-out;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.btnNavi .txt {
    margin-top: 1.2rem;
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_100);
    font-weight: bold;
}

.btnNavi.naviOpen .naviCover {
    background: #bcaea1;
    color: var(--dayTxtColor);
    border: solid 1px rgb(211, 211, 211);
}

/* .btnNavi.naviOpen .border{
    width: 6.0rem;
    height: 1.3rem;
} */
.btnNavi:not(.naviOpen) .txtClose,
.btnNavi.naviOpen .txtMenu {
    display: none;
}

.btnNavi.naviOpen .border .inner::before {
    transform: translateY(40px) rotate(-15deg);
    top: -36px;
    width: 6rem;
    left: 0;
    background: var(--whiteColor);
}

.btnNavi.naviOpen .border .inner::after {
    transform: translateY(12px) rotate(15deg);
    bottom: 21px;
    left: 0;
    width: 6rem;
    background: var(--whiteColor);
}

@media only screen and (max-width:1215px) {
    .btnNavi {
        width: 6rem;
        height: 6rem;
        top: 0rem;
        right: 0rem;
    }

    .btnNavi .naviCover {
        height: 6rem;
    }

    .btnNavi .border {
        width: 1.6rem;
        height: 1.8rem;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .btnNavi .border .inner,
    .btnNavi .border .inner::before,
    .btnNavi .border .inner::after {
        width: 2rem;
        height: 0.1rem;
    }

    .btnNavi .border .inner {
        width: 0;
        height: 0.1rem;
    }

    .btnNavi .txt {
        display: none;
    }

    .btnNavi.naviOpen .border {
        width: 2rem;
        height: 0.2rem;
    }

    .btnNavi.naviOpen .border .inner {
        width: 0;
        height: 0;
    }

    .btnNavi.naviOpen .border .inner::before {
        transform: translateY(42px) rotate(-35deg);
        top: -42px;
        width: 2rem;
        left: 0;
        height: 0.1rem;
    }

    .btnNavi.naviOpen .border .inner::after {
        transform: translateY(12px) rotate(35deg);
        bottom: 12px;
        left: 0;
        width: 2rem;
        height: 0.1rem;
    }
}


/*-----------------------------------------------
    menu
-----------------------------------------------*/
#header.naviOpen {
    border-bottom: none;
}

#header.naviOpen::after,
#header.naviOpen .headerLogo,
#header.naviOpen .leftTxtBox {
    display: none;
}

@media only screen and (max-width:1215px) {
    #header.naviOpen .headerLogo {
        display: inline-block;
    }
}

#menu {
    position: fixed;
    background-color: rgba(220, 211, 202, 0.95);
    padding: 12.6rem 0 6rem;
    width: 100%;
    height: 100%;
    color: #55483c;
    font-family: "YakuHanJP_Narrow", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    z-index: 9999;
    overflow: hidden;
}

#menu .innerFlex {
    display: flex;
    gap: 11.5385%;
}

#menu .boxLogo {
    display: flex;
    gap: 3.3rem;
}

#menu .boxLogo .logo {
    margin-top: 2rem;
}

#menu .boxLogo .txtEng {
    mix-blend-mode: overlay;
    padding-top: 1rem;
}

/* boxLink */
#menu .boxLink {
    display: flex;
    gap: 5rem;
}

#menu .imgTxt {
    margin-top: 3rem;
}

#menu .boxLink .item {
    position: relative;
}

#menu .footerLink {
    margin-top: 4rem;
}

#menu .boxLink .item::before {
    content: '';
    position: absolute;
    height: 11.5rem;
    width: 0.1rem;
    background: #55483c;
    top: calc(50% - 5.525rem);
    right: -2.5rem;
}

#menu .boxLink .item:last-child::before {
    display: none;
}

#menu .boxLink.privacy .item:before {
    display: none;
}

#menu .boxLink .itemAdd {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_150);
    line-height: var(--pcLineHeight12_24);
    white-space: nowrap;
}

#menu .boxLink .itemTel {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing30_50);
    margin-top: 1.5rem;
    display: block;
    white-space: nowrap;
}

#menu .boxLink .itemOpen {
    font-size: var(--pcFontSize10);
    margin-top: 2.2rem;
    white-space: nowrap;
}

#menu .boxBtn {
    margin-top: 5.6rem;
}

#menu .boxBtn .link {
    width: 32rem;
    height: 8rem;
    border: 0.1rem solid #55483c;
    display: flex;
    align-items: center;
    gap: 2rem;
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing18_150);
    padding-left: 2.2rem;
}

#menu .boxBtn .link+.link {
    margin-top: 2rem;
}

#menu .footerLeft {
    width: 48.7179%;
    margin-top: 2rem;
}

#menu .footerRight {
    width: 39.7436%;
}

#menu .footerRight .txtRight {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing30_150);
    line-height: var(--pcLineHeight30_70);
    font-weight: bold;
    white-space: nowrap;
}

#menu .footerRight .linkList {
    margin-top: 5rem;
    padding-top: 5.6rem;
    border-top: 0.1rem solid #55483c;
}

#menu .footerRight .itemMenu {
    display: flex;
    gap: 4rem;
    justify-content: space-between;
}

#menu .footerRight .listMenu {}

/* #menu .footerRight .listMenu:nth-child(1) {
    margin-right: 20.5%;
}
#menu .footerRight .listMenu:nth-child(2) {
    margin-right: 6.45%;
} */

#menu .footerRight .titMenu {
    font-size: var(--pcFontSize22);
    letter-spacing: var(--pcLetterSpacing22_150);
    margin-bottom: 3rem;
}

#menu .footerRight .txtMenu {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_150);
    line-height: var(--pcLineHeight12_22);
    margin-bottom: 2.6rem;
}

#menu .footerInfo {
    display: flex;
    justify-content: space-between;
    margin-top: 20rem;
}

#menu .footerInfo .item {
    font-size: var(--pcFontSize12);
    letter-spacing: var(--pcLetterSpacing12_100);
}

#menu .copy {
    font-size: var(--pcFontSize10);
    letter-spacing: var(--pcLetterSpacing10_200);
}

@media only screen and (max-width:1215px) {
    #menu {
        padding: 5rem 0 6rem;
        overflow-y: scroll;
    }

    #menu .innerFlex {
        gap: 0;
        flex-direction: column;
        padding: 0 2rem;
        position: relative;
    }

    #menu .boxLink {
        gap: 3.4rem;
        flex-direction: column;
    }

    #menu .footerRight .txtRight {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        line-height: var(--spLineHeight11_24);
        text-align: left;
        white-space: wrap;
        position: absolute;
        top: 9.6rem;
        right: unset;
        left: 1rem;
    }

    #menu .boxLogo .logo {
        margin-top: 0;
    }

    #menu .footerRight {
        width: 100%;
    }

    #menu .footerLeft {
        width: 100%;
        margin-top: 0;
    }

    #menu .boxLogo {
        gap: 0;
        justify-content: space-between;
    }

    #menu .boxLogo .txtEng {
        padding-top: 10rem;
        width: 17.9rem;
    }

    #menu .boxLogo .img {
        width: 10rem;
    }

    #menu .boxLink .itemOpen {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        margin-top: 1.7rem;
        white-space: nowrap;
    }

    #menu .footerLink {
        margin-top: 5.5rem;
    }

    #menu .boxLink .itemTel {
        margin-top: 0.7rem;
    }

    #menu .boxLink .item::before {
        content: '';
        position: absolute;
        height: 0.1rem;
        width: 100%;
        background: #55483c25;
        bottom: -20px;
        right: unset;
        left: 0;
        top: unset;
    }

    #menu .boxBtn .link {
        width: 100%;
        height: 6rem;
        gap: 1.5rem;
        font-size: var(--pcFontSize18);
        letter-spacing: var(--pcLetterSpacing18_150);
        padding-left: 2.2rem;
    }

    #menu .link .img {
        width: 1.7rem;
    }

    #menu .link:nth-child(2) .img {
        width: 2rem;
    }

    #menu .footerRight .linkList {
        margin-top: 4.8rem;
        padding-top: 0;
        border-top: none;
    }

    #menu .footerRight .listMenu {
        width: auto;
    }

    #menu .footerRight .listMenu:first-child {
        width: 100%;
        margin-bottom: 0.8rem;
    }
    #menu .footerRight .listMenu:nth-child(2){
        margin-bottom: 1.4rem;
    }

    #menu .footerRight .itemMenu {
        display: flex;
        gap: 0;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    #menu .footerRight .txtMenu {
        font-size: var(--spFontSize11);
        letter-spacing: var(--spLetterSpacing11_100);
        margin-bottom: 2rem;
    }

    #menu .footerRight .titMenu {
        font-size: var(--spFontSize20);
        letter-spacing: var(--spLetterSpacing20_150);
        margin-bottom: 3.2rem;
    }

    #menu .boxBtn .link+.link {
        margin-top: 1.5rem;
    }

    #menu .boxBtn {
        margin-top: 2.4rem;
    }

    #menu .footerInfo {
        margin-top: 4rem;
        flex-direction: column;
        align-items: center;
    }

    #menu .copy {
        margin-top: 2.7rem;
        letter-spacing: var(--pcLetterSpacing10_50);
    }
}


/*-----------------------------------------------
    fNavi
-----------------------------------------------*/
#fNavi {
    display: none;
}

@media only screen and (max-width:1215px) {
    #fNavi {
        position: fixed;
        bottom: 0;
        right: 0;
        left: 0;
        margin: auto;
        width: 92%;
        display: block;
        transition: all 0.5s ease-out;
        opacity: 0;
        z-index: -99;
        background-color: var(--bgFnaviColor);
        border-radius: 1rem 1rem 0 0;
        padding: 1.2rem 1.6rem;
    }

    #fNavi:after {
        position: absolute;
        content: '';
        margin: auto;
        display: block;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 2px solid var(--borderFnaviColor);
        border-bottom: none;
        border-radius: 1rem 1rem 0 0;
    }

    #fNavi.jsShow {
        opacity: 1;
        z-index: 999;
    }

    #fNavi.is-hidden {
        opacity: 0;
        z-index: -99;
    }

    #fNavi .wrapper {
        position: relative;
        z-index: 1;
    }

    #fNavi .naviList {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
    }

    #fNavi .naviList {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.6rem;
    }

    #fNavi .naviList .naviItem {
        width: 41.534%;
    }

    #fNavi .naviList .telItem {
        min-width: 4rem;
        width: 12.78%;
        border-radius: 50%;
    }

    #fNavi .naviList .link {
        width: 100%;
        height: 4rem;
        border-radius: 2rem;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.15);
        padding-bottom: 2px;
    }

    #fNavi .naviList .bg01 {
        background-color: var(--greenColor);
    }

    #fNavi .naviList .bg02 {
        background-color: var(--orangeColor);
    }

    #fNavi .naviList .bg03 {
        background-color: var(--whiteColor);
        color: var(--textColor);
    }

    #fNavi .naviList .txtLink {
        font-size: var(--spFontSize13);
        font-weight: bold;
        color: var(--whiteColor);
    }
}


/*-----------------------------------------------
    secCmnTicker
-----------------------------------------------*/
.secCmnTicker {
    overflow: hidden;
}

.secCmnTicker .boxTicker {
    display: flex;
}

.secCmnTicker .itemTicker:nth-child(odd) {
    animation: loop 80s -40s linear infinite;
    backface-visibility: hidden;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

.secCmnTicker .itemTicker:nth-child(even) {
    animation: loop2 80s linear infinite;
}

@keyframes loop {
    0% {
        transform: translateX(100%);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes loop2 {
    0% {
        transform: translateX(0);
    }

    to {
        transform: translateX(-200%);
    }
}

@media only screen and (max-width:1215px) {
    .secCmnTicker .imgTicker {
        width: 169.5rem;
        height: 10.3rem;
    }
}

/*-----------------------------------------------
    boxCmnTit
-----------------------------------------------*/
.boxCmnTit {
    text-align: center;
}

.boxCmnTit .tit {
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing50_100);
    font-weight: bold;
}

.boxCmnTit .titLL {
    font-size: var(--pcFontSize100);
}

.boxCmnTit .titL {
    font-size: var(--pcFontSize70);
}

.boxCmnTit .txt {
    font-size: var(--pcFontSize22);
    line-height: var(--pcLineHeight22_42);
    letter-spacing: var(--pcLetterSpacing22_50);
    font-weight: bold;
    margin-top: 1.5rem;
}

@media only screen and (max-width:1215px) {
    .boxCmnTit .tit {
        font-size: var(--spFontSize20);
        line-height: var(--spLineHeight20_26);
        letter-spacing: var(--spLetterSpacing20_0);
    }

    .boxCmnTit .titLL {
        font-size: var(--spFontSize40);
    }

    .boxCmnTit .titL {
        font-size: var(--spFontSize30);
    }

    .boxCmnTit .txt {
        font-size: var(--spFontSize12);
        line-height: var(--spLineHeight12_22);
        letter-spacing: var(--spLetterSpacing12_0);
        margin-top: 1.2rem;
    }
}

/*-----------------------------------------------
    secCmnContact
-----------------------------------------------*/
.secCmnContact {
    background-color: var(--greenColor);
    margin-top: var(--footerContactPc);
    padding: 12rem 0 16rem;
}

.secCmnContact .wrapper {
    position: relative;
    z-index: 1;
}

/* boxCmnTit */
.secCmnContact .boxCmnTit {
    position: relative;
    padding-top: 4rem;
    color: var(--whiteColor);
}

.secCmnContact .boxCmnTit .txt {
    font-size: var(--pcFontSize18);
    line-height: var(--pcLineHeight18_30);
    letter-spacing: var(--pcLetterSpacing18_50);
    margin-top: 1.8rem;
}

.secCmnContact .boxCmnTit .imgTit {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    z-index: -1;
}

/* boxCmnContact */
.secCmnContact .boxCmnContact {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--whiteColor);
    border-radius: 1rem;
    padding: 4rem 0;
    margin-top: 5.5rem;
}

.secCmnContact .boxCmnContact::before {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 2px;
    height: calc(100% - 8rem);
    background-color: var(--green_darkColor);
}

/* boxContact */
.secCmnContact .boxContact {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 84rem;
    padding: 0.9rem 4rem 0;
}

.secCmnContact .boxContact .txt {
    text-align: center;
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing36_100);
    margin-bottom: 0.2rem;
}

/* boxTel */
.secCmnContact .boxTel .txt {
    margin-bottom: 0.2rem;
}

.secCmnContact .boxTel .txtTel {
    position: relative;
    font-size: var(--pcFontSize36);
    letter-spacing: var(--pcLetterSpacing36_50);
    font-weight: bold;
    margin-top: 1rem;
    padding: 0.8rem 0 0.8rem 4.6rem;
    display: block;
}

.secCmnContact .boxTel .txtTel::before {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    top: 3px;
    bottom: 0;
    left: 0;
    width: 3.6rem;
    height: 2.4rem;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
}

.secCmnContact .boxTel.lazyloaded .txtTel::before {
    background-image: url(../img/common/iconTel.png);
}

.secCmnContact .boxTel .txtInfo {
    font-size: var(--pcFontSize11);
    letter-spacing: var(--spLetterSpacing11_50);
    margin: 0.8rem auto 0.9rem;
}

/* boxLine */
.secCmnContact .boxLine .link {
    width: 30rem;
    height: 6.4rem;
    background-color: var(--greenColor);
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing18_50);
    color: var(--whiteColor);
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 3.2rem;
    padding-top: 0.4rem;
    margin: 2.6rem auto 0;
}

/* imgTxt */
.secCmnContact .imgTxt {
    position: absolute;
    top: -1rem;
    right: -16.5rem;
    margin: auto;
    z-index: 1;
}

.secCmnContact .jsShow .imgTxt {
    animation: puff-in-center 0.4s cubic-bezier(0.470, 0.000, 0.745, 0.715) both 0.2s;
}

.secCmnContact .imgTxt::after {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    top: 7rem;
    right: 4rem;
    width: 23.2rem;
    height: 24.4rem;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -1;
}

.secCmnContact .imgTxt.lazyloaded::after {
    background-image: url(../img/icon/icon02.png);
}

@keyframes puff-in-center {
    0% {
        transform: scale(1.1);
        filter: blur(2px);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        filter: blur(0px);
        opacity: 1;
    }
}

@media only screen and (max-width:1380px) {
    .secCmnContact .imgTxt {
        right: -18.5rem;
    }
}

@media only screen and (max-width:1215px) {
    .secCmnContact {
        position: relative;
        margin-top: var(--footerContactSp);
        padding: 4.7rem 0 6rem;
    }

    .secCmnContact .wrapper {
        padding: 0 0.5rem;
    }

    /* boxCmnTit */
    .secCmnContact .boxCmnTit {
        padding-top: 2.5rem;
    }

    .secCmnContact .boxCmnTit .txt {
        font-size: var(--spFontSize12);
        line-height: var(--spLineHeight12_20);
        letter-spacing: var(--spLetterSpacing12_0);
        margin-top: 0.5rem;
        font-weight: normal;
    }

    .secCmnContact .boxCmnTit .imgTit {
        width: 90%;
    }

    /* boxCmnContact */
    .secCmnContact .boxCmnContact {
        position: static;
        flex-direction: column;
        padding: 2.5rem;
        margin-top: 2rem;
    }

    .secCmnContact .boxCmnContact::before {
        display: none;
    }

    /* boxContact */
    .secCmnContact .boxContact {
        position: relative;
        width: 100%;
        padding: 0.8rem 0 0 0;
    }

    .secCmnContact .boxContact+.boxContact:before {
        position: absolute;
        content: '';
        margin: auto;
        display: block;
        top: 0;
        left: 0;
        width: 100%;
        height: 1px;
        background-color: var(--green_darkColor);
    }

    .secCmnContact .boxContact .txt {
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing14_0);
    }

    /* boxTel */
    .secCmnContact .boxTel {
        margin-top: 3rem;
        padding: 3rem 0 0.7rem 0;
    }

    .secCmnContact .boxTel .txt {
        margin-bottom: 0.2rem;
    }

    .secCmnContact .boxTel .txtTel {
        font-size: var(--spFontSize30);
        letter-spacing: var(--spLetterSpacing30_30);
        margin-top: 0;
        padding: 0.8rem 0 0.8rem 3.8rem;
    }

    .secCmnContact .boxTel .txtTel::before {
        width: 3.1rem;
        height: 2rem;
    }

    .secCmnContact .boxTel .txtInfo {
        font-size: var(--pcFontSize11);
        letter-spacing: var(--spLetterSpacing11_50);
        margin: 0.5rem auto 0;
    }

    /* boxLine */
    .secCmnContact .boxLine .link {
        width: 100%;
        height: 5.6rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing14_0);
        border-radius: 2.8rem;
        margin-top: 1.5rem;
    }

    /* imgTxt */
    .secCmnContact .imgTxt {
        top: -12.5rem;
        right: -14.5rem;
        left: 0;
        margin: auto;
        width: 8.7rem;
    }

    .secCmnContact .imgTxt::after {
        top: 3rem;
        right: 6.5rem;
        width: 10rem;
        height: 10.5rem;
    }
}

/*-----------------------------------------------
    pnkz
-----------------------------------------------*/
#pnkz {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    padding: 3rem 3rem 0;
    font-size: var(--pcFontSize11);
    letter-spacing: var(--pcLetterSpacing11_50);
}

#pnkz .pnkzWrap {
    display: flex;
    gap: 1rem;
}

#pnkz .pnkzItem {
    position: relative;
    z-index: 1;
}

#pnkz .pnkzItem+.pnkzItem::before {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    top: 0;
    bottom: 0;
    left: -1rem;
    width: 1rem;
    height: 1px;
    background-color: var(--black_light2Color);
    z-index: -1;
}

#pnkz.pnkz_white .pnkzItem+.pnkzItem::before {
    background-color: var(--white_light2Color);
}

#pnkz .txt {
    position: relative;
    z-index: 1;
    background-color: var(--whiteColor);
    padding: 1.1rem 2.1rem 0.9rem;
    border-radius: 1.55rem;
    display: inline-block;
}

#pnkz .txt:not(a) {
    background-color: var(--black_light2Color);
    color: var(--whiteColor);
}

#pnkz.pnkz_white .txt:not(a) {
    background-color: var(--white_light2Color);
}

#pnkz a.txt {
    text-decoration: underline;
    text-underline-offset: 0.2rem;
}

@media only screen and (max-width:1215px) {
    #pnkz {
        padding: 1.5rem 0 0 1.5rem;
        font-size: var(--spFontSize10);
        line-height: var(--spLineHeight10_18);
        letter-spacing: var(--spLetterSpacing10_0);
    }

    #pnkz .pnkzWrap {
        white-space: nowrap;
        overflow-x: scroll;
        gap: 0.5rem;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    #pnkz .pnkzItem+.pnkzItem::before {
        left: -0.5rem;
        width: 0.5rem;
    }

    #pnkz .txt {
        padding: 0.2rem 1.1rem 0.1rem;
        border-radius: 1.05rem;
    }
}

/*-----------------------------------------------
    secCmnTop
-----------------------------------------------*/
.secCmnTop {
    position: relative;
    text-align: center;
    background: url(../img/common/bgNoise.png) 0% 0% / 5rem 5rem repeat var(--whiteColor);
}

/* secCmnTopForm */
.secCmnTopForm {
    padding: 11.5rem 0 21.6rem;
}

/* secCmnTit */
.secCmnTopForm .secCmnTit .txt {
    color: var(--whiteColor);
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing30_30);
    font-weight: bold;
}

.secCmnTopForm .secCmnTit .tit {
    position: relative;
    color: var(--yellow_lightColor);
    font-size: var(--pcFontSize60);
    letter-spacing: var(--pcLetterSpacing60_50);
    font-weight: bold;
    display: inline-block;
    margin-top: 2.7rem;
    padding-bottom: 5.2rem;
}

.secCmnTopForm .secCmnTit .titL {
    font-size: var(--pcFontSize80);
    line-height: 0;
}

.secCmnTopForm .secCmnTit .tit::after {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    bottom: 0;
    right: 0;
    left: -0.5rem;
    width: 25.8rem;
    height: 3.6rem;
    background: url(../img/common/iconTit.png) center top / cover no-repeat;
}

@media only screen and (max-width:1215px) {
    .secCmnTop {
        background-size: 2.5rem 2.5rem;
    }

    /* secCmnTopForm */
    .secCmnTopForm {
        padding: 6.8rem 0 10.9rem;
    }

    /* secCmnTit */
    .secCmnTopForm .secCmnTit .txt {
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing14_0);
    }

    .secCmnTopForm .secCmnTit .tit {
        font-size: var(--spFontSize22);
        letter-spacing: var(--spLetterSpacing22_100);
        margin-top: 1.5rem;
        padding-bottom: 2.2rem;
    }

    .secCmnTopForm .secCmnTit .titL {
        font-size: var(--spFontSize32);
    }

    .secCmnTopForm .secCmnTit .tit::after {
        left: -1rem;
        width: 11.6rem;
        height: 1.6rem;
    }
}