@charset "utf-8";

@font-face {
	font-family: "HelveticaNeueLTPro-Md";
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/HelveticaNeueLTPro-Md.woff) format('woff')
}

@font-face {
	font-family: "HelveticaNeueLTPro-Bd";
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/HelveticaNeueLTPro-Bd.woff) format('woff')
}

@font-face {
	font-family: "HelveticaNeueLTPro-Roman";
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/HelveticaNeueLTPro-Roman.woff) format('woff')
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ 共通
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
fieldset,
form,
label,
legend,
table,
caption,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	border: 0;
	outline: 0;
	font-size: 100%;
	font-style: normal;
	vertical-align: baseline;
	background: transparent;
	margin: 0;
	padding: 0;
}

main,
article,
aside,
details,
summary,
blockquote,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block
}

h1,
h2,
h3,
h4,
h5,
dl,
dt,
dd,
ol,
ul,
li,
p,
figure {
	margin: 0;
	padding: 0;
}

ul {
	list-style: none
}

img,
iframe,
select,
textarea {
	vertical-align: top
}

img {
	max-width: 100%;
	height: auto;
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

html {
	height: 100%;
	overflow-y: scroll;
	overflow-x: hidden;
}

body {
	height: 100%;
	font-size: 16px;
	font-weight: 400;
	font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	/*font-feature-settings: "palt";*/
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	position: relative;
	background: #fafafa;
	color: #1a1a1a;
}

a {
	color: #1a1a1a;
	font-size: 100%;
	vertical-align: baseline;
	text-decoration: none;
	margin: 0;
	padding: 0;
}

/*
.blank.big {
	padding-right: 20px;
	background: url(../img/icon_blank_black.svg) no-repeat right top 1px / 15px 11px;
}

.blank.small {
	padding-right: 16px;
	background: url(../img/icon_blank_black.svg) no-repeat right top / 10px 8px;
}
*/

p.center {
	text-align: center;
}

main {
	background: #fafafa;
}

article {}

main .inner {}

hr {
	display: block;
	height: 1px;
	border: 0;
	margin: 0;
	padding: 0;
}


/*------------------------------------------------------------------------*/

@media screen and (min-width:1024px) {

	.t {
		display: none !important
	}
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.t {
		display: block;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (min-width:768px) {
	.sp {
		display: none !important
	}

	a[href^="tel:"] {
		pointer-events: none;
		text-decoration: none;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.pc {
		display: none !important
	}

	body {
		font-size: 14px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ inner
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.inner {
	width: calc(100% - 200px);
	max-width: 900px;
	margin: 0 auto;
}

.inner.max {
	width: calc(100% - 200px);
	max-width: 100%;
}

.inner.wide {
	max-width: 1000px;
}

.inner.thin {
	max-width: 500px;
}

.inner+.inner {
	margin-top: 160px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.inner {
		width: calc(100% - 96px);
	}

	.inner.max {
		width: calc(100% - 96px);
	}

	.inner+.inner {
		margin-top: 96px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.inner {
		width: calc(100% - 48px);
		margin: 0 24px;
	}

	.inner.max {
		width: calc(100% - 48px);
		max-width: auto;
		margin: 0 24px;
	}

	.inner+.inner {
		margin-top: 90px;
	}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■loading
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#loading {
	position: fixed;
	width: 100vw;
	height: 100vh;
	background: #f6f6f6;
	z-index: 999;
}

#animation {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

#animation #logo {}

#animation #logo img {
	height: 100px;
}

/* アニメーション */
#animation {
	animation: loading 1500ms ease-out forwards infinite;
}

@keyframes loading {

	from,
	to {
		opacity: 0;
	}

	50% {
		opacity: 1;
		opacity: .5;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	#animation #logo img {
		height: 50px;
	}


}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ header
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

header {
	width: 100%;
	background: #fafafa;
	position: relative;
	left: 0;
	top: 0;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 11;
}

header .inner.max {
	width: calc(100% - 80px);
	max-width: auto;
	height: 90px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	header .inner.max {
		height: 75px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	header .inner.max {
		width: calc(100% - 40px);
		height: 60px;
	}
}


/*-------------------------------------------------------------------------
	logo
-------------------------------------------------------------------------*/

header .logo {
	flex: none;
	display: flex;
	align-items: center;
}

header .logo a {
	margin-right: 30px;
	margin-right: clamp(10px, 2.0vw, 30px);
}

header .logo a img {
	height: 60px;
}

header .logo span {
	font-size: 16px;
	font-weight: bold;
	line-height: 1.25;
	letter-spacing: .1em;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	header .logo a {
		margin-right: 0;
	}

	header .logo a img {
		height: 50px;
	}

	header .logo span {
		text-align: center;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	header .logo a img {
		height: 38px;
	}

	header .logo span {
		font-size: 12px;
	}
}


/*-------------------------------------------------------------------------
	global
-------------------------------------------------------------------------*/


/*------------------------------------------------------------------------*/

@media screen and (min-width:1024px) {
	header #global {
		display: flex;
		align-items: center;
	}

	header #global .scroll {
		display: flex;
		align-items: center;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	header #global .bunka {
		display: block;
		margin-top: 45px;
		padding-bottom: 50px;
	}

	header #global .bunka img {
		width: 90px;
	}
}


/*-------------------------------------------------------------------------
	contents
-------------------------------------------------------------------------*/

header #global .contents {
	display: flex;
	justify-content: center;
	margin-left: auto;
}

header #global .contents li {
	margin-left: 30px;
	margin-left: clamp(10px, 2.0vw, 30px);
}

header #global .contents li a {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
	white-space: nowrap;
}

header #global .contents li a span {
	font-size: 18px;
	font-family: "HelveticaNeueLTPro-Bd";
	letter-spacing: .05em;
}

header #global .contents li a small {
	font-size: 11px;
	margin-top: 2px;
	letter-spacing: 0;
}


/*------------------------------------------------------------------------*/

@media screen and (min-width: 1024px) {
	header #global .contents li a:after {
		position: absolute;
		bottom: -5px;
		left: 0;
		content: "";
		width: 100%;
		height: 1px;
		background: #000;
		transform: scale(0, 1);
		transform-origin: left top;
		transition: transform .5s;
	}

	header #global .contents li a:hover:after {
		transform: scale(1, 1);
	}

	header #global .contents li.current a:after {
		position: absolute;
		bottom: -5px;
		left: 0;
		content: "";
		width: 100%;
		height: 1px;
		background: #000;
		transform: scale(1, 1);
		transform-origin: left top;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	header #global .contents {
		text-align: left;
		display: inline-block;
		margin-top: 125px;
	}

	header #global .contents li {
		margin-left: 0;
	}

	header #global .contents li+li {
		margin-top: 20px;
	}

	header #global .contents li a {
		align-items: start;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	header #global .contents {
		margin-top: 110px;
	}
}


/*-------------------------------------------------------------------------
	sns
-------------------------------------------------------------------------*/

header #global .sns {
	display: flex;
	align-items: center;
	margin-left: 30px;
}

header #global .sns li {
	flex: none;
}

header #global .sns li+li {
	margin-left: 15px;
}

header #global .sns li a {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

header #global .sns li a img {
	width: 20px;
}

header #global .sns li:last-child a img {
	width: 24px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	header #global .sns {
		display: block;
		margin-left: 0;
		margin-top: 45px;
	}

	header #global .sns li {
		margin-top: 15px;
	}

	header #global .sns li+li {
		margin-left: 0;
	}

	header #global .sns li a {
		width: 20px;
		margin: 0 auto;
	}

	header #global .sns li:last-child a {
		width: 24px;
	}
}



/*-------------------------------------------------------------------------
	グローバルナビゲーション
-------------------------------------------------------------------------*/

#toggle {
	display: none;
}

#global .close {
	display: none;
}

header .open {
	display: none;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	header .open {
		width: 35px;
		height: 35px;
		margin-right: -10px;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
	}

	header .open img {
		width: 28px;
		height: 8px;
	}

	header .open span {
		font-size: 9px;
		font-family: "HelveticaNeueLTPro-Roman";
		letter-spacing: .025em;
		margin-top: 6px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	header .open {
		margin-right: 0;
	}


}

/*-------------------------------------------------------------------------
	close
-------------------------------------------------------------------------*/

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	#toggle+.close {
		position: fixed;
		top: 0;
		right: 0;
		pointer-events: none;
		z-index: 3;
		width: 100%;
		height: 100%;
		transition: background-color .5s;
	}

	#toggle:checked+.close {
		display: block;
		pointer-events: auto;
		background: rgba(0, 0, 0, .25);
	}

	#toggle:checked~#global {
		transform: translateX(0);
	}

	#global {
		flex: none;
		background: #fafafa;
		width: 180px;
		height: 100%;
		display: block;
		margin: 0;
		padding: 0;
		z-index: 4;
		position: fixed;
		top: 0;
		right: 0;
		transform: translateX(100%);
		transition: transform .5s;
	}

	#global .close {
		width: 35px;
		height: 35px;
		margin: 0;
		z-index: 21;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		position: absolute;
		right: 30px;
		top: 20px;
	}

	#global .close img {
		width: 20px;
		height: 20px;
	}

	#global .close span {
		font-size: 9px;
		font-family: "HelveticaNeueLTPro-Roman";
		letter-spacing: .025em;
		margin-top: 6px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	#global {
		width: 120px;
	}

	#global .close {
		right: 16px;
		top: 13px;
	}
}

/*-------------------------------------------------------------------------
	スクロールバー
-------------------------------------------------------------------------*/

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	#global .scroll {
		height: 100%;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		text-align: center;
	}
}



/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■breadcrumbs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#breadcrumbs {
	padding-top: 20px;
}

#breadcrumbs ul {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-family: "HelveticaNeueLTPro-Bd", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-weight: normal;
	line-height: 1.5;
	letter-spacing: .05em;
	display: flex;
	align-items: center;
	white-space: nowrap;
	color: #6a6a6a;
}

#breadcrumbs li {}

#breadcrumbs li:not(:last-child):after {
	content: "";
	font-size: 0;
	display: inline-block;
	width: 4px;
	height: 7px;
	background: url(../img/icon_breadcrumbs.svg) no-repeat center center / cover;
	margin: 0 10px;
}

#breadcrumbs li:last-child {
	overflow: hidden;
	text-overflow: ellipsis;
}

#breadcrumbs li span {}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	#breadcrumbs {
		padding-top: 12px;
	}

	#breadcrumbs ul {
		font-size: 11px;
	}

	#breadcrumbs li:not(:last-child):after {
		margin: 0 5px;
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ thumbnail
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#thumbnail {
	padding-top: 90px;
}

#thumbnail img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center center;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	#thumbnail {
		padding-top: 75px;
	}

	#thumbnail img {}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	#thumbnail {
		padding-top: 60px;
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ kv
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#kv {
	width: 100%;
	height: calc(100% - 90px);
	padding-top: 90px;
	color: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	background: rgba(26, 26, 26, .2);
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	#kv {
		height: calc(100% - 75px);
		padding-top: 75px;
	}

}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	#kv {
		height: calc(100% - 60px);
		padding-top: 60px;
	}
}

/*-------------------------------------------------------------------------
	h2
-------------------------------------------------------------------------*/

#kv h1 {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

#kv h1 b {
	font-size: 120px;
	font-size: clamp(90px, 10.5vw, 120px);
	font-family: "HelveticaNeueLTPro-Bd";
	font-weight: normal;
	letter-spacing: 0;
}

#kv h1 span {
	font-size: 48px;
	font-size: clamp(30px, 3.9vw, 48px);
	font-family: "HelveticaNeueLTPro-Bd";
	font-weight: normal;
	letter-spacing: .025em;
	text-align: center;
}

#kv h1 small {
	font-size: 40px;
	font-size: clamp(30px, 3.5vw, 40px);
	font-weight: bold;
	letter-spacing: 0;
	margin-top: 20px;
}

#kv h1 img {
	width: clamp(160px, 23.0vw, 300px);
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	#kv h1 {}

	#kv h1 b {
		font-size: 48px;
	}

	#kv h1 span {
		font-size: 18px;
	}

	#kv h1 small {
		font-size: 21px;
		margin-top: 10px;
	}

}

/*-------------------------------------------------------------------------
	countdown
-------------------------------------------------------------------------*/


#kv .countdown {
	display: flex;
	margin-top: 30px;
}

#kv .countdown li {
	display: flex;
	align-items: baseline;
}

/*#kv .countdown li + li {
	margin-left: 0;
}*/

#kv .countdown li span {
	font-size: 160px;
	font-size: clamp(90px, 12.5vw, 160px);
	font-family: "HelveticaNeueLTPro-Bd";
	letter-spacing: 0;
}

#kv .countdown li small {
	font-size: 40px;
	font-size: clamp(24px, 3.2vw, 40px);
	font-weight: bold;
	letter-spacing: 0.1em;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {



	#kv .countdown {
		margin-top: 10px;
	}

	#kv .countdown li span {
		font-size: 48px;
	}

	#kv .countdown li small {
		font-size: 15px;
	}

}


/*-------------------------------------------------------------------------
	scroll
-------------------------------------------------------------------------*/

#kv .scroll {
	position: absolute;
	bottom: 0;
	text-align: center;
	margin: 0 auto;
	left: 50%;
	transform: translateX(-50%);
}

#kv .scroll:after {
	content: "";
	display: block;
	width: 1px;
	height: 40px;
	background: #1a1a1a;
	margin: 0 auto;
	position: absolute;
	bottom: -40px;
	left: 0;
	right: 0;
}

#kv .scroll a {
	margin: 0 auto;
	text-align: center;
	color: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

#kv .scroll a span {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-family: "HelveticaNeueLTPro-Roman";
	letter-spacing: .1em;
}

#kv .scroll a span:after {
	content: "";
	display: block;
	width: 1px;
	height: 40px;
	background: #fafafa;
	margin: 0 auto;
	margin-top: 10px;
	position: relative;
	bottom: 0;
	transition: .5s;
}

#kv .scroll a:hover span:after {
	bottom: 0;
	height: 35px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	#kv .scroll a span:after {
		height: 30px;
	}

	#kv .scroll a:hover span:after {
		height: 25px;
	}

	#kv .scroll:after {
		height: 30px;
		bottom: -30px;
	}
}



/*-------------------------------------------------------------------------
	bg
-------------------------------------------------------------------------*/


#bg {
	width: 100%;
	height: calc(100% - 90px);
	padding-top: 90px;
	position: fixed;
	left: 0;
	top: 0;
	z-index: -1;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	#bg {
		height: calc(100% - 75px);
		padding-top: 75px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	#bg {
		height: calc(100% - 60px);
		padding-top: 60px;
	}


}

/*-------------------------------------------------------------------------
	img
-------------------------------------------------------------------------*/

#bg img {
	width: 100%;
	height: 100%;
	overflow: hidden;
	object-fit: cover;
	object-position: center center;
	position: absolute;
}

#bg img.zoomIn {
	animation: zoomInAnime 5s linear forwards;
}

#bg img.zoomOut {
	animation: zoomOutAnime 5s linear forwards;
	/* animation-duration: 4s; */
}

@keyframes zoomInAnime {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.05);
	}
}

@keyframes zoomOutAnime {
	from {
		transform: scale(1.05);
	}

	to {
		transform: scale(1.1);
	}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ 共通
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */


::selection {
	background: rgba(221, 221, 221, .5);
}

::-moz-selection {
	background: rgba(221, 221, 221, .5);
}

section {
	margin: 160px auto;
	position: relative;
	overflow: hidden;
	background: #fafafa;
}

section.bg {
	margin: 0 auto;
	padding: 160px 0;
	background: #eee;
}

section.bg.white {
	background: #fafafa;
}

section:last-of-type {
	margin-bottom: 0;
	padding-bottom: 160px;
}

section a:hover {}



/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	section {
		margin: 96px auto;
	}

	section.bg {
		padding: 96px 0;
	}

	section:last-of-type {
		margin-bottom: 0;
		padding-bottom: 120px;
	}

}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	section {
		margin: 90px auto;
	}

	section.bg {
		padding: 90px 0;
	}

	section:last-of-type {
		margin-bottom: 0;
		padding-bottom: 90px;
	}

}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ heading
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */


/*-------------------------------------------------------------------------
	title
-------------------------------------------------------------------------*/

.title {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin-bottom: 80px;
}

#top .fade-in {
	transform: translateY(25px);
	opacity: 0;
	transition: 0.5s;
}

#top .fade-in.fadeIn {
	transform: translateY(0);
	opacity: 1;
}

.title span {
	font-size: 80px;
	font-size: clamp(48px, 6.4vw, 80px);
	font-family: "HelveticaNeueLTPro-Bd", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-weight: bold;
	letter-spacing: .025em;
	line-height: 1.125;
}

.title small {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
	font-weight: normal;
	letter-spacing: 0;
	margin-top: 8px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.title {
		margin-bottom: 50px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.title {
		margin-bottom: 45px;
	}

	.title span {
		font-size: 30px;
	}

	.title small {
		font-size: 12px;
	}
}


/*-------------------------------------------------------------------------
	subtitle
-------------------------------------------------------------------------*/

.subtitle {
	margin-bottom: 48px;
}

.subtitle h3 {
	flex: none;
	font-size: 48px;
	letter-spacing: .025em;
	line-height: 1.25;
}

.subtitle h3 span {
	background: #000;
	color: #fff;
	padding: 0 16px;
	border-radius: 16px 0 16px 0;
}


/*-------------------------------------------------------------------------
	h4
-------------------------------------------------------------------------*/

main h4 {
	font-size: 24px;
	line-height: 1.5;
	letter-spacing: .025em;
	margin-bottom: 32px;
}

main h4.center {
	text-align: center;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	main h4 {
		font-size: 18px;
	}
}


/*-------------------------------------------------------------------------
	soen
-------------------------------------------------------------------------*/

.soen {
	max-width: 720px;
	max-width: clamp(560px, 64.0vw, 720px);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	margin-bottom: 40px;
}

.soen dt {
	flex: none;
	width: 200px;
	width: clamp(150px, 17.5vw, 200px);
	margin-right: 50px;
	margin-right: clamp(25px, 32.5vw, 40px);
}


.soen dt img {
	width: 100%;
	filter: drop-shadow(5px 5px 5px rgba(26, 26, 26, .25));
	transition: all 0.5s ease;
}

.soen dt a:hover img {
	transform: scale(1.1);
}

.soen dd {
	display: flex;
	flex-direction: column;
}

.soen dd b {
	font-size: 30px;
	font-size: clamp(20px, 2.5vw, 30px);
	font-weight: bold;
	line-height: 1.4;
}

.soen dd span {
	font-size: 16px;
	font-size: clamp(1.4px, 1.5vw, 16px);
	line-height: 1.75;
	margin-top: 10px;
}

.soen dd a {
	color: #6a6a6a;
	text-decoration: underline;
}

.soen dd a[target="_blank"]:after {
	content: "";
	display: inline-block;
	width: 15px;
	width: clamp(12px, 1.35vw, 15px);
	height: 11px;
	height: clamp(9px, 1.0vw, 11px);
	margin: 0 4px;
	background: url(../img/icon_blank_black.svg) no-repeat center center / contain;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.soen dt {
		width: 112px;
		margin-right: 15px;
	}

	.soen dd b {
		font-size: 15px;
	}

	.soen dd span {
		font-size: 11px;
		margin-top: 5px;
	}

	.soen dt img {
		filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	}

}



/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ catch
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#catch {
	text-align: center;
}


#catch h2 {
	font-size: 80px;
	font-size: clamp(48px, 6.4vw, 80px);
	font-family: "HelveticaNeueLTPro-Bd";
	font-weight: normal;
	letter-spacing: 0;
	line-height: 1.125;
}

#catch p {
	margin-top: 80px;
}

#catch p img {
	width: 300px;
	width: clamp(224px, 26.2vw, 300px);
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	#catch:before {
		height: 30px;
	}

	#catch h2 {}

	#catch p {
		margin-top: 50px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	#catch h2 {
		font-size: 27px;
	}

	#catch p {
		margin-top: 40px;
	}

	#catch p img {
		width: 168px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ banner
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.banner {}

.banner a {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	border-radius: clamp(12px, 1.8vw, 24px);
	border: 1px solid #eee;
	box-sizing: border-box;
}

.banner a img {
	width: 100%;
	transition: all 0.75s ease;
}

.banner a:hover img {
	transform: scale(1.05);
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.banner a img {
		border-radius: 6px;
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ block
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.block {
	display: flex;
	align-items: center;
	position: relative;
}

.block dt {
	width: 100%;
	aspect-ratio: 16 / 9;
	position: relative;
}

.block dd {
	/*max-width: calc(100% / 3);
	max-width: clamp((100% / 2), (100% / 2.5), (100% / 3));*/
}

.block.left {
	margin-right: calc(50% - 50vw);
}

.block.left dt {
	margin-left: 100px;
}

.block.left dt * {
	border-radius: 24px 0 0 24px;
}

.block.left dd {}

.block.right {
	margin-left: calc(50% - 50vw);
}

.block.right dt {
	margin-right: 100px;
}

.block.right dt * {
	border-radius: 0 24px 24px 0;
}

.block.right dd {
	right: 0;
	text-align: right;
}

.block dt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.block dd {
	position: absolute;
}

.block dd h3 {
	font-weight: bold;
	letter-spacing: .1em;
}

.block dd h3 span {
	background: #fafafa;
}

.block dd h3.type1 span {
	display: inline;
	font-size: 36px;
	font-size: clamp(24px, 3.0vw, 36px);
	line-height: 2.0;
	padding: 5px;
	white-space: nowrap;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.block dd h3.type2 span {
	width: 400px;
	width: clamp(220px, 31.0vw, 400px);
	display: inline-block;
	font-size: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	line-height: 1.5;
	text-align: left;
	padding: 5px;
}

.block dd p {
	font-size: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	letter-spacing: .05em;
	line-height: 2.25;
	white-space: nowrap;
	margin-top: 30px;
}

.block dd p span {
	display: inline;
	background: #fafafa;
	padding: 5px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.block .iframe {
	padding: 0;
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	overflow: hidden;
	position: relative;
	z-index: 0;
}

.block .iframe #youtube1,
.block .iframe #youtube2,
.block .iframe #youtube3,
.block .iframe #youtube4 {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	/* 	width: 100% !important;
	height: 100% !important; */
	object-fit: cover;
	object-position: center center;
	min-height: 100%;
	min-width: 100%;
}

.block dd .button {
	margin-top: 40px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.block.left dt {
		margin-left: 48px;
	}

	.block.left dt * {
		border-radius: 12px 0 0 12px;
	}

	.block.right dt {
		margin-right: 48px;
	}

	.block.right dt * {
		border-radius: 0 12px 12px 0;
	}

	.block dd p {
		margin-top: 20px;
	}

	.block dd .button {
		margin-top: 20px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.block .iframe #youtube1,
	.block .iframe #youtube2 {
		width: 177.77777778vh;
		/* 16:9 の幅→16 ÷ 9＝ 177.77% */
		height: 56.25vw;
		/* 16:9の幅 → 9 ÷ 16 = 56.25% */
	}

	.block.end {
		align-items: end;
	}

	.block.end dd {
		margin-bottom: -15px;
	}

	.block dt {
		aspect-ratio: 1 / 1;
	}

	.block.left dt {
		margin-left: 24px;
	}

	.block.right dt {
		margin-right: 24px;
	}

	.block dd h3.type1 span {
		font-size: 18px;
	}

	.block dd h3.type2 span {
		font-size: 12px;
	}

	.block dd p {
		font-size: 14px;
		margin-top: 15px;
	}

	.block .iframe {
		padding-top: 100%
	}

	.block dd .button {
		margin-top: 30px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ separate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.separate {
	display: flex;
	align-items: start;
}

.separate.center {
	align-items: center;
}

.separate+.separate {
	margin-top: 96px;
}

.separate>* {
	flex: 1;
}

.separate>*+* {
	margin-left: 50px;
}

.separate dt {}

.separate dt img {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 24px;
	border-radius: clamp(12px, 1.8vw, 24px);
	object-fit: cover;
	object-position: center center;
}

.separate h3 {
	font-size: 36px;
	font-size: clamp(24px, 3.0vw, 36px);
	font-weight: bold;
	line-height: 1.5;
	/*font-feature-settings: "palt";
	letter-spacing: -.05em;
	white-space: nowrap;*/
	margin-bottom: 30px;
}

.separate .name {
	display: flex;
	flex-direction: column;
	font-weight: bold;
	text-align: right;
}

.separate p {
	font-size: clamp(12px, 1.4vw, 16px);
	letter-spacing: 0;
	line-height: 2;
}

.separate .name {
	line-height: 1;
	margin-top: 20px;
}

.separate .name span {
	font-size: clamp(12px, 1.4vw, 16px);
	letter-spacing: .05em;
}

.separate .name b {
	font-size: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	letter-spacing: .05em;
	margin-top: 10px;
}

.separate li figure {}

.separate li figure img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center center;
	border-radius: 12px;
}

.separate li figcaption p {
	margin-top: 10px;
	font-size: clamp(11px, 1.25vw, 14px);
	line-height: 1.5;
}


/*------------------------------------------------------------------------*/

@media screen and (min-width: 1024px) {

	.separate h3.nowrap {
		white-space: nowrap;
	}
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.separate>*+* {
		margin-left: 24px;
	}

	.separate h3 {
		margin-bottom: 15px;
	}

	.separate .name {
		line-height: 1;
		margin-top: 15px;
	}

	.separate .name b {
		margin-top: 5px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.separate {
		display: block;
	}

	.separate>* {
		width: 100%;
	}

	.separate>*+* {
		margin-left: 0;
		margin-top: 30px;
	}

	.separate dt img {
		border-radius: 6px;
	}

	.separate h3 {
		font-size: 18px;
		text-align: center;
	}

	.separate li figure img {
		border-radius: 6px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ box
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.box {
	background: #eee;
	border-radius: 24px;
	border-radius: clamp(12px, 1.8vw, 24px);
	padding: 50px;
	padding: clamp(24px, 3.7vw, 50px);
}


.box h3 {
	font-size: 36px;
	font-size: clamp(18px, 2.9vw, 36px);
	font-weight: bold;
	letter-spacing: 0;
	line-height: 1.5;
	text-align: center;
	margin-bottom: 42px;
}

.box h3+p {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	letter-spacing: 0;
	line-height: 2.0;
}

.box .link {
	margin-top: 50px;
}

.box .link a {
	width: 100%;
	height: 96px;
	height: clamp(75px, 8.55vw, 96px);
	border: 0;
	border-radius: 12px;
	border-radius: clamp(6px, 0.9vw, 12px);
	font-size: 16px;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: bold;
	letter-spacing: .05em;
	line-height: 1.5;
	text-decoration: none;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: #825ab4;
	background-repeat: no-repeat;
	background-position: right 20px center;
	background-image: url(../img/icon_blank_white.svg);
	background-size: clamp(11px, 1.3vw, 15px) auto;
	box-shadow: 5px 5px 5px rgba(26, 26, 26, .25);
	transition: all 0.5s ease;
}

.box .link a:hover {
	transform: scale(1.025);
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.box {
	}

	.box h3 {
		margin-bottom: 40px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.box {
		padding: 24px;
		border-radius: 6px:
	}

	.box h3 {
		margin-bottom: 18px;
	}

	.box .link {
		margin-top: 24px;
	}

	.box .link a {
		font-size: 12px;
		background-position: right 10px center;
		box-shadow: 3px 3px 3px rgba(26, 26, 26, .25);
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ button
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.button {
	width: 180px;
	width: clamp(135px, 15.75vw, 180px);
	max-width: 100%;
	margin-top: 80px;
}

.button.max {
	width: 100%;
}

.button.center {
	margin-left: auto;
	margin-right: auto;
}

.button.right {
	margin-left: auto;
}

.button a,
.button span,
.button input {
	width: 100%;
	height: 48px;
	height: clamp(36px, 4.2vw, 48px);
	box-sizing: border-box;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	border-radius: 24px;
	border-radius: clamp(18px, 2.1vw, 24px);
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-weight: bold;
	letter-spacing: .05em;
	line-height: 1.5;
	color: #1a1a1a !important;
	text-decoration: none !important;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	background-color: #fafafa;
	background-repeat: no-repeat;
	background-position: right 15px center;
	transition: all 0.5s ease;
}

.button a:hover {
	transform: scale(1.1);
}

.button.wide {
	width: 300px;
	width: clamp(225px, 26.25vw, 300px);
	max-width: 100%;
}

.button.big {
	width: 300px;
	width: clamp(225px, 26.25vw, 300px);
	max-width: 100%;
}

.button.big a {
	height: 96px;
	height: clamp(72px, 8.4vw, 96px);
	border-radius: 48px;
	border-radius: clamp(36px, 4.2vw, 48px);
}

.button span {
	font-weight: normal;
}

.button.more a {
	background-image: url(../img/icon_more_right_black.svg);
	background-size: clamp(4px, 4.5vw, 5px) auto;
}


.button.down a {
	background-image: url(../img/icon_more_bottom_black.svg);
	background-size: auto clamp(4px, 4.5vw, 5px);
}

.button.blank a,
.button.blank span {
	background-image: url(../img/icon_blank_black.svg);
	background-size: clamp(11px, 1.3vw, 15px) auto;
}


/*------------------------------------------------------------------------*/

@media screen and (min-width: 1024px) {

	.inner>.button {
		padding-bottom: 10px;
	}

	.button.ghost a {
		color: #fff !important;
		border: 1px solid #fff;
		background-color: transparent;
	}

	.button.ghost.blank a {
		background-image: url(../img/icon_blank_white.svg);
	}


}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.button {
		margin-top: 50px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.button {
		margin-top: 30px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ dummy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.relative {
	position: relative;
}

.slider a[target="_blank"] dt:after,
.banner a[target="_blank"]:after,
.list_pages>li a[target="_blank"] dt:after {
	content: "";
	width: 48px;
	width: clamp(24px, 3.6vw, 48px);
	height: 48px;
	height: clamp(24px, 3.6vw, 48px);
	box-sizing: border-box;
	border: 0;
	border-radius: 100%;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	background-color: rgba(250, 250, 250, .75);
	background-repeat: no-repeat;
	background-position: center center;
	background-image: url(../img/icon_blank_black.svg);
	background-size: clamp(10px, 1.5vw, 20px) auto;
	position: absolute;
	right: clamp(6px, 0.8vw, 10px);
	bottom: clamp(6px, 0.8vw, 10px);
}



/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■slider
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.slick-slider {
	position: relative;
	display: block;
	box-sizing: border-box;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-khtml-user-select: none;
	-ms-touch-action: pan-y;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
	margin-bottom: 80px;
}

.slick-list {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.slick-list:focus {
	outline: none;
}

.slick-list.dragging {
	cursor: pointer;
	cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	-ms-transform: translate3d(0, 0, 0);
	-o-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.slick-track {
	position: relative;
	top: 0;
	left: 0;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.slick-track:before,
.slick-track:after {
	display: table;
	content: '';
}

.slick-track:after {
	clear: both;
}

.slick-loading .slick-track {
	visibility: hidden;
}

.slick-slide {
	display: none;
	float: left;
	height: 100%;
	min-height: 1px;
}

.slick-slide img {
	display: block;
}

.slick-slide.slick-loading img {
	display: none;
}

.slick-slide.dragging img {
	pointer-events: none;
}

.slick-initialized .slick-slide {
	display: block;
}

.slick-loading .slick-slide {
	visibility: hidden;
}

.slick-vertical .slick-slide {
	display: block;
	height: auto;
	border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
	display: none;
}

.slider .slick-slide {
	padding: 0 50px 0 0;
}

.slider .slick-list {
	overflow: visible;
	margin-right: -50px;
}

.slider dt {
	width: 100%;
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	border-radius: clamp(12px, 1.8vw, 24px);
	border: 1px solid #eee;
	box-sizing: border-box;
}

.slider dt img {
	width: 100%;
	object-fit: cover;
	object-position: center center;
	overflow: hidden;
	border-radius: 24px;
	border-radius: clamp(12px, 1.8vw, 24px);
	transition: all 0.75s ease;
}

.slider.ratio_16_9 dt img {
	aspect-ratio: 16 / 9;
}

.slider.ratio_1_1 dt img {
	aspect-ratio: 1 / 1;
}

.slider li a:hover dt img {
	transform: scale(1.05);
}

.slider dd {
	margin-top: 20px;
}

.slider .post_date {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
	letter-spacing: .05em;
}

.slider .post_title {
	font-size: 21px;
	font-size: clamp(16px, 1.85vw, 21px);
	letter-spacing: .05em;
	line-height: 1.33;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	margin-top: 10px;
}

.slider .post_excerpt {
	font-size: 16px;
	font-size: clamp(14px, 1.5vw, 16px);
	letter-spacing: 0;
	line-height: 1.5;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	margin-top: 10px;
}

.slider .tags {
	margin-top: 5px;
	margin-bottom: 0;
	justify-content: start;
}

.slider .tags li {
	margin-top: 10px;
	margin-bottom: 0;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	.slick-slider {
		margin-bottom: 50px;
	}

	.slider .slick-slide {
		padding: 0 25px 0 0;
	}

	.slider .slick-list {
		margin-right: -25px;
	}

	.slider .tags li span {
		height: 18px;
		border-radius: 9px;
		font-size: 10px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	.slick-slider {
		margin-bottom: 30px;
	}

	.slider .slick-slide {
		padding: 0 15px 0 0;
	}

	.slider .slick-list {
		margin-right: -15px;
	}

	.slider dt img {
		border-radius: 6px;
	}

	.slider dd {
		margin-top: 10px;
	}

	.slider .post_date {
		font-size: 11px;
	}

	.slider .post_title {
		font-size: 14px;
		margin-top: 5px;
	}

	.slider .post_excerpt {
		font-size: 11px;
		margin-top: 5px;
	}
}


/*-------------------------------------------------------------------------
　layout
-------------------------------------------------------------------------*/

.slider+.button {
	padding-top: 80px;
}

.slider .slick-slide:focus {
	outline: none;
}

.slider .slick-slide a {
	outline: none;
}

.slider .slick-slide a:focus {
	outline: none;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.slider+.button {
		padding-top: 50px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.slider+.button {
		padding-top: 30px;
	}

}


/*-------------------------------------------------------------------------
　arrow
-------------------------------------------------------------------------*/

.slick-arrow.slick-disabled {
	display: none !important;
}

.slider .slick-prev,
.slider .slick-next {
	width: 40px;
	height: 40px;
	width: clamp(20px, 3.0vw, 40px);
	height: clamp(20px, 3.0vw, 40px);
	font-size: 0;
	line-height: 0;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	display: block;
	padding: 0;
	color: transparent;
	background: none;
	border: none;
	outline: none;
	z-index: 1;
}

.slider .slick-prev {
	/* left: 40px; */
	left: calc(500px - 100vw /2 + 40px);
}

.slider .slick-prev:before {
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	background: url(../img/icon_arrow_left.svg) no-repeat center center / 35% auto #fafafa;
	border: 1px solid #000;
	border-radius: 100%;
	box-sizing: border-box;
	cursor: pointer;
}

.slider .slick-prev:hover:before {}

.slider .slick-next {
	/* right: 40px; */
	right: calc(500px - 100vw /2 + 40px)
}

.slider .slick-next:before {
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	background: url(../img/icon_arrow_right.svg) no-repeat center center / 35% auto #fafafa;
	border: 1px solid #000;
	border-radius: 100%;
	box-sizing: border-box;
	cursor: pointer;
}

.slider .slick-next:hover:before {}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.slider .slick-prev {
		left: calc(50% - 100vw /2 + 15px);
	}

	.slider .slick-next {
		right: calc(50% - 100vw /2 + 15px);
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}


/*-------------------------------------------------------------------------
　dots
-------------------------------------------------------------------------*/

.slider .slick-dots {
	width: 300px;
	width: clamp(200px, 25.0vw, 300px);
	position: absolute;
	top: calc(100% + 78px);
	left: 0;
	right: 0;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	display: flex !important;
	justify-content: center;
}

.slider .slick-dots li {
	flex: 1;
	position: relative;
	height: 2px;
	margin: 0 5px;
	padding: 0;
	cursor: pointer;
	font-size: 0px;
}

.slider .slick-dots li:first-child {
	margin-left: 0;
}

.slider .slick-dots li:last-child {
	margin-right: 0;
}

.slider .slick-dots li button {
	font-size: 0px;
	line-height: 0;
	display: block;
	width: 0;
	height: 0;
	padding: 0;
	cursor: pointer;
	color: transparent;
	border: 0;
	outline: none;
	background: transparent;
}

.slider .slick-dots li button:hover,
.slider .slick-dots li button:focus {
	outline: none;
}

.slider .slick-dots li button:hover:before,
.slider .slick-dots li button:focus:before {
	opacity: 1;
}

.slider .slick-dots li button:before {
	font-size: 0px;
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	background: #ddd;
	width: 100%;
	height: 100%;
	text-align: center;
}

.slider .slick-dots li.slick-active button:before {
	background: #1a1a1a;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.slider .slick-dots {
		top: calc(100% + 48px);
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.slider .slick-dots {
		top: calc(100% + 28px);
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ description
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.description {
	line-height: 2;
	letter-spacing: 0;
}

#donation .description {
	margin: -80px 0;
}

#memories .description {
	margin-top: -80px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	#donation .description {
		margin: -48px 0;
	}

	#memories .description {
		margin-top: -48px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	#donation .description {
		margin: -45px 0;
	}

	#memories .description {
		margin-top: -45px;
	}

}


.fs_16 {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
}

.fs_20 {
	font-size: 20px;
	font-size: clamp(16px, 1.8vw, 20px);
	letter-spacing: 0;
}

.fw_bold {
	font-weight: bold;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ list_pages
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.list_pages {
	display: flex;
	flex-wrap: wrap;
}

.list_pages.column_2 {
	margin: 0 -25px -80px -25px;
}

.list_pages.column_3 {
	margin: 0 -25px -50px -25px;
}

.list_pages.column_2>li {
	width: calc(100% / 2 - 50px);
	margin: 0 25px 80px 25px;
}

.list_pages.column_3>li {
	width: calc(100% / 3 - 50px);
	margin: 0 25px 50px 25px;
}

.list_pages>li a {}

.list_pages>li dl {
	height: 100%;
	display: flex;
	flex-direction: column;
}



.slider li a:hover dt img {
	transform: scale(1.05);
}

.list_pages>li dt {
	border-radius: 12px;
	border-radius: clamp(6px, 0.9vw, 12px);
	border: 1px solid #eee;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

.list_pages>li dt img {
	width: 100%;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	border-radius: clamp(6px, 0.9vw, 12px);
	object-fit: cover;
	object-position: center center;
	transition: all 0.75s ease;
}

.list_pages>li a:hover dt img {
	transform: scale(1.05);
}

.list_pages>li dd {
	flex: 1;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.list_pages .post_date {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
	letter-spacing: .05em;
	margin-top: 10px;
	margin-bottom: -10px;
}

.list_pages .post_title {
	font-size: 18px;
	font-size: clamp(16px, 1.7vw, 18px);
	line-height: 1.33;
	letter-spacing: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	margin-top: 20px;
}

.list_pages .post_excerpt {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	line-height: 1.5;
	letter-spacing: 0;
	margin-top: 15px;
	margin-bottom: auto;
}

.list_pages .tags {
	margin-top: 5px;
	margin-bottom: 0;
	justify-content: start;
}

.list_pages .tags li {
	margin-top: 10px;
	margin-bottom: 0;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.list_pages.column_2 {
		margin: 0 -12px -48px -12px;
	}

	.list_pages.column_3 {
		margin: 0 -12px -24px -12px;
	}

	.list_pages.column_2>li {
		width: calc(100% / 2 - 24px);
		margin: 0 12px 48px 12px;
	}

	.list_pages.column_3>li {
		width: calc(100% / 3 - 24px);
		margin: 0 12px 24px 12px;
	}

	.list_pages .post_title {
		margin-top: 15px;
	}

	.list_pages .post_excerpt {}

	.list_pages .button {
		margin-top: 24px;
	}

	.list_pages .tags li span {
		height: 18px;
		border-radius: 9px;
		font-size: 10px;
	}



}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.list_pages.column_2 {
		margin: 0 -12px -45px -12px;
	}

	.list_pages.column_3 {
		margin: 0 -8px -16px -8px;
	}

	.list_pages.column_2>li {
		width: calc(100% / 1 - 24px);
		margin: 0 12px 45px 12px;
	}

	.list_pages.column_3>li {
		width: calc(100% / 2 - 16px);
		margin: 0 8px 16px 8px;
	}

}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ tags
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 -5px -10px -5px;
}

.tags.center {
	justify-content: center;
}

.tags li {
	margin: 0 5px 10px 5px;
}

.tags li a,
.tags li span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	border-radius: 12px;
	padding: 0 10px;
	background: #ddd;
	font-size: 12px;
	font-family: "HelveticaNeueLTPro-Roman", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	letter-spacing: .05em;
	line-height: 1;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ pagination
	(wordpress移行前)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.pagination {
	display: flex;
	align-items: center;
	justify-content: center;
}

.pagination li {
	margin: 0 5px;
}

.pagination li a {
	width: 40px;
	height: 40px;
	width: clamp(30px, 3.5vw, 40px);
	height: clamp(30px, 3.5vw, 40px);
	border-radius: 50%;
	box-sizing: border-box;
	border: 1px solid transparent;
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-family: "HelveticaNeueLTPro-Roman";
	letter-spacing: 0;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pagination li.current a {
	background: #1a1a1a;
	border: 1px solid #1a1a1a;
	pointer-events: none;
	color: #fff;
}

.pagination li.previous a {
	border: 1px solid #1a1a1a;
	font-size: 0;
}

.pagination li.previous a img {
	width: 35%;
}

.pagination li.next a {
	border: 1px solid #1a1a1a;
	font-size: 0;
}

.pagination li.next a img {
	width: 35%;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ pagination
	(wordpress移行後)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */


.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-numbers li {
	margin: 0 5px;
}

.page-numbers li a {
	width: 40px;
	height: 40px;
	width: clamp(30px, 3.5vw, 40px);
	height: clamp(30px, 3.5vw, 40px);
	border-radius: 50%;
	box-sizing: border-box;
	border: 1px solid transparent;
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-family: "HelveticaNeueLTPro-Roman";
	letter-spacing: 0;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-numbers li.current a {
	background: #1a1a1a;
	border: 1px solid #1a1a1a;
	pointer-events: none;
	color: #fff;
}

.page-numbers li.previous a {
	border: 1px solid #1a1a1a;
	font-size: 0;
}

.page-numbers li.previous a img {
	width: 35%;
}

.page-numbers li.next a {
	border: 1px solid #1a1a1a;
	font-size: 0;
}

.page-numbers li.next a img {
	width: 35%;
}

.next.page-numbers {
	font-size: 0;
	border: 1px solid #000;
	background-image: url(../img/icon_arrow_right.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 35% auto;
	transition: all 0.5s ease;
}

.prev.page-numbers {
	font-size: 0;
	border: 1px solid #000;
	background-image: url(../img/icon_arrow_left.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 35% auto;
	transition: all 0.5s ease;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ content
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */



.content {
	margin-top: 80px;
}


.content .post_title {
	font-size: 36px;
	font-size: clamp(24px, 3.0vw, 36px);
	font-weight: bold;
	letter-spacing: 0;
	line-height: 1.33;
}

.content .post_date {
	font-size: 12px;
	font-size: clamp(11px, 1.15vw, 12px);
	font-weight: normal;
	letter-spacing: .05em;
	margin-top: 15px;
	margin-bottom: 40px;
}

.content .tags {
	margin-top: 15px;
}

.content .button {
	margin-top: 40px;
	margin-bottom: 40px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	.content {
		margin-top: 48px;
	}

	.content .post_title {}

	.content .post_date {
		margin-bottom: 30px;
	}

	.content .button {
		margin-top: 30px;
		margin-bottom: 30px;
	}

}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.content {
		margin-top: 45px;
	}

	.content .post_title {
		font-size: 18px;
	}

	.content .post_date {
		margin-top: 10px;
	}

	.content .tags {
		margin-top: 10px;
	}

}



/*-------------------------------------------------------------------------
	h2
-------------------------------------------------------------------------*/

.content h2 {
	font-size: 30px;
	font-size: clamp(21px, 2.55vw, 30px);
	font-weight: bold;
	line-height: 1.33;
	margin-bottom: 40px;
}

.content *+h2 {
	margin-top: 80px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.content h2 {
		margin-bottom: 24px;
	}

	.content *+h2 {
		margin-top: 48px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.content h2 {
		font-size: 18px;
	}
}


/*-------------------------------------------------------------------------
	h3
-------------------------------------------------------------------------*/

.content h3 {
	font-size: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	line-height: 1.33;
	letter-spacing: 0;
	margin-bottom: 40px;
}

.content h3.center {
	text-align: center;
}

.content *+h3 {
	margin-top: 80px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content h3 {
		margin-bottom: 24px;
	}

	.content *+h3 {
		margin-top: 48px;
	}
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.content h3 {
		font-size: 14px;
	}
}

/*-------------------------------------------------------------------------
	その他
-------------------------------------------------------------------------*/


.content p,
.content li,
.content dt {
	font-size: 16px;
	font-size: clamp(14px, 1.5vw, 16px);
	letter-spacing: 0;
	line-height: 1.75;
}

.content p,
.content ul,
.content ol,
.content dl {
	margin-top: 40px;
}

.content dt {
	font-weight: bold;
}

.content dd {
	margin-top: 30px;
}



.content small {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
}
.content .small {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
}



/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content p {
		font-size: 14px;
		margin-top: 24px;
	}

	.content ul,
	.content ol,
	.content dl {
		margin-top: 24px;
	}

	.content li {
		font-size: 14px;
	}

	.content dd {
		margin-top: 21px;
	}


}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content dd {
		margin-top: 15px;
	}


}

/*-------------------------------------------------------------------------
	share
-------------------------------------------------------------------------*/


.content .share {
	font-size: 0;
}
.content .share img {
	height: 20px;
	height: clamp(15px, 1.75vw, 20px);
}

/*-------------------------------------------------------------------------
	content
-------------------------------------------------------------------------*/


.content .box {
	margin: 80px 0;
}

.content .box h3 {
	text-align: left;
	margin-bottom: 20px;
}

.content .box h4 {
	font-size: 18px;
	font-size: clamp(14px, 1.6vw, 18px);
	line-height: 1.33;
	margin-top: 20px;
	margin-bottom: 0;
}
.content .box h4 a {
	color: #1a1a1a;
	text-decoration: none;
}
.content .box h4 a:hover {
	text-decoration: underline;
}
.content .box h4+p {
	font-size: 14px;
	font-size: clamp(10px, 1.2vw, 14px);
	letter-spacing: 0;
	line-height: 2.0;
	margin-top: 10px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content .box h3 {
		margin-bottom: 15px;
	}

	.content .box h4 {
		margin-top: 10px;
		margin-bottom: 0;
	}
	.content .box h4+p {
		margin-top: 5px;
	}
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


}


/*-------------------------------------------------------------------------
	spacer
-------------------------------------------------------------------------*/


.content hr {
	margin-top: 40px;
	margin-top: clamp(18px, 2.9vw, 40px);
}
.content hr.h80 {
	margin-top: 80px;
	margin-top: clamp(30px, 5.5vw, 80px);
}

/*-------------------------------------------------------------------------
	ul
-------------------------------------------------------------------------*/

.content .ul {
	list-style: none;
	counter-reset: number
}

.content .ul li {
	padding-left: 1.25em;
	text-indent: -1.25em;
}

.content .ul.small li {
	margin-top: 20px;
}

.content .ul li .ul {
	margin-top: 20px;
	margin-bottom: 20px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content dd {
		margin-top: 15px;
	}

	.content .ul.small li {
		margin-top: 15px;
	}

	.content .ul li .ul {
		margin-top: 15px;
		margin-bottom: 15px;
	}


}



/*-------------------------------------------------------------------------
	その他
-------------------------------------------------------------------------*/


.content a {
	color: #6a6a6a;
	text-decoration: underline;
}

.content a[target="_blank"]:after {
	content: "";
	display: inline-block;
	width: 15px;
	width: clamp(12px, 1.35vw, 15px);
	height: 11px;
	height: clamp(9px, 1.0vw, 11px);
	margin: 0 4px;
	background: url(../img/icon_blank_black.svg) no-repeat center center / contain;
}

.content .banner a[target="_blank"]:after,
.content .button a[target="_blank"]:after,
.content figure a[target="_blank"]:after,
.content .share a[target="_blank"]:after {
	display: none;
}

.fs_16 {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
}

.fs_20 {
	font-size: 20px;
	font-size: clamp(16px, 1.8vw, 20px);
	letter-spacing: 0;
}

.fw_bold {
	font-weight: bold;
}


/*-------------------------------------------------------------------------
　figure
-------------------------------------------------------------------------*/

.content figure {
	margin: 80px 0;
}

.content figure.small {
	max-width: 750px;
	max-width: clamp(600px, 67.5vw, 750px);
	margin-left: auto;
	margin-right: auto;
}

.content figcaption p {
	font-size: 12px;
	font-size: clamp(11px, 1.15vw, 12px);
	letter-spacing: 0;
	margin-top: 10px;
}
.content figure.border img {
	border: 1px solid #eee;
	box-sizing: border-box;
}

.content figure .iframe {
	padding: 0;
	position: relative;
	width: 100%;
	padding-top: 56.25%
}

.content figure .iframe iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.content figure {
		margin: 48px 0;
	}

}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	.content figure.small {
		margin-left: 20px;
		margin-right: 20px;
	}

}


/*-------------------------------------------------------------------------
	local
-------------------------------------------------------------------------*/

.local {
	max-width: 600px;
	border-radius: 24px;
	box-sizing: border-box;
	margin: 80px auto;
	background: #eee;
}

.local ul {
	padding: 50px;
	padding: clamp(24px, 3.7vw, 50px);
	margin: 0;
}

.local li {
}

.local li+li {
	margin-top: 30px;
}

.local li a {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.33;
	text-decoration: none;
	color: #1a1a1a;
	display: block;
	padding-left: 25px;
	background: url(../img/icon_local.svg) no-repeat left center / 9px 5px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	.local li a {
		padding-left: 15px;
		background-size: 7px 4px;
	}

}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ history
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.history {
	/* min-height: calc(100% - 90px); */
	min-height: calc(100vh - 90px);
	margin: 0;
	padding: 0;
	background: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
}

.history.black {
	color: #fff;
	background: #1a1a1a;
}

.history>img {
	width: 100%;
	height: 100%;
	overflow: hidden;
	object-fit: cover;
	object-position: center center;
	position: absolute;
	opacity: .5;
}

.history.people {
	background: #ddd;
}

history:last-of-type {
	padding-bottom: 0 !important;
}

.history .inner {
	padding-top: 80px;
	padding-bottom: 80px;
}

.history .title {
	margin-bottom: 0;
}

.history .separate li:first-child {
	position: relative;
	z-index: 1;
}

.history .separate.right li:first-child {
	order: 1;
}

.history .separate dd h3 {
	display: flex;
	align-items: center;
	white-space: normal;
	margin-top: 40px;
}

.history .separate dd h3 span {
	flex: none;
	font-size: 24px;
}

.history .separate dd h3 small {
	display: flex;
	align-items: center;
	min-height: calc(14px * 3 * 1.5);
	min-height: clamp(calc(11px * 3 * 1.5), calc(1.25vw * 3 * 1.5), calc(14px * 3 * 1.5));
	font-size: 14px;
	font-size: clamp(11px, 1.25vw, 14px);
	font-weight: normal;
	border-left: 1px solid #1a1a1a;
	margin-left: 20px;
	padding-left: 20px;
}

.history .separate dd h3+p {
	margin-top: 50px;
	position: relative;
	z-index: 1;
}

.history .button {
	margin-top: 50px;
}


.history .separate .link {
	color: #fff;
	text-decoration: underline;
}

.history .separate .link:after {
	content: "";
	display: inline-block;
	width: 15px;
	width: clamp(12px, 1.35vw, 15px);
	height: 11px;
	height: clamp(9px, 1.0vw, 11px);
	margin: 0 4px;
	background: url(../img/icon_blank_white.svg) no-repeat center center / contain;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	.history {
		/* min-height: calc(100% - 75px); */
		min-height: calc(100vh - 75px);
		min-height: auto;
	}

	.history.black {
		color: #1a1a1a;
		background: #eee;
	}

	.history.white {
		aspect-ratio: 16 / 9;
	}

	.history .title {}

	.history .inner {
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.history>img {
		height: auto;
		aspect-ratio: 16 / 9;
		position: relative;
		opacity: 1;
	}

	.history .separate li {
		position: relative;
		z-index: 1;
	}

	.history:not(.people) .separate li:last-child {
		flex: none;
	}

	.history .separate.right li:first-child {
		order: 0;
	}

	.history .button {
		margin-top: 30px;
		margin-right: auto;
		margin-left: 0 !important;
	}


	.history .separate .link {
		color: #1a1a1a;
	}

	.history .separate .link:after {
		background: url(../img/icon_blank_black.svg) no-repeat center center / contain;
	}

}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	.history.people .separate {
		display: flex;
	}

	.history.people .separate li {
		width: auto;
	}

	.history.people .separate li+li {
		margin-left: 24px;
		margin-top: 0;
	}

	.history .separate dd h3 {
		flex-direction: column;
		margin-top: 15px;
	}

	.history .separate dd h3 span {
		font-size: 18px;
	}

	.history .separate dd h3 small {
		display: block;
		min-height: auto;
		font-size: 10px;
		font-weight: normal;
		text-align: left;
		border-left: 0;
		margin-left: 0;
		padding-left: 0;
		margin-top: 15px;
	}

	.history .separate dd h3+p {
		margin-top: 24px;
	}

	.history .button {
		margin-top: 40px;
		margin-left: auto !important;
	}


}

/*-------------------------------------------------------------------------
	youtube
-------------------------------------------------------------------------*/
.history.youtube {
	overflow: hidden
}

.history iframe#youtube {
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
	overflow: hidden;
}

/*------------------------------------------------------------------------*/

@media screen and (min-width: 1024px) {
	.history.youtube {
		user-select: none;
		pointer-events: none;
	}

	.history .youtube {
		display: none;
	}
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	.history iframe#youtube {
		display: none;
	}

	.history .youtube {
		position: relative;
		width: 100%;
		padding-top: 56.25%;
		display: block;
		z-index: 1;
	}

	.history .youtube iframe {
		position: absolute;
		top: 0;
		right: 0;
		width: 100% !important;
		height: 100% !important;
		z-index: 2;
	}

}


/*-------------------------------------------------------------------------
　annotation
-------------------------------------------------------------------------*/

.history .annotation input {
	display: none;
}

.history .annotation div h5 {
	display: flex;
	justify-content: center;
	flex-direction: column;
	line-height: 1.5;
	margin-bottom: 10px;
}

.history .annotation div h5 span {
	font-size: 14px;
}

.history .annotation div h5 small {
	font-size: 12px;
	font-weight: normal;
}

.history .annotation div p {
	font-size: 12px;
	font-size: clamp(11px, 1.15vw, 12px);
	line-height: 1.66;
}


/*------------------------------------------------------------------------*/

@media screen and (min-width: 1024px) {


	.history .annotation {
		display: block;
		position: absolute;
		bottom: 30px;
		z-index: 2;
	}

	.history .separate.left .annotation {
		right: 30px;
	}

	.history .separate.left .annotation div {
		right: 70px;
	}

	.history .separate.right .annotation {
		left: 30px;
	}

	.history .separate.right .annotation div {
		left: 70px;
	}

	.history .annotation label {
		width: 128px;
		height: 30px;
		border: 1px solid #fff;
		border-radius: 15px;
		padding-left: 20px;
		box-sizing: border-box;
		font-size: 12px;
		font-weight: bold;
		letter-spacing: .05em;
		display: flex;
		align-items: center;
		justify-content: center;
		list-style: none;
		cursor: pointer;
	}

	.history .annotation label::after {
		content: 'i';
		font-weight: normal;
		width: 30px;
		height: 30px;
		border: 1px solid #fff;
		border-radius: 15px;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		left: 0;
	}

	.history .annotation label::after {
		content: attr(data-item);
	}

	.history .annotation div {
		width: 300px;
		border: 1px solid rgba(255, 255, 255, .75);
		border-radius: 12px;
		box-sizing: border-box;
		padding: 15px;
		position: absolute;
		bottom: 50px;
		display: none;
	}

	.history .annotation :checked+div {
		display: block;
	}

}



/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.history .annotation {
		width: 204px;
		position: static;
		background: #fafafa;
		border: 1px solid #1a1a1a;
		border-radius: 12px;
		box-sizing: border-box;
		padding: 15px;
		margin-right: 52px;
	}


	.history .annotation div {
		width: auto;
		position: static;
	}

	.history .annotation label {
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 12px;
		font-weight: bold;
		text-align: center;
		margin-bottom: 10px;
	}

	.history .annotation label::before {
		content: 'i';
		font-weight: normal;
		width: 16px;
		height: 16px;
		border: 1px solid #1a1a1a;
		border-radius: 8px;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-right: 5px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.history .annotation {
		width: auto;
		margin-right: 0;
	}

	.history .annotation div h5 {
		align-items: center;
	}

}


/*-------------------------------------------------------------------------
　details
-------------------------------------------------------------------------*/

.history details {
	display: block;
	position: absolute;
	bottom: 30px;
	z-index: 2;
}

.history .separate.left details {
	right: 30px;
}

.history .separate.left details div {
	right: 70px;
}

.history .separate.right details {
	left: 30px;
}

.history .separate.right details div {
	left: 70px;
}

.history details summary {
	width: 128px;
	height: 30px;
	border: 1px solid #fff;
	border-radius: 15px;
	padding-left: 20px;
	box-sizing: border-box;
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .05em;
	display: flex;
	align-items: center;
	justify-content: center;
	list-style: none;
	cursor: pointer;
}

.history details summary::-webkit-details-marker {
	display: none;
}

.history details summary::after {
	content: 'i';
	font-weight: normal;
	width: 30px;
	height: 30px;
	border: 1px solid #fff;
	border-radius: 15px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 0;
}

.history details div {
	width: 300px;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 12px;
	box-sizing: border-box;
	padding: 15px;
	position: absolute;
	bottom: 50px;
}

.history details[open] div {}

.history details[open] summary::after {
	content: '×';
}

.history details div h5 {
	font-size: 14px;
	line-height: 1.75;
	margin-bottom: 10px;
}

.history details div p {
	font-size: 12px;
	line-height: 1.75;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.history details {
		position: static;
	}

}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ ナビゲーション
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.navigation {
	position: fixed;
	right: 24px;
	top: calc(50% + 45px);
	transform: translateY(-50%);
	z-index: 3;
	/*mix-blend-mode: exclusion;*/
}

.navigation:after {
	content: "";
	display: block;
	width: 1px;
	height: 15px;
	background: #1a1a1a;
	margin: 0 auto;
}

.navigation li:before {
	content: "";
	display: block;
	width: 1px;
	height: 15px;
	background: #1a1a1a;
	margin: 0 auto;
}

.navigation a {
	width: 57px;
	height: 24px;
	border: 1px solid #1a1a1a;
	border-radius: 12px;
	box-sizing: border-box;
	font-size: 11px;
	font-weight: bold;
	letter-spacing: 0;
	background: #fafafa;
	color: #1a1a1a;
	display: flex;
	align-items: center;
	justify-content: center;
}

.navigation a.active {
	color: #fafafa;
	background: #1a1a1a;
}



/*------------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {
	.navigation a {
		width: 52px;
		font-size: 10px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	.navigation {
		top: auto;
		bottom: 45px;
		right: 50%;
		/* transform: translate(50%, 0); */
		visibility: hidden;
		opacity: 0;
		transition: opacity 0.35s;
		width: 296px;
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;

		transform: translate(0);
		position: unset;
		bottom: auto;
		right: auto;
	}

	/* 300px スクロールで表示 */
	.navigation.show {
		visibility: visible;
		opacity: 1;
	}

	.navi-fixed {
		position: relative;
	}

	.navi-box {
		position: fixed;
		width: 100%;
		height: 54px;
		z-index: 10;
		bottom: 45px;
	}

	.navigation:after {
		display: none;
	}

	.navigation li:before {
		width: 3px;
		height: 1px;
		margin: 0;
	}

	.navigation li:after {
		content: "";
		display: block;
		width: 3px;
		height: 1px;
		background: #1a1a1a;
		margin: 0;
	}

	.navigation li {
		display: flex;
		align-items: center;
	}

	.navigation li:nth-child(n + 6) {
		margin-top: 6px;
	}

	.navigation a {
		width: 52px;
		font-size: 10px;
	}

	.navigation li:nth-child(1):before {
		width: 6px;
	}

	.navigation li:nth-child(5):after {
		width: 6px;
	}

	.navigation li:nth-child(6):before {
		width: 6px;
	}

	.navigation li:nth-child(10):after {
		width: 6px;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ memories
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */


#memories {}

/*-------------------------------------------------------------------------
　memories
-------------------------------------------------------------------------*/

.memories {
	margin-top: 90px;
	margin-bottom: -120px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.memories {
		margin-top: 75px;
		margin-bottom: -48px;
	}


}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.memories {
		margin-top: 60px;
		margin-bottom: -45px;
	}


}

/*-------------------------------------------------------------------------
　heading
-------------------------------------------------------------------------*/

#memories h4 {
	font-size: 30px;
	font-size: clamp(20px, 2.5vw, 30px);
	font-weight: bold;
	line-height: 1.6;
	text-align: center;
}

#memories h4 span {
	position: relative;
	display: flex;
	align-items: end;
	justify-content: center;
}

#memories h4 span:before {
	content: "";
	display: block;
	width: 32px;
	width: clamp(24px, 2.8vw, 32px);
	height: 76px;
	height: clamp(56px, 6.6vw, 76px);
	background: url(../img/memories_h4_left.svg) no-repeat left top / contain;
	margin-right: 40px;
	margin-right: clamp(20px, 3.0vw, 40px);
}

#memories h4 span:after {
	content: "";
	display: block;
	width: 32px;
	width: clamp(24px, 2.8vw, 32px);
	height: 76px;
	height: clamp(56px, 6.6vw, 76px);
	background: url(../img/memories_h4_right.svg) no-repeat left top / contain;
	margin-left: 40px;
	margin-left: clamp(20px, 3.0vw, 40px);
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	#memories h4 {
		font-size: 16px;
	}

	#memories h4 span:before {
		margin-right: 8px;
	}

	#memories h4 span:after {
		margin-left: 8px;
	}


}

/*-------------------------------------------------------------------------
　circle
-------------------------------------------------------------------------*/

.circle {
	display: flex;
	justify-content: center;
	margin: 80px auto;
	margin: clamp(48px, 6.4vw, 80px) auto;
	filter: drop-shadow(5px 5px 5px rgba(26, 26, 26, .25));
}

.circle dt {
	width: 200px;
	width: clamp(150px, 17.5vw, 200px);
	position: relative;
	z-index: 1;
}

.circle dt a {
	display: block;
}

.circle dt a:hover img {
	transform: scale(1.1);
}

.circle dt a img {
	width: 100%;
	transition: all 0.5s ease;
}


.circle dd {
	width: 200px;
	width: clamp(150px, 17.5vw, 200px);
	height: 200px;
	height: clamp(150px, 17.5vw, 200px);
	margin-left: -15px;
}

.circle dd a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	transition: all 0.5s ease;
	border-radius: 100%;
	background: #eee;
}

.circle dd a:hover {
	transform: scale(1.1);
}

.circle dd figure {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

.circle dd figure img {
	width: 40px;
	width: clamp(30px, 3.5vw, 40px);
}

.circle dd figure figcaption {
	font-size: 18px;
	font-size: clamp(14px, 1.6vw, 18px);
	font-weight: bold;
	margin-top: 16px;
	margin-top: clamp(12px, 1.4vw, 16px);
}

/*------------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {

	.circle dd {
		margin-left: -10px;
	}

}

/*------------------------------------------------------------------------*/
@media screen and (max-width: 767px) {

	.circle {
		margin: 45px auto;
		filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	}

	.circle dt {
		width: 125px;
	}

	.circle dd {
		width: 125px;
		height: 125px;
	}

	.circle dd figure img {
		width: 25px;
	}

	.circle dd figure figcaption {
		font-size: 12px;
		margin-top: 8px;
	}
}

/*-------------------------------------------------------------------------
　link
-------------------------------------------------------------------------*/
#memories .link {
	margin-top: 50px;
}

#memories .link a {
	width: 100%;
	height: 96px;
	height: clamp(75px, 8.55vw, 96px);
	border: 0;
	border-radius: 12px;
	border-radius: clamp(6px, 0.9vw, 12px);
	font-size: 16px;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: bold;
	letter-spacing: .05em;
	line-height: 1.5;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: #eee;
	background-repeat: no-repeat;
	background-position: right 20px center;
	background-image: url(../img/icon_more_bottom_black.svg);
	background-size: clamp(11px, 1.3vw, 15px) auto;
	box-shadow: 5px 5px 5px rgba(26, 26, 26, .25);
	transition: all 0.5s ease;
}

#memories .link a:hover {
	transform: scale(1.025);
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	#memories .link {
		margin-top: 24px;
	}

	#memories .link a {
		font-size: 12px;
		background-position: right 10px center;
		box-shadow: 3px 3px 3px rgba(26, 26, 26, .25);
	}

}


/*-------------------------------------------------------------------------
　instagram
-------------------------------------------------------------------------*/
.instagram {
	z-index: 1;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	margin: 0 -25px -50px -25px;
}

.instagram li {
	width: calc(100% / 3 - 50px);
	margin: 0 25px 50px 25px;
	position: relative;
}

.instagram li a {
	display: block;
	width: 100%;
	position: relative;
	overflow: hidden;
	background: #000;
}

.instagram li img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center center;
	transition: all 0.75s ease;
}
.instagram li a:hover img {
	transform: scale(1.05);
	opacity: .5;
}

.instagram li a:before {
	content: "";
	display: block;
	width: 18px;
	width: clamp(12px, 1.6vw, 18px);
	height: 18px;
	height: clamp(12px, 1.6vw, 18px);
	position: absolute;
	top: 12px;
	top: clamp(9px, 1.05vw, 12px);
	right: 12px;
	right: clamp(9px, 1.05vw, 12px);
	z-index: 1;
	filter: drop-shadow(0 0 2px rgba(0, 0, 0, .25));
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}

.instagram li.movie a:before {
	background-image: url(../img/icon_instagram_movie.svg);
}

.instagram li.multiple a:before {
	background-image: url(../img/icon_instagram_multiple.svg);
}

.instagram li.reels a:before {
	background-image: url(../img/icon_instagram_reels.svg);
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.instagram {
		margin: 0 -9px -18px -9px;
	}

	.instagram li {
		width: calc(100% / 3 - 18px);
		margin: 0 9px 18px 9px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.instagram {
		margin: 0 -2px -4px -2px;
	}

	.instagram li {
		width: calc(100% / 3 - 4px);
		margin: 0 2px 4px 2px;
	}

	.instagram li a:before {
		width: 8px;
		height: 8px;
		top: 5px;
		right: 5px;
	}

}

/*-------------------------------------------------------------------------
　text1
-------------------------------------------------------------------------*/

.text1 {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -24px -48px -24px;
	position: relative;
	z-index: 1;
}

.text1 li {
	width: calc(100% / 2 - 48px);
	margin: 0 24px 48px 24px;
	background: #eee;
	border-radius: 12px;
	filter: drop-shadow(5px 5px 5px rgba(26, 26, 26, .25));
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {


	.text1 {
		margin: 0 -10px -20px -10px;
	}

	.text1 li {
		width: calc(100% / 2 - 20px);
		margin: 0 10px 20px 10px;
		border-radius: 6px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.text1 {
		margin: 0;
	}

	.text1 li {
		width: 100%;
		margin: 0;
		filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	}

	.text1 li+li {
		margin-top: 20px;
	}

}



.text1 dl {
	padding: 48px;
}

.text1 dt {
	letter-spacing: 0;
	display: flex;
	justify-content: center;
	flex-direction: column;
}

.text1 dt b {
	font-size: 30px;
	font-size: clamp(20px, 2.5vw, 30px);
	font-weight: bold;
	text-align: center;
	line-height: 1.4;
}

.text1 dt span {
	font-size: 24px;
	font-size: clamp(16px, 2.0vw, 24px);
	font-weight: bold;
	line-height: 1.5;
}

.text1 dt small {
	font-size: 14px;
	font-size: clamp(12px, 1.3vw, 14px);
	font-weight: normal;
	margin-top: 20px;
	margin-top: clamp(15px, 1.75vw, 20px);
}

.text1 dd {
	margin-top: 36px;
	margin-top: clamp(20px, 2.8vw, 36px);
	position: relative;
}

.text1 dd p {
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	line-height: 1.75;
}

.text1 dd p+p {
	margin-top: 16px;
}



/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.text1 dl {
		padding: 30px;
	}

	.text1 dd p {}



}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}

/*-------------------------------------------------------------------------
　logo2
-------------------------------------------------------------------------*/

.text1 .logo2 {
	flex: none;
	width: 200px;
	width: clamp(150px, 17.5vw, 200px);
	margin: 0 auto;
	filter: drop-shadow(5px 5px 5px rgba(26, 26, 26, .25));
}

.text1 .logo2 img {
	width: 100%;
	transition: all 0.5s ease;
}

.text1 .logo2 a:hover img {
	transform: scale(1.1);
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {


	.text1 .logo2 {
		filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	}

}

/*-------------------------------------------------------------------------
　insta
-------------------------------------------------------------------------*/

.text1 .insta {
	margin-top: 40px;
	margin-top: clamp(25px, 3.25vw, 40px);
}

.text1 .insta a {
	display: block;
	width: fit-content;
	margin: 0 auto;
	transition: all 0.5s ease;
}

.text1 .insta a:hover {
	transform: scale(1.1);
}

.text1 .insta figure {
	display: flex;
	align-items: center;
	justify-content: center;
}

.text1 .insta figure img {
	width: 40px;
	width: clamp(30px, 3.5vw, 40px);
}

.text1 .insta figure figcaption {
	font-size: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	font-weight: bold;
	margin-left: 12px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}


/*-------------------------------------------------------------------------
　button
-------------------------------------------------------------------------*/

.text1 button {
	position: absolute;
	right: 24px;
	bottom: 30px;
	flex: none;
	width: 60px;
	height: 60px;
	border-radius: 100%;
	border: 0;
	margin: 0 auto;
	background: #fafafa;
	filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	cursor: pointer;
}

.text1 button img {
	height: 30px;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.text1 button {
		position: absolute;
		right: 20px;
		bottom: 20px;
		width: 45px;
		height: 45px;
	}

	.text1 button img {
		height: 22px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}


/*-------------------------------------------------------------------------
　complete
-------------------------------------------------------------------------*/
.text1 .complete {
	position: absolute;
	right: 24px;
	bottom: -20px;
	filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	z-index: 2;
	opacity: 0;
	visibility: hidden;
	transition: 0.3s;
}

.text1 .complete.show {
	opacity: 1;
	visibility: visible;
}

.text1 .complete span {
	display: inline-block;
	background: #fafafa;
	padding: 10px;
	font-size: 14px;
	font-size: clamp(10px, 1.2vw, 14px);
	letter-spacing: 0;
}

.text1 .complete:before {
	content: "";
	display: block;
	width: 0;
	height: 0;
	margin-left: auto;
	margin-right: 22px;
	border-style: solid;
	border-width: 0 8px 16px 8px;
	border-color: transparent transparent #fafafa transparent;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.text1 .complete {
		right: 22px;
		bottom: -22px;
	}

	.text1 .complete:before {
		margin-right: 14px;
		border-width: 0 6px 12px 6px;
	}

}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {}

/*-------------------------------------------------------------------------
　text2
-------------------------------------------------------------------------*/

.text2 {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -24px -48px -24px;
	margin-top: 48px;
}

.text2 li {
	width: calc(100% / 4 - 48px);
	margin: 0 24px 48px 24px;
	background: #eee;
	border-radius: 12px;
	filter: drop-shadow(5px 5px 5px rgba(26, 26, 26, .25));
}

.text2 dl {
	padding: 32px 24px 24px 24px;
}

.text2 dt {}

.text2 dt span {
	font-size: 40px;
	font-size: clamp(30px, 3.5vw, 40px);
	/*font-family: "HelveticaNeueLTPro-Bd";
	font-style: normal;*/
	font-weight: bold;
	text-align: center;
	width: 60px;
	width: clamp(45px, 5.25vw, 60px);
	height: 60px;
	height: clamp(45px, 5.25vw, 60px);
	border: 4px solid #1a1a1a;
	border-radius: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}

.text2 dd {
	margin-top: 24px;
	margin-top: clamp(15px, 1.95vw, 24px);
	font-size: 16px;
	font-size: clamp(12px, 1.4vw, 16px);
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	.text2 {
		margin: 0 -10px -20px -10px;
		margin-top: 20px;
	}

	.text2 li {
		width: calc(100% / 4 - 20px);
		margin: 0 10px 20px 10px;
		border-radius: 6px;
	}

	.text2 dl {
		padding: 24px 0;
	}



}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {

	.text2 {
		margin: 0 -8px -16px -8px;
		margin-top: 15px;
	}

	.text2 li {
		width: calc(100% / 2 - 16px);
		margin: 0 8px 16px 8px;
		filter: drop-shadow(3px 3px 3px rgba(26, 26, 26, .25));
	}


}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■ footer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#footer {
	/* transform: translateY(-90px); */
}

footer {
	background: #ddd;
	position: relative;
}

footer .inner.max {
	width: calc(100% - 100px);
}

footer hr {
	margin: 0 50px;
	background: #1a1a1a;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	footer .inner.max {
		width: calc(100% - 50px);
	}

	footer hr {
		margin: 0 25px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	footer .inner.max {
		width: calc(100% - 48px);
	}

	footer hr {
		margin: 0 20px;
	}
}


/*-------------------------------------------------------------------------
	top
-------------------------------------------------------------------------*/

footer .top {
	display: flex;
	padding: 160px 0;
}

footer .top>li {}

footer .top h6 {
	font-size: 16px;
	font-family: "HelveticaNeueLTPro-Roman";
	font-weight: normal;
	letter-spacing: .05em;
	margin-bottom: 40px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	footer .top {
		padding: 50px 0;
	}

	footer .top h6 {
		font-size: 14px;
		margin-bottom: 30px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	footer .top {
		flex-direction: column;
		margin: 0 24px;
	}

	footer .top>li+li {
		margin-top: 45px;
	}
}


/*-------------------------------------------------------------------------
	logo
-------------------------------------------------------------------------*/

footer .top .logo {
	flex: 3;
}

footer .top .logo dt {
	margin-bottom: 30px;
}

footer .top .logo img {
	width: 210px;
	width: clamp(150px, 18.0vw, 210px);
}

footer .top .logo dd {
	font-size: 20px;
	font-size: clamp(16px, 1.8vw, 20px);
	font-family: "HelveticaNeueLTPro-Bd";
	letter-spacing: .025em;
	line-height: 1.2;
	white-space: nowrap;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	footer .top .logo {
		flex: none;
		text-align: center;
	}

	footer .top .logo dt {
		margin-bottom: 15px;
	}

	footer .top .logo img {
		width: 120px;
	}

	footer .top .logo dd {
		font-size: 14px;
	}
}


/*-------------------------------------------------------------------------
	sitemap
-------------------------------------------------------------------------*/

footer .top .sitemap {
	flex: 4;
}

footer .top .sitemap ul {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: -20px;
}

footer .top .sitemap li {
	width: 50%;
	margin-bottom: 20px;
}

footer .top .sitemap li a {
	display: flex;
	justify-content: center;
	flex-direction: column;
}

footer .top .sitemap li a span {
	font-size: 16px;
	font-family: "HelveticaNeueLTPro-Bd";
	letter-spacing: .05em;
}

footer .top .sitemap li a small {
	font-size: 11px;
	letter-spacing: 0;
	margin-top: 2px;
}

/*-------------------------------------------------------------------------
	address
-------------------------------------------------------------------------*/

footer .top .address {
	flex: 2;
	display: flex;
	justify-content: center;
	flex-direction: column;
}

footer .top .address p {
	font-size: 12px;
	letter-spacing: .05em;
	line-height: 1.75;
}

footer .top .address p+p {
	margin-top: 15px;
}

footer .top .address p+p a {
	text-decoration: underline;
}

footer .top .address p+p a:hover {
	text-decoration: none;
}

/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {

	footer .top .address p+p {
		margin-top: 0;
	}
}

/*-------------------------------------------------------------------------
	sns
-------------------------------------------------------------------------*/

footer .top .sns {
	display: flex;
	align-items: center;
	margin-top: auto;
}

footer .top .sns li {
	flex: none;
}

footer .top .sns li+li {
	margin-left: 15px;
}

footer .top .sns li a {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

footer .top .sns li a img {
	width: 20px;
}

footer .top .sns li:last-child a img {
	width: 24px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	footer .top .sns {
		justify-content: center;
		margin-top: 40px;
	}
}


/*-------------------------------------------------------------------------
	bottom
-------------------------------------------------------------------------*/

footer .bottom {
	padding: 50px 0 58px 0;
}

footer .bottom dl {
	display: flex;
	align-items: center;
	position: relative;
}

footer .bottom dt {
	position: relative;
	z-index: 1;
}

footer .bottom dt img {
	width: 214px;
	width: clamp(150px, 18.2vw, 214px);
}

footer .bottom dd {
	width: 100%;
	height: 100%;
	font-size: 11px;
	font-family: "HelveticaNeueLTPro-Roman";
	letter-spacing: .05em;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	footer .bottom {
		padding: 25px 0 32px 0;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	footer .bottom dl {}

	footer .bottom dt {
		margin-right: 15px;
	}

	footer .bottom dt img {
		width: 100px;
	}

	footer .bottom dd {
		width: auto;
		height: auto;
		font-size: 10px;
		display: block;
		position: static;
	}
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
	■pagetop
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

#pagetop {
	width: 60px;
	height: 60px;
	width: clamp(45px, 5.25vw, 60px);
	height: clamp(45px, 5.25vw, 60px);
	position: fixed;
	right: 50px;
	bottom: 50px;
	z-index: 2;
}

#pagetop a {
	width: 100%;
	height: 100%;
	background: #fafafa;
	border: 1px solid #000;
	border-radius: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
}

#pagetop a img {
	height: 21px;
	height: clamp(15px, 1.8vw, 21px);
	transition: .5s;
	position: relative;
	bottom: 0;
}

#pagetop a:hover img {
	bottom: 4px;
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 1023px) {
	#pagetop {
		right: 25px;
		bottom: 25px;
	}
}


/*------------------------------------------------------------------------*/

@media screen and (max-width: 767px) {
	#pagetop {
		right: 20px;
		bottom: 20px;
	}
}