/* ライフシフトラボ東京校（.analy-campus）
   style.css（_scss からのビルド）とは別ファイル。サイズは style.css と同じ --module 基準 */
.analy-campus {
	position: relative;
	overflow: hidden;
	display: grid;
	gap: calc(.32 * var(--module));
	background: linear-gradient(#fff, var(--color-pale-blue));
}
.analy-campus::before,
.analy-campus::after {
	content: "";
	position: absolute;
	background: #d6ecfb;
	opacity: .55;
	transform: skewX(-28deg);
	pointer-events: none;
}
.analy-campus::before {
	left: calc(-.72 * var(--module));
	top: calc(1.44 * var(--module));
	width: calc(2.64 * var(--module));
	height: calc(1.44 * var(--module));
}
.analy-campus::after {
	right: calc(-.48 * var(--module));
	bottom: calc(2.16 * var(--module));
	width: calc(3.12 * var(--module));
	height: calc(1.68 * var(--module));
}
.analy-campus > * {
	position: relative;
}
.analy-campus_header {
	display: grid;
	justify-items: center;
	gap: calc(.16 * var(--module));
	text-align: center;
}
.analy-campus h2 {
	display: grid;
	gap: calc(.08 * var(--module));
	text-align: center;
}
.analy-campus h2 .span1 {
	text-wrap: balance;
}
.analy-campus_label {
	padding: .24em 1.28em;
	background: var(--color-text);
	color: #fff;
}
.analy-campus_lead {
	text-align: center;
	line-height: 1.95;
}
.analy-campus_lead .red {
	color: var(--color-red);
	font-weight: 700;
}
.analy-campus_photos {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	grid-template-rows: auto auto;
	gap: calc(.14 * var(--module));
	margin: 0;
}
.analy-campus_photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: calc(.07 * var(--module));
	background: #dfe9f3;
}
.analy-campus_photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.analy-campus_photo.main {
	grid-row: 1 / 3;
}
.analy-campus_photo.main img {
	position: absolute;
	inset: 0;
}
.analy-campus_photo.sub {
	aspect-ratio: 4 / 3;
}
.analy-campus_photo figcaption {
	position: absolute;
	left: calc(.14 * var(--module));
	bottom: calc(.14 * var(--module));
	padding: .3em 1.1em;
	border-radius: 16em;
	background: rgba(31, 59, 95, .92);
	color: #fff;
	font-size: calc(.15 * var(--module));
	font-weight: 700;
}
.analy-campus_badge {
	position: absolute;
	top: calc(.19 * var(--module));
	right: calc(.19 * var(--module));
	display: grid;
	place-items: center;
	width: calc(1.4 * var(--module));
	height: calc(1.4 * var(--module));
	border: 3px solid var(--color-red);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 6px 16px rgba(31, 59, 95, .18);
	color: var(--color-red);
	font-size: calc(.15 * var(--module));
	font-weight: 900;
	line-height: 1.35;
	text-align: center;
}
.analy-campus_badge b {
	display: block;
	font-size: calc(.23 * var(--module));
}
.analy-campus_info {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	overflow: hidden;
	border-radius: calc(.1 * var(--module));
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 59, 95, .1);
}
.analy-campus_access {
	display: grid;
	align-content: center;
	gap: calc(.14 * var(--module));
	padding: calc(.31 * var(--module)) calc(.36 * var(--module));
}
.analy-campus_access h3 {
	padding-bottom: calc(.07 * var(--module));
	border-bottom: 2px solid var(--color-light-blue);
	color: var(--color-blue);
	font-size: calc(.18 * var(--module));
	font-weight: 700;
}
.analy-campus_access dl {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: calc(.1 * var(--module)) calc(.22 * var(--module));
	margin: 0;
	font-size: calc(.17 * var(--module));
}
.analy-campus_access dt {
	color: var(--color-blue);
	font-weight: 700;
}
.analy-campus_access dd {
	margin: 0;
}
.analy-campus_access .ff_serif {
	padding-inline: 1px;
	color: var(--color-red);
	font-size: 1.25em;
	font-weight: 700;
}
.analy-campus_walk {
	white-space: nowrap;
}
.analy-campus_map {
	min-height: calc(2.64 * var(--module));
}
.analy-campus_map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	border: 0;
}

@media screen and (max-width: 768px) {
	.analy-campus {
		gap: calc(.4 * var(--module));
	}
	.analy-campus_lead {
		text-align: left;
	}
	.analy-campus_photos {
		grid-template-columns: 1fr 1fr;
		gap: calc(.16 * var(--module));
	}
	.analy-campus_photo.main {
		grid-column: 1 / 3;
		grid-row: auto;
		aspect-ratio: 4 / 3;
	}
	.analy-campus_photo figcaption {
		left: calc(.16 * var(--module));
		bottom: calc(.16 * var(--module));
		font-size: calc(.21 * var(--module));
	}
	.analy-campus_badge {
		top: calc(.2 * var(--module));
		right: calc(.2 * var(--module));
		width: calc(1.72 * var(--module));
		height: calc(1.72 * var(--module));
		border-width: 2px;
		font-size: calc(.2 * var(--module));
	}
	.analy-campus_badge b {
		font-size: calc(.29 * var(--module));
	}
	.analy-campus_info {
		grid-template-columns: 1fr;
	}
	.analy-campus_access {
		padding: calc(.4 * var(--module)) calc(.36 * var(--module));
	}
	.analy-campus_access h3 {
		font-size: calc(.27 * var(--module));
	}
	.analy-campus_access dl {
		gap: calc(.14 * var(--module)) calc(.28 * var(--module));
		font-size: calc(.25 * var(--module));
	}
	.analy-campus_map {
		min-height: calc(3.6 * var(--module));
	}
}
