@charset "utf-8";

:root {
	--blue: #005bac;
	--blue-dark: #003f78;
	--ink: #26313a;
	--muted: #63717d;
	--line: #d9e2e9;
	--white: #fff;
}

html { scroll-behavior: smooth; }
body {
	color: var(--ink);
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	line-height: 1.8;
}
#wrapper {
	width: auto;
	max-width: 1000px;
	margin: 0 auto;
	padding: 48px 24px 80px;
	text-align: left;
}
.content { font-size: 16px; }
.content * { box-sizing: border-box; }
.content p { margin: 0 0 1em; }
.content a { color: var(--blue); text-underline-offset: .2em; }
.content a:hover { text-decoration-thickness: 2px; }
.content a:focus-visible { outline: 3px solid #f3b51b; outline-offset: 3px; }

.page-heading {
	padding: 44px 48px;
	background: linear-gradient(135deg, var(--blue-dark), var(--blue));
	color: var(--white);
}
.page-heading .eyebrow {
	margin-bottom: 10px;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .08em;
}
.page-heading h1 {
	margin: 0 0 26px;
	font-size: clamp(26px, 4vw, 40px);
	line-height: 1.45;
	letter-spacing: .03em;
}
.page-heading .lead { font-size: 18px; font-weight: 700; line-height: 1.9; }
.page-heading p:last-child {
	margin-bottom: 0;
	letter-spacing: .035em;
}
.mobile-only-break { display: none; }

.page-nav {
	margin: 32px 0 64px;
	padding: 24px 28px;
	border: 1px solid var(--line);
	background: #f8fafc;
}
.page-nav > p { margin-bottom: 12px; font-size: 130%; font-weight: 700; }
.page-nav ol {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: principle;
}
.page-nav li { counter-increment: principle; }
.page-nav a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 11px 12px;
	border-bottom: 3px solid var(--blue);
	background: var(--white);
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
}
.page-nav a::before {
	content: counter(principle);
	margin-right: 8px;
	color: #a8cce8;
	font-size: 27px;
	font-weight: 800;
	line-height: 1;
}

.principle-section,
.management-section { margin: 0 0 80px; scroll-margin-top: 24px; }
.section-title {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 3px solid var(--blue);
}
.section-title > span {
	font-size: 38px;
	font-weight: 800;
	line-height: 1;
	color: #a8cce8;
}
.section-title p {
	margin: 0 0 2px;
	color: var(--muted);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .14em;
}
.section-title h2 {
	margin: 0;
	font-size: clamp(24px, 3vw, 30px);
	line-height: 1.35;
	color: var(--blue-dark);
}
.section-summary {
	margin-bottom: 34px !important;
	font-size: 1.08em;
	font-weight: 700;
}
.content h3 {
	margin: 38px 0 16px;
	padding-left: 14px;
	border-left: 5px solid var(--blue);
	font-size: 21px;
	line-height: 1.5;
	color: var(--blue-dark);
}
.content h4 { margin: 28px 0 12px; font-size: 17px; color: var(--ink); }
.content ul { margin: 0 0 24px; padding-left: 1.4em; }
.content li { margin-bottom: 10px; }
#principle-1 li::marker,
#principle-2 li::marker,
#principle-3 li::marker { content: "●  "; }

.inline-button,
.document-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
	background: var(--blue);
	color: var(--white) !important;
	font-weight: 700;
	text-decoration: none;
}
.inline-button::after,
.document-link::after { content: "›"; font-size: 1.4em; line-height: 1; }
.document-link span { font-size: 14px; font-weight: 400; }

.management-section {
	padding: 38px;
	background: #f7f9fb;
	border-top: 6px solid var(--blue-dark);
}
.management-title { border-bottom-color: var(--blue-dark); }
.management-title > span { font-size: 20px; letter-spacing: .06em; }
.small-label,
.caption,
.note { color: var(--muted); font-size: 14px; }
.small-label { margin-bottom: 6px !important; font-weight: 700; }
.corporate-credo { padding-left: 1.2em !important; }

.data-list { margin: 0; border-top: 1px solid var(--line); }
.data-list > div {
	display: grid;
	grid-template-columns: 180px 1fr;
	border-bottom: 1px solid var(--line);
}
.data-list dt,
.data-list dd { margin: 0; padding: 13px 16px; }
.data-list dt { background: #eaf0f5; font-weight: 700; }
.data-list dd { background: var(--white); }

.table-scroll { overflow-x: auto; margin-bottom: 14px; }
.table-scroll:focus-visible { outline: 3px solid #f3b51b; outline-offset: 2px; }
.content table {
	font-size: 16px;
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	background: var(--white);
}
.content th,
.content td {
	font-size: 16px;
	padding: 12px 14px;
	border: 1px solid #b7c5d1;
	text-align: left;
	vertical-align: top;
}
.content th { background: var(--blue-dark); color: var(--white); font-weight: 700; }
.content tbody tr:nth-child(even) { background: #f4f8fb; }
.officer-table th:nth-child(1) { width: 24%; }
.officer-table th:nth-child(2) { width: 18%; }
.officer-table tbody td:nth-child(2) {
	text-align: justify;
	text-align-last: justify;
	white-space: nowrap;
}
.committee-table th:nth-child(1) { width: 15%; }
.committee-table th:nth-child(2) { width: 20%; }

.reference-section { padding-top: 24px; border-top: 1px solid var(--line); }
.reference-section h2 { margin: 0 0 14px; font-size: 20px; color: var(--blue-dark); }

.back-to-index {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 100;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	border-radius: 999px;
	background: var(--blue-dark);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
}
.back-to-index::before { content: "←"; }
.back-to-index:hover { background: var(--blue); }
.back-to-index:focus-visible { outline: 3px solid #f3b51b; outline-offset: 3px; }

@media only screen and (max-width: 760px) {
	#wrapper { padding: 24px 16px 56px; }
	.page-heading { padding: 30px 24px; }
	.page-nav { margin-bottom: 52px; padding: 20px; }
	.page-nav ol { grid-template-columns: 1fr 1fr; }
	.management-section { padding: 26px 20px; }
	.data-list > div { grid-template-columns: 1fr; }
	.data-list dt { padding-bottom: 5px; }
	.data-list dd { padding-top: 5px; }
}

@media only screen and (max-width: 480px) {
	.content { font-size: 15px; }
	.page-heading { margin: 0 -16px; padding: 28px 20px; }
	.page-heading .eyebrow { font-size: 14px; }
	.page-heading h1 {
		font-size: clamp(20px, 5.6vw, 24px);
		letter-spacing: .01em;
	}
	.mobile-only-break { display: initial; }
	.page-nav ol { grid-template-columns: 1fr; }
	.page-nav a::before { font-size: 21px; }
	.desktop-only-break { display: none; }
	.section-title { gap: 14px; }
	.section-title > span { font-size: 30px; }
	.management-section { margin-right: -16px; margin-left: -16px; padding: 24px 16px; }
	.back-to-index { right: 12px; bottom: 12px; padding: 10px 16px; }
	.inline-button,
	.document-link { display: flex; justify-content: space-between; width: 100%; }
	.document-link { align-items: flex-start; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

.date-indent {
	visibility: hidden;
}

.board-meeting-table tbody td:nth-child(3) {
	text-align: right;
}