@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Amiri+Quran&family=Hedvig+Letters+Serif:opsz@12..24&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Shippori+Mincho&display=swap');

/* リセット
---------------------------------------------------------- */
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea, p, table, th, td, button, a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
ol ,
ul {
    list-style: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 100%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    position: relative;
}
address {
    font-style: normal;
}

header div,header dl,header dt,header dd,header ul,header ol,header li,header h1,header h2,header h2,header h3,header h4,header h5,header h6,
header pre,header form,header fieldset,header input,header textarea,header p,header table,header th,header td,header button,header a,
footer div,footer dl,footer dt,footer dd,footer ul,footer ol,footer li,footer h1,footer h2,footer h3,footer h4,footer h5,footer h6,
footer pre,footer form,footer fieldset,footer input,footer textarea,footer p,footer table,footer th,footer td,footer button,footer a {
    position: relative;
}
@media screen and (max-width: 768px) {
    .gnav_main.pc,.gnav_sub.pc {
        display: none !important;
    }
}

/* レイアウト
----------------------------------------*/
html {
    font-size: 1rem;
    font-size: 10px;
    height: 100%;
}
body {
    color: #000;
    font-family: "Noto Sans JP", sans-serif;
    background: #fff;
    font-size: 1.4rem;
    line-height: 1.5;
    height: 100%;
    -webkit-text-size-adjust: 100%;
}
body.open,
body.reserve_open {
    width: 100%;
    height: 100%;
    position: fixed;
    overflow-y: scroll;
}
img {
    image-rendering: -webkit-optimize-contrast;
    display: block;
}
a {
    text-decoration: none;
    color: inherit;
    transition: opacity .3s;
}
table,
tbody,
thead,
tr,
th,
td {
    position: static;
}
main {
    overflow: clip;
}
@media (hover: hover) {
    a:hover {
        opacity: .6;
    }
}
@media only screen and (max-width: 1340px) {
    html {
        font-size: .7463vw;
    }
}
@media only screen and (min-width: 769px) {
    a[href^="tel:"] {
        pointer-events: none;
    }
}
@media only screen and (max-width: 768px) {
    img {
        width: 100%;
    }
    html {
        font-size: 2.5641vw;
    }
}

/* font
----------------------------------------*/
.mincho {
    font-family: "Noto Serif JP", serif;
}
.en {
    font-family: "Hedvig Letters Serif", serif;
}
.en2 {
    font-family: "Amiri Quran", serif;
}

/* img
----------------------------------------*/
img {
    max-width: 100%;
    height: auto;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 769px) {
    .sp {
        display: none !important;
    }
}

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

/*header
----------------------------------------*/
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0 0 0 6.1rem;
    background: #fff;
    z-index: 2000;
}
.header_inner {
    display: flex;
    align-items: center;
}
.header_logo {
    width: 8.3rem;
    filter: brightness(.5) grayscale(1);
    margin-top: .2rem;
}
.header_logo img {
    width: 100%;
}
.btn_reserve {
    appearance: none;
    border: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 17.4rem;
    height: 11rem;
    background: #0E380C;
    color: #fff;
    font-size: 1.2rem;
    letter-spacing: .05em;
    text-align: center;
    padding: 3.1rem 0 0;
    cursor: pointer;
    transition: background .3s, color .3s;
    outline: none;
}
.btn_reserve::before {
    content: '';
    display: block;
    width: 2.4rem;
    height: 2.6rem;
    background: url(../img/icon_reserve.svg) no-repeat left top / 100% auto;
    margin: 0 auto .7rem;
}
.header_btn {
    display: none;
}
.header_reserve {
    text-align: center;
    position: fixed;
    top: 11rem;
    right: 0;
    width: 39rem;
    background: #F6F5F1;
    padding: 3.8rem 2.75rem 4.5rem;
    transform: translateX(100%);
    transition: transform .5s;
    pointer-events: none;
}
.reserve_open .header_reserve {
    transform: none;
    pointer-events: all;
}
.header_reserve h2 {
    text-align: center;
    font-size: 1.8rem;
    letter-spacing: .15em;
    font-weight: 400;
    margin: 5.6rem 0 1rem;
}
.header_reserve .btn {
    width: 100%;
}
.header_reserve .btn + .btn {
    margin-top: 1.6rem;
}
.header_reserve .btn::before {
    right: 2rem;
}
.header_reserve .btn::after {
    right: 2.6rem;
}
@media only screen and (max-width: 768px) {
    .header {
        padding: 0 2.2rem 1.5rem;
    }
    .header_logo {
        margin-top: 1.6rem;
        filter: none;
    }
    .btn_reserve {
        width: 15.6rem;
        height: 3.3rem;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 1rem;
        margin: .8rem 1.8rem 0 auto;
        background: #164114;
    }
    .btn_reserve::before {
        display: none;
    }
    .header_btn {
        appearance: none;
        border: 0;
        border-radius: 0;
        background: none;
        padding: 0;
        margin-top: .8rem;
        outline: none;
        cursor: pointer;
        display: block;
        width: 4.1rem;
        height: 4.1rem;
        outline: none;
        z-index: 2010;
    }
    .header_btn::before,
    .header_btn::after,
    .header_btn span {
        content: '';
        display: block;
        width: 4.1rem;
        height: .2rem;
        background: #164114;
        position: absolute;
        left: 0;
        right: 0;
        top: 1.1rem;
        margin: 0 auto;
        transition: transform .3s, top .3s;
    }
    .open .header_btn::before,
    .open .header_btn::after,
    .open .header_btn span {
        top: 2rem;
        width: 3rem;
        height: .1rem;
        transform: rotate(45deg);
    }
    .open .header_btn::after,
    .open .header_btn span {
        transform: rotate(-45deg);
    }
    .open .header_btn span {
        opacity: 0;
    }
    .header_btn span {
        top: 1.9rem;
    }
    .header_btn::after {
        top: 2.7rem;
    }
    .header_reserve {
        top: 9.2rem;
        width: 100%;
        max-height: calc(100% - 9.2rem);
        overflow: auto;
    }
    .header_reserve .f_contact_tel::before {
        content: '';
        display: block;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        border: .1rem solid #164114;
        box-sizing: border-box;
        position: absolute;
        top: 0;
        bottom: .1rem;
        right: 2.1rem;
        margin: auto 0;
        pointer-events: none;
    }
    .header_reserve .f_contact_tel::after {
        content: '';
        display: block;
        width: .4rem;
        height: .4rem;
        border-top: 1px solid #164114;
        border-right: 1px solid #164114;
        transform: rotate(45deg);
        position: absolute;
        top: 0;
        bottom: .1rem;
        right: 2.7rem;
        margin: auto 0;
    }
    .header_reserve .f_contact_tel a {
        width: 33.5rem;
        border: .1rem solid #164114;
        border-radius: .5rem;
        display: block;
        margin: 1.7rem 0 1.8rem;
        padding: .3rem 0 .8rem 3.5rem;
    }
    .header_reserve .f_contact_tel a::before {
        left: 5.8rem;
        top: 1.1rem;
    }
}

/* gnav
----------------------------------------*/
.gnav {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-right: 3.4rem;
}
.gnav_main,
.gnav_sub {
    display: flex !important;
    align-items: center;
}
.gnav_main a,
.gnav_sub a {
    display: block;
}
.gnav_main {
    gap: 2.42rem;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: .045em;
    margin: 1.7rem 0 .1rem;
}
.gnav_sub {
    font-size: 1.2rem;
    letter-spacing: .05em;
    font-weight: 500;
}
.gnav_sub li + li:not(.gnav_sub_tel):not(.gnav_sub_instagram) {
    margin-left: 3.25rem;
}
.gnav_sub li + li:not(.gnav_sub_tel):not(.gnav_sub_instagram)::before {
    content: '';
    display: block;
    width: .1rem;
    height: 1.1rem;
    background: #423C3C;
    position: absolute;
    left: -1.7rem;
    top: .4rem;
}
.gnav_sub_tel {
    font-size: 1.6rem;
    letter-spacing: .01em;
    margin-left: 4.2rem;
}
.gnav_sub_tel a::before {
    content: '';
    display: inline-block;
    width: 1.8rem;
    height: 1.8rem;
    background: url(../img/icon_tel.svg) no-repeat left top / 100% auto;
    vertical-align: -.3rem;
    margin-right: .9rem;
    filter: grayscale(1);
}
.gnav_sub_instagram {
    width: 1.4rem;
    margin-left: 1.6rem;
}
.footer_navi dd,.footer_link li {
    font-family: "Noto Sans JP", sans-serif;
}

@media only screen and (max-width: 768px) {
    .gnav {
        margin: 0;
        padding: 3.8rem 0 6.3rem;
        display: block;
        background: #DCDFDA;
        width: 100%;
        max-height: 100%;
        overflow: auto;
        position: fixed;
        top: 0;
        right: 0;
        transform: translateX(100%);
        transition: transform .5s;
        pointer-events: none;
        z-index: 2000;
    }
    .gnav .footer_logo {
        width: 10.2rem;
    }
    .gnav .footer_navi {
        margin-top: 4.5rem;
        margin-bottom: 5rem;
        padding-bottom: 4.7rem;
        border-bottom: .1rem solid #1E1E1E;
    }
    .gnav .footer_info_sns {
        display: flex;
        justify-content: center;
        margin-top: 3.2rem;
    }
    .gnav .footer_bottom {
        margin-top: 4.6rem;
    }
    .open .gnav {
        transform: none;
        pointer-events: all;
    }
}

/*ttl_page
----------------------------------------*/
.ttl_page {
    text-align: center;
    padding: 10rem 0 0;
}
.ttl_page h1 {
    font-size: 1.4rem;
    letter-spacing: .1em;
    color: #777;
    font-weight: 400;
    margin-top: 8.1rem;
}
@media only screen and (min-width: 769px) {
    .ttl_page h1 {
        margin-bottom: 8.1rem;
    }
}
.ttl_page h1 .en2 {
    display: block;
    font-size: 4rem;
    font-weight: 400;
    color: #164114;
    letter-spacing: .2em;
    margin-bottom: 1.6rem;
}
.ttl_page figure + h1 {
    position: absolute;
    left: 0;
    right: 0;
    top: 8.5rem;
    bottom: 0;
    margin-top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: #fff;
    letter-spacing: .15em;
}
.ttl_page figure + h1 .en2 {
    color: #fff;
    font-size: 5rem;
    line-height: 1.2222;
    letter-spacing: .2em;
    margin-bottom: 2.4rem;
}
@media only screen and (max-width: 768px) {
    .ttl_page {
        padding-top: 0;
    }
    .ttl_page h1 {
        padding: 5rem 0;
        color: #1E1E1E;
    }
    .ttl_page h1 .en2 {
        font-size: 3.2rem;
        margin-bottom: 1rem;
        padding-left: .1em;
    }
    .ttl_page figure + h1 {
        padding-top: 0;
        top: 1.7rem;
    }
    .ttl_page figure + h1 .en2 {
        line-height: 1.5;
        font-size: 3.6rem;
        margin-bottom: .9rem;
    }
    body:has(.ttl_page figure) .header {
        transition: background .3s;
    }
    body:has(.ttl_page figure) .header .btn_reserve {
        transition: background .3s, color .3s;
    }
    body:has(.ttl_page figure) .header .header_logo {
        transition: filter .3s;
    }
    body:has(.ttl_page figure) .header .header_btn::before,
    body:has(.ttl_page figure) .header .header_btn::after,
    body:has(.ttl_page figure) .header .header_btn span {
        transition: background .3s;
    }
    body:has(.ttl_page figure) .header:not(.scroll) {
        background: none;
    }
    body:has(.ttl_page figure) .header:not(.scroll) .btn_reserve {
        background: #fff;
        color: #282828;
    }
    body:has(.ttl_page figure) .header:not(.scroll) .header_logo {
        filter: brightness(0) invert(1);
    }
    body:has(.ttl_page figure) .header:not(.scroll) .header_btn::before,
    body:has(.ttl_page figure) .header:not(.scroll) .header_btn::after,
    body:has(.ttl_page figure) .header:not(.scroll) .header_btn span {
        background: #D9D9D9;
    }
}

/*btn
----------------------------------------*/
header .btn, footer .btn {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 29.1rem;
    height: 5rem;
    width: fit-content;
    border: .1rem solid #164114;
    color: #164114;
    font-size: 1.3rem;
    letter-spacing: .1em;
    border-radius: .5rem;
    padding: 0 4rem;
}
header .btn::before,footer .btn::before {
    content: '';
    display: block;
    box-sizing: border-box;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    border: .1rem solid #164114;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1.6rem;
    margin: auto 0;
}
header .btn::after,footer .btn::after {
    content: '';
    display: block;
    width: .4rem;
    height: .4rem;
    border-top: .1rem solid #164114;
    border-right: .1rem solid #164114;
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    right: 2.2rem;
    margin: auto 0;
}
.btn.green {
    background: #164114;
    color: #fff;
}
.btn.green::before,
.btn.green::after {
    border-color: #fff;
}
@media only screen and (max-width: 768px) {
    .btn {
        min-width: 33.5rem;
        padding: 0 5rem;
    }
    .btn::before {
        right: 1.9rem;
    }
    .btn::after {
        right: 2.5rem;
    }
}

/*topicpath
----------------------------------------*/
.topicpath {
    overflow: auto;
    border-top: .1rem solid #C7C7C6;
    padding: 1.5rem 0 1.3rem;
    background: #F2F3EF;
}
.topicpath ol {
    max-width: 125rem;
    margin: 0 auto;
    font-size: 1.1rem;
    color: #333;
    letter-spacing: .05em;
    gap: 1.4rem;
    display: flex;
}
.topicpath ol li {
    flex-shrink: 0;
}
.topicpath ol li + li::before {
    content: '>';
    position: absolute;
    left: -1rem;
    top: 0;
}
.topicpath ol li:last-child {
    padding-right: 2rem;
}
@media only screen and (max-width: 768px) {
    .topicpath {
        padding: 2rem 0 2.5rem 3rem;
    }
}

/*f_contents
----------------------------------------*/
.f_contents {
    margin-bottom: 14.2rem;
}
.f_contents_inner {
    max-width: calc(50% + 55.2rem);
    margin: 0 0 0 auto;
    overflow: hidden;
}
.f_contents h2 {
    font-size: 1.4rem;
    color: #164114;
    font-weight: 400;
    letter-spacing: .1em;
    margin-bottom: 3.7rem;
}
.f_contents h2 .en2 {
    display: block;
    font-size: 3rem;
    letter-spacing: .1em;
    line-height: 1.1;
    border-bottom: .1rem solid #164114;
    margin-bottom: 1.5rem;
}
.f_contents_slider {
    width: 37.8rem;
}
.f_contents_item {
    width: 34.5rem;
    margin-right: 3.3rem;
    float: left;
}
.f_contents_item h3 {
    font-size: 1.3rem;
    letter-spacing: .1em;
    font-weight: 400;
    margin-top: 1.5rem;
}
.f_contents_item h3 .en {
    display: block;
    margin-bottom: .3rem;
}
.f_contents_detail {
    position: absolute;
    right: 0;
    bottom: .5rem;
    width: 13.4rem;
    font-size: 1.3rem;
    letter-spacing: .1em;
    border-bottom: .1rem solid #1E1E1E;
    padding: 0 2rem .8rem .1rem;
}
.f_contents_detail::before {
    content: '';
    display: block;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 50%;
    border: .1rem solid #0E380C;
    box-sizing: border-box;
    position: absolute;
    right: 0;
    top: .1rem;
}
.f_contents_detail::after {
    content: '';
    display: block;
    width: .5rem;
    height: .5rem;
    border-top: .1rem solid #0E380C;
    border-right: .1rem solid #0E380C;
    transform: rotate(45deg);
    position: absolute;
    right: .8rem;
    top: .7rem;
}
.f_contents_slider .slick-track::after {
    content: '';
    display: block;
    clear: both;
    width: 0;
    height: 0;
}
@media only screen and (max-width: 768px) {
    .f_contents {
        margin-bottom: 7.1rem;
    }
    .f_contents_inner {
        max-width: none;
        margin: 0 0 0 2.6rem;
    }
    .f_contents h2 {
        margin-bottom: 4.3rem;
    }
    .f_contents_slider {
        width: 31.6rem;
    }
    .f_contents_item {
        width: 28rem;
        margin-right: 3.6rem;
    }
    .f_contents_item figure img {
        width: 100%;
        aspect-ratio: 28 / 23;
        object-fit: cover;
    }
    .f_contents_detail {
        width: 10.9rem;
    }
}

/*f_fair
----------------------------------------*/
.f_fair {
    padding-bottom: 14.8rem;
}
.f_fair h2 {
    text-align: center;
    font-size: 1.3rem;
    color: #164114;
    letter-spacing: .1em;
    font-weight: 400;
    margin-bottom: 4.5rem;
}
.f_fair h2 .en2 {
    display: block;
    font-size: 3rem;
    line-height: 1.1;
    letter-spacing: .2em;
    padding-left: .1em;
    margin-bottom: 1.6rem;
    border-bottom: .1rem solid #164114;
}
.f_fair_list {
    max-width: 90.9rem;
    margin: 0 auto 6.3rem;
    display: flex;
    justify-content: center;
    gap: 4rem;
}
.f_fair_list p {
    font-size: 1.4rem;
    line-height: 1.7857;
    letter-spacing: .1em;
    margin-top: 1.5rem;
    margin-right: -.2rem;
}
.f_fair .btn {
    margin: 0 auto;
}
@media only screen and (max-width: 768px) {
    .f_fair {
        padding-bottom: 6.3rem;
    }
    .f_fair h2 {
        margin-bottom: 4.8rem;
    }
    .f_fair_list {
        width: 31.7rem;
        margin: 0 0 4.8rem 2.6rem;
        display: block;
    }
    .f_fair_item {
        width: 27.7rem;
        margin-right: 4rem;
        float: left;
    }
    .f_fair_list .slick-track::after {
        content: '';
        display: block;
        clear: both;
        width: 0;
        height: 0;
    }
    .f_fair_list p {
        margin-right: 0;
    }
    .f_fair .btn {
        margin: 0 0 0 2.6rem;
    }
}

/*f_contact
----------------------------------------*/
.f_contact {
    padding: 3.9rem 0 0;
    text-align: center;
}
.f_contact_inner {
    border-top: .1rem solid rgba(22, 65, 20, .5);
    background: #F2F3EF;
    padding: 9rem 0 6.9rem;
}
.f_contact h2 {
    font-size: 1.3rem;
    letter-spacing: .1em;
    font-weight: 400;
    color: #164114;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: 2;
}
.f_contact h2 .en2 {
    display: block;
    font-size: 3rem;
    letter-spacing: .2em;
    padding-left: .2em;
    margin-bottom: 2rem;
}
.f_contact_btn {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 6.2rem;
}
.f_contact_btn .btn {
    min-width: 28.8rem;
    height: 6rem;
}
.f_contact_btn .btn::before {
    right: 2.1rem;
}
.f_contact_btn .btn::after {
    right: 2.7rem;
}
.f_contact h3 {
    font-size: 1.8rem;
    letter-spacing: .15em;
    color: #333;
    font-weight: 400;
    margin-bottom: 1.2rem;
}
.f_contact_tel a {
    display: block;
    font-family: "Shippori Mincho", serif;
    font-size: 2.5rem;
    color: #164114;
    letter-spacing: .1em;
    padding: 0 1.2rem 0 3.9rem;
    width: fit-content;
    margin: 0 auto;
}
.f_contact_tel a::before {
    content: '';
    display: block;
    width: 2.6rem;
    height: 2.6rem;
    border: .1rem solid #164114;
    background: url(../img/icon_tel.svg) no-repeat center 55% / 1.24rem auto;
    border-radius: 50%;
    position: absolute;
    top: .8rem;
    left: 0;
    box-sizing: border-box;
}
.f_contact_time {
    font-size: 1.3rem;
    letter-spacing: .15em;
    margin-top: 1.3rem;
}
@media only screen and (max-width: 768px) {
    .f_contact {
        padding: 7.4rem 0 0;
    }
    .f_contact_inner {
        padding: 7.7rem 0 6.5rem;
    }
    .f_contact h2 .en2 {
        line-height: 1.2667;
        margin-bottom: 1.5rem;
    }
    .f_contact_btn {
        display: block;
        margin-bottom: 5.6rem;
    }
    .f_contact_btn .btn {
        min-width: 33.5rem;
        height: 5rem;
        margin: 0 auto;
    }
    .f_contact_btn .btn + .btn {
        margin-top: 1.6rem;
    }
}

/*footer
----------------------------------------*/
#footer {
    padding-top: 14.8rem;
}
.footer {
    background: #DCDFDA;
    padding: 9.3rem 0 6.1rem;
}
.footer_inner {
    max-width: 119rem;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
}
.footer_logo {
    width: 8.4rem;
    margin: 0 0 3.3rem;
}
.footer_logo img {
    width: 100%;
}
.footer_address {
    font-size: 1.2rem;
    letter-spacing: .15em;
    line-height: 2;
}
.footer_address p + p {
    margin-top: 1.6rem;
}
.footer_info_sns {
    display: flex;
    align-items: center;
    gap: 1.8rem;
    margin-top: 2.8rem;
}
.footer_info_sns a {
    display: block;
}
.footer_info_sns a img {
    height: 1.8rem;
    width: auto;
    margin: 0 auto;
}
.footer_info_sns a:nth-child(1) {
    width: 1.3rem;
}
.footer_info_sns a:nth-child(3) img {
    height: 1.9rem;
}
.footer_info_sns a:last-child img {
    height: 1.8rem;
}
.footer_navi {
    width: 88.4rem;
    margin: -1rem 0 0 auto;
    display: flex;
    justify-content: space-between;
}
.footer_navi dl {
    width: 54.7rem;
}
.footer_navi dl + dl {
    width: 28.6rem;
}
.footer_navi dt {
    font-size: 1.5rem;
    letter-spacing: .1em;
    padding-bottom: 1rem;
    border-bottom: .1rem solid #1E1E1E;
    margin-bottom: 1.5rem;
}
.footer_navi li::before {
    content: '・';
}
.footer_navi li {
    font-size: 1.2rem;
    letter-spacing: .05em;
    padding: .75rem 0 .75rem 1em;
    text-indent: -1em;
}
.footer_navi dl:nth-child(1) ul {
    columns: 3;
    margin-right: -2rem;
}
.footer_navi dl:nth-child(1) ul li:nth-child(3) {
    margin-bottom: 7rem;
}
.footer_bottom {
    width: 100%;
    display: flex;
    justify-content: space-between;
    margin-top: 8.1rem;
}
.footer_link {
    display: flex;
    font-size: 1.2rem;
    letter-spacing: .05em;
    gap: 3.7rem;
}
.footer_link li + li::before {
    content: '｜';
    position: absolute;
    top: 0;
    left: -2.5rem;
}
.copyright {
    display: block;
    margin-right: -1rem;
    font-size: 1.2rem;
    letter-spacing: .05em;
}
@media only screen and (max-width: 768px) {
    .footer {
        overflow: hidden;
        padding: 7rem 0 3.7rem;
    }
    .footer_inner {
        display: block;
    }
    .footer_logo {
        width: 11rem;
        margin: 0 auto 2.7rem;
    }
    .footer_address {
        text-align: center;
    }
    .footer_address p + p {
        margin-top: .4rem;
    }
    .footer_info_sns {
        display: none;
    }
    .footer_navi {
        width: auto;
        margin: 8.6rem 3.5rem 0;
        display: block;
    }
    .footer_navi dl {
        width: auto;
    }
    .footer_navi dl + dl {
        width: auto;
        margin-top: 3.4rem;
    }
    .footer_navi dt {
        margin-bottom: 3.2rem;
    }
    .footer_navi li {
        padding: .73rem 0 .73rem 1em;
    }
    .footer_navi dl:nth-child(1) ul {
        columns: 2;
        margin-right: 1.5rem;
    }
    .footer_navi dl:nth-child(2) ul {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .footer_navi dl:nth-child(1) ul li:nth-child(3) {
        margin-bottom: 0;
    }
    .footer_navi dl:nth-child(1) ul li:nth-child(7) {
        margin-bottom: 1rem;
    }
    .footer_bottom {
        display: block;
        margin-top: 7rem;
    }
    .footer_link {
        justify-content: center;
        margin-bottom: 4.2rem;
    }
    .copyright {
        margin-right: 0;
        font-size: 1.1rem;
        text-align: center;
    }
}

/*inview
----------------------------------------*/
.inview {
    opacity: 0;
    transform: translateY(5rem);
    transition: opacity .5s, transform .5s;
    transition-timing-function: linear;
}
.inview.show {
    opacity: 1;
    transform: none;
}