/* 季節講座（講座管理から反映した分）。kaki2026new の表・学年タブ・校舎選択に揃える。接頭辞 kzkp-。 */
.kzkp { margin: 0 0 1.5rem; }
.kzkp-title {
	font-weight: bold;
	font-size: 1.2rem;
	padding: 0.3rem 1rem;
	border-left: 10px solid #777;
	margin: 30px 5px 8px;
}
.kzkp-nichi { color: #d00; }
.kzkp-do { color: #06c; }
.kzkp-sp { display: none; }
@media not all and (min-width: 568px) {
	.kzkp-sp { display: inline; }
}
.kzkp-pick {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 10px 16px;
	margin: 8px 4px 12px;
}
.kzkp-select-wrap { margin: 0; flex: 1 1 16rem; }
.kzkp-select-label {
	display: block;
	font-size: 0.85rem;
	color: #555;
	margin-bottom: 4px;
}
.kzkp-select {
	width: 100%;
	max-width: 22rem;
	font-size: 1rem;
	padding: 8px 10px;
	border: 2px solid #c8c8c8;
	border-radius: 8px;
	background: #fff;
}
@keyframes kzkp-glow {
	0%, 100% {
		border-color: rgba(196, 36, 36, 0.28);
		box-shadow: 0 0 0 0 rgba(196, 36, 36, 0);
	}
	50% {
		border-color: #d41414;
		box-shadow: 0 0 0 4px rgba(212, 20, 20, 0.22);
	}
}
.kzkp-select.is-unset {
	animation: kzkp-glow 1s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
	.kzkp-select.is-unset {
		animation: none;
		border-color: #d41414;
	}
}
.kzkp-ph, .kzkp-empty {
	margin: 8px 4px 14px;
	padding: 12px;
	border: 1px dashed #c8c8c8;
	border-radius: 8px;
	color: #666;
	font-size: 0.92rem;
}
.kzkp-koza { color: #1d4f91; font-weight: 700; }
.kzkp-moshi { color: #0b6b4f; font-weight: 700; }
.kzkp-table-scroll {
	overflow-x: auto;
	overflow-y: hidden;
	width: 100%;
	-webkit-overflow-scrolling: touch;
	margin: 0 0 12px;
}
.kzkp-table {
	width: 100%;
	min-width: 28rem;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 0.95rem;
}
.kzkp-table th, .kzkp-table td {
	border-bottom: 1px solid #e0e0e0;
	padding: 6px 8px;
	vertical-align: middle;
	background: #fff;
}
.kzkp-table thead th { background: #e7e7e7; }
.kzkp-table th.kzkp-moshi-col,
.kzkp-table td.kzkp-moshi-col {
	border-left: 3px solid #333;
}
.kzkp-table tbody th {
	background: #f3f3f3;
	font-weight: bold;
	text-align: center;
	white-space: nowrap;
}
.kzkp-sticky { position: sticky; left: 0; z-index: 1; }
.kzkp-cap {
	position: relative;
	margin: 0 0 6px;
	padding: 10px 8px 6px 7.2rem;
	text-align: right;
	font-size: 0.8rem;
	color: #555;
	border-bottom: 2px solid #777;
}
.kzkp-cap span {
	position: absolute;
	left: 4px;
	top: 8px;
	font-size: 0.95rem;
	font-weight: bold;
	color: #666;
}
.kzkp-note {
	margin: 8px 4px;
	padding: 8px 12px;
	font-size: 0.85rem;
	color: #444;
	background: #efefef;
	border-left: 4px solid #5f5f5f;
	border-radius: 4px;
}
.kzkp-sub {
	margin: 0.2rem 0 0;
	font-size: 0.78rem;
	color: #666;
}
.kzkp-tabs { margin: 0 0 1.2rem; }
.kzkp-tablist {
	display: flex;
	gap: 3px;
	overflow-x: auto;
	padding: 8px 4px 0;
}
.kzkp-tab {
	position: relative;
	flex: 0 0 auto;
	min-height: 2.4rem;
	padding: 0.45rem 0.9rem 0.55rem;
	border: 1px solid #b0b0b0;
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	background: #c5c5c5;
	color: #555;
	font-weight: 700;
	font-size: 0.9rem;
}
.kzkp-tab input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.kzkp-tab:has(input:checked) {
	background: #fff;
	color: #1a1a1a;
	z-index: 2;
}
.kzkp-panels {
	border: 1px solid #b0b0b0;
	border-radius: 0 0 10px 10px;
	background: #fff;
	padding: 0.6rem 0.4rem 0.2rem;
}
.kzkp-tax { margin: 0 8px 8px; font-size: 0.85rem; color: #555; }
.kzkp-otoku { color: #a33; font-weight: 700; }
.kzkp-fee-notes {
	margin: 8px 8px 16px;
	padding: 0 0 0 1.2rem;
	font-size: 0.85rem;
	color: #444;
}
.kzkp-end { margin: 16px 8px; }
.kzkp-contact { width: 100%; text-align: center; margin: 20px 0 10px; }
.kzkp-apply {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	padding: 10px 18px 10px 10px;
	border-radius: 999px;
	background: linear-gradient(180deg, #4b97ff 0%, #1d6fe5 100%);
	color: #fff;
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.35;
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(29, 111, 229, 0.28);
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.kzkp-apply:hover,
.kzkp-apply:focus {
	color: #fff;
	text-decoration: none;
	transform: translateY(-2px);
	box-shadow: 0 10px 20px rgba(29, 111, 229, 0.36);
}
.kzkp-apply-ico {
	flex: 0 0 auto;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.22);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.72rem;
	line-height: 1;
}
.kzkp-apply-text { position: relative; z-index: 1; }
.kzkp-apply::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -40%;
	width: 38%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
	animation: kzkp-shine 2.8s ease-in-out infinite;
}
@keyframes kzkp-shine {
	0%, 58% { left: -40%; }
	100% { left: 130%; }
}
.kzkp-apply[hidden] { display: none !important; }
.kzkp-contact .kzkp-apply {
	font-size: 1.05rem;
	padding: 12px 22px 12px 12px;
	max-width: min(100%, 28rem);
}
.kzkp-fee-table thead th,
.kzkp-fee-table td { white-space: nowrap; }
.kzkp-table tbody th:has(.kzkp-fee-label) { white-space: normal; }
.kzkp-fee-label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 8px;
	width: 100%;
	vertical-align: middle;
}
.kzkp-fee-name { line-height: 1.35; }
.kzkp-apply-sm {
	--kzkp-badge: #1d6fe5;
	gap: 5px;
	max-width: none;
	flex: 0 0 auto;
	padding: 2px 10px 2px 2px;
	font-size: 14px;
	line-height: 1.3;
	font-weight: 700;
	background: var(--kzkp-badge);
	background: linear-gradient(180deg, color-mix(in srgb, var(--kzkp-badge) 64%, #fff) 0%, var(--kzkp-badge) 100%);
	box-shadow: 0 2px 6px rgba(20, 40, 80, 0.22);
	box-shadow: 0 2px 6px color-mix(in srgb, var(--kzkp-badge) 32%, transparent);
}
.kzkp-apply-sm .kzkp-apply-ico {
	width: 1.35rem;
	height: 1.35rem;
	font-size: 0.62rem;
}
.kzkp-apply-sm .kzkp-apply-text { white-space: nowrap; }
.kzkp-apply-sm:hover,
.kzkp-apply-sm:focus {
	transform: none;
	filter: brightness(1.06);
}
span.kzkp-apply-sm,
span.kzkp-apply-sm:hover,
span.kzkp-apply-sm:focus {
	cursor: default;
	filter: none;
}
@media (prefers-reduced-motion: reduce) {
	.kzkp-apply::after { animation: none; }
	.kzkp-apply:hover, .kzkp-apply:focus { transform: none; }
}
