/* =========================
   企業情報ページ用
========================= */

.company-page {
	position: relative;
	overflow: visible;
}

.company-page h3::after {
	display: none !important;
	content: none !important;
}

.company-page__inner {
	max-width: 1100px;
	margin: 0 auto;
}

.company-value,
.company-about,
.company-access,
.company-character {
	margin-bottom: 120px;
}

.company-section-title {
	margin: 0 0 8px;
	color: var(--color-primary);
	font-size: var(--font-size-heading-md);
	font-weight: 700;
	border: none !important;
}

.company-section-subtitle {
	margin: 0 0 48px;
	font-size: var(--font-size-meta);
	font-weight: 700;
}

.company-value {
	text-align: center;
}

.company-value__lead {
	margin: 0 auto 56px;
	font-size: var(--font-size-body);
	letter-spacing: 0.08em;
}

.company-value__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
	align-items: start;
}

/* ========================================
   Value：重なり順の固定
======================================== */
/* 各カード内だけで重なり順を完結させる */
.company-value__item {
	position: relative;
	isolation: isolate;
}
/*
 * 1：タイトル・説明文
 * 最前面
 */
.company-value__item-title,
.company-value__item-text {
	position: relative;
	z-index: 3;
}
/*
 * 2：人物イラスト画像
 */
.company-value__image {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	height: clamp(180px, 22vw, 260px);
}
/* 添付画像本体を背景SVGより上へ */
.company-value__image > img {
	position: relative;
	z-index: 2;

	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
/*
 * 3：背景SVG
 * 最背面
 */
.company-value__image_bg {
	position: absolute;
	inset: 0;
	z-index: 1;

	display: flex;
	align-items: center;
	justify-content: center;

	pointer-events: none;
}

.company-value__image_bg svg {
	position: relative;
	z-index: 1;

	width: 100%;
	height: auto;
	opacity: 0.1;
}

.company-value__image {
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	height:clamp(180px,22vw,260px);
}
.company-value__image img {
	display:block;
	width:auto;
	height:auto;
	max-width:100%;
	max-height:100%;
	object-fit:contain;
}
.company-value__image_bg {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}
.company-value__image_bg svg{
	width:85%;
	height:auto;
}
/* 背景SVGの色変更 */
.company-value__item:nth-child(1) .company-value__image_bg svg * {
	fill: #F8B737 !important;
}

.company-value__item:nth-child(2) .company-value__image_bg svg * {
	fill: #89CB88 !important;
}

.company-value__item:nth-child(3) .company-value__image_bg svg * {
	fill: #89DADB !important;
}
.company-value__image_bg svg {
	width: 100%;
	height: auto;
	opacity: 0.1;
}

.company-value__item-title {
	margin: 16px 0 0;
	padding-bottom: 0 !important;
	color: var(--color-text);
	font-size: var(--font-size-heading-md);
	font-weight: 700;
	border: none !important;
}
/* 頭文字のみ色変更 */
.company-value__item:nth-child(1) .company-value__item-title::first-letter{
    color:#F8B737;
}

.company-value__item:nth-child(2) .company-value__item-title::first-letter{
    color:#89CB88;
}

.company-value__item:nth-child(3) .company-value__item-title::first-letter{
    color:#89DADB;
}

.company-value__item-text {
	font-size: var(--font-size-body);
	font-weight: 700;
	line-height: 1.5;
}

.company-about__layout {
	display: grid;
	grid-template-columns: 1fr 310px;
	gap: 30px;
	align-items: start;
}

.company-about__table {
	width: 100%;
	border-collapse: collapse;
}
.company-about__table tbody {
	border-color: transparent;
}
.company-about__table th,
.company-about__table td {
	padding: 18px 0;
	border-bottom: 1px solid #ddd;
	border-top: 1px solid #ddd;
	font-size: var(--font-size-body-small);
	text-align: left;
	vertical-align: middle;
	line-height: 1.35;
}

.company-about__table th {
	width: 20%;
	min-width: 100px;
	color: #123b67;
	font-weight: 700;
}

.company-about__images {
	display: grid;
	gap: 24px;
}

.company-about__images img {
	width: 100%;
	height: auto;
	display: block;
}

.company-access__layout {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 32px;
	align-items: start;
}

.company-access__map {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 15px;
}

.company-access__map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.company-access__block {
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--color-primary);
}
.company-access__block:nth-child(2) {
	border-bottom: transparent;
}
.company-access__block h3 {
	margin: 0 0 8px;
	color: var(--color-primary);
	font-size: var(--font-size-body-small);
	font-weight: 700;
	border: none !important;
}

.company-access__block p {
	margin: 0;
	line-height: 1.8;
}

.company-character__box {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 48px;
	align-items: center;
	padding: 48px 72px;
	background: #f7faee;
	border-radius: 10px;
}

.company-character__text h2 {
	margin: 0 0 8px;
	color: var(--color-primary);
	font-size: var(--font-size-heading-md);
	border: none !important;
}

.company-character__subtitle {
	margin: 0 0 24px;
	font-size: var(--font-size-meta);
	font-weight: 700;
}

.company-character__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	width: 290px;
	height: 44px;
	background: #004b8d;
	color: #fff !important;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;

	position: relative;
	padding: 0 46px 0 28px;
}

.company-character__button-icon {
	position: absolute;
	top: 50%;
	right: 10px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	transform: translateY(-50%);
}
.company-character__button-icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 5px;
	width: 15px;
	height: 3px;
	border-radius: 2px;
	background: #004b8d;
	transform: translateY(-50%);
}
.company-character__button-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 6px;
	width: 10px;
	height: 10px;
	border-top: 3px solid #004b8d;
	border-right: 3px solid #004b8d;
	border-radius: 2px;
	transform: translateY(-50%) rotate(45deg);
}

.company-character__image {
	margin-top: -75px;
}

.company-character__image img {
	width: 100%;
	height: auto;
	display: block;
}
@media (max-width: 991px) {
	.company-about__layout {
		grid-template-columns: 1fr;
	}
	.company-about__images {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
	.lower-company-deco-05 {
		--deco-y: 24% !important;
	}
	.lower-company-deco-06 {
		--deco-y: 63% !important;
	}
	.lower-company-deco-07 {
		--deco-y: 83% !important;
	}
	.lower-company-deco-08 {
		--deco-y: 84% !important;
	}
	.lower-company-deco-09 {
		--deco-y: 85% !important;
	}
	.company-character__box {
		grid-template-columns: 1fr 320px;
		gap: 25px;
	}
}
@media (min-width: 767px) {
	.company-value__lead {
		line-height: 1;
	}
}
@media (max-width: 767px) {
	/* 装飾パーツの見切れ防止 */
	.company-page {
		overflow: visible;
		max-width:1100px;
		margin:auto;
	}
	body.page-id-92 .entry-body,
	body.page-id-92 .entry-content {
		overflow-x: visible !important;
	}
	body.page-id-92 .site-body {
		overflow-x: clip !important;
		overflow-y: visible !important;
	}
	.lower-page-deco-wrap {
		width: 100vw;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		overflow: visible;
	}

	.company-value,
	.company-about,
	.company-access,
	.company-character {
		margin-bottom: 72px;
	}

	/* テーブル内高さ調整 */
	/* 社名（2行） */
	.company-about__table tr:nth-child(1) th,
	.company-about__table tr:nth-child(1) td{
		padding-top:10.5px;
		padding-bottom:10.5px;
	}

	/* 所在地（3行） */
	.company-about__table tr:nth-child(7) th,
	.company-about__table tr:nth-child(7) td{
		padding-top:2px;
		padding-bottom:2px;
	}

	.company-value__list,
	.company-access__layout,
	.company-character__box {
		grid-template-columns: 1fr;
	}

	.company-value__list {
		gap: 40px;
	}

	.company-value__image {
		height: clamp(160px, 45vw, 220px);
	}
	.company-value__image_bg {
		bottom: -10%;
		width: 330px;
    	margin: 0 auto;
	}

	/* SPではヘッダー右上2パーツ以外を非表示 */
	.company-page .top-deco:not(.lower-company-deco-01):not(.lower-company-deco-02) {
		display: none;
	}

	/* 装飾と余白の調整用 */
	.company-page {
		overflow: visible;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0 20px;
		box-sizing: border-box;
	}
	.company-page__inner {
		width: 100%;
		max-width: 1100px;
		margin: 0 auto;
	}
	.lower-page-deco-wrap {
		width: 100vw;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		overflow: visible;
	}

	/* ========================================
	公式キャラクター：SP表示
	======================================== */
	.company-character .company-page__inner {
		max-width: 420px;
		margin-right: auto;
		margin-left: auto;
	}

	.company-character__box {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"title"
			"subtitle"
			"description"
			"image"
			"button";
		gap: 0;

		width: 100%;
		padding: 22px 20px 18px;
		margin: 0 auto;

		background: #f7faee;
		border-radius: 12px;
		box-sizing: border-box;
		overflow: hidden;
	}

	/*
	* .company-character__textの箱だけをレイアウト上から外し、
	* 内部の各要素をcompany-character__boxの
	* 直接のグリッドアイテムとして扱う
	*/
	.company-character__text {
		display: contents;
	}

	/* 英字タイトル */
	.company-character__text h2 {
		grid-area: title;

		margin: 0 0 6px;
		padding: 0;

		color: var(--color-primary);
		/* font-size: clamp(1.8rem, 8vw, 2.5rem); */
		font-weight: 700;
		line-height: 1.05;
		text-align: left;

		border: none !important;
	}

	/* 日本語サブタイトル */
	.company-character__subtitle {
		grid-area: subtitle;

		margin: 0 0 14px;

		color: var(--color-text);
		font-size: 1rem;
		font-weight: 700;
		line-height: 1.5;
		text-align: left;
	}

	/* 説明文 */
	.company-character__text > p:not(.company-character__subtitle) {
		grid-area: description;

		margin: 0 0 8px;

		color: var(--color-text);
		font-size: 0.78rem;
		font-weight: 500;
		line-height: 1.65;
		text-align: left;
	}

	/* キャラクター画像 */
	.company-character__image {
		grid-area: image;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 100%;
		max-width: 210px;
		margin: 0 auto 14px;
	}

	/* PC側のmargin-top:-75pxを解除 */
	.company-character__image {
		margin-top: 0;
	}

	.company-character__image img {
		display: block;
		width: 100%;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
		object-fit: contain;
	}

	/* VIEW MOREボタン */
	.company-character__button {
		grid-area: button;

		display: inline-flex;
		align-items: center;
		justify-content: center;

		width: calc(100% - 8px);
		max-width: 290px;
		height: 42px;
		margin: 0 auto;
		padding: 0 46px 0 28px;

		font-size: 0.78rem;
		box-sizing: border-box;
	}
}

@media (max-width: 500px) {
	.company-value__image_bg {
		max-width: 85%;
	}
}