/*
 Theme Name:   Crazy Raccoon
 Theme URI:    https://wd-flat.com/
 Description:  WordPress Theme for Crazy Raccoon
 Author:       株式会社FLAT
 Author URI:   https://wd-flat.com/
 Template:     twentytwenty
 Version:      0.0.1
 Tags:         news, entertainment
 Text Domain:  twentytwenty-child
*/

@charset "utf-8";

*,*::before,*::after{box-sizing:border-box;}
body,h1,h2,h3,h4,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0;}
ul,ol{list-style:none;padding:0;}
a{color:inherit;text-decoration:inherit;text-decoration-skip-ink:auto;}
img,svg,video,iframe{vertical-align:middle;}
img,video{max-width:100%;height:auto;}
input,button,textarea,select{font:inherit;}
button{border:0;padding:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}
small{font-size:inherit;}
sub{vertical-align:baseline;}
@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}}

@font-face {
	font-family: "Fabrikat";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url(assets/fonts/FabrikatBlack.otf),
		url(assets/fonts/FabrikatBlack.woff),
		url(assets/fonts/FabrikatBlack.woff2);
}

html {
	scroll-behavior: auto;
	-webkit-text-size-adjust: 100%;
	background: black;
}
body {
	overscroll-behavior: auto;
	color: white;
	font-size: 1em;
	line-height: 2.4;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-feature-settings: "pkna";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
body.is-fixed {
	position: fixed;
	width: 100%;
}
@media screen and (min-width: 768px) {
	.v-mb { display: none; }
}
@media screen and (max-width: 767px) {
	.v-dt { display: none; }
	body {
		font-size: 15px;
	}
}
::selection {
	color: white;
	background: #d62626;
}

/**
 * common style (desktop/mobile 共通の style)
 * @media (min-width: 520px) {} mobile には適用したくない style
 * @media (min-width: 960px) {} desktop だけの style
 * @media (min-width: 1200px) {} wide desktop style
 * @media (max-width: 959px) {} desktop には適用したくない style
 * @media (max-width: 519px) {} mobile だけの style
 * @media (max-width: 360px) {} small mobile style
 * MEMO: 
 * -------------------------------------------------- */
.l-main { z-index: 1; }
.l-header { z-index: 2; }
.l-nav { z-index: 3; }
.l-navbutton { z-index: 4; }

svg.ar {
	fill: currentcolor;
}
svg.ex {
	fill: none;
	stroke: currentcolor;
}

/**
 * header
 * ---------------------------------------- */
.l-header {
	font-family: "Fabrikat", sans-serif;
	font-weight: 900;
}
.l-header .logo {
	position: absolute;
	top: 32px;
	left: 32px;
}
.l-header .navlist {
	grid-column: 2;
	display: flex;
	align-items: center;
	column-gap: 32px;
	font-size: 14px;
	text-transform: uppercase;
}
@supports not (column-gap: 32px) {
	.l-header .navlist li + li {
		margin-left: 32px;
	}
}
.l-header .navlist a {
	padding: 1em 0;
}
.l-header .navlist .ex {
	position: relative;
	top: -.15em;
	width: 12px;
	height: auto;
	margin-left: .5em;
}
@media screen and (min-width: 768px) {
	.l-header {
		display: grid;
		grid-template-columns: 72px auto 72px;
		place-items: center;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		padding: 0 20px;
	}
	.l-header .navlist {
		height: 80px;
	}
}
@media screen and (max-width: 1200px) {
	.l-header .navlist {
		column-gap: 24px;
	}
	@supports not (column-gap: 32px) {
		.l-header .navlist li + li {
			margin-left: 24px;
		}
	}
}
@media screen and (max-width: 1024px) {
	.l-header .navlist {
		column-gap: 16px;
	}
	@supports not (column-gap: 32px) {
		.l-header .navlist li + li {
			margin-left: 16px;
		}
	}
}
@media screen and (max-width: 767px) {
	.l-header {
		display: inline;
		position: static;
		height: 0;
	}
	.l-header > * {
		z-index: inherit;
	}
	.l-header .logo {
		top: 20px;
		left: 28px;
		width: 48px;
	}
	.l-header .navlist {
		display: none;
	}
}

.l-header .navlist_parent {
	position: relative;
}
.l-header .navlist_sub {
	position: absolute;
	top: 100%;
	left: -24px;
	padding: 4px 20px;
	background: rgba(5,4,4,.3);
	backdrop-filter: blur(24px);
	opacity: 0;
	transform: translateX(-24px);
	pointer-events: none;
}
.l-header .navlist_parent:hover .navlist_sub,
.l-header .navlist_parent:focus-within .navlist_sub {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.l-header .navlist_parent.is-anim .navlist_sub {
	transition: opacity .3s, transform .3s;
	transition-timing-function: cubic-bezier(.1,1,.3,1);
}
.l-header .navlist_parent:not(:hover).is-anim .navlist_sub {
	transition-duration: .3s, 0s;
	transition-delay: 0s, .3s;
}
.l-header .navlist_sub li:not(:first-child) {
	border-top: 1px solid #d62626;
}
.l-header .navlist_sub a {
	display: flex;
	justify-content: space-between;
	padding: 12px 4px;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
}
.l-header .navlist_sub .ar {
	margin-left: 1em;
}

.l-header .c-lang {
	display: flex;
	justify-content: space-between;
	width: 72px;
	font-size: 11px;
}
.l-header .c-lang a {
	display: grid;
	place-items: center;
	position: relative;
	width: 32px;
	height: 32px;
}
.l-header .c-lang .is-active {
	color: #d62626;
}
.l-header .c-lang .is-active::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	width: 32px;
	border-bottom: 2px solid #d62626;
}
@media (hover: hover) {
	.l-header .c-lang .is-active::after {
		transition: border-color .3s, transform .3s cubic-bezier(.9,0,.1,1);
	}
	.l-header .c-lang:hover li:first-child .is-active:not(:hover)::after {
		border-color: white;
		transform: translateX(40px);
	}
	.l-header .c-lang:hover li:last-child .is-active:not(:hover)::after {
		border-color: white;
		transform: translateX(-40px);
	}
}
@media screen and (min-width: 768px) {
	.l-header .c-lang {
		grid-column: 3;
	}
}
@media screen and (max-width: 767px) {
	.l-header .c-lang {
		z-index: 5;
		position: fixed;
		left: 24px;
		bottom: 32px;
	}
}

/* :::::: 下層のナビゲーション :::::: */
.undernav_container {
	position: relative;
	max-width: 1000px;
	margin: 80px auto 0;
}
.undernav_container::before {
	content: "";
	z-index: -1;
	position: absolute;
	inset: 0 calc(50% - 50vw);
	background: #d62626;
	/* mix-blend-mode: screen; */
}
.undernavlist {
	display: flex;
	align-items: center;
	height: 80px;
	margin: 0 auto;
	color: white;
	white-space: nowrap;
}
.undernavlist {
	width: 100%;
	overflow: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
}
.undernavlist::-webkit-scrollbar {
	display: none;
}
.undernavlist .nav_item {
	font-size: 14px;
	line-height: 1.2;
	font-family: "Fabrikat", sans-serif;
	font-weight: 900;
}
.undernavlist .nav_item:first-of-type {
	padding-left: 20px;
}
.undernavlist .nav_item:last-of-type {
	padding-right: 20px;
}
.undernavlist .nav_item:first-of-type {
	margin-left: auto;
}
.undernavlist .nav_item a,
.undernavlist .nav_item button {
	cursor: pointer;
	padding: 20px;
	color: currentcolor;
	text-transform: uppercase;
}
@media screen and (min-width: 768px) {
	.undernavlist {
		padding-left: 160px;
	}
	.undernavlist dt {
		position: absolute;
		top: calc(50% - .6em);
		left: 20px;
		font-size: 35px;
		line-height: 1.2;
		font-family: "Fabrikat", sans-serif;
		font-weight: 900;
	}
	.undernavlist::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		width: 160px;
		background: linear-gradient(to right, #d62626 70%, rgba(214,38,38,0));
	}
}
@media screen and (max-width: 1199px) {
	.undernavlist dt {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	.undernavlist {
		height: 48px;
	}
	.undernavlist {
		z-index: 1;
		position: relative;
	}
	.undernavlist .nav_item a,
	.undernavlist .nav_item button {
		display: flex;
		align-items: center;
		height: 48px;
		padding: 0 12px;
	}
}


/**
 * footer
 * ---------------------------------------- */
.l-footer {
	max-width: 1366px;
	margin: 40px auto 0;
	padding: 40px 40px 96px;
	color: #d62626;
	text-align: center;
}
.l-footer .links {
	display: flex;
	font-family: "Fabrikat", sans-serif;
	font-weight: 900;
	text-align: left;
}
.l-footer .links a {
	font-size: 15px;
	line-height: 1.2;
}
.l-footer .links a[href*="contact"] {
	font-size: 24px;
}
.l-footer .copyright {
	font-size: 10px;
	letter-spacing: .1em;
	text-align: right;
}
.l-footer .sns {
	z-index: 5;
	display: flex;
	position: fixed;
	right: 24px;
	bottom: 32px;
	line-height: 1;
}
.l-footer .sns a {
	display: block;
	padding: 8px;
	color: #d62626;
}
@media(hover: hover) {
	.l-footer .sns a:hover {
		color: white;
	}
}
@media screen and (min-width: 768px) {
	.l-footer .links {
		align-items: baseline;
		column-gap: 48px;
	}
	@supports not (column-gap: 32px) {
		.l-footer .links li + li {
			margin-left: 48px;
		}
	}
	.l-footer .sns {
		flex-direction: column;
	}
	/* .l-footer .sns .ico {
		transform: rotate(90deg);
	} */
}
@media screen and (max-width: 767px) {
	.l-footer {
		padding-bottom: 176px;
	}
	.l-footer .links {
		flex-direction: column;
	}
	.l-footer .links a {
		padding: 6px 0;
	}
	.l-footer .copyright {
		margin-top: 64px;
	}
}


/**
 * nav
 * ---------------------------------------- */
.l-nav,
.l-nav .overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.l-nav {
	overflow: auto;
	padding: 28px 28px 104px;
	font-family: "Fabrikat", sans-serif;
	font-weight: 900;
}
.l-nav .overlay {
	background: black;
}
.l-nav .container {
	position: relative;
}
.l-nav .navlist {
	margin-top: 24px;
	font-size: 20px;
}
.l-nav .navlist li {
	border-bottom: 1px solid #707070;
}
.l-nav .navlist a {
	display: block;
	position: relative;
}
.l-nav .navlist .ar,
.l-nav .navlist .ex {
	position: absolute;
	top: calc(50% - 7px);
	right: 3px;
}
.l-nav .navlist .ex {
	right: 0;
}
/* effect */
.l-nav:not(.is-active) {
	pointer-events: none;
}
.l-nav:not(.is-active) .overlay,
.l-nav:not(.is-active) .container {
	opacity: 0;
}
.l-nav:not(.is-active) .container {
	transform: translateY(-24px);
}
.l-nav.is-anim:not(.is-active) .container {
	transform: translateY(24px);
}
.l-nav.is-anim .overlay,
.l-nav.is-anim .container {
	transition: opacity .6s, transform .6s cubic-bezier(.1,1,.3,1);
}
.l-nav.is-anim.is-active .container { transition-delay: .1s; }
.l-nav.is-anim:not(.is-active) .container { transition-duration: .3s; }

/* :::::: ≡ :::::: */
.l-navbutton {
	cursor: pointer;
	position: fixed;
	width: 48px;
	height: 48px;
	top: 16px;
	right: 16px;
	color: white;
}
.l-navbutton .bar {
	position: absolute;
	top: calc(50% - 1px);
	left: 12px;
	fill: none;
	stroke: currentcolor;
	stroke-width: 2;
	pointer-events: none;
}
.l-navbutton .bar.-b1 {
	transform: translateY(-10px);
}
.l-navbutton .bar.-b3 {
	transform: translateY(10px);
}
@media screen and (min-width: 768px) {
	.l-navbutton {
		display: none;
	}
}
/* motion */
.l-navbutton.is-active .bar.-b1 {
	transform: rotate(45deg) scaleX(1.2);
}
.l-navbutton.is-active .bar.-b2 {
	transform: scale(0);
}
.l-navbutton.is-active .bar.-b3 {
	transform: rotate(-45deg) scaleX(1.2);
}
.l-navbutton.is-anim .bar {
	animation: .4s cubic-bezier(.3,1,.7,1) both;
}
.l-navbutton.is-anim .bar.-b1 { animation-name: open_bar1; }
.l-navbutton.is-anim .bar.-b2 { animation-name: open_bar2; }
.l-navbutton.is-anim .bar.-b3 { animation-name: open_bar3; }
.l-navbutton.is-anim:not(.is-active) .bar {
	animation-direction: reverse;
	animation-timing-function: cubic-bezier(.4,0,.8,0);
}
@keyframes open_bar1 {
	from { transform: translateY(-10px); }
	40% { transform: none; }
	to { transform: rotate(45deg) scaleX(1.2); }
}
@keyframes open_bar2 {
	from, 50% { transform: none; }
	to { transform: scaleX(0); }
}
@keyframes open_bar3 {
	from { transform: translateY(10px); }
	40% { transform: none; }
	to { transform: rotate(-45deg) scaleX(1.2); }
}


/**
 * decoration
 * -------------------------------------------------- */
.l-deco {
	z-index: -1;
	position: absolute;
	inset: 0;
}
.deco_moveline {
	position: fixed;
	top: 0;
	width: 1px;
	height: 100vh;
	background: rgba(214,38,38,.3);
}
.deco_moveline.-l {
	left: calc(50% - 480px);
}
.deco_moveline.-c {
	left: calc(50% - 1px);
}
.deco_moveline.-r {
	left: calc(50% + 479px);
}
.deco_moveline::after {
	content: "";
	position: absolute;
	top: 100vh;
	height: 80%;
	border-left: 1px solid #d62626;
	animation: moveline 3s ease infinite;
}
.deco_moveline.-l::after {
	animation-delay: .4s;
}
.deco_moveline.-c::after {
	animation-delay: 1.6s;
}
.deco_moveline.-r::after {
	animation-delay: .8s;
}
@keyframes moveline {
	from { transform: none; }
	70%, to { transform: translateY(-100vh) translateY(-100%); }
}
@media screen and (max-width: 767px) {
	.deco_moveline.-l {
		left: 23%;
	}
	.deco_moveline.-r {
		left: 77%;
	}
}


/**
 * utility
 * -------------------------------------------------- */
.svg-parts,
.visuallyhidden {
	position: absolute;
	clip: rect(0 0 0 0);
	overflow: hidden;
	width: 1px;
	height: 1px;
}


/**
 * ContactForm7
 * -------------------------------------------------- */
.form_item.-submit {
	position: relative;
}
.form_item.-submit .wpcf7-spinner {
	position: absolute;
	top: 50%;
	left: calc(50% - 12px);
	margin: 0;
}
.form_item.-submit .wpcf7-spinner {
	position: absolute;
	top: calc(50% - 12px);
	left: calc(50% - 12px);
	margin: 0;
}
.wpcf7-form {
	position: relative;
}
.wpcf7-response-output {
	position: absolute;
	top: calc(100% + 48px);
	width: 100%;
	margin: 0;
	border-color: #d62626;
	text-align: center;
}


/**
 * javascript
 * -------------------------------------------------- */
.js-inview[data-last]:not(.is-inview) {
	opacity: 0;
	transform: translateY(24px);
}
.js-inview[data-last].is-anim {
	transition: opacity .6s, transform .6s cubic-bezier(.1,1,.3,1);
}

/* lazy */
img[data-src]:not(.is-loaded) {
	opacity: 0;
}
img.is-anim {
	transition: opacity .6s;
}

/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}