html {
	scroll-behavior: smooth;
}

body.km-site-shell {
	margin: 0;
	background: #fff;
}

body.km-site-shell.admin-bar .km-global-header {
	top: 32px;
}

.km-global-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgba(8, 36, 60, .08);
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 6px 24px rgba(7, 31, 52, .05);
	backdrop-filter: blur(12px);
}

.km-global-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	width: min(1180px, calc(100% - 40px));
	min-height: 76px;
	margin: 0 auto;
}

.km-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #08243c;
	text-decoration: none !important;
}

.km-brand__logo {
	display: block;
	width: auto;
	max-width: min(360px, 48vw);
	height: 48px;
	object-fit: contain;
	object-position: left center;
}

.km-brand__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	color: #fff;
	background: linear-gradient(135deg, #0d6efd, #08a8cc);
	box-shadow: 0 8px 18px rgba(13, 110, 253, .22);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .08em;
}

.km-brand__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.km-brand__text strong {
	color: #08243c;
	font-size: 20px;
	line-height: 1.25;
	letter-spacing: .01em;
}

.km-brand__text small {
	color: #667586;
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: .04em;
}

.km-global-nav {
	min-width: 0;
}

.km-global-nav__list,
.km-global-nav__list ul {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.km-global-nav__list li {
	margin: 0;
	padding: 0;
}

.km-global-nav a {
	padding: 10px 14px;
	border-radius: 8px;
	color: #17324a;
	text-decoration: none;
	font-size: 13px;
	font-weight: 800;
}

.km-global-nav a:hover {
	color: #0d6efd;
	background: #f1f7fb;
}

.km-global-footer {
	color: rgba(255,255,255,.82);
	background: #061a2b;
}

.km-global-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(220px, .8fr) minmax(0, 1.1fr);
	gap: 48px;
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: 52px 0 38px;
}


.km-global-footer__nav {
	min-width: 0;
}

.km-global-footer__menu {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.km-global-footer__menu li {
	margin: 0;
	padding: 0;
}

.km-global-footer__menu a {
	color: rgba(255,255,255,.78);
	text-decoration: none;
	font-size: 13px;
	line-height: 1.5;
}

.km-global-footer__menu a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.km-global-footer__brand {
	margin: 0 0 10px;
	color: #fff;
	font-size: 22px;
	font-weight: 800;
}

.km-global-footer__description,
.km-global-footer__note p {
	margin: 7px 0 0;
	color: rgba(255,255,255,.68);
	font-size: 13px;
	line-height: 1.8;
}

.km-global-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.08);
}

.km-global-footer__bottom p {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: 18px 0;
	color: rgba(255,255,255,.48);
	font-size: 11px;
}

.km-public {
	--km-navy: #08243c;
	--km-navy-deep: #041728;
	--km-blue: #0d6efd;
	--km-cyan: #08a8cc;
	--km-gold: #e8b83d;
	--km-text: #172536;
	--km-muted: #667586;
	--km-line: #dce5ec;
	--km-soft: #f4f8fb;
	--km-white: #fff;
	--km-success: #177a52;
	--km-warning: #9a6512;
	--km-danger: #a33b3b;
	--km-shadow: 0 16px 40px rgba( 7, 31, 52, .10 );
	color: var(--km-text);
	background: var(--km-white);
	font-family: inherit;
	line-height: 1.75;
}

.km-public *,
.km-public *::before,
.km-public *::after {
	box-sizing: border-box;
}

.km-public a {
	color: inherit;
}

.km-container {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
}

.km-eyebrow,
.km-section-kicker {
	margin: 0 0 8px;
	color: var(--km-cyan);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
}

.km-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 76px 0 72px;
	color: var(--km-white);
	background:
		radial-gradient(circle at 82% 18%, rgba(8,168,204,.34), transparent 33%),
		linear-gradient(135deg, var(--km-navy-deep), var(--km-navy) 62%, #0b3b5b);
}

.km-archive-hero::after {
	content: "";
	position: absolute;
	inset: auto -120px -180px auto;
	width: 480px;
	height: 480px;
	border: 70px solid rgba(255,255,255,.04);
	border-radius: 50%;
}

.km-archive-hero .km-container {
	position: relative;
	z-index: 1;
}

.km-archive-hero h1 {
	max-width: 760px;
	margin: 0;
	color: var(--km-white);
	font-size: clamp(32px, 5vw, 58px);
	line-height: 1.18;
	letter-spacing: -.03em;
}

.km-lead {
	max-width: 760px;
	margin: 22px 0 0;
	color: rgba(255,255,255,.82);
	font-size: clamp(15px, 2vw, 18px);
}

.km-hero-count {
	display: inline-flex;
	align-items: baseline;
	gap: 9px;
	margin-top: 30px;
	padding: 10px 18px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 999px;
	background: rgba(255,255,255,.08);
	backdrop-filter: blur(8px);
}

.km-hero-count strong {
	color: var(--km-gold);
	font-size: 28px;
	line-height: 1;
}

.km-hero-count span {
	font-size: 13px;
}

.km-filter-section {
	position: relative;
	z-index: 2;
	margin-top: -24px;
}

.km-filter-form {
	display: grid;
	grid-template-columns: minmax(250px, 1.7fr) repeat(3, minmax(150px, 1fr));
	gap: 16px;
	padding: 24px;
	border: 1px solid rgba(8,36,60,.08);
	border-radius: 18px;
	background: var(--km-white);
	box-shadow: var(--km-shadow);
}

.km-filter-field label {
	display: block;
	margin-bottom: 7px;
	color: var(--km-navy);
	font-size: 12px;
	font-weight: 800;
}

.km-filter-field input,
.km-filter-field select {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 13px;
	border: 1px solid var(--km-line);
	border-radius: 9px;
	background: var(--km-white);
	color: var(--km-text);
	font: inherit;
	font-size: 14px;
}

.km-filter-field input:focus,
.km-filter-field select:focus {
	border-color: var(--km-cyan);
	outline: 3px solid rgba(8,168,204,.13);
}

.km-filter-actions {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 18px;
}

.km-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 11px 22px;
	border: 0;
	border-radius: 9px;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.km-button:hover {
	transform: translateY(-1px);
	opacity: .94;
}

.km-button-primary {
	color: var(--km-white) !important;
	background: linear-gradient(135deg, var(--km-blue), var(--km-cyan));
	box-shadow: 0 8px 20px rgba(13,110,253,.22);
}

.km-filter-reset {
	color: var(--km-muted) !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.km-directory-section {
	padding: 62px 0 74px;
	background: var(--km-soft);
}

.km-result-heading {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 20px;
	margin-bottom: 24px;
}

.km-result-heading h2,
.km-section-heading h2 {
	margin: 0;
	color: var(--km-navy);
	font-size: clamp(23px, 3vw, 32px);
	line-height: 1.35;
}

.km-result-heading p {
	margin: 0;
	color: var(--km-muted);
	font-size: 14px;
}

.km-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.km-site-card {
	overflow: hidden;
	margin: 0;
	border: 1px solid var(--km-line);
	border-radius: 16px;
	background: var(--km-white);
	box-shadow: 0 8px 24px rgba(7,31,52,.06);
	transition: transform .2s ease, box-shadow .2s ease;
}

.km-site-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--km-shadow);
}

.km-card-image-link {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #dfeaf1;
}

.km-card-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.km-site-card:hover .km-card-image {
	transform: scale(1.025);
}

.km-card-image-fallback,
.km-detail-image-fallback {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	overflow: hidden;
	padding: 24px;
	color: rgba(255,255,255,.95);
	background:
		radial-gradient(circle at 18% 22%, rgba(8,168,204,.34), transparent 28%),
		radial-gradient(circle at 82% 75%, rgba(13,110,253,.25), transparent 34%),
		linear-gradient(135deg, var(--km-navy-deep), var(--km-navy));
	text-align: center;
}

.km-card-image-fallback::before,
.km-detail-image-fallback::before {
	content: "";
	position: absolute;
	width: 210px;
	height: 210px;
	border: 34px solid rgba(255,255,255,.04);
	border-radius: 50%;
	transform: translate(48%, 42%);
}

.km-card-image-fallback > *,
.km-detail-image-fallback > * {
	position: relative;
	z-index: 1;
}

.km-fallback-kicker {
	color: #74d9ed;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .16em;
}

.km-card-image-fallback strong {
	max-width: 90%;
	font-size: 17px;
	line-height: 1.35;
	letter-spacing: .03em;
}

.km-detail-image-fallback strong {
	max-width: 90%;
	font-size: clamp(24px, 4vw, 38px);
	line-height: 1.3;
	letter-spacing: .03em;
}

.km-card-image-fallback small,
.km-detail-image-fallback small {
	color: rgba(255,255,255,.62);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
}

.km-draft-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 5px 10px;
	border-radius: 999px;
	color: #fff;
	background: rgba(5,24,41,.82);
	font-size: 11px;
	font-weight: 800;
}

.km-card-body {
	padding: 20px 20px 22px;
}

.km-card-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 13px;
}

.km-badge {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.3;
}

.km-badge-type {
	color: #16526c;
	background: #e8f7fb;
}

.km-badge-status {
	color: #4f5d69;
	background: #eef2f5;
}

.km-status-active {
	color: var(--km-success);
	background: #e7f7ef;
}

.km-status-unreachable,
.km-status-closed_candidate {
	color: var(--km-warning);
	background: #fff4dc;
}

.km-status-closed {
	color: var(--km-danger);
	background: #fbeaea;
}

.km-card-title {
	margin: 0;
	color: var(--km-navy);
	font-size: 21px;
	line-height: 1.45;
}

.km-card-title a {
	text-decoration: none;
}

.km-card-title a:hover {
	color: var(--km-blue);
}

.km-card-domain,
.km-detail-domain {
	margin: 5px 0 0;
	color: var(--km-muted);
	font-size: 13px;
	word-break: break-all;
}

.km-card-meta {
	margin: 17px 0 18px;
	border-top: 1px solid var(--km-line);
}

.km-card-meta > div {
	display: grid;
	grid-template-columns: 78px minmax(0,1fr);
	gap: 9px;
	padding: 9px 0;
	border-bottom: 1px solid var(--km-line);
	font-size: 13px;
}

.km-card-meta dt {
	color: var(--km-muted);
	font-weight: 600;
}

.km-card-meta dd {
	margin: 0;
	color: var(--km-text);
	font-weight: 700;
	word-break: break-word;
}

.km-card-detail-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--km-blue) !important;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none !important;
}

.km-pagination {
	margin-top: 42px;
}

.km-pagination .nav-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
}

.km-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--km-line);
	border-radius: 8px;
	background: var(--km-white);
	color: var(--km-navy);
	text-decoration: none;
	font-weight: 700;
}

.km-pagination .page-numbers.current {
	border-color: var(--km-blue);
	color: var(--km-white);
	background: var(--km-blue);
}

.km-empty-state {
	padding: 70px 25px;
	border: 1px solid var(--km-line);
	border-radius: 16px;
	background: var(--km-white);
	text-align: center;
}

.km-empty-state h2 {
	margin: 0 0 10px;
	color: var(--km-navy);
}

.km-directory-note {
	padding: 0 0 72px;
	background: var(--km-soft);
}

.km-note-box {
	padding: 24px 26px;
	border-left: 4px solid var(--km-cyan);
	border-radius: 0 12px 12px 0;
	background: #edf8fb;
}

.km-note-box h2 {
	margin: 0 0 8px;
	color: var(--km-navy);
	font-size: 19px;
}

.km-note-box p {
	margin: 8px 0 0;
	color: #445767;
	font-size: 14px;
}

.km-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 24px 0 18px;
	color: var(--km-muted);
	font-size: 12px;
}

.km-breadcrumb a {
	color: var(--km-blue);
	text-decoration: none;
}

.km-preview-notice {
	margin-bottom: 18px;
	padding: 10px 15px;
	border: 1px solid #f1d493;
	border-radius: 8px;
	color: #7c5611;
	background: #fff8e8;
	font-size: 13px;
	font-weight: 700;
}

.km-site-detail {
	padding-bottom: 78px;
}

.km-detail-header {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, .9fr);
	gap: 42px;
	align-items: center;
	padding: 28px 0 50px;
}

.km-detail-media {
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border: 1px solid var(--km-line);
	border-radius: 18px;
	background: var(--km-soft);
	box-shadow: var(--km-shadow);
}

.km-detail-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.km-detail-summary h1 {
	margin: 7px 0 0;
	color: var(--km-navy);
	font-size: clamp(31px, 4vw, 48px);
	line-height: 1.25;
	letter-spacing: -.025em;
}

.km-detail-intro {
	margin: 20px 0 0;
	color: #45596a;
	font-size: 15px;
}

.km-checked-box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	margin: 22px 0 16px;
	padding: 12px 15px;
	border: 1px solid var(--km-line);
	border-radius: 10px;
	background: var(--km-soft);
}

.km-checked-box span {
	color: var(--km-muted);
	font-size: 12px;
}

.km-checked-box strong {
	color: var(--km-navy);
	font-size: 14px;
}

.km-official-button {
	width: 100%;
}

.km-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 310px;
	gap: 38px;
	align-items: start;
}

.km-detail-main {
	min-width: 0;
}

.km-content-section {
	margin-bottom: 46px;
}

.km-section-heading {
	margin-bottom: 18px;
}

.km-info-table-wrap {
	overflow: hidden;
	border: 1px solid var(--km-line);
	border-radius: 14px;
	background: var(--km-white);
}

.km-info-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 14px;
}

.km-info-table th,
.km-info-table td {
	padding: 16px 18px;
	border: 0;
	border-bottom: 1px solid var(--km-line);
	vertical-align: top;
	text-align: left;
}

.km-info-table tr:last-child th,
.km-info-table tr:last-child td {
	border-bottom: 0;
}

.km-info-table th {
	width: 230px;
	color: var(--km-navy);
	background: var(--km-soft);
	font-weight: 800;
}

.km-info-table td {
	word-break: break-word;
}

.km-info-table td a {
	color: var(--km-blue);
}

.km-policy-links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0,1fr));
	gap: 12px;
}

.km-policy-links a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	min-height: 72px;
	padding: 15px 17px;
	border: 1px solid var(--km-line);
	border-radius: 11px;
	color: var(--km-navy);
	background: var(--km-white);
	text-decoration: none;
	font-size: 13px;
	font-weight: 800;
	transition: border-color .18s ease, transform .18s ease;
}

.km-policy-links a:hover {
	transform: translateY(-2px);
	border-color: var(--km-cyan);
}

.km-editor-content {
	font-size: 16px;
}

.km-editor-content h2,
.km-editor-content h3 {
	color: var(--km-navy);
}

.km-detail-sidebar {
	position: sticky;
	top: 24px;
}

.km-sidebar-card {
	padding: 22px;
	border: 1px solid var(--km-line);
	border-radius: 14px;
	background: var(--km-white);
	box-shadow: 0 10px 30px rgba(7,31,52,.07);
}

.km-sidebar-card h2 {
	margin: 0 0 12px;
	color: var(--km-navy);
	font-size: 18px;
}

.km-sidebar-card dl {
	margin: 0 0 18px;
}

.km-sidebar-card dl > div {
	padding: 10px 0;
	border-bottom: 1px solid var(--km-line);
}

.km-sidebar-card dt {
	color: var(--km-muted);
	font-size: 11px;
	font-weight: 700;
}

.km-sidebar-card dd {
	margin: 3px 0 0;
	color: var(--km-text);
	font-size: 13px;
	font-weight: 800;
	word-break: break-word;
}

.km-sidebar-card .km-button {
	width: 100%;
}

.km-back-link {
	display: block;
	margin-top: 16px;
	color: var(--km-blue) !important;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none !important;
}

.km-muted {
	color: var(--km-muted);
}

@media (max-width: 980px) {
	.km-filter-form {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}

	.km-filter-search {
		grid-column: 1 / -1;
	}

	.km-card-grid {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}

	.km-detail-header,
	.km-detail-layout {
		grid-template-columns: 1fr;
	}

	.km-detail-sidebar {
		position: static;
	}

	.km-policy-links {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.km-container {
		width: min(100% - 24px, 1180px);
	}

	.km-archive-hero {
		padding: 56px 0 52px;
	}

	.km-filter-form {
		grid-template-columns: 1fr;
		padding: 18px;
	}

	.km-filter-search,
	.km-filter-actions {
		grid-column: auto;
	}

	.km-filter-actions {
		align-items: stretch;
		flex-direction: column;
		gap: 10px;
	}

	.km-filter-reset {
		text-align: center;
	}

	.km-directory-section {
		padding: 46px 0 60px;
	}

	.km-result-heading {
		align-items: start;
		flex-direction: column;
		gap: 5px;
	}

	.km-card-grid {
		grid-template-columns: 1fr;
	}

	.km-detail-header {
		gap: 25px;
		padding-top: 12px;
	}

	.km-detail-summary h1 {
		font-size: 31px;
	}

	.km-info-table th,
	.km-info-table td {
		display: block;
		width: 100%;
		padding: 12px 14px;
	}

	.km-info-table th {
		border-bottom: 0;
	}

	.km-info-table td {
		padding-top: 9px;
	}

	.km-checked-box {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}
}


@media (max-width: 782px) {
	body.km-site-shell.admin-bar .km-global-header {
		top: 46px;
	}
}

@media (max-width: 640px) {
	.km-global-header__inner {
		width: min(100% - 24px, 1180px);
		min-height: 68px;
		gap: 12px;
	}

	.km-brand__logo {
		max-width: min(230px, 56vw);
		height: 38px;
	}

	.km-brand__mark {
		width: 36px;
		height: 36px;
		border-radius: 10px;
	}

	.km-brand__text strong {
		font-size: 16px;
	}

	.km-brand__text small {
		display: none;
	}

	.km-global-nav {
		overflow-x: auto;
		max-width: 54vw;
		-webkit-overflow-scrolling: touch;
	}

	.km-global-nav__list {
		width: max-content;
	}

	.km-global-nav a {
		display: block;
		padding: 8px 9px;
		font-size: 11px;
		white-space: nowrap;
	}

	.km-global-footer__inner {
		grid-template-columns: 1fr;
		gap: 22px;
		width: min(100% - 24px, 1180px);
		padding: 38px 0 28px;
	}

	.km-global-footer__menu {
		grid-template-columns: 1fr;
	}

	.km-global-footer__bottom p {
		width: min(100% - 24px, 1180px);
	}
}


/* Top page shortcode */
.km-home {
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
}

.km-home-hero {
	position: relative;
	overflow: hidden;
	padding: 90px 0 82px;
	color: var(--km-white);
	background:
		linear-gradient(115deg, rgba(4,23,40,.98), rgba(8,36,60,.94) 58%, rgba(8,89,120,.88)),
		linear-gradient(135deg, var(--km-navy-deep), var(--km-navy));
}

.km-home-hero::before,
.km-home-hero::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255,255,255,.06);
	border-radius: 50%;
}

.km-home-hero::before {
	top: -230px;
	right: -100px;
	width: 560px;
	height: 560px;
}

.km-home-hero::after {
	right: 18%;
	bottom: -340px;
	width: 520px;
	height: 520px;
	border-width: 90px;
}

.km-home-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr);
	gap: 72px;
	align-items: center;
}

.km-home-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(39px, 5.6vw, 68px);
	line-height: 1.17;
	letter-spacing: -.045em;
}

.km-home-hero__lead {
	max-width: 760px;
	margin: 25px 0 0;
	color: rgba(255,255,255,.78);
	font-size: clamp(15px, 1.6vw, 18px);
	line-height: 1.95;
}

.km-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	margin-top: 30px;
}

.km-home-text-link {
	color: rgba(255,255,255,.84) !important;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none !important;
}

.km-home-search {
	max-width: 680px;
	margin-top: 31px;
}

.km-home-search label {
	display: block;
	margin-bottom: 8px;
	color: rgba(255,255,255,.68);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .05em;
}

.km-home-search > div {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 10px;
	background: #fff;
}

.km-home-search input {
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 0 17px;
	border: 0;
	outline: 0;
	background: #fff;
	color: var(--km-text);
	font: inherit;
	font-size: 14px;
}

.km-home-search button {
	min-width: 92px;
	border: 0;
	color: #fff;
	background: linear-gradient(135deg, var(--km-blue), var(--km-cyan));
	font: inherit;
	font-size: 13px;
	font-weight: 900;
	cursor: pointer;
}

.km-home-hero__panel {
	padding: 31px;
	border: 1px solid rgba(255,255,255,.15);
	border-radius: 22px;
	background: rgba(255,255,255,.08);
	box-shadow: 0 22px 60px rgba(0,0,0,.16);
	backdrop-filter: blur(14px);
}

.km-home-panel__label {
	margin: 0;
	color: #6ed7ec;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .18em;
}

.km-home-panel__number {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-top: 13px;
}

.km-home-panel__number strong {
	color: #fff;
	font-size: clamp(58px, 8vw, 88px);
	line-height: 1;
	letter-spacing: -.05em;
}

.km-home-panel__number span {
	color: rgba(255,255,255,.72);
	font-size: 15px;
	font-weight: 800;
}

.km-home-panel__caption {
	margin: 10px 0 0;
	color: rgba(255,255,255,.55);
	font-size: 11px;
}

.km-home-panel__stats {
	margin: 24px 0 0;
	border-top: 1px solid rgba(255,255,255,.13);
}

.km-home-panel__stats > div {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255,255,255,.13);
}

.km-home-panel__stats dt {
	color: rgba(255,255,255,.58);
	font-size: 11px;
}

.km-home-panel__stats dd {
	margin: 0;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-align: right;
}

.km-home-trust {
	border-bottom: 1px solid var(--km-line);
	background: #fff;
}

.km-home-trust__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0,1fr));
}

.km-home-trust__grid > div {
	position: relative;
	padding: 25px 28px;
	border-right: 1px solid var(--km-line);
}

.km-home-trust__grid > div:first-child {
	border-left: 1px solid var(--km-line);
}

.km-home-trust__grid strong,
.km-home-trust__grid span {
	display: block;
}

.km-home-trust__grid strong {
	color: var(--km-navy);
	font-size: 14px;
}

.km-home-trust__grid span {
	margin-top: 4px;
	color: var(--km-muted);
	font-size: 11px;
}

.km-home-section {
	padding: 84px 0;
}

.km-home-section__heading {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 36px;
	margin-bottom: 30px;
}

.km-home-section__heading h2,
.km-home-about h2,
.km-home-guide h2 {
	margin: 0;
	color: var(--km-navy);
	font-size: clamp(27px, 4vw, 41px);
	line-height: 1.35;
	letter-spacing: -.025em;
}

.km-home-section__heading > p {
	max-width: 500px;
	margin: 0;
	color: var(--km-muted);
	font-size: 13px;
}

.km-home-type-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 18px;
}

.km-home-type-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 280px;
	padding: 25px;
	overflow: hidden;
	border: 1px solid var(--km-line);
	border-radius: 15px;
	color: var(--km-text) !important;
	background: #fff;
	box-shadow: 0 8px 24px rgba(7,31,52,.045);
	text-decoration: none !important;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.km-home-type-card:hover {
	transform: translateY(-4px);
	border-color: var(--km-cyan);
	box-shadow: var(--km-shadow);
}

.km-home-type-card__mark {
	color: #a8bbc8;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .18em;
}

.km-home-type-card h3 {
	margin: 28px 0 0;
	color: var(--km-navy);
	font-size: 19px;
	line-height: 1.45;
}

.km-home-type-card p {
	margin: 13px 0 28px;
	color: var(--km-muted);
	font-size: 12px;
}

.km-home-type-card > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--km-line);
}

.km-home-type-card > div strong {
	color: var(--km-blue);
	font-size: 28px;
}

.km-home-type-card > div span {
	color: var(--km-navy);
	font-size: 11px;
	font-weight: 800;
}

.km-home-latest {
	background: var(--km-soft);
}

.km-home-heading-link {
	color: var(--km-blue) !important;
	font-size: 13px;
	font-weight: 900;
	text-decoration: none !important;
}

.km-home-about {
	color: #fff;
	background:
		radial-gradient(circle at 14% 84%, rgba(8,168,204,.18), transparent 31%),
		linear-gradient(135deg, var(--km-navy-deep), var(--km-navy));
}

.km-home-about__grid {
	display: grid;
	grid-template-columns: minmax(0,.8fr) minmax(0,1fr);
	gap: 90px;
	align-items: start;
}

.km-home-about h2 {
	color: #fff;
}

.km-home-about__grid > div:last-child p {
	margin: 0 0 18px;
	color: rgba(255,255,255,.74);
	font-size: 15px;
}

.km-home-about__grid .km-button {
	margin-top: 9px;
}

.km-home-guide {
	background: #fff;
}

.km-home-guide__box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	padding: 38px 42px;
	border: 1px solid var(--km-line);
	border-radius: 18px;
	background: var(--km-soft);
}

.km-home-guide__box > div {
	max-width: 760px;
}

.km-home-guide h2 {
	font-size: clamp(23px, 3vw, 33px);
}

.km-home-guide__box p:last-child {
	margin: 12px 0 0;
	color: var(--km-muted);
	font-size: 13px;
}

@media (max-width: 980px) {
	.km-home-hero__inner {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.km-home-hero__panel {
		max-width: 600px;
	}

	.km-home-type-grid {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}

	.km-home-about__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

@media (max-width: 640px) {
	.km-home-hero {
		padding: 60px 0 56px;
	}

	.km-home-hero__title br {
		display: none;
	}

	.km-home-hero__actions {
		align-items: stretch;
		flex-direction: column;
		gap: 13px;
	}

	.km-home-text-link {
		text-align: center;
	}

	.km-home-search > div {
		grid-template-columns: 1fr;
	}

	.km-home-search button {
		min-height: 46px;
	}

	.km-home-hero__panel {
		padding: 24px;
	}

	.km-home-trust__grid {
		grid-template-columns: 1fr;
	}

	.km-home-trust__grid > div,
	.km-home-trust__grid > div:first-child {
		border-right: 1px solid var(--km-line);
		border-bottom: 1px solid var(--km-line);
		border-left: 1px solid var(--km-line);
	}

	.km-home-section {
		padding: 60px 0;
	}

	.km-home-section__heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.km-home-type-grid {
		grid-template-columns: 1fr;
	}

	.km-home-type-card {
		min-height: auto;
	}

	.km-home-guide__box {
		align-items: stretch;
		flex-direction: column;
		gap: 24px;
		padding: 27px 22px;
	}
}


/* RE:DIVER heading decoration reset for the top-page shortcode */
.km-home .km-home-section__heading h2,
.km-home .km-home-about h2,
.km-home .km-home-guide h2 {
	position: static !important;
	display: block !important;
	width: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.km-home .km-home-section__heading h2::before,
.km-home .km-home-section__heading h2::after,
.km-home .km-home-about h2::before,
.km-home .km-home-about h2::after,
.km-home .km-home-guide h2::before,
.km-home .km-home-guide h2::after {
	display: none !important;
	content: none !important;
}

.km-home .km-home-section__heading h2,
.km-home .km-home-guide h2 {
	color: var(--km-navy) !important;
}

.km-home .km-home-about h2 {
	color: #fff !important;
}

/* =========================================================
   v1.5.18
   公開カテゴリを3分類にした現在仕様に合わせるための最小差分
   元デザインCSSは変更しない
   ========================================================= */
.km-home-type-grid {
	grid-template-columns: repeat(3, minmax(0,1fr));
}

@media (max-width: 980px) {
	.km-home-type-grid {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}
}

@media (max-width: 640px) {
	.km-home-type-grid {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   v1.5.19 FINAL
   個別ページ本文H2を、旧公開画面の見た目へ固定
   ・薄いグレー背景
   ・左に濃紺ライン
   ・H3やセクション大見出しには適用しない
   ========================================================= */
.km-public.km-single .km-content-section.km-editor-content > h2,
.km-public.km-single .km-content-section.km-editor-content > h2.wp-block-heading {
	margin: 30px 0 16px !important;
	padding: 13px 16px !important;
	border: 0 !important;
	border-left: 4px solid #315b83 !important;
	border-radius: 0 !important;
	background: #f1f3f5 !important;
	box-shadow: none !important;
	color: var(--km-navy) !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	line-height: 1.55 !important;
	letter-spacing: 0 !important;
}

.km-public.km-single .km-content-section.km-editor-content > h2::before,
.km-public.km-single .km-content-section.km-editor-content > h2::after {
	display: none !important;
	content: none !important;
}

@media (max-width: 640px) {
	.km-public.km-single .km-content-section.km-editor-content > h2,
	.km-public.km-single .km-content-section.km-editor-content > h2.wp-block-heading {
		padding: 12px 14px !important;
		font-size: 19px !important;
	}
}
