/* 学割対象講座ページ（/student/gakuwari/） */
		.gw-page {
			--gw-bg: #f4f6fb;
			--gw-card: #fff;
			--gw-line: #e6eaf2;
			--gw-ink: #1a2233;
			--gw-sub: #5c6578;
			--gw-accent: #2563eb;
			/* 注釈ボックス（グレー地）上のリンク用：標準の青より明るくして視認性を確保 */
			--gw-note-link: #7dd3fc;
			--gw-accent2: #0f172a;
			font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
			color: var(--gw-ink);
		}

		.gw-hero {
			background: linear-gradient(135deg, #0f4f92 0%, #1262b2 48%, #4f8fd0 100%);
			color: #fff;
			border-radius: 10px;
			padding: 2rem 1.25rem 2.5rem;
			margin: 0 auto 4.5rem;
			max-width: 1100px;
			box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
		}

		.gw-hero h1 {
			font-size: clamp(1.35rem, 3vw, 1.85rem);
			font-weight: 700;
			line-height: 1.35;
			margin: 0 0 0.5rem;
			letter-spacing: 0.02em;
		}

		.gw-hero p {
			margin: 0;
			font-size: 1.6rem;
			opacity: 0.92;
			line-height: 1.65;
		}

		.gw-cta-row {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 4.55rem;
			margin-top: 1.35rem;
		}

		.gw-cta {
			display: flex;
			align-items: center;
			justify-content: center;
			text-align: center;
			padding: 0.75rem 0.5rem;
			border-radius: 20px;
			font-size: 1.6rem;
			font-weight: 600;
			text-decoration: none;
			color: var(--gw-accent2);
			background: #fff;
			box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
			transition: transform 0.15s ease, box-shadow 0.15s ease;
		}

		.gw-cta:hover {
			transform: translateY(-2px);
			box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
		}

		.gw-wrap {
			max-width: 1100px;
			margin: 0 auto;
			padding: 0 1rem 5rem;
		}

		.gw-note {
			background: var(--gw-sub);
			border: 1px solid var(--gw-line);
			border-radius: 12px;
			padding: 1rem 1.15rem;
			font-size: 1.4rem;
			color: var(--gw-card);
			line-height: 1.7;
			margin: 4rem 0 1.5rem;
		}

		.gw-note-line {
			display: block;
		}

		.gw-note-mark {
			padding-left: 1em;
			text-indent: -1em;
		}

		.gw-note-link-row {
			display: block;
			margin-top: 0.75rem;
			padding-top: 0.75rem;
			border-top: 1px solid rgba(255, 255, 255, 0.22);
		}

		/* global.css の a:link / a:visited（#000）より特異性を上げる */
		a.gw-school-link,
		a.gw-school-link:link,
		a.gw-school-link:visited {
			display: inline-flex;
			align-items: center;
			gap: 0.45em;
			color: var(--gw-note-link);
			font-weight: 600;
			text-decoration: underline;
			text-underline-offset: 0.15em;
			text-decoration-thickness: 2px;
			text-decoration-color: var(--gw-note-link);
		}

		a.gw-school-link:hover,
		a.gw-school-link:active {
			color: var(--gw-note-link);
			text-decoration: underline;
			text-decoration-color: var(--gw-note-link);
		}

		.gw-school-link__icon {
			flex-shrink: 0;
			width: 1.05em;
			height: 1.05em;
			vertical-align: middle;
		}

		.gw-section-title {
			font-size: 2.4rem;
			font-weight: 700;
			margin: 2rem 0;
			padding-left: 1.35rem;
			border-left: 2px solid var(--gw-accent);
			display: inline-block;
		}

		.gw-summary-title {
			position: relative;
			display: flex;
			align-items: center;
			gap: 0.45rem;
			width: 100%;
			font-size: 2.6rem;
			font-weight: 700;
			line-height: 1.4;
			margin: 0 0 0.75rem;
			padding-bottom: 0.5rem;
		}

		.gw-summary-title::before {
			content: "◆";
			color: var(--gw-accent);
			font-size: 0.9em;
			line-height: 1;
		}

		.gw-summary-title::after {
			content: "";
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 2px;
			background: var(--gw-accent);
		}

		.gw-target-list {
			margin: 0;
			padding: 0;
			list-style: none;
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 0.75rem;
		}

		.gw-target-item {
			display: flex;
			align-items: center;
			gap: 0.55rem;
			background: #eef4ff;
			border: 1px solid #c9daf7;
			border-radius: 10px;
			padding: 0.7rem 0.8rem;
			color: #0f2d55;
			font-size: 1.4rem;
			line-height: 1.5;
		}

		.gw-target-label {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.15rem 0.55rem;
			border-radius: 999px;
			background: #1262b2;
			color: #fff;
			font-size: 1.2rem;
			font-weight: 700;
			line-height: 1.2;
			white-space: nowrap;
		}

		.gw-table-wrap {
			background: var(--gw-card);
			border-radius: 8px;
			border: 1px solid var(--gw-line);
			overflow: hidden;
			box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
		}

		.gw-table {
			width: 100%;
			border-collapse: collapse;
			table-layout: fixed;
			font-size: 1.6rem;
		}

		.gw-col-name {
			width: 34%;
		}

		.gw-col-price {
			width: 26%;
		}

		.gw-col-arrow {
			width: 14%;
			min-width: 4rem;
		}

		.gw-table thead th {
			background: var(--gw-bg);
			text-align: left;
			padding: 0.85rem 1rem;
			font-weight: 600;
			border-bottom: 1px solid var(--gw-line);
			white-space: nowrap;
			vertical-align: middle;
		}

		/* .gw-table thead th.gw-arrow-col {
			text-align: center;
		} */

		.gw-table tbody td {
			padding: 1.45rem 1rem;
			border-bottom: 1px solid var(--gw-line);
			/* vertical-align: top; */
		}

		.gw-table tbody tr:last-child td {
			border-bottom: none;
		}

		.gw-course-name {
			font-weight: 500;
			line-height: 1.55;
		}

		.gw-course-name a {
			color: inherit;
			text-decoration: underline;
			text-underline-offset: 0.12em;
			text-decoration-thickness: 1px;
		}

		.gw-course-name a:hover {
			color: var(--gw-accent);
		}

		.gw-yen {
			font-weight: 600;
			font-variant-numeric: tabular-nums;
		}

		.gw-table tbody td:nth-child(4) .gw-yen {
			color: #dc2626;
			font-size: clamp(1.28em, 2vw, 1.55em);
		}

		.gw-tax {
			font-size: 1.6rem;
			color: var(--gw-sub);
			font-weight: 400;
			margin-left: 0.15rem;
		}

		.gw-muted {
			color: #94a3b8;
		}

		/* 提示の .arrow 形状（ページ内は .gw-arrow でスコープ） */
		.gw-table thead th.gw-arrow-col,
		.gw-table tbody td.gw-arrow-cell {
			position: relative;
			vertical-align: middle;
			padding: 0.85rem 0.5rem;
			white-space: nowrap;
			min-width: 7rem;
			min-height: 3.25rem;
		}

		/* 棒80px＋三角20pxをまとめてセル中央に配置 */
		.gw-arrow-wrap {
			position: absolute;
			left: 10%;
			top: 60%;
			transform: translate(-50%, -50%);
			width: 100px;
			height: 25px;
			pointer-events: none;
		}

		.gw-arrow {
			display: flex;
			position: relative;
			width: 60px;
			height: 15px;
			background: #000000;
			box-sizing: border-box;
			align-items: center;
			justify-content: center;
		}

		.gw-arrow::after {
			content: "";
			position: absolute;
			right: -20px;
			top: 50%;
			transform: translateY(-50%);
			width: 0;
			height: 0;
			border-left: 20px solid #000000;
			border-top: 13px solid transparent;
			border-bottom: 13px solid transparent;
		}

		.gw-arrow__text {
			position: relative;
			z-index: 1;
			/* color: #ffffff; */
			font-size: 0.65rem;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.02em;
		}

		.gw-price-cell {
			white-space: nowrap;
			vertical-align: middle;
			text-align: left;
		}

		.gw-sticky-cta {
			display: none;
		}

		@media screen and (max-width: 767px) {
			.gw-cta-row {
				grid-template-columns: 1fr;
				gap: 3.0rem;
			}

			.gw-summary-title {
				font-size: 2rem;
			}

			.gw-target-list {
				grid-template-columns: 1fr;
			}

			.gw-page .gw-table-wrap {
				overflow-x: auto;
				overflow-y: visible;
				-webkit-overflow-scrolling: touch;
			}

			/* tr に flex はテーブル整形のため効かないことが多い → table を block 化し価格3列を inline-block で1行に */
			.gw-page .gw-table {
				display: block !important;
				width: 100%;
				table-layout: auto !important;
			}

			.gw-page .gw-table colgroup {
				display: none !important;
			}

			.gw-page .gw-table thead {
				display: none !important;
			}

			.gw-page .gw-table tbody {
				display: block !important;
				width: 100%;
			}

			.gw-page .gw-table tbody tr {
				display: flex !important;
				flex-wrap: wrap;
				justify-content: space-between;
				align-items: flex-start;
				width: 100%;
				padding: 1rem 0.25rem;
				border-bottom: 1px solid var(--gw-line);
				overflow-x: auto;
				-webkit-overflow-scrolling: touch;
				text-align: left;
				box-sizing: border-box;
			}

			.gw-page .gw-table tbody tr:last-child {
				border-bottom: none;
			}

			.gw-page .gw-table tbody td {
				border: none;
				padding: 0.35rem 0.85rem;
				box-sizing: border-box;
			}

			.gw-page .gw-table tbody td:nth-child(1) {
				display: block !important;
				width: 100%;
				text-align: left;
			}

			.gw-page .gw-table tbody td:nth-child(2),
			.gw-page .gw-table tbody td:nth-child(4) {
				display: flex !important;
				flex-direction: column;
				align-items: flex-start;
				width: 33%;
				max-width: none;
				vertical-align: top;
				padding: 0.35rem 0.35rem;
				padding-left: 1.2rem;
				white-space: nowrap;
				text-align: left;
			}

			.gw-page .gw-table tbody td:nth-child(3) {
				display: flex !important;
				flex-direction: column;
				align-items: center;
				justify-content: flex-start;
				width: 12%;
				vertical-align: top;
				padding: 0.35rem 0.2rem;
				white-space: nowrap;
			}

			.gw-page .gw-table tbody td:nth-child(4) {
				/* align-items: flex-end; */
				text-align: right;
				padding-left: 0;
				/* margin-left: 30px; */
			}

			.gw-page .gw-table tbody td.gw-arrow-cell {
				position: relative;
				min-height: 2.5rem;
				width: 3.75rem;
				min-width: 3.75rem;
				max-width: 4rem;
				text-align: center;
				margin-top: 15px;
			}

			/* スマホ用コンパクト矢印（PCの要素・比率は維持） */
			.gw-page .gw-table tbody td.gw-arrow-cell .gw-arrow-wrap {
				width: 56px;
				height: 14px;
				transform: translate(-50%, -50%);
			}

			.gw-page .gw-table tbody td.gw-arrow-cell .gw-arrow {
				width: 45px;
				height: 7px;
			}

			.gw-page .gw-table tbody td.gw-arrow-cell .gw-arrow::after {
				right: -11px;
				border-left: 11px solid #000000;
				border-top: 7px solid transparent;
				border-bottom: 7px solid transparent;
			}

			.gw-page .gw-table tbody td.gw-arrow-cell .gw-arrow__text {
				font-size: 0.45rem;
			}

			td.gw-arrow-cell {
				margin-left: 20px;
			}

			.gw-page .gw-table tbody td::before {
				display: block;
				font-size: 1.2rem;
				color: var(--gw-sub);
				font-weight: 600;
				margin-bottom: 0.25rem;
			}

			.gw-page .gw-table tbody td:nth-child(1)::before {
				content: "講座名";
				font-size: 1rem;
			}

			.gw-page .gw-table tbody td:nth-child(2)::before {
				content: "通常受講料(税込)";
				display: block !important;
			}

			.gw-page .gw-table tbody td:nth-child(3)::before {
				content: "\00a0";
				display: block !important;
				font-size: 0.8rem;
				line-height: 1.2;
				margin-bottom: 0.25rem;
				color: transparent;
				user-select: none;
				pointer-events: none;
			}

			.gw-page .gw-table tbody td:nth-child(4)::before {
				content: "学割後受講料(税込)";
				display: block !important;
			}

			.gw-page .gw-table tbody td:nth-child(2) .gw-tax,
			.gw-page .gw-table tbody td:nth-child(4) .gw-tax {
				font-size: max(0.75rem, 2.8vw);
				display: none;
			}

			.gw-page .gw-table .gw-yen.gw-yen-7digits {
				font-size: 1.2em;
			}

			.gw-sticky-cta {
				display: flex;
				position: fixed;
				left: 0;
				right: 0;
				bottom: 0;
				z-index: 50;
				gap: 0;
				background: rgba(255, 255, 255, 0.92);
				backdrop-filter: blur(10px);
				border-top: 1px solid var(--gw-line);
				box-shadow: 0 -6px 24px rgba(15, 23, 42, 0.08);
			}

			.gw-sticky-cta a {
				flex: 1;
				text-align: center;
				padding: 0.7rem 0.25rem;
				font-size: 1rem;
				font-weight: 700;
				text-decoration: none;
				color: var(--gw-accent2);
				border-right: 1px solid var(--gw-line);
			}

			.gw-sticky-cta a:last-child {
				border-right: none;
			}

			.gw-sticky-cta a:nth-child(1) {
				background: linear-gradient(180deg, #eff6ff, #fff);
			}

			.gw-sticky-cta a:nth-child(2) {
				background: linear-gradient(180deg, #f8fafc, #fff);
			}

			.gw-sticky-cta a:nth-child(3) {
				background: linear-gradient(180deg, #f1f5f9, #fff);
			}

			.gw-arrow {
				width: 30px;
			}

		}