/*
 * Components: buttons, LINE CTA, cards, header, footer, tags, etc.
 */

/* ========== Button ========== */

.en-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	padding: var(--sp-3) var(--sp-6);
	border-radius: var(--rd-pill);
	font-weight: 700;
	font-size: var(--fs-base);
	line-height: 1.2;
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.1s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.en-btn:hover { transform: translateY(-1px); }

.en-btn--primary {
	background: var(--primary);
	color: #fff;
	box-shadow: var(--sh-cta);
}
.en-btn--primary:hover {
	background: var(--primary-dk);
	color: #fff;
}

.en-btn--secondary {
	background: var(--brand-navy);
	color: #fff;
}
.en-btn--secondary:hover {
	background: var(--brand-navy-dk);
	color: #fff;
}

.en-btn--ghost {
	background: transparent;
	border-color: var(--brand-navy);
	color: var(--brand-navy);
}
.en-btn--ghost:hover {
	background: var(--brand-navy);
	color: #fff;
}

.en-btn--lg { padding: var(--sp-4) var(--sp-8); font-size: var(--fs-lg); }
.en-btn--sm { padding: var(--sp-2) var(--sp-4); font-size: var(--fs-sm); }


/* ========== LINE CTA ========== */

.en-line-cta {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-4) var(--sp-6);
	background: var(--line-green);
	color: #fff;
	border-radius: var(--rd-lg);
	text-decoration: none;
	font-weight: 700;
	box-shadow: var(--sh-md);
	transition: transform 0.1s ease, box-shadow 0.2s ease;
}
.en-line-cta:hover {
	transform: translateY(-2px);
	box-shadow: var(--sh-lg);
	color: #fff;
}

.en-line-cta__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	flex-shrink: 0;
}

.en-line-cta__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

.en-line-cta__label {
	font-size: var(--fs-lg);
	line-height: 1.2;
}

.en-line-cta__sub {
	font-size: var(--fs-xs);
	opacity: 0.9;
	font-weight: 500;
}

.en-line-cta--sm {
	padding: var(--sp-2) var(--sp-4);
}
.en-line-cta--sm .en-line-cta__icon { width: 22px; height: 22px; }
.en-line-cta--sm .en-line-cta__label { font-size: var(--fs-base); }

.en-line-cta--lg {
	padding: var(--sp-5) var(--sp-8);
}
.en-line-cta--lg .en-line-cta__icon { width: 40px; height: 40px; }
.en-line-cta--lg .en-line-cta__label { font-size: var(--fs-xl); }


/* ========== Card ========== */

.en-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.15s ease;
}
.en-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sh-md);
	border-color: var(--primary-lt);
}

.en-card__media {
	aspect-ratio: 4 / 3;
	background: var(--bg-gray);
	overflow: hidden;
}
.en-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* 縦長写真で空だけ・屋根だけにならないように、やや下寄りを中心に切り抜き */
	object-position: center 60%;
}

.en-card__body {
	padding: var(--sp-4);
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	flex: 1;
}

.en-card__title {
	font-size: var(--fs-lg);
	font-weight: 700;
	color: var(--brand-navy);
	margin: 0;
}

.en-card__meta {
	font-size: var(--fs-sm);
	color: var(--text-muted);
}

.en-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-1);
	margin-top: auto;
	padding-top: var(--sp-2);
}


/* ========== Tag / Badge ========== */

.en-tag {
	display: inline-block;
	padding: 2px var(--sp-2);
	background: var(--bg-navy-soft);
	color: var(--brand-navy);
	border-radius: var(--rd-sm);
	font-size: var(--fs-xs);
	font-weight: 500;
	line-height: 1.5;
}
.en-tag--primary {
	background: var(--primary);
	color: #fff;
}
.en-tag--yellow {
	background: var(--accent-yellow);
	color: var(--brand-navy);
}


/* ========== Counter (trust block) ========== */

.en-counter {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sp-4);
	padding: var(--sp-8) var(--sp-6);
	background: linear-gradient(135deg, #fff6ec 0%, #fffbf3 100%);
	border: 1px solid rgba(255, 138, 31, 0.18);
	border-radius: var(--rd-lg);
	box-shadow: 0 4px 18px rgba(30, 41, 99, 0.05);
}
.en-counter--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 768px) {
	.en-counter--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--sp-3);
		padding: var(--sp-6) var(--sp-4);
	}
}
@media (max-width: 640px) {
	.en-counter {
		grid-template-columns: 1fr;
		gap: var(--sp-6);
		padding: var(--sp-6) var(--sp-4);
	}
	.en-counter--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.en-counter__item {
	text-align: center;
	padding: var(--sp-2) var(--sp-3);
	position: relative;
}
.en-counter__item + .en-counter__item {
	border-left: 1px dashed rgba(30, 41, 99, 0.15);
}
@media (max-width: 768px) {
	.en-counter--4 .en-counter__item + .en-counter__item {
		border-left: none;
	}
	.en-counter--4 .en-counter__item:nth-child(2n) {
		border-left: 1px dashed rgba(30, 41, 99, 0.15);
	}
	.en-counter--4 .en-counter__item:nth-child(n+3) {
		border-top: 1px dashed rgba(30, 41, 99, 0.15);
		padding-top: var(--sp-4);
	}
}
@media (max-width: 640px) {
	.en-counter__item + .en-counter__item {
		border-left: 0;
		border-top: 1px dashed rgba(30, 41, 99, 0.15);
		padding-top: var(--sp-5);
	}
}
/* リンクカード */
a.en-counter__item {
	display: block;
	text-decoration: none;
	color: inherit;
	border-radius: var(--rd-md);
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
a.en-counter__item:hover {
	background: rgba(255, 255, 255, 0.7);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(30, 41, 99, 0.08);
}
.en-counter__num {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
	font-size: clamp(2.5rem, 6vw, 3.5rem);
	font-weight: 900;
	color: var(--primary);
	line-height: 1;
	font-family: var(--font-sans);
	letter-spacing: -0.02em;
}
.en-counter__num::after {
	content: "+";
	font-size: 0.55em;
	color: var(--primary);
	opacity: 0.8;
	margin-left: 2px;
}
.en-counter__unit {
	display: inline-block;
	margin-left: .25rem;
	font-size: 0.45em;
	color: var(--text-muted);
	font-weight: 700;
}
.en-counter__label {
	display: block;
	margin-top: var(--sp-2);
	font-size: var(--fs-sm);
	color: var(--text);
	font-weight: 700;
}
.en-counter__sub {
	display: block;
	margin-top: .25rem;
	font-size: var(--fs-xs);
	color: var(--text-muted);
	font-weight: 500;
}


/* ========== Header ========== */

.en-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: #fff;
	border-bottom: 1px solid var(--border);
	backdrop-filter: saturate(180%) blur(4px);
}

.en-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-6);
	min-height: 64px;
}

.en-header__brand {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	font-weight: 900;
	color: var(--brand-navy);
	text-decoration: none;
	font-size: var(--fs-lg);
}

.en-header__nav {
	display: flex;
	gap: var(--sp-6);
	align-items: center;
}

.en-header__nav a {
	color: var(--brand-navy);
	font-weight: 700;
	font-size: var(--fs-sm);
}
.en-header__nav a:hover {
	color: var(--primary);
}

.en-header__cta {
	margin-left: auto;
}

.en-header__burger {
	display: none;
	background: none;
	border: 0;
	padding: var(--sp-2);
	cursor: pointer;
}
.en-header__burger span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--brand-navy);
	margin: 5px 0;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

@media (max-width: 768px) {
	.en-header__nav { display: none; }
	.en-header__cta .en-line-cta__sub { display: none; }
	.en-header__burger { display: block; }
	.en-header.is-open .en-header__nav {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 0; right: 0;
		background: #fff;
		padding: var(--sp-4);
		border-bottom: 1px solid var(--border);
		gap: var(--sp-4);
	}
}


/* ========== Footer ========== */

.en-footer {
	background: var(--brand-navy);
	color: var(--text-on-navy);
	padding: var(--sp-12) 0 var(--sp-6);
}
.en-footer a { color: #fff; opacity: 0.85; }
.en-footer a:hover { opacity: 1; color: var(--primary-lt); }

.en-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: var(--sp-8);
	margin-bottom: var(--sp-8);
}
@media (max-width: 768px) {
	.en-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.en-footer__grid { grid-template-columns: 1fr; }
}

.en-footer__brand {
	font-weight: 900;
	font-size: var(--fs-xl);
	margin-bottom: var(--sp-3);
}

.en-footer__desc {
	font-size: var(--fs-sm);
	opacity: 0.7;
	line-height: var(--lh-normal);
}

.en-footer__nav {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}

.en-footer__sub {
	font-size: var(--fs-xs);
	opacity: 0.6;
	margin-bottom: var(--sp-2);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.en-footer__related {
	font-size: var(--fs-xs);
	opacity: 0.7;
	margin-top: var(--sp-2);
}
.en-footer__related a {
	margin-right: var(--sp-3);
}

.en-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.1);
	padding-top: var(--sp-4);
	font-size: var(--fs-xs);
	opacity: 0.6;
	text-align: center;
}


/* ========== Prefecture regions (archive) ========== */

.en-pref-regions {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sp-6);
}
@media (max-width: 768px) {
	.en-pref-regions { grid-template-columns: 1fr; }
}

.en-pref-region {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-lg);
	padding: var(--sp-5);
}

.en-pref-region__title {
	font-size: var(--fs-lg);
	color: var(--brand-navy);
	margin: 0 0 var(--sp-3);
	padding-bottom: var(--sp-2);
	border-bottom: 2px solid var(--primary);
	display: inline-block;
}

.en-pref-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	list-style: none;
	padding: 0; margin: 0;
}

.en-pref-item a,
.en-pref-item span {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-1);
	padding: 4px var(--sp-3);
	border-radius: var(--rd-pill);
	font-size: var(--fs-sm);
	text-decoration: none;
	line-height: 1.4;
}

.en-pref-item--active a {
	background: var(--primary);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 2px 6px rgba(255,138,31,0.3);
}
.en-pref-item--active a:hover {
	background: var(--primary-dk);
	color: #fff;
	transform: translateY(-1px);
}

.en-pref-item--empty span {
	background: var(--bg-gray);
	color: var(--text-muted);
	cursor: default;
}

.en-pref-item__count {
	font-size: 0.75em;
	font-weight: 500;
	opacity: 0.85;
}


/* ========== Tag cloud (cuisine) ========== */

.en-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	justify-content: center;
	max-width: 900px;
	margin: 0 auto;
}

.en-tag--cloud {
	padding: var(--sp-2) var(--sp-4);
	font-size: var(--fs-base);
	text-decoration: none;
	background: var(--bg-muted);
	color: var(--brand-navy);
	border-radius: var(--rd-pill);
	border: 1px solid var(--border);
	transition: all 0.15s ease;
}
.en-tag--cloud:hover {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
	transform: translateY(-1px);
}

.en-tag__count {
	opacity: 0.7;
	font-size: 0.85em;
	margin-left: 4px;
}


/* ========== Card placeholder for missing images ========== */

.en-card__media-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	background: linear-gradient(135deg, var(--bg-muted) 0%, var(--bg-navy-soft) 100%);
	color: var(--primary);
}


/* ========== Breadcrumb ========== */

.en-breadcrumb {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	margin-bottom: var(--sp-3);
}
.en-breadcrumb a { color: var(--brand-navy); }
.en-breadcrumb a:hover { color: var(--primary); }


/* ========== Kitchencar Single ========== */

.en-kc-hero {
	position: relative;
	min-height: 440px;
	display: flex;
	align-items: flex-end;
	padding: var(--sp-16) 0 var(--sp-8);
	color: #fff;
	background: var(--brand-navy);
	overflow: hidden;
}
@media (min-width: 768px) {
	.en-kc-hero { min-height: 560px; padding-bottom: var(--sp-10); }
}
@media (min-width: 1280px) {
	.en-kc-hero { min-height: 640px; }
}

/* 画像を主役にしてフルブリードで表示 */
.en-kc-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.en-kc-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* 上部に空が入る写真でも車体が見えるように、やや下寄りを中心に切り抜き */
	object-position: center 65%;
	filter: none;
}
/* テキスト可読性のためのグラデーションオーバーレイ(下が濃い) */
.en-kc-hero__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.15) 0%,
			rgba(0,0,0,0.05) 40%,
			rgba(42,55,86,0.65) 75%,
			rgba(31,41,64,0.92) 100%);
}

.en-kc-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
}

.en-kc-hero__title {
	font-size: var(--fs-4xl);
	color: #fff;
	margin: 0 0 var(--sp-3);
	line-height: 1.15;
	text-shadow: 0 2px 8px rgba(0,0,0,0.45);
}
@media (max-width: 640px) {
	.en-kc-hero__title { font-size: var(--fs-3xl); }
}
@media (min-width: 1280px) {
	.en-kc-hero__title { font-size: var(--fs-5xl); }
}

.en-kc-hero__menu {
	font-size: var(--fs-lg);
	color: #fff;
	margin-bottom: var(--sp-4);
	text-shadow: 0 1px 4px rgba(0,0,0,0.45);
}

.en-kc-hero__prefs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

.en-kc-body {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--sp-10);
}
@media (max-width: 900px) {
	.en-kc-body { grid-template-columns: 1fr; }
}

.en-kc-block {
	margin-bottom: var(--sp-8);
}

.en-kc-pr {
	font-size: var(--fs-lg);
	line-height: var(--lh-loose);
	color: var(--text);
}

.en-kc-photo {
	border-radius: var(--rd-lg);
	box-shadow: var(--sh-md);
}

.en-kc-info {
	background: var(--bg-muted);
	border-radius: var(--rd-lg);
	padding: var(--sp-5);
	margin-bottom: var(--sp-4);
}
.en-kc-info__row {
	padding: var(--sp-2) 0;
	border-bottom: 1px solid var(--border);
}
.en-kc-info__row:last-child { border-bottom: 0; }
.en-kc-info__label {
	font-size: var(--fs-xs);
	color: var(--text-muted);
	font-weight: 700;
	letter-spacing: 0.05em;
}
.en-kc-info__value {
	font-size: var(--fs-base);
	color: var(--text);
	margin-top: 2px;
}
.en-kc-info__value .en-tag {
	margin-right: var(--sp-1);
	margin-top: var(--sp-1);
}

.en-kc-cta {
	background: #fff;
	border: 2px solid var(--primary);
	border-radius: var(--rd-lg);
	padding: var(--sp-5);
	text-align: center;
}
.en-kc-cta__title {
	font-weight: 700;
	margin-bottom: var(--sp-3);
	color: var(--brand-navy);
}
.en-kc-cta__note {
	font-size: var(--fs-xs);
	color: var(--text-muted);
	margin-top: var(--sp-3);
	margin-bottom: 0;
}


/* ========== Offer Card ========== */

.en-card--offer {
	background: #fff;
	border-left: 4px solid var(--primary);
}
.en-card--offer:hover {
	border-left-color: var(--primary-dk);
}
.en-card--offer.en-card--past {
	opacity: 0.6;
}
.en-card--offer.en-card--past:hover {
	opacity: 0.85;
}

.en-offer-card__datebar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-2);
	margin-bottom: var(--sp-2);
}
.en-offer-card__date {
	font-size: var(--fs-sm);
	color: var(--primary-dk);
	font-weight: 700;
}
.en-offer-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	border: 1px solid transparent;
	white-space: nowrap;
}
.en-offer-badge--is-urgent {
	background: #fee2e2;
	color: #b91c1c;
	border-color: #fecaca;
}
.en-offer-badge--is-now {
	background: #dcfce7;
	color: #15803d;
	border-color: #bbf7d0;
}
.en-offer-badge--is-soon {
	background: #fff6ec;
	color: #c2410c;
	border-color: #fed7aa;
}
.en-offer-badge--is-future {
	background: #e0e7ff;
	color: #3730a3;
	border-color: #c7d2fe;
}
.en-offer-badge--is-past {
	background: #f3f4f6;
	color: #6b7280;
	border-color: #e5e7eb;
}

/* ==========================================================
 * Benefit list (register page §10)
 * ========================================================== */
.en-benefit-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--sp-4);
}
.en-benefit-list__item {
	display: flex;
	gap: var(--sp-4);
	padding: var(--sp-4) var(--sp-5);
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	box-shadow: 0 1px 3px rgba(30, 41, 99, 0.04);
}
.en-benefit-list__ic {
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--primary);
	color: #fff;
	border-radius: 999px;
	font-weight: 900;
	font-size: 1rem;
}
.en-benefit-list__body strong {
	display: block;
	margin-bottom: .25rem;
	font-size: var(--fs-lg);
	color: var(--text);
}
.en-benefit-list__body p {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-sm);
	line-height: 1.6;
}

/* ==========================================================
 * Maker archive nav (§12)
 * ========================================================== */
.en-maker-nav {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-4) var(--sp-5);
	display: grid;
	gap: var(--sp-3);
}
.en-maker-nav__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
}
.en-maker-nav__label {
	font-weight: 700;
	font-size: var(--fs-sm);
	color: var(--text);
	flex: 0 0 auto;
}
.en-maker-nav__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}
.en-maker-nav__links a {
	display: inline-flex;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--bg-muted);
	color: var(--text);
	font-size: var(--fs-sm);
	font-weight: 700;
	text-decoration: none;
	border: 1px solid var(--border);
}
.en-maker-nav__links a:hover {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
}
.en-maker-filter {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	align-items: center;
}
.en-maker-filter select {
	padding: 6px 10px;
	border: 1px solid var(--border);
	border-radius: var(--rd-sm);
	font-size: var(--fs-sm);
	background: #fff;
	min-width: 220px;
}

/* ==========================================================
 * Offer archive: month groups + nav
 * ========================================================== */
.en-offer-nav {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-8);
	display: grid;
	gap: var(--sp-4);
}
.en-offer-nav__form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
}
.en-offer-nav__form label {
	font-weight: 700;
	font-size: var(--fs-sm);
}
.en-offer-nav__form select {
	padding: 6px 10px;
	border: 1px solid var(--border);
	border-radius: var(--rd-sm);
	font-size: var(--fs-sm);
	background: #fff;
	min-width: 220px;
}
.en-offer-nav__months {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-2);
	padding-top: var(--sp-3);
	border-top: 1px dashed var(--border);
}
.en-offer-nav__label {
	font-weight: 700;
	font-size: var(--fs-sm);
	color: var(--text);
	margin-right: var(--sp-2);
}
.en-offer-nav__months a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--bg-muted);
	color: var(--text);
	font-size: var(--fs-sm);
	font-weight: 700;
	text-decoration: none;
	border: 1px solid var(--border);
}
.en-offer-nav__months a:hover {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
}
.en-offer-nav__count {
	font-size: 0.72rem;
	color: var(--text-muted);
	font-weight: 600;
}
.en-offer-nav__months a:hover .en-offer-nav__count {
	color: rgba(255,255,255,0.85);
}

.en-offer-month {
	margin-bottom: var(--sp-10);
	scroll-margin-top: 80px;
}
.en-offer-month:last-child {
	margin-bottom: 0;
}
.en-offer-month__heading {
	display: flex;
	align-items: baseline;
	gap: var(--sp-3);
	margin-bottom: var(--sp-5);
	padding-bottom: var(--sp-2);
	border-bottom: 2px solid var(--primary);
}
.en-offer-month__heading h2 {
	margin: 0;
	font-size: var(--fs-2xl);
	color: var(--primary-dk);
	letter-spacing: 0.02em;
}
.en-offer-month__count {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 700;
}

/* ==========================================================
 * Vehicle (中古車両売買)
 * ========================================================== */
.en-vehicle-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-6);
}
@media (max-width: 720px) {
	.en-vehicle-list { grid-template-columns: 1fr; }
}
.en-vehicle-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-lg);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(30, 41, 99, 0.05);
}
.en-vehicle-card--sold {
	opacity: 0.75;
}
.en-vehicle-card--sold .en-vehicle-card__media img {
	filter: grayscale(1);
}
.en-vehicle-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background: #f5f5f5;
	overflow: hidden;
}
.en-vehicle-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.en-vehicle-card__noimage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--text-muted);
	font-size: var(--fs-lg);
	font-weight: 700;
	letter-spacing: 0.05em;
}
.en-vehicle-card__sold-badge {
	position: absolute;
	top: var(--sp-3);
	left: var(--sp-3);
	padding: 4px 14px;
	background: #374151;
	color: #fff;
	font-weight: 900;
	font-size: var(--fs-md);
	letter-spacing: 0.1em;
	border-radius: var(--rd-sm);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
.en-vehicle-card__body {
	padding: var(--sp-5) var(--sp-5) var(--sp-6);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.en-vehicle-card__model {
	margin: 0;
	font-size: var(--fs-xl);
	line-height: 1.35;
	color: var(--text);
}
.en-vehicle-card__price {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 900;
	color: var(--primary);
	line-height: 1;
	letter-spacing: -0.01em;
}
.en-vehicle-card__specs {
	margin: 0;
	padding: var(--sp-3) var(--sp-4);
	background: var(--bg-muted);
	border-radius: var(--rd-sm);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-2) var(--sp-4);
	font-size: var(--fs-sm);
}
.en-vehicle-card__spec {
	display: flex;
	gap: var(--sp-2);
}
.en-vehicle-card__spec dt {
	color: var(--text-muted);
	font-weight: 700;
	min-width: 4.5em;
	flex: 0 0 auto;
}
.en-vehicle-card__spec dd {
	margin: 0;
	color: var(--text);
}
.en-vehicle-card__cta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: var(--sp-2);
}
.en-vehicle-card__cta .en-btn {
	flex: 1 1 auto;
	text-align: center;
}

/* ==========================================================
 * Request form (企業向け出店依頼フォーム)
 * ========================================================== */
.en-form {
	max-width: 720px;
	margin: 0 auto;
}
.en-form__notice {
	padding: var(--sp-4) var(--sp-5);
	border-radius: var(--rd-md);
	margin-bottom: var(--sp-5);
	font-weight: 600;
	line-height: 1.6;
}
.en-form__notice--success {
	background: #dcfce7;
	color: #15803d;
	border: 1px solid #bbf7d0;
}
.en-form__notice--error {
	background: #fee2e2;
	color: #b91c1c;
	border: 1px solid #fecaca;
}
.en-form__form {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-lg);
	padding: var(--sp-6) var(--sp-7);
	box-shadow: 0 1px 3px rgba(30, 41, 99, 0.04);
}
@media (max-width: 640px) {
	.en-form__form {
		padding: var(--sp-5) var(--sp-4);
	}
}
.en-form__fieldset {
	border: 0;
	padding: 0;
	margin: 0 0 var(--sp-7) 0;
}
.en-form__fieldset:last-of-type {
	margin-bottom: var(--sp-5);
}
.en-form__fieldset legend {
	font-size: var(--fs-lg);
	font-weight: 800;
	color: var(--primary-dk);
	padding-bottom: var(--sp-2);
	margin-bottom: var(--sp-5);
	border-bottom: 2px solid var(--primary);
	width: 100%;
}
.en-form__row {
	margin-bottom: var(--sp-4);
}
.en-form__row label {
	display: block;
	font-weight: 700;
	font-size: var(--fs-sm);
	color: var(--text);
	margin-bottom: var(--sp-2);
}
.en-form__row input[type="text"],
.en-form__row input[type="tel"],
.en-form__row input[type="email"],
.en-form__row input[type="date"],
.en-form__row input[type="number"],
.en-form__row select,
.en-form__row textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: var(--rd-sm);
	background: #fff;
	font-size: var(--fs-md);
	font-family: inherit;
	box-sizing: border-box;
	transition: border-color .15s, box-shadow .15s;
}
.en-form__row input:focus,
.en-form__row select:focus,
.en-form__row textarea:focus {
	outline: 0;
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(255, 138, 31, 0.15);
}
.en-form__row textarea {
	resize: vertical;
	min-height: 120px;
}
.en-form__row--half {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-4);
}
.en-form__row--half > div {
	margin-bottom: 0;
}
@media (max-width: 560px) {
	.en-form__row--half {
		grid-template-columns: 1fr;
	}
}
.en-form__req {
	display: inline-block;
	padding: 1px 6px;
	margin-left: 6px;
	background: #dc2626;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	border-radius: var(--rd-sm);
	vertical-align: middle;
}
.en-form__submit {
	text-align: center;
	padding-top: var(--sp-4);
	border-top: 1px dashed var(--border);
}
.en-form__submit .en-btn {
	min-width: 240px;
}
.en-form__note {
	margin-top: var(--sp-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

/* ==========================================================
 * About page
 * ========================================================== */
.en-about-hero {
	padding: var(--sp-10) 0 var(--sp-8);
	background: linear-gradient(135deg, #fff5e6 0%, #fffbf3 100%);
	border-bottom: 1px solid rgba(255, 138, 31, 0.2);
}
.en-about-hero__title {
	text-align: center;
	margin: 0 0 var(--sp-3) 0;
	font-size: clamp(2rem, 5vw, 2.75rem);
	color: var(--primary-dk);
}
.en-about-hero__sub {
	text-align: center;
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-lg);
}
.en-about {
	padding: var(--sp-10) 0;
	background: #fff;
}
.en-about__section {
	margin-bottom: var(--sp-8);
	line-height: 2;
}
.en-about__section h2 {
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	color: var(--primary-dk);
	margin: 0 0 var(--sp-5) 0;
	padding-bottom: var(--sp-2);
	border-bottom: 3px solid var(--primary);
}
.en-about__section h3 {
	font-size: var(--fs-lg);
	color: var(--text);
	margin: var(--sp-5) 0 var(--sp-2) 0;
}
.en-about__section p {
	margin: 0 0 var(--sp-4) 0;
}
.en-about__hr {
	border: 0;
	border-top: 1px dashed var(--border);
	margin: var(--sp-8) 0;
}
.en-about__operator {
	background: var(--bg-muted);
	border-left: 4px solid var(--primary);
	padding: var(--sp-5) var(--sp-6);
	border-radius: var(--rd-sm);
}
.en-about__operator-name {
	font-weight: 800;
	font-size: var(--fs-lg);
	color: var(--primary-dk);
	margin-bottom: var(--sp-3) !important;
}
.en-about__operator-sub {
	font-size: var(--fs-sm);
	font-weight: 500;
	color: var(--text-muted);
}
.en-about__issue {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-3);
}
.en-about__issue h3 {
	margin: 0 0 var(--sp-2) 0;
	color: var(--primary-dk);
	font-size: var(--fs-md);
}
.en-about__issue p {
	margin: 0;
	color: var(--text-muted);
}
.en-about__services {
	margin: var(--sp-4) 0;
	padding-left: 1.5em;
}
.en-about__services li {
	margin-bottom: var(--sp-2);
	line-height: 1.8;
}
.en-about__promise {
	display: flex;
	gap: var(--sp-4);
	padding: var(--sp-4) var(--sp-5);
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	margin-bottom: var(--sp-3);
	align-items: flex-start;
}
.en-about__promise-num {
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--primary);
	color: #fff;
	border-radius: 999px;
	font-weight: 900;
	font-size: 1.25rem;
}
.en-about__promise-body h3 {
	margin: 0 0 var(--sp-2) 0;
	font-size: var(--fs-md);
	color: var(--text);
}
.en-about__promise-body p {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-sm);
}
.en-about__closing {
	text-align: center;
	font-size: clamp(1.2rem, 3vw, 1.5rem);
	padding: var(--sp-5);
	background: linear-gradient(135deg, #fff5e6 0%, #fffbf3 100%);
	border-radius: var(--rd-md);
	margin: var(--sp-5) 0 !important;
}
.en-about__signature {
	text-align: right;
	color: var(--text-muted);
	font-size: var(--fs-sm);
	line-height: 1.8;
}

/* ==========================================================
 * Philosophy block (ホームとか共通)
 * ========================================================== */
.en-philosophy {
	background: linear-gradient(135deg, #fff5e6 0%, #fffbf3 100%);
	padding: var(--sp-10) 0;
	border-top: 1px solid rgba(255, 138, 31, 0.2);
	border-bottom: 1px solid rgba(255, 138, 31, 0.2);
}
.en-philosophy__inner {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.en-philosophy__title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	color: var(--primary-dk);
	margin-bottom: var(--sp-5);
}
.en-philosophy__body {
	font-size: var(--fs-lg);
	line-height: 2;
	margin-bottom: var(--sp-4);
	color: var(--text);
}
.en-philosophy__body p {
	margin: 0 0 var(--sp-3) 0;
}
.en-philosophy__tagline {
	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
	font-weight: 700;
	color: var(--primary-dk);
	margin-top: var(--sp-5);
}
.en-philosophy__cta {
	display: inline-block;
	margin-top: var(--sp-5);
	color: var(--primary-dk);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--primary);
	padding-bottom: 2px;
}
.en-philosophy__cta:hover {
	color: var(--primary);
}

/* Philosophy compact (register/request pages) */
.en-philosophy-compact {
	background: #fff5e6;
	padding: var(--sp-4) var(--sp-5);
	border-radius: var(--rd-md);
	border-left: 4px solid var(--primary);
	margin: var(--sp-6) auto;
	max-width: 720px;
	text-align: center;
}
.en-philosophy-compact p {
	margin: 0;
	line-height: 1.9;
	color: var(--text);
}
.en-philosophy-compact p + p {
	margin-top: var(--sp-2);
}

/* Page tagline (archive pages top) */
.en-page-tagline {
	text-align: center;
	color: var(--primary-dk);
	font-weight: 700;
	padding: var(--sp-4) var(--sp-2);
	margin: 0;
	border-bottom: 1px dashed var(--border);
}

/* Footer tagline */
.en-footer__tagline {
	border-top: 1px dashed rgba(255,255,255,0.2);
	padding-top: var(--sp-4);
	margin-top: var(--sp-4);
	text-align: center;
	color: rgba(255,255,255,0.75);
	font-size: var(--fs-sm);
}

/* Three promises section (front-page) */
.en-promises {
	padding: var(--sp-10) 0;
	background: #fff;
}
.en-promises__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sp-5);
	margin-top: var(--sp-8);
}
@media (max-width: 720px) {
	.en-promises__grid { grid-template-columns: 1fr; }
}
.en-promises__item {
	background: #fff5e6;
	border-radius: var(--rd-lg);
	padding: var(--sp-6) var(--sp-5);
	text-align: center;
}
.en-promises__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	background: var(--primary);
	color: #fff;
	border-radius: 999px;
	font-weight: 900;
	font-size: 1.5rem;
	margin-bottom: var(--sp-4);
}
.en-promises__item h3 {
	font-size: var(--fs-lg);
	color: var(--primary-dk);
	margin: 0 0 var(--sp-3) 0;
	line-height: 1.5;
}
.en-promises__item p {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	line-height: 1.8;
	margin: 0;
}

/* ==========================================================
 * Job offer (求人)
 * ========================================================== */
.en-job-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-4);
	margin-top: var(--sp-6);
}
.en-job-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	transition: box-shadow .15s, transform .15s;
}
.en-job-card:hover {
	box-shadow: 0 4px 15px rgba(30, 41, 99, 0.08);
	transform: translateY(-1px);
}
.en-job-card__link {
	display: block;
	padding: var(--sp-5) var(--sp-6);
	color: inherit;
	text-decoration: none;
}
.en-job-card__head {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: var(--sp-3);
}
.en-job-card__type {
	display: inline-flex;
	padding: 3px 10px;
	background: var(--primary);
	color: #fff;
	border-radius: 4px;
	font-size: var(--fs-xs);
	font-weight: 700;
}
.en-job-card__exp {
	display: inline-flex;
	padding: 3px 10px;
	background: #e0f2fe;
	color: #0369a1;
	border: 1px solid #7dd3fc;
	border-radius: 4px;
	font-size: var(--fs-xs);
	font-weight: 700;
}
.en-job-card__title {
	margin: 0 0 var(--sp-2) 0;
	font-size: var(--fs-xl);
	color: var(--text);
	line-height: 1.4;
}
.en-job-card__biz {
	font-size: var(--fs-sm);
	color: var(--primary-dk);
	font-weight: 700;
	margin-bottom: var(--sp-3);
}
.en-job-card__row {
	display: flex;
	gap: var(--sp-2);
	font-size: var(--fs-sm);
	color: var(--text-muted);
	margin-bottom: var(--sp-2);
}
.en-job-card__wage {
	margin-top: var(--sp-3);
	padding: var(--sp-2) var(--sp-3);
	background: var(--bg-muted);
	border-radius: var(--rd-sm);
	font-size: var(--fs-md);
}
.en-job-card__more {
	display: inline-block;
	margin-top: var(--sp-3);
	color: var(--primary-dk);
	font-weight: 700;
	font-size: var(--fs-sm);
}
.en-job-contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--sp-2);
}
.en-job-contact li {
	padding: var(--sp-2) var(--sp-3);
	background: var(--bg-muted);
	border-radius: var(--rd-sm);
}
.en-job-content {
	line-height: 1.9;
}
.en-job-content p {
	margin: 0 0 var(--sp-3) 0;
}

.en-offer-card__recruit {
	margin-top: auto;
	padding-top: var(--sp-2);
}


/* ========== Filter Bar ========== */

.en-filter {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-3) var(--sp-4);
	margin-bottom: var(--sp-4);
}
.en-filter__form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	align-items: center;
}
.en-filter__group {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
}
.en-filter__group label {
	font-size: var(--fs-sm);
	font-weight: 700;
	color: var(--text-muted);
}
.en-filter__group select {
	padding: 6px var(--sp-3);
	border: 1px solid var(--border-strong);
	border-radius: var(--rd-sm);
	background: #fff;
	font-size: var(--fs-sm);
	min-width: 140px;
	cursor: pointer;
}
.en-filter__reset {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	text-decoration: underline;
}
.en-filter__reset:hover { color: var(--danger); }


/* ========== Notice banner ========== */

.en-notice {
	padding: var(--sp-3) var(--sp-4);
	border-radius: var(--rd-md);
	font-size: var(--fs-sm);
	font-weight: 500;
}
.en-notice--warning {
	background: #FFF7ED;
	color: var(--warning);
	border: 1px solid #FED7AA;
}
.en-notice--info {
	background: var(--bg-navy-soft);
	color: var(--brand-navy);
	border: 1px solid #BFD4F5;
}


/* ========== Offer single ========== */

.en-offer-body {
	font-size: var(--fs-base);
	line-height: var(--lh-loose);
}
.en-offer-body p { margin-bottom: var(--sp-4); }

.en-offer-map iframe {
	width: 100%;
	height: 360px;
	border: 0;
	border-radius: var(--rd-md);
}


/* ========== Empty state ========== */

.en-empty-state {
	text-align: center;
	padding: var(--sp-12) var(--sp-4);
	background: var(--bg-muted);
	border-radius: var(--rd-lg);
	margin-top: var(--sp-6);
}
.en-empty-state p:first-child {
	font-size: var(--fs-lg);
	font-weight: 700;
	color: var(--brand-navy);
	margin-bottom: var(--sp-2);
}


/* ========== Front Page Hero ========== */

.en-fhero {
	position: relative;
	min-height: 640px;
	display: flex;
	align-items: center;
	padding: var(--sp-20) 0 var(--sp-16);
	overflow: hidden;
	background-color: var(--bg-muted);
	/* 画像が読み込まれるまでのフェイルセーフ用グラデーション。
	   実際の背景画像は front-page.php の <img class="en-fhero__bg-img"> で出力する。
	   (CSS background-image から img タグに変更: LCP 高速化のため 2026-05-02) */
	background-image: linear-gradient(135deg, #FFE9D1 0%, #D4ECFF 50%, #E5F5E0 100%);
}
/* PC ヒーロー背景画像: position:absolute で背景化し、overlay/content が前面に来る */
.en-fhero__bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center right;
	z-index: 0;
}
@media (max-width: 768px) {
	/* モバイルは .en-fhero__inner の CSS background-image で別画像を表示するため非表示 */
	.en-fhero__bg-img {
		display: none;
	}
}
/* モバイル(768px以下):画像エリア + CTAエリアの上下分離レイアウト
   2026-04-25 v2: 縦長モバイル画像 + 上画像/下白CTA に再設計 */
@media (max-width: 768px) {
	/* ヒーロー全体: 背景画像をリセット、縦並びの2エリアに */
	.en-fhero {
		background-image: none;
		background: var(--bg-muted);
		min-height: auto;
		padding: 0;
		display: block;
		overflow: visible;
	}
	/* PC で効かせていた左→右の白グラデを無効化 */
	.en-fhero::before {
		display: none;
	}

	/* 上部:画像エリア(en-fhero__inner) */
	/* 背景画像は img.en-fhero__inner-bg-img で出力（LCP 高速化のため 2026-05-02 変更） */
	.en-fhero__inner {
		background-image: linear-gradient(135deg, #FFE9D1 0%, #D4ECFF 50%, #E5F5E0 100%);
		background-size: cover;
		min-height: 380px;
		padding: var(--sp-8) var(--sp-4);
		position: relative;
		max-width: none;
	}
	/* 上部画像エリアの白グラデオーバーレイ(上から下へ:濃い白→透明)
	   z-index を 0→1 に変更: img(z-index:0) の上に重なるよう調整 */
	.en-fhero__inner::before {
		content: '';
		position: absolute;
		inset: 0;
		background: linear-gradient(
			to bottom,
			rgba(255, 255, 255, 0.85) 0%,
			rgba(255, 255, 255, 0.4) 35%,
			rgba(255, 255, 255, 0) 60%
		);
		z-index: 1;
		pointer-events: none;
	}
	/* 上部画像エリア内のテキスト類はオーバーレイの上に
	   z-index を 1→2 に変更 */
	.en-fhero__inner > * {
		position: relative;
		z-index: 2;
	}

	/* 下部:CTAエリア(en-fhero__inner-cta) - 白背景で画像と分離
	   2026-04-25 v3 余白調整:
	     上32px(画像との分離感)/ 左右20px(画面端からの余白)/ 下24px(次セクションとの間) */
	.en-fhero__inner-cta {
		background: #fff;
		padding: var(--sp-8) var(--sp-5) var(--sp-6);
		max-width: none;
	}
	/* CTAボタン間の隙間を 12px → 14px に微調整(窮屈さ解消) */
	.en-fhero__inner-cta .en-fhero__cta--trio {
		gap: 14px;
	}
}
/* .en-fhero--has-image は 2026-05-02 に img タグ方式へ移行したため削除 */

/* モバイル用ヒーロー背景画像（img タグ）: デスクトップでは非表示 */
.en-fhero__inner-bg-img {
	position: absolute !important; /* .en-fhero__inner > * の position:relative を上書き */
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	z-index: 0 !important; /* ::before(z-index:1) の下に置く */
	display: none; /* デスクトップでは非表示 */
}
@media (max-width: 768px) {
	.en-fhero__inner-bg-img {
		display: block;
	}
}

/* en-fhero__inner-cta(2026-04-25 v2 追加):PC・タブレットでは
   既存の .en-fhero__inner と同じ max-width に揃え、見た目連続させる */
.en-fhero__inner-cta {
	max-width: 720px;
}
.en-fhero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(255,255,255,0.92) 0%,
		rgba(255,255,255,0.7) 40%,
		rgba(255,255,255,0.15) 75%,
		rgba(255,255,255,0) 100%
	);
	z-index: 1;
}
@media (max-width: 900px) {
	.en-fhero::before {
		background: linear-gradient(
			to bottom,
			rgba(255,255,255,0.85) 0%,
			rgba(255,255,255,0.7) 100%
		);
	}
	.en-fhero { min-height: 560px; }
}
@media (max-width: 640px) {
	.en-fhero { min-height: 520px; padding: var(--sp-12) 0; }
}

.en-fhero__overlay {
	position: relative;
	width: 100%;
	z-index: 2;
}

.en-fhero__inner {
	max-width: 720px;
}

.en-fhero__accent {
	display: inline-block;
	font-family: var(--font-hand);
	font-size: var(--fs-lg);
	color: var(--primary-dk);
	margin-bottom: var(--sp-4);
	padding: 4px 16px;
	background: rgba(255,255,255,0.85);
	border-radius: var(--rd-pill);
	box-shadow: var(--sh-sm);
}

.en-fhero__catch {
	font-size: 3.5rem;
	font-weight: 900;
	color: var(--brand-navy);
	margin: 0 0 var(--sp-4);
	line-height: 1.15;
	letter-spacing: -0.01em;
}
@media (max-width: 900px) {
	.en-fhero__catch { font-size: 2.8rem; }
}
@media (max-width: 640px) {
	.en-fhero__catch { font-size: 2rem; }
}

.en-fhero__highlight {
	color: var(--primary);
	position: relative;
	display: inline-block;
}
.en-fhero__highlight::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.05em;
	height: 0.35em;
	background: var(--accent-yellow);
	opacity: 0.5;
	z-index: -1;
	border-radius: 4px;
}

.en-fhero__sub {
	font-size: var(--fs-lg);
	color: var(--text);
	margin-bottom: var(--sp-6);
	line-height: 1.6;
}
@media (max-width: 640px) {
	.en-fhero__sub { font-size: var(--fs-base); }
}

.en-fhero__features {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-bottom: var(--sp-6);
}

.en-fhero__feature {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: var(--sp-2) var(--sp-4);
	background: rgba(255,255,255,0.92);
	border-radius: var(--rd-pill);
	font-size: var(--fs-sm);
	font-weight: 700;
	color: var(--brand-navy);
	box-shadow: var(--sh-sm);
	line-height: 1.3;
}
.en-fhero__feature span:last-child {
	font-size: 0.85em;
}

.en-fhero__feat-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: #FFE9D1;
	color: var(--primary-dk);
	border-radius: 50%;
	flex-shrink: 0;
}
.en-fhero__feat-ic--blue {
	background: #D4ECFF;
	color: var(--secondary, #2F7BE8);
}
.en-fhero__feat-ic--pink {
	background: #FFD4DC;
	color: #DC2676;
}

.en-fhero__cta {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
	margin-bottom: var(--sp-4);
}

/* Trio CTA(2026-04-25 追加):3ボタン並びでサブ説明付き */
.en-fhero__cta--trio {
	gap: var(--sp-3);
}
.en-fhero__cta-btn {
	flex-direction: column !important;
	align-items: center;
	line-height: 1.25;
	padding: var(--sp-3) var(--sp-6);
	min-width: 220px;
}
.en-fhero__cta-main {
	display: block;
	font-weight: 700;
}
.en-fhero__cta-sub {
	display: block;
	font-size: var(--fs-xs);
	font-weight: 400;
	opacity: 0.85;
	margin-top: 4px;
}
@media (max-width: 640px) {
	.en-fhero__cta--trio {
		flex-direction: column;
		align-items: stretch;
	}
	.en-fhero__cta-btn {
		min-width: 0;
		width: 100%;
	}
}

.en-fhero__hand {
	font-family: var(--font-hand);
	font-size: var(--fs-xl);
	color: var(--brand-navy);
	margin-top: var(--sp-6);
	padding-left: var(--sp-8);
	position: relative;
	font-weight: 500;
}
.en-fhero__hand::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: var(--sp-6);
	height: 2px;
	background: var(--brand-navy);
	transform: translateY(-50%);
}


/* ========== Garland decoration ========== */

.en-fhero__garland {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 40px;
	z-index: 3;
	display: flex;
	justify-content: center;
	gap: 12px;
	pointer-events: none;
	padding: 0 var(--sp-4);
	overflow: hidden;
}

.en-garland-flag {
	width: 14px;
	height: 22px;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	display: block;
	transform-origin: top center;
	animation: garland-sway 3s ease-in-out infinite alternate;
}
.en-garland-flag:nth-child(2n)  { animation-delay: -0.4s; height: 20px; }
.en-garland-flag:nth-child(3n)  { animation-delay: -0.8s; height: 24px; }
.en-garland-flag:nth-child(5n)  { animation-delay: -1.2s; }

@keyframes garland-sway {
	from { transform: rotate(-4deg); }
	to   { transform: rotate(4deg); }
}

@media (max-width: 640px) {
	.en-fhero__garland { gap: 8px; }
	.en-garland-flag { width: 10px; height: 16px; }
}


/* ========== Feature Card (3 reasons) ========== */

.en-feature-card {
	background: #fff;
	padding: var(--sp-6);
	border-radius: var(--rd-lg);
	text-align: center;
	border-top: 4px solid var(--primary);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.en-feature-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sh-md);
}
.en-feature-card__ic {
	font-size: 2.5rem;
	margin-bottom: var(--sp-3);
	line-height: 1;
}
.en-feature-card h3 {
	font-size: var(--fs-lg);
	margin-bottom: var(--sp-2);
}
.en-feature-card p {
	color: var(--text-muted);
	font-size: var(--fs-sm);
	margin: 0;
	line-height: 1.6;
}


/* ========== Use case (organizer vs operator) ========== */

.en-use-case {
	background: #fff;
	border-radius: var(--rd-lg);
	padding: var(--sp-6);
	box-shadow: var(--sh-sm);
}
.en-use-case__label {
	display: inline-block;
	padding: 2px var(--sp-3);
	background: var(--bg-muted);
	color: var(--primary-dk);
	font-weight: 700;
	font-size: var(--fs-xs);
	border-radius: var(--rd-pill);
	margin-bottom: var(--sp-3);
	letter-spacing: 0.05em;
}
.en-use-case h3 {
	font-size: var(--fs-xl);
	margin-bottom: var(--sp-4);
}
.en-use-case ul {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-5);
}
.en-use-case ul li {
	padding: var(--sp-2) 0 var(--sp-2) var(--sp-6);
	border-bottom: 1px solid var(--border);
	font-size: var(--fs-sm);
	color: var(--text);
	position: relative;
}
.en-use-case ul li:last-child { border-bottom: 0; }
.en-use-case ul li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: var(--sp-2);
	width: var(--sp-5);
	height: var(--sp-5);
	background: var(--primary);
	color: #fff;
	border-radius: 50%;
	font-size: 0.75em;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
}


/* ========== LP Hero (request/register/startup) ========== */

.en-lp-hero {
	position: relative;
	min-height: 480px;
	display: flex;
	align-items: center;
	padding: var(--sp-16) 0;
	overflow: hidden;
	background-color: var(--bg-muted);
	background-image: linear-gradient(135deg, #FFE9D1 0%, #D4ECFF 55%, #E5F5E0 100%);
	color: var(--text);
}
.en-lp-hero--request {
	background-image: linear-gradient(135deg, #FFE9D1 0%, #FFCFA5 100%);
}
.en-lp-hero--register {
	background-image: linear-gradient(135deg, #D4ECFF 0%, #A8D0F0 100%);
}
.en-lp-hero--startup {
	background-image: linear-gradient(135deg, #FFF4CC 0%, #FFD47A 100%);
}

.en-lp-hero__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.en-lp-hero__tag {
	display: inline-block;
	padding: 4px 16px;
	background: rgba(255,255,255,0.85);
	color: var(--brand-navy);
	border-radius: var(--rd-pill);
	font-size: var(--fs-sm);
	font-weight: 700;
	margin-bottom: var(--sp-4);
	box-shadow: var(--sh-sm);
}

.en-lp-hero__title {
	font-size: 3rem;
	font-weight: 900;
	color: var(--brand-navy);
	margin: 0 0 var(--sp-4);
	line-height: 1.2;
}
@media (max-width: 640px) {
	.en-lp-hero__title { font-size: 2rem; }
}
.en-lp-hero__title .mobile-only {
	display: none;
}
@media (max-width: 640px) {
	.en-lp-hero__title .mobile-only { display: inline; }
}

.en-lp-hero__sub {
	font-size: var(--fs-lg);
	color: var(--text);
	margin-bottom: var(--sp-6);
	line-height: 1.7;
}
@media (max-width: 640px) {
	.en-lp-hero__sub { font-size: var(--fs-base); }
}

.en-lp-hero__cta {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: var(--sp-3);
}


/* ========== Steps (利用の流れ) ========== */

.en-steps {
	display: flex;
	flex-direction: column;
	gap: var(--sp-6);
	margin-top: var(--sp-8);
	position: relative;
}
.en-steps::before {
	content: '';
	position: absolute;
	left: 32px;
	top: 32px;
	bottom: 32px;
	width: 2px;
	background: linear-gradient(to bottom, var(--primary) 0%, var(--primary-lt) 100%);
	z-index: 0;
}

.en-step {
	display: flex;
	gap: var(--sp-4);
	align-items: flex-start;
	position: relative;
	z-index: 1;
}

.en-step__num {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	background: var(--primary);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: var(--fs-xl);
	box-shadow: 0 4px 12px rgba(255, 138, 31, 0.35);
}

.en-step__body {
	flex: 1;
	background: #fff;
	padding: var(--sp-4) var(--sp-5);
	border-radius: var(--rd-lg);
	border-left: 4px solid var(--primary);
	box-shadow: var(--sh-sm);
}
.en-step__body h3 {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-lg);
}
.en-step__body p {
	margin: 0;
	color: var(--text-muted);
	line-height: 1.6;
}


/* ========== Price Card ========== */

.en-price-card {
	background: #fff;
	border: 2px solid var(--primary);
	border-radius: var(--rd-lg);
	padding: var(--sp-8);
	text-align: center;
	box-shadow: var(--sh-md);
}
.en-price-card--premium {
	background: linear-gradient(135deg, #fff 0%, #FFF9F2 100%);
	border-color: var(--primary);
}

.en-price-card__label {
	display: inline-block;
	padding: 4px 16px;
	background: var(--primary);
	color: #fff;
	border-radius: var(--rd-pill);
	font-size: var(--fs-sm);
	font-weight: 700;
	margin-bottom: var(--sp-4);
}

.en-price-card__price {
	font-size: 4rem;
	font-weight: 900;
	color: var(--brand-navy);
	line-height: 1;
	margin-bottom: var(--sp-2);
}
.en-price-card__unit {
	font-size: var(--fs-xl);
	font-weight: 700;
	color: var(--text-muted);
	margin-left: 4px;
}

.en-price-card__sub {
	color: var(--text-muted);
	margin-bottom: var(--sp-4);
}

.en-price-card__features {
	list-style: none;
	padding: 0;
	margin: var(--sp-4) 0;
	text-align: left;
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}
.en-price-card__features li {
	padding: var(--sp-2) 0 var(--sp-2) var(--sp-6);
	border-bottom: 1px solid var(--border);
	position: relative;
}
.en-price-card__features li:last-child { border-bottom: 0; }
.en-price-card__features li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--primary);
	font-weight: 900;
}


/* ========== FAQ ========== */

.en-faq {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	margin-top: var(--sp-6);
}
.en-faq__item {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-4) var(--sp-5);
	transition: border-color 0.2s;
}
.en-faq__item[open] {
	border-color: var(--primary);
	box-shadow: var(--sh-sm);
}
.en-faq__item summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--brand-navy);
	list-style: none;
	position: relative;
	padding-right: var(--sp-8);
	padding-left: var(--sp-8);
}
.en-faq__item summary::-webkit-details-marker { display: none; }
.en-faq__item summary::before {
	content: 'Q';
	position: absolute;
	left: 0;
	top: -2px;
	width: 28px;
	height: 28px;
	background: var(--primary);
	color: #fff;
	border-radius: 50%;
	font-size: var(--fs-sm);
	font-weight: 900;
	display: flex;
	align-items: center;
	justify-content: center;
}
.en-faq__item summary::after {
	content: '+';
	position: absolute;
	right: 0;
	font-size: 1.5em;
	color: var(--text-muted);
	transition: transform 0.2s;
}
.en-faq__item[open] summary::after { content: '−'; }
.en-faq__item p {
	margin: var(--sp-3) 0 0;
	padding-left: var(--sp-8);
	color: var(--text-muted);
	line-height: 1.8;
}


/* ========== Choice Cards (相談方法の選び方 2択カード) ========== */

.en-feature-card--choice {
	display: flex;
	flex-direction: column;
	text-align: left;
	padding: var(--sp-6) var(--sp-6) var(--sp-5);
}
.en-feature-card--choice .en-feature-card__ic {
	font-size: 2.4em;
	margin-bottom: var(--sp-3);
	text-align: center;
}
.en-feature-card--choice h3 {
	text-align: center;
	margin: 0 0 var(--sp-3);
	font-size: var(--fs-lg);
	color: var(--brand-navy);
}
.en-feature-card--choice > p {
	color: var(--text);
	line-height: 1.7;
	margin: 0 0 var(--sp-4);
}
.en-choice__sub {
	margin: var(--sp-3) 0 var(--sp-2);
	color: var(--brand-navy);
	font-size: var(--fs-sm);
}
.en-choice__list {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-5);
}
.en-choice__list li {
	position: relative;
	padding: var(--sp-1) 0 var(--sp-1) var(--sp-6);
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: 1.6;
}
.en-choice__list li::before {
	content: '✓';
	position: absolute;
	left: var(--sp-1);
	color: var(--primary);
	font-weight: 900;
}
.en-choice__cta {
	margin-top: auto;
	display: flex;
	justify-content: center;
	padding-top: var(--sp-3);
}
.en-choice__note {
	margin-top: var(--sp-3);
	font-size: var(--fs-sm);
	line-height: 1.6;
	text-align: center;
}


/* ========== CTA group (LINE + Form 並列 / レスポンシブで縦積み) ========== */

.en-cta-group {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--sp-4);
	align-items: stretch;
}
.en-cta-group > * {
	flex: 0 1 auto;
}
@media (max-width: 640px) {
	.en-cta-group {
		flex-direction: column;
		align-items: center;
		gap: var(--sp-3);
	}
	.en-cta-group > * {
		width: 100%;
		max-width: 360px;
	}
}


/* ========== Form button (navy 背景上の白フォームボタン) ========== */

.en-btn--form-on-navy {
	background: #fff;
	color: var(--brand-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-3);
	text-align: left;
	line-height: 1.3;
}
.en-btn--form-on-navy:hover {
	background: #F4F6FA;
	color: var(--brand-navy);
}
.en-cta-form-ic {
	font-size: 1.4em;
	flex-shrink: 0;
}
.en-cta-form-text {
	display: flex;
	flex-direction: column;
}
.en-cta-form-sub {
	font-size: var(--fs-xs);
	font-weight: 500;
	color: var(--text-muted);
	margin-top: 2px;
}


/* ========== Rules / Terms of Use (常時展開・規約形式) ========== */

.en-rules {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
}
.en-rules__item {
	background: #fff;
	border: 1px solid var(--border);
	border-left: 4px solid var(--primary);
	border-radius: var(--rd-md);
	padding: var(--sp-5) var(--sp-5);
}
.en-rules__title {
	margin: 0 0 var(--sp-3);
	color: var(--brand-navy);
	font-size: var(--fs-lg);
	font-weight: 700;
}
.en-rules__item p {
	margin: 0 0 var(--sp-3);
	color: var(--text);
	line-height: 1.8;
}
.en-rules__item p:last-child { margin-bottom: 0; }


/* ========== Profile Block ========== */

.en-profile {
	background: #fff;
	padding: var(--sp-6);
	border-radius: var(--rd-lg);
	border-left: 4px solid var(--primary);
	box-shadow: var(--sh-sm);
}
.en-profile h3 {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-2xl);
}
.en-profile__role {
	color: var(--primary-dk);
	font-weight: 700;
	margin-bottom: var(--sp-4);
}
.en-profile p {
	line-height: 1.8;
	margin-bottom: var(--sp-3);
}
.en-profile__links {
	display: flex;
	gap: var(--sp-4);
	flex-wrap: wrap;
	margin-top: var(--sp-4);
	padding-top: var(--sp-4);
	border-top: 1px solid var(--border);
}
.en-profile__links a {
	font-size: var(--fs-sm);
	font-weight: 700;
	color: var(--primary-dk);
}
.en-profile__header {
	display: flex;
	flex-direction: row-reverse;
	gap: var(--sp-5);
	align-items: center;
	margin-bottom: var(--sp-4);
}
.en-profile__photo {
	flex-shrink: 0;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	object-fit: cover;
}
.en-profile__meta {
	flex: 1;
	min-width: 0;
}
.en-profile__meta h3 {
	margin-top: 0;
}
.en-profile__subhead {
	margin-top: var(--sp-6);
	margin-bottom: var(--sp-3);
	font-size: var(--fs-lg);
	color: var(--primary-dk);
	padding-bottom: var(--sp-2);
	border-bottom: 2px solid var(--primary);
	display: inline-block;
}
.en-profile__timeline {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-4);
}
.en-profile__timeline li {
	padding: var(--sp-2) 0;
	border-bottom: 1px dashed var(--border);
	line-height: 1.7;
}
.en-profile__timeline li:last-child {
	border-bottom: 0;
}
.en-profile__timeline strong {
	color: var(--primary-dk);
	margin-right: var(--sp-3);
	display: inline-block;
	min-width: 3.5em;
}
.en-profile__mission {
	font-size: var(--fs-lg);
	font-weight: 700;
	color: var(--primary-dk);
	text-align: center;
	padding: var(--sp-4);
	background: #fff5ec;
	border-radius: var(--rd-md);
	margin-bottom: var(--sp-3) !important;
}
@media (max-width: 640px) {
	.en-profile__header {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.en-profile__photo {
		width: 140px;
		height: 140px;
	}
	.en-profile__timeline strong {
		display: block;
		min-width: 0;
		margin-bottom: 2px;
	}
}


/* ========== Region group (maker 一覧のエリア見出し) ========== */

.en-region-group {
	margin-bottom: var(--sp-10);
}
.en-region-group:last-child {
	margin-bottom: 0;
}

.en-region-heading {
	display: flex;
	align-items: baseline;
	gap: var(--sp-3);
	margin-bottom: var(--sp-4);
	padding-bottom: var(--sp-2);
	border-bottom: 3px solid var(--primary);
}
.en-region-heading h2 {
	margin: 0;
	font-size: var(--fs-2xl);
	color: var(--brand-navy);
}
.en-region-heading__count {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 700;
	padding: 2px 10px;
	background: var(--bg-muted);
	border-radius: var(--rd-pill);
}

.en-region-empty {
	background: var(--bg-muted);
	border: 1px dashed var(--border-strong);
	border-radius: var(--rd-md);
	padding: var(--sp-6) var(--sp-5);
	text-align: center;
	color: var(--text-muted);
	font-size: var(--fs-sm);
}
.en-region-empty a {
	color: var(--primary-dk);
	font-weight: 700;
}


/* ========== Accordion (resource archive 子カテゴリ) ========== */

/* ボタンリセット + 見出し行スタイル */
.en-accordion-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	border-bottom: 3px solid var(--primary);
	padding: var(--sp-3) 0 var(--sp-2);
	margin-bottom: 0;
	cursor: pointer;
	text-align: left;
	color: inherit;
	font: inherit;
	gap: var(--sp-3);
}
.en-accordion-btn:hover {
	border-bottom-color: var(--primary-dk);
}
.en-accordion-btn:focus-visible {
	outline: 2px solid var(--primary);
	outline-offset: 2px;
	border-radius: 2px;
}

.en-region-heading__title {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	min-width: 0;
}
.en-resource-icon {
	font-size: var(--fs-xl);
	line-height: 1;
	flex-shrink: 0;
}
.en-region-heading__name {
	font-size: var(--fs-xl);
	font-weight: 700;
	color: var(--brand-navy);
}
.en-region-heading__right {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-shrink: 0;
}

/* シェブロン（▼） */
.en-accordion-chevron {
	color: var(--text-muted);
	transition: transform 0.25s ease;
	flex-shrink: 0;
}
.en-accordion-btn[aria-expanded="true"] .en-accordion-chevron {
	transform: rotate(180deg);
}

/* 展開パネル */
.en-accordion-panel {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.35s ease;
}
.en-accordion-inner {
	padding-top: var(--sp-6);
	padding-bottom: var(--sp-2);
}

@media (max-width: 640px) {
	.en-region-heading__name { font-size: var(--fs-lg); }
	.en-resource-icon { font-size: var(--fs-lg); }
}


/* ========== Maker list ========== */

.en-maker-list {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.en-maker-item {
	display: flex;
	gap: var(--sp-4);
	align-items: center;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	padding: var(--sp-4) var(--sp-5);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.en-maker-item:hover {
	border-color: var(--primary-lt);
	box-shadow: var(--sh-sm);
}
.en-maker-item--sponsored {
	border-left: 4px solid var(--primary);
	background: #FFFAF3;
}

.en-maker-item__main {
	flex: 1;
}
.en-maker-item__name {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-lg);
}
.en-maker-item__name a {
	color: var(--brand-navy);
}
.en-maker-item__name a:hover { color: var(--primary); }

.en-maker-item__meta {
	color: var(--text-muted);
	font-size: var(--fs-sm);
	margin-bottom: 2px;
}

.en-maker-item__actions {
	display: flex;
	gap: var(--sp-2);
	flex-wrap: wrap;
}

@media (max-width: 640px) {
	.en-maker-item {
		flex-direction: column;
		align-items: stretch;
	}
	.en-maker-item__actions {
		justify-content: flex-start;
	}
}


/* ========== Blog (single + archive) ========== */

.en-post__cats {
	display: flex;
	gap: var(--sp-2);
	flex-wrap: wrap;
	margin-bottom: var(--sp-3);
}

.en-post__title {
	font-size: var(--fs-4xl);
	line-height: 1.3;
	margin-bottom: var(--sp-3);
}
@media (max-width: 640px) {
	.en-post__title { font-size: var(--fs-2xl); }
}

.en-post__meta {
	display: flex;
	gap: var(--sp-4);
	font-size: var(--fs-sm);
	color: var(--text-muted);
	margin-top: var(--sp-2);
	flex-wrap: wrap;
}

.en-post__thumb {
	margin-bottom: var(--sp-6);
	border-radius: var(--rd-lg);
	overflow: hidden;
}
.en-post__thumb img { width: 100%; height: auto; }

.en-post__toc {
	background: var(--bg-muted);
	border-left: 4px solid var(--primary);
	border-radius: var(--rd-md);
	padding: var(--sp-5);
	margin-bottom: var(--sp-8);
}
.en-post__toc-title {
	font-weight: 700;
	color: var(--brand-navy);
	margin-bottom: var(--sp-3);
	font-size: var(--fs-lg);
}

.en-toc {
	margin: 0;
	padding-left: 1.5em;
	font-size: var(--fs-sm);
}
.en-toc li { margin-bottom: 4px; }
.en-toc a { color: var(--brand-navy); text-decoration: none; }
.en-toc a:hover { color: var(--primary); text-decoration: underline; }
.en-toc--sub {
	list-style: none;
	padding-left: 1em;
	margin-top: 4px;
	font-size: 0.95em;
	color: var(--text-muted);
}
.en-toc--sub li::before {
	content: '▸ ';
	color: var(--primary);
}


.en-post__body {
	font-size: 1.05rem;
	line-height: 1.85;
	color: var(--text);
}
.en-post__body h2 {
	margin-top: var(--sp-10);
	padding: var(--sp-3) var(--sp-4);
	background: linear-gradient(90deg, rgba(255,138,31,0.12) 0%, transparent 100%);
	border-left: 5px solid var(--primary);
	color: var(--brand-navy);
	font-size: var(--fs-2xl);
	scroll-margin-top: 80px;
}
.en-post__body h3 {
	margin-top: var(--sp-8);
	padding-bottom: var(--sp-1);
	border-bottom: 2px solid var(--primary-lt);
	font-size: var(--fs-xl);
	scroll-margin-top: 80px;
}
.en-post__body p { margin-bottom: var(--sp-5); }
.en-post__body ul, .en-post__body ol {
	margin-bottom: var(--sp-5);
	padding-left: 1.5em;
}
.en-post__body li { margin-bottom: 6px; }
.en-post__body blockquote {
	border-left: 4px solid var(--primary-lt);
	padding: var(--sp-3) var(--sp-4);
	background: var(--bg-muted);
	margin: var(--sp-6) 0;
	font-style: italic;
	color: var(--text-muted);
}
.en-post__body img {
	border-radius: var(--rd-md);
	margin: var(--sp-4) 0;
}
.en-post__body a {
	color: var(--primary-dk);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.en-post__cta {
	margin: var(--sp-10) 0;
	padding: var(--sp-6);
	background: var(--bg-muted);
	border-radius: var(--rd-lg);
	border: 2px dashed var(--primary);
	text-align: center;
}
.en-post__cta-label {
	display: inline-block;
	padding: 4px 16px;
	background: var(--primary);
	color: #fff;
	border-radius: var(--rd-pill);
	font-size: var(--fs-sm);
	font-weight: 700;
	margin-bottom: var(--sp-3);
}
.en-post__cta-text {
	margin-bottom: var(--sp-4);
	color: var(--text);
}

.en-post__author {
	margin-top: var(--sp-10);
	padding: var(--sp-6);
	background: #fff;
	border-radius: var(--rd-lg);
	border: 1px solid var(--border);
}
.en-post__author-title {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: var(--sp-3);
}
.en-post__author-name {
	font-size: var(--fs-xl);
	font-weight: 700;
	color: var(--brand-navy);
	margin-bottom: 4px;
}
.en-post__author-role {
	color: var(--primary-dk);
	font-weight: 700;
	font-size: var(--fs-sm);
	margin-bottom: var(--sp-3);
}
.en-post__author-bio {
	color: var(--text-muted);
	line-height: 1.7;
	margin-bottom: var(--sp-3);
}
.en-post__author-links {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
	padding-top: var(--sp-3);
	border-top: 1px solid var(--border);
	font-size: var(--fs-sm);
}
.en-post__author-links a {
	font-weight: 700;
}


/* ブログカードの拡張 */
.en-blog-card__cat {
	display: inline-block;
	padding: 2px 10px;
	background: var(--primary);
	color: #fff;
	border-radius: var(--rd-sm);
	font-size: var(--fs-xs);
	font-weight: 700;
}


/* ========== Blog post list (記事一覧・横並び縦スタック) ========== */

.en-post-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.en-post-list__item {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.en-post-list__item:hover {
	border-color: var(--primary-lt);
	box-shadow: var(--sh-sm);
	transform: translateY(-1px);
}

.en-post-list__link {
	display: flex;
	gap: var(--sp-4);
	padding: var(--sp-4);
	text-decoration: none;
	color: inherit;
	align-items: stretch;
}

.en-post-list__thumb {
	flex-shrink: 0;
	width: 180px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--rd-sm);
	background: var(--bg-gray);
}
.en-post-list__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.en-post-list__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.en-post-list__meta {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-bottom: var(--sp-2);
	font-size: var(--fs-xs);
}

.en-post-list__cat {
	display: inline-block;
	padding: 2px 10px;
	background: var(--primary);
	color: #fff;
	border-radius: var(--rd-sm);
	font-weight: 700;
}

.en-post-list__date {
	color: var(--text-muted);
}

.en-post-list__title {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-lg);
	color: var(--brand-navy);
	line-height: 1.4;
	font-weight: 700;
}

.en-post-list__excerpt {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-sm);
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media (max-width: 640px) {
	.en-post-list__link {
		flex-direction: column;
		gap: var(--sp-3);
	}
	.en-post-list__thumb {
		width: 100%;
		aspect-ratio: 16 / 9;
	}
	.en-post-list__title {
		font-size: var(--fs-base);
	}
}


/* ========== Section heading with right link ========== */

.en-section-heading {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--sp-4);
	margin-bottom: var(--sp-6);
	flex-wrap: wrap;
}
.en-section-heading h2 { margin: 0; }
.en-section-heading__link {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 700;
}
.en-section-heading__link:hover { color: var(--primary); }

/* ==========================================================
 * Breadcrumbs
 * ========================================================== */
.en-breadcrumbs {
	padding: var(--sp-3) 0 0;
	font-size: var(--fs-sm);
	color: var(--text-muted);
}
.en-breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .25rem .5rem;
}
.en-breadcrumbs li {
	display: inline-flex;
	align-items: center;
}
.en-breadcrumbs li + li::before {
	content: "›";
	margin-right: .5rem;
	opacity: .6;
}
.en-breadcrumbs a {
	color: var(--text-muted);
	text-decoration: none;
}
.en-breadcrumbs a:hover {
	color: var(--primary);
	text-decoration: underline;
}
.en-breadcrumbs [aria-current="page"] {
	color: var(--text);
	font-weight: 600;
}

/* ==========================================================
 * Jobseekers Status (2026-04-23 追加)
 *   /jobs/ ページ上部の「登録中の求職者数」可視化カード
 * ========================================================== */
.en-jobseekers-status {
	background: #fff;
	border: 2px solid var(--brand-navy);
	border-radius: var(--rd-lg);
	padding: var(--sp-6);
	max-width: 640px;
	margin: 0 auto;
}

.en-jobseekers-status__title {
	font-size: var(--fs-xl);
	text-align: center;
	margin: 0 0 var(--sp-4);
	color: var(--brand-navy);
	line-height: 1.5;
}

.en-jobseekers-status__date {
	display: inline-block;
	margin-left: var(--sp-2);
	font-size: var(--fs-sm);
	font-weight: 500;
	color: var(--text-muted);
}

.en-jobseekers-status__list {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-4);
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: var(--sp-2);
}

.en-jobseekers-status__list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--sp-2) var(--sp-3);
	background: var(--bg-muted);
	border-radius: var(--rd-md);
}

.en-jobseekers-status__pref {
	font-weight: 600;
}

.en-jobseekers-status__count {
	color: var(--primary-dk);
	font-weight: 700;
}

.en-jobseekers-status__total {
	text-align: center;
	font-size: var(--fs-lg);
	padding: var(--sp-3) 0;
	border-top: 1px dashed var(--border);
	margin-bottom: var(--sp-5);
}

.en-jobseekers-status__total strong {
	color: var(--primary-dk);
	font-size: var(--fs-xl);
	margin-left: var(--sp-2);
}

.en-jobseekers-status__cta {
	background: var(--bg-muted);
	padding: var(--sp-4);
	border-radius: var(--rd-md);
	text-align: center;
}

.en-jobseekers-status__cta-title {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-base);
}

.en-jobseekers-status__cta-text {
	margin: 0 0 var(--sp-4);
	font-size: var(--fs-sm);
	color: var(--text-muted);
}

@media (max-width: 600px) {
	.en-jobseekers-status__list {
		grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	}
}


/* ========== Recent updates (front-page)(2026-04-24 追加) ========== */

.en-recent-updates {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-5);
	background: #fff;
	border-radius: var(--rd-lg);
	box-shadow: var(--sh-sm);
	overflow: hidden;
}
.en-recent-updates__item {
	display: flex;
	gap: var(--sp-3);
	align-items: center;
	padding: var(--sp-3) var(--sp-4);
	border-bottom: 1px solid var(--border);
	flex-wrap: wrap;
}
.en-recent-updates__item:last-child {
	border-bottom: 0;
}
.en-recent-updates__date {
	color: var(--text-muted);
	font-size: var(--fs-sm);
	white-space: nowrap;
	flex-shrink: 0;
}
.en-recent-updates__type {
	display: inline-block;
	padding: 2px 10px;
	font-size: var(--fs-xs);
	font-weight: 700;
	border-radius: 999px;
	background: #f2f2f2;
	color: #333;
	white-space: nowrap;
	flex-shrink: 0;
}
.en-recent-updates__type--post       { background: #fef3c7; color: #92400e; }
.en-recent-updates__type--offer      { background: #e0f2fe; color: #075985; }
.en-recent-updates__type--job-offer  { background: #ecfccb; color: #3f6212; }
.en-recent-updates__title {
	flex: 1 1 200px;
	color: inherit;
	text-decoration: none;
	font-weight: 500;
}
.en-recent-updates__title:hover {
	color: var(--primary-dk);
}
.en-recent-updates__nav {
	text-align: center;
	font-size: var(--fs-sm);
}
.en-recent-updates__nav a {
	color: var(--primary-dk);
	text-decoration: none;
	font-weight: 700;
	padding: 0 var(--sp-2);
}
.en-recent-updates__nav a:hover {
	text-decoration: underline;
}
.en-recent-updates__nav span {
	color: var(--border);
}
@media (max-width: 640px) {
	.en-recent-updates__item {
		padding: var(--sp-3);
	}
	.en-recent-updates__title {
		flex-basis: 100%;
	}
}


/* ========== Milestones (front-page これまでの歩み)(2026-04-24 追加) ========== */

.en-milestones {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}
.en-milestones::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 12px;
	bottom: 12px;
	width: 2px;
	background: var(--primary);
	opacity: 0.3;
}
.en-milestones__item {
	position: relative;
	padding: var(--sp-2) 0 var(--sp-5) var(--sp-10);
	min-height: 40px;
}
.en-milestones__item:last-child {
	padding-bottom: 0;
}
.en-milestones__item::before {
	content: "";
	position: absolute;
	left: 13px;
	top: 14px;
	width: 16px;
	height: 16px;
	background: var(--primary);
	border-radius: 50%;
	box-shadow: 0 0 0 4px #fff;
	z-index: 1;
}
.en-milestones__date {
	display: block;
	font-weight: 700;
	color: var(--primary-dk);
	font-size: var(--fs-sm);
	margin-bottom: 4px;
}
.en-milestones__desc {
	font-size: var(--fs-lg);
	line-height: 1.6;
}


/* ==========================================================================
 * Resource (業界リソース)
 * - 画像なし設計：カテゴリアイコン + タイポ + 余白で表現
 * - 親カテゴリ（ポータル / 協会・組合）でグラデーション色を切替
 * ==========================================================================*/

/* ----- Archive: イントロ + フィードバック誘導 ----- */
.en-resource-intro {
	margin: var(--sp-4) 0 0;
	color: var(--text-muted);
	font-size: var(--fs-base);
	line-height: var(--lh-loose);
}

.en-resource-feedback-box {
	margin: var(--sp-8) auto 0;
	max-width: 620px;
	padding: var(--sp-5) var(--sp-6);
	background: #FFFAF3;
	border: 1px solid rgba(255, 138, 31, 0.25);
	border-left: 4px solid var(--primary);
	border-radius: var(--rd-md);
	text-align: left;
}
.en-resource-feedback-box strong {
	display: block;
	color: var(--brand-navy);
	font-size: var(--fs-base);
	margin-bottom: var(--sp-2);
}
.en-resource-feedback-box p {
	margin: 0;
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: var(--lh-loose);
}
.en-resource-feedback-box a {
	color: var(--primary-dk);
	font-weight: 700;
}

.en-resource-disclaimer {
	color: var(--text-muted);
	font-size: var(--fs-sm);
	line-height: var(--lh-loose);
	text-align: center;
	margin: 0;
}


/* ----- Card (no image) ----- */
.en-resource-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-lg);
	overflow: hidden;
	transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.15s ease;
	height: 100%;
}
.en-resource-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sh-md);
	border-color: var(--primary-lt);
}

.en-resource-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 110px;
	padding: var(--sp-6) var(--sp-4);
	background: linear-gradient(135deg, #F8F9FB 0%, #FCFCFD 100%);
	border-bottom: 1px solid var(--border);
}
.en-resource-card__icon-emoji {
	font-size: 3rem;
	line-height: 1;
	filter: drop-shadow(0 2px 4px rgba(31, 41, 55, 0.08));
}

.en-resource-card--portal .en-resource-card__icon {
	background: linear-gradient(135deg, #FFF6EC 0%, #FFFAF3 100%);
	border-bottom-color: rgba(255, 138, 31, 0.18);
}
.en-resource-card--assoc .en-resource-card__icon {
	background: linear-gradient(135deg, #F3F5FA 0%, #F8FAFD 100%);
	border-bottom-color: rgba(42, 55, 86, 0.12);
}

.en-resource-card__body {
	padding: var(--sp-5) var(--sp-5) var(--sp-5);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	flex: 1;
}

.en-resource-card__title {
	margin: 0;
	font-size: var(--fs-lg);
	font-weight: 700;
	color: var(--brand-navy);
	line-height: var(--lh-tight);
}

.en-resource-card__summary {
	margin: 0;
	font-size: var(--fs-sm);
	color: var(--text);
	line-height: var(--lh-normal);
}

.en-resource-card__divider {
	margin: var(--sp-2) 0 0;
	border: 0;
	border-top: 1px solid var(--border);
}

.en-resource-card__meta-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.en-resource-card__meta {
	display: flex;
	gap: var(--sp-2);
	align-items: flex-start;
	font-size: var(--fs-sm);
	color: var(--text-muted);
	line-height: 1.5;
}
.en-resource-card__meta-icon {
	flex-shrink: 0;
	width: 1.4em;
	text-align: center;
}
.en-resource-card__meta-text {
	flex: 1;
	min-width: 0;
}

.en-resource-card__quote {
	margin: var(--sp-2) 0 0;
	padding: var(--sp-3) var(--sp-4);
	background: #FFFAF3;
	border-left: 3px solid var(--primary);
	border-radius: 0 var(--rd-sm) var(--rd-sm) 0;
	font-size: var(--fs-sm);
	color: var(--text);
	line-height: var(--lh-normal);
	font-style: normal;
}
.en-resource-card__quote-label {
	display: block;
	font-size: var(--fs-xs);
	color: var(--primary-dk);
	font-weight: 700;
	margin-bottom: var(--sp-1);
	letter-spacing: 0.02em;
}

.en-resource-card__actions {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin-top: auto;
	padding-top: var(--sp-3);
}
.en-resource-card__actions .en-btn {
	width: 100%;
	justify-content: center;
}


/* ----- Single: Hero ----- */
.en-resource-hero {
	padding: var(--sp-16) var(--sp-4);
	background: linear-gradient(135deg, #F8F9FB 0%, #FCFCFD 100%);
	border-bottom: 1px solid var(--border);
}
.en-resource-hero--portal {
	background: linear-gradient(135deg, #FFF6EC 0%, #FFFAF3 100%);
	border-bottom-color: rgba(255, 138, 31, 0.18);
}
.en-resource-hero--assoc {
	background: linear-gradient(135deg, #F3F5FA 0%, #F8FAFD 100%);
	border-bottom-color: rgba(42, 55, 86, 0.12);
}

.en-resource-hero__inner {
	text-align: center;
}
.en-resource-hero__icon {
	font-size: 4.5rem;
	line-height: 1;
	margin-bottom: var(--sp-4);
	filter: drop-shadow(0 4px 8px rgba(31, 41, 55, 0.1));
}
.en-resource-hero__breadtags {
	display: flex;
	justify-content: center;
	gap: var(--sp-2);
	margin-bottom: var(--sp-4);
}
.en-resource-hero__title {
	margin: 0 0 var(--sp-3);
	font-size: var(--fs-4xl);
	color: var(--brand-navy);
	line-height: var(--lh-tight);
}
.en-resource-hero__summary {
	margin: 0 auto;
	max-width: 640px;
	color: var(--text);
	font-size: var(--fs-lg);
	line-height: var(--lh-loose);
}
.en-resource-hero__cta {
	margin-top: var(--sp-6);
}

@media (max-width: 640px) {
	.en-resource-hero {
		padding: var(--sp-10) var(--sp-4);
	}
	.en-resource-hero__icon {
		font-size: 3.5rem;
	}
	.en-resource-hero__title {
		font-size: var(--fs-3xl);
	}
	.en-resource-hero__summary {
		font-size: var(--fs-base);
	}
}


/* ----- Single: Info grid (📍 / 💴 / 📊) ----- */
.en-resource-info-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-4);
	margin-bottom: var(--sp-10);
}
.en-resource-info-card {
	padding: var(--sp-5);
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--rd-md);
	box-shadow: var(--sh-sm);
}
.en-resource-info-card__label {
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 700;
	margin-bottom: var(--sp-2);
}
.en-resource-info-card__value {
	font-size: var(--fs-base);
	color: var(--brand-navy);
	line-height: var(--lh-normal);
	font-weight: 500;
}
@media (max-width: 1024px) {
	.en-resource-info-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 640px) {
	.en-resource-info-grid {
		grid-template-columns: 1fr;
		gap: var(--sp-3);
	}
}


/* ----- Single: Content area ----- */
.en-resource-content {
	margin-bottom: var(--sp-10);
}
.en-resource-content h2 {
	font-size: var(--fs-2xl);
	color: var(--brand-navy);
	margin: var(--sp-8) 0 var(--sp-3);
	padding-bottom: var(--sp-2);
	border-bottom: 2px solid var(--primary);
}
.en-resource-content h2:first-child {
	margin-top: 0;
}
.en-resource-content p {
	line-height: var(--lh-loose);
}
.en-resource-content ul {
	line-height: var(--lh-loose);
}


/* ----- Single: Takizawa quote ----- */
.en-resource-takizawa {
	margin: var(--sp-10) 0;
}
.en-resource-takizawa h2 {
	font-size: var(--fs-2xl);
	color: var(--brand-navy);
	margin-bottom: var(--sp-4);
}
.en-resource-takizawa__quote {
	margin: 0;
	padding: var(--sp-6) var(--sp-6);
	background: #FFFAF3;
	border-left: 4px solid var(--primary);
	border-radius: 0 var(--rd-md) var(--rd-md) 0;
	font-size: var(--fs-base);
	line-height: var(--lh-loose);
	color: var(--text);
}
.en-resource-takizawa__footer {
	display: block;
	margin-top: var(--sp-3);
	font-size: var(--fs-sm);
	color: var(--text-muted);
	font-weight: 500;
}


/* ----- Single: CTA block ----- */
.en-resource-cta-block {
	display: flex;
	flex-direction: column;
	align-items: center;
}


/* ----- Single: Related resources ----- */
.en-resource-related {
	/* en-grid--3 ベースなので追加スタイルは最小限 */
	margin-top: var(--sp-4);
}

