/*--------------------------------------------------------------
# Page Header Component (ページヘッダーコンポーネント)
--------------------------------------------------------------*/

/* Page Header (ページヘッダー) */
.page-header {
	position: relative;
}

.page-header--no-thumbnail {
	padding-top: 24.0rem; /* 240px */
}

@media (max-width: 768px) {
	.page-header--no-thumbnail {
		padding-top: 14.0rem; /* 140px */
	}
}

/* Page Header Thumbnail (ページヘッダー サムネイル) */
.page-header__thumbnail {
	margin-bottom: 6.0rem; /* 60px */
}

@media (max-width: 768px) {
	.page-header__thumbnail {
		margin-bottom: 4.0rem; /* 40px */
	}
}

.thumbnail-container,
.thumbnail-l-container {
	position: relative;
}

@media (min-width: 769px) {
	.thumbnail-container,
	.thumbnail-l-container {
		height: 40.0rem; /* 400px */
	}
}

@media (max-width: 768px) {
	.thumbnail-container,
	.thumbnail-l-container {
		aspect-ratio: 1;
		max-height: 40.0rem; /* 400px */
		width: 100%;
	}
}

.thumbnail-mask {
	overflow: hidden;
	border-radius: 2.1rem; /* 21px */
	width: 100%;
	height: 100%;
}

.thumbnail,
.thumbnail-mask {
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.thumbnail {
	width: 100%;
	height: 100%;
}

@media (min-width: 769px) {
	.thumbnail {
		height: 40.0rem; /* 400px */
	}
}

@media (max-width: 768px) {
	.thumbnail {
		aspect-ratio: 1;
		max-height: 40.0rem; /* 400px */
	}
}

.thumbnail::after {
	background-color: rgba(40, 45, 39, 0.2);
	content: "";
	display: block;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	position: absolute;
	z-index: 2;
}

.thumbnail img {
	backface-visibility: hidden;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
	transition: transform 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}

.page-header__thumbnail.animate-fade-in-up img {
	transform: scale(1.1);
}

.page-header__thumbnail.animate-fade-in-up.animated img {
	transform: scale(1.1);
}

/* Page Header Container (ページヘッダー コンテナ) */
.page-header__container {
	position: relative;
	z-index: 1;
}

@media (max-width: 768px) {
	.page-header__container {
		padding: 0 1.6rem; /* 16px */
	}
}

/* Page Header Title (Large Green Text) (ページヘッダー タイトル - 大きな緑色のテキスト) */
.page-header__title {
	color: var(--color-primary);
	left: 0;
	position: absolute;
	top: -8.0rem; /* -80px */
	z-index: -1;
	font-size: 12.0rem; /* 120px */
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	font-family: serif;
	overflow: hidden;
}

@media (max-width: 768px) {
	.page-header__title {
		top: -4.0rem; /* -40px */
		font-size: 6.0rem; /* 60px */
	}
}

/* Page Header Title with Thumbnail (サムネイル付きページヘッダー タイトル) */
.page-header__title--thumbnail {
	color: var(--color-primary);
}

@media (max-width: 768px) {
	.page-header__title--thumbnail {
		top: -8.0rem; /* -80px */
		font-size: 8.0rem; /* 80px */
	}
}

/* Animation Utilities */
.animate-fade-in-up {
	animation: fadeInUp 0.8s cubic-bezier(0.65, 0, 0.35, 1) forwards;
	opacity: 0;
	transform: translateY(3.0rem); /* 30px */
}

.animate-fade-in {
	animation: fadeIn 0.8s cubic-bezier(0.65, 0, 0.35, 1) forwards;
	opacity: 0;
}

.animate-char {
	display: inline-block;
	opacity: 0;
	transform: translateY(100%);
	animation: charSlideUp 0.6s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	to {
		opacity: 1;
	}
}

@keyframes charSlideUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Page Header Heading (Medium Title) (ページヘッダー 見出し - 中サイズのタイトル) */
.page-header__heading {
	margin: 0;
}

.page-header__heading h1 {
	font-size: var(--font-size-h1);
	color: var(--color-text);
	font-weight: 700;
}

/* Page Header Description (ページヘッダー 説明文) */
.page-header__description {
	margin-top: 2.4rem; /* 24px */
}

@media (min-width: 769px) {
	.page-header__description {
		margin-left: 0.4rem; /* 4px */
		max-width: 46.4rem; /* 464px */
	}
}

@media (max-width: 768px) {
	.page-header__description {
		margin-top: 1.6rem; /* 16px */
	}
}

.page-header__description p {
	margin: 0;
	color: var(--color-text);
	line-height: var(--line-height-base);
}

/* Legacy styles for backward compatibility */
.page-title {
	font-size: var(--font-size-h1);
	color: var(--color-text);
	font-weight: 700;
}

.page-subtitle {
	font-size: var(--font-size-large);
	color: var(--color-text-light);
}

