@charset "UTF-8";
/* ----------------------------------------------------

    このファイルには全ページ共通スタイルのみ記述します 

    例）
    header
    ハンバーガーメニュー
    フッター
    コンタクトセクション

------------------------------------------------------*/


/*--------------- 
    全体設定 
------------------*/


/* レスポンシブ表示用 */
@media (max-width: 959px) {
    .pc-only {
        display: none !important;
    }
}

.sp-only {
    display: none !important;
}

@media (max-width: 959px) {
    .sp-only {
        display: block !important;
    }
}

/*--------------- 
    header
------------------*/
/* ヘッダー内包要素 */
.l-header__inner.l-container,
.l-fixHeader__inner.l-container {
    padding-left: 0;
    width: 100%;
    max-width: none;
}

/* 追従ヘッダー時 */
.l-fixHeader__inner.l-container {
    background-color: #FFFFFF80;
}

/* ヘッダーロゴ */
#header .l-header__logo,
#fix_header .l-fixHeader__logo {
    padding: 0;
}

.l-header__logo .c-headLogo.-img,
.l-fixHeader__logo .c-headLogo.-img {
    margin-right: 0;
    max-width: none;
    width: 432px;
    height: auto;
    aspect-ratio: 432/78;
}

.l-header__logo img,
.l-fixHeader__logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ヘッダーナビテキスト */
.c-gnav>.menu-item>a .ttl {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 0.03em;
    color: #FFFFFF;
}

/* 追従ヘッダー時 */
.l-fixHeader__gnav .c-gnav>.menu-item>a .ttl {
    color: #14213D;
}

/* ヘッダーナビホバースタイル */
.c-gnav>.menu-item>a:after {
    bottom: 20px;
}

/* ドロップダウンメニューテキスト */
.c-gnav .sub-menu .ttl {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #14213D;
    padding-left: 1em;
}

/* ドロップダウンメニュースタイル */
.c-gnav .sub-menu li {
    position: relative;
    background: #FFFFFF;
    transition: 0.3s;
}

.c-gnav .sub-menu li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.5em;
    translate: 0 -50%;
    width: 8px;
    height: 1px;
    background-color: #14213D;
    z-index: 1;
}

.c-gnav .sub-menu a {
    padding: 8px 12px;
    transition: 0.3s;
}

/* ドロップダウンメニューホバー時 */
.c-gnav .sub-menu li:hover,
.c-gnav .sub-menu a:hover {
    background: #FAFAFA;
}


@media (max-width: 1120px) {
    .c-gnav>.menu-item>a .ttl {
        font-size: 14px;
    }

    .l-header__logo .c-headLogo.-img,
    .l-fixHeader__logo .c-headLogo.-img {
        width: 340px;
    }

    .c-gnav>.menu-item>a:after {
        bottom: 10px;
    }
}

@media (max-width:959px) {
    .l-header__inner.l-container {
        background-color: #14213D;
    }

    .c-headLogo .c-headLogo__link {
        padding: 0;
    }

    .l-header__customBtn {
        display: none;
    }

    .l-header__menuBtn {
        aspect-ratio: 1/1;
        width: 61.38px;
        height: 100%;
        background-color: #051F32;
    }

    .c-iconBtn {
        color: #fff;
    }
}

@media (max-width:420px) {
    .l-header__logo .c-headLogo.-img {
        width: 300px;
    }

    .l-header__menuBtn {
        width: 50px;
    }
}



/*-----------------------
    ハンバーガーメニュー
--------------------------*/

/* 上部タイトル削除 */
.c-widget__title.-spmenu {
    display: none;
}

/* 閉じるボタンサイズ */
.p-spMenu__closeBtn .c-iconBtn__icon {
    font-size: 30px;
}

/* 閉じるボタン位置 */
.-right .p-spMenu__closeBtn {
    width: 60px;
    height: 60px;
    /* right: 10px; */
    color: #fff;
    background-color: #051F32;
}

/* 開閉アイコン既存スタイル削除 */
.c-submenuToggleBtn:after {
    border: none;
}

/* 開閉クリックエリアを全体に */
.c-submenuToggleBtn {
    width: 100%;
    height: 100%;
}


/* 開閉アイコン */
.c-submenuToggleBtn:before {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    background: linear-gradient(-90deg, #D6C19A 0%, #8D6628 100%);

    /* 塗りつぶし三角形(▼)のSVGでマスク */
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='4,8 20,8 12,18'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='4,8 20,8 12,18'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
}

/* 開閉アイコン開いてるとき */
.c-submenuToggleBtn.is-opened:before {
    transform: translateY(-50%) rotate(180deg);
}

/* メニューテキストスタイル */
.c-spnav a {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #FFFFFF;
    border-color: transparent;
    padding: 16px 0;
}

/* サブメニューテキストスタイル */
.c-spnav .sub-menu a {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #FFFFFF;
    border-bottom: none;
    padding: 12px 20px;
    position: relative;
}

.c-spnav .sub-menu a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    width: 8px;
    height: 1px;
    background-color: #fff;
}

/* バナーリンク */
.sp-menu__banner-link {
    padding-bottom: 40px;
    border-bottom: 1px solid #FFFFFF4D;
}


/* 表示領域調整 */
.p-spMenu__inner::before {
    background-color: #14213D;
}

.p-spMenu__nav {
    padding-bottom: 20px;
}

.p-spMenu__body {
    background-color: #14213D;
}

.p-spMenu__bottom {
    margin-top: 0;
}

.sp-menu-icon.wp-block-group {
    padding-bottom: 40px;
}

/*-----------------------
    フッター
--------------------------*/

.l-footer__inner {
    display: none;
}

#footer {
    position: relative;
}

#footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #0B1320;
}

/* 背景画像 */
.footer__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.2;
}

/* ラッパー要素 */
.footer__wrapper {
    width: 100%;
    position: relative;
}

/* フッター上部 */
.footer__top {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 60px 20px;
    display: flex;
    justify-content: space-between;
}

/* フッター情報一覧 */
.footer__info {
    max-width: 274px;
}

/* フッターアイコン */
.footer__icon {
    display: block;
    margin-bottom: 32px;
}

.footer__icon img {
    display: block;
    width: 100%;
    object-fit: cover;
}

/* フッターアクセス情報 */
.footer__access {
    list-style: none;
    margin-bottom: 32px;
}

.footer__access-item {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #FFFFFFE5;
}

/* フッターLINEボタン */
.footer__line-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    width: fit-content;
    padding: 0 12px 12px;
    border-bottom: 1px solid #fff;
    transition: 0.3s;
}

.footer__line-btn:hover {
    opacity: 0.7;
}

.footer__btn-arrow {
    overflow: hidden;
    display: flex;
    align-items: center;
}

.footer__btn-arrow svg {
    display: block;
}

.footer__line-btn:hover .footer__btn-arrow svg {
    animation: arrowAnime-footer 0.4s;
}

@keyframes arrowAnime-footer {
    0% {
        translate: 0 0;
    }

    50% {
        translate: 100% 0;
    }

    50.1% {
        translate: -100% 0;
    }

    100% {
        translate: 0 0;
    }
}

.footer__btn-text {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 0.03em;
    color: #fff !important;
}

/* フッターナビ内包 */
.footer__container {
    width: 50%;
    max-width: 400px;
    display: flex;
    gap: 25%;
}

/* フッターナビリスト */
.footer__nav-list {
    width: max-content;
}

/* フッターナビテキスト */
.footer__nav-list-item {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #fff;
    margin-bottom: 16px;
}

.footer__nav-list-item>a,
.footer__page-link li>a {
    transition: 0.3s;
}

.footer__nav-list-item:hover>a,
.footer__page-link li:hover>a {
    opacity: 0.7;
}

.footer__nav-list--right .footer__nav-list-item {
    margin-bottom: 12px;
}

/* フッターナビサブリスト */
.footer__nav-list-item--sub {
    position: relative;
    padding-left: 1.2em;
}

.footer__nav-list-item--sub::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    width: 8px;
    height: 1px;
    background-color: #fff;
}

/* ボーダー要素 */
.footer__mid {
    width: 100%;
    height: 1px;
    background-color: #FFFFFF4D;
}

/* フッター下部 */
.footer__bottom {
    padding: 20px;
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* コピーライト */
#footer small {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: 0.03em;
    color: #fff;
}

/* プラポリ・サイトマップリンク */
.footer__page-link {
    list-style: none;
    display: flex;
    gap: 16px;
    position: relative;
}

.footer__page-link li,
.footer__page-link a {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: 0.03em;
    color: #fff;
}

@media (max-width:959px) {
    .footer__top {
        flex-direction: column;
        align-items: center;
    }

    .footer__info {
        order: 2;
    }

    .footer__container {
        order: 1;
        width: 100%;
        margin: 0 auto;
        justify-content: space-between;
        padding-bottom: 48px;
        margin-bottom: 48px;
        border-bottom: 1px solid #FFFFFF4D;
        gap: 10%;
    }

    .footer__nav-list {
        width: auto;
    }

    .footer__access {
        text-align: center;
    }

    .footer__line-btn {
        margin: 0 auto;
    }

    .footer__bottom {
        flex-direction: column;
        padding-bottom: 60px;
    }

    .footer__bottom small {
        order: 2;
        color: #FFFFFFE5;
        text-align: center;
    }

    .footer__page-link {
        order: 1;
        display: flex;
        flex-direction: column;
        text-align: center;
        margin-bottom: 16px;
    }

    .footer__page-link li,
    .footer__page-link a {
        color: #FFFFFFE5;
    }
}

/*----------------------- 
    コンタクトセクション
-------------------------*/
/* 最上位要素 */
.contact {
    width: 100%;
    position: relative;
}

.contact::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(83.76deg, #8D6628 17.22%, rgba(141, 102, 40, 0.5) 99.06%);
}

/* 背景画像 */
.contact__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.3;
    mix-blend-mode: multiply;
}


/* ラッパー要素 */
.contact__wrapper {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 72px 20px 82px;
    position: relative;
    z-index: 1;
}

/* 見出し */
.contact__head {
    font-family: "Zen Old Mincho";
    font-weight: 700;
    font-size: 32px;
    line-height: 1.6;
    letter-spacing: 0.03em;
    color: #FFFFFF;
    padding-bottom: 20px;
    margin-bottom: 28px;
    position: relative;
    text-align: center;
}

/* 見出し英語 */
.contact__head::after {
    content: "Contact";
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -70%;
    font-family: "Cormorant Garamond";
    font-weight: 700;
    font-size: 110px;
    line-height: 1;
    letter-spacing: 0.02em;
    color: #FFFFFF;
    opacity: 0.1;
}

/* 見出し下線 */
.contact__head::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    translate: -50%;
    width: 40px;
    height: 2px;
    background-color: #fff;
}

/* テキスト */
.contact__text {
    font-family: "Zen Old Mincho";
    font-weight: 500;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #FFFFFF;
    text-align: center;
    margin-bottom: 28px;
}

/* バナー内包 */
.contact__banner-outer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2%;
}

.contact__banner-link {
    transition: 0.3s;
}

.contact__banner-link:hover {
    opacity: 0.7;
}

@media (max-width:959px) {

    /* ラッパー要素 */
    .contact__wrapper {
        padding: 60px 20px 40px;
        max-width: 600px;
    }

    .contact__head {
        font-size: clamp(24px, 3.34vw, 32px);
    }

    .contact__head::after {
        font-size: clamp(80px, 3.13vw, 110px);
    }

    .contact__text {
        font-size: clamp(14px, 0.21vw, 16px);
    }

    .contact__text span {
        display: inline-block;
        margin-top: 16px;
    }

    .contact__banner-outer {
        flex-direction: column;
        gap: 16px;
        max-width: 450px;
        margin: 0 auto;
    }
}


/* ==========================================
    PC用 LINEボタン（960px以上）
========================================== */
.sticky-line-btn {
    display: none;
}

@media (min-width: 960px) {
    .sticky-line-btn {
        display: block;
        position: fixed;
        bottom: 0;
        right: 0;
        width: 259px;
        height: 80px;
        transition: 0.3s;
        z-index: 9999;
    }

    .sticky-line-btn img {
        width: 100%;
        height: 100%;
    }

    .sticky-line-btn:hover {
        opacity: 0.7;
    }
}


/* ==========================================
    PC用 右側追従サイドバー（960px以上）
========================================== */
.sticky-sidebar {
    display: none;
}

@media (min-width: 960px) {
    .sticky-sidebar {
        display: flex;
        flex-direction: column;
        position: fixed;
        right: 0;
        bottom: 50%;
        transform: translateY(50%);
        z-index: 9999;
        width: 70px;
        box-shadow: -2px 0 12px rgba(0, 0, 0, 0.12);
    }

    /* TELブロック */
    .sticky-sidebar__tel {
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        padding: 20px 0;
        background: #ffffff;
        transition: background 0.2s;
    }

    .sticky-sidebar__tel:hover {
        background: #f5f5f5;
    }

    /* アイコンと電話番号を縦書き風に横並びで回転 */
    .sticky-sidebar__tel-inner {
        display: flex;
        align-items: center;
        gap: 8px;
        writing-mode: vertical-rl;
        text-orientation: mixed;
    }

    .sticky-sidebar__tel-inner svg {
        flex-shrink: 0;
    }

    .sticky-sidebar__tel-number {
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 16px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #14213D;
        white-space: nowrap;
    }

    /* CONTACTブロック */
    .sticky-sidebar__contact {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        background: linear-gradient(180deg, #D6C19A 0%, #8D6628 100%);
        padding: 25px 0;
        text-decoration: none;
        transition: 0.2s;
        overflow: hidden;
    }

    /* ホバー時に暗くなるオーバーレイ */
    .sticky-sidebar__contact::before {
        content: '';
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.15);
        opacity: 0;
        transition: opacity 0.2s;
    }

    .sticky-sidebar__contact:hover::before {
        opacity: 1;
    }

    .sticky-sidebar__contact svg {
        display: block;
        position: relative;
        /* オーバーレイより前面に */
        z-index: 1;
    }

    /* PAGE TOPボタン */
    .sticky-sidebar__pagetop {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        background: #ffffff;
        border: none;
        padding: 16px 0;
        cursor: pointer;
        transition: background 0.2s;
    }

    .sticky-sidebar__pagetop:hover {
        background: #f5f5f5;
    }

    .sticky-sidebar__pagetop svg {
        display: block;
    }

    .sticky-sidebar__pagetop-label {
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 12px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #14213D;
        text-align: center;
    }

    /* 閉じるボタン */
    .sticky-sidebar__off {
        display: flex;
        align-items: center;
        justify-content: center;
        background: #ffffff;
        border-radius: 50%;
        width: 30px;
        height: 30px;
        padding: 4px;
        border: none;
        cursor: pointer;
        transition: background 0.2s;
        position: absolute;
        top: 0;
        right: 5px;
        translate: 0 -120%;
        box-shadow: -2px 0 12px rgba(0, 0, 0, 0.12);
    }

    .sticky-sidebar__off:hover {
        background: #f5f5f5;
    }

    .sticky-sidebar__off svg {
        display: block;
    }

    .sticky-sidebar__off-label {
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 12px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #14213D;
        text-align: center;
    }



}

/* ==========================================
    追従バナー(SP)
========================================== */
.sticky-banner {
    display: none;
    /* デスクトップでは非表示 */
}

@media (max-width: 959px) {
    .sticky-banner {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 9999;
        height: 64px;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.15);
    }

    /* TELボタン */
    .sticky-banner__tel {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        flex: 1;
        text-decoration: none;
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 12px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #14213D;
        background: #ffffff;
        transition: background 0.2s;
    }

    .sticky-banner__tel:active {
        background: #f0f0f0;
    }

    .sticky-banner__tel svg {
        display: block;
    }

    /* CONTACTボタン */
    .sticky-banner__contact {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        flex: 1;
        text-decoration: none;
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 12px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #FFFFFF;
        background: linear-gradient(180deg, #D6C19A 0%, #8D6628 100%);
        transition: background 0.2s;
    }

    .sticky-banner__contact:active {
        background: #8a6d38;
    }

    .sticky-banner__contact svg {
        display: block;
    }

    /* LINEお問い合わせボタン */
    .sticky-banner__line {
        flex: 2.5;
        color: #14213D;
        text-decoration: none;
        font-family: "Zen Old Mincho";
        font-weight: 500;
        font-size: 12px;
        line-height: 1.3;
        letter-spacing: 0.03em;
        color: #14213D;
        background: #ffffff;
        transition: background 0.2s;
        padding: 6px;
    }

    .sticky-banner__line-outer {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
        border: 1px solid;
        border-image-source: linear-gradient(180deg, #D6C19A 0%, #8D6628 100%);
        border-image-slice: 1;
        box-sizing: border-box;
    }

    .sticky-banner__line-text span {
        font-size: 14px;
    }

    .sticky-banner__line:active {
        background: #f9f5ef;
    }

    .sticky-banner__line-icon {
        width: 32px;
        height: 32px;
        border-radius: 8px;
        overflow: hidden;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sticky-banner__line-icon img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .sticky-banner__line-text {
        white-space: nowrap;
    }
}

/* -----------------------------
 * スマホメニューが開いている間は追従要素を隠す
-------------------------------*/
html[data-spmenu="opened"] .sticky-banner {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* -----------------------------
 * フッターに差し掛かった際、バナー非表示
-------------------------------*/
.sticky-line-btn.is-hidden,
.sticky-sidebar.is-hidden,
.sticky-banner.is-hidden {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}