.is-layout-constrained > .okolab-front-copy-block {
	width: 100%;
	max-width: 1440px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: left;
}

.okolab-front-copy-block > p {
	max-width: 760px;
}

.okolab-front-philosophy,
.okolab-front-philosophy .okolab-front-copy-block,
.okolab-front-philosophy .okolab-front-copy-block > .wp-block-heading,
.okolab-front-philosophy .okolab-front-copy-block > p,
.okolab-front-philosophy .wp-block-buttons {
	margin-inline: auto;
	text-align: center;
}

.okolab-front-philosophy .wp-block-buttons {
	justify-content: center;
}

.okolab-front-philosophy .okolab-front-philosophy__lab-name {
	max-width: none;
	overflow-wrap: anywhere;
}

.okolab-member-intro {
	margin-inline: auto;
	text-align: center;
}

.okolab-member-intro > p {
	max-width: 760px;
	margin-inline: auto;
}

.wp-block-post-content > .okolab-contact-info {
	max-width: 760px !important;
	text-align: left;
}

.okolab-contact-info > p:has(> a[href="https://www.meiji.ac.jp/koho/campus_guide/ikuta/access.html"]) {
	padding-top: var(--wp--preset--spacing--10);
}

/*
 * Aboutの研究室紹介だけの間隔調整。テーマ全体のブロック間隔（block-gap）は変えず、
 * padding で既存の余白へ上乗せする。管理画面で本文を編集しても、グループの
 * `okolab-about-intro` クラスが残っていれば維持される。
 */
.okolab-about-intro > .wp-block-heading + p {
	padding-top: 30px;
}

.okolab-about-intro > p + .wp-block-heading {
	padding-top: 45px;
}

.okolab-members-grade + .okolab-members-grade {
	margin-top: var(--wp--preset--spacing--40);
}

/* 「修士論文・修士設計」と「卒業設計・卒業論文」の区分の違いを余白で示す。 */
.okolab-research-section + .okolab-research-section {
	margin-top: var(--wp--preset--spacing--50);
}

/*
 * 論文・設計リストはリストマーカーと字下げを表示しない。生成本文の <ul> には
 * 固有クラスが無いため区分グループを起点に指定する。詳細度を上げているのは
 * theme.json の core/list が生成する `:root :where(.wp-block-list)` を打ち消すため。
 */
.okolab-research-section ul.wp-block-list {
	padding-left: 0;
	list-style-type: none;
}

/*
 * 1件は「氏名 <br> 題目」で2行になるため、項目間の余白が行送り（1.55em）だけだと
 * 氏名と題目の間隔と区別がつかない。リストマーカーが無くても項目の切れ目が
 * 分かるよう、行送りより広い余白を項目間に取る。
 */
.okolab-research-section ul.wp-block-list > li + li {
	margin-top: var(--wp--preset--spacing--10);
}

.okolab-professor-portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.okolab-professor-history,
.okolab-members-list {
	padding-left: 0;
	list-style-type: none;
}

/*
 * theme.json の core/list が生成する `:root :where(.wp-block-list){padding-left:...}` は
 * 上のルールと詳細度が同じで、グローバルスタイルが後に読み込まれるため打ち消されてしまう。
 * 略歴とMembersの文頭を見出し・本文の文頭に揃えるため、詳細度を上げて padding を打ち消す。
 */
ul.wp-block-list.okolab-professor-history,
ul.wp-block-list.okolab-members-list {
	padding-left: 0;
}

.okolab-members-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem 2rem;
}

.okolab-front-news-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
	padding: 0;
	list-style: none;
}

.okolab-front-news-list li {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #ffffff;
	border: 1px solid rgba(17, 17, 17, 0.08);
	overflow: hidden;
}

.okolab-front-news-list .wp-block-latest-posts__featured-image {
	order: 1;
	margin: 0;
	float: none;
	width: 100%;
}

.okolab-front-news-list .wp-block-latest-posts__featured-image a,
.okolab-front-news-list .wp-block-latest-posts__featured-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.okolab-front-news-list .wp-block-latest-posts__featured-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.okolab-front-news-list .wp-block-latest-posts__featured-image:not(:has(img)) {
	aspect-ratio: 4 / 3;
	background: #f8f8f8;
}

.okolab-front-news-list li:not(:has(.wp-block-latest-posts__featured-image))::before {
	content: "";
	order: 1;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #f8f8f8;
}

.okolab-front-news-list .wp-block-latest-posts__post-date {
	order: 2;
	padding: 1rem 1rem 0;
	font-size: 0.9rem;
	color: #636363;
}

.okolab-front-news-list .wp-block-latest-posts__post-title {
	order: 3;
	display: -webkit-box;
	padding: 0.35rem 1rem 1.1rem;
	line-height: 1.35;
	text-decoration: none;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.okolab-front-news-list .wp-block-latest-posts__post-title:hover,
.okolab-front-news-list .wp-block-latest-posts__post-title:focus-visible {
	text-decoration: underline;
}

.okolab-front-news-list .wp-block-latest-posts__featured-image + .wp-block-latest-posts__post-title {
	padding-top: 1rem;
}

.okolab-site-logo img {
	display: block;
	width: 240px;
	max-width: 100%;
	height: auto;
}

.okolab-header-brand .okolab-site-logo {
	max-width: 100%;
}
@media (max-width: 700px) {
	.okolab-header-brand .okolab-site-logo img {
		width: 180px;
	}
}

@media (max-width: 781px) {
	.okolab-front-news-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.okolab-footer-columns {
		flex-direction: column-reverse;
		row-gap: 2.5rem;
	}

	.okolab-footer-brand-column,
	.okolab-footer-spacer-column,
	.okolab-footer-nav-column {
		flex-basis: 100% !important;
	}

	.okolab-footer-brand-column {
		margin-top: 60px;
		text-align: center;
	}

	.okolab-footer-brand-column .wp-block-group {
		align-items: center;
	}

	.okolab-footer-spacer-column {
		display: none;
	}

	.okolab-header-shell {
		flex-wrap: nowrap;
		align-items: center;
		column-gap: 0.75rem;
	}

	.okolab-header-brand {
		order: 1;
		width: auto;
		min-width: 0;
		flex: 1 1 auto;
	}

	.okolab-header-nav {
		order: 2;
		width: auto;
		flex: 0 0 auto;
		justify-content: flex-end;
	}

	.okolab-header-nav .wp-block-navigation {
		justify-content: flex-end;
		margin-left: auto;
		width: auto;
	}

	.okolab-header-nav .wp-block-navigation__responsive-container-open {
		margin-left: auto;
	}

}

@media (max-width: 600px) {
	.okolab-front-news-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.okolab-members-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
