/**
 * 固定ページ: schedule 専用スタイル
 * URL: /course/schedule
 *
 * KV: 6文字。769px以上は1行、768px以下は4+2（5文字目から改行）
 * KV 画像枠: page-institutes と同じ（1440 clamp / 768 で 160px）
 * 769〜1440px: PCレイアウト / 768px以下: コンテナ1.5rem＋縦並び（Figma SP）
 * ユーティリティ: .schedule-br-sp（768px以下のみ &lt;br&gt; 表示）
 * パンくず: page-institutes / page-introduction と同系
 */

/* ----- 基本 ----- */
.page-schedule {
	margin-top: 0;
	color: var(--color-black);
	font-family: var(--font-family-primary);
}

.page-schedule .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ----- KV（page-institutes と同じ画像枠・ブレークポイント・タイトル改行） ----- */
/* 768px以下: picture のデフォルト img = img-kv-sp.webp / 769px以上: source で img-kv.webp */
.page-schedule .schedule-kv {
	position: relative;
	width: 100%;
}

.page-schedule .schedule-kv__image {
	width: 100%;
	line-height: 0;
}

.page-schedule .schedule-kv__image picture {
	display: block;
	width: 100%;
}

.page-schedule .schedule-kv__image img {
	width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 1440px) {
	.page-schedule .schedule-kv__image {
		height: clamp(160px, 18.75vw, 270px);
		overflow: hidden;
	}

	.page-schedule .schedule-kv__image picture {
		height: 100%;
	}

	.page-schedule .schedule-kv__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

.page-schedule .schedule-kv__text {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 0 clamp(1.5rem, 4.9vw, 4.8125rem);
	box-sizing: border-box;
}

@media screen and (max-width: 768px) {
	.page-schedule .schedule-kv__text {
		padding: 0 1.5rem;
	}
}

.page-schedule .schedule-kv__title {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	color: var(--color-black);
}

/* ph2-production/normalize の .ph2-page h1 を打ち消し */
.page-schedule.ph2-page .schedule-kv .schedule-kv__title {
	margin: 0;
	font-size: var(--font-size-xl);
	line-height: 1.4;
}

.page-schedule .schedule-kv__title-inner {
	display: flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	max-width: 100%;
	flex-wrap: wrap;
	row-gap: 4px;
	height: auto;
}

.page-schedule .schedule-kv__title-inner .title-contact-break--sp,
.page-schedule .schedule-kv__title-inner .title-contact-break--tablet {
	flex: 0 0 100%;
	width: 0;
	height: 0;
	display: none;
}

/* 769px以上（PC）: KVタイトル1行 */
@media (min-width: 769px) {
	.page-schedule .schedule-kv__title-inner {
		flex-wrap: nowrap;
	}

	.page-schedule .schedule-kv__title-inner .title-contact-break--sp,
	.page-schedule .schedule-kv__title-inner .title-contact-break--tablet {
		display: none;
	}
}

/*
 * 768px以下: 4文字目のあとで改行（5文字目から2行目）
 */
@media (max-width: 768px) {
	.page-schedule .schedule-kv__title-inner {
		flex-wrap: wrap;
	}

	.page-schedule .schedule-kv__title-inner .title-contact-break--sp {
		display: none;
	}

	.page-schedule .schedule-kv__title-inner .title-contact-break--tablet {
		display: block;
	}
}

.page-schedule .schedule-kv__title-inner .title-contact-text {
	display: flex;
	align-items: center;
	line-height: 0;
}

.page-schedule .schedule-kv__title-inner .mask-text {
	width: 100%;
	height: auto;
	display: block;
}

/* 1440px〜769px：マスクSVG（page-institutes / page-program と同系） */
@media (max-width: 1440px) and (min-width: 769px) {
	.page-schedule .schedule-kv__title-inner {
		height: auto;
		width: 100%;
	}

	.page-schedule .schedule-kv__title-inner .title-contact-text {
		display: block;
		height: 100%;
		min-height: 0;
		min-width: 0;
		max-width: none;
	}

	.page-schedule .schedule-kv__title-inner .mask-text {
		height: calc(2.5rem * (0.46 + 54vw / 1440));
		width: auto;
		max-width: 100%;
		object-fit: contain;
		display: block;
	}
}

/* 769px〜1024px: マスク高さを固定（狭いPC帯・calc の後勝ち用） */
@media (min-width: 769px) and (max-width: 1024px) {
	.page-schedule .schedule-kv__title-inner {
		column-gap: 0.5rem;
		row-gap: 0.75rem;
	}

	.page-schedule .schedule-kv__title-inner .mask-text {
		height: 4rem;
		width: auto;
	}
}

@media screen and (max-width: 768px) {
	.page-schedule .schedule-kv__image {
		height: 160px;
	}

	.page-schedule .schedule-kv__title-inner {
		width: 100%;
		gap: 0.15rem;
		row-gap: 0.25rem;
	}

	.page-schedule .schedule-kv__title-inner .title-contact-text {
		flex: 0 0 auto;
		width: max-content;
	}

	.page-schedule .schedule-kv__title-inner .mask-text {
		height: 2rem;
		width: auto;
		max-width: none;
		object-fit: contain;
	}
}

/* ----- パンくず（page-institutes / page-introduction の .breadcrumb と同系） ----- */
/* ph2-production: @media (min-width: 801px) の .ph2-page nav { max-width: 1140px } を打ち消して全幅に */
.page-schedule.ph2-page .breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0 8px;
	max-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 12px 2em;
	margin-bottom: 115px;
	background-color: var(--color-gray-bg);
	font-family: var(--font-family-primary);
	font-size: var(--font-size-xs);
	line-height: var(--line-height-normal);
	font-weight: var(--font-weight-bold);
	color: var(--color-gray-dark);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.page-schedule.ph2-page .breadcrumb::-webkit-scrollbar {
	display: none;
}

.page-schedule.ph2-page .breadcrumb a,
.page-schedule.ph2-page .breadcrumb span {
	white-space: nowrap;
}

.page-schedule.ph2-page .breadcrumb a {
	color: var(--color-gray-dark);
	text-decoration: none;
}

.page-schedule.ph2-page .breadcrumb a:hover {
	text-decoration: underline;
}

.page-schedule.ph2-page .breadcrumb span {
	color: var(--color-gray-dark);
	user-select: none;
}

/* ----- コンテナと六角形見出し（introduction .intro-container と同様） ----- */
.page-schedule .schedule-container {
	max-width: 80rem;
	width: min(80rem, calc(100% - 3rem));
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 120px;
}

.page-schedule .schedule-hex-title {
	position: absolute;
	z-index: 2;
	margin: 0 auto -30px;
	display: flex;
	align-items: center;
	justify-content: center;
	left: 50%;
	transform: translateX(-50%);
}

.page-schedule .schedule-hex-title.schedule-hex-title--h2 {
	width: 488px;
	height: 70px;
	top: -37px;
}

.page-schedule .schedule-hex-title.schedule-hex-title--h3 {
	width: 586px;
	height: 52px;
	top: -27px;
}

.page-schedule .schedule-hex-title__shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	z-index: 0;
}

.page-schedule .schedule-hex-title__hex {
	fill: #fff;
	stroke: #1f1f1f;
	stroke-width: 4px;
	vector-effect: non-scaling-stroke;
	stroke-linejoin: miter;
	stroke-miterlimit: 8;
	shape-rendering: geometricPrecision;
}

.page-schedule .schedule-hex-title__text {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--color-black);
	white-space: nowrap;
}

/* SP では 2 行に分けるため、行スパンは PC ではインラインで連結表示 */
.page-schedule .schedule-hex-title__line {
	display: inline;
}

.page-schedule .schedule-hex-title.schedule-hex-title--h3 > h3.schedule-hex-title__text {
	font-size: 1.25rem;
	height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.page-schedule .schedule-mainimg {
	margin: 0 0 32px;
}

.page-schedule .schedule-mainimg img {
	width: 100%;
	height: auto;
	display: block;
}

.page-schedule .schedule-lead {
	max-width: 925px;
	margin: 0 auto 80px;
	padding: 58px 36px 36px;
	border: 4px solid #1f1f1f;
	border-radius: 8px;
	background: #fff;
	position: relative;
}

.page-schedule .schedule-lead p {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.6;
	color: #1f1f1f;
}

.page-schedule .schedule-yearly {
	display: grid;
	gap: 72px;
}

.page-schedule .schedule-yearly__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	justify-content: center;
}

.page-schedule .schedule-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	min-width: 240px;
	height: 48px;
	padding: 0 24px;
	border: 3px solid #1f1f1f;
	border-radius: 999px;
	color: #1f1f1f;
	text-decoration: none;
	transition: background 0.3s ease;
}

.page-schedule .schedule-pill:hover {
	background: #fff;
	opacity: 1; /* Ph2 の a:hover { opacity: 0.7 } を打ち消す */
}

.page-schedule .schedule-pill__label {
	display: block;
	width: 100%;
	text-align: center;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #1f1f1f;
}

.page-schedule .schedule-pill:focus-visible {
	outline: 3px solid #1f1f1f;
	outline-offset: 2px;
}

.page-schedule .schedule-pill__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
}

.page-schedule .schedule-pill__arrow {
	width: 20px;
	height: 20px;
	display: block;
	transform: rotate(90deg);
}

.page-schedule .schedule-pill__arrow--black {
	display: none;
}

.page-schedule .schedule-pill:hover .schedule-pill__arrow--white {
	display: none;
}

.page-schedule .schedule-pill:hover .schedule-pill__arrow--black {
	display: block;
}

.page-schedule .schedule-pill--first { background: #65ceff; }
.page-schedule .schedule-pill--second { background: #ffd02f; }
.page-schedule .schedule-pill--third { background: #6ddb00; }

.page-schedule .schedule-grade {
	scroll-margin-top: 140px;
	border: 4px solid #1f1f1f;
	border-radius: 10px;
	background: #fff;
	padding: 48px 36px 44px;
	color: #1f1f1f;
	position: relative;
}

.page-schedule .schedule-grade__title {
	position: absolute;
	display: inline-flex;
	width: 212px;
	height: 50px;
	padding: 0 28px;
	align-items: center;
	justify-content: center;
	top: -27px;
	left: 40px;
}

.page-schedule .schedule-grade__title-shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	z-index: 0;
}

.page-schedule .schedule-grade__title-hex {
	fill: #fff;
	stroke: #1f1f1f;
	stroke-width: 4px;
	vector-effect: non-scaling-stroke;
	stroke-linejoin: miter;
	stroke-miterlimit: 8;
	shape-rendering: geometricPrecision;
}

.page-schedule .schedule-grade__title-text {
	position: relative;
	z-index: 1;
	display: inline-block;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
}

.page-schedule .schedule-grade__rows {
	display: grid;
	gap: 12px;
}

.page-schedule .schedule-row {
	display: grid;
	grid-template-columns: 122px minmax(0, 1fr) auto;
	gap: 18px;
	align-items: stretch;
	padding: 20px;
	border: 4px solid #1f1f1f;
	border-radius: 4px;
}

.page-schedule .schedule-grade--first .schedule-row {
	background: #daf8ff;
}

.page-schedule .schedule-grade--second .schedule-row {
	background: #fff4d0;
}

.page-schedule .schedule-grade--third .schedule-row {
	background: #ecffda;
}

.page-schedule .schedule-row__month {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.6;
	color: #1f1f1f;
}

.page-schedule .schedule-row__body {
	display: flex;
	align-items: center;
	border-left: 2px solid #1f1f1f;
	padding-left: 18px;
	min-height: 29px;
}

.page-schedule .schedule-row__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-schedule .schedule-row__list li {
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.6;
	color: #1f1f1f;
}

.page-schedule .schedule-grade--third .schedule-row__list li {
	font-feature-settings: "palt";
}

.page-schedule .schedule-row__photo {
	width: 223px;
	height: 168px;
	border: 4px solid #1f1f1f;
	border-radius: 8px;
	overflow: hidden;
}

.page-schedule .schedule-row__photo img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.page-schedule .schedule-note {
	position: relative;
	max-width: 925px;
	margin: 0 auto;
	padding: 58px 36px 36px;
	border: 4px solid #1f1f1f;
	border-radius: 8px;
	background-color: #fff;
}

.page-schedule .schedule-note__title {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 340px;
	height: 60px;
	padding: 0 34px;
	left: 50%;
	transform: translateX(-50%);
	top: -32px;
}

.page-schedule .schedule-note__title-shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	z-index: 0;
}

.page-schedule .schedule-note__title-hex {
	fill: #fff;
	stroke: #1f1f1f;
	stroke-width: 4px;
	vector-effect: non-scaling-stroke;
	stroke-linejoin: miter;
	stroke-miterlimit: 8;
	shape-rendering: geometricPrecision;
}

.page-schedule .schedule-note__title-text {
	position: relative;
	z-index: 1;
	display: inline-block;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
}

.page-schedule .schedule-note p {
	margin: 0;
	text-align: center;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.6;
}

.page-schedule .schedule-research {
	position: relative;
	isolation: isolate;
	display: grid;
	gap: 88px;
	margin-top: 153px;
	color: #1f1f1f;
}

.page-schedule .schedule-research::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 60px;
	width: 100vw;
	height: calc(100% - -60px);
	transform: translateX(-50%);
	background: var(--yellow_gra, linear-gradient(98deg, #FDF24B 10.27%, #FFBF6B 101.47%));
	z-index: -1;
}

.page-schedule .schedule-research__body {
	width: 100%;
	margin: 0 auto;
	padding: 56px 36px;
	border-radius: 10px;
	border: 4px solid #1f1f1f;
	background-color: #fff;
	position: relative;
}

.page-schedule .schedule-research__title {
	position: absolute;
	display: inline-flex;
	min-width: 430px;
	height: 56px;
	padding: 0 36px;
	justify-content: center;
	align-items: center;
	left: 50%;
    transform: translateX(-50%);
	top: -30px;
}

.page-schedule .schedule-research__title-shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	z-index: 0;
}

.page-schedule .schedule-research__title-hex {
	fill: #fff;
	stroke: #1f1f1f;
	stroke-width: 4px;
	vector-effect: non-scaling-stroke;
	stroke-linejoin: miter;
	stroke-miterlimit: 8;
	shape-rendering: geometricPrecision;
}

.page-schedule .schedule-research__title-text {
	position: relative;
	z-index: 1;
	display: inline-block;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
}

.page-schedule .schedule-research__cards {
	display: grid;
	gap: 24px;
}

.page-schedule .schedule-research-card {
	display: grid;
	grid-template-columns: 1fr 432px;
	align-items: center;
	gap: 24px;
	padding: 40px;
	border: 4px solid #1f1f1f;
	border-radius: 10px;
	background: #FFF4D0;
}

.page-schedule .schedule-research-card__meta h4 {
	margin: 0 0 16px;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0;
}

.page-schedule .schedule-research-card__meta dl {
	margin: 0;
	display: grid;
	gap: 12px;
}

.page-schedule .schedule-research-card__meta dl div {
	display: grid;
	grid-template-columns: 84px 1fr;
	gap: 18px;
	align-items: center;
}

.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards {
	grid-template-rows: auto;
	row-gap: 0;
	column-gap: 18px;
	align-items: center;
}

/* 769px以上（PC）: 受賞歴行のラベル〜内容間は 18px のまま */
@media (min-width: 769px) {
	.page-schedule .schedule-research-card__meta dl div {
		gap: 18px;
	}

	.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards {
		column-gap: 18px;
		row-gap: 0;
	}
}

.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards dt {
	grid-column: 1;
	grid-row: 1;
}

.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards dd,
.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards .schedule-research-card__award-list {
	display: contents;
}

.page-schedule .schedule-research-card__award-list li {
	margin: 0;
	grid-column: 2;
}

.page-schedule .schedule-research-card__award-list li:first-child {
	grid-row: 1;
}

.page-schedule .schedule-research-card__meta dt {
	margin: 0;
	padding: 10px 0;
	line-height: 1.0;
	text-align: center;
	font-weight: 700;
	background: #fff;
	border-radius: 4px;
	font-size: 1rem;
}

.page-schedule .schedule-research-card__meta dd {
	margin: 0;
	font-size: 1rem;
	font-weight: 500;
}

/* 768px以下のみ改行（769px以上は非表示） */
.page-schedule .schedule-br-sp {
	display: none;
}

.page-schedule .schedule-research-card__image {
	margin: 0;
	border: 4px solid #1f1f1f;
	border-radius: 8px;
	overflow: hidden;
}

.page-schedule .schedule-research-card__image img {
	width: 100%;
	display: block;
	height: auto;
}

/*
 * ~1024px: Ph2 の min-width:1000px を打ち消し（横スクロール防止）
 * 768px以下: 縦並び（Figma SP: 4464:7416 / 3521:35150 / 4053:7426）
 */
@media (max-width: 1024px) {
	.page-schedule.ph2-page {
		min-width: 0;
	}
}

@media (max-width: 768px) {
	.page-schedule.ph2-page .breadcrumb {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	.page-schedule .schedule-container {
		max-width: none;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 1.5rem;
		padding-right: 1.5rem;
		padding-bottom: 64px;
		box-sizing: border-box;
	}

	.page-schedule .schedule-lead,
	.page-schedule .schedule-grade,
	.page-schedule .schedule-note,
	.page-schedule .schedule-research__body {
		max-width: none;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	.page-schedule .schedule-research__cards {
		max-width: none;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	.page-schedule .schedule-research-card {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
		align-items: stretch;
	}

	.page-schedule .schedule-yearly {
		gap: 57px;
	}

	.page-schedule .schedule-yearly__filters {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		gap: 16px;
	}

	.page-schedule .schedule-pill {
		width: 240px;
		max-width: 100%;
		min-width: 0;
		height: 48px;
		padding: 0 40px 0 20px;
		border-width: 2px;
		box-sizing: border-box;
	}

	.page-schedule .schedule-grade {
		scroll-margin-top: 110px;
		padding: 36px 22px 22px;
		border-width: 2px;
		border-radius: 10px;
		background: #fff;
	}

	.page-schedule .schedule-grade__title {
		position: absolute;
		left: 50%;
		transform: translate(-50%, -42%);
		top: -4px;
		width: 148px;
		height: auto;
		min-height: 36px;
		margin: 0;
		padding: 0 16px;
	}

	.page-schedule .schedule-grade__title-hex {
		stroke-width: 2px;
	}

	.page-schedule .schedule-grade__rows {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.page-schedule .schedule-row {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 18px;
		border-width: 2px;
		border-radius: 4px;
	}

	.page-schedule .schedule-row__body {
		border-left: none;
	}

	.page-schedule .schedule-row__photo {
		width: 100%;
		max-width: 100%;
	}

	.page-schedule.ph2-page .breadcrumb {
		margin-bottom: 77px;
	}

	/* --- Figma 4464:7416 リード --- */
	.page-schedule .schedule-lead {
		width: 100%;
		margin-bottom: 40px;
		padding: 53px 22px 22px;
		border-width: 2px;
		border-radius: 8px;
		background: rgba(255, 255, 255, 0.9);
	}

	.page-schedule .schedule-lead p {
		font-size: 16px;
		font-weight: 700;
		line-height: 1.6;
		color: #1e2939;
	}

	.page-schedule .schedule-lead .schedule-hex-title.schedule-hex-title--h2 {
		width: min(296px, calc(100% - 8px));
		height: auto;
		min-height: 75px;
		top: -34px;
		margin-bottom: -28px;
	}

	.page-schedule .schedule-lead .schedule-hex-title__hex {
		stroke-width: 2px;
	}

	.page-schedule .schedule-lead .schedule-hex-title__text {
		white-space: normal;
		font-size: 20px;
		line-height: 28px;
		letter-spacing: -0.4px;
		text-align: center;
	}

	.page-schedule .schedule-lead .schedule-hex-title__line {
		display: block;
	}

	.page-schedule .schedule-pill__label {
		font-size: 16px;
		letter-spacing: 0.06em;
	}

	.page-schedule .schedule-pill__icon {
		width: 20px;
		height: 20px;
		right: 14px;
	}

	.page-schedule .schedule-pill__arrow {
		width: 20px;
		height: 20px;
	}

	/*
	 * 学年カード＋月行: Figma node 3521:35150（1学年・SP）
	 * 外枠 327×白・枠2px・角10px / 内側 24px・上54px / 月カード縦積み gap12px
	 * 月行: 縦flex gap12 / 月16px #1f1f1f / 1px区切り / 本文16px #1e2939・項目間8px / 写真258px・枠2px・角約7px
	 */
	.page-schedule .schedule-grade__title-text {
		font-size: 14px;
		letter-spacing: 0.05em;
	}

	.page-schedule .schedule-row__month {
		width: 100%;
		justify-content: flex-start;
		align-items: flex-start;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.4;
		color: #1f1f1f;
		flex-direction: column;
	}

	.page-schedule .schedule-row__month::after {
		content: "";
		display: block;
		width: 100%;
		height: 1px;
		background: #1f1f1f;
		margin-top: 9px;
	}

	.page-schedule .schedule-row__body:not(:has(li)) {
		display: none;
	}

	.page-schedule .schedule-row__body {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		border-left: none;
		padding: 12px 0 0;
		min-height: 0;
	}

	.page-schedule .schedule-row__list {
		display: flex;
		flex-direction: column;
		gap: 8px;
		width: 100%;
	}

	.page-schedule .schedule-row__list li {
		font-size: 16px;
		font-weight: 700;
		line-height: 1.2;
	}

	.page-schedule .schedule-row__photo {
		width: 100%;
		max-width: 100%;
		height: 258px;
		margin-top: 12px;
		border-width: 2px;
		border-radius: 7px;
		aspect-ratio: auto;
	}

	.page-schedule .schedule-row__photo img {
		object-fit: cover;
	}

	/*
	 * 学会発表: Figma node 4053:7426（SP）
	 * リード 327px・枠2px・上47px / 本文16px #1e2939
	 * 本体 327px・枠2px・角10px / カード gap14px・279px・#fff4d0・padding20px
	 * カード内: h4 18px / 行 flex gap8 / ラベル 78×14px / 画像 aspect 432/293・枠2px
	 */
	.page-schedule .schedule-note {
		padding: 45px 22px 22px;
		border-width: 2px;
		border-radius: 8px;
		background: #fff;
	}

	.page-schedule .schedule-note .schedule-hex-title.schedule-hex-title--h2 {
		width: min(296px, calc(100% - 8px));
		height: auto;
		min-height: 59px;
		top: -29px;
		margin-bottom: -22px;
	}

	.page-schedule .schedule-note .schedule-hex-title__hex {
		stroke-width: 2px;
	}

	.page-schedule .schedule-note .schedule-hex-title__text {
		font-size: 20px;
		line-height: normal;
		white-space: nowrap;
	}

	.page-schedule .schedule-note p {
		font-size: 16px;
		font-weight: 700;
		line-height: normal;
		color: #1e2939;
		text-align: left;
	}

	.page-schedule .schedule-research {
		gap: 64px;
		margin-top: 93px;
		padding: 0;
	}

	.page-schedule .schedule-research::before {
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		top: 20px;
		height: calc(100% - -60px);
		background: linear-gradient(92.22deg, #fdf24b 10.27%, #ffbf6b 101.47%);
	}

	.page-schedule .schedule-research__body {
		position: relative;
		padding: 43px 24px 24px;
		border-width: 2px;
		border-radius: 10px;
		background: #fff;
	}

	.page-schedule .schedule-research__body .schedule-hex-title.schedule-hex-title--h3 {
		width: min(283px, calc(100% - 8px));
		height: auto;
		min-height: 50px;
		top: -25px;
		margin-bottom: -16px;
	}

	.page-schedule .schedule-research__body .schedule-hex-title__hex {
		stroke-width: 2px;
	}

	.page-schedule .schedule-research__body .schedule-hex-title.schedule-hex-title--h3 > h3.schedule-hex-title__text {
		display: block;
		height: auto;
		min-height: 33px;
		padding: 4px 12px;
		font-size: 14px;
		line-height: normal;
		text-align: center;
		white-space: normal;
		letter-spacing: 0;
	}

	.page-schedule .schedule-research__body .schedule-hex-title__line {
		display: block;
	}

	.page-schedule .schedule-research__cards {
		gap: 14px;
	}

	.page-schedule .schedule-research-card {
		gap: 24px;
		padding: 18px;
		border-width: 2px;
		border-radius: 10px;
	}

	.page-schedule .schedule-research-card__meta {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	.page-schedule .schedule-research-card__meta h4 {
		margin: 0;
		font-size: 18px;
		line-height: normal;
	}

	.page-schedule .schedule-research-card__meta dl {
		gap: 8px;
	}

	.page-schedule .schedule-research-card__meta dl div {
		display: flex;
		gap: 8px;
		align-items: center;
	}

	/* 受賞歴: PC同様グリッド（1行目のみ見出しと中央揃え・2行目以降は右列） */
	.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		column-gap: 8px;
	}

	.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards dt {
		grid-column: 1;
		grid-row: 1;
		align-self: center;
	}

	.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards dd,
	.page-schedule .schedule-research-card__meta dl .schedule-research-card__row--awards .schedule-research-card__award-list {
		display: contents;
	}

	.page-schedule .schedule-research-card__award-list {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.page-schedule .schedule-research-card__award-list li {
		grid-column: 2;
		font-size: 14px;
		font-weight: 500;
		line-height: 24px;
	}

	.page-schedule .schedule-research-card__award-list li:first-child {
		grid-row: 1;
	}

	.page-schedule .schedule-research-card__meta dt {
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: 68px;
		height: 32px;
		padding: 0;
		font-size: 14px;
		line-height: 1;
	}

	.page-schedule .schedule-research-card__meta dd {
		flex: 1;
		min-width: 0;
		font-size: 14px;
		font-weight: 500;
		line-height: 20px;
	}

	.page-schedule .schedule-br-sp {
		display: block;
	}

	.page-schedule .schedule-research-card__image {
		width: 100%;
		max-width: 100%;
		height: 258px;
		border-width: 2px;
		border-radius: 4px;
		overflow: hidden;
	}

	.page-schedule .schedule-research-card__image img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}
}

/* 460px以下: 年間予定・学会発表の写真高さ 168px（461px〜768px は 258px） */
@media (max-width: 460px) {
	.page-schedule .schedule-row__photo,
	.page-schedule .schedule-research-card__image {
		height: 168px;
	}
}

/* --- fadeUp --- */
.page-schedule .fadeUp {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.page-schedule .fadeUp.is-visible {
	opacity: 1;
	transform: translateY(0);
}
