/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Common
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
html {
	overflow-y: scroll;
	font-size: 62.5%;
}

:root {
	--CommonColorCream: rgba(255, 251, 245, 1);
	--CommonColorBeige: rgba(255, 243, 226, 1);
	--CommonColorPink: rgba(239, 133, 140, 1);
	--CommonColorOrange: rgba(240, 131, 0, 1);
	--CommonColorGreen: rgba(97, 193, 190, 1);
	--CommonColorGray: rgba(51, 51, 51, 1);
	--CommonColorWhite: rgba(255, 255, 255, 1);
	--CommonColorBlack: rgba(0, 0, 0, 1);

	--BaseFont: 'Zen Kaku Gothic New', sans-serif;
	--TitleFont: 'Yeseva One', cursive;
	--FontSizeClamp14: min(14px, 1.346vw);
	--FontSizeClamp16: min(16px, 1.53vw);
	--FontSizeClamp18: min(18px, 1.73vw);
	--FontSizeClamp20: min(20px, 1.92vw);
	--FontSizeClamp24: min(24px, 2.3vw);
	--FontSizeClamp26: min(26px, 2.5vw);
	--FontSizeClamp28: min(28px, 2.69vw);
	--FontSizeClamp32: min(32px, 3.07vw);
	--FontSizeClamp36: min(36px, 3.46vw);
	--FontSizeClamp60: min(60px, 5.77vw);
	--FontSizeClamp80: min(80px, 7.69vw);
	--FontSizeClamp100: min(100px, 9.6vw);

	--FontSizeSp12: 3.07vw;
	--FontSizeSp14: 3.58vw;
	--FontSizeSp16: 4.1vw;
	--FontSizeSp18: 4.61vw;
	--FontSizeSp20: 5.12vw;
	--FontSizeSp24: 6.15vw;
	--FontSizeSp26: 6.66vw;
	--FontSizeSp32: 8.2vw;
	--FontSizeSp40: 10.25vw;
	--FontSizeSp52: 13.33vw;

	--BaseFontRegular: 400;
	--BaseFontMedium: 500;
	--BaseFontBold: 700;
	--BaseFontBlack: 900;
	--LineHeight100: 100%;
	--LineHeight150: 150%;
	--LineHeight180: 180%;
	--LineHeight200: 200%;
}


body {
	font-family:
		var(--BaseFont),
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		"Noto Sans JP",
		"Yu Gothic",
		"Meiryo",
		sans-serif;
	width: 100%;
	word-wrap: break-word;
	overflow-wrap: break-word;
	margin: 0;
	position: relative;
	overflow: hidden;
}

.s body {
	overflow: visible;
}

a {
	text-decoration: none;
	transition: all .2s ease-out;
	text-decoration: none;
	color: inherit;
}

a:hover {
	transition: all .2s ease-out;
	cursor: pointer;
	/* opacity: 0.7; */
}

a,
button,
input,
textarea {
	-webkit-tap-highlight-color: transparent;
}

ol,
ul,
li {
	list-style: none;
	padding: 0;
}

img {
	max-width: 100%;
	width: 100%;
	height: auto;
}

.l ._pc {
	display: block;
}

._pc {
	display: none;
}

.l ._sp {
	display: none;
}

._sp {
	display: block;
}

/* ================================
        Layout
================================ */
.Center {
	width: 100%;
	margin-inline: auto;
	padding-inline: 20px;
	max-width: 1040px;
	position: relative;
	z-index: 3;
}

.s .Center {
	padding-inline: 5.12vw;
}

.CommonList li {
	text-indent: -1em;
	padding-left: 1em;
}

/* ================================
			FadeIn
================================ */
.FadeIn {
	opacity: 0;
}

.FadeIn.DownUp {
	opacity: 0;
	transform: translate(0, 40px);
}

.FadeIn.UpDown {
	opacity: 0;
	transform: translate(0, -20px);
}

.FadeIn.LeftUp {
	opacity: 0;
	transform: translate(30px, 30px);
}

.FadeIn.RightUp {
	opacity: 0;
	transform: translate(-30px, 30px);
}

.FadeIn.Up {
	opacity: 0;
	transform: scale(0.9);
}

.FadeIn.ScrollIn {
	opacity: 1;
	transform: translate(0, 0) scale(1);
	transition-property: opacity, transform;
	transition-duration: 600ms;
	transition-timing-function: ease-in;
}

.FadeIn.Up.ScrollIn {
	transition-duration: 500ms;
}

/* ================================
        Title
================================ */
h1 {
	width: 27.326vw;
	transform: translateY(4.375vw);
}

.s h1 {
	width: 55.89vw;
	transform: translateY(0);
}

h2 {
	font-family: var(--TitleFont);
	font-size: var(--FontSizeClamp80);
	line-height: 86%;
}

.s h2 {
	font-family: var(--TitleFont);
	font-size: var(--FontSizeSp52);
}

/* ================================
        Button
================================ */
.CommonBtn {
	width: min(120px, 11.53vw);
	aspect-ratio: 1 / 1;
	position: relative;
	transition: all .2s ease-out;
}

.s .CommonBtn {
	width: 25.6vw;
}

.CommonBtn::after {
	content: '';
	background: url(../img/icon-btn-text.png) center no-repeat;
	aspect-ratio: 1 / 1;
	background-size: 100%;
	width: min(120px, 11.53vw);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: rotate 16s linear infinite;
	display: block;
	pointer-events: none
}

.s .CommonBtn::after {
	width: 25.6vw;
}

@keyframes rotate {
	0% {
		transform: translate(-50%, -50%) rotate(0deg);
	}

	100% {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

.CommonBtn a {
	display: block;
}

.CommonBtn:hover {
	transform: scale(0.8);
}

.s .CommonBtn:hover {
	transform: scale(1);
}

/* ================================
        Header
================================ */
.Header {
	background: var(--CommonColorWhite);
	position: fixed;
	padding: 0 40px;
	top: 0;
	width: 100%;
	z-index: 100;
	font-family: var(--TitleFont);
	color: var(--CommonColorGray);
	transition: .5s;
	line-height: 1;
	font-size: clamp(18px, 5.258px + 1.302vw, 24px);
	border-radius: 0 0 32px 32px;
}

.s .Header {
	padding: 0 5.12vw;
	font-size: clamp(18px, 5.258px + 1.302vw, 24px);
}

.HeaderArea {
	height: 100px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-align: center;
}

.s .HeaderArea {
	height: 17.94vw;
}

.HeaderLogo {
	max-width: 290px;
	width: 100%;
	transition: all .2s ease-out;
}

.s .HeaderLogo {
	max-width: 40.8vw;
}

.HeaderArea>li>a {
	display: block;
	text-decoration: none;
	transition: 0.2s;
	color: inherit;
	padding: 0 16px
}

.s.HeaderHam {
	display: none;
}

.s .HeaderHam {
	display: block;
}

.s .HeaderArea>li>a {
	padding: 0
}

.s .HeaderArea>li button {
	height: 8.2vw;
	width: 20.51vw;
	padding: 0;
	background-color: var(--CommonColorGray);
	border-radius: 90px;
}

.HeaderArea>li a:hover {
	text-decoration: underline;
}

.HeaderArea>li:first-child {
	margin-right: auto;
}

.l .HeaderArea>li:not(:first-child):not(:last-child) {
	display: block;
}

.HeaderArea>li:not(:first-child):not(:last-child) {
	display: none;
}

/* --------------
	Menu
-----------------*/
.HeaderHamMenu {
	display: inline-block;
	vertical-align: top;
	position: relative;
	height: 8.2vw;
}

.HeaderHamMenuLine {
	background: var(--CommonColorWhite);
	width: 5.38vw;
	display: inline-block;
	height: 0.51vw;
	position: absolute;
	border-radius: 10px;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: all .3s;
}

.HeaderHamMenuLine._top {
	top: 2.82vw;
}

.HeaderHamMenuLine._top.isActive {
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}

.HeaderHamMenuLine._bottom {
	top: 5.38vw;
}

.HeaderHamMenuLine._bottom.isActive {
	top: 50%;
	transform: translate(-50%, -50%) rotate(-45deg);
}

/* --------------
	Gnav
-----------------*/
.HeaderGnav {
	background: url(../img/ham-bg.png) center no-repeat;
	background-size: 100%;
	display: none;
	top: 0;
	left: 0;
	height: 100%;
	position: fixed;
	width: 100%;
	z-index: 90;
}

.HeaderGnavMenu {
	align-items: center;
	display: flex;
	height: auto;
	justify-content: flex-start;
	flex-direction: column;
	position: absolute;
	top: 31.82vw;
	width: 100%;
}

.HeaderGnavMenu li {
	width: 100%;
	text-align: center;
}

.HeaderGnavMenu li a {
	color: var(--CommonColorWhite);
	font-size: var(--FontSizeSp32);
	font-family: var(--TitleFont);
	padding: 6.15vw;
	display: inline-block;
	text-decoration: none;
	transition: .5s;
	position: relative;
	z-index: 100;
}


/* ================================
        Mv
================================ */
.Mv {
	background: var(--CommonColorCream);
	padding: 100px 0 19.22vw;
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.s .Mv {
	background: var(--CommonColorCream);
	padding: 54.1vw 0 63.12vw;
}

.MvOrnamentLeft li,
.MvOrnamentRight li {
	position: absolute;
}

.MvOrnamentLeft li .MvRotate,
.MvOrnamentRight li .MvRotate {
	display: inline-block;
}

/* --------------
	Left Ornament
-----------------*/
.MvOrnamentLeft li._gl1 {
	width: 26.38vw;
	top: 35.83vw;
	left: -1.92vw;
}

.s .MvOrnamentLeft li._gl1 {
	width: 59vw;
	top: 156.5vw;
	left: -21vw;
}

.MvOrnamentLeft li._gl1 .MvRotate {
	transform: rotate(-37.46deg);
}

.MvOrnamentLeft li._gl2 {
	width: 4.04vw;
	top: 34.13vw;
	left: 32.89vw;
}

.s .MvOrnamentLeft li._gl2 {
	width: 11.18vw;
	top: 101.3vw;
	left: 18.6vw;
}

.MvOrnamentLeft li._gl2 .MvRotate {
	transform: rotate(-22.91deg);
}

.MvOrnamentLeft li._ol1 {
	width: 10.73vw;
	top: 21.39vw;
	left: 17.7vw;
}

.s .MvOrnamentLeft li._ol1 {
	width: 29.65vw;
	top: 63.58vw;
	left: -15.6vw;
}

.MvOrnamentLeft li._ol1 .MvRotate {
	transform: rotate(-39.72deg);
}


.MvOrnamentLeft li._pl1 {
	width: 2.88vw;
	top: 40.8vw;
	left: 22.89vw;

}

.s .MvOrnamentLeft li._pl1 {
	display: none
}

.MvOrnamentLeft li._pl1 .MvRotate {
	transform: rotate(137.42deg);
}

.MvOrnamentLeft li._pl2 {
	width: 33.24vw;
	top: 3.42vw;
	left: -10.29vw;

}

.s .MvOrnamentLeft li._pl2 {
	width: 70.89vw;
	top: 0.95vw;
	left: -42.48vw;
}

.MvOrnamentLeft li._pl2 .MvRotate {
	transform: rotate(26.37deg);
}

.MvOrnamentLeft li._yl1 {
	width: 15vw;
	top: 26.3vw;
	left: -2.04vw;
}

.s .MvOrnamentLeft li._yl1 {
	width: 33.75vw;
	top: 137.9vw;
	left: -18.66vw;
}

.MvOrnamentLeft li._yl2 {
	width: 6.84vw;
	top: 29.39vw;
	left: 24.7vw;
}

.s .MvOrnamentLeft li._yl2 {
	width: 18.91vw;
	top: 88.25vw;
	left: -3.98vw;
}

.MvOrnamentLeft li._yl2 .MvRotate {
	transform: rotate(20.04deg);
}

/* --------------
	Right Ornament
-----------------*/
.MvOrnamentRight li._gr1 {
	width: 3.99vw;
	top: 36.38vw;
	left: 68.73vw;
}

.s .MvOrnamentRight li._gr1 {
	width: 10.16vw;
	top: 108.2vw;
	left: 88.42vw;
}

.MvOrnamentRight li._gr1 .MvRotate {
	transform: rotate(27.6deg);
}

.MvOrnamentRight li._gr2 {
	width: 25.12vw;
	top: 2.19vw;
	left: 80.9vw;
}

.s .MvOrnamentRight li._gr2 {
	width: 38.28vw;
	top: 24.5vw;
	left: 79.57vw;
}

.MvOrnamentRight li._gr2 .MvRotate {
	transform: rotate(161.87deg);
}

.MvOrnamentRight li._or1 {
	width: 3.91vw;
	top: 24.6vw;
	left: 65.7vw;
}

.s .MvOrnamentRight li._or1 {
	width: 9.96vw;
	top: 76.18vw;
	left: 80vw;
}

.MvOrnamentRight li._or1 .MvRotate {
	transform: rotate(-18.72deg);
}

.MvOrnamentRight li._or2 {
	width: 10.97vw;
	top: 22.68vw;
	left: 79.43vw;
}

.s .MvOrnamentRight li._or2 {
	display: none;
}

.MvOrnamentRight li._or2 .MvRotate {
	transform: rotate(14.62deg);
}

.MvOrnamentRight li._pr1 {
	width: 7.44vw;
	top: 17.5vw;
	left: 71.23vw;
}

.s .MvOrnamentRight li._pr1 {
	width: 18.95vw;
	top: 58.1vw;
	left: 94.14vw;
}

.MvOrnamentRight li._pr1 .MvRotate {
	transform: rotate(30deg);
}

.MvOrnamentRight li._pr2 {
	width: 33.7vw;
	top: 36.48vw;
	left: 79.39vw;
}

.s .MvOrnamentRight li._pr2 {
	width: 60.16vw;
	top: 145.1vw;
	left: 74.62vw;
}

.MvOrnamentRight li._pr2 .MvRotate {
	transform: rotate(-29.62deg);
}

.MvOrnamentRight li._yr1 {
	width: 6.8vw;
	top: 27.98vw;
	left: 70.27vw;
}

.s .MvOrnamentRight li._yr1 {
	width: 17.34vw;
	top: 84.8vw;
	left: 91.68vw;
}

.MvOrnamentRight li._yr1 .MvRotate {
	transform: rotate(135.67deg);
}

.MvOrnamentRight li._yr2 {
	width: 24.9vw;
	top: 25.12vw;
	left: 83.12vw;
}

.s .MvOrnamentRight li._yr2 {
	width: 52.19vw;
	top: 140.4vw;
	left: 76.24vw;
}

.MvOrnamentRight li._yr2 .MvRotate {
	transform: rotate(45.81deg);
}


.MvFloatLarge {
	animation: floatLarge 3.2s ease-in-out infinite;
	display: inline-block;
}

.MvFloatMedium {
	animation: floatMedium 3s ease-in-out infinite;
	display: inline-block;
}

.MvFloatSmall {
	animation: floatSmall 1.8s ease-in-out infinite;
	display: inline-block;
}

@keyframes floatLarge {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-20px);
	}

	100% {
		transform: translateY(0);
	}
}

@keyframes floatMedium {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-14px);
	}

	100% {
		transform: translateY(0);
	}
}

@keyframes floatSmall {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-8px);
	}

	100% {
		transform: translateY(0);
	}
}


/* ================================
        Message
================================ */
.Message {
	background: var(--CommonColorBeige);
	position: relative;
	z-index: 2;
	margin-top: -3.84vw
}

.s .Message {
	margin-top: 0;
}

.Message::before {
	content: "";
	position: absolute;
	bottom: calc(100% - 1px);
	left: 0;
	aspect-ratio: 2880 / 496;
	width: 100%;
	background: url(../img/message-top-bg.png) top center no-repeat;
	background-size: 100%;
}

.s .Message::before {
	aspect-ratio: 780 / 134;
	background: url(../img/message-top-bg-sp.png) bottom center no-repeat;
	background-size: 100%;
}

.Message::after {
	content: "";
	position: absolute;
	top: calc(100% - 1px);
	left: 0;
	aspect-ratio: 2880 / 717;
	width: 100%;
	background: url(../img/message-bottom-bg.png) top center no-repeat;
	background-size: 100%;
}

.s .Message::after {
	aspect-ratio: 780 / 254;
	background: url(../img/message-bottom-bg-sp.png) bottom center no-repeat;
	background-size: 100%;
}

.MessageWrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	position: relative;
	z-index: 10;
	font-weight: var(--BaseFontBold);
	transform: translateY(75px);
}

.s .MessageWrapper {
	transform: translateY(0);
	padding-top: 20.76vw;
	padding-bottom: 57.17vw;
}

.MessageWrapper::after {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-beige.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 376 / 401;
	width: 376.79px;
	top: min(155px, 10.76vw);
	transform: rotate(70.86deg);
	left: calc(50% - 720px - 171px);
	z-index: -1;
}

.s .MessageWrapper::after {
	aspect-ratio: 347 / 369;
	width: 88.97vw;
	top: 44vw;
	left: -32.56vw;
}

.Message h2 {
	font-size: var(--FontSizeClamp32);
	font-family: var(--BaseFont);
	line-height: var(--LineHeight150);
	padding-bottom: 40px;
}

.s .Message h2 {
	font-size: var(--FontSizeSp24);
	padding-bottom: 7.53vw;
}

.MessageText {
	font-size: var(--FontSizeClamp20);
	line-height: var(--LineHeight200);
}

.s .MessageText {
	font-size: var(--FontSizeSp14);
}

.MessageText p {
	padding-bottom: 20px;
}

.s .MessageText p {
	padding-bottom: 5.12vw;
}

.MessageText p:last-child {
	padding-bottom: 0;
}

.Message .CommonBtnArea {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, clamp(-100%, -5.435vw - 21.7%, -75%));
}

.s .Message .CommonBtnArea {
	transform: translate(-50%, -90%);
}

/* --------------
	Ornament
-----------------*/
.MessageOrnament>* {
	position: absolute;
	z-index: 20;
}

.MessageMotifLeft {
	width: 410px;
	top: min(109px, 7.56vw);
	left: calc(50% - 720px - 259px);
}

.s .MessageMotifLeft {
	width: 42vw;
	top: 14vw;
	left: 76vw;
}

.MessageMotifLeft span {
	display: block;
	transform: rotate(23.56deg);
}

.MessageMotifRight {
	width: 152px;
	position: absolute;
	top: 55px;
	left: calc(50% - 720px + 1093px);
}

.s .MessageMotifRight {
	display: none;
}

.MessageMotifRight span {
	display: block;
	transform: rotate(126.5deg);
}


/* ================================
        About
================================ */
.About {
	background: var(--CommonColorCream);
	color: var(--CommonColorGray);
	padding: 24.89vw 0 16.66vw;
	position: relative;
}

.s .About {
	padding: 24.89vw 0 22.05vw;
}

.AboutWrapper {
	position: relative;
	width: 100%;
	height: 100%;
}

.AboutWrapper::before {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-cream.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 597 / 629;
	width: 597.5px;
	top: min(50px, 3.47vw);
	transform: rotate(-108.65deg);
	left: calc(50% - 720px - 165px);
}

.s .AboutWrapper::before {
	aspect-ratio: 268 / 283;
	width: 68.7vw;
	top: 212vw;
	left: -16.71vw;
}

.AboutWrapper::after {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-cream.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 333 / 355;
	width: 333.4px;
	top: max(-107px, -7.43vw);
	transform: rotate(6.39deg);
	left: calc(50% - 720px + 1277px);
}

.s .AboutWrapper::after {
	aspect-ratio: 200 / 213;
	width: 51.28vw;
	top: 0;
	left: 68.15vw;
}

.AboutInner {
	max-width: 595px;
	padding-bottom: 20px;
	margin-inline: auto;
	transform: translateX(220px);
	font-weight: var(--BaseFontBold);
}

.s .AboutInner {
	max-width: 100%;
	padding-top: 21.79vw;
	padding-bottom: 71.79vw;
	padding-inline: 5.12vw;
	transform: translateX(0);
}

.About h3 {
	font-size: var(--FontSizeClamp32);
	padding: 15px 0 22px;
}

.s .About h3 {
	font-size: var(--FontSizeSp24);
	padding: 4.87vw 0 7.17vw;
}

.AbouText {
	font-size: var(--FontSizeClamp16);
	line-height: var(--LineHeight200);
}

.s .AbouText {
	font-size: var(--FontSizeSp14);
}

.AbouText p {
	padding-bottom: 30px;
}

.s .AbouText p {
	padding-bottom: 8.71vw;
}

/* --------------
	Ornament
-----------------*/
.AboutOrnament>* {
	position: absolute;
}

.AboutMotifLeft {
	position: absolute;
	width: 211px;
	top: min(902px, 62.63vw);
	left: calc(50% - 720px + 362px);
	z-index: 1;
}

.s .AboutMotifLeft {
	width: 24.4vw;
	top: auto;
	bottom: 24vw;
	left: 41.25vw;
}

.AboutMotifLeft span {
	display: block;
	transform: rotate(-147.71deg);
}

.AboutIllust {
	width: min(333px, 32vw);
	top: max(-280px, -19.44vw);
	right: clamp(12px, -100.913px + 11.522vw, 65px);
	z-index: 2;
}

.s .AboutIllust {
	width: 51.79vw;
	top: -49vw;
	right: auto;
	left: 26.6vw;
}

/* ================================
        Activity
================================ */
.Activity {
	background: var(--CommonColorGreen);
	color: var(--CommonColorWhite);
	padding-bottom: 17.22vw;
	position: relative;
	z-index: 1;
	margin-top: -1.66vw;
}

.s .Activity {
	padding-bottom: 26.4vw;
	margin-top: 0vw;
}

.Activity::before {
	content: "";
	position: absolute;
	bottom: calc(100% - 1px);
	left: 0;
	aspect-ratio: 2880 / 480;
	width: 100%;
	background: url(../img/activity-top-bg.png) top center no-repeat;
	background-size: 100%;
}

.s .Activity::before {
	aspect-ratio: 780 / 172;
	background: url(../img/activity-top-bg-sp.png) top center no-repeat;
	background-size: 100%;
}

.s .Activity .Center {
	padding-inline: 0;
}

.s .Activity h2 {
	padding-inline: 5.12vw;
}

.ActivityWrapper {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}

.s .ActivityWrapper {
	padding-top: 10.25vw;
}

.ActivityWrapper::before {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-green.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 868 / 924;
	width: 867.83px;
	top: 291px;
	transform: rotate(-139.64deg);
	left: calc(50% - 720px - 206px);
}

.s .ActivityWrapper::before {
	aspect-ratio: 347 / 369;
	width: 88.9vw;
	top: 166vw;
	left: -40.8vw;
}

.ActivityWrapper::after {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-green.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 868 / 924;
	width: 867.83px;
	top: 1361px;
	transform: rotate(-139.64deg);
	left: calc(50% - 720px + 786px);
}

.s .ActivityWrapper::after {
	content: none;
	display: none;
}

.Activity h2 {
	padding-bottom: 111px;
}

.s .Activity h2 {
	padding-bottom: 21.79vw;
}

.ActivityBox {
	background: var(--CommonColorWhite);
	color: var(--CommonColorGray);
	padding: 75px 60px 132px 60px;
	border-radius: 40px;
	position: relative;
}

.s .ActivityBox {
	padding: 10.76vw 5.12vw;
	border-radius: 20px;
	margin-inline: 5.12vw;
}

.ActivityBoxInner {
	display: flex;
	justify-content: space-between;
}

.s .ActivityBoxInner {
	flex-direction: column;
	align-items: center;
}

.Activity h3 {
	color: var(--CommonColorOrange);
	font-weight: var(--BaseFontBold);
	font-size: var(--FontSizeClamp28);
	background: var(--CommonColorWhite);
	position: absolute;
	top: 0;
	left: 40px;
	transform: translateY(-50%);
	border: 3px solid var(--CommonColorOrange);
	box-shadow: 3px 3px 0 0 var(--CommonColorOrange);
	border-radius: 0 12px 12px 0;
	padding: 16px 23px 16px 52px;
	line-height: var(--LineHeight100);
}

.s .Activity h3 {
	font-size: var(--FontSizeSp16);
	left: 4.61vw;
	padding: 2.82vw 4.87vw 2.82vw 9.93vw;
	line-height: var(--LineHeight150);
}

.ActivityBox h3::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(-35%, -45%);
	aspect-ratio: 266 /235;
	width: 133px;
	background-size: 100%;
	z-index: 2;
}

.s .ActivityBox h3::before {
	width: 21.5vw;
	transform: translate(-25%, -48%);
}

.Activity h4 {
	font-size: min(26px, 2.3vw);
	font-weight: var(--BaseFontBold);
	padding-right: 10px;
	position: relative;
	line-height: var(--LineHeight180);
	letter-spacing: -0.2px;
}

.s .Activity h4 {
	font-size: var(--FontSizeSp18);
	padding-right: 0;
	letter-spacing: 0;
	padding-bottom: 4.46vw;
}

.ActivityBoxText {
	font-size: var(--FontSizeClamp16);
	font-weight: var(--BaseFontRegular);
	max-width: 430px;
	width: 100%;
	padding-left: 10px;
	line-height: var(--LineHeight200);
}

.s .ActivityBoxText {
	font-size: var(--FontSizeSp14);
	max-width: 100%;
	padding-left: 0;
	padding-top: 2.45vw;
	order: 3;
}

.Activity h5 {
	font-size: var(--FontSizeClamp24);
	font-weight: var(--BaseFontBold);
	padding-top: 42px;
	padding-bottom: 20px;
}

.s .Activity h5 {
	font-size: var(--FontSizeSp20);
	padding: 5.64vw 5.12vw 3.07vw;
}

.s .ActivityListWrap {
	overflow-x: auto;
	overflow-y: hidden;
	padding-left: 5.12vw;
}

.ActivityList {
	display: flex;
	gap: 23px;
}

.s .ActivityList {
	gap: 5.89vw;
	width: max-content;
	padding-bottom: 2.56vw;
}

.ActivityList>li {
	width: calc((100% - 46px) / 3);
	height: 387px;
	border: 2px solid var(--CommonColorWhite);
	border-radius: 20px;
	padding: 23px 30px 32px 30px;
	display: flex;
	flex-direction: column;
}

.s .ActivityList>li {
	width: 81.53vw;
	height: 99.2vw;
	padding: 5.38vw 6.41vw;
}

.s .ActivityList li:last-child {
	margin-right: 5.12vw;
}

.s .ActivityItem1 .ActivityList li:last-child {
	margin-right: 0;
}

.ActivityListTitle {
	font-size: var(--FontSizeClamp18);
	font-weight: var(--BaseFontBold);
	border-bottom: 1px solid var(--CommonColorWhite);
	padding-bottom: 17px;
	margin-bottom: 17px;
	line-height: var(--LineHeight180);
}

.s .ActivityListTitle {
	font-size: var(--FontSizeSp16);
	padding-bottom: 4.87vw;
	margin-bottom: 4.87vw;
}

.ActivityListText {
	font-size: var(--FontSizeClamp16);
	line-height: var(--LineHeight180);
}

.s .ActivityListText {
	font-size: var(--FontSizeSp14);
}

.ActivityLinkList {
	font-size: var(--FontSizeClamp14);
	font-weight: var(--BaseFontBold);
	margin-top: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 9px;
}

.s .ActivityLinkList {
	font-size: var(--FontSizeSp14);
	gap: 3.07vw 2.3vw;
}

.ActivityLinkList>li {
	width: calc((100% - 9px) /2);
}

.s .ActivityLinkList>li {
	width: calc((100% - 2.3vw) /2);
}

.ActivityLinkList>li a {
	position: relative;
	padding-right: 7px;
}

.s .ActivityLinkList>li a {
	padding-right: 1.53vw;
}

.ActivityLinkList>li a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(100%, -50%);
	width: 24px;
	height: 24px;
	background: url(../img/icon-arrow.png) top center no-repeat;
	background-size: 100%;
}

.s .About>li a:after {
	width: 6.15vw;
	height: 6.15vw;
}

.ActivityLinkList>li a:hover {
	text-decoration: underline;
}

.ActivityNoteList {
	font-size: var(--FontSizeClamp14);
	margin-top: auto;
	padding-left: 1em;
	text-indent: -1em;
	letter-spacing: -0.8px;
}

.s .ActivityNoteList {
	font-size: var(--FontSizeSp14);
	letter-spacing: -0.4px;
}



/* --------------
	ActivityItem1
-----------------*/
.ActivityItem1 {
	padding-bottom: 140px;
}

.s .ActivityItem1 {
	padding-bottom: 20.76vw;
}

.ActivityItem1 h3::before {
	background: url(../img/activity-num1.png) center no-repeat;
	background-size: 100%;
}

.ActivityItem1 .ActivityBoxIllust {
	position: absolute;
	max-width: 223px;
	left: 140px;
	bottom: -10px;
}

.s .ActivityItem1 .ActivityBoxIllust {
	position: relative;
	max-width: 57.17vw;
	margin-inline: auto;
	left: 0;
	bottom: 0;
}

/* --------------
	ActivityItem2
-----------------*/
.ActivityItem2 {
	padding-bottom: 140px;
}

.s .ActivityItem2 {
	padding-bottom: 23.58vw
}

.ActivityItem2 h3::before {
	background: url(../img/activity-num2.png) center no-repeat;
	background-size: 100%;
}

.ActivityItem2 h4 span {
	transform: translateX(-13px);
	display: inline-block;
}

.ActivityItem2 .ActivityList>li {
	height: auto;
	padding: 23px 30px;
}

.s .ActivityItem2 h4 {
	padding-bottom: 9.48vw;
}

.s .ActivityItem2 .ActivityBoxText {
	padding-top: 7.3vw;
}

.ActivityItem2 .ActivityListTitle {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0;
}

.ActivityItem2 .ActivityBoxIllust {
	position: absolute;
	max-width: 326px;
	left: 94px;
	bottom: -10px;
}

.s .ActivityItem2 .ActivityBoxIllust {
	position: relative;
	max-width: 75.2vw;
	margin-inline: auto;
	left: 0;
	bottom: 0;
}

/* --------------
	ActivityItem3
-----------------*/
.ActivityItem3 {
	padding-bottom: 44px;
}

.s .ActivityItem3 {
	padding-bottom: 17.94vw;
}

.ActivityItem3 .ActivityBox h3::before {
	background: url(../img/activity-num3.png) center no-repeat;
	background-size: 100%;
}


.s .ActivityItem3 .ActivityList {
	width: auto;
	gap: 0;
	margin-inline: 5.12vw;
}

.ActivityItem3 .ActivityList>li {
	width: 100%;
	height: auto;
}

.s .ActivityItem3 .ActivityList>li:last-child {
	margin-right: 0;
}


.ActivityItem3 .ActivityListText {
	padding-bottom: 36px;
}

.s .ActivityItem3 .ActivityBoxText {
	padding-top: 5.02vw;
}

.ActivityItem3 .ActivityBoxIllust {
	position: absolute;
	max-width: 244px;
	left: 135px;
	bottom: -25px;
}

.s .ActivityItem3 .ActivityBoxIllust {
	position: relative;
	max-width: 56.3vw;
	margin-inline: auto;
	left: 0;
	bottom: 0;
}


/* --------------
	Ornament
-----------------*/
.ActivityOrnament>* {
	position: absolute;
	z-index: 3;
}

.ActivityMotifPink {
	position: absolute;
	width: 535px;
	top: 182px;
	left: calc(50% - 720px + 1002px);
}

.s .ActivityMotifPink {
	width: 54.8vw;
	top: 37vw;
	left: 66.41vw;
}

.ActivityMotifPink span {
	display: block;
	transform: rotate(-20.35deg);
}

.ActivityMotifYellow {
	position: absolute;
	width: 685px;
	top: 1161px;
	left: calc(50% - 720px - 263px);
}

.s .ActivityMotifYellow {
	width: 70.32vw;
	top: 403vw;
	left: -38.6vw;
}

.ActivityMotifYellow span {
	display: block;
	transform: rotate(32.67deg);
}

.ActivityMotifOrange {
	position: absolute;
	width: 716px;
	top: 2056px;
	left: calc(50% - 720px + 930px);
}

.s .ActivityMotifOrange {
	width: 73.5vw;
	top: 658vw;
	left: 66.1vw;
}

.ActivityMotifOrange span {
	display: block;
	transform: rotate(-37.19deg);
}

.ActivityIllust {
	position: absolute;
	width: min(248px, 23.84vw);
	top: clamp(-629px, calc(-520px - 109 * (100vw - 980px) / 460), -520px);

	left: min(79px, 5.48vw);
	z-index: 5;
}

.s .ActivityIllust {
	position: absolute;
	width: 30.76vw;
	top: -72vw;
	left: 8.71vw;
}

/* ================================
        Member
================================ */
.Member {
	background: var(--CommonColorBeige);
	color: var(--CommonColorGray);
	padding: 78px 0 247px;
	position: relative;
	color: var(--CommonColorGray);
	z-index: 1;
	margin-top: -1px;
}

.s .Member {
	padding: 10.51vw 0 0;
}

.Member::before {
	content: "";
	position: absolute;
	bottom: calc(100% - 1px);
	left: 0;
	aspect-ratio: 2880 / 496;
	width: 100%;
	background: url(../img/member-top-bg.png) top center no-repeat;
	background-size: 100%;
}

.s .Member::before {
	aspect-ratio: 780 / 206;
	background: url(../img/member-top-bg-sp.png) top center no-repeat;
	background-size: 100%;
}

.Member::after {
	content: "";
	position: absolute;
	bottom: -110px;
	left: 0;
	aspect-ratio: 1241 / 696;
	width: 563px;
	background: url(../img/member-bottom-bg-re.png) bottom center no-repeat;
	background-size: 100%;
}

.s .Member::after {
	bottom: -14vw;
	width: 72.17vw;
}

.MemberWrapper {
	position: relative;
	/* overflow: hidden; */
	width: 100%;
	height: 100%;
}

.s .MemberWrapper {
	padding-bottom: 54.56vw;
}

.MemberWrapper::before {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-beige.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 868 / 924;
	width: 867.83px;
	top: 1530px;
	transform: rotate(-108.65deg);
	left: calc(50% - 720px + 575px);
}

.s .MemberWrapper::before {
	aspect-ratio: 347 / 369;
	width: 89vw;
	top: auto;
	bottom: -61vw;
	left: 43vw;
}


.MemberWrapper::after {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-beige.png) center no-repeat;
	background-size: 100%;
	width: 867.83px;
	aspect-ratio: 867 / 924;
	top: 220px;
	left: calc(50% - 720px - 773px);
	transform: rotate(-108.65deg);
}

.s .MemberWrapper::after {
	width: 88.9vw;
	aspect-ratio: 347 / 369;
	top: 448vw;
	left: -63.43vw;
}

.MemberClip {
	overflow: hidden;
	position: relative;
	z-index: 5;
}

.MemberList {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 12px;
	position: relative;
	z-index: 10;
	pointer-events: none;
}

.s .MemberList {
	justify-content: flex-start;
	gap: 2.56vw;
}

.MemberList li {
	width: calc((100% - 48px) / 5);
}

.s .MemberList li {
	width: calc((100% - 2.56vw) / 2);
}

.MemberListImgBox {
	max-width: 190px;
	margin-top: 42px;
}

.s .MemberListImgBox {
	margin-top: 5.128vw;
}

.MemberListTextBox {
	font-size: var(--FontSizeClamp20);
	font-weight: var(--BaseFontBold);
	line-height: var(--LineHeight180);
	padding-top: 9px;
}

.s .MemberListTextBox {
	font-size: var(--FontSizeSp16);
	padding-top: 2.8vw;
}

.MemberListTextBox span {
	font-size: var(--FontSizeClamp16);
	font-weight: var(--BaseFontRegular);
	display: block;
	line-height: var(--LineHeight200);
}

.s .MemberListTextBox span {
	font-size: var(--FontSizeSp14);
}

.Member .CommonBtnArea {
	display: flex;
	justify-content: flex-end;
	padding-top: 58px
}

.s .Member .CommonBtnArea {
	position: absolute;
	bottom: 20vw;
	right: 5.12vw;
	padding-top: 0;
}

/* --------------
	Ornament
-----------------*/
.MemberOrnament>* {
	position: absolute;
	z-index: 3;
}

.MemberMotifPink {
	position: absolute;
	width: 658px;
	top: 309px;
	left: calc(50% - 720px + 967px);
}

.s .MemberMotifPink {
	position: absolute;
	width: 67.43vw;
	top: 50vw;
	left: 58.7vw;
}

.MemberMotifPink span {
	display: block;
	transform-origin: left top;
	transform: rotate(-28.15deg);
}

.MemberMotifGreen {
	width: 575px;
	top: 874px;
	left: calc(50% - 720px - 125px);
}

.s .MemberMotifGreen {
	width: 58.9vw;
	top: 525vw;
	left: -5vw;
}

.MemberMotifGreen span {
	display: block;
	transform: rotate(33.77deg);
	transform-origin: left top;
}

.MemberMotifOrange {
	display: none;
}

.s .MemberMotifOrange {
	display: block;
	width: 73.5vw;
	top: 727vw;
	left: 60.7vw;
}

.s .MemberMotifOrange span {
	display: block;
	transform: rotate(-37.19deg);
}

.MemberMotifYellow {
	width: 535px;
	top: 1718px;
	left: calc(50% - 720px + 1018px);
}

.s .MemberMotifYellow {
	width: 67.8vw;
	top: 836vw;
	left: 58vw;
}

.MemberMotifYellow span {
	display: block;
	transform: rotate(39.9deg);
}

.MemberIllust {
	width: 319px;
	bottom: 12px;
	left: 6.333vw;
	z-index: 50;
}

.s .MemberIllust {
	width: 37vw;
	bottom: 3.07vw;
	left: 3.25vw;
}

/* ================================
        News
================================ */
.News {
	background: var(--CommonColorCream);
	color: var(--CommonColorGray);
	font-size: var(--FontSizeClamp14);
	padding: 24.89vw 0 96px;
	position: relative;
	overflow: hidden;
}

.s .News {
	font-size: var(--FontSizeSp12);
	padding: 32.56vw 0 20.25vw;
}

.NewsWrapper {
	padding-top: 85px;
	position: relative;
	z-index: 0;
}

.s .NewsWrapper {
	padding-top: 14.1vw;
}

.NewsWrapper::before {
	content: "";
	position: absolute;
	background: url(../img/bg-ornament-cream.png) center no-repeat;
	background-size: 100%;
	aspect-ratio: 868 / 924;
	width: 867.83px;
	top: -37px;
	transform: rotate(-108.65deg);
	left: calc(50% + 720px - 680px);
}

.s .NewsWrapper::before {
	aspect-ratio: 347 / 369;
	width: 89vw;
	top: 0;
	left: 43vw;
}


.News h2 {
	padding-bottom: 40px;
	line-height: 86%;
}

.s .News h2 {
	padding-bottom: 7.94vw;
}


.NewsError {
	display: none;
	font-size: var(--FontSizeClamp20);
}

.s .NewsError {
	padding-top: 2.82vw;
	font-size: var(--FontSizeSp14);
}


.NewsList li {
	position: relative;
	margin-bottom: 24px;
}

.s .NewsList li {
	margin-bottom: 5.12vw;
}

.NewsList li::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--CommonColorGray);
	border-radius: 0 12px 12px 0;
}

.NewsListInner {
	padding: 0 31px 37px 31px;
}

.s .NewsListInner {
	padding: 0 0 5.12vw 0;
}

.NewsListInner .NewsText {
	padding-top: 12px;
	font-size: var(--FontSizeClamp20);
	font-weight: var(--BaseFontBold);
}

.s .NewsListInner .NewsText {
	padding-top: 2.82vw;
	font-size: var(--FontSizeSp14);
}

/* --------------
	Ornament
-----------------*/
.NewsOrnament>* {
	position: absolute;
	z-index: 3;
}

.NewsMotif {
	width: 535px;
	top: 418px;
	left: calc(50% + 720px - 346px);
}

.s .NewsMotif {
	width: 54.8vw;
	top: 33vw;
	left: 70vw;
}

.NewsMotif span {
	display: block;
	transform: rotate(39.9deg);
}

/* ================================
        Contact
================================ */
.Contact {
	position: relative;
	background: linear-gradient(to bottom,
			var(--CommonColorBeige) 0%,
			var(--CommonColorBeige) 50%,
			var(--CommonColorGray) 50%,
			var(--CommonColorGray) 100%);
	text-align: center;
}




.ContactInner {
	background-color: var(--CommonColorPink);
	color: var(--CommonColorWhite);
	font-size: var(--FontSizeClamp24);
	padding: 78px 0 140px;
	font-weight: var(--BaseFontBold);
	border-radius: 60px;
	position: relative;
	z-index: 10;
}

.s .ContactInner {
	font-size: var(--FontSizeSp14);
	padding: 15.38vw 0 33.58vw;
	border-radius: 40px;
}

.Contact h2 {
	font-size: var(--FontSizeClamp60);
	line-height: var(--LineHeight150);
	letter-spacing: 2px;
}

.s .Contact h2 {
	font-size: var(--FontSizeSp40);
}


.ContactBox {
	width: 700px;
	margin-inline: auto;
	background-color: var(--CommonColorWhite);
	color: var(--CommonColorBlack);
	font-size: var(--FontSizeClamp24);
	font-weight: var(--BaseFontRegular);
	padding: 30px 20px 45px;
	margin-top: 19px;
	border-radius: 20px;
	position: relative;
}

.s .ContactBox {
	width: 100%;
	font-size: var(--FontSizeSp16);
	padding: 7.43vw 6.66vw 9.23vw 6.66vw;
	margin-top: 5.38vw;
	text-align: center;
}

.ContactBox p {
	transform: translateX(-20px);
}

.s .ContactBox p {
	transform: translateX(2vw);
}

.ContactAddress {
	font-size: var(--FontSizeClamp36);
	font-weight: var(--BaseFontBold);
	line-height: var(--LineHeight180);
	position: relative;
	display: inline-block;
}

.s .ContactAddress {
	font-size: var(--FontSizeSp26);
	transform: translateX(5.8vw);
}

.ContactAddress::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 100%;
	transform: translateY(-40%);
	width: 40px;
	height: 40px;
	background: url(../img/icon-mail.png) center no-repeat;
	background-size: 100%;
	margin-right: 7px;
}

.s .ContactAddress::before {
	width: 8.2vw;
	height: 8.2vw;
	margin-right: 1.28vw;
}

.Contact .CommonBtnArea {
	position: absolute;
	top: 100%;
	left: 100%;
	transform: translate(-50%, -70%);
}

.s .Contact .CommonBtnArea {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, -30%);
}

/* ================================
        Footer
================================ */
.Footer {
	background-color: var(--CommonColorGray);
	color: var(--CommonColorWhite);
	font-size: var(--FontSizeClamp14);
	padding: 40px 75px 52px;
	position: relative;
	z-index: 60;
}

.s .Footer {
	font-size: var(--FontSizeSp12);
	padding: 8.2vw 5.125vw 9.74vw;
	text-align: center;
}

.Footer a {
	text-decoration: none;
}

.Footer a:hover {
	opacity: 0.7;
}

.FooterArea {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.s .FooterArea {
	flex-direction: column;
}

.FooterArea li:nth-of-type(1) {
	max-width: 200px;
}

.s .FooterArea li:nth-of-type(1) {
	max-width: 51.2vw;
	padding-bottom: 4.1vw;
}

.FooterArea li:nth-of-type(2) {
	line-height: var(--LineHeight180);
}

.FooterArea li:nth-of-type(2) a:hover {
	text-decoration: underline;
	opacity: 1;
}

.FooterArea li:nth-of-type(2) div span:nth-of-type(1) {
	position: relative;
	padding-right: 20px;
}

.s .FooterArea li:nth-of-type(2) div span:nth-of-type(1) {
	padding-right: 5.12vw;
}

.FooterArea li:nth-of-type(2) div span:nth-of-type(1)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 12px;
	background: var(--CommonColorWhite);
}

.FooterArea li:nth-of-type(2) div span:nth-of-type(2) {
	padding-left: 20px;
}

.s .FooterArea li:nth-of-type(2) div span:nth-of-type(2) {
	padding-left: 5.12vw;
}
