/* =============================================================================
   Takashima Concrete — theme styles
   基準幅: PC 1366 / SP 375。root font-size を可変にし、全寸法を rem (1rem = 10px @1366 / @375) で指定。
   数値は XD (260905) の値を 1/10 した rem。
   ========================================================================== */

:root {
	--c-text: #212121;
	--c-bg: #e5e9e9;
	--c-teal: #017d7e;
	--c-green: #5ca865;
	--c-yellow: #ffc73a;
	--c-line: #cecece;
	--c-label: #cecece;
	--c-dot: #cfd0d0;
	--c-white: #ffffff;
	--font-jp: "ryo-gothic-plusn", "Ryo Gothic PlusN", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--font-en: "din-2014", "DIN 2014", "Roboto", "Helvetica Neue", Arial, sans-serif;
	--ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---- rem scale ---- */
html {
	font-size: calc(100vw / 136.6); /* 10px @1366, 等比スケール */
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}
@media (max-width: 767px) {
	html { font-size: calc(100vw / 37.5); } /* 10px @375 */
}

/* ---- reset ---- */
*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, p, ul, li, figure { margin: 0; padding: 0; }
ul { list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3 { font-size: inherit; font-weight: inherit; }

body {
	color: var(--c-text);
	font-family: var(--font-jp);
	font-size: 1.6rem;
	line-height: 2.5;
	font-feature-settings: "palt" 0;
	background: var(--c-bg) url("../img/noise.webp") repeat 0 0 fixed; /* 全ページノイズ背景固定 */
	background-size: 136.6rem 19.2rem;
	overflow-x: hidden;
}
@media (max-width: 767px) {
	body { background-attachment: scroll; background-size: 136.6rem 19.2rem; }
}

.visually-hidden {
	position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.anchor-top { display: block; height: 0; }

.site-main { position: relative; }

/* ---- common: button ---- */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 19rem; height: 5rem;
	background: var(--c-teal); color: var(--c-white);
	font-size: 1.6rem; font-weight: 700; line-height: 1;
	transition: opacity .3s var(--ease);
}
.btn:hover { opacity: .8; }
.btn--white { background: var(--c-white); color: var(--c-teal); }

/* ---- common: section label (● BUSINESS) ---- */
.section-label {
	display: flex; align-items: center; gap: 1rem;
	font-family: var(--font-en); font-weight: 700; font-size: 2rem; line-height: 2.5rem; letter-spacing: .2em;
	color: var(--c-label); opacity: .9;
}
.section-label__dot { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--c-dot); flex: none; }
.section-label__text { display: block; }
.section-label--vertical {
	flex-direction: column; align-items: flex-start; gap: 1rem;
}
.section-label--vertical .section-label__text {
	writing-mode: vertical-rl; text-orientation: sideways; white-space: nowrap;
}

/* =============================================================================
   Opening
   ========================================================================== */
.opening {
	position: fixed; inset: 0; z-index: 1000;
	display: none;
}
.opening.is-active { display: block; }
.opening__panel {
	position: absolute; inset: 0; background: var(--c-teal);
	display: flex; align-items: center; justify-content: center;
	transform: translateX(0);
}
.opening__logo { width: 76.6rem; height: 10.9rem; opacity: 1; }
.opening.is-logo-out .opening__logo { opacity: 0; transition: opacity .3s ease-out; }
.opening.is-wipe .opening__panel { transform: translateX(100%); transition: transform .3s linear; }
.opening.is-done { display: none; }

/* =============================================================================
   Header
   ========================================================================== */
.site-header {
	position: relative; z-index: 20;
	height: 8.6rem;
}
.site-header--overlay { position: absolute; top: 0; left: 0; right: 0; }
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	height: 100%; padding: 0 3rem;
}
.site-header__logo { width: 39rem; flex: none; }
.site-header__logo a { display: block; position: relative; }
.site-header__logo-img { width: 39rem; height: 5.5rem; object-fit: contain; }
.site-header__logo-img--dark { display: none; }
.site-header:not(.site-header--overlay) .site-header__logo-img--white { display: none; }
.site-header:not(.site-header--overlay) .site-header__logo-img--dark { display: block; }

.site-header__toggle { display: none; }
.sp-drawer { display: none; } /* PCでは非表示。SP(≤767px)でドロワーとして表示 */

.global-nav { display: flex; align-items: center; }
.global-nav__list { display: flex; align-items: center; gap: 3.36rem; }
.global-nav__link {
	display: block;
	font-size: 1.6rem; font-weight: 700; line-height: 2.5rem; letter-spacing: .1em;
	color: var(--c-white); white-space: nowrap;
	transition: opacity .3s var(--ease);
}
.site-header:not(.site-header--overlay) .global-nav__link { color: var(--c-text); }
.global-nav__link:hover { opacity: .7; }
.global-nav__contact { margin-left: 3.5rem; }
/* 下層(非overlay)ヘッダーのお問い合わせは XD 長方形20225 #017d7e + 白文字。白地/緑文字は TOP(overlay) のみ */
.site-header:not(.site-header--overlay) .global-nav__contact { background: var(--c-teal); color: var(--c-white); }

/* =============================================================================
   KV
   ========================================================================== */
.kv {
	position: relative; height: 76.8rem; overflow: hidden;
}
/* KV グラデノイズ(動くグラデーション)
   XD「画像 1」(ぼかしグラデ画像, multiply / opacity .62) を、画像から採色した5つの
   radial-gradient に置き換え、@property で登録した座標を keyframes で漂わせる。
   粒子は body の XD ノイズタイル(multiply で透過)がそのまま乗る。 */
@property --kv-x0 { syntax: "<percentage>"; inherits: false; initial-value: 45%; }
@property --kv-y0 { syntax: "<percentage>"; inherits: false; initial-value: 10%; }
@property --kv-x1 { syntax: "<percentage>"; inherits: false; initial-value: 86%; }
@property --kv-y1 { syntax: "<percentage>"; inherits: false; initial-value: 18%; }
@property --kv-x2 { syntax: "<percentage>"; inherits: false; initial-value: 4%; }
@property --kv-y2 { syntax: "<percentage>"; inherits: false; initial-value: 72%; }
@property --kv-x3 { syntax: "<percentage>"; inherits: false; initial-value: 22%; }
@property --kv-y3 { syntax: "<percentage>"; inherits: false; initial-value: 96%; }
@property --kv-x4 { syntax: "<percentage>"; inherits: false; initial-value: 92%; }
@property --kv-y4 { syntax: "<percentage>"; inherits: false; initial-value: 92%; }
@property --kv-r0 { syntax: "<percentage>"; inherits: false; initial-value: 55%; }
@property --kv-r1 { syntax: "<percentage>"; inherits: false; initial-value: 55%; }
@property --kv-r2 { syntax: "<percentage>"; inherits: false; initial-value: 50%; }
.kv__bg {
	position: absolute; left: 0; top: -19.1rem; width: 136.6rem; height: 95.9rem;
	opacity: .62;
	mix-blend-mode: multiply; /* XD「画像 1」: blendMode multiply / opacity .62 でbodyのノイズタイルに乗算 */
	will-change: transform;
	--kv-x0: 45%; --kv-y0: 10%; --kv-x1: 88%; --kv-y1: 16%; --kv-x2: 3%; --kv-y2: 74%;
	--kv-x3: 20%; --kv-y3: 98%; --kv-x4: 92%; --kv-y4: 92%;
	--kv-r0: 50%; --kv-r1: 50%; --kv-r2: 50%;
	background-color: #6aaa8e;
	/* 色はすべてXDのぼかしグラデ画像(kv-bg)からの採色。ブロブは芯(8%前後)を持たせて動きが見えるようにする */
	background-image:
		radial-gradient(circle at var(--kv-x0) var(--kv-y0), #61bb7a 12%, transparent var(--kv-r0)),
		radial-gradient(circle at var(--kv-x1) var(--kv-y1), #32b07f 10%, transparent var(--kv-r1)),
		radial-gradient(circle at var(--kv-x2) var(--kv-y2), #8ca7b5 14%, transparent var(--kv-r2)),
		radial-gradient(circle at var(--kv-x3) var(--kv-y3), #74a3ba 8%, transparent 45%),
		radial-gradient(circle at var(--kv-x4) var(--kv-y4), #4e9274 8%, transparent 48%);
	animation: kv-grad 12s linear infinite alternate;
}
@keyframes kv-grad {
	0% {
		--kv-x0: 45%; --kv-y0: 10%; --kv-x1: 88%; --kv-y1: 16%; --kv-x2: 3%; --kv-y2: 74%;
		--kv-x3: 20%; --kv-y3: 98%; --kv-x4: 92%; --kv-y4: 92%;
		--kv-r0: 50%; --kv-r1: 50%; --kv-r2: 50%;
	}
	35% {
		--kv-x0: 70%; --kv-y0: 40%; --kv-x1: 55%; --kv-y1: 70%; --kv-x2: 35%; --kv-y2: 30%;
		--kv-x3: 60%; --kv-y3: 80%; --kv-x4: 20%; --kv-y4: 50%;
		--kv-r0: 55%; --kv-r1: 42%; --kv-r2: 48%;
	}
	70% {
		--kv-x0: 25%; --kv-y0: 65%; --kv-x1: 30%; --kv-y1: 20%; --kv-x2: 80%; --kv-y2: 60%;
		--kv-x3: 90%; --kv-y3: 30%; --kv-x4: 55%; --kv-y4: 95%;
		--kv-r0: 45%; --kv-r1: 52%; --kv-r2: 55%;
	}
	100% {
		--kv-x0: 85%; --kv-y0: 85%; --kv-x1: 10%; --kv-y1: 90%; --kv-x2: 60%; --kv-y2: 10%;
		--kv-x3: 40%; --kv-y3: 50%; --kv-x4: 80%; --kv-y4: 25%;
		--kv-r0: 50%; --kv-r1: 46%; --kv-r2: 50%;
	}
}
.no-fx .kv__bg { animation: none; }
@media (prefers-reduced-motion: reduce) { .kv__bg { animation: none; } }
.kv__emblem {
	position: absolute; left: 38.287rem; top: 7.384rem; width: 59.917rem; height: 61.607rem;
	will-change: transform;
}
.kv__emblem img { width: 100%; height: 100%; }
.kv__catch {
	position: absolute; left: 18.275rem; top: 21.009rem; width: 100.043rem; height: 40.335rem;
	will-change: transform;
}
.kv__catch picture { display: block; width: 100%; height: 100%; }
.kv__catch img { width: 100%; height: 100%; }
.kv__copyright {
	position: absolute; left: 5.4rem; top: 28.5rem;
	writing-mode: vertical-rl; text-orientation: sideways; white-space: nowrap;
	font-family: var(--font-en); font-weight: 700; font-size: 1.2rem; line-height: 1.2rem; letter-spacing: .1em;
	color: #cccccc;
}
.kv__seal {
	position: absolute; left: 116.557rem; top: 58.296rem; width: 15.043rem; height: 15rem;
}
.kv__seal img { width: 100%; height: 100%; animation: kv-seal-spin 24s linear infinite; transform-origin: 50% 50%; }
@keyframes kv-seal-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .kv__seal img { animation: none; } }

/* KV news box */
.kv-news {
	position: absolute; left: 5rem; top: 63.3rem; width: 39.2rem; height: 10rem;
	background: rgba(255, 255, 255, .5); border: 1px solid var(--c-white); /* XD: 白半透明ガラス */
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	display: flex;
}
.kv-news__brand {
	flex: none; width: 13.7rem; height: 10rem; margin: -1px 0 -1px -1px;
	background: linear-gradient(49deg, #6f8581 0%, #3b8f8b 47.7%, #99b9b1 100%);
	position: relative;
}
.kv-news__brand img { position: absolute; left: 1.1rem; top: 4.2rem; width: 11.6rem; height: 1.6rem; }
.kv-news__body { position: relative; flex: 1; height: 100%; }
.kv-news__item {
	position: absolute; left: 1.5rem; top: 1.5rem; width: 19rem;
	opacity: 0; visibility: hidden; transition: opacity .4s var(--ease), visibility .4s;
}
.kv-news__item.is-active { opacity: 1; visibility: visible; }
.kv-news__meta { display: flex; align-items: center; height: 2rem; }
.kv-news__date {
	display: block; width: 6.2rem;
	font-family: var(--font-en); font-weight: 700; font-size: 1.4rem; line-height: 2.5rem; color: var(--c-white);
}
.kv-news__tag {
	display: flex; align-items: center; justify-content: center;
	width: 6.8rem; height: 2rem; background: var(--c-yellow);
	font-size: 1.2rem; font-weight: 700; line-height: 2.5rem; color: var(--c-text);
}
.kv-news__title {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
	margin-top: .46rem; width: 19rem;
	font-size: 1.4rem; font-weight: 700; line-height: 2.5rem; color: var(--c-text);
}
.kv-news__nav { position: absolute; right: 2.471rem; top: 2.968rem; width: 1.234rem; }
.kv-news__arrow { display: block; width: 1.234rem; height: .763rem; }
.kv-news__arrow svg { width: 100%; height: 100%; }
.kv-news__arrow--prev { transform: rotate(180deg); }
.kv-news__arrow--next { margin-top: 2.037rem; }

/* =============================================================================
   ABOUT
   ========================================================================== */
.about {
	position: relative;
	padding: 43.896rem 0 10rem 12rem;
}
.about::after {
	content: ""; position: absolute; left: 5rem; right: 5rem; bottom: 0; height: 1px; background: var(--c-line);
}
.about__glow { position: absolute; border-radius: 50%; pointer-events: none; }
.about__glow--teal {
	left: 10.1rem; top: 23.2rem; width: 63rem; height: 63rem;
	background: radial-gradient(closest-side, rgba(1, 125, 126, .2) 0%, rgba(1, 125, 126, 0) 100%);
}
.about__glow--yellow {
	left: 67.4rem; top: 3.1rem; width: 59.1rem; height: 59.1rem;
	background: radial-gradient(closest-side, rgba(255, 199, 58, .2) 0%, rgba(255, 199, 58, 0) 100%);
}
.about__rope {
	position: absolute; left: 0; top: 16.113rem; width: 100%; height: 51.569rem; overflow: hidden; pointer-events: none;
}
.about__rope img { position: absolute; left: -8.471rem; top: -6.135rem; width: 153.83rem; height: 58.884rem; max-width: none; }
.about__illust { position: absolute; }
.about__illust--1 { left: 6.5rem; top: 3rem; width: 28.2rem; height: 28.2rem; }
.about__illust--2 { left: 69rem; top: 9.3rem; width: 32rem; height: 32rem; }
.about__illust--3 { left: 101rem; top: 52.8rem; width: 28.2rem; height: 28.2rem; }
.about__label {
	position: absolute; left: 123.1rem; top: 12rem;
}
.about__label .section-label__text { margin-left: .06rem; }
.about__title { position: absolute; left: 105.04rem; top: 14.572rem; width: 14.02rem; height: 38.438rem; }
.about__title img { width: 100%; height: 100%; }
.about__title-sp { display: none; } /* PC: 縦書きSVG(.about__title)を使用。SP(<=767)で横書きテキストに切替 */
.about__body { position: relative; width: 50rem; }
.about__text { font-size: 1.6rem; font-weight: 900; line-height: 4rem; }
.about__text--2 { margin-top: 4.6rem; }
.about__btn { margin-top: 4.9rem; }

/* =============================================================================
   BUSINESS (PC: 強制横スクロール)
   ========================================================================== */
.business-pin { position: relative; }
.business {
	position: relative; height: 73.5rem; overflow: hidden;
}
.business::after {
	content: ""; position: absolute; left: 5rem; right: 5rem; bottom: 0; height: 1px; background: var(--c-line);
}
.business__head {
	display: flex; justify-content: space-between; align-items: flex-start;
	padding: 9.87rem 5rem 0 5rem;
}
.business__heading { width: 40rem; }
.business__title { margin-top: 3.73rem; width: 38.769rem; height: 12.982rem; }
.business__title img { width: 100%; height: 100%; }
.business__lead { width: 54rem; margin-top: 4.93rem; font-size: 1.6rem; line-height: 4rem; }
.business__track {
	position: absolute; left: 0; top: 35.1rem; width: 100%;
	overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
}
.business__track::-webkit-scrollbar { display: none; }
.business__list {
	display: flex; gap: 7rem; padding: 0 5rem; width: max-content;
}
.business-card {
	position: relative; flex: none; width: 70rem; height: 28.4rem;
	background: var(--c-bg); border: 2px solid var(--c-white); border-radius: 1rem;
	display: flex;
}
.business-card__en {
	position: absolute; left: 2.5rem; top: 2.03rem;
	font-family: var(--font-en); font-weight: 700; font-size: 1.4rem; line-height: 2.5rem; letter-spacing: .2em;
	color: var(--c-label); opacity: .9;
}
.business-card__img { flex: none; width: 26.4rem; height: 26.4rem; margin: .8rem 0 0 2.3rem; }
.business-card__img img { width: 100%; height: 100%; }
.business-card__body { padding: 5.84rem 0 0 3.5rem; }
.business-card__title { font-size: 2.4rem; font-weight: 700; line-height: 4rem; }
.business-card__text { margin-top: 1.56rem; font-size: 1.6rem; line-height: 4rem; }
.business-card__btn { width: 15rem; height: 4rem; margin-top: 1.4rem; font-size: 1.4rem; } /* アウン#3: 各カード→事業概要の該当事業へ */

/* JS pin (PC) */
body:not(.no-fx) .business-pin.is-pinned .business { position: sticky; top: 0; }
body:not(.no-fx) .business-pin.is-pinned .business__track { overflow: hidden; }
body:not(.no-fx) .business-pin.is-pinned .business__list { will-change: transform; }

/* =============================================================================
   RECRUIT / COMPANY
   ========================================================================== */
.rc-pin { position: relative; }
.rc {
	position: relative; height: 103.1rem; overflow-x: clip; overflow-y: visible; /* 横は切って横漏れ防止・縦は綱を上セクションへ連結 */
}
.rc::after {
	content: ""; position: absolute; left: 5rem; right: 5rem; bottom: 0; height: 1px; background: var(--c-line);
}
.rc__rope { position: absolute; left: -8.7rem; top: -29rem; width: 154rem; height: 69.742rem; overflow: hidden; pointer-events: none; }
.rc__rope img { position: absolute; left: .032rem; top: .299rem; width: 153.696rem; height: 69.253rem; max-width: none; }
.rc__orbit {
	position: absolute; border-radius: 50%; border: 5px solid var(--c-white); pointer-events: none;
}
.rc__orbit--1 { left: 13.08rem; top: 37.92rem; width: 108rem; height: 32.5rem; transform: rotate(-13deg); border-width: .5rem; }
.rc__orbit--2 { left: 13.05rem; top: 38.95rem; width: 108rem; height: 34rem; transform: rotate(-12deg); border-width: .3rem; }
.rc__photo { position: absolute; object-fit: cover; }
.rc__photo--1 { left: 5rem; top: 13.2rem; width: 31.5rem; height: 22rem; }
.rc__photo--2 { left: 103.6rem; top: 24.6rem; width: 28rem; height: 33rem; }
.rc__photo--3 { left: 12rem; top: 70.6rem; width: 28rem; height: 19.5rem; }
.rc__photo--4 { left: 96.6rem; top: 67.1rem; width: 28rem; height: 21.5rem; }
.rc__sp-photos { display: none; } /* PC非表示。SPで各ブロックのテキスト下に表示 */
.rc__viewport {
	position: absolute; left: 45.8rem; top: 26.886rem; width: 45.1rem; height: auto;
	overflow: visible; /* 固定表示(2026-09-18): 1ブロックのみになったのでスクロール枠を廃止 */
}
.rc__viewport::-webkit-scrollbar { display: none; }
.rc__column { position: relative; }
.rc__block { position: relative; height: 50.968rem; }
.rc__block--company { height: auto; }
.rc__block .section-label { padding-top: .236rem; }
.rc__title { margin-top: 3.424rem; }
.rc__title--recruit { width: 27.381rem; height: 6.187rem; margin-left: -.071rem; }
.rc__title--company { width: 27.113rem; height: 6.06rem; }
.rc__title img { width: 100%; height: 100%; }
.rc__lead { margin-top: 4.766rem; width: 45rem; font-size: 1.6rem; line-height: 4rem; }
.rc__block--company .rc__lead { margin-top: 4.893rem; }
.rc__btn { margin-top: 3.9rem; }

body:not(.no-fx) .rc-pin.is-pinned .rc { position: sticky; top: 0; }
body:not(.no-fx) .rc-pin.is-pinned .rc__viewport { overflow: hidden; }
body:not(.no-fx) .rc-pin.is-pinned .rc__column { will-change: transform; }

/* =============================================================================
   MARQUEE
   ========================================================================== */
.marquee {
	position: relative; height: 26rem; overflow: hidden;
}
.marquee::after {
	content: ""; position: absolute; left: 5rem; right: 5rem; bottom: 0; height: 1px; background: var(--c-line);
}
.marquee__photo { position: absolute; object-fit: cover; }
.marquee__photo--1 { left: 105.9rem; top: 3rem; width: 12.3rem; height: 8.6rem; }
.marquee__photo--2 { left: 45.7rem; top: 14.4rem; width: 12.3rem; height: 8.6rem; }
.marquee__row { position: absolute; left: 0; width: 100%; height: 4.916rem; opacity: .9; }
.marquee__row--1 { top: 4.645rem; }
.marquee__row--2 { top: 16.045rem; }
.marquee__inner { display: flex; gap: 22.752rem; width: max-content; }
.marquee__row--1 .marquee__inner { transform: translateX(-30.455rem); }
.marquee__row--2 .marquee__inner { transform: translateX(-90.655rem); }
.marquee__text { flex: none; width: 130.948rem; height: 4.916rem; max-width: none; }
@media (prefers-reduced-motion: no-preference) {
	body:not(.no-fx) .marquee__row--1 .marquee__inner { animation: marquee-l 40s linear infinite; }
	body:not(.no-fx) .marquee__row--2 .marquee__inner { animation: marquee-r 40s linear infinite; }
}
@keyframes marquee-l { from { transform: translateX(-30.455rem); } to { transform: translateX(-184.155rem); } }
@keyframes marquee-r { from { transform: translateX(-244.355rem); } to { transform: translateX(-90.655rem); } }

/* =============================================================================
   NEWS
   ========================================================================== */
.news {
	position: relative; display: flex; align-items: flex-start;
	padding: 10rem 5rem 0 5rem; height: 48.5rem;
}
.news__heading { width: 36.1rem; flex: none; padding-top: 2.87rem; }
.news__title { margin-top: 3.73rem; width: 21.092rem; height: 5.13rem; margin-left: -.008rem; }
.news__title img { width: 100%; height: 100%; }
.news__body { flex: 1; min-width: 0; }
.news-list__item { border-bottom: 1px solid var(--c-line); }
.news-list__link {
	display: flex; align-items: center; height: calc(9.5rem - 1px); padding: 0;
	transition: opacity .3s var(--ease);
}
.news-list__link:hover { opacity: .7; }
.news-list__date {
	flex: none; width: 9.6rem;
	font-family: var(--font-en); font-weight: 700; font-size: 1.6rem; line-height: 2.5rem; color: var(--c-dot);
}
.news-list__tag {
	flex: none; display: flex; align-items: center; justify-content: center;
	width: 15rem; height: 2.5rem; background: var(--c-yellow);
	font-size: 1.6rem; font-weight: 700; line-height: 2.5rem; color: var(--c-text);
}
.news-list__title {
	flex: 1; margin-left: 3.5rem;
	font-size: 2rem; font-weight: 700; line-height: 3.5rem;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.news__empty { padding: 3.5rem 0; font-size: 1.6rem; line-height: 2.5rem; }
.news__btn { display: flex; margin: 5rem 0 0 auto; }

/* =============================================================================
   FOOTER
   ========================================================================== */
.site-footer {
	position: relative; height: 79.9rem; overflow: hidden;
}
.site-footer__rope { position: absolute; left: -3rem; top: 6.5rem; width: 142.6rem; height: 25.5rem; overflow: hidden; pointer-events: none; }
.site-footer__rope img { position: absolute; left: -4.655rem; top: -2.82rem; width: 146.091rem; height: 28.05rem; max-width: none; }
.site-footer__illust { position: absolute; width: 24rem; height: 24rem; }
.site-footer__illust--1 { left: 12rem; top: 0; }
.site-footer__illust--2 { left: 101.6rem; top: 13.4rem; }
.site-footer__inner { position: relative; padding: 0 5rem; }
.site-footer__top { display: flex; justify-content: space-between; align-items: flex-start; padding-top: 31.27rem; }
.footer-nav { display: flex; gap: 0; }
.footer-nav__col { width: 38.2rem; }
.footer-nav__col + .footer-nav__col { width: auto; }
.footer-nav__item + .footer-nav__item { margin-top: 2.1rem; }
.footer-nav__link { display: flex; align-items: baseline; gap: 2rem; transition: opacity .3s var(--ease); }
.footer-nav__link:hover { opacity: .7; }
.footer-nav__en {
	font-family: var(--font-en); font-weight: 700; font-size: 2rem; line-height: 2.5rem; letter-spacing: .2em;
	color: var(--c-label); opacity: .9;
}
.footer-nav__en[data-en="ABOUT"] { width: 8.2rem; }
.footer-nav__en[data-en="COMPANY"] { width: 11.7rem; }
.footer-nav__en[data-en="NEWS"] { width: 7rem; }
.footer-nav__en[data-en="RECRUIT"] { width: 10.6rem; }
.footer-nav__en[data-en="CONTACT"] { width: 11rem; }
.footer-nav__jp { font-size: 2rem; font-weight: 700; line-height: 3.5rem; }
.site-footer__totop {
	position: relative; display: inline-block; margin-top: 12.55rem;
	font-size: 1.2rem; line-height: 3.5rem;
}
.site-footer__totop::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: .92rem; height: 1px; background: var(--c-text);
}
.site-footer__logotype { margin-top: 3.35rem; width: 126.6rem; height: 17.683rem; overflow: hidden; }
.site-footer__logotype-link { display: block; }
.site-footer__logotype img { width: 126.947rem; height: 17.898rem; max-width: none; margin: -.175rem 0 0 -.341rem; }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 4.052rem; height: 3.5rem; }
.site-footer__copyright {
	font-family: var(--font-en); font-weight: 700; font-size: 1.2rem; line-height: 2rem; letter-spacing: .1em; color: var(--c-label);
}
.site-footer__sub { display: flex; align-items: center; gap: 6.07rem; }
.site-footer__privacy { font-size: 1.4rem; line-height: 3.5rem; }
.site-footer__social { display: flex; align-items: center; gap: 3.03rem; margin-top: -.32rem; }
.site-footer__social-link { display: block; transition: opacity .3s var(--ease); }
.site-footer__social-link:hover { opacity: .7; }
.site-footer__social-link--ig svg { width: 2.413rem; height: 2.413rem; }
.site-footer__social-link--tt svg { width: 1.962rem; height: 2.251rem; }
.site-footer__social-link--yt svg { width: 2.269rem; height: 1.583rem; }

/* =============================================================================
   Reveal / inview animations (JS adds classes)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	body:not(.no-fx) .kv [data-reveal] { opacity: 0; transform: translateY(1.6rem); }
	body:not(.no-fx) .kv.is-revealed [data-reveal] { opacity: 1; transform: none; transition: opacity .8s var(--ease), transform .8s var(--ease); }
	body:not(.no-fx) .kv.is-revealed [data-reveal="1"] { transition-delay: .05s; }
	body:not(.no-fx) .kv.is-revealed [data-reveal="2"] { transition-delay: .3s; }
	body:not(.no-fx) .kv.is-revealed [data-reveal="3"] { transition-delay: .55s; }
	body:not(.no-fx) .kv.is-revealed [data-reveal="4"] { transition-delay: .7s; }
	body:not(.no-fx) .kv.is-revealed [data-reveal="5"] { transition-delay: .85s; }
	body:not(.no-fx) .kv .site-header { opacity: 0; }
	body:not(.no-fx) .site-header--overlay { opacity: 0; transform: translateY(-1rem); }
	body:not(.no-fx) .site-header--overlay.is-revealed { opacity: 1; transform: none; transition: opacity .8s var(--ease) .45s, transform .8s var(--ease) .45s; }
	body:not(.no-fx) .kv__bg { opacity: 0; }
	body:not(.no-fx) .kv.is-revealed .kv__bg { opacity: .62; transition: opacity 1s var(--ease); }

	body:not(.no-fx) .js-inview { opacity: 0; transform: translateY(2rem); }
	body:not(.no-fx) .js-inview.is-inview { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform .9s var(--ease); }
	body:not(.no-fx) .js-inview.is-inview:nth-child(2n) { transition-delay: .12s; }
	body:not(.no-fx) .js-inview.is-inview:nth-child(3n) { transition-delay: .24s; }
}

/* =============================================================================
   SP (375基準) — XDにSPアートボードが無いためPC設計からの展開
   ========================================================================== */
@media (max-width: 767px) {
	body { line-height: 2; }
	.btn { width: 19rem; height: 5rem; font-size: 1.4rem; }

	/* ---- common: section label (SP: ● 10px + 12px EN) ---- */
	.section-label { gap: .5rem; font-size: 1.2rem; line-height: 2.5rem; letter-spacing: .2em; }
	.section-label__dot { width: 1rem; height: 1rem; }

	/* =========================================================================
	   HEADER (全ページ overlay。ロゴ[15,15,247,35] / ハンバーガー[315,27,幅45,3本6px])
	   ====================================================================== */
	.site-header { position: absolute; top: 0; left: 0; right: 0; height: auto; z-index: 40; }
	.site-header__inner { display: block; height: auto; padding: 0; }
	.site-header__logo { position: absolute; left: 1.5rem; top: 1.5rem; z-index: 2; }
	.site-header__logo, .site-header__logo-img { width: 24.7rem; height: 3.5rem; }
	/* ドロワー開時はロゴ/バーを白に(下層は通常濃ロゴ) */
	body.sp-drawer-open .site-header__logo { z-index: 35; } /* ドロワー(z30, ヘッダー内)より前面に白ロゴ(XD 15,15 247×35) */
	body.sp-drawer-open .site-header__logo-img--white,
	body.sp-drawer-open .site-header:not(.site-header--overlay) .site-header__logo-img--white { display: block; }
	body.sp-drawer-open .site-header__logo-img--dark,
	body.sp-drawer-open .site-header:not(.site-header--overlay) .site-header__logo-img--dark { display: none; }

	.site-header__toggle {
		display: block; position: absolute; right: 1.5rem; top: 2.7rem; z-index: 60;
		width: 4.5rem; height: 1.3rem;
	}
	.site-header__toggle-bar {
		position: absolute; left: 0; width: 4.5rem; height: 1px; background: var(--c-white);
		transition: transform .3s var(--ease), opacity .3s, top .3s var(--ease);
	}
	.site-header:not(.site-header--overlay) .site-header__toggle-bar { background: var(--c-text); }
	.site-header__toggle-bar:nth-child(1) { top: 0; }
	.site-header__toggle-bar:nth-child(2) { top: .6rem; }
	.site-header__toggle-bar:nth-child(3) { top: 1.2rem; }
	/* open → × (drawer_sp 線566/線2: 45幅 12高 → ±15°) */
	body.sp-drawer-open .site-header__toggle-bar,
	.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar { background: var(--c-white); }
	.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(1) { top: .6rem; transform: rotate(15deg); }
	.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(2) { opacity: 0; }
	.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(3) { top: .6rem; transform: rotate(-15deg); }

	/* PC横ナビは SP 非表示(ドロワーに置換) */
	.global-nav { display: none; }

	/* =========================================================================
	   SP ドロワー (drawer_sp.flat.json 375×667): 下地グラデ + noise(マスクグループ70) + 画像1(kv-bg -98,-166 1186×833 .62 multiply)
	   綱 グループ85918 -94,90 542×104(白) / イラスト 15,72 150² & 210,115 150×149 / ナビ 15,286〜 ピッチ46 (EN #cecece 16/25, JP 白 16/35)
	   ロゴタイプ 14,524 346×49(白) / プライバシー 15,613.7 12/35 白 / SNS 白 233,287,337 y607
	   ====================================================================== */
	.sp-drawer {
		position: fixed; inset: 0; z-index: 30;
		display: block; padding: 0; overflow-y: auto;
		background: var(--c-bg); /* アートボード下地 #e5e9e9 */
		opacity: 0; visibility: hidden; transition: opacity .35s var(--ease), visibility .35s;
	}
	.sp-drawer.is-open { opacity: 1; visibility: visible; }
	.sp-drawer__inner { position: relative; min-height: 66.7rem; height: 100%; overflow: hidden; }
	.sp-drawer__inner::before {
		content: ""; position: absolute; inset: 0; pointer-events: none;
		background: url("../img/noise.webp") repeat 0 0 / 105.6rem 14.8rem;
	}
	.sp-drawer__inner::after {
		content: ""; position: absolute; inset: 0; pointer-events: none;
		background: url("../img/kv-bg.webp") no-repeat -9.8rem -16.6rem / auto calc(100% + 16.6rem); /* 667px時に XD と同寸(118.6×83.3rem)、縦長画面は等比で拡大 */
		opacity: .62; mix-blend-mode: multiply;
	}
	.sp-drawer__deco { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
	.sp-drawer__rope { position: absolute; left: -9.4rem; top: 9rem; width: 54.2rem; height: 10.4rem; max-width: none; }
	.sp-drawer__illust { position: absolute; width: 15rem; height: 15rem; }
	.sp-drawer__illust--1 { left: 1.5rem; top: 7.2rem; }
	.sp-drawer__illust--2 { left: 21rem; top: 11.5rem; height: 14.9rem; }

	.sp-drawer__list { position: absolute; left: 1.5rem; top: 27.74rem; z-index: 2; margin: 0; padding: 0; } /* JP 行ボックス上端 286.9−9.5 */
	.sp-drawer__item { position: relative; height: 4.6rem; width: 30rem; }
	.sp-drawer__link { position: relative; display: block; height: 100%; }
	.sp-drawer__en {
		position: absolute; left: 0; top: .4rem;
		font-family: var(--font-en); font-weight: 700; font-size: 1.6rem; line-height: 2.5rem; letter-spacing: .2em;
		color: var(--c-label);
	}
	.sp-drawer__jp {
		position: absolute; top: 0;
		font-size: 1.6rem; font-weight: 700; line-height: 3.5rem; color: var(--c-white); white-space: nowrap;
	}
	.sp-drawer__item:nth-child(1) .sp-drawer__jp { left: 8.1rem; }  /* ABOUT   jp x96 */
	.sp-drawer__item:nth-child(2) .sp-drawer__jp { left: 10.9rem; } /* COMPANY jp x124 */
	.sp-drawer__item:nth-child(3) .sp-drawer__jp { left: 7.2rem; }  /* NEWS    jp x87 */
	.sp-drawer__item:nth-child(4) .sp-drawer__jp { left: 10.1rem; } /* RECRUIT jp x116 */
	.sp-drawer__item:nth-child(5) .sp-drawer__jp { left: 10.4rem; } /* CONTACT jp x119 */

	.sp-drawer__logotype { position: absolute; left: 1.4rem; top: 52.4rem; width: 34.6rem; height: 4.9rem; z-index: 2; overflow: hidden; }
	.sp-drawer__logotype img { width: 34.6rem; height: 4.9rem; max-width: none; filter: brightness(0) invert(1); } /* グループ85950 白 */

	.sp-drawer__foot { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 2.98rem; z-index: 2; height: 3.5rem; } /* プライバシー行ボックス 602.2〜637.2 */
	.sp-drawer__privacy { display: inline-block; font-size: 1.2rem; line-height: 3.5rem; color: var(--c-white); }
	.sp-drawer__social { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 3.03rem; margin: 0; padding: 0; list-style: none; }
	.sp-drawer__social-link { display: block; }
	.sp-drawer__social-link svg { display: block; }
	.sp-drawer__social-link svg path { fill: var(--c-white); }
	.sp-drawer__social-link--ig svg { width: 2.413rem; height: 2.413rem; }
	.sp-drawer__social-link--tt svg { width: 1.962rem; height: 2.251rem; }
	.sp-drawer__social-link--yt svg { width: 2.269rem; height: 1.583rem; }

	/* KV */
	.kv { height: 64rem; }
	.kv__bg { top: -6rem; width: 100%; height: 76rem; }
	.kv__emblem { left: 4.5rem; top: 12.1rem; width: 29.2rem; height: 32.2rem; } /* XD 紋章枠 x45 y121 292x322 */
	.kv__catch { left: 4.5rem; top: 12.1rem; width: 29.2rem; height: 32.2rem; } /* XD SP 4行キャッチ(kv-catch-sp.svg)を紋章に重ね配置 */
	.kv__copyright { display: none; }
	.kv__seal { left: 26rem; top: 41.7rem; width: 10rem; height: 10rem; } /* XD シール x260 y417 100x100 */
	.kv-news { left: 1.5rem; top: 53.7rem; width: 34.5rem; height: 9.5rem; } /* XD お知らせ枠 x15 y537 345x95 */
	.kv-news__brand { width: 12.5rem; height: 9.5rem; margin: 0; } /* サムネ幅をXDに(本文x155) */
	.kv-news__item { width: 14rem; } /* 矢印ナビ(右2.47rem+1.23rem)と重ならない幅 */
	.kv-news__title { width: 14rem; }
	.kv-news__date { font-size: 1.2rem; } /* XD SP 日付12/lh25 */
	.opening__logo { width: 30rem; height: auto; } /* SPでロゴの縦横比を保持(PCの766×109固定→SPで歪み防止) */

	/* ABOUT */
	.about { padding: 42rem 1.5rem 6rem 1.5rem; overflow: hidden; } /* flat: 内容左端 x15=1.5rem。装飾グロー(absolute)が375幅からはみ出すのを遮断 */
	.about::after { left: 0; right: 0; } /* flat 線567: x0 w375 全幅 */
	.about__glow--teal { left: -10rem; top: 20rem; width: 40rem; height: 40rem; }
	.about__glow--yellow { left: 10rem; top: 0; width: 36rem; height: 36rem; }
	.about__rope { top: 8.5rem; height: 23rem; } /* XD 綱 y749基準 */
	.about__rope img { left: -11rem; top: 0; width: 59.7rem; height: 22.9rem; } /* XD 綱 x-110 597x229 */
	.about__illust--1 { left: 1rem; top: 2rem; width: 16rem; height: 16rem; }
	.about__illust--2 { left: 18rem; top: 6rem; width: 17rem; height: 17rem; }
	.about__illust--3 { display: none; } /* XD SP は装飾イラスト2つ(m2/m3)のみ。3つ目は非表示 */
	/* flat: ラベル[30,925 横書き] / タイトル[15,955 横2行] / 本文[15,1062-] を上から縦積み。about上端≈640(KV64rem)基準 */
	.about__label { left: 1.5rem; top: 28.5rem; flex-direction: row; align-items: center; gap: .5rem; }
	.about__label .section-label__text { writing-mode: horizontal-tb; text-orientation: initial; margin-left: 0; }
	.about__title { display: none; } /* 縦書きSVGはSP非表示 */
	.about__title-sp { display: block; position: absolute; left: 1.5rem; top: 31.5rem; margin: 0; width: 24.4rem; } /* XD本物のグリフをSVG化(他セクション見出しと同じSVG方式) */
	.about__title-sp img { display: block; width: 100%; height: auto; }
	.about__body { width: auto; }
	.about__text { font-size: 1.4rem; line-height: 3.5rem; } /* XD 14/lh35 */
	.about__text--2 { margin-top: 1.4rem; } /* XD SP text1底→text2頭の実ギャップ(flat原点差119)に合わせ縮小 */
	.about__btn { display: flex; margin: 4rem auto 0; } /* SPは中央(ろく指示 2026-09-18) */

	/* BUSINESS: 縦積み */
	.business { height: auto; padding-bottom: 6rem; }
	.business::after { left: 0; right: 0; } /* flat 線568 全幅 */
	.business__head { flex-direction: column; padding: 6rem 1.5rem 0; }
	.business__heading { width: auto; }
	.business__title { margin-top: 0.5rem; width: 28rem; height: 9.4rem; }
	.business__lead { width: auto; margin-top: 1rem; font-size: 1.4rem; line-height: 3rem; } /* flat fs14 */
	.business__track { position: static; overflow-x: auto; overflow-y: hidden; margin-top: 0.7rem; } /* SPも横スクロール */
	.business__list { flex-direction: row; gap: 2rem; padding: 0 1.5rem; width: max-content; }
	.business-card { flex: none; width: 30.5rem; height: auto; flex-direction: column; padding: 2rem 2rem 2.4rem 1.5rem; } /* XD SP 内容x30 */
	.business-card__en { left: 1.5rem; top: 1.6rem; }
	.business-card__img { width: 22.2rem; height: 14.8rem; margin: 1.8rem auto 0; } /* XD SP 222x148 */
	.business-card__img img { object-fit: contain; } /* 正方形イラストを 222x148 に収める(潰れ防止 2026-09-18) */
	.business-card__body { padding: 1.2rem 0 0; }
	.business-card__title { font-size: 2rem; line-height: 4rem; } /* XD 社名20/lh40 */
	.business-card__text { margin-top: .8rem; font-size: 1.4rem; line-height: 3rem; } /* XD body14/lh30 */
	.business-card__text br { display: none; }
	.business-card__btn { display: flex; margin: 1.2rem auto 0; }

	/* RECRUIT / COMPANY: 縦積み、写真は各ブロック上に */
	.rc { height: auto; padding: 6rem 1.5rem 6rem; }
	.rc::after { left: 0; right: 0; } /* flat 線569 全幅 */
	.rc__rope { display: none; }
	.rc__photo, .rc__orbit { display: none; } /* SPは各ブロック内のrc__sp-photosを使う */
	.rc__sp-photos { display: block; position: relative; overflow: visible; } /* 写真はテキストの上(XD flat 260915) */
	.rc__sp-photo { position: absolute; object-fit: cover; }
	.rc__sp-rope { position: absolute; pointer-events: none; max-width: none; z-index: -1; } /* rc-rope-top.svg は白・上から横断。XD flat 順(グループ86147 index6)は写真/文字より下 */
	.rc__sp-orbit { position: absolute; pointer-events: none; max-width: none; z-index: -1; } /* 輪っか(白・楕円2重)。XD 楕円形765/766 は写真(474/475)より下 */
	/* 採用: operator(大/左上 x15 231×161) + office(小/右下重なり x232 128×152)、縄が上から横断 */
	.rc__sp-photos--recruit { height: 19.2rem; }
	.rc__sp-photos--recruit .rc__sp-photo--a { left: 0; top: 0; width: 23.1rem; height: 16.1rem; z-index: 2; }
	.rc__sp-photos--recruit .rc__sp-photo--b { left: 21.7rem; top: 8.8rem; width: 12.8rem; height: 15.2rem; z-index: 3; }
	.rc__sp-photos--recruit .rc__sp-rope { left: -10.2rem; top: -20.7rem; width: 58.9rem; height: 26.6rem; } /* 上のセクションから連続(y2036-2302全域) */
	/* 会社: clipboard(大/左 x15 198×138) + driver-cab(小/右上 x201 159×122)、輪っかが横断 */
	.rc__sp-photos--company { height: 20rem; }
	.rc__sp-photos--company .rc__sp-photo--a { left: 0; top: 3.1rem; width: 19.8rem; height: 13.8rem; z-index: 2; }
	.rc__sp-photos--company .rc__sp-photo--b { left: 18.6rem; top: 0; width: 15.9rem; height: 12.2rem; z-index: 3; }
	.rc__sp-photos--company .rc__sp-orbit { left: -16.2rem; top: -3.8rem; width: 66.9rem; height: 26.7rem; } /* 傾いた軌道リング(matrix -13deg) */
	.rc__viewport { position: static; width: auto; height: auto; overflow: visible; clear: both; }
	.rc__block { height: auto; }
	.rc__block--company { margin-top: 5rem; }
	.rc__title { margin-top: 2rem; }
	.rc__title--recruit { width: 22rem; height: 5rem; margin-left: 0; }
	.rc__title--company { width: 22rem; height: 4.9rem; }
	.rc__lead { width: auto; margin-top: 2.4rem !important; font-size: 1.4rem; line-height: 3rem; } /* flat fs14 */
	.rc__btn { display: flex; margin: 2.8rem auto 0; }

	/* MARQUEE */
	.marquee { height: 16rem; }
	.marquee::after { left: 0; right: 0; } /* flat 線570 全幅 */
	.marquee__photo { display: block; } /* XD: 流れる文字に写真2枚を重ねる */
	.marquee__photo--1 { left: 20rem; top: 1rem; width: 12.3rem; height: 8.6rem; }
	.marquee__photo--2 { left: 3rem; top: 6.5rem; width: 12.3rem; height: 8.6rem; }
	.marquee__row { height: 2.8rem; }
	.marquee__row--1 { top: 3.5rem; }
	.marquee__row--2 { top: 9.5rem; }
	.marquee__inner { gap: 10rem; }
	.marquee__text { width: 74.6rem; height: 2.8rem; }
	@keyframes marquee-l { from { transform: translateX(-10rem); } to { transform: translateX(-94.6rem); } }
	@keyframes marquee-r { from { transform: translateX(-104.6rem); } to { transform: translateX(-20rem); } }

	/* NEWS */
	.news { flex-direction: column; height: auto; padding: 6rem 1.5rem 6rem; }
	.news__heading { width: auto; padding-top: 0; }
	.news__title { margin-top: 2rem; width: 16rem; height: 3.9rem; }
	.news__body { width: 100%; margin-top: 2.4rem; }
	.news-list__link { flex-wrap: wrap; height: auto; padding: 2rem 0; }
	.news-list__date { width: 9rem; font-size: 1.2rem; } /* flat fs12 */
	.news-list__tag { width: 6.8rem; height: 2rem; font-size: 1.2rem; } /* flat 長方形9245: 68x20, fs12 */
	.news-list__title { flex: none; width: 100%; margin: .8rem 0 0; font-size: 1.4rem; line-height: 2.5rem; white-space: normal; } /* flat fs14 */
	.news__btn { margin: 3.2rem auto 0; } /* SPは中央(ろく指示 2026-09-18。XD SPは左寄せだった) */

	/* FOOTER */
	/* SP_footer (company_sp 506ab8e3, 高さ626): 綱 グループ85918 -94.3,17.9 542.4×104.1 (クリップ y28〜123) / イラスト 15,0 150² & 210,43 150×149 /
	   ナビ 1列 x15 y213.9〜 ピッチ46 (EN DIN16 lh25 ls.2em #cecece / JP 16 lh35) / ロゴ 15,452 345×48.2 / プライバシー 15,541.7 12 lh35 / SNS 右端360 / © 88,586.7 12px。上部へ戻るは無し */
	.site-footer { height: 62.6rem; padding-bottom: 0; overflow: hidden; }
	.site-footer__rope { left: 0; top: 2.8rem; width: 100%; height: 9.5rem; }
	.site-footer__rope img { left: -9.43rem; top: -1.01rem; width: 54.24rem; height: 10.41rem; }
	.site-footer__illust { width: 15rem; height: 15rem; }
	.site-footer__illust--1 { left: 1.5rem; top: 0; }
	.site-footer__illust--2 { left: 21rem; top: 4.3rem; height: 14.9rem; }
	.site-footer__inner { padding: 0 1.5rem; }
	.site-footer__top { flex-direction: column; padding-top: 20.54rem; } /* 1行目 JP 行ボックス上端 5378.4 − 5173 */
	.footer-nav { flex-direction: column; }
	.footer-nav__col { width: auto; }
	.footer-nav__col + .footer-nav__col { margin-top: 1.1rem; }
	.footer-nav__item + .footer-nav__item { margin-top: 1.1rem; }
	.footer-nav__link { gap: 0; line-height: 3.5rem; }
	.footer-nav__en { font-size: 1.6rem; line-height: 2.5rem; letter-spacing: .2em; }
	.footer-nav__en[data-en="ABOUT"] { width: 8.1rem; } /* JP x: 96/124/87/116/119 − 15 */
	.footer-nav__en[data-en="COMPANY"] { width: 10.9rem; }
	.footer-nav__en[data-en="NEWS"] { width: 7.2rem; }
	.footer-nav__en[data-en="RECRUIT"] { width: 10.1rem; }
	.footer-nav__en[data-en="CONTACT"] { width: 10.4rem; }
	.footer-nav__jp { font-size: 1.6rem; line-height: 3.5rem; }
	.site-footer__totop { display: none; } /* XD SP に無い */
	.site-footer__logotype { margin-top: 2.76rem; width: 34.5rem; height: 4.819rem; } /* 最終行 JP 下端 5597.4 → ロゴ 5625 */
	.site-footer__logotype img { width: 34.596rem; height: 4.877rem; margin: -.048rem 0 0 -.093rem; }
	.site-footer__bottom { display: flex; flex-direction: column-reverse; align-items: stretch; height: auto; margin-top: 3rem; } /* ロゴ下端 5673.2 → プライバシー行ボックス 5703.2、© は最下段 */
	.site-footer__sub { justify-content: space-between; gap: 0; }
	.site-footer__privacy { font-size: 1.2rem; line-height: 3.5rem; }
	.site-footer__social { gap: 3.03rem; margin-top: -.32rem; }
	.site-footer__copyright { display: block; margin: 2.15rem 0 0 7.3rem; font-size: 1.2rem; line-height: 1.2rem; } /* © 88,5759.7 (プライバシー行下端 5738.2 → 21.5) */
}
