@charset "UTF-8";
/* 共通 */
:root {
    --main-font-color: #2b2b2b;
    --white-color: #fff;
    --accent-color: #8A3B2C;
    --yellow01: #D8CBB4;
    --yellow02: #A88B58;
    --yellow03: #b49f7a;
    --blown01: #4B4131;
    --container-narrow: 970px;
    --container-wide: 1210px;
    --container-padding: 16px;
    --trans: all .3s ease;
    --trans-slow: all .4s ease;
    --text-shadow: 0px 0px 20px rgba(58, 58, 58, 0.5);
}
/*--------------------------------
 全体
---------------------------------*/
html {
    overflow-x: hidden;
}
@font-face {
    font-family: "NumberOnlyNoto";
    src: local("Noto Serif JP"), local("NotoSerifJP-Regular");
    unicode-range: U+0030-0039;
}
body {
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;
    color: var(--main-font-color);
    font-feature-settings: "palt";
    font-family: "NumberOnlyNoto", 'Cormorant Garamond', 'Noto Serif JP', serif;
    font-size: 16px;
    line-height: 2.06;
    letter-spacing: 0.05em;
    overflow: clip;
    /* 横スクロール防止 */
    background: url(../common_image/bg-yellow.webp);
}
*,
*::before,
*::after {
    box-sizing: border-box;
}
img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
table th {
    font-weight: normal;
}
ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
a {
    text-decoration: none;
}
a:link {
    color: var(--main-font-color);
}
a:visited {
    color: var(--main-font-color);
}
address {
    font-style: normal;
}
/* スマホのみtel発信可 */
@media (min-width: 600px) {
    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}
/*--------------------------------
 font
---------------------------------*/
.jp {
    font-family: "Noto Serif JP", serif;
    font-size: 13px;
    line-height: 2.46;
}
/*--------------------------------
 レイアウト
---------------------------------*/
.container_narrow {
    max-width: var(--container-narrow);
    margin-inline: auto;
    padding: 0 var(--container-padding);
}
@media screen and (max-width: 1100px) {
    .container_narrow {
        padding: 0 5%;
    }
}
.container_wide {
    max-width: var(--container-wide);
    margin-inline: auto;
    padding: 0 var(--container-padding);
}
@media screen and (max-width: 1450px) {
    .container_wide {
        padding: 0 5%;
    }
}
::selection {
    background-color: var(--accent-color);
    color: #fff;
}
.sp-only {
    display: none;
}
.pc-only {
    display: block;
}
@media screen and (max-width: 768px) {
    .sp-only {
        display: block;
    }
    .pc-only {
        display: none;
    }
}
.flex {
    display: flex;
    align-items: center;
}
.flex-start {
    align-items: flex-start;
    justify-content: space-between;
}
.footer-flex-start {
    align-items: flex-start;
}
.c-section {
    margin: 140px 0;
}
.mb-30 {
    margin-bottom: 30px;
}
.mb-50 {
    margin-bottom: 50px;
}
.mb-60 {
    margin-bottom: 60px;
}
.mb-80 {
    margin-bottom: 80px;
}
.mb-100 {
    margin-bottom: 100px;
}
.mt-100 {
    margin-top: 100px;
}
.mt-50 {
    margin-top: 50px;
}
.mt-30 {
    margin-top: 30px;
}
.text-set p:first-child {
    margin-bottom: 30px;
}
.bg-brown {
    height: 120px;
    background-image: url(../common_image/bg-blown.svg);
    background-attachment: fixed;
    background-size: 140px;
}
/*--------------------------------
 ボタン
---------------------------------*/
.btn01 a {
    color: var(--white-color);
    text-transform: uppercase;
    font-size: 18px;
    font-weight: 700;
    padding: 15px 28px;
    background: var(--accent-color);
    border-radius: 5px;
    display: inline-block;
    transition: var(--trans);
}
@media (hover: hover) and (pointer: fine) {
    .btn01 a:hover {
        background: #733129;
    }
}
.btn02 {
    position: relative;
    width: 270px;
}
.btn02 a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    color: var(--main-font-color);
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    line-height: 1.88;
    padding: 20px 32px;
    background: var(--white-color);
    border: 1px solid rgba(43, 43, 43, 0.65);
    border-radius: 3px;
    width: 100%;
    transition: var(--trans);
    cursor: pointer;
}
.btn02 .flex {
    justify-content: center;
    gap: 30px;
}
.btn02 .btn02-arrow {
    position: absolute;
    right: 32px;
    top: 50%;
    transform: translateY(-50%);
    filter: invert(37%) sepia(1%) saturate(1%) hue-rotate(0deg) brightness(101%) contrast(84%);
    transition: var(--trans-slow);
}
@media (hover: hover) and (pointer: fine) {
    .btn02 a:hover {
        color: var(--white-color);
        background: rgba(43, 43, 43, 0.8);
        border: 1px solid rgba(43, 43, 43, 0.8);
    }
    .btn02 a:hover .btn02-arrow {
        filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(282deg) brightness(104%) contrast(102%);
        right: 36px;
    }
}
.btn-text-double {
    width: 560px;
}
.btn-text-double a {
    color: var(--white-color);
    background: var(--accent-color);
    border: 1px solid var(--accent-color);
}
.btn-text-double a span:first-child {
    text-transform: capitalize;
    font-size: 16px;
    letter-spacing: 1.6px;
}
.btn-text-double .flex>div {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.btn-text-double .btn02-arrow {
    filter: invert(98%) sepia(100%) saturate(0%) hue-rotate(43deg) brightness(103%) contrast(103%);
}
.btn-text-double .jp {
    line-height: 1.2;
}
/* header-btn */
.mypage a {
    font-size: 18px;
    transition: var(--trans);
    display: flex;
    align-items: center;
    text-transform: uppercase;
    color: var(--white-color);
    font-weight: 700;
}
.mypage a::before {
    content: "";
    display: inline-block;
    width: 25px;
    height: 25px;
    background: url(../common_image/icon-human.svg);
    background-repeat: no-repeat;
    background-size: contain;
    filter: invert(98%) sepia(100%) saturate(0%) hue-rotate(43deg) brightness(103%) contrast(103%);
    margin-right: 12px;
}
/* 色なしボタン */
.btn-transparent {
    margin-inline: auto;
    width: 100%;
    max-width: 400px;
}
.btn-transparent a {
    background-color: transparent;
    border: 1px solid var(--white-color);
    color: var(--white-color);
}
.btn-transparent a:hover {
    background-color: var(--accent-color);
}
.btn-transparent .btn02-arrow,
.btn02-red .btn02-arrow {
    filter: invert(100%) sepia(1%) saturate(7%) hue-rotate(31deg) brightness(103%) contrast(100%);
}
.btn02-red {
    width: 100%;
    max-width: 400px;
}
.btn02-red a {
    background: var(--accent-color);
    color: var(--white-color);
}
.btn-icon {
    position: relative;
    width: 270px;
    margin: 0 auto;
    margin-top: 30px;
}
.btn-icon a,
.btn-icon button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    color: var(--main-font-color);
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    line-height: 1.88;
    padding: 14px 32px;
    background: var(--white-color);
    border: 1px solid rgba(43, 43, 43, 0.65);
    border-radius: 999px;
    width: 100%;
    transition: var(--trans);
    cursor: pointer;
    font-family: 'Cormorant Garamond';
}
.btn-icon .flex {
    justify-content: center;
    gap: 20px;
}
@media (hover: hover) and (pointer: fine) {
    .btn-icon a:hover,
    .btn-icon button:hover {
        color: var(--white-color);
        background: var(--accent-color);
        border: 1px solid var(--accent-color);
    }
    .btn-icon a:hover .icon,
    .btn-icon button:hover .icon {
        filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(282deg) brightness(104%) contrast(102%);
        right: 36px;
    }
}
/*--------------------------------
 アニメーション
---------------------------------*/
.opacity {
    transition: opacity 0.3s;
}
@media screen and (min-width: 600px) {
    .opacity:hover {
        opacity: 0.5;
    }
}
.js-blur-clear {
    filter: blur(9px);
    transition: none;
}
/*--------------------------------
 見出し
---------------------------------*/
/* 英語＋日本語_日本語の左横に横線 */
.line-title {
    color: var(--white-color);
    display: flex;
    flex-direction: column-reverse;
    gap: 12px;
}
.line-title h2 {
    position: relative;
    padding-left: 60px;
}
.line-title h2::before {
    position: absolute;
    content: "";
    top: 50%;
    width: 40px;
    height: 1px;
    left: 0px;
    background: var(--white-color);
}
/* 共通の英語＋日本語_日本語の左横に横線に右側に矢印の画像 */
.c-line-title {
    display: flex;
    flex-direction: column-reverse;
}
.c-line-title .main {
    position: relative;
    padding-left: 40px;
    font-weight: normal;
    line-height: 1.5;
}
.c-line-title .main::before {
    position: absolute;
    content: "";
    top: 50%;
    width: 28px;
    height: 1px;
    left: 0;
    background: var(--main-font-color);
}
/* 左側縦２本線 */
.heading-double {
    position: relative;
    padding: 0.4em 1em 0.4em 2em;
    color: var(--main-font-color);
    display: flex;
    justify-content: center;
    flex-direction: column-reverse;
    gap: 3px;
}
.heading-double::before,
.heading-double::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background-color: var(--blown01);
}
.heading-double::after {
    left: 9px;
    /* ← ここで線と線の間隔を自由に調整！ */
}
.heading-double .jp {
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
}
.heading-double p {
    font-size: 36px;
    line-height: 1;
    text-transform: uppercase;
}
/* 右に縦２本線 */
.heading-double2 {
    padding: 0.4em 1em 0.4em 0;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 3px;
}
.heading-double2::before,
.heading-double2::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: var(--blown01);
}
.heading-double2::before {
    right: 0;
}
.heading-double2::after {
    right: 9px;
}
.heading-double2 .jp,
.heading-double2 p {
    margin: 0;
}
.c-bigsmall {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 9px;
}
.c-bigsmall p {
    text-transform: uppercase;
    font-size: 50px;
    line-height: 0.72;
}
.c-line-heading {
    gap: 0.5em;
}
.c-line-heading .sub {
    font-size: 32px;
    letter-spacing: 10%;
    line-height: 1.2;
    font-weight: 800;
}
.c-line-heading .caption {
    font-size: 16px;
    letter-spacing: 10%;
    color: var(--yellow01);
    font-weight: 900;
    line-height: 1.2;
}
.c-line-between {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.c-line-between .en {
    width: auto;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 10%;
}
.c-line-between .jp {
    position: relative;
    padding-left: 90px;
}
.c-line-between .jp::before {
    position: absolute;
    content: "";
    top: 50%;
    width: 3em;
    height: 1px;
    left: 2.2em;
    background: var(--main-font-color);
}
/*--------------------------------
 dlリスト
---------------------------------*/
.c-dllist {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.c-dllist dt {
    font-weight: 700;
    font-size: 1.2em;
    margin-bottom: 0.3em;
}
.c-dllist dd {
    margin-bottom: 3em;
}
/*--------------------------------
 ulリスト
---------------------------------*/
/* 英語 */
.c-ul-en li,
.c-ul-jp li {
    display: flex;
    align-items: flex-start;
    gap: 0.5em;
    margin-bottom: 0.5em;
}
.c-ul-en li::before {
    content: "*";
}
.c-ul-jp li::before {
    content: "※";
}
.c-ul-en li::before,
.c-ul-jp li::before {
    flex: 0 0 auto;
    width: auto;
    height: auto;
    margin-top: 0.6em;
    color: var(--accent-color);
    font-size: 1.2em;
    line-height: 1;
}
.c-ul-en li:last-child,
.c-ul-jp li:last-child {
    margin-bottom: 0;
}
.c-ul-dot {
    display: flex;
    flex-direction: column;
    gap: 0.8em;
}
.c-ul-dot li {
    display: flex;
    align-items: flex-start;
}
.c-ul-dot li::before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    margin-top: 0.8em;
    margin-right: 1em;
    border-radius: 50%;
    background: var(--yellow02);
    flex-shrink: 0;
}
.c-ul-dot.jp li::before {
    margin-top: 1em;
}
/*--------------------------------
 アコーディオン
---------------------------------*/
.accordion {
    border-top: 1px solid var(--yellow01);
    position: relative;
    z-index: 10;
}
.accordion-q-content {
    display: block;
    font-weight: 600;
    line-height: 1.6;
}
.accordion-q-content .jp {
    font-size: 12px;
    margin-left: 2em;
}
.accordion-q-icon {
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
@media print,
(min-width: 768px) {
    .accordion-q-icon {
        left: 14px;
        width: 14px;
        height: 20px;
    }
}
@media screen and (max-width: 767px) {
    .accordion-q-icon {
        left: 10px;
        width: 16px;
        height: 16px;
    }
}
.accordion-q-icon::before,
.accordion-q-icon::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--yellow01);
}
@media print,
(min-width: 768px) {
    .accordion-q-icon::before,
    .accordion-q-icon::after {
        top: 9px;
    }
}
@media screen and (max-width: 767px) {
    .accordion-q-icon::before,
    .accordion-q-icon::after {
        top: 7px;
    }
}
.accordion-q-icon::after {
    transform: rotate(90deg);
    transition: transform 400ms;
}
.accordion-q button {
    display: block;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    border: none;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    appearance: none;
    cursor: pointer;
    transition: background-color 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}
@media print,
(min-width: 768px) {
    .accordion-q button {
        padding: 25px 60px 25px 57px;
    }
}
@media screen and (max-width: 767px) {
    .accordion-q button {
        padding: 20px 36px 20px 41px;
    }
}
@media print,
(min-width: 768px) {
    .accordion-q button:hover,
    .accordion-q button:active {
        background: rgba(207, 204, 195, .15);
    }
    .accordion-q button:active {
        margin-bottom: 20px;
    }
}
.accordion-a {
    display: none;
    overflow: hidden;
}
.accordion-a-inner {
    position: relative;
}
.accordion-a-inner {
    padding: 3em 3.7em;
    background: var(--white-color);
    border-radius: 10px;
    margin-bottom: 20px;
}
.accordion>li {
    border-bottom: 1px solid var(--yellow01);
}
.accordion>li.is-open .accordion-q-icon::after {
    transform: rotate(0deg);
}
/*--------------------------------
 リンク
---------------------------------*/
.c-anchor-under {
    text-decoration: underline;
    transition: 0.3s;
}
@media screen and (min-width: 600px) {
    .c-anchor-under:hover {
        color: var(--accent-color);
    }
}
/*--------------------------------
 table
---------------------------------*/
.table-wrap {
    width: 100%;
    overflow-x: auto;
}
.c-table-column {
    width: 100%;
    border-collapse: collapse;
}
.c-table-th,
.c-table-td {
    font-family: 'Noto Serif JP';
    padding: 1em 2em;
}
.c-table-th {
    background: var(--yellow03);
    color: var(--white-color);
    width: 50%;
    font-weight: 700;
    letter-spacing: 10%;
}
.table-set {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}
.table-set .en {
    letter-spacing: 10%;
}
.table-set .jp {
    font-size: 80%;
}
/* 縦線だけつける */
.c-table-th:not(:last-child),
.c-table-td:not(:last-child) {
    border-right: 1px solid #d8cbb4;
}
/* 下線（tdのみ） */
.c-table-td {
    border-bottom: 1px solid #d8cbb4;
}
.c-table-td.is-middle {
    vertical-align: middle;
}
/* スクロールヒント */
.scroll-hint-text {
    margin-top: 0;
    font-size: 11px;
}
.c-table-row .c-table-th:not(:last-child),
.c-table-row .c-table-td:not(:last-child) {
    border-right: none;
    border-bottom: 1px solid #d8cbb4;
}
.c-table-row .c-table-th {
    width: 274px;
}
.c-table-row tr:first-child .c-table-td {
    border-top: 1px solid #d8cbb4;
}
/*--------------------------------
 アンカーリスト
---------------------------------*/
.c-anchor {
    background: var(--white-color);
    padding: 40px 0;
}
.c-anchor-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    justify-items: center;
    gap: 1.2em 0.5em;
}
.c-anchor-link {
    font-family: "Noto Serif JP", serif;
    font-size: 16px;
    line-height: 2.46;
    display: inline-flex;
    align-items: center;
    gap: 1em;
}
.c-anchor-link .arrow {
    transform: rotate(90deg);
    width: 11px;
    height: 11px;
    transition: .3s;
}
.c-anchor-link .arrow:hover {
    opacity: 0.5;
}
/*--------------------------------
 header
---------------------------------*/
.header {
    position: fixed;
    z-index: 999;
    top: 0;
    transition: top 1s;
    width: 100vw;
    height: 160px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 20px 5%;
    background: linear-gradient(rgba(30, 30, 30, .86), rgba(0, 0, 0, .35) 37%, transparent);
}
.logo {
    filter: invert(98%) sepia(100%) saturate(0%) hue-rotate(43deg) brightness(103%) contrast(103%);
}
.header-link {
    gap: 38px;
    justify-self: end;
    display: flex;
}
.header-nav {
    justify-self: start;
}
/*--------------------------------
 ハンバーガーメニュー
---------------------------------*/
html.is-menu-open,
body.is-menu-open {
    overflow: hidden;
}
body.is-menu-open {
    position: fixed;
    width: 100%;
}
#navi {
    position: fixed;
    top: 0;
    right: 0;
    width: 100vw;
    height: 100dvh;
    background-color: var(--blown01);
    opacity: 0;
    transition: all 0.5s ease;
    z-index: -1;
    pointer-events: none;
}
.nav-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 100dvh;
    padding-top: 0;
    align-items: stretch;
}
.nav-grid .navi-menu {
    margin-top: 160px;
    padding: 0 8vw 60px;
    height: calc(100dvh - 160px);
    overflow-y: auto;
}
.nav-grid .navi-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.nav-grid .navi-menu::-webkit-scrollbar {
    width: 4px;
}
.nav-grid .navi-menu::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
}
.nav-grid .navi-menu::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 10px;
}
.nav-grid .navi-menu::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.5);
}
.nav-grid .navi-menu {
    mask-image: linear-gradient(to bottom, black 90%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 90%, transparent 100%);
}
.nav-grid .c-navlist li .en {
    font-size: 20px;
}
.nav-grid .c-navlist li .jp {
    font-size: 14px;
}
.nav-grid .mypage {
    text-align: center;
    display: inline-block;
    /* 110-140 1000-1600*/
    margin-left: clamp(6.875rem, 3.75rem + 5vw, 8.75rem);
    margin-bottom: 30px;
}
.nav-grid .mypage a {
    justify-content: center;
}
.nav-grid .mypage a::before {
    width: 23px;
    height: 23px;
}
.nav-grid .flex {
    gap: 2em;
}
.nav-grid .flex a {
    color: var(--white-color);
}
.text-icon {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.text-icon::before {
    content: "";
    display: inline-block;
    width: 23px;
    height: 23px;
    background-size: contain;
    background-repeat: no-repeat;
}
.text-icon.map::before {
    background-image: url(../common_image/icon-map.svg);
}
.text-icon.insta::before {
    background-image: url(../common_image/icon-instagram.svg);
}
.open #navi {
    right: 0;
    opacity: 1;
    pointer-events: auto;
}
.menu_btn {
    position: relative;
    cursor: pointer;
    width: 110px;
    height: 55px;
    z-index: 30;
    transition: .3s ease;
    color: var(--white-color);
}
.menu_btn:hover {
    box-shadow: none;
}
.menu_btn::after {
    content: "MENU";
    font-size: 18px;
    position: absolute;
    font-weight: 700;
    color: var(--white-color);
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}
.menu_btn.active::after {
    content: "CLOSE";
    color: var(--white-color);
}
.menu_btn span {
    display: block;
    position: absolute;
    width: 40px;
    height: 2px;
    background: var(--white-color);
    transition: all .4s ease;
    /* border-radius: 20px; */
    left: 80%;
    transform: translateX(-50%);
}
.menu_btn span:nth-of-type(1) {
    top: 20px;
}
.menu_btn span:nth-of-type(2) {
    top: 33px;
}
.menu_btn.active span:nth-of-type(1) {
    transform: translateX(-50%) translateY(8px) rotate(15deg);
    /* ×マークの1本目 */
}
.menu_btn.active span:nth-of-type(2) {
    transform: translateX(-50%) translateY(-5px) rotate(-15deg);
    /* ×マークの2本目 */
}
.nav-grid .info {
    gap: 3em;
    margin-bottom: 2em;
}
.nav-grid .c-navlist li {
    margin-bottom: 11px;
}
.nav-grid .btn02-red {
    margin-inline: 0;
    margin-bottom: 10px;
}
/*--------------------------------
 reservation
---------------------------------*/
.c-reserve {
    padding: 140px 0;
    background-image: url("../common_image/cta-bg.webp");
    background-size: cover;
    background-repeat: no-repeat;
}
.c-reserve .c-bigsmall {
    color: var(--white-color);
    text-shadow: var(--text-shadow);
}
.c-reserve .text-set {
    color: var(--white-color);
    text-align: center;
    text-shadow: var(--text-shadow);
}
.c-reserve .text-set p:first-child {
    margin-bottom: 10px;
}
.c-reserve-tel {
    text-align: center;
    color: var(--white-color);
    text-shadow: var(--text-shadow);
    font-weight: 700;
    font-size: 24px;
    text-transform: uppercase;
    letter-spacing: 2.4px;
}
.c-reserve-tel a {
    color: var(--white-color);
}
.c-reserve-tel>span {
    letter-spacing: 0.8px;
    font-size: 16px;
    padding-right: 8px;
}
/*--------------------------------
 footer
---------------------------------*/
footer {
    background-color: var(--blown01);
    padding: 110px 0;
}
.footer-heading {
    font-weight: 700;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
}
.footer-main {
    display: flex;
    column-gap: 20px;
    width: 100%;
}
.footer-left {
    width: 40%;
}
.footer-right {
    width: 50%;
}
.footer-item {
    margin-bottom: 40px;
}
.footer-left .footer-item:last-child {
    margin-bottom: 0px;
}
.footer-item.flex .footer-heading {
    width: 200px;
}
.footer-right .footer-item.flex .footer-heading {
    width: 130px;
}
.footer-item.flex a {
    color: var(--white-color);
}
.footer-heading.column {
    margin-bottom: 10px;
}
.footer-btn {
    position: relative;
    width: 250px;
    border-bottom: 1px solid var(--white-color);
}
.footer-btn a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    line-height: 1.88;
    padding: 10px 5px;
    transition: var(--trans);
}
.footer-btn .btn02-arrow {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    filter: invert(99%) sepia(5%) saturate(89%) hue-rotate(267deg) brightness(116%) contrast(100%);
    transition: var(--trans-slow);
}
@media (hover: hover) and (pointer: fine) {
    .footer-btn a:hover .btn02-arrow {
        right: 15px;
    }
    .footer-btn a:hover {
        opacity: 0.5;
    }
}
.c-navlist li {
    margin-bottom: 20px;
}
.c-navlist li:last-child {
    margin-bottom: 0px;
}
.c-navlist li a {
    display: inline-flex;
    align-items: center;
    color: var(--white-color);
}
.c-navlist li .jp {
    position: relative;
    padding-left: 70px;
}
.c-navlist li .jp::before {
    position: absolute;
    content: "";
    top: 50%;
    width: 42px;
    height: 1px;
    left: 0;
    background: var(--white-color);
}
.c-navlist li .en {
    width: 130px;
    text-transform: uppercase;
}
.footer-item .text-set {
    color: var(--white-color);
}
.footer-item .text-set p:first-child {
    margin-bottom: 15px;
}
.sns-list {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
}
.sns-list li {
    position: relative;
}
.sns-list li::after {
    content: "｜";
    margin: 15px;
    color: rgba(255, 255, 255, 50);
}
.sns-list li:last-child::after {
    content: "";
    margin: 0;
}
.footer-item.link a {
    position: relative;
    padding-right: 45px;
}
.footer-item.link a::after {
    position: absolute;
    content: "";
    top: 6px;
    right: 8px;
    display: inline-block;
    width: 19px;
    height: 19px;
    background: url(../common_image/icon-window.svg)no-repeat;
    filter: invert(100%) sepia(1%) saturate(7%) hue-rotate(31deg) brightness(103%) contrast(100%);
    background-size: contain;
}
small {
    color: var(--white-color);
}
small.jp {
    font-size: 11px;
}
.cgi-link {
    color: var(--white-color)!important;
}
/*--------------------------------
 lower_共通
---------------------------------*/
.l-hero {
    width: 100%;
    height: 500px;
    background-color: #000;
    position: relative;
}
.l-hero-title {
    position: absolute;
    bottom: 10%;
    left: 6%;
    color: var(--white-color);
    text-shadow: 1px 1px 14px rgba(58, 58, 58, 0.51);
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: center;
    gap: 1.3em;
}
.l-hero-title .jp {
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 10%;
}
.l-hero-title .en {
    font-weight: 600;
    font-size: 38px;
    letter-spacing: 5%;
    line-height: 1.5;
    text-transform: uppercase;
}
.l-heading-double {
    gap: 0.4em;
}
/* 英語を頭のみ大文字 */
.l-heading-double p {
    text-transform: none;
    line-height: 1.1;
    font-weight: 700;
}
.c-img-flex {
    display: flex;
    align-items: center;
    gap: 28px;
}
.c-img-flex .img-area img {
    aspect-ratio: 4 / 3;
}
.l-video {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    height: 0;
    margin-top: 20px;
}
.l-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.c-banner {
    border: 1px solid #bbbbbb;
}
.c-vertical-heading {
    position: relative;
    font-weight: 700;
    padding: .5em 0em .5em 1.1em;
    margin: 1em 0 0.5em 0;
}
.c-vertical-heading::before {
    position: absolute;
    content: "";
    border-radius: 1em;
    left: 0%;
    top: 25%;
    bottom: 10%;
    width: .2em;
    height: 50%;
    background: var(--yellow01);
}
.c-lightbox-img {
    display: inline-block;
}
.c-circle-list {
    counter-reset: item;
}
.c-circle-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.7em;
    margin-bottom: 0.75em;
}
.c-circle-list li::before {
    content: counter(item);
    counter-increment: item;
    flex: 0 0 1.66em;
    height: 1.6em;
    line-height: 1.6em;
    text-align: center;
    font-size: 0.85em;
    color: var(--white-color);
    background: var(--yellow02);
    border-radius: 50%;
    margin-top: 0.5em;
}
.c-underline {
    text-decoration: underline;
}
sup {
    font-size: 0.7em;
    vertical-align: super;
    line-height: 0;
}