@charset "utf-8";
@import url("../font/load.css");


/* CSS Document */

body {
	position: relative;
	min-width: 375px;
	font-size: 1.5rem;
	line-height: 1.8;
	overflow-x: hidden;
	z-index: 0;
}

body::before{
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: url(../img/official_shop_bg.jpg) no-repeat center / cover;
	z-index: -1;
}

/*========================================
headerの設定
==========================================*/

.head_fix,
.head_contents{
	display: none;
}

/*========================================
footerの設定
==========================================*/


footer{
	color: #fff;
	background: #000;
}

.side_bnr{
	display: none;
}

.f_inner{
	display: flex;
	flex-direction: column;
	align-items: center;
	width: calc(100% - 25px);
	margin: 0 auto;
	padding: 40px 0 20px;
	border-bottom: 1px solid #fff;
}

.f_logo{
	width: 65%;
	margin: 0 auto 40px;
}

.f_btn{
	max-width: 450px;
	margin: 0 auto 20px;
}

.f_ads{
	text-align: center;
	margin-bottom: 20px;
}

.f_btn a{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 47%;
	height: 45px;
	color: #000;
	background: #fff;
	font-size: 1.2rem;
	letter-spacing: 0.1em;
}

.f_btn a:not(:last-child){
	margin-right: 20px;
}

.f_sns{
	justify-content: center;
}

.f_sns a{
	display: block;
	width: 40px;
}

.f_sns a:not(:last-child){
	margin-right: 20px;
}

.f_nav{
	display: none;
}

.copyright_note{
	width: calc(100% - 25px);
	margin: 15px auto 15px;
}

#copyright{
	padding: 0 0 20px;
	text-align: center;
	font-size: 1.1rem;
}



/*========================================
メインビジュアルの設定
==========================================*/

.main_viusal{
	position: relative;
    padding-top: 45px;
	background: #fff;
}

.main_visual_img img{
	max-width: 100%;
	width: 100%;
	height: auto;
}

.release_visual{
	position: absolute;
	right: 13%;
	bottom: -105px;
	width: 41%;
	max-width: 383px;
	z-index: 10;
	animation: fluffy 2.5s infinite;
}

@keyframes fluffy {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-15px);
	}
}

.release_visual img{
	max-width: 100%;
	height: auto;
}

.release_visual_txt{
	position: absolute;
	top: -25%;
	right: -18%;
	width: 53%;
	z-index: 5;
}

/*========================================
TOPページ
==========================================*/

/*---------------------
about_contents
----------------------*/

.about_contents{
    overflow: hidden;
	background: #fff;
}

.about_contents .cmn_block{
	padding-bottom: 100px;
}

.about_ttl{
	text-align: left;
}

/*---------------------
various_contents
----------------------*/

.various_contents{
	position: relative;
	background: #fff393;
}

.various_contents::before{
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: -20px;
	width: 100%;
	height: 20px;
	background: url(../img/deco_item02.png) repeat-x center bottom;
	background-size: contain;
	z-index: 5;
}

.various_contents::after{
	content: '';
	display: block;
	position: absolute;
	top: -80px;
	right: 5px;
	width: 195px;
	height: 130px;
	background: url(../img/various_deco01.png) no-repeat center bottom;
	background-size: contain;
	z-index: 5;
}

.various_contents .cmn_ttl{
	margin-bottom: 40px;
}

.various_ttl .cmn_ttl_en img{
	height: 40px;
}

.various_about{
	display: block;
	margin-bottom: 20px;
}

.various_about_img{
	position: relative;
}

.various_about_img01{
	position: relative;
	max-width: 628px;
	margin: 0 auto 25px;
	z-index: 5;
}

.various_about{
	flex-wrap: nowrap;
}

.various_about_block_ttl{
	font-weight: 500;
	font-size: 1.8rem;
	margin-bottom: 30px;
}

.various_about_label{
	position: absolute;
	display: inline-block;
	left: 0;
	bottom: 15px;
	line-height: 1.5;
	background: #fff;
	padding: 7px 7px;
	font-weight: 600;
	font-size: 1.7rem;
	letter-spacing: 0.04em;
}

.various_gallery .various_about_label{
	font-size: 1.2rem;
	max-width: 95%;
}

.various_gallery{
	position: relative;
	margin-bottom: 3%;
	align-items: flex-start;
	justify-content: space-between;
}

.various_gallery .various_about_img{
	position: relative;
	z-index: 3;
	width: 48%;
}

.various_gallery .various_about_img:nth-last-child(3n){
	margin-bottom: 15px;
}

.various_gallery .various_about_img_big{
	/*width: min(34vw, 628px);*/
	position: relative;
	z-index: 0;
}

.various_about_end{
	position: relative;
	flex-direction: row-reverse;
	/*align-items: flex-end;*/
}

.various_about_end .various_about_img{
	max-width: 628px;
	margin: 0 auto 25px;
}

.various_about_end::before{
    content: '';
    display: block;
    position: absolute;
    top: 35px;
    right: -12px;
    width: 134px;
    height: 230px;
    background: url(../img/various_deco02.png) no-repeat center bottom;
    background-size: contain;
    z-index: 5;
}


/*---------------------
kinds_contents
----------------------*/

.kinds_contents{
	position: relative;
	display: block;
	background: #fff;
}

.kinds_contents::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: -20px;
	width: 100%;
	height: 20px;
	background: url(../img/deco_item01.png) repeat-x center bottom;
	background-size: contain;
	z-index: 5;
}

.kinds_contents::after {
	content: '';
	display: block;
	position: absolute;
	top: -60px;
	left: 5px;
	width: 120px;
	height: 134px;
	background: url(../img/kinds_contents_deco.png) no-repeat center bottom;
	background-size: contain;
	z-index: 5;
}

.kinds_contents_block{
	align-items: flex-start;
}

.kinds_item:not(:last-child){
	margin-bottom: 30px;
}

.kinds_item_ttl{
	margin: 0 auto 20px;
	width: 128px;
}

.kinds_item_type{
   text-align: center;
	font-size: 1.7rem;
	margin-bottom: 20px;
}

.kinds_item_type_detail{
	display: block;
	font-size: 1.2rem;
}

.kinds_item_img{
	width: 60%;
	text-align: center;
	max-width: 376px;
	margin: 0 auto 25px;
}


/*---------------------
product_contents
----------------------*/

.product_contents{
	background: #c8eef8;
}

.product_contents_block{
	max-width: 1080px;
}

.product_ttl{
	text-align: center;
}

.product_ttl .cmn_ttl_en{
	margin-left: auto;
	margin-right: auto;
}

.product_ttl .cmn_ttl_en img{
	height: 45px;
}

.product_ttl .cmn_ttl_txt{
	margin-left: 0;
}

.product_block{
	display: flex;
	flex-direction: column;
	width: 100%;
}

.product_block:not(:last-child){
	margin-bottom: 60px;
}

.product_block_ttl{
	text-align: center;
	font-size: 1.9rem;
	margin-bottom: 25px;
    font-weight: 500;
}

.product_tb{
	margin-bottom: 35px;
}

.product_tb th,
.product_tb td{
	display: block;
	padding: 10px 15px;
}

.product_tb th{
	padding-top: 7px;
	padding-bottom: 7px;
	text-align: center;
	background: #fff;
}

.product_block_btn{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 240px;
	height: 50px;
	transition: .5s;
	margin: auto auto 0;
	border-radius: 30px;
	background: #fff;
}

.product_block_btn::before{
	content: '';
	position: absolute;
	top: 50%;
	right: 25px;
	transform: translateY(-50%) rotate(90deg);
	transition: .5s;
	display: block;
	width: 0;
	height: 0;
	border-bottom: 8px solid #ffc600;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
}

.product_block_btn:hover{
	background: #ffc600;
	color: #fff;
}

.product_block_btn:hover::before{
	border-bottom-color: #fff;
}

/*---------------------
official_shop
----------------------*/

.official_shop{
	display: flex;
	justify-content: center;
	align-items: center;
	height: 200px;
}

/*---------------------
thought_contents
----------------------*/

.thought_contents{
	background: #fff;
}


/*---------------------
company_contents
----------------------*/

.company_contents{
	background: #ededed;
}

.company_tb {
	width: 100%;
}

.company_tb th,
.company_tb td{
	display: block;
	padding: 10px 15px;
}

.company_tb th{
	text-align: center;
	color: #fff;
	background: #000;
}

.company_tb td{
	background: #fff;
}

/*---------------------
contact_contents
----------------------*/

.contact_contents{
	padding: 40px 0;
	text-align: center;
	background: #fff;
}

.contact_contents_txt{
	margin-bottom: 25px;
}

.contact_contents .cmn_btn{
	margin: 0 auto;
}







/*---------------------
セクション名
----------------------*/



/*========================================
下層メインビジュアルの設定
==========================================*/



/*========================================
下層ページ名
==========================================*/

/*---------------------
セクション名
----------------------*/









/*========================================
newsの設定
==========================================*/

/*.news_list li:not(:last-child) {
	margin-bottom: 25px;
}

.news_list li a {
	border: 1px solid;
	justify-content: flex-start;
	padding: 2%;
}

.news_list li time {
	display: block;
	width: 100%;
}

.news_txt {
	width: calc(100% - 150px);
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}*/

/*.news_area_inner {
	background: #fff;
	padding: 5% 5% 7%;
}*/

.news_detail_ttl {
	border-bottom: 1px solid;
	line-height: 1.6;
	margin-bottom: 20px;
	font-size: 2.0rem;
	padding-bottom: 10px;
}

.news_inner_time {
	font-size: 1.4rem;
	margin-bottom: 30px;
}

.news_area_txt {
	margin-bottom: 40px;
	min-height: 200px;
}

/*========================================
privacyの設定
==========================================*/

.privacy_sec_ttl {
	font-weight: 500;
	font-size: 2.1rem;
	margin-bottom: 10px;
}

.privacy_boxs section {
	border: 1px solid;
	background: #fff;
	padding: 25px 15px;
	margin-bottom: 30px;
}

/*========================================
siteの設定
==========================================*/

.site_list a {
	position: relative;
	display: block;
	border-bottom: 1px solid;
	margin-bottom: 20px;
	padding: 7px 0 7px 30px;
}

.site_list a::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 10px;
	width: 5px;
	height: 5px;
	border-right: 2px solid;
	border-bottom: 2px solid;
	transform: translateY(-50%) rotate(-45deg);
	transition: All .5s;
}

.site_list a:hover::before {
	left: 20px;
}
