@charset "UTF-8";
/* ==========================================================================
   Setting
========================================================================== */
:root {
    --white: #FFF;
    --l-gray: #F2EEE8;
    --l-gray2: #E6E1D9;
    --gray: #76857C;
    --d-gray: #5D5D5D;
    --dd-gray: #231F20;
    --black: #333;
    --border1: #C6C6C6;
    --border2: #BFBFBF;
    --color1: #334038;
    --color1-h: #334038;
    --red: #DB3636;
    --font1: "Libre Baskerville", serif;
    --font2: "Hind", sans-serif;
    --gothic: "Noto Sans JP", sans-serif;
    --mincho: "Noto Serif JP", serif;
}


/* ==========================================================================
   Loading
========================================================================== */
body #container::before {
    content: "";
    width: 100%;
    height: 100%;
    /*background: var(--l-gray) url(../img/loading.svg) no-repeat center center / 5em;*/
    background: var(--l-gray);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 994;
    transition: 1s cubic-bezier(0.39, 0.575, 0.565, 1);
}
body.loaded #container::before {
    opacity: 0;
    pointer-events: none;
}
@keyframes fadein {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
/*  Animation
================ */
.iv {
    opacity: 0;
    filter: blur(.125em);
    transform: translateY(1em);
    transition: .6s ease-out;
    transition-property: opacity, filter, transform;
}
.iv.show {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}
@keyframes fadeinup {
    0% {
        opacity: 0;
        filter: blur(.125em);
        transform: translateY(1em);
    }
    100% {
        opacity: 1;
        filter: blur(0);
        transform: translateY(0);
    }
}
/* ==========================================================================
   Base
========================================================================== */
html {
    font-family: var(--gothic);
    font-size: 81.3%;
    font-weight: 400;
    line-height: 2.25;
    letter-spacing: .1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}
html:has(body.lang-en) {
    --gothic: "Noto Sans", sans-serif;
    --mincho: "Noto Serif", serif;

    letter-spacing: 0.025em;
}
@media (max-width: 389px) {
    html {
        font-size: 3.375vw;
    }
}
body {
    background: var(--l-gray);
    color: var(--black);
}
body.navOpen {
    height: 100%;
    overflow: hidden;
}
@media (min-width: 992px) {
    body.pagegroup__basic.navOpen, body.pagegroup__restaurant.navOpen {
        height: auto;
        overflow: auto;
    }
}
#inner-content {
    padding-top: 70px;
    padding-bottom: 5rem;
}
#mv + #inner-content {
    padding-top: 0;
}
#content, #content ~ * {
    position: relative;
    z-index: 2;
}
#main-content {
    position: relative;
    z-index: 2;
}
@media (max-width: 991px) {
    ._pc {
        display: none !important;
    }
}
@media (min-width: 992px) {
    ._sp {
        display: none !important;
    }
}

#main {
    font-weight: 300;
}

._sticky {
  position: sticky!important;
  top: 0;
}

.of-hidden {
    overflow: hidden;
}

.relative {
    position: relative;
}

/* ==========================================================================
   Header
========================================================================== */
#siteHeader {
    color: var(--color1);
    height: 70px;
    /*position: absolute;*/
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 990;
    transition: height .6s cubic-bezier(0.16, 1, 0.3, 1);
}
#siteHeader.standby {
    /*opacity: 0;*/
}
#siteHeader:has(.gNav.on), #siteHeader.fixed {
    position: fixed;
}
#siteHeader:has(.on) {
    position: fixed !important;
    opacity: 1 !important;
}
#siteHeader::before {
    content: '';
    background: var(--l-gray);
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transform: translateY(-101%);
    transition: transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
#siteHeader.fixed::before {
    transform: translateY(0);
}
#siteHeader::after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: var(--border1);
    position: absolute;
    bottom: 0;
}
body:has(#mv) #siteHeader:not(.fixed) {
    color: var(--white);
}
body:has(#mv) #siteHeader:not(.fixed)::after {
    background: currentColor;
    opacity: .3;
}
@media (min-width: 992px) {
    #siteHeader {
        height: 90px;
    }
    #siteHeader.fixed {
        height: 70px;
    }
}
.inner-header {
    height: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    position: relative;
}
.header-l {
    position: relative;
    z-index: 6;
}
#siteHeader:has(.gNav.on) .header-l {
    z-index: 4;
}
.header-logo {
    display: flex;
    align-items: center;
    height: 100%;
    margin: 0;
    line-height: 1;
    position: relative;
}
.header-logo .logo__inner {
    display: block;
    width: 8em;
    color: inherit;
    transition: none;
}
.header-logo .logo__inner img {
    display: inline-block;
    vertical-align: middle;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
body:has(#mv):not(.gNavOpen) #siteHeader:not(.fixed) .header-logo .logo__inner {
    background: url(../img/logo-w.svg) no-repeat center center / contain;
}
body:has(#mv):not(.gNavOpen) #siteHeader:not(.fixed) .header-logo .logo__inner img {
    visibility: hidden;
}
.header-r {
    flex-basis: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    position: relative;
    z-index: 5;
}
@media (max-width: 991px) {
    .header-l {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }
}
@media (min-width: 992px) {
    .inner-header {
        font-size: min(1rem, 1vw);
        padding: 0 0 0 2.75em;
    }
}
/* ==========================================================================
   Navigation
========================================================================== */
nav ul {
    display: flex;
    flex-direction: row;
    border-bottom: 0;
    margin: 0;
}
nav ul li {
    position: relative;
}
nav ul li a,
nav ul li > span {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75em;
    color: inherit;
    text-decoration: none;
    line-height: 1.5;
    position: relative;
    text-decoration: none;
}
nav ul li a span {
    display: block;
}
nav ul li a svg {
    display: inline-block;
    width: .8077em;
    height: .8077em;
    object-fit: contain;
}
nav ul li a:hover {
    opacity: 0.5;
}
nav .sub-nav {
    padding: 2.5rem 0 2.75rem;
    gap: 2em;
}

nav.lang-menu {
    font-weight: 500;
    width: 4em;
}
nav.lang-menu ul {
    display: block;
}
nav.lang-menu ul li a {
    justify-content: space-between;
    align-items: center;
}
a.lang-swith {
    gap: 0;
}
a.lang-swith::after {
    content: '';
    display: block;
    width: .425em;
    height: .425em;
    border-bottom: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s;
}
nav.lang-menu .sub-menu {
    padding-left: 0;
    min-width: 100% !important;
}


ul.sns-nav {
    display: flex;
    gap: .75em;
}
ul.sns-nav li a {
    display: inline-flex;
    min-width: 2em;
    padding: .5em 0;
    align-items: center;
}
ul.sns-nav li a svg {
    width: 1.75em;
    height: 1.75em;
    margin: auto;
}
ul.sns-nav li.facebook a svg {
    width: .8em;
}
@media (max-width: 991px) {
    .navBar ul {
        margin-bottom: 2rem;
        flex-direction: column;
    }
    ul .sub-menu {
        display: none;
        padding: 0 0 0 1.5em;
    }
    ul .sub-menu ul {
        margin-bottom: 0;
    }

    nav.lang-menu a {
        padding: .25em .5em !important;
    }
}
@media (min-width: 992px) {
    .navBar ul {
        justify-content: flex-end;
    }
}


/* Grobal navigation */
.gNav {
    width: 100%;
    display: flex;
}
.gNav__inner {
    display: flex;
    width: 100%;
    height: 100%;
}
.gNav .main-nav {
    display: flex;
    width: 100%;
}
.gNav > * {
    align-self: center;
}

/* Nav Btn */
.nav-btn {
    background: transparent;
    color: inherit;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 80px;
    height: 100%;
    position: relative;
    z-index: 999;
    cursor: pointer;
}
.nav-btn i {
    display: block;
    background: currentColor;
    width: 3em;
    height: 1px;
    position: absolute;
    right: 0;
    left: 0;
    margin: -.5px auto 0;
    transition: transform .2s, top .2s .2s;
}
.nav-btn i:nth-of-type(1) {
    top: calc(50% - 5px);
}
.nav-btn i:nth-of-type(2) {
    top: calc(50% + 5px);
}
.gNav.on .nav-btn {
    color: var(--white);
}
.gNav.on .nav-btn i {
    transition: transform .2s .2s, top .2s;
}
.gNav.on .nav-btn i:nth-of-type(1) {
    top: 50%;
    transform: rotate(30deg);
}
.gNav.on .nav-btn i:nth-of-type(2) {
    top: 50%;
    transform: rotate(-30deg);
}
.gNav.on .nav-btn::after {
    opacity: 0;
}


.gNav__inner {
    width: 100%;
    background: var(--color1);
    color: var(--white);
    position: fixed!important;
    top: 0;
    bottom: 0;
    right: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .6s cubic-bezier(0.19, 1, 0.22, 1);
}
/* OPEN */
.gNav.on .gNav__inner {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}


/* ==========================================================================
   PC Navigation
========================================================================== */
@media (min-width: 992px) {
    .gNav {
        flex: 1 1 100%;
        max-width: 100%;
        height: 100%;
        position: relative;
        z-index: 5;
    }
    .gNav .lang-menu,
    .gNav .bookNav,
    .gNav .nav-btn {
        font-weight: 500;
        flex-basis: 8%;
        position: relative;
    }
    .gNav .lang-menu {
        width: auto;
        flex-basis: 7%;
    }
    .gNav .navBar::after,
    body:has(#mv) #siteHeader:not(.fixed) .gNav .lang-menu::after,
    body:has(#mv) #siteHeader:not(.fixed) .gNav .bookNav::after {
        content: '';
        display: block;
        width: 1px;
        height: 2em;
        background: currentColor;
        opacity: .3;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
    }
    .gNav > .bookNav {
        align-self: stretch;
    }
    body:has(#mv) #siteHeader:not(.fixed) .gNav .navBar {
        font-weight: 500;
    }
    .gNav .navBar {
        margin-left: auto;
        flex-basis: 76%;
        padding-right: 1vw;
        height: 100%;
        justify-content: flex-end;
        position: relative;
    }
    .gNav ul.lang-nav {
        width: 100%;
    }
    .gNav ul.lang-nav a,
    .gNav ul.lang-nav .sub-menu ul li a {
        padding: .5em calc(1vw + .923em);
    }
    .gNav ul.lang-nav .sub-menu {
        position: absolute;
        border-bottom: 0;
    }
    .gNav ul li a,
    .gNav ul li > span {
        height: 100%;
        white-space: nowrap;
    }
    .gNav > nav,
    .gNav > nav ul,
    .gNav > nav ul li {
        height: 100%;
    }
    .gNav > nav ul.main-nav li a {
        padding: 1em min(1vw, .923em);
    }

    .gNav > nav > ul > li > a,
    .gNav > nav > ul > li > span {
        display: flex;
        border-bottom: 1px solid transparent;
        transition-property: border;
        opacity: 1!important;
    }
    .gNav > nav > ul > li:hover > a {
        border-bottom-color: var(--color1);
    }
    .gNav .sub-menu {
        min-width: calc(100% + 1em);
        background: transparent;
        border-bottom: 1px solid var(--border1);
        position: fixed;
        top: 90px;
        left: 0;
        opacity: 0;
        pointer-events: none;
        transition: .4s;
        transition-property: transform, opacity;
    }
    #siteHeader.fixed .gNav .sub-menu {
        background: var(--l-gray);
        color: var(--color1);
        top: 70px;
    }
    .gNav > nav > ul > li.has-children:hover .sub-menu {
        opacity: 1;
        pointer-events: auto;
    }
    .gNav .sub-menu {
        display: block !important;
        padding: 1em;
    }
    .gNav .sub-menu ul {
        justify-content: center;
    }
    .gNav .sub-menu ul li a:not(.btn) {
        font-size: .923em;
        padding: .5em 1.5em;
    }
    .gNav .sub-menu ul:has(.btn) {
        padding: 1.25em 0;
    }

    .gNav .book-nav {
        display: block;
    }
    .gNav .book-nav li span {
        width: 100%;
        justify-content: center;
        cursor: pointer;
    }

    .gNav__inner {
        font-size: min(1rem, 1.1vw);
    }
    .gNav__inner::before {
        content: '';
        display: block;
        background: url(../img/bg.jpg) no-repeat center / cover;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        opacity: .1;
    }
    .gNav__inner > nav {
        width: min(90%, 80em);
        margin: auto;
    }
    .gNav__inner ul.sns-nav {
        justify-content: flex-end;
        margin-top: 4.75em;
    }
    .gNav__inner ul.main-nav {
        display: block;
        margin: 1.5em 0;
    }
    .gNav__inner ul.main-nav li a {
        font-size: 1.385em;
        padding: .5em 0;
    }
    .gNav__inner .gNav__bottom {
        margin-top: 4em;
    }
    .gNav__inner .gNav__bottom ul.group-links {
        margin-top: 1.75em;
    }
    .gNav__inner .gNav__bottom ul.sub-nav {
        margin-top: 2.5em;
    }

}
/* ==========================================================================
   SP Navigation
========================================================================== */
@media (max-width: 991px) {
    .gNav {
        justify-content: space-between;
        align-items: center;
    }
    .gNav__inner {
        padding-top: 75px;
        z-index: 777;
    }
    .gNav .lang-menu {
        margin: 0 calc(7vw - .5em);
    }
    .gNav.on .lang-menu {
        color: var(--white);
        z-index: 999;
    }
    .gNav .navBar_inner {
        height: 100%;
        overflow-y: auto;
        padding: 0 7vw;
    }
    .gNav .navBar_inner .row {
        position: relative;
    }
    .gNav .navBar_inner .row > div:has(.sns-nav) {
        width: auto;
        position: absolute;
        right: 0;
        z-index: 5;
    }
    .gNav nav,
    .gNav nav ul.main-nav,
    .gNav nav ul.main-nav ul {
        flex-direction: column;
        justify-content: flex-start;
    }
    .gNav nav ul.main-nav > li {
        border-bottom: 1px solid rgba(255,255,255,.3);
    }
    .gNav nav ul.main-nav {
        font-size: 1.154rem;
        letter-spacing: .05em;
    }
    .gNav nav ul.main-nav li a {
        padding: 1.125em 0;
    }
    .gNav nav ul.main-nav > li > a {
        font-size: 1.231rem;
    }
    .gNav nav ul.main-nav .has-children > a::before,
    .gNav nav ul.main-nav .has-children > a::after {
        content: '';
        display: block;
        width: .75em;
        height: 1px;
        background: currentColor;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
    }
    .gNav nav ul.main-nav .has-children > a::after {
        transform: translateY(-50%) rotate(90deg);
    }
    .gNav nav ul.main-nav .has-children.open > a::after {
        opacity: 0;
    }
    .gNav nav ul.main-nav .sub-menu {
        padding-bottom: 1.5em;
    }
    .gNav nav ul.main-nav .sub-menu ul li a {
        padding: .75em 0;
    }

    .gNav nav .sub-nav {
        font-size: .923em;
    }
    .gNav nav .links-group {
        padding: 2rem 0 4rem;
    }
    .gNav nav .links-group li a {
        padding: 0;
    }
    
    .gNav > .navBar {
        display: none!important;
    }
}
/* ==========================================================================
   Book Navigation
========================================================================== */
.bookNav {
    position: relative;
}
.bookNav.on .bookNav__inner {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.bookNav__buttons {
    display: flex;
    gap: 1rem;
}
.book-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    letter-spacing: .01em;
    white-space: nowrap;
    width: 100%;
    padding: 0 1em;
    cursor: pointer;
}
.book-btn > * {
    transition: opacity .2s;
}
.book-btn:hover > * {
    opacity: .5;
}
.bookNav .book-close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3em;
    height: 3em;
    font-size: 1.5em;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;

    display: none;
}
.bookNav .book-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25em;
    max-width: 90%;
    margin: 0 auto;
}
.bookNav .book-list li {
    width: 100%;
    max-width: 23em;
    text-align: center;
}
.bookNav .book-list li .btn {
    width: 100%;
    font-size: 1em;
}
#book-widget {
    display: block;
}
@media (max-width: 991px) {
    .bookNav {
        width: 100%;
        position: fixed !important;
        right: 0;
        bottom: 0;
        z-index: 666 !important;
        color: var(--color1);
    }
    .bookNav__buttons {
        background: var(--color1);
        padding: 1.2rem;
    }
    .book-btn {
        background: var(--white);
        color: var(--color1);
        height: 3.125rem;
    }
    .bookNav__inner {
        display: block;
        width: 100%;
        background: var(--l-gray);
        padding: 2.5rem 0 calc(2.5rem + 5.125rem);
        position: fixed;
        right: 0;
        bottom: 0;
        z-index: -1;
        opacity: 0;
        transform: translateY(10vh);
        pointer-events: none;
        transition: opacity .4s cubic-bezier(0.19, 1, 0.22, 1), transform .4s cubic-bezier(0.19, 1, 0.22, 1);
    }
}
@media (min-width: 768px) {
    .bookNav .book-list {
        flex-wrap: nowrap;
    }
    .bookNav .book-list li {
        flex-basis: 100%;
    }
}
@media (min-width: 992px) {
    .bookNav {
        width: auto;
    }
    .bookNav__inner {
        padding: 3rem 0;
        top: 70px;
        bottom: auto;
        transform: translateY(0);
    }
    .bookNav__buttons {
        height: 100%;
    }
    .bookNav:hover .sub-menu {
        opacity: 1;
        pointer-events: auto;
    }
    .book-btn {
        height: 100%;
        background: var(--color1);
        color: var(--white);
    }
    .bookNav .book-list {
        gap: 30px;
    }
    .bookNav .book-list .btn {
        opacity: 1!important;
    }
    

    body:has(#mv) #siteHeader:not(.fixed) .book-btn {
        background: transparent;
        color: inherit;
    }
    body:has(#mv) #siteHeader:not(.fixed) .bookNav__inner {
        background: transparent;
        top: 90px;
    }
    body:has(#mv) #siteHeader:not(.fixed) .bookNav__inner .btn-border,
    body:has(#mv) #siteHeader:not(.fixed) .bookNav__inner .btn-border::before,
    body:has(#mv) #siteHeader:not(.fixed) .bookNav__inner .btn-border::after {
        border-color: rgba(255, 255, 255, .5);
        color: inherit;
    }
}


/* ==========================================================================
   Fixed buttons
========================================================================== */
.fixedNav {
    position: fixed !important;
    right: 0;
    bottom: 0;
    z-index: 666 !important;
    color: var(--color1);
}
.fixedNav__buttons {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
@media (max-width: 991px) {
    .fixedNav {
        width: 100%;
    }
    .fixedNav__buttons {
        flex-direction: row;
        gap: 1rem;
        background: var(--color1);
        padding: 1.2rem;
    }
    .fixedNav__buttons .btn {
        display: flex;
        justify-content: center;
        align-items: center;
        letter-spacing: .01em;
        white-space: nowrap;
        width: 100%;
        height: 3.125rem;
        padding: 0 1em;
        background: var(--white);
        color: var(--color1);
    }
    .fixedNav__buttons .btn::after {
        display: none;
    }
}

/* ==========================================================================
   Column layout
========================================================================== */
.column-layout {
    position: relative;
}
.side-col:has(.label) {
  width: 1.5rem;
}
[data-label] {
    position: relative;
}
[data-label]::before,
.side-col .label > span {
  font-family: var(--font1);
  font-size: .846em;
  line-height: 1.375rem;
  display: block;
  white-space: nowrap;
  writing-mode: vertical-rl;
}

@media (max-width: 991px) {
    .main-col {
        position: relative;
    }
    .column-layout:has([data-label]) .side-col:has(.label) {
        display: none;
    }
    .side-col > ._sticky > .section {
        max-height: 5rem;
        margin: 2rem 0 -4.5rem;
    }
	.side-col > ._sticky > .section:has(ul) {
        margin: 4.5rem 0 -2rem;
    }
    .side-col:has(.label) {
        margin-left: auto;
    }
    [data-label]::before {
        content: attr(data-label);
        position: absolute;
        top: 0;
        right: 0;
    }
    .column-layout.container .container {
        padding-right: 0;
        padding-left: 0;
    }
}
@media (min-width: 992px) {
    .column-layout {
        display: flex;
        justify-content: space-between;
        gap: 3vw;
    }
    .column-layout .main-col {
        flex-basis: 100%;
    }
    .column-layout .side-col ._sticky {
        overflow: hidden;
        top: 70px;
    }
    .column-layout .side-col:has(.sidebar) {
        flex: 0 0 195px;
    }
}

/* ==========================================================================
   Sidebar
========================================================================== */
.sidebar .side_ttl {
    font-family: var(--font1);
    font-size: .923em;
    letter-spacing: .1em;
    margin-bottom: 2em;
}
.sidebar ul li a {
    font-family: var(--mincho);
    line-height: 1.5;
    letter-spacing: .1em;
    display: flex;
    align-items: center;
    gap: 1.125em;
    padding: .75em 0 .75em .125em;
}
.sidebar ul li a::before {
    content: '';
    display: block;
    width: .425em;
    height: .425em;
    border-bottom: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    transform-origin: 75% 50%;
}
.sidebar ul li a:hover {
    opacity: .5;
}
@media (max-width: 991px) {
    .sidebar ul {
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
    }
    .sidebar ul li {
        flex: 0 0 48%;
    }
}


/* ==========================================================================
   Group Link
========================================================================== */
ul.group-links {
    margin: 1rem 0;
    display: flex;
    flex-wrap: wrap;
    row-gap: 1.5rem;
    column-gap: 2.5rem;
}
ul.group-links li a {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    line-height: 1.25;
}
ul.group-links li a img {
    display: block;
}
@media (max-width: 991px) {
    ul.group-links li {
        min-width: 110px;
    }
}
@media (min-width: 992px) {
    ul.group-links li {
        text-align: center;
    }
}

/* ==========================================================================
   Banner Link
========================================================================== */
ul.banner-links {
    max-width: 500px;
    margin: 3rem auto;
    display: flex;
    flex-wrap: wrap;
    row-gap: 1.5em;
    column-gap: 8%;
}
ul.banner-links li {
    flex: 0 0 calc((100% - 8%)/2);
    text-align: center;
}
ul.banner-links li a {
    display: block;
    font-size: .846em;
    line-height: 1.25;
}
ul.banner-links li a img {
    display: block;
    margin-bottom: 1em;
}
@media (min-width: 576px) {
    ul.banner-links li {
        flex: 0 0 calc((100% - 8%*2)/3);
    }
}
@media (min-width: 991px) {
    ul.banner-links {
        max-width: inherit;
        margin: 4.5rem auto;
        justify-content: center;
        column-gap: 30px;
    }
    ul.banner-links li {
        flex: 0 0 calc((100% - 30px*5)/6);
        max-width: 150px;
    }
}

/* ==========================================================================
   Footer
========================================================================== */
.footer-top {
    text-align: center;
}
.footer-top ul {
    list-style-type: none;
}
.footer-top li a {
    font-size: 1.231em;
    padding: 2rem 0;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
}
.footer-top li a::after {
    content: '';
    display: block;
    width: .425em;
    height: .425em;
    border-bottom: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    transform-origin: 75% 50%;
}
.footer-top li:last-child a {
    border: 0;
}
@media (max-width: 575px) {
    .footer-top li a {
        border-bottom: 1px solid rgba(255,255,255,.3);
    }
}
@media (min-width: 576px) and (max-width: 991px) {
    .footer-top {
        max-width: 100%!important;
    }
}
@media (min-width: 576px) {
    .footer-top li {
        padding: 2.5rem 0;
    }
    .footer-top li a {
        border-right: 1px solid rgba(255,255,255,.3);
        padding: 1rem 0;
        gap: .5rem;
    }
}

#siteFooter {
    background-color: var(--color1);
    color: var(--white);
    clear: both;
    overflow: hidden;
}
#siteFooter .inner-footer {
    padding: 6rem 3vw 5rem;
    position: relative;
}
#siteFooter .inner-footer::before {
    content: '';
    display: block;
    background: url(../img/bg.jpg) no-repeat center / cover;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: .1;
}
#siteFooter a:hover {
    opacity: 0.5;
}
#siteFooter ul.sns-nav {
    margin: 4em 0 0;
}
#siteFooter .information {
    margin-top: 2em;
}
#siteFooter .footer-bottom {
    background-color: var(--l-gray2);
    color: var(--black);
    font-size: .857em;
    padding: 2rem 0 7.5rem;
}
#siteFooter .copyright p {
    margin-top: 0;
    text-align: center;
}
@media (min-width: 992px) {
    #siteFooter {
        font-size: min(1rem, 1.1vw);
    }
    #siteFooter .inner-footer {
        padding: 8rem 0 7rem;
    }
    #siteFooter ul.sns-nav {
        margin: 2em 0 0;
    }
    #siteFooter .footer-bottom {
        text-align: center;
        border-top: 1px solid rgba(255, 255, 255, .1);
        padding: 2rem 0;
    }
}


.fNav nav ul {
    flex-wrap: wrap;
}
.fNav nav ul.main-nav li a {
    padding: .75em 0;
}
.fNav nav .sub-nav {
    font-size: .846em;
}
@media (max-width: 991px) {
    .fNav ul.main-nav li {
        width: calc(100%/3);
    }
    .fNav nav .sub-nav {
        padding: 3.5rem 0 4rem;
    }
}
@media (max-width: 575px) {
    .fNav ul.main-nav li {
        width: calc(100%/2);
    }
}
@media (min-width: 992px) {
    .fNav nav ul {
        margin: .5em 0 0;
        column-gap: 2em;
    }
    .fNav ul.main-nav .sub-manu {
        display: none !important;
    }
}


.TrustYou {
    overflow: hidden;
    margin: 2.308rem 0;
}
.TrustYou iframe {
    width: 100%;
}
@media (min-width: 992px) {
    .TrustYou {
        margin: 2.308rem 0 0;
    }
}





