@charset "UTF-8";

/* フォントインポート */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Birthstone&display=swap');

/* スクロール位置調整
-------------------------------- */
html {
  font-size: 100%;
}
@media screen and (max-width: 1000px) {
    html {
        font-size: 78%;
    }
}

/* reset
-------------------------------- */
.l-container {
    max-width: 100%;
    padding: 0;
}

/* settings
---------------------------------------------------*/
:root {
    --font-family1: "Noto Serif JP", serif;
    --font-family2: "Birthstone", serif;
    /* 最大幅 */
    --max-width1: 1200px;
    /* 背景色 */
    --bg-color1: #e4eaed;
    --bg-color2: #022e4a;
    --bg-color2-0: #022e4a00;
    /* 文字色 */
    --font-color-bass: #4d4d4d;
    --font-color-accent1: #022e4a;
    --font-color-accent2: #ff7f0b;
    --marker-color1: #ffe9f4;
}

/* 共通設定
---------------------------------------------------*/
/* 表示・非表示 */
.pc {
    display: block;
}
.pc-in {
    display: inline-block;
}
.sp, .sp-in {
    display: none;
}
@media screen and (max-width: 1000px) {
    .sp {
        display: block;
    }
    .sp-in {
        display: inline-block;
    }
    .pc, .pc-in {
        display: none;
    }
}

/* flex */
.flex {
    display: flex;
    flex-wrap: wrap;
    &.-jc {
        justify-content: center;
    }
    &.-jsa {
        justify-content: space-around;
    }
    &.-jsb {
        justify-content: space-between;
    }
    &.-ac {
        align-items: center;
    }
    &.-afe {
        align-items: flex-end;
    }
}

/* コンテンツ幅など */
section.contents {
    padding: 6.5rem 0;
}
.contents-inner {
    width: 90%;
    max-width: var(--max-width1);
    margin: 0 auto;
    &.-wide {
        width: 100%;
        max-width: 100%;
        padding: 0;
    }
}
@media screen and (max-width: 1000px) {
    section.contents {
        padding: 6rem 0;
    }
    .contents-inner {
        padding: 0;
    }
}

/*フォント設定*/
h1, h2, h3, h4, h5, h6, p, a, li {
    font-family: var(--font-family1);
    line-height: 1.8em;
}
p:last-child {
    margin-bottom: 0;
}

:root {
    --h2-line-w: 9em;
    --h2-line-h: calc(var(--h2-line-w) * .0733);
    --h2-line-bk: linear-gradient(to left, var(--bg-color2), var(--bg-color2-0));
    --h2-line-bk-w: linear-gradient(to left, white, rgba(255,255,255,0));
}
h2 {
    color: var(--font-color-accent1);
    text-align: center;
    font-size: 1.8rem;
    margin-bottom: 4rem;
    letter-spacing: .2em;
    font-weight: 600;
    & span {
        position: relative;
        display: block;
        width: fit-content;
        font-size: 70%;
        margin: 0 auto .5em;
        padding: 0 calc(var(--h2-line-w) + 1em) .4em;
        opacity: .6;
        line-height: 1;
    }
    & span::before, span::after {
        position: absolute;
        content: "";
        width: var(--h2-line-w);
        height: var(--h2-line-h);
        top: 0;
        bottom: 0;
        margin: auto 0;
        background: var(--h2-line-bk);
        mask: url(../img/head-line01.svg) no-repeat center center / cover;
        -webkit-mask: url(../img/head-line01.svg) no-repeat center center / cover;
    }
    & span::before {
        left: 0;
    }
    & span::after {
        right: 0;
        transform: scaleX(-1);
    }
}
.-bg-dark {
    & h2 span::before, & h2 span::after {
        background: var(--h2-line-bk-w);
    }
}
@media screen and (max-width: 1000px) {
    h2 {
        font-size: 1.5rem;
        margin-bottom: 3rem;
    }
}

/* 背景色 */
.-bg-light {
    background: var(--bg-color1);
}
.-bg-dark {
    background: var(--bg-color2);
    & h2, h3, h4, h5, h6, p, a, span {
        color: var(--bg-color1);
    }
}

.accl {
    color: var(--font-color-accent1);
}

/* header
-------------------------------- */
:root {
    --header-logo-w: 150px;
    --icon-menu-h: 26px;
    --icon-menu-w: calc(var(--icon-menu-h) * 2.7);
}
.l-header {
    position: fixed !important;
    background: initial;
}
.header__body {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    padding: 1rem;
    background: rgba(255,255,255,.8);
    & .header__logo {
        position: fixed;
        top: var(--ark-adminbar_height);
        left: 0;
        right: auto;
        margin: 0 auto;
        display: block;
        width: var(--header-logo-w);
    }
    & .header__menu {
        width: fit-content;
        margin-right: 2rem;
    }
}
.g-navi {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    & a {
        display: block;
        height: fit-content;
        font-weight: 900;
        font-size: 1.1rem;
        text-decoration: none;
        color: var(--font-color-accent1);
        margin: 0;
        margin-right: 3rem;
        transition: .5s;
        text-shadow: 1px 1px 2px rgba(255,255,255,.6);
        &.st-menu {
            display: none;
        }
    }
    & .icon-menu {
        display: flex;
        & a {
            position: relative;
            width: fit-content;
            text-align: center;
            font-size: .7rem;
            padding-top: calc(var(--icon-menu-h) * 1.05);
            margin-right: .9rem;
            &::before {
                position: absolute;
                content: "";
                width: 100%;
                height: var(--icon-menu-h);
                top: 0;
                left: 0;
                right: 0;
                margin: auto;
                background: var(--bg-color2);
                mask-position: center;
                mask-size: auto 100%;
                mask-repeat: no-repeat;
                -webkit-mask-position: center;
                -webkit-mask-size: auto 100%;
                -webkit-mask-repeat: no-repeat;
            }
            &.-access::before {
                mask-image: url(../img/icon-map.svg);
                -webkit-mask-image: url(../img/icon-map.svg);
            }
            &.-tel::before {
                mask-image: url(../img/icon-tel.svg);
                -webkit-mask-image: url(../img/icon-tel.svg);
            }
            &.-contact::before {
                mask-image: url(../img/icon-mail.svg);
                -webkit-mask-image: url(../img/icon-mail.svg);
            }
        }
    }
}

@media screen and (max-width: 1000px) {
    :root {
        --header-logo-w: 115px;
    }
    .header__body {
        padding: 10px 20px;
        & .header__logo {
            right: auto;
        }
        & .header__menu {
            display: none;
        }
    }
}

/* ドロワーメニュー */
:root {
    --hamburger-btn-w: 36px;
}
.c-iconBtn__icon {
    position: relative;
    font-size: var(--hamburger-btn-w);
    height: var(--hamburger-btn-w);
    width: var(--hamburger-btn-w);
    & svg {
        fill: transparent;
    }
    &::after {
        position: absolute;
        content: "";
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: url(../img/hb-open.svg) no-repeat center center / cover;
        transition: .5s;
    }
}
[data-drawer=opened] .c-iconBtn__icon::after {
    background: url(../img/hb-close.svg) no-repeat center center / cover;
    transform: rotate(360deg);
}
.p-drawer {
    background: white;
    padding-bottom: 80px;
    & .p-drawer__inner {
        display: flex;
        justify-content: center;
        & .p-drawer__body {
            padding: 40px;
            & .g-navi {
                width: 100%;
                margin: 0 auto;
                & a {
                    display: block;
                    width: 100%;
                    text-align: center;
                    font-size: 1.8rem;
                    font-weight: 600;
                    text-decoration: none;
                    color: var(--font-color-accent1);
                    margin: 0 0 3rem;
                    &.st-menu {
                        display: block;
                    }
                }
            }
            & .icon-menu {
                width: 100%;
                margin-top: 4rem;
                & a {
                    font-size: 1.2rem;
                }
            }
        }
    }
}
.p-drawer__close {
    display: none !important;
}

/* ボタン
-------------------------------- */
:root {
    --btn1-arrow-w: .5em;
    --btn1-arrow-line: 2px solid white;
    --btn1-arrow-line-dark: 2px solid var(--font-color-accent1);
    --btn1-icon-w: 1.4em;
}
.btn-wrap {
    margin: 4rem auto 0;
    & a {
        text-decoration: none;
    }
    & a.-btn1 {
        position: relative;
        display: block;
        width: fit-content;
        margin: 0 auto;
        line-height: 1;
        padding: .7em 1.5em;
        padding-right: 2.5em;
        color: var(--bg-color1);
        background: var(--bg-color2);
        font-size: 1.2rem;
        font-weight: 500;
        letter-spacing: .2em;
        &::after {
            position: absolute;
            content: "";
            width: var(--btn1-arrow-w);
            height: var(--btn1-arrow-w);
            top: 0;
            bottom: 0;
            right: 1em;
            margin: auto 0;
            border-top: var(--btn1-arrow-line);
            border-right: var(--btn1-arrow-line);
            transform: rotate(45deg);
        }
        &.-line {
            padding-left: 3.4em;
            border-radius: 9999px;
            &::before {
                position: absolute;
                content: "";
                width: var(--btn1-icon-w);
                height: var(--btn1-icon-w);
                top: 0;
                bottom: 0;
                left: 1em;
                margin: auto 0;
                background: white;
                mask: url(../img/icon-line.svg) no-repeat center center / cover;
            }
            &::after {
                right: 1.2em;
            }
        }
    }
}
.-bg-dark {
    & a.-btn1 {
        color: var(--font-color-accent1);
        background: var(--bg-color1);
        &::after {
            border-top: var(--btn1-arrow-line-dark);
            border-right: var(--btn1-arrow-line-dark);
        }
        &.-line {
            &::before {
                background: var(--bg-color2);
            }
        }
    }
}
@media screen and (max-width: 1000px) {
    .btn-wrap {
        & a.-btn1 {
            font-size: 1.4rem;
        }
    }
}

.marker1 {
    display: inline-block;
    font-weight: 900;
    color: var(--font-color-accent1);
    background: var(--marker-color1);
    padding: 0 .2em;
    margin: 0 .2em 0 0;
    line-height: 1.4;
}

/* トップページ
-------------------------------- */
/* header */
.home .l-header {
    background: initial;
    transition: background 0.3s ease;
}

/* スクロール後に背景白にするクラス */
.home .l-header.scrolled {
    background: rgba(255,255,255,.8);
}

/* mv */
:root {
    --mv-slider-h: 100vh;
    --mv-tx-line-w: 70%;
    --mv-tx-line-shift-y: -2.2em;
    --mv-tx-line-shift-x: calc(var(--mv-tx-line-shift-y) * 1.16);
} 
.mv {
    position: relative;
    height: var(--mv-slider-h);
    & .mv-catch {
        position: relative;
        width: 100%;
        height: 100%;
        margin: 0 auto;
        & p {
            color: var(--font-color-accent1);
        }
        & .-tx1 {
            position: absolute;
            display: flex;
            flex-direction: row-reverse;
            top: 18vh;
            left: 30vw;
            padding: 1rem;
            & p {
                position: relative;
                font-size: 2.8vh;
                line-height: 1.9em;
                letter-spacing: 1px;
                color: var(--font-color-bass);
                font-weight: 600;
                transform: skewY(-5deg);
                text-shadow: 0 0 .3em white, 0 0 1em white, 0 0 .3em white;
                writing-mode: vertical-rl;
                & span {
                    display: inline-block;
                    font-size: 150%;
                    margin: .3em 0;
                    color: var(--font-color-accent1);
                }
                &.-tx-shift {
                    margin: 5em 1em 0 0;
                }
            }
        }
        & .-tx2 {
            position: absolute;
            display: flex;
            justify-content: center;
            align-items: center;
            bottom: 16vh;
            right: 8vw;
            & .-icon-box {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                align-items: center;
                width: 11vh;
                height: 11vh;
                border: 1px solid var(--font-color-accent1);
                background: rgba(255,255,255,.6);
                border-radius: 9999px;
                & p {
                    font-size: 2.3vh;
                    color: var(--font-color-accent1);
                    font-weight: 600;
                    line-height: 1.4;
                    text-align: center;
                    & span {
                        display: block;
                        &.-mr {
                            margin-right: .3em;
                        }
                         &.-ml {
                            margin-left: .3em;
                        }
                    }
                }
            }
            & .-icon-box:not(:last-child) {
                margin-right: 2vh;
            }
        }
    }
}

/* mv-slider */
.mv-slider {
    height: var(--mv-slider-h);
    position: relative;
    overflow: hidden;
    & .slick-slide {
        height: 100vh;
        position: relative;
        overflow: hidden;
    }
    & .slick-list, .slick-track {
        height: 100%;
    }
}

.mv-slider .slide-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s linear;
  animation: kenburns 10s ease-in-out infinite;
}

.mv-slider .slick-current .slide-bg {
    opacity: 1;
}
.mv-slider .slide-bg:nth-child(1) {
  animation-delay: 0s;
  background-position: 61% center;
}
.mv-slider .slide-bg:nth-child(2) {
  animation-delay: 6s;
}
.mv-slider .slide-bg:nth-child(3) {
  animation-delay: 12s;
}

@keyframes kenburns {
  0% {
    transform: scale(1) translate(0, 0);
  }
  100% {
    transform: scale(1.1) translate(2%, 2%);
  }
}

@media screen and (max-width: 1000px) {
    :root {
        --mv-slider-h: 170vw;
    }
    & .mv {
        & .mv-catch {
            & .-tx1 {
                width: fit-content;
                top: 20vw;
                right: 0;
                left: 0;
                margin: 0 auto;
                & p {
                    font-size: 5vw;
                }
            }
            & .-tx2 {
                bottom: 10vw;
                right: 0;
                left: 0;
                & .-icon-box {
                    width: 22vw;
                    height: 22vw;
                    & p {
                        font-size: 4.7vw;
                    }
                }
            }
        }
    }
}

/* WHAT */
:root {
    --what-tx-w: 60%;
    --what-img-w: calc(100% - var(--what-tx-w));
}
.what-wrap {
    width: 90%;
    max-width: 60rem;
    margin: 0 auto 5rem;
    & .-tx {
        width: var(--what-tx-w);
        margin-bottom: 2rem;
        & p {
            font-size: 1.1rem;
            margin-bottom: 1rem;
            line-height: 2;
        }
    }
    & .-img {
        width: var(--what-img-w);
        padding-left: 7%;
        & img {
            width: 100%;
            aspect-ratio: 1 / 1;
            object-fit: cover;
            padding: .3rem;
            border: var(--voice-line);
        }
    }
}
@media screen and (max-width: 1000px) {
    :root {
        --what-tx-w: 100%;
        --what-img-w: 100%;
    }
    .what-wrap {
        & .-img {
            padding-left: 0;
            text-align: center;
            & img {
                width: 80%;
            }
        }
        & .-tx {
            & p {
                font-size: 1.2rem;
            }
        }
    }
}

/* ABOUT */
.-about {
    padding-bottom: 0 !important;
    & .about-wrap {
        overflow: hidden;
        margin-bottom: 0 !important;
        & .slick-track {
            overflow: hidden;
        }
        & .about-box {
            position: relative;
            padding: 13rem 1rem;
            background-repeat: no-repeat;
            background-size: cover;
            background-position: center bottom;
            &::before {
                position: absolute;
                content: "";
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
                background: var(--bg-color2);
                opacity: .4;
            }
            & h3, p {
                max-width: 75%;
                margin: 0 auto;
            }
            & h3 {
                position: relative;
                color: white;
                font-family: var(--font-family2);
                text-align: center;
                font-weight: normal;
                font-size: 2.4rem;
            }
            & p {
                position: relative;
                text-align: center;
                color: white;
                font-weight: 600;
                text-shadow: 1px 1px 2px rgba(0,0,0,.8);
                &.tx-title {
                    font-size: 1.4rem;
                    margin: 2rem auto 4rem;
                }
            }
        }
        & .slick-next {
            right: calc(50% - 27rem);
        }
        & .slick-prev {
            left: calc(50% - 27rem);
            z-index: 2;
        }
        & .slick-dots {
            bottom: 7rem;
            & li button:before {
                font-size: 12px;
                color: white;
            }
        }
    }
}
@media screen and (max-width: 1000px) {
    .-about {
        & .about-wrap {
            & .about-box {
                padding: 7rem 1rem 11rem;
                background-position: 46% bottom;
                & h3, p {
                    max-width: 70%;
                }
            }
            & .slick-next {
                right: calc(50% - 13rem);
            }
            & .slick-prev {
                left: calc(50% - 13rem);
            }
            & .slick-dots {
                bottom: 5rem;
                & li button:before {
                    font-size: 8px;
                }
            }
        }
    }
}

/* MENU */
.-menu {
    padding-bottom: 1rem !important;
    & h3 {
        position: relative;
        text-align: center;
        margin-bottom: 5rem;
        font-size: 1.4rem;
        letter-spacing: .2em;
        &::after {
            position: absolute;
            content: "";
            bottom: -1rem;
            left: 0;
            right: 0;
            margin: 0 auto;
            width: 5rem;
            height: 1px;
            background: white;
        }
    }
}
:root {
    --menu-wrap-img-w: 30%;
    --menu-wrap-tx-w: calc(100% - var(--menu-wrap-img-w));
    --menu-item-w: 60%;
    --menu-price-w: calc(100% - var(--menu-item-w));
}
.menu-wrap {
    & .menu-wrap-inner {
        max-width: 56rem;
        margin: 0 auto 3rem;
    }
    & .-img {
        position: relative;
        width: var(--menu-wrap-img-w);
        height: fit-content;
        & img {
            display: block;
            width: 100%;
            aspect-ratio: 1 / 1;
            margin: auto;
            object-fit: cover;
            padding: .3rem;
            border: 1px solid rgba(255,255,255,.6);
        }
    }
    & .-tx {
        width: var(--menu-wrap-tx-w);
        padding: 0 0 0 5%;
        & .menu-area {
            margin-bottom: 3.5rem;
            & .menu-item {
                width: var(--menu-item-w);
                & h4 {
                    font-size: 1.3rem;
                    padding-left: .7em;
                    border-left: 3px solid white;
                    letter-spacing: 0.2em;
                }
                & ul {
                    margin: 1rem 0 0 2rem;
                    & li {
                        color: white;
                        font-size: 1.2rem;
                        padding: .3em 0;
                        letter-spacing: .1em;
                    }
                }
                &.-wf {
                    width: 100%;
                    & ul li {
                        position: relative;
                        display: flex;
                        justify-content: space-between;
                        &::before {
                            position: absolute;
                            content: "";
                            width: .3em;
                            height: .3em;
                            top: 1.1em;
                            left: -1em;
                            margin: auto 0;
                            background: white;
                            border-radius: 9999px;
                        }
                        & p {
                            font-size: 1.1rem;
                            letter-spacing: .2em;
                            font-weight: 900;
                            & span {
                                font-size: 120%;
                                margin: 0 .3em;
                            }
                        }
                    } 
                }
            }
            & .menu-price {
                width: var(--menu-price-w);
                & p {
                    font-size: 1.3rem;
                    letter-spacing: .2em;
                    text-align: right;
                    font-weight: 900;
                    & span {
                        display: inline-block;
                        font-size: 120%;
                        margin: 0 .3em;
                    }
                }
            }
        }
    }
}
@media screen and (max-width: 1000px) {
    :root {
        --menu-wrap-img-w: 100%;
        --menu-wrap-tx-w: 100%;
        --menu-item-w: 100%;
        --menu-price-w: 100%;
    }
    .menu-wrap {
        & .-img {
            margin-bottom: 3rem;
            text-align: center;
            & img {
                width: 80%;
            }
        }
        & .-tx {
            padding: 0 1%;
            & .menu-area {
                margin-bottom: 2.5rem;
                & .menu-item {
                    & ul {
                        margin-left: 1rem;
                        & li {
                            & p {
                                display: flex;
                                align-items: flex-end;
                                margin-bottom: .2em;
                            }
                        }
                    }
                }
            }
        }
    }
}

/* FAQ */
:root {
    --faq-line: 1px dotted var(--font-color-accent1);
    --faq-btn-w: 1.3em;
}
.faq-wrap {
    & .faq-box:last-child {
        border-bottom: var(--faq-line);
    }
    & .faq-box {
        border-top: var(--faq-line);
        padding: 1rem 3.5rem;
        & h3 {
            position: relative;
            color: var(--font-color-accent1);
            font-size: 1.4rem;
            padding: 1em 2.2em;
            cursor: pointer;
            &::before {
                position: absolute;
                content: "Q.";
                font-family: var(--font-family2);
                font-weight: normal;
                font-size: 225%;
                left: 0;
                top: .3em;
                opacity: .7;
            }
            &::after {
                position: absolute;
                content: "";
                width: var(--faq-btn-w);
                height: var(--faq-btn-w);
                right: 0;
                top: 1.3em;
                background: var(--font-color-accent1);
                mask: url(../img/icon-plus.svg) no-repeat center center / cover;
                -webkit-mask: url(../img/icon-plus.svg) no-repeat center center / cover;
                transition: .5s;
            }
        }
        & .faq-a {
            margin-left: 2rem;
            overflow: hidden;
            max-height: 0;
            transition: .5s;
            & p {
                position: relative;
                padding: 1em 3em 1.5em;
                color: var(--font-color-accent1);
                font-weight: 600;
                &::before {
                    position: absolute;
                    content: "A.";
                    font-family: var(--font-family2);
                    font-weight: normal;
                    font-size: 280%;
                    left: 0;
                    top: .2em;
                    opacity: .7;
                }
            }
        }
        &.active {
            & h3 {
                &::after {
                    mask-image: url(../img/icon-minus.svg);
                    transform: rotate(360deg);
                }
            }
            & .faq-a {
                max-height: 15rem;
            }
        }
    }
}
@media screen and (max-width: 1000px) {
    .faq-wrap {
        & .faq-box {
            padding: 1rem 1.5rem;
        }
    }
}

/* VOICE */
:root {
    --voice-img-w: 7.5rem;
    --voice-tx-w: calc(100% - var(--voice-img-w));
    --voice-line: 1px solid var(--font-color-accent1);
}
.vice-wrap {
    width: 90%;
    max-width: 50rem;
    margin: 0 auto;
    & .vice-box {
        max-width: 100%;
        margin-bottom: 1rem;
        & .-img {
            width: var(--voice-img-w);
            margin: 0 auto 2rem;
            & .voice-img {
                width: 100%;
                margin-bottom: .5rem;
                background: white;
                border-radius: 9999px;
                overflow: hidden;
                & img {
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            }
            & p {
                text-align: center;
            }
        }
        & .-tx {
            display: flex;
            flex-direction: column;
            width: var(--voice-tx-w);
            & .voice-tx {
                position: relative;
                display: flex;
                flex-wrap: wrap;
                background: white;
                padding: 1.5rem 1.8rem;
                border: var(--voice-line);
                border-radius: 3px;
                box-shadow: 2px 2px 3px rgba(0,0,0,.2);
                margin-left: 40px;
                & h3 {
                    width: 100%;
                    border-bottom: var(--voice-line);
                    font-size: 1.3rem;
                    padding: 0 .3em;
                    margin-bottom: .8em;
                }
                & p {
                    width: 100%;
                    padding: 0 .5em;
                }
            }
            & .voice-tx::before, .voice-tx::after {
                position: absolute;
                content: "";
                width: 27px;
                height: 31px;
                top: 30px;
                clip-path: polygon(100% 0, 100% 100%, 0 50%);
            }
            & .voice-tx::before {
                background: var(--font-color-accent1);
                left: -21px;
            }
            & .voice-tx::after {
                background: white;
                left: -19.5px;
            }
        }
    }
}
.-voice .btn-wrap {
    margin-top: 2rem;
}
@media screen and (max-width: 1000px) {
    :root {
        --voice-img-w: 6.5rem;
    }
    .vice-wrap {
        & .vice-box {
            max-width: 100%;
            margin-bottom: 2rem;
            & .-img {
                margin-bottom: 0;
            }
            & .-tx {
                & .voice-tx {
                    padding: 1rem 1.2rem;
                    margin-left: 1.3rem;
                    & h3 {
                        font-size: 1.1rem;
                    }
                }
                & .voice-tx::before, .voice-tx::after {
                    width: 25px;
                    height: 23px;
                }
            }
        }
    }
}


/* CONTACT */
.-contact {
    & .btn-wrap {
        margin-bottom: 4rem;
    }
}
.form-area {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 4rem 7rem;
    & h3 {
        position: relative;
        text-align: center;
        font-size: 1.6rem;
        padding-bottom: .7em;
        margin-bottom: 3rem;
        &::before {
            position: absolute;
            content: "";
            width: 4.5em;
            height: 1px;
            bottom: 0;
            left: 0;
            right: 0;
            margin: 0 auto;
            background: var(--font-color-accent1);
        }
    }
}
@media screen and (max-width: 1000px) {
    .form-area {
        padding: 3rem 3rem;
    }
}

/* STAFF */
:root {
    --staff-img-w: 30%;
    --staff-tx-w: calc(100% - var(--staff-img-w));
    --staff-dt-w: 8em;
    --staff-dd-w: calc(100% - var(--staff-dt-w));
}
.staff-wrap {
    width: 90%;
    max-width: 56rem;
    margin: 0 auto 0;
    & .-img {
        width: var(--staff-img-w);
        & img {
            width: 100%;
            aspect-ratio: 1 / 1;
            object-fit: cover;
            padding: .3rem;
            border: var(--voice-line);
        }
    }
    & .-tx {
        width: var(--staff-tx-w);
        padding-left: 2rem;
        & .staff-name {
            margin-bottom: 1.5rem;
            & p {
                font-size: 1.3rem;
                padding: .3em .5em;
                color: var(--font-color-accent1);
                font-weight: 600;
                letter-spacing: .2em;
            }
            & p.-en {
                font-size: 1rem;
                text-align: right;
                border-top: var(--voice-line);
                opacity: .7;
            }
        }
        & dl {
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            max-width: 900px;
            margin: 0 2% 1.5rem;
            & dt, dd {
                font-family: var(--font-family1);
                font-size: 1.1rem;
            }
            & dt {
                position: relative;
                width: var(--staff-dt-w);
                height: fit-content;
                font-weight: 600;
                color: var(--font-color-accent1);
                &::after {
                    position: absolute;
                    content: "";
                    width: 1px;
                    height: 1em;
                    top: 0;
                    bottom: 0;
                    right: 1.5em;
                    margin: auto 0;
                    background: var(--font-color-accent1);
                }
            }
            & dd {
                width: var(--staff-dd-w);
                & span {
                    display: inline-block;
                    font-size: 80%;
                    margin-bottom: 1em;
                }
            }
        }
    }
}
@media screen and (max-width: 1000px) {
    :root {
        --staff-img-w: 100%;
        --staff-tx-w: 100%;
        --staff-dt-w: 100%;
        --staff-dd-w: 100%;
    }
    .staff-wrap {
        & .-img {
            margin-bottom: 2rem;
            text-align: center;
            & img {
                width: 80%;
            }
        }
        & .-tx {
            padding-left: 0;
            & dl {
                padding: 0;
                & dt {
                    margin-bottom: 1em;
                    &::after {
                        display: none;
                    }
                }
                & dd {
                    margin-left: 1.5em;
                }
            }
        }
    }
}

/* ACCESS */
.access-wrap {
    width: 95%;
    max-width: 800px;
    margin: 0 auto;
    & iframe {
        width: 100%;
        height: 45vh;
    }
}

/* form ※プラグイン上書き
-------------------------------- */
:root {
    --form-label-w: 100%;
    --form-form-w: 100%;
    --form-checkbox-w: 40px;
    --form-border: 1px solid var(--font-color-accent1);
    --form-border-radius: 3px;
    --form-input-pd: .6em 1em;
}
.forminator-row-inside {
   display: block !important;
}
.forminator-col {
    width: 100%;
    margin-bottom: 2rem !important;
}
.forminator-row, .forminator-field-email {
    margin-bottom: 0 !important;
}
.forminator-field {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    & label, input, textarea {
        font-size: 18px !important;
        font-weight: 700;
        color: var(--font-color-bass);
    }
    & label {
        position: relative;
        width: var(--form-label-w);
        font-family: var(--font-family1);
        color: var(--font-color-accent1);
        margin-bottom: .8em !important;
        padding-left: 3em;
        &::before {
            position: absolute;
            content: "";
            width: 2em;
            height: 1px;
            background: var(--font-color-accent1);
            top: 0;
            bottom: 0;
            left: 0;
            margin: auto 0;
        }
    }
    & input, textarea {
        width: var(--form-form-w) !important;
        padding: var(--form-input-pd) !important;
        border: var(--form-border) !important;
        border-radius: var(--form-border-radius) !important;
    }
    & input {
        max-width: calc(var(--form-form-w) * 1) !important;
    }
    & input::placeholder, textarea::placeholder {
        color: #bfbfbf;
        font-weight: 400;
    }
}
.forminator-field-textarea .forminator-field {
    padding-bottom: 3em !important;
    & .forminator-description {
        position: absolute;
        right: 0;
        bottom: 0;
        & span {
            position: relative;
            display: block;
            padding: 0 3.5em 0 1.2em;
            color: #f46161;
            &::before {
                position: absolute;
                content: "（";
                left: 0;
                top: 0;
                bottom: 0;
                margin: auto 0;
            }
            &::after {
                position: absolute;
                content: "文字）";
                right: 0;
                top: 0;
                bottom: 0;
                margin: auto 0;
            }
        }
    }
}
.forminator-select {
    margin-top: 0 !important;
    background: white;
}
.select2-selection {
    border: var(--form-border) !important;
    border-radius: var(--form-border-radius);
}
.select2-selection__rendered {
    padding: var(--form-input-pd) !important;
}
.forminator-input-with-icon {
    width: 100% !important;
}
input.forminator-datepicker {
    padding-left: 2em !important;
}
.ui-datepicker {
    margin-top: -2rem !important;
    & .ui-datepicker-header, .ui-datepicker-calendar {
        background: white !important;
        border: var(--form-border) !important;
    }
}

span.forminator-required {
    display: inline-block;
    position: relative;
    color: rgb(0,0,0,0) !important;
    &::after {
        position: absolute;
        width: 5em;
        content: "（必須）";
        top: .8em;
        left: -.5em;
        font-size: 12px;
        font-weight: 300;
        color: #f46161;
        line-height: 1;
    }
}
.forminator-field-consent .forminator-field {
    justify-content: center;
    align-items: center;
    & .forminator-checkbox-box {
        border: 3px solid #137f3f !important;
        width: var(--form-checkbox-w) !important;
        height: var(--form-checkbox-w) !important;
        flex: 0 0 var(--form-checkbox-w) !important;
        &::before {
            font-size: calc(var(--form-checkbox-w) * .5) !important;
        }
    }
    & .forminator-checkbox__wrapper {
        & label {
            width: calc(var(--form-checkbox-w) * 1.4) !important;
        }
        & .forminator-checkbox__label {
            width: calc(100% - (var(--form-checkbox-w) * 1.4)) !important;
            margin-left: 0 !important;
            & p, p a {
                font-size: 22px;
                font-weight: 200;
                line-height: var(--form-checkbox-w);
                letter-spacing: 1px;
            }
            & p {
                color: #444;
            }
        }
    }
}
.forminator-button {
    position: relative;
    display: block !important;
    width: fit-content;
    margin: 1% auto !important;
    line-height: 1;
    padding: .7em 3.5em !important;
    padding-right: 4em !important;
    color: white;
    background: var(--bg-color2);
    font-family: var(--font-family1);
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: .2em;
    &::after {
        position: absolute;
        content: "";
        width: var(--btn1-arrow-w);
        height: var(--btn1-arrow-w);
        top: 0;
        bottom: 0;
        right: 1em;
        margin: auto 0;
        border-top: var(--btn1-arrow-line);
        border-right: var(--btn1-arrow-line);
        transform: rotate(45deg);
    }
}

.forminator-error-message {
    width: 100%;
    font-size: 20px;
    color: #f46161;
    text-align: right;
    order: 3;
}
@media screen and (max-width: 1000px) {
    :root {
        --form-label-w: 100%;
        --form-form-w: 100%;
        --form-checkbox-w: 20px;
    }
    .forminator-col {
        margin-bottom: 32px !important;
    }
    .forminator-field {
        & label, input, textarea {
            font-size: 16px !important;
        }
        & label {
            margin-bottom: 12px !important;
        }
        & input, textarea {
            padding: .4em 1em !important;
            border: 2px solid #bfbfbf !important;
            border-radius: 3px !important;
        }
        & input {
            max-width: 100% !important;
        }
        & textarea {
            min-height: 120px !important;
        }

        input.forminator-datepicker {
            padding-left: 2em !important;
        }
    }
    .forminator-field-textarea .forminator-field {
        padding-bottom: 2.5em !important;
        & .forminator-description span {
            font-size: 12px;
        }
    }
    .forminator-field-consent .forminator-field {
        & .forminator-checkbox-box {
            border: 2px solid #137f3f !important;
        }
        & .forminator-checkbox__wrapper {
            & .forminator-checkbox__label {
                & p, p a {
                    font-size: 12px;
                }
            }
        }
    }
    .select2-selection span,
    .select2-results li {
        font-size: 1.2rem !important;
    }
    span.forminator-required {
        &::after {
            font-size: 12px;
            top: .7em;
        }
    }
    .forminator-error-message {
        font-size: 10px;
    }
    .forminator-button {
        width: fit-content !important;
        height: fit-content !important;
        margin: 8px auto 0 !important;
        font-size: 16px;
        border: 3px solid var(--font-color-accent1) !important;
        border-radius: 3px !important;
        padding: 10px 36px !important;
        letter-spacing: 3px;
    }
}

/* information
-------------------------------- */
.information-wrap {
    height: 20rem;
    margin: 1rem 0 7rem;
    background: var(--bg-color1);
}

/* footer
-------------------------------- */
:root {
    --footer-sns-w: 1.5rem;
}
.footer-inner {
    width: 90%;
    max-width: var(--max-width1);
    margin: 0 auto;
    padding: 3.5rem 0 2rem;
    & p {
        text-align: center;
    }
    & .footer-info {
        margin-bottom: 1.5rem;
        & img {
            display: block;
            max-width: 12rem;
            margin: 0 auto 1rem;
        }
        & p {
            font-size: .9rem;
            &.site-name {
                font-size: 110%;
                font-weight: 600;
                margin-bottom: 1em;
            }
        }
    }
    & .footer-sns {
        margin-bottom: 2.5rem;
        & a {
            display: block;
            width: var(--footer-sns-w);
            height: var(--footer-sns-w);
            background: white;
            mask-repeat: no-repeat;
            mask-position: center;
            mask-size: cover;
            -webkit-mask-repeat: no-repeat;
            -webkit-mask-position: center;
            -webkit-mask-size: cover;
            &.-line {
                mask-image: url(../img/icon-line.svg);
                -webkit-mask-image: url(../img/icon-line.svg);
            }
            &.-insta {
                mask-image: url(../img/icon-insta.svg);
                -webkit-mask-image: url(../img/icon-insta.svg);
            }
        }
        & a:not(:last-child) {
            margin-right: var(--footer-sns-w);
        }
    }
    & .footer-menu {
        text-align: center;
        & a {
            display: block;
            padding: 0 1em;
            font-size: .85rem;
            text-decoration: none;
            line-height: 1.2;
            margin-bottom: 1em;
        }
        & a:not(:last-child) {
            border-right: 1px solid white;
        }
    }
}
.footer-copy {
    text-align: center;
    font-size: .8rem;
    padding: 1rem .5rem 2rem;
}
@media screen and (max-width: 1000px) {
    :root {
        --footer-sns-w: 2rem;
    }
    .footer-inner {
        & .footer-info {
            margin-bottom: 2.5rem;
            & img {
                margin-bottom: 1%;
            }
            & p {
                font-size: 1.2rem;
                &.site-name {
                    font-size: 1.4rem;
                }
            }
        }
        & .footer-menu {
            & a {
                font-size: 1.1rem;
            }
        }
    }
}


/* 固定ページ設定（トップページ以外）
-------------------------------- */
:root {
    --post-h1-pd: 3em;
}
.p-topArea {
    min-height: 120px;
    margin-top: 0;
    padding: 8rem 0 4rem;
    &.-noimg {
        background: var(--bg-color1);
    }
    & h1 {
        position: relative;
        width: fit-content;
        margin: 0 auto;
        font-size: 1.6rem;
        color: var(--font-color-accent1);
        padding: 0 calc(var(--post-h1-pd) * 1.3);
    }
    & h1::before, h1::after {
        position: absolute;
        content: "";
        width: var(--post-h1-pd);
        height: 1px;
        background: var(--font-color-accent1);
        top: 0;
        bottom: 0;
        margin: auto 0;
    }
    & h1::before {
        left: 0;
    }
    & h1::after {
        right: 0;
    }
}
.p-breadcrumb {
    width: 90%;
    max-width: var(--max-width1);
    & .p-breadcrumb__list {
        align-items: center;
    }
    & span {
        font-size: 12px;
    }
}
.l-content__body {
    margin: 3rem auto 0;
}
.p-page__content {
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
}

@media screen and (max-width: 1000px) {
    :root {
        --post-h1-pd: 2em;
    }
    .l-content__body {
        margin: 3rem auto 0;
    }
    .p-topArea {
        padding: 8rem 0 3rem;
        & h1 {
            font-size: 1.8rem;
        }
    }
}

/* POST-ABOUT */
:root {
    --post-about-img-w: 32%;
    --post-about-tx-w: calc(100% - var(--post-about-img-w));
    --post-about-bk-shift: 4rem;
}
.post-about-box {
    position: relative;
    & .-img {
        position: relative;
        width: var(--post-about-img-w);
        text-align: center;
    }
    & .-tx {
        position: relative;
        width: var(--post-about-tx-w);
        padding: .5rem 3rem 4rem;
        & h3 {
            font-size: 3rem;
            font-family: var(--font-family2);
            font-weight: normal;
            color: var(--font-color-accent1);
            line-height: 1;
            margin-bottom: 1.3rem;
            opacity: .7;
        }
        & p.tx-head {
            margin-left: 3%;
            margin-bottom: 1.1rem;
            font-size: 1.3rem;
            line-height: 1.6;
            font-weight: 900;
            color: var(--font-color-accent1);
        }
        & p.tx-contents {
            margin-left: 5%;
            margin-right: 5%;
        }
    }
}
.post-about-box:not(:last-child) {
    margin-bottom: 5rem;
}
.post-about-box::before {
    position: absolute;
    content: "";
    width: calc(100% - var(--post-about-bk-shift));
    height: calc(100% - var(--post-about-bk-shift));
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background: var(--bg-color1);
}
@media screen and (max-width: 1000px) {
    :root {
        --post-about-img-w: 100%;
        --post-about-tx-w: 100%;
    }
    .post-about-box {
        margin-bottom: 0;
        & .-img {
            margin-bottom: 1rem;
            & img {
                width: 88%;
            }
        }
        & .-tx {
            padding: .5rem 3rem 6rem;
            & h3 {
                font-size: 3.5rem;
            }
            & p.tx-head {
                margin-left: 1rem;
                font-size: 1.6rem;
            }
            & p.tx-contents {
                margin-left: 2rem;
                margin-right: 0;
            }
        }
    }
    .post-about-box::before {
        width: 100%;
    }
    .post-about-box:not(:last-child) {
        margin-bottom: 2rem;
    }
}
@media screen and (min-width: 1000px) {
    .post-about-box.-rep .-img {
        order: 2;
    }
    .post-about-box.-rep .-tx {
        padding: .5rem 1rem 4rem 5rem;
        order: 1;
    }
}