@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* KMC phase 1. Content and URLs stay editable in WordPress.
 * Block setup: docs/phase-1-header-hero.md
 */

/* Add this class to the contact menu item (the li, not the link). */
.kmc-header-cta {
	min-width: 0;
}

.kmc-header-cta > a {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 20px;
	border: 1px solid #0067b1;
	border-radius: 6px;
	background: #0067b1;
	color: #fff;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
}

.kmc-header-cta > a:hover {
	background: #004d86;
	color: #fff;
}

.kmc-header-cta > a:focus-visible,
.kmc-hero .wp-block-button__link:focus-visible {
	outline: 3px solid #123c60;
	outline-offset: 4px;
}

/* Use a SWELL full-wide block as the outer container.
 * No negative viewport margins: full width is handled by SWELL.
 */
.kmc-hero {
	--kmc-blue: #0067b1;
	--kmc-ink: #123c60;
	color: var(--kmc-ink);
}

.kmc-hero .kmc-hero__photo {
	width: 100%;
	max-width: none;
	margin: 0;
}

.kmc-hero .kmc-hero__photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: 50% 50%;
	border-radius: 0;
}

/* The real facade fills the photograph. Keep all text below it so
 * neither the entrance nor the sign is hidden, even with longer copy.
 */
.kmc-hero .kmc-hero__panel {
	box-sizing: border-box;
	max-width: none;
	margin: 0;
	padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 72px);
	background: linear-gradient(120deg, #fff 0%, #eaf5fc 100%);
}

.kmc-hero .kmc-hero__panel-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.kmc-hero .kmc-hero__copy,
.kmc-hero .kmc-hero__actions {
	min-width: 0;
	margin: 0;
}

.kmc-hero .kmc-hero__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kmc-ink);
	font-size: clamp(28px, 3.2vw, 48px);
	font-weight: 700;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.kmc-hero .kmc-hero__description {
	margin: 16px 0 0;
	color: #263f50;
	font-size: 18px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.kmc-hero .kmc-hero__actions {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: stretch;
}

.kmc-hero .kmc-hero__button {
	width: 100%;
	margin: 0;
}

.kmc-hero .kmc-hero__button > .wp-block-button__link {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 14px 20px;
	border: 2px solid var(--kmc-blue);
	border-radius: 6px;
	background: var(--kmc-blue);
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
	box-shadow: none;
}

.kmc-hero .kmc-hero__button--secondary > .wp-block-button__link {
	background: #fff;
	color: var(--kmc-blue);
}

.kmc-hero .kmc-hero__button > .wp-block-button__link:hover {
	border-color: #004d86;
	background: #004d86;
	color: #fff;
}

@media (min-width: 1100px) {
	.kmc-hero .kmc-hero__panel-inner {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
		gap: 40px;
		align-items: center;
	}
}

/* KMC phase 2: standard Gutenberg blocks. No image slots are required.
 * Block source and setup: docs/phase-2-services-pricing.*
 */
.kmc-services,
.kmc-pricing {
	box-sizing: border-box;
	padding: clamp(40px, 6vw, 80px) clamp(16px, 4vw, 48px);
	color: #123c60;
	font-size: 18px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.kmc-services {
	background: #fff;
}

.kmc-pricing {
	background: linear-gradient(120deg, #eaf5fc, #f6fbff);
}

.kmc-services .kmc-section__inner,
.kmc-pricing .kmc-section__inner {
	width: 100%;
	max-width: 1200px;
	min-width: 0;
	margin: 0 auto;
}

.kmc-services .kmc-section__heading,
.kmc-pricing .kmc-section__heading {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	background: none;
	color: #123c60;
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.5;
}

.kmc-services .kmc-section__heading::before,
.kmc-services .kmc-section__heading::after,
.kmc-pricing .kmc-section__heading::before,
.kmc-pricing .kmc-section__heading::after {
	content: none;
}

.kmc-services .kmc-section__heading {
	text-align: center;
}

.kmc-services .kmc-services__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	margin: 32px 0 0;
}

.kmc-services .kmc-services__card {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
	margin: 0;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid #d5e5ef;
	border-top: 4px solid #0067b1;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 4px 18px rgb(18 60 96 / 6%);
}

.kmc-services .kmc-services__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: #123c60;
	font-size: clamp(23px, 2.4vw, 28px);
	line-height: 1.5;
}

.kmc-services .kmc-services__title::before,
.kmc-services .kmc-services__title::after {
	content: none;
}

.kmc-services .kmc-section__text,
.kmc-pricing .kmc-section__text {
	margin: 0;
	color: #263f50;
	font-size: 18px;
	line-height: 1.85;
}

.kmc-services .kmc-section__actions,
.kmc-pricing .kmc-section__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	min-width: 0;
	margin: 24px 0 0;
}

.kmc-services .kmc-services__card > .kmc-section__actions {
	margin-top: auto;
}

.kmc-services .kmc-section__button,
.kmc-pricing .kmc-section__button {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
}

.kmc-services .kmc-section__button > .wp-block-button__link,
.kmc-pricing .kmc-section__button > .wp-block-button__link {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 12px 18px;
	border: 2px solid #0067b1;
	border-radius: 6px;
	background: #fff;
	color: #0067b1;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
	box-shadow: none;
}

.kmc-services .kmc-section__button > .wp-block-button__link:hover,
.kmc-pricing .kmc-section__button > .wp-block-button__link:hover {
	background: #0067b1;
	color: #fff;
}

.kmc-services .kmc-section__button > .wp-block-button__link:focus-visible,
.kmc-pricing .kmc-section__button > .wp-block-button__link:focus-visible {
	outline: 3px solid #123c60;
	outline-offset: 4px;
}

/* Optional future image blocks: keep their natural ratio, without a slot. */
.kmc-services .kmc-services__card > .wp-block-image {
	max-width: 100%;
	margin: 0;
}

.kmc-services .kmc-services__card > .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 6px;
}

@media (min-width: 900px) {
	.kmc-services .kmc-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kmc-pricing .kmc-section__button {
		width: auto;
	}
}

/* Complete homepage. Change these colors on .kmc-top for another site.
 * Header/footer remain SWELL components; see docs/top-page.md.
 */
.kmc-top {
	--kmc-brand: #0067b1;
	--kmc-dark: #123c60;
	--kmc-body: #263f50;
	--kmc-pale: #eaf5fc;
	--kmc-line: #d5e5ef;
	--kmc-paper: #fff;
	color: var(--kmc-dark);
	overflow-wrap: anywhere;
}

.kmc-top > .wp-block-group {
	margin-block: 0;
}

.kmc-top :is(.kmc-hero__title, .kmc-section__heading, .kmc-heading) {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.kmc-top .kmc-hero {
	--kmc-blue: var(--kmc-brand);
	--kmc-ink: var(--kmc-dark);
}

.kmc-top :is(.kmc-services, .kmc-pricing) {
	color: var(--kmc-dark);
}

.kmc-top .kmc-services { background: var(--kmc-paper); }
.kmc-top .kmc-pricing { background: linear-gradient(120deg, var(--kmc-pale), var(--kmc-paper)); }
.kmc-top .kmc-services__card { border-color: var(--kmc-line); border-top-color: var(--kmc-brand); }
.kmc-top :is(.kmc-section__heading, .kmc-services__title) { color: var(--kmc-dark); }
.kmc-top :is(.kmc-section__text, .kmc-hero__description) { color: var(--kmc-body); }
.kmc-top :is(.kmc-services, .kmc-pricing) .kmc-section__button > .wp-block-button__link {
	border-color: var(--kmc-brand);
	color: var(--kmc-brand);
}
.kmc-top :is(.kmc-services, .kmc-pricing) .kmc-section__button > .wp-block-button__link:hover {
	background: var(--kmc-brand);
	color: var(--kmc-paper);
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) {
	box-sizing: border-box;
	padding: clamp(40px, 6vw, 80px) clamp(16px, 4vw, 48px);
	background: var(--kmc-paper, #fff);
	color: var(--kmc-dark, #123c60);
	font-size: 18px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}

:is(.kmc-flow, .kmc-access) {
	background: var(--kmc-pale, #eaf5fc);
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-content {
	max-width: 1200px;
	min-width: 0;
	margin: 0 auto;
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) :is(.kmc-heading, .kmc-card-title) {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.5;
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) :is(.kmc-heading, .kmc-card-title)::before,
:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) :is(.kmc-heading, .kmc-card-title)::after {
	content: none;
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-text {
	margin: 0 0 24px;
	font-size: 18px;
	line-height: 1.85;
}

:is(.kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-eyebrow {
	margin: 0 0 8px;
	color: var(--kmc-brand, #0067b1);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .12em;
}

.kmc-about .kmc-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	margin: 28px 0 0;
}

.kmc-about .kmc-about__card {
	min-width: 0;
	margin: 0;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--kmc-line, #d5e5ef);
	border-radius: 10px;
}

.kmc-about .kmc-card-title { font-size: 26px; }

:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 24px 0 0;
}

:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-button {
	min-width: 0;
	max-width: 100%;
	width: 100%;
	margin: 0;
}

:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-button > .wp-block-button__link {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 12px 20px;
	border: 2px solid var(--kmc-brand, #0067b1);
	border-radius: 6px;
	background: var(--kmc-paper, #fff);
	color: var(--kmc-brand, #0067b1);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
	box-shadow: none;
}

:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-button > .wp-block-button__link:hover {
	background: var(--kmc-dark, #123c60);
	border-color: var(--kmc-dark, #123c60);
	color: #fff;
}

:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) a:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 4px;
}

.kmc-flow .kmc-heading,
.kmc-flow .kmc-text { text-align: center; }

.kmc-flow .kmc-flow__steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: kmc-step;
}

.kmc-flow .kmc-flow__steps > li {
	min-width: 0;
	margin: 0;
	padding: 24px;
	border: 1px solid var(--kmc-line, #d5e5ef);
	border-radius: 12px;
	background: var(--kmc-paper, #fff);
	counter-increment: kmc-step;
}

.kmc-flow .kmc-flow__steps > li::before {
	content: counter(kmc-step, decimal-leading-zero);
	display: block;
	margin-bottom: 16px;
	color: var(--kmc-brand, #0067b1);
	font-size: 30px;
	font-weight: 700;
}

.kmc-news .kmc-news__list {
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}
.kmc-news .kmc-news__list > li {
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px solid var(--kmc-line, #d5e5ef);
}
.kmc-news .kmc-news__list a {
	color: var(--kmc-dark, #123c60);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.kmc-news .kmc-news__list time {
	display: block;
	color: var(--kmc-body, #263f50);
	font-size: 16px;
}

.kmc-access .kmc-access__details {
	margin: 24px 0;
	padding: 24px;
	border-radius: 10px;
	background: var(--kmc-paper, #fff);
}
.kmc-access .kmc-access__details p { margin: 0 0 12px; }
.kmc-access .kmc-access__details p:last-child { margin-bottom: 0; }

.kmc-bottom-cta {
	background: linear-gradient(110deg, var(--kmc-dark, #123c60), var(--kmc-brand, #0067b1));
	color: #fff;
}
.kmc-bottom-cta .kmc-eyebrow { color: #fff; }
.kmc-bottom-cta .kmc-button > .wp-block-button__link { border-color: #fff; }
.kmc-bottom-cta .kmc-button > .wp-block-button__link:focus-visible { outline-color: #fff; }

/* Footer widget/group class is opt-in; no SWELL global selectors. */
.kmc-footer { color: #123c60; font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.kmc-footer a { color: #123c60; text-underline-offset: .2em; }
.kmc-footer a:focus-visible { outline: 3px solid #0067b1; outline-offset: 4px; }

/* KMC TOP shell: opt in only on draft preview page 40 containing our root block.
 * Migration: replace #body_wrap.page-id-40 in this section with the approved page ID.
 * Do not add body.home automatically: published page 8 must remain unaffected.
 * :has() unsupported browsers retain the normal SWELL layout (safe fallback).
 */
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner > .c-pageTitle,
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #breadcrumb {
	display: none;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #content.l-content {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-inline: auto;
	padding-inline: 0;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content.l-mainContent {
	box-sizing: border-box;
	float: none;
	width: 100%;
	max-width: none;
	min-width: 0;
	margin-inline: 0;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner > .post_content,
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content .post_content > .kmc-top {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	min-width: 0;
	margin-inline: 0;
	padding-inline: 0;
}

/* SWELL 2.19.0 adds this wrapper to legacy Group blocks at render time.
 * Put the layout on that wrapper, preserving the existing grid tracks/gaps.
 * Newer wrapper-free Group markup keeps using the original rules above.
 */
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) .kmc-top :is(.kmc-hero__panel-inner, .kmc-services__grid, .kmc-about__grid) > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: inherit;
	gap: inherit;
	align-items: inherit;
	grid-column: 1 / -1;
	min-width: 0;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) .kmc-top .kmc-services__card > .wp-block-group__inner-container {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: inherit;
	min-width: 0;
}

#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) .kmc-top .kmc-services__card > .wp-block-group__inner-container > .kmc-section__actions {
	margin-top: auto;
}

@media (min-width: 900px) {
	.kmc-about .kmc-about__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kmc-flow .kmc-flow__steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	:is(.kmc-about, .kmc-news, .kmc-access, .kmc-bottom-cta) .kmc-button { width: auto; }
}


/* KMC design finish: presentation only; Gutenberg content remains editable. */
.kmc-top {
	font-family: "BIZ UDPGothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--kmc-radius: 16px;
	--kmc-shadow: 0 12px 36px rgb(18 60 96 / 7%);
}

/* Remove ordinary article spacing only for the approved preview page. */
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #content.l-content {
	padding-block-start: 0;
	margin-block-end: 0;
}
#body_wrap.page-id-40:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner > .post_content {
	margin-block: 0;
}

.kmc-top :is(.kmc-services, .kmc-pricing, .kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) {
	padding-block: clamp(56px, 7vw, 96px);
}
.kmc-top :is(.kmc-section__heading, .kmc-heading) {
	letter-spacing: .04em;
	text-wrap: balance;
}
.kmc-top .kmc-eyebrow {
	font-size: 14px;
	letter-spacing: .18em;
	margin-bottom: 12px;
}
.kmc-top .kmc-hero__panel {
	border-bottom: 1px solid var(--kmc-line);
	background: linear-gradient(110deg, #fff, #f1f8fc);
}
.kmc-top .kmc-hero__title {
	font-size: clamp(28px, 3vw, 44px);
	letter-spacing: .04em;
	text-wrap: balance;
}
.kmc-top .kmc-hero__description { margin-top: 20px; }
.kmc-top .kmc-services__grid { gap: 32px; margin-top: 40px; }
.kmc-top .kmc-services__card {
	gap: 28px;
	padding: clamp(24px, 4vw, 48px);
	border-top-width: 3px;
	border-radius: var(--kmc-radius);
	background: linear-gradient(145deg, #f1f8fc, #fff 65%);
	box-shadow: var(--kmc-shadow);
}
.kmc-top .kmc-services__title { letter-spacing: .04em; }
.kmc-top .kmc-pricing {
	border-block: 1px solid var(--kmc-line);
	background: linear-gradient(110deg, #eaf5fc, #f8fcff);
	padding-block: clamp(32px, 4vw, 56px);
}
.kmc-top .kmc-pricing .kmc-section__inner {
	box-sizing: border-box;
	border-left: 4px solid var(--kmc-brand);
	padding-left: clamp(20px, 4vw, 48px);
}
.kmc-top .kmc-about__grid { gap: 32px; margin-top: 40px; }
.kmc-top .kmc-about__card {
	border: 0;
	border-top: 2px solid var(--kmc-line);
	border-radius: 0;
	background: none;
	padding: 28px 0 0;
}
.kmc-top .kmc-about__card .kmc-actions { gap: 12px; }
.kmc-top .kmc-about__card .kmc-button { width: auto; }
.kmc-top .kmc-about .kmc-about__card .wp-block-button__link {
	justify-content: flex-start;
	border: 0;
	border-bottom: 1px solid var(--kmc-line);
	border-radius: 0;
	padding-inline: 0;
	background: none;
	text-align: left;
	text-decoration: underline;
	text-underline-offset: .25em;
}
.kmc-top .kmc-about__card .wp-block-button__link:hover {
	color: var(--kmc-dark);
	background: #eaf5fc;
}
.kmc-top .kmc-flow .kmc-eyebrow { text-align: center; }
.kmc-top .kmc-flow__steps > li {
	position: relative;
	border: 0;
	padding: 28px 24px;
	box-shadow: var(--kmc-shadow);
}
.kmc-top .kmc-flow__steps > li::before {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border: 1px solid var(--kmc-line);
	border-radius: 50%;
	background: #f1f8fc;
	font-size: 24px;
	line-height: 1;
}
.kmc-top .kmc-news__list { border-top: 1px solid var(--kmc-line); }
.kmc-top .kmc-news__list > li {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-block: 20px;
}
.kmc-top .kmc-news__list time {
	order: -1;
	font-size: 16px;
	font-variant-numeric: tabular-nums;
}
.kmc-top .kmc-news__list a {
	display: inline-block;
	padding-block: 8px;
	min-height: 44px;
	font-size: 18px;
	line-height: 1.6;
}
.kmc-top .kmc-news__list a:hover { color: var(--kmc-brand); }
.kmc-top .kmc-access__details {
	border: 1px solid var(--kmc-line);
	border-radius: var(--kmc-radius);
	padding: clamp(24px, 4vw, 40px);
	max-width: 880px;
}
.kmc-top .kmc-access__details p:not(:last-child) {
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--kmc-line);
}
.kmc-top .kmc-bottom-cta { text-align: center; }
.kmc-top .kmc-bottom-cta .kmc-actions { justify-content: center; }
.kmc-top .kmc-bottom-cta .kmc-button { width: 100%; max-width: 480px; }
.kmc-top .kmc-bottom-cta .kmc-text { max-width: 42em; margin-inline: auto; }

/* Keep every action legible, wrappable and at least 56px tall. */
.kmc-top :is(.kmc-hero, .kmc-services, .kmc-pricing, .kmc-about, .kmc-access, .kmc-bottom-cta) .wp-block-button__link {
	min-height: 56px;
	border-radius: 8px;
	padding-block: 14px;
}
.kmc-top .kmc-services .kmc-section__button > .wp-block-button__link {
	background: var(--kmc-brand);
	color: #fff;
}
.kmc-top .kmc-services .kmc-section__button > .wp-block-button__link:hover {
	background: var(--kmc-dark);
	border-color: var(--kmc-dark);
}
.kmc-top a:focus-visible { outline: 3px solid var(--kmc-dark); outline-offset: 4px; }
.kmc-top .kmc-bottom-cta a:focus-visible { outline-color: #fff; }

/* Decorative arrows carry no instruction or medical content. */
.kmc-top .kmc-flow__steps > li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: calc(50% - 5px);
	bottom: -17px;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--kmc-brand);
	border-bottom: 2px solid var(--kmc-brand);
	transform: rotate(45deg);
}

@media (min-width: 900px) {
	.kmc-top .kmc-hero { background: linear-gradient(#eaf5fc, #fff); padding-top: 24px; }
	.kmc-top .kmc-hero__photo { max-width: 1040px; margin-inline: auto; }
	.kmc-top .kmc-hero__photo img { border-radius: 16px 16px 0 0; }
	.kmc-top .kmc-hero__panel {
		position: relative;
		width: calc(100% - 96px);
		max-width: 1200px;
		margin: -24px auto 0;
		padding: 36px 40px;
		border: 1px solid var(--kmc-line);
		border-radius: 12px;
		box-shadow: var(--kmc-shadow);
	}
	.kmc-top .kmc-hero__panel-inner {
		grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
		gap: 32px;
		align-items: center;
	}
	.kmc-top .kmc-pricing :is(.kmc-section__inner:not(:has(> .wp-block-group__inner-container)), .kmc-section__inner > .wp-block-group__inner-container) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
		gap: 12px 40px;
		align-items: center;
	}
	.kmc-top .kmc-pricing .kmc-section__heading { margin-bottom: 0; }
	.kmc-top .kmc-pricing .kmc-section__actions { grid-column: 2; grid-row: 1 / 3; margin: 0; }
	.kmc-top .kmc-pricing .kmc-section__button { width: 100%; }
	.kmc-top .kmc-flow__steps > li:not(:last-child)::after {
		left: auto;
		right: -17px;
		top: 50%;
		bottom: auto;
		transform: rotate(-45deg);
	}
	.kmc-top .kmc-news__list > li { flex-direction: row; align-items: baseline; gap: 32px; }
	.kmc-top .kmc-news__list time { flex: 0 0 9em; }
	.kmc-top .kmc-news__list a { min-width: 0; }
}

@media (max-width: 599px) {
	.kmc-top :is(.kmc-services, .kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) { padding-block: 44px; }
	.kmc-top :is(.kmc-section__heading, .kmc-heading) { font-size: 26px; letter-spacing: .02em; }
	.kmc-top .kmc-hero__title { letter-spacing: .02em; text-wrap: wrap; }
	.kmc-top .kmc-about__card .kmc-button { width: 100%; }
}

@media (min-width: 600px) and (max-width: 899px) {
	.kmc-top .kmc-flow__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Avoid a misleading diagonal connector between rows on tablets. */
	.kmc-top .kmc-flow__steps > li:not(:last-child)::after { content: none; }
}

/* KMC ACCESS map: only this section gains a two-column layout. */
.kmc-top .kmc-access .kmc-access__grid,
.kmc-top .kmc-access .kmc-access__grid > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	min-width: 0;
}
.kmc-top .kmc-access .kmc-access__grid > .wp-block-group__inner-container { grid-column: 1 / -1; }
.kmc-top .kmc-access .kmc-access__info,
.kmc-top .kmc-access .kmc-access__map { min-width: 0; margin: 0; }
.kmc-top .kmc-access .kmc-access__details { margin-top: 0; }
.kmc-top .kmc-access .kmc-access__map iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 400px;
	border: 0;
	border-radius: 16px;
}
@media (min-width: 900px) {
	.kmc-top .kmc-access .kmc-access__grid,
	.kmc-top .kmc-access .kmc-access__grid > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* KMC desktop density: retain mobile sizes and all section/keyboard behavior. */
@media (min-width: 900px) {
	.kmc-top :is(.kmc-section__inner, .kmc-content, .kmc-hero__panel) { max-width: 1080px; }
	.kmc-top :is(.kmc-services, .kmc-about, .kmc-flow, .kmc-news, .kmc-access, .kmc-bottom-cta) {
		padding-block: clamp(42px, 5.25vw, 72px);
		font-size: 17px;
	}
	.kmc-top .kmc-pricing { padding-block: clamp(24px, 3vw, 42px); }
	.kmc-top :is(.kmc-section__heading, .kmc-heading) { font-size: 32px; }
	.kmc-top :is(.kmc-services__title, .kmc-card-title) { font-size: 25px; }
	.kmc-top :is(.kmc-text, .kmc-section__text, .kmc-hero__description) { font-size: 17px; }
	.kmc-top .kmc-hero { padding-top: 18px; }
	.kmc-top .kmc-hero__photo { max-width: 1000px; }
	.kmc-top .kmc-hero__title { font-size: clamp(30px, 2.65vw, 38px); }
	.kmc-top .kmc-hero__panel { padding: 28px 32px; }
	.kmc-top .kmc-hero__panel-inner { gap: 24px; grid-template-columns: minmax(0, 1fr) minmax(250px, 310px); }
	.kmc-top .kmc-hero__description { margin-top: 16px; }
	.kmc-top :is(.kmc-services__grid, .kmc-about__grid) { gap: 24px; margin-top: 30px; }
	.kmc-top .kmc-services__card { padding: 32px; gap: 20px; }
	.kmc-top .kmc-about__card { padding-top: 22px; }
	.kmc-top .kmc-pricing .kmc-section__inner { padding-left: 36px; }
	.kmc-top .kmc-flow__steps > li { padding: 22px 20px; }
	.kmc-top .kmc-flow__steps > li::before { width: 52px; height: 52px; font-size: 22px; }
	.kmc-top .kmc-news__list > li { padding-block: 15px; }
	.kmc-top .kmc-news__list a { font-size: 17px; }
	.kmc-top .kmc-access__details { padding: 28px; }
	.kmc-top .kmc-access__details p:not(:last-child) { padding-bottom: 12px; margin-bottom: 12px; }
	.kmc-top .kmc-access .kmc-access__map iframe { height: 360px; }
	.kmc-top :is(.kmc-hero, .kmc-services, .kmc-pricing, .kmc-about, .kmc-access, .kmc-bottom-cta) .wp-block-button__link {
		min-height: 48px;
		padding-block: 11px;
		font-size: 17px;
	}
}

/* KMC facility: standard editable blocks; no TOP/shell/header/footer overrides. */
.kmc-facility {
	max-width: 1080px;
	margin-inline: auto;
	color: #123c60;
	font-family: "BIZ UDPGothic", "Yu Gothic", Meiryo, sans-serif;
	font-size: 17px;
	line-height: 1.85;
	overflow-wrap: anywhere;
}
.kmc-facility *, .kmc-facility *::before, .kmc-facility *::after { box-sizing: border-box; }
.kmc-facility .kmc-facility__intro { margin-bottom: 36px; }
.kmc-facility .kmc-facility__eyebrow { color: #0067b1; font-size: 14px; letter-spacing: .16em; margin: 8px 0 16px; }
.kmc-facility .kmc-facility__heading {
	background: none; border: 0; padding: 0; margin: 0 0 16px;
	color: #123c60; line-height: 1.5; font-weight: 700;
}
.kmc-facility .kmc-facility__heading::before, .kmc-facility .kmc-facility__heading::after { content: none; }
.kmc-facility h2.kmc-facility__heading { font-size: 30px; }
.kmc-facility h3.kmc-facility__heading { font-size: 24px; }
.kmc-facility .kmc-facility__text { margin: 0; color: #263f50; font-size: 17px; }
.kmc-facility .kmc-facility__equipment { margin: 0; }
.kmc-facility .kmc-facility__item {
	margin: 0; padding: 32px 0; border-top: 1px solid #d3e4ee;
}
.kmc-facility .kmc-facility__item:not(:has(> .wp-block-group__inner-container)),
.kmc-facility .kmc-facility__item > .wp-block-group__inner-container {
	display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 24px;
}
.kmc-facility .kmc-facility__photo { margin: 0; min-width: 0; text-align: center; }
.kmc-facility .kmc-facility__photo img {
	display: block; width: auto; height: auto; max-width: 100%; max-height: 400px;
	object-fit: contain; border-radius: 12px; margin-inline: auto;
}
.kmc-facility .kmc-facility__copy { min-width: 0; margin: 0; }
/* Empty editorial slots remain editable. Adding an Image block reveals each room. */
.kmc-facility .kmc-facility__rooms:not(:has(img)),
.kmc-facility .kmc-facility__room:not(:has(img)) { display: none; }
.kmc-facility .kmc-facility__rooms { margin: 0 0 40px; }
.kmc-facility .kmc-facility__room-grid:not(:has(> .wp-block-group__inner-container)),
.kmc-facility .kmc-facility__room-grid > .wp-block-group__inner-container {
	display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px;
}
.kmc-facility .kmc-facility__room { min-width: 0; margin: 0; }
.kmc-facility .kmc-facility__room img { max-width: 100%; height: auto; border-radius: 12px; }
.kmc-facility .kmc-facility__cta { margin: 24px 0 0; padding: 32px 24px; background: #eaf5fc; border-radius: 16px; text-align: center; }
.kmc-facility .kmc-facility__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 24px; }
.kmc-facility .kmc-facility__button { min-width: 0; max-width: 100%; margin: 0; }
.kmc-facility .kmc-facility__button > .wp-block-button__link {
	display: flex; justify-content: center; align-items: center; min-height: 48px;
	padding: 11px 24px; background: #0067b1; color: #fff; border: 2px solid #0067b1;
	border-radius: 8px; font-size: 17px; font-weight: 700; line-height: 1.6;
	text-align: center; white-space: normal; overflow-wrap: anywhere; text-decoration: none;
}
.kmc-facility .kmc-facility__button:first-child > .wp-block-button__link { background: #fff; color: #0067b1; }
.kmc-facility .kmc-facility__button > .wp-block-button__link:hover { background: #123c60; border-color: #123c60; color: #fff; }
.kmc-facility a:focus-visible { outline: 3px solid #123c60; outline-offset: 4px; }
@media (min-width: 800px) {
	.kmc-facility .kmc-facility__item:not(:has(> .wp-block-group__inner-container)),
	.kmc-facility .kmc-facility__item > .wp-block-group__inner-container { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 40px; }
	.kmc-facility .kmc-facility__item:nth-child(even):not(:has(> .wp-block-group__inner-container)),
	.kmc-facility .kmc-facility__item:nth-child(even) > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
	.kmc-facility .kmc-facility__item:nth-child(even) .kmc-facility__photo { grid-column: 2; grid-row: 1; }
	.kmc-facility .kmc-facility__item:nth-child(even) .kmc-facility__copy { grid-column: 1; grid-row: 1; }
	.kmc-facility .kmc-facility__room-grid:not(:has(> .wp-block-group__inner-container)),
	.kmc-facility .kmc-facility__room-grid > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
	.kmc-facility h2.kmc-facility__heading { font-size: 26px; }
	.kmc-facility h3.kmc-facility__heading { font-size: 23px; }
	.kmc-facility .kmc-facility__photo img { max-height: 360px; }
	.kmc-facility .kmc-facility__cta { padding: 28px 16px; }
	.kmc-facility .kmc-facility__button { width: 100%; }
}

/* KMC center: about entry page only; standard SWELL title and shell. */
.kmc-center { max-width:1000px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.85; overflow-wrap:anywhere; }
.kmc-center *, .kmc-center *::before, .kmc-center *::after { box-sizing:border-box; }
.kmc-center .kmc-center__intro { margin:0 0 28px; }
.kmc-center .kmc-center__eyebrow { color:#0067b1; font-size:14px; letter-spacing:.16em; margin:8px 0 16px; }
.kmc-center .kmc-center__text { margin:0; color:#263f50; font-size:17px; }
.kmc-center .kmc-center__grid { margin:0; }
.kmc-center .kmc-center__grid:not(:has(> .wp-block-group__inner-container)),
.kmc-center .kmc-center__grid > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.kmc-center .kmc-center__card { min-width:0; margin:0; padding:28px; border:1px solid #d3e4ee; border-top:4px solid #0067b1; border-radius:12px; background:#fff; }
.kmc-center .kmc-center__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-center .kmc-center__heading::before, .kmc-center .kmc-center__heading::after { content:none; }
.kmc-center .kmc-center__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-center .kmc-center__button { min-width:0; max-width:100%; margin:0; }
.kmc-center .kmc-center__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-center .kmc-center__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-center a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-center .kmc-center__photo { width:100%; max-width:720px; margin:32px auto; }
.kmc-center .kmc-center__photo img { display:block; width:100%; max-width:100%; height:auto; border-radius:12px; }
.kmc-center .kmc-center__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-center .kmc-center__cta .kmc-center__actions { margin:0; justify-content:center; }
.kmc-center .kmc-center__cta .kmc-center__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-center .kmc-center__cta .kmc-center__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (min-width:768px) {
 .kmc-center .kmc-center__grid:not(:has(> .wp-block-group__inner-container)),
 .kmc-center .kmc-center__grid > .wp-block-group__inner-container { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:599px) {
 .kmc-center .kmc-center__card { padding:24px 20px; }
 .kmc-center .kmc-center__heading { font-size:23px; }
 .kmc-center .kmc-center__cta { padding:28px 16px; }
 .kmc-center .kmc-center__button { width:100%; }
}

/* KMC overview: information page only; standard SWELL title and shell. */
.kmc-overview { max-width:1000px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.85; overflow-wrap:anywhere; }
.kmc-overview *, .kmc-overview *::before, .kmc-overview *::after { box-sizing:border-box; }
.kmc-overview .kmc-overview__intro { margin:0 0 28px; }
.kmc-overview .kmc-overview__eyebrow { color:#0067b1; font-size:14px; letter-spacing:.16em; margin:8px 0 16px; }
.kmc-overview .kmc-overview__text { margin:0; color:#263f50; font-size:17px; }
.kmc-overview .kmc-overview__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-overview .kmc-overview__heading::before, .kmc-overview .kmc-overview__heading::after { content:none; }
.kmc-overview .kmc-overview__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-overview .kmc-overview__button { min-width:0; max-width:100%; margin:0; }
.kmc-overview .kmc-overview__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-overview .kmc-overview__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-overview a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-overview .kmc-overview__photo { width:100%; max-width:720px; margin:32px auto; }
.kmc-overview .kmc-overview__photo img { display:block; width:100%; max-width:100%; height:auto; border-radius:12px; }
.kmc-overview .kmc-overview__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-overview .kmc-overview__cta .kmc-overview__actions { margin:0; justify-content:center; }
.kmc-overview .kmc-overview__cta .kmc-overview__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-overview .kmc-overview__cta .kmc-overview__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (max-width:599px) {
 .kmc-overview .kmc-overview__heading { font-size:23px; }
 .kmc-overview .kmc-overview__cta { padding:28px 16px; }
 .kmc-overview .kmc-overview__button { width:100%; }
}

.kmc-overview .kmc-overview__information, .kmc-overview .kmc-overview__services { margin:0 0 32px; }
.kmc-overview .kmc-overview__table { margin:0; overflow:visible; }
.kmc-overview .kmc-overview__table table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:17px; }
.kmc-overview .kmc-overview__table td { padding:16px 20px; border:1px solid #d3e4ee; vertical-align:top; overflow-wrap:anywhere; }
.kmc-overview .kmc-overview__table td:first-child { width:24%; background:#eaf5fc; font-weight:700; }
.kmc-overview .kmc-overview__services ul { padding-left:1.5em; margin:0; }
@media (max-width:599px) {
 .kmc-overview .kmc-overview__table table, .kmc-overview .kmc-overview__table tbody, .kmc-overview .kmc-overview__table tr, .kmc-overview .kmc-overview__table td { display:block; width:100%; }
 .kmc-overview .kmc-overview__table td:first-child { width:100%; }
 .kmc-overview .kmc-overview__table td { padding:12px 16px; }
}

/* KMC message: text-only greetings only; standard SWELL title and shell. */
.kmc-message { max-width:800px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.95; overflow-wrap:anywhere; }
.kmc-message *, .kmc-message *::before, .kmc-message *::after { box-sizing:border-box; }
.kmc-message .kmc-message__text { margin:0; color:#263f50; font-size:17px; }
.kmc-message .kmc-message__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-message .kmc-message__heading::before, .kmc-message .kmc-message__heading::after { content:none; }
.kmc-message .kmc-message__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-message .kmc-message__button { min-width:0; max-width:100%; margin:0; }
.kmc-message .kmc-message__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-message .kmc-message__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-message a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-message .kmc-message__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-message .kmc-message__cta .kmc-message__actions { margin:0; justify-content:center; }
.kmc-message .kmc-message__cta .kmc-message__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-message .kmc-message__cta .kmc-message__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (max-width:599px) {
 .kmc-message .kmc-message__heading { font-size:23px; }
 .kmc-message .kmc-message__cta { padding:28px 16px; }
 .kmc-message .kmc-message__button { width:100%; }
}


.kmc-message .kmc-message__section { margin:0 0 32px; }
.kmc-message .kmc-message__section + .kmc-message__section { border-top:1px solid #d3e4ee; padding-top:32px; }
.kmc-message .kmc-message__section .kmc-message__text + .kmc-message__text { margin-top:18px; }
.kmc-message .kmc-message__signature { margin:24px 0 0; text-align:right; }
.kmc-message .kmc-message__signature .kmc-message__text { margin:0; font-weight:700; }
.kmc-message .kmc-message__signature .kmc-message__text + .kmc-message__text { margin-top:0; }

/* KMC location: access page only; standard SWELL title and shell. */
.kmc-location { max-width:1000px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.85; overflow-wrap:anywhere; }
.kmc-location *, .kmc-location *::before, .kmc-location *::after { box-sizing:border-box; }
.kmc-location .kmc-location__intro { margin:0 0 28px; }
.kmc-location .kmc-location__eyebrow { color:#0067b1; font-size:14px; letter-spacing:.16em; margin:8px 0 16px; }
.kmc-location .kmc-location__text { margin:0; color:#263f50; font-size:17px; }
.kmc-location .kmc-location__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-location .kmc-location__heading::before, .kmc-location .kmc-location__heading::after { content:none; }
.kmc-location .kmc-location__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-location .kmc-location__button { min-width:0; max-width:100%; margin:0; }
.kmc-location .kmc-location__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-location .kmc-location__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-location a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-location .kmc-location__photo { width:100%; max-width:560px; margin:32px auto; }
.kmc-location .kmc-location__photo img { display:block; width:100%; max-width:100%; height:auto; border-radius:12px; }
.kmc-location .kmc-location__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-location .kmc-location__cta .kmc-location__actions { margin:0; justify-content:center; }
.kmc-location .kmc-location__cta .kmc-location__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-location .kmc-location__cta .kmc-location__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (max-width:599px) {
 .kmc-location .kmc-location__heading { font-size:23px; }
 .kmc-location .kmc-location__cta { padding:28px 16px; }
 .kmc-location .kmc-location__button { width:100%; }
}

.kmc-location .kmc-location__information, .kmc-location .kmc-location__services { margin:0 0 32px; }
.kmc-location .kmc-location__table { margin:0; overflow:visible; }
.kmc-location .kmc-location__table table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:17px; }
.kmc-location .kmc-location__table td { padding:16px 20px; border:1px solid #d3e4ee; vertical-align:top; overflow-wrap:anywhere; }
.kmc-location .kmc-location__table td:first-child { width:24%; background:#eaf5fc; font-weight:700; }
.kmc-location .kmc-location__services ul { padding-left:1.5em; margin:0; }
@media (max-width:599px) {
 .kmc-location .kmc-location__table table, .kmc-location .kmc-location__table tbody, .kmc-location .kmc-location__table tr, .kmc-location .kmc-location__table td { display:block; width:100%; }
 .kmc-location .kmc-location__table td:first-child { width:100%; }
 .kmc-location .kmc-location__table td { padding:12px 16px; }
}


.kmc-location .kmc-location__map { margin:0 0 32px; }
.kmc-location .kmc-location__map iframe { display:block; width:100%; max-width:100%; height:420px; border:0; border-radius:12px; }
.kmc-location .kmc-location__table a { color:#0067b1; display:inline-flex; min-height:48px; align-items:center; text-underline-offset:.2em; }
@media (max-width:599px) { .kmc-location .kmc-location__map iframe { height:320px; } }

/* KMC contact: telephone-first page only; standard SWELL title and shell. */
.kmc-contact { max-width:800px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.95; overflow-wrap:anywhere; }
.kmc-contact *, .kmc-contact *::before, .kmc-contact *::after { box-sizing:border-box; }
.kmc-contact .kmc-contact__text { margin:0; color:#263f50; font-size:17px; }
.kmc-contact .kmc-contact__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-contact .kmc-contact__heading::before, .kmc-contact .kmc-contact__heading::after { content:none; }
.kmc-contact .kmc-contact__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-contact .kmc-contact__button { min-width:0; max-width:100%; margin:0; }
.kmc-contact .kmc-contact__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-contact .kmc-contact__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-contact a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-contact .kmc-contact__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-contact .kmc-contact__cta .kmc-contact__actions { margin:0; justify-content:center; }
.kmc-contact .kmc-contact__cta .kmc-contact__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-contact .kmc-contact__cta .kmc-contact__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (max-width:599px) {
 .kmc-contact .kmc-contact__heading { font-size:23px; }
 .kmc-contact .kmc-contact__cta { padding:28px 16px; }
 .kmc-contact .kmc-contact__button { width:100%; }
}




.kmc-contact .kmc-contact__intro { margin:0 0 28px; }
.kmc-contact .kmc-contact__eyebrow { color:#0067b1; font-size:14px; letter-spacing:.16em; margin:8px 0 16px; }
.kmc-contact .kmc-contact__phone { padding:28px; background:#eaf5fc; border:1px solid #d3e4ee; border-radius:16px; text-align:center; margin:0 0 32px; }
.kmc-contact .kmc-contact__number { font-size:clamp(26px,5vw,40px); line-height:1.5; font-weight:700; margin:16px 0; }
.kmc-contact .kmc-contact__number a { color:#0067b1; text-decoration:none; display:inline-block; min-height:48px; }
.kmc-contact .kmc-contact__phone .kmc-contact__actions { justify-content:center; }
.kmc-contact .kmc-contact__phone .kmc-contact__button > a { color:#fff; background:#0067b1; }
.kmc-contact .kmc-contact__phone .kmc-contact__button > a:hover { background:#123c60; }
.kmc-contact .kmc-contact__flow { margin:0 0 32px; }
.kmc-contact .kmc-contact__steps { margin:0; padding-left:1.75em; }
.kmc-contact .kmc-contact__steps > li { padding:12px 0 16px 8px; border-bottom:1px solid #d3e4ee; }
.kmc-contact .kmc-contact__steps > li::marker { color:#0067b1; font-weight:700; }
@media (max-width:599px) { .kmc-contact .kmc-contact__phone { padding:24px 16px; } }

/* KMC checkup: category cards and native details only; standard SWELL title and shell. */
.kmc-checkup { max-width:800px; margin-inline:auto; color:#123c60; font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif; font-size:17px; line-height:1.95; overflow-wrap:anywhere; }
.kmc-checkup *, .kmc-checkup *::before, .kmc-checkup *::after { box-sizing:border-box; }
.kmc-checkup .kmc-checkup__text { margin:0; color:#263f50; font-size:17px; }
.kmc-checkup .kmc-checkup__heading { background:none; border:0; padding:0; margin:0 0 16px; color:#123c60; font-size:25px; font-weight:700; line-height:1.5; }
.kmc-checkup .kmc-checkup__heading::before, .kmc-checkup .kmc-checkup__heading::after { content:none; }
.kmc-checkup .kmc-checkup__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 0; }
.kmc-checkup .kmc-checkup__button { min-width:0; max-width:100%; margin:0; }
.kmc-checkup .kmc-checkup__button > .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:48px; padding:11px 24px; border:2px solid #0067b1; border-radius:8px; background:#fff; color:#0067b1; font-size:17px; font-weight:700; line-height:1.6; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.kmc-checkup .kmc-checkup__button > .wp-block-button__link:hover { color:#fff; background:#123c60; border-color:#123c60; }
.kmc-checkup a:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-checkup .kmc-checkup__cta { margin:0; padding:32px 24px; background:#eaf5fc; border-radius:16px; text-align:center; }
.kmc-checkup .kmc-checkup__cta .kmc-checkup__actions { margin:0; justify-content:center; }
.kmc-checkup .kmc-checkup__cta .kmc-checkup__button:not(:first-child) > .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-checkup .kmc-checkup__cta .kmc-checkup__button > .wp-block-button__link:hover { background:#123c60; border-color:#123c60; color:#fff; }
@media (max-width:599px) {
 .kmc-checkup .kmc-checkup__heading { font-size:23px; }
 .kmc-checkup .kmc-checkup__cta { padding:28px 16px; }
 .kmc-checkup .kmc-checkup__button { width:100%; }
}




.kmc-checkup .kmc-checkup__intro { margin:0 0 28px; }
.kmc-checkup .kmc-checkup__eyebrow { color:#0067b1; font-size:14px; letter-spacing:.16em; margin:8px 0 16px; }
.kmc-checkup .kmc-checkup__phone { padding:28px; background:#eaf5fc; border:1px solid #d3e4ee; border-radius:16px; text-align:center; margin:0 0 32px; }
.kmc-checkup .kmc-checkup__number { font-size:clamp(26px,5vw,40px); line-height:1.5; font-weight:700; margin:16px 0; }
.kmc-checkup .kmc-checkup__number a { color:#0067b1; text-decoration:none; display:inline-block; min-height:48px; }
.kmc-checkup .kmc-checkup__phone .kmc-checkup__actions { justify-content:center; }
.kmc-checkup .kmc-checkup__phone .kmc-checkup__button > a { color:#fff; background:#0067b1; }
.kmc-checkup .kmc-checkup__phone .kmc-checkup__button > a:hover { background:#123c60; }
@media (max-width:599px) { .kmc-checkup .kmc-checkup__phone { padding:24px 16px; } }

.kmc-checkup .kmc-checkup__categories { margin:24px 0 32px; }
.kmc-checkup .kmc-checkup__categories:not(:has(> .wp-block-group__inner-container)),
.kmc-checkup .kmc-checkup__categories > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.kmc-checkup .kmc-checkup__category-link { min-width:0; margin:0; }
.kmc-checkup .kmc-checkup__category-link .kmc-checkup__actions { margin:0; }
.kmc-checkup .kmc-checkup__category-link .kmc-checkup__button { width:100%; }
.kmc-checkup .kmc-checkup__category { margin:0 0 32px; scroll-margin-top:100px; }
.kmc-checkup .kmc-checkup__plan { margin:0 0 20px; padding:24px; border:1px solid #d3e4ee; border-top:4px solid #0067b1; border-radius:12px; background:#fff; min-width:0; }
.kmc-checkup h3.kmc-checkup__heading { font-size:23px; }
.kmc-checkup h4.kmc-checkup__heading { font-size:18px; margin:20px 0 8px; }
.kmc-checkup .kmc-checkup__price { color:#0067b1; font-size:20px; font-weight:700; margin:0 0 16px; }
.kmc-checkup .kmc-checkup__details { margin:16px 0 0; }
.kmc-checkup .kmc-checkup__details summary { cursor:pointer; padding:12px; min-height:48px; background:#eaf5fc; color:#123c60; border-radius:8px; font-weight:700; }
.kmc-checkup .kmc-checkup__details summary:focus-visible { outline:3px solid #123c60; outline-offset:4px; }
.kmc-checkup .kmc-checkup__details ul { padding-left:1.5em; margin:0; }
.kmc-checkup .kmc-checkup__details li { margin:4px 0; }
.kmc-checkup .kmc-checkup__phone { margin-top:24px; }
@media (min-width:768px) {
 .kmc-checkup .kmc-checkup__categories:not(:has(> .wp-block-group__inner-container)),
 .kmc-checkup .kmc-checkup__categories > .wp-block-group__inner-container { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:599px) { .kmc-checkup .kmc-checkup__plan { padding:20px 16px; } }
/* Plan layout supports both standard blocks and SWELL group wrappers. */
.kmc-checkup { max-width:1080px; }
.kmc-checkup .kmc-checkup__plans:not(:has(> .wp-block-group__inner-container)),
.kmc-checkup .kmc-checkup__plans > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.kmc-checkup .kmc-checkup__plan { margin:0; padding:20px; }
.kmc-checkup .kmc-checkup__plan h3.kmc-checkup__heading { font-size:21px; margin-bottom:12px; }
.kmc-checkup .kmc-checkup__category > .kmc-checkup__heading,
.kmc-checkup .kmc-checkup__category > .wp-block-group__inner-container > .kmc-checkup__heading { padding:10px 14px; border-left:4px solid #0067b1; background:#eaf5fc; border-radius:0 8px 8px 0; }
.kmc-checkup .kmc-checkup__details > summary { border:1px solid #90b9d5; padding:12px 14px; line-height:1.6; }
.kmc-checkup .kmc-checkup__details > summary::marker { color:#0067b1; }
.kmc-checkup .kmc-checkup__details > summary:hover { background:#dceef9; }
.kmc-checkup .kmc-checkup__details[open] > summary { border-color:#0067b1; background:#dceef9; }
.kmc-checkup .kmc-checkup__details h4.kmc-checkup__heading { padding-bottom:6px; border-bottom:1px solid #d3e4ee; }
@media (min-width:1024px) {
 .kmc-checkup .kmc-checkup__plans:not(:has(> .wp-block-group__inner-container)),
 .kmc-checkup .kmc-checkup__plans > .wp-block-group__inner-container { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:599px) { .kmc-checkup .kmc-checkup__plan { padding:20px 16px; } }
/* KMC price additions: opts into the existing kmc-checkup catalog components. */
.kmc-price .kmc-price__notice { margin:24px 0; padding:20px; border:1px solid #90b9d5; border-radius:12px; background:#f4f9fd; }
.kmc-price .kmc-price__important { margin:0 0 8px; color:#123c60; font-size:21px; font-weight:700; }
.kmc-price .kmc-price__reference { margin:0 0 8px; color:#526575; font-size:14px; }
.kmc-price .kmc-price__eligibility { display:inline-block; margin:0 0 12px; padding:2px 12px; border:1px solid #90b9d5; border-radius:6px; color:#123c60; background:#eaf5fc; font-size:16px; font-weight:700; }
.kmc-price .kmc-price__notice ul { margin:0; padding-left:1.5em; }
.kmc-price .kmc-price__notice li { margin:8px 0; }
.kmc-price .kmc-checkup__cta .kmc-checkup__actions { margin-top:16px; }
/* KMC TOP final 2026-09: lower-page styles above are intentionally unchanged.
 * Published front-page identity verified in WP: ID8 / home / publish.
 * Every shell override also requires the editable .kmc-top root.
 */
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) :is(#breadcrumb, #main_visual),
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner > .c-pageTitle { display:none; }
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) #content.l-content,
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) #main_content.l-mainContent,
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner,
#body_wrap.page-id-8:has(#main_content .post_content > .kmc-top) #main_content > .l-mainContent__inner > .post_content {
 box-sizing:border-box; float:none; width:100%; max-width:none; min-width:0; margin:0; padding:0;
}
/* Only the official logo image is sized. SWELL owns the menu and its toggles. */
.c-headLogo__link:has(img[src*="/assets/kmc-logo.webp"]) { display:flex; align-items:center; max-width:100%; }
.c-headLogo__link img[src*="/assets/kmc-logo.webp"] { display:block; width:280px; max-width:100%; height:auto; aspect-ratio:1200 / 205; object-fit:contain; }
.c-headLogo__link:has(img[src*="/assets/kmc-logo.webp"]):focus-visible { outline:3px solid #0067b1; outline-offset:4px; }
@media (max-width:1199px) { .c-headLogo__link img[src*="/assets/kmc-logo.webp"] { width:230px; } }
@media (max-width:599px) { .c-headLogo__link img[src*="/assets/kmc-logo.webp"] { width:220px; max-width:calc(100vw - 100px); } }

.kmc-top { --kmc-top-width:1120px; }
.kmc-top :is(.kmc-section__inner, .kmc-content) { max-width:var(--kmc-top-width); }
.kmc-top :is(.kmc-services, .kmc-about, .kmc-flow, .kmc-news, .kmc-access) { padding-block:44px; }
.kmc-top :is(.kmc-heading, .kmc-section__heading) { font-size:clamp(25px,2.3vw,32px); }
.kmc-top :is(.kmc-services__title, .kmc-card-title) { font-size:23px; }
.kmc-top :is(.kmc-services__grid, .kmc-about__grid) { gap:24px; margin-top:26px; }
.kmc-top :is(.kmc-services__grid, .kmc-about__grid) > .wp-block-group__inner-container {
 display:grid; grid-template-columns:inherit; gap:inherit; grid-column:1 / -1; min-width:0;
}
.kmc-top .kmc-services__card > .wp-block-group__inner-container { display:flex; flex:1; flex-direction:column; gap:inherit; min-width:0; }
.kmc-top .kmc-services__card .kmc-section__actions { margin-top:auto; }
.kmc-top .kmc-services__card { padding:24px; gap:14px; border-top:1px solid #d3e4ee; border-radius:8px; background:#fff; }
.kmc-top .kmc-services .wp-block-button__link { background:#0067b1; color:#fff; }
.kmc-top .kmc-services .wp-block-button__link:hover { background:#004d86; }
.kmc-top .kmc-about__card { border:0; padding:8px 0 0; }
.kmc-top .kmc-pricing { padding-block:26px; }
.kmc-top .kmc-flow__steps { margin-top:24px; gap:24px; }
.kmc-top .kmc-flow__steps > li { padding:20px; border-radius:8px; font-size:16px; }
.kmc-top .kmc-flow__steps > li::before { width:44px; height:44px; font-size:21px; margin-bottom:12px; }
.kmc-top .kmc-news__list:empty { margin:0; }

/* The same editable image/copy blocks share a grid cell, with no white box. */
.kmc-top .kmc-hero { position:relative; padding:0; background:#102d43; }
.kmc-top .kmc-hero:not(:has(> .wp-block-group__inner-container)),
.kmc-top .kmc-hero > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr); }
.kmc-top .kmc-hero .kmc-hero__photo { grid-area:1 / 1; align-self:start; max-width:none; width:100%; margin:0; border-radius:0; }
.kmc-top .kmc-hero .kmc-hero__photo img { width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; object-position:50% 50%; border-radius:0; }
.kmc-top .kmc-hero .kmc-hero__panel {
 grid-area:1 / 1; position:relative; align-self:stretch; display:flex; align-items:center; z-index:1;
 width:100%; max-width:none; margin:0; padding:clamp(32px,5vw,72px) max(24px,calc((100% - var(--kmc-top-width)) / 2));
 border:0; border-radius:0; box-shadow:none;
 background:linear-gradient(90deg,rgba(0,12,24,.68) 0%,rgba(0,12,24,.64) 40%,rgba(0,12,24,.18) 66%,transparent 82%);
}
.kmc-top .kmc-hero .kmc-hero__panel-inner,
.kmc-top .kmc-hero .kmc-hero__panel-inner > .wp-block-group__inner-container {
 display:block; width:100%; max-width:var(--kmc-top-width); margin-inline:auto;
}
.kmc-top .kmc-hero .kmc-hero__copy { max-width:600px; }
.kmc-top .kmc-hero .kmc-hero__title { color:#fff; font-size:clamp(30px,3.6vw,50px); line-height:1.5; letter-spacing:.025em; text-shadow:0 1px 3px #102d43; }
.kmc-top .kmc-hero .kmc-hero__description { color:#fff; font-size:clamp(17px,1.5vw,20px); font-weight:600; line-height:1.8; margin-top:16px; text-shadow:0 1px 3px #102d43; }
.kmc-top .kmc-hero .kmc-hero__actions { display:flex; flex-direction:row; flex-wrap:wrap; gap:16px; margin-top:24px; max-width:600px; }
.kmc-top .kmc-hero .kmc-hero__button { width:auto; flex:1 1 240px; max-width:290px; }
.kmc-top .kmc-hero .kmc-hero__button > .wp-block-button__link { font-size:16px; padding:12px 16px; min-height:52px; }
.kmc-top .kmc-hero .kmc-hero__button--secondary > .wp-block-button__link { background:rgba(0,12,24,.55); color:#fff; border-color:#fff; }
.kmc-top .kmc-hero .kmc-hero__button--secondary > .wp-block-button__link:hover { background:#123c60; }
.kmc-top .kmc-hero a:focus-visible,
.kmc-top .kmc-bottom-cta a:focus-visible { outline:3px solid #fff; outline-offset:5px; box-shadow:0 0 0 7px #123c60; }
.kmc-top .kmc-bottom-cta { padding-block:32px; }
.kmc-top .kmc-bottom-cta .kmc-heading { font-size:24px; margin:0; }
.kmc-top .kmc-bottom-cta .kmc-text { margin:8px 0 0; }
.kmc-top .kmc-bottom-cta .kmc-eyebrow { display:none; }
.kmc-top .kmc-bottom-cta__phone { margin:12px 0; font-size:clamp(28px,3vw,38px); font-weight:700; line-height:1.5; }
.kmc-top .kmc-bottom-cta__phone a { display:inline-block; color:#fff; text-decoration:underline; text-underline-offset:6px; min-height:48px; }
@media (min-width:900px) {
 .kmc-top .kmc-hero .kmc-hero__photo { height:100%; }
 .kmc-top .kmc-hero .kmc-hero__photo img { height:100%; max-height:640px; min-height:500px; object-fit:cover; object-position:50% 0%; }
 .kmc-top .kmc-bottom-cta .kmc-content:not(:has(> .wp-block-group__inner-container)),
 .kmc-top .kmc-bottom-cta .kmc-content > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px 32px; align-items:center; text-align:left; }
 .kmc-top .kmc-bottom-cta .kmc-heading { grid-column:1; grid-row:1; }
 .kmc-top .kmc-bottom-cta .kmc-text { grid-column:1; grid-row:2; }
 .kmc-top .kmc-bottom-cta__phone { grid-column:2; grid-row:1 / 3; margin:0; }
 .kmc-top .kmc-bottom-cta .kmc-actions { grid-column:3; grid-row:1 / 3; margin:0; }
}
@media (max-width:899px) {
 /* Keep the complete building visible above copy on small screens. The photo
    and overlay remain one Hero, with a navy continuation instead of a white box. */
 .kmc-top .kmc-hero .kmc-hero__panel { padding:48vw 24px 32px; background:linear-gradient(180deg,transparent 0,transparent 28vw,rgba(0,12,24,.88) 48vw,#102d43 68vw); }
 .kmc-top .kmc-hero .kmc-hero__title { font-size:clamp(27px,4.8vw,40px); }
 .kmc-top .kmc-hero .kmc-hero__actions { flex-direction:column; max-width:480px; }
 .kmc-top .kmc-hero .kmc-hero__button { width:100%; max-width:none; flex:auto; }
}
@media (max-width:599px) {
 .kmc-top :is(.kmc-services, .kmc-about, .kmc-flow, .kmc-news, .kmc-access) { padding-block:36px; }
 .kmc-top .kmc-hero .kmc-hero__panel { padding-inline:20px; }
 .kmc-top .kmc-services__card { padding:22px 20px; }
 .kmc-top .kmc-bottom-cta .kmc-heading { font-size:22px; }
}

#header:has(.c-headLogo__link img[src*="/assets/kmc-logo.webp"]) .c-gnav > li > a { padding-inline:clamp(6px,1vw,14px); font-size:14px; }
@media (min-width:960px) and (max-width:1199px) {
 #header:has(.c-headLogo__link img[src*="/assets/kmc-logo.webp"]) .c-gnav > li > a { font-size:13px; padding-inline:6px; }
 #header .c-headLogo__link img[src*="/assets/kmc-logo.webp"] { width:200px; }
}
/* Small decorative SVGs, no icon fonts, requests, or accessibility labels. */
.kmc-top .kmc-services__card::before,
.kmc-top .kmc-about__card::before { content:""; display:block; width:64px; height:64px; border-radius:50%; background-color:#eaf5fc; background-repeat:no-repeat; background-position:center; background-size:34px; margin-bottom:4px; }
.kmc-top .kmc-services__card:first-child::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230067b1%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203v7a5%205%200%200%200%2010%200V3M5%203h2m6%200h2M10%2015v2a4%204%200%200%200%208%200v-3%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2211%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E"); }
.kmc-top .kmc-services__card:last-child::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230067b1%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%225%22%20y%3D%224%22%20width%3D%2214%22%20height%3D%2217%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%203h6v4H9zM9%2011h6M9%2015h6M9%2018h4%22%2F%3E%3C%2Fsvg%3E"); }
.kmc-top .kmc-about__card:first-child::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230067b1%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2021V5h10v16M15%2010h4v11M3%2021h18M8%208h1m3%200h1M8%2012h1m3%200h1M8%2016h1m3%200h1%22%2F%3E%3C%2Fsvg%3E"); }
.kmc-top .kmc-about__card:last-child::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230067b1%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M5%2021v-3a7%207%200%200%201%2014%200v3zM4%205a3%203%200%200%200%200%206m16-6a3%203%200%200%201%200%206M2%2014v5m20-5v5%22%2F%3E%3C%2Fsvg%3E"); }
@media (min-width:900px) {
 .kmc-top .kmc-services__card { position:relative; padding-left:110px; }
 .kmc-top .kmc-services__card::before { position:absolute; left:24px; top:24px; }
 .kmc-top .kmc-about__card { position:relative; padding-left:88px; }
 .kmc-top .kmc-about__card::before { position:absolute; left:0; top:8px; }
}
/* KMC search only. Selectors verified against SWELL's public search HTML. */
#body_wrap.search #content { display: block; }
#body_wrap.search #content > #sidebar { display: none; }
#body_wrap.search #main_content {
  float: none;
  width: 100%;
  max-width: 1080px;
  min-width: 0;
  margin-inline: auto;
}
#body_wrap.search #main_content .p-postList {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin: 0;
}
#body_wrap.search #main_content .p-postList__item {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}
#body_wrap.search #main_content .p-postList__thumb { display: none; }
#body_wrap.search #main_content .p-postList__link {
  display: block;
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid #d6e6f1;
  border-radius: 8px;
  background: #fff;
  color: #263f50;
  overflow-wrap: anywhere;
}
#body_wrap.search #main_content .p-postList__body { width: 100%; padding: 0; }
#body_wrap.search #main_content .p-postList__title {
  color: #123c60;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.5;
}
#body_wrap.search #main_content .p-postList__excerpt {
  display: block;
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.8;
}
#body_wrap.search #main_content .p-postList__link:hover { border-color: #0067b1; }
#body_wrap.search #main_content .p-postList__link:focus-visible {
  outline: 3px solid #0067b1;
  outline-offset: 3px;
}
