@charset "utf-8";
/* 
===========================================================
   # Navi
===========================================================
*/
.site-title h1{
    margin-bottom: 0;
    padding: 7px 0;
    font-size: 18px;
    font-weight: ;
    letter-spacing: 0.1em;
}

/* ----- ロゴなしテキストの場合 ----- */
a.site-title:link, a.site-title:visited, a.site-title:focus{
    color: var(--dark);
}
 a.site-title:active{
    color: var(--dark);
}
a.site-title:hover{
    color: var(--dark);
    text-decoration: none;
}

/* -----ナビメニュー ----- */
nav{
    background: var(--nav-bg);
}
.container-nav{
    max-width: 90%;
    margin: 0 auto;
}
nav > .container{
    margin: 0 auto;
    width: 100%;
}
nav ul li.nav-item{
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin: auto 10px;
    -webkit-font-smoothing: antialiased;
}
@media screen and (min-width: 992px){
    nav ul li.nav-item:last-child{
        margin-right: 0;
    }
}
nav ul li{
    font-size: ;
    text-align: center;
}
nav ul li:hover{
    transition: all .18s;
    box-shadow: 0 -1px 0 0 var(--nav-active) inset;
}
nav ul li.active{
    box-shadow: 0 -1px 0 0 var(--nav-active) inset;
}

/* -------------- PCナビメニュー -------------- */
a.nav-link{
    padding: 5px 2px;
}
a:link.nav-link, a.nav-link:visited, a.nav-link:focus{
    color: var(--dark);
    transition: color .17s ease;
}
a.nav-link:active{
    color: var(--dark);
}
a.nav-link:hover{
    color: var(--dark);
    transition: color .17s ease;
    text-decoration: none;
}

/* 
===========================================================
   # モーダルフルスクリーンメニュー｜Modal FS Menu
===========================================================
*/   
/* -------------- ハンバーガーメニュー -------------- */
#btn-menu{
    margin-right: -5px;
}
@media screen and (min-width: 992px){
    #btn-menu{
        display: none;
    }
}
.menu-trigger{
	position: relative;/*ボタン内側の基点となるためrelativeを指定*/
	width: 42px;
    height: 41px;
	cursor: pointer;
	border: none;
	background: #f0f0f0;
	z-index: 530;
}
	
/* -------------- ハンバーガー内側 -------------- */
.menu-trigger span{
    display: inline-block;
    transition: all .2s;
    position: absolute;
    left: 6px;
    height: 1px;
	background-color: #666;
  }

.menu-trigger span:nth-of-type(1){
	top: 12px;	
  	width: 30px;
}
.menu-trigger span:nth-of-type(2){
	top: 20px;
  	width: 30px;
}
.menu-trigger span:nth-of-type(3){
	top: 28px;
  	width: 30px;
}

/*activeクラスが付与されると線が回転して×に*/
.menu-trigger.active span:nth-of-type(1){
    top: 20px;
    left: 6px;
    transform: rotate(45deg); /* Original -45deg */
    width: 30px;
    transition: all .2s;
}
.menu-trigger.active span:nth-of-type(2){
    opacity: 0;
    transition: all .2s;
}
.menu-trigger.active span:nth-of-type(3){
    top:20px;
    left: 6px;
    transform: rotate(-45deg);
    width: 30px;
    transition: all .2s;
}

/* -------------- SP モーダルメニュー -------------- */
@media screen and (max-width: 991px){
    header{
        z-index: 520 !important;
    }
    #fs-menu{
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background: rgba(255,255,255, .98);
        overflow-y: auto;
        overflow-y: auto;overscroll-behavior-y: contain;
        visibility: hidden;
        z-index: 500;
        opacity: 0;
    }

    .open-menu #fs-menu{
        visibility: visible;
        opacity: 1;
        transition: opacity .17s ease;
    }
    #fs-menu-position{
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100%;
        -webkit-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%);
    }

    #fs-menu-list li{
        list-style: none;
        text-indent: ;
        text-align: center;
        transition: none;
        visibility: hidden;
        z-index: 510;
        opacity: 0;
        -webkit-transform: translateY(3px);
        transform: translateY(3px);
    }
    .open-menu #fs-menu-list li{
        list-style: none;
        padding: 8px 0;
        visibility: visible;
        opacity: 1;
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
        
        transition: -webkit-transform .3s ease;
        transition: transform .3s ease;
    }
    
    /* -------------- SP ナビメニュー -------------- */
    .nav-item a:link, a:visited, a:focus{
        color: var(--dark);
        transition: color .17s ease;
        display: inline-block;
    }
    .nav-item a:active{
        color: var(--dark);
    }
    .nav-item a:hover{
        color: var(--dark);
        transition: color .17s ease;
        text-decoration: none;
    }
    
    nav ul li.nav-item{
        font-size: 16px;
    }
    nav ul li{
        background: none !important;
    }
    nav ul li:hover{
        background: none !important;
        box-shadow: none;
    }
    nav ul li.active{
        background: none !important;
        box-shadow: none;
    }
    
    .nav-item.active a{
        color: var(--nav-active) !important;
    }
    .nav-item a:hover{
        color: var(--nav-active) !important;
    }


    /* -------------- SNSアイコン -------------- */
    #fs-menu-list .note:hover,
    #fs-menu-list .line:hover{
        opacity: .7;
        transition: .17s;
    }
    #fs-menu-list .note{
        height: 26px;
        width: auto;
        transition: .17s;
    }
    #fs-menu-list .line{
        height: 32px;
        width: auto;
        transition: .17s;
    }
}

#fs-menu,#fs-menu-list,#fs-menu-position{
    transition: none;
}

@media screen and (min-width: 992px){
    #fs-menu-list .note{
        height: 26px;
        width: auto;
    }
    #fs-menu-list .line{
        height: 32px;
        width: auto;
    }
}

/* 
===========================================================
   # Logo
===========================================================
*/
.logo{
    height: 40px;
    width: auto;
}
@media (min-width: 992px){
    .logo{
        height: 60px;
        width: auto;
    }
}

.footer-logo{
    height: auto;
    width: 120px;
}
@media (min-width: 992px){
    .footer-logo{
        height: auto;
        width: 180px;
    }
}

/*
===========================================================
   # Link to Top
===========================================================
*/
.link-to-top{
    position: fixed;
    bottom: 70px;
    right: 20px;
    z-index: 1;
    opacity: .3;    
    display: none;
}
.link-to-top img{
    height: 40px;
    width: 40px;
    transition: .3s;
}
.link-to-top img:hover{
    opacity: .6;
    transition: .17s;
}

@media (min-width: 992px){
    .link-to-top{
        bottom: 40px;
        right: 40px;
    }
    .link-to-top img{
        height: 64px;
        width: 64px;
    }
}

/* 
===========================================================
   # プレローダー｜Loader
===========================================================
*/
.loader-wrap{
	position: fixed;
	display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: var(--white);
    z-index: 10000;
}

@-webkit-keyframes spinner-grow {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  50% {
    opacity: 1;
  }
}

@keyframes spinner-grow {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  50% {
    opacity: 1;
  }
}

.loader {
  display: inline-block;
  width: 3rem;
  height: 3rem;
  vertical-align: text-bottom;
  background-color: #d3ecf8;
  border-radius: 50%;
  opacity: 0;
  -webkit-animation: spinner-grow .75s linear infinite;
  animation: spinner-grow .75s linear infinite;
}

/* 
===========================================================
   # パンくずリスト
===========================================================
*/
.breadcrumbs{
    margin-bottom: 0 !important;
}
.breadcrumbs li{
    display: inline;
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    list-style: none;
    text-decoration: none;
}
.breadcrumbs li:after{
    content: '>';
    padding: 0 2px;
}
.breadcrumbs li:last-child:after{
    content: '';
}
.breadcrumbs span.here{
    opacity: 1;
}
.breadcrumbs a{
    text-decoration: none;
    opacity: .9;
}
.breadcrumbs a:hover{
    text-decoration: none; 
}
.breadcrumbs ol{
    margin-top: 0;
    padding: 0;
    text-align: left;
}

@media (min-width: 992px){
    .breadcrumbs ol{
        margin-top: 0;
        padding: 0;
        text-align: left;
    }
}

/* 
===========================================================
   # BS Contact Form
===========================================================
*/
.form-group{
    font-size: ;
}
.form-control{
    font-size: 98%;
}
.form-control::placeholder{
  color: #aaa;
  opacity: 1;
}

.help-block{
    background: ;
    font-weight: bold;
    color: #ff0000;
}
#contactForm ul{
    list-style: none;
    margin-left: -2.5em;
    margin-right: 0.5em;
}
#contactForm{
    font-size: ;
}
#contactForm label{
    font-weight: bold;
}

.form-required:after{
	content: "必須";
	font-size: 10px;
	font-weight: bold; 
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1em;
	background: #f32929;
	color: #fff;
	padding: 2px 3px 3px;
	margin-left: 3px;
	border-radius: 1px;
	vertical-align: text-top;
}

#policy h3{
    font-size: 1rem;
    font-weight: bold;
}
@media (min-width: 992px) {
    #policy h3{
        font-size: 1.2rem;
    }
}

/* 
===========================================================
   # for Bootstrap4
===========================================================
*/
.btn:focus, .btn:active, button:focus, button:active {
    outline: none !important;
    box-shadow: none !important;
}

/* 
===========================================================
   # 
===========================================================
*/
.w-80{width: 100% !important;}
@media (min-width: 768px){
    .w-80{max-width: 90% !important;}
}
@media (min-width: 992px){
    .w-80{width: 860px !important;}
}
@media (min-width: 1200px){
    .w-80{width: 860px !important;}
}

.w-90{width: 100% !important;}
@media (min-width: 768px){
    .w-90{max-width: 90% !important;}
}
@media (min-width: 992px){
    .w-90{width: 900px !important;}
}
@media (min-width: 1200px){
    .w-90{width: 980px !important;}
}
