/* フレックスボックス */
.row_box {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-align-items: center;
	align-items: center;
}

/*==== font ====*/
.en {
	
}

a{
	text-decoration: none;
	color: #000;
	display: inline-block;
	cursor: pointer;
	transition: 0.3s;
}
a:hover{
	opacity: 0.6;
}
img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

html {
	height: 100%;
	overflow-y: auto;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	font-size: 62.5%;
	overflow-x: hidden;
}

body {
	font-family: "Noto Serif JP", serif;
	font-size: 20px;
	/*font-size: 1.5em;*/
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.13em;
	color: #000;
	background: #fff;
	margin: 0 !important;
	width: 100%;
	box-sizing: border-box;
	position: relative;
	z-index: 999;
}

.contents_inner {
	width: 90%;
	max-width: 1060px;
	margin: 0 auto;
}

.pc {
	display: block;
}
.sp {
	display: none;
}

@media screen and (max-width: 640px) {
	body{
		font-size: 14px;
	}

	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}

/*********************

      header

*********************/
body.is-scroll-locked {
	overflow: hidden;
}

/* ヘッダー全体 */
header{
	position: fixed;
	top: 0;
	left: 0;
	width: 280px;
	height: 87px;
	z-index: 1000;
	background-color: #fff;
	border-radius: 0 0 30px 0;

	transition: opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1), visibility 0.5s linear, transform 0.5s cubic-bezier(0.33, 1, 0.68, 1);
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
header.is-hidden {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px); /* 軽く上にスライドしながら消える */
    pointer-events: none;         /* 非表示時にクリック不可にする */
}
header .header-inner{
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	padding: 0 25px 0 45px;
	position: relative;
	z-index: 1000;
}
header .header-logo {
	width: 144px;
}

/* ハンバーガーボタン */
header .hamburger-btn {
	background: none;
	border: none;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 27px;
	height: 14px;
	position: relative;
	padding: 0;
}
header .hamburger-bar{
	display: block;
	width: 100%;
    height: 1px;
	background-color: #000;
	transition: transform 0.3s ease;
	position: absolute;
	margin: auto;
}
header .hamburger-bar:nth-child(1) {
	top: 0;
}
header .hamburger-bar:nth-child(2) {
	top: 0;
	bottom: 0;
}
header .hamburger-bar:nth-child(3) {
	bottom: 0;
}
header .hamburger-btn.is-active .hamburger-bar:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}
header .hamburger-btn.is-active .hamburger-bar:nth-child(2) {
	opacity: 0;
}
header .hamburger-btn.is-active .hamburger-bar:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

/* スライドインメニュー */
header .nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(35, 24, 21, 0.51);
	opacity: 0;
	visibility: hidden;
	z-index: 900;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
header .nav-overlay.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.4s ease 0.1s, visibility 0.4s ease 0.1s;
}
header .nav-content {
	position: absolute;
	top: 0;
	left: 0;
	width: 80%;
	max-width: 280px;
	height: 100%;
	background-color: #fff;
	padding: 130px 45px 40px;
	overflow-y: auto;
	box-shadow: 4px 0 16px rgba(0, 0, 0, 0.1);
	box-sizing: border-box;

	transform: translateX(-100%);
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.84, 0);
}
header .nav-overlay.is-active .nav-content {
	transform: translateX(0);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0s;
}
header .nav-list {
	list-style: none;
	padding: 0 0 50px;
}
header .nav-item a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 7px 0;
	text-decoration: none;
	font-size: 16px;
	font-weight: bold;
	transition: 0.3s;
}
header .sns_link{
	gap: 15px;
	width: 150px;
}
header .sns_link a{
	width: calc((100% - 30px) / 3);
}

@media screen and (max-width: 640px) {
}


/*********************

    footer

*********************/
footer{
	background: #b3b3b3;
	padding: 17px 0;
}
footer .copyright{
	font-size: 15px;
	color: #fff;
	text-align: center;

	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	letter-spacing: 0.05em;
}

@media screen and (max-width: 840px) {
}
@media screen and (max-width: 640px) {
	footer{
		padding: 15px 0;
	}
	footer{
		background: transparent;
	}
	footer .copyright{
		color: #000;
	}
}