@charset "utf-8";
/* ヘッダーフッターレフトナビ関連のCSS */

:root{
    --brand:#8b1d1d; /* 深めの赤刺し色 */
    --texcol:#333;/* 基本テキスト色 */
    --mildcolor:#faf7f5; /* 淡い背景色 */ 
    --navycolor:#1A2A40;/* 藍色 */
    --transition:200ms ease;
    --radius:12px;
    --boxsp:.9em;/* ナビボックス内スペース */
    /* ヘッダー関連 */
    --logoheight:80px;/* ロゴ部分の高さ */
    --infotex:35px;/* ヘッダーinfoテキスト高さ */
    /* --main_topmargin:calc(var(--logoheight) + var(--infotex)); */
    --sphdheight:55px; /* スマホヘッダー高さ */
    /*--spnavwidth:75vw;  スマホサイドナビ幅 */
    --spnavwidth:100vw; /* スマホサイドナビ幅 */
    --vh:100vh; /* スマホサイドナビ高さ */
    --zindex:1499/* 商品ページのスライダ全画面が1500 */;
}


/* スタートアップテーマ(レスポンシブ/スマートフォン) テンプレート用 */

* a img{
    transition: var(--transition);
}
* a img:hover{
    opacity: .85;
}
.fs-l-pageMain{
    font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 400;
    position: relative;/* 左ナビのはみ出す部のレイヤー順 */
    z-index: 1;/* 左ナビのはみ出す部のレイヤー順 */
}

.fs-p-logo{
    max-height: 100px;
}

/* PC用 */
@media screen and (min-width: 1199px) {
    #sp_hd_wrapper{
        display: none;
    }
    .fs-l-main,.fs-c-productList{
        margin: 0 auto 24px auto;
    }
}
/* スマホ用 */
@media screen and (max-width: 1200px) {
    #hd_wrapper{
        display: none;
    }
    .fs-l-header{
        padding-top: 0;
        position: relative;
        z-index: 1;
    }
    .fs-l-main{
        margin: 8px auto 12px auto;
        padding: 4px;
        position: relative;
        z-index: 0;
        overflow: hidden;/* コンテンツがはみ出るとナビに影響があるので念のため */
    }
}

.lum-lightbox.lum-open{
    z-index: var(--zindex);
}
.lum-lightbox-inner img{
    max-width: 100% !important;
}

/* ----------------------TOPページ---------------------- */
/* メインヴィジュアル */
#fs_Top .top_mainv{max-width:1200px; margin: 5px auto;}
#fs_Top .top_mainv img{border-radius: 10px;}

/* 防セット竹刀ナビのバナー */
#fs_Top .navbn{display: flex;justify-content: space-between; flex-wrap: wrap; margin-top: 2em;}
#fs_Top .navbn img{max-width: 98%;}
#fs_Top .navbn span{font-size:.9em;width: 100%; margin: 0 auto; display: block; text-align: center;}

#fs_Top .navbn p{width: 50%;  text-align: center;}
@media (max-width: 599px) {
    #fs_Top .navbn p{width: 80%;margin: 5px auto;}
}

/* topページサイドナビ非表示項目 */
#fs_Top #s_nav_wrapper .freeship,
#fs_Top #s_nav_wrapper .phone{
    display: none;
}


/* topページスライダ非表示項目 */
#fs_Top .fs-c-productListCarousel .fs-c-productName__copy{
    display: none;
}
#fs_Top .fs-c-productListCarousel .fs-c-productPrice__main__label{
    display: none;
}

#fs_Top .fs-c-productListCarousel .slick-slide img{
    border: 1px solid #7e7e7e;
    padding: 3px;
}

/* topページピックアップ商品名下部カット 
#fs_Top .fs-c-productName__name{
    overflow: hidden;
    max-height: 70px;
}*/

/* カテ見出し */
#fs_Top .fs-p-heading--lv2{
    position:relative;
    display:inline-block;
    padding:0 ;
    text-align:center;
    border-bottom: none;
    width: 100%;
    font-weight: 600;
    color: var(--navycolor);
    font-family: "Shippori Mincho", serif;
    font-style: normal;
}

#fs_Top .fs-p-heading--lv2 span{
    display: block;
    font-size: .75em;
}
#fs_Top .fs-p-heading--lv2:before,
#fs_Top .fs-p-heading--lv2:after{
    position:absolute;
    top:50%;
    transform: translateY(-50%);
    width:30%;
    height:3px;
    content:'';
}

/* 左側の線：左端透明 → 中央濃い → 右端（文字側）透明 */
#fs_Top .fs-p-heading--lv2:before{
    left:0;
    background: linear-gradient(
        to right,
        transparent 0%,
        var(--navycolor) 50%,
        transparent 100%
    );
}

/* 右側の線：右端透明 → 中央濃い → 左端（文字側）透明 */
#fs_Top .fs-p-heading--lv2:after{
    right:0;
    background: linear-gradient(
        to left,
        transparent 0%,
        var(--navycolor) 50%,
        transparent 100%
    );
}

#fs_Top .fs-c-productPrice{
    justify-content: flex-end;
}


#fs_Top .lv2_title{
    text-align: center;
    font-size: clamp(12px, 4vw, 15px);
    margin:10px auto 25px;
    font-weight: 600;
    color: var(--navycolor);
    font-family: "Shippori Mincho", serif;
    font-style: normal;
}
#fs_Top .lv2_title span{
    position:relative;
    padding-bottom:0.5rem;
    border-bottom:1px solid currentColor;
}

#fs_Top .lv2_title span::before {
    content:'';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) skew(-25deg);
    height: 15px;
    width: 15px;
    border-right: 1px solid currentColor;
    background-color: #fff !important;
    /*Lightning見出しデザイン設定のCSS対策*/
    border-left: none;
    border-top: unset;
    border-bottom: unset;
}


@media screen and (max-width: 599px) {
    #fs_Top .fs-pt-carousel{
        display: none;
        height: 2px;
    }

     #fs_Top .fs-p-heading--lv2:before,#fs_Top .fs-p-heading--lv2:after{
        width: 25%;
    }
    /*#fs_Top .fs-p-heading--lv2{
        border-bottom: 3px solid var(--navycolor);
        padding-bottom: 3px;
    } */
}

/* バナー部分 */
#fs_Top .topbn{
    text-align: center;
    margin: 1.5em 0 0 0;
}
#fs_Top .topbn img{
    max-width: 100%;
}

@media screen and (max-width:599px) {
    #fs_Top .topbn{
        display: none;
    }
}

/* 3カラム(防具セット部分) */
#fs_Top .top-3col{
    display: flex;
    justify-content: space-between;
}
#fs_Top .top-3col .item{
    width: calc(33% - 5px);
}
#fs_Top .top-3col .item img{
    width: 100%;
    border:1px solid #7e7e7e;
    padding: 3px;
}
#fs_Top .top-3col a{
    text-decoration: none;
    font-size: .95em;
    color: var(--texcol);
}
#fs_Top .top-3col a img:hover{
    opacity: .85;
}
#fs_Top .top-3col p{
    margin: 0 .5em;
}
#fs_Top .top-3col .price{
    font-size: 1.25em;
    font-weight: 600;
    text-align: right;
    color: var(--brand);
}
#fs_Top .top-3col .price span{
    font-size: .8em;
}

@media screen and (max-width: 599px) {
#fs_Top .top-3col .item{
    width: calc(50% - 10px);
}
#fs_Top .top-3col .item:last-child{
    display: none;
}
}

#fs_Top .fs-c-price__currencyMark,
#fs_Top .fs-c-price__value,
#fs_Top .fs-c-productPrice__addon{
    color: var(--brand);
}

.fs-pt-column__heading{
    font-size: 1.4rem;
}

.fs-c-breadcrumb{/* パンくず */
max-width: 1200px;
margin: 0 auto;
}

/* ----------------------PCヘッダー---------------------- */
#hd_wrapper *{
    box-sizing:border-box;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 400;
}

#hd_wrapper{
    color: var(--texcol);
    width: 100%;
    background:#fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: var(--zindex);
    transition: opacity 0.6s ease, visibility 0.6s ease;
    box-shadow: 0 0 3px #5a5a5a;
}
#hd_wrapper.top{
    box-shadow: none;
}

.header-hidden{
    opacity: 0;
    visibility: hidden;
}
#hd_wrapper a{
    text-decoration: none;
    transition: var(--transition);
}

#hd_wrapper header{
max-width: 1200px;
margin:0 auto;
padding: 0 1em;
display: flex;
align-items: center;
}

#hd_wrapper .logo{margin: 0;}
#hd_wrapper .logo img{
    max-height: var(--logoheight)
}


/* 純正スライダー */
@media screen and (min-width: 1200px) {
    .fs-pt-carousel{
        height: 90px;
    }
    .fs-pt-carousel__slide{ 
        width: 375px !important;
    }
}
@media screen and (max-width:1199px) {
    .fs-pt-carousel{
        margin-top:10px;
    }
}


.fs-c-slick img{
    max-height: 100%;
}

.fs-c-slick .slick-prev, .fs-c-slick .slick-next {
    width: 44px; height: 44px;
    border-radius: 50%;
    top :calc( 50% - 10px );
}
.fs-c-slick .slick-prev:before, .fs-c-slick .slick-next:before{
    font-size: 35px;
    font-weight: 600;
}
.fs-c-slick .slick-dots{
    transform: translateY(-50%);
}



/* 
#hd_wrapper .glide {
    max-width: 1200px; 
    aspect-ratio: calc( 4 * 3 / 1); 
    margin: .5em auto 0 auto;
    padding: 0 10px; 
    box-sizing: border-box;
}

@media screen and (max-width: 1200px) {
    #hd_wrapper .glide {
        aspect-ratio: calc( 4 * 3 / 1); 
    }    
}

@media screen and (max-width: 800px) {
    #hd_wrapper .glide {
        aspect-ratio: calc( 4 * 2 / 1); 
    }    
}

@media screen and (max-width: 400px) {
    #hd_wrapper .glide {
        aspect-ratio: calc( 4 / 1); 
    }    
}
*/

/* #hd_wrapper .glide__slide img {
    width: 100%;
    max-width: 400px;
    height: auto;
    display: block;
}
#hd_wrapper .glide__arrows {
    display: flex;
    justify-content: center;
    flex-wrap: nowrap;
    position: absolute;
    left: 50%;
    bottom: 2px;
    visibility: hidden;
}
 */

/* #hd_wrapper .glide__arrows i{
    margin-right: 0;
}
#hd_wrapper .glide__arrows button {
    background:#ffffff80;
    margin:0 5px;
    border: none;
    cursor: pointer;
} */

#hd_wrapper .l_box{
    margin-right: auto;
    display: flex;
    justify-content: flex-start; 
}

#hd_wrapper .c_box{
    margin:0 auto;
    display: flex;
    justify-content: center; 
}

#hd_wrapper .r_box{
    margin-left: auto;
    display: flex;
    justify-content: flex-end; 
}

#hd_wrapper h1{
    margin: 0 auto;
    padding: 2px 12px;
    font-size: .85em;
    background:var(--navycolor);
    color: var(--mildcolor);
    text-align: center;
}

#hd_wrapper .infotex{
    margin: 0;
    background:var(--mildcolor);
    line-height: var(--infotex);
    text-align: center;
    font-size: 1em;
    font-weight: bold;
}
.infotex span{
    font-size: .9em;
}

#hd_wrapper ul{
    display: flex;
    list-style:none;
    align-items: center;
    margin:0;
    padding:0;
}

#hd_wrapper ul li{
    position: relative;
}

#hd_wrapper ul li a{
    display: block;
    font-weight: 700;
    padding: 1em auto;
    color: var(--navycolor);
    font-size: 1em;
}

#hd_wrapper ul li:not(:last-child){
    margin-right: 1.5em;
}

#hd_wrapper i{
    font-family: "Font Awesome 6 Free";
    font-size: 1.2em;
    font-weight: 900; /* Solidアイコンの場合 */
    margin-right: 4px;
}
#hd_wrapper .btn i{
    color: var(--mildcolor);
}

#hd_wrapper .btn a{
    padding-left: 20px;
    color: var(--mildcolor);
    border-radius: 10px;
    padding: 6px 12px;
    background: var(--navycolor);
}
#hd_wrapper a:hover{
    opacity: .8;
}


/* ----------------------スマホヘッダー・ナビ---------------------- */
#sp_hd_wrapper *{
    box-sizing:border-box;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 600;
}
#sp_hd_wrapper{
    transition: var(--transition);
}


#sp_hd_wrapper #header{
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: var(--sphdheight);
    background:#fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: var(--zindex);
    transition: var(--transition);
    transform: translateY(0);
    box-shadow: none;
}

#sp_hd_wrapper #header.sc_on{
    transform: translateY( calc( -1 * var(--sphdheight)));
}

#sp_hd_wrapper .l_box{
    /* width: calc(100% / 3); */
    margin-right: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start; 
}

#sp_hd_wrapper .c_box{
    /* width: calc(100% / 3); */
    margin:0 auto;
    display: flex;
    align-items: center;
    justify-content: center; 
}
#sp_hd_wrapper h1{
    font-size: 9px; 
    font-weight:bold;
    padding-top: 20px;
    margin-left: 3px;
    display: inline-block;
}

#sp_hd_wrapper .r_box{
    /* width: calc(100% / 3); */
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
#sp_hd_wrapper .r_box a{
    text-decoration: none;
}

#sp_hd_wrapper .logo{
    height: var(--sphdheight);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    color: var(--texcol); 
}

#sp_hd_wrapper .logo img{
    max-height: calc( var(--sphdheight)  - 10px );
    margin: 1px auto 1px 5px;
    display: block;
}
#sp_hd_wrapper .infotex{
    margin:var(--sphdheight) 0 0 0;
    min-height: 35px;
    padding: 5px 3px;
    text-align: center;
    background: var(--navycolor);
    color:var(--mildcolor);
    font-size: clamp(10px, 2.5vw, 12px); /* 最小10px、最大12px、画面幅に応じて可変 */
    display: flex;
    justify-content: center;
    align-items: center;
    /* white-space: nowrap; */                /* 改行させない */
    /* overflow: hidden; */                   /* はみ出しを隠す */
    /* text-overflow: ellipsis; */  
}
#sp_hd_wrapper .infotex a{
    color: var(--mildcolor);
    display: block;
    text-decoration: underline;
}

#sp_hd_wrapper .burger_wrapper {
    /* margin:0 15px 3px 10px; */
    /* position: fixed; */
    /* top: 20px;left: 15px; */
    /* z-index: 99; */
    /* transition: var(--transition); */
}
/* #sp_hd_wrapper .burger_wrapper.sc_on {
    padding: 12px 10px;
    box-shadow: 0 0 10px #707070;
    background: #ffffff;
    border-radius: 50%;
} */

#sp_hd_wrapper .burger{
    background: none;
    border: none;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
}


/* バーガーmenubuttonここから */
/*#sp_hd_wrapper .burger{
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: space-between;
    width: 25px;
    height: 20px;
}

 #sp_hd_wrapper .burger_wrapper span {
    display: block;
    height: 2px;
    background: var(--texcol);
    transition: all 0.3s ease;
}

#sp_hd_wrapper .burger_wrapper.open{
    left: calc( var(--spnavwidth) + 8vw );
    background: none;
    box-shadow: none;
}

#sp_hd_wrapper .burger_wrapper.open .burger {
    width: 25px;   
}

#sp_hd_wrapper .burger_wrapper.open span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
}

#sp_hd_wrapper .burger_wrapper.open span:nth-child(2) {
    opacity: 0;
}

#sp_hd_wrapper .burger_wrapper.open span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
} */
/* バーガーmenubuttonここまで */


/* メニュー非表示 */
#spnav_wrapper {
    position: fixed;
    top: var(--sphdheight);
    left: 0;
    bottom:0;
    right:0;
    width: 100vw;
    height: var(--vh);
    z-index: 10;
    color:var(--texcol);
    transform: translateX( 100% );
    overflow: hidden;/* スクロールバー非表示 */
    transition: var(--transition)
}

#spnav_wrapper.active {
    transform: translateX( 0 );
    backdrop-filter: blur(3px); /* 背景を10px分ぼかす */
    -webkit-backdrop-filter: blur(3px); /* Safari対応 */
    background-color: rgba(116, 116, 116, 0.185); /* 半透明にすることでブラーが見える */
}

#sp_hd_wrapper .nav-wrap {
    display: block;
    /* margin-left:calc(100vw - var(--spnavwidth)); */
    height:calc( var(--vh) - var(--sphdheight) );
    padding: 0 0 10px 0;
    position:relative;
    z-index: 11;
    width: var(--spnavwidth);
    overflow-y: scroll;
    background: #fff;
}

/* #sp_hd_wrapper .nav-wrap ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#sp_hd_wrapper .nav-wrap li {
    border-bottom: 1px solid #555;
}

#sp_hd_wrapper .nav-wrap a {
    display: block;
    padding: 1rem;
    color: #fff;
    text-decoration: none;
} 
*/
#sp_hd_wrapper i, #sp_hd_wrapper .burger:after, #sp_hd_wrapper .burger:before{
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 1.15em;
}
#sp_hd_wrapper .r_box i , #sp_hd_wrapper .burger:after{
    color: var(--navycolor);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25em;
    width: 50px;
    height: var(--sphdheight);
}

#sp_hd_wrapper .burger_wrapper .burger:after{
    content: '\f0c9'; /* FontAwesomeの左矢印アイコン */
    font-size: 1.7em;
}
#sp_hd_wrapper .burger_wrapper.open .burger:after{
    content: '\f0c9';
    font-size: 1.7em;
}
#sp_hd_wrapper .burger_wrapper.open .burger:before{
    content: '\f054';
    position: absolute;
    color: var(--navycolor);
    top: 50%;
    transform: translateY(-55%);
    left:8px;
    font-size: 1.25em;
    font-weight: 900;
    text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff;

}

#sp_hd_wrapper .search_btn.active{
    opacity: .5;
}

/* ——— 商品検索ボックス ——— */
#sp_hd_wrapper .search{
    font-size: 0;
    margin: 0 auto;
    width: 100vw;
    height: var(--sphdheight);
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--mildcolor);
    visibility: hidden;
    opacity: 0;
    box-sizing:content-box;
    transition: var(--transition);
}
#sp_hd_wrapper .search.active{
    visibility: visible;
    opacity: 1;
}
#sp_hd_wrapper .search i{
    width:auto !important;
}

#sp_hd_wrapper .search input[type="text"],
#sp_hd_wrapper .search button[type="submit"] {
  height: 40px;
  box-sizing: border-box;
  font-size: 15px;
  padding: 0 12px;
}


#sp_hd_wrapper .search input[type="text"]{
    width: calc(100vw - 95px);
    max-width: 500px;
    text-align: left;
    border: 1px solid #7e7e7e;
    border-right: none;
    border-radius: 5px 0 0 5px;
    transition: var(--transition);
    background: #fff;
}

#sp_hd_wrapper .search button[type="submit"]{
    width:60px;
    border: none;
    border-radius:0 5px 5px 0;
    outline: none;
    cursor: pointer;
    transition: var(--transition);
    background:var(--texcol);
    color: #fff;
    margin: 0;
    
}
#sp_hd_wrapper .search i{
    color: #fff;
}
#s_nav_wrapper .search button[type="submit"]:hover{
    opacity: .85;
}



/* ----------- -----------SPナビ本体部分 ---------------------- */
/* ——— 全体設定 ——— */
.nav-wrap {
  width: 100%;
  position: relative;
  overflow: hidden;
  color: var(---texcol);
}
.nav-wrap .col2{
    display: flex;
    width: 96%;
    margin: 0 auto;
    gap: 4px 10px;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.nav-wrap .col2.mini{
    margin: 20px auto 0 auto;
}


.nav-wrap .col2 li{
    width: calc(50% - 10px);
    margin: 0;
    text-align: left;
    border-bottom:1px solid var(--texcol);
    /* padding-left: .5em; */
}

#sp_hd_wrapper .nav-wrap i
{width: 20px;margin-right: 8px;}

.nav-header img{
    height: 100%;
    display: block;
    margin: 0 auto;
    padding: 5px 0;
}
/* .nav-header i{
    float:right;
    line-height: var(--sphdheight);
} */

/* タッチ／押下フィードバック */
.nav-menu a {
  position: relative;
  overflow: hidden;
}
/* .nav-menu a::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  opacity: 0;
  transition: opacity 0.2s;
} */
.nav-menu a:active::after {
  opacity: 0.12;
}

/* ——— セクションタイトル ——— */
.divsp{margin:2vh 0 0 0;}

.nav-section-title {
  padding: 20px 0 5px 0;
  font-size: 15px;
  font-weight: 600 !important;
  text-align: center;
  color: var(--texcol);
}

.lv2-item.arrow::before {
    content: '\f105'; /* FontAwesomeの左矢印アイコン */
    font-family: "Font Awesome 6 Free"; 
    font-weight: 900;
    display: inline;
    float: right;
    transform: translateY(25%);
}

/* ——— メニューリスト ——— */
.nav-menu {
  list-style: none;
  margin: 0 0 10px 0;
  padding: 0 .5em;
}
.nav-menu li {
    margin: 0 auto;
    width: 96%;
    padding:0 .5em;
    border-bottom: 1px solid var(--texcol);
}
.nav-menu a , .nav-lv3 a,.nav-menu li p,.nav-menu .lv2-item{
  display: block;
  margin:0 auto;
  padding: .8em 0;
  text-decoration: none;
  color: inherit;
  font-size: 14px;
  color:var(--texcol);
}
.nav-menu.col2.mini a{
  font-size: 13px;
}

/* ——— Lv3フェード ——— */
.nav-lv3 {
    list-style-type: none;
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    opacity: 0;
    margin: 0;
    padding: 0 ;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.nav-lv3 .title{
    font-size: 1.05em;
    font-weight: bold !important;
    text-align: center;
    width: 95%;
    margin: .5em auto 0 auto;
    padding: .25em 0;
}
.nav-lv3 .cat_t{
    font-weight: 600 !important;
    font-size:15px;
    border-bottom: 2px solid var(--navycolor);
    text-align: center;
    margin:1em auto 0 auto;
    padding-bottom: 10px ;
    width: 90%;
}

.nav-lv3 .cat_t span{
    font-size: .9em;
}

.nav-lv3 a{
    color: var(--texcol);
    font-size: 14px;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    padding:.8em 0 .8em 10px;
    width: 90%;
    border-bottom: 1px dotted var(--texcol);
    margin: 0 auto;
}
.nav-lv3 a:after{
    content: '\f054'; /* FontAwesomeの左矢印アイコン */
    font-family: "Font Awesome 6 Free"; 
    font-weight: 900 !important;
    display: inline-block;
    position: absolute;
    right: 5px;
}
.nav-lv3 small{
    font-size: .8em;
    margin:4px 0 0 10px;
}
.nav-lv3.active {
  opacity: 1;
  pointer-events: all;
}

/* ——— 戻るボタン ——— */
.nav-back{
    font-size: 14px;
    padding:.7em 1em;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    /* background: #5a5a5a; */
    background: var(--navycolor);
    color: var(--mildcolor);
}
.nav-back:before{
    content: '\f104'; /* FontAwesomeの左矢印アイコン */
    font-family: "Font Awesome 6 Free"; 
    font-weight: 900 !important;
    display: inline-block;
    margin-right: 10px;
}

/* ——— メインエリアフェードアウト時 ——— */
.nav-wrap.lv3-active .nav-main {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.nav-wrap .nav-bn{
    width: 100%; 
    text-align: center;
    margin: 0 auto;
    color: var(--mildcolor);
    line-height: 35px;
    background:var(--navycolor);
    font-size: clamp(13px, 2.5vw, 16px);
     /* 最小10px、最大12px、画面幅に応じて可変 */
}



/* ----------- -----------サイドナビ ---------------------- */
#s_nav_wrapper *{
    color: var(--texcol);
    box-sizing:border-box;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 600;
}

#s_nav_wrapper a{
    text-decoration: none;
}
#s_nav_wrapper{
    width: 100%;
    max-width: 375px;
    min-width: 300px;
}

#s_nav_wrapper nav,#s_nav_wrapper .phone{
    background: var(--mildcolor);
    padding: .5em 1.5em;
    box-sizing: border-box;
    border-radius: var(--radius);
    margin-bottom: 1em;
}

#s_nav_wrapper ul{
    list-style:none;
    margin:0;
    padding:0;
}
#s_nav_wrapper img{
    width: 100%;
}

#s_nav_wrapper .bnbox{
    border: 1px solid #000;
    margin-bottom: 1em;
    height: 80px;
    width: 100%;
}

#s_nav_wrapper .phone div{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3em;
    font-size: 1.75em;
    font-weight: bold;
}

#s_nav_wrapper .phone p{
margin: 0;
text-align: center;
}

#s_nav_wrapper .phone span{
    display: block;
    font-size: .45em;
}

#s_nav_wrapper .phone img{
    max-height: 45px;
    width: 50px;
    transform: translateY(5px);
}

#s_nav_wrapper .lv1{
    position: relative;
    font-weight: 600;
    width:95%;
    margin:0 auto;
    padding: var(--boxsp) 0;
    border-bottom: 1px dashed var(--texcol);
    font-size: 14px;
    cursor: pointer;
    transition: var(--transition);
}

#s_nav_wrapper .lv1::after {
  font-family: "Font Awesome 6 Free";
  font-weight: 900; /* Solidアイコンの場合 */
  content: "\f054"; /* fa-chevron-right の Unicode */
  position: absolute;
  top:50%;
  transform: translateY(-50%);
  right:.5em;
}


#s_nav_wrapper .lv1:last-child{
    margin-bottom: 1.5em;
}

#s_nav_wrapper .lv2{
    opacity: 0;
    visibility: hidden;
    cursor: default;
    position: absolute;
    left:200px;
    background:#fff;
    box-shadow: 0 0 3px #72727241;
    min-width:230px;
    padding: .5em 0;
    transform: translateY(-35px) translateX(0px);
    transition: var(--transition);
    border-radius: var(--radius);
    z-index: 999;
}
/* 2列レイアウト */
#s_nav_wrapper .lv2.col2{
    width: calc( 230px * 2 );
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}
#s_nav_wrapper .col2 .l_box , #s_nav_wrapper .col2 .r_box{
    width: calc( 100% / 2 );
}


#s_nav_wrapper .lv2 li{
    padding: 2px 0;
    font-weight: normal;
    font-size: 13px;
}
#s_nav_wrapper .lv2 a{
    font-weight: 600;
    color: var(--texcol);
    display: block;
    padding: 4px 0 4px 1.5em;
    transition: all 0.2s ease;
}
#s_nav_wrapper .lv2 a:hover{
    background: #e6e6e6;
}
#s_nav_wrapper h4 {
    font-size: 14px;
    font-weight: bold;
    color: var(--navycolor);
    /* padding-left: 14px; */
    text-align: center;
    margin: 0;
}
#s_nav_wrapper h4:after{
    content: "";
    display: block;
    width: calc(100% - 20px);
    height: 1px;
    background:var(--navycolor);
    /* background: var(--texcol); */
    margin: 3px auto 0 auto;
}

#s_nav_wrapper h4 small{
    display: block;
    font-weight: normal;
    font-size: 0.8em;
    color: var(--navycolor);
}

#s_nav_wrapper .lv2 a small{
    font-size: .8em;
    color: #5a5a5a;
    padding-left: 5px;
}

#s_nav_wrapper .lv1.flink a{
    display: block;
    padding: var(--boxsp) 0;
}


#s_nav_wrapper .lv1:hover .lv2{
    opacity: 1;
    visibility: visible;
    transform: translateY(-35px) translateX(0);
}

#s_nav_wrapper .lv1:hover .t2 , #s_nav_wrapper .lv1 > a:hover{color: var(--brand);}

#s_nav_wrapper .t2 {
    display: flex;
    align-items: center;
    margin: 0;
    font-size: 15px;
}

#s_nav_wrapper .lv1.flink{
    padding: 0;
    font-size: 15px;
}
#s_nav_wrapper .lv1.flink span{
    font-size: .95em;
}

.cat_t1{
    font-size: 1.25em;
    text-align: center;
    font-weight: bold;
    /* background:var(--brand); */
    padding: 5px 12px;
    margin:1em auto .5em auto;
    border-radius: var(--radius);
}
#s_nav_wrapper .search{
    margin: 2em .5em 2em .5em;
    display: flex;
    align-items: center;
    justify-content: center;
}

#s_nav_wrapper .flexbox{
    margin: 1em 0 0 0;
    display: flex;
    width: 100%;
}
#s_nav_wrapper .flexbox p{
    margin: 0;
    padding: 0 5px;
}

#s_nav_wrapper .search form{
    width: 100%;
}
/* 両方に同じ padding を指定 */
#s_nav_wrapper .search input[type="text"],
#s_nav_wrapper .search button[type="submit"] {
    padding: 10px 12px;
    font-size: 15px;
    height: 40px;
    box-sizing: border-box; /* これも重要 */
}


#s_nav_wrapper .search input[type="text"]{
    width: calc(100% - 75px);
    text-align: center;
    border: 1px solid var(--navycolor);
    border-radius: var(--radius);
    outline: none;
    transition: var(--transition);
    background: #fff;
}

#s_nav_wrapper .search button[type="submit"]{
    width:60px;
    border: none;
    border-radius: var(--radius);
    outline: none;
    cursor: pointer;
    transition: var(--transition);
    background: var(--navycolor);
    color: #fff;
    margin-left: 5px;
    font-size: 14px;
}
#s_nav_wrapper .search button[type="submit"]:hover{
    opacity: .85;
}


/* ----------- -----------フッター ---------------------- */
.fs-l-footer{border-top:none;}
#footer{
    box-sizing:border-box;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Helvetica Neue", Arial;
    background: var(--mildcolor);
    font-weight: 400;
}

#footer a{color: var(--navycolor);
    text-decoration: underline;
}

#footer .wrapper{
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2em 0 .5em 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 25px 0;
    position: relative;
    /* border: 1px solid #000; */
}
#footer .wrapper .item{
    width: calc( 100% / 3 - 10px );
    /* border: 1px solid #000; */
    font-size: 14px;
}
#footer .wrapper p{
    margin: 10px 0;
}
#footer .totop{
    border: 1px solid #000;
    position: absolute;
    top:0; right:0;
    width: 40px; height: 30px;
    font-size: 1.2em;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(-100%);
    background-color: var(--navycolor);
    color: var(--mildcolor);
    transition: var(--transition);
}
#footer .totop:hover{
    opacity: .8;
}
#footer .b_link ul{
    list-style-type: none;
    display: flex;
    font-size: .95em;
    margin: 0;padding: 0;
}
#footer .b_link ul li:not(:first-child){
    margin-left: .8em;
}
#footer .b_link a{
    text-decoration: none;
}
#footer .b_link a:hover{
    opacity: .8;
}
#footer .b_link a:before{
    display: inline-block;
    font-family: "Font Awesome 6 Free";
    content: "\f0da"; /* fa-chevron-right の Unicode */
    font-size: 1em;
    font-weight: 900; /* Solidアイコンの場合 */
    margin:0 4px 0 0;
}

#footer .copyright{
    background:var(--navycolor);
    color: var(--mildcolor);
    font-size: 12px;
    line-height: 30px;
    text-align: center;
}

#footer .wrapper .item h3{
    font-size: 1.15em;
    font-weight: 600;
    border-bottom: 1px solid var(--navycolor);
    margin:  .5em 0;
    padding: 0 .5em .5em .2em;
}

#footer .wrapper strong{
    font-size: 1.2em;
    font-weight: normal;
    color: #8b1d1d;
}

.ft_calendar{
    height: 230px;
    width: 240px;
    margin: 0 auto;
    display: block;}

    /* 959px以下 */
@media (max-width: 959px) {
    #footer .wrapper .item {
    width: calc( 100% / 2 - 8px );
    padding: 0 .5em;
  }
    #footer .b_link{display: none;    
    }
}

/* 767px以下 */
@media (max-width: 767px) {
    #footer .wrapper{
        padding: 15px 0px;
        gap:10px 0;
    }
    #footer .wrapper .item {
    width: calc( 100% / 1 );
  }
    #footer .wrapper .item h3{
    font-size: 1em;
    padding: .7em 0;
    margin: 0;
    
    text-align: center;
    background: var(--mildcolor);
    position: relative;
  }
    #footer .wrapper .item h3::after{
    display: inline-block;
    font-family: "Font Awesome 6 Free";
    content: "\f107"; /* fa-chevron-right の Unicode */
    font-size: 1em;
    font-weight: 900; /* Solidアイコンの場合 */
    margin:0 4px 0 0;
    position: absolute;
    right: 10px;
    transition: var(--transition);
    }
    #footer .wrapper .item.active h3{
        background: #fff;
    }
    #footer .wrapper .item.active h3::after{
    transform: rotate(180deg);
    }

    #footer .wrapper .item div{
    max-height: 0;
    padding: 0 .5em;
    overflow: hidden;
    transition: max-height 0.5s ease;
    background:#fff;
  }
  #footer .wrapper .item.active div{
    max-height: 1000px;
  }

}