.p-about {
	padding-top: var(--page-top-pad);
}

.p-about__title {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.p-about > .c-cta {
	margin-top: var(--section-pad);
}

/* メニューから #slug で開いたとき、sticky ヘッダー（80px）の下に隠れないようにする */
.p-about__section {
	scroll-margin-top: 104px;
}

.p-about__section {
	margin-top: var(--section-pad);
}

.p-about__greeting {
	margin-top: 0;
}

.p-about__greeting .c-anchor-nav {
	margin-bottom: 80px;
}

/* 代表挨拶 */
.p-about__greeting-lead {
	margin: var(--content-gap) 0 32px;
	font-size: var(--fs-md);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__greeting-body {
	margin-top: 0;
	font-size: var(--fs-base);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__greeting-body p {
	margin: 0 0 1.5em;
}

.p-about__greeting-body p:last-child {
	margin-bottom: 0;
}

.p-about__greeting-signature {
	margin-top: 32px;
	text-align: right;
	font-size: var(--fs-base);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__greeting-signature-company,
.p-about__greeting-signature-name {
	margin: 0;
}

.p-about__greeting-signature-title {
	margin-right: 16px;
}

/* 企業理念 */
.p-about__philosophy-intro {
	margin-top: var(--content-gap);
	font-size: var(--fs-base);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__philosophy-intro p {
	margin: 0 0 1em;
}

.p-about__philosophy-intro p:last-child {
	margin-bottom: 0;
}

.p-about__philosophy-sub {
	margin-top: 32px;
}

.p-about__subheading {
	margin: 0;
	padding: 16px 24px;
	background: var(--color-primary-bg);
	border-left: 1px solid var(--color-primary);
	font-size: var(--fs-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	line-height: var(--line-height-heading);
}

.p-about__philosophy-sub-body {
	margin-top: 24px;
	font-size: var(--fs-base);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__philosophy-sub-body p {
	margin: 0 0 1em;
}

.p-about__philosophy-sub-body p:last-child {
	margin-bottom: 0;
}

.p-about__philosophy-logo-block {
	margin-top: 24px;
	display: grid;
	grid-template-columns: 220px 1fr;
	align-items: center;
	gap: 40px;
}

.p-about__philosophy-logo-block > * {
	min-width: 0;
}

.p-about__philosophy-logo-block .p-about__philosophy-sub-body {
	margin-top: 0;
}

.p-about__philosophy-logo {
	margin: 0;
}

.p-about__philosophy-logo img {
	display: block;
	width: 100%;
	height: auto;
}

/* 会社概要テーブル */
.p-about__info-table {
	width: 100%;
	border-collapse: collapse;
}

.p-about__info-table th,
.p-about__info-table td {
	padding: 24px 32px;
	font-size: var(--fs-base);
	line-height: var(--line-height-body);
	vertical-align: top;
	text-align: left;
	border-bottom: 1px solid var(--color-border);
}

.p-about__info-table th {
	width: 180px;
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
	background: var(--color-bg-muted);
}

.p-about__info-table td p {
	margin: 0 0 0.5em;
}

.p-about__info-table td p:last-child {
	margin-bottom: 0;
}

/* 沿革タイムライン */
.p-about__timeline {
	list-style: none;
	margin: var(--content-gap) 0 0;
	padding: 0;
}

.p-about__timeline-item {
	position: relative;
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 32px;
	padding: 32px 0 0 32px;
	align-items: start;
}

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

/* 縦線（各アイテム内に描画。最初は下半分だけ、最後は上半分だけ） */
.p-about__timeline-item::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 6px;
	width: 2px;
	background: var(--color-primary);
	z-index: 0;
}

.p-about__timeline-item:first-child::after {
	top: 0.85em;
}

.p-about__timeline-item:last-child::after {
	top: 0;
	bottom: auto;
	height: calc(32px + 0.85em);
}

.p-about__timeline-item:only-child::after {
	display: none;
}

/* ドット（日付テキストと縦位置を揃えるため date セルに置く） */
.p-about__timeline-date {
	position: relative;
}

.p-about__timeline-date::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -29px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-primary);
	transform: translateY(-50%);
	z-index: 1;
}

.p-about__timeline-date {
	font-size: var(--fs-base);
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
}

.p-about__timeline-desc {
	position: relative;
	padding: 0 32px 32px 32px;
	font-size: var(--fs-base);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

.p-about__timeline-desc::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--color-border);
}

.p-about__timeline-item:last-child .p-about__timeline-desc {
	padding-bottom: 0;
}

.p-about__timeline-item:last-child .p-about__timeline-desc::after {
	display: none;
}

.p-about__timeline-desc p {
	margin: 0 0 0.5em;
}

.p-about__timeline-desc p:last-child {
	margin-bottom: 0;
}

/* アクセス */
.p-about__map {
	margin-top: var(--content-gap);
	line-height: 0;
}

.p-about__map iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
}

.p-about__address {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 16px 0 0;
	font-size: var(--fs-base);
	color: var(--color-text);
}

.p-about__address-icon {
	flex-shrink: 0;
	color: var(--color-primary);
}

/* タブレット */
@media (max-width: 767px) {
	.p-about__philosophy-logo-block {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.p-about__philosophy-logo {
		max-width: 220px;
	}

	.p-about__info-table th,
	.p-about__info-table td {
		padding: 16px 12px;
	}

	.p-about__info-table th {
		width: 100px;
	}

	.p-about__timeline-item {
		grid-template-columns: 100px 1fr;
		gap: 8px;
		padding: 20px 0 20px 32px;
	}

	.p-about__timeline-item:last-child::after {
		height: calc(20px + 0.85em);
	}

	.p-about__timeline-desc {
		padding: 0 16px 32px 16px;
	}
}

/* モバイル */
@media (max-width: 539px) {
	.p-about__greeting-signature {
		text-align: left;
	}

	.p-about__timeline-item {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 16px 0 16px 32px;
	}

	.p-about__timeline-item:last-child::after {
		height: calc(16px + 0.85em);
	}

	.p-about__subheading {
		padding: 12px 16px;
		font-size: var(--fs-base);
	}
}
