@charset "UTF-8";

/*==============================================================================
1.共通事項
2.header
3.footer
4.タイトル
5.パンクズと下層
6.404ページ
==============================================================================*/

/*============================================================================================================================================================
==============================================================================================================================================================

	1.共通事項

==============================================================================================================================================================
============================================================================================================================================================*/
html {
    font-size: 10px;
    scroll-padding-top: 70px; /* ヘッダー高さ */
}
@media all and (min-width: 769px) {
    html {
        scroll-padding-top: 90px;
    }
}

body {
    font-size: var(--fontsize-base);
    font-family: var(--font-base);
    color: var(--color-font);
    letter-spacing: var(--letter-spacing);
    line-height: var(--lingh-height);
}
@media all and (min-width: 769px) {
    body {
        min-width: calc(var(--min-width) + 40px);
        font-size: 1.5rem;
    }
}

/*============ カラー ============*/
body{
    & .col-font{color: var(--color-font);}
    & .col-main{color: var(--color-main);}
    & .col-sub{color: var(--color-sub);}
    & .col-accent{color: var(--color-accent);}
    & .col-red{color: var(--color-red);}
    & .col-white{color: #fff;}
}

/*============ リンク ============*/
button,
a:not(.button) {
    font-family: var(--font-base);
    color: var(--color-main);
    transition: 500ms;

    &:hover {
        opacity: 0.6;
    }
}

/*============ フォント ============*/
[lang="en"] {
    font-family: var(--font-en);
}

/*============ selection ============*/
::selection {
    background: var(--color-sub);
    color: var(--color-font);
}

/*============ スクロールバー ============*/
*{
    scrollbar-color: var(--color-main) var(--color-font); /* [つまみの色] [背景の色] */
    scrollbar-width: thin;
    
    &::-webkit-scrollbar {
        width: 8px;  /* ★追加：縦スクロールバーの幅 */
        height: 8px; /* 横スクロールバーの高さ */
    }

    /* 背景色 */
    &::-webkit-scrollbar-track {
        background: var(--color-font);
        background: transparent; /* 背景自体は透明にしておく */
        box-shadow: inset 0 0 0 10px var(--color-font); /* 内側に色付きの影を敷き詰める */
    }

    /* つまみ */
    &::-webkit-scrollbar-thumb {background: var(--color-main);}
}


/*============ indent ============*/
.indent{
    margin-left: 1em;
    text-indent: -1em;
}

/*============ disc_list ============*/
ul.disc-list li {
    position: relative;
    padding-left: 1em;

    &::before {
        content: "";
        width: 0.3em;
        height: 0.3em;
        position: absolute;
        left: 0;
        top: 0.8em;
        background-color: var(--color-main);
        border-radius: 100%;
    }

    & + li{
        margin-top: 10px;
    }
}

/*================================    fukidashi   ================================*/
.fukidashi{
    padding: 0 15px;
    display: inline-block;
    position: relative;
    color: var(--color-main);

    &::before,&::after{
        content: "";
        position: absolute;
        bottom: 0;
        width: 1px;
        height: 22px;
        background-color: var(--color-main);
        transform: rotate(-25deg);
    }
    &::before{left: 0;}
    &::after{
        right: 0;
        transform: scale(-1,1) rotate(-25deg);
    }
}

/*============ ボタン ============*/
.button {
    width: 320px;
    max-width: 100%;
    padding: 15px 20px 17px 10px;
    display: inline-block;
    text-align: center;
    font-size: 1.6rem;
    font-weight: var(--weight-bold);
    background-color: var(--color-main);
    line-height: 1.6;
    border-radius: 30px;
    position: relative;
    transition: 500ms;

    &:hover {opacity: 0.6;}

    &::after {
        content: "";
        width: 10px;
        height: 12px;
        position: absolute;
        top: 50%;
        right: 10px;
        background-color: #fff;
        transform: translateY(-50%);
        clip-path: polygon(0 0, 0% 100%, 100% 50%);
        transition: 500ms;
    }

    /* ========== 矢印 左向き ========== */
    &.left {
        &::after {
            left: 20px;
            right: unset;
            clip-path: polygon(100% 0, 0 50%, 100% 100%);
        }
    }

    /* ========== 矢印 カラー 黒 ========== */
    &.arrow-black {
        &::after {background-color: var(--color-font);}
    }
    /* ========== 矢印 カラー main ========== */
    &.arrow-main {
        &::after {background-color: var(--color-main);}
    }
    /* ========== 矢印 カラー sub ========== */
    &.arrow-sub {
        &::after {background-color: var(--color-sub);}
    }
    /* ========== 矢印 カラー accent ========== */
    &.arrow-accent {
        &::after {background-color: var(--color-accent);}
    }

    /* ========== ボタンカラー 白 ========== */
    &.white {background-color: #fff;}

    /* ========== ボタンカラー 黒 ========== */
    &.black {background-color: #000;}

    /* ========== ボタンカラー sub ========== */
    &.sub {background-color: var(--color-sub);}

    /* ========== ボタンカラー accent ========== */
    &.accent {background-color: var(--color-accent);}

    /* ========== ボタン 別窓 ========== */
    &.window {
        &::after {
            right: 20px !important;
            width: 10px;
            height: 10px;
            background-color: transparent;
            background-image: url(../1_img/base/icon-window.svg);
            clip-path: unset;
        }

        /* ========== ボタン 別窓 白 ========== */
        &.window-white::after {
            background-image: url(../1_img/base/icon-window-white.svg);
        }
    }
}


@media all and (min-width: 769px) {
    &.button {
        padding: 20px 0;
        line-height: 1;
    }
}

/*================================    clearfix   ================================*/
.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

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

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

/*================================    inner   ================================*/
.inner {
    margin: 0 auto;
    padding: 0 20px;
}
@media all and (min-width: 769px) {
    .inner {
        padding: 0;
        width: var(--min-width);
    }
}



/*==============================================================================
	カルーセル
==============================================================================*/
.carousel-wrap{
    overflow: hidden;

    & .carousel{
        width: max-content;
        display: flex;
        height: 100%;
        list-style: none;
        animation: loop-slide 30s infinite linear 0s both; 
        gap: 10px;
    }

    &.reverse .carousel{
        animation: loop-slide_rev 30s infinite linear 0s both;
    }

}
/*================================   カルーセル PC   ================================*/
@media all and (min-width: 769px){
    .carousel-wrap{
        & .carousel{animation: loop-slide 100s infinite linear 0s both;}
        &.reverse .carousel{animation: loop-slide_rev 100s infinite linear 0s both;}
    }
}
@keyframes loop-slide {
    from {transform: translateX(0);}
    to {transform: translateX(-50%);}
}
@keyframes loop-slide_rev {
    from {transform: translateX(-50%);}
    to {transform: translateX(0%);}
}
/*
animation-name: loop-slide;アニメーション名
animation-duration: 20s;開始から終了までの所要時間
animation-iteration-count: infinite;アニメーションのループ回数
animation-timing-function: linear;動きの加減速
animation-delay: 1s; アニメーションが開始するまでの遅延時間
animation-fill-mode: both;アニメーション開始前・終了後の挙動
*/

/* hoverで止めたいとき
.slide-paused:hover .carousel {
animation-play-state: paused!important;
}
*/


/*==============================================================================
	swiper
==============================================================================*/
.swiper-wrap{
    height: 100%;
    position: relative;
    padding-bottom: 30px;

    /* ページネーション */
    & .swiper-pagination.swiper-pagination-bullets.swiper-pagination-horizontal{
        display: flex;
        gap: 10px;
        justify-content: center;
        bottom: 0px;

        & .swiper-pagination-bullet{
            margin: 0;
            background-color: #9c9a99;
            opacity: 1;
        }
        & .swiper-pagination-bullet-active{
            background-color: var(--color-main);
        }
    }
    /* ページ送り */
    & .swiper-button-next, & .swiper-button-prev{
        width: 40px;
        height: auto;
        aspect-ratio: 1 / 1;
        border-radius: 100%;
        background-color: var(--color-main);
        transition: 500ms;

        &:hover{
            background-color: var(--color-sub);

            &::after{
                border-color: var(--color-font);
            }
        }

        &::after{
            content: "";
            width: 35%;
            aspect-ratio: 1 / 1;
            position: absolute;
            top: 50%;
            left: 50%;
            border-top: 2px solid #fff;
            border-left: 2px solid #fff;
            transition: 500ms;
        }
    }
    & .swiper-button-next{
        right: 40px;
        transform: translateX(10px);

        &::after{
            transform: translateX(calc(-50% - 3px)) translateY(-50%) rotate(-45deg) scale(-1,-1);
        }
    }
    & .swiper-button-prev{
        left: 40px;
        transform: translateX(-10px);

        &::after{
            transform: translateX(calc(-50% + 3px)) translateY(-50%) rotate(-45deg);
        }
    }
}
/* pc時のみスライダー解除する場合 */
@media all and (min-width: 769px) {
    .swiper-wrap.swiper-only_sp{

        & .swiper{
            overflow: visible;
        }

        & .swiper-wrapper {
            display: block;
            transform: none;
        }
        & .swiper-slide {
            width: auto;
            margin-right: 0;
        }

        & .swiper-pagination,
        & .swiper-button-prev,
        & .swiper-button-next{
            display: none;
        }

    }
}


/*==============================================================================
	fancybox
==============================================================================*/
.fancybox__dialog{
    & .fancybox__container{
        --f-arrow-width: 30px;
        --f-arrow-height: 30px;
        --f-arrow-svg-width: 15px;
        --f-arrow-svg-height: 15px;
        --f-arrow-pos: 12px;
    }

    /* 背景色 */
    & .fancybox__backdrop {
        background-color: rgb(var(--color-main_rgb) / 0.8);
    }
    /* モーダルのコンテンツ表示 */
    & .f-html {
        padding: 30px;
        position: relative;
        border-radius: 10px;
        max-width: calc(100% - 20px);

        /* 閉じるボタン */
        & .f-button[data-fancybox-close] {
            margin: 0;
            padding: 0;
            width: 26px;
            height: auto;
            aspect-ratio: 1 / 1;
            position: absolute;
            top: 10px;
            right: 10px;
            background-color: var(--color-main);
            border-radius: 50%;
            
            &::before,&::after {
                content: "";
                width: 60%;
                height: 2px;
                position: absolute;
                top: 50%;
                left: 50%;
                background: #fff;
            }
            &::before {
                transform: translate(-50%, -50%) rotate(45deg);
            }
            &::after {
                transform: translate(-50%, -50%) rotate(-45deg);
            }

            & svg{display: none;}
        }
    }
}
@media all and (min-width: 769px) {
    .fancybox__dialog{
        & .fancybox__container{
            --f-arrow-width: 50px;
            --f-arrow-height: 50px;
            --f-arrow-svg-width: 24px;
            --f-arrow-svg-height: 24px;
            --f-arrow-pos: 30px;
        }
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	2.header

==============================================================================================================================================================
============================================================================================================================================================*/
@media (min-width: 769px) {
    header {
        width: 100%;
        position: fixed;
        top: 0;
        left: 0;
        transform: translateY(-100%);
        transition: 800ms;
        z-index: 9999;

        & .header-inner {
            margin: 0 auto;
            padding: 0 40px;
            height: 80px;
            max-width: var(--min-width);
            position: relative;
            display: flex;
            justify-content: space-between;
            align-items: stretch;
            border-radius: 0 0 10px 10px;
            background-color: #fff;
        }

        &.on{
            transform: translateY(0);
        }
    }

    /* ========== ロゴの周り logo-wrap ========== */
    header .logo-wrap {
        display: flex;
        align-items: center;

        & .logo {
            aspect-ratio: 520 / 65;
            width: 300px;
            transition: 500ms;

            & img{
                width: 100%;
            }
        }
    }

    /* ========== navの設定 ========== */
    header .nav-wrap {
        display: flex;
        align-items: center;

        & nav {height: 100%;}
    }

    /* ========== ベースメニュー ========== */
    header .nav-wrap nav ul.nav-menu-base {
        height: 100%;
        display: flex;
        position: relative;
        gap: 0 40px;

        & >li {
            height: 100%;
            transition: 500ms;
            display: flex;
            flex-direction: column;
            justify-content: center;

            &.menu-shop > a {background-image: url(../1_img/base/menu-shop_pc.svg);}
            &.menu-item > a {background-image: url(../1_img/base/menu-item_pc.svg);}
            &.menu-business > a {background-image: url(../1_img/base/menu-business_pc.svg);}
            &.menu-contact > button {background-image: url(../1_img/base/menu-contact_pc.svg);}

            & > a,
            & > button {
                padding: 35px 0 0 0;
                color: var(--color-main);
                background-position: top center;
                background-repeat: no-repeat;
                background-size: 30px auto;

                & span {
                    display: block;
                    text-align: center;
                    
                    &[lang="ja"] {font-weight: var(--weight-bold);}
                }
            }

            /* === homeはsp用なので消しておく === */
            &.nav-menu-base-home {
                display: none;
            }
        }

        &>li:last-child {
            border-radius: 0 0 20px 0;
        }
    }

    /* ========== サブメニュー ========== */
    header nav ul.nav-menu-sub {
        width: calc(100% - 20px);
        position: absolute;
        top: calc(100%);
        left: 0;
        background-color: var(--color-sub);
        border-radius: 0 0 10px 10px;
        opacity: 0;
        transition: 500ms;
        pointer-events: none;

        & li {
            & a {
                padding: 10px;
                display: block;
                color: var(--color-font);
                font-size: 1.2rem;
                line-height: 1.6;
            }

            &+li {
                border-top: 1px solid var(--color-font);
            }
        }
    }

    /* ベースでhover時の動き */
    header nav ul.nav-menu-base li:hover ul.nav-menu-sub {
        opacity: 1;
        pointer-events: all;
    }

    /*======== スマホ用の開閉メニュー =========*/
    .sp-menu-wrap {display: none;}
    
    .business-note{display: none;}
}

@media (max-width: 900px) and (min-width: 768px) {

    header .logo-wrap .logo {width: 220px;}
    header .header-inner {padding: 0 30px;}
    header .nav-wrap nav ul.nav-menu-base {
        gap: 0 30px;

        & > li {
            font-size: 1.2rem;
        }
    }
}

/*==============================================================================

	header スマホ

==============================================================================*/
@media all and (max-width: 768px) {
    header {
        width: 100%;
        height: 50px;
        position: fixed;
        top: 0;
        left: 0;
        transition: 800ms;
        z-index: 9999;

        & .header-inner{height: 100%;}
    }

    /* ========== ロゴの周り logo-wrap ========== */
    header .logo-wrap {
        margin: auto;
        padding: 5px 10px;
        width: calc(100% - 80px);
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #fff;
        border-radius: 0 0 10px 10px;
        box-shadow: 0 4px 4px rgba(135, 135, 135, 0.1);

        & .logo {
            width: 200px;
            transition: 500ms;

            & a{
                display: block;
                line-height: 1;
            }

            & img{width: 100%;}
        }
    }


    /* ========== navの設定 ========== */
    header .nav-wrap {
        width: 100%;
        height: 52px;
        position: fixed;
        bottom: 0;
        left: 0;
        transition: 800ms;
        z-index: 9999;
        background-color: var(--color-main);
        filter: drop-shadow(0px -5px 5px rgba(135, 135, 135, 0.1));
        padding: 0 10px;

        &::before {
            content: "";
            width: 85px;
            height: 21px;
            position: absolute;
            left: 50%;
            top: -14px;
            background: url(../1_img/base/deco-menu.svg);
            transform: translateX(-50%);
            filter: drop-shadow(0px -3px 2px rgba(135, 135, 135, 0.1));
        }
    }

    /* ========== ベースメニュー ========== */
    header nav ul.nav-menu-base {
        display: flex;
        justify-content: space-around;

        /* crttentなしの設定 */
        & >li {
            width: calc(100% / 5);
            position: relative;

            & > span:not(.menu-animation),& > a,& > button {
                padding-top: 30px;
                padding-bottom: 5px;
                width: 100%;
                display: block;
                position: relative;
                font-size: 0.9rem;
                font-weight: var(--weight-bold);
                letter-spacing: 0.15em;
                text-align: center;
                background-size: 20px auto;
                background-position: top 7px center;
                background-repeat: no-repeat;
                color: var(--color-font);

                & span {
                    display: block;
                    color: #fff;
                }
            }

            &.menu-shop > a {
                background-image: url(../1_img/base/menu-shop.svg);
            }

            &.menu-item > a {
                background-image: url(../1_img/base/menu-item.svg);
            }

            &.menu-business > a {
                background-image: url(../1_img/base/menu-business.svg);
            }

            &.menu-contact > button {
                background-image: url(../1_img/base/menu-contact.svg);
            }
        }

        /* homeのアイコン */
        &>li.nav-menu-base-home>button::before,
        &>li.nav-menu-base-home>a::before {
            content: "";
            position: absolute;
            width: 29px;
            height: 26px;
            top: -1px;
            left: 50%;
            transform: translateX(-50%);
            background-image: url(../1_img/base/menu-home.svg);
            background-size: 100% auto;
        }
    }

    /* ========== メニューのアニメーション ========== */
    & .menu-animation {
        position: absolute;
        left: 50%;
        top: 10px;
        width: 20px;
        height: 2px;
        transform: translateX(-50%);

        & >span {
            position: absolute;
            width: 100%;
            height: 100%;
            background-color: var(--color-font);
            top: 0px;
            transition: 500ms;
            display: block;
        }

        &::before,
        &::after {
            content: "";
            position: absolute;
            width: 100%;
            height: 100%;
            left: 50%;
            transform: translateX(-50%);
            background-color: var(--color-font);
            transition: 500ms;
        }

        &::before {top: -10px;}
        &::after {bottom: -10px;}
    }

    .menu_open .nav-wrap-sp .menu span>span {color: var(--color-accent);}
    .menu_open .menu-animation {

        & >span {opacity: 0;}


        &::before,
        &::after {
            width: 120%;
            background-color: var(--color-red);
        }

        &::before {
            top: 0px;
            transform: translateX(-50%) rotate(135deg);
        }

        &::after {
            bottom: 0px;
            transform: translateX(-50%) rotate(-135deg);
        }
    }
    .menu_open header{
        box-shadow:  4px 4px rgba(135, 135, 135, 0);
        background-color: transparent;

        & .logo-wrap{
            opacity: 0;
            pointer-events: none;
            transition: 500ms;
        }
    }
    /* ========== メニューのアニメーション end ========== */

    /*======== スマホ用の開閉メニュー =========*/
    .sp-menu-wrap {
        padding: 20px;
        width: 100%;
        height: calc(100svh - 53px);
        display: flex;
        flex-direction: column;
        gap: 20px;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 9998;
        opacity: 0;
        background-color: #eee;
        transition: opacity 500ms;
        pointer-events: none;

        &.open {
            opacity: 1;
            pointer-events: all;
        }

        /* ===== ロゴ ===== */
        & .logo{
            width: 100%;
            text-align: center;

            & img{
                width: 300px;
                max-width: 100%;
            }
        }
        /* ===== メインメニュー ===== */
        & .sp-menu{
            height: 100%;
            overflow-y: auto;
            border-radius: 10px;

            /* ===== ベースメニュー ===== */
            & .nav-menu-base{
                background-color: #fff;
                border-radius: 10px;

                & > li{
                    & > a{
                        padding: 10px;
                        display: block;
                        font-weight: var(--weight-bold);
                    }
                    /* ===== カレントの設定 ===== */
                    &.current{
                        background-color: #d6eff3;

                        /* サブメニュー */
                        & .nav-menu-sub{
                            & > li{
                                border-top-color: #fff;

                                &:first-child{border-top: none;}
                            }
                        }
                    }

                    &.current > a{
                        background-color: var(--color-main);
                        color: #fff;
                    }
                    /* ===== カレントの設定 end ===== */

                    & + li{
                        border-top: 1px solid #eee;
                    }
                }
            }
            /* ===== ベースメニュー end ===== */

            /* ===== サブメニュー ===== */
            & .nav-menu-sub{
                padding-left: 30px;

                & > li{
                    border-top: 1px dashed #eee;

                    & > a{
                        padding: 10px;
                        display: block;
                        color: var(--color-font);
                    }
                }
            }
            /* ===== サブメニュー end ===== */
        }
    }
    /*======== スマホ用の開閉メニュー end =========*/

    /* サブメニュー */
    header nav ul.nav-menu-sub {
        display: none;
    }

    /* 事業者の方へ */
    .business-note{
        padding: 10px;
        width: 200px;
        position: absolute;
        bottom: calc(100% + 20px);
        left: 50%;
        transform: translateX(-50%) translateY(10px);
        display: inline-block;
        background-color: var(--color-accent);
        border-radius: 10px;
        text-align: center;
        color: #fff;
        font-weight: var(--weight-bold);
        font-size: 1.2rem;
        letter-spacing: 0.1em;
        filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.1));
        opacity: 0;
        transition: 500ms ease;
        pointer-events: none;

        &::after{
            content: "";
            width: 20px;
            height: 10px;
            position: absolute;
            top: calc(100% - 1px);
            left: 50%;
            transform: translateX(-50%);
            background-color: inherit;
            clip-path: polygon(0 0, 50% 100%, 100% 0);
        }

        &.is-show {
            opacity: 1;
            pointer-events: all;
            transform: translateX(-50%) translateY(0px);
        }
        &.is-hide {
            opacity: 0;
            pointer-events: none;
            transform: translateX(-50%) translateY(10px);
        }

        & .business-note_close{
            width: 18px;
            aspect-ratio: 1 / 1;
            position: absolute;
            top: -7px;
            right: -7px;
            background-color: #fff;
            border-radius: 50%;

            &::before,&::after{
                content: "";
                width: 60%;
                height: 1px;
                position: absolute;
                background-color: var(--color-font);
                top: 50%;
                left: 50%;
            }
            &::before{
                transform: translate(-50%,-50%) rotate(45deg);
            }
            &::after{
                transform: translate(-50%,-50%) rotate(-45deg);
            }
        }
    }
}

/*============================================================================================================================================================
==============================================================================================================================================================

	3.footer

==============================================================================================================================================================
============================================================================================================================================================*/

/* TOPへ戻るのボタン */
.fix-btn {
    padding-top: 5px;
    position: fixed;
    right: 20px;
    bottom: 60px;
    color: var(--color-font);
    transition: 800ms;
    z-index: 999;

    &::before,&::after{
        content: "";
        position: absolute;
        left: 50%;
        top: 0;
        width: 10px;
        aspect-ratio: 1 / 1;
        border-top: 2px solid #000;
        border-right: 2px solid #000;
        transform: translateX(-50%) rotate(-45deg);
        animation: arrow-to-top 2.5s ease-out infinite;
        opacity: 0;
    }
    &::after{
        animation: arrow-to-top 2.5s ease-out 1.25s infinite;
    }
}

@keyframes arrow-to-top {
    0% {
        transform: translateX(-50%) translateY(0) rotate(-45deg);
    }
    25% {
        opacity: 1;
        transform: translateX(-50%) translateY(0) rotate(-45deg);
    }
    33% {
        opacity: 1;
        transform: translateX(-50%) translateY(-4px) rotate(-45deg);
    }
    67% {
        opacity: 0.5;
        transform: translateX(-50%) translateY(-7px) rotate(-45deg);
    }
    100% {
        opacity: 0;
        transform: translateX(-50%) translateY(-10px) scale3d(0.5, 0.5, 0.5) rotate(-45deg);
    }
}

footer {
    padding: 40px 0 calc(40px + 53px);
    position: relative;

    /*================================    footer-content   ================================*/
    & .footer-content {

        & h2{
            text-align: center;

            & img{width: 280px;}
        }

        & .content-contact{
            margin-top: 35px;
            padding: 0 20px;
            text-align: center;

            & .fukidashi-wrap{
                font-size: 1.6rem;
                font-weight: var(--weight-bold);
            }
            
            & .tel{
                margin-top: 30px;
                font-size: 1.8rem;
                font-weight: var(--weight-bold);
            }

            & ul{
                margin-top: 10px;
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 10px;

                & .button{width: 280px;}

                & .line{background-color: #06c755;}
            }
        }

    }
    /*================================    footer-content end   ================================*/


    /*================================   copyright   ================================*/
    & #copyright {
        margin-top: 30px;
        padding-top: 30px;
        border-top: 1px solid #fff;
        text-align: center;
    }

}



/*==============================================================================

	footer PC

==============================================================================*/
@media all and (min-width: 769px) {

    /* TOPへ戻るのボタン */
    .fix-btn {
        right: 20px;
        bottom: 20px;
    }

    footer {
        padding: 80px 0 90px;

        /*================================    footer-content   ================================*/
        & .footer-content {
            & h2{
                & img{width: 438px;}
            }
            & .content-contact{
                margin-top: 40px;

                & .fukidashi-wrap{
                    font-size: 2rem;

                    & .fukidashi{padding: 0 25px;}
                }

                & .tel{font-size: 2rem;}

                & ul{
                    margin-top: 20px;
                    gap: 20px;
                }
            }
        }
        /*================================    footer-content end   ================================*/


        /*================================   copyright   ================================*/
        & #copyright {margin-top: 40px;}
    }

}


/*============================================================================================================================================================
==============================================================================================================================================================

	4.タイトル

==============================================================================================================================================================
============================================================================================================================================================*/

/*================================   下層 title   ================================*/
#title {
    margin-top: 50px;
    padding: 30px 0;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    text-align: center;
    background-color: #fff;
    background-size: cover;
    background-position: center;

    & span {
        display: block;
        position: relative;
        z-index: 2;
        color: var(--color-main);
        font-weight: var(--weight-bold);

        &[lang="ja"] {
            margin-top: 0px;
            font-size: 1.2rem;
        }

        &[lang="en"] {
            font-size: 3rem;
            letter-spacing: 0.2em;
        }
    }

    &::after{
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        background-color: rgb(255 255 255 / 0.7 );
    }
}

/*================================   title-lv2   ================================*/
.title-lv2 {
    margin-bottom: 30px;
    text-align: center;
    font-weight: var(--weight-bold);
    font-size: 2.5rem;
    letter-spacing: 0.2em;
    color: var(--color-main);
}

/*================================   title-lv3   ================================*/
.title-lv3 {
    margin-bottom: 30px;
    padding-top: 35px;
    position: relative;
    background: url(../1_img/base/deco-h.svg) no-repeat center top / 30px auto;
    text-align: center;
    font-weight: var(--weight-bold);
    font-size: 2rem;
    color: var(--color-main);

    & span{
        padding-bottom: 8px;
        display: inline;
        background: url(../1_img/base/deco-border.svg) repeat-x bottom left / 15px auto;
    }
}

/*================================   title-lv4   ================================*/
.title-lv4 {
    margin-bottom: 30px;
    font-size: 1.8rem;
    font-weight: var(--weight-bold);
    text-align: center;
}

/*================================   title-lv5   ================================*/
.title-lv5 {
    margin-bottom: 30px;
    text-align: center;

    & span{
        padding: 10px 20px;
        min-width: 180px;
        display: inline-block;
        background-color: var(--color-accent);
    }
}

/*==============================================================================

	タイトル PC

==============================================================================*/
@media all and (min-width: 769px) {

    /*================================   title   ================================*/
    #title {
        padding: 150px 0 80px;

        & span {
            &[lang="ja"] {
                font-size: 1.8rem;
            }

            &[lang="en"] {
                font-size: 4.3rem;
            }
        }
    }

    /*================================   下層 title-lv2   ================================*/
    .title-lv2 {
        margin-bottom: 50px;
        font-size: 3.5rem;
    }

    /*================================   title-lv3   ================================*/
    .title-lv3 {
        margin-bottom: 50px;
        padding-top: 45px;
        background-size: 44px 30px;
        font-size: 3rem;

        & span{
            padding-bottom: 10px;
            background-size: 20px auto;
        }
    }
}

/*============================================================================================================================================================
==============================================================================================================================================================

	5.パンクズと下層

==============================================================================================================================================================
============================================================================================================================================================*/
#pankuzu {
    margin-top: 10px;

    & ul {
        margin: auto;
        width: var(--min-width-s);
        display: flex;
        list-style: none;
        font-size: 1rem;
        position: relative;
        z-index: 2;
        overflow-x: auto;
        white-space: nowrap;

        & li {
            margin: 0;
            flex-shrink: 0;
            font-weight: 400;

            &:not(:first-child) {
                margin-left: 13px;
                padding-left: 22px;
                position: relative;

                &::before {
                    content: ">";
                    position: absolute;
                    font-size: 1.3rem;
                    top: 50%;
                    transform: translateY(-50%);
                    left: 0px;
                    line-height: 0;
                }
            }

            &:last-child {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                max-width: 15em;
            }
        }
    }
}
/*================================   下層 content   ================================*/
.underlayer .content {
    padding: 25px 0;

    & >section+section {
        margin-top: 50px;
    }
}

/*==============================================================================

	パンクズと下層の設定 PC

==============================================================================*/
@media all and (min-width: 769px) {

    /*================================   下層 content   ================================*/
    .underlayer .content {
        padding: 50px 0;

        & >section+section {
            margin-top: 100px;
        }
    }
}


/*============================================================================================================================================================
==============================================================================================================================================================

	6.404ページ

==============================================================================================================================================================
============================================================================================================================================================*/
#nopage {
    padding: 100px 20px;
    font-size: 1.8rem;
    text-align: center;
}

#nopage .to-top {
    margin-top: 30px;
}

/*==============================================================================

	404ページ PC

==============================================================================*/
@media all and (min-width: 769px) {
    #nopage {
        margin: 0 auto;
        padding: 200px 0px;
        width: 980px;
        font-size: 1.8rem;
    }

    #nopage .to-top {
        margin-top: 50px;
    }
}

/*==============================================================================
	モーダルウィンドウ
==============================================================================*/
.remodal {
    background-color: #21445b;
    border-radius: 20px;
    color: #fff;
}

.remodal-close {
    width: 30px;
    height: 30px;
    background: url(../1_img/base/close.svg);
    top: 20px;
    left: unset;
    right: 20px;
}

.remodal-close::before {
    content: none;
}

#nopage .btn_wrap {
    margin-top: 50px;
}



/*==============================================================================
	ページリンクメニュー
==============================================================================*/
.fix-menu{
    position: fixed;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    z-index: 9999;
    display: none;

    & li{
        padding-right: 10px;
        position: relative;

        &::before,&::after{
            content: "";
            width: 10px;
            aspect-ratio: 1 / 1;
            position: absolute;
            clip-path: polygon(0 0, 0% 100%, 100% 50%);
            top: 50%;
            transform: translateY(-50%);
        }

        &::before{
            right: 0;
            background-color: var(--color-accent);
        }
        &::after{
            right: 3px;
            background-color: #fff;
        }

        & a{
            padding: 5px 10px;
            display: block;
            border: 2px solid var(--color-accent);
            transform: scale(0.9);
            transform-origin: right center;
            transition: 500ms;
            color: var(--color-accent);
            border-radius: 5px;
            background-color: #fff;
        }

        &.current{
            &::before{
                background-color: var(--color-main);
            }

            & a{
                border-color: var(--color-main);
                color: var(--color-main);
                transform: scale(1);
                font-weight: var(--weight-bold);
            }
        }
    }
}
@media all and (min-width: 769px) {
    .fix-menu{
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
}