@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&family=Noto+Serif+JP:wght@500&display=swap');



/*	RESET CSS
================================================== */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}
body {line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
a { text-decoration:none;outline:0;-webkit-tap-highlight-color:rgba(0,0,0,0);}



/*	BASE
================================================== */
html{
	font-size:10px;
	overflow-y:scroll !important;
	overflow-x:hidden;
}

body{
	font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
	font-size:1.4rem;
	color:#333;
	background:#fff;
	overflow:hidden !important;
}

input,select,textarea {
	font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	font-size:inherit;
	color:inherit;
}

input[type="text"],
input[type="date"],
input[type="tel"],
input[type="email"],
input[type="file"],
input[type="submit" i],
select,
textarea{
	appearance: none;
	-webkit-appearance: none;
	border-radius:0;
	box-sizing: border-box;
}

input[type="radio"]{
	width: auto;
}

input[type="text"]:focus,
input[type="date"]:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="file"]:focus,
select:focus,
textarea:focus {
	outline: none;
	border: 1px solid #93BECB;
	box-sizing: border-box;
}

a {
	color:#333;
	text-decoration:none;
	transition: 0.5s;
}

a:hover {
	opacity:0.7;
	transition: 0.5s;
}

*,
*:before,
*:after {
	box-sizing: border-box;
}

img{
	max-width:100%;
	height:auto;
	vertical-align:top;
	box-sizing: content-box;
}

@media screen and (max-width: 320px) {

	html{ font-size:9px; }

}

@media screen and (max-width: 834px) {

	.pc { display:none !important; }
	img { width:100%; }

}

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

	.sp { display:none !important; }
	.tb { display:block !important; }
	a[href*="tel:"] { cursor: default; text-decoration: none; color:inherit; }
	a[href*="tel:"]:hover { opacity:1; }

}

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

	body{
		font-size:1.5rem;
	}
	.tb { display:none !important; }

}



/*	SLIDEBARS
================================================== */
[canvas=container] {
	background-color: transparent !important;
}
[off-canvas] {
	background:#333 !important;
	color: #fff !important;
}
[canvas=container] {
	margin:0 0 0 !important;
	overflow:hidden !important;
}
[canvas=header]{
	position:fixed;
	top:0;
	background:transparent;
	z-index:999 !important;
}
#btn-open{
	position:fixed;
	top:0;
	right:0;
	width:60px;
	height:60px;
	margin:0;
	background:#333 url(../img/open.svg) no-repeat center center;
	background-size:26px 100%;
	z-index:999 !important;
}
#btn-close {
	position:absolute;
	top:0;
	right:0;
	width:60px;
	height:60px;
	margin:0;
	background:transparent url(../img/close.svg) no-repeat center center;
	background-size:26px 100%;
}
.header-nav__menu__contact{
	position:absolute;
	top:0;
	right:60px;
	width:60px;
	height:60px;
	border-right:1px solid #fff;
	background:#93BECB url(../img/icn_mail.svg) no-repeat center center;
	background-size:26px 100%;
}
#sidemenu{
	width:100%;
}
.sidemenu__lst{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
}
.sidemenu__lst li{
	letter-spacing:.1em;
	line-height:50px;
}
.sidemenu__lst a{
	display:block;
	font-size:1.3rem;
	color:#fff;
}
.sidemenu__lst a span{
	font-family: 'Libre Baskerville', serif;
	font-size:1.7rem;
	font-style:italic;
	padding-right:10px;
}
.sidemenu__lst__sns{
	margin-top:10px;
	margin-left: -10px;
	overflow:hidden;
}
.sidemenu__lst__sns a{
	display:block;
	float:left;
}
.sidemenu__lst__sns img{
	width:40px;
}

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

	#sidemenu{
		width:30%;
	}
	.sidemenu__lst{
		top: 100px;
		left: 60px;
		transform: none;
		width: 70%;
	}

}



/*	SLICK
================================================== */

/* ロード時 */
.slider__lst__item {
	display: none;
}
.slider__lst__item.slick-slide {
	display: block;
}

/* Arrow */
.slick-arrow{
	position: absolute;
	z-index: 1;
	top: 20%;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	background-color: transparent;
	cursor: pointer;
	outline: none;
	appearance: none;
	font-size:0;
}
.slick-prev{
	left:-20px;
	background: url(../img/prev.svg) no-repeat 0 0;
	background-size:40px auto;
}
.slick-next{
	right:-20px;
	background: url(../img/next.svg) no-repeat 0 0;
	background-size:40px auto;
}

/* カスタマイズ */
.slider__lst__item {
	position:relative;
}
.slider__lst__item__img {
	display: block;
	position: relative;
	max-width: 100%;
	margin-bottom:15px;
}
.slider__lst__item__img::before {
	content: "";
	display: block;
	padding-top: 70%;
}
.slider__lst__item__img img {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	object-fit: cover;
}
.slider__lst__item__ttl{
	margin:0 8%;
	font-size:1.6rem;
}
.slider__lst__item__cat{
	margin:0 8% 10px;
	font-size:1.3rem;
	letter-spacing:.2em;
	color:#5A91A3;
}
.slider__lst__item .link_btn{
	margin:0 8%;
}

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

	.slick-arrow{
		top: 20%;
		width: 50px;
		height: 50px;
	}
	.slick-prev{
		left:-50px;
		background-size:50px auto;
	}
	.slick-next{
		right:-50px;
		background-size:50px auto;
	}

	.slider__lst__item{
		margin-bottom:0;
	}
	.slider__lst__item__ttl,
	.slider__lst__item__cat,
	.slider__lst__item .link_btn{
		margin-left:0;
		margin-right:0;
	}

}



/*	COMMON
================================================== */

h1,h2,h3,h4,h5,h6{
	font-weight:normal;
}

main{
	max-width:1366px;
	margin:0 auto 100px;
	padding-top:0;
}

section{
	margin:0 auto;
	overflow:hidden;
}

section p{
	line-height:2.2;
	margin-bottom:40px;
}

p{
	letter-spacing:.04em
}

* p:last-child{
	margin-bottom:0;
}

figure img {
	width:100%;
	height:auto;
}

strong{
	font-weight:700;
	color:#111;
}

.st{
	font-weight:700;
	color:#5A91A3;
}
/*
.un{
	background:linear-gradient(transparent 70%, #FDD995 70%);
}

.yoin{
	letter-spacing: -5px;
}
*/
.small{
	font-size:80%;
}

.large{
	font-size:120%;
}

.link_btn{
	display:block;
	width:70%;
	margin:0 auto;
	max-width:280px;
	text-align:center;
	border:1px solid #999;
	height:42px;
	line-height:42px;
	cursor: pointer;
}
.link_box:before{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-indent: -9999px;
	outline: none;
	border-bottom: 0px;
}
.link_box:hover:before{
	opacity:.2;
	background:#fff;
	transition: 1s;
}

.link_dir{
	display:block;
	width:220px;
	margin: 0 auto;
	padding-right:5px;
	text-align: center;
	line-height:2;
	font-family: 'Libre Baskerville', serif;
	font-style: italic;
	font-size:1.5rem;
	letter-spacing:.1em;
}
.link_dir:after {
	content:"";
	display:block;
	width: 100%;
	height: 8px;
	border-bottom: 1px solid #999;
	border-right: 1px solid #666;
	transform: skew(45deg);
}

.send_btn{
	display:block;
	width:100%;
	margin:0 auto;
	font-size:1.6rem;
	letter-spacing: .15em;
	color: #fff;
    background: #333;
}

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

	section p{
		margin-bottom:60px;
	}

	.link_dir{
		font-size:1.5rem;
	}
	.link_dir--right{
		float:right;
	}

	.send_btn{
		width:70%;
	}

}



/*	HEADER & FOOTER
================================================== */

.header{
	position: relative;
    z-index: 3;
}
.header__ttl{
    position: absolute;
	top:0;
	left:0;
	margin:17px 0 0 20px;
	font-size:1.1rem;
	letter-spacing:.1em;
	line-height:1.5;
}
#top .header__sns {
    position: absolute;
	top:77%;
}
.header__sns,
#top .header__sns.fix {
    position: fixed;
	top:0;
	right:0;
	width:60px;
}
.header__sns__lst{
	padding-top:100px;
}
.header__sns__lst a{
	display:block;
	width:40px;
	margin:0 auto 10px;
}

.footer__info{
	padding:0 8%;
	line-height:2;
	color:#777;
}
.footer__info a{
	color:#777;
}
.footer__logo{
	margin-bottom:80px;
}
.footer__logo__img{
	display:block;
	width:260px;
	margin-bottom:30px;
}
.footer__sns{
	display:flex; flex-wrap: wrap;
	justify-content: center;
	margin:40px auto;
}
.footer__sns li{
	margin-left:10px;
}
.footer__sns a{
	display:block;
	width:50px;
	height:50px;
}
.footer__sns a img{
	width:100%;
}
.footer__copy{
	width:120%;
	margin-left:-10%;
	padding:25px 0;
	border-top:1px solid #eee;
	text-align:center;
	font-family: 'Libre Baskerville', serif;
	font-style: italic;
	font-size:1.1rem;
	letter-spacing:.1em;
}

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

	.header__ttl{
		margin:30px 0 0 30px;
		font-size:1.2rem;
		letter-spacing:.1em;
	}
	#top .header__sns {
		top:520px;
	}

	.footer__logo{
		float:left;
	}
	.footer__nav{
		display:flex; flex-wrap: wrap;
		justify-content: right;
		font-family: 'Libre Baskerville', serif;
		font-style: italic;
		font-size:1.4rem;
		letter-spacing:.1em;
		color:#333;
	}
	.footer__nav a{
		line-height:40px;
		color:#333;
	}
	.footer__nav a:before{
		content:"-";
		padding-left:50px;
		padding-right:10px;
		line-height: 40px;
	}
	.footer__sns{
		display:flex; flex-wrap: wrap;
		justify-content: right;
		margin:20px 0 20px 20px;
	}
	.footer__sns a{
		width:40px;
		height:40px;
	}
	.footer__copy{
		clear:both;
		font-size:1.2rem;
	}

}



/*	TOP
================================================== */

.sec{
	padding:0 8% 100px;
}
.sec:last-child{
	padding-bottom:0;
}
.sec__ttl{
	margin-bottom:50px;
	text-align:center;
	font-family: 'Noto Serif JP', serif;
	font-size: 2.2rem;
    line-height: 1.6;
	letter-spacing:.1em;
}
.sec__ttl span{
	display:block;
	padding-top:10px;
	font-family: 'Libre Baskerville', serif;
	font-style: italic;
	font-size:1.4rem;
	color:#999;
}

.mv{
	position:relative;
	z-index:2;
	clip-path: polygon(0 0, 100% 0%, 100% 97%, 50% 100%, 0 97%);
}
.mv__logo{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-60%) translateX(-50%);
}
.mv__logo__img{
	display:block;
	width:140px;
	margin:0 auto 40px;
}
.mv__logo__txt{
	font-family: 'Libre Baskerville', serif;
	font-size:1.3rem;
	font-style:italic;
	letter-spacing:.2em;
	text-align:center;
}
.mv__scroll{
	position:absolute;
	bottom:10%;
	left: 51%;
	transform: translateX(-50%);
	width:10px;
	height:62px;
	z-index:2;
}

.fadein {
	opacity: 0;
	animation: fadein 2s ease forwards;
}
@keyframes fadein {
	100% {  opacity: 1;}
}
.fadein.mv__logo__img {animation-delay: 1s;}
.fadein.mv__logo__txt {animation-delay: 2s;}
.fadein.mv__scroll {animation-delay: 3s;}

@media screen and (max-width: 834px) {

	.mv__slider__item__img {
	height: 95vh;
	margin: auto;
	max-height: 100%;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
	}

}

.concept{
	position:relative;
	margin-top:-45px;
	padding-top:175px;
    padding-bottom: 50px;
	background:url(../../img/concept_bg.svg) no-repeat -100px 10px;
	background-size:400px auto;
}
.concept:after{
	content: "";
    display: block;
    width: 100%;
    height: 22px;
    background: url(../img/above.svg) no-repeat center center;
    background-size: 100px auto;
    margin-top: 50px;
}
.concept__txt{
	margin-bottom:20px;
	line-height:2.5;
}

.theme__cont{
	margin-bottom:60px;
}
.theme__cont__img{
	margin-bottom:30px;
}
.theme__cont__img img{
	width:100%;
	height:100%;
	object-fit: cover;
}
.theme__cont__ttl{
	margin-bottom:30px;
	font-size:2.2rem;
	text-align:left;
}
.theme__cont__ttl span{
	padding-bottom:20px;
}
.theme__cont:last-child{
	margin-bottom:0;
}

.products{
	padding-top:100px;
	background:#f8f8f8 url(../../img/products_bg.svg) no-repeat 100px -150px;
	background-size:400px auto;
}
.products__slider__item{
	margin-bottom:60px;
}
.products__slider__item__img{
	margin-bottom:30px;
}
.products__slider__item__ttl{
	margin-bottom:10px;
	font-family: 'Noto Serif JP', serif;
	font-size:1.8rem;
}
.products__btn .products__btn__viewall{
	display:none;
}
.slick-slider + .products__btn .products__btn__viewall{
	display:block;
}
.products__btn .products__btn__contact{
	display:block;
	color:#fff;
	background:#333;
	border:0;
}
.slick-slider + .products__btn .products__btn__contact{
	display:none;
}

.company{
	width:116%;
	margin-left:-8%;
}
.company__bg{
	height:240px;
	overflow:hidden;
}
.company__txtarea{
	padding:80px 8% 0;
	background:#fff;
	overflow:hidden;
}
.company__txt .sec__txt{
	margin-bottom:20px;
}

.contact{
	padding-top:100px;
	margin-bottom:80px;
	background:#E5ECED;
	clip-path: polygon(50% 7%, 100% 0%, 100% 100%, 0 100%, 0 0);
}
.contact__ttl{
	margin-bottom:20px;
}
.contact__txt{
	margin-bottom:40px;
	line-height:1.8;
}
.contact__link{
	color:#fff;
	background:#333;
	border:0;
}

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

	.sec{
		padding-bottom:120px;
	}
	.sec__ttl{
		font-size:2.8rem;
	}
	.sec__ttl span{
		font-size:1.7rem;
	}

	.mv{
		clip-path: polygon(0 0, 100% 0%, 100% 95%, 50% 100%, 0 95%);
	}

	.concept{
		background:url(../../img/concept_bg.svg) no-repeat -50px top;
		background-size:450px auto;
	}
	.concept__txt{
		text-align:center;
	}

	.theme{
		padding:0;
	}
	.theme__cont{
		display:flex; flex-wrap: wrap;
		margin-bottom:0;
	}
	.theme__cont:nth-of-type(odd){
		display:flex; flex-wrap: wrap;
		flex-direction: row-reverse;
		margin-bottom:0;
	}
	.theme__cont__img{
		width:50%;
		margin-bottom:0;
	}
	.theme__cont__txtarea{
		width:50%;
		margin-bottom:0;
		padding:100px 8%;
	}
	.theme__cont__ttl{
		font-size:2.4rem;
	}
	.theme__cont__ttl span{
		font-size:1.6rem;
	}

	.products{
		padding-top:120px;
		background:#f8f8f8 url(../../img/products_bg.svg) no-repeat 110% -170px;
		background-size:450px auto;
	}
	.products__slider{
		margin:0 -20px;
		display:flex; flex-wrap: wrap;
	}
	.products__slider__item{
		width:calc(100%/3);
		padding:0 20px;
	}

	.company__bg {
		height: 370px;
	}
	.company__txtarea{
		display:flex; flex-wrap: wrap;
		padding:100px 10% 0;
		background:#fff;
	}
	.company__ttl{
		width:40%;
		text-align:left;
	}
	.company__txt{
		width:60%;
		overflow:hidden;
	}

	.contact{
		margin-right:4%;
		margin-left:4%;
		padding-bottom:80px;
	}
	.contact__ttl{
		font-size:2.6rem;
	}
	.contact__txt{
		text-align:center;
	}

}



/*	PAGE
================================================== */

.page__ttl{
    padding-top: 140px;
}



/*	COMPANY
================================================== */

.sec_company__table{
	font-size:1.4rem;
}
.sec_company__table dt{
	padding:0 0 10px;
	border-bottom:1px solid #333;
	line-height: 2.2;
}
.sec_company__table dd{
	padding:12px 0;
	margin-bottom:18px;
}

.link_txt{
	border-bottom:1px solid #333;
}

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

	.sec_company__table{
		overflow:hidden;
	}
	.sec_company__table dt{
		padding:20px 0;
		border-bottom:0;
		float:left;
	}
	.sec_company__table dd{
		padding:20px 0 20px 25%;
		border-bottom:1px solid #333;
		margin-bottom:0px;
	}

	.sec_article{
		max-width:750px;
		margin-right:auto;
		margin-left:auto;
		padding-right:0;
		padding-left:0;
	}

}



/*	CONTACT
================================================== */

.page_contact .contact{
	display: none;
}
.page_contact .footer__info{
	border-top: 1px solid #eee;
	padding-top:80px;
}

.notice{
	font-size:1.3rem;
	font-weight:500;
	letter-spacing:.05em;
}

.sec_mailform__form{
	line-height:2;
	font-size:1.4rem;
}
.sec_mailform__form dt{
	margin-bottom:20px;
	padding:10px 15px;
	background:#f8f8f8;
}
.sec_mailform__form dd{
	margin-bottom:30px;
}
.sec_mailform__form label{
	display:block;
	margin-bottom:10px;
}
.sec_mailform__form textarea{
	height:10em !important;
}
.sec_mailform__form input[type="submit" i] {
	border: 0;
	font-weight: 700;
	line-height: 2;
	border-radius:6px;
	cursor: pointer;
	transition: 0.5s;
}
.sec_mailform__form input[type="submit" i]:hover {
	opacity: 0.7;
	transition: 0.5s;
}

.sec_mailform__txt--thanks{
	text-align:center;
}

div#mfp_hidden {
	overflow: hidden;
	width: 1px;
	height: 1px;
	padding: 0px;
	margin: 0px;
}

div#mfp_hidden input {
	margin: 10px;
}

div.mfp_err {
	color: #CD5C5C;
}

.problem {
	background-color: #FFFFE0;
}


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

	.sec_mailform__txt{
		text-align:center;
	}
	.sec_mailform__form dt {
		width: 30%;
		float: left;
		clear: both;
		height: 40px;
		line-height: 40px;
		padding: 0 15px;
	}
	.sec_mailform__form dd {
		width: 70%;
		float: left;
		padding-left: 30px;
	}
	input[type="text" i] {
		height: 40px;
		line-height: 40px;
	}

}



/*	SNS ICONS
================================================== */

.header__sns__lst,
.footer__sns,
.sidemenu__lst__sns{
	display:none;
}
