@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho&display=swap');



/*  ----------------------------------------------------------

index

----------------------------------------------------------  */
/* kv */
.top-kv {
	position: relative;
	padding: 6rem 6rem 10rem 0;
	display: flex;
	align-items: center;
}
.lower .top-kv {
	padding: 6rem 6rem 0 0;
}
.top-kv::before {
	content: "";
	background: url(../img/bg-texture2.jpg) center top;
	background-size: 60rem auto;
	width: 60%;
	height: 56rem;
	position: absolute;
	right: 0;
	top: 0;
	z-index: -1;
}
.top-kv > div {
	width: 70%;
}
.top-kv-slider > * {
	width: 100%;
	height: 64rem;
}
.top-kv-slider > *:nth-of-type(1) {
	background: url(../img/top-kv1.jpg) no-repeat center / cover;
}
.top-kv-slider > *:nth-of-type(2) {
	background: url(../img/top-kv2.jpg) no-repeat center / cover;
}
.top-kv-slider > *:nth-of-type(3) {
	background: url(../img/top-kv3.jpg) no-repeat center / cover;
}

/* intro */
.top-intro {
	padding: 6rem 0 6rem 15rem;
	position: relative;
	background: url(../img/bg-ptn.png) repeat-x center top;
	background-size: 6rem auto;
}
.top-intro::after {
	content: "";
	background: url(../img/bg-texture2.jpg) center top;
	background-size: 60rem auto;
	width: 100%;
	height: 28rem;
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
}
.top-intro > div {
	background: url(../img/bg-texture1.jpg) no-repeat center top;
	background-size: 140rem;
	padding: 3rem 15rem 3rem 3rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.top-intro > div > * {
	width: 46%;
}
.top-intro h2 {
	font-weight: normal;
	font-size: 3.6rem;
	line-height: 1.4;
	margin-bottom: 2rem;
	color: var(--primary);
}
.top-intro p {
	padding-bottom: 3rem;
}

/* shop */
.top-shop {
	padding: 10rem 15rem;
}
.top-shop ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: -3rem;
}
.top-shop ul li {
	width: 48.5%;
	margin-bottom: 3rem;
}
.top-shop a {
	display: block;
	background: url(../img/bg-texture2.jpg) center top;
	background-size: 60rem auto;	
	color: #fff;
	position: relative;
}
.top-shop strong {
	font-weight: normal;
	display: block;
	font-size: 2.6rem;
	text-align: center;
	line-height: 1;
	padding: 3rem 0 4rem 0;
	letter-spacing: 0.1em;
}
.top-shop a span {
	display: block;
	width: 6rem;
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 999;
}
.top-shop a::after {
	content: "";
	width: calc(100% - 2rem);
	height: calc(100% - 2rem);
	border: solid 1px rgba(255,255,255,0.5);
	position: absolute;
	left: 0.85rem;
	top: 0.85rem;
}

/* howto */
.top-howto {
	background: 
		url(../img/deco1.png) no-repeat left top 6rem,
		url(../img/deco2.png) no-repeat right top 6rem;
	background-size: 
		30rem auto,
		20rem auto;
	background-color: rgba(0,0,0,0.05);
	padding: 10rem 15rem;
}
.top-howto > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.top-howto > div > *:first-of-type {
	width: 55%;
}
.top-howto > div > *:last-of-type {
	width: 40%;
}
.top-howto h3 {
	font-weight: normal;
	color: var(--primary);
	font-size: 2.4rem;
	line-height: 1.6;
	margin-bottom: 2rem;
	text-align: right;
}
.top-howto p {
	margin-bottom: 4rem;
}
.top-howto a {
	display: block;
	width: 24rem;
	padding: 0.5rem;
	background: url(../img/arrow2.png) no-repeat right 1.5rem center;
	background-size: 1.6rem auto;
	background-color: #313131;
	text-align: center;
	line-height: 1;
	color: #fff;
	margin-left: auto;
}
.top-howto span {
	display: block;
	padding: 1.6rem 0;
	border: solid 1px #adadad;
}

/* company */
.top-company {
	padding: 10rem 15rem;
}
.top-company dl {
	margin-bottom: 4rem;
}
.top-company > div a {
	display: block;
	width: 24rem;
	padding: 0.5rem;
	background: url(../img/arrow2.png) no-repeat right 1.5rem center;
	background-size: 1.6rem auto;
	background-color: #313131;
	text-align: center;
	line-height: 1;
	color: #fff;
	margin: 0 auto;
}
.top-company > div a span {
	display: block;
	padding: 1.6rem 0;
	border: solid 1px #adadad;
}

@media screen and (max-width: 767px) {
	/* kv */
	.top-kv {
		display: block;
		padding: 0 0 8rem 0;
	}
	.lower .top-kv {
		padding: 0;
	}
	.top-kv::before {
		background: none;
	}
	.top-kv > div {
		width: 100%;
	}
	.top-kv-slider > * {
		height: 36rem;
	}

	/* intro */
	.top-intro {
		padding: 6rem 3rem;
	}
	.top-intro::after {
		background: none;
	}
	.top-intro > div {
		background: none;
		padding: 0;
		display: block;
	}
	.top-intro > div > * {
		width: 100%;
	}
	.top-intro p {
		padding-bottom: 0;
		padding-top: 2rem;
	}

	/* shop */
	.top-shop {
		padding: 0 3rem 10rem 3rem;
	}
	.top-shop ul {
		display: block;
	}
	.top-shop ul li {
		width: 100%;
	}

	/* howto */
	.top-howto {
		background-size: 
			16rem auto,
			12rem auto;
		padding: 10rem 3rem;
	}
	.top-howto > div {
		display: block;
	}
	.top-howto > div > *:first-of-type {
		width: 100%;
		margin-bottom: 2rem;
	}
	.top-howto > div > *:last-of-type {
		width: 100%;
	}
	.top-howto h3 {
		text-align: left;
	}
	.top-howto a {
		width: 100%;
	}

	/* company */
	.top-company {
		padding: 10rem 3rem;
	}	
}




/*  ----------------------------------------------------------

persist-header 

----------------------------------------------------------  */
.persist-header {
	left: 0;
	top: -6rem;
	position: fixed;
	width: 100%;
	height: 6rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	padding: 0;
	background: url(../img/bg-texture2.jpg) center top;
	background-size: 60rem auto;	
}
.persist-header ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	justify-content: center;
}
.persist-header ul li {
	letter-spacing: 0.08em;
	margin: 0 2rem;	
	font-size: 1.4rem;
}
.persist-header a {
	color: #fff;
}
.persist-header a {
	display: inline-block;
	position: relative;
	text-decoration: none;
}



/*  ----------------------------------------------------------

shop

----------------------------------------------------------  */
.shop-img {
	display: flex;
	justify-content: space-between;
	margin-bottom: 4rem;
}
.shop-img li {
	width: 32%;
}
@media screen and (max-width: 767px) {
	.shop-img {
		display: block;
	}
	.shop-img li {
		width: 100%;
		margin-bottom: 1rem;
	}
}



/*  ----------------------------------------------------------

tab

----------------------------------------------------------  */
.tab-wrap {
    display: flex;
    flex-wrap: wrap;
	justify-content: space-between;
}
.tab-label {
    color: #fff;
    background: #aaa;
    padding: 1.5rem 0;
    order: -1;
	width: 49%;
	text-align: center;
	margin-bottom: 3rem;
}
.tab-label:hover {
	cursor: pointer;
}
.tab-content {
    width: 100%;
    display: none;
}
.tab-switch:checked+.tab-label {
    background: var(--primary);
}
.tab-switch:checked+.tab-label+.tab-content {
     display: block;
}
.tab-switch {
    display: none;
}



/*  ----------------------------------------------------------

howto

----------------------------------------------------------  */
.howto-wrap li {
	display: flex;
	background: #fff;
	box-shadow: 0 0 8px rgba(0,0,0,0.05);
}
.howto-wrap li:not(:last-child) {
	margin-bottom: 4rem;
}
.howto-wrap li > * {
	width: 50%;
}
.howto-wrap li > *:last-of-type {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3rem;
}
.howto-wrap li dl {
	text-align: center;
}
.howto-wrap li dl dt {
	color: var(--primary);
	line-height: 1;
	font-size: 5.6rem;
	margin-bottom: 2rem;
}
.howto-wrap li dl dd {
	font-size: 2.2rem;
}
@media screen and (max-width: 767px) {
	.howto-wrap li {
		display: block;
	}
	.howto-wrap li > * {
		width: 100%;
	}
	.howto-wrap li > *:last-of-type {
		padding: 3rem 2rem;
	}
	.howto-wrap li dl {
		text-align: center;
	}
	.howto-wrap li dl dt {
		margin-bottom: 1rem;
	}
	.howto-wrap li dl dd {
		font-size: 2.0rem;
	}
}

/*  ----------------------------------------------------------

news

----------------------------------------------------------  */


.top-news {
	padding: 10rem 15rem;
	background-size: 100% auto;
}

.top-news .more {
	margin: 6rem auto 0 auto;
}

.top-news .CMS-NEWS-MORE-READ {
	display: none;
}

.top-news .CMS-NEWS-INDEX {
	padding-bottom: 0;
}

.CMS-NEWS-INDEX {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	padding-bottom: 10rem;
}

.CMS-NEWS-INDEX>* {
	width: 31%;
	margin-right: 3.5%;
}

.CMS-NEWS-INDEX>*:nth-of-type(3n) {
	margin-right: 0;
}

.CMS-NEWS-INDEX>*:nth-of-type(n + 4) {
	margin-top: 3.5rem;
}

.CMS-NEWS-ITEM a {
	transition: all .3s;
	display: block;
}

.CMS-NEWS-ITEM a:hover {
	opacity: 0.6;
}

.CMS-NEWS-TIME {
	font-size: 1rem;
	margin: 1.8rem 0 0.6rem 0;
	line-height: 1;
	color: #000;
}

.CMS-NEWS-LINK {
	font-size: 1.4rem;
	line-height: 1.8;
	color: #000;
}

.CMS-NEWS-INDEX>* img {
	height: 20rem;
	width: 100%;
	object-fit: cover;
}

/* read more */
.CMS-NEWS-MORE-READ {
	background: #000;
	border: none;
	padding: 2rem 0 2.2rem;
	font-size: 1.2rem;
	color: #fff;
	text-align: center;
	margin: 0 auto;
	width: 31%;
	display: block;
	transition: all .3s;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
	-webkit-transform: translate(-50%, 0);
	font-family: 'Noto Serif JP', serif;
}

.CMS-NEWS-MORE-READ:hover {
	cursor: pointer;
	opacity: 0.6;
}

/* detail */
.CMS-NEWS-TITLE {
	border-bottom: solid 1px rgba(55, 48, 50, 0.4);
	font-size: 2.2rem;
	margin-bottom: 3rem;
	padding: 1rem 0 1.5rem 0;
	position: relative;
	font-weight: bold;
}

.CMS-NEWS-TITLE:after {
	border-bottom: solid 3px #333;
	bottom: -3px;
	content: " ";
	display: block;
	position: absolute;
	width: 20%;
}

.CMS-NEWS-CONTENT img {
	width: 80%;
	height: auto;
	display: block;
	margin: 0 auto 3rem auto;
}

@media screen and (max-width: 767px) {
	.top-news {
		padding: 10rem 3rem;
		background-size: 300% auto;
	}

	.top-news .more {
		margin: 5rem auto 0 auto;
	}

	.CMS-NEWS-INDEX {
		display: block;
	}

	.CMS-NEWS-INDEX>* {
		width: 100%;
		margin-right: 0;
	}

	.CMS-NEWS-INDEX>*:nth-of-type(n + 4) {
		margin-top: 0;
	}

	.CMS-NEWS-INDEX>*:nth-of-type(n + 2) {
		margin-top: 3.5rem;
	}

	.CMS-NEWS-TIME {
		margin: 1.5rem 0 0.3rem 0;
	}

	.CMS-NEWS-INDEX>* img {
		height: auto;
	}

	.CMS-NEWS-CONTENT img {
		width: 100%;
	}
}

.top-news-more {
    display: block;
    width: 24rem;
    padding: 0.5rem;
    background: url(../img/arrow2.png) no-repeat right 1.5rem center;
    background-size: 1.6rem auto;
    background-color: #313131;
    text-align: center;
    line-height: 1;
    color: #fff;
    margin: 0 auto;
	margin-top: 4rem;
}

.top-news > div a span {
    display: block;
    padding: 1.6rem 0;
    border: solid 1px #adadad;
}

.CMS-NEWS-CONTENT > pre{
	background: transparent;
	font-family: 'Shippori Mincho', serif;
}