@charset "utf-8";
/***************************************************************************************************
 default.css
 ***************************************************************************************************/
/*
font-family: 'Noto Sans JP', sans-serif;
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
/*

/*
font-family: "Montserrat", sans-serif;
*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&display=swap');

/*
*/
*, *::before, *::after {
	position:relative;

	margin: 0;
	padding: 0;
	box-sizing: border-box;

	border: 0;
	border-style: none;
	outline: 0;

	background: none;
	background-color: transparent;
	background-repeat: no-repeat;

	text-decoration: none;

	font-family: inherit; 
  font-size:inherit;
  line-height: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color:inherit;

	/* -webkit-font-smoothing: antialiased; */
	
	/* text-rendering:geometricPrecision; */

  backface-visibility: hidden;
}
input::-ms-clear {
	visibility: hidden
}
/*
*/
html {
	font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  line-height:1.8;
  font-weight: 400;
	letter-spacing: .04em;
	color: #000000;
	width: 100%;
}
body {
	width: 100%;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	text-align: left;
	background-color: #ffffff;
}
#pagetop {
	width: 100%;
	overflow: hidden;
}
/*
*/
#header_input {
	display: none;
}
/*
*/
#logo {
	position: fixed;
	left:50%;
	top:0;
	width:min(65%, 1200px);
	height: 0;
	translate:-50% 0;
	mix-blend-mode: difference;
}
#logo h1 {
	width:min(155px, 20%);
	left:100%;
	top:calc(100lvh - 40px);
	translate: 0 -100%;
}
#logo h1 a {
	display: block;
	width:100%;
}
#logo h1 a img {
	display: block;
	width:100%;
}
/*
*/
#header {
	position: fixed;
	left:0;
	top:0;
	width:100%;
}
/*  */
#header .hd_blk_1 {
	position: absolute;
	left:50%;
	top:0;
	width: clamp(800px, 65%, 1200px);
	translate:-50% 0;
}
#header .hd_blk_1_1 {
	width: 100%;
}
#header .hd_blk_1_1 nav {
	width: 100%;
}
#header .hd_blk_1_1 nav ul {
	display: flex;
	width: 100%;
	list-style: none;
	justify-content: space-between;
}
#header .hd_blk_1_1 nav ul li {
	display: block;
	padding:20px 0 0 0;
}
#header .hd_blk_1_1 nav ul li a {
	display: block;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0;
	font-weight: 700;
	color:#000000;
	padding:10px 0;
	transition:color .2s ease-out 0s;
}
#header .hd_blk_1_1 nav ul li a.nm_hover {
	color:#FF00D0;
}
#header .hd_blk_1_2 {
	display:none;
}
/*
*/
#header_hbg {
	display:none;
}
/*
*/
#hdhover {
	position: fixed;
	left:50%;
	top:0;
	width: clamp(800px, 65%, 1200px);
	translate:-50% 0;
	display: flex;
	justify-content: space-between;
	pointer-events: none;
	display:none;
}
#hdhover > div {
	padding:20px 0 0 0;
}
#hdhover > div::before {
	display: block;
	content:attr(data-name);
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0;
	font-weight: 700;
	color:#FF00D0;
	padding:10px 0;
	opacity:0;
	transition:opacity .2s ease-out 0s;
}
#hdhover > div.hd_hover::before {
	opacity:1;
}
/*
*/
#cursor {
	position: fixed;
	left:0;
	top:0;
	width: 100vw;
	height:100lvh;
	pointer-events: none;
	/* mix-blend-mode: difference; */
	opacity:0;
	transition: opacity .6s ease-out 1s;
}
#cursor.show {
	opacity:1;
}
#cursor > div {
	position:absolute;
	left:50%;
	top:50%;
	transition: 
	left .2s ease-out 0s,
	top .2s ease-out 0s;
}
#cursor > div::before {
	position: absolute;
	display: block;
	content: '';
	width: 40px;
	height:40px;
	border-radius: 50%;
	translate:-50% -50%;
	left:0;
	top:0;
	border:1px solid #cccccc;
	background-color: transparent;
	scale:1;
	border-radius: 50%;
	transition: 
	border-color .2s ease-out 0s,
	background-color .2s ease-out 0s,
	scale .2s ease-out 0s;
}
#cursor > div.on::before {
	border-color: transparent;
	background-color: #dddddd;
	scale:2.4;
}

/*
*/
#header_hbg {z-index: 6;}
#hdhover {z-index: 5;}
#header {z-index: 4;}
#logo {	z-index: 3;}
#cursor {z-index:2;}
#pagetop {z-index: 1;}


/***************************************************************************************************
  responsive
***************************************************************************************************/
@media screen and (width <= 1000px) {
/*
*/
#logo {
	left:4%;
	top:25px;
	width:auto;
	translate:0 0;
}
#logo h1 {
	width:86px;
	left:0;
	top:0;
	translate: 0 0;
}
/*
*/
#header::before {
	position: absolute;
	display: block;
	content: '';
	width: 10%;
	height: 100lvh;
	left:90%;
	top:0;
	background-color: #000000;
	opacity:0;
}
#header_input:checked ~ #header::before {
	opacity:1;
	transition:opacity 0s .1s;
}
/*  */
#header .hd_blk_1 {
	left:0;
	top:0;
	width:100%;
	height: 100lvh;
	background-color: #000000;
	pointer-events: none;
	translate:100% 0;
	transition:translate .3s ease-out 0s;
	overflow: auto;
}
#header_input:checked ~ #header .hd_blk_1 {
	translate:0;
	pointer-events: auto;
	transition:translate .8s cubic-bezier(.1, .2, 0, 1.25) 0s;
}
#header .hd_blk_1_1 nav ul {
	display: block;
	text-align: center;
	padding:10lvh 0 0 0;
}
#header .hd_blk_1_1 nav ul li {
	padding:0;
}
#header .hd_blk_1_1 nav ul li a {
	display: inline-block;
	padding:2.2lvh 0;
	transition:color .4s ease-out 0s;
	color:#ffffff;
}
#header .hd_blk_1_1 nav ul li a.nm_hover {
	color:#FF00D0;
}
#header .hd_blk_1_2 {
	display:block;
	padding:5lvh 0 0 0;
}
#header .hd_blk_1_2::before {
	display: block;
	content: '';
	width: 100%;
	height: 90px;
	left:0;
	top:0;
	background-image: url('../images/logo_01.svg');
	background-position: 50% 0;
	background-size: auto 100%;
}
#header .hd_blk_1_2 p {
	padding:6lvh 0 40px 0;
	text-align: center;
	color:#ffffff;
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}
/*
*/
#header_hbg {
	position: fixed;
	display: block;
	left: calc(96% - 28px);
	top: 20px;
	width: 36px;
	height: 36px;
	mix-blend-mode: difference;
}
#header_hbg .hbg_blk_1 {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
#header_hbg .hbg_blk_1 > div {
	display: block;
	position: absolute;
	height: 2px;
	transform-origin: 50% 50%;
	background-color: #ffffff;
	translate:0 -50%;
}
#header_hbg .hbg_blk_1 .b_1 {
	width: 22px;
	left:7px;
	top: 11px;
}
#header_hbg .hbg_blk_1 .b_2 {
	width: 16px;
	left:13px;
	top:18px;
}
#header_hbg .hbg_blk_1 .b_3 {
	width: 10px;
	left:19px;
	top:25px;
}
#header_hbg .hbg_blk_1 .b_1,
#header_hbg .hbg_blk_1 .b_2,
#header_hbg .hbg_blk_1 .b_3 {
	transition: 
	width .2s ease-out .2s,
	left .2s ease-out .2s,
	top .2s ease-out .2s,
	opacity 0s .2s;
}
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_1,
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_2,
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_3 {
	width: 26px;
	left:5px;
	top:18px;
	opacity:0;
	transition-delay: 0s, 0s, 0s, .2s;
}
#header_hbg .hbg_blk_1 .b_4,
#header_hbg .hbg_blk_1 .b_5 {
	width: 26px;
	left:5px;
	top:18px;
	opacity:0;
	transition: 
	rotate .2s ease-out 0s,
	opacity 0s .2s;
}
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_4,
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_5 {
	width: 26px;
	left:5px;
	top:18px;
	opacity:0;

}
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_4 {
	opacity:1;
	rotate:45deg;
	transition-delay: .2s, .2s;
}
#header_input:checked ~ #header_hbg .hbg_blk_1 .b_5 {
	opacity:1;
	rotate:-45deg;
	transition-delay: .2s, .2s;
}
#header_hbg label {
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
}
/*
*/
#hdhover {
	display: none;
}
/*
*/
#cursor {
	display: none;
}
/*  */
}
