@charset "UTF-8";

/*************************************************************************************************************************
* Objective Fit Image
*************************************************************************************************************************/
.ofi-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
	font-family: 'object-fit: cover';
}

.ofi-contain {
	width: 100%;
	height: 100%;
	object-fit: contain;
	font-family: 'object-fit: contain';
}

/* CSS Document */
/*************************************************************************************************************************
* reset
*************************************************************************************************************************/
html{ height: 100%; overflow-y: scroll; font-size: 62.5%;}
body{ height: 100%; margin: 0; padding: 0; text-align: justify; text-justify: inter-ideograph; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "palt"; -webkit-font-feature-settings: "palt"; }
img{ width: 100%; max-width: 100%; height: auto; border: 0; vertical-align: bottom;}
svg{ vertical-align: bottom;}
form{ margin: 0; padding: 0;}
p{ margin: 0; padding: 0;}
a, a:hover{ text-decoration: none; outline: none;}
h1, h2, h3, h4, h5, h6{ margin: 0; padding: 0; font-size: 0; line-height: 0;}
ul, dl, dt, dd{ margin: 0; padding: 0;}
li, ol{ margin: 0; padding: 0; list-style: none;}
table{ border: 0; border-collapse: collapse; border-spacing: 0;}
caption, th{ text-align: left;}
header, nav, main, article, aside, section, footer{ display: block;}
*{ box-sizing: border-box;}

/**********************************************************
*　追加ベース
**********************************************************/
html {
	/* 例：1320pxの時に10px (10 / 1320) * 100 ≒ 0.758vw */
	font-size: 0.758vw;
}

body {
	height: 100%; font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif; font-weight: 500;
	font-size: 1.4rem;
}

button{
	cursor: pointer;
}

.l-wrapper {
}

@media screen and (min-width: 681px) {
	
	body {
		font-size: 1.6rem;
	}
	
}

.sp-only { display: none !important; }
.sp-only-2 { display: none !important; }
.pc-only { display: block !important; }
.pc-only-2 { display: inline-block !important; }

@media screen and (max-width: 680px) {
	
	.sp-only { display: block !important; }
	.sp-only-2 { display: inline-block !important; }
	.pc-only { display: none !important; }
	.pc-only-2 { display: none !important; }
	
}

/*	iOS Sarafi Hack	*/
_::-webkit-full-page-media,
_:future,
:root .something {  }

.aos__overflow--hidden{ overflow: hidden; }


.caption{font: 500 12px/16px 'YakuHanJP_Noto', 'Noto Sans JP', sans-serif; margin-top: 10px;}


.btn { display: flex; align-items: center; border-style: solid; border-width: 1px; }
.btn--center { justify-content: center; }

.btn--white { border-color: #fff; }
.btn--detail { display: flex; justify-content: center; align-items: center; width: 280px; height: 54px; background-color: #fff; border-radius: 28px; border-color: #004fa2; margin-left: auto; margin-right: auto; font-size: 1.6rem; font-weight: 700; letter-spacing: 0.2em; color: #000; transition: all 400ms ease; }
.btn--detail:after { width: 9px; height: 14px; background: url("../img/ico_arrow.png") no-repeat 50% 50%/100% auto; transform: rotate(-90deg); margin-left: 80px; content: ""; }
.btn--detail:hover { background-color: #004fa2; color: #fff; }
.btn--detail:hover:after { background-image: url("../img/ico_arrow_white.png"); }

.btn--round {  }

.main-ttl { color: #fff; }
.main-ttl__sub,
.main-ttl__main { display: block; }
.main-ttl__sub { font: 400 1.5rem YakuHanMP_Noto, "Noto Serif JP", serif; line-height: 1; letter-spacing: 0.1em; }
.main-ttl__main { margin-top: 10px; font: 500 5.0rem 'Cormorant Garamond', serif; line-height: 1; text-align: left;}


.cont-txt  { font-size: 1.5rem; line-height: 2.14; }
.ttl--blue { background: #004fa2; border-radius: 5px; padding: 5px 15px 7px; font-size: 1.5rem; font-weight: 500; line-height: 1.74; color: #fff; }

@media print, screen and (min-width:681px) {
	
	.main-ttl__sub { font-size: 1.8rem; }
	.main-ttl__main { margin-top: 20px; font-size: 10.7rem; }
	.main-ttl--landpc { display: flex; align-items: center; }
	.main-ttl--landpc .main-ttl__main { order: 1; margin-top: 0; margin-right: 25px; }
	.main-ttl--landpc .main-ttl__sub { order: 2; margin-top: 25px; }
	.cont-txt { font-size: 1.6rem; line-height: 2.2; }
	.ttl--blue { foant-size: 1.6rem; line-height: 1.74; }
}

.ktkn { font-size: inherit; letter-spacing: -0.05em; }

.header { position: fixed; top: 0; left: 0; width: 100%; background-color: transparent; z-index: 500; transition: all 400ms ease; }
/*
.header:after { position: absolute; top: 0; right: -100%; display: block; width: 100%; height: 60px; background-color: rgba(0,109,177,1.00); content: ""; z-index: 0; transition: all 200ms ease; }
.header.active:after { right: 0; }
*/
.header__inner { position: relative; display: flex; justify-content: space-between; align-items: center; height: 60px; padding-left: 10px; padding-right: 10px; z-index: 5; }
.header__logo { display: flex; flex-wrap: wrap; align-items: center; flex: 1; color: #fff; }
.header__logo__img a { position: relative; display: block; }
.header__logo__img a img { width: 150px; height: auto; }
.header__logo__fac { position: relative; margin-left: 14px; padding-left: 14px; font-size: 1.6rem; line-height: 24px; }
.header__logo__fac:before { position: absolute; left: 0; top: 0; width: 1px; height: 100%; background-color: rgba(255,255,255,0.5); content: ""; }
.header__logo__txt { width: 100%; margin-top: 10px; font-size: 1.2rem; line-height: 1; }

.header__navtrg { position: relative; display: flex; justify-content: center; align-items: center; width: 30px; height: 30px; z-index: 5; }
.header__navtrg span { position: absolute; display: inline-block; transition: all .4s; width: 30px; height: 1px; background: #fff; }
.header__navtrg span:nth-of-type(1) { top: 7px; left: 0; }
.header__navtrg span:nth-of-type(2) { bottom: 7px; left: 0; }
.header.active .header__navtrg span:nth-of-type(1),
.header.active .header__navtrg span:nth-of-type(2) { top: 50%; left: 50%; }
.header.active .header__navtrg span:nth-of-type(1) { transform: translate(-50%, -50%) rotate(-45deg); }
.header.active .header__navtrg span:nth-of-type(2) { transform: translate(-50%, -50%) rotate(45deg); }

.header.header--blue {
	background: rgb(0,78,161);
	background: -moz-linear-gradient(left, rgba(0,78,161,1) 0%, rgba(1,92,171,1) 100%);
	background: -webkit-linear-gradient(left, rgba(0,78,161,1) 0%,rgba(1,92,171,1) 100%);
	background: linear-gradient(to right, rgba(0,78,161,1) 0%,rgba(1,92,171,1) 100%);
}

.header.header--smoke { background-color: rgba(0,0,0,0.80); }

.header--blue.active { background-color: transparent !important; }
.header--white.active { background-color: #fff; }
.header.active .header__logo__img a { background-image: url("../img/logo_white.png") !important; }
.header.active .header__logo { color: #fff !important; }
.header.active .header__navtrg span { background: #fff !important; }

.header__mes { font: 400 1.4rem 'Noto Serif JP', serif; line-height: 1; letter-spacing: 0.26em; text-indent: 0.26em; color: #fff; }

@media print, screen and (max-width:680px) {
	
	.nav { position: fixed; top: 82px; right: -100%; display:block; 
	background: -moz-linear-gradient(top, rgba(0,109,177,1) 0%, rgba(0,98,177,1) 29%, rgba(136,117,177,1) 88%, rgba(176,131,177,1) 100%);
	background: -webkit-linear-gradient(top, rgba(0,109,177,1) 0%,rgba(0,98,177,1) 29%,rgba(136,117,177,1) 88%,rgba(176,131,177,1) 100%);
	background: linear-gradient(to bottom, rgba(0,109,177,1) 0%,rgba(0,98,177,1) 29%,rgba(136,117,177,1) 88%,rgba(176,131,177,1) 100%);
	width: 100%; height: calc(100vh - 82px); padding: 30px 55px 45px; transition: all 200ms ease; }
	.header.active .nav { right: 0; z-index: 100; }
	
}


/*	Nav	*/

#nav-toggle { position: fixed; top: 18px; right: 18px; height: 24px; cursor: pointer; }
#nav-toggle > div { position: relative; width: 32px; }
#nav-toggle span { position: absolute; transition: transform 0.5s ease-in-out, top 0.5s ease; display: block; width: 100%; height: 2px; right: 0; background: #fff; border-radius: 1px; }
#nav-toggle span:nth-child(1) { top: 0; }
#nav-toggle span:nth-child(2) { top: 11px; opacity: 1; transition: 0.5s; }
#nav-toggle span:nth-child(3) { top: 21px; width: 25px; margin-left: auto; margin-right: 0; }

.open #nav-toggle span { height: 3px; }
.open #nav-toggle span:nth-child(1) { top: 15px; transform: rotate(45deg); }
.open #nav-toggle span:nth-child(2) { top: 15px; width: 0; right: 50%; opacity: 0; }
.open #nav-toggle span:nth-child(3) { top: 15px; width: 100%; transform: rotate(-45deg); }

/* z-index */
#nav-toggle { z-index: 1000; }

#container { z-index: 900; }

.gnav-wrap { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; visibility: hidden; flex-direction: column; justify-content: center; align-items: center; background-color: #000; color: #fff; z-index: 400; opacity: 0; transition: opacity 0.6s ease, visibility 0.6s ease; }
.gnav__inner { position: absolute; top: 60px; left: 0; width: 100%; height: calc(100% - 60px); overflow: auto; }
.gnav__list__item a { display: flex; align-items: center; height: 50px; font: 400 1.4rem 'Noto Serif JP', serif; line-height: 1; letter-spacing: 0.05em; color: #fff; transition: 0.5s; }
.gnav__list__item a:hover { opacity: 0.7; }
.gnav__list__item--lv1:not(:last-of-type) { border-bottom: 1px solid rgba(255,255,255,0.5); }
.gnav__list__item--lv1 > a:before { width: 13px; height: 1px; background: #ff171f; margin-right: 10px; margin-left: 7px; content: ""; }
.gnav__list__item--lv1 > a.has-en:after { margin-top: 4px; margin-left: 15px; font-size: 1.1rem; }
.gnav__list__item--lv1 > a.has-en--about:after { content: "About BJE"; }
.gnav__list__item--lv1 > a.has-en--contact:after { content: "Contact"; }
.gnav__list__item ul { border-top: 2px dotted rgba(255,255,255,0.5); }
.gnav__list__item ul li { margin-left: 26px; }
.gnav__list__item ul li:not(:last-of-type) { border-bottom: 2px dotted rgba(255,255,255,0.5); }
.gnav__list__item ul li a:before { content: "・"; margin-left: 16px; }

.gnav__info { font-family: 'Noto Serif JP', serif; font-weight: 400; color: #fff; }
.gnav__info__tel__num { display: flex; align-items: center; margin-bottom: 10px; font-size: 2.4rem; line-height: 1; }
.gnav__info__tel__num:before { content: "p"; font-family: 'bje' !important; font-size: 2.6rem; margin-bottom: -7px; }
.gnav__info__tel__num a { color: #fff; }
.gnav__info__tel__txt strong { font-size: 1.4rem; font-weight: 400; }
.gnav__info__tel__txt span { font-size: 1.3rem; }

.gnav__info__name { margin-top: 36px; margin-bottom: 20px; font-size: 1.6rem; font-weight: 400; line-height: 1; }
.gnav__info__addr { font-size: 1.0rem; line-height: 1.5; }

@media print, screen and (max-width:680px) {
	.open .header { border-bottom: 1px solid rgba(255,255,255,0.6); }
	.header__cont { display: none; }
	.gnav-wrap { background: linear-gradient(60deg, rgba(60,65,76,1) 0%, rgba(0,0,0,1) 100%); }
	.gnav__inner { padding: 60px 30px 30px; }
	.gnav__info { margin-top: 50px; }
}


/* open */

.open .gnav-wrap { visibility: visible; opacity: 1; }


@media print, screen and (min-width:681px) {
	
	
	.header:after { position: absolute; left: 0; bottom: 0; display: block; width: 100%; height: 1px; background: rgba(255,255,255,0.60); content: ""; transition: 0.5s; opacity: 0; }
/*	.header:after { display: none; }*/
	.header__inner { position: relative; height: 76px; padding-left: 15px; margin-right: auto; }
	
	.header__logo__img a img { width: 170px; }
	.header__logo__fac { margin-left: 20px; padding-left: 20px; font-size: 2.0rem; line-height: 26px; }
	.header__logo__txt { width: auto; margin-top: 0; margin-left: 30px; }
	
	
	.header__cont { position: relative; display: flex; justify-content: center; align-items: center; overflow: hidden; width: 270px; height: 40px; margin-right: 110px; background: linear-gradient(60deg, rgba(128,1,88,1) 0%, rgba(95,0,112,1) 100%); border-radius: 4px; font-size: 1.4rem; font-weight: 500; line-height: 1; color: #fff; opacity: 1; transition: 0.5s; }
	.header__cont span:nth-child(1) { order: 1; }
	.header__cont:before { order: 2; width: 1px; height: 13px; background: #fff; margin-left: 10px; margin-right: 10px; content: ""; }
	.header__cont span:last-child { order: 3; }
	.header__cont:after { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255,255,255,0.30); content: ""; transition: 0.5s; pointer-events: none; opacity: 0; }
	.header__cont:hover:after { opacity: 1; }
	
	.open .header { background-color: rgba(0,0,0,0.50); }
	.open .header:after { opacity: 1; }
	.open .header__cont { opacity: 0; pointer-events: none; }
	
	
	.gnav-wrap { background: url("../img/bg_gnav.jpg") no-repeat 0% 100%/contain #000; }
	#nav-toggle { top: 24px; right: 24px; height: 30px;}
	#nav-toggle > div { width: 40px; }
	#nav-toggle span { height: 3px; border-radius: 1.5rem; }
	#nav-toggle span:nth-child(1) { top: 0; }
	#nav-toggle span:nth-child(2) { top: 13px; }
	#nav-toggle span:nth-child(3) { top: 25px; width: 32px; }
	#nav-toggle:hover span:nth-child(1) { top: 3px; }
	#nav-toggle:hover span:nth-child(3) { top: 23px; }
	.open #nav-toggle span:nth-child(1) { top: 15px; }
	.open #nav-toggle span:nth-child(3) { top: 15px; width: 100%; }
	.gnav__inner { display: flex; justify-content: flex-end; padding: 115px 90px 40px 40px; }
	.gnav { width: 398px; }
	
	.gnav__list__item a { height: 64px; font-size: 2.0rem; }
	.gnav__list__item--lv1 > a:before { margin-right: 14px; margin-left: 13px; }
	.gnav__list__item--lv1 > a.has-en:after { margin-top: 6px; margin-left: 20px; font-size: 1.3rem; }
	.gnav__list__item ul li { margin-left: 40px; }
	.gnav__list__item ul li a:before { margin-left: 20px; }
	
	.gnav__info { position: absolute; left: 40px; bottom: 40px; }
	.gnav__info__tel { display: flex; align-items: center; }
	.gnav__info__tel__num { display: flex; align-items: center; margin-bottom: 0; }
	.gnav__info__tel__txt { margin-top: 4px; }
	.gnav__info__tel__txt strong { font-size: 1.6rem; }
	.gnav__info__tel__txt span { font-size: 1.5rem; }

	.gnav__info__name { margin-top: 28px; margin-bottom: 18px; font-size: 1.7rem; }
	.gnav__info__addr { font-size: 1.1rem; line-height: 1.818; }
	
}
@media print, screen and (max-width:959px) {
	.header__mes { display: none; }
}
@media print, screen and (min-width:681px) and (max-width:1219px) {
	.gnav__inner { width: 1100px; left: 50%; transform: translateX(-50%); }
}

@media print, screen and (min-width:1221px) {
	.header__mes { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
}
@media print, screen and (min-width:1401px) {
	.gnav__inner { padding-right: 15%; }
}

.footer { background-color: #000; padding-top: 75px; padding-bottom: 90px; color: #fff; }
.footer__inner { width: calc(100% - 60px); margin-left: auto; margin-right: auto; margin-bottom: 75px; }
.footer__logo { text-align: center; }
.footer__cont { font-family: YakuHanMP_Noto, "Noto Serif JP", serif; }
.footer__cont__tel__num { display: flex; align-items: center; font-size: 2.6rem; font-weight: 400; line-height: 1; color: #fff; }
.footer__cont__tel__num:before { content: "p"; font-family: 'bje' !important; font-size: 2.6rem; margin-right: 3px; margin-bottom: -7px; color: #ccc; }
.footer__cont__tel__time { font-size: 1.5rem; line-height: 1; }
.footer__cont__tel__time small { font-size: 1.4rem; }
.footer__cont__txt { font-size: 1.1rem; font-weight: 400; line-height: 1.818; text-align: left; }
.copyright { font-size: 1.0rem; font-weight: 400; line-height: 1; text-align: center; }
@media print, screen and (max-width:680px) {
	.footer__logo { margin-bottom: 45px; }
	.footer__logo img { width: 118px; margin-left: 20px; }
	.footer__cont__tel { border: 1px solid rgba(255,255,255,0.7); margin-bottom: 15px; padding: 20px 0 20px; text-align: center; }
	.footer__cont__tel__num { justify-content: center; margin-bottom: 18px; }
}
@media print, screen and (min-width:681px) {
	.footer { padding-top: 70px; padding-bottom: 24px; }
	.footer__inner { display: flex; align-items: center; width: 1220px; margin-left: auto; margin-right: auto; margin-bottom: 60px; }
	.footer__logo { order: 1; width: 140px; margin-right: 80px; }
	.footer__inner:before { order: 2; width: 1px; height: 134px; background: #fff; margin-right: 58px; content: ""; }
	.footer__cont { order: 3; }
	.footer__cont__tel { display: flex; align-items: center; margin-bottom: 20px; }
	.footer__cont__tel__num { font-size: 2.4rem; }
	.footer__cont__tel__time { margin-left: 10px; font-size: 1.6rem; }
	.footer__cont__tel__time small { font-size: 1.5rem; }
	
	
}


.container { overflow: hidden; background-color: #000; }




.hover-zoom {
	display: block;
	overflow: hidden;
}




@media screen and (min-width: 681px) {
	
	.zoombtn:hover::before { opacity: 0.75; }
	.hover-zoom img.zoom { transition: transform .3s ease-out; }
	.hover-zoom:hover img.zoom { transform: scale(1.1); }
	
}


@media screen and (min-width: 681px) {
	
	
}


/**********************************************************
*　常時固定ボタン
**********************************************************/
.fixed-button { position: fixed; bottom: 0; left: 50%; transform: translate(-50%, 100%); opacity: 0; display: flex; justify-content: center; align-items: center; width: calc(100% - 30px); padding-bottom: 15px; transition: 0.5s; z-index: 100; }
.fixed-button__btn:nth-child(1) { flex: 1; margin-right: 13px; }
.fixed-button__btn__contact { position: relative; display: flex; justify-content: center; align-items: center; overflow: hidden; width: 100%; height: 50px; background: linear-gradient(60deg, rgba(128,1,88,1) 0%, rgba(95,0,112,1) 100%); border-radius: 25px; font-size: 1.4rem; font-weight: 500; line-height: 1; color: #fff; opacity: 1; transition: 0.5s; }
.fixed-button__btn__contact span:nth-child(1) { order: 1; }
.fixed-button__btn__contact:before { order: 2; width: 1px; height: 13px; background: #fff; margin-left: 10px; margin-right: 10px; content: ""; }
.fixed-button__btn__contact span:last-child { order: 3; }
.fixed-button__btn__contact:after { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255,255,255,0.30); content: ""; transition: 0.5s; pointer-events: none; opacity: 0; }
.fixed-button__btn__contact:hover:after { opacity: 1; }

.fixed-button__btn__go2top { display: flex; justify-content: center; align-items: center; width: 50px; height: 50px; background: linear-gradient(60deg, rgba(128,1,88,1) 0%, rgba(95,0,112,1) 100%); border-radius: 50%; font: 500 4.2rem 'bje'; line-height: 1; color: #fff; }


@media print, screen and (max-width: 374px) {
	.fixed-button__btn__contact { width: 260px; font-size: 1.3rem; }
}
@media screen and (max-width: 680px) {
	.fixed-button.is-visible { opacity: 1; transform: translate(-50%, 0); }
	.go2top--pc { display: none; }
}

@media screen and (min-width: 681px) {
	.fixed-button { display: none; }
	.go2top--pc { position: fixed; right: 50px; bottom: 0; display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border: 1px solid #fff; border-radius: 50%; font: 500 7.0rem 'bje'; line-height: 1; color: #fff; opacity: 0; transition: 0.5s; z-index: 100; }
	.go2top--pc.is-visible { bottom: 130px; opacity: 1; }
	.go2top--pc:hover { box-shadow: 0px 0px 20px 2px rgba(0, 0, 0, 0.3); }
}

.img__fit{ height: inherit; object-fit: cover; font-family: 'object-fit: cover'; }/*IE・Edge用コード*/


/*************************************************************************************************************************
* slick style
*************************************************************************************************************************/
.slick-dots { bottom: -33px; }
.slick-dots li { margin: 0 4px; }
.slick-dots li { width: 16px; height: 16px; }
.slick-dots li button { width: 10px; height: 10px; background-color: rgba(255,255,255,0.5); border-radius: 50%;  margin: 4px; padding: 0; }
.slick-dots li button::before { display: none; }
.slick-dots li.slick-active button { background-color: rgba(255,255,255,1.0); }


@media screen and (min-width: 681px) {
	a[href^="tel:"] { pointer-events: none; }
}
