/*
 * 教室を探す 専用スタイル
 * page-classroom.php でのみ読み込みます。
 */

.page-breadcrumb {
	box-sizing: border-box;
	max-width: 1120px;
	margin: 24px auto 0;
	padding: 0 24px;
}

.classroom-template-content {
	box-sizing: border-box;
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 56px 24px 88px;
}

.classroom-template-content > .classroom-page {
	width: 100%;
	max-width: none;
}

@media (max-width: 767px) {
	.page-breadcrumb {
		margin-top: 18px;
		padding: 0 16px;
	}

	.classroom-template-content {
		padding: 38px 16px 64px;
	}
}

:root {
	--jom-blue: #0878be;
	--jom-blue-dark: #075b91;
	--jom-blue-soft: #eef8ff;
	--jom-green: #16865c;
	--jom-green-soft: #eefaf5;
	--jom-orange: #e88817;
	--jom-orange-soft: #fff7e8;
	--jom-red: #c84b4b;
	--jom-red-soft: #fff1f1;
	--jom-text: #24313d;
	--jom-muted: #637381;
	--jom-border: #dce6ed;
	--jom-bg: #f6f9fb;
	--jom-fun-green: #137750;
	--jom-fun-yellow: #f9d746;
	--jom-fun-blue: #5bc0de;
	--jom-fun-pink: #f47b35;
	--jom-fun-purple: #9b59b6;
	--jom-white: #ffffff;
	--jom-shadow: 0 12px 34px rgba(35, 60, 80, 0.10);
	--jom-shadow-hover: 0 18px 42px rgba(35, 60, 80, 0.16);
	--jom-fun-bg: linear-gradient(135deg, #f0f9ff 0%, #e8f5e9 50%, #fff8e1 100%);
}

/* 楽しい雰囲気の教室ページデザイン */
.classroom-hub {
	background: var(--jom-fun-bg);
	min-height: 100vh;
}

.classroom-hub-hero {
	padding: 80px 24px 60px;
	text-align: center;
	background: linear-gradient(135deg, var(--jom-fun-green) 0%, var(--jom-fun-blue) 100%);
	color: #1f2d26;
	position: relative;
	overflow: hidden;
}

.classroom-hub-hero::before {
	content: "";
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
	animation: float 20s ease-in-out infinite;
}

@keyframes float {
	0%, 100% { transform: translate(0, 0) rotate(0deg); }
	50% { transform: translate(20px, 20px) rotate(180deg); }
}

.classroom-shell {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px;
	position: relative;
	z-index: 1;
}

.classroom-kicker {
	display: inline-block;
	margin: 0 0 16px;
	padding: 8px 20px;
	background: rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	font-size:17px;
	font-weight: 700;
	letter-spacing: 0.05em;
	backdrop-filter: blur(10px);
}

.classroom-hub-hero h1 {
	margin: 0 0 20px;
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 800;
	line-height: 1.3;
}

.classroom-hub-hero p {
	margin: 0;
	font-size: clamp(16px, 2vw, 18px);
	line-height: 1.8;
	opacity: 1;
	color:#2f3b35;
	font-weight:600;
}

.classroom-hub-section {
	padding: 60px 0;
}

.classroom-hub-section.is-soft {
	background: rgba(255, 255, 255, 0.5);
}

.classroom-hub-section h2 {
	margin: 0 0 32px;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	color: var(--jom-fun-green);
	text-align: center;
}

.classroom-compare-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}

.classroom-compare-card {
	background: white;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
}

.classroom-compare-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

.classroom-card__body {
	padding: 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.classroom-compare-card__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.classroom-area {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	background: var(--jom-fun-yellow);
	border-radius: 999px;
	font-size:17px;
	font-weight: 700;
	color: var(--jom-text);
}

.classroom-compare-card__top strong {
	font-size:17px;
	color: var(--jom-fun-green);
	font-weight: 700;
}

.classroom-compare-card h3 {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 800;
	color: var(--jom-text);
}

.classroom-card__lead {
	margin: 0 0 16px;
	font-size:17px;
	line-height: 1.7;
	color: var(--jom-muted);
	flex: 1;
}

.classroom-compare-card dl {
	margin: 0 0 16px;
	display: grid;
	gap: 8px;
}

.classroom-compare-card dl div {
	display: flex;
	gap: 8px;
	font-size:17px;
}

.classroom-compare-card dt {
	font-weight: 700;
	color: var(--jom-fun-green);
	min-width: 50px;
}

.classroom-compare-card dd {
	color: var(--jom-text);
}

.classroom-compare-card__search {
	margin: 0 0 16px;
	padding: 10px 14px;
	background: var(--jom-fun-blue-soft);
	border-radius: 12px;
	font-size:17px;
	font-weight: 700;
	color: var(--jom-fun-blue);
}

.classroom-detail-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 24px;
	background: var(--jom-fun-green);
	color: white;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.3s ease, transform 0.3s ease;
}

.classroom-detail-button:hover {
	background: var(--jom-fun-blue);
	transform: scale(1.05);
}

.classroom-card__visual {
	height: 200px;
	background: var(--jom-fun-bg);
	position: relative;
	overflow: hidden;
}

.classroom-card__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.classroom-card__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--jom-muted);
}

.classroom-card__placeholder span {
	font-size:17px;
	font-weight: 700;
	margin-bottom: 4px;
}

.classroom-card__placeholder small {
	font-size:17px;
}

.classroom-choice-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 20px;
}

.choice-green, .choice-orange, .choice-blue {
	padding: 24px;
	border-radius: 20px;
	background: white;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	transition: transform 0.3s ease;
}

.choice-green:hover, .choice-orange:hover, .choice-blue:hover {
	transform: translateY(-4px);
}

.choice-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 50%;
	font-size: 20px;
	font-weight: 800;
}

.choice-green .choice-icon {
	background: var(--jom-fun-green);
	color: white;
}

.choice-orange .choice-icon {
	background: var(--jom-fun-pink);
	color: white;
}

.choice-blue .choice-icon {
	background: var(--jom-fun-blue);
	color: white;
}

.choice-green h3, .choice-orange h3, .choice-blue h3 {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
}

.choice-green p, .choice-orange p, .choice-blue p {
	margin: 0 0 16px;
	font-size:17px;
	line-height: 1.7;
	color: var(--jom-muted);
}

.choice-green a {
	display: inline-block;
	padding: 10px 20px;
	background: var(--jom-fun-green);
	color: white;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.3s ease;
}

.choice-green a:hover {
	background: var(--jom-fun-blue);
}

.classroom-seo-guide {
	background: white;
	padding: 32px;
	border-radius: 20px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	margin-bottom: 32px;
}

.classroom-seo-guide p {
	margin: 0 0 16px;
	line-height: 1.8;
}

.classroom-seo-guide p:last-child {
	margin-bottom: 0;
}

.classroom-area-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.classroom-area-links a {
	padding: 12px 24px;
	background: var(--jom-fun-yellow);
	color: var(--jom-text);
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.3s ease, background 0.3s ease;
}

.classroom-area-links a:hover {
	transform: scale(1.05);
	background: var(--jom-fun-pink);
	color: white;
}

.classroom-hub-faq {
	max-width: 800px;
	margin: 0 auto;
}

.classroom-hub-faq details {
	margin-bottom: 16px;
	padding: 20px;
	background: white;
	border-radius: 16px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease;
}

.classroom-hub-faq details:hover {
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.classroom-hub-faq summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--jom-fun-green);
	list-style: none;
	position: relative;
	padding-right: 32px;
}

.classroom-hub-faq summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 20px;
	color: var(--jom-fun-green);
}

.classroom-hub-faq details[open] summary::after {
	content: "−";
}

.classroom-hub-faq p {
	margin: 16px 0 0 0;
	line-height: 1.8;
	color: var(--jom-muted);
}

.classroom-hub-cta {
	text-align: center;
	padding: 48px;
	background: linear-gradient(135deg, var(--jom-fun-green) 0%, var(--jom-fun-blue) 100%);
	border-radius: 24px;
	color: white;
}

.classroom-hub-cta h2 {
	margin: 0 0 16px;
	color: white;
}

.classroom-hub-cta p {
	margin: 0 0 24px;
	opacity: 0.95;
}

.classroom-hub-cta .classroom-detail-button {
	background: white;
	color: var(--jom-fun-green);
}

.classroom-hub-cta .classroom-detail-button:hover {
	background: var(--jom-fun-yellow);
	color: var(--jom-text);
}

@media (max-width: 767px) {
	.classroom-hub-hero {
		padding: 60px 16px 40px;
	}

	.classroom-shell {
		padding: 0 16px;
	}

	.classroom-hub-section {
		padding: 40px 0;
	}

	.classroom-compare-grid {
		grid-template-columns: 1fr;
	}

	.classroom-choice-grid {
		grid-template-columns: 1fr;
	}

	.classroom-seo-guide {
		padding: 24px;
	}

	.classroom-hub-cta {
		padding: 32px 24px;
	}
}

.classroom-page {
	color: var(--jom-text);
}

.classroom-page *,
.classroom-page *::before,
.classroom-page *::after {
	box-sizing: border-box;
}

.classroom-page a {
	text-underline-offset: 3px;
}

.classroom-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 15px 28px;
	border-radius: 999px !important;
	background: linear-gradient(135deg, var(--jom-blue) 0%, var(--jom-blue-dark) 100%) !important;
	color: #fff !important;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(8, 120, 190, 0.24);
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.classroom-cta .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(8, 120, 190, 0.30);
	opacity: 0.96;
}

.classroom-heading {
	margin: 0 0 20px;
	color: var(--jom-text);
}

.classroom-summary {
	margin: 0 0 42px;
}

.classroom-summary__intro {
	margin: 0 0 22px;
	color: var(--jom-muted);
	font-size:17px;
	line-height: 1.8;
}

.classroom-comparison {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
}

.classroom-comparison__card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 24px 22px;
	background: var(--jom-white);
	border: 1px solid var(--jom-border);
	border-radius: 18px;
	box-shadow: var(--jom-shadow);
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.classroom-comparison__card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 5px;
	background: var(--jom-blue);
}

.classroom-comparison__card:hover {
	transform: translateY(-3px);
	box-shadow: var(--jom-shadow-hover);
}

.classroom-comparison__card.is-coming-soon {
	background: linear-gradient(180deg, #fffaf0 0%, #fff 100%);
	border-color: #efd4a2;
}

.classroom-comparison__card.is-coming-soon::before {
	background: var(--jom-orange);
}

.classroom-comparison__badge {
	align-self: flex-start;
	margin: 0 0 12px;
	padding: 5px 10px;
	background: var(--jom-blue-soft);
	border-radius: 999px;
	color: var(--jom-blue-dark);
	font-size:17px;
	font-weight: 700;
	line-height: 1.4;
}

.classroom-comparison__card.is-coming-soon .classroom-comparison__badge {
	background: var(--jom-orange-soft);
	color: #9c5700;
}

.classroom-comparison__title {
	margin: 0 0 12px;
	font-size: 23px;
	line-height: 1.4;
}

.classroom-comparison__meta {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.classroom-comparison__meta li {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 8px;
	margin: 8px 0;
	font-size:17px;
	line-height: 1.6;
}

.classroom-comparison__meta strong {
	color: var(--jom-muted);
	font-size:17px;
}

.classroom-comparison__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	margin-top: auto;
	padding: 11px 16px;
	border: 2px solid var(--jom-blue);
	border-radius: 999px;
	color: var(--jom-blue-dark);
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.classroom-comparison__link:hover {
	background: var(--jom-blue);
	color: #fff;
}

.classroom-comparison__card.is-coming-soon .classroom-comparison__link {
	border-color: var(--jom-orange);
	color: #995300;
}

.classroom-comparison__card.is-coming-soon .classroom-comparison__link:hover {
	background: var(--jom-orange);
	color: #fff;
}

.class-guide {
	margin: 0 0 48px;
	padding: 28px;
	background: linear-gradient(135deg, #fffaf0 0%, #fff5df 100%);
	border: 1px solid #f0d39e;
	border-left: 7px solid var(--jom-orange);
	border-radius: 14px;
}

.class-guide h3 {
	margin: 0 0 18px;
	color: #8c4f04;
}

.class-guide__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 18px;
}

.class-guide__item {
	padding: 20px;
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(232, 136, 23, 0.24);
	border-radius: 12px;
}

.class-guide__item h4 {
	margin: 0 0 10px;
	font-size: 18px;
}

.class-guide__item p {
	margin: 0;
	line-height: 1.8;
}

.class-guide__note {
	margin: 0;
	line-height: 1.8;
}

.classroom-section {
	margin: 0 0 42px;
	padding: 34px;
	scroll-margin-top: 100px;
	background: var(--jom-white);
	border: 1px solid var(--jom-border);
	border-radius: 22px;
	box-shadow: var(--jom-shadow);
}

.classroom-section.is-coming-soon {
	background: linear-gradient(180deg, #fffaf1 0%, #fff 38%);
	border-color: #eccb8e;
}

.classroom-section__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin: 0 0 22px;
}

.classroom-section__title-wrap {
	min-width: 0;
}

.classroom-section__eyebrow {
	display: inline-block;
	margin: 0 0 8px;
	color: var(--jom-blue-dark);
	font-size:17px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.classroom-section.is-coming-soon .classroom-section__eyebrow {
	color: #9a5808;
}

.classroom-section h2 {
	margin: 0;
	font-size: clamp(26px, 4vw, 34px);
	line-height: 1.35;
}

.classroom-status {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 7px 13px;
	border-radius: 999px;
	background: var(--jom-green-soft);
	color: var(--jom-green);
	font-size:17px;
	font-weight: 700;
	white-space: nowrap;
}

.classroom-status.is-coming-soon {
	background: var(--jom-orange-soft);
	color: #9c5700;
}

.classroom-opening-note {
	margin: 0 0 22px;
	padding: 18px 20px;
	background: var(--jom-orange-soft);
	border: 1px solid #efce91;
	border-radius: 12px;
	color: #754000;
	font-size:17px;
	line-height: 1.8;
}

.classroom-opening-note strong {
	color: #8e4d00;
}

.classroom-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0 0 26px;
}

.classroom-info {
	margin: 0;
	padding: 18px 20px;
	background: var(--jom-bg);
	border: 1px solid #e5edf2;
	border-radius: 14px;
}

.classroom-info.is-wide {
	grid-column: 1 / -1;
}

.classroom-info dt {
	margin: 0 0 7px;
	color: var(--jom-muted);
	font-size:17px;
	font-weight: 700;
}

.classroom-info dd {
	margin: 0;
	font-size:17px;
	line-height: 1.8;
}

.classroom-info dd strong {
	color: var(--jom-text);
}

.classroom-cta {
	margin: 0 0 28px;
}

.classroom-cta .wp-block-button {
	width: min(100%, 560px);
}

.classroom-cta .wp-block-button__link {
	width: 100%;
}

.classroom-cta.is-coming-soon .wp-block-button__link {
	background: linear-gradient(135deg, var(--jom-orange) 0%, #b76508 100%) !important;
	box-shadow: 0 10px 24px rgba(232, 136, 23, 0.26);
}

.classroom-map {
	margin-top: 26px;
	padding: 14px;
	background: var(--jom-bg);
	border: 1px solid var(--jom-border);
	border-radius: 18px;
}

.classroom-map__title {
	margin: 0 0 12px;
	font-size: 18px;
}

.classroom-map__frame {
	position: relative;
	width: 100%;
	height: 360px;
	overflow: hidden;
	border-radius: 12px;
	background: #e9eef2;
}

.classroom-map__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	border: 0;
}

.classroom-map__note {
	margin: 10px 2px 0;
	color: var(--jom-muted);
	font-size:17px;
	line-height: 1.7;
}

.classroom-bottom-cta {
	margin: 52px 0 0;
	padding: 32px 28px;
	background: #075b91 !important;
	background-image: linear-gradient(135deg, #075b91 0%, #0878be 100%) !important;
	border: 1px solid #075b91;
	border-radius: 20px;
	color: #ffffff !important;
	text-align: center;
	box-shadow: 0 16px 36px rgba(7, 91, 145, 0.22);
}

.classroom-bottom-cta h2,
.classroom-bottom-cta h3,
.classroom-bottom-cta h4,
.classroom-bottom-cta p,
.classroom-bottom-cta li,
.classroom-bottom-cta span,
.classroom-bottom-cta strong {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}

.classroom-bottom-cta h2 {
	margin: 0 0 12px;
}

.classroom-bottom-cta p {
	margin: 0 0 20px;
	line-height: 1.8;
}

.classroom-bottom-cta a:not(.wp-block-button__link) {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: underline;
}

.classroom-bottom-cta .wp-block-button__link,
.classroom-bottom-cta .wp-block-button__link:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 14px 28px;
	background: #ffffff !important;
	background-image: none !important;
	border: 2px solid #ffffff !important;
	border-radius: 999px !important;
	color: #075b91 !important;
	-webkit-text-fill-color: #075b91 !important;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
}

.classroom-bottom-cta .wp-block-button__link:hover,
.classroom-bottom-cta .wp-block-button__link:focus {
	background: #eef8ff !important;
	background-image: none !important;
	color: #075b91 !important;
	-webkit-text-fill-color: #075b91 !important;
}

@media (max-width: 900px) {
	.classroom-comparison {
		grid-template-columns: 1fr;
	}

	.classroom-comparison__card {
		min-height: 0;
	}

	.class-guide__grid,
	.classroom-info-grid {
		grid-template-columns: 1fr;
	}

	.classroom-info.is-wide {
		grid-column: auto;
	}
}

@media (max-width: 600px) {
	.classroom-guide {
		margin-bottom: 22px;
		padding: 22px 16px;
		border-radius: 16px;
	}

	.classroom-guide p {
		font-size:17px;
	}

	.experienced-button {
		margin-bottom: 34px;
	}

	.classroom-cta .wp-block-button {
		width: 100%;
	}

	.classroom-cta .wp-block-button__link {
		min-height: 54px;
		padding: 13px 18px;
		font-size:17px !important;
	}

	.classroom-summary {
		margin-bottom: 34px;
	}

	.classroom-comparison {
		gap: 14px;
	}

	.classroom-comparison__card {
		padding: 22px 18px;
		border-radius: 16px;
	}

	.classroom-comparison__title {
		font-size: 21px;
	}

	.classroom-comparison__meta li {
		grid-template-columns: 66px minmax(0, 1fr);
		font-size:17px;
	}

	.class-guide {
		margin-bottom: 36px;
		padding: 22px 16px;
	}

	.class-guide__grid {
		gap: 12px;
	}

	.class-guide__item {
		padding: 17px 15px;
	}

	.classroom-section {
		margin-bottom: 26px;
		padding: 24px 16px;
		border-radius: 17px;
	}

	.classroom-section__header {
		display: block;
		margin-bottom: 18px;
	}

	.classroom-status {
		margin-top: 12px;
		white-space: normal;
		text-align: center;
	}

	.classroom-opening-note {
		padding: 16px 15px;
	}

	.classroom-info-grid {
		gap: 10px;
	}

	.classroom-info {
		padding: 16px 15px;
	}

	.classroom-map {
		padding: 8px;
		border-radius: 14px;
	}

	.classroom-map__title {
		margin: 5px 5px 10px;
		font-size:17px;
	}

	.classroom-map__frame {
		aspect-ratio: 4 / 3;
	}

	.classroom-bottom-cta {
		margin-top: 38px;
		padding: 26px 18px;
		border-radius: 17px;
	}
}

/* =========================================================
   ページ下部CTA：テーマ側の見出し・ボタン装飾を完全に上書き
   ========================================================= */
.classroom-page .classroom-bottom-cta {
	background-color: #075b91 !important;
	background-image: linear-gradient(135deg, #075b91 0%, #0878be 100%) !important;
	color: #ffffff !important;
}

.classroom-page .classroom-bottom-cta > h2.wp-block-heading,
.classroom-page .classroom-bottom-cta h2.wp-block-heading,
.classroom-page .classroom-bottom-cta h2 {
	display: block !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-shadow: none !important;
}

.classroom-page .classroom-bottom-cta h2::before,
.classroom-page .classroom-bottom-cta h2::after {
	display: none !important;
	content: none !important;
	background: none !important;
	border: 0 !important;
}

.classroom-page .classroom-bottom-cta > p,
.classroom-page .classroom-bottom-cta p {
	margin: 0 0 20px !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-weight: 500 !important;
	line-height: 1.8 !important;
}

.classroom-page .classroom-bottom-cta .wp-block-buttons {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

.classroom-page .classroom-bottom-cta .wp-block-button {
	width: min(100%, 560px) !important;
	margin: 0 !important;
}

.classroom-page .classroom-bottom-cta .wp-block-button > a.wp-block-button__link,
.classroom-page .classroom-bottom-cta a.wp-block-button__link,
.classroom-page .classroom-bottom-cta a.wp-element-button,
.classroom-page .classroom-bottom-cta .wp-block-button__link:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 56px !important;
	margin: 0 !important;
	padding: 14px 28px !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	background-image: none !important;
	border: 2px solid #ffffff !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16) !important;
	color: #075b91 !important;
	-webkit-text-fill-color: #075b91 !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
	text-shadow: none !important;
}

.classroom-page .classroom-bottom-cta .wp-block-button > a.wp-block-button__link:hover,
.classroom-page .classroom-bottom-cta .wp-block-button > a.wp-block-button__link:focus,
.classroom-page .classroom-bottom-cta a.wp-element-button:hover,
.classroom-page .classroom-bottom-cta a.wp-element-button:focus {
	background: #eef8ff !important;
	background-color: #eef8ff !important;
	background-image: none !important;
	border-color: #ffffff !important;
	color: #075b91 !important;
	-webkit-text-fill-color: #075b91 !important;
	transform: translateY(-2px);
}

/* =========================================================
   SEO導入・地域性・FAQ
========================================================= */

.classroom-seo-intro {
	margin: 0 0 30px;
	padding: 28px 30px;
	border: 1px solid #c9e6f8;
	border-radius: 20px;
	background: linear-gradient(135deg, #f8fcff 0%, #edf8ff 100%);
	box-shadow: 0 10px 28px rgba(8, 120, 190, 0.08);
}

.classroom-seo-intro__label {
	display: inline-flex;
	margin: 0 0 12px;
	padding: 5px 11px;
	border-radius: 999px;
	background: var(--jom-blue);
	color: #ffffff;
	font-size:17px;
	font-weight: 700;
}

.classroom-seo-intro p {
	margin: 0 0 12px;
	font-size: 17px;
	line-height: 1.9;
}

.classroom-seo-intro p:last-child {
	margin-bottom: 0;
}

.classroom-trust {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 0 0 38px;
	padding: 0;
	list-style: none;
}

.classroom-trust li {
	padding: 17px 16px;
	border: 1px solid var(--jom-border);
	border-radius: 14px;
	background: var(--jom-white);
	color: var(--jom-text);
	font-size:17px;
	font-weight: 700;
	line-height: 1.65;
	text-align: center;
	box-shadow: 0 8px 22px rgba(35, 60, 80, 0.07);
}

.classroom-local-copy {
	margin: 0 0 42px;
	padding: 26px 28px;
	border-left: 6px solid var(--jom-green);
	border-radius: 14px;
	background: var(--jom-green-soft);
}

.classroom-local-copy h2 {
	margin: 0 0 12px;
	color: #0d6946;
	font-size: clamp(23px, 3vw, 30px);
	line-height: 1.45;
}

.classroom-local-copy p {
	margin: 0 0 10px;
	line-height: 1.85;
}

.classroom-local-copy p:last-child {
	margin-bottom: 0;
}

.classroom-faq {
	margin: 48px 0 0;
}

.classroom-faq > h2 {
	margin: 0 0 20px;
	font-size: clamp(26px, 4vw, 34px);
	line-height: 1.4;
}

.classroom-faq details {
	margin: 0 0 12px;
	border: 1px solid var(--jom-border);
	border-radius: 14px;
	background: var(--jom-white);
	box-shadow: 0 8px 22px rgba(35, 60, 80, 0.06);
	overflow: hidden;
}

.classroom-faq summary {
	position: relative;
	padding: 18px 52px 18px 20px;
	color: var(--jom-text);
	font-weight: 700;
	line-height: 1.6;
	cursor: pointer;
	list-style: none;
}

.classroom-faq summary::-webkit-details-marker {
	display: none;
}

.classroom-faq summary::after {
	position: absolute;
	top: 50%;
	right: 18px;
	content: "＋";
	color: var(--jom-blue);
	font-size: 22px;
	transform: translateY(-50%);
}

.classroom-faq details[open] summary::after {
	content: "−";
}

.classroom-faq__answer {
	padding: 0 20px 20px;
	color: var(--jom-muted);
	line-height: 1.85;
}

.classroom-faq__answer p {
	margin: 0;
}

@media (max-width: 900px) {
	.classroom-trust {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.classroom-seo-intro {
		padding: 22px 17px;
		border-radius: 16px;
	}

	.classroom-seo-intro p {
		font-size:17px;
	}

	.classroom-local-copy {
		padding: 22px 17px;
	}

	.classroom-faq summary {
		padding: 16px 48px 16px 16px;
	}

	.classroom-faq__answer {
		padding: 0 16px 17px;
	}
}

/* =========================================================
   経験別の入口
========================================================= */
.classroom-paths {
	margin: 0 0 42px;
}

.classroom-paths > h2 {
	margin: 0 0 12px;
	font-size: clamp(25px, 4vw, 34px);
	line-height: 1.4;
}

.classroom-paths__lead {
	margin: 0 0 20px;
	color: var(--jom-muted);
	font-size:17px;
	line-height: 1.8;
}

.classroom-paths__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.classroom-path {
	display: flex;
	flex-direction: column;
	padding: 22px 20px;
	border: 1px solid var(--jom-border);
	border-radius: 17px;
	background: var(--jom-white);
	box-shadow: var(--jom-shadow);
}

.classroom-path.is-beginner {
	border-color: #b8decf;
	background: linear-gradient(180deg, #f0fbf6 0%, #ffffff 100%);
}

.classroom-path__label {
	display: inline-flex;
	align-self: flex-start;
	margin: 0 0 12px;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--jom-blue-soft);
	color: var(--jom-blue-dark);
	font-size:17px;
	font-weight: 700;
}

.classroom-path.is-beginner .classroom-path__label {
	background: var(--jom-green-soft);
	color: var(--jom-green);
}

.classroom-path h3 {
	margin: 0 0 10px;
	font-size: 20px;
	line-height: 1.45;
}

.classroom-path p {
	margin: 0 0 17px;
	color: var(--jom-muted);
	line-height: 1.75;
}

.classroom-path__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin-top: auto;
	padding: 11px 16px;
	border: 2px solid var(--jom-blue);
	border-radius: 999px;
	color: var(--jom-blue-dark);
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.classroom-path.is-beginner .classroom-path__link {
	border-color: var(--jom-green);
	color: #0d6946;
}

.classroom-path__link:hover,
.classroom-path__link:focus-visible {
	background: var(--jom-blue);
	color: #ffffff;
}

.classroom-path.is-beginner .classroom-path__link:hover,
.classroom-path.is-beginner .classroom-path__link:focus-visible {
	background: var(--jom-green);
	color: #ffffff;
}

.classroom-page a:focus-visible,
.classroom-page summary:focus-visible {
	outline: 3px solid rgba(8, 120, 190, 0.35);
	outline-offset: 3px;
}

@media (max-width: 900px) {
	.classroom-paths__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.classroom-path {
		padding: 20px 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.classroom-page *,
	.classroom-page *::before,
	.classroom-page *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

/* ページ内ナビゲーション */
.classroom-page-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 28px 0 34px;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--jom-border);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(36, 49, 61, 0.08);
}

.classroom-page-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 8px 16px;
	color: var(--jom-blue-dark);
	font-size:17px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	background: var(--jom-blue-soft);
	border-radius: 999px;
	transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.classroom-page-nav a:hover,
.classroom-page-nav a:focus-visible {
	color: #fff;
	background: var(--jom-blue);
	transform: translateY(-1px);
}

#kawasaki-classes,
#mizonokuchi,
#musashikosugi,
#noborito,
#classroom-faq-title {
	scroll-margin-top: 110px;
}

@media (max-width: 767px) {
	.classroom-page-nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		margin: 22px 0 28px;
		padding: 10px;
		border-radius: 14px;
	}

	.classroom-page-nav a {
		min-height: 44px;
		padding: 8px 10px;
		font-size:17px;
		text-align: center;
	}

	.classroom-page-nav a:first-child {
		grid-column: 1 / -1;
	}
}

/* ページ内移動とキーボード操作の補助 */
.classroom-section__back {
	margin: 24px 0 0;
	text-align: right;
}

.classroom-section__back a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--jom-blue-dark);
	font-weight: 700;
	text-decoration: none;
}

.classroom-section__back a::before {
	content: "↑";
	font-size: 0.95em;
}

.classroom-page a:focus-visible,
.classroom-page summary:focus-visible {
	outline: 3px solid var(--jom-orange);
	outline-offset: 4px;
	border-radius: 6px;
}

.classroom-page-nav a:focus-visible,
.classroom-comparison__link:focus-visible,
.classroom-path__link:focus-visible,
.classroom-cta .wp-block-button__link:focus-visible,
.classroom-bottom-cta .wp-block-button__link:focus-visible {
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.classroom-section__back {
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.classroom-page *,
	.classroom-page *::before,
	.classroom-page *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* 会場マップの補助導線・表示安定化 */
.classroom-map__frame iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	border: 0;
}

.classroom-map__external {
	margin: 14px 0 0;
}

.classroom-map__external a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 9px 16px;
	border: 1px solid var(--jom-blue);
	border-radius: 999px;
	color: var(--jom-blue-dark);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.classroom-map__external a::after {
	content: "↗";
	margin-left: 7px;
	font-size: 0.9em;
}

.classroom-map__external a:hover,
.classroom-map__external a:focus-visible {
	background: var(--jom-blue);
	color: #fff;
}


/* 印刷時は開催情報を読みやすくし、操作用要素を省略します。 */
@media print {
	.page-breadcrumb,
	.classroom-page-nav,
	.classroom-paths,
	.classroom-comparison__link,
	.classroom-cta,
	.classroom-map,
	.classroom-section__back,
	.classroom-bottom-cta,
	.site-header,
	.site-footer {
		display: none !important;
	}

	.classroom-template-content {
		max-width: none;
		padding: 0;
	}

	.classroom-section,
	.classroom-comparison__card,
	.class-guide,
	.classroom-faq details {
		box-shadow: none !important;
		break-inside: avoid;
	}

	.classroom-comparison {
		grid-template-columns: 1fr;
	}

	.classroom-section {
		margin-bottom: 24px;
		padding: 18px;
		border-color: #999;
	}

	.classroom-faq details {
		border-color: #999;
	}

	.classroom-faq__answer {
		display: block !important;
	}

	.classroom-faq summary {
		list-style: none;
	}

	.classroom-faq summary::after {
		display: none;
	}

	a[href]::after {
		content: none !important;
	}
}

/* 現在閲覧している教室をページ内ナビゲーションで示します。 */
.classroom-page-nav a[aria-current="location"] {
	color: #fff;
	background: var(--jom-blue);
	box-shadow: 0 5px 14px rgba(8, 120, 190, 0.22);
}

@media (prefers-reduced-motion: reduce) {
	.classroom-page-nav a[aria-current="location"] {
		box-shadow: none;
	}
}

/* =========================================================
   CTA buttons: center alignment on desktop and mobile
   ========================================================= */
.classroom-page .classroom-cta,
.classroom-page .classroom-bottom-cta .wp-block-buttons {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
}

.classroom-page .classroom-cta .wp-block-button,
.classroom-page .classroom-bottom-cta .wp-block-button {
	margin-right: auto !important;
	margin-left: auto !important;
}

/* =========================================================
   教室詳細：全面再設計（コンパクト・高可読・崩れ防止）
   ========================================================= */
.classroom-page .classroom-info-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 12px !important;
	margin: 0 0 18px !important;
	align-items: stretch;
}

.classroom-page .classroom-info,
.classroom-page .classroom-info.is-wide {
	display: block !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 14px 16px !important;
	background: #f7fafc !important;
	border: 1px solid #d9e6ed !important;
	border-left: 4px solid var(--jom-blue) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	writing-mode: horizontal-tb !important;
}

.classroom-page .classroom-info--schedule,
.classroom-page .classroom-info--access {
	grid-column: 1 / -1 !important;
}

.classroom-page .classroom-info--instructor {
	grid-column: 1 / -1 !important;
}

.classroom-page .classroom-info dt,
.classroom-page .classroom-info dd {
	display: block !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	writing-mode: horizontal-tb !important;
	word-break: normal !important;
	overflow-wrap: anywhere !important;
	white-space: normal !important;
}

.classroom-page .classroom-info dt {
	margin: 0 0 5px !important;
	padding: 0 !important;
	color: #4d6979 !important;
	font-size:17px !important;
	font-weight: 800 !important;
	line-height: 1.35 !important;
	letter-spacing: 0.02em !important;
}

.classroom-page .classroom-info dt::before {
	content: none !important;
}

.classroom-page .classroom-info dd {
	margin: 0 !important;
	padding: 0 !important;
	color: #17394c !important;
	font-size: clamp(17px, 1.3vw, 19px) !important;
	font-weight: 650 !important;
	line-height: 1.55 !important;
}

.classroom-page .classroom-info--schedule dd {
	font-size: clamp(17px, 1.35vw, 19px) !important;
	line-height: 1.55 !important;
}

.classroom-page .classroom-info--schedule dd strong {
	display: inline-block !important;
	margin: 0 0 1px !important;
	color: #075b91 !important;
	font-size: 1.05em !important;
	font-weight: 900 !important;
}

.classroom-page .classroom-info--venue dd,
.classroom-page .classroom-info--fee dd,
.classroom-page .classroom-info--instructor dd {
	font-size: clamp(18px, 1.5vw, 21px) !important;
	font-weight: 800 !important;
}

.classroom-page .classroom-info--instructor a {
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

.classroom-page .classroom-cta {
	margin: 0 0 20px !important;
}

.classroom-page .classroom-map {
	margin-top: 0 !important;
}

.classroom-page .classroom-map__frame {
	height: 360px !important;
}

.classroom-page .classroom-map__frame iframe {
	height: 100% !important;
}

@media (max-width: 767px) {
	.classroom-page .classroom-info-grid {
		grid-template-columns: 1fr 1fr !important;
		gap: 9px !important;
		margin-bottom: 15px !important;
	}

	.classroom-page .classroom-info,
	.classroom-page .classroom-info.is-wide {
		padding: 12px 13px !important;
		border-left-width: 3px !important;
		border-radius: 9px !important;
	}

	.classroom-page .classroom-info--schedule,
	.classroom-page .classroom-info--access,
	.classroom-page .classroom-info--instructor {
		grid-column: 1 / -1 !important;
	}

	.classroom-page .classroom-info dt {
		margin-bottom: 4px !important;
		font-size:17px !important;
	}

	.classroom-page .classroom-info dd,
	.classroom-page .classroom-info--schedule dd {
		font-size:17px !important;
		line-height: 1.52 !important;
	}

	.classroom-page .classroom-info--venue dd,
	.classroom-page .classroom-info--fee dd,
	.classroom-page .classroom-info--instructor dd {
		font-size: 17px !important;
	}

	.classroom-page .classroom-map__frame {
		height: 300px !important;
	}

	.classroom-page .classroom-map__frame iframe {
		height: 100% !important;
	}
}

@media (max-width: 430px) {
	.classroom-page .classroom-info--venue,
	.classroom-page .classroom-info--fee {
		grid-column: 1 / -1 !important;
	}
}

/* =========================================================
   教室詳細：PCは左情報・右地図、スマホは縦積み
   ========================================================= */
.classroom-page .classroom-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
	gap: 20px;
	align-items: stretch;
}

.classroom-page .classroom-detail-panel,
.classroom-page .classroom-map--compact {
	min-width: 0;
}

.classroom-page .classroom-detail-panel {
	display: flex;
	flex-direction: column;
	padding: 18px;
	background: #fff;
	border: 1px solid #d8e7ef;
	border-radius: 14px;
}

.classroom-page .classroom-detail-panel .classroom-info-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 10px !important;
	margin-bottom: 16px !important;
}

.classroom-page .classroom-detail-panel .classroom-info {
	position: relative;
	padding: 12px 14px 12px 43px !important;
	border-left: 0 !important;
	background: #f7fafc !important;
}

.classroom-page .classroom-detail-panel .classroom-info::before {
	position: absolute;
	top: 12px;
	left: 13px;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	color: var(--jom-blue);
	font-size:17px;
	font-weight: 900;
	line-height: 1;
}

.classroom-page .classroom-info--schedule::before { content: "▣"; }
.classroom-page .classroom-info--venue::before { content: "◆"; }
.classroom-page .classroom-info--fee::before { content: "¥"; }
.classroom-page .classroom-info--access::before { content: "⌖"; }
.classroom-page .classroom-info--instructor::before { content: "●"; }

.classroom-page .classroom-detail-panel .classroom-info dt {
	margin-bottom: 3px !important;
	font-size:17px !important;
}

.classroom-page .classroom-detail-panel .classroom-info dd,
.classroom-page .classroom-detail-panel .classroom-info--schedule dd {
	font-size: clamp(15px, 1.05vw, 17px) !important;
	line-height: 1.48 !important;
}

.classroom-page .classroom-detail-panel .classroom-info--venue dd,
.classroom-page .classroom-detail-panel .classroom-info--fee dd,
.classroom-page .classroom-detail-panel .classroom-info--instructor dd {
	font-size: clamp(16px, 1.2vw, 19px) !important;
}

.classroom-page .classroom-detail-panel .classroom-cta {
	margin: auto 0 0 !important;
	padding-top: 2px;
}

.classroom-page .classroom-map--compact {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	padding: 14px;
	background: #f7fafc;
	border: 1px solid #d8e7ef;
	border-radius: 14px;
}

.classroom-page .classroom-map--compact .classroom-map__title {
	margin: 0 0 10px;
	font-size:17px;
}

.classroom-page .classroom-map--compact .classroom-map__frame {
	flex: 1 1 auto;
	min-height: 280px;
	height: 100% !important;
	max-height: 360px;
	border-radius: 10px;
	overflow: hidden;
}

.classroom-page .classroom-map--compact .classroom-map__frame iframe {
	display: block;
	width: 100%;
	height: 100% !important;
	min-height: 280px;
	border: 0;
}

.classroom-page .classroom-map--compact .classroom-map__note {
	margin: 10px 0 5px;
	font-size:17px;
	line-height: 1.5;
}

.classroom-page .classroom-map--compact .classroom-map__external {
	margin: 0;
}

@media (max-width: 900px) {
	.classroom-page .classroom-detail-layout {
		grid-template-columns: 1fr;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame {
		height: 300px !important;
		max-height: none;
	}
}

@media (max-width: 600px) {
	.classroom-page .classroom-detail-panel {
		padding: 12px;
	}

	.classroom-page .classroom-detail-panel .classroom-info-grid {
		grid-template-columns: 1fr !important;
	}

	.classroom-page .classroom-detail-panel .classroom-info,
	.classroom-page .classroom-detail-panel .classroom-info.is-wide {
		grid-column: 1 / -1 !important;
		padding: 11px 12px 11px 40px !important;
	}

	.classroom-page .classroom-map--compact {
		padding: 12px;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame,
	.classroom-page .classroom-map--compact .classroom-map__frame iframe {
		height: 260px !important;
		min-height: 260px;
	}
}

/* =========================================================
   Stage 15：教室詳細を「左：情報／右：地図」の完成形へ
   ========================================================= */
.classroom-page .classroom-detail-layout {
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
	gap: 18px;
	align-items: stretch;
}

.classroom-page .classroom-detail-panel {
	padding: 20px;
	border: 1px solid #cfe1ea;
	box-shadow: 0 10px 28px rgba(8, 120, 139, 0.08);
}

.classroom-page .classroom-detail-panel .classroom-info-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0 !important;
	margin: 0 0 18px !important;
	background: #fff;
	border: 1px solid #dce9ef;
	border-radius: 12px;
	overflow: hidden;
}

.classroom-page .classroom-detail-panel .classroom-info,
.classroom-page .classroom-detail-panel .classroom-info.is-wide {
	position: relative;
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 10px;
	row-gap: 2px;
	margin: 0 !important;
	padding: 15px 16px !important;
	background: #fff !important;
	border: 0 !important;
	border-bottom: 1px solid #e5eef2 !important;
	border-radius: 0 !important;
}

.classroom-page .classroom-detail-panel .classroom-info:nth-child(odd):not(.is-wide) {
	border-right: 1px solid #e5eef2 !important;
}

.classroom-page .classroom-detail-panel .classroom-info.is-wide {
	grid-column: 1 / -1 !important;
}

.classroom-page .classroom-detail-panel .classroom-info:last-child {
	border-bottom: 0 !important;
}

.classroom-page .classroom-detail-panel .classroom-info::before {
	content: none !important;
}

.classroom-page .classroom-detail-panel .classroom-info dt {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	margin: 0 0 4px !important;
	color: #476675;
	font-size:17px !important;
	font-weight: 800;
	letter-spacing: .02em;
}

.classroom-page .classroom-info__icon {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	color: #fff;
	background: var(--jom-blue);
	border-radius: 50%;
	box-shadow: 0 4px 10px rgba(8, 120, 139, .18);
}

.classroom-page .classroom-info__icon svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.classroom-page .classroom-detail-panel .classroom-info dd,
.classroom-page .classroom-detail-panel .classroom-info--schedule dd {
	grid-column: 2;
	margin: 0 !important;
	color: #18333f;
	font-size: clamp(15px, 1.05vw, 17px) !important;
	font-weight: 650;
	line-height: 1.48 !important;
}

.classroom-page .classroom-detail-panel .classroom-info--venue dd,
.classroom-page .classroom-detail-panel .classroom-info--fee dd,
.classroom-page .classroom-detail-panel .classroom-info--instructor dd {
	font-size: clamp(16px, 1.18vw, 19px) !important;
}

.classroom-page .classroom-detail-panel .classroom-info--schedule dd strong {
	display: inline-block;
	margin-bottom: 2px;
	color: var(--jom-blue-dark);
	font-size: 1.08em;
}

.classroom-page .classroom-detail-panel .classroom-cta {
	margin-top: auto !important;
	padding-top: 0 !important;
}

.classroom-page .classroom-detail-panel .classroom-cta .wp-block-button {
	width: 100%;
}

.classroom-page .classroom-detail-panel .classroom-cta .wp-block-button__link {
	width: 100%;
	min-height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px !important;
	font-size:17px !important;
	font-weight: 800;
}

.classroom-page .classroom-map--compact {
	padding: 14px;
	background: #f3f8fb;
	border: 1px solid #cfe1ea;
	box-shadow: 0 10px 28px rgba(8, 120, 139, 0.08);
}

.classroom-page .classroom-map--compact .classroom-map__title {
	margin: 0 0 10px;
	color: #355866;
	font-size:17px;
	font-weight: 800;
}

.classroom-page .classroom-map--compact .classroom-map__frame {
	flex: 0 0 auto;
	height: 300px !important;
	min-height: 300px;
	max-height: 300px;
	border: 1px solid #d5e3ea;
	border-radius: 10px;
	background: #eaf2f6;
}

.classroom-page .classroom-map--compact .classroom-map__frame iframe {
	height: 300px !important;
	min-height: 300px;
}

.classroom-page .classroom-map--compact .classroom-map__note {
	margin: 10px 0 6px;
	font-size:17px;
}

.classroom-page .classroom-map--compact .classroom-map__external a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
}

@media (max-width: 900px) {
	.classroom-page .classroom-detail-layout {
		grid-template-columns: 1fr;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame,
	.classroom-page .classroom-map--compact .classroom-map__frame iframe {
		height: 290px !important;
		min-height: 290px;
		max-height: none;
	}
}

@media (max-width: 600px) {
	.classroom-page .classroom-detail-panel {
		padding: 12px;
	}

	.classroom-page .classroom-detail-panel .classroom-info-grid {
		grid-template-columns: 1fr !important;
	}

	.classroom-page .classroom-detail-panel .classroom-info,
	.classroom-page .classroom-detail-panel .classroom-info.is-wide {
		grid-column: 1 / -1 !important;
		padding: 13px 12px !important;
		border-right: 0 !important;
	}

	.classroom-page .classroom-detail-panel .classroom-info dt {
		grid-template-columns: 32px minmax(0, 1fr);
		gap: 9px;
	}

	.classroom-page .classroom-info__icon {
		width: 28px;
		height: 28px;
	}

	.classroom-page .classroom-detail-panel .classroom-info dd,
	.classroom-page .classroom-detail-panel .classroom-info--schedule dd {
		grid-column: 2;
		font-size:17px !important;
	}

	.classroom-page .classroom-map--compact {
		padding: 11px;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame,
	.classroom-page .classroom-map--compact .classroom-map__frame iframe {
		height: 250px !important;
		min-height: 250px;
	}
}

/* =========================================================
   Stage 16：情報グリッド＋横長地図の一体型カード
   ========================================================= */
.classroom-page .classroom-detail-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	padding: 18px;
	background: #fff;
	border: 1px solid #cfe1ea;
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(8, 120, 139, .08);
}

.classroom-page .classroom-detail-panel,
.classroom-page .classroom-map--compact {
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}

.classroom-page .classroom-detail-panel .classroom-info-grid {
	margin: 0 !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.classroom-page .classroom-detail-panel .classroom-info--schedule {
	grid-column: 1 / -1 !important;
}

.classroom-page .classroom-detail-panel .classroom-info--access,
.classroom-page .classroom-detail-panel .classroom-info--instructor {
	grid-column: auto !important;
}

.classroom-page .classroom-map--compact .classroom-map__title {
	margin: 2px 0 9px;
	font-size:17px;
}

.classroom-page .classroom-map--compact .classroom-map__frame {
	position: relative;
	height: auto !important;
	min-height: 0;
	max-height: none;
	aspect-ratio: 16 / 6;
	border-radius: 12px;
	overflow: hidden;
}

.classroom-page .classroom-map--compact .classroom-map__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	min-height: 0;
	border: 0;
}

.classroom-page .classroom-map--compact .classroom-map__note {
	margin: 8px 0 0;
	text-align: center;
}

.classroom-page .classroom-actions {
	display: grid;
	grid-template-columns: minmax(220px, .75fr) minmax(320px, 1.25fr);
	gap: 12px;
	align-items: stretch;
}

.classroom-page .classroom-actions .classroom-map__external,
.classroom-page .classroom-actions .classroom-cta,
.classroom-page .classroom-actions .wp-block-button {
	width: 100%;
	margin: 0 !important;
}

.classroom-page .classroom-actions .classroom-map__external a,
.classroom-page .classroom-actions .classroom-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	padding: 11px 18px !important;
	border-radius: 9px;
	font-size:17px !important;
	font-weight: 800;
	text-align: center;
}

.classroom-page .classroom-actions .classroom-map__external a {
	border: 2px solid var(--jom-blue);
	background: #fff;
	color: var(--jom-blue-dark);
	text-decoration: none;
}

.classroom-page .classroom-actions .classroom-map__external a:hover,
.classroom-page .classroom-actions .classroom-map__external a:focus-visible {
	background: #edf8fb;
}

@media (max-width: 760px) {
	.classroom-page .classroom-detail-layout {
		padding: 13px;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame {
		aspect-ratio: 16 / 8.5;
	}

	.classroom-page .classroom-actions {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.classroom-page .classroom-detail-panel .classroom-info-grid {
		grid-template-columns: 1fr !important;
	}

	.classroom-page .classroom-detail-panel .classroom-info--access,
	.classroom-page .classroom-detail-panel .classroom-info--instructor {
		grid-column: 1 / -1 !important;
	}

	.classroom-page .classroom-map--compact .classroom-map__frame {
		aspect-ratio: 4 / 3;
	}
}

/* =========================================================
   Stage 17：開催日時を一覧化し、クラス種別を見分けやすくする
   ========================================================= */
.classroom-page .classroom-schedule-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.classroom-page .classroom-schedule-list li {
	display: grid;
	grid-template-columns: minmax(74px, .8fr) minmax(112px, 1fr) max-content;
	gap: 10px;
	align-items: center;
	min-height: 38px;
	padding: 7px 9px;
	border: 1px solid #dbe8ee;
	border-radius: 9px;
	background: #fff;
}

.classroom-page .classroom-schedule-list__day {
	font-weight: 800;
	color: var(--jom-blue-dark);
}

.classroom-page .classroom-schedule-list__time {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}

.classroom-page .classroom-class-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #e7f7f2;
	color: #12664f;
	font-size:17px;
	font-weight: 800;
	white-space: nowrap;
}

.classroom-page .classroom-class-chip.is-experienced {
	background: #eef3fb;
	color: #315b91;
}

.classroom-page .classroom-schedule-list small {
	grid-column: 2 / -1;
	margin-top: -4px;
	font-size:17px;
	font-weight: 700;
	color: #9a5d00;
}

@media (max-width: 600px) {
	.classroom-page .classroom-schedule-list li {
		grid-template-columns: minmax(64px, .7fr) minmax(104px, 1fr);
		gap: 7px 9px;
	}

	.classroom-page .classroom-class-chip {
		grid-column: 2;
		justify-self: start;
	}

	.classroom-page .classroom-schedule-list small {
		grid-column: 2;
	}
}

/* =========================================================
   Stage 18：教室カードの視覚的な統一と一覧美の向上
   ========================================================= */
.classroom-page .classroom-section {
	position: relative;
	padding-top: 24px;
}

.classroom-page .classroom-section__header {
	margin-bottom: 10px;
	padding-bottom: 14px;
	border-bottom: 1px solid #d9e7ec;
}

.classroom-page .classroom-section__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 7px;
	font-size:17px;
	font-weight: 800;
	letter-spacing: .06em;
}

.classroom-page .classroom-section__eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--jom-blue);
	box-shadow: 0 0 0 4px rgba(8, 120, 139, .11);
}

.classroom-page .classroom-feature-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0 0 12px;
}

.classroom-page .classroom-feature-badges span {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 5px 11px;
	border: 1px solid #c9e4df;
	border-radius: 999px;
	background: #eef9f6;
	color: #17624f;
	font-size:17px;
	font-weight: 800;
	line-height: 1.3;
}

.classroom-page .classroom-feature-badges span::before {
	content: "✓";
	margin-right: 5px;
	font-size:17px;
}

.classroom-page .classroom-feature-badges.is-coming-soon span {
	border-color: #ead9b9;
	background: #fff8e9;
	color: #82540a;
}

.classroom-page .classroom-detail-layout {
	gap: 16px;
	padding: 20px;
	border-color: #c7dce5;
	box-shadow: 0 12px 34px rgba(28, 84, 105, .10);
}

.classroom-page .classroom-detail-panel .classroom-info-grid {
	grid-auto-rows: minmax(0, auto);
	gap: 11px !important;
}

.classroom-page .classroom-detail-panel .classroom-info {
	display: flex;
	flex-direction: column;
	min-height: 126px;
	margin: 0 !important;
	padding: 14px 15px !important;
	border: 1px solid #d8e6ec !important;
	border-radius: 12px !important;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%) !important;
}

.classroom-page .classroom-detail-panel .classroom-info--schedule {
	min-height: 0;
}

.classroom-page .classroom-detail-panel .classroom-info dt {
	margin-bottom: 8px !important;
	padding-bottom: 8px;
	border-bottom: 1px solid #e4edf1;
}

.classroom-page .classroom-detail-panel .classroom-info dd {
	margin-top: auto !important;
}

.classroom-page .classroom-info__icon {
	flex: 0 0 31px;
	width: 31px;
	height: 31px;
	border-radius: 9px;
	background: #e7f5f7;
}

.classroom-page .classroom-map--compact {
	padding-top: 2px;
}

.classroom-page .classroom-map--compact .classroom-map__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 9px;
	font-size:17px;
	font-weight: 800;
	color: #244f5f;
}

.classroom-page .classroom-map--compact .classroom-map__title::before {
	content: "";
	width: 18px;
	height: 18px;
	border: 5px solid #dceff2;
	border-radius: 50%;
	background: var(--jom-blue);
}

.classroom-page .classroom-map--compact .classroom-map__frame {
	border: 1px solid #c7dbe3;
	box-shadow: 0 7px 18px rgba(25, 73, 91, .08);
}

.classroom-page .classroom-actions {
	padding-top: 2px;
}

.classroom-page .classroom-actions .classroom-map__external a,
.classroom-page .classroom-actions .classroom-cta .wp-block-button__link {
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.classroom-page .classroom-actions .classroom-map__external a:hover,
.classroom-page .classroom-actions .classroom-map__external a:focus-visible,
.classroom-page .classroom-actions .classroom-cta .wp-block-button__link:hover,
.classroom-page .classroom-actions .classroom-cta .wp-block-button__link:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 7px 16px rgba(20, 79, 98, .14);
}

@media (max-width: 760px) {
	.classroom-page .classroom-section {
		padding-top: 18px;
	}

	.classroom-page .classroom-detail-layout {
		padding: 14px;
	}

	.classroom-page .classroom-detail-panel .classroom-info {
		min-height: 116px;
	}
}

@media (max-width: 600px) {
	.classroom-page .classroom-feature-badges {
		gap: 6px;
	}

	.classroom-page .classroom-feature-badges span {
		min-height: 28px;
		padding: 4px 9px;
		font-size:17px;
	}

	.classroom-page .classroom-detail-panel .classroom-info {
		min-height: 0;
	}
}

/* =========================================================
   Stage 19：開催日時の集約・情報カードの横長感解消・アイコン視認性改善
   ========================================================= */
.classroom-page .classroom-detail-panel {
	max-width: 820px;
	margin-inline: auto;
}

.classroom-page .classroom-detail-panel .classroom-info-grid {
	grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr) !important;
	gap: 10px !important;
}

.classroom-page .classroom-detail-panel .classroom-info {
	min-height: 112px;
	padding: 13px 14px !important;
}

.classroom-page .classroom-detail-panel .classroom-info--schedule {
	min-height: 0;
}

.classroom-page .classroom-info__icon {
	width: 32px;
	height: 32px;
	color: #fff;
	background: var(--jom-blue);
	border: 1px solid rgba(0, 83, 103, .18);
	border-radius: 50%;
	box-shadow: 0 4px 10px rgba(8, 120, 139, .22);
}

.classroom-page .classroom-info__icon svg {
	width: 17px;
	height: 17px;
	stroke-width: 2.15;
}

.classroom-page .classroom-detail-panel .classroom-info dt {
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 9px;
	margin-bottom: 7px !important;
	padding-bottom: 7px;
	color: #315663;
}

.classroom-page .classroom-schedule-list--grouped {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.classroom-page .classroom-schedule-list--grouped > li {
	display: grid;
	grid-template-columns: minmax(74px, auto) minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	padding: 9px 10px;
	background: #f4f9fb;
	border: 1px solid #dce9ee;
	border-radius: 10px;
}

.classroom-page .classroom-schedule-list--grouped .classroom-schedule-list__day {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 4px 9px;
	color: #075d70;
	background: #dff1f4;
	border-radius: 8px;
	font-size:17px;
	font-weight: 800;
	white-space: nowrap;
}

.classroom-page .classroom-schedule-list__slots {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.classroom-page .classroom-schedule-list__slots > span {
	display: flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	flex-wrap: wrap;
}

.classroom-page .classroom-schedule-list__slots > span + span {
	padding-top: 6px;
	border-top: 1px dashed #ccdfe6;
}

.classroom-page .classroom-schedule-list__time {
	font-size:17px;
	font-weight: 800;
	white-space: nowrap;
}

.classroom-page .classroom-class-chip {
	font-size:17px;
	line-height: 1.35;
	white-space: nowrap;
}

.classroom-page .classroom-schedule-list__slots small {
	flex-basis: 100%;
	margin-top: -2px;
	font-size:17px;
	line-height: 1.4;
}

@media (max-width: 760px) {
	.classroom-page .classroom-detail-panel {
		max-width: none;
	}

	.classroom-page .classroom-detail-panel .classroom-info-grid {
		grid-template-columns: 1fr !important;
	}

	.classroom-page .classroom-detail-panel .classroom-info {
		min-height: 0;
	}
}

@media (max-width: 480px) {
	.classroom-page .classroom-schedule-list--grouped > li {
		grid-template-columns: 1fr;
		gap: 7px;
	}

	.classroom-page .classroom-schedule-list--grouped .classroom-schedule-list__day {
		justify-self: start;
	}
}

/* =========================================================
   Stage 20：住所表記の4行化・情報カードの縦位置と密度を最終調整
   ========================================================= */
.classroom-page .classroom-detail-panel .classroom-info--access dd.classroom-address {
	font-size:17px;
	line-height: 1.58;
	letter-spacing: .01em;
}

.classroom-page .classroom-detail-panel .classroom-info--access,
.classroom-page .classroom-detail-panel .classroom-info--instructor {
	display: flex;
	flex-direction: column;
}

.classroom-page .classroom-detail-panel .classroom-info--access dd,
.classroom-page .classroom-detail-panel .classroom-info--instructor dd {
	margin-top: auto;
}

.classroom-page .classroom-detail-panel .classroom-info--instructor dd {
	display: flex;
	align-items: center;
	min-height: 42px;
}

@media (max-width: 760px) {
	.classroom-page .classroom-detail-panel .classroom-info--access dd,
	.classroom-page .classroom-detail-panel .classroom-info--instructor dd {
		margin-top: 0;
	}
}

/* =========================================================
   Stage 22：各教室の写真3枚を正しい教室カードへ分離配置
   ========================================================= */
@media (min-width: 761px) {
	.classroom-page .classroom-detail-layout.has-gallery {
		grid-template-columns: minmax(0, 1.18fr) minmax(310px, .82fr);
		align-items: stretch;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-detail-panel {
		grid-column: 1;
		max-width: none;
		margin: 0;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-photo-gallery {
		grid-column: 2;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-map--compact,
	.classroom-page .classroom-detail-layout.has-gallery .classroom-actions {
		grid-column: 1 / -1;
	}
}

.classroom-page .classroom-photo-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: minmax(210px, 1.45fr) minmax(130px, .85fr);
	gap: 10px;
	min-width: 0;
}

.classroom-page .classroom-photo-gallery__item {
	position: relative;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	border: 1px solid #cbdde4;
	border-radius: 13px;
	background: #edf4f6;
	box-shadow: 0 7px 18px rgba(25, 73, 91, .09);
}

.classroom-page .classroom-photo-gallery__item.is-main {
	grid-column: 1 / -1;
}

.classroom-page .classroom-photo-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform .35s ease;
}

.classroom-page .classroom-photo-gallery__item:hover img {
	transform: scale(1.025);
}

@media (max-width: 980px) and (min-width: 761px) {
	.classroom-page .classroom-detail-layout.has-gallery {
		grid-template-columns: minmax(0, 1.08fr) minmax(270px, .92fr);
	}

	.classroom-page .classroom-photo-gallery {
		grid-template-rows: minmax(190px, 1.35fr) minmax(120px, .8fr);
	}
}

@media (max-width: 760px) {
	.classroom-page .classroom-detail-layout.has-gallery {
		display: grid;
		grid-template-columns: 1fr;
	}

	.classroom-page .classroom-photo-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 220px 135px;
		order: 2;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-map--compact {
		order: 3;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-actions {
		order: 4;
	}
}

@media (max-width: 480px) {
	.classroom-page .classroom-photo-gallery {
		grid-template-rows: 190px 112px;
		gap: 7px;
	}

	.classroom-page .classroom-photo-gallery__item {
		border-radius: 10px;
	}
}

/* =========================================================
   Stage 23：写真下端を情報欄に揃え、クリック拡大を追加
   ========================================================= */
@media (min-width: 761px) {
	.classroom-page .classroom-detail-layout.has-gallery {
		align-items: stretch;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-detail-panel,
	.classroom-page .classroom-detail-layout.has-gallery .classroom-photo-gallery {
		height: 100%;
	}

	.classroom-page .classroom-photo-gallery {
		grid-template-rows: minmax(0, 1.58fr) minmax(0, 1fr);
		min-height: 0;
	}
}

.classroom-page .classroom-photo-gallery__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: inherit;
	cursor: zoom-in;
}

.classroom-page .classroom-photo-gallery__link::after {
	content: "拡大";
	position: absolute;
	right: 8px;
	bottom: 8px;
	padding: 4px 9px;
	border-radius: 999px;
	background: rgba(0, 75, 105, .88);
	color: #fff;
	font-size:17px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .04em;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

.classroom-page .classroom-photo-gallery__link:focus-visible {
	outline: 3px solid #f4a300;
	outline-offset: -3px;
}

.classroom-lightbox {
	width: min(92vw, 1120px);
	max-width: none;
	max-height: 90vh;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: transparent;
	overflow: visible;
}

.classroom-lightbox::backdrop {
	background: rgba(4, 20, 29, .82);
	backdrop-filter: blur(3px);
}

.classroom-lightbox__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	max-height: 90vh;
}

.classroom-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: 88vh;
	width: auto;
	height: auto;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 60px rgba(0, 0, 0, .38);
}

.classroom-lightbox__close {
	position: absolute;
	top: -15px;
	right: -15px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: #006b8f;
	color: #fff;
	font-size: 30px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 5px 18px rgba(0, 0, 0, .3);
}

.classroom-lightbox__close:hover,
.classroom-lightbox__close:focus-visible {
	background: #004f6b;
}

@media (max-width: 760px) {
	.classroom-page .classroom-photo-gallery {
		height: auto;
	}

	.classroom-lightbox {
		width: 94vw;
	}

	.classroom-lightbox__close {
		top: -12px;
		right: -4px;
		width: 40px;
		height: 40px;
		font-size: 27px;
	}
}

/* =========================================================
   Stage 24：写真3枚を情報欄の下端以内へ厳密に収める
   ========================================================= */
@media (min-width: 761px) {
	.classroom-page .classroom-detail-layout.has-gallery .classroom-photo-gallery {
		align-self: start;
		min-height: 0;
		max-height: none;
		overflow: hidden;
		grid-template-rows: minmax(0, 1.58fr) minmax(0, 1fr);
	}

	.classroom-page .classroom-photo-gallery__item,
	.classroom-page .classroom-photo-gallery__link,
	.classroom-page .classroom-photo-gallery__item img {
		min-height: 0;
	}
}

/* =========================================================
   Stage 25：教室ごとに写真欄を情報欄と同じ高さへ同期
   ========================================================= */
@media (min-width: 761px) {
	.classroom-page .classroom-detail-layout.has-gallery {
		align-items: start;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-detail-panel {
		height: auto;
	}

	.classroom-page .classroom-detail-layout.has-gallery .classroom-photo-gallery {
		height: var(--classroom-gallery-height, auto);
		max-height: var(--classroom-gallery-height, none);
		grid-template-rows: minmax(0, 1.56fr) minmax(0, 1fr);
		overflow: hidden;
	}
}

/* =========================================================
   Stage 26：写真拡大表示の操作性・保守性を改善
   ========================================================= */
.classroom-lightbox__figure {
	position: relative;
	margin: 0;
	max-width: 100%;
	max-height: 88vh;
}

.classroom-lightbox__caption {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 13px;
	border-radius: 10px;
	background: rgba(2, 28, 40, .8);
	color: #fff;
	font-size:17px;
	line-height: 1.45;
	backdrop-filter: blur(4px);
}

.classroom-lightbox__description {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.classroom-lightbox__counter {
	flex: 0 0 auto;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.classroom-lightbox__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0 0 5px;
	border: 2px solid rgba(255, 255, 255, .92);
	border-radius: 50%;
	background: rgba(0, 75, 105, .9);
	color: #fff;
	font-size: 38px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 0 5px 18px rgba(0, 0, 0, .3);
}

.classroom-lightbox__nav.is-prev {
	left: -68px;
}

.classroom-lightbox__nav.is-next {
	right: -68px;
}

.classroom-lightbox__nav:hover,
.classroom-lightbox__nav:focus-visible {
	background: #004f6b;
}

.classroom-lightbox__nav[hidden] {
	display: none;
}

@media (max-width: 900px) {
	.classroom-lightbox__nav {
		width: 44px;
		height: 44px;
		font-size: 34px;
	}

	.classroom-lightbox__nav.is-prev {
		left: 8px;
	}

	.classroom-lightbox__nav.is-next {
		right: 8px;
	}
}

@media (max-width: 560px) {
	.classroom-lightbox__caption {
		left: 7px;
		right: 7px;
		bottom: 7px;
		padding: 7px 10px;
		font-size:17px;
	}

	.classroom-lightbox__description {
		max-width: calc(100% - 48px);
	}
}

/* Region SEO hub 2026-08 */

.classroom-shell,.region-shell{width:min(1120px,calc(100% - 36px));margin:auto}.classroom-hub-hero,.region-classroom-hero{padding:58px 0 46px;background:linear-gradient(135deg,#eaf7f0,#f8fcfa)}.classroom-hub-hero h1,.region-classroom-hero h1{font-size:clamp(30px,5vw,50px);line-height:1.25;margin:10px 0 18px}.classroom-kicker,.region-kicker{font-weight:800;color:#0b7a43;letter-spacing:.08em}.classroom-hub-section,.region-section{padding:58px 0}.classroom-hub-section.is-soft,.region-section.is-soft{background:#f5f8f6}.classroom-compare-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.classroom-compare-card{border:1px solid #d8e4dc;border-radius:18px;padding:26px;background:#fff;box-shadow:0 8px 26px rgba(16,66,42,.07)}.classroom-compare-card__top{display:flex;justify-content:space-between;gap:10px;color:#0b7a43;font-weight:700}.classroom-compare-card h3{font-size:28px;margin:14px 0}.classroom-compare-card dl div{display:grid;grid-template-columns:90px 1fr;padding:10px 0;border-top:1px solid #e7eee9}.classroom-compare-card dt{font-weight:700}.classroom-detail-button,.region-button{display:inline-block;padding:14px 24px;border-radius:999px;background:#0b7a43;color:#fff!important;font-weight:800;text-decoration:none}.classroom-compare-card__search{font-size:17px;color:#51645a}.classroom-choice-grid,.region-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.classroom-choice-grid article,.region-facts>div{background:#fff;border:1px solid #dfe9e2;border-radius:16px;padding:22px}.classroom-hub-cta{text-align:center}.region-status{display:inline-block;padding:8px 15px;background:#0b7a43;color:#fff;border-radius:999px;font-weight:700}.region-breadcrumb{padding:14px 0;border-bottom:1px solid #e4ece7;font-size:17px}.region-breadcrumb .region-shell{display:flex;gap:9px;flex-wrap:wrap}.region-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.region-facts strong{color:#0b7a43}.region-two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px}.region-checks{padding:0;list-style:none}.region-checks li{padding:10px 0 10px 30px;position:relative;border-bottom:1px solid #dfe8e2}.region-checks li:before{content:'✓';position:absolute;left:0;color:#0b7a43;font-weight:900}.region-access{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:stretch}.region-access>div{padding:26px;border-radius:18px;background:#f5f8f6}.region-access iframe{width:100%;min-height:330px;border:0;border-radius:18px}.region-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;list-style:none;counter-reset:flow;padding:0}.region-flow li{counter-increment:flow;background:#fff;border-radius:16px;padding:22px;border:1px solid #dfe8e2}.region-flow li:before{content:counter(flow);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#0b7a43;color:#fff;font-weight:800;margin-bottom:12px}.region-flow span{display:block;margin-top:8px}.region-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.region-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}.region-faq details{border-bottom:1px solid #d9e5dd;padding:18px 0}.region-faq summary{font-weight:800;cursor:pointer}.region-cta{text-align:center;background:#0b7a43;color:#fff;padding:58px 0}.region-cta .region-button{background:#fff;color:#0b7a43!important;margin:8px}.region-cta .region-button.is-secondary{background:transparent;color:#fff!important;border:1px solid #fff}@media(max-width:760px){.classroom-compare-grid,.classroom-choice-grid,.region-facts,.region-two-col,.region-access,.region-flow,.region-gallery{grid-template-columns:1fr}.classroom-hub-hero,.region-classroom-hero{padding:40px 0 34px}.classroom-hub-section,.region-section{padding:40px 0}.classroom-compare-card dl div{grid-template-columns:72px 1fr}}

.classroom-compare-card__top{align-items:flex-start;flex-wrap:wrap}.classroom-compare-card__top strong{max-width:58%;text-align:right;line-height:1.45}.region-status{line-height:1.5}
@media(max-width:760px){.classroom-compare-card__top strong{max-width:100%;text-align:left}}

/* v2.0 playful classroom hub redesign */
.classroom-hub{background:#fff;color:#24322a}
.classroom-hub-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff9e9 0%,#effaf3 48%,#eef7ff 100%);border-bottom:1px solid #dfece4}
.classroom-hub-hero:before,.classroom-hub-hero:after{content:"";position:absolute;border-radius:50%;opacity:.35;pointer-events:none}
.classroom-hub-hero:before{width:260px;height:260px;background:#ffd675;right:-70px;top:-110px}
.classroom-hub-hero:after{width:180px;height:180px;background:#a7e5c0;left:-55px;bottom:-100px}
.classroom-hub-hero .classroom-shell{position:relative;z-index:1}
.classroom-hub-hero h1{max-width:820px;color:#25322a;letter-spacing:-.025em}
.classroom-hub-section{padding:66px 0}
.classroom-hub-section> .classroom-shell>h2{position:relative;display:inline-block;margin:0 0 30px;font-size:clamp(27px,3.4vw,39px)}
.classroom-hub-section> .classroom-shell>h2:after{content:"";display:block;width:72px;height:5px;margin-top:10px;border-radius:99px;background:linear-gradient(90deg,#0b8749,#f5a623)}
.classroom-compare-grid{gap:22px}
.classroom-compare-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(230px,.95fr);gap:22px;position:relative;padding:22px;border:1px solid #cfe4d7;border-radius:22px;background:linear-gradient(135deg,#fff 0%,#fbfffc 100%);box-shadow:0 14px 34px rgba(24,86,52,.10);overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}
.classroom-compare-card:hover{transform:translateY(-4px);box-shadow:0 19px 42px rgba(24,86,52,.15)}
.classroom-compare-card:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(180deg,#0b8749,#f4b63e)}
.classroom-card__body{min-width:0;padding:2px 0 2px 6px}
.classroom-card__visual{min-height:245px;border-radius:17px;overflow:hidden;background:#edf7f0}
.classroom-card__visual img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.classroom-compare-card:hover .classroom-card__visual img{transform:scale(1.035)}
.classroom-card__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:245px;padding:24px;text-align:center;background:radial-gradient(circle at 20% 20%,#fff0bd 0 16%,transparent 17%),radial-gradient(circle at 80% 80%,#c9efd7 0 18%,transparent 19%),linear-gradient(135deg,#f7fff9,#fff8e9);color:#0b7a43}
.classroom-card__placeholder span{font-size:1.3rem;font-weight:900}.classroom-card__placeholder small{margin-top:9px;color:#59685f}
.classroom-compare-card__top{align-items:center}
.classroom-area{display:inline-flex;align-items:center;gap:7px}.classroom-area i{font-size:.7em;color:#0b8749}
.classroom-compare-card__top strong{padding:7px 11px;border-radius:999px;background:#e2f6e8;color:#087a43;font-size:.88rem;line-height:1.35}
.classroom-compare-card h3{font-size:clamp(26px,3vw,34px);margin:16px 0 8px;color:#202b25}
.classroom-card__lead{min-height:3.4em;margin:0 0 8px;line-height:1.7}
.classroom-compare-card dl{margin:12px 0}
.classroom-compare-card dl div{grid-template-columns:102px 1fr;padding:9px 0}
.classroom-compare-card dt{display:flex;align-items:center;gap:7px;color:#26372e}.classroom-compare-card dt span{color:#0b8749}
.classroom-detail-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 7px 16px rgba(11,122,67,.18)}
.classroom-detail-button span{font-size:1.35em;line-height:1}
.classroom-choice-grid{gap:16px}
.classroom-choice-grid article{display:flex;align-items:flex-start;gap:16px;padding:24px;border-width:2px;box-shadow:0 10px 24px rgba(27,67,43,.07)}
.classroom-choice-grid article>div{min-width:0}.classroom-choice-grid h3{margin:0 0 7px}
.choice-icon{display:grid;place-items:center;flex:0 0 60px;width:60px;height:60px;border-radius:50%;font-size:.82rem;font-weight:900;color:#fff;box-shadow:inset 0 -4px 0 rgba(0,0,0,.08)}
.choice-green{background:#f3fff5!important;border-color:#bfe6c8!important}.choice-green .choice-icon{background:#54b964}
.choice-orange{background:#fff8f2!important;border-color:#f3cbb1!important}.choice-orange .choice-icon{background:#f07a2c}
.choice-blue{background:#f3f8ff!important;border-color:#bdd5f3!important}.choice-blue .choice-icon{background:#2f77c8}
.classroom-hub-cta{padding:36px;border:1px solid #cde5d5;border-radius:22px;background:linear-gradient(135deg,#f8fff9,#fff9ec);box-shadow:0 10px 25px rgba(20,80,47,.07)}
@media(max-width:980px){.classroom-compare-card{grid-template-columns:1fr}.classroom-card__visual{min-height:260px}.classroom-card__lead{min-height:0}}
@media(max-width:760px){.classroom-hub-section{padding:46px 0}.classroom-compare-grid{gap:16px}.classroom-compare-card{padding:17px;border-radius:18px}.classroom-card__visual{min-height:210px}.classroom-choice-grid article{padding:19px}.choice-icon{width:50px;height:50px;flex-basis:50px}}

/* SEO guide / FAQ */
.classroom-seo-guide{max-width:900px;margin:0 auto 24px;font-size:17px;line-height:1.9}.classroom-seo-guide p{margin:0 0 14px}.classroom-seo-guide a{font-weight:700;text-decoration:underline;text-underline-offset:3px}.classroom-area-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.classroom-area-links a{display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 14px;border:1px solid rgba(22,120,78,.22);border-radius:16px;background:#fff;font-weight:800;text-align:center;box-shadow:0 8px 20px rgba(30,88,61,.08);transition:transform .2s ease,box-shadow .2s ease}.classroom-area-links a:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(30,88,61,.13)}.classroom-hub-faq{display:grid;gap:12px;max-width:900px;margin:0 auto}.classroom-hub-faq details{border:1px solid rgba(22,120,78,.18);border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(30,88,61,.06);overflow:hidden}.classroom-hub-faq summary{cursor:pointer;padding:18px 52px 18px 20px;font-weight:800;position:relative}.classroom-hub-faq summary::after{content:'＋';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:22px;color:#16784e}.classroom-hub-faq details[open] summary::after{content:'－'}.classroom-hub-faq details p{margin:0;padding:0 20px 20px;line-height:1.8}@media(max-width:800px){.classroom-area-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.classroom-area-links{grid-template-columns:1fr}.classroom-seo-guide{font-size:17px}.classroom-hub-faq summary{padding:16px 46px 16px 16px}.classroom-hub-faq details p{padding:0 16px 18px}}

.classroom-hub-hero h1{color:#1d2b22!important;text-shadow:none!important;}
.classroom-hub-hero p{color:#33443a!important;opacity:1!important;text-shadow:none!important;}
.classroom-kicker{color:#0d7a43!important;background:rgba(255,255,255,.75)!important;}

/* NPOJOM_CLASSROOM_SEO_INTRO */
.classroom-seo-intro{padding:42px 0 8px;background:#fff}
.classroom-seo-intro h2{color:#0b7344}
.classroom-seo-intro p{max-width:1000px;font-size:1.1rem;line-height:1.9}
.classroom-seo-intro a{color:#075fbd;font-weight:700;text-decoration:underline}

/* NPOJOM_CLASSROOM_COMPARE_GUIDE_START */
.classroom-class-guide {
  padding: 34px 0 58px;
  background: #ffffff;
}

.classroom-class-guide__heading {
  max-width: 920px;
  margin: 0 auto 26px;
  text-align: center;
}

.classroom-class-guide__eyebrow {
  display: inline-flex;
  margin: 0 0 10px;
  padding: 7px 16px;
  border-radius: 999px;
  background: #edf8f3;
  color: #0d7a47;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: .05em;
}

.classroom-class-guide__heading h2 {
  margin: 0 0 12px;
  color: #173946;
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  line-height: 1.35;
}

.classroom-class-guide__heading > p:last-child {
  margin: 0;
  color: #536d76;
  font-size: clamp(1.05rem, 1.4vw, 1.18rem);
  line-height: 1.8;
}

.classroom-class-guide__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.classroom-class-guide__card {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 20px;
  min-width: 0;
  padding: 28px;
  border: 2px solid #dcebe6;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fcfa 100%);
  box-shadow: 0 12px 32px rgba(23, 57, 70, .08);
}

.classroom-class-guide__card--school {
  border-top: 7px solid #1c8ed6;
}

.classroom-class-guide__card--experienced {
  border-top: 7px solid #16945b;
}

.classroom-class-guide__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  color: #ffffff;
  font-size: 1.65rem;
  font-weight: 900;
  line-height: 1;
}

.classroom-class-guide__card--school .classroom-class-guide__icon {
  background: #1c8ed6;
}

.classroom-class-guide__card--experienced .classroom-class-guide__icon {
  background: #16945b;
}

.classroom-class-guide__label {
  display: inline-block;
  margin: 0 0 7px;
  color: #0d7a47;
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.5;
}

.classroom-class-guide__content h3 {
  margin: 0 0 11px;
  color: #173946;
  font-size: clamp(1.55rem, 2vw, 1.95rem);
  line-height: 1.35;
}

.classroom-class-guide__content > p:last-child {
  margin: 0;
  color: #405d67;
  font-size: clamp(1.05rem, 1.3vw, 1.16rem);
  line-height: 1.9;
}

.classroom-class-guide__note {
  margin: 20px 0 0;
  padding: 15px 18px;
  border: 1px solid #ead58d;
  border-radius: 14px;
  background: #fffdf5;
  color: #53645a;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 780px) {
  .classroom-class-guide {
    padding: 24px 0 42px;
  }

  .classroom-class-guide__grid {
    grid-template-columns: 1fr;
  }

  .classroom-class-guide__card {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 15px;
    padding: 22px 18px;
  }

  .classroom-class-guide__icon {
    width: 54px;
    height: 54px;
    font-size: 1.3rem;
  }

  .classroom-class-guide__note {
    text-align: left;
  }
}
/* NPOJOM_CLASSROOM_COMPARE_GUIDE_END */

/* NPOJOM_CLASS_GUIDE_ACCESSIBILITY_START */
.classroom-class-guide__eyebrow {
  font-size: 18px !important;
}

.classroom-class-guide__label {
  font-size: 18px !important;
}

.classroom-class-guide__content > p:last-child {
  font-size: 20px !important;
  line-height: 1.85 !important;
}

.classroom-class-guide__note {
  font-size: 18px !important;
  line-height: 1.75 !important;
}

@media (max-width: 780px) {
  .classroom-class-guide__eyebrow,
  .classroom-class-guide__label,
  .classroom-class-guide__note {
    font-size: 17px !important;
  }

  .classroom-class-guide__content > p:last-child {
    font-size: 18px !important;
  }
}
/* NPOJOM_CLASS_GUIDE_ACCESSIBILITY_END */

/* NPOJOM_CLASSROOM_CTA_SINGLE_LINE_START */
.classroom-detail-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  padding: 14px 28px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

@media (max-width: 768px) {
  .classroom-detail-button {
    width: 100% !important;
    padding: 14px 16px !important;
    font-size: 17px !important;
    white-space: nowrap !important;
  }
}
/* NPOJOM_CLASSROOM_CTA_SINGLE_LINE_END */


/* refined class guide icons */
.classroom-class-guide__icon{
font-size:32px!important;
font-weight:400!important;
background:#fff!important;
border:3px solid currentColor;
box-shadow:0 8px 18px rgba(0,0,0,.08);
}


/* NPOJOM_CLASSROOM_SVG_ICON_REFINEMENT */
.classroom-meta-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-right: 8px;
	border-radius: 50%;
	background: #edf8f3;
	color: #12864f;
	vertical-align: middle;
}

.classroom-meta-icon .npojom-svg-icon {
	width: 17px;
	height: 17px;
}

.classroom-class-guide__icon {
	color: inherit !important;
	background: linear-gradient(145deg, #ffffff, #edf8f3) !important;
	border: 2px solid currentColor !important;
	box-shadow: 0 10px 24px rgba(23,57,70,.12) !important;
}

.classroom-class-guide__icon .npojom-svg-icon {
	width: 34px;
	height: 34px;
}

.choice-icon {
	background: linear-gradient(145deg, #ffffff, #f3fbf7) !important;
	border: 2px solid currentColor;
}

.choice-icon .npojom-svg-icon {
	width: 30px;
	height: 30px;
}

.choice-green .choice-icon { color: #289548; }
.choice-orange .choice-icon { color: #e76d20; }
.choice-blue .choice-icon { color: #2f77c8; }

/* NPOJOM_CLASSROOM_ICON_BALANCE_START */
.classroom-meta-icon {
	width: 28px !important;
	height: 28px !important;
	margin-right: 7px;
	flex: 0 0 28px;
}

.classroom-meta-icon svg.npojom-svg-icon {
	width: 15px !important;
	height: 15px !important;
	max-width: 15px !important;
	max-height: 15px !important;
}

.classroom-class-guide__card {
	grid-template-columns: 62px minmax(0, 1fr) !important;
	gap: 18px !important;
}

.classroom-class-guide__icon {
	width: 58px !important;
	height: 58px !important;
	flex: 0 0 58px;
}

.classroom-class-guide__icon svg.npojom-svg-icon {
	width: 28px !important;
	height: 28px !important;
	max-width: 28px !important;
	max-height: 28px !important;
}

.choice-icon svg.npojom-svg-icon {
	width: 25px !important;
	height: 25px !important;
	max-width: 25px !important;
	max-height: 25px !important;
}

.classroom-detail-button {
	gap: 7px;
}

@media (max-width: 780px) {
	.classroom-class-guide__card {
		grid-template-columns: 50px minmax(0, 1fr) !important;
		gap: 14px !important;
	}

	.classroom-class-guide__icon {
		width: 48px !important;
		height: 48px !important;
		flex-basis: 48px;
	}

	.classroom-class-guide__icon svg.npojom-svg-icon {
		width: 23px !important;
		height: 23px !important;
		max-width: 23px !important;
		max-height: 23px !important;
	}
}
/* NPOJOM_CLASSROOM_ICON_BALANCE_END */
