@charset "UTF-8";

/* Critical base rules formerly provided by style.css */
html, body, div, span, h1, h2, h3, p, a, img, ol, ul, li, dl, dt, dd, section, header, footer, main, article, figure, figcaption, form, label, table, tbody, tr, th, td {
	border: 0;
	font: inherit;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}
section, header, footer, main, article, figure, figcaption { display: block; }
ol, ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
th, td { text-align: left; vertical-align: top; }
html { font-size: 14px; }
body {
	line-height: 1.5;
	letter-spacing: 0;
	background-color: #fff;
	color: #000;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-overflow-scrolling: touch;
	-webkit-text-size-adjust: 100%;
}
img { border: 0; display: block; width: 100%; height: auto; vertical-align: top; }
a { color: inherit; text-decoration: none; }

/* =============================================================
   LP - 美容スタッフ
   既存 style.css の後に読み込まれる前提でオーバーライド/追加。
   ============================================================= */

/* -----------------------------------------------
   共通: LP全体のリセット・ベース
   ----------------------------------------------- */
/* 1920px デザイン基準のスケーリング単位（全セクション共通） */
:root { --u: calc(min(100vw, 1920px) / 1920); }

.lp main.l-container {
	overflow: hidden;
	max-width: 1920px;
	margin-left: auto;
	margin-right: auto;
}

/* paddingを含めて width:100% を期待通りに動作させる */
.lp,
.lp *,
.lp *::before,
.lp *::after {
	box-sizing: border-box;
}


/* ===============================================================
   SKIP LINK
   =============================================================== */
.lp-skip-link {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 200;
	transform: translateY(-100%);
	background: #fff;
	color: #333;
	padding: 12px 20px;
	font-size: 14px;	white-space: nowrap;
}
.lp-skip-link:focus { transform: translateY(0); }

/* ===============================================================
   HEADER
   =============================================================== */
.lp-header {
	background-color: transparent;
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	transition: background-color 0.3s ease;
}
.lp-header.is-scrolled {
	background-color: #fff;
}
.lp-header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	max-width: 1920px;
	margin: 0 auto;
	padding: 20px calc(160 / 1920 * 100vw);
	border-bottom: 1px solid rgba(0, 0, 0, 0.4);
}
@media (min-width: 1920px) {
	.lp-header__inner { padding-left: 160px; padding-right: 160px; }
}
.lp-header__logo {
	flex-shrink: 0;
	width: 90px;
	height: 42px;
	display: block;
}
.lp-header__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.lp-header__ttl {
	margin: 0;
	font-size: clamp(10px, calc(12 * var(--u)), 12px);
	color: #000;
	white-space: nowrap;
}
.lp-header__br-sp { display: none; }
@media (max-width: 768px) {
	.lp-header__br-sp { display: inline; }
	.lp-header__ttl { white-space: normal; line-height: 1.4; }
}
.lp-header__nav {
	margin-left: auto;
	display: flex;
	align-items: center;
}
.lp-header__entry {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 40px;
	text-decoration: none;
	transition: opacity 0.2s;
}
.lp-header__entry:hover { opacity: 0.85; }
.lp-header__entry-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.lp-header__entry-text {
	position: relative;
	font-family: "Cormorant Infant", serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	line-height: 1;
	color: #000;
	letter-spacing: 0.04em;
}

@media (max-width: 768px) {
	.lp-header__inner {
		margin: 0 16px;
		padding: 12px 0;
		gap: 12px;
	}
	.lp-header__logo { width: 60px; height: 28px; }
	.lp-header__ttl { font-size: 10px; }
	.lp-header__entry { width: 110px; height: 32px; }
	.lp-header__entry-text { font-size: 18px; }
}


/* ===============================================================
   1. KV
   =============================================================== */
.lp-kv {
	/* 1920px デザイン基準のスケーリング単位。最大1920pxまで拡大 */
	position: relative;
	width: 100%;
	overflow: hidden;
	color: #fff;
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
}

/* --- 背景レイヤー --- */
.lp-kv__bg { position: absolute; inset: 0; }

.lp-kv__bg-half {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	overflow: hidden;
}
.lp-kv__bg-half--left  { left: 0; }
.lp-kv__bg-half--right { left: 50%; }

.lp-kv__bg-half img {
	position: absolute;
	display: block;
	max-width: none;
	object-fit: cover;
}
.lp-kv__bg-half--left img {
	left: -24.67%;
	top: 0.03%;
	width: 124.64%;
	height: 99.97%;
}
.lp-kv__bg-half--right img {
	left: -3%;
	top: 1.4%;
	width: 114.69%;
	height: 81.56%;
}

.lp-kv__bg-center {
	position: absolute;
	left: 50%;
	top: 0;
	width: calc(748 * var(--u));
	height: 100%;
	transform: translateX(-50%);
}
.lp-kv__bg-center img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lp-kv__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(159.19deg, rgba(0, 0, 0, 0) 51.19%, rgb(117, 5, 54) 86.76%);
	pointer-events: none;
}

/* --- ピンクの装飾スクリブル --- */
.lp-kv__deco {
	position: absolute;
	left: calc(1362.5 * var(--u));
	top: calc(625.7 * var(--u));
	width: calc(705.685 * var(--u));
	min-height: calc(166.267 * var(--u));
	transform: translate(-50%, -50%) rotate(-12deg);
	pointer-events: none;
	z-index: 1;
}

/* --- コンテンツラッパー（フローでタイトル + リードを配置） --- */
.lp-kv__content {
	position: relative;
	z-index: 2;
	min-height: calc(900 * var(--u));
	padding: calc(395 * var(--u)) calc(160 * var(--u)) calc(60 * var(--u)) calc(1082 * var(--u));
}

/* --- タイトル --- */
.lp-kv__title {
	font-weight: 500;
	white-space: nowrap;
	letter-spacing: 0.02em;
}
.lp-kv__title-1,
.lp-kv__title-2,
.lp-kv__title-3 {
	margin: 0;
	line-height: 1.4;
}
.lp-kv__title-1 { font-size: clamp(10px, calc(45 * var(--u)), 45px); }
.lp-kv__title-1 .-indent { font-size: clamp(10px, calc(60 * var(--u)), 60px); }
.lp-kv__title-2 { font-size: clamp(10px, calc(60 * var(--u)), 60px); }
.lp-kv__title-3 {
	font-size: clamp(10px, calc(100 * var(--u)), 100px);
	font-weight: 600;
}
.lp-kv__title-3 .-tight {
	letter-spacing: calc(-30 * var(--u));
}

/* --- リード文 --- */
.lp-kv__lead {
	width: calc(537 * var(--u));
	margin: calc(80 * var(--u)) 0 0 calc(53 * var(--u));
	font-size: clamp(10px, calc(20 * var(--u)), 20px);
	line-height: 2;
	font-weight: 500;
	text-align: justify;
}

/* --- 募集バッジ --- */
.lp-kv__badge {
	position: absolute;
	left: 0;
	top: calc(730 * var(--u));
	display: inline-flex;
	align-items: center;
	gap: calc(25 * var(--u));
	padding: calc(25 * var(--u)) calc(25 * var(--u)) calc(25 * var(--u)) calc(30 * var(--u));
	background: linear-gradient(to right, #e2307e, #ff6170);
	border-radius: 0 calc(10 * var(--u)) calc(10 * var(--u)) 0;
	box-shadow: calc(5 * var(--u)) calc(5 * var(--u)) calc(5 * var(--u)) rgba(0, 0, 0, 0.2);
	color: #fff;
	z-index: 3;
}
.lp-kv__badge-job {
	font-size: clamp(10px, calc(30 * var(--u)), 30px);
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
}
.lp-kv__badge-status {
	display: inline-block;
	padding: calc(15 * var(--u)) calc(5 * var(--u));
	border-top: 1px solid #fff;
	border-bottom: 1px solid #fff;
	font-size: clamp(10px, calc(40 * var(--u)), 40px);
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

/* --- SP対応：画像→テキスト→バッジ縦積み --- */
@media (max-width: 768px) {
	.lp-kv {
		display: flex;
		flex-direction: column;
		padding-bottom: 40px;
		background: #fff;
		color: #2a2a2a;
	}

	/* 画像エリア：1920:900 の比率を維持 */
	.lp-kv__bg {
		position: relative;
		flex: none;
		width: 100%;
		aspect-ratio: 1920 / 900;
	}

	/* 装飾スクリブルはSPでは非表示 */
	.lp-kv__deco { display: none; }

	/* コンテンツラッパー：SPでは padding を解除 */
	.lp-kv__content {
		padding: 0 20px;
		min-height: 0;
		color: #2a2a2a;
	}

	.lp-kv__title {
		margin-top: 56px;
		padding: 0;
		color: #2a2a2a;
		white-space: normal;
	}
	.lp-kv__title-1 { font-size: 16px; }
	.lp-kv__title-1 .-indent,
	.lp-kv__title-2 { font-size: 22px; }
	.lp-kv__title-2 { padding-left: 0; }
	.lp-kv__title-3 { font-size: 38px; }
	.lp-kv__title-3 .-tight { letter-spacing: -10px; }

	.lp-kv__lead {
		width: auto;
		margin: 16px 0 24px;
		font-size: 14px;
		line-height: 1.8;
		color: #2a2a2a;
	}

	/* 募集バッジ：画像下端に半分はみ出す */
	.lp-kv__badge {
		position: absolute;
		left: auto;
		right: 0;
		top: calc(100vw * 900 / 1920);
		transform: translateY(-50%);
		margin: 0;
		padding: 12px 18px 12px 20px;
		gap: 12px;
		border-radius: 6px 0 0 6px;
		box-shadow: -3px 3px 6px rgba(0, 0, 0, 0.15);
		z-index: 4;
	}
	.lp-kv__badge-job { font-size: 16px; }
	.lp-kv__badge-status {
		font-size: 22px;
		padding: 8px 5px;
	}
}


/* ===============================================================
   2. MESSAGE
   =============================================================== */
.lp-message {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #F4ECDD;
	color: #000;
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
}

/* --- 装飾の飛び散り（背景） --- */
.lp-message__bg {
	position: absolute;
	top: -80px;
	bottom: -80px;
	left: calc((100% - 100vw) / 2);
	width: 100vw;
	pointer-events: none;
}
.lp-message__splatter {
	position: absolute;
	display: block;
	max-width: none;
}
.lp-message__splatter--pink {
	left: calc(245 * var(--u));
	top: calc(26 * var(--u));
	width: calc(996 * var(--u));
	min-height: calc(934 * var(--u));
	mix-blend-mode: multiply;
}
.lp-message__splatter--white {
	left: calc(128 * var(--u));
	top: 0;
	width: calc(1665 * var(--u));
	min-height: calc(960 * var(--u));
	overflow: visible;
}

/* --- 左上：MESSAGE 見出し + サブ見出し --- */
.lp-message__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 2;
}
/* === セクション共通見出し === */
.lp-section-title {
	margin: 0;
	font-family: "Cormorant Infant", "Noto Serif JP", serif;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(10px, calc(100 * var(--u)), 100px);
	line-height: 1;
	white-space: nowrap;
	text-transform: uppercase;
}
@media (max-width: 768px) {
	.lp-section-title { font-size: 48px; }
}

.lp-message__title { color: #000; }
.lp-message__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-message__bullet {
	display: inline-block;
	width: calc(14 * var(--u));
	min-height: calc(4 * var(--u));
	background: #000;
	flex-shrink: 0;
}

/* --- 写真 --- */
.lp-message__photo {
	position: absolute;
	display: block;
	object-fit: cover;
	z-index: 1;
}
.lp-message__photo--main {
	left: calc(506 * var(--u));
	top: calc(352 * var(--u));
	width: calc(625 * var(--u));
	min-height: calc(471 * var(--u));
}
.lp-message__photo--makeup {
	left: calc(1445 * var(--u));
	top: calc(90 * var(--u));
	width: calc(315 * var(--u));
	min-height: calc(237 * var(--u));
}
.lp-message__photo--couple {
	left: calc(160 * var(--u));
	top: calc(685 * var(--u));
	width: calc(252 * var(--u));
	min-height: calc(190 * var(--u));
}

/* --- 右側：見出し + 本文（フロー配置でセクション高さを成り行き化） --- */
.lp-message__copy {
	position: relative;
	z-index: 2;
	width: calc(563 * var(--u));
	margin: calc(415 * var(--u)) calc(160 * var(--u)) 0 calc(1197 * var(--u));
	min-height: calc(545 * var(--u));
}
.lp-message__copy-title {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}
.lp-message__copy-title span {
	display: block;
}
.lp-message__copy-body {
	margin-top: calc(40 * var(--u));
}
.lp-message__copy-body p {
	margin: 0;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	font-weight: 500;
	line-height: 2;
}
.lp-message__copy-body p + p {
	margin-top: calc(32 * var(--u));
}

/* --- SP対応 --- */
@media (max-width: 768px) {
	.lp-message {
		height: auto;
		padding: 60px 20px 80px;
		background: #F4ECDD;
	}
	/* 背景の飛び散りはPCと同じ座標式（--u基準）で配置。
	   SPでは --u = 100vw / 1920 になるため自動的に縮尺される。 */
	.lp-message__bg { inset: 0; }
	.lp-message__splatter--pink {
		/* PCと同じ位置・サイズのまま継承（lp-message の --u を使う） */
	}
	.lp-message__splatter--white {
		/* PCと同じ位置・サイズのまま継承 */
	}

	.lp-message__head {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
	}
	.lp-message__subtitle {
		gap: 12px;
		margin-top: 16px;
		font-size: 14px;
	}
	.lp-message__bullet { width: 12px; height: 3px; }

	.lp-message__photos {
		position: relative;
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 12px;
		row-gap: 16px;
		margin-top: 40px;
	}
	.lp-message__photo {
		position: relative;
		left: auto !important;
		top: auto !important;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 4 / 3;
	}
	/* メインのみセクション左右パディングを打ち消して画面端まで広げる */
	.lp-message__photo--main {
		grid-column: 1 / -1;
		width: calc(100% + 40px) !important;
		margin-left: -20px;
		margin-right: -20px;
		aspect-ratio: 4 / 3;
	}
	.lp-message__photo--makeup { grid-column: 1; }
	.lp-message__photo--couple { grid-column: 2; }

	.lp-message__copy {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin: 40px 0 0 0;
		min-height: 0;
	}
	.lp-message__copy-title {
		font-size: 28px;
		white-space: normal;
	}
	.lp-message__copy-body { margin-top: 20px; }
	.lp-message__copy-body p {
		font-size: 14px;
		line-height: 1.9;
	}
	.lp-message__copy-body p + p {
		margin-top: 16px;
	}
}


/* ===============================================================
   3. CAREER
   =============================================================== */
.lp-career {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #fff;
	color: #000;
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
}

/* --- 背景：水彩スプラッター（-34.9度回転、上端を画面外まで延ばす） --- */
.lp-career__bg {
	position: absolute;
	left: calc(50% + 479.51 * var(--u));
	top: calc(-325 * var(--u));
	width: calc(1973 * var(--u));
	min-height: calc(1802 * var(--u));
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	z-index: 1;
}
.lp-career__bg-inner {
	flex: none;
	width: calc(1699.655 * var(--u));
	min-height: calc(1012.075 * var(--u));
	transform: rotate(-34.9deg);
	position: relative;
}
.lp-career__bg-img {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
}

/* --- 左上：CAREER 見出し + サブ --- */
.lp-career__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 3;
}
.lp-career__title { color: #000; }
.lp-career__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-career__bullet {
	display: inline-block;
	width: calc(14 * var(--u));
	min-height: calc(4 * var(--u));
	background: #000;
	flex-shrink: 0;
}

/* --- 左：見出し + 本文（フロー配置） --- */
.lp-career__copy {
	position: relative;
	z-index: 3;
	width: calc(563 * var(--u));
	margin: calc(392 * var(--u)) auto calc(140 * var(--u)) calc(160 * var(--u));
	min-height: calc(404 * var(--u));
}
.lp-career__copy-title {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}
.lp-career__copy-title > span {
	display: block;
}
.lp-career__copy-title .-tight {
	letter-spacing: calc(-4.8 * var(--u));
}
.lp-career__copy-body {
	margin-top: calc(40 * var(--u));
}
.lp-career__copy-body p {
	margin: 0;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	font-weight: 500;
	line-height: 2;
}
.lp-career__copy-body p + p {
	margin-top: calc(32 * var(--u));
}

/* --- 右：写真 + 白カードの背面 --- */
/* 白カード（背面）：-5.36度回転、コンテナ中央寄せ */
.lp-career__photo-card-wrap {
	position: absolute;
	left: calc(854.14 * var(--u));
	top: calc(50% + 0.5 * var(--u));
	width: calc(927.71 * var(--u));
	min-height: calc(589.407 * var(--u));
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}
.lp-career__photo-card {
	flex: none;
	width: calc(884 * var(--u));
	min-height: calc(509 * var(--u));
	background: #fff;
	transform: rotate(-5.36deg);
}
.lp-career__photo {
	position: absolute;
	left: calc(876 * var(--u));
	top: calc(50% + 0.5 * var(--u));
	width: calc(884 * var(--u));
	min-height: calc(509 * var(--u));
	transform: translateY(-50%);
	overflow: hidden;
	z-index: 2;
}
.lp-career__photo img {
	position: absolute;
	display: block;
	max-width: none;
	left: -21.71%;
	top: -17.24%;
	width: 164.86%;
	height: 190.9%;
}

/* --- SP対応 --- */
@media (max-width: 768px) {
	.lp-career {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-career__bg {
		left: 50%;
		top: 50%;
		width: 130%;
		height: auto;
		transform: translate(-50%, -50%);
	}

	.lp-career__head {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
	}
	.lp-career__subtitle {
		gap: 12px;
		margin-top: 16px;
		font-size: 14px;
	}
	.lp-career__bullet { width: 12px; height: 3px; }

	/* SP順序：見出し → コピー → 写真 */
	.lp-career__copy {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin: 32px 0 0 0;
		min-height: 0;
		padding: 24px 20px;
		background: rgba(255, 255, 255, 0.7);
		border-radius: 6px;
		backdrop-filter: blur(2px);
	}
	.lp-career__copy-title {
		font-size: 28px;
		white-space: normal;
	}
	.lp-career__copy-title .-tight { letter-spacing: -1px; }
	.lp-career__copy-body { margin-top: 20px; }
	.lp-career__copy-body p {
		font-size: 14px;
		line-height: 1.9;
	}
	.lp-career__copy-body p + p { margin-top: 16px; }

	/* SPでは白カードは非表示、写真のみ表示 */
	.lp-career__photo-card-wrap { display: none; }
	.lp-career__photo {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		aspect-ratio: 884 / 509;
		height: auto;
		transform: none;
		margin-top: 32px;
	}
}


/* ===============================================================
   共通: 各セクション head（左上の英字タイトル + サブタイトル）
   =============================================================== */
.lp-stability,
.lp-trust,
.lp-environment,
.lp-life,
.lp-jobspecs,
.lp-requirements,
.lp-entry {
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
	overflow: hidden;
}

/* ===============================================================
   4. STABILITY
   =============================================================== */
.lp-stability {
	position: relative;
	width: 100%;
	overflow: hidden;
	color: #fff;
}
.lp-stability__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; }
.lp-stability__bg-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-stability__bg-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); }

/* copy-title内に配置されるため、相対座標で中央配置 */
.lp-stability__copy-title {
	position: relative;
	isolation: isolate;
}
.lp-stability__deco {
	position: absolute;
	left: 50%;
	top: 10%;
	width: calc(1132 * var(--u));
	min-height: calc(403 * var(--u));
	transform: translate(-50%, -50%) rotate(-2deg);
	transform-origin: center;
	pointer-events: none;
	z-index: -1;
}

.lp-stability__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 3;
}
.lp-stability__title { color: #fff; }
.lp-stability__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-stability__bullet {
	display: inline-block;
	width: calc(14 * var(--u));
	min-height: calc(4 * var(--u));
	background: #fff;
	flex-shrink: 0;
}

.lp-stability__center {
	position: absolute;
	left: 50%;
	top: calc(300 * var(--u));
	width: calc(960 * var(--u));
	transform: translateX(-50%);
	text-align: center;
	z-index: 2;
}
.lp-stability__copy-title {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	color: #000;
}
.lp-stability__copy-title > span { display: block; }
.lp-stability__copy-title .-tight { letter-spacing: calc(-6.4 * var(--u)); }
.lp-stability__copy-body {
	margin-top: calc(100 * var(--u));
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 2;
	color: #fff;
}
.lp-stability__copy-body p { margin: 0; }

.lp-stability__cards {
	position: relative;
	z-index: 2;
	width: calc(1300 * var(--u));
	margin: calc(663 * var(--u)) auto calc(137 * var(--u)) calc(310 * var(--u));
	display: flex;
	gap: calc(40 * var(--u));
}
.lp-stability__card {
	flex: 1 0 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: 0 0 calc(20 * var(--u)) rgba(0, 0, 0, 0.15);
	color: #000;
	overflow: hidden;
}
.lp-stability__card-img {
	width: 100%;
	min-height: calc(215 * var(--u));
	overflow: hidden;
}
.lp-stability__card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-stability__card-body {
	flex: 1 0 0;
	display: flex;
	flex-direction: column;
	gap: calc(30 * var(--u));
	padding: calc(20 * var(--u)) calc(40 * var(--u)) calc(40 * var(--u));
	text-align: center;
}
.lp-stability__card-headline {
	font-weight: 600;
	line-height: 2;
}
.lp-stability__card-headline.-single { font-size: clamp(10px, calc(30 * var(--u)), 30px); }
.lp-stability__card-headline .-lg { font-size: clamp(10px, calc(30 * var(--u)), 30px); margin: 0; }
.lp-stability__card-headline .-sm { font-size: clamp(10px, calc(20 * var(--u)), 20px); margin: 0; }
.lp-stability__card-text { font-size: clamp(10px, calc(16 * var(--u)), 16px); line-height: 2; margin: 0; }
.lp-stability__card-text p { margin: 0; }

@media (max-width: 768px) {
	.lp-stability {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-stability__head { position: relative; left: auto; top: auto; width: 100%; z-index: 3; }
	.lp-stability__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-stability__bullet { width: 12px; height: 3px; }
	/* SP時はdeco非表示 */
	.lp-stability__deco { display: none; }
	.lp-stability__center {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		transform: none;
		margin-top: 32px;
		z-index: 2;
	}
	.lp-stability__center::before {
		content: "";
		display: none; /* placeholder */
	}
	.lp-stability__copy-title { font-size: 26px; color: #fff; }
	.lp-stability__copy-body { margin-top: 24px; font-size: 14px; line-height: 1.9; color: #fff; }
	.lp-stability__cards {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		flex-direction: column;
		gap: 20px;
		margin: 40px 0 0 0;
		z-index: 2;
	}
	.lp-stability__card { flex: none; }
	.lp-stability__card-img { height: auto; min-height: 0; }
	.lp-stability__card-body { flex: none; padding: 20px 24px 28px; gap: 16px; }
	.lp-stability__card-headline.-single,
	.lp-stability__card-headline .-lg { font-size: 22px; }
	.lp-stability__card-headline .-sm { font-size: 16px; }
	.lp-stability__card-text { font-size: 14px; line-height: 1.9; }
}

/* ===============================================================
   5. Trust
   =============================================================== */
.lp-trust {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #faf6ee;
	color: #000;
}
.lp-trust__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; }
.lp-trust__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-trust__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 2;
}
.lp-trust__title { color: #000; }
.lp-trust__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-trust__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #000; flex-shrink: 0; }

.lp-trust__photo { position: absolute; overflow: hidden; z-index: 1; }
.lp-trust__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-trust__photo--main {
	left: calc(277 * var(--u));
	top: calc(327 * var(--u));
	width: calc(625 * var(--u));
	min-height: calc(386 * var(--u));
}
.lp-trust__photo--sub {
	left: calc(818 * var(--u));
	top: calc(610 * var(--u));
	width: calc(315 * var(--u));
	min-height: calc(237 * var(--u));
}

.lp-trust__copy {
	position: relative;
	z-index: 2;
	width: calc(563 * var(--u));
	margin: calc(469 * var(--u)) calc(160 * var(--u)) calc(102 * var(--u)) calc(1196 * var(--u));
	min-height: calc(378 * var(--u));
}
.lp-trust__copy-title {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}
.lp-trust__copy-title > span { display: block; }
.lp-trust__copy-title .-tight { letter-spacing: calc(-6.4 * var(--u)); }
.lp-trust__copy-body {
	margin: calc(40 * var(--u)) 0 0;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 2;
	font-weight: 500;
}

@media (max-width: 768px) {
	.lp-trust {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-trust__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-trust__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-trust__bullet { width: 12px; height: 3px; }
	.lp-trust__photo--main {
		position: relative; left: auto; top: auto;
		width: calc(100% + 40px);
		height: auto;
		aspect-ratio: 625 / 386;
		margin: 32px -20px 0;
	}
	/* photo--subはmainに少し被せて配置 */
	.lp-trust__photo--sub {
		position: relative; left: auto; top: auto;
		width: 55%;
		height: auto;
		aspect-ratio: 315 / 237;
		margin: -40px 0 0 auto;
		z-index: 2;
	}
	.lp-trust__copy {
		position: relative; left: auto; top: auto;
		width: 100%;
		margin: 32px 0 0 0;
		min-height: 0;
		padding: 20px;
		background: rgba(255,255,255,0.7);
		backdrop-filter: blur(2px);
	}
	.lp-trust__copy-title { font-size: 26px; white-space: normal; }
	.lp-trust__copy-body { font-size: 14px; line-height: 1.9; margin-top: 20px; }
}

/* ===============================================================
   6. Environment
   =============================================================== */
.lp-environment {
	position: relative;
	width: 100%;
	height: calc(1300 * var(--u));
	overflow: hidden;
	color: #fff;
}
.lp-environment__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; }
.lp-environment__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-environment__bg-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.7); }


.lp-environment__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 3;
}
.lp-environment__title { color: #fff; }
.lp-environment__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-environment__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #fff; flex-shrink: 0; }

.lp-environment__lead {
	position: absolute;
	left: 50%;
	top: calc(382 * var(--u));
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	transform: translateX(-50%);
	z-index: 2;
}

.lp-environment__panel {
	position: absolute;
	left: 50%;
	top: calc(552 * var(--u));
	width: calc(1000 * var(--u));
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	gap: calc(40 * var(--u));
	z-index: 2;
}
.lp-environment__divider {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
}
.lp-environment__line {
	flex: 1 0 0;
	height: 1px;
	background: #d9d9d9;
}
.lp-environment__divider-text {
	margin: 0;
	font-size: clamp(10px, calc(30 * var(--u)), 30px);
	font-weight: 500;
	line-height: 1.4;
	color: #fff;
	white-space: nowrap;
}

.lp-environment__cards { display: flex; gap: calc(40 * var(--u)); }
.lp-environment__card {
	flex: 1 0 0;
	background: #fff;
	color: #333;
	padding: calc(30 * var(--u)) calc(40 * var(--u));
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: calc(20 * var(--u));
}
.lp-environment__card-headline { font-weight: 600; line-height: 1.6; }
.lp-environment__card-headline p { margin: 0; }
.lp-environment__card-headline p:first-child { font-size: clamp(10px, calc(30 * var(--u)), 30px); }
.lp-environment__card-headline .-lg { font-size: clamp(10px, calc(30 * var(--u)), 30px); }
.lp-environment__card-headline .-sm { font-size: clamp(10px, calc(20 * var(--u)), 20px); color: #333; }
.lp-environment__card-headline.-single p { font-size: clamp(10px, calc(30 * var(--u)), 30px); }
.lp-environment__card-body {
	margin: 0;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	font-weight: 500;
	line-height: 2;
}
.lp-environment__card-note {
	margin: 0;
	font-size: clamp(9px, calc(13 * var(--u)), 13px);
	font-weight: 500;
	line-height: 1.7;
	color: #777;
	text-align: left;
}

.lp-environment__bottom {
	position: relative;
	width: 90vw;
	margin-top: calc(-130 * var(--u));
	margin-left: calc((1000 * var(--u) - 90vw) / 2);
	z-index: -1;
	padding: calc(140 * var(--u)) calc(20 * var(--u)) calc(70 * var(--u)) calc(20 * var(--u));
	background: rgba(0, 72, 255, 0.5);
	font-size: clamp(10px, calc(40 * var(--u)), 40px);
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
	text-align: center;
}

@media (max-width: 768px) {
	.lp-environment {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-environment__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-environment__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-environment__bullet { width: 12px; height: 3px; }
	.lp-environment__lead {
		position: relative; left: auto; top: auto;
		transform: none;
		margin: 32px 0 0;
		font-size: 24px;
		white-space: normal;
	}
	.lp-environment__panel {
		position: relative; left: auto; top: auto;
		width: 100%;
		transform: none;
		margin-top: 32px;
		gap: 24px;
	}
	.lp-environment__divider-text { font-size: 18px; }
	.lp-environment__cards { flex-direction: column; gap: 16px; }
	.lp-environment__card { padding: 24px; gap: 14px; }
	.lp-environment__card-headline.-single p,
	.lp-environment__card-headline p:first-child,
	.lp-environment__card-headline .-lg { font-size: 22px; }
	.lp-environment__card-headline .-sm { font-size: 14px; }
	.lp-environment__card-body { font-size: 14px; line-height: 1.9; }
	.lp-environment__card-note { font-size: 12px; line-height: 1.7; }
	.lp-environment__bottom {
		position: relative; left: auto; top: auto;
		transform: none;
		width: 100%;
		z-index: 3;
		margin: 0;
		padding: 24px 20px;
		font-size: 18px;
		white-space: normal;
		background: rgba(0, 72, 255, 0.5);
	}
}

/* ===============================================================
   7. LIFE
   =============================================================== */
.lp-life {
	position: relative;
	width: 100%;
	overflow: hidden;
	color: #000;
	padding-bottom: calc(80 * var(--u));
}
.lp-life__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; }
.lp-life__bg img {
	width: 100%; height: 100%; object-fit: cover;
	display: block;
	mix-blend-mode: multiply;
	opacity: 0.8;
}

.lp-life__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 3;
}
.lp-life__title { color: #000; }
.lp-life__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
	white-space: nowrap;
}
.lp-life__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #000; flex-shrink: 0; }

.lp-life__hero {
	position: relative;
	z-index: 2;
}
.lp-life__hero-img {
	position: absolute;
	left: calc(498 * var(--u));
	top: 0;
	width: calc(451 * var(--u));
	min-height: calc(543 * var(--u));
}
.lp-life__hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-life__hero-text {
	position: absolute;
	left: calc(50% + 349 * var(--u));
	top: calc(279 * var(--u));
	width: calc(960 * var(--u));
	transform: translateX(-50%);
	text-align: right;
}
.lp-life__hero-text h3 {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}
.lp-life__hero-text h3 span { display: block; }
.lp-life__hero-body {
	margin-top: calc(40 * var(--u));
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 2;
	font-weight: 500;
}
.lp-life__hero-body p { margin: 0; }

.lp-life__card {
	position: relative;
	background: #fff;
	border: 1px solid #000;
	padding: calc(40 * var(--u));
	z-index: 2;
}
.lp-life__card--full  { margin-left: calc(320 * var(--u)); width: calc(1200 * var(--u)); }
.lp-life__card--media { margin-left: calc(400 * var(--u)); width: calc(1200 * var(--u)); display: flex; gap: calc(40 * var(--u)); align-items: flex-start; }
/* 1枚目: hero の絶対配置コンテンツ（~543u）をかわす margin-top */
.lp-life__card:nth-child(4) { margin-top: calc(623 * var(--u)); }
/* 2枚目以降: 等間隔で積む */
.lp-life__card:nth-child(5),
.lp-life__card:nth-child(6),
.lp-life__card:nth-child(7),
.lp-life__card:nth-child(8) { margin-top: calc(40 * var(--u)); }

.lp-life__card-head {
	display: flex;
	gap: calc(30 * var(--u));
	align-items: flex-start;
}
.lp-life__num {
	position: relative;
	flex-shrink: 0;
	width: calc(75 * var(--u));
	min-height: calc(112 * var(--u));
	margin-top: calc(-60 * var(--u));
	margin-left: calc(-16 * var(--u));
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: calc(10 * var(--u));
	padding-right: calc(13 * var(--u));
}
.lp-life__num-bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	display: block;
}
.lp-life__num-text {
	position: relative;
	font-family: "Cormorant Infant", serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp(10px, calc(40 * var(--u)), 40px);
	color: #fff;
	line-height: 1;
}
.lp-life__card-title {
	flex: 1 0 0;
	font-size: clamp(10px, calc(30 * var(--u)), 30px);
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
}
.lp-life__card-title p { margin: 0; }
.lp-life__card-title .-sm { font-size: clamp(10px, calc(20 * var(--u)), 20px); }
.lp-life__card-text {
	margin: calc(40 * var(--u)) 0 0;
	font-size: clamp(10px, calc(18 * var(--u)), 18px);
	font-weight: 500;
	line-height: 2;
}

.lp-life__media { flex-shrink: 0; width: calc(500 * var(--u)); min-height: calc(276 * var(--u)); overflow: hidden; }
.lp-life__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-life__media-body { flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; gap: calc(40 * var(--u)); }
.lp-life__media-body .lp-life__card-text { margin: 0; }

.lp-life__example {
	display: flex;
	gap: calc(20 * var(--u));
	align-items: center;
	background: #faf6ee;
	border-left: 1px solid #000;
	padding: calc(10 * var(--u)) calc(10 * var(--u)) calc(10 * var(--u)) calc(20 * var(--u));
}
.lp-life__example-label {
	font-weight: 700;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 1.6;
	margin: 0;
	white-space: nowrap;
}
.lp-life__example-text {
	flex: 1 0 0;
	font-size: clamp(10px, calc(15 * var(--u)), 15px);
	line-height: 1.4;
	margin: 0;
}

.lp-life__slot {
	display: flex;
	gap: calc(40 * var(--u));
	margin-top: calc(40 * var(--u));
	justify-content: center;
}
.lp-life__slot-item {
	flex: 1 0 0;
	min-width: 0;
	border-top: 1px solid #000;
	padding-top: calc(20 * var(--u));
	display: flex;
	gap: calc(20 * var(--u));
	align-items: center;
	justify-content: center;
}
.lp-life__slot-item--centered {
	flex-direction: column;
	align-items: center;
}
.lp-life__icon { width: calc(100 * var(--u)); min-height: calc(100 * var(--u)); flex-shrink: 0; }
.lp-life__icon img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lp-life__slot-text { flex: 1 0 0; display: flex; flex-direction: column; gap: calc(15 * var(--u)); }
.lp-life__slot-text .-name {
	margin: 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 600;
	line-height: 1.4;
}
.lp-life__slot-text .-name.-center { text-align: center; }
.lp-life__slot-text .-name .-sm { font-size: clamp(10px, calc(18 * var(--u)), 18px); }
.lp-life__slot-text .-desc {
	margin: 0;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 1.6;
}

@media (max-width: 768px) {
	.lp-life {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-life__bg img { object-position: top; }
	.lp-life__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-life__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-life__bullet { width: 12px; height: 3px; }

	.lp-life__hero { display: flex; flex-direction: column; gap: 12px; margin-top: -92px; }
	.lp-life__hero-img {
		position: relative; left: auto; top: auto;
		width: 30%;
		height: auto;
		aspect-ratio: 451 / 543;
		margin-left: auto;
	}
	.lp-life__hero-text {
		position: relative; left: auto; top: auto;
		width: 100%;
		transform: none;
		text-align: left;
	}
	.lp-life__hero-text h3 { font-size: 24px; white-space: normal; }
	.lp-life__hero-body { font-size: 14px; line-height: 1.9; margin-top: 20px; }

	.lp-life__card,
	.lp-life__card--full,
	.lp-life__card--media {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		padding: 24px 20px;
		margin: 40px 0 0 0;
	}
	.lp-life__card:nth-child(4),
	.lp-life__card:nth-child(5),
	.lp-life__card:nth-child(6),
	.lp-life__card:nth-child(7),
	.lp-life__card:nth-child(8) {
		top: auto;
		margin-top: 40px;
	}
	.lp-life__card--media { flex-direction: column; gap: 20px; }
	.lp-life__media { width: 100%; height: auto; aspect-ratio: 500 / 276; }
	.lp-life__media-body { gap: 20px; }
	.lp-life__num {
		width: 50px;
		height: 75px;
		margin-top: -40px;
		margin-left: -8px;
		margin-bottom: 8px;
		padding-bottom: 4px;
		padding-right: 10px;
	}
	.lp-life__num-text { font-size: 28px; }
	.lp-life__card-title { font-size: 18px; }
	.lp-life__card-title .-sm { font-size: 14px; }
	.lp-life__card-text { font-size: 14px; line-height: 1.9; margin-top: 20px; }

	.lp-life__slot { flex-direction: column; gap: 24px; margin-top: 24px; }
	.lp-life__slot-item { flex-direction: column; align-items: center; padding-top: 16px; gap: 12px; }
	.lp-life__icon { width: 80px; height: 80px; }
	.lp-life__slot-text .-name { font-size: 18px; text-align: center; }
	.lp-life__slot-text .-name .-sm { font-size: 14px; }
	.lp-life__slot-text .-desc { font-size: 13px; line-height: 1.7; text-align: center; }

	.lp-life__example { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 16px; }
	.lp-life__example-label { font-size: 14px; }
	.lp-life__example-text { font-size: 13px; }
}

/* ===============================================================
   8. Job Specs
   =============================================================== */
.lp-jobspecs {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #faf6ee;
	color: #000;
}
.lp-jobspecs__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; }
.lp-jobspecs__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-jobspecs__head {
	position: absolute;
	left: calc(160 * var(--u));
	top: calc(123 * var(--u));
	width: calc(430 * var(--u));
	z-index: 2;
}
.lp-jobspecs__title { color: #000; }
.lp-jobspecs__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
}
.lp-jobspecs__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #000; flex-shrink: 0; }

.lp-jobspecs__panel {
	position: relative;
	z-index: 2;
	width: calc(1018 * var(--u));
	margin: calc(405 * var(--u)) auto calc(180 * var(--u));
	padding: calc(30 * var(--u)) calc(60 * var(--u));
	background: rgba(226, 48, 126, 0.85);
	color: #fff;
	display: flex;
	flex-direction: column;
	gap: calc(10 * var(--u));
	align-items: center;
}
.lp-jobspecs__main {
	margin: 0;
	font-size: clamp(10px, calc(40 * var(--u)), 40px);
	font-weight: 600;
	line-height: 2;
	text-align: center;
}
.lp-jobspecs__divider { width: 100%; height: 1px; background: #fff; }
.lp-jobspecs__sub {
	display: flex;
	gap: calc(20 * var(--u));
	align-items: center;
	justify-content: center;
}
.lp-jobspecs__pill {
	border: 1px solid rgba(255, 255, 255, 0.5);
	padding: calc(5 * var(--u)) calc(10 * var(--u));
	font-size: clamp(10px, calc(18 * var(--u)), 18px);
	line-height: 1;
}
.lp-jobspecs__sub p { margin: 0; }
.lp-jobspecs__sub .-lg { font-size: clamp(10px, calc(24 * var(--u)), 24px); font-weight: 600; line-height: 1.6; }
.lp-jobspecs__sub .-sm { font-size: clamp(10px, calc(16 * var(--u)), 16px); line-height: 1.6; }

@media (max-width: 768px) {
	.lp-jobspecs {
		height: auto;
		padding: 60px 20px 80px;
	}
	.lp-jobspecs__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-jobspecs__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-jobspecs__bullet { width: 12px; height: 3px; }
	.lp-jobspecs__panel {
		position: relative; left: auto; top: auto;
		width: 100%;
		transform: none;
		margin-top: 32px;
		padding: 24px 20px;
		gap: 12px;
	}
	.lp-jobspecs__main { font-size: 18px; line-height: 1.6; }
	.lp-jobspecs__pill { font-size: 13px; padding: 4px 8px; }
	.lp-jobspecs__sub { flex-direction: column; gap: 8px; }
	.lp-jobspecs__sub .-lg { font-size: 18px; }
	.lp-jobspecs__sub .-sm { font-size: 13px; }
}

/* ===============================================================
   9. Requirements
   =============================================================== */
.lp-requirements {
	position: relative;
	width: 100%;
	padding: calc(123 * var(--u)) 0 calc(80 * var(--u));
	overflow: hidden;
	background: #faf6ee;
	color: #000;
}
.lp-requirements__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; pointer-events: none; }
.lp-requirements__bg img { width: 100%; height: 100%; object-fit: cover; display: block; mix-blend-mode: multiply; }

.lp-requirements__head {
	position: relative;
	left: calc(160 * var(--u));
	top: 0;
	width: calc(430 * var(--u));
	z-index: 2;
}
.lp-requirements__title { color: #000; }
.lp-requirements__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
}
.lp-requirements__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #000; flex-shrink: 0; }

.lp-requirements__list {
	position: relative;
	margin: calc(143 * var(--u)) auto 0;
	padding: 0;
	width: calc(960 * var(--u));
	display: flex;
	flex-direction: column;
	gap: calc(20 * var(--u));
	z-index: 2;
}
.lp-requirements__row {
	background: #fff;
	border-left: 1px solid #000;
	padding: calc(20 * var(--u));
	display: flex;
	gap: calc(40 * var(--u));
	align-items: center;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
}
.lp-requirements__row dt {
	width: calc(140 * var(--u));
	flex-shrink: 0;
	font-weight: 600;
	line-height: 1.6;
}
.lp-requirements__row dd {
	flex: 1 0 0;
	margin: 0;
	font-weight: 400;
	line-height: 1.8;
}

@media (max-width: 768px) {
	.lp-requirements { padding: 60px 20px 80px; }
	.lp-requirements__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-requirements__title { white-space: normal; }
	.lp-requirements__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; }
	.lp-requirements__bullet { width: 12px; height: 3px; }
	.lp-requirements__list {
		margin-top: 32px;
		width: 100%;
		gap: 12px;
	}
	.lp-requirements__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding: 16px;
		font-size: 14px;
	}
	.lp-requirements__row dt { width: auto; font-size: 14px; }
}

/* ===============================================================
   10. ENTRY
   =============================================================== */
.lp-entry {
	position: relative;
	width: 100%;
	padding: calc(123 * var(--u)) 0 calc(60 * var(--u));
	overflow: hidden;
	background: #faf6ee;
	color: #000;
}
.lp-entry__bg { position: absolute; top: -120px; bottom: -120px; left: calc((100% - 100vw) / 2); width: 100vw; pointer-events: none; }
.lp-entry__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-entry__head {
	position: relative;
	left: calc(160 * var(--u));
	top: 0;
	width: calc(430 * var(--u));
	z-index: 2;
}
.lp-entry__title { color: #000; }
.lp-entry__subtitle {
	display: flex;
	align-items: center;
	gap: calc(20 * var(--u));
	margin: calc(30 * var(--u)) 0 0;
	font-size: clamp(10px, calc(24 * var(--u)), 24px);
	font-weight: 500;
}
.lp-entry__bullet { display: inline-block; width: calc(14 * var(--u)); min-height: calc(4 * var(--u)); background: #000; flex-shrink: 0; }

.lp-entry__inner {
	position: relative;
	margin: calc(100 * var(--u)) auto 0;
	padding: 0 calc(160 * var(--u));
	display: flex;
	gap: calc(54 * var(--u));
	align-items: center;
	z-index: 2;
}
.lp-entry__intro {
	flex: 1 0 0;
	min-width: 0;
}
.lp-entry__intro h3 {
	margin: 0;
	font-size: clamp(10px, calc(50 * var(--u)), 50px);
	font-weight: 500;
	line-height: 1.4;
}
.lp-entry__intro h3 span { display: block; }
.lp-entry__intro-body {
	margin-top: calc(40 * var(--u));
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	font-weight: 500;
	line-height: 2;
}
.lp-entry__intro-body p { margin: 0; }

.lp-entry__form {
	position: relative;
	flex-shrink: 0;
	padding: calc(80 * var(--u));
	display: flex;
	flex-direction: column;
	gap: calc(40 * var(--u));
	overflow: hidden;
}
.lp-entry__form-bg { position: absolute; inset: 0; }
.lp-entry__form-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-entry__form-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.6); }
.lp-entry__field {
	position: relative;
	display: flex;
	gap: calc(40 * var(--u));
	align-items: center;
}
.lp-entry__label {
	width: calc(180 * var(--u));
	color: #fff;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	font-weight: 500;
	line-height: 1.4;
	display: flex;
	align-items: center;
	gap: calc(10 * var(--u));
	flex-wrap: wrap;
}
.lp-entry__label .-lg { font-size: clamp(10px, calc(16 * var(--u)), 16px); }
.lp-entry__label .-sm { font-size: clamp(10px, calc(14 * var(--u)), 14px); }
.lp-entry__required {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #c30000;
	color: #fff;
	font-size: clamp(10px, calc(14 * var(--u)), 14px);
	line-height: 1.4;
	padding: calc(2 * var(--u)) calc(6 * var(--u)) calc(3 * var(--u));
	border-radius: calc(3 * var(--u));
}
.lp-entry__input {
	width: calc(600 * var(--u));
	padding: calc(15 * var(--u));
	border: none;
	background: #fff;
	font-family: inherit;
	font-size: clamp(10px, calc(18 * var(--u)), 18px);
	font-weight: 500;
	line-height: 1.4;
	color: #333;
}
.lp-entry__textarea { min-height: calc(200 * var(--u)); resize: vertical; }
.lp-entry__field--privacy { align-items: flex-start; }
.lp-entry__check {
	display: inline-flex;
	align-items: center;
	gap: calc(10 * var(--u));
	cursor: pointer;
}
.lp-entry__check input {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	opacity: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.lp-entry__check-mark {
	width: calc(16 * var(--u));
	min-height: calc(16 * var(--u));
	border: 1px solid #fff;
	border-radius: 50%;
	display: inline-block;
	flex-shrink: 0;
}
.lp-entry__check input:checked + .lp-entry__check-mark { background: #fff; }
.lp-entry__check input:focus-visible + .lp-entry__check-mark {
	outline: 3px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 5px rgba(227, 45, 120, 0.55);
}
.lp-entry__check-text {
	color: #fff;
	font-size: clamp(10px, calc(18 * var(--u)), 18px);
	line-height: 1.4;
}
.lp-entry__submit-wrap { position: relative; z-index: 2; display: flex; justify-content: flex-end; }
.lp-entry__submit {
	display: inline-flex;
	gap: calc(30 * var(--u));
	align-items: center;
	background: #fff;
	color: #333;
	border: none;
	border-radius: 100px;
	padding: calc(15 * var(--u)) calc(15 * var(--u)) calc(15 * var(--u)) calc(60 * var(--u));
	font-family: inherit;
	font-size: clamp(10px, calc(18 * var(--u)), 18px);
	font-weight: 700;
	cursor: pointer;
}
.lp-entry__submit img { width: calc(24 * var(--u)); height: calc(24 * var(--u)); }

.lp-entry__radio-group { display: flex; flex-wrap: wrap; gap: calc(30 * var(--u)); }
.lp-entry__alert {
	position: relative;
	z-index: 2;
	background: #fff;
	color: #c30000;
	font-size: clamp(10px, calc(15 * var(--u)), 15px);
	font-weight: 500;
	line-height: 1.6;
	padding: calc(14 * var(--u)) calc(20 * var(--u));
	border-radius: calc(4 * var(--u));
	white-space: pre-line;
}
.lp-entry__error {
	position: absolute;
	left: 0;
	top: 100%;
	z-index: 2;
	display: inline-block;
	max-width: 100%;
	margin-top: calc(6 * var(--u));
	color: #c30000;
	background: #fff;
	font-size: clamp(10px, calc(13 * var(--u)), 13px);
	line-height: 1.4;
	padding: calc(4 * var(--u)) calc(10 * var(--u));
	border-radius: calc(3 * var(--u));
	box-shadow: 0 calc(2 * var(--u)) calc(8 * var(--u)) rgba(0, 0, 0, 0.25);
}
.lp-entry__thanks-title {
	position: relative;
	z-index: 2;
	color: #fff;
	font-size: clamp(14px, calc(28 * var(--u)), 28px);
	font-weight: 700;
	line-height: 1.5;
}
.lp-entry__thanks-body {
	position: relative;
	z-index: 2;
	margin-top: calc(24 * var(--u));
	color: #fff;
	font-size: clamp(10px, calc(16 * var(--u)), 16px);
	line-height: 1.9;
}


@media (max-width: 768px) {
	.lp-entry { padding: 60px 20px 120px; color: #fff; }
	.lp-entry__head { position: relative; left: auto; top: auto; width: 100%; }
	.lp-entry__title { color: #fff; }
	.lp-entry__subtitle { gap: 12px; margin-top: 16px; font-size: 14px; color: #fff; }
	.lp-entry__bullet { width: 12px; height: 3px; background: #fff; }

	.lp-entry__inner {
		flex-direction: column;
		gap: 32px;
		margin-top: 32px;
		padding: 0;
		align-items: stretch;
	}
	.lp-entry__intro { color: #fff; }
	.lp-entry__intro h3 { font-size: 24px; color: #fff; }
	.lp-entry__intro-body { font-size: 14px; line-height: 1.9; margin-top: 20px; color: #fff; }

	.lp-entry__form {
		padding: 32px 20px;
		gap: 20px;
	}
	.lp-entry__field { flex-direction: column; align-items: flex-start; gap: 8px; }
	.lp-entry__label {
		width: 100%;
		font-size: 14px;
	}
	.lp-entry__label .-lg { font-size: 14px; }
	.lp-entry__label .-sm { font-size: 12px; }
	.lp-entry__input { width: 100%; font-size: 16px; padding: 12px; }
	.lp-entry__textarea { height: 140px; }
	.lp-entry__required { font-size: 11px; padding: 2px 6px 3px; border-radius: 3px; }
	.lp-entry__check-mark { width: 16px; height: 16px; }
	.lp-entry__check-text { font-size: 14px; }
	.lp-entry__submit { font-size: 16px; padding: 12px 12px 12px 40px; gap: 16px; }
	.lp-entry__submit img { width: 18px; height: 18px; }
	.lp-entry__radio-group { gap: 16px 24px; }
	.lp-entry__alert { font-size: 14px; padding: 12px 16px; }
	.lp-entry__error { margin-top: 4px; font-size: 12px; }
	.lp-entry__thanks-title { font-size: 20px; }
	.lp-entry__thanks-body { margin-top: 16px; font-size: 14px; }
}

/* ===============================================================
   FOOTER
   =============================================================== */
.lp-footer {
	position: relative;
	width: 100%;
	height: calc(148 * var(--u));
	overflow: hidden;
	color: #fff;
	font-family: "Noto Serif JP", "Yu Mincho", "游明朝", serif;
}
.lp-footer__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.lp-footer__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lp-footer__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	padding: 0 calc(60 * var(--u));
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: calc(40 * var(--u));
}

.lp-footer__sns {
	display: flex;
	gap: calc(40 * var(--u));
	align-items: center;
}
.lp-footer__sns-item {
	display: flex;
	gap: calc(12 * var(--u));
	align-items: center;
}
.lp-footer__sns-item p {
	margin: 0;
	font-size: clamp(10px, calc(13 * var(--u)), 13px);
	color: #fff;
}
.lp-footer__sns-item a {
	display: inline-block;
	width: calc(28 * var(--u));
	min-height: calc(28 * var(--u));
}
.lp-footer__sns-item img {
	width: 100%;
	height: 100%;
	display: block;
}

.lp-footer__nav {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: calc(8 * var(--u));
	text-align: right;
}
.lp-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: calc(20 * var(--u));
	font-size: clamp(10px, calc(13 * var(--u)), 13px);
}
.lp-footer__links li + li {
	border-left: 1px solid rgba(255, 255, 255, 0.5);
	padding-left: calc(20 * var(--u));
}
.lp-footer__links a {
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s;
}
.lp-footer__links a:hover { opacity: 0.7; }
.lp-footer__copy {
	font-family: "Cormorant Infant", "Noto Serif JP", serif;
	font-size: clamp(10px, calc(11 * var(--u)), 11px);
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.05em;
}

@media (max-width: 768px) {
	.lp-footer {
		height: auto;
		min-height: 0;
		padding: 32px 20px;
	}
	.lp-footer__inner {
		flex-direction: column;
		gap: 24px;
		padding: 0;
		align-items: center;
	}
	.lp-footer__sns {
		flex-direction: column;
		gap: 12px;
		align-items: center;
	}
	.lp-footer__sns-item p { font-size: 12px; }
	.lp-footer__sns-item a { width: 24px; height: 24px; }
	.lp-footer__nav {
		align-items: center;
		text-align: center;
		gap: 8px;
	}
	.lp-footer__links {
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px 16px;
		font-size: 12px;
	}
	.lp-footer__links li + li {
		border-left: none;
		padding-left: 0;
	}
	.lp-footer__copy { font-size: 10px; }
}

/* ===============================================================
   FLOATING ENTRY BUTTON
   =============================================================== */
.lp-floating-entry {
	position: fixed;
	left: 30px;
	bottom: 30px;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 110px;
	height: 110px;
	background: linear-gradient(135deg, #e2307e, #ff6170);
	color: #fff;
	text-decoration: none;
	border-radius: 6px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28), 0 2px 6px rgba(0, 0, 0, 0.18);
	transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.6s ease, visibility 0.6s ease;
	will-change: transform;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.lp-floating-entry.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.lp-floating-entry:hover {
	transform: translateY(4px);
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.22), 0 1px 2px rgba(0, 0, 0, 0.18);
}
.lp-floating-entry:active {
	transform: translateY(6px);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
}
.lp-floating-entry__text {
	font-family: "Cormorant Infant", serif;
	font-style: italic;
	font-weight: 600;
	font-size: 26px;
	line-height: 1;
	letter-spacing: 0.06em;
	color: #fff;
}
.lp-floating-entry.is-parked {
	position: absolute;
	bottom: auto;
}

@media (max-width: 768px) {
	.lp-floating-entry {
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		height: 56px;
		border-radius: 0;
		box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.25);
	}
	.lp-floating-entry:hover {
		transform: translateY(2px);
		box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.22);
	}
	.lp-floating-entry:active {
		transform: translateY(3px);
	}
	.lp-floating-entry__text {
		font-size: 22px;
	}
}

/* === アニメーション初期状態（チカチカ防止） === */
.lp-kv__deco,
.lp-kv__title-1,
.lp-kv__title-2,
.lp-kv__title-3,
.lp-kv__lead,
.lp-kv__badge,
.lp-message__bg,
.lp-message__photo,
.lp-message__photos,
.lp-message__copy,
.lp-message__head [class$="__subtitle"],
.lp-career__photo,
.lp-career__bg,
.lp-stability__bg,
.lp-trust__bg,
.lp-environment__bg,
.lp-life__bg,
.lp-jobspecs__bg,
.lp-requirements__bg,
.lp-entry__bg {
	opacity: 0;
}

@media (max-width: 768px) {
	.lp-kv__deco,
	.lp-kv__title-1,
	.lp-kv__title-2,
	.lp-kv__title-3,
	.lp-kv__lead,
	.lp-kv__badge {
		opacity: 1;
		visibility: visible;
	}

	.lp-message__bg { opacity: 1; }
}

.lp-message__splatter-canvas {
	position: absolute;
	display: none;
	max-width: none;
}
@media (max-width: 768px) {
	.lp-message__bg > .lp-message__splatter {
		display: none;
	}
	.lp-message__splatter-canvas {
		display: block;
	}
	.lp-message__splatter-canvas--white {
		left: calc(128 * var(--u));
		top: 0;
		width: calc(1665 * var(--u));
		aspect-ratio: 1665 / 960;
	}
	.lp-message__splatter-canvas--pink {
		left: calc(245 * var(--u));
		top: calc(26 * var(--u));
		width: calc(996 * var(--u));
		aspect-ratio: 996 / 934;
		mix-blend-mode: multiply;
	}
}
