/* 代表著書カード（.c-book）・東京校（.c-campus）
   サイズはサイト本体と同じく PC=1280px / SP=768px 基準で可変（1u = 基準幅での1px） */
.c-book,
.c-campus {
	--u: calc(min(100vw, 1280px) / 1280);
	--navy: #2d5684;
	--deep: #102240;
	--blue: #074699;
	--sub: #5283a6;
	--line: #c6d2e3;
	--pale: #f3f7fd;
	--gold: #b8913a;
	font-family: Noto Sans JP, ヒラギノ角ゴ Pro W3, Hiragino Kaku Gothic Pro, メイリオ, Meiryo, ＭＳ Ｐゴシック, sans-serif;
	color: #272525;
}
@media screen and (max-width: 768px) {
	.c-book,
	.c-campus {
		--u: calc(100vw / 768);
	}
}

/* ---------- 代表著書 ---------- */
.c-book {
	background-color: var(--navy);
	padding: calc(80 * var(--u)) calc(90 * var(--u)) calc(100 * var(--u));
}
.c-book__card {
	display: grid;
	grid-template-columns: calc(220 * var(--u)) minmax(0, 1fr);
	gap: calc(44 * var(--u));
	align-items: start;
	max-width: calc(980 * var(--u));
	margin: 0 auto;
	padding: calc(34 * var(--u)) calc(44 * var(--u)) calc(34 * var(--u)) calc(38 * var(--u));
	background: #fff;
}
.c-book__cover img {
	display: block;
	width: 100%;
	height: auto;
	margin-top: calc(-70 * var(--u));
	border-radius: 1px 3px 3px 1px;
	box-shadow: -2px 0 0 #0b3a7a inset, 10px 14px 26px rgba(16, 34, 64, .32), 2px 3px 6px rgba(16, 34, 64, .2);
}
.c-book__text {
	display: grid;
	gap: calc(14 * var(--u));
	min-width: 0;
}
.c-book__label {
	color: var(--sub);
	font-size: calc(13 * var(--u));
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.6;
}
.c-book__title {
	color: var(--deep);
	font-size: calc(26 * var(--u));
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: .02em;
}
.c-book__title small {
	display: block;
	color: var(--navy);
	font-size: calc(16 * var(--u));
	font-weight: 700;
}
.c-book__awards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: calc(4 * var(--u));
	max-width: calc(560 * var(--u));
	margin: 0;
	padding: 0;
	list-style: none;
}
.c-book__award {
	display: grid;
	place-items: center;
	min-height: calc(112 * var(--u));
	padding: calc(6 * var(--u)) calc(26 * var(--u));
	background: url(../images/laurel.svg) center / contain no-repeat;
	color: var(--deep);
	font-size: calc(13 * var(--u));
	font-weight: 900;
	line-height: 1.35;
	text-align: center;
}
.c-book__award_small {
	display: block;
	color: var(--sub);
	font-size: calc(11 * var(--u));
	font-weight: 700;
}
.c-book__award_big {
	display: block;
	color: var(--gold);
	font-family: Yu Mincho, YuMincho, Hiragino Mincho ProN, MS Mincho, serif;
	font-size: calc(24 * var(--u));
	line-height: 1.2;
}
.c-book__desc {
	font-size: calc(15 * var(--u));
	line-height: 1.85;
}
.c-book__foot {
	display: flex;
	flex-wrap: wrap;
	gap: calc(10 * var(--u)) calc(16 * var(--u));
	align-items: center;
	justify-content: flex-end;
	padding-top: calc(16 * var(--u));
	border-top: 1px solid var(--line);
}
.c-book__btn {
	display: inline-flex;
	align-items: center;
	gap: calc(10 * var(--u));
	padding: calc(12 * var(--u)) calc(28 * var(--u));
	border: 2px solid var(--blue);
	border-radius: 999px;
	background: #fff;
	color: var(--blue);
	font-size: calc(15 * var(--u));
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.c-book__btn svg {
	width: calc(14 * var(--u));
	height: calc(14 * var(--u));
}
@media (hover: hover) {
	.c-book__btn:hover {
		background: var(--blue);
		color: #fff;
	}
}

@media screen and (max-width: 768px) {
	.c-book {
		padding: calc(110 * var(--u)) calc(30 * var(--u)) calc(70 * var(--u));
	}
	.c-book__card {
		grid-template-columns: calc(220 * var(--u)) minmax(0, 1fr);
		gap: calc(16 * var(--u)) calc(30 * var(--u));
		padding: calc(36 * var(--u)) calc(32 * var(--u)) calc(40 * var(--u));
	}
	.c-book__cover {
		grid-column: 1;
		grid-row: 1 / 3;
	}
	.c-book__cover img {
		margin-top: calc(-90 * var(--u));
	}
	.c-book__text {
		display: contents;
	}
	.c-book__label {
		grid-column: 2;
		grid-row: 1;
		align-self: end;
		font-size: calc(21 * var(--u));
		line-height: 1.5;
	}
	.c-book__title {
		grid-column: 2;
		grid-row: 2;
		align-self: start;
		font-size: calc(33 * var(--u));
	}
	.c-book__title small {
		font-size: calc(23 * var(--u));
	}
	.c-book__awards {
		grid-column: 1 / 3;
		gap: 0;
		max-width: none;
		margin-top: calc(16 * var(--u));
	}
	.c-book__award {
		min-height: calc(186 * var(--u));
		padding: calc(8 * var(--u)) calc(34 * var(--u));
		font-size: calc(21 * var(--u));
	}
	.c-book__award_small {
		font-size: calc(18 * var(--u));
	}
	.c-book__award_big {
		font-size: calc(36 * var(--u));
	}
	.c-book__desc {
		grid-column: 1 / 3;
		font-size: calc(26 * var(--u));
	}
	.c-book__foot {
		grid-column: 1 / 3;
		flex-direction: column-reverse;
		align-items: stretch;
		gap: calc(16 * var(--u));
		padding-top: calc(28 * var(--u));
		text-align: center;
	}
		.c-book__btn {
		justify-content: center;
		gap: calc(16 * var(--u));
		padding: calc(22 * var(--u));
		font-size: calc(27 * var(--u));
	}
	.c-book__btn svg {
		width: calc(24 * var(--u));
		height: calc(24 * var(--u));
	}
}

/* ---------- 東京校 ---------- */
.c-campus {
	background: #fff;
	padding: calc(90 * var(--u)) calc(90 * var(--u)) calc(40 * var(--u));
}
.c-campus__header {
	display: grid;
	gap: calc(8 * var(--u));
	margin-bottom: calc(44 * var(--u));
	text-align: center;
}
.c-campus__title {
	color: var(--blue);
	font-size: calc(44 * var(--u));
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1.6;
}
.c-campus__lead {
	color: var(--navy);
	font-size: calc(17 * var(--u));
	font-weight: 700;
	line-height: 1.9;
}
.c-campus__photos {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	grid-template-rows: auto auto;
	gap: calc(12 * var(--u));
	max-width: calc(1000 * var(--u));
	margin: 0 auto;
}
.c-campus__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: #e9eef5;
}
.c-campus__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.c-campus__photo--main {
	grid-row: 1 / 3;
}
.c-campus__photo--main img {
	position: absolute;
	inset: 0;
}
.c-campus__photo--sub {
	aspect-ratio: 4 / 3;
}
.c-campus__photo figcaption {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: calc(6 * var(--u)) calc(14 * var(--u));
	background: var(--navy);
	color: #fff;
	font-size: calc(13 * var(--u));
	font-weight: 700;
	letter-spacing: .04em;
}
.c-campus__photo--main figcaption {
	padding: calc(9 * var(--u)) calc(18 * var(--u));
	font-size: calc(15 * var(--u));
}
.c-campus__stamp {
	position: absolute;
	top: calc(18 * var(--u));
	right: calc(18 * var(--u));
	display: grid;
	place-items: center;
	width: calc(116 * var(--u));
	height: calc(116 * var(--u));
	border-radius: 50%;
	background: #ffe133;
	box-shadow: 0 4px 10px rgba(0, 0, 0, .18);
	color: var(--deep);
	font-size: calc(13 * var(--u));
	font-weight: 900;
	line-height: 1.35;
	text-align: center;
}
.c-campus__stamp b {
	display: block;
	font-size: calc(20 * var(--u));
}
.c-campus__info {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	max-width: calc(1000 * var(--u));
	margin: calc(24 * var(--u)) auto 0;
	border: 1px solid var(--line);
	background: var(--pale);
}
.c-campus__access {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: calc(12 * var(--u)) calc(20 * var(--u));
	align-content: center;
	margin: 0;
	padding: calc(30 * var(--u)) calc(32 * var(--u));
	font-size: calc(15 * var(--u));
	line-height: 1.75;
}
.c-campus__access dt {
	color: var(--navy);
	font-weight: 700;
}
.c-campus__access dd {
	margin: 0;
}
.c-campus__map {
	min-height: calc(240 * var(--u));
	border-left: 1px solid var(--line);
}
.c-campus__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	border: 0;
}

@media screen and (max-width: 768px) {
	.c-campus {
		padding: calc(110 * var(--u)) calc(40 * var(--u)) calc(40 * var(--u));
	}
	.c-campus__header {
		gap: calc(12 * var(--u));
		margin-bottom: calc(50 * var(--u));
	}
		.c-campus__title {
		font-size: calc(55 * var(--u));
	}
	.c-campus__lead {
		font-size: calc(27 * var(--u));
		text-align: left;
	}
	.c-campus__photos {
		grid-template-columns: 1fr 1fr;
		gap: calc(14 * var(--u));
	}
	.c-campus__photo--main {
		grid-column: 1 / 3;
		grid-row: auto;
		aspect-ratio: 4 / 3;
	}
	.c-campus__photo figcaption {
		padding: calc(6 * var(--u)) calc(14 * var(--u));
		font-size: calc(21 * var(--u));
	}
	.c-campus__photo--main figcaption {
		padding: calc(10 * var(--u)) calc(20 * var(--u));
		font-size: calc(24 * var(--u));
	}
	.c-campus__stamp {
		top: calc(20 * var(--u));
		right: calc(20 * var(--u));
		width: calc(170 * var(--u));
		height: calc(170 * var(--u));
		font-size: calc(21 * var(--u));
	}
	.c-campus__stamp b {
		font-size: calc(30 * var(--u));
	}
	.c-campus__info {
		grid-template-columns: 1fr;
		margin-top: calc(30 * var(--u));
	}
	.c-campus__access {
		gap: calc(14 * var(--u)) calc(24 * var(--u));
		padding: calc(36 * var(--u)) calc(32 * var(--u));
		font-size: calc(25 * var(--u));
	}
	.c-campus__map {
		min-height: calc(400 * var(--u));
		border-left: 0;
		border-top: 1px solid var(--line);
	}
}
