/* セクション見出し・ページヒーロー・RESERVE/RECRUIT CTA */

/* SECTION TITLE */
.lw-sec-title__eyebrow {
	line-height: normal;
	margin-bottom: 14px;
	font-family: var(--lw-font-en);
	font-size: var(--lw-fs-label);
	font-weight: 700;
	letter-spacing: 0.26em;
	color: var(--lw-accent); /* ink 上 5.3:1。プレースホルダー等の明るい面の上には置かない */
}

.lw-sec-title__row {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.lw-sec-title__bar {
	flex: none;
	width: 4px;
	height: clamp(30px, 5vw, 58px);
	margin-top: 4px;
	background: var(--lw-accent);
}

.lw-sec-title__heading {
	font-size: var(--lw-fs-display-m);
	letter-spacing: -0.01em;
	line-height: normal; /* Claude Design は行間指定なし（フォントの標準行間）。Oswald 配置後に同じ高さになる */
}

.lw-sec-title--s .lw-sec-title__heading {
	font-size: var(--lw-fs-display-s);
}

.lw-sec-title--s .lw-sec-title__bar {
	height: clamp(28px, 3.8vw, 46px);
}

.lw-sec-title__sub {
	line-height: normal;
	margin-top: 10px;
	font-size: var(--lw-fs-small);
	color: var(--lw-muted);
}

/* PAGE HERO */
.lw-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(280px, 40vw, 480px);
	padding-block: clamp(40px, 6vw, 72px);
	background: var(--lw-ink-2);
	overflow: hidden;
}

.lw-hero--tall {
	min-height: clamp(420px, 56svh, 640px);
}

.lw-hero__media {
	position: absolute;
	inset: 0;
}

.lw-hero__media .lw-photo {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
	height: 100%;
}

.lw-hero__scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(100deg, rgba(10, 10, 10, 0.92) 0%, rgba(10, 10, 10, 0.72) 40%, rgba(10, 10, 10, 0.3) 72%, rgba(10, 10, 10, 0.12) 100%),
		linear-gradient(180deg, rgba(10, 10, 10, 0.3) 0%, rgba(10, 10, 10, 0) 40%, rgba(10, 10, 10, 0.6) 100%);
}

.lw-hero__inner {
	position: relative;
}

.lw-hero__eyebrow {
	margin-bottom: 18px;
	font-family: var(--lw-font-en);
	font-size: var(--lw-fs-label);
	font-weight: 700;
	letter-spacing: 0.26em;
	color: var(--lw-accent-pale);
}

.lw-hero__title {
	font-size: var(--lw-fs-hero-m);
	line-height: 0.92;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}

.lw-hero--top .lw-hero__title {
	font-size: var(--lw-fs-hero-l);
}

.lw-hero__sub {
	margin-top: 14px;
	font-family: var(--lw-font-en);
	font-size: var(--lw-fs-eyebrow);
	letter-spacing: 0.24em;
	color: var(--lw-muted);
}

.lw-hero__lead {
	max-width: 52ch;
	margin-top: 22px;
	font-size: var(--lw-fs-body);
	line-height: 1.9;
	color: var(--lw-text);
}

.lw-hero__actions {
	display: grid;
	gap: 8px;
	margin-top: 28px;
}

@media (min-width: 768px) {
	.lw-hero__actions {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
	}
}

/* RESERVE CTA（バンド）。コントラスト仕様は設計書 §4-5 R4 を参照。
   文字は常に左（濃い側）。Desktop の右の淡い側には黒ボタンのみ置く。 */
.lw-cta-reserve {
	padding-block: clamp(56px, 7vw, 96px); /* 上下端は水平（斜めカットなし）。上下の余白は同じ */
	background: var(--lw-grad-reserve-band);
	color: #fff;
}

.lw-cta-reserve__inner {
	display: grid;
	gap: 24px;
}

.lw-cta-reserve__title {
	font-size: var(--lw-fs-display-l);
	line-height: 0.96;
	letter-spacing: -0.01em;
}

.lw-cta-reserve__copy {
	margin-top: 12px;
	font-size: var(--lw-fs-lead);
	font-weight: 700;
}

.lw-cta-reserve__buttons {
	display: grid;
	gap: 10px;
}

@media (min-width: 768px) {
	.lw-cta-reserve__buttons {
		display: flex;
		flex-wrap: wrap;
	}
}

@media (min-width: 1024px) {
	.lw-cta-reserve__inner {
		grid-template-columns: minmax(0, 40%) 1fr;
		align-items: center;
	}

	.lw-cta-reserve .lw-btn {
		padding: 20px 32px;
		font-size: 14px;
	}

	.lw-cta-reserve__buttons {
		justify-content: flex-end;
	}
}

/* RECRUIT CTA（写真背景＋暗幕のバナー。写真が無い間は暗いグラデーション） */
.lw-cta-recruit {
	position: relative;
	padding-block: clamp(88px, 11vw, 160px); /* 背景写真が入る想定で、縦の余白を増やす */
	background: linear-gradient(100deg, #17120F 0%, #28201D 50%, #3A2E2B 100%);
	overflow: hidden;
}

.lw-cta-recruit__media {
	position: absolute;
	inset: 0;
}

.lw-cta-recruit__media .lw-photo {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
	height: 100%;
}

.lw-cta-recruit::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(100deg, rgba(23, 18, 15, 0.95) 0%, rgba(40, 32, 29, 0.86) 50%, rgba(58, 46, 43, 0.62) 100%);
}

.lw-cta-recruit__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 24px 40px;
}

.lw-cta-recruit__eyebrow {
	margin: 0 0 14px;
	font-family: var(--lw-font-en);
	font-size: var(--lw-fs-label);
	font-weight: 700;
	letter-spacing: 0.24em;
	color: var(--lw-accent-soft);
}

.lw-cta-recruit__title {
	font-size: clamp(26px, 4.4vw, 52px);
	line-height: 1.1;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

.lw-cta-recruit__text {
	max-width: 56ch;
	margin: 16px 0 0;
	font-size: 14px;
	line-height: 1.9;
	color: rgba(var(--lw-text-rgb), 0.9);
}

.lw-cta-recruit__btn {
	line-height: normal;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	min-height: 52px;
	padding: 16px 36px;
	border: 1px solid rgba(var(--lw-text-rgb), 0.7);
	font-family: var(--lw-font-en);
	font-size: 13px;
	letter-spacing: 0.2em;
	color: var(--lw-text);
	transition: color var(--lw-btn-ease), background-color var(--lw-btn-ease), border-color var(--lw-btn-ease);
}

@media (hover: hover) and (pointer: fine) {
	.lw-cta-recruit__btn:hover {
		background: var(--lw-text);
		border-color: var(--lw-text);
		color: var(--lw-inverse);
	}
}

.lw-cta-recruit__btn:focus-visible {
	background: var(--lw-text);
	border-color: var(--lw-text);
	color: var(--lw-inverse);
	outline: 2px solid var(--lw-accent-pale);
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.lw-cta-recruit__btn {
		width: 100%;
		margin-left: 0;
	}
}

/* RESERVE バンド上の無効ボタン：黒背景＋破線枠＋淡色の文字（読める状態を保つ。淡いピンクの上に直接置かない） */
.lw-cta-reserve .lw-btn[aria-disabled="true"] {
	background: var(--lw-paper-text);
	border: 1px dashed var(--lw-muted);
	color: var(--lw-text);
}

/* ---- モバイル（〜767px）: RESERVE / RECRUIT ---- */
@media (max-width: 767px) {
	.lw-cta-reserve {
		padding-block: 60px;
	}

	.lw-cta-reserve .lw-btn {
		min-height: 56px;
	}

	.lw-cta-recruit {
		padding-block: 88px;
	}

	.lw-cta-recruit__title {
		font-size: clamp(25px, 7.4vw, 34px);
		line-height: 1.25;
	}

	.lw-cta-recruit__btn {
		min-height: 56px;
	}
}

/* flex コンテナ内では矢印前の空白が消えるため、間隔を明示 */
.lw-cta-recruit__btn .lw-arr {
	margin-left: 0.46em;
}

/* ---- 冒頭要約（HERO直下の控えめな帯。1〜2文） ---- */
.lw-summary {
	padding-block: clamp(22px, 3vw, 36px);
	border-bottom: 1px solid var(--lw-line-weak);
}

.lw-summary__text {
	max-width: 46em;
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: var(--lw-text);
}

@media (min-width: 768px) {
	.lw-summary__text {
		font-size: 16px;
	}
}
