@charset "utf-8";

/* ===== ▼全体共通 ===== */
html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Fira Sans', sans-serif;
	color: #424242;
	font-weight: 400;
	background-color: #F6F6F6;
}


.title1 {
	font-size: 40px;
	margin: 10px auto 30px;
	position: relative;
	letter-spacing: 6px;
	font-weight: 500;
}



img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}

a {
	display: block;
	text-decoration: none;
}

li {
	list-style: none;
}

p,
ul,
li {
	margin: 0;
	padding: 0;
}



.common_wrapper {
	width: 85%;
	margin: 0 auto;
}

.content_margin {
	margin: 120px auto 50px;
}



/* ==== ▼ボタン ==== */
button {
	background: none;
	border: none;
	outline: none;
	appearance: none;
}



.btn_more1 {
	width: 60%;
	max-width: 500px;
	height: 70px;
	margin: 40px auto 40px;
	border: #424242 0.5px solid;
	color: #424242;
	font-size: 16px;
	line-height: 70px;
	display: flex;
	border-radius: 70px;
	text-align: center;
	transition: all 0.3s;
}

.btn_more1 span {
	width: 100%;
	height: 100%;
	color: #424242;
	z-index: 10;
	position: relative;
	border-radius: 70px;
	border-radius: 70px;
	overflow: hidden;
}

.btn_more1 span:before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 0;
	display: block;
	background: #e25662;
	z-index: -1;
	transition: all 0.3s;
	border-radius: 70px;
  }
  
  .btn_more1:hover {
	border-color: #e25662;
  }

  .btn_more1:hover span{
	color: #fff;
  }
  
  .btn_more1 span:hover:before{
	width: 100%;
  }



.btn_more3 {
	padding-left: 10px;
	width: 50%;
	border-bottom: #424242 1px solid;
	position: relative;
	transition: all 1s;
}

.btn_more3::after {
    position: absolute;
    content: '';
    width: 24px;
    right: -3px;
    bottom: 7px;
    border-bottom: #424242 1px solid;
    transform: rotate(45deg);
}


/* SNS共有ボタン */

.share_text {
	margin-bottom: 10px;
	font-weight: 500;
}

.sns__container {
    display: flex;
}

.sns__container a {
    width: 100%;
    text-align: center;
    color: #fff;
    padding: 0.5rem 0;
}

.sns__container a:hover {
    opacity: 0.6;
}

.sns__twitter {
    background: #55acee;
}

.sns__facebook {
    background: #3b5998;
}

.sns__pocket {
    background: #ef3f56;
}

.sns__line {
    background: #1dcd00;
}

.sns__hatena {
    background: #00a5de;
}

.share_twitter,
.share_facebook,
.share_pocket,
.share_line {
	width: 16px;
	vertical-align: middle;
}


/* ▼ページ上部移動ボタン */
#page_top{
	width: 90px;
	height: 50px;
	position: fixed;
	right: 0;
	bottom: 0;
	opacity: 0.8;
  }
  #page_top a{
	position: relative;
	display: block;
	width: 90px;
	height: 90px;
	text-decoration: none;
	  color: #E25761;
	  text-align: center;
  }

#page_top a::before {
	content: '';
	position: absolute;
	left: 50%;
	top: -20px;
	width: 20px;
	height: 20px;
	border: 2px #E25761 solid;
	 border-left: 0;
  border-bottom: 0;
	transform: translateX(-50%) rotate(-45deg);
}


/* ▲ページ上部移動ボタン */


/* ==== ▲ボタン ==== */


/* ==== ▼fade ==== */

/* その場で */
.fadeIn{
	animation-name:fadeInAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity:0;
	}
	
	@keyframes fadeInAnime{
	  from {
		opacity: 0;
	  }
	
	  to {
		opacity: 1;
	  }
	}
	
	/* 下から */
	
	.fadeUp{
	animation-name:fadeUpAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity:0;
	}
	
	@keyframes fadeUpAnime{
	  from {
		opacity: 0;
	  transform: translateY(100px);
	  }
	
	  to {
		opacity: 1;
	  transform: translateY(0);
	  }
	}
	

	/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeInTrigger,
.fadeUpTrigger{
    opacity: 0;
}
	
	/* ==== ▲fade ==== */


/* ===== ▲全体共通 ===== */

/* ===== ▼ヘッダー ===== */
#header {
	position: fixed;
	z-index: 50;
	width: 100%;
}

.header_container_pc {
	display: none;
}

.header_container_sp {
	width: 100%;
	height: 60px;
	background-color: #F6F6F6;
}

.header_icon_sp h1 {
	width: auto;
	text-align: center;
	margin: 0;
	padding-top: 5px;
}

.header_icon_sp #header_icon_svg {
	width: 190px;
	vertical-align: sub;
}

.header_icon_sp a {
	height: 60px;
	display: inline-block;
}

/* == ▼検索フォーム == */

/*= 検索窓を開くためのボタン設定 =*/

.search_open_btn {
	position: fixed;
	top: 15px;
	left: 15px;
	background: url("../img/others/search.png") no-repeat center;
	background-size: cover;
	width: 30px;
	height: 30px;
	cursor: pointer;
	/*カーソルを指マークに*/
	transition: all 0.5s;
}

/*クリック後、JSでボタンに btnactive クラスが付与された後の見た目*/
.search_open_btn.btnactive {
	background-image: url("../img/others/close.png")
}

/*= 検索窓の設定 =*/

.search-wrap {
	position: absolute;
	top: 150px;
	left: 20px;
	z-index: -1;
	opacity: 0;
	width: 0;
	transition: all 0.4s;
	border-radius: 5px;
}

/*ボタンクリック後、JSで#search-wrapに panelactive クラスが付与された後の見た目*/
.search-wrap.panelactive {
	opacity: 1;
	z-index: 100;
	width: 280px;
	padding: 20px;
	top: 60px;
	background: #fff;
	box-shadow: 6px 6px 10px 0px rgba(0, 0, 0, 0.2);
}

.search-wrap #searchform {
	display: none;
}

/*ボタンクリック後、JSでpanelactive クラスが付与された後*/
.search-wrap.panelactive #searchform {
	display: block;
}

/*= 検索フォームの設定 =*/
.search-wrap input {
	outline: none;
	cursor: pointer;
	color: #666;
}


.search-wrap input[type="text"] {
	width: 100%;
	border: none;
	border-bottom: 2px solid #ccc;
	transition: all 0.5s;
	letter-spacing: 0.05em;
	height: 46px;
	padding: 10px;
}

.search-wrap input[type="text"]:focus {
	background: #eee;
}

.search-wrap input[type="submit"] {
	position: absolute;
	top: 10px;
	right: 30px;
	background: url("../img/others/search.png") no-repeat right;
	/*虫眼鏡アイコンを背景に表示*/
	background-size: 20px 20px;
	width: 30px;
	height: 60px;
	border: none;
}

/*== ▲検索フォーム ==*/
/*== ▼グローバルナビ ==*/
/*= ハンバーガーの設定 =*/
.hamburger {
	display: block;
	position: fixed;
	z-index: 101;
	right: 13px;
	top: 12px;
	width: 42px;
	height: 42px;
	cursor: pointer;
	text-align: center;
}

.hamburger span {
	display: block;
	position: absolute;
	width: 30px;
	height: 2px;
	left: 6px;
	background: #555;
	transition: 0.3s ease-in-out;
}

.hamburger span:nth-child(1) {
	top: 10px;
}

.hamburger span:nth-child(2) {
	top: 20px;
}

.hamburger span:nth-child(3) {
	top: 30px;
}

/* ナビ開いてる時のボタン */
.hamburger.active span {
	background: #fff;
}

.hamburger.active span:nth-child(1) {
	top: 16px;
	left: 6px;
	transform: rotate(-45deg);
}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
	top: 16px;
	transform: rotate(45deg);
}

/*= ナビの設定 =*/
.global_nav_sp {
	position: fixed;
	z-index: 100;
	top: 0;
	right: -120%;
	color: #fff;
	background: rgb(0, 0, 0, 0.9);
	;
	transition: all 0.6s;
	width: 80%;
	min-height: 100vh;
	height: auto;
	max-width: 400px;
	min-width: 300px;
}

/* panelactiveがついたら右から出てくる */
.global_nav_sp.panelactive {
	right: 0;
}

.gnav_sp {
	margin-top: 60px;
}

.gnav_sp li {
	padding: 20px;
	border-top: #fff solid 1px;
	font-size: 24px;
}

.gnav_sp li:last-child {
	border-bottom: #fff solid 1px;
}

/*アイコンの＋と×*/
.gnav_sp .menu-item-has-children {
	position: relative;
}

.gnav_sp .menu-item-has-children::before,
.gnav_sp .menu-item-has-children::after {
	position: absolute;
	content: '';
	width: 15px;
	height: 2px;
	background-color: #fff;

}

.gnav_sp .menu-item-has-children::before {
	top: 36px;
	right: 20px;
	transform: rotate(0deg);

}

.gnav_sp .menu-item-has-children::after {
	top: 36px;
	right: 20px;
	transform: rotate(90deg);

}

/*　closeというクラスがついたら形状変化　*/

.gnav_sp .menu-item-has-children.close::before {
	transform: rotate(45deg);
}

.gnav_sp .menu-item-has-children.close::after {
	transform: rotate(-45deg);
}

.gnav_sp a {
	color: #fff;
}

.gnav_sp .menu-item-has-children a {
	display: inline-block;
}

.gnav_sp .sub-menu {
	display: none;
	padding: 6px;
}

.gnav_sp .sub-menu li {
	font-size: 18px;
	border: none;
	padding: 6px;
}

.gnav_sp .sub-menu a {
	display: block;
}

.lang_search_contain {
	display: flex;
	width: 200px;
	margin: 20px auto;
	padding: 10%;
	justify-content: space-between;
}


.lang_search_contain a {
	display: inline-block;
	color: #fff;
	font-size: 20px;
}

.lang_search_contain img {
	display: inline-block;
	width: 26px;
	padding: 0 0 6px 5px;
}



/*== ▲グローバルナビ ==*/

/* ===== ▲ヘッダー ===== */
/* ===== ▼メインビジュアル ===== */
/* ====　▼共通　==== */



/* === ▼スクロールアニメーション=== */

.scroll_box {
	position: absolute;
	bottom: 124px;
	right: 10%;
	z-index: 5;
}

.scroll {
	width: 15px;
	min-width: 15px;
	margin: 0 auto;
}

.scroll span {
	display: inline-block;
	letter-spacing: normal;
	font-size: 22px;
	color: #cacaca;
	writing-mode: vertical-lr;
	margin: 0 auto;
	text-decoration: none;
}

.scroll span::before {
	content: "";
	display: block;
	position: absolute;
	top: 85px;
	right: 0;
	left: 50%;
	transform: translateX(-50%);
	margin: 0 auto;
	width: 2px;
	height: 100px;
	background-color: #cacaca;
	animation: scroll 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes scroll {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}

	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}

	50.1% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}

	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

/* === ▲スクロールアニメーション=== */
/* ====　▲共通　==== */

/* ==== ▼固定ページ、アーカイブページ ==== */
.subvis_h1 {
    padding-top: 100px;
    margin: 0;
	margin-bottom: 50px;
	font-size: 10vw;
	font-weight: 600;
	line-height: 10vw;
}

.vis_right {
	text-align: right;
	margin-top: 50px;
	position: relative;
}

.vis_right img {
	width: 80%;
	aspect-ratio: 5/3;
	object-fit: cover;
	max-height: 50vh;
}

/* ===　▼後ろで流れる文字　=== */
.loop_box {
	position: absolute;
	top: 80px;
	width: 100%;
	overflow: hidden;
	display: flex;
	z-index: -1;
}

.loop_bg {
	display: inline-block;
	white-space: nowrap;
	animation: flow_bg 30s linear infinite;
}

.loop_text {
	font-size: clamp(120px, 20vw, 250px);
	font-weight: bolder;
	color: #eeeeee;
}

@keyframes flow_bg {
	0% {
		transform: translateX(0)
	}

	100% {
		transform: translateX(-100%)
	}
}

/* ===　▲後ろで流れる文字　=== */
.box_kari {
	height: 600px;
}

.sub_scroll_box {
	left: 5%;
	right: inherit;
}

.sub_scroll_box .scroll span {
	color: #424242;
}

.sub_scroll_box .scroll span::before {
	background-color: #424242;
}
/* ==== ▲固定ページ、アーカイブページ ==== */

/* ===== ▲メインビジュアル ===== */
/* ===== ▼コンテンツ ===== */
/* ==== ▼product一覧（トップページ・アーカイブページ共通） ==== */
.product_list {
	overflow: hidden;
}

.product_list:hover .product_list_imgbox {
	transform: scale(1.2);
}

.product_list_imgbox {
	background-size: cover;
	background-position: center;
	transition: all 0.6s;
}

.product_list_imgbox.snap-button {
    background-image: url(../img/products/product-bg.webp);
}

.product_list_imgbox.metal-snap {
    background-image: url(../img/products/metal-snap.webp);
}

.product_list_imgbox.eyelet {
    background-image: url(../img/products/product-eyelet.webp);
}

.product_list_imgbox.others {
    background-image: url(../img/products/top_bg_others.webp);
}

/* ==== ▲product一覧（トップページ・アーカイブページ共通） ==== */
/* ==== ▼検索結果ページ ==== */
.search_main {
    padding-top: 80px;
	margin: 0 auto;
	width: 100%;
	min-height: 100vh;
	position: relative;
}

.search_title {
	font-size: 24px;
	letter-spacing: 2px;
	text-align: center;
	width: 90%;
}

.search_wrapper {
	width: 90%;
	margin: 0 auto;
}

.search_results_ul {
	display: grid;
	column-gap: 5%;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.search_results_li {
	margin: 50px 0;
}

.search_link {
	color: #424242;
}

.search_thumbnail_outer {
	box-shadow: 4px 4px 14px -6px rgba(0, 0, 0, 0.25);
	width: 100%;
    overflow: hidden;
	border-radius: 10%;
	background-color: #fff;
}

.search_thumbnail {
	aspect-ratio: 5/3;
	object-fit: cover;
	border-radius: 10%;
    transition: all 0.6s;
}

/* ▼hoverで画像拡大 */
.search_link:hover .search_thumbnail {
    transform: scale(1.2);
}

.search_link:hover .btn_more3 {
	width: 100%;
}

/* ▲hoverで画像拡大 */


.post_else {
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
}

.search_glass {
	margin-top: 20px;
	font-size: 8em;
}

.post_else p {
	margin-top: 30px;
	font-size: 26px;
}


/* ==== ▲検索結果ページ ==== */

/* ==== ▼404エラーページ ==== */
.error_main {
	height: 100vh;
	width: 100%;
    padding-top: 80px;
	position: relative;
}

.error404 footer {
	margin: 0;
}

.error_contents {
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -60%);
	width: 90%;
}

.error_404 {
	font-size: min(20vw, 160px);
}

.error_text {
	font-size: 22px;
	margin-bottom: 30px;
}

.error_toplink {
	font-size: 20px;
	color: #424242;
	border: 1px #424242 solid;
	width: 80%;
	margin: 0 auto;
	padding: 10px;
}

/* ==== ▲404エラーページ ==== */
/* ===== ▲コンテンツ ===== */

/* ===== ▼フッター ===== */
.footer {
	background-color: #003e7f;
	padding: 50px 0 10px;
	margin-top: 160px;
}

.footer_wrapper {
	width: 90%;
	margin: auto;
}


#menu-footer-navigation li,
.footer_navi_sub {
	margin: 20px auto;
	transition: all 0.3s;
}

#menu-footer-navigation li:hover,
.footer_navi_sub:hover {
	opacity: 0.6;
}

#menu-footer-navigation a,
.footer_navi_sub a {
	color: #fff;
	font-size: 24px;
}


.footer_icon_wrapper {
	display: flex;
	justify-content: center;
	margin-top: 60px;
}

.footer_icon_wrapper img {
	width: 40px;
	transition: all 0.3s;
}

.footer_icon_wrapper img:hover {
	opacity: 0.6;
}

.footer_icon {
	margin: 10px;
}

.footer p {
	text-align: center;
	margin-top: 50px;
}

.footer p small {
	display: block;
	color: #fff;
}
/* ===== ▲フッター ===== */

/* ===== ▼▼▼▼　520px以上　▼▼▼▼ ===== */
@media screen and (min-width: 520px) {
	/* ===== ▼全体共通 ===== */
	.title1 {
		font-size: 46px;
	}

	.common_wrapper {
		width: 90%;
	}
	/* ===== ▲全体共通 ===== */

	/* ==== ▼検索結果ページ ==== */

.search_wrapper {
	width: 90%;
	max-width: 1400px;
	margin: 0 auto;
}





/* ==== ▲検索結果ページ ==== */

/* ==== ▼404エラーページ ==== */


.error_contents {
	width: 70%;
}

.error_text {
	font-size: 24px;
	font-weight: 500;
}

/* ==== ▲404エラーページ ==== */

		/* ===== ▼フッター ===== */


.footer_wrapper {
	display: flex;
	justify-content: space-between;
	position: relative;
}


.footer_icon_wrapper {
	width: 200px;
	position: absolute;
	right: 0;
	bottom: 0;
}


/* ===== ▲フッター ===== */
  }

  /* ===== ▼▼▼▼　960px以上　▼▼▼▼ ===== */
@media screen and (min-width: 960px) {
	/* ===== ▼全体共通 ===== */
	
	.title1 {
		margin-bottom: 50px;
	}
	
	.common_wrapper {
		width: 85%;
		max-width: 1300px;
	}
	/* ▼ページ上部移動ボタン */
#page_top{
	width: 120px;
	height: 60px;
  }
  #page_top a::after{
	font-size: 18px;
  }
/* ▲ページ上部移動ボタン */
	/* ===== ▲全体共通 ===== */
	
	/* ===== ▼ヘッダー ===== */
	.header_container_sp {
		display: none;
	}

	
	.header_container_pc {
		display: flex;
		justify-content: space-between;
		padding: 20px 3%;
		height: 120px;
		font-size: 16px;
		font-weight: normal;
	}

	.header_icon_pc h1 {
		margin: 0;
		margin-top: 5px;
	}


	.header_icon_pc #header_icon_svg {
		width: 220px;
	}



	.lang_search_contain {
		width: auto;
		margin: 0;
		padding: 0;
		justify-content: right;
	}
	
	
	.lang_search_contain a {
		color: #424242;
		font-size: 16px;
		margin-right: 16px;
		transition: all 0.5s;
	}

	.lang_search_contain a:hover {
		color: #e25662;
	}
	
	.lang_search_contain img {
		display: inline-block;
		width: 26px;
		padding: 0 0 6px 5px;
	}


	.search_open_btn {
		position: inherit;
		margin-left: 10px;
	}

	.gnav_pc {
		padding: 20px 5px;
		display: flex;
	}

	.gnav_pc_ul {
		display: flex;
		justify-content: space-between;
	}

	.gnav_pc_ul .menu-item a {
		color: #424242;
		padding: 0 24px;
		border-left: #424242 0.5px solid;
		transition: all 0.5s;
	}

	.gnav_pc_ul .menu-item {
		position: relative;
		transition: all 0.5s;
	}
	

	.gnav_pc_ul .menu-item:hover > a {
		color: #e25662;
	}


	.gnav_pc_ul .sub-menu {
		display: none;
		position: absolute;
		width: fit-content;
		top: 25px;
		left: 50%;
		transform: translateX(-50%);
		transition: all 0.5s;
		padding: 30px 10px;
		animation: headerfadeIn 0.5s ;
		background-color: #F6F6F6;
		border-radius: 10px;
	}

	@keyframes headerfadeIn {
		0% {
		  display: none;
		  opacity: 0;
		}
	  
		1% {
		  display: block;
		  opacity: 0;
		}
	  
		100% {
		  display: block;
		  opacity: 1;
		}
	  }

	.gnav_pc_ul .sub-menu a {
		white-space: nowrap;
		border: none;
	}

	.gnav_pc_ul .menu-item:hover .sub-menu,
	.sub-menu{
		display: block;
	}

	/* == ▼検索フォーム == */
/*= 検索窓を開くためのボタン設定 =*/

.search_open_btn {
	position: inherit;
	top: inherit;
	left: inherit;
}


/*= 検索窓の設定 =*/

.search-wrap {
	position: absolute;
	right: 5%;
	left: inherit;
}

/*ボタンクリック後、JSで#search-wrapに panelactive クラスが付与された後の見た目*/
.search-wrap.panelactive {
	opacity: 1;
	z-index: 100;
	width: 280px;
	padding: 20px;
	top: 90px;
	background: #fff;
	box-shadow: 6px 6px 10px 0px rgba(0, 0, 0, 0.2);
}


/*== ▲検索フォーム ==*/

	

	/* ===== ▲ヘッダー ===== */

	/* ===== ▼メインビジュアル ===== */
	/* ==== ▼固定ページ、アーカイブページ ==== */
.kj_subvisual {
	display: flex;
	justify-content: space-between;
	padding-top: 150px;
}

.vis_left {
	width: 40%;
	margin: 0;
}

.subvis_h1 {
	font-size: clamp(76px, 7vw, 120px);
	margin: 10% 0 0 15%;
	padding: 0;
	line-height: clamp(100px, 8vw, 130px);
}

.vis_right {
	margin-top: 0;
	width: 60%;
}


/* ==== ▲固定ページ、productアーカイブページ ==== */

	/* ===== ▲メインビジュアル ===== */
/* ==== ▼検索結果ページ ==== */
.search_main {
    padding-top: 180px;
}

.search_glass {
	font-size: 14em;
}

.post_else p {
	font-size: 34px;
}


/* ==== ▲検索結果ページ ==== */

/* ==== ▼404エラーページ ==== */


.error_contents {
	width: 60%;
	max-width: 1000px;
}



/* ==== ▲404エラーページ ==== */


}