/**
 * トップページ専用スタイル
 */

/*
======================================
hero section
======================================
*/
.hero {
    background-color: var(--gray-background);
    display: flex;
    flex-direction: column;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 100%;
    z-index: 10;
}

/* ===== ロゴエリア（上部） ===== */
.hero-logo-area {
    align-items: center;
    display: flex;
    height: 100vh;
	max-height: 900px;
    justify-content: center;
    position: relative;
    width: 100%;
}

/* ===== 紙吹雪デコレーション ===== */
.hero-confetti {
    height: 200%;
    left: 50%;
    max-width: 1600px;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 100%;
    z-index: 2;
}

.hero-confetti__item {
    position: absolute;
}

/*
======================================
紙吹雪浮遊アニメーション
ローディング完了後に有効化
======================================
*/
@keyframes confetti-float-1 {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-12px) rotate(2deg);
    }
}

@keyframes confetti-float-2 {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-8px) rotate(-1.5deg);
    }
}

@keyframes confetti-float-3 {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-15px) rotate(1deg);
    }
}

@keyframes confetti-float-4 {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-10px) rotate(-2deg);
    }
}

/* ローディング完了後に浮遊アニメーション適用 */
body.loading-complete .hero-confetti__item {
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

/* 大きなストリーマー - ゆっくり浮遊 */
body.loading-complete .hero-confetti__item--21 {
    animation: confetti-float-1 6s ease-in-out infinite;
    animation-delay: 0s;
}

body.loading-complete .hero-confetti__item--26 {
    animation: confetti-float-2 7s ease-in-out infinite;
    animation-delay: 0.5s;
}

body.loading-complete .hero-confetti__item--02 {
    animation: confetti-float-3 5.5s ease-in-out infinite;
    animation-delay: 1s;
}

body.loading-complete .hero-confetti__item--27 {
    animation: confetti-float-4 6.5s ease-in-out infinite;
    animation-delay: 0.3s;
}

body.loading-complete .hero-confetti__item--25 {
    animation: confetti-float-1 7.5s ease-in-out infinite;
    animation-delay: 0.8s;
}

body.loading-complete .hero-confetti__item--18 {
    animation: confetti-float-2 6s ease-in-out infinite;
    animation-delay: 1.2s;
}

body.loading-complete .hero-confetti__item--08 {
    animation: confetti-float-3 5s ease-in-out infinite;
    animation-delay: 0.2s;
}

/* 中サイズの紙吹雪 - 中程度の浮遊 */
body.loading-complete .hero-confetti__item--22 {
    animation: confetti-float-4 4.5s ease-in-out infinite;
    animation-delay: 0.7s;
}

body.loading-complete .hero-confetti__item--24 {
    animation: confetti-float-1 5s ease-in-out infinite;
    animation-delay: 1.5s;
}

body.loading-complete .hero-confetti__item--15 {
    animation: confetti-float-2 4s ease-in-out infinite;
    animation-delay: 0.4s;
}

body.loading-complete .hero-confetti__item--16 {
    animation: confetti-float-3 5.5s ease-in-out infinite;
    animation-delay: 1.1s;
}

body.loading-complete .hero-confetti__item--17 {
    animation: confetti-float-4 4.5s ease-in-out infinite;
    animation-delay: 0.6s;
}

body.loading-complete .hero-confetti__item--07 {
    animation: confetti-float-1 5s ease-in-out infinite;
    animation-delay: 0.9s;
}

body.loading-complete .hero-confetti__item--06 {
    animation: confetti-float-2 6s ease-in-out infinite;
    animation-delay: 1.3s;
}

body.loading-complete .hero-confetti__item--01 {
    animation: confetti-float-3 4.5s ease-in-out infinite;
    animation-delay: 0.1s;
}

body.loading-complete .hero-confetti__item--k01 {
    animation: confetti-float-4 3.5s ease-in-out infinite;
    animation-delay: 0.8s;
}

body.loading-complete .hero-confetti__item--k02 {
    animation: confetti-float-1 4s ease-in-out infinite;
    animation-delay: 1.4s;
}

/* 小サイズの紙吹雪 - やや速めの浮遊 */
body.loading-complete .hero-confetti__item--23 {
    animation: confetti-float-2 3.5s ease-in-out infinite;
    animation-delay: 0.2s;
}

body.loading-complete .hero-confetti__item--20 {
    animation: confetti-float-3 3s ease-in-out infinite;
    animation-delay: 0.5s;
}

body.loading-complete .hero-confetti__item--19 {
    animation: confetti-float-4 3.5s ease-in-out infinite;
    animation-delay: 1s;
}

body.loading-complete .hero-confetti__item--14 {
    animation: confetti-float-1 3s ease-in-out infinite;
    animation-delay: 0.7s;
}

body.loading-complete .hero-confetti__item--13 {
    animation: confetti-float-2 4s ease-in-out infinite;
    animation-delay: 1.2s;
}

body.loading-complete .hero-confetti__item--12 {
    animation: confetti-float-3 3.5s ease-in-out infinite;
    animation-delay: 0.3s;
}

body.loading-complete .hero-confetti__item--11 {
    animation: confetti-float-4 3s ease-in-out infinite;
    animation-delay: 0.9s;
}

body.loading-complete .hero-confetti__item--10 {
    animation: confetti-float-1 3.5s ease-in-out infinite;
    animation-delay: 1.5s;
}

body.loading-complete .hero-confetti__item--09 {
    animation: confetti-float-2 3s ease-in-out infinite;
    animation-delay: 0.4s;
}

body.loading-complete .hero-confetti__item--05 {
    animation: confetti-float-3 4s ease-in-out infinite;
    animation-delay: 0.6s;
}

body.loading-complete .hero-confetti__item--04 {
    animation: confetti-float-4 3.5s ease-in-out infinite;
    animation-delay: 1.1s;
}

body.loading-complete .hero-confetti__item--03 {
    animation: confetti-float-1 5s ease-in-out infinite;
    animation-delay: 0.8s;
}

body.loading-complete .hero-confetti__item--28 {
    animation: confetti-float-2 3.5s ease-in-out infinite;
    animation-delay: 1.3s;
}

/* SP版紙吹雪の浮遊 */
body.loading-complete .hero-confetti__item--sp01 {
    animation: confetti-float-3 4s ease-in-out infinite;
    animation-delay: 0.5s;
}

body.loading-complete .hero-confetti__item--sp02 {
    animation: confetti-float-4 3.5s ease-in-out infinite;
    animation-delay: 0.9s;
}

/* 大きなストリーマー（左側） - Figma準拠 */
.hero-confetti__item--21 {
    left: -9.2%;
    top: -3.2%;
    width: 42.2%;
}

.hero-confetti__item--26 {
    left: -3%;
    top: 13.2%;
    width: 35.6%;
}

.hero-confetti__item--02 {
    left: -12.5%;
    top: 20.2%;
    width: 39.4%;
}


.hero-confetti__item--27{
	left: 22.5%;
    top: 38.2%;
    width: 18.4%;
}
/* 大きなストリーマー（右側） - Figma準拠 */
.hero-confetti__item--25 {
    left: 51.6%;
    top: -9.4%;
    width: 34.5%;
}

.hero-confetti__item--18 {
    left: 65.6%;
    top: -24.1%;
    width: 60.7%;
}

.hero-confetti__item--08 {
    left: 74.4%;
    top: 33.4%;
    width: 29.5%;
}

/* 中サイズの紙吹雪 - Figma準拠 */
.hero-confetti__item--22 {
    left: 21.2%;
    top: 0.5%;
    width: 11.7%;
}

.hero-confetti__item--24 {
    left: 85.9%;
    top: 5%;
    width: 12.1%;
}

.hero-confetti__item--15 {
    left: 69.3%;
    top: -7.8%;
    width: 23.4%;
}

.hero-confetti__item--16 {
    left: -4.6%;
    top: 12%;
    width: 19.7%;
}

.hero-confetti__item--17 {
    left: 26.6%;
    top: 0.2%;
    width: 9.1%;
}

.hero-confetti__item--07 {
    left: 84.8%;
    top: 24.4%;
    width: 18.3%;
}

.hero-confetti__item--06 {
    left: -3.1%;
    top: 85.4%;
    width: 17.8%;
}

.hero-confetti__item--01 {
    left: 55.5%;
    top: 41.2%;
    width: 20.2%;
}

.hero-confetti__item--k01 {
    left: 27.9%;
    top: 53.2%;
    width: 2.9%;
}

/* 小サイズの紙吹雪 - Figma準拠 */
.hero-confetti__item--23 {
    left: 78%;
    top: 23.2%;
    width: 6.5%;
}

.hero-confetti__item--20 {
    left: 42.6%;
    top: 6.2%;
    width: 5.7%;
}

.hero-confetti__item--19 {
    left: 41.1%;
    top: 49%;
    width: 5%;
}

.hero-confetti__item--14 {
    left: 90.1%;
    top: 19.6%;
    width: 4.2%;
}

.hero-confetti__item--13 {
    left: 62.9%;
    top: 7%;
    width: 4.3%;
}

.hero-confetti__item--12 {
    left: 28.7%;
    top: 35.2%;
    width: 2.9%;
}

.hero-confetti__item--11 {
    left: 74.4%;
    top: 24.6%;
    width: 4.4%;
}

.hero-confetti__item--10 {
    left: 49.9%;
    top: 42.7%;
    width: 4.4%;
}

.hero-confetti__item--09 {
    left: 70.8%;
    top: 58.2%;
    width: 2.8%;
}

.hero-confetti__item--05 {
    left: 67.9%;
    top: 63.5%;
    width: 4.4%;
}

.hero-confetti__item--04 {
	left: 29.8%;
    top: 59.1%;
    width: 2.8%;
}

.hero-confetti__item--03 {
    left: 82.2%;
    top: 83%;
    width: 22.8%;
}

.hero-confetti__item--k02 {
    left: 21.9%;
    top: 36.7%;
    width: 13.3%;
}

.hero-confetti__item--28{
	left: 27.9%;
    top: 53.9%;
    width: 3.1%;
}

/* ===== 紙吹雪デコレーション（SP版） ===== */
.hero-confetti-sp {
    display: none;
}

.hero-logo {
    position: relative;
    z-index: 2;
}

.hero-logo__img {
    height: auto;
    width: 100%;
}

/* ===== メッセージエリア（下部） ===== */
.hero-message-area {
    position: relative;
    width: 100%;
}

.hero-message-area__wrap{
	min-height: 940px;
    padding: 128px 0 290px;
	max-width: 1600px;
	margin: auto;
	position: relative;
}

/* 背景（青い波状グラデーション） */
.hero-bg {
    height: 130%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: -25%;
    width: 100%;
    z-index: 1;
}

.hero-bg__img {
    height: 100%;
    object-fit: cover;
    object-position: top center;
    width: 100%;
}

/* 紙吹雪デコレーション */
.hero-deco {
    pointer-events: none;
    position: absolute;
    z-index: 2;
}

.hero-deco--left {
    left: 0;
    top: -5%;
    width: 25%;
}

.hero-deco--right {
    right: 0;
    top: -5%;
    width: 25%;
}

.hero-deco__outer {
    height: auto;
    width: 100%;
}

.hero-deco__inner {
    height: auto;
    left: 50%;
    position: absolute;
    top: 30%;
    transform: translateX(-30%);
    width: 80%;
}

.hero-deco--right .hero-deco__inner {
    left: auto;
    right: 0;
    transform: translateX(30%);
}

/* ===== PC用 写真配置 ===== */
.hero-photos {
    height: 100%;
    position: absolute;
    z-index: 3;
}

.hero-photos--left {
    left: 0;
    top: 0;
    width: 35%;
}

.hero-photos--right {
    right: 0;
    top: 0;
    width: 35%;
}

.hero-photo {
    animation-duration: 8s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    object-fit: cover;
    position: absolute;
}

/* 各写真のアニメーション開始タイミングをずらす */
.hero-photo--1 { animation-delay: 0s; }
.hero-photo--2 { animation-delay: -1s; }
.hero-photo--3 { animation-delay: -2s; }
.hero-photo--4 { animation-delay: -3s; }
.hero-photo--5 { animation-delay: -4s; }
.hero-photo--6 { animation-delay: -5s; }
.hero-photo--7 { animation-delay: -0.5s; }
.hero-photo--8 { animation-delay: -1.5s; }
.hero-photo--9 { animation-delay: -2.5s; }
.hero-photo--10 { animation-delay: -3.5s; }
.hero-photo--11 { animation-delay: -4.5s; }

/* ゆっくり拡大縮小アニメーション（大きい写真用: 2, 3, 4, 6, 8, 9, 10） */
@keyframes heroPhotoZoomLarge {
    0%, 100% {
        transform: scale(1);
        filter: blur(3px);
    }
    50% {
        transform: scale(1.15);
        filter: blur(0);
    }
}

/* ゆっくり拡大縮小アニメーション（小さい写真用: 1, 5, 7, 11） */
@keyframes heroPhotoZoomSmall {
    0%, 100% {
        transform: scale(1);
        filter: blur(3px);
    }
    50% {
        transform: scale(1.15);
        filter: blur(0);
    }
}

/* 小さい写真にアニメーション適用 */
.hero-photo--1,
.hero-photo--5,
.hero-photo--7,
.hero-photo--11 {
    animation-name: heroPhotoZoomSmall;
}

/* 大きい写真にアニメーション適用 */
.hero-photo--2,
.hero-photo--3,
.hero-photo--4,
.hero-photo--6,
.hero-photo--8,
.hero-photo--9,
.hero-photo--10 {
    animation-name: heroPhotoZoomLarge;
}

/* 左側写真の配置（Figmaデザイン準拠） */
/* 写真1: 左上エリア（ぼかし） */
.hero-photo--1 {
    height: auto;
    left: 8%;
    top: 2.5%;
    width: 50%;
	max-width: 208px;
}

/* 写真2: 大きめの写真（左中央上） */
.hero-photo--2 {
    height: auto;
    left: 20%;
    top: 14%;
    width: 70%;
	max-width: 296px;
}

/* 写真3: 左下（縦長） */
.hero-photo--3 {
    height: auto;
    left: 8%;
    top: 38%;
    width: 38%;
	max-width: 160px;
	z-index: 1;
}

/* 写真4: 左下（大きめ） */
.hero-photo--4 {
    height: auto;
    left: 18%;
    top: 55%;
    width: 70%;
	max-width: 296px;
}

/* 写真5: 左中央（ぼかし） */
.hero-photo--5 {
    height: auto;
    left: 54%;
    top: 46%;
    width: 48%;
	max-width: 202px;
}

/* 写真6: 左最下部 */
.hero-photo--6 {
    height: auto;
    left: 55%;
    top: 75%;
    width: 48%;
	max-width: 202px;
}

/* 右側写真の配置（Figmaデザイン準拠） */
/* 写真7: 右上エリア（ぼかし） */
.hero-photo--7 {
    height: auto;
    right: 24%;
    top: 0%;
    width: 48%;
	max-width: 202px;
}

/* 写真8: 大きめの写真（右上） */
.hero-photo--8 {
    height: auto;
    right: 12%;
    top: 10%;
    width: 58%;
	max-width: 240px;
}

/* 写真9: 右中央 */
.hero-photo--9 {
	height: auto;
    right: 40%;
    top: 35%;
    width: 48%;
    max-width: 202px;
}

/* 写真10: 右下（大きめ） */
.hero-photo--10 {
    height: auto;
	right: 6%;
    top: 53%;
    width: 70%;
	max-width: 309px;
}

/* 写真11: 右最下部（ぼかし） */
.hero-photo--11 {
	height: auto;
    right: 50%;
    top: 70%;
    width: 38%;
    max-width: 157px;
}

/* ===== メッセージコンテンツ ===== */
.hero-message {
    margin: 0 auto;
    max-width: 540px;
    padding: 0 10px;
    position: relative;
    text-align: center;
    z-index: 5;
}

.hero-message__label {
    color: var(--white);
    font-family: var(--english-font-family);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-normal);
    letter-spacing: 0.1em;
    margin-bottom: 16px;
}

.hero-message__title {
    color: var(--white);
    font-family: var(--main-font-family);
    font-size: var(--font-size-heading-m);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin: 0 0 60px;
}

.hero-message__text {
    color: var(--white);
    font-family: var(--main-font-family);
    font-size: var(--font-size-l);
    font-weight: var(--font-weight-medium);
    letter-spacing: 0;
    line-height: var(--line-height-loose);
    margin: 0;
}

/* ===== メッセージ スクロール連動アニメーション ===== */
.hero-message__line {
    display: inline-block;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.hero-message__line.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ===== SP用 写真配置 ===== */
.hero-photos-sp {
    display: none;
}

.hero-bg__img--sp{
	display: none;
}

.hero-confetti__item--sp01,
.hero-confetti__item--sp02,
.hero-confetti__item--sp03{
	display: none;
}

/*
======================================
SP Media Query (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.hero-bg__img--sp,
	.hero-confetti__item--sp01,
	.hero-confetti__item--sp02,
	.hero-confetti__item--sp03{
		display: inline;
	}
	.hero-confetti__item--sp01{
		left: -5.5%;
        top: 87.2%;
        width: 16.4%;
	}
	.hero-confetti__item--sp02{
		left: 16.8%;
        top: 34.8%;
        width: 11.2%;
	}
	.hero-confetti__item--07{
		left: -10.2%;
        top: 12%;
        width: 22.3%;
		transition: transform 0.4s ease;
        transform: scale(-1, 1);
	}
	.hero-bg__img--pc{
		display: none;
	}
	.hero-confetti__item--21{
		left: -33.2%;
        top: -0.9%;
        width: 74.7%;
		transition: transform 0.4s ease;
        transform: rotate(13deg);
	}
	.hero-confetti__item--08{
		left: 48.4%;
        top: 40.4%;
        width: 82.5%;
		transition: transform 0.4s ease;
        transform: rotate(1deg);
	}
	.hero-confetti__item--02{
		left: -45.5%;
        top: 33.2%;
        width: 94.4%;
		transition: transform 0.4s ease;
        transform: rotate(-5deg);
	}
	.hero-confetti__item--26 {
		left: -3%;
        top: 1.2%;
        width: 67.6%;
		transition: transform 0.4s ease;
        transform: rotate(13deg);
		z-index: -2;
	}
	.hero-confetti__item--18 {
		left: 43.6%;
        top: -11.1%;
        width: 95.7%;
		transition: transform 0.4s ease;
        transform: rotate(-7deg);
	}
	.hero-confetti__item--17{
		left: 83.6%;
        top: 11.9%;
        width: 9.7%;
	}
	.hero-confetti__item--20{
		left: 42.6%;
		top: 7.8%;
		width: 5.7%;
	}
	.hero-confetti__item--22{
		left: 4.2%;
		top: 2.5%;
		width: 23.7%;
	}
	.hero-confetti__item--15{
		left: 74.6%;
        top: 1.9%;
        width: 29.7%;
		transition: transform 0.4s ease;
        transform: rotate(-1deg);
	}
	.hero-confetti__item--13{
		left: 90.9%;
		top: 11.5%;
		width: 7.3%;
	}
	.hero-confetti__item--11{
		left: 87.6%;
        top: 32.9%;
        width: 15.7%;
	}
	.hero-confetti__item--06{
		left: -5.4%;
        top: 33.9%;
        width: 23.7%;
	}
	.hero-confetti__item--05{
		left: 16.9%;
		top: 55.5%;
		width: 16.4%;
		transform: rotate(-5deg);
	}
	.hero-confetti__item--19{
		left: 62.1%;
        top: 35.5%;
        width: 10%;
		transition: transform 0.4s ease;
        transform: rotate(93deg);
	}
	.hero-confetti__item--03{
		left: 78.2%;
		top: 84%;
		width: 31.8%;
	}

	.hero-confetti__item--01,
	.hero-confetti__item--04,
	.hero-confetti__item--10,
	.hero-confetti__item--12,
	.hero-confetti__item--14,
	.hero-confetti__item--16,
	.hero-confetti__item--27,
	.hero-confetti__item--28{
		display: none;
	}

	/* SP用浮遊アニメーション（既存のtransformを保持） */
	@keyframes confetti-float-sp-07 {
		0%, 100% { transform: scale(-1, 1) translateY(0); }
		50% { transform: scale(-1, 1) translateY(-8px); }
	}
	@keyframes confetti-float-sp-21 {
		0%, 100% { transform: rotate(13deg) translateY(0); }
		50% { transform: rotate(13deg) translateY(-10px); }
	}
	@keyframes confetti-float-sp-08 {
		0%, 100% { transform: rotate(1deg) translateY(0); }
		50% { transform: rotate(1deg) translateY(-12px); }
	}
	@keyframes confetti-float-sp-02 {
		0%, 100% { transform: rotate(-5deg) translateY(0); }
		50% { transform: rotate(-5deg) translateY(-10px); }
	}
	@keyframes confetti-float-sp-26 {
		0%, 100% { transform: rotate(13deg) translateY(0); }
		50% { transform: rotate(13deg) translateY(-8px); }
	}
	@keyframes confetti-float-sp-18 {
		0%, 100% { transform: rotate(-7deg) translateY(0); }
		50% { transform: rotate(-7deg) translateY(-12px); }
	}
	@keyframes confetti-float-sp-15 {
		0%, 100% { transform: rotate(-1deg) translateY(0); }
		50% { transform: rotate(-1deg) translateY(-8px); }
	}
	@keyframes confetti-float-sp-05 {
		0%, 100% { transform: rotate(-5deg) translateY(0); }
		50% { transform: rotate(-5deg) translateY(-10px); }
	}
	@keyframes confetti-float-sp-19 {
		0%, 100% { transform: rotate(93deg) translateY(0); }
		50% { transform: rotate(93deg) translateY(-8px); }
	}

	/* SP用アニメーション適用（既存transform保持） */
	body.loading-complete .hero-confetti__item--07 {
		animation: confetti-float-sp-07 5s ease-in-out infinite;
		animation-delay: 0.9s;
	}
	body.loading-complete .hero-confetti__item--21 {
		animation: confetti-float-sp-21 6s ease-in-out infinite;
		animation-delay: 0s;
	}
	body.loading-complete .hero-confetti__item--08 {
		animation: confetti-float-sp-08 5s ease-in-out infinite;
		animation-delay: 0.2s;
	}
	body.loading-complete .hero-confetti__item--02 {
		animation: confetti-float-sp-02 5.5s ease-in-out infinite;
		animation-delay: 1s;
	}
	body.loading-complete .hero-confetti__item--26 {
		animation: confetti-float-sp-26 7s ease-in-out infinite;
		animation-delay: 0.5s;
	}
	body.loading-complete .hero-confetti__item--18 {
		animation: confetti-float-sp-18 6s ease-in-out infinite;
		animation-delay: 1.2s;
	}
	body.loading-complete .hero-confetti__item--15 {
		animation: confetti-float-sp-15 4s ease-in-out infinite;
		animation-delay: 0.4s;
	}
	body.loading-complete .hero-confetti__item--05 {
		animation: confetti-float-sp-05 4s ease-in-out infinite;
		animation-delay: 0.6s;
	}
	body.loading-complete .hero-confetti__item--19 {
		animation: confetti-float-sp-19 3.5s ease-in-out infinite;
		animation-delay: 1s;
	}
}

/*
======================================
celebrate message section
======================================
*/
.celebrate-message {
	background-color: #FFFDEB;
	overflow: hidden;
	position: relative;
}

.celebrate-message__bg-text {
	animation: marquee-rtl 20s linear infinite;
	color: rgba(242, 177, 3, 0.15);
	display: flex;
	font-family: var(--english-font-family);
	font-size: 40px;
	font-weight: var(--font-weight-bold);
	gap: 30px;
	letter-spacing: 0.1em;
	line-height: 1;
	margin-bottom: 28px;
	white-space: nowrap;
	width: max-content;
}

.celebrate-message__bg-text span {
	display: inline-block;
	flex-shrink: 0;
}

@keyframes marquee-rtl {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

.section__wrap.celebrate-message__wrap {
	position: relative;
	z-index: 2;
	padding: 40px 0 70px;
}

.celebrate-message__header {
	padding: 0 20px;
	position: relative;
	text-align: center;
	max-width: 1200px;
    margin: 0 auto 48px;
}

.celebrate-message__subtitle {
	color: var(--blue-primary);
	font-family: var(--main-font-family);
	font-size: var(--font-size-2xxl);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
	line-height: var(--line-height-normal);
	margin: 0;
}

.celebrate-message__title {
	color: var(--blue-primary);
	font-size: 60px;
	letter-spacing: 0.05em;
}

.celebrate-message__title--accent{
	color: var(--orange-accent);
}

.celebrate-message-confettis {
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.celebrate-message-confettis__img {
	position: absolute;
}

.celebrate-message-confettis__img--01{
	left: 21.2%;
    top: -8%;
}
.celebrate-message-confettis__img--02{
	right: 21.2%;
    top: 26%;
}
.celebrate-message-confettis__img--03{
	right: 19.2%;
    top: -26%;
}
.celebrate-message-confettis__img--04{
	left: 17.2%;
    top: 9%;
}


.celebrate-message-confettis__img--05 {
    height: auto;
    transform: translate(-50%, -50%);
    left: 1.67%;
    top: 60px;
    width: 400px;
}

.celebrate-message-confettis__img--06 {
	height: auto;
    transform: translate(-50%, -50%);
    right: -28.6%;
    top: 60px;
    width: 400px;
}

.celebrate-message__slider {
	margin-bottom: 44px;
	position: relative;
	width: 100%;
	z-index: 2;
}

.celebrate-message__slider.slick-initialized {
	display: block;
}

.celebrate-message__slider--row2 {
	margin-top: 38px;
}

.celebrate-message__slider .slick-list {
	overflow: visible;
}

.celebrate-message__slider .slick-track {
	display: flex;
}

.celebrate-message__slide {
	padding: 0 14px 20px;
}

.celebrate-message__footer {
	text-align: center;
}

.celebrate-message__text {
	color: var(--blue-primary);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	font-weight: var(--font-weight-medium);
	margin: 0 0 16px;
}

.celebrate-message .message-button {
	display: inline-block;
	margin: 0 auto;
}

/*
======================================
learning emotion section
======================================
*/
.learning-emotion {
	overflow: hidden;
	padding: 40px 0 0;
	position: relative;
}

.news-section+.learning-emotion{
	padding: 220px 0 0 ;
}

.learning-emotion__wrap{
	display: flex;
	flex-direction: column;
	gap: 180px;
	max-width: 1600px;
	margin: 0 auto;
	position: relative;
}

.learning-emotion__decorations {
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.learning-emotion__illust {
	position: absolute;
}

.learning-emotion__illust--notebook {
	height: auto;
    left: 11.5%;
    top: -19px;
    width: 18%;
}

.learning-emotion__illust--clapperboard {
	height: auto;
    left: 8.2%;
    top: 301px;
    width: 11%;
}

.learning-emotion__illust--protractor {
	height: auto;
    left: 23%;
    top: 264px;
    width: 7%;
}

.learning-emotion__illust--pencil {
	height: auto;
    left: 17.5%;
    top: 504px;
    width: 11.5%;
}

.learning-emotion__illust--monitor {
    height: auto;
    right: 10.5%;
    top: 180px;
    width: 16.5%;
}

.learning-emotion__illust--book {
	height: auto;
    right: 19%;
    top: 0;
    width: 6%;
}

.learning-emotion__illust--film {
	height: auto;
    right: 11%;
    top: 480px;
    width: 9%;
}

.learning-emotion__illust--triangle {
	height: auto;
    right: 21%;
    top: 618px;
    width: 8%;
}

.learning-emotion__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 60px;
	padding: 0 24px;
	position: relative;
	z-index: 2;
}

.learning-emotion__symbol {
	height: 157px;
	width: 157px;
}

.learning-emotion__symbol img {
	animation: spin-slow 12s linear infinite;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

@keyframes spin-slow {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

.learning-emotion__title {
	color: var(--white);
	font-family: var(--main-font-family);
	font-size: var(--font-size-heading-m);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-tight);
	line-height: var(--line-height-tight);
	margin: 0;
	text-align: center;
}

.learning-emotion__text {
	text-align: center;
}

.learning-emotion__text p {
	color: var(--white);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	margin: 0;
}

.learning-emotion__text p + p {
	margin-top: 32px;
}

/* 行ごとのスクロールアニメーション */
.learning-emotion__line {
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.learning-emotion__line.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.learning-emotion__logos {
	margin-left: calc(-50vw + 50%);
	overflow: hidden;
	padding: 0;
	width: 100vw;
}

.learning-emotion__logos-track {
	display: flex;
}

.learning-emotion__logos-track .slick-list {
	overflow: visible;
}

.learning-emotion__logos-track .slick-track {
	display: flex;
}

.learning-emotion__logos-track .slick-slide {
	margin: 0 7px;
}

.learning-emotion__logos-track .slick-slide > div {
	height: 100%;
}

.learning-emotion__logo-item {
	align-items: center;
	background-color: var(--white);
	border: 1px solid var(--blue-background);
	border-radius: 10px;
	box-sizing: border-box;
	display: flex !important;
	flex-shrink: 0;
	height: 169px;
	justify-content: center;
	width: 282px;
}

.learning-emotion__logo-item img {
	display: block;
	height: auto;
	margin: auto;
	max-height: 100px;
	max-width: 220px;
	object-fit: contain;
	width: auto;
}

/*
======================================
greetings section
======================================
*/
.greetings {
	display: flex;
	justify-content: center;
	padding: 120px 24px 80px;
}

.greetings__inner {
	background-color: var(--notes-background);
	border-radius: 40px;
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: 1520px;
	overflow: hidden;
	padding: 120px 40px;
	width: 100%;
}

.greetings__header {
	text-align: center;
}

.greetings__title-en {
	color: var(--orange-accent);
	font-size: var(--font-size-heading-l);
	line-height: var(--line-height-none);
	margin: 0;
	text-transform: uppercase;
	margin-top: 24px;
}

.greetings__title-ja {
	color: var(--blue-primary);
	font-size: var(--font-size-m);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-normal);
}

.greetings__content {
	display: flex;
	align-items: flex-start;
	gap: 32px;
	max-width: 1120px;
    margin: auto;
}

.greetings__image {
	border-radius: 10px;
	flex-shrink: 0;
	height: 448px;
	overflow: hidden;
	width: 353px;
}

.greetings__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.greetings__body.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.greetings__heading {
	margin: 0;
}

.greetings__text {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.greetings__text p {
	color: var(--blue-primary);
	font-size: var(--font-size-m);
	line-height: var(--line-height-relaxed);
	margin: 0;
}

.greetings__signature {
	margin: 20px 0 0;
	text-align: right;
}

.greetings__position {
	color: var(--blue-primary);
	font-size: var(--font-size-m);
	font-weight: var(--font-weight-medium);
	letter-spacing: 2.88px;
}

.greetings__name {
	color: var(--blue-primary);
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-medium);
	letter-spacing: 2.88px;
	margin-left: 8px;
}

/*
======================================
history section
======================================
*/
.history {
	background-color: var(--gray-background);
	padding: 80px 40px;
	position: relative;
}

.history__inner {
	border-radius: 40px;
	box-sizing: border-box;
	height: 900px;
	margin: 0 auto;
	max-width: 1600px;
	overflow: hidden;
	position: relative;
}

.history__background {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.history__background img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.history__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 40px;
	height: 100%;
	justify-content: center;
	left: 0;
	padding: 40px;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 3;
}

.history__header {
	text-align: center;
}

.history__title-en {
	color: var(--white);
	font-size: var(--font-size-l);
	letter-spacing: var(--letter-spacing-wider);
	line-height: var(--line-height-none);
	margin: 0;
	text-transform: uppercase;
}

.history__title-ja {
	color: var(--white);
	font-family: var(--main-font-family);
	font-size: var(--font-size-heading-m);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-tight);
	line-height: var(--line-height-tight);
	margin: 8px 0 0;
}

.history__text {
	text-align: center;
}

.history__text p {
	color: var(--white);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	margin: 0;
}

/*
======================================
history slider section
======================================
*/
.history-slider {
	--bottom-opacity: 0;
	position: relative;
	background-color: var(--gray-background);
}

/* スクロール連動グラデーション背景 */
.history-slider.history-slider--bottom::after {
	background: linear-gradient(180deg, #F3F3F3 90%, var(--blue-background) 100%);
	content: "";
	height: 100%;
	left: 0;
	opacity: var(--bottom-opacity);
	pointer-events: none;
	position: absolute;
	top: 0;
	transition: opacity 0.3s ease;
	width: 100%;
	z-index: 1;
}

.history-slider__wrap {
	background-color: var(--white);
	border-radius: 10px;
	box-sizing: border-box;
	display: flex;
	gap: 60px;
	height: calc(100vh - 48px);
	margin: 0 auto 0;
	max-width: 1600px;
	overflow: hidden;
	padding: 60px 72px;
	position: relative;
	z-index: 2;
}

.history-slider__background {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.history-slider__background::after {
	background: linear-gradient(180deg, rgba(0, 56, 76, 0.6) 0%, rgba(0, 56, 76, 0.6) 100%);
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.history-slider__background img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.history-slider__timeline {
	display: flex;
	flex-direction: column;
	padding-top: 100px;
	position: relative;
	width: 80px;
	z-index: 2;
}

.history-slider__years {
	display: flex;
	flex-direction: column;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.history-slider__year {
	color: rgba(242, 177, 3, 0.4);
	cursor: default;
	font-family: var(--english-font-family);
	font-size: var(--font-size-m);
	font-weight: var(--font-weight-normal);
	line-height: var(--line-height-none);
	position: relative;
	transition: var(--transition-animation);
}

.history-slider__year.is-active {
	color: var(--orange-accent);
	font-size: var(--font-size-2xxl);
	font-weight: var(--font-weight-bold);
}

.history-slider__year.is-active::before {
	background-color: var(--orange-accent);
	border-radius: 50%;
	content: "";
	height: 6px;
	left: -16px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 6px;
}

.history-slider__indicator {
	display: none;
}

.history-slider__content {
	align-items: center;
	display: flex;
	flex: 1;
	justify-content: center;
	overflow: hidden;
	position: relative;
	z-index: 2;
}

/* テキスト用フェードイン */
@keyframes historyTextFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* テキスト用フェードアウト */
@keyframes historyTextFadeOut {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}

/* 画像用スライドイン（右から左へ滑り込む + フェード） */
@keyframes historyImageSlideIn {
	from {
		opacity: 0;
		transform: translateX(50px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* 画像用スライドアウト（フェードアウト） */
@keyframes historyImageSlideOut {
	from {
		opacity: 1;
		transform: translateX(0);
	}
	to {
		opacity: 0;
		transform: translateX(-30px);
	}
}

/* イントロスライド用（中央からフェードイン） */
@keyframes historyFadeIn {
	from {
		opacity: 0;
		transform: scale(0.95);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

/* イントロスライド用（フェードアウト） */
@keyframes historyFadeOut {
	from {
		opacity: 1;
		transform: scale(1);
	}
	to {
		opacity: 0;
		transform: scale(0.95);
	}
}

.history-slider__slide {
	align-items: center;
	display: none;
	gap: 60px;
	justify-content: center;
	opacity: 0;
	position: absolute;
	width: 100%;
	will-change: opacity, transform;
}

/* アクティブなスライド */
.history-slider__slide.is-active {
	display: flex;
	position: relative;
	max-width: 1012px;
	opacity: 1;
	z-index: 2;
}

/* アクティブなスライドのテキスト（フェードイン） */
.history-slider__slide.is-active .history-slider__slide-text {
	animation: historyTextFadeIn 0.8s ease forwards;
}

/* アクティブなスライドの画像（右から滑り込む） */
.history-slider__slide.is-active .history-slider__slide-image {
	animation: historyImageSlideIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* 初期表示時はアニメーションなし */
.history-slider__slide.is-active.is-initial {
	animation: none;
}

.history-slider__slide.is-active.is-initial .history-slider__slide-text,
.history-slider__slide.is-active.is-initial .history-slider__slide-image {
	animation: none;
	opacity: 1;
}

/* 退出するスライド */
.history-slider__slide.is-exiting {
	display: flex;
	position: absolute;
	max-width: 964px;
	pointer-events: none;
	z-index: 1;
}

/* 退出するスライドのテキスト（フェードアウト） */
.history-slider__slide.is-exiting .history-slider__slide-text {
	animation: historyTextFadeOut 0.5s ease forwards;
}

/* 退出するスライドの画像（フェードアウト） */
.history-slider__slide.is-exiting .history-slider__slide-image {
	animation: historyImageSlideOut 0.5s ease forwards;
}

/* イントロスライドのアニメーション（中央からフェードイン） */
.history-slider__slide--intro.is-active {
	animation: historyFadeIn 0.8s ease forwards;
}

/* イントロスライドの退出アニメーション */
.history-slider__slide--intro.is-exiting {
	animation: historyFadeOut 0.5s ease forwards;
}

.history-slider__slide-text {
	display: flex;
	flex-direction: column;
	gap: 11px;
	width: 100%;
}

.history-slider__slide-year {
	color: var(--orange-accent);
	font-size: 120px;
	letter-spacing: var(--letter-spacing-wide);
	line-height: var(--line-height-none);
	margin: 0;
	text-transform: uppercase;
}

.section__title--bordered.history-slider__slide-title {
	color: var(--blue-primary);
	font-size: var(--font-size-heading-m);
	margin: 0;
}

.history-slider__slide-desc {
	color: var(--blue-primary);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	margin: 0;
	padding-left: 16px;
}

.history-slider__slide-image {
	flex-shrink: 0;
	height: 418px;
	overflow: hidden;
	width: 489px;
}

.history-slider__slide-image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* イントロスライド（1枚目）用スタイル */
.history-slider__slide--intro {
	flex-direction: column;
	justify-content: center;
	position: static;
}

.history-slider__slide--intro.is-active {
	display: flex;
	height: 100%;
	width: 100%;
	max-width: none;
	justify-content: center;
}

/* 背景画像をwrap全体に広げる */
.history-slider__slide-background {
	border-radius: 10px;
	height: 100%;
	left: 0;
	overflow: hidden;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 0;
}

.history-slider__slide-background img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.history-slider__slide-intro-content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 40px;
	position: relative;
	text-align: center;
	z-index: 2;
}

.history-slider__slide-intro-header {
	text-align: center;
}

.history-slider__slide-intro-en {
	color: var(--white);
	font-size: var(--font-size-l);
	letter-spacing: var(--letter-spacing-wider);
	line-height: var(--line-height-none);
	margin: 0;
	text-transform: uppercase;
}

.history-slider__slide-intro-title {
	color: var(--white);
	font-family: var(--main-font-family);
	font-size: var(--font-size-heading-m);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-tight);
	line-height: var(--line-height-tight);
	margin: 8px 0 0;
}

.history-slider__slide-intro-text {
	text-align: center;
}

.history-slider__slide-intro-text p {
	color: var(--white);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	margin: 0;
}

/* イントロスライド時はタイムラインを非表示 */
.history-slider.is-intro .history-slider__timeline {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.history-slider .history-slider__timeline {
	opacity: 1;
	transition: opacity 0.3s ease;
}

/* イントロスライド時はwrapの背景を透明に、コンテンツを全体に広げる */
.history-slider.is-intro .history-slider__wrap {
	background-color: transparent;
	padding: 0;
}

.history-slider.is-intro .history-slider__content {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 40px;
}

/* イントロスライド時かつfixed時はcontentのpaddingを0に */
.history-slider.is-intro.is-fixed .history-slider__content {
	padding: 0;
}

/*
======================================
Note PC Media Query (max-width: 1200px)
======================================
*/
@media screen and (max-width: 1200px) and (min-width:1023px) {
	.history-slider__content{
		padding-right: 0;
	}
	.history-slider__wrap{
		gap: calc((100vw / 1200) * 60);
	}
	.history-slider__slide.is-active{
		gap: calc((100vw / 1200) * 80);
	}
	.history-slider__slide-image{
		width: calc((100vw / 1200) * 400);
		height: calc((100vw / 1200) * 342);
	}
}

@media screen and (min-width:600px) and (max-height:732px) {
	.history-slider__timeline{
		padding-top: 0;
	}
}

/*
======================================
Tablet Media Query (max-width: 1024px)
======================================
*/
@media screen and (max-width: 1024px)  {
	.history-slider.is-intro .history-slider__content{
		padding: 24px;
	}
	.celebrate-message-confettis {
		display: none;
	}
	/* === hero confetti tablet（PC配置を維持） === */
	.hero-confetti.viewPc {
		display: block !important;
		height: 200%;
		left: 50%;
		max-width: 1600px;
		position: absolute;
		top: 0;
		transform: translateX(-50%);
		width: 100%;
	}

	.hero-confetti-sp {
		display: none !important;
	}

	/* === hero photos tablet === */
	.hero-photos--left,
	.hero-photos--right {
		width: 32%;
	}

	/* === greetings tablet（SP版に準拠） === */
	.greetings {
		padding: 48px 24px 64px;
	}

	.greetings__inner {
		border-radius: 10px;
		gap: 40px;
		padding: 40px 40px 52px;
	}

	.greetings__title-en {
		font-size: var(--font-size-heading-m);
		margin-top: 0;
	}

	.greetings__title-ja {
		font-size: var(--font-size-m);
	}

	.greetings__content {
		flex-direction: column;
		gap: 32px;
	}

	.greetings__image {
		height: auto;
		width: 100%;
		object-fit: contain;
	}

	/* タブレットでもSP版の画像を表示 */
	.greetings__image.viewPc {
		display: none !important;
	}

	.greetings__image.viewSp {
		display: block !important;
	}

	.greetings__body {
		gap: 16px;
	}

	.greetings__text p {
		font-size: var(--font-size-s);
	}

	.greetings__signature {
		margin-top: 24px;
	}

	.greetings__position {
		font-size: var(--font-size-s);
	}

	.greetings__name {
		font-size: var(--font-size-l);
	}

	/* === history slider tablet === */
	.history-slider__wrap {
		gap: 40px;
		padding: 60px 60px;
	}

	.history-slider__timeline {
		padding-top: 60px;
		width: 100px;
	}

	.history-slider__years {
		gap: 20px;
	}

	.history-slider__year {
		font-size: 14px;
	}

	.history-slider__year.is-active {
		font-size: 22px;
	}

	.history-slider__slide {
		gap: 40px;
		flex-direction: column-reverse;
        align-items: flex-start;
		justify-content: flex-end;
	}

	.history-slider__slide--intro{
		align-items: center;
	}

	.history-slider__slide-year {
		font-size: 80px;
	}

	.history-slider__slide-title {
		font-size: var(--font-size-xl);
	}

	.history-slider__slide-desc {
		font-size: var(--font-size-m);
	}

	.history-slider__slide-image {
		height: calc((100vw / 1024) * 400);
		width: calc((100vw / 1024) * 467);
	}

	.history-slider__slide-intro-title {
		font-size: var(--font-size-2xl);
	}

	.history-slider__slide-intro-text p {
		font-size: var(--font-size-m);
	}
}

/*
======================================
SP Media Query (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.history-slider__slide-background img{
		object-position: 20% top;
	}
	/* === hero section SP === */
	.hero-logo-area {
		height: 100vh;
        max-height: 668px;
        padding: 50px 0 60px;
	}

	.hero-confetti__img {
		object-position: center center;
	}

	.hero-logo {
		max-width: 307px;
	}

	/* SP版紙吹雪（1枚画像） - Figma準拠 */
	.hero-confetti-sp {
		display: block;
		height: 170%;
		left: -39%;
		pointer-events: none;
		position: absolute;
		top: -13%;
		width: 174%;
		z-index: 1;
	}

	.hero-confetti-sp__img {
		height: 100%;
		object-fit: contain;
		object-position: top center;
		width: 100%;
	}

	.hero-message-area {
		min-height: auto;
		padding: 60px 0 142px;
	}

	.hero-bg {
		height: 145%;
		top: -45%;
	}

	/* SP版: 紙吹雪デコレーション（hero-deco）を非表示 */
	.hero-deco--left {
		display: none;
	}

	.hero-deco--right {
		display: none;
	}

	.hero-deco__inner {
		top: 40%;
		width: 70%;
	}

	.hero-message {
		max-width: 100%;
		padding: 0 30px;
	}

	.hero-message-area__wrap{
		padding: 68px 0 168px;
        min-height: auto;
	}

	.hero-message__label {
		font-size: var(--font-size-xs);
		margin-bottom: 16px;
	}

	.hero-message__title {
		font-size: var(--font-size-heading-m);
		margin-bottom: 30px;
	}

	.hero-message__text {
		font-size: var(--font-size-s);
		line-height: var(--line-height-relaxed);
	}

	.hero-photos--pc{
		display: none;
	}

	/* SP用写真（メッセージエリア内に絶対配置） */
	.hero-photos-sp {
		display: block;
		height: 100%;
		left: 0;
		pointer-events: none;
		position: absolute;
		top: 0;
		width: 100%;
		z-index: 3;
	}

	.hero-photo-sp {
		border-radius: 4px;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
		object-fit: cover;
		position: absolute;
	}

	/* SP写真1: 上部左側（ぼかしあり） - Figma: kv_img_sp06 */
	.hero-photo-sp--1 {
		filter: blur(2px);
		height: auto;
		left: -6%;
		top: 4%;
		width: 32%;
		max-width: 119px;
	}

	/* SP写真2: 上部右側（ぼかしあり） - Figma: kv_img_sp05 */
	.hero-photo-sp--2 {
		filter: blur(2px);
		height: auto;
		right: -6%;
		top: -2%;
		width: 26%;
		max-width: 96px;
	}

	/* SP写真3: 右側中央 - Figma: kv_img_sp02 */
	.hero-photo-sp--3 {
		height: auto;
		right: 8%;
		top: 4.5%;
		width: 25%;
		max-width: 94px;
	}

	/* SP写真4: 下部左側 - Figma: kv_img_sp04 */
	.hero-photo-sp--4 {
		bottom: 16%;
        height: auto;
        left: 7.1%;
        width: 36%;
        max-width: 133px;
	}

	/* SP写真5: 下部中央（ぼかしあり・縦長） - Figma: kv_img_sp03 */
	.hero-photo-sp--5 {
		bottom: 22%;
        filter: blur(2px);
        height: auto;
        left: 53%;
        width: 22%;
        max-width: 84px;
	}

	/* SP写真6: 下部右側 - Figma: kv_img_sp01 */
	.hero-photo-sp--6 {
		bottom: 12%;
        height: auto;
        right: -10%;
        width: 45%;
        max-width: 166px;
	}

	/* === celebrate message === */
	.section__wrap.celebrate-message__wrap {
		padding: 50px 0 60px;
	}

	.celebrate-message__bg-text {
		font-size: 20px;
		gap: 10px;
		margin-bottom: 40px;
	}

	.celebrate-message__header {
		padding: 0 16px;
		margin-bottom: 40px;
	}

	.celebrate-message__subtitle {
		font-size: var(--font-size-l);
	}

	.celebrate-message__title {
		font-size: 32px;
		margin: 0;
	}

	.celebrate-message__slider {
		margin: 16px 0;
	}

	.celebrate-message__slider--row2 {
		margin-top: 16px;
	}

	.celebrate-message__slide {
		padding: 0 8px 20px;
	}

	.celebrate-message__text {
		font-size: var(--font-size-xs);
		margin: 0 0 18px;
	}
	.celebrate-message__footer{
		margin-top: 40px;
		padding: 0 16px;
	}

	/* === learning emotion === */
	.learning-emotion {
		padding: 16px 0 0;
	}

	.news-section+.learning-emotion{
		padding: 80px 0 0;
	}

	.learning-emotion__wrap{
		gap: 186px;
	}

	.learning-emotion__illust--notebook{
		left: -1.8%;
        top: -10px;
        width: 29%;
	}

	.learning-emotion__illust--clapperboard {
		left: 51.5%;
        top: 500px;
        width: 24.5%;
	}
	
	.learning-emotion__illust--protractor {
		left: 80.5%;
		top: 67px;
		width: 16%;
	}
	
	.learning-emotion__illust--pencil {
		left: 3.5%;
		top: 466px;
		width: 24.5%;
	}
	
	.learning-emotion__illust--monitor {
		height: auto;
		right: -4.5%;
		top: 468px;
		width: 36.5%;
	}
	
	.learning-emotion__illust--book {
		right: 74%;
		top: 82px;
		width: 14%;
	}
	
	.learning-emotion__illust--film {
		right: 4%;
		top: -15px;
		width: 19%;
	}

	.learning-emotion__illust--triangle {
		display: none;
	}

	.learning-emotion__content {
		gap: 40px;
		padding: 0 16px;
	}

	.learning-emotion__symbol {
		height: 107px;
		width: 107px;
	}

	.learning-emotion__title {
		font-size: var(--font-size-3xl);
		letter-spacing: 1.6px;
	}

	.learning-emotion__text p {
		font-size: var(--font-size-m);
	}

	.learning-emotion__logo-item {
		height: 84px;
		width: 142px;
	}

	.learning-emotion__logo-item img {
		max-height: 40px;
		max-width: 120px;
	}

	/* === greetings === */
	.greetings {
		padding: 48px 16px 64px;
	}

	.greetings__inner {
		border-radius: 10px;
		gap: 40px;
		padding: 40px 16px 52px;
	}

	.greetings__title-en {
		font-size: var(--font-size-heading-m);
		margin-top: 0;
	}

	.greetings__title-ja {
		font-size: var(--font-size-m);
	}

	.greetings__content {
		flex-direction: column;
		gap: 32px;
	}

	.greetings__image {
		height:auto;
		width: 100%;
		object-fit: contain;
	}

	.greetings__body {
		gap: 16px;
	}

	.greetings__text p {
		font-size: var(--font-size-s);
	}

	.greetings__signature {
		margin-top: 24px;
	}

	.greetings__position {
		font-size: var(--font-size-s);
	}

	.greetings__name {
		font-size: var(--font-size-l);
	}

	/* === history === */
	.history {
		padding: 40px 16px;
	}

	.history__inner {
		border-radius: 20px;
		height: 600px;
	}

	.history__content {
		gap: 24px;
		padding: 24px;
	}

	.history__title-en {
		font-size: var(--font-size-s);
	}

	.history__title-ja {
		font-size: var(--font-size-2xl);
	}

	.history__text p {
		font-size: var(--font-size-s);
	}

	/* === history slider === */
	.history-slider__wrap {
		border-radius: 10px;
		flex-direction: column;
		gap: 16px;
		height: calc(100vh - 20px);
		min-height: auto;
		padding: 50px 8px 24px;
	}

	.history-slider__timeline {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 23px 15px;
		justify-content: center;
		order: -1;
		padding-top: 0;
		width: 100%;
	}

	.history-slider__years {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 10px;
		justify-content: center;
		height: 80px;
	}

	.history-slider__year {
		color: #ffcb8f;
		font-size: 16px;
	}

	.history-slider__year.is-active {
		color: var(--orange-accent);
		font-size: 28px;
	}

	.history-slider__year.is-active::before {
		left: 50%;
		top: -12px;
		transform: translateX(-50%);
	}

	.history-slider__content {
		flex-direction: column;
		padding: 0;
	}

	.history-slider__slide {
		flex-direction: column-reverse;
		gap: 8px;
		padding: 0 20px;
		height: 456px;
	}

	.history-slider.is-intro .history-slider__content{
		padding: 20px 10px;
	}

	.history-slider__slide-intro-en.section__title--english{
		font-size: var(--font-size-l);
	}

	.history-slider__slide-text {
		align-items: flex-start;
		gap: 4px;
		padding: 0;
	}

	.history-slider__slide-year {
		font-size: 60px;
	}

	.history-slider__slide-title {
		font-size: var(--font-size-2xl);
	}

	.history-slider__slide-desc {
		font-size: var(--font-size-s);
		line-height: var(--line-height-normal);
		padding-left: 0;
	}

	.history-slider__slide-image {
		border-radius: 0;
		height: auto;
		width: 100%;
	}

	/* === イントロスライド SP === */
	.history-slider__slide--intro {
		padding: 0;
	}

	.history-slider__slide-background {
		border-radius: 10px;
	}

	.history-slider__slide-intro-content {
		padding: 40px 20px;
	}

	.history-slider__slide-intro-en {
		font-size: var(--font-size-m);
	}

	.history-slider__slide-intro-title {
		font-size: var(--font-size-2xl);
	}

	.history-slider__slide-intro-text p {
		font-size: var(--font-size-m);
		line-height: var(--line-height-relaxed);
	}

	/* イントロスライド時はwrapの背景を透明に */
	.history-slider.is-intro .history-slider__wrap {
		background-color: transparent;
		padding: 0;
	}
}

/*
======================================
future section
======================================
*/
.future {
	overflow: hidden;
	position: relative;
}

.future__background {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.future__background img {
	filter: blur(8px);
	height: 100%;
	object-fit: cover;
	transform: scale(1.05);
	width: 100%;
}

.future__overlay-head{
	background:  linear-gradient(180deg, var(--blue-background) 0%, rgba(208, 239, 247, 0.00) 94.12%);
	height: 32%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 3;
}

.future__overlay {
	background: var(--future-overlay);
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 2;
}

.future__inner {
	display: flex;
	flex-direction: column;
	gap: 72px;
	margin: 0 auto;
	max-width: 1600px;
	padding: 170px 24px 120px;
	position: relative;
	z-index: 3;
}

.future__decorations {
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 3;
}

.future__deco {
	position: absolute;
}

/* 紙吹雪01: 「TO」の左上 - 黄色系 */
.future__deco--01 {
	height: auto;
    left: 17.5%;
    top: 256px;
    width: 36px;
}

/* 紙吹雪02: 「O」の左下 - 緑系 */
.future__deco--02 {
	height: auto;
    left: 21.5%;
    top: 168px;
    width: 47px;
}

/* 紙吹雪03: 右端上部「RE」の右上 - 黄色系（大） */
.future__deco--03 {
	height: auto;
    left: 25.5%;
    top: 272px;
    width: 42px;
}

/* 紙吹雪04: 「TU」の上あたり - オレンジ系 */
.future__deco--04 {
	height: auto;
    right: 19.5%;
    top: 155px;
    width: 66px;
}

/* 紙吹雪05: 中央やや右「T」と「U」の間 - オレンジ/緑系 */
.future__deco--05 {
	height: auto;
    left: 56%;
    top: 234px;
    width: 62px;
}

/* 紙吹雪06: 「THE」の左下 - オレンジ系 */
.future__deco--06 {
	left: 34%;
	right: auto;
	top: 113px;
	width: 24px;
}

.future__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 48px;
	position: relative;
	z-index: 2;
}

.future__title {
	color: var(--white);
	font-size: var(--font-size-future);
	letter-spacing: 0.05em;
	line-height: var(--line-height-none);
	margin: 0;
	text-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	text-transform: uppercase;
	text-align: center;
}

.future__text-area {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 40px;
	text-align: center;
}

.future__subtitle {
	color: var(--white);
	font-size: var(--font-size-heading-m);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
	line-height: var(--line-height-tight);
	margin: 0;
	text-shadow: 0 0 24px var(--text-shadow);
}

.future__description {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.future__description p {
	color: var(--white);
	font-size: var(--font-size-l);
	line-height: var(--line-height-loose);
	margin: 0;
	text-align: center;
	text-shadow: 0 0 24px var(--text-shadow);
}

/* スクロール連動で1行ずつ表示 */
.future__reveal-line {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.future__reveal-line.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.future__collaboration {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 48px;
	position: relative;
	z-index: 2;
}

.future__collaboration-header {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.future__collaboration-lead {
	color: var(--white);
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-normal);
	margin: 0;
	text-align: center;
}

.future__collaboration-highlight {
	background-color: var(--white);
	border-radius: 4px;
	color: var(--orange-accent);
	display: inline-block;
	font-size: var(--font-size-xl);
	margin: 0 4px;
	padding: 4px 8px;
}

.future__collaboration-title {
	margin: 0;
}

.future__collaboration-title span {
	background-color: var(--orange-accent);
	border-radius: 6px;
	color: var(--white);
	display: inline-block;
	font-family: var(--english-font-family);
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.1em;
	padding: 4px 60px;
}

.future__projects {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(2, 1fr);
	max-width: 1120px;
	width: 100%;
}

.future__project-card {
	align-items: center;
	background-color: var(--white);
	border: 1px solid #d0eff7;
	border-radius: 10px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	display: flex;
	justify-content: center;
	min-height: 182px;
	padding: 40px 60px;
	position: relative;
	text-decoration: none;
	transition: var(--transition-animation);
}

.future__project-card:hover {
	background-color: var(--white);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
	transform: translateY(-4px);
}

.future__project-images{
	width: 100%;
	object-fit: contain;
	max-width: 240px;
}

.future__project-name {
	color: var(--blue-primary);
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
	line-height: var(--line-height-normal);
}

.future__project-arrow {
    bottom: 0;
    justify-content: center;
    position: absolute;
    right: 0;
    width: 88px;
	border-bottom-right-radius:10px;
}

.future__project-arrow::after {
	border-right: 2px solid #2e4580;
	border-top: 2px solid #2e4580;
	content: "";
	display: block;
	height: 10px;
	transform: rotate(45deg);
	width: 10px;
}

/* COMING SOON状態 */
.future__project-card--coming-soon {
	background-color: var(--gray-background);
	border-color: var(--border-light);
	box-shadow: none;
	cursor: default;
	font-family: var(--english-font-family);
	opacity: 0.7;
	pointer-events: none;
}

.future__project-card--coming-soon:hover {
	box-shadow: none;
	transform: none;
}

.future__project-card--coming-soon .future__project-images {
	filter: grayscale(100%);
	opacity: 0.5;
}

.future__project-coming-soon {
	background-color: var(--gray-placeholder);
	border-bottom-right-radius: 10px;
	bottom: 0;
	color: var(--white);
	font-family: var(--font-family-en);
	font-size: 12px;
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.1em;
	padding: 8px 16px;
	position: absolute;
	right: 0;
}

/* 画像なしの場合：中央にテキスト表示 */
.future__project-coming-soon-text {
	color: var(--gray-placeholder);
	font-family: var(--font-family-en);
	font-size: 24px;
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.1em;
}

/*
======================================
PR Banner Section
======================================
*/
.pr-banner {
	overflow: hidden;
	padding: 104px 0;
	position: relative;
}

.pr-banner__inner {
	margin: 0 auto;
	max-width: 1120px;
	padding: 0 24px;
	width: 100%;
}

/* 横長バナーモード（1〜3つ） */
.pr-banner__list {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.pr-banner__link {
	border-radius: 10px;
	display: block;
	overflow: hidden;
	transition: opacity 0.3s ease, transform 0.3s ease;
	width: 100%;
}

.pr-banner__link:hover {
	opacity: 0.8;
	transform: scale(1.02);
}

.pr-banner__image {
	display: block;
	height: auto;
	width: 100%;
}

/* スライダーモード（4つ以上） - Slick.js */
.pr-banner__slider {
	position: relative;
	width: 100%;
}

.pr-banner__slider-track {
	margin: 0 -16px;
}

.pr-banner__slider-track .slick-list {
	overflow: hidden;
}

.pr-banner__slider-track .slick-track {
	display: flex;
}

.pr-banner__slider-track .slick-slide {
	height: auto;
	padding: 0 16px;
}

.pr-banner__slide {
	width: 100%;
}

.pr-banner__link--slider {
	border-radius: 10px;
	display: block;
	height: 330px;
	overflow: hidden;
	transition: opacity 0.3s ease, transform 0.3s ease;
	width: 100%;
}

.pr-banner__link--slider:hover {
	opacity: 0.8;
	transform: scale(1.02);
}

.pr-banner__link--slider .pr-banner__image {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* プログレスバー */
.pr-banner__progress {
	height: 9px;
	margin: 48px auto 0;
	max-width: 1120px;
	padding: 0 24px;
	position: relative;
	width: 100%;
}

.pr-banner__progress-track {
	background-color: var(--blue-20, #d0eff7);
	border-radius: 20px;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.pr-banner__progress-bar {
	background-color: var(--blue-120, #2e4580);
	border-radius: 20px;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	transition: width 0.3s ease;
	width: 33.33%;
}

/*
======================================
PR Banner Section - Tablet (max-width: 1024px)
======================================
*/
@media screen and (max-width: 1024px) {
	.pr-banner {
		padding: 80px 0;
	}

	.pr-banner__link--slider {
		height: 243px;
	}

	.pr-banner__slider-track {
		margin: 0 -12px;
	}

	.pr-banner__slider-track .slick-slide {
		padding: 0 12px;
	}

	.pr-banner__progress {
		padding: 0 24px;
	}
}

/*
======================================
PR Banner Section - SP (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.pr-banner {
		padding: 48px 0;
	}

	.pr-banner__inner {
		padding: 0 16px;
	}

	.pr-banner__list {
		gap: 20px;
	}

	.pr-banner__link--slider {
		height: auto;
		aspect-ratio: 544 / 330;
	}

	.pr-banner__slider-track {
		margin: 0 -8px;
	}

	.pr-banner__slider-track .slick-slide {
		padding: 0 8px;
	}

	.pr-banner__progress {
		margin-top: 32px;
		padding: 0 16px;
	}
}

/*
======================================
future section - Tablet (max-width: 1024px)
======================================
*/
@media screen and (max-width: 1024px) {
	.section__title--english.future__title {
		font-size: var(--font-size-future);
		line-height: var(--line-height-none);
	}

	.future__deco--01 {
		left: 10%;
	}

	.future__deco--02 {
		left: 5%;
	}

	.future__deco--03 {
		right: 10%;
	}

	.future__deco--04 {
		right: 5%;
	}

	.future__deco--05 {
		left: 15%;
	}

	.future__deco--06 {
		right: 15%;
	}

	.future__projects {
		gap: 24px;
	}

	.future__project-card {
		min-height: 150px;
		padding: 30px 40px;
	}

	.future__project-name {
		font-size: var(--font-size-xl);
	}
}

/*
======================================
future section - SP (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.future__inner {
		gap: 40px;
		padding: 60px 0px 80px;
	}

	.future__background img{
		object-position: 30% top;
	}

	.future__decorations {
		display: block;
	}

	.future__deco {
		width: 35px;
	}

	/* SP: 「TO」と「THE」の間 - オレンジ系 */
	.future__deco--01 {
		display: none;
	}

	.future__deco--02 {
		display: none;
	}

	/* SP: 右端上部 - 黄色系 */
	.future__deco--03 {
		display: none;
	}

	.future__deco--04 {
		right: 7%;
		top: 55px;
		width: 42px;
	}

	.future__deco--05 {
		left: 13%;
        top: 181px;
        width: 39px;
	}

	/* SP: 左側「FUTURE」の近く - 緑/オレンジ系 */
	.future__deco--06 {
		left: 33%;
        right: auto;
        top: 114px;
        width: 32px;
	}

	.future__content {
		gap: 80px;
	}

	.future__title {
		font-size: 50px;
		line-height: 1.2;
		text-align: center;
	}

	.future__text-area {
		gap: 40px;
	}

	.future__subtitle {
		font-size: var(--font-size-3xl);
		line-height: 1.6;
	}

	.future__description p {
		font-size: var(--font-size-m);
		line-height: var(--line-height-loose);
	}

	.future__collaboration-header {
		gap: 12px;
	}

	.future__collaboration-lead {
		font-size: var(--font-size-m);
		line-height: var(--line-height-relaxed);
	}

	.future__collaboration-highlight {
		font-size: var(--font-size-m);
		padding: 3px 6px;
	}

	.future__collaboration-title span {
		font-size: var(--font-size-2xl);
		padding: 10px 40px;
	}

	.future__projects {
		gap: 16px;
		grid-template-columns: 1fr;
		padding: 0 16px;
	}

	.future__project-card {
		justify-content: flex-start;
		min-height: 95px;
		padding: 24px 80px 24px 30px;
	}

	.future__project-name {
		font-size: var(--font-size-m);
	}

	.future__project-arrow {
		width: 64px;
	}

	.future__project-arrow::after {
		height: 8px;
		width: 8px;
	}

	.future__project-coming-soon {
		font-size: 10px;
		padding: 6px 12px;
	}

	.future__project-coming-soon-text {
		font-size: 16px;
	}
}

/*
======================================
special contents section
======================================
*/
.special-contents {
	overflow: hidden;
	padding: 180px 24px;
	position: relative;
}

.special-contents__inner {
	background-color: var(--white);
	border-radius: 20px;
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 1520px;
	overflow: hidden;
	padding: 60px 0 60px;
	position: relative;
	width: 100%;
}

.special-contents__decorations {
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.special-contents__circle {
	border-radius: 50%;
	position: absolute;
}

/* 右上の大きな円 */
.special-contents__circle--01 {
	background-color: rgba(208, 239, 247, 0.5);
	height: 605px;
	right: -100px;
	top: -100px;
	width: 605px;
}

/* 左下の円 */
.special-contents__circle--02 {
	background-color: rgba(208, 239, 247, 0.4);
	height: 587px;
	left: -150px;
	top: 50%;
	width: 587px;
}

/* 右下の円 */
.special-contents__circle--03 {
	background-color: rgba(208, 239, 247, 0.3);
	bottom: -200px;
	height: 587px;
	right: 10%;
	width: 587px;
}

.special-contents__marquee {
	animation: marquee-special 30s linear infinite;
	color: var(--blue-background);
	display: flex;
	font-family: var(--english-font-family);
	font-size: 40px;
	font-weight: var(--font-weight-normal);
	gap: 30px;
	letter-spacing: 0.05em;
	line-height: 1;
	position: relative;
	text-transform: uppercase;
	white-space: nowrap;
	width: max-content;
	z-index: 2;
}

.special-contents__marquee span {
	display: inline-block;
	flex-shrink: 0;
}

.special-contents__marquee--top {
	left: 0;
	margin-bottom: 20px;
}

.special-contents__marquee--bottom {
	margin-top: 60px;
}

@keyframes marquee-special {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

.special-contents__title {
	color: var(--blue-primary);
	font-family: var(--main-font-family);
	font-size: 60px;
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
	line-height: var(--line-height-tight);
	margin: 0 0 60px;
	position: relative;
	text-align: center;
	z-index: 2;
}

.special-contents__memory {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding: 0 24px;
	position: relative;
	z-index: 2;
	margin: 0 auto;
	max-width: 1168px;
}

.special-contents__memory-header {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.special-contents__memory-title {
	color: var(--blue-primary);
	font-family: var(--main-font-family);
	font-size: 32px;
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
	line-height: var(--line-height-normal);
	margin: 0;
}

.special-contents__memory-desc {
	color: var(--blue-primary);
	font-family: var(--main-font-family);
	font-size: var(--font-size-m);
	font-weight: var(--font-weight-medium);
	line-height: var(--line-height-relaxed);
	margin: 0;
}

.special-contents__memory-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 48px 32px;
}

.special-contents__memory-item {
	display: flex;
	justify-content: center;
	width: calc((100% - 32px) / 2);
}

.special-contents__memory-item .memory-card {
	width: 100%;
}

.special-contents__memory-list {
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.special-contents__memory-list .special-contents__memory-item {
	width: 100%;
}

.special-contents__memory-list .memory-card {
	width: 100%;
}

.special-contents__memory-footer {
	display: flex;
	justify-content: center;
	margin-top: 8px;
}

/*
======================================
special contents section - Tablet (max-width: 1024px)
======================================
*/
@media screen and (max-width: 1024px) {
	.special-contents {
		padding: 120px 30px;
	}

	.special-contents__inner {
		padding: 50px 0;
	}

	.special-contents__circle--01 {
		height: 400px;
		right: -80px;
		top: -80px;
		width: 400px;
	}

	.special-contents__circle--02 {
		height: 400px;
		left: -120px;
		width: 400px;
	}

	.special-contents__circle--03 {
		bottom: -150px;
		height: 400px;
		width: 400px;
	}

	.special-contents__marquee {
		font-size: 30px;
		gap: 20px;
	}

	.special-contents__marquee--top {
		margin-bottom: 16px;
	}

	.special-contents__marquee--bottom {
		margin-top: 40px;
	}

	.special-contents__title {
		font-size: 48px;
		margin-bottom: 48px;
	}

	.special-contents__memory {
		gap: 32px;
		padding: 0 30px;
	}

	.special-contents__memory-title {
		font-size: 28px;
	}

	.special-contents__memory-grid {
		gap: 32px 24px;
	}

	.special-contents__memory-item {
		width: calc((100% - 24px) / 2);
	}
}

/*
======================================
special contents section - SP (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.special-contents {
		padding: 80px 16px;
	}

	.special-contents__inner {
		padding: 24px 0 24px;
		border-radius: 10px;
	}

	.special-contents__circle--01 {
		height: 278px;
		right: -50px;
		top: -50px;
		width: 278px;
	}

	.special-contents__circle--02 {
		height: 278px;
		left: -113px;
		top: 40%;
		width: 278px;
	}

	.special-contents__circle--03 {
		bottom: -100px;
		height: 278px;
		right: -50px;
		width: 278px;
	}

	.special-contents__marquee {
		font-size: 20px;
		gap: 15px;
	}

	.special-contents__marquee--top {
		margin-bottom: 16px;
	}

	.special-contents__marquee--bottom {
		margin-top: 40px;
	}

	.special-contents__title {
		font-size: var(--font-size-heading-l);
	}

	.special-contents__memory {
		gap: 40px;
		padding: 0 15px;
	}

	.special-contents__memory-header {
		gap: 16px;
	}

	.special-contents__memory-title {
		font-size: var(--font-size-l);
	}

	.special-contents__memory-desc {
		font-size: var(--font-size-s);
	}

	.special-contents__memory-list {
		gap: 36px;
	}

	.special-contents__memory-list .memory-card--sp {
		width: 100%;
	}

	.special-contents__memory-footer {
		margin-top: 0;
	}
}

/*
======================================
news section
======================================
*/
.news-section {
	padding: 180px 40px 0;
}

.news-section__inner {
	align-items: flex-start;
	display: flex;
	gap: 40px;
	margin: 0 auto;
	max-width: 1120px;
}

.news-section__sidebar {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: 40px;
	width: 224px;
}

.news-section__header {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.news-section__title-en {
	color: var(--white);
	font-size: var(--font-size-heading-l);
	letter-spacing: 3px;
	line-height: var(--line-height-none);
	margin: 0;
}

.news-section__title-ja {
	color: var(--white);
	font-family: var(--main-font-family);
	font-size: var(--font-size-m);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.8px;
	line-height: var(--line-height-normal);
	margin: 0;
}

.news-section__action {
	margin-top: auto;
}

.news-section__content {
	flex: 1;
	min-width: 0;
}

.news-section__list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

.news-section__empty {
	color: var(--white);
	font-family: var(--main-font-family);
	font-size: var(--font-size-m);
	padding: 20px 0;
}

.news-section__footer {
	display: flex;
	justify-content: flex-start;
	margin-top: 24px;
}

/*
======================================
news section - Tablet (max-width: 1024px)
======================================
*/
@media screen and (max-width: 1024px) {
	.news-section {
		padding: 80px 30px 0;
	}

	.news-section__inner {
		gap: 40px;
	}
}

/*
======================================
news section - SP (max-width: 599px)
======================================
*/
@media screen and (max-width: 599px) {
	.news-section__content{
		width: 100%;
	}
	.news-section {
		padding: 104px 16px 0;
	}

	.news-section__inner {
		align-items: center;
		flex-direction: column;
		gap: 24px;
	}

	.news-section__sidebar {
		width: 100%;
	}

	.news-section__header {
		gap: 4px;
	}

	.news-section__title-ja {
		font-size: var(--font-size-s);
		margin-bottom: 16px;
	}

	.news-section__footer {
		justify-content: center;
		margin-top: 8px;
	}
}
