@charset "UTF-8";
/**
 * KAPUTELI - About page styles
 *
 * 配置先: /wp-content/themes/お使いのテーマ/assets/kpt-about.css
 *
 * functions.php からエンキュー(is_page('about') の条件分岐)
 */

/* ====== Google Fonts ====== */
@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600&family=Noto+Sans+JP:wght@300;400;500;600&display=swap');


/* ====== ルート変数 & 基本リセット (.kpt-about にスコープ) ====== */
.kpt-about {
	--bg: #ffffff;
	--bg-tint: #f4f3ef;
	--bg-tint-2: #ebeae6;
	--ink: #111111;
	--ink-soft: #1a1a1a;
	--ink-2: #555555;
	--ink-3: #8a8a8a;
	--rule: #1a1a1a;
	--rule-soft: #d8d6d2;
	--accent: #111111;

	--maxw: 1280px;
	--gutter: clamp(20px, 4vw, 48px);
	--section-y: clamp(80px, 12vw, 160px);

	--sans: "Schibsted Grotesk", "Helvetica Neue", "Arial", sans-serif;
	--jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--num: "Schibsted Grotesk", "Helvetica Neue", sans-serif;

	/* WordPressテーマのコンテンツ幅を打ち破ってフルワイドに */
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
	max-width: 100vw;

	background: var(--bg);
	color: var(--ink);
	font-family: var(--jp);
	font-weight: 400;
	font-size: 15px;
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.kpt-about *,
.kpt-about *::before,
.kpt-about *::after { box-sizing: border-box; }

.kpt-about a { color: inherit; text-decoration: none; }
.kpt-about img { max-width: 100%; display: block; }
.kpt-about p { margin: 0 0 1em; }

.kpt-about__jp { font-family: var(--jp); }


/* ====== Section / Wrap ====== */
.kpt-about__sec { padding-block: var(--section-y); }
.kpt-about__sec--tint { background: var(--bg-tint); }
.kpt-about__sec--tint-2 { background: var(--bg-tint-2); }

.kpt-about__wrap {
	max-width: var(--maxw);
	margin: 0 auto;
	padding-inline: var(--gutter);
}
.kpt-about__wrap--rel { position: relative; }


/* ====== Hero ====== */
.kpt-about__hero {
	position: relative;
	min-height: 100vh;
	background: var(--bg-tint);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(120px, 14vh, 180px) var(--gutter) clamp(40px, 6vh, 72px);
	isolation: isolate;
}
.kpt-about__hero-media {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-size: cover;
	background-position: center;
	filter: grayscale(85%) contrast(1.02);
}
.kpt-about__hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0.45) 60%, rgba(255,255,255,0.78) 100%);
}
.kpt-about__hero-inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 24px;
	max-width: var(--maxw);
	width: 100%;
	margin: 0 auto;
}
.kpt-about__hero-eyebrow {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--ink-2);
	margin-bottom: 16px;
}
.kpt-about__hero-title {
	font-family: var(--sans);
	font-weight: 500;
	font-size: clamp(40px, 7vw, 96px);
	line-height: 1.04;
	letter-spacing: -0.01em;
	margin: 0 0 8px;
	text-wrap: balance;
}
.kpt-about__hero-sub {
	font-family: var(--jp);
	font-size: 15px;
	color: var(--ink-2);
	max-width: 560px;
	margin-top: 28px;
}
.kpt-about__hero-meta {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--ink-2);
	text-transform: uppercase;
	text-align: right;
	line-height: 2.4;
}
.kpt-about__hero-counter {
	position: absolute;
	left: var(--gutter);
	bottom: 20px;
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.2em;
	color: var(--ink-2);
}


/* ====== Section header ====== */
.kpt-about__sec-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: clamp(48px, 8vw, 72px);
}
.kpt-about__sec-label {
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ink-2);
	display: flex;
	align-items: center;
	gap: 14px;
}
.kpt-about__sec-label::before {
	content: "";
	width: 36px;
	height: 1px;
	background: var(--ink);
}
.kpt-about__sec-title {
	font-family: var(--sans);
	font-weight: 500;
	font-size: clamp(40px, 6vw, 76px);
	line-height: 1.04;
	letter-spacing: -0.015em;
	margin: 0;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ink);
}
.kpt-about__sec-title.kpt-about__jp { font-family: var(--jp); }
.kpt-about__sec-title--metrics { font-size: clamp(32px, 4.4vw, 56px); }
.kpt-about__sec-lead {
	font-family: var(--jp);
	font-size: 15px;
	line-height: 1.95;
	color: var(--ink-2);
	max-width: 720px;
	margin-top: 32px;
}


/* ====== Mission section layout ====== */
.kpt-about__mission-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}
.kpt-about__mission-figure { margin: 0; }
.kpt-about__mission-placeholder {
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, #d8d3c8 0%, #f3efe6 60%, #ebe4d4 100%);
}
.kpt-about__mission-caption {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ink-2);
	margin-top: 14px;
}
.kpt-about__mission-text {
	font-family: var(--jp);
	font-size: 16px;
	line-height: 2;
}


/* ====== Vision section layout ====== */
.kpt-about__vision-layout {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 80px;
}
.kpt-about__vision-text {
	font-family: var(--jp);
	font-size: 16px;
	line-height: 2;
}
.kpt-about__vision-lead-en {
	font-family: var(--sans);
	color: var(--ink-2);
	font-style: italic;
	margin-top: 32px;
	font-size: 14px;
	line-height: 1.8;
}
.kpt-about__tags--vision { align-content: start; }


/* ====== Tags ====== */
.kpt-about__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 24px 0;
	list-style: none;
	padding: 0;
}
.kpt-about__tags li {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.06em;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid var(--ink);
	color: var(--ink);
	background: transparent;
	white-space: nowrap;
}
.kpt-about__tags li.is-on {
	background: var(--ink);
	color: #fff;
}


/* ====== Value grid (Culture) ====== */
.kpt-about__value-grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--rule-soft);
	border-block: 1px solid var(--ink);
}
.kpt-about__value-item {
	background: #fff;
	padding: 48px 28px;
}
.kpt-about__value-title {
	font-family: var(--sans);
	font-weight: 500;
	font-size: 24px;
	letter-spacing: -0.01em;
}
.kpt-about__value-jp {
	font-family: var(--jp);
	font-size: 13px;
	color: var(--ink-2);
	margin-top: 4px;
	letter-spacing: 0.18em;
}
.kpt-about__value-desc {
	font-family: var(--jp);
	font-size: 14px;
	line-height: 1.9;
	margin-top: 18px;
}


/* ====== Metrics ====== */
.kpt-about__metrics {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--rule-soft);
	border-bottom: 1px solid var(--rule-soft);
	background: #fff;
}
.kpt-about__metric {
	padding: 32px 28px;
	text-align: center;
	border-right: 1px solid var(--rule-soft);
}
.kpt-about__metric:last-child { border-right: 0; }
.kpt-about__metric-num {
	font-family: var(--num);
	font-weight: 400;
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--ink);
}
.kpt-about__metric-label {
	font-family: var(--sans);
	font-size: 10px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ink-2);
	margin-top: 14px;
}


/* ====== Company info(divベース構造でテーマCSS干渉を排除) ====== */
.kpt-about__company {
	border-top: 1px solid var(--rule-soft);
	margin: 0;
	font-size: 14px;
}
.kpt-about__company-row {
	display: grid;
	grid-template-columns: 200px 1fr;
	border-bottom: 1px solid var(--rule-soft);
	align-items: stretch;
}
.kpt-about__company-label {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--ink-2);
	padding: 24px 0;
	margin: 0;
	display: flex;
	align-items: center;
	border: 0;
	background: transparent;
}
/* 親テーマ側の擬似要素(縦線等)が乗るのを完全に排除 */
.kpt-about__company-label::before,
.kpt-about__company-label::after { content: none !important; display: none !important; }
.kpt-about__company-value {
	font-family: var(--jp);
	padding: 24px 0;
	margin: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	border: 0;
	background: transparent;
}
.kpt-about__company-value-en {
	color: var(--ink-2);
	margin-left: 16px;
	font-family: var(--sans);
	letter-spacing: 0.05em;
}


/* ====== CTA ====== */
.kpt-about__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--ink);
	padding: 14px 0;
	position: relative;
}
.kpt-about__cta .kpt-about__arrow {
	display: inline-block;
	transition: transform 280ms ease;
}
.kpt-about__cta:hover .kpt-about__arrow { transform: translateX(6px); }
.kpt-about__cta--solid {
	background: var(--ink);
	color: #fff;
	padding: 18px 28px;
}
.kpt-about__cta--solid:hover { background: #000; }
.kpt-about__cta--ghost {
	border: 1px solid var(--ink);
	padding: 18px 28px;
}
.kpt-about__cta--ghost:hover { background: var(--ink); color: #fff; }


/* ====== Closing ====== */
.kpt-about__closing {
	background: var(--bg);
	padding: clamp(80px, 12vw, 140px) var(--gutter);
	text-align: center;
	border-top: 1px solid var(--rule-soft);
}
.kpt-about__closing-eyebrow {
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.42em;
	color: var(--ink-2);
	text-transform: uppercase;
	margin-bottom: 28px;
}
.kpt-about__closing-title {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(36px, 5.4vw, 64px);
	letter-spacing: -0.01em;
	margin: 0 0 28px;
	padding-bottom: 36px;
	border-bottom: 1px solid var(--ink);
	display: inline-block;
}
.kpt-about__closing-lead {
	font-family: var(--jp);
	color: var(--ink-2);
	max-width: 520px;
	margin: 0 auto 48px;
}
.kpt-about__closing-cta {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}


/* ====== Big background numerals ====== */
.kpt-about__bignum {
	position: absolute;
	font-family: var(--sans);
	font-weight: 400;
	color: rgba(17, 17, 17, 0.06);
	font-size: clamp(160px, 26vw, 320px);
	line-height: 1;
	letter-spacing: -0.04em;
	pointer-events: none;
	user-select: none;
	z-index: 0;
}
.kpt-about__bignum--tr { top: -40px; right: -20px; }
.kpt-about__bignum--tl { top: -50px; left: -10px; }


/* ====== Reveal motion (JSなしでも常に表示) ====== */
.kpt-about__reveal {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: no-preference) {
	.kpt-about__reveal {
		animation: kptAboutFadeIn 900ms cubic-bezier(.2, .6, .2, 1) both;
	}
}
@keyframes kptAboutFadeIn {
	from { opacity: 0; transform: translateY(28px); }
	to   { opacity: 1; transform: none; }
}


/* ====== レスポンシブ ====== */
@media (max-width: 880px) {
	.kpt-about__mission-layout,
	.kpt-about__vision-layout {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.kpt-about__value-grid {
		grid-template-columns: 1fr 1fr;
	}
	.kpt-about__company-row {
		grid-template-columns: 120px 1fr;
	}
}
@media (max-width: 720px) {
	.kpt-about__hero-inner { grid-template-columns: 1fr; }
	.kpt-about__hero-meta { text-align: left; }
	.kpt-about__metrics { grid-template-columns: 1fr; }
	.kpt-about__metric { border-right: 0; border-bottom: 1px solid var(--rule-soft); }
	.kpt-about__metric:last-child { border-bottom: 0; }
}
@media (max-width: 540px) {
	.kpt-about__value-grid {
		grid-template-columns: 1fr;
	}
	.kpt-about__company-row {
		grid-template-columns: 1fr;
	}
	.kpt-about__company-label {
		padding: 20px 0 4px;
	}
	.kpt-about__company-value {
		padding: 0 0 20px;
	}
}
