:root {
	--program-ink: #264a43;
	--program-ivory: #fff7f3;
	--program-blush: #fde9e5;
	--program-coral: #f38091;
	--program-mint: #bfe6d2;
	--program-aqua: #a8d8f2;
	--program-line: rgba(38, 74, 67, 0.16);
}

.program-page {
	overflow: clip;
	background: var(--program-ivory);
	color: var(--program-ink);
}

html:has(.program-page) { scroll-behavior: smooth; }

.program-container {
	width: min(1120px, calc(100% - 48px));
	margin-inline: auto;
}

.program-container--narrow {
	width: min(900px, calc(100% - 48px));
}

.program-hero {
	padding: clamp(72px, 10vw, 128px) 0 clamp(56px, 7vw, 88px);
	background: linear-gradient(135deg, var(--program-ivory), var(--program-blush));
	text-align: center;
}

.program-hero h1,
.program-heading h2,
.program-detail h2,
.program-guide-cta h2 {
	margin: 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.04em;
}

.program-hero h1 { font-size: clamp(2.2rem, 5vw, 4.3rem); }
.program-heading h2,
.program-detail h2,
.program-guide-cta h2 { font-size: clamp(1.75rem, 3vw, 2.7rem); }

.program-eyebrow,
.program-section__label:not(.school-intro-label) {
	margin: 0 0 14px;
	color: var(--program-coral);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.22em;
}

.program-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 34px;
	font-size: 0.76rem;
}

.program-breadcrumb a { color: inherit; text-decoration: none; }
.program-breadcrumb a:hover { text-decoration: underline; }

/*
 * Page Hero concept 01 — /program/ only.
 * Remove the modifier class and this block to restore the original hero.
 */
.program-hero--concept-01 {
	position: relative;
	isolation: isolate;
	min-height: clamp(390px, 48vw, 560px);
	display: grid;
	align-items: center;
	overflow: hidden;
	padding: clamp(64px, 8vw, 96px) 0;
	background:
		radial-gradient(circle at 46% 52%, rgba(255, 255, 255, 0.84) 0 15%, rgba(255, 255, 255, 0) 48%),
		linear-gradient(145deg, #fff7f3 8%, #fdf1ec 58%, #fff7f3 100%);
}

.program-hero--concept-01::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: auto -12% -38% 12%;
	height: 70%;
	border-radius: 54% 46% 8% 0 / 74% 61% 16% 0;
	background: radial-gradient(ellipse at 48% 26%, rgba(255, 255, 255, 0.6) 0 22%, rgba(255, 255, 255, 0.38) 48%, rgba(255, 255, 255, 0.12) 68%, rgba(255, 255, 255, 0) 84%);
	filter: blur(clamp(18px, 2.4vw, 34px));
	transform: translate3d(0, 0, 0) rotate(-2deg) scale(1);
	transform-origin: 58% 72%;
	will-change: transform, opacity;
	animation: programHeroWhiteBreathe 19s -4s ease-in-out infinite alternate;
}

.program-hero__life {
	position: absolute;
	z-index: -2;
	inset: 0;
	pointer-events: none;
}

.program-hero__shape {
	position: absolute;
	display: block;
	filter: blur(clamp(16px, 2vw, 30px));
	opacity: 0;
	will-change: transform, opacity;
}

.program-hero__shape--coral {
	top: -31%;
	right: -8%;
	width: clamp(310px, 40vw, 620px);
	aspect-ratio: 1.18;
	border-radius: 38% 62% 70% 30% / 55% 36% 64% 45%;
	background: radial-gradient(ellipse at 38% 58%, rgba(243, 128, 145, 0.48) 0 18%, rgba(247, 228, 222, 0.34) 48%, rgba(247, 228, 222, 0.08) 68%, rgba(247, 228, 222, 0) 82%);
	opacity: 1;
	animation: programHeroBreatheCoral 16s ease-in-out infinite alternate;
}

.program-hero__shape--mint {
	left: -13%;
	bottom: -42%;
	width: clamp(360px, 48vw, 720px);
	aspect-ratio: 1.36;
	border-radius: 67% 33% 42% 58% / 48% 68% 32% 52%;
	background: radial-gradient(ellipse at 62% 36%, rgba(191, 230, 210, 0.5) 0 16%, rgba(155, 207, 218, 0.2) 48%, rgba(191, 230, 210, 0.07) 69%, rgba(191, 230, 210, 0) 84%);
	opacity: 1;
	animation: programHeroBreatheMint 18s -5s ease-in-out infinite alternate;
}

.program-hero__shape--apricot {
	right: 21%;
	bottom: -30%;
	width: clamp(180px, 25vw, 360px);
	aspect-ratio: 1;
	border-radius: 47% 53% 36% 64% / 62% 42% 58% 38%;
	background: radial-gradient(ellipse at 45% 45%, rgba(255, 215, 166, 0.42) 0 20%, rgba(255, 215, 166, 0.2) 48%, rgba(255, 215, 166, 0.06) 66%, rgba(255, 215, 166, 0) 80%);
	opacity: 1;
	filter: blur(clamp(18px, 2.4vw, 34px));
	animation: programHeroBreatheApricot 24s -10s ease-in-out infinite alternate;
}

.program-hero__wave {
	position: absolute;
	top: 3%;
	left: -4%;
	width: 108%;
	height: 88%;
	transform: translate3d(0, 0, 0) scale(1.02, 1);
	transform-origin: center;
	opacity: 1;
	will-change: transform, opacity;
	animation: programHeroWaveDrift 24s -5s ease-in-out infinite alternate;
}

.program-hero__wave svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.program-hero__wave path {
	fill: none;
	stroke: rgba(38, 74, 67, 0.115);
	stroke-width: 1.2;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
	filter: blur(.28px);
}

.program-hero__content {
	position: relative;
	z-index: 1;
}

.program-hero--concept-01 .program-breadcrumb {
	position: absolute;
	top: clamp(-74px, -6vw, -48px);
	left: 0;
	justify-content: flex-start;
	margin: 0;
	opacity: 0;
	animation: programHeroTextIn 1s 0.12s ease-out forwards;
}

.program-hero__title-group {
	position: relative;
	display: grid;
	justify-items: start;
	width: min(760px, 100%);
	padding: 38px 0 32px;
	text-align: left;
	opacity: 0;
	transform: translateY(14px);
	animation: programHeroTextIn 1.25s 0.25s cubic-bezier(.22, .75, .25, 1) forwards;
}

.program-hero--concept-01 .program-eyebrow,
.program-hero--concept-01 h1 {
	position: relative;
	z-index: 1;
}

.program-hero--concept-01 .program-eyebrow {
	margin-bottom: 17px;
	color: #264a43;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
}

.program-hero--concept-01 h1 {
	font-size: clamp(2.55rem, 5vw, 4.5rem);
	line-height: 1.35;
}

@keyframes programHeroBreatheCoral {
	0% { transform: scale(.94, .965) translate3d(1.4%, -2.8%, 0) rotate(-1.2deg); opacity: .69; }
	48% { transform: scale(1.09, 1.06) translate3d(-4.1%, 3.8%, 0) rotate(1.7deg); opacity: 1; }
	100% { transform: scale(.975, 1.03) translate3d(3.2%, 4.8%, 0) rotate(-.9deg); opacity: .77; }
}

@keyframes programHeroBreatheMint {
	0% { transform: scale(.945, .975) translate3d(-2.8%, 3.6%, 0) rotate(1deg); opacity: .72; }
	54% { transform: scale(1.085, 1.055) translate3d(4.8%, -3.8%, 0) rotate(-1.8deg); opacity: 1; }
	100% { transform: scale(1.025, .955) translate3d(5.4%, 2%, 0) rotate(.8deg); opacity: .79; }
}

@keyframes programHeroBreatheApricot {
	0% { transform: scale(.93, .97) translate3d(2%, 2%, 0); opacity: .62; }
	46% { transform: scale(1.09, 1.045) translate3d(-4%, -3.5%, 0); opacity: .9; }
	100% { transform: scale(.98, 1.025) translate3d(-1%, 3.2%, 0); opacity: .68; }
}

@keyframes programHeroWhiteBreathe {
	0% { transform: translate3d(-2.4%, 2.8%, 0) rotate(-3.2deg) scale(.945, .93); opacity: .56; }
	50% { transform: translate3d(3%, -2.8%, 0) rotate(-.6deg) scale(1.075, 1.09); opacity: .92; }
	100% { transform: translate3d(.7%, 2%, 0) rotate(-2.4deg) scale(1.015, .975); opacity: .66; }
}

@keyframes programHeroWaveDrift {
	0% { transform: translate3d(-3.2%, 5%, 0) scale(1.055, .875) skewY(-.45deg); opacity: .56; }
	50% { transform: translate3d(3%, -5.3%, 0) scale(.968, 1.14) skewY(.48deg); opacity: .96; }
	100% { transform: translate3d(-.5%, 1.8%, 0) scale(1.032, .956) skewY(-.14deg); opacity: .66; }
}

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

.program-section { padding: clamp(78px, 10vw, 132px) 0; }
.program-guide-anchor-nav { overflow: clip; border-top: 1px solid rgba(38, 74, 67, .12); border-bottom: 1px solid rgba(38, 74, 67, .14); background: rgba(255, 255, 255, .94); }
.program-guide-anchor-nav ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-block: 0; padding: 0; list-style: none; }
.program-guide-anchor-nav li + li { border-left: 1px solid rgba(38, 74, 67, .12); }
.program-guide-anchor-nav a { position: relative; display: flex; min-height: 86px; align-items: center; justify-content: center; gap: 12px; padding: 16px 12px; color: var(--program-ink); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: clamp(.82rem, 1.2vw, .96rem); font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; transition: color .25s ease, background-color .25s ease; }
.program-guide-anchor-nav a > span { position: relative; z-index: 1; }
.program-guide-anchor-nav__number { margin-right: .55em; font-size: .86em; letter-spacing: .08em; }
.program-guide-anchor-nav li:first-child a::before,
.program-guide-anchor-nav li:last-child a::after { position: absolute; z-index: 0; top: 0; bottom: 0; width: 50vw; background: color-mix(in srgb, var(--color-soft-bloom) 42%, transparent); content: ""; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.program-guide-anchor-nav li:first-child a::before { right: 100%; }
.program-guide-anchor-nav li:last-child a::after { left: 100%; }
.program-guide-anchor-nav li:first-child a:hover::before,
.program-guide-anchor-nav li:first-child a:focus-visible::before,
.program-guide-anchor-nav li:last-child a:hover::after,
.program-guide-anchor-nav li:last-child a:focus-visible::after { opacity: 1; }
.program-guide-anchor-nav__arrow { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 1px solid rgba(38, 74, 67, .22); border-radius: 50%; color: color-mix(in srgb, var(--program-coral) 68%, var(--program-ink)); font-size: .75rem; line-height: 1; transition: border-color .25s ease, transform .25s ease; }
.program-guide-anchor-nav a:hover,
.program-guide-anchor-nav a:focus-visible { color: color-mix(in srgb, var(--program-coral) 54%, var(--program-ink)); background: color-mix(in srgb, var(--color-soft-bloom) 42%, transparent); outline: 0; }
.program-guide-anchor-nav a:focus-visible { box-shadow: inset 0 0 0 2px rgba(38, 74, 67, .46); }
.program-guide-anchor-nav a:hover .program-guide-anchor-nav__arrow,
.program-guide-anchor-nav a:focus-visible .program-guide-anchor-nav__arrow { border-color: color-mix(in srgb, var(--color-main-coral) 62%, transparent); transform: translateY(3px); }
#guide-period,
#guide-classes,
#guide-access,
#guide-flow,
#guide-faq { scroll-margin-top: 96px; }
.program-heading { max-width: 760px; margin: 0 auto clamp(42px, 6vw, 70px); text-align: center; }
.program-guide .program-heading > .program-section__label,
.program-guide .program-access__content > .program-section__label { margin-bottom: 12px; font-size: .72rem; line-height: 1.5; }
.program-guide .program-section__label > span { margin-right: .55em; }
.program-heading > p:last-child { margin: 20px 0 0; line-height: 2; }

.program-goal { background: #fff; }
.program-goal__grid { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr); gap: clamp(42px, 8vw, 96px); align-items: center; }
.program-goal__content > p:not(.program-section__label) { margin: 28px 0 0; }
.program-goal__media { margin: 0; }
.program-goal__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

#program-curriculum,
#program-consulting,
#program-community { scroll-margin-top: 96px; }

.program-method {
	background: #f6f2ee;
}
.program-method__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.6vw, 30px); padding-top: 34px; }
.program-method__item { position: relative; display: flex; min-height: 276px; flex-direction: column; align-items: center; justify-content: center; padding: clamp(48px, 4.5vw, 56px) clamp(28px, 3vw, 36px) clamp(30px, 3.5vw, 40px); overflow: visible; border: 1px solid rgba(38, 74, 67, .11); border-radius: 24px; background: #fff; box-shadow: 0 12px 28px rgba(38, 74, 67, .055); color: var(--program-ink); cursor: pointer; text-align: center; text-decoration: none; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.program-method__item:hover,
.program-method__item:focus-visible { border-color: color-mix(in srgb, var(--program-card-accent) 48%, transparent); box-shadow: 0 18px 38px rgba(38, 74, 67, .11); outline: 2px solid color-mix(in srgb, var(--program-card-accent) 48%, transparent); outline-offset: 4px; transform: translateY(-4px) scale(1.01); }
.program-method__item--curriculum { --program-card-accent: #f38091; --program-card-label: #fde9e5; --program-card-pale: rgba(243, 128, 145, 0.2); }
.program-method__item--consulting { --program-card-accent: #ffd7a6; --program-card-label: #fff0dc; --program-card-pale: rgba(255, 215, 166, 0.24); }
.program-method__item--community { --program-card-accent: #bfe6d2; --program-card-label: #e7f5ee; --program-card-pale: rgba(191, 230, 210, 0.25); }
.program-method__visual { display: grid; width: 112px; height: 112px; flex: 0 0 112px; place-items: center; margin: 0; background: transparent; }
.program-method__visual svg { width: 78px; height: 60px; fill: none; stroke: color-mix(in srgb, var(--program-card-accent) 72%, var(--program-ink)); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; transition: transform .4s ease; }
.program-method__visual img { display: block; width: 112px; height: 112px; max-width: none; object-fit: contain; transition: transform .4s ease; }
.program-method__item:hover .program-method__visual img,
.program-method__item:focus-visible .program-method__visual img { transform: scale(1.04) translateY(-1px); }
.program-method__item:hover .program-method__visual svg,
.program-method__item:focus-visible .program-method__visual svg { transform: scale(1.04) translateY(-1px); }
.program-method__copy { display: block; margin-top: 22px; }
.program-method__copy strong { position: absolute; top: 0; left: 50%; min-width: 178px; margin: 0; padding: 11px 24px; border-radius: 14px; background: var(--program-card-label); color: #314743; font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif; font-size: 1.05rem; font-weight: 600; line-height: 1.45; letter-spacing: .04em; white-space: nowrap; transform: translate(-50%, -50%); }
.program-method__copy > span { display: block; color: #617571; font-size: .9rem; line-height: 1.85; }

.program-chapter__number { display: inline-block; margin: 0 0 4px; color: rgba(243, 128, 145, 0.9); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2.7rem, 5vw, 4.6rem); font-weight: 500; line-height: 1; }
.program-chapter__role { margin: 0 0 18px; font-size: .86rem; font-weight: 700; letter-spacing: .14em; }

.program-syllabus {
	background:
		radial-gradient(ellipse at 18% 26%, rgba(247, 228, 222, .72), transparent 46%),
		radial-gradient(ellipse at 84% 48%, rgba(243, 128, 145, .14), transparent 42%),
		linear-gradient(180deg, #fff7f3 0%, #fdf5f1 58%, #fdf5f1 100%);
}
.program-feature { display: grid; grid-template-columns: minmax(220px, .62fr) minmax(260px, .9fr) minmax(300px, 1.12fr); gap: clamp(30px, 5vw, 64px); align-items: center; }
.program-feature__heading { align-self: stretch; padding-top: 20px; border-top: 1px solid rgba(38, 74, 67, 0.2); }
.program-feature__number { margin: 0 0 8px; color: var(--program-feature-accent, var(--program-coral)); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(4rem, 7.5vw, 6.8rem); font-weight: 500; line-height: .9; opacity: .88; }
.program-feature__role { margin: 0 0 30px; font-size: .86rem; font-weight: 700; letter-spacing: .15em; }
.program-feature__heading h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.65rem, 2.45vw, 2.12rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; white-space: nowrap; }
.program-feature__copy { line-height: 2; }
.program-feature__copy p { margin: 0; }
.program-feature__copy p + p { margin-top: 18px; }
.program-feature__note { display: inline-block; margin-top: 28px !important; padding: 8px 14px; border-radius: 999px; background: var(--program-feature-pale, rgba(243, 128, 145, .15)); color: var(--program-ink); font-size: .78rem; font-weight: 700; line-height: 1.5; }
.program-feature__media { position: relative; margin: 0; }
.program-feature__media > a { display: block; border-radius: 20px; }
.program-feature__media > a:focus-visible { outline: 2px solid var(--program-ink); outline-offset: 5px; }
.program-feature__media img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 20px; object-fit: cover; box-shadow: 0 18px 42px rgba(38, 74, 67, 0.1); }
.program-feature__media figcaption { margin-top: 12px; color: rgba(38, 74, 67, .72); font-size: .78rem; line-height: 1.6; text-align: center; }
.program-feature__media--video img { aspect-ratio: 3 / 2; }
.program-feature__play { position: absolute; top: 50%; left: 50%; display: grid; width: 62px; aspect-ratio: 1; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .9); box-shadow: 0 8px 24px rgba(38, 74, 67, .16); color: var(--program-coral); transform: translate(-50%, -63%); }
.program-feature__media--screen img { padding: 8px; background: #fff; object-fit: contain; }
.program-feature--curriculum { --program-feature-accent: #c66f68; --program-feature-pale: rgba(243, 128, 145, .16); margin-bottom: clamp(86px, 11vw, 138px); }
.program-chapter-intro { --program-chapter-accent: #c66f68; --program-chapter-pale: rgba(243, 128, 145, .22); display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(380px, .96fr); gap: clamp(48px, 7vw, 88px); align-items: center; }
.program-chapter-intro--consulting { --program-chapter-accent: #ad743d; --program-chapter-pale: rgba(255, 215, 166, .3); }
.program-chapter-intro--community { --program-chapter-accent: #568a76; --program-chapter-pale: rgba(191, 230, 210, .34); }
.program-chapter-intro__visual { display: grid; gap: 16px; align-items: start; }
.program-chapter-intro__media { position: relative; margin: 0; }
.program-video-trigger { position: relative; display: block; width: 100%; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 24px; background: transparent; color: inherit; cursor: pointer; font: inherit; }
.program-video-trigger:focus-visible { outline: 2px solid var(--program-ink); outline-offset: 5px; }
.program-chapter-intro__media img { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 24px; object-fit: cover; object-position: center; box-shadow: 0 20px 48px rgba(38, 74, 67, .11); }
.program-chapter-intro__media--screen img { padding: 10px; background: #fff; object-fit: contain; }
.program-chapter-intro__media figcaption { margin-top: 12px; color: rgba(38, 74, 67, .72); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: .78rem; line-height: 1.6; text-align: center; }
.program-chapter-intro__play { position: absolute; top: 50%; left: 50%; display: grid; width: 62px; aspect-ratio: 1; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .9); box-shadow: 0 8px 24px rgba(38, 74, 67, .16); color: var(--program-chapter-accent); transform: translate(-50%, -50%); }
.program-video-trigger .program-chapter-intro__play { transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease; }
.program-video-trigger:hover .program-chapter-intro__play,
.program-video-trigger:focus-visible .program-chapter-intro__play { background: #fff; box-shadow: 0 10px 26px rgba(38, 74, 67, .2); transform: translate(-50%, -50%) scale(1.06); }
.program-video-modal { position: fixed; z-index: 10000; inset: 0; display: grid; place-items: center; padding: clamp(24px, 5vw, 64px); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; }
.program-video-modal[hidden] { display: none; }
.program-video-modal.is-open { opacity: 1; visibility: visible; }
.program-video-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 35, 32, .72); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.program-video-modal__dialog { position: relative; z-index: 1; width: min(960px, 100%); }
.program-video-modal__frame { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #111; box-shadow: 0 24px 70px rgba(0, 0, 0, .3); }
.program-video-modal__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.program-video-modal__close { position: absolute; z-index: 2; top: -52px; right: 0; display: grid; width: 44px; height: 44px; place-items: center; margin: 0; padding: 0; border: 1px solid rgba(255, 255, 255, .58); border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; font-family: Arial, sans-serif; font-size: 1.7rem; font-weight: 300; line-height: 1; transition: background-color .25s ease, transform .25s ease; }
.program-video-modal__close:hover,
.program-video-modal__close:focus-visible { background: rgba(255, 255, 255, .24); outline: 2px solid #fff; outline-offset: 3px; transform: scale(1.04); }
body.program-video-modal-open { overflow: hidden; }
.program-chapter-intro__content { padding-top: 22px; border-top: 1px solid var(--program-chapter-pale); }
.program-chapter-intro__label { display: inline-flex; align-items: center; gap: .8em; width: fit-content; margin: 0 0 12px; padding: 7px 13px; border-radius: 9px; background: var(--program-chapter-pale); color: var(--program-chapter-accent); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: .78rem; font-weight: 700; line-height: 1; letter-spacing: .1em; white-space: nowrap; }
.program-chapter-intro__content h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.9rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; white-space: nowrap; }
.program-chapter-intro__copy { max-width: 520px; margin-top: clamp(28px, 4vw, 44px); color: var(--program-ink); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: 1rem; line-height: 2; }
.program-chapter-intro__copy p { margin: 0; }
.program-chapter-intro__copy p + p { margin-top: 18px; }
.program-syllabus__intro { margin: clamp(76px, 9vw, 112px) 0 30px; font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; line-height: 1.8; text-align: center; }
.program-syllabus__intro p { margin: 0; }
.program-syllabus__intro p + p { margin-top: 7px; }
.program-syllabus__intro-lead { font-weight: 700; }
.program-syllabus__legacy { margin-top: clamp(64px, 8vw, 88px); }
.program-syllabus__legacy .bl_faq { display: grid; gap: 20px; margin: 0; }
.program-syllabus__legacy .bl_faq_item { overflow: hidden; border: 0; border-radius: 0; background: transparent; }
.program-syllabus__legacy .bl_faq_q { position: relative; display: grid; grid-template-columns: 35% minmax(0, 1fr) auto; align-items: center; gap: 0; min-height: 80px; margin: 0; padding: 0 28px 0 0; border: 1px solid rgba(38, 74, 67, 0.18); background: rgba(255, 255, 255, 0.96); cursor: pointer; }
.program-syllabus__legacy .bl_faq_q::after { content: ""; width: 13px; height: 13px; margin: 0 4px; border-right: 2px solid rgba(38, 74, 67, 0.5); border-bottom: 2px solid rgba(38, 74, 67, 0.5); transform: translateY(-3px) rotate(45deg); transition: transform .3s ease, border-color .3s ease; }
.program-syllabus__legacy .bl_faq_q:hover::after { border-color: var(--program-ink); }
.program-syllabus__legacy .bl_faq_q[role="button"]:focus-visible { outline: 2px solid var(--program-coral); outline-offset: 3px; }
.program-syllabus__legacy .bl_faq_item.is-open .bl_faq_q::after { transform: translateY(4px) rotate(225deg); }
.program-syllabus__legacy .bl_faq_icn { align-self: stretch; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; min-height: 78px; margin: -1px 0 -1px -1px; padding: 0 30px 0 8px; overflow: hidden; }
.program-syllabus__legacy .bl_faq_icn::after { color: #fff; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.28rem, 2.1vw, 1.72rem); font-weight: 500; letter-spacing: .08em; line-height: 1; text-shadow: 0 1px 2px rgba(38, 74, 67, 0.08); white-space: nowrap; }
.program-syllabus__legacy .bl_faq_item:nth-child(1) .bl_faq_icn::after { content: "国語"; }
.program-syllabus__legacy .bl_faq_item:nth-child(2) .bl_faq_icn::after { content: "数学"; }
.program-syllabus__legacy .bl_faq_item:nth-child(3) .bl_faq_icn::after { content: "理科"; }
.program-syllabus__legacy .bl_faq_item:nth-child(4) .bl_faq_icn::after { content: "社会"; }
.program-syllabus__legacy .bl_faq_item:nth-child(5) .bl_faq_icn::after { content: "英語"; }
.program-syllabus__legacy .bl_faq_item:nth-child(1) .bl_faq_icn { background: #dfa0a5; }
.program-syllabus__legacy .bl_faq_item:nth-child(2) .bl_faq_icn { background: #a8d8f2; }
.program-syllabus__legacy .bl_faq_item:nth-child(3) .bl_faq_icn { background: #bfe6d2; }
.program-syllabus__legacy .bl_faq_item:nth-child(4) .bl_faq_icn { background: #ffd7a6; }
.program-syllabus__legacy .bl_faq_item:nth-child(5) .bl_faq_icn { background: #d7c9ea; }
.program-syllabus__legacy .bl_faq_item:nth-child(1) { --syllabus-accent-text: #a45f69; --syllabus-phase-bg: #fbedef; }
.program-syllabus__legacy .bl_faq_item:nth-child(2) { --syllabus-accent-text: #4f8b98; --syllabus-phase-bg: #edf8fa; }
.program-syllabus__legacy .bl_faq_item:nth-child(3) { --syllabus-accent-text: #568a76; --syllabus-phase-bg: #eff8f4; }
.program-syllabus__legacy .bl_faq_item:nth-child(4) { --syllabus-accent-text: #ad743d; --syllabus-phase-bg: #fff5e9; }
.program-syllabus__legacy .bl_faq_item:nth-child(5) { --syllabus-accent-text: #776e91; --syllabus-phase-bg: #f5f2f9; }
.program-syllabus__legacy .bl_faq_icn img { display: block; width: 178px; height: 82px; object-fit: contain; transform-origin: center; }
.program-syllabus__legacy .bl_faq_item:nth-child(1) .bl_faq_icn img { transform: translate(-8px, 3px) scale(1.3); }
.program-syllabus__legacy .bl_faq_item:nth-child(2) .bl_faq_icn img { transform: translate(-9px, 2px) scale(1.28); }
.program-syllabus__legacy .bl_faq_item:nth-child(3) .bl_faq_icn img { transform: translate(-5px, 3px) scale(1.25); }
.program-syllabus__legacy .bl_faq_item:nth-child(4) .bl_faq_icn img { transform: translate(-7px, 1px) rotate(-5deg) scale(1.22); }
.program-syllabus__legacy .bl_faq_item:nth-child(5) .bl_faq_icn img { transform: translate(-9px, 3px) scale(1.3); }
.program-syllabus__legacy .bl_faq_q_txt { margin: 0; padding-left: clamp(28px, 4vw, 52px); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.08rem, 1.55vw, 1.34rem); line-height: 1.45; }
.program-syllabus__legacy .bl_faq_a { display: none; margin: 0; padding: 0; border-right: 1px solid rgba(38, 74, 67, 0.18); border-bottom: 1px solid rgba(38, 74, 67, 0.18); border-left: 1px solid rgba(38, 74, 67, 0.18); background: #fff; }
.program-syllabus__legacy .bl_faq_item.is-open .bl_faq_a { display: block; }
.program-syllabus__legacy .bl_faq_a_body { padding: 32px clamp(30px, 5vw, 56px) 38px; border-radius: 0; background: #fff; color: var(--program-ink); font-size: .9rem; line-height: 1.85; }
.program-syllabus__legacy .graduate5_syllabus_intro { margin: 0 0 24px; line-height: 1.9; }
.program-syllabus__legacy .graduate5_syllabus_months { display: block; overflow: visible; border: 0; background: transparent; }
.program-syllabus__legacy .graduate5_syllabus_month { display: grid; grid-template-columns: 104px minmax(0, 1fr); border-top: 1px solid rgba(38, 74, 67, 0.14); background: #fff; }
.program-syllabus__legacy .graduate5_syllabus_month_no { display: block; padding: 22px 16px 22px 0; background: transparent; color: var(--syllabus-accent-text); font-weight: 700; line-height: 1.7; }
.program-syllabus__legacy .graduate5_syllabus_month_body { padding: 22px 0; }
.program-syllabus__legacy .graduate5_syllabus_month_ttl { margin: 0 0 7px; font-size: .95rem; font-weight: 700; }
.program-syllabus__legacy .graduate5_syllabus_month_desc { margin: 0; line-height: 1.8; }
.program-syllabus__legacy .graduate5_syllabus_later { margin-top: 22px; padding: 18px 22px 20px; border: 0; border-radius: 4px; background: var(--syllabus-phase-bg); }
.program-syllabus__legacy .graduate5_syllabus_later p { margin: 0; }
.program-syllabus__legacy .graduate5_syllabus_later_ttl { font-weight: 700; }
.program-syllabus__legacy .graduate5_syllabus_later_desc { margin-top: 7px !important; line-height: 1.8; }

.program-classes__grid,
.program-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.program-class-card,
.program-info-grid article { padding: clamp(26px, 3.5vw, 42px); border: 1px solid rgba(38, 74, 67, 0.1); background: rgba(255, 255, 255, 0.9); }
.program-card__number { margin: 0 0 24px; color: var(--program-coral); font-size: 0.75rem; font-weight: 700; letter-spacing: .14em; }
.program-class-card h3,
.program-info-grid h3,
.program-flow h3 { margin: 0 0 18px; font-size: 1.25rem; line-height: 1.55; }
.program-class-card p,
.program-info-grid p,
.program-info-grid li { line-height: 1.85; }

.program-detail { position: relative; isolation: isolate; overflow: hidden; }
.program-detail::before { content: ""; position: absolute; z-index: -1; width: clamp(280px, 38vw, 560px); aspect-ratio: 1; border-radius: 61% 39% 48% 52% / 43% 58% 42% 57%; filter: blur(35px); opacity: .3; pointer-events: none; }
.program-detail--consulting { --program-feature-accent: #ad743d; --program-feature-pale: rgba(255, 215, 166, .2); background: #fff; }
.program-detail--consulting::before { top: -42%; right: -13%; background: radial-gradient(circle, rgba(255, 215, 166, .42), rgba(255, 248, 244, 0) 70%); }
.program-consulting__hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(380px, .96fr); gap: clamp(48px, 7vw, 88px); align-items: center; }
.program-consulting__media { margin: 0; }
.program-consulting__media img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 24px; object-fit: cover; box-shadow: 0 20px 48px rgba(38, 74, 67, .11); }
.program-consulting__body { padding-block: 12px; }
.program-consulting__heading { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: 18px; padding-top: 18px; border-top: 1px solid rgba(173, 116, 61, .28); }
.program-consulting__number { grid-row: 1 / 3; margin: 0; color: #ad743d; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(4.7rem, 8vw, 7rem); font-weight: 500; line-height: .82; opacity: .9; }
.program-consulting__role { align-self: end; margin: 0 0 5px; font-size: .82rem; font-weight: 700; letter-spacing: .15em; }
.program-consulting__heading h2 { align-self: start; margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; }
.program-consulting__lead { margin: clamp(34px, 5vw, 56px) 0 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.04rem, 1.6vw, 1.24rem); line-height: 2.05; letter-spacing: .035em; }
.program-consulting__features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 28px); margin-top: clamp(64px, 8vw, 96px); }
.program-consulting__feature { position: relative; display: flex; min-height: 290px; flex-direction: column; align-items: center; padding: clamp(58px, 6vw, 70px) clamp(25px, 3vw, 34px) clamp(25px, 3vw, 34px); border: 1px solid rgba(173, 116, 61, .13); border-radius: 20px; background: linear-gradient(155deg, rgba(255, 255, 255, .94), rgba(255, 215, 166, .17)); text-align: center; }
.program-consulting__icon { position: absolute; top: -36px; left: 50%; display: grid; width: 72px; aspect-ratio: 1; place-items: center; border-radius: 50%; background: #f8dec3; transform: translateX(-50%); }
.program-consulting__icon svg { width: 54px; height: 54px; fill: none; stroke: #94602f; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.program-consulting__feature { font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
.program-consulting__feature h3 { margin: 0; font-family: inherit; font-size: clamp(1.08rem, 1.5vw, 1.25rem); font-weight: 700; line-height: 1.6; }
.program-consulting__feature > p { font-size: .86rem; line-height: 1.85; }
.program-consulting__feature > p:last-child { margin: 16px 0 0; line-height: 1.85; }
.program-detail--community { --program-feature-accent: #568a76; --program-feature-pale: rgba(191, 230, 210, .2); background: linear-gradient(155deg, #fff7f3 0%, rgba(191, 230, 210, .14) 26%, rgba(191, 230, 210, .28) 62%, rgba(191, 230, 210, .36) 100%); }
.program-detail--community::before { bottom: -48%; left: -12%; background: radial-gradient(circle, rgba(215, 201, 234, .32), rgba(191, 230, 210, 0) 72%); }
.program-community-detail__hero { display: grid; grid-template-columns: minmax(380px, .94fr) minmax(0, 1.06fr); gap: clamp(48px, 7vw, 88px); align-items: center; }
.program-community-detail__body { padding-block: 12px; }
.program-community-detail__heading { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: 18px; padding-top: 18px; border-top: 1px solid rgba(86, 138, 118, .3); }
.program-community-detail__number { grid-row: 1 / 3; margin: 0; color: #568a76; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(4.7rem, 8vw, 7rem); font-weight: 500; line-height: .82; opacity: .9; }
.program-community-detail__role { align-self: end; margin: 0 0 5px; font-size: .82rem; font-weight: 700; letter-spacing: .15em; }
.program-community-detail__heading h2 { align-self: start; margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; }
.program-community-detail__lead { margin-top: clamp(34px, 5vw, 56px); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.02rem, 1.55vw, 1.2rem); line-height: 2.05; letter-spacing: .035em; }
.program-community-detail__lead p { margin: 0; }
.program-community-detail__lead p + p { margin-top: 18px; }
.program-community-detail__media { margin: 0; }
.program-community-detail__media img { display: block; width: 100%; aspect-ratio: 4 / 3; padding: 10px; border-radius: 24px; background: #fff; object-fit: contain; box-shadow: 0 20px 48px rgba(38, 74, 67, .11); }
.program-community-detail__media figcaption { margin-top: 12px; color: rgba(38, 74, 67, .72); font-size: .78rem; line-height: 1.6; text-align: center; }
.program-community-detail__features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 28px); margin-top: clamp(64px, 8vw, 96px); }
.program-community-detail__feature { position: relative; display: flex; min-height: 320px; flex-direction: column; align-items: center; padding: clamp(58px, 6vw, 70px) clamp(25px, 3vw, 34px) clamp(25px, 3vw, 34px); border: 1px solid rgba(86, 138, 118, .14); border-radius: 20px; background: #fff; text-align: center; }
.program-community-detail__icon { position: absolute; top: -36px; left: 50%; display: grid; width: 72px; aspect-ratio: 1; place-items: center; border-radius: 50%; background: #e7f5ee; transform: translateX(-50%); }
.program-community-detail__icon svg { width: 54px; height: 54px; fill: none; stroke: #477866; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.program-community-detail__feature { font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
.program-community-detail__feature h3 { margin: 0; font-family: inherit; font-size: clamp(1.08rem, 1.5vw, 1.25rem); font-weight: 700; line-height: 1.6; }
.program-community-detail__feature > p { font-size: .86rem; line-height: 1.85; }
.program-community-detail__feature > p:last-child { margin: 16px 0 0; line-height: 1.85; }
.program-community-detail__graduates { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(28px, 5vw, 64px); align-items: center; margin-top: clamp(48px, 6vw, 72px); padding: clamp(26px, 4vw, 42px); border-top: 1px solid rgba(38, 74, 67, .16); border-bottom: 1px solid rgba(38, 74, 67, .16); background: rgba(255, 255, 255, .44); }
.program-community-detail__graduates-label { margin: 0 0 10px; color: #568a76; font-size: .7rem; font-weight: 700; letter-spacing: .18em; }
.program-community-detail__graduates h3 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.35rem, 2.2vw, 1.8rem); font-weight: 500; line-height: 1.5; }
.program-community-detail__graduates div > p:last-child { margin: 12px 0 0; line-height: 1.8; }
.program-community-detail__graduates-link { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 20px; padding: 12px 24px; border: 1px solid rgba(38, 74, 67, .28); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--program-ink); font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color .25s ease, transform .25s ease; }
.program-community-detail__graduates-link:hover,
.program-community-detail__graduates-link:focus-visible { background: rgba(191, 230, 210, .34); transform: translateY(-2px); }
.program-feature--reverse .program-feature__media { grid-column: 1; grid-row: 1; }
.program-feature--reverse .program-feature__heading { grid-column: 2; grid-row: 1; }
.program-feature--reverse .program-feature__copy { grid-column: 3; grid-row: 1; }

.program-classes { background: var(--program-ivory); }
.program-class-card { --program-class-accent: var(--program-coral); --program-class-label: #fde9e5; position: relative; display: flex; min-height: 300px; align-items: center; justify-content: center; flex-direction: column; padding: 54px 28px 26px; border: 1px solid color-mix(in srgb, var(--program-class-accent) 34%, rgba(38, 74, 67, .16)); border-radius: 18px; background: rgba(255, 255, 255, .92); box-shadow: 0 9px 24px rgba(38, 74, 67, .035); text-align: center; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.program-class-card:nth-child(2) { --program-class-accent: var(--program-apricot, #ffd7a6); --program-class-label: #fff0dc; }
.program-class-card:nth-child(3) { --program-class-accent: var(--program-mint); --program-class-label: #e7f5ee; }
.program-class-card h3 { position: absolute; top: 0; left: 50%; min-width: 142px; margin: 0; padding: 8px 18px; border-radius: 12px; background: var(--program-class-label); color: #314743; font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif; font-size: .92rem; font-weight: 600; line-height: 1.45; letter-spacing: .035em; white-space: nowrap; transform: translate(-50%, -50%); }
.program-class-card__draft-icon { display: block; width: 120px; height: 120px; margin: 0 auto 16px; object-fit: contain; }
.program-class-card > p { margin: 0; color: #617571; font-size: .9rem; line-height: 1.85; }
@media (hover: hover) and (pointer: fine) {
	.program-class-card:hover { border-color: color-mix(in srgb, var(--program-class-accent) 48%, rgba(38, 74, 67, .16)); box-shadow: 0 14px 30px rgba(38, 74, 67, .07); transform: translateY(-2px); }
}
.program-class-tabs__draft-icon { display: block; width: clamp(120px, 13vw, 162px); height: auto; margin: 12px 0 22px; object-fit: contain; }
.program-action { margin: 48px 0 0; text-align: center; }
.program-button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; padding: 13px 30px; border-radius: 999px; background: var(--program-ink); color: #fff; font-weight: 700; text-decoration: none; transition: background-color .25s ease, transform .25s ease; }
.program-button:hover { background: var(--program-coral); transform: translateY(-2px); }

.program-guide .program-section:nth-of-type(even) { background: #fff; }
.program-guide .program-section:nth-of-type(odd) { background: var(--program-ivory); }
.program-guide-period { padding: clamp(64px, 7vw, 94px) 0; }
.program-basic-heading { margin: 0 0 clamp(34px, 5vw, 54px); text-align: center; }
.program-basic-heading__label { margin: 0 0 12px; color: var(--program-coral); font-family: "Noto Sans JP", sans-serif; font-size: .72rem; font-weight: 700; line-height: 1.5; letter-spacing: .22em; }
.program-basic-heading__label span { margin-right: .55em; }
.program-basic-heading h2 { margin: 0; color: var(--program-ink); font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: clamp(1.85rem, 3.4vw, 2.8rem); font-weight: 500; line-height: 1.5; letter-spacing: .04em; }
.program-basic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 960px; margin: 0 auto; border-top: 1px solid rgba(41, 59, 58, .13); border-bottom: 1px solid rgba(41, 59, 58, .13); }
.program-basic-item { display: flex; min-width: 0; min-height: 124px; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 20px 18px; text-align: center; }
.program-basic-item + .program-basic-item { border-left: 1px solid rgba(41, 59, 58, .13); }
.program-basic-icon { display: grid; width: 46px; height: 42px; flex: 0 0 auto; place-items: center; color: #b56f4f; }
.program-basic-icon svg { width: 40px; height: 40px; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.program-basic-item strong { color: var(--program-ink); font-family: "Noto Serif JP", serif; font-size: clamp(.9rem, 1.45vw, 1.08rem); font-weight: 500; line-height: 1.6; text-wrap: balance; }
.program-term-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border-radius: 10px; background: color-mix(in srgb, var(--program-blush) 38%, var(--program-ivory)); }
.program-term-panel__item { padding: clamp(26px, 3vw, 34px) clamp(28px, 4vw, 44px); }
.program-term-panel__item + .program-term-panel__item { border-left: 1px solid rgba(92, 96, 94, .18); }
.program-term-panel__item h3 { margin: 0 0 10px; font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: 1.08rem; font-weight: 700; line-height: 1.5; }
.program-term-panel__item p { margin: 0; font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; line-height: 1.8; }
.program-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.program-info-grid article { border-radius: 16px; }
.program-info-grid ul { margin: 18px 0 0; padding-left: 1.25em; }
.program-comparison-table { margin-bottom: 38px; overflow-x: auto; border: 1px solid rgba(92, 96, 94, .22); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(38, 74, 67, .05); scrollbar-width: thin; }
.program-comparison-table table { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; color: var(--program-ink); }
.program-comparison-table th,
.program-comparison-table td { height: 82px; padding: 14px 16px; border-right: 1px solid rgba(38, 74, 67, .13); border-bottom: 1px solid rgba(38, 74, 67, .13); text-align: center; vertical-align: middle; }
.program-comparison-table tr > :first-child { width: 25%; border-left: 0; text-align: center; }
.program-comparison-table thead th { height: 76px; border-top: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1rem, 1.6vw, 1.2rem); font-weight: 500; letter-spacing: .03em; }
.program-comparison-table tr > :last-child { border-right: 0; }
.program-comparison-table tbody tr:last-child > * { border-bottom: 0; }
.program-comparison-table thead th:first-child { background: rgba(255, 248, 244, .66); font-family: inherit; font-size: .8rem; font-weight: 700; }
.program-comparison-table thead .is-study { background: var(--program-blush); }
.program-comparison-table thead .is-supported { background: color-mix(in srgb, var(--program-apricot, #ffd7a6) 42%, #fff); }
.program-comparison-table thead .is-private { background: color-mix(in srgb, var(--program-mint) 48%, #fff); }
.program-comparison-table tbody th { background: rgba(255, 248, 244, .66); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: .9rem; font-weight: 600; line-height: 1.55; text-align: center; }
.program-comparison-table tbody th small { color: rgba(38, 74, 67, .7); font-size: .75rem; font-weight: 500; }
.program-comparison-table tbody td span { color: #8f6746; font-size: 2rem; font-weight: 400; line-height: 1; }
.program-comparison-table__fee th,
.program-comparison-table__fee td { background: rgba(247, 228, 222, .35); }
.program-comparison-table__fee td:nth-child(2) { background: color-mix(in srgb, var(--program-blush) 68%, #fff); }
.program-comparison-table__fee td:nth-child(3) { background: color-mix(in srgb, var(--program-apricot, #ffd7a6) 28%, #fff); }
.program-comparison-table__fee td:nth-child(4) { background: color-mix(in srgb, var(--program-mint) 32%, #fff); }
.program-comparison-table__fee-label,
.program-comparison-table__fee-note { display: block; text-align: center; }
.program-comparison-table tbody th .program-comparison-table__fee-note { margin-top: 5px; font-size: .7rem; font-weight: 400; line-height: 1.45; }
.program-comparison-table__fee strong { font-size: clamp(.98rem, 1.55vw, 1.16rem); white-space: nowrap; }
.program-class-tabs { margin-top: clamp(42px, 6vw, 68px); }
.program-class-tabs__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid rgba(38, 74, 67, .16); }
.program-class-tabs__tab { --class-tab-accent: var(--program-coral); --class-tab-pale: var(--program-blush); position: relative; display: inline-flex; min-height: 68px; align-items: center; justify-content: center; gap: 9px; padding: 14px 18px; border: 1px solid color-mix(in srgb, var(--class-tab-accent) 30%, transparent); border-bottom: 0; border-radius: 14px 14px 0 0; background: color-mix(in srgb, var(--class-tab-pale) 48%, #fff); color: var(--program-ink); cursor: pointer; font: 600 clamp(.92rem, 1.35vw, 1.05rem) / 1.5 "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; letter-spacing: .03em; transition: background-color .25s ease, border-color .25s ease, transform .25s ease; }
.program-class-tabs__tab--supported { --class-tab-accent: var(--program-apricot, #ffd7a6); --class-tab-pale: #fff0dc; }
.program-class-tabs__tab--private { --class-tab-accent: var(--program-mint); --class-tab-pale: #e7f5ee; }
.program-class-tabs__label { display: inline; }
.program-class-tabs__label > span { display: inline; }
.program-class-tabs__tab + .program-class-tabs__tab { margin-left: 8px; }
.program-class-tabs__tab:hover { background: color-mix(in srgb, var(--class-tab-pale) 76%, #fff); }
.program-class-tabs__tab[aria-selected="true"] { z-index: 1; border-color: color-mix(in srgb, var(--class-tab-accent) 52%, transparent); background: var(--class-tab-pale); }
.program-class-tabs__tab[aria-selected="true"]::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--class-tab-accent); }
.program-class-tabs__tab:focus-visible { z-index: 2; outline: 3px solid rgba(243, 128, 145, .42); outline-offset: 3px; }
.program-class-tabs__panels { border: 1px solid rgba(38, 74, 67, .13); border-top: 0; border-radius: 0 0 22px 22px; background: rgba(255, 255, 255, .92); }
.program-class-tabs__panel { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 6vw, 72px) clamp(42px, 7vw, 84px); align-items: start; min-height: 350px; padding: clamp(38px, 5.5vw, 68px); }
.program-class-tabs__panel[hidden] { display: none; }
.program-class-tabs__panel--study { --panel-accent: var(--program-coral); --panel-pale: var(--program-blush); }
.program-class-tabs__panel--supported { --panel-accent: var(--program-apricot, #ffd7a6); --panel-pale: #fff0dc; }
.program-class-tabs__panel--private { --panel-accent: var(--program-mint); --panel-pale: #e7f5ee; }
.program-class-tabs__summary { max-width: 390px; }
.program-class-tabs__summary h3 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.55rem, 2.5vw, 2.15rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; }
.program-class-tabs__summary > p:last-child { margin: 24px 0 0; line-height: 2; }
.program-class-tabs__details { display: grid; gap: 0; margin: 0; }
.program-class-tabs__details > div { display: grid; grid-template-columns: minmax(120px, .42fr) minmax(0, 1fr); gap: 24px; padding: 20px 0; border-top: 1px solid rgba(38, 74, 67, .13); }
.program-class-tabs__details > div:last-child { border-bottom: 1px solid rgba(38, 74, 67, .13); }
.program-class-tabs__details dt { color: rgba(38, 74, 67, .76); font-size: .78rem; font-weight: 700; letter-spacing: .08em; line-height: 1.75; }
.program-class-tabs__details dd { margin: 0; line-height: 1.85; }
.program-class-tabs__schedule dd p { margin: 0; }
.program-class-tabs__schedule dd p + p { margin-top: 10px; }
.program-class-tabs__schedule dd ul { margin: 14px 0 0; padding-left: 1.25em; }
.program-class-tabs__schedule dd li + li { margin-top: 5px; }
.program-class-tabs__price { grid-column: 1 / -1; padding-top: clamp(26px, 3vw, 38px); border-top: 1px solid color-mix(in srgb, var(--panel-accent) 38%, transparent); }
.program-class-tabs__price h4 { margin: 0 0 18px; color: color-mix(in srgb, var(--panel-accent) 58%, var(--program-ink)); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.2rem, 1.8vw, 1.45rem); font-weight: 500; letter-spacing: .04em; }
.program-class-tabs__price dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid color-mix(in srgb, var(--panel-accent) 34%, transparent); border-radius: 14px; overflow: hidden; background: color-mix(in srgb, var(--panel-pale) 38%, #fff); }
.program-class-tabs__price dl > div { display: grid; gap: 8px; justify-items: center; padding: 18px 14px; text-align: center; }
.program-class-tabs__price dl > div + div { border-left: 1px solid rgba(38, 74, 67, .13); }
.program-class-tabs__price dl > div.is-primary { background: color-mix(in srgb, var(--panel-pale) 82%, #fff); }
.program-class-tabs__price dt { color: rgba(38, 74, 67, .72); font-size: .75rem; font-weight: 700; letter-spacing: .08em; }
.program-class-tabs__price dd { margin: 0; font-size: clamp(1.03rem, 1.7vw, 1.28rem); font-weight: 700; line-height: 1.4; white-space: nowrap; }
.program-class-tabs__payment { grid-column: 1 / -1; padding: clamp(20px, 2.6vw, 28px); border: 0; border-radius: 12px; background: color-mix(in srgb, var(--panel-pale) 28%, #fff); }
.program-class-tabs__payment h4 { margin: 0 0 14px; color: color-mix(in srgb, var(--panel-accent) 56%, var(--program-ink)); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: clamp(.9rem, 1.2vw, 1rem); font-weight: 700; letter-spacing: .06em; }
.program-class-tabs__payment ul { margin: 0; padding-left: 1.25em; }
.program-class-tabs__payment li { padding-left: .15em; font-size: clamp(.78rem, 1vw, .86rem); line-height: 1.75; }
.program-class-tabs__payment li + li { margin-top: 6px; }
.program-guide-access { background: #fff !important; }
.program-access { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(420px, 1.28fr); gap: clamp(48px, 7vw, 88px); align-items: center; }
.program-access__content h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.75rem, 3vw, 2.7rem); font-weight: 500; line-height: 1.45; letter-spacing: .04em; }
.program-access__content address { margin-top: clamp(30px, 4vw, 44px); font-style: normal; line-height: 2; }
.program-access__content > p:last-child { margin: 22px 0 0; line-height: 1.85; }
.program-access__map { overflow: hidden; border-radius: 16px; background: var(--program-ivory); }
.program-access__map iframe { display: block; width: 100%; height: clamp(340px, 34vw, 440px); border: 0; }
.program-guide-flow { background: var(--program-ivory) !important; }
.program-guide-faq { background: #fff !important; }
.program-note { margin: -20px 0 28px; font-size: .82rem; text-align: right; }
.program-copy-block { padding: 30px; border-left: 4px solid var(--program-mint); background: #fff; }
.program-copy-block p { margin: 0; line-height: 1.9; }
.program-copy-block p + p { margin-top: 14px; }

.program-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.program-flow li { padding: 26px; background: #fff; }
.program-flow img { display: block; width: 110px; height: 90px; margin: 0 auto 18px; object-fit: contain; }
.program-flow span { display: block; margin-bottom: 9px; color: var(--program-coral); font-size: .72rem; font-weight: 700; letter-spacing: .13em; }
.program-flow p { margin: 0; line-height: 1.8; }
.program-guide-flow .program-flow { display: block; width: min(100%, 920px); margin-inline: auto; }
.program-guide-flow .program-flow li { position: relative; display: grid; grid-template-columns: 82px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: clamp(30px, 5vw, 62px); min-height: 168px; padding: 16px 0 48px; background: transparent; }
.program-guide-flow .program-flow li:last-child { min-height: 126px; padding-bottom: 0; }
.program-guide-flow .program-flow li:not(:last-child)::after { content: ""; position: absolute; z-index: 0; top: 82px; bottom: -4px; left: 40px; width: 1px; background: linear-gradient(180deg, rgba(243, 128, 145, .54), rgba(38, 74, 67, .16)); }
.program-guide-flow .program-flow span { position: relative; z-index: 1; grid-column: 1; grid-row: 1 / 3; display: flex; width: 82px; height: 70px; flex-direction: column; align-items: center; justify-content: center; margin: 0; border-radius: 48% 52% 46% 54% / 55% 47% 53% 45%; background: var(--program-blush); color: var(--program-ink); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 1.5rem; font-weight: 600; line-height: 1; letter-spacing: .04em; }
.program-guide-flow .program-flow span small { display: block; margin-bottom: 5px; font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: .58rem; font-weight: 700; letter-spacing: .14em; }
.program-guide-flow .program-flow h3 { grid-column: 2; grid-row: 1; align-self: end; margin: 0 0 12px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.25rem, 2vw, 1.55rem); font-weight: 500; line-height: 1.5; letter-spacing: .035em; }
.program-guide-flow .program-flow p { grid-column: 2; grid-row: 2; max-width: 680px; }

.program-faq { display: grid; gap: 12px; }
.program-faq details { border: 1px solid var(--program-line); background: #fff; }
.program-faq summary { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 15px; padding: 22px 24px; cursor: pointer; font-weight: 500; line-height: 1.65; }
.program-faq summary span { color: var(--program-coral); font-weight: 700; }
.program-faq details > div { padding: 0 24px 24px 87px; }
.program-faq details p { margin: 0; line-height: 1.85; }
.program-faq details p + p { margin-top: 10px; }
.home-final-cta--guide .home-final-cta__heading { margin-bottom: clamp(34px, 4vw, 52px); }
.home-final-cta__guide-content { position: relative; z-index: 2; width: min(calc(100% - 48px), 720px); margin-inline: auto; text-align: center; }
.home-final-cta__guide-button { width: min(100%, 570px); min-height: 142px; margin-inline: auto; text-decoration: none; }

@media (max-width: 900px) {
	.program-goal__grid { grid-template-columns: 1fr; }
	.program-classes__grid { grid-template-columns: 1fr; gap: 34px; }
	.program-method__item { min-height: 258px; }
	.program-chapter-intro { grid-template-columns: minmax(0, 1fr) minmax(330px, .9fr); gap: 40px; }
	.program-feature { grid-template-columns: minmax(200px, .75fr) minmax(0, 1.25fr); }
	.program-feature__heading { grid-column: 1; }
	.program-feature__copy { grid-column: 2; }
	.program-feature__media { grid-column: 1 / -1; width: min(100%, 620px); justify-self: center; }
	.program-feature--reverse .program-feature__media { grid-column: 1 / -1; grid-row: 2; }
	.program-feature--reverse .program-feature__heading { grid-column: 1; grid-row: 1; }
	.program-feature--reverse .program-feature__copy { grid-column: 2; grid-row: 1; }
	.program-consulting__hero { grid-template-columns: minmax(0, 1fr) minmax(330px, .9fr); gap: 40px; }
	.program-consulting__features { gap: 16px; }
	.program-consulting__feature { min-height: 310px; padding: 58px 20px 24px; }
	.program-community-detail__hero { grid-template-columns: minmax(330px, .9fr) minmax(0, 1fr); gap: 40px; }
	.program-community-detail__features { gap: 16px; }
	.program-community-detail__feature { min-height: 350px; padding: 58px 20px 24px; }
	.program-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.program-section.program-guide-period { padding: 58px 0 64px; }
	.program-basic-heading { margin-bottom: 24px; text-align: center; }
	.program-basic-heading h2 { font-size: 1.8rem; }
	.program-basic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.program-basic-item { min-height: 88px; gap: 7px; padding: 10px; }
	.program-basic-item + .program-basic-item { border-left: 0; }
	.program-basic-item:nth-child(even) { border-left: 1px solid rgba(41, 59, 58, .13); }
	.program-basic-item:nth-child(n+3) { border-top: 1px solid rgba(41, 59, 58, .13); }
	.program-basic-icon { width: 40px; height: 36px; }
	.program-basic-icon svg { width: 34px; height: 34px; }
	.program-basic-item strong { font-size: clamp(.82rem, 3.8vw, .95rem); }
	.program-term-panel { grid-template-columns: 1fr; }
	.program-term-panel__item { padding: 22px 20px 24px; }
	.program-term-panel__item + .program-term-panel__item { border-top: 1px solid rgba(92, 96, 94, .18); border-left: 0; }
	.program-guide-anchor-nav { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.program-guide-anchor-nav::-webkit-scrollbar { display: none; }
	.program-guide-anchor-nav li:first-child a::before,
	.program-guide-anchor-nav li:last-child a::after { display: none; }
	.program-guide-anchor-nav ul.program-container { width: max-content; min-width: 100%; max-width: none; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 154px; margin: 0; padding: 0 18px; box-sizing: border-box; }
	.program-guide-anchor-nav li + li { border-left: 1px solid rgba(38, 74, 67, .12); }
	.program-guide-anchor-nav li:nth-child(n + 3) { border-top: 0; }
	.program-guide-anchor-nav li:last-child { grid-column: auto; }
	.program-guide-anchor-nav a { min-height: 60px; gap: 6px; padding: 0 16px; font-size: .875rem; line-height: 1.4; white-space: nowrap; }
	.program-guide-anchor-nav__arrow { display: inline; width: auto; height: auto; flex: 0 0 auto; border: 0; border-radius: 0; font-size: .72rem; }
	.program-container,
	.program-container--narrow { width: min(100% - 36px, 680px); }
	.program-section { padding: 68px 0; }
	.program-heading { margin-bottom: 38px; }
	.program-guide-access .program-section__label,
	.program-guide-access .program-access__content > h2 { text-align: center; }
	.program-goal__grid { gap: 0; }
	.program-goal__content { display: contents; }
	.program-goal__content > .program-section__label { order: 1; }
	.program-goal__content > h2 { order: 2; }
	.program-goal__media { order: 3; margin: 28px 0; }
	.program-goal__media img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
	.program-goal__content > p:not(.program-section__label) { order: 4; margin-top: 0; }
	.program-goal__content > p:not(.program-section__label) + p { margin-top: 20px; }
	#program-curriculum,
	#program-consulting,
	#program-community { scroll-margin-top: 78px; }
	.program-method__nav { grid-template-columns: 1fr; }
	.program-method__item { min-height: 0; padding: 42px 22px 24px; }
	.program-method__nav { gap: 48px; }
	.program-method__visual { width: 76px; height: 72px; flex-basis: 72px; margin: 0; }
	.program-method__visual svg { width: 68px; height: 52px; }
	.program-method__visual img { width: 88px; height: 88px; }
	.program-method__copy { margin-top: 16px; }
	.program-method__copy strong { min-width: 176px; padding: 10px 20px; font-size: 1rem; }
	.program-method__copy > span { font-size: .84rem; line-height: 1.75; }
	.program-feature,
	.program-feature--reverse { grid-template-columns: 1fr; gap: 26px; }
	.program-feature__heading,
	.program-feature__copy,
	.program-feature__media,
	.program-feature--reverse .program-feature__heading,
	.program-feature--reverse .program-feature__copy,
	.program-feature--reverse .program-feature__media { grid-column: 1; grid-row: auto; }
	.program-feature__heading { padding-top: 15px; }
	.program-feature__heading h2 { white-space: normal; }
	.program-feature__number { font-size: 4rem; }
	.program-feature__role { margin-bottom: 20px; }
	.program-feature__media img { border-radius: 14px; }
	.program-feature--curriculum { margin-bottom: 78px; }
	.program-chapter-intro { grid-template-columns: 1fr; gap: 0; padding-top: 16px; border-top: 1px solid var(--program-chapter-pale); }
	.program-chapter-intro__visual,
	.program-chapter-intro__content { display: contents; }
	.program-chapter-intro__label { order: 1; }
	.program-chapter-intro__content h2 { order: 2; }
	.program-chapter-intro__media { order: 3; margin-top: 24px; }
	.program-chapter-intro__copy { order: 4; margin-top: 24px; }
	.program-chapter-intro__media img { border-radius: 16px; }
	.program-video-trigger { border-radius: 16px; }
	.program-video-modal { padding: 68px 18px 24px; }
	.program-video-modal__close { top: -54px; width: 46px; height: 46px; }
	.program-chapter-intro__content { padding-top: 0; border-top: 0; }
	.program-chapter-intro__content h2 { font-size: clamp(1.7rem, 8vw, 2.15rem); white-space: nowrap; }
	.program-syllabus__intro { margin-top: 64px; text-align: left; }
	.program-syllabus .program-container--narrow { width: calc(100% - 40px); }
	.program-consulting__hero { grid-template-columns: 1fr; gap: 30px; }
	.program-consulting__body { padding: 0; }
	.program-consulting__heading { grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; }
	.program-consulting__number { font-size: 4.4rem; }
	.program-consulting__heading h2 { font-size: clamp(1.55rem, 7vw, 2rem); }
	.program-consulting__lead { margin-top: 28px; }
	.program-consulting__break { display: none; }
	.program-consulting__features { grid-template-columns: 1fr; gap: 52px; margin-top: 52px; }
	.program-consulting__feature { min-height: 0; }
	.program-community-detail__hero { grid-template-columns: 1fr; gap: 30px; }
	.program-community-detail__body { padding: 0; }
	.program-community-detail__heading { grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; }
	.program-community-detail__number { font-size: 4.4rem; }
	.program-community-detail__heading h2 { font-size: clamp(1.55rem, 7vw, 2rem); }
	.program-community-detail__lead { margin-top: 28px; }
	.program-community-detail__features { grid-template-columns: 1fr; gap: 52px; margin-top: 52px; }
	.program-community-detail__feature { min-height: 0; }
	.program-community-detail__graduates { grid-template-columns: 1fr; gap: 24px; padding-inline: 20px; }
	.program-community-detail__graduates-link { width: 100%; }
	.program-syllabus__legacy .bl_faq { gap: 10px; }
	.program-syllabus__legacy .bl_faq_q { grid-template-columns: minmax(0, 1fr) 94px; grid-template-rows: 50px 40px; min-height: 90px; padding: 0; }
	.program-syllabus__legacy .bl_faq_icn { grid-column: 1 / -1; grid-row: 1; grid-template-columns: auto auto; justify-content: center; gap: 20px; min-height: 50px; margin: -1px -1px 0; padding: 0 18px; }
	.program-syllabus__legacy .bl_faq_icn::before { width: 92px; height: 50px; background-position: center; background-repeat: no-repeat; background-size: auto 68px; content: ""; }
	.program-syllabus__legacy .bl_faq_item:nth-child(1) .bl_faq_icn::before { background-image: url("../images/program/syllabus/i-01.png"); }
	.program-syllabus__legacy .bl_faq_item:nth-child(2) .bl_faq_icn::before { background-image: url("../images/program/syllabus/i-02.png"); }
	.program-syllabus__legacy .bl_faq_item:nth-child(3) .bl_faq_icn::before { background-image: url("../images/program/syllabus/i-03.png"); }
	.program-syllabus__legacy .bl_faq_item:nth-child(4) .bl_faq_icn::before { width: 100px; background-image: url("../images/program/syllabus/i-04.png"); background-size: auto 76px; transform: rotate(-7deg); }
	.program-syllabus__legacy .bl_faq_item:nth-child(5) .bl_faq_icn::before { width: 118px; background-image: url("../images/program/syllabus/i-05.png"); background-position: center 40%; background-size: auto 82px; }
	.program-syllabus__legacy .bl_faq_icn::after { font-size: 1.25rem; line-height: 1; }
	.program-syllabus__legacy .bl_faq_icn img { display: none; }
	.program-syllabus__legacy .bl_faq_q_txt { grid-column: 1; grid-row: 2; align-self: center; padding: 0 0 0 20px; font-size: 1rem; line-height: 1.5; }
	.program-syllabus__legacy .bl_faq_q::after { grid-column: 2; grid-row: 2; align-self: center; justify-self: center; width: 10px; height: 10px; margin: 0; }
	.program-syllabus__legacy .bl_faq_a { padding: 0; }
	.program-syllabus__legacy .bl_faq_a_body { padding: 24px 18px 28px; }
	.program-syllabus__legacy { margin-top: 48px; }
	.program-syllabus__legacy .graduate5_syllabus_month { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: 12px; padding: 17px 0; }
	.program-syllabus__legacy .graduate5_syllabus_month_no { grid-column: 1; padding: 0; font-size: .82rem; line-height: 1.7; white-space: nowrap; }
	.program-syllabus__legacy .graduate5_syllabus_month_body { display: contents; padding: 0; }
	.program-syllabus__legacy .graduate5_syllabus_month_ttl { grid-column: 2; margin: 0; font-size: .92rem; line-height: 1.7; }
	.program-syllabus__legacy .graduate5_syllabus_month_desc { grid-column: 1 / -1; margin-top: 8px; }
	.program-syllabus__legacy .graduate5_syllabus_later { margin-top: 18px; padding: 16px 16px 18px; }
	.program-class-tabs { margin-top: 38px; }
	.program-class-tabs__list { overflow: visible; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; padding-top: 3px; }
	.program-class-tabs__tab { min-height: 68px; margin-left: 0 !important; padding: 9px 3px; font-size: .8125rem; line-height: 1.35; white-space: normal; }
	.program-class-tabs__label { display: flex; flex-direction: column; align-items: center; justify-content: center; }
	.program-class-tabs__label > span { display: block; }
	.program-class-tabs__panel { grid-template-columns: 1fr; gap: 30px; min-height: 0; padding: 30px 22px 34px; }
	.program-class-tabs__summary { max-width: none; }
	.program-class-tabs__draft-icon { width: 128px; margin: 10px 0 18px; }
	.program-class-tabs__summary > p:last-child { margin-top: 18px; }
	.program-class-tabs__details > div { grid-template-columns: 1fr; gap: 6px; padding: 17px 0; }
	.program-comparison-table { margin-right: -18px; margin-left: -18px; border-radius: 0; }
	.program-comparison-table table { width: 100%; min-width: 360px; table-layout: fixed; }
	.program-comparison-table tr > :first-child { width: 23%; }
	.program-comparison-table th,
	.program-comparison-table td { height: 54px; padding: 8px 4px; }
	.program-comparison-table thead th { height: 58px; font-size: .875rem; line-height: 1.35; overflow-wrap: anywhere; text-wrap: balance; }
	.program-comparison-table tbody th { font-size: .75rem; line-height: 1.45; overflow-wrap: anywhere; text-wrap: balance; }
	.program-comparison-table tbody td span { font-size: 1.35rem; }
	.program-comparison-table__fee th,
	.program-comparison-table__fee td { height: 68px; }
	.program-comparison-table__fee-label { font-size: .7rem; letter-spacing: -.04em; white-space: nowrap; }
	.program-comparison-table tbody th .program-comparison-table__fee-note { margin-top: 3px; font-size: .625rem; line-height: 1.35; }
	.program-comparison-table__fee strong { font-size: .8125rem; letter-spacing: -.025em; white-space: nowrap; }
	.program-class-tabs__price dl { grid-template-columns: 1fr; }
	.program-class-tabs__price dl > div { grid-template-columns: minmax(88px, .8fr) minmax(0, 1.2fr); align-items: center; justify-items: start; padding: 15px 16px; text-align: left; }
	.program-class-tabs__price dl > div + div { border-top: 1px solid rgba(38, 74, 67, .13); border-left: 0; }
	.program-class-card { min-height: 260px; padding: 46px 22px 24px; }
	.program-class-card h3 { min-width: 138px; padding: 7px 16px; font-size: .9rem; }
	.program-class-card__draft-icon { width: 104px; height: 104px; margin-bottom: 14px; }
	.program-class-card > p { font-size: .88rem; line-height: 1.8; }
	.program-info-grid,
	.program-flow { grid-template-columns: 1fr; }
	.program-access { grid-template-columns: 1fr; gap: 34px; }
	.program-access__map iframe { height: min(72vw, 380px); min-height: 280px; }
	.program-guide-flow .program-flow li { grid-template-columns: 60px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 20px; min-height: 172px; padding: 10px 0 40px; }
	.program-guide-flow .program-flow li:last-child { min-height: 126px; padding-bottom: 0; }
	.program-guide-flow .program-flow li:not(:last-child)::after { top: 62px; bottom: -2px; left: 29px; }
	.program-guide-flow .program-flow span { grid-column: 1; grid-row: 1 / 3; width: 60px; height: 56px; font-size: 1.18rem; }
	.program-guide-flow .program-flow span small { margin-bottom: 4px; font-size: .5rem; }
	.program-guide-flow .program-flow h3 { grid-column: 2; grid-row: 1; margin-bottom: 10px; font-size: 1.2rem; }
	.program-guide-flow .program-flow p { grid-column: 2; grid-row: 2; }
	.home-final-cta__guide-content { width: min(calc(100% - 40px), 570px); }
	.home-final-cta__guide-button { min-height: 128px; padding: 24px; }
	.home-final-cta__guide-button .home-final-cta__label { white-space: normal; text-align: left; }
	.program-faq summary { grid-template-columns: 38px 1fr; padding: 18px 16px; }
	.program-faq details > div { padding: 0 16px 20px 69px; }
	.program-copy-block { padding: 22px; }
	.program-button { width: 100%; max-width: 360px; }
	.program-hero--concept-01 {
		min-height: 370px;
		padding: 76px 0 56px;
	}
	.program-hero--concept-01 .program-breadcrumb {
		top: -54px;
	}
	.program-hero__title-group {
		width: 100%;
		padding: 34px 0 28px;
	}
	.program-hero--concept-01 h1 {
		font-size: clamp(2.15rem, 11vw, 3rem);
	}
	.program-hero__shape--coral {
		top: -18%;
		right: -38%;
		width: 370px;
	}
	.program-hero__shape--mint {
		left: -48%;
		bottom: -30%;
		width: 460px;
	}
	.program-hero__shape--apricot {
		right: 2%;
		bottom: -20%;
		width: 210px;
	}
	.program-hero__wave {
		top: 4%;
		left: -18%;
		width: 136%;
		height: 88%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:has(.program-page) { scroll-behavior: auto; }
	.program-guide-anchor-nav li:first-child a::before,
	.program-guide-anchor-nav li:last-child a::after,
	.program-guide-anchor-nav a,
	.program-guide-anchor-nav__arrow,
	.program-method__item,
	.program-method__visual svg,
	.program-video-trigger .program-chapter-intro__play,
	.program-video-modal,
	.program-video-modal__close,
	.program-button,
	.program-syllabus__legacy .bl_faq_q::after { transition: none; }
	.program-hero--concept-01 .program-breadcrumb,
	.program-hero__title-group,
	.program-hero__shape,
	.program-hero__wave,
	.program-hero--concept-01::after {
		animation: none;
		opacity: 1;
	}
	.program-hero__title-group {
		transform: none;
	}
}

/* Class choices: align the finished artwork and copy on a shared vertical rhythm. */
@media(min-width:768px){
	.program-class-card{min-height:300px;justify-content:flex-start;padding:34px 28px 18px}
	.program-class-card__draft-icon{width:156px;height:156px;margin:0 auto 6px;flex:0 0 156px}
}
@media(max-width:767px){
	.program-class-card{min-height:260px;justify-content:flex-start;padding:34px 22px 18px}
	.program-class-card__draft-icon{width:136px;height:136px;margin:0 auto 6px;flex:0 0 136px}
}

/* HOW TO LEARN: match the finished artwork rhythm used by the home learning pillars. */
@media(min-width:768px){
	.program-method__item{min-height:276px;justify-content:flex-start;padding:42px clamp(28px,3vw,36px) 28px}
	.program-method__visual{width:150px;height:150px;flex:0 0 150px}
	.program-method__visual img{width:150px;height:150px}
	.program-method__copy{width:100%;margin-top:12px}
}
@media(max-width:767px){
	.program-method__item{min-height:0;justify-content:flex-start;padding:38px 22px 22px}
	.program-method__visual{width:120px;height:120px;flex:0 0 120px}
	.program-method__visual img{width:120px;height:120px}
	.program-method__copy{width:100%;margin-top:10px}
}

/* SP class summaries: quick comparison first, optional detail second. */
.program-class-tabs__key-points,
.program-class-tabs__details-toggle{display:none}
.program-class-tabs__copy-sp{display:none}

@media(max-width:767px){
	.program-class-tabs__panel{gap:0}
	.program-class-tabs__panel{padding-top:24px}
	.program-class-tabs__summary{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(112px,1fr);gap:14px;align-items:center}
	.program-class-tabs__summary h3{display:none}
	.program-class-tabs__summary .program-class-tabs__draft-icon{grid-column:2;grid-row:1;width:min(120px,100%);margin:0;justify-self:end;align-self:center}
	.program-class-tabs__summary>p:last-child{grid-column:1;grid-row:1;margin:0;font-size:.875rem;line-height:1.8}
	.program-class-tabs__copy-pc{display:none}
	.program-class-tabs__copy-sp{display:inline}
	.program-class-tabs__key-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:22px 0 0;padding:0;list-style:none}
	.program-class-tabs__key-points--three{grid-template-columns:repeat(3,minmax(0,1fr))}
	.program-class-tabs__key-points li{display:flex;min-width:0;min-height:82px;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:12px 5px 10px;border-radius:11px;background:color-mix(in srgb,var(--panel-pale) 54%,#fff);color:var(--program-ink);text-align:center}
	.program-class-tabs__key-points svg{width:23px;height:23px;flex:0 0 23px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
	.program-class-tabs__key-points span{font-size:.69rem;font-weight:650;line-height:1.45;letter-spacing:.015em;overflow-wrap:anywhere}
	.program-class-tabs__details-toggle{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;margin-top:15px;padding:11px 3px 9px;border:0;border-bottom:1px solid color-mix(in srgb,var(--panel-accent) 42%,rgba(38,74,67,.16));background:transparent;color:var(--program-ink);cursor:pointer;font:600 .8rem/1.5 "Noto Sans JP","Helvetica Neue",Arial,sans-serif;letter-spacing:.06em;text-align:left}
	.program-class-tabs__details-toggle-mark{display:grid;width:25px;height:25px;place-items:center;border:1px solid color-mix(in srgb,var(--panel-accent) 48%,rgba(38,74,67,.2));border-radius:50%;color:color-mix(in srgb,var(--panel-accent) 64%,var(--program-ink));font-size:1rem;font-weight:400;line-height:1}
	.program-class-tabs__details{max-height:0;margin:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .28s ease,opacity .18s ease,margin-top .28s ease,visibility 0s linear .28s}
	.program-class-tabs__panel.is-details-open .program-class-tabs__details{margin-top:12px;opacity:1;visibility:visible;transition:max-height .28s ease,opacity .2s ease,margin-top .28s ease,visibility 0s linear 0s}
	.program-class-tabs__details>div:first-child{border-top:0}
	.program-class-tabs__details dt{font-size:.875rem;font-weight:700;line-height:1.7;letter-spacing:.045em}
	.program-class-tabs__details dd{font-size:.9375rem;line-height:1.8}
	.program-class-tabs__details>div:last-child{margin-top:8px;padding:14px 13px;border:0;border-radius:10px;background:color-mix(in srgb,var(--panel-pale) 56%,#fff)}
	.program-class-tabs__price{margin-top:28px;border-top:0}
	.program-class-tabs__payment{margin-top:24px}
}

@media(max-width:374px){
	.program-class-tabs__key-points{gap:5px}
	.program-class-tabs__key-points li{padding-inline:3px}
	.program-class-tabs__key-points span{font-size:.66rem}
}

@media(prefers-reduced-motion:reduce){
	.program-class-tabs__details{transition:none!important}
}
