
:root {
	--pt-day: #0086c9;
	--ot-day: #fabe00;
	--pt-night: #33c0ac;
}


#syllabus-download {
	padding-top: 80px;
}

#syllabus-download p {
	font-size: var(--fz-15);
	font-weight: var(--fw-medium);
	margin-bottom: 40px;
}

#syllabus-download li {
	margin-bottom: 10px;
}

#syllabus-download li:last-child {
	margin-bottom: 0;
}

#syllabus-download a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--color-bk);
	color: var(--color-wh);
	text-decoration: none;
	padding: 25px 40px;
	transition: background-color 0.3s;
}

#syllabus-download a:hover {
	background-color: #555555;
}

#syllabus-download a span {
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	letter-spacing: 0.05em;
}

#syllabus-download a::after {
	content: "";
	width: 14px;
	height: 14px;
	border-right: 2px solid var(--color-wh);
	border-bottom: 2px solid var(--color-wh);
	transform: rotate(45deg);
}




.headtbl {
	margin-bottom: 60px;
}

.headtbl figure,
.headtbl picture {
	display: block;
	width: 100%;
}
.divtd .simple-frame-inner > figure {
	width: 100%;
}

.tblcell {
	display: flex;
	width: 100%;
}

.divth,
.divtd {
	flex: 1;
	display: flex;
	flex-direction: column;
	position: relative;
	font-weight: var(--fw-bold);
}

.tblcell .divth {
	flex: 3; /* 左側 */
	font-size: var(--fz-20);
}

.tblcell .divtd {
	flex: 7; /* 右側 */
	font-size: var(--fz-16);
}

.tblcell .divth .simple-frame-inner {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	padding: 40px 30px;
	width: 100%;
}
.tblcell .divtd .simple-frame-inner {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: left;
	position: relative;
	padding: 40px 30px;
	width: 100%;
}

.divth::before,
.divth::after,
.divtd::before,
.divtd::after {
	content: "";
	position: absolute;
	height: 1px;
	background: var(--color-bk);
}
.divth::before,
.divtd::before { top: 0; }
.divth::after,
.divtd::after { bottom: 0; }


.tblcell .divth::before,
.tblcell .divth::after { left: 15px; right: 15px; }
.tblcell .divtd::before,
.tblcell .divtd::after { left: 15px; right: 15px; }

.simple-frame-inner::before,
.simple-frame-inner::after {
	content: "";
	position: absolute;
	width: 1px;
	background: var(--color-bk);
	top: 15px;
	bottom: 15px;
}
.simple-frame-inner::before { left: 0; }
.simple-frame-inner::after { right: 0; }

.tblcell:first-child .divth::after,
.tblcell:first-child .divtd::after,
.tblcell .divth .simple-frame-inner::after {
	display: none;
}




.message-section {
	background-color: var(--color-beg5);
	padding: 70px 0;
}

.message-card {
	background: var(--color-wh);
	border-radius: 15px;
	padding: 40px 20px;
}

.message-flex {
	display: flex;
	gap: 50px;
	align-items: flex-start;
}

.message-visual {
	display: flex;
	flex-shrink: 0;
}

.message-visual h3 {
	writing-mode: vertical-rl;
	font-size: var(--fz-24);
	font-weight: var(--fw-bold);
	line-height: 1.8;
}

.message-photo {
	width: clamp(180px, 20vw, 240px);
}

.message-photo img {
	width: 100%;
	display: block;
	border-radius: 15px;
}

.message-content {
	flex: 1;
}

.message-content h3 span {
	font-size: var(--fz-15);
	display: block;
}

.message-content h3 {
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.cinner .message-content h3 + p {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	line-height: 1.8;
	padding-bottom: 0;
	margin-bottom: 0;
	text-align: justify;
}


.coursetitle {
	margin-bottom: 80px;
}

.coursetitle h3 {
	font-size: var(--fz-28);
	font-weight: var(--fw-bold);
	margin-bottom: 40px;
	padding-top: 20px;
	border-top: 1px solid var(--color-bk);
	position: relative;
	text-align: center;
	line-height: 1.2;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.coursetitle h3 small {
	position: absolute;
	left: 0;
	top: 30px;
	padding-left: 20px;
	display: inline-flex;
	align-items: center;
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
}

.coursetitle h3 small::after {
	content: "";
	display: inline-block;
	width: 1px;
	height: 80px;
	background: var(--color-bk);
	margin-left: 20px;
}

.fukidashi {
	display: inline-block;
	position: relative;
	padding: 8px 20px;
	margin-bottom: 15px;
	color: var(--color-wh);
	font-size: var(--fz-16);
	font-weight: var(--fw-bold);
	border-radius: 10px;
	line-height: 1.2;
}

.fukidashi::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 8px solid transparent;
}

.c-pt-day { background: var(--pt-day); }
.c-pt-day::after { border-top-color: var(--pt-day); }

.c-ot-day { background: var(--ot-day); }
.c-ot-day::after { border-top-color: var(--ot-day); }

.c-pt-night { background: var(--pt-night); }
.c-pt-night::after { border-top-color: var(--pt-night); }








.coursepoint {
	display: flex;
	gap: 30px;
	padding-bottom: 80px;
}

.coursepoint article {
	flex: 1;
	background: var(--color-beg5);
	border-radius: 15px;
	display: flex;
	flex-direction: column;
	padding: 0 15px 15px;
}

.coursepoint figure {
	margin: 0 -15px 35px;
	position: relative;
}

.coursepoint figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 15px 15px 0 0;
}

.coursepoint figure span {
	position: absolute;
	bottom: -35px;
	left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-wh);
	color: var(--pt-day);
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	width: 160px;
	height: 44px;
	border-radius: 10px;
	z-index: 10;
}
.coursepoint.ot figure span {
	color: var(--ot-day);
}
.coursepoint.ptn figure span {
	color: var(--pt-night);
}

.coursepoint span::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-top: 10px solid var(--color-wh);
	border-right: 8px solid transparent;
	border-left: 8px solid transparent;
}

.coursepoint article div {
	background: var(--color-wh);
	border-radius: 10px;
	padding: 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.coursepoint h4 {
	font-size: var(--fz-24);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	margin-bottom: 10px;
	text-align: center;
}

.coursepoint p {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	line-height: 1.7;
	padding: 0;
}






.coursefeature {
	display: flex;
	gap: 30px;
	padding-bottom: 80px;
}

.coursefeature article {
	flex: 1;
	border-radius: 15px;
	display: flex;
	flex-direction: column;
	padding: 0;
}

.coursefeature figure {
	margin: 0 0 16px;
	position: relative;
}

.coursefeature figure img {
	width: 100%;
	border-radius: 15px;
}
.coursefeature h4 {
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	line-height: 1.5;
	margin-bottom: 10px;
	text-align: center;
}

.coursefeature p {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	line-height: 1.7;
	padding: 0;
}


.timetable-sp { display: none; }
.timetable-pc { display: block; }

/* 時間割セクション全体 */
.timetable-section {
	margin-bottom: 80px;
}

/* 表示・非表示の基本制御 */
.timetable-pc { display: table; width: 100%; }
.timetable-sp { display: none; }

/* テーブル共通スタイル */
.timetable-section table {
	border: 1px solid var(--color-bk);
	table-layout: fixed;
	text-align: center;
}
.timetable-section th,
.timetable-section td {
	font-size: var(--fz-16);
	font-weight: var(--fw-bold);
	border: 1px solid var(--color-bk);
	padding: 10px;
}

.ptday .cl1 { background: color-mix(in srgb, var(--pt-day), transparent 80%); }
.otday .cl1 { background: color-mix(in srgb, var(--ot-day), transparent 80%); } 
.ptnight .cl1 { background: color-mix(in srgb, var(--pt-night), transparent 80%); }
.ptday .cl2, .otday .cl2, .ptnight .cl2 { background: var(--color-beg1); }

.timetable-note {
	margin-top: 10px;
	font-size: var(--fz-15);
	font-weight: var(--fw-medium);
	line-height: 1.8;
	padding-bottom: 0;
}






.curriculum-section {
	margin-bottom: 80px;
}


.curriculum-section .year {
	margin-bottom: 40px;
}


.curriculum-section .year h4 {
	background: color-mix(in srgb, var(--pt-day), transparent 80%);
	color: var(--color-bk);
	text-align: center;
	padding: 10px;
	border-radius: 10px;
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	margin-bottom: 20px;
}

/* グリッド配置 */
.curriculum-section .grid {
	display: flex;
	gap: 25px;
}

/* 各カラム共通 */
.curriculum-section .curr-col {
	flex: 1;
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.curriculum-section .curr-col h5 {
	color: var(--color-wh);
	padding: 10px;
	text-align: center;
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
}

.curriculum-section .curr-col div {
	padding: 15px 10px;
	flex: 1;
}

.curriculum-section .curr-col P {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	padding-bottom: 0;
}
.curriculum-section .curr-col .curr-lead {
	border-bottom: 1px solid var(--color-wh);
	min-height: 4em;
	margin-bottom: 1em;
}



/* --- カラー定義（PT用） --- */
.curriculum-section.pt .curr-col.base h5 { background: var(--pt-day); }
.curriculum-section.pt .curr-col.base div { background: color-mix(in srgb, var(--pt-day), transparent 80%); }
.curriculum-section.ot .curr-col.base h5 { background: #fabe00; }
.curriculum-section.ot .curr-col.base div { background: color-mix(in srgb, #fabe00, transparent 80%); }
.curriculum-section.ptn .curr-col.base h5 { background: #0086c9; }
.curriculum-section.ptn .curr-col.base div { background: color-mix(in srgb, #0086c9, transparent 80%); }

.curriculum-section.pt .curr-col.professional-base h5,
.curriculum-section.ot .curr-col.professional-base h5,
.curriculum-section.ptn .curr-col.professional-base h5 { background: #33c0ac; }
.curriculum-section.pt .curr-col.professional-base div,
.curriculum-section.ot .curr-col.professional-base div,
.curriculum-section.ptn .curr-col.professional-base div { background: color-mix(in srgb, #33c0ac, transparent 80%); }

.curriculum-section.pt .curr-col.professional h5,
.curriculum-section.ot .curr-col.professional h5,
.curriculum-section.ptn .curr-col.professional h5 { background: #2c9f39; }
.curriculum-section.pt .curr-col.professional div,
.curriculum-section.ot .curr-col.professional div,
.curriculum-section.ptn .curr-col.professional div { background: color-mix(in srgb, #2c9f39, transparent 80%); }

.curriculum-section.pt .curr-col.practice h5 { background: #eb9d14; }
.curriculum-section.pt .curr-col.practice div { background: color-mix(in srgb, #eb9d14, transparent 80%); }
.curriculum-section.ot .curr-col.practice h5 { background: #0086c9; }
.curriculum-section.ot .curr-col.practice div { background: color-mix(in srgb, #0086c9, transparent 80%); }
.curriculum-section.ptn .curr-col.practice h5 { background: #eb9d14; }
.curriculum-section.ptn .curr-col.practice div { background: color-mix(in srgb, #eb9d14, transparent 80%); }




.voice-section {
	margin-bottom: 80px;
}

.voice-section .splide__list {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.voice-section .voice-card {
	border-radius: 15px;
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.voice-section .voice-card figure {
	width: 100%;
	margin: 0;
}

.voice-section.pt .voice-card .body { background: var(--pt-day); }
.voice-section.ot .voice-card .body { background: var(--ot-day); }
.voice-section.ptn .voice-card .body { background: var(--pt-night); }




.voice-section .voice-card .body {
	padding: 15px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.voice-section .voice-card .name {
	color: var(--color-wh);
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	margin-bottom: 5px;
	padding-bottom: 0;
}

.voice-section .voice-card .name span {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
}

.voice-section .voice-card .from {
	color: var(--color-wh);
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	margin-bottom: 15px;
	padding-bottom: 0;
}

/* 白いテキストボックス */
.voice-section .voice-card .text {
	background: var(--color-wh);
	border-radius: 10px;
	padding: 15px;
	flex: 1;
	position: relative;
}

.voice-section .voice-card .text p {
	font-size: var(--fz-16);
	font-weight: var(--fw-medium);
	line-height: 1.8;
	color: var(--color-bk);
	text-align: justify;
	padding-bottom: 0;
}



.credit-section {
	margin-bottom: 60px;
}
.credit-section a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--color-bk);
	color: var(--color-wh);
	text-decoration: none;
	padding: 25px 40px;
	transition: background-color 0.3s;
}

.credit-section a.ptday { background: var(--pt-day); }
.credit-section a.otday { background: var(--ot-day); }
.credit-section a.ptnight { background: var(--pt-night); }


.credit-section a span {
	font-size: var(--fz-20);
	font-weight: var(--fw-bold);
	letter-spacing: 0.05em;
}

.credit-section a::after {
	content: "";
	width: 14px;
	height: 14px;
	border-right: 2px solid var(--color-wh);
	border-bottom: 2px solid var(--color-wh);
	transform: rotate(45deg);
}





/* /////////////////////////// */
/* /////////////////////////// */
/* /////////////////////////// */
/* スマホ用 */
@media (max-width: 769px) {



#syllabus-download a {
	padding: 20px;
}

#syllabus-download a span {
	padding-right: 15px;
}

#syllabus-download a::after {
	width: 10px;
	height: 10px;
}



.tblcell {
	display: block;
}

/* 2. 比率をリセットし、上下の不要な線を整理 */
.tblcell .divth,
.tblcell .divtd {
	width: 100%;
	flex: none;
}



.tblcell .divth .simple-frame-inner {
	padding: 20px 15px;
}
.tblcell .divtd .simple-frame-inner {
	padding: 20px 15px;
}
.tblcell:first-child .divth::after,
.tblcell:first-child .divtd::after,
.tblcell .divth .simple-frame-inner::after {
	display: block;
}
.tblcell:first-child .divth::after,
.tblcell .divth::after,
.tblcell:first-child .divtd::after {
	display: none;
}




	.message-section {
		padding: var(--sp-60) 0;
	}
	.message-card {
		padding: 0 20px 40px 0; 
		overflow: visible;
	}
	.message-flex {
		display: block;
	}
	.message-visual {
		display: flex;
		align-items: flex-start;
		margin-bottom: 30px;
	}
	.message-photo {
		width: 65%;
		margin: 0;
	}
	.message-photo img {
		border-radius: 15px 0 15px 0;
		width: 100%;
	}
	.message-visual h3 {
		margin-left: 15px;
		padding-top: 20px;
		line-height: 1.5;
	}
	
	.message-content {
		padding-left: 20px;
	}
	
	.message-content h3 {
		font-size: var(--fz-24);
		margin-bottom: 20px;
	}
	
	.message-content h3 span {
		font-size: var(--fz-13);
		margin-bottom: 5px;
	}
	
	.message-content p {
		text-align: left;
		font-size: var(--fz-15);
	}



	.coursetitle {
		margin-bottom: 40px;
	}
	
	.coursetitle h3 {
		margin-bottom: 20px;
		padding-top: 25px;
	}
	
	
	.coursetitle h3 small,
	.coursetitle h3 small::after {
		display: none;
	}



	.coursepoint {
		flex-direction: column;
		gap: 20px;
		padding-bottom: 50px;
	}

	.coursefeature {
		flex-direction: column;
		gap: 20px;
		padding-bottom: 50px;
	}

	.timetable-sp { display: table; width: 100%; }
	.timetable-pc { display: none; }


	.timetable-section table {
		table-layout: auto;
	}

	.timetable-section th,
	.timetable-section td {
		padding: 4px 2px;
		font-size: var(--fz-10);
	}


	.curriculum-section .grid {
		flex-direction: column;
		gap: 15px;
	}
	
	.curriculum-section .curr-col .curr-lead {
		min-height: auto;
		padding-bottom: 1em;
	}
	
	.curriculum-section .year h4 {
		font-size: var(--fz-16);
	}



	.voice-section .splide__track {
		/* 水平スワイプを優先し、垂直方向の意図しないガタつきを抑える */
		touch-action: pan-y; 
		-webkit-overflow-scrolling: touch;
	}
	.voice-section.cinner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.voice-section .voice-slider {
		position: relative;
		overflow: hidden; /* 突き出した矢印による横スクロールもこれで防止 */
	}

	.voice-section .splide.is-initialized .splide__list {
		display: flex !important;
		gap: 0 !important;
	}

	.voice-section .splide__slide {
		width: 100% !important;
		padding: 0 10px; /* カード間の余白 */
		flex-shrink: 0;
	}

	.voice-section .splide__arrows {
		position: absolute;
		top: 200px; /* 垂直方向の中央 */
		left: 0;
		right: 0;
	/*	transform: translateY(-50%);  自身の高さの半分戻して真ん中に */
		width: 100%;
		z-index: 10;
		pointer-events: none; /* 下のカードの操作を邪魔しない */
		display: block; /* 念のためdisplayを確保 */
	}

	.voice-section .splide__arrow {
		position: absolute;
		top: 0; /* 親の中央（top:50%）を起点にする */
		width: 40px;
		height: 40px;
		opacity: 1;
		border: none;
		pointer-events: auto; /* ボタンとしてのクリックを有効化 */
		transform: none; /* 余計な移動をリセット */
	}

	/* 矢印（Arrows）の画像を差し替え・位置調整 */
	.voice-section .splide__arrow--prev {
		left: 10px;
		background: url('../../images/common/arrow_prev.svg') no-repeat center / contain !important;
	}
	.voice-section .splide__arrow--next {
		right: 10px;
		background: url('../../images/common/arrow_next.svg') no-repeat center / contain !important;
	}
	
	/* 標準の矢印（>）を消して画像のみにする */
	.voice-section .splide__arrow svg {
		display: none;
	}
	



}