		:root {
			--blue: #0d249b;
			--blue-deep: #08175c;
			--pink: #ff34ca;
			--gray-bg: #f2f2f2;
			--card: #ffffff;
			--text: #121212;
			--muted: #5f6275;
			--shadow: 0 18px 50px rgba(11, 24, 96, 0.22);
			--max: 1120px;
			--radius: 18px;
		}

		* {
			box-sizing: border-box;
		}

		html,
		body {
			margin: 0;
			padding: 0;
			font-family: "Noto Sans JP", sans-serif;
			color: var(--text);
			background: var(--gray-bg);
			scroll-behavior: smooth;
		}

		body {
			line-height: 1.65;
		}

		img {
			max-width: 100%;
			display: block;
		}

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

		.site-header {
			position: fixed;
			inset: 0 0 auto 0;
			z-index: 40;
			background: rgba(8, 23, 92, 0.86);
			backdrop-filter: blur(5px);
			border-bottom: 1px solid rgba(255, 255, 255, 0.14);
		}

		.header-inner {
			position: relative;
			min-height: 74px;
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 20px;
		}

		.menu-toggle {
			display: none;
			width: 44px;
			height: 44px;
			border: 1px solid rgba(255, 255, 255, 0.5);
			background: rgba(255, 255, 255, 0.08);
			border-radius: 8px;
			cursor: pointer;
			padding: 0 10px;
		}

		.menu-toggle span {
			display: block;
			width: 100%;
			height: 2px;
			background: #fff;
			margin: 6px 0;
			transition: transform 0.2s ease, opacity 0.2s ease;
		}

		.menu-toggle.is-open span:nth-child(1) {
			transform: translateY(8px) rotate(45deg);
		}

		.menu-toggle.is-open span:nth-child(2) {
			opacity: 0;
		}

		.menu-toggle.is-open span:nth-child(3) {
			transform: translateY(-8px) rotate(-45deg);
		}

		.logo {
			color: #fff;
			text-decoration: none;
			display: inline-flex;
			align-items: center;
			gap: 8px;
		}

		.logo img {
			height: 52px;
			width: auto;
			display: block;
		}

		.logo-text-fallback {
			display: none;
			font-family: "Oswald", sans-serif;
			font-size: 1.35rem;
			letter-spacing: 0.04em;
			font-weight: 700;
		}

		.main-nav {
			display: flex;
			align-items: center;
			flex-wrap: wrap;
			gap: 14px 18px;
		}

		.main-nav a {
			color: #fff;
			text-decoration: none;
			font-size: 0.84rem;
			font-weight: 500;
			opacity: 0.9;
			transition: opacity 0.25s;
		}

		.main-nav a:hover {
			opacity: 1;
		}

		.hero {
			position: relative;
			min-height: 100vh;
			overflow: hidden;
			color: #fff;
			display: flex;
			align-items: flex-end;
			padding: 140px 0 72px;
		}

		.hero::before {
			content: "";
			position: absolute;
			inset: 0;
			background: linear-gradient(80deg, rgba(4, 10, 49, 0.72), rgba(11, 28, 122, 0.24));
			z-index: 1;
		}

		.hero-slides {
			position: absolute;
			inset: 0;
			z-index: 0;
		}

		.hero-slide {
			position: absolute;
			inset: 0;
			background-position: center;
			background-size: cover;
			opacity: 0;
			transition: opacity 1400ms ease;
			will-change: opacity;
		}

		.hero-slide.is-active {
			opacity: 1;
		}

		.hero-inner {
			position: relative;
			z-index: 2;
			width: min(var(--max), calc(100% - 48px));
			margin-inline: auto;
			animation: rise 900ms ease both;
		}

		.hero-title {
			margin: 0;
			font-family: "Zen Old Mincho", serif;
			font-size: 4.0rem;
			line-height: 1.06;
			font-weight: 900;
			letter-spacing: 0.02em;
		}

		.hero-title span {
			display: block;
			font-family: "Zen Old Mincho", serif;
			font-weight: 700;
			margin-top: 8px;
			text-transform: lowercase;
		}

		.hero-sub {
			margin: 18px 0 34px;
			max-width: 630px;
			font-size: 0.95rem;
			opacity: 0.92;
		}

		.cta-btn {
			display: inline-block;
			background: var(--pink);
			color: #fff;
			text-decoration: none;
			font-weight: 700;
			font-size: 0.9rem;
			padding: 12px 36px;
			border-radius: 6px;
			box-shadow: 0 10px 24px rgba(255, 52, 202, 0.38);
		}

		section {
			padding: 78px 0;
		}

		.section-head {
			margin-bottom: 30px;
			text-align: center;
		}

		.section-title {
			font-family: "Oswald", sans-serif;
			font-size: 3.05rem;
			margin: 0;
			letter-spacing: 0.01em;
			line-height: 1.15;
			text-transform: uppercase;
		}

		.section-sub {
			margin: 5px 0 0;
			color: var(--blue-deep);
			font-size: 0.95rem;
			font-family: "Oswald", sans-serif;
			letter-spacing: 0.04em;
		}

		.about {
			background: #fff;
		}

		.about-wrap {
			display: grid;
			grid-template-columns: 1.1fr 1.4fr;
			border-radius: var(--radius);
			overflow: hidden;
			background: #fff;
			box-shadow: var(--shadow);
		}

		.about-title {
			position: relative;
			background: linear-gradient(165deg, #1d36d5 0%, #111fc0 58%, #0b1690 100%);
			clip-path: polygon(0 0, 100% 0, 62% 100%, 0 100%);
			padding: 52px 44px;
			color: #fff;
			min-height: 220px;
		}

		.about-title h2 {
			margin: 0;
			font-family: "Oswald", sans-serif;
			font-size: 2.9rem;
			line-height: 1.05;
			text-transform: uppercase;
		}

		.about-title p {
			margin: 6px 0 0;
			font-family: "Oswald", sans-serif;
			letter-spacing: 0.04em;
		}

		.about-content {
			padding: 38px 40px;
		}

		.about-catch {
			margin: 0 0 18px;
			font-size: 1.04rem;
			font-weight: 500;
		}

		.about-list {
			margin: 0;
			padding-left: 22px;
			font-size: 1.04rem;
			font-weight: 700;
			line-height: 1.95;
		}

		.about-note {
			margin-top: 14px;
			color: var(--muted);
			font-size: 0.95rem;
			line-height: 1.75;
		}

		.school {
			color: #fff;
			background:
				linear-gradient(180deg, rgba(22, 44, 126, 0.34), rgba(18, 37, 108, 0.3)),
				url("../images/school-bg.jpg") center / cover no-repeat;
		}

		.school .section-sub {
			color: rgba(255, 255, 255, 0.92);
		}

		.school-tabs {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 0;
			width: 100%;
			max-width: 680px;
			margin: 0 auto 20px;
			border-radius: 8px;
			overflow: hidden;
			border: 1px solid rgba(255, 255, 255, 0.26);
		}

		.school-tab {
			border: 0;
			padding: 11px 12px;
			cursor: pointer;
			font-size: 0.95rem;
			font-weight: 700;
			font-family: "Noto Sans JP", sans-serif;
			color: rgba(255, 255, 255, 0.9);
			background: rgba(255, 255, 255, 0.12);
			transition: background 0.25s, color 0.25s;
		}

		.school-tab[aria-selected="true"] {
			background: #fff;
			color: #202124;
		}

		.school-panel {
			display: none;
		}

		.school-panel.is-active {
			display: block;
		}

		.school-row-title {
			margin: 16px 0 -12px;
			font-size: 1.05rem;
			font-weight: 700;
			color: #f3f3f3;
			padding-left: 4px;
		}

		.cards {
			margin-top: 30px;
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 18px;
		}

		.cards.cards-two {
			grid-template-columns: repeat(2, 1fr);
		}

		.card {
			background: #f8f8fb;
			color: var(--text);
			border-radius: 14px;
			padding: 18px 18px 16px;
			min-height: 145px;
		}

		.card h4 {
			margin: 0 0 12px;
			color: var(--blue);
			font-size: 1.12rem;
		}

		.card p {
			margin: 5px 0;
			font-size: 0.92rem;
			color: #222;
		}

		.fee {
			margin-top: 18px;
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 16px;
		}

		.fee-item {
			background: #fff;
			border-radius: 12px;
			color: var(--text);
			text-align: center;
			padding: 16px 12px;
			font-weight: 700;
		}

		.fee-item span {
			display: block;
			font-size: 0.85rem;
			color: #6f7287;
			font-weight: 500;
		}

		.staff {
			background: #fff;
		}

		.staff-box {
			display: grid;
			grid-template-columns: 1fr 1.2fr;
			gap: 26px;
			background: #fff;
			border-radius: var(--radius);
			box-shadow: var(--shadow);
			padding: 28px;
		}

		.staff-photo {
			border-radius: 14px;
			overflow: hidden;
			min-height: 300px;
			background: #d7d8e2;
		}

		.staff-photo img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}

		.staff-name {
			margin: 0 0 10px;
			font-size: 1.35rem;
			font-weight: 800;
		}

		.staff-name small {
			display: block;
			margin-top: 3px;
			color: var(--blue);
			font-size: 0.96rem;
			font-weight: 700;
		}

		.staff-box p {
			line-height: 1.9;
		}

		.drivers {
			position: relative;
			z-index: 2;
			margin: -34px auto 0;
			width: calc(100% - 84px);
			max-width: 980px;
			background: #f4f5f9;
			border-radius: var(--radius);
			padding: 28px;
			box-shadow: 0 14px 38px rgba(20, 24, 48, 0.15);
		}

		.drivers h3 {
			margin: 0;
			text-align: center;
			font-family: "Oswald", sans-serif;
			font-size: 3.4rem;
			line-height: 1;
			letter-spacing: 0.02em;
		}

		.drivers p {
			margin: 6px 0 16px;
			text-align: center;
			font-weight: 700;
		}

		.driver-list {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 8px 20px;
			margin: 0;
			padding-left: 18px;
		}

		.schedule {
			background:
				linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.7)),
				url("../images/schedule-bg.jpg") center / cover no-repeat;
		}

		.schedule-box {
			background: #fff;
			border-radius: 14px;
			padding: 18px;
			box-shadow: var(--shadow);
			overflow: hidden;
		}

		.schedule-iframe {
			display: block;
			width: 100%;
			min-height: 600px;
		}

		.schedule-alert {
			margin: 12px 0 0;
			font-size: 0.9rem;
			font-weight: 700;
			color: #d22020;
		}

		.calendar-grid {
			display: grid;
			grid-template-columns: repeat(7, 1fr);
			gap: 1px;
			background: #e4e5ee;
			border: 1px solid #e4e5ee;
		}

		.calendar-grid div {
			background: #fff;
			min-height: 92px;
			padding: 7px;
			font-size: 0.78rem;
		}

		.calendar-grid .head {
			min-height: auto;
			text-align: center;
			font-weight: 700;
			color: var(--blue);
			padding: 10px 4px;
			background: #f8f9ff;
		}

		.calendar-grid .event {
			display: block;
			margin-top: 6px;
			background: #e7ebff;
			color: var(--blue);
			border-radius: 6px;
			padding: 2px 5px;
			font-size: 0.7rem;
			font-weight: 700;
			min-height: auto;
		}

		.access-grid {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 18px;
		}

		#access {
			background: #e7e7eb;
		}

		.access-card {
			background: #fff;
			border-radius: 12px;
			overflow: hidden;
			box-shadow: var(--shadow);
		}

		.access-card h4 {
			margin: 0;
			color: #fff;
			background: var(--blue);
			text-align: center;
			padding: 9px 12px;
			font-size: 1.06rem;
		}

		.access-card .body {
			padding: 14px;
			font-size: 0.9rem;
			min-height: 250px;
		}

		.access-card .body p {
			margin: 0 0 4px;
			line-height: 1.35;
		}

		.access-card .body p:last-of-type {
			margin-bottom: 0;
		}

		.map-placeholder {
			margin-top: 12px;
			background: #ececf3;
			min-height: 150px;
			border-radius: 8px;
		}

		.access-map {
			display: block;
			width: 100%;
			height: 220px;
			margin-top: 12px;
			border-radius: 8px;
		}

		.contact {
			background: #dcdde2;
			padding-top: 30px;
			padding-bottom: 96px;
		}

		.site-footer {
			background: rgba(8, 23, 92, 0.92);
			border-top: 1px solid rgba(255, 255, 255, 0.14);
		}

		.site-footer p {
			margin: 0;
			padding: 16px 0;
			text-align: center;
			color: rgba(255, 255, 255, 0.92);
			font-size: 0.78rem;
			letter-spacing: 0.02em;
		}

		.contact-tabs {
			display: grid;
			grid-template-columns: 1fr 1fr;
			width: 100%;
			max-width: 560px;
			margin: 0 auto 24px;
			border-radius: 8px;
			overflow: hidden;
			border: 1px solid #d4d7e4;
		}

		.contact-tab {
			border: 0;
			padding: 12px;
			font-size: 0.94rem;
			font-weight: 700;
			font-family: "Noto Sans JP", sans-serif;
			cursor: pointer;
			background: #f3f5fb;
			color: #37406a;
			transition: background 0.2s, color 0.2s;
		}

		.contact-tab[aria-selected="true"] {
			background: var(--blue);
			color: #fff;
		}

		.contact-panel {
			display: none;
		}

		.contact-panel.is-active {
			display: block;
		}

		.contact-box {
			background: #fff;
			border-radius: 14px;
			box-shadow: var(--shadow);
			padding: 34px;
		}

		.contact-lead {
			margin: 0 0 20px;
			color: var(--muted);
			font-size: 0.92rem;
		}

		.form-group {
			margin-bottom: 14px;
		}

		.form-group label {
			display: block;
			font-size: 0.88rem;
			font-weight: 700;
			margin-bottom: 6px;
		}

		.required {
			color: #d63838;
			font-size: 0.77rem;
			margin-left: 4px;
		}

		.input,
		.select,
		.textarea {
			width: 100%;
			padding: 9px 10px;
			border: 1px solid #d2d5e3;
			border-radius: 4px;
			font-size: 0.92rem;
			font-family: "Noto Sans JP", sans-serif;
			background: #fff;
		}

		.textarea {
			min-height: 160px;
			resize: vertical;
		}

		.form-grid-2 {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 12px;
		}

		.form-grid-3 {
			display: grid;
			grid-template-columns: 120px 70px 70px;
			gap: 8px;
			align-items: center;
		}

		.form-grid-address {
			display: grid;
			grid-template-columns: 160px 1fr;
			gap: 10px;
		}

		.radio-line,
		.check-line {
			display: flex;
			gap: 14px;
			flex-wrap: wrap;
			font-size: 0.9rem;
		}

		.contact-actions {
			margin-top: 24px;
			text-align: center;
		}

		.contact-btn {
			display: inline-block;
			background: var(--blue);
			color: #fff;
			text-decoration: none;
			font-weight: 700;
			padding: 12px 32px;
			border-radius: 8px;
			border: 0;
			font-size: 0.92rem;
			font-family: "Noto Sans JP", sans-serif;
			cursor: pointer;
		}

		.fade {
			animation: rise 820ms ease both;
		}

		@keyframes rise {
			from {
				opacity: 0;
				transform: translateY(20px);
			}
			to {
				opacity: 1;
				transform: translateY(0);
			}
		}

		@media (max-width: 980px) {
			.container,
			.hero-inner {
				width: min(var(--max), calc(100% - 30px));
			}

			.header-inner {
				align-items: flex-start;
				padding-top: 12px;
				padding-bottom: 12px;
			}

			.main-nav {
				justify-content: flex-end;
			}

			.about-wrap,
			.staff-box {
				grid-template-columns: 1fr;
			}

			.about-title {
				min-height: 160px;
				clip-path: none;
			}

			.cards,
			.fee,
			.access-grid {
				grid-template-columns: 1fr;
			}

			.cards.cards-two {
				grid-template-columns: 1fr;
			}

			.school-tabs {
				width: 100%;
			}

			.contact-tabs {
				width: 100%;
			}

			.form-grid-address {
				grid-template-columns: 1fr;
			}

			.driver-list {
				grid-template-columns: 1fr;
			}

			.calendar-grid div {
				min-height: 72px;
			}

			.schedule-iframe {
				min-height: 520px;
			}

			.hero-title {
				font-size: 3.2rem;
			}

			.section-title {
				font-size: 2.2rem;
			}

			.about-title h2 {
				font-size: 2rem;
			}

			.drivers h3 {
				font-size: 2.6rem;
			}

			.drivers {
				margin-top: 16px;
				width: 100%;
			}
		}

		@media (max-width: 640px) {
			.site-header {
				position: sticky;
			}

			.header-inner {
				min-height: 68px;
				align-items: center;
			}

			.logo {
				max-width: 170px;
			}

			.logo img {
				height: auto;
				width: 100%;
			}

			.menu-toggle {
				display: block;
			}

			.main-nav {
				position: absolute;
				top: calc(100% + 8px);
				left: 0;
				right: 0;
				flex-direction: column;
				align-items: stretch;
				gap: 0;
				background: rgba(8, 23, 92, 0.97);
				border: 1px solid rgba(255, 255, 255, 0.16);
				border-radius: 10px;
				overflow: hidden;
				max-height: 0;
				opacity: 0;
				transform: translateY(-6px);
				transition: max-height 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
				pointer-events: none;
			}

			.main-nav.is-open {
				max-height: 360px;
				opacity: 1;
				transform: translateY(0);
				pointer-events: auto;
			}

			.main-nav a {
				font-size: 0.84rem;
				padding: 12px 14px;
				border-bottom: 1px solid rgba(255, 255, 255, 0.12);
			}

			.main-nav a:last-child {
				border-bottom: 0;
			}

			.hero {
				min-height: 78vh;
				padding-top: 110px;
			}

			.hero-sub {
				font-size: 0.85rem;
			}

			.hero-title {
				font-size: 2.2rem;
			}

			.section-title {
				font-size: 1.8rem;
			}

			.about-title h2 {
				font-size: 1.8rem;
			}

			.drivers h3 {
				font-size: 2rem;
			}

			section {
				padding: 56px 0;
			}

			.about-title,
			.about-content,
			.staff-box,
			.drivers,
			.contact-box {
				padding: 20px;
			}

			.schedule-iframe {
				min-height: 460px;
			}

			.form-grid-2,
			.form-grid-3 {
				grid-template-columns: 1fr;
			}
		}


/* Single News (moved from single.php) */
	.single-news {
		padding: 120px 0 80px;
		background: #fafafa;
	}
	.single-news .single-wrap {
		max-width: 1120px;
		margin: 0 auto;
		padding: 0 20px;
	}
	.single-news .breadcrumb {
		margin-bottom: 24px;
		font-size: 13px;
		color: #888;
	}
	.single-news .breadcrumb a {
		color: #1a73e8;
		text-decoration: none;
	}
	.single-news .breadcrumb a:hover {
		text-decoration: underline;
	}
	.single-news .post-head {
		display: grid;
		grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
		gap: 28px;
		align-items: start;
		margin-bottom: 32px;
	}
	.single-news .post-meta {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}
	.single-news .post-thumb {
		width: 100%;
		aspect-ratio: auto;
		background: #f2f2f2;
		border-radius: 6px;
		margin: 0;
	}
	.single-news .post-thumb img {
		width: 100%;
		height: auto;
		display: block;
	}
	.single-news .post-date {
		margin: 0 0 14px;
		font-size: 13px;
		font-weight: 700;
		letter-spacing: 0.05em;
		color: #888;
	}
	.single-news .post-cats {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		margin: 0 0 14px;
	}
	.single-news .post-cat {
		display: inline-block;
		padding: 4px 10px;
		border-radius: 999px;
		font-size: 11px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0.06em;
		background: #111;
		color: #fff;
	}
	.single-news .post-title {
		margin: 0 0 20px;
		font-size: 32px;
		font-weight: 700;
		line-height: 1.5;
		color: #111;
		letter-spacing: 0.02em;
	}
	.single-news .post-content {
		font-size: 17px;
		line-height: 1.95;
		color: #2a2a2a;
		letter-spacing: 0.02em;
	}
	.single-news .post-content > * + * { margin-top: 1.4em; }
	.single-news .post-content p { margin: 0 0 1.4em; }
	.single-news .post-content h2 {
		margin: 2.4em 0 0.8em;
		font-size: 22px;
		font-weight: 700;
		color: #111;
		padding-bottom: 8px;
		border-bottom: 1px solid #e5e5e5;
	}
	.single-news .post-content h3 {
		margin: 2em 0 0.6em;
		font-size: 18px;
		font-weight: 700;
		color: #111;
	}
	.single-news .post-content a { color: #1a73e8; }
	.single-news .post-content img {
		max-width: 100%;
		height: auto;
		border-radius: 4px;
	}
	.single-news .post-content blockquote {
		margin: 1.6em 0;
		padding: 0.4em 1em;
		border-left: 4px solid #ccc;
		color: #555;
		background: #f4f4f4;
	}
	.single-news .post-content ul,
	.single-news .post-content ol {
		padding-left: 1.4em;
		margin: 0 0 1.4em;
	}
	.single-news .post-content li { margin-bottom: 0.4em; }

	.single-news .post-nav {
		margin-top: 24px;
		text-align: center;
	}
	.single-news .back-btn {
		display: inline-block;
		padding: 12px 28px;
		background: #111;
		color: #fff;
		text-decoration: none;
		border-radius: 4px;
		font-size: 14px;
		font-weight: 700;
		letter-spacing: 0.05em;
		transition: background 0.2s ease, transform 0.2s ease;
	}
	.single-news .back-btn:hover {
		background: #333;
		transform: translateY(-1px);
	}

	/* Other News */
	.other-news {
		max-width: 1080px;
		margin: 80px auto 0;
		padding: 0 20px;
	}
	.other-news .other-news-head {
		text-align: center;
		margin-bottom: 32px;
	}
	.other-news .other-news-title {
		margin: 0;
		font-size: 24px;
		font-weight: 700;
		letter-spacing: 0.05em;
		color: #111;
	}
	.other-news .other-news-sub {
		margin: 6px 0 0;
		font-size: 13px;
		color: #888;
	}
	.other-news .other-news-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}
	.other-news .other-news-card {
		background: #fff;
		border-radius: 8px;
		overflow: hidden;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
		transition: transform 0.25s ease, box-shadow 0.25s ease;
	}
	.other-news .other-news-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	}
	.other-news .other-news-link {
		display: block;
		text-decoration: none;
		color: inherit;
	}
	.other-news .other-news-thumb {
		width: 100%;
		aspect-ratio: 16 / 9;
		background: #f2f2f2;
		overflow: hidden;
	}
	.other-news .other-news-thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
		transition: transform 0.4s ease;
	}
	.other-news .other-news-card:hover .other-news-thumb img {
		transform: scale(1.04);
	}
	.other-news .other-news-date {
		margin: 14px 16px 0;
		font-size: 12px;
		font-weight: 700;
		color: #888;
		letter-spacing: 0.05em;
	}
	.other-news .other-news-cats {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		margin: 14px 16px 0;
	}
	.other-news .other-news-cat {
		display: inline-block;
		padding: 4px 8px;
		border-radius: 999px;
		font-size: 10px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0.05em;
		background: #111;
		color: #fff;
	}
	.other-news .other-news-name {
		margin: 6px 16px 18px;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.5;
		color: #111;
	}

	@media (max-width: 640px) {
		.single-news .post-head {
			grid-template-columns: 1fr;
			gap: 18px;
		}
	}

	@media (max-width: 800px) {
		.single-news { padding: 90px 0 60px; }
		.single-news .post-title { font-size: 24px; }
		.single-news .post-content { font-size: 16px; }
		.other-news .other-news-grid {
			grid-template-columns: 1fr;
			gap: 16px;
		}
	}


/* Page Overrides (moved from page.php) */
		.school .card.card-coming-soon {
			display: flex;
			flex-direction: column;
		}

		.school .card.card-coming-soon h4 {
			width: 100%;
		}

		.school .card.card-coming-soon p {
			margin-top: auto;
			margin-bottom: auto;
			margin-left: auto;
			margin-right: auto;
			width: 100%;
			text-align: center;
		}

		.school .fee .fee-item.fee-item-monthly {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: flex-start;
			text-align: center;
		}

		.school .fee .fee-item.fee-item-basic {
			display: grid !important;
			grid-template-rows: auto 1fr;
			justify-items: center;
			align-items: stretch;
			text-align: center;
		}

		.school .fee .fee-item.fee-item-basic > .fee-label {
			grid-row: 1;
			display: block;
			margin: 0;
			font-size: inherit;
			font-weight: inherit;
			line-height: inherit;
			color: inherit;
		}

		.school .fee .fee-item.fee-item-basic > .fee-body {
			grid-row: 2;
			align-self: center;
			justify-self: center;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			width: 100%;
			height: 100%;
		}

		.school .fee .fee-item.fee-item-basic > .fee-body > .fee-value {
			display: inline-block;
			text-align: center;
			width: auto;
			min-height: 0;
			margin: 0;
		}

		.school .fee .fee-item.fee-item-basic > .fee-body > .fee-note {
			display: block;
			margin-top: 6px;
			font-size: 12px;
			line-height: 1.7;
			opacity: 0.9;
		}

		.school .fee .fee-item .fee-breakdown {
			list-style: none;
			margin: 8px 0 0;
			padding: 0;
			display: grid;
			gap: 0;
			justify-items: center;
		}

		.school .fee .fee-item .fee-breakdown li {
			font-size: 14px;
			line-height: 1.75;
			color: #6f738a !important;
			margin-bottom: 20px;
		}

		.school .fee .fee-item .fee-breakdown li:last-child {
			margin-bottom: 0;
		}

		.school .fee .fee-item .fee-breakdown li .fee-breakdown-label {
			color: #111;
		}

		.school .fee .fee-item .fee-breakdown li .fee-price-num {
			color: inherit !important;
		}

		.school .fee .fee-item .fee-tax {
			display: inline;
			white-space: nowrap;
			margin-left: 0.08em;
			font-weight: 400;
		}

		.school .fee .fee-item .fee-price-num {
			display: inline-block;
			font-family: "Oswald", sans-serif;
			font-size: 4em;
			font-weight: 700;
			line-height: 0.9;
			letter-spacing: 0.02em;
			margin-right: 0.08em;
			vertical-align: -0.08em;
		}

		.school .fee .fee-item .fee-price-main {
			display: block;
			text-align: center;
			margin-top: 20px;
			margin-bottom: 20px;
		}

		.school .fee .fee-item .fee-price-num.fee-price-num-sub {
			font-size: 4em;
			line-height: 0.9;
		}

		#contact .check-line {
			display: flex;
			flex-wrap: wrap;
			gap: 12px 24px;
			align-items: center;
		}

		#contact .check-line .mwform-checkbox-field {
			display: inline-flex;
			margin: 0;
		}

		#contact .check-line .mwform-checkbox-field label {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			margin: 0;
		}

		#contact .check-line input[type="checkbox"] {
			width: 20px;
			height: 20px;
			margin: 0;
			flex: 0 0 auto;
		}

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

		#contact .form-grid-3 .input,
		#contact .form-grid-3 input[type="text"] {
			width: 100%;
		}

		#contact #panel-trial .form-grid-address {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 16px;
		}

		#contact #panel-trial .form-grid-address .input,
		#contact #panel-trial .form-grid-address .select,
		#contact #panel-trial .form-grid-address input[type="text"],
		#contact #panel-trial .form-grid-address select {
			width: 100%;
		}

		#contact #panel-trial .form-grid-address + .input {
			margin-top: 8px;
		}

		#contact #panel-trial .form-grid-address + .input + .input {
			margin-top: 8px;
		}

		#contact #panel-trial .form-grid-address + .form-help + .input {
			margin-top: 8px;
		}

		#contact #panel-trial .form-grid-address + .form-help + .input + .input {
			margin-top: 8px;
		}

		#contact #panel-trial .form-help {
			font-size: 12px;
			line-height: 1.5;
			color: #666;
			margin: 6px 0 8px;
		}

		#contact .mw_wp_form .error,
		#contact .mw_wp_form .mwform-error {
			display: block;
			width: 100%;
			clear: both;
			margin-top: 6px;
			color: #d63838;
			font-size: 12px;
			line-height: 1.5;
		}

		#contact .form-grid-2 .error,
		#contact .form-grid-2 .mwform-error,
		#contact .form-grid-3 .error,
		#contact .form-grid-3 .mwform-error,
		#contact .form-grid-address .error,
		#contact .form-grid-address .mwform-error {
			grid-column: 1 / -1;
			margin-top: -4px;
			margin-bottom: 4px;
		}

		#contact .mw_wp_form_complete,
		#contact .mw_wp_form_complete p {
			text-align: center;
		}

		#contact .mw_wp_form_complete p {
			margin: 0.4em 0;
		}

		#schedule .schedule-box {
			display: flex;
			flex-direction: column;
			align-items: center;
		}

		#schedule .schedule-box iframe {
			width: min(800px, 100%);
			max-width: 100%;
		}

		#schedule .schedule-alert {
			text-align: center;
		}

		.hero .hero-kicker {
			display: inline-block;
			margin-bottom: 10px;
			padding: 4px 10px;
			font-size: 12px;
			line-height: 1.4;
			letter-spacing: 0.06em;
			background: rgba(255, 255, 255, 0.18);
			border: 1px solid rgba(255, 255, 255, 0.45);
			border-radius: 999px;
		}

		.hero .hero-title {
			position: relative;
			top: 2pt;
		}

		.hero .hero-title span {
			display: inline-block;
			position: relative;
			top: 2pt;
		}

		/* Other School */
		.other-school {
			padding: 80px 0;
		}

		.other-school .other-school-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 32px;
			margin-top: 32px;
		}

		.other-school .other-school-card {
			display: flex;
			flex-direction: column;
			background: #fff;
			border-radius: 8px;
			overflow: hidden;
			box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
			transition: transform 0.25s ease, box-shadow 0.25s ease;
		}

		.other-school .other-school-card:hover {
			transform: translateY(-4px);
			box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
		}

		.other-school .other-school-link {
			display: block;
			text-decoration: none;
			color: inherit;
		}

		.other-school .other-school-trigger {
			display: block;
			width: 100%;
			padding: 0;
			margin: 0;
			border: 0;
			background: transparent;
			text-align: left;
			color: inherit;
			cursor: pointer;
			font: inherit;
		}

		.other-school .other-school-trigger:focus-visible {
			outline: 2px solid #1a73e8;
			outline-offset: 2px;
		}

		.other-school .other-school-thumb {
			position: relative;
			width: 100%;
			aspect-ratio: 16 / 9;
			overflow: hidden;
			background: #f2f2f2;
		}

		.other-school .other-school-thumb img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			display: block;
			transition: transform 0.4s ease;
		}

		.other-school .other-school-card:hover .other-school-thumb img {
			transform: scale(1.04);
		}

		.other-school .other-school-name {
			margin: 18px 18px 0;
			font-size: 22px;
			font-weight: 700;
			line-height: 1.4;
			color: #111;
			letter-spacing: 0.02em;
		}

		.other-school .other-school-desc {
			margin: 12px 18px 22px;
			font-size: 14px;
			line-height: 1.7;
			color: #555;
			flex: 1;
		}

		@media (max-width: 900px) {
			.other-school .other-school-grid {
				grid-template-columns: 1fr;
				gap: 24px;
			}

			.other-school .other-school-name {
				font-size: 20px;
			}
		}

		/* Other School Modal */
		.os-modal[hidden] {
			display: none;
		}

		.os-modal {
			position: fixed;
			inset: 0;
			z-index: 9999;
			display: flex;
			align-items: stretch;
			justify-content: stretch;
			padding: 30px;
			box-sizing: border-box;
		}

		.os-modal-backdrop {
			position: absolute;
			inset: 0;
			background: rgba(0, 0, 0, 0.6);
			animation: osFade 0.2s ease;
		}

		.os-modal-dialog {
			position: relative;
			z-index: 1;
			width: 100%;
			height: 100%;
			max-width: none;
			max-height: none;
			background: #fff;
			border-radius: 8px;
			overflow-y: auto;
			box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
			display: flex;
			flex-direction: column;
			animation: osPop 0.25s cubic-bezier(0.2, 0.9, 0.3, 1.2);
		}

		@keyframes osFade {
			from { opacity: 0; }
			to { opacity: 1; }
		}

		@keyframes osPop {
			from { opacity: 0; transform: translateY(12px) scale(0.96); }
			to   { opacity: 1; transform: translateY(0) scale(1); }
		}

		.os-modal-close {
			position: absolute;
			top: 12px;
			right: 12px;
			width: 44px;
			height: 44px;
			border: 0;
			border-radius: 50%;
			background: rgba(0, 0, 0, 0.6);
			color: #fff;
			font-size: 26px;
			line-height: 1;
			cursor: pointer;
			z-index: 10;
			transition: background 0.2s ease;
		}

		.os-modal-close:hover {
			background: rgba(0, 0, 0, 0.8);
		}

		.os-modal-thumb {
			width: 100%;
			height: 50vh;
			min-height: 240px;
			background: #f2f2f2;
			overflow: hidden;
			flex-shrink: 0;
		}

		.os-modal-thumb img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			display: block;
		}

		.os-modal-body {
			padding: 40px 32px 48px;
			max-width: 800px;
			width: 100%;
			margin: 0 auto;
			box-sizing: border-box;
		}

		.os-modal-title {
			margin: 0 0 20px;
			font-size: 32px;
			font-weight: 700;
			line-height: 1.35;
			color: #111;
			letter-spacing: 0.02em;
		}

		.os-modal-desc {
			margin: 0 0 28px;
			font-size: 16px;
			line-height: 1.9;
			color: #444;
		}

		.os-modal-link {
			display: inline-block;
			padding: 12px 24px;
			background: #111;
			color: #fff;
			text-decoration: none;
			border-radius: 4px;
			font-size: 14px;
			font-weight: 700;
			letter-spacing: 0.05em;
			transition: background 0.2s ease, transform 0.2s ease;
		}

		.os-modal-link:hover {
			background: #333;
			transform: translateY(-1px);
		}

		body.os-modal-open {
			overflow: hidden;
		}

		@media (max-width: 600px) {
			.os-modal { padding: 16px; }
			.os-modal-title { font-size: 24px; }
			.os-modal-body { padding: 28px 20px 36px; }
			.os-modal-thumb { height: 40vh; min-height: 200px; }
			.os-modal-close { top: 8px; right: 8px; width: 40px; height: 40px; }
		}

		/* News & Event */
		.news-event {
			padding: 80px 0;
		}

		.news-event .news-event-scroller {
			margin-top: 32px;
			overflow-x: auto;
			overflow-y: hidden;
			-webkit-overflow-scrolling: touch;
			scroll-snap-type: x mandatory;
			padding-bottom: 12px;
		}

		.news-event .news-event-track {
			display: grid;
			grid-auto-flow: column;
			/* PC: 3件表示。gap分を除いて1/3。 */
			grid-auto-columns: calc((100% - 64px) / 3);
			gap: 32px;
		}

		.news-event .news-event-card {
			display: flex;
			flex-direction: column;
			background: #fff;
			border-radius: 8px;
			overflow: hidden;
			box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
			transition: transform 0.25s ease, box-shadow 0.25s ease;
			scroll-snap-align: start;
		}

		.news-event .news-event-card:hover {
			transform: translateY(-4px);
			box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
		}

		.news-event .news-event-card-link {
			display: block;
			text-decoration: none;
			color: inherit;
		}

		.news-event .news-event-card-link:focus-visible {
			outline: 2px solid #1a73e8;
			outline-offset: 2px;
		}

		.news-event .news-event-trigger {
			display: block;
			width: 100%;
			padding: 0;
			margin: 0;
			border: 0;
			background: transparent;
			text-align: left;
			color: inherit;
			cursor: pointer;
			font: inherit;
		}

		.news-event .news-event-trigger:focus-visible {
			outline: 2px solid #1a73e8;
			outline-offset: 2px;
		}

		.news-event .news-event-thumb {
			position: relative;
			width: 100%;
			aspect-ratio: 16 / 9;
			overflow: hidden;
			background: #f2f2f2;
		}

		.news-event .news-event-thumb img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			display: block;
			transition: transform 0.4s ease;
		}

		.news-event .news-event-card:hover .news-event-thumb img {
			transform: scale(1.04);
		}

		.news-event .news-event-date {
			margin: 18px 18px 0;
			font-size: 13px;
			font-weight: 700;
			letter-spacing: 0.05em;
			color: #888;
		}

		.news-event .news-event-cats {
			display: flex;
			flex-wrap: wrap;
			gap: 6px;
			margin: 18px 18px 0;
		}

		.news-event .news-event-cat {
			display: inline-block;
			padding: 4px 8px;
			border-radius: 999px;
			font-size: 10px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.05em;
			background: #111;
			color: #fff;
		}

		.news-event .news-event-name {
			margin: 6px 18px 0;
			font-size: 20px;
			font-weight: 700;
			line-height: 1.4;
			color: #111;
			letter-spacing: 0.02em;
		}

		.news-event .news-event-desc {
			margin: 12px 18px 22px;
			font-size: 14px;
			line-height: 1.7;
			color: #555;
			flex: 1;
		}

		.news-event .news-event-actions {
			padding: 0 18px 22px;
		}

		.news-event .news-event-btn {
			display: inline-block;
			padding: 10px 20px;
			background: #111;
			color: #fff;
			text-decoration: none;
			border-radius: 4px;
			font-size: 13px;
			font-weight: 700;
			letter-spacing: 0.05em;
			transition: background 0.2s ease, transform 0.2s ease;
		}

		.news-event .news-event-btn:hover {
			background: #333;
			transform: translateY(-1px);
		}

		.news-event .news-event-empty {
			margin-top: 32px;
			text-align: center;
			color: #888;
		}

		.news-event .news-event-hint {
			margin: 12px 0 0;
			font-size: 12px;
			color: #999;
			text-align: right;
		}

		@media (max-width: 900px) {
			.news-event .news-event-track {
				/* SP: 1件表示 */
				grid-auto-columns: 100%;
				gap: 16px;
			}

			.news-event .news-event-name {
				font-size: 18px;
			}
		}
