/*
Theme Name: CUBIC
Description: CUBIC Template
Author: 管理人
*/
@font-face {
    font-family: '851MkPOP_101'; /* 任意のフォント名 */
    src: url('fonts/851MkPOP_101.woff2') format('woff2'), /* WOFF2形式 (推奨) */
        url('fonts/851MkPOP_101.woff') format('woff');  /* WOFF形式 */
    font-weight: normal;
    font-style: normal;
    font-display: swap; /* 読み込み中の表示を改善 */
}


body{

    font-size:15px;
    font-family: noto-sans-cjk-jp, sans-serif;
    font-weight: 500;
    font-style: normal;
    line-height: 1.8em;
}
main{
    margin-top: 30px;
}
.in{
    margin: auto;
}
ul,li{
    list-style: none;
}
a{
    display: inline-block;
    transition: 0.5s;
}
a:hover{
    opacity: 0.7;
}
img{
    display: inline-block;
    clear: both;
    max-width: 100%
}
.tegaki{
    font-family: '851MkPOP_101', sans-serif;
}
.tate{
    writing-mode: vertical-rl;
}
/*カスタムプロパティ*/
:root{
    --blcolor : #0000ff;
    --blblack_color : #015891;
}
/*------------------*/
/*ナビメニュー*/
/*------------------*/
.menu-mane_menu-container ul{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
}
.menu-mane_menu-container ul a{
    padding: 0 1.5em;
}
.menu-mane_menu-container ul li:nth-last-child(1) a{
    font-size: 13px;
    background-color: #000;
    color: #fff;
    border-radius: 5px;
    padding: 0.2em 1.5em;
}

/*------------------*/
/*ヘッダー*/
/*------------------*/
.hed_backimg{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
}
header{
    margin: 35px auto 0;
    position: sticky;
    z-index: 10;
    
    animation: adjust-info linear both;
}
@keyframes adjust-info {
    to {
        background-color: rgb(255 255 255 / 70%);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }
}
header{
    animation-timeline: scroll();
    animation-range: 0 150px;
}
#header{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
}
/*------------------*/
/*フッター*/
/*------------------*/
footer{
    text-align: center;
    padding: 50px 0;
}
.foot_logo{
    width: 50%;
    max-width: 508px;
    margin: auto;
}
.foot_nav{
    margin: 30px 0;
}
.foot_address{
    font-size: 14px;
}
footer .cl{
    margin-top: 30px;
    font-size: 12px;
}
/*------------------*/
/*リンクボタン*/
/*------------------*/
.content_link{
    margin-top: 3em;
    text-align: center;
}
.content_link :is(a,span){
    display: inline-block;
    color: var(--blcolor);
    border-bottom: 1px solid currentColor;
    text-decoration: none !important;
}
.content_link i{
    margin-left: 1em;
}

/*------------------*/
/*ホーム/
/*------------------*/

.home_content{
    padding: 50px 0;
    position: relative;
}
.bak_gradation{
    background: #CCFFFF;
    background: linear-gradient(24deg,rgba(204, 255, 255, 1) 0%, rgba(255, 255, 204, 1) 100%);
    
    --mask-top: url(./images/nami_02.svg);
    --mask-bottom: url(./images/nami_01.svg);
    mask-image: var(--mask-top), linear-gradient(24deg, rgba(204, 255, 255, 1) 0%, rgba(255, 255, 204, 1) 100%), var(--mask-bottom);
    mask-position: top, center, bottom;
    mask-size: 100% 29px, 100% calc(100% - 29px), 100% 29px;
    mask-repeat: no-repeat;
    
}
.content_title{
    text-align: center;
    font-weight: 600;
    font-size: 42px;
    line-height: 1.2em;
    margin-bottom: 1em;
}
.content_title span{
    display: block;
    font-size: 0.5em;
    color: var(--blcolor);
    line-height: 1.5em;
    letter-spacing: 0.1em;
    margin-top: 0.3em;
}
.home_contents{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.home_contenttexth{
    font-size: 26px;
    text-align: center;
    background-color: var(--blcolor);
    color: #fff;
    border-radius: 0.5em;
    padding: 0.2em;
    position: relative;
    margin-bottom: 2.5em;
    line-height: 1.5;
}
.home_contenttexth::before{
    content: "";
    display: block;
    position: absolute;
    width: 0;
    height: 0;
    border-left: 0.8em solid transparent;
    border-right: 0.8em solid transparent;
    border-top: 0.8em solid var(--blcolor);
    margin: auto;
    left: 0;
    right: 0;
    bottom: -0.5em;
    z-index: -1;
}
.home_contenttext{
    font-size: 18px;
    line-height: 1.5;
}
.home_content_message{
    letter-spacing: 0.1em;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    -webkit-flex-direction: column;
    flex-direction: column;
    font-size: 38px;
    line-height: 1.5;
}
.home_content_message p{
    position: relative;
}
.home_content_message p::before{
    content: "";
    display: block;
    position: absolute;
    width: 0.5em;
    height: 100%;
    background-color: #ffff00;
    right: 0;
    top: 0;
    z-index: -1;
}



/*メインビジュアル*/
.mv {
    width: 90%;
    margin: auto;
}
.mv .splide .splide__track{
    border-radius: 20px;
    border: 5px solid #fff;
    overflow: hidden;
}
.mv .mvimg > div{
    padding-top: 37%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.mv .splide__pagination{
    gap: 0.5em;
}
.mv .splide__pagination button{
    width: 0.8em;
    height: 0.8em;
    border-radius: 50%;
    background-color: #808080;
}
.mv .splide__pagination button.is-active{
    background-color:var(--blcolor);
}
/*ホーム協力店紹介*/
.home_02 .in{
    position: relative;
}
#home_map{
    height: 500px;
}
.home_03 .in{
    position: relative;
}
.home02_img{
    position: absolute;
}

#home_map .thumb_icon{
    border-radius: 50%;
    background-color: #fff;
    width: 36px;
    height: 36px;
    padding: 3px;
    position: relative;
}
#home_map .thumb_icon::before{
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    border-top: 9px solid #FFFFFF;
    content: "";
    height: 0;
    left: 50%;
    position: absolute;
    top: 95%;
    transform: translate(-50%, 0);
    transition: all 0.3s ease-out;
    width: 0;
}
#home_map .thumb_icon img{
    border-radius: 50%;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
#home_map .icon_title{
    position: absolute;
    margin: auto;
    bottom: -2.5em;
    text-align: center;
    white-space: nowrap;

}
#home_map .icon_title p{
    background-color: rgb(255 255 255 / 70%);
    border-radius: 5px;
    line-height: 1em;
    padding: 0.3em;
    display: inline-block;
}
#home_map .gm-style .gm-style-iw-c,
#home_map .gm-style .gm-style-iw-d{
    padding:0px !important;
}
#home_map .gm-style-iw-d {
    width: 150px !important;
    overflow: hidden !important;
    max-height: none !important;
}
#home_map .Homemapimg > div{
    padding-top: 70%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}
#home_map .map-window_name{
    padding:0.5em;
}
#home_map .link a{
    width: 90%;
    text-align: center;
    background-color: var(--blcolor);
    color: #fff;
    padding: 0.5em;
    margin: auto;
    display: block;
    font-size: 11px;
    margin-bottom: 10px;
    line-height: 1;
    border-radius: 5px;
}
#home_map .gm-ui-hover-effect{
    background-color: #fff !important;
    right: 0 !important;
    top: 0 !important;
    border-radius: 7px;
}
 
/*ホーム協力店募集*/
.wave{
    position: absolute;
    z-index: -1;
}
.wave_01{
    top: -11px;
    left: 0;
    width: 57%;
    max-width: 747px;
}
/*ホームお知らせ*/
.wave_02{
    bottom: 0;
    right: 0;
    width: 63%;
    max-width: 747px;
}
.home_news{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.tab_botom ul{
    display: -webkit-flex;
    display: flex;
    gap:1em;
    text-align: center;
}
.tab_botom a{
    background-color: #fff;
    color: var(--blcolor);
    width: 5em;
    height: 5em;
    padding: 1.8em 0;
    border-radius: 50%;
}
.tab_botom a.active,
.tab_botom a:hover{
    background-color: var(--blcolor);
    color: #fff;
}

/*-----------------------*/
/*下層ページ*/
/*-----------------------*/
/*見出し*/
h2{
    font-size: 2em;
    line-height: 1.5;
    margin-bottom: 0.5em;
}
h3{
    font-size: 1.5em;
    line-height: 1.5;
    margin-bottom: 0.5em;
}
h4{
    font-size: 1.2em;
    line-height: 1.5;
    margin-bottom: 0.5em;
    color: var(--blblack_color);
}
h5{

}
/**/
.hed_box{
    margin-top: 100px;
}
/*ページネーション*/

.pagination{
    margin-top: 50px;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.5em;
    flex-wrap: wrap;
}
.pagination :is(span,a){
    display: inline-block;
    min-width: 1.7em;
    height: 1.7em;
    line-height: 1.5em;
    text-align: center;
    padding: 0 0.2em;
    border-radius: 0.4em;
}
.pagination a{
    border: 1px solid #808080;
    color: #808080;
}
.pagination a:hover,
.pagination span{
    border: 1px solid var(--blcolor);
    color: #fff;
    background-color: var(--blcolor);
}
.pagination .dots{
    border: none;
    color: #808080;
    background-color:#fff;
}

/*-----------------*/
/*協力店紹介*/
/*-----------------*/

/*協力店紹介ボタン*/
.map_selects{
    margin-bottom: 2em;
    
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    gap:2em;
}
.map_selects form{
    width: 25%;
}
.map_selects form:has(select),
.map_selects form :is(.search_box){
    text-align: center;
    background-color: #fff;
    border-radius: 1em;
    border: 1px solid #000;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.map_selects form:has(select):before {
    position: absolute;
    right: 15px;
    content: '';
    width: 16px;
    height: 8px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.map_selects form select{
    cursor: pointer;
    text-overflow: ellipsis;/*テキストがオーバーしたら'...'で省略*/
    z-index: 1;
    width: 100%;
    padding: 0.5em 2.5em 0.5em 0.5em;
}
.map_selects form :is(.search_box){
    width: 100%;
}
.map_select input[type="search"]{
    text-align: left;
    padding: 0.5em;
    width: calc(100% - 3em);
}
.map_select input[type="submit"]{
    padding: 0.5em;
    background-color: var(--blcolor);
    color: #fff;
}
/*協力店紹介マップ*/
.custom-pin {
    width: 28px;
    height: 28px;
    background: #ff6a00;
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(0,0,0,.3);
}

.custom-pin.active {
    background: #e60012;
}
.mapContainer #map{
    max-height: 400px;
    height: 45vw;
    border-radius: 15px;
}
/*協力店紹介一覧*/
.shop_list{
    margin-top: 30px;
}
.shop_list ul{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    grid-gap: 3em 1rem;
}
.shoplist_img a{
    display: block;
}
.shoplist_img a > div{
    padding-top: 70%;
    background-color: #000;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.shoplist_text a{
    color: var(--blcolor);
    line-height: 1.5em;
}
.shoplist_text{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    gap: 0.5em;
}
.shop_no{
    display: inline-block;
    background-color: #e60012;
    color: #fff;
    font-size: 0.8em;
    padding: 0 0.8em;
    border-radius: 0.3em;
    cursor: pointer;
}
.shop_address{
    font-size: 0.94em;
    font-weight: 400;
}
.shoplist_service h5{
    background-color: var(--blcolor);
    color: #fff;
    padding: 0.1em 1em;
    border-radius: 2em;
    margin-bottom: 0.5em;
}
.shop_list ul li,
.shoplist_grid{
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 5;
    gap: 1em;
}
.shop_list .shoplist_img {
    
}
.shop_list .shoplist_texts{
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 5;
    gap: 0.5em;
}
.shop_cats a{
    display: block;
    color: #808080;
    border: 1px solid ;
    padding: 0.2em 1em ;
    border-radius: 2em;
}
.shop_cats a + a{
    margin-top: 0.5em;
}
.shop_service p{
    position: relative;
    padding: 0 1.3em;
    font-size: 0.94em;
    font-weight: 400;
}
.shop_service p::before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background-color: var(--blcolor);
}

/*協力店詳細*/

.shopimg{
    padding-top: 75%;
    background-color: #f1f1f1;
    position: relative;
}
.shopimg img{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    margin: auto;
    display: block;
}
.single_shopimgs{
    margin-bottom: 2em;
}
.single_shopimgs .splide__slide{
    width: 100%;
}
.shopimgs a{
    display: block;
}
.shopimgs_thumbnails{
    margin-top: 20px;
}
.shop_data{
    margin-bottom: 30px;
}
.single_title{
    font-weight: 600;
    font-size: 25px;
    margin-bottom: 1em;
    color: var(--blcolor);
}
.shop_data table{
    width: 100%;
    
}
.shop_data table :is(th,td){
    padding: 0.5em;
}
.shop_data table tr{
    border-bottom: 1px solid #000;
    border-top: 1px solid #000;
}
.shop_data table :is(th){
    font-weight: 500;
}
.shop_data table a{
    color: var(--blcolor);
    text-decoration: underline;
}
.shop_data .text_red{
    color: #e60012;
}
.shop_message{
    margin-top: 40px;
}
.shop_map{
    margin-top: 50px;
}
.shop_map .acf-map{
    height: 400px;
    border-radius: 1em;
}
.singleshop_service{
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    background-color: var(--blcolor);
    color: #fff;
    padding: 1.5em;
    border-radius: 1em;
    gap: 1em 2em;
}
.servic_title{
    color: #ffff00;
    width: 23%;
}
.shop_service{
    width: calc(100% - 23% - 2em);
    position: relative;
}
.shop_service::after {
    content: "";
    display: block;
    width: 1px;
    height: 100%;
    background-color: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1.5em;
}
.singleshop_service .shop_service p::before{
    background-color: #fff;
}
.shop_datas{
    container-type: inline-size;
}
@container (570px >= width) {
    .singleshop_service{
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    .servic_title,
    .shop_service{
        width: 100%;
    }
    .shop_service::after{
        height: 1px;
        width: 100%;
        left: 0;
        top: -0.5em;
    }
}
.singleshop_message{
    border: 1px solid var(--blcolor);
    border-radius: 1em;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    flex-wrap: wrap;
}
.message_title,
.message_text {
    padding: 1.5em;
}
.message_title{
    color: var(--blcolor);
    font-weight: 600;
    width: 13em;
}
.message_text{
    border-left: 1px solid var(--blcolor);
    width: calc(100% - 13em);
}

/*パンくず*/
#breadcrumb {
    margin-top: 0.5em;
}
#breadcrumb ul{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    flex-wrap: wrap;
}
#breadcrumb ul li + li{
    position: relative;
    padding-left: 0.5em;
}
#breadcrumb ul li + li::before{
    content: "";
    display: inline-block;
    position: absolute;
    left: 0;
    width: 0.3em;
    height: 0.3em;
    top: 0;
    bottom: 0;
    margin: auto;
    border-right: 1px solid var(--blcolor);
    border-bottom: 1px solid var(--blcolor);
    transform: rotate(-45deg);
}
#breadcrumb ul li :is(span,a){
    margin: 0;
    display: block;
    font-weight: 500;
}
#breadcrumb ul li >span{
    color: #4d4d4d;
}
#breadcrumb ul li a{
    
}

/*-----------------*/
/*お知らせ*/
/*-----------------*/
/*お知らせ一覧*/
.postlist_box{
    padding: 50px 0;
}
.postlist_box .tab_botom{
    margin-bottom: 50px;
}
.postlist_box .tab_botom ul{
    -webkit-justify-content: center;
    justify-content: center;
}
.postlist ul li + li{
    margin-top: 1.5em;
}
.postlist li a{
    background-color: #fff;
    display: block;
    border-radius: 1em;
    padding: 1.5em 3em;
}
.postlist_data,
.cat_list{
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
}
.cat_list span{
    display: inline-block;
    background-color: var(--blcolor);
    color: #fff;
    padding: 0 1em;
    border-radius: 2em;
}
.postlist .postlist_taitl{
    font-size: 18px;
    line-height: 1.5;
}

/*お知らせ詳細ページ*/
.post_data{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    gap: 0.5em;
    flex-wrap: wrap;
    margin-bottom: 40px;
    font-size: 0.9em;
    color: #808080;
}
.content_nav ul{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 1em 3em;
    flex-wrap: wrap;
}
.content_nav ul :is(a , span){
    display: inline-block;
    width: 2.3em;
    height: 2.3em;
    padding: 0.5em;
    text-align: center;
    line-height: 1em;
    border: 1px solid;
    border-radius: 50%;
}
.content_nav {
    margin-top: 40px;
}
.content_nav ul span{
    opacity: 0.5;
}
.content_nav ul  a{
    background-color: var(--blcolor);
    color: #fff;
}

/*-----------------*/
/*固定ページ*/
/*-----------------*/
.p_box + .p_box{
    margin-top: 3em;
}
.text_box + .text_box{
    margin-top: 1em;
}

/*お問い合わせ*/
.entry {
    max-width: 900px;
    margin: auto;
}
.inquiry :is(input[type="text"],input[type="email"],input[type="tel"],textarea){
    padding: 7px;
    border: 1px solid #a7aaad;
    width: 100%;
}
.entry .submit input{
    margin-top: 20px;
    padding: 0.5em 2em;
    background-color: #000;
    color: #fff;
    border-radius: 0.5em;
}
/*BLUE KITEとは*/
.about01 dl{
    border: 1px solid var(--blblack_color);
    border-radius: 0.5em;
    padding: 1em;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}
.about01 dl dt{
    color: var(--blblack_color);
    padding-right: 1em;
    text-align: center;
}
.about01 dl dd{
    padding: 1em 0 1em 1em;
    border-left: 1px solid var(--blblack_color);
}
.about01 ul li + li{
    margin-top: 0.5em;
}
.blue_kite_sticker{
    display: -webkit-flex;
    display: flex;
    gap: 3%;
}
.blue_kite_sticker_img{
    text-align: center;
    color: var(--blblack_color);
    width: 30%;
}
.blue_kite_sticker_img img{
    margin-bottom: 0.5em;
    padding: 1%;
    border: 1px solid;
}
.blue_kite_sticker_text{
    width: 64%;
}
.rigthImag_box dl{
    display: -webkit-flex;
    display: flex;
    gap: 1em 3%;
}
.rigthImag_box .rigth_text{
    width: 73%;
}
.rigthImag_box .tdImg{
    width: 25%;
    color: var(--blblack_color);
    text-align: center;
}

.blue_kite_sticker_img img,
.tdImg img{
    margin: 0 auto 1em;
}

/*協力店募集*/
.innerAdd{
    padding-left: 2em;
    color: var(--blblack_color);
    border-left: 0.5em solid #4c9ac0;
}
/*-----------------*/
/*.basebox共通*/
/*-----------------*/
/*.basebox見出し*/

.basebox h2{
    font-weight: 600;
    position: relative;
    padding: 0.3em 0.5em;
}
.basebox h2::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 5px;
    content: '';
    border-radius: 2px;
    background-image: -webkit-gradient(linear, right top, left top, from(#9ca5ee), to(#49ebdf));
    background-image: -webkit-linear-gradient(right, #9ca5ee 0%, #49ebdf 100%);
    background-image: linear-gradient(to left, #9ca5ee 0%, #49ebdf 100%);
}
.basebox h3{
    padding: 0.5em 1em;
    background-color: #e1eef5;
    position: relative;
}
.basebox h3::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    border-width: 0 20px 20px 0;
    border-style: solid;
    border-color: #4c9ac0 #fff #4c9ac0;
    box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.15);
}
.basebox h4{

}
.basebox h5{

}
.basebox h6{

}
/*.basebox画像*/
.basebox img{
    display: block;
}
.basebox img.alignleft{
    float: left;
}
.basebox img.aligncenter{
    margin: auto;
}
.basebox img.alignright{
    float: right;
}
/*.baseboxテーブル*/
.basebox :is(td, th){
    padding: revert-layer;
}
/*.baseboxリスト*/
.basebox :is(ul,ol){
    list-style: auto;
    padding-left: 1.5em;
}
.basebox :is(li){
    list-style: inherit;
}
.basebox a{
    color: var(--blcolor);
    text-decoration: underline;
}