@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-S CUSTOM DESIGN
   既存の独自ID・独自クラスを中心に適用
===================================================== */

:root {
	/* 既存互換 */
	--light-main-gray: #dae6f4;

	/* ブランドカラー */
	--kmc-navy: #012263;
	--kmc-blue: #2469c0;
	--kmc-steel-blue: #467a9b;
	--kmc-red: #c40d19;

	/*
	 * rgba()で使用するRGB値
	 * 上のブランドカラーを変更する場合は、
	 * 対応するRGB値も合わせて変更してください。
	 */
	--kmc-navy-rgb: 1, 34, 99;
	--kmc-blue-rgb: 36, 105, 192;
	--kmc-steel-blue-rgb: 70, 122, 155;
	--kmc-red-rgb: 196, 13, 25;

	/* 既存コードとの互換用 */
	--sub-blue: var(--kmc-blue);

	/* テキスト */
	--kmc-heading: #152536;
	--kmc-text: #333;

	/* 背景・罫線 */
	--kmc-border: rgba(var(--kmc-navy-rgb), 0.12);
	--kmc-bg: #f4f7fb;
	--kmc-bg-blue: #eaf2fa;
	--kmc-light-blue: #edf4fb;
	--kmc-line: #dce6f0;
	--kmc-white: #ffffff;

	/* 角丸 */
	--kmc-radius-small: 14px;
	--kmc-radius-medium: 22px;
	--kmc-radius-large: 30px;

	/* 影 */
	--kmc-shadow-small:
		0 10px 30px rgba(var(--kmc-navy-rgb), 0.06);

	--kmc-shadow-medium:
		0 20px 50px rgba(var(--kmc-navy-rgb), 0.11);

	/* アニメーション */
	--kmc-transition: 0.35s ease;
	--kmc-reveal-distance: 30px;
	--kmc-reveal-duration: 0.8s;
	--kmc-reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}


/* =====================================================
   Header
===================================================== */
.w-header__inner{
	display: flex;
    gap: 10px;
    align-items: center;
}
.widget_bogo_language_switcher .w-header__title {
  display: none;
}
span.bogo-language-name {
    padding: 3px;
	font-size:14px;
}

.bogo-language-switcher {
  display: flex;
  gap:5px;
}
ul.bogo-language-switcher.list-view::after {
    content: "";
    margin-left: 2px;
    width: 1px;
    height: auto;
    background-color: var(--color_text);
    order: 2;
}
li.vi.last {
    order: 3;
}
.bogoflags, .bogoflags-before:before{
	margin:0 !important;
	width:15px;
}
/* PCのみコンテンツを強制表示 */
@media(max-width:960px){
	.w-header.pc_{
		display:block !important;
	}
	.l-header__customBtn.sp_{
		display:none;
	}
}

/* グローバルナビ */

.c-gnav > li > a::after {
	position: absolute;
	right: 17px;
	bottom: 20px;
	left: 17px;
	height: 2px;
	content: "";
	border-radius: 999px;
	background: var(--kmc-red);
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.3s ease;
}


/* =====================================================
   Footer
===================================================== */

.l-footer {
	position: relative;
	background: #031a40;
	color: rgba(255, 255, 255, 0.76);
}

/* =====================================================
   Section title
===================================================== */

.title-group {
	position: relative;
	margin-bottom: clamp(40px, 5vw, 70px) !important;
}

.title-group p {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	color: var(--kmc-navy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(50px, 6vw, 82px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.05em;
}

.title-group p span {
	color: var(--kmc-navy) ;
}

.title-group h2 {
	margin-top: 18px !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
	color: var(--kmc-heading);
	font-size: clamp(16px, 1.5vw, 21px);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.12em;
}


/* 赤いアクセントライン */

.title-group::after {
	display: block;
	width: 42px;
	height: 3px;
	margin: 21px auto 0;
	content: "";
	border-radius: 999px;
	background: var(--kmc-red);
}
.title-group_left::after{
	margin: 21px 0;
}

@media screen and (max-width: 767px) {

	.title-group {
		margin-bottom: 38px !important;
	}

	.title-group p {
		font-size: clamp(42px, 14vw, 60px);
	}

	.title-group h2 {
		margin-top: 14px !important;
		font-size: 15px;
	}

	.title-group::after {
		width: 36px;
		margin-top: 17px;
	}
}



/* ================================================================================================================================ 
 * 全体
 * ================================================================================================================================ */
.fw-column{
	padding:2rem 3rem 2rem 3rem;
}

.swell-block-columns__inner{
	margin-left: auto;
}
/* =====================================================
   Main Visual
===================================================== */

/* FV全体 */
.p-mainVisual {
	background: #eef3f8;
}

/* 左側のテキスト可読性を高めるグラデーション */
.p-mainVisual__slide::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		linear-gradient(
			90deg,
			rgba(241, 246, 251, 0.98) 0%,
			rgba(241, 246, 251, 0.96) 23%,
			rgba(235, 242, 249, 0.84) 39%,
			rgba(221, 232, 243, 0.46) 52%,
			rgba(1, 34, 99, 0.08) 72%,
			rgba(1, 34, 99, 0.14) 100%
		);
}

/* FV下部のブランドライン */
.p-mainVisual__slide::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 4;
	width: 100%;
	height: 3px;
	background:
		linear-gradient(
			90deg,
			#c40d19 0 7%,
			#012263 7% 31%,
			rgba(1, 34, 99, 0.08) 31% 100%
		);
	transform-origin: left center;
}


/* テキストコンテンツ幅 */
.p-mainVisual__textLayer .post_content {
	position: relative;
	width: min(100%, 680px);
	margin-right: auto;
	margin-left: 0;
	padding-left: clamp(22px, 2.1vw, 34px);
}

/* 見出し横のアクセントライン */
.p-mainVisual__textLayer .post_content::before {
	content: "";
	position: absolute;
	top: 7px;
	left: 0;
	width: 2px;
	height: clamp(46px, 4vw, 62px);
	background: #c40d19;
}

/* テキスト */
.p-mainVisual__textLayer p {
	margin-bottom: 0;
	color: rgba(1, 34, 99, 0.76);
	font-size: clamp(16px, 1.25vw, 20px);
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.04em;
	text-shadow:
		0 1px 2px rgba(255, 255, 255, 0.95),
		0 0 8px rgba(255, 255, 255, 0.85);
}


/* スマートフォン */
@media (max-width: 767px) {

	.p-mainVisual__slide {
		min-height: 680px;
	}

	/* 人物を見せながら下部にテキストを配置 */
	.p-mainVisual__img {
		object-position: 60% center;
	}

}


/* =====================================================
   About
===================================================== */

#about {
	position: relative;
	overflow: hidden;
	background: #fff;
}

#about::before {
	position: absolute;
	top: 10%;
	right: -230px;
	width: 620px;
	height: 620px;
	content: "";
	border-radius: 50%;
	background:
		radial-gradient(
			circle,
			rgba(47, 115, 200, 0.13) 0%,
			rgba(47, 115, 200, 0.04) 46%,
			rgba(47, 115, 200, 0) 72%
		);
	pointer-events: none;
}

#about::after {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 42%;
	height: 58%;
	content: "";
	border-radius: 80px 0 0 0;
	background:
		linear-gradient(
			135deg,
			rgba(234, 242, 250, 0.8) 0%,
			rgba(255, 255, 255, 0.3) 100%
		);
	pointer-events: none;
}

#about .swell-block-columns__inner,
#about .wp-block-columns {
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
}

#about .wp-block-image {
	position: relative;
	margin: 0;
}

#about .wp-block-image::before {
	position: absolute;
	z-index: -1;
	top: 24px;
	left: -24px;
	width: 100%;
	height: 100%;
	content: "";
	border-radius: var(--kmc-radius-large);
	background: var(--kmc-bg-blue);
}

#about .wp-block-image img {
	aspect-ratio: 4 / 3;
	border-radius: var(--kmc-radius-large);
	box-shadow: var(--kmc-shadow-medium);
	object-fit: cover;
}


@media screen and (max-width: 767px) {

	#about::after {
		width: 65%;
		height: 40%;
		border-radius: 50px 0 0 0;
	}

	#about .wp-block-image::before {
		top: 13px;
		left: -13px;
	}

	#about .wp-block-image img {
		border-radius: 22px;
	}
}

/* =====================================================
   Identity
   KMC-Sに込めた想い
===================================================== */

#identity {
	position: relative;
	overflow: hidden;
	padding-top: clamp(70px, 8vw, 110px) !important;
	padding-bottom: clamp(75px, 9vw, 125px) !important;
	background:
		radial-gradient(
			circle at 5% 12%,
			rgba(var(--kmc-steel-blue-rgb), 0.14) 0,
			rgba(var(--kmc-steel-blue-rgb), 0) 28%
		),
		radial-gradient(
			circle at 96% 84%,
			rgba(var(--kmc-navy-rgb), 0.09) 0,
			rgba(var(--kmc-navy-rgb), 0) 28%
		),
		linear-gradient(
			180deg,
			var(--kmc-white) 0%,
			var(--kmc-bg) 46%,
			var(--kmc-bg-blue) 100%
		);
	isolation: isolate;
}

/* 背景装飾 */

#identity::before,
#identity::after {
	position: absolute;
	z-index: -1;
	content: "";
	border-radius: 50%;
	pointer-events: none;
}

#identity::before {
	top: -240px;
	right: -190px;
	width: 540px;
	height: 540px;
	border: 1px solid rgba(var(--kmc-navy-rgb), 0.08);
}

#identity::after {
	bottom: -280px;
	left: -190px;
	width: 560px;
	height: 560px;
	border: 1px solid rgba(var(--kmc-red-rgb), 0.06);
}

#identity .swell-block-fullWide__inner {
	position: relative;
	z-index: 1;
}

/*
 * セクションタイトルは既存の共通クラス
 * .title-group のデザインをそのまま使用
 */

#identity .title-group {
	margin-bottom: clamp(50px, 6vw, 78px) !important;
}

/* K・M・C */

#identity .kmcs-identity__kmc {
	position: relative;
	margin: 0;
}

/* K・M・Cをつなぐライン */

#identity .kmcs-identity__kmc::before {
	position: absolute;
	z-index: 0;
	top: 61px;
	right: 13%;
	left: 13%;
	height: 1px;
	content: "";
	background:
		linear-gradient(
			90deg,
			rgba(var(--kmc-navy-rgb), 0.08) 0%,
			rgba(var(--kmc-blue-rgb), 0.55) 30%,
			rgba(var(--kmc-steel-blue-rgb), 0.55) 68%,
			rgba(var(--kmc-red-rgb), 0.16) 100%
		);
}

#identity .kmcs-identity__kmc .swell-block-columns__inner {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(22px, 2.7vw, 38px);
}

/* K・M・Cカード共通 */

#identity .kmcs-identity__kmc .swell-block-column {
	--identity-accent: var(--kmc-navy);
	--identity-accent-rgb: var(--kmc-navy-rgb);

	position: relative;
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	grid-template-areas:
		"initial word"
		"initial label"
		"description description";
	grid-template-rows: auto auto 1fr;
	align-content: start;
	min-width: 0;
	width: auto !important;
	min-height: 100%;
	margin: 0 !important;
	padding: clamp(28px, 3vw, 42px);
	overflow: hidden;
	border: 1px solid var(--kmc-border);
	border-radius: var(--kmc-radius-large);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--kmc-shadow-small);
	transition:
		transform var(--kmc-transition),
		border-color var(--kmc-transition),
		box-shadow var(--kmc-transition);
}

/* カード別アクセント */

#identity .kmcs-identity__kmc .swell-block-column:nth-child(1) {
	--identity-accent: var(--kmc-navy);
	--identity-accent-rgb: var(--kmc-navy-rgb);
}

#identity .kmcs-identity__kmc .swell-block-column:nth-child(2) {
	--identity-accent: var(--kmc-steel-blue);
	--identity-accent-rgb: var(--kmc-steel-blue-rgb);
}

#identity .kmcs-identity__kmc .swell-block-column:nth-child(3) {
	--identity-accent: var(--kmc-red);
	--identity-accent-rgb: var(--kmc-red-rgb);
}

/* カード上部のライン */

#identity .kmcs-identity__kmc .swell-block-column::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	content: "";
	background:
		linear-gradient(
			90deg,
			var(--identity-accent) 0%,
			rgba(var(--identity-accent-rgb), 0.52) 100%
		);
}

/* カード右上の円形装飾 */

#identity .kmcs-identity__kmc .swell-block-column::after {
	position: absolute;
	top: -75px;
	right: -70px;
	width: 190px;
	height: 190px;
	content: "";
	border: 1px solid rgba(var(--identity-accent-rgb), 0.08);
	border-radius: 50%;
	background:
		radial-gradient(
			circle,
			rgba(var(--identity-accent-rgb), 0.06) 0%,
			rgba(var(--identity-accent-rgb), 0) 68%
		);
	pointer-events: none;
}

/* K・M・C */

#identity .kmcs-identity__initial {
	position: relative;
	z-index: 1;
	grid-area: initial;
	align-self: center;
	margin: 0 !important;
	color: var(--identity-accent);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(64px, 5.5vw, 84px);
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.08em;
}

/* Keep・Management・Contact */

#identity .kmcs-identity__word-name {
	position: relative;
	z-index: 1;
	grid-area: word;
	align-self: end;
	margin: 0 0 5px !important;
	color: var(--kmc-heading);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(21px, 1.8vw, 27px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

/* 継続・運営・つながり */

#identity .kmcs-identity__label {
	position: relative;
	z-index: 1;
	grid-area: label;
	align-self: start;
	margin: 0 !important;
	color: var(--identity-accent);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.06em;
}

/* 説明文 */

#identity .kmcs-identity__description {
	position: relative;
	z-index: 1;
	grid-area: description;
	margin: 28px 0 0 !important;
	padding-top: 24px;
	border-top: 1px solid rgba(var(--identity-accent-rgb), 0.13);
	color: var(--kmc-text);
	line-height: 1.95;
	letter-spacing: 0.02em;
}

@media (hover: hover) {

	#identity .kmcs-identity__kmc .swell-block-column:hover {
		border-color: rgba(var(--identity-accent-rgb), 0.25);
		box-shadow: var(--kmc-shadow-medium);
		transform: translateY(-7px);
	}
}

/* KMCと5Sをつなぐ見出し */

#identity .kmcs-identity__bridge-title {
	position: relative;
	max-width: 720px;
	margin: clamp(65px, 8vw, 100px) auto 0 !important;
	padding: 31px 90px 31px 118px !important;
	border: 0 !important;
	border-radius: var(--kmc-radius-medium);
	background:
		linear-gradient(
			120deg,
			var(--kmc-heading) 0%,
			var(--kmc-navy) 58%,
			var(--kmc-blue) 135%
		);
	box-shadow: var(--kmc-shadow-medium);
	color: var(--kmc-white);
	text-align: left !important;
	font-size: clamp(20px, 2vw, 28px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.035em;
}

/* 5Sアイコン */

#identity .kmcs-identity__bridge-title::before {
	position: absolute;
	top: 50%;
	left: 31px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 61px;
	height: 61px;
	content: "5S" !important;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	color: var(--kmc-white);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 19px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	transform: translateY(-50%);
}

/* 下方向の接続線 */

#identity .kmcs-identity__bridge-title::after {
	position: absolute;
	bottom: -32px;
	left: 50%;
	display: block !important;
	width: 1px;
	height: 32px;
	content: "" !important;
	background:
		linear-gradient(
			180deg,
			rgba(var(--kmc-navy-rgb), 0.5) 0%,
			rgba(var(--kmc-navy-rgb), 0.06) 100%
		);
	transform: translateX(-50%);
}

/* ブリッジ説明文 */

#identity .kmcs-identity__bridge-text {
	margin: 52px auto clamp(40px, 5vw, 62px) !important;
	color: var(--kmc-text);
	font-size: clamp(15px, 1.3vw, 18px);
	font-weight: 500;
	line-height: 1.9;
	letter-spacing: 0.04em;
	text-align: center;
}

/* 5つのS */

#identity .kmcs-identity__s-grid {
	margin: 0;
}

#identity .kmcs-identity__s-grid .swell-block-columns__inner {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(14px, 1.7vw, 23px);
}

/* 5Sカード */

#identity .kmcs-identity__s-grid .swell-block-column {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	width: auto !important;
	min-height: 100%;
	margin: 0 !important;
	padding: 29px 22px 27px;
	overflow: hidden;
	border: 1px solid var(--kmc-border);
	border-radius: var(--kmc-radius-medium);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--kmc-shadow-small);
	transition:
		transform var(--kmc-transition),
		border-color var(--kmc-transition),
		box-shadow var(--kmc-transition);
}

/* 上部グラデーション */

#identity .kmcs-identity__s-grid .swell-block-column::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	content: "";
	background:
		linear-gradient(
			90deg,
			var(--kmc-navy) 0%,
			var(--kmc-blue) 67%,
			var(--kmc-red) 100%
		);
}

/* 背景のS */

#identity .kmcs-identity__s-grid .swell-block-column::after {
	position: absolute;
	right: -9px;
	bottom: -32px;
	content: "S";
	color: rgba(var(--kmc-navy-rgb), 0.035);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 130px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.08em;
	pointer-events: none;
}

/* 01〜05 */

#identity .kmcs-identity__s-number {
	position: relative;
	z-index: 1;
	margin: 0 0 26px !important;
	color: rgba(var(--kmc-navy-rgb), 0.25);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.16em;
}

#identity .kmcs-identity__s-number::after {
	display: inline-block;
	width: 25px;
	height: 1px;
	margin-left: 9px;
	content: "";
	background: rgba(var(--kmc-red-rgb), 0.48);
	vertical-align: middle;
}

/* Supportなど */

#identity .kmcs-identity__s-title {
	position: relative;
	z-index: 1;
	margin: 0 0 8px !important;
	color: var(--kmc-navy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(20px, 1.55vw, 24px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

/* 日本語ラベル */

#identity .kmcs-identity__s-label {
	position: relative;
	z-index: 1;
	align-self: flex-start;
	margin: 0 0 22px !important;
	padding: 4px 11px;
	border: 1px solid rgba(var(--kmc-red-rgb), 0.16);
	border-radius: 999px;
	background: rgba(var(--kmc-red-rgb), 0.055);
	color: var(--kmc-red);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

/* 説明文 */

#identity .kmcs-identity__s-description {
	position: relative;
	z-index: 1;
	margin: auto 0 0 !important;
	color: var(--kmc-text);
	font-size: 13px;
	line-height: 1.85;
	letter-spacing: 0.015em;
}

@media (hover: hover) {

	#identity .kmcs-identity__s-grid .swell-block-column:hover {
		border-color: rgba(var(--kmc-navy-rgb), 0.22);
		box-shadow: var(--kmc-shadow-medium);
		transform: translateY(-7px);
	}
}

/* タブレット */
@media screen and (max-width: 1050px) {

	#identity .kmcs-identity__s-grid .swell-block-columns__inner {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	#identity .kmcs-identity__s-grid .swell-block-column {
		grid-column: span 2;
	}

	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(4) {
		grid-column: 2 / span 2;
	}

	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(5) {
		grid-column: 4 / span 2;
	}
}

@media screen and (max-width: 900px) {

	#identity .kmcs-identity__kmc::before {
		display: none;
	}

	#identity .kmcs-identity__kmc .swell-block-columns__inner {
		grid-template-columns: 1fr;
		gap: 19px;
	}

	#identity .kmcs-identity__kmc .swell-block-column {
		grid-template-columns: 72px minmax(0, 1fr);
		max-width: 660px;
		margin-right: auto !important;
		margin-left: auto !important;
	}
}

/* スマートフォン */

@media screen and (max-width: 767px) {

	#identity {
		padding-top: 65px !important;
		padding-bottom: 72px !important;
	}

	#identity .title-group {
		margin-bottom: 42px !important;
	}

	#identity .kmcs-identity__bridge-title {
		margin-top: 62px !important;
		padding: 27px 24px 27px 92px !important;
		border-radius: var(--kmc-radius-medium);
		font-size: 19px;
	}

	#identity .kmcs-identity__bridge-title::before {
		left: 22px;
		width: 50px;
		height: 50px;
		font-size: 16px;
	}

	#identity .kmcs-identity__s-grid .swell-block-columns__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 15px;
	}

	#identity .kmcs-identity__s-grid .swell-block-column {
		grid-column: auto;
	}

	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(4) {
		grid-column: auto;
	}

	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(5) {
		grid-column: 1 / -1;
		width: calc(50% - 7.5px) !important;
		justify-self: center;
	}
}

@media screen and (max-width: 599px) {

	#identity .kmcs-identity__kmc .swell-block-column {
		grid-template-columns: 62px minmax(0, 1fr);
		padding: 27px 22px 25px;
		border-radius: var(--kmc-radius-medium);
	}

	#identity .kmcs-identity__initial {
		font-size: 58px;
	}

	#identity .kmcs-identity__word-name {
		font-size: 21px;
	}

	#identity .kmcs-identity__description {
		margin-top: 22px !important;
		padding-top: 20px;
		line-height: 1.9;
		font-size:16px;
	}

	#identity .kmcs-identity__bridge-title {
		padding: 78px 22px 25px !important;
		text-align: center !important;
	}

	#identity .kmcs-identity__bridge-title::before {
		top: 20px;
		left: 50%;
		transform: translateX(-50%);
	}

	#identity .kmcs-identity__bridge-text {
		margin-top: 48px !important;
		margin-bottom: 35px !important;
		line-height: 1.85;
		font-size:16px;
	}

	#identity .kmcs-identity__s-grid .swell-block-columns__inner {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	#identity .kmcs-identity__s-grid .swell-block-column,
	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(4),
	#identity .kmcs-identity__s-grid .swell-block-column:nth-child(5) {
		grid-column: auto;
		width: auto !important;
		padding: 26px 22px 25px;
	}

	#identity .kmcs-identity__s-number {
		margin-bottom: 20px !important;
	}

	#identity .kmcs-identity__s-title {
		font-size: 21px;
	}

	#identity .kmcs-identity__s-label {
		margin-bottom: 17px !important;
	}

	#identity .kmcs-identity__s-description {
		line-height: 1.85;
		font-size:16px;
	}
}

/* =====================================================
   Reason
===================================================== */

#reason {
	position: relative;
	overflow: hidden;
}

/* 既存の左側背景 */

#reason::after {
	position: absolute;
	z-index: 0;
	bottom: 0;
	left: 0;
	width: 72%;
	height: 100%;
	content: "";
	background:
		linear-gradient(
			90deg,
			rgba(218, 230, 244, 0.78) 0%,
			rgba(245, 249, 253, 0.88) 68%,
			rgba(255, 255, 255, 0) 100%
		);
	pointer-events: none;
}

#reason .swell-block-fullWide__inner {
	position: relative;
	z-index: 1;
}

/* 各Reasonブロック */

#reason .fw-column {
	position: relative;
	margin-bottom: clamp(24px, 3vw, 40px);
	overflow: hidden;
	border: 1px solid var(--kmc-border);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--kmc-shadow-small);
}

#reason .fw-column:last-child {
	margin-bottom: 0;
}

/* 左側のライン */

#reason .fw-column::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 5px;
	height: 100%;
	content: "";
	background:
		linear-gradient(
			180deg,
			var(--kmc-navy) 0%,
			var(--kmc-blue) 66%,
			var(--kmc-red) 100%
		);
}

#reason .fw-column .swell-block-columns__inner {
	align-items: center;
	gap: clamp(30px, 5vw, 70px);
}

/* 画像 */

#reason .wp-block-image {
	margin-bottom: 0;
	overflow: hidden;
	border-radius: var(--kmc-radius-medium);
}

#reason .wp-block-image img {
	border-radius: var(--kmc-radius-medium);
	transition: transform 0.6s ease;
}

#reason .fw-column:hover .wp-block-image img {
	transform: scale(1.025);
}

/* 見出し */

#reason h3 {
	position: relative;
	margin-top: 0;
	margin-bottom: 22px;
	padding-bottom: 18px;
	color: var(--kmc-heading);
	font-size: clamp(21px, 2vw, 30px);
	line-height: 1.55;
}

#reason h3::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 34px;
	height: 3px;
	content: "";
	border-radius: 999px;
	background: var(--kmc-red);
}


@media screen and (max-width: 767px) {

	#reason::after {
		width: 90%;
	}

	#reason .fw-column {
		padding: 24px 20px;
		border-radius: 21px;
	}

	#reason .wp-block-image,
	#reason .wp-block-image img {
		border-radius: 16px;
	}
}

/* =====================================================
   Service
===================================================== */

#service {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 8% 12%,
			rgba(36, 105, 192, 0.12) 0,
			rgba(36, 105, 192, 0) 29%
		),
		radial-gradient(
			circle at 94% 90%,
			rgba(1, 34, 99, 0.08) 0,
			rgba(1, 34, 99, 0) 27%
		),
		linear-gradient(
			180deg,
			#fff 0%,
			#f4f7fb 100%
		);
}

/* 既存の丸数字デザインを無効化 */

.columns-no .swell-block-column::after {
	all: unset;
}

/* カラム全体 */

#service .columns-service .swell-block-columns__inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(24px, 2.5vw, 38px);
	margin: 0 !important;
}

/* カード */

#service .columns-service .swell-block-column {
	--service-number: "00";

	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	padding: 68px clamp(25px, 2.4vw, 38px) 38px;
	overflow: hidden;
	border: 1px solid rgba(1, 34, 99, 0.1);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.95);
	box-shadow:
		0 10px 30px rgba(1, 34, 99, 0.06),
		0 2px 8px rgba(1, 34, 99, 0.04);
	transition:
		transform 0.35s ease,
		border-color 0.35s ease,
		box-shadow 0.35s ease;
}

#service .columns-service .columns-no1 {
	--service-number: "01";
}

#service .columns-service .columns-no2 {
	--service-number: "02";
}

#service .columns-service .columns-no3 {
	--service-number: "03";
}

/* カード上部のライン */

#service .columns-service .swell-block-column::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	content: "";
	background:
		linear-gradient(
			90deg,
			var(--kmc-navy) 0%,
			var(--kmc-blue) 68%,
			var(--kmc-red) 100%
		);
}

/* 背景の大きな数字 */

#service .columns-service .swell-block-column::after {
	position: absolute;
	top: 16px;
	right: 20px;
	display: block;
	content: var(--service-number);
	color: rgba(1, 34, 99, 0.055);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(76px, 6vw, 106px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.07em;
	pointer-events: none;
}

/* タイトル */

#service .columns-service h3 {
	position: relative;
	z-index: 1;
	min-height: 5.4em;
	margin: 0 0 25px !important;
	padding: 0 !important;
	text-align: left;
	font-size: clamp(19px, 1.45vw, 23px);
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.01em;
}

#service .columns-service h3::before,
#service .columns-service h3::after {
	display: none !important;
}

#service .columns-service h3 span {
	display: block;
	color: var(--kmc-red) !important;
}

/* SERVICE 01 */

#service .columns-service h3 span::before {
	display: block;
	margin-bottom: 13px;
	content: "SERVICE " var(--service-number);
	color: var(--kmc-navy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.15em;
}

/* タイトル下のライン */

#service .columns-service h3 span::after {
	display: block;
	width: 32px;
	height: 2px;
	margin-top: 17px;
	content: "";
	border-radius: 999px;
	background: var(--kmc-blue);
}

/* 本文 */

#service .columns-service .wp-block-paragraph {
	position: relative;
	z-index: 1;
	margin: 0 !important;
	color: var(--kmc-text);
	font-size: clamp(14px, 1.05vw, 16px);
	line-height: 2;
	letter-spacing: 0.025em;
}

/* PCホバー */

@media (hover: hover) {

	#service .columns-service .swell-block-column:hover {
		border-color: rgba(1, 34, 99, 0.22);
		box-shadow: var(--kmc-shadow-medium);
		transform: translateY(-8px);
	}
}

/* タブレット */

@media screen and (max-width: 959px) {

	#service .columns-service .swell-block-columns__inner {
		grid-template-columns: minmax(0, 720px);
		justify-content: center;
		gap: 24px;
	}

	#service .columns-service .swell-block-column {
		padding: 62px 32px 34px;
	}

	#service .columns-service h3 {
		min-height: auto;
	}
}

/* スマートフォン */

@media screen and (max-width: 599px) {

	#service .columns-service .swell-block-columns__inner {
		gap: 20px;
	}

	#service .columns-service .swell-block-column {
		padding: 56px 23px 28px;
		border-radius: 19px;
	}

	#service .columns-service .swell-block-column::after {
		top: 15px;
		right: 15px;
		font-size: 76px;
	}

	#service .columns-service h3 {
		margin-bottom: 21px !important;
		font-size: 19px;
		line-height: 1.55;
	}

	#service .columns-service .wp-block-paragraph {
		font-size: 14px;
		line-height: 1.9;
	}
}

/* =====================================================
   Flow
===================================================== */

#flow {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			#061d46 0%,
			var(--kmc-navy) 56%,
			#0a4387 100%
		);
}

/* 背景の円 */

#flow::before,
#flow::after {
	position: absolute;
	content: "";
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	pointer-events: none;
}

#flow::before {
	top: -260px;
	right: -170px;
	width: 600px;
	height: 600px;
}

#flow::after {
	bottom: -330px;
	left: -180px;
	width: 620px;
	height: 620px;
}

/* Flowのタイトルを白くする */

#flow .title-group p,
#flow .title-group p span,
#flow .title-group h2 {
	color: #fff !important;
}

#flow .title-group::after {
	background: var(--kmc-red);
}


/* ステップカード */
#flow .swell-block-step__item{
	color:#fff;
}

/* 番号 */

#flow .swell-block-step__number.u-bg-main {
	background: var(--kmc-red) !important;
}

/* =====================================================
   Information
   Editorial / Manifesto Design
===================================================== */

#info {
	--info-logo-offset-x: 0%;
	--info-logo-offset-y: 11%;
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(
			180deg,
			var(--kmc-white) 0%,
			var(--kmc-bg) 100%
		) !important;
	isolation: isolate;
}

/* 背景の縦文字 */

#info::before {
	position: absolute;
	z-index: -1;
	top: 70px;
	right: -0.12em;
	content: "INFORMATION";
	color: rgba(var(--kmc-navy-rgb), 0.025);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(100px, 13vw, 200px);
	font-weight: 800;
	line-height: 0.8;
	letter-spacing: -0.08em;
	writing-mode: vertical-rl;
	pointer-events: none;
}

/* 背景の斜めライン */

#info::after {
	position: absolute;
	z-index: -1;
	top: 38%;
	left: -8%;
	width: 48%;
	height: 6px;
	content: "";
	background:
		linear-gradient(
			90deg,
			rgba(var(--kmc-red-rgb), 0),
			var(--kmc-red),
			rgba(var(--kmc-red-rgb), 0)
		);
	opacity: 0.12;
	transform: rotate(-28deg);
	pointer-events: none;
}

#info > .swell-block-fullWide__inner {
	position: relative;
	z-index: 1;
}


/* 導入パネル */

#info .kmcs-info__lead {
	position: relative;
	display: grid !important;
	grid-template-columns:
		minmax(0, 1.2fr)
		minmax(300px, 0.8fr);
	align-items: stretch;
	gap: 0 !important;
	min-height: 500px;
	margin: 0 0 clamp(80px, 10vw, 135px);
	overflow: visible;
	border-radius: var(--kmc-radius-large);
	background:
		linear-gradient(
			130deg,
			var(--kmc-heading) 0%,
			var(--kmc-navy) 64%,
			var(--kmc-blue) 145%
		);
	box-shadow: var(--kmc-shadow-medium);
	isolation: isolate;
}

/* 上部の赤いアクセント */

#info .kmcs-info__lead::after {
	position: absolute;
	top: 0;
	left: clamp(35px, 6vw, 75px);
	width: clamp(80px, 10vw, 150px);
	height: 7px;
	content: "";
	background: var(--kmc-red);
	transform: skewX(-38deg);
	transform-origin: left top;
	pointer-events: none;
}

/* 導入テキスト */

#info .kmcs-info__lead > .wp-block-column:first-child {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	margin: 0;
	padding:
		clamp(65px, 8vw, 105px)
		clamp(38px, 7vw, 88px);
	background: transparent !important;
}

/* 英字ラベル */

#info .kmcs-info__lead > .wp-block-column:first-child::before {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-bottom: 31px;
	padding-bottom: 9px;
	content: "CAREER SUPPORT / KMC-S";
	border-bottom: 1px solid rgba(255, 255, 255, 0.34);
	color: rgba(255, 255, 255, 0.7);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.16em;
}

/* メインコピー */

#info
	.kmcs-info__lead
	> .wp-block-column:first-child
	> .wp-block-paragraph:first-of-type {
	position: relative;
	max-width: 700px;
	margin: 0 0 33px !important;
	color: var(--kmc-white) !important;
	font-size: clamp(24px, 1.8vw, 40px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.035em;
}

/* メインコピー下のライン */

#info
	.kmcs-info__lead
	> .wp-block-column:first-child
	> .wp-block-paragraph:first-of-type::after {
	display: block;
	width: 54px;
	height: 3px;
	margin-top: 27px;
	content: "";
	border-radius: 999px;
	background:
		linear-gradient(
			90deg,
			var(--kmc-red),
			var(--kmc-blue)
		);
}

/* 導入本文 */

#info
	.kmcs-info__lead
	> .wp-block-column:first-child
	> .wp-block-paragraph:not(:first-of-type) {
	max-width: 670px;
	margin-top: 0;
	margin-bottom: 18px;
	color: rgba(255, 255, 255, 0.84) !important;
	line-height: 2;
	letter-spacing: 0.025em;
}

#info
	.kmcs-info__lead
	> .wp-block-column:first-child
	> .wp-block-paragraph:last-child {
	margin-bottom: 0;
}

/* ロゴエリア */

#info .kmcs-info__lead > .wp-block-column:last-child {
	position: relative;
	z-index: 3;
	min-width: 0;
	min-height: 500px;
	margin: 0;
	padding: 0 !important;
	background: transparent !important;
}

/* ロゴ周辺の軌道 */

#info .kmcs-info__lead > .wp-block-column:last-child::before {
	position: absolute;
	top: 50%;
	right: -40px;
	width: clamp(330px, 35vw, 510px);
	aspect-ratio: 1;
	content: "";
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 50%;
	box-shadow:
		0 0 0 45px rgba(255, 255, 255, 0.025),
		0 0 0 90px rgba(255, 255, 255, 0.014);
	transform: translateY(-50%);
	pointer-events: none;
}

/* 円形のロゴステージ */

#info .kmcs-info__lead .wp-block-image {
	position: absolute;
	top: 50%;
	right: clamp(-75px, -4vw, -35px);
	display: grid;
	place-items: center;
	width: clamp(310px, 32vw, 460px);
	aspect-ratio: 1;
	margin: 0;
	border: 1px solid var(--kmc-border);
	border-radius: 50%;
	background: var(--kmc-white);
	box-shadow:
		0 35px 75px rgba(var(--kmc-navy-rgb), 0.28),
		inset 0 0 0 15px var(--kmc-light-blue);
	transform:
		translateY(-50%)
		rotate(7deg);
	transition:
		transform var(--kmc-transition),
		box-shadow var(--kmc-transition);
}

/* ロゴ画像 */

#info .kmcs-info__lead .wp-block-image img {
	display: block;
	width: 75% !important;
	max-width: none;
	height: auto;
	margin: 0;
	transform:
		translate(
			var(--info-logo-offset-x),
			var(--info-logo-offset-y)
		);
	transform-origin: center;
}

/* 5つの安心ポイント */

#info .kmcs-points {
	position: relative;
	display: block !important;
	width: 100%;
	margin: 0;
	gap: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* 外側のWordPressカラムをラッパーとして使用 */

#info .kmcs-points > .wp-block-column {
	position: relative;
	min-width: 0;
	min-height: 0 !important;
	margin: 0;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* 安心ポイント見出し */

#info .kmcs-points__bridge-title {
	position: relative;
	max-width: 870px;
	margin: 0 0 clamp(55px, 7vw, 90px) !important;
	padding:
		0
		0
		28px
		clamp(90px, 10vw, 145px) !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--kmc-heading) !important;
	text-align: left !important;
	font-size: clamp(25px, 3.4vw, 48px) !important;
	font-weight: 700;
	line-height: 1.42;
	letter-spacing: 0.035em;
}

/* 見出し横の大きな5 */

#info .kmcs-points__bridge-title::before {
	position: absolute;
	top: 50%;
	left: 0;
	display: block !important;
	width: auto;
	height: auto;
	margin: 0;
	content: "5" !important;
	border: 0;
	background: transparent;
	color: transparent;
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(90px, 11vw, 145px);
	font-weight: 800;
	line-height: 0.8;
	letter-spacing: -0.08em;
	-webkit-text-stroke: 2px var(--kmc-red);
	transform: translateY(-56%);
}

/* 見出し下のライン */

#info .kmcs-points__bridge-title::after {
	position: absolute;
	right: auto;
	bottom: 0;
	left: clamp(90px, 10vw, 145px);
	display: block !important;
	width: min(280px, 38%);
	height: 2px;
	margin: 0;
	content: "" !important;
	border: 0;
	background:
		linear-gradient(
			90deg,
			var(--kmc-red),
			var(--kmc-blue),
			rgba(var(--kmc-blue-rgb), 0)
		);
}

/* 安心ポイント一覧 */

#info .kmcs-points__columns {
	position: relative;
	margin: 0;
}

/* カウンターを一覧の先頭でリセット */

#info .kmcs-points__columns > .swell-block-columns__inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	margin: 0;
	counter-reset: kmcs-info-point;
}

/* 安心ポイントカード */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column {
	position: relative;
	display: grid;
	grid-template-columns:
		clamp(68px, 8vw, 105px)
		minmax(210px, 0.8fr)
		minmax(0, 1.45fr);
	align-items: center;
	gap: clamp(20px, 3vw, 46px);
	width: calc(100% - 70px) !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding:
		clamp(25px, 3vw, 38px)
		clamp(33px, 4vw, 58px) !important;
	overflow: hidden;
	border: 1px solid var(--kmc-border);
	border-radius:
		0
		var(--kmc-radius-large)
		var(--kmc-radius-large)
		0 !important;
	background: var(--kmc-white) !important;
	box-shadow: var(--kmc-shadow-small);
	color: var(--kmc-text);
	counter-increment: kmcs-info-point;
	isolation: isolate;
	transition:
		color var(--kmc-transition),
		background-color var(--kmc-transition),
		box-shadow var(--kmc-transition),
		transform var(--kmc-transition);
}

/* 奇数カードは左寄せ */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column:nth-child(odd) {
	justify-self: start;
}

/* 偶数カードは右寄せ */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column:nth-child(even) {
	justify-self: end;
	border-radius:
		var(--kmc-radius-large)
		0
		0
		var(--kmc-radius-large) !important;
}

/* 自動採番 */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column::before {
	position: relative;
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;
	display: block;
	grid-column: 1;
	width: auto;
	height: auto;
	margin: 0;
	content: counter(kmcs-info-point, decimal-leading-zero);
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: rgba(var(--kmc-navy-rgb), 0.16);
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.06em;
}

/* カード側面のライン */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column::after {
	position: absolute;
	top: 0;
	right: auto;
	bottom: 0;
	left: 0;
	width: 6px;
	height: auto;
	content: "";
	border: 0;
	background:
		linear-gradient(
			180deg,
			var(--kmc-red),
			var(--kmc-blue)
		);
}

/* 偶数カードは右側にラインを配置 */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column:nth-child(even)::after {
	right: 0;
	left: auto;
}

/* カードタイトル */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column
	> .wp-block-paragraph:first-child {
	position: relative;
	z-index: 1;
	grid-column: 2;
	margin: 0 !important;
	color: var(--kmc-heading) !important;
	text-align: left !important;
	font-size: clamp(17px, 1.6vw, 22px);
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.02em;
}

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column
	> .wp-block-paragraph:first-child
	strong {
	font-weight: 700;
}

/* カード本文 */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column
	> .kmcs-points__txt {
	position: relative;
	z-index: 1;
	grid-column: 3;
	margin: 0 !important;
	color: var(--kmc-text) !important;
	line-height: 1.9;
	letter-spacing: 0.015em;
	isolation: isolate;
}

/* 背景の薄い自動番号 */

#info
	.kmcs-points__columns
	> .swell-block-columns__inner
	> .swell-block-column
	> .kmcs-points__txt::after {
	position: absolute;
	z-index: -1;
	top: 50%;
	right: -0.1em;
	content: counter(kmcs-info-point, decimal-leading-zero);
	color: rgba(var(--kmc-navy-rgb), 0.025);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 125px;
	font-weight: 800;
	line-height: 0.7;
	letter-spacing: -0.08em;
	transform: translateY(-50%);
	pointer-events: none;
}

/* PCホバー */

@media (hover: hover) {

	#info .kmcs-info__lead .wp-block-image:hover {
		box-shadow:
			0 42px 88px rgba(var(--kmc-navy-rgb), 0.34),
			inset 0 0 0 15px var(--kmc-light-blue);
		transform:
			translateY(-50%)
			rotate(0deg)
			scale(1.035);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:hover {
		z-index: 2;
		background: var(--kmc-navy) !important;
		box-shadow: var(--kmc-shadow-medium);
		transform: translateX(12px);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:nth-child(even):hover {
		transform: translateX(-12px);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:hover::before {
		color: rgba(255, 255, 255, 0.2);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:hover
		> .wp-block-paragraph:first-child,
	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:hover
		> .kmcs-points__txt {
		color: var(--kmc-white) !important;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:hover
		> .kmcs-points__txt::after {
		color: rgba(255, 255, 255, 0.035);
	}
}

/* タブレット */

@media screen and (max-width: 900px) {

	#info .kmcs-info__lead {
		grid-template-columns: 1fr;
		min-height: 0;
		overflow: hidden;
	}

	#info .kmcs-info__lead > .wp-block-column:first-child {
		padding:
			60px
			clamp(28px, 7vw, 58px)
			70px;
	}

	#info .kmcs-info__lead > .wp-block-column:last-child {
		min-height: 380px;
	}

	#info .kmcs-info__lead > .wp-block-column:last-child::before {
		right: 50%;
		transform:
			translate(50%, -50%);
	}

	#info .kmcs-info__lead .wp-block-image {
		top: 43%;
		right: 50%;
		width: 330px;
		transform:
			translate(50%, -50%)
			rotate(6deg);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column {
		grid-template-columns:
			75px
			minmax(180px, 0.8fr)
			minmax(0, 1.2fr);
		width: calc(100% - 35px) !important;
	}
}

@media (hover: hover) and (max-width: 900px) {

	#info .kmcs-info__lead .wp-block-image:hover {
		transform:
			translate(50%, -50%)
			rotate(0deg)
			scale(1.03);
	}
}

/* スマートフォン */

@media screen and (max-width: 767px) {

	#info::before {
		display: none;
	}

	#info .kmcs-info__lead {
		margin-bottom: 75px;
		border-radius: var(--kmc-radius-large);
	}

	#info .kmcs-info__lead > .wp-block-column:first-child {
		padding: 50px 25px 60px;
	}

	#info .kmcs-info__lead > .wp-block-column:first-child::before {
		margin-bottom: 24px;
		font-size: 10px;
	}

	#info
		.kmcs-info__lead
		> .wp-block-column:first-child
		> .wp-block-paragraph:first-of-type {
		font-size: clamp(23px, 7.5vw, 31px);
		line-height: 1.6;
	}

	#info .kmcs-info__lead > .wp-block-column:last-child {
		min-height: 310px;
	}

	#info .kmcs-info__lead .wp-block-image {
		width: 250px;
	}

	#info .kmcs-points__bridge-title {
		margin-bottom: 47px !important;
		padding: 82px 0 23px !important;
		text-align: center !important;
		font-size: clamp(24px, 7vw, 32px) !important;
	}

	#info .kmcs-points__bridge-title::before {
		top: 0;
		left: 50%;
		font-size: 78px;
		transform: translateX(-50%);
	}

	#info .kmcs-points__bridge-title::after {
		left: 50%;
		width: 100px;
		transform: translateX(-50%);
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column,
	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:nth-child(even) {
		grid-template-columns: 58px minmax(0, 1fr);
		gap: 12px 18px;
		width: 100% !important;
		padding: 27px 22px !important;
		border-radius: var(--kmc-radius-medium) !important;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column::before {
		grid-column: 1;
		grid-row: 1 / span 2;
		align-self: start;
		font-size: 38px;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column
		> .wp-block-paragraph:first-child {
		grid-column: 2;
		font-size: 17px;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column
		> .kmcs-points__txt {
		grid-column: 2;
		line-height: 1.85;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:nth-child(even)::after {
		right: auto;
		left: 0;
	}
}

/* 小型スマートフォン */

@media screen and (max-width: 420px) {

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column,
	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column:nth-child(even) {
		grid-template-columns: 1fr;
		padding: 25px 21px !important;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column::before {
		grid-column: 1;
		grid-row: auto;
		margin-bottom: 4px;
		font-size: 34px;
	}

	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column
		> .wp-block-paragraph:first-child,
	#info
		.kmcs-points__columns
		> .swell-block-columns__inner
		> .swell-block-column
		> .kmcs-points__txt {
		grid-column: 1;
	}
}

/* =====================================================
   Company
===================================================== */

/* #company {
	position: relative;
	background: var(--kmc-bg);
}
 */
#company .wp-block-table,
#company .swell-block-dl {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--kmc-line);
/* 	border-radius: var(--kmc-radius-medium); */
	box-shadow: var(--kmc-shadow-small);
}

#company table th,
#company table td {
	padding: 22px 25px;
}

#company table tr:last-child th,
#company table tr:last-child td {
	border-bottom: 0;
}

#company table th {
	width: 24%;
	background: var(--kmc-bg-blue);
	color: var(--kmc-navy);
	font-weight: 700;
	letter-spacing: 0.04em;
}


/* SWELL説明リスト */

#company .swell-block-dl__dt,
#company .swell-block-dl__dd {
	padding: 21px 25px;
	border-color: var(--kmc-line);
}

#company .swell-block-dl__dt {
	background: var(--kmc-bg-blue);
	color: var(--kmc-navy);
	font-weight: 700;
}

@media screen and (max-width: 599px) {

	#company table,
	#company tbody,
	#company tr,
	#company th,
	#company td {
		display: block;
		width: 100%;
	}
	#company table th {
		width:100%;
		padding: 14px 18px;
		border-bottom: 0;
	}
	#company table td {
		padding: 17px 18px 22px;
	}

	#company table tr {
		border-bottom: 1px solid var(--kmc-line);
	}

	#company table tr:last-child {
		border-bottom: 0;
	}
}
/* =====================================================
   Contact Form
===================================================== */

.smf-form {
	padding: clamp(24px, 4vw, 48px);
	border: 1px solid var(--kmc-line);
	border-radius: var(--kmc-radius-medium);
	background: #fff;
	box-shadow: var(--kmc-shadow-small);
}

.smf-item {
	padding-top: 23px;
	padding-bottom: 23px;
	border-bottom: 1px solid var(--kmc-line);
}

.smf-item:first-child {
	padding-top: 0;
}

.smf-item__label__text {
	color: var(--kmc-ink);
	font-weight: 700;
}

.smf-text-control__control,
.smf-textarea-control__control,
.smf-select-control__control {
	width: 100%;
	border: 1px solid #cad7e3 !important;
	border-radius: 10px !important;
	background: var(--kmc-bg) !important;
	box-shadow: none !important;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}

.smf-text-control__control:focus,
.smf-textarea-control__control:focus,
.smf-select-control__control:focus {
	border-color: var(--kmc-blue) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(47, 115, 200, 0.12) !important;
	outline: none;
}

.smf-action .smf-button-control__control {
	min-width: 240px;
	min-height: 58px;
	border: 1px solid var(--kmc-navy);
	border-radius: 999px;
	background: var(--kmc-navy);
	color: #fff;
	font-weight: 700;
	transition:
		color 0.3s ease,
		background-color 0.3s ease,
		transform 0.3s ease;
}

.smf-action .smf-button-control__control:hover {
	background: #fff;
	color: var(--kmc-navy);
	transform: translateY(-2px);
}

.wp-block-snow-monkey-forms-item.smf-item.smf-item--divider.contact-form-pp {
	text-align: center;
}

/* =====================================================
   Vietnamese
===================================================== */

/* 上部バー */

html[lang="vi"] .l-header__bar.pc_ {
	display: none;
}

/* 日本語・ベトナム語ブロックの切り替え */

.c-vi {
	display: none;
}

html[lang="vi"] .c-vi {
	display: block;
}

html[lang="vi"] .c-jp {
	display: none;
}

/* 5 point */

html[lang="vi"] .point-block .swell-block-column {
	min-height: 80px !important;
}

/* ベトナム語の長い見出し */

html[lang="vi"] #service .columns-service h3,
html[lang="vi"] .job-columns h3 {
	word-break: normal;
	overflow-wrap: anywhere;
}
/* =====================================================
   Scroll Animation
===================================================== */

@keyframes kmc-reveal-in {
	from {
		opacity: 0;
		translate: 0 var(--kmc-reveal-distance);
	}

	to {
		opacity: 1;
		translate: 0 0;
	}
}

.kmc-js .kmc-reveal {
	opacity: 0;
	translate: 0 var(--kmc-reveal-distance);
}

.kmc-js .kmc-reveal.is-visible {
	animation:
		kmc-reveal-in
		var(--kmc-reveal-duration)
		var(--kmc-reveal-ease)
		var(--kmc-delay, 0ms)
		both;
}

@media (prefers-reduced-motion: reduce) {

	.kmc-js .kmc-reveal,
	.kmc-js .kmc-reveal.is-visible {
		opacity: 1;
		translate: none;
		animation: none;
	}
}
