/*
Theme Name: Adtora Child
Theme URI: https://adtora.jp/
Author: Web Development
Description: Adtora Base の子テーマ。公開後の個別調整・運用変更はこちらで管理します。
Version: 0.1.0
Template: adtora-base
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: adtora-child
*/


/* ==================================================
   Breadcrumbs
================================================== */

.adtora-breadcrumb-wrap {
	width: 100%;
	background: #fff;
	border-bottom: 1px solid rgba(15, 35, 55, 0.08);
}

.adtora-breadcrumb-wrap .rank-math-breadcrumb p {
	margin: 0;
	padding: 12px 0;
	font-size: 12px;
	line-height: 1.6;
	color: #6b7280;
}

.adtora-breadcrumb-wrap .rank-math-breadcrumb a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.adtora-breadcrumb-wrap .rank-math-breadcrumb a:hover {
	opacity: 0.65;
}

@media (max-width: 767px) {
	.adtora-breadcrumb-wrap {
		overflow: hidden;
	}

	.adtora-breadcrumb-wrap .rank-math-breadcrumb {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.adtora-breadcrumb-wrap .rank-math-breadcrumb p {
		padding: 10px 0;
		font-size: 11px;
		white-space: nowrap;
	}
}





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

.faq-intro {
	padding: 56px 0 36px;
}

.faq-intro p {
	margin: 0;
	font-size: 16px;
	line-height: 2;
	color: #4b5563;
}

/* Category navigation */

.faq-category-nav {
	padding: 0 0 64px;
}

.faq-category-nav__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.faq-category-nav__list a {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 100%;
	padding: 18px 20px;
	border: 1px solid #e5e7eb;
	background: #fff;
	color: #1f2937;
	text-decoration: none;
	font-size: 14px;
	line-height: 1.5;
	transition: border-color .2s ease, background .2s ease;
}

.faq-category-nav__list a:hover {
	background: #f8fafc;
	border-color: #cbd5e1;
}

.faq-category-nav__list span {
	flex: 0 0 auto;
	font-size: 12px;
	font-weight: 700;
	color: #9ca3af;
}

/* FAQ sections */

.faq-sections {
	padding: 0 0 96px;
}

.faq-section {
	scroll-margin-top: 100px;
	margin-bottom: 72px;
}

.faq-section:last-child {
	margin-bottom: 0;
}

.faq-section__header {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 24px;
	padding-bottom: 18px;
	border-bottom: 1px solid #dfe3e8;
}

.faq-section__number {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	color: #9ca3af;
}

.faq-section__title {
	margin: 0;
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1.4;
	color: #172033;
}

/* Accordion */

.faq-list {
	border-top: 1px solid #e5e7eb;
}

.faq-item {
	border-bottom: 1px solid #e5e7eb;
	background: #fff;
}

.faq-item summary {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 24px 52px 24px 4px;
	cursor: pointer;
	list-style: none;
}

.faq-item summary::-webkit-details-marker {
	display: none;
}

.faq-item__mark {
	display: flex;
	flex: 0 0 34px;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #172033;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
}

.faq-item__mark--answer {
	background: #e5e7eb;
	color: #172033;
}

.faq-item__question {
	font-weight: 700;
	font-size: 16px;
	line-height: 1.7;
	color: #172033;
}

.faq-item__toggle {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 18px;
	height: 18px;
	transform: translateY(-50%);
}

.faq-item__toggle::before,
.faq-item__toggle::after {
	position: absolute;
	top: 50%;
	left: 50%;
	content: "";
	background: #64748b;
	transform: translate(-50%, -50%);
}

.faq-item__toggle::before {
	width: 16px;
	height: 1px;
}

.faq-item__toggle::after {
	width: 1px;
	height: 16px;
	transition: opacity .2s ease;
}

.faq-item[open] .faq-item__toggle::after {
	opacity: 0;
}

.faq-item__answer {
	display: flex;
	gap: 18px;
	padding: 0 52px 26px 4px;
}

.faq-item__content {
	flex: 1;
	font-size: 15px;
	line-height: 2;
	color: #4b5563;
}

.faq-item__content > *:first-child {
	margin-top: 4px;
}

.faq-item__content > *:last-child {
	margin-bottom: 0;
}

.faq-section__empty {
	padding: 24px 4px;
	border-bottom: 1px solid #e5e7eb;
	color: #9ca3af;
	font-size: 14px;
}

/* Contact */

.faq-contact {
	padding: 80px 0;
	background: #172033;
	color: #fff;
}

.faq-contact__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.faq-contact__eyebrow {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	opacity: .65;
}

.faq-contact h2 {
	margin: 0 0 20px;
	font-size: clamp(26px, 4vw, 38px);
	line-height: 1.4;
}

.faq-contact p {
	margin: 0 auto 32px;
	max-width: 640px;
	line-height: 2;
	opacity: .82;
}

/* Mobile */

@media (max-width: 767px) {

	.faq-intro {
		padding: 40px 0 28px;
	}

	.faq-category-nav {
		padding-bottom: 48px;
	}

	.faq-category-nav__list {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.faq-category-nav__list a {
		padding: 15px 16px;
	}

	.faq-sections {
		padding-bottom: 72px;
	}

	.faq-section {
		margin-bottom: 56px;
	}

	.faq-section__header {
		align-items: flex-start;
		gap: 12px;
	}

	.faq-section__title {
		font-size: 21px;
	}

	.faq-item summary {
		gap: 12px;
		padding: 20px 40px 20px 0;
	}

	.faq-item__mark {
		flex-basis: 30px;
		width: 30px;
		height: 30px;
		font-size: 12px;
	}

	.faq-item__question {
		font-size: 15px;
	}

	.faq-item__answer {
		gap: 12px;
		padding: 0 0 22px;
	}

	.faq-item__content {
		font-size: 14px;
	}

	.faq-contact {
		padding: 64px 0;
	}
}




/* ==================================================
   Safety CTA
================================================== */

.safety-cta {
	background: #e31b23;
	color: #fff;
	padding: 56px 0;
}

.safety-cta .service-kicker,
.safety-cta h2 {
	color: #fff;
}

.safety-cta .button--cta-light {
	border-color: #fff;
	background: #fff;
	color: #0b2239;
}

.safety-cta .button--cta-light:hover {
	background: transparent;
	color: #fff;
}

@media (max-width: 767px) {
	.safety-cta {
		padding: 40px 0;
	}
}












/* ==================================================
   Company Page
================================================== */

.company-profile-table {
	border-top: 1px solid #dfe3e8;
}

.company-profile-row {
	display: grid;
	grid-template-columns: 220px 1fr;
	border-bottom: 1px solid #dfe3e8;
}

.company-profile-row dt,
.company-profile-row dd {
	margin: 0;
	padding: 22px 24px;
}

.company-profile-row dt {
	font-size: 13px;
	font-weight: 700;
	color: #6b7280;
	background: #f6f8fa;
}

.company-profile-row dd {
	font-size: 15px;
	line-height: 1.8;
	color: #172033;
}

.company-profile-row a {
	color: inherit;
	text-decoration: none;
}


/* Business */

.company-business,
.company-offices {
	padding: 96px 0;
}

.company-section-lead {
	max-width: 760px;
	margin: 18px 0 0;
	color: #667085;
	line-height: 1.9;
}

.company-business-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 48px;
	border-top: 1px solid #dfe3e8;
	border-left: 1px solid #dfe3e8;
}

.company-business-grid article {
	min-height: 250px;
	padding: 34px;
	border-right: 1px solid #dfe3e8;
	border-bottom: 1px solid #dfe3e8;
}

.company-business-grid span,
.company-office-grid span {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	color: #e31b23;
}

.company-business-grid h3,
.company-office-grid h3 {
	margin: 34px 0 12px;
	font-size: 22px;
	line-height: 1.5;
	color: #0b2239;
}

.company-business-grid p,
.company-office-grid p {
	margin: 0;
	color: #667085;
	line-height: 1.9;
}

.company-business-legal {
	margin-top: 48px;
	padding: 36px 40px;
	background: #f6f8fa;
}

.company-business-legal h3 {
	margin: 0 0 18px;
	font-size: 18px;
	color: #0b2239;
}

.company-business-legal ul {
	margin: 0;
	padding-left: 1.3em;
	color: #667085;
	line-height: 2;
}


/* Offices */

.company-offices {
	background: #f6f8fa;
}

.company-office-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	margin-top: 48px;
	background: #dfe3e8;
	border: 1px solid #dfe3e8;
}

.company-office-grid article {
	min-height: 190px;
	padding: 30px 34px;
	background: #fff;
}


/* Fleet / Safety */

.company-strength,
.company-safety {
	padding: 96px 0;
}

.company-strength {
	background: #0b2239;
	color: #fff;
}

.company-safety {
	background: #fff;
}

.company-strength__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.company-strength h2 {
	color: #fff;
}

.company-safety h2 {
	color: #0b2239;
}

.company-strength__content p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 2;
}

.company-strength .company-strength__content p {
	color: rgba(255,255,255,.76);
}

.company-safety .company-strength__content p {
	color: #667085;
}

.company-text-link {
	display: inline-block;
	margin-top: 10px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.company-strength .company-text-link {
	color: #fff;
}

.company-safety .company-text-link {
	color: #e31b23;
}

.company-contact-copy {
	max-width: 620px;
	margin-top: 18px;
	line-height: 1.8;
}


/* Mobile */

@media (max-width: 767px) {

	.company-profile-row {
		grid-template-columns: 1fr;
	}

	.company-profile-row dt {
		padding: 16px 18px 8px;
	}

	.company-profile-row dd {
		padding: 8px 18px 16px;
	}

	.company-business,
	.company-offices,
	.company-strength,
	.company-safety {
		padding: 64px 0;
	}

	.company-business-grid,
	.company-office-grid {
		grid-template-columns: 1fr;
	}

	.company-business-grid article {
		min-height: auto;
		padding: 26px 22px;
	}

	.company-office-grid article {
		min-height: auto;
		padding: 24px 22px;
	}

	.company-business-grid h3,
	.company-office-grid h3 {
		margin-top: 24px;
		font-size: 19px;
	}

	.company-business-legal {
		padding: 26px 22px;
	}

	.company-strength__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}

}








/* ==================================================
   Vehicle Archive
================================================== */

.vehicle-kicker {
	margin: 0 0 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #e31b23;
}


/* Intro */

.vehicle-intro {
	padding: 88px 0;
}

.vehicle-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.vehicle-intro h2 {
	margin: 0;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.5;
	color: #0b2239;
}

.vehicle-intro__copy p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 2;
	color: #667085;
}


/* Type navigation */

.vehicle-type-nav {
	padding: 38px 0;
	background: #f6f8fa;
	border-top: 1px solid #e2e6ea;
	border-bottom: 1px solid #e2e6ea;
}

.vehicle-type-nav__label {
	margin: 0 0 16px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #8a94a3;
}

.vehicle-type-nav__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vehicle-type-nav__links a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 13px 18px;
	border: 1px solid #d9dee4;
	background: #fff;
	color: #0b2239;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
}

.vehicle-type-nav__links a:hover {
	border-color: #0b2239;
}

.vehicle-type-nav__links span {
	color: #e31b23;
}


/* Vehicle sections */

.vehicle-lineup {
	padding: 96px 0;
}

.vehicle-type-section {
	scroll-margin-top: 100px;
	margin-bottom: 104px;
}

.vehicle-type-section:last-child {
	margin-bottom: 0;
}

.vehicle-type-section__header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: end;
	margin-bottom: 38px;
	padding-bottom: 24px;
	border-bottom: 1px solid #dfe3e8;
}

.vehicle-type-section__header h2 {
	margin: 0;
	font-size: clamp(28px, 4vw, 42px);
	color: #0b2239;
}

.vehicle-type-section__header > p {
	margin: 0;
	color: #667085;
	line-height: 1.9;
}

.vehicle-type-section__more {
	margin-top: 28px;
	text-align: right;
}


/* Comparison */

.vehicle-comparison {
	padding: 96px 0;
	background: #f6f8fa;
}

.vehicle-section-heading {
	max-width: 760px;
	margin-bottom: 44px;
}

.vehicle-section-heading h2 {
	margin: 0 0 18px;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.45;
	color: #0b2239;
}

.vehicle-section-heading > p:last-child {
	margin: 0;
	color: #667085;
	line-height: 1.9;
}

.vehicle-comparison__scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.vehicle-comparison-table {
	width: 100%;
	min-width: 760px;
	border-collapse: collapse;
	background: #fff;
}

.vehicle-comparison-table th,
.vehicle-comparison-table td {
	padding: 20px 22px;
	border: 1px solid #dfe3e8;
	text-align: left;
	vertical-align: top;
	font-size: 14px;
	line-height: 1.7;
}

.vehicle-comparison-table thead th {
	background: #0b2239;
	color: #fff;
	font-size: 12px;
	letter-spacing: .04em;
}

.vehicle-comparison-table tbody th {
	width: 190px;
	color: #0b2239;
	background: #fafbfc;
}


/* Strengths */

.vehicle-strengths {
	padding: 96px 0;
	background: #0b2239;
	color: #fff;
}

.vehicle-strengths .vehicle-kicker {
	color: #fff;
	opacity: .6;
}

.vehicle-strengths .vehicle-section-heading h2 {
	color: #fff;
}

.vehicle-strength-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255,255,255,.18);
	border-left: 1px solid rgba(255,255,255,.18);
}

.vehicle-strength-grid article {
	min-height: 280px;
	padding: 30px;
	border-right: 1px solid rgba(255,255,255,.18);
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.vehicle-strength-grid span {
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	opacity: .45;
}

.vehicle-strength-grid h3 {
	margin: 54px 0 16px;
	font-size: 20px;
	color: #fff;
}

.vehicle-strength-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: rgba(255,255,255,.72);
}


/* Selection support */

.vehicle-support {
	padding: 96px 0;
}

.vehicle-support__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
}

.vehicle-support h2 {
	margin: 0;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.5;
	color: #0b2239;
}

.vehicle-support__content p {
	margin: 0 0 26px;
	font-size: 15px;
	line-height: 2;
	color: #667085;
}

.vehicle-text-link {
	display: inline-block;
	color: #e31b23;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}


/* CTA */

.vehicle-cta {
	padding: 56px 0;
	background: #e31b23;
	color: #fff;
}

.vehicle-cta .service-kicker,
.vehicle-cta h2 {
	color: #fff;
}

.vehicle-cta__copy {
	margin: 16px 0 0;
	line-height: 1.8;
	color: rgba(255,255,255,.84);
}

.vehicle-cta .button--cta-light {
	border-color: #fff;
	background: #fff;
	color: #0b2239;
}

.vehicle-cta .button--cta-light:hover {
	background: transparent;
	color: #fff;
}


/* Mobile */

@media (max-width: 767px) {

	.vehicle-intro,
	.vehicle-lineup,
	.vehicle-comparison,
	.vehicle-strengths,
	.vehicle-support {
		padding: 64px 0;
	}

	.vehicle-intro__grid,
	.vehicle-type-section__header,
	.vehicle-support__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.vehicle-type-nav__links {
		display: grid;
		grid-template-columns: 1fr;
	}

	.vehicle-type-nav__links a {
		justify-content: space-between;
	}

	.vehicle-type-section {
		margin-bottom: 72px;
	}

	.vehicle-strength-grid {
		grid-template-columns: 1fr;
	}

	.vehicle-strength-grid article {
		min-height: auto;
		padding: 26px 22px;
	}

	.vehicle-strength-grid h3 {
		margin-top: 28px;
	}

	.vehicle-cta {
		padding: 44px 0;
	}

}






/* ==================================================
   Service Page
================================================== */

.service-intro,
.service-main,
.service-guide,
.service-safety {
	padding: 96px 0;
}

.service-intro__grid,
.service-safety__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.service-intro h2,
.service-safety h2 {
	margin: 0;
	font-size: clamp(30px, 4vw, 50px);
	line-height: 1.5;
	color: #0b2239;
}

.service-intro__copy p,
.service-safety__content p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 2;
	color: #667085;
}


/* Heading */

.service-section-heading {
	max-width: 760px;
	margin-bottom: 48px;
}

.service-section-heading h2 {
	margin: 0 0 18px;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.45;
	color: #0b2239;
}

.service-section-heading > p:last-child {
	margin: 0;
	line-height: 1.9;
	color: #667085;
}


/* Main services */

.service-main {
	background: #f6f8fa;
}

.service-feature {
	display: grid;
	grid-template-columns: 140px 1fr;
	margin-bottom: 24px;
	border: 1px solid #dfe3e8;
	background: #fff;
}

.service-feature__number {
	padding: 34px 30px;
	border-right: 1px solid #dfe3e8;
	font-size: 13px;
	font-weight: 700;
	color: #9ca3af;
}

.service-feature__content {
	padding: 48px;
}

.service-feature__eyebrow {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #e31b23;
}

.service-feature h2 {
	margin: 0 0 22px;
	font-size: clamp(28px, 4vw, 40px);
	color: #0b2239;
}

.service-feature__lead {
	max-width: 760px;
	margin: 0 0 36px;
	font-size: 16px;
	line-height: 2;
	color: #667085;
}

.service-feature__points {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin-bottom: 34px;
	background: #dfe3e8;
	border: 1px solid #dfe3e8;
}

.service-feature__points > div {
	padding: 24px;
	background: #fff;
}

.service-feature__points strong {
	display: block;
	margin-bottom: 10px;
	color: #0b2239;
}

.service-feature__points p {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #667085;
}


/* Dark service */

.service-feature--dark {
	border-color: #0b2239;
	background: #0b2239;
}

.service-feature--dark .service-feature__number {
	border-color: rgba(255,255,255,.16);
	color: rgba(255,255,255,.45);
}

.service-feature--dark h2 {
	color: #fff;
}

.service-feature--dark .service-feature__lead {
	color: rgba(255,255,255,.72);
}

.service-feature--dark .service-feature__points {
	background: rgba(255,255,255,.16);
	border-color: rgba(255,255,255,.16);
}

.service-feature--dark .service-feature__points > div {
	background: #112b45;
}

.service-feature--dark .service-feature__points strong {
	color: #fff;
}

.service-feature--dark .service-feature__points p {
	color: rgba(255,255,255,.7);
}

.service-text-link {
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
	color: #e31b23;
	text-decoration: none;
}

.service-feature--dark .service-text-link {
	color: #fff;
}


/* One stop */

.service-strength {
	padding: 96px 0;
	background: #0b2239;
}

.service-strength .service-kicker,
.service-strength .service-section-heading h2 {
	color: #fff;
}

.service-strength .service-section-heading > p:last-child {
	color: rgba(255,255,255,.7);
}

.service-strength-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255,255,255,.16);
	border-left: 1px solid rgba(255,255,255,.16);
}

.service-strength-grid article {
	min-height: 260px;
	padding: 28px;
	border-right: 1px solid rgba(255,255,255,.16);
	border-bottom: 1px solid rgba(255,255,255,.16);
}

.service-strength-grid > article > span {
	display: block;
	margin-bottom: 38px;
	font-size: 12px;
	color: rgba(255,255,255,.4);
}

.service-strength-grid h3 {
	margin: 0 0 14px;
	font-size: 20px;
	color: #fff;
}

.service-strength-grid p:last-child {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: rgba(255,255,255,.7);
}


/* Guide */

.service-guide {
	background: #fff;
}

.service-guide-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid #dfe3e8;
	border-left: 1px solid #dfe3e8;
}

.service-guide-grid > a {
	min-height: 250px;
	padding: 34px;
	border-right: 1px solid #dfe3e8;
	border-bottom: 1px solid #dfe3e8;
	color: inherit;
	text-decoration: none;
	transition: background .2s ease;
}

.service-guide-grid > a:hover {
	background: #f6f8fa;
}

.service-guide-grid span {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	color: #e31b23;
}

.service-guide-grid h3 {
	margin: 40px 0 12px;
	font-size: 22px;
	color: #0b2239;
}

.service-guide-grid p {
	margin: 0 0 20px;
	line-height: 1.8;
	color: #667085;
}

.service-guide-grid strong {
	font-size: 13px;
	color: #0b2239;
}


/* Safety */

.service-safety {
	background: #f6f8fa;
}


/* CTA */

.service-cta {
	padding: 56px 0;
	background: #e31b23;
	color: #fff;
}

.service-cta .service-kicker,
.service-cta h2 {
	color: #fff;
}

.service-cta__copy {
	margin: 16px 0 0;
	max-width: 650px;
	line-height: 1.8;
	color: rgba(255,255,255,.84);
}

.service-cta .button--cta-light {
	border-color: #fff;
	background: #fff;
	color: #0b2239;
}

.service-cta .button--cta-light:hover {
	background: transparent;
	color: #fff;
}


/* Mobile */

@media (max-width: 767px) {

	.service-intro,
	.service-main,
	.service-strength,
	.service-guide,
	.service-safety {
		padding: 64px 0;
	}

	.service-intro__grid,
	.service-safety__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.service-feature {
		grid-template-columns: 1fr;
	}

	.service-feature__number {
		padding: 18px 22px;
		border-right: 0;
		border-bottom: 1px solid #dfe3e8;
	}

	.service-feature__content {
		padding: 30px 22px;
	}

	.service-feature__points {
		grid-template-columns: 1fr;
	}

	.service-strength-grid {
		grid-template-columns: 1fr;
	}

	.service-strength-grid article {
		min-height: auto;
	}

	.service-guide-grid {
		grid-template-columns: 1fr;
	}

	.service-guide-grid > a {
		min-height: auto;
		padding: 28px 22px;
	}

	.service-cta {
		padding: 44px 0;
	}
}





/* Vehicle archive heading adjustment */
.vehicle-intro__grid {
	grid-template-columns: 1.12fr .88fr;
}

.vehicle-intro h2 {
	font-size: clamp(30px, 3.4vw, 44px);
}



.vehicle-support__grid {
	grid-template-columns: 1.15fr .85fr;
}

.vehicle-support h2 {
	font-size: clamp(28px, 3.2vw, 40px);
}







/* ==================================================
   Works Pagination
================================================== */

.archive-works .navigation.pagination,
.post-type-archive-works .navigation.pagination {
	margin: 64px 0 24px;
}

.archive-works .pagination .nav-links,
.post-type-archive-works .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.archive-works .pagination .page-numbers,
.post-type-archive-works .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border: 1px solid #dbe1e7;
	border-radius: 8px;
	background: #fff;
	color: #0b2239;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition:
		background .2s ease,
		color .2s ease,
		border-color .2s ease,
		transform .2s ease;
}

.archive-works .pagination a.page-numbers:hover,
.post-type-archive-works .pagination a.page-numbers:hover {
	border-color: #0b2239;
	background: #0b2239;
	color: #fff;
	transform: translateY(-2px);
}

.archive-works .pagination .page-numbers.current,
.post-type-archive-works .pagination .page-numbers.current {
	border-color: #e31b23;
	background: #e31b23;
	color: #fff;
}

.archive-works .pagination .page-numbers.dots,
.post-type-archive-works .pagination .page-numbers.dots {
	min-width: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #8a94a3;
}

.archive-works .pagination .page-numbers.next,
.archive-works .pagination .page-numbers.prev,
.post-type-archive-works .pagination .page-numbers.next,
.post-type-archive-works .pagination .page-numbers.prev {
	min-width: auto;
	padding: 0 20px;
}


/* Mobile */
@media (max-width: 767px) {

	.archive-works .navigation.pagination,
	.post-type-archive-works .navigation.pagination {
		margin-top: 44px;
	}

	.archive-works .pagination .nav-links,
	.post-type-archive-works .pagination .nav-links {
		gap: 7px;
	}

	.archive-works .pagination .page-numbers,
	.post-type-archive-works .pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		padding: 0 11px;
		font-size: 13px;
		border-radius: 7px;
	}

}







/* ==================================================
   Flow Page
================================================== */

.flow-kicker {
	margin: 0 0 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #e31b23;
}


/* Intro */

.flow-intro {
	padding: 96px 0;
}

.flow-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.flow-intro h2 {
	margin: 0;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.5;
	color: #0b2239;
}

.flow-intro__copy p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 2;
	color: #667085;
}


/* Main flow */

.flow-main {
	padding: 96px 0;
	background: #f6f8fa;
}

.flow-heading {
	margin-bottom: 48px;
}

.flow-heading h2 {
	margin: 0;
	font-size: clamp(30px, 4vw, 44px);
	color: #0b2239;
}

.flow-process {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #dce2e8;
}

.flow-process__item {
	display: grid;
	grid-template-columns: 150px 1fr;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.flow-process__number {
	padding: 42px 34px;
	border-right: 1px solid #dce2e8;
	font-size: 13px;
	font-weight: 700;
	color: #e31b23;
}

.flow-process__content {
	padding: 42px 48px 48px;
}

.flow-process__eyebrow {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .13em;
	color: #8a94a3;
}

.flow-process__content h2 {
	margin: 0 0 20px;
	font-size: 28px;
	line-height: 1.5;
	color: #0b2239;
}

.flow-process__content > p {
	max-width: 850px;
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 2;
	color: #667085;
}


/* Points */

.flow-process__points {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 26px;
}

.flow-process__points span {
	padding: 9px 13px;
	border: 1px solid #dce2e8;
	background: #f8fafb;
	font-size: 12px;
	color: #344054;
}


/* Notes */

.flow-process__note {
	max-width: 850px;
	margin-top: 26px;
	padding: 22px 24px;
	border-left: 3px solid #e31b23;
	background: #f6f8fa;
}

.flow-process__note strong {
	display: block;
	margin-bottom: 7px;
	color: #0b2239;
}

.flow-process__note p {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #667085;
}


/* Internal links */

.flow-process__links {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 26px;
}

.flow-process__links a {
	color: #e31b23;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}


/* Before contact */

.flow-before {
	padding: 96px 0;
}

.flow-before-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.flow-before-grid article {
	min-height: 260px;
	padding: 30px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
}

.flow-before-grid span {
	font-size: 12px;
	font-weight: 700;
	color: #e31b23;
}

.flow-before-grid h3 {
	margin: 46px 0 14px;
	font-size: 21px;
	color: #0b2239;
}

.flow-before-grid p {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: #667085;
}


/* CTA */

.flow-cta {
	padding: 56px 0;
	background: #e31b23;
	color: #fff;
}

.flow-cta .service-kicker,
.flow-cta h2 {
	color: #fff;
}

.flow-cta__copy {
	margin: 16px 0 0;
	color: rgba(255,255,255,.84);
	line-height: 1.8;
}

.flow-cta .button--cta-light {
	border-color: #fff;
	background: #fff;
	color: #0b2239;
}


/* Mobile */

@media (max-width: 767px) {

	.flow-intro,
	.flow-main,
	.flow-before {
		padding: 64px 0;
	}

	.flow-intro__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.flow-process__item {
		grid-template-columns: 1fr;
	}

	.flow-process__number {
		padding: 18px 22px;
		border-right: 0;
		border-bottom: 1px solid #dce2e8;
	}

	.flow-process__content {
		padding: 28px 22px 34px;
	}

	.flow-process__content h2 {
		font-size: 23px;
	}

	.flow-before-grid {
		grid-template-columns: 1fr;
	}

	.flow-before-grid article {
		min-height: auto;
		padding: 26px 22px;
	}

	.flow-before-grid h3 {
		margin-top: 28px;
	}

	.flow-cta {
		padding: 44px 0;
	}
}







/* Flow intro heading adjustment */
.flow-intro__grid {
	grid-template-columns: 1.1fr .9fr;
}

.flow-intro h2 {
	font-size: clamp(30px, 3.4vw, 44px);
	line-height: 1.5;
}





/* ==================================================
   COLUMN ARCHIVE
================================================== */

.adtora-column-archive {
	background: #fff;
}

.adtora-column-kicker {
	margin: 0 0 12px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
}


/* Intro
-------------------------------------------------- */

.adtora-column-intro {
	padding: 88px 0;
}

.adtora-column-intro__grid {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 88px;
	align-items: start;
}

.adtora-column-intro h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.45;
	letter-spacing: .01em;
}

.adtora-column-intro__copy {
	padding-top: 18px;
}

.adtora-column-intro__copy p {
	margin: 0 0 18px;
	color: #667085;
	font-size: 15px;
	line-height: 2;
}


/* Categories
-------------------------------------------------- */

.adtora-column-categories {
	padding: 28px 0 36px;
	border-top: 1px solid #e5e9ee;
	border-bottom: 1px solid #e5e9ee;
	background: #f7f9fb;
}

.adtora-column-categories__label {
	margin: 0 0 16px;
	color: #8b95a4;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
}

.adtora-column-categories__list {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.adtora-column-categories__item {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 8px 15px;
	border: 1px solid #dce2e8;
	border-radius: 999px;
	background: #fff;
	color: #0b2239;
	font-size: 12px;
	font-weight: 700;
}


/* Content
-------------------------------------------------- */

.adtora-column-content {
	padding: 88px 0 100px;
	background: #f7f9fb;
}

.adtora-column-section-heading {
	margin-bottom: 34px;
}

.adtora-column-section-heading h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(28px, 3vw, 38px);
}


/* PICK UP
-------------------------------------------------- */

.adtora-column-pickup {
	margin-bottom: 88px;
}

.adtora-column-pickup__card {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
	min-height: 440px;
	overflow: hidden;
	border: 1px solid #e0e5ea;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(11,34,57,.06);
}

.adtora-column-pickup__image {
	display: block;
	min-height: 440px;
	overflow: hidden;
	background: #e9edf1;
}

.adtora-column-pickup__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 440px;
	object-fit: cover;
	transition: transform .45s ease;
}

.adtora-column-pickup__card:hover
.adtora-column-pickup__image img {
	transform: scale(1.025);
}

.adtora-column-pickup__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px;
}

.adtora-column-pickup__title {
	margin: 18px 0 20px;
	font-size: clamp(25px, 2.4vw, 35px);
	line-height: 1.55;
}

.adtora-column-pickup__title a {
	color: #0b2239;
	text-decoration: none;
}

.adtora-column-pickup__excerpt {
	margin: 0 0 28px;
	color: #667085;
	font-size: 14px;
	line-height: 1.9;
}


/* Grid
-------------------------------------------------- */

.adtora-column-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.adtora-column-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #e0e5ea;
	border-radius: 10px;
	background: #fff;
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

.adtora-column-card:hover {
	transform: translateY(-4px);
	border-color: #ccd4dc;
	box-shadow: 0 14px 32px rgba(11,34,57,.08);
}

.adtora-column-card__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 1200 / 630;
	background: #e9edf1;
}

.adtora-column-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.adtora-column-card:hover
.adtora-column-card__image img {
	transform: scale(1.035);
}

.adtora-column-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 24px 24px 26px;
}

.adtora-column-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	color: #8993a1;
	font-size: 11px;
}

.adtora-column-card__category {
	display: inline-flex;
	align-items: center;
	padding: 6px 9px;
	background: #f2f4f7;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
}

.adtora-column-card__title {
	margin: 17px 0 14px;
	font-size: 19px;
	line-height: 1.65;
}

.adtora-column-card__title a {
	color: #0b2239;
	text-decoration: none;
}

.adtora-column-card__excerpt {
	margin: 0 0 24px;
	color: #667085;
	font-size: 13px;
	line-height: 1.85;
}

.adtora-column-more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	color: #0b2239;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.adtora-column-more span {
	color: #e31b23;
	transition: transform .2s ease;
}

.adtora-column-more:hover span {
	transform: translateX(4px);
}


/* Placeholder
-------------------------------------------------- */

.adtora-column-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 220px;
	background: #0b2239;
	color: rgba(255,255,255,.6);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .15em;
}


/* Pagination
-------------------------------------------------- */

.adtora-column-content .navigation.pagination {
	margin: 68px 0 0;
}

.adtora-column-content .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.adtora-column-content .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid #dbe1e7;
	border-radius: 7px;
	background: #fff;
	color: #0b2239;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: .2s ease;
}

.adtora-column-content .pagination a.page-numbers:hover {
	border-color: #0b2239;
	background: #0b2239;
	color: #fff;
	transform: translateY(-2px);
}

.adtora-column-content .pagination .current {
	border-color: #e31b23;
	background: #e31b23;
	color: #fff;
}

.adtora-column-content .pagination .dots {
	min-width: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #98a2b3;
}


/* CTA
-------------------------------------------------- */

.adtora-column-cta {
	padding: 56px 0;
	background: #e31b23;
	color: #fff;
}

.adtora-column-cta .service-kicker,
.adtora-column-cta h2 {
	color: #fff;
}

.adtora-column-cta__copy {
	margin: 16px 0 0;
	color: rgba(255,255,255,.85);
	line-height: 1.8;
}

.adtora-column-cta .button--cta-light {
	border-color: #fff;
	background: #fff;
	color: #0b2239;
}


/* Tablet
-------------------------------------------------- */

@media (max-width: 960px) {

	.adtora-column-intro__grid {
		gap: 48px;
	}

	.adtora-column-pickup__card {
		grid-template-columns: 1fr 1fr;
	}

	.adtora-column-pickup__body {
		padding: 36px;
	}

	.adtora-column-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.adtora-column-intro {
		padding: 60px 0;
	}

	.adtora-column-intro__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.adtora-column-intro__copy {
		padding-top: 0;
	}

	.adtora-column-categories {
		padding: 24px 0 28px;
	}

	.adtora-column-content {
		padding: 64px 0 72px;
	}

	.adtora-column-pickup {
		margin-bottom: 64px;
	}

	.adtora-column-pickup__card {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.adtora-column-pickup__image {
		min-height: 0;
		aspect-ratio: 1200 / 630;
	}

	.adtora-column-pickup__image img {
		min-height: 0;
		aspect-ratio: 1200 / 630;
	}

	.adtora-column-pickup__body {
		padding: 28px 22px 30px;
	}

	.adtora-column-pickup__title {
		font-size: 23px;
	}

	.adtora-column-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.adtora-column-card__body {
		padding: 22px;
	}

	.adtora-column-content .navigation.pagination {
		margin-top: 48px;
	}

	.adtora-column-content .pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		padding: 0 11px;
		font-size: 12px;
	}
}


















/* hero全体の右ビジュアル枠 */
.front-hero__visual {
	position: relative;
	max-width: 560px;
	margin-left: auto;
}

/* ビジュアルの外側パネル */
.front-hero__visual-frame {
	position: relative;
	padding: 14px;
	border-radius: 28px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow:
		0 20px 60px rgba(0, 0, 0, 0.28),
		0 0 0 1px rgba(255, 255, 255, 0.03) inset;
	backdrop-filter: blur(4px);
	overflow: hidden;
}

/* 背景の淡い発光 */
.front-hero__visual-frame::before {
	content: "";
	position: absolute;
	inset: -20% -10% auto auto;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle, rgba(66, 110, 255, 0.22) 0%, rgba(66, 110, 255, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

.front-hero__visual-frame::after {
	content: "";
	position: absolute;
	left: 10%;
	bottom: -10%;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle, rgba(255, 59, 59, 0.10) 0%, rgba(255, 59, 59, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

/* 実画像エリア */
.front-hero__visual-inner {
	position: relative;
	z-index: 1;
	border-radius: 22px;
	overflow: hidden;
	background: #0f1724;
}

/* コラージュ画像そのもの */
.front-hero__visual-inner img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 22px;
}

/* 右下の小カード */
.front-hero__visual-note {
	position: absolute;
	right: -12px;
	bottom: 38px;
	z-index: 2;
	padding: 18px 22px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	color: #0b1f3a;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
	max-width: 190px;
}

.front-hero__visual-note .en {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: #e31b23;
	text-transform: uppercase;
}

.front-hero__visual-note .ja {
	display: block;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
}

/* 下の小さな補足文 */
.front-hero__visual-caption {
	margin-top: 16px;
	padding-left: 14px;
	font-size: 14px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.72);
	border-left: 2px solid #e31b23;
}

.front-hero__visual-caption .num {
	display: inline-block;
	margin-right: 8px;
	font-weight: 700;
	color: #e31b23;
}

/* レスポンシブ */
@media (max-width: 991px) {
	.front-hero__visual {
		max-width: 100%;
		margin: 40px auto 0;
	}

	.front-hero__visual-note {
		right: 12px;
		bottom: 12px;
		max-width: 170px;
		padding: 14px 16px;
	}

	.front-hero__visual-caption {
		font-size: 13px;
	}
}

@media (max-width: 767px) {
	.front-hero__visual-frame {
		padding: 10px;
		border-radius: 20px;
	}

	.front-hero__visual-inner,
	.front-hero__visual-inner img {
		border-radius: 16px;
	}

	.front-hero__visual-note {
		position: static;
		margin-top: 14px;
		max-width: none;
	}
}









/* ==================================================
   PRICE - ONE STOP SUPPORT
================================================== */

.price-support {
	padding: 96px 0;
	background: #fff;
}

.price-support__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 52px;
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.price-support-card {
	display: flex;
	flex-direction: column;
	min-height: 360px;
	padding: 34px 32px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.price-support-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 52px;
}

.price-support-card__number {
	color: #e31b23;
	font-size: 12px;
	font-weight: 700;
}

.price-support-card__en {
	color: #9099a6;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.price-support-card h3 {
	margin: 0 0 18px;
	color: #0b2239;
	font-size: 26px;
	line-height: 1.4;
}

.price-support-card p {
	margin: 0 0 28px;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.price-support-card a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: auto;
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.price-support-card a span {
	transition: transform .2s ease;
}

.price-support-card a:hover span {
	transform: translateX(4px);
}


/* Bottom message */

.price-support__message {
	display: grid;
	grid-template-columns: .5fr 1fr 1fr;
	gap: 40px;
	align-items: start;
	margin-top: 42px;
	padding: 36px 0 0;
	border-top: 1px solid #dce2e8;
}

.price-support__message-label {
	margin: 0;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
}

.price-support__message p {
	margin-top: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.9;
}

.price-support__message strong {
	color: #0b2239;
	font-size: 20px;
	line-height: 1.7;
}


/* Mobile */

@media (max-width: 767px) {

	.price-support {
		padding: 64px 0;
	}

	.price-support__grid {
		grid-template-columns: 1fr;
		margin-top: 36px;
	}

	.price-support-card {
		min-height: auto;
		padding: 28px 22px;
	}

	.price-support-card__head {
		margin-bottom: 30px;
	}

	.price-support__message {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-top: 32px;
	}

}






/* ==================================================
   PRICE DETAIL
================================================== */

.price-detail {
	padding: 96px 0 110px;
	background: #f7f9fb;
}


/* Anchor nav
-------------------------------------------------- */

.price-detail__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 46px 0 56px;
}

.price-detail__nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 22px;
	border: 1px solid #d8dfe6;
	border-radius: 999px;
	background: #fff;
	color: #0b2239;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: .2s ease;
}

.price-detail__nav a:hover {
	border-color: #0b2239;
	background: #0b2239;
	color: #fff;
}


/* Plan
-------------------------------------------------- */

.price-plan {
	margin-top: 28px;
	padding: 48px;
	border: 1px solid #dde3e8;
	background: #fff;
}

.price-plan + .price-plan {
	margin-top: 34px;
}

.price-plan__heading {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	align-items: flex-end;
	padding-bottom: 28px;
	border-bottom: 1px solid #e1e5e9;
}

.price-plan__type {
	margin: 0 0 8px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
}

.price-plan__heading h3 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.35;
}

.price-plan__recommend {
	margin: 0;
	color: #667085;
	font-size: 13px;
	font-weight: 700;
}

.price-plan__intro {
	max-width: 820px;
	margin: 28px 0 34px;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.price-plan__intro p {
	margin: 0 0 10px;
}


/* Tables
-------------------------------------------------- */

.price-table-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.price-table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	background: #fff;
}

.price-table--wide {
	min-width: 760px;
}

.price-table th,
.price-table td {
	padding: 17px 20px;
	border: 1px solid #dce2e8;
	text-align: right;
	white-space: nowrap;
}

.price-table thead th {
	background: #0b2239;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}

.price-table thead th:first-child,
.price-table tbody th {
	text-align: left;
}

.price-table tbody th {
	background: #f6f8fa;
	color: #0b2239;
	font-size: 13px;
	font-weight: 700;
}

.price-table tbody td {
	color: #0b2239;
	font-size: 14px;
	font-weight: 700;
}

.price-table tbody tr:hover td,
.price-table tbody tr:hover th {
	background: #fff8f8;
}


/* Included
-------------------------------------------------- */

.price-plan__included {
	margin-top: 28px;
	padding: 24px 28px;
	background: #f5f7f9;
}

.price-plan__included-title {
	margin: 0 0 14px;
	color: #0b2239;
	font-size: 14px;
	font-weight: 700;
}

.price-plan__included ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.price-plan__included li {
	position: relative;
	padding-left: 15px;
	color: #667085;
	font-size: 13px;
}

.price-plan__included li::before {
	content: "";
	position: absolute;
	top: .65em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #e31b23;
}


/* Notes
-------------------------------------------------- */

.price-plan__notes {
	margin-top: 22px;
	color: #7b8491;
	font-size: 12px;
	line-height: 1.8;
}

.price-plan__notes p {
	margin: 4px 0;
}

.price-plan__link {
	margin: 26px 0 0;
}

.price-plan__link a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Operation
-------------------------------------------------- */

.price-operation {
	margin-top: 72px;
	padding-top: 72px;
	border-top: 1px solid #dce2e8;
}

.price-operation__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 40px;
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.price-operation-card {
	padding: 28px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.price-operation-card span {
	display: block;
	margin-bottom: 28px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
}

.price-operation-card strong {
	color: #0b2239;
	font-size: 21px;
}


/* Conditions
-------------------------------------------------- */

.price-conditions {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin-top: 34px;
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.price-condition {
	padding: 30px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.price-condition__label {
	margin: 0 0 24px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
}

.price-condition h4 {
	margin: 0 0 14px;
	color: #0b2239;
	font-size: 18px;
}

.price-condition p:last-child {
	margin: 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.9;
}


/* Estimate CTA
-------------------------------------------------- */

.price-estimate {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 60px;
	margin-top: 72px;
	padding: 46px;
	background: #0b2239;
	color: #fff;
}

.price-estimate__eyebrow {
	margin: 0 0 14px;
	color: #ef2027;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
}

.price-estimate h3 {
	margin: 0 0 18px;
	color: #fff;
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.55;
}

.price-estimate__content > p:last-child {
	max-width: 650px;
	margin: 0;
	color: rgba(255,255,255,.7);
	font-size: 13px;
	line-height: 1.9;
}

.price-estimate .button {
	flex: 0 0 auto;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.price-detail {
		padding: 64px 0 72px;
	}

	.price-detail__nav {
		margin: 32px 0 38px;
	}

	.price-detail__nav a {
		padding: 9px 16px;
		font-size: 12px;
	}

	.price-plan {
		padding: 28px 20px;
	}

	.price-plan__heading {
		display: block;
	}

	.price-plan__recommend {
		margin-top: 14px;
	}

	.price-table th,
	.price-table td {
		padding: 14px 16px;
		font-size: 12px;
	}

	.price-operation {
		margin-top: 54px;
		padding-top: 54px;
	}

	.price-operation__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.price-operation-card {
		padding: 22px 18px;
	}

	.price-operation-card strong {
		font-size: 17px;
	}

	.price-conditions {
		grid-template-columns: 1fr;
	}

	.price-estimate {
		display: block;
		margin-top: 54px;
		padding: 32px 22px;
	}

	.price-estimate .button {
		margin-top: 28px;
	}

}















/* ==================================================
   FLOW - VEHICLE AVAILABILITY / SCHEDULE
================================================== */

.flow-priority {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	margin: 0 0 46px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.flow-priority__label {
	padding: 34px 26px;
	border-right: 1px solid #dce2e8;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
}

.flow-priority__content {
	padding: 38px 44px;
}

.flow-priority__content h3 {
	margin: 0 0 20px;
	color: #0b2239;
	font-size: clamp(23px, 2.5vw, 32px);
	line-height: 1.55;
}

.flow-priority__content > p {
	max-width: 850px;
	margin: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.flow-priority__note {
	margin-top: 28px;
	padding: 20px 24px;
	border-left: 3px solid #e31b23;
	background: #f5f7f9;
}

.flow-priority__note strong {
	color: #0b2239;
	font-size: 14px;
}

.flow-priority__note p {
	margin: 8px 0 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.8;
}


/* Submission schedule
-------------------------------------------------- */

.flow-schedule {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin-top: 30px;
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.flow-schedule > div {
	padding: 26px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.flow-schedule span {
	display: block;
	margin-bottom: 20px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
}

.flow-schedule > div > strong {
	display: block;
	margin-bottom: 12px;
	color: #0b2239;
	font-size: 16px;
}

.flow-schedule p {
	margin: 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.8;
}

.flow-schedule p strong {
	color: #e31b23;
	font-size: 15px;
}


/* Optional badge
-------------------------------------------------- */

.flow-process__optional {
	display: inline-flex;
	margin-left: 12px;
	padding: 5px 9px;
	border-radius: 999px;
	background: #fff1f1;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	vertical-align: middle;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.flow-priority {
		grid-template-columns: 1fr;
	}

	.flow-priority__label {
		padding: 20px 22px;
		border-right: 0;
		border-bottom: 1px solid #dce2e8;
	}

	.flow-priority__content {
		padding: 26px 22px;
	}

	.flow-schedule {
		grid-template-columns: 1fr;
	}

	.flow-process__optional {
		margin-top: 8px;
		margin-left: 0;
	}

}















/* ==================================================
   PRODUCTION PAGE
================================================== */

/* Factory
-------------------------------------------------- */

.production-factory {
	padding: 88px 0 96px;
	background: #f5f7f9;
}

.production-factory__heading {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: end;
	margin-bottom: 42px;
}

.production-factory__heading h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.45;
}

.production-factory__heading > p {
	margin: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.production-factory__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.production-factory-card {
	margin: 0;
	border: 1px solid #dce2e8;
	background: #fff;
}

.production-factory-card__image {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #e8edf1;
}

.production-factory-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.production-factory-card:hover img {
	transform: scale(1.025);
}

.production-factory-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(
			135deg,
			#0b2239 0%,
			#132e48 100%
		);
}

.production-factory-card__placeholder span {
	color: rgba(255,255,255,.55);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
}

.production-factory-card figcaption {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 18px 20px;
}

.production-factory-card figcaption span {
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
}

.production-factory-card figcaption strong {
	color: #0b2239;
	font-size: 12px;
	letter-spacing: .08em;
}


/* Strength
-------------------------------------------------- */

.production-strength {
	padding: 96px 0;
	background: #0b2239;
	color: #fff;
}

.production-strength .service-kicker,
.production-strength .service-heading h2 {
	color: #fff;
}

.production-strength__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 44px;
	border-top: 1px solid rgba(255,255,255,.2);
	border-left: 1px solid rgba(255,255,255,.2);
}

.production-strength__grid article {
	min-height: 330px;
	padding: 30px;
	border-right: 1px solid rgba(255,255,255,.2);
	border-bottom: 1px solid rgba(255,255,255,.2);
}

.production-strength__grid article > span {
	display: block;
	margin-bottom: 48px;
	color: rgba(255,255,255,.48);
	font-size: 11px;
	font-weight: 700;
}

.production-strength__en {
	margin: 0 0 12px;
	color: #ef2027;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.production-strength__grid h3 {
	margin: 0 0 18px;
	color: #fff;
	font-size: 22px;
}

.production-strength__grid article > p:last-child {
	margin: 0;
	color: rgba(255,255,255,.72);
	font-size: 13px;
	line-height: 1.95;
}


/* Types
-------------------------------------------------- */

.production-types {
	padding: 96px 0;
	background: #fff;
}

.production-types__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 42px;
}

.production-type-card {
	padding: 44px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.production-type-card + .production-type-card {
	border-left: 0;
}

.production-type-card--dark {
	background: #0b2239;
	color: #fff;
}

.production-type-card__en {
	margin: 0 0 20px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.production-type-card h3 {
	margin: 0 0 20px;
	color: #0b2239;
	font-size: 27px;
}

.production-type-card--dark h3 {
	color: #fff;
}

.production-type-card > p:not(.production-type-card__en) {
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.production-type-card--dark > p:not(.production-type-card__en) {
	color: rgba(255,255,255,.72);
}

.production-type-card ul {
	margin: 28px 0;
	padding: 0;
	list-style: none;
}

.production-type-card li {
	position: relative;
	margin: 9px 0;
	padding-left: 16px;
	color: #667085;
	font-size: 13px;
}

.production-type-card li::before {
	content: "";
	position: absolute;
	top: .7em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #e31b23;
}

.production-type-card--dark li {
	color: rgba(255,255,255,.75);
}

.production-type-card a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Flow link
-------------------------------------------------- */

.production-flow-link {
	margin: 30px 0 0;
}

.production-flow-link a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* One stop
-------------------------------------------------- */

.production-onestop {
	padding: 92px 0;
	background: #f5f7f9;
}

.production-onestop__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.production-onestop h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.5;
}

.production-onestop__grid > div:last-child > p {
	margin: 0 0 18px;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.production-onestop__links {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin-top: 26px;
}

.production-onestop__links a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* CTA copy
-------------------------------------------------- */

.production-cta__copy {
	margin: 14px 0 0;
	color: rgba(255,255,255,.82);
	font-size: 14px;
	line-height: 1.8;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.production-factory {
		padding: 64px 0;
	}

	.production-factory__heading {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.production-factory__grid {
		grid-template-columns: 1fr;
	}

	.production-strength {
		padding: 64px 0;
	}

	.production-strength__grid {
		grid-template-columns: 1fr;
	}

	.production-strength__grid article {
		min-height: auto;
	}

	.production-types {
		padding: 64px 0;
	}

	.production-types__grid {
		grid-template-columns: 1fr;
	}

	.production-type-card {
		padding: 30px 22px;
	}

	.production-type-card + .production-type-card {
		border-top: 0;
		border-left: 1px solid #dce2e8;
	}

	.production-onestop {
		padding: 64px 0;
	}

	.production-onestop__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

}










/* ==================================================
   VEHICLE - LED / ILLUMINATED SELECT
================================================== */

.vehicle-method-select {
	padding: 88px 0 96px;
	background: #f5f7f9;
	border-top: 1px solid #e2e7ec;
}

.vehicle-method-select__heading {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: end;
	margin-bottom: 44px;
}

.vehicle-method-select__heading h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.45;
}

.vehicle-method-select__heading > p {
	margin: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}


/* Cards
-------------------------------------------------- */

.vehicle-method-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vehicle-method-card {
	padding: 42px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.vehicle-method-card + .vehicle-method-card {
	border-left: 0;
}

.vehicle-method-card--led {
	background: #0b2239;
	color: #fff;
}

.vehicle-method-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 28px;
	border-bottom: 1px solid #dce2e8;
}

.vehicle-method-card--led .vehicle-method-card__head {
	border-color: rgba(255,255,255,.18);
}

.vehicle-method-card__en {
	margin: 0 0 9px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
}

.vehicle-method-card h3 {
	margin: 0;
	color: #0b2239;
	font-size: 32px;
}

.vehicle-method-card--led h3 {
	color: #fff;
}

.vehicle-method-card__badge {
	display: inline-flex;
	padding: 7px 11px;
	border-radius: 999px;
	background: #fff1f1;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	white-space: nowrap;
}

.vehicle-method-card--led .vehicle-method-card__badge {
	background: rgba(255,255,255,.1);
	color: #fff;
}

.vehicle-method-card__lead {
	margin: 28px 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.vehicle-method-card--led .vehicle-method-card__lead {
	color: rgba(255,255,255,.72);
}


/* Specs
-------------------------------------------------- */

.vehicle-method-spec {
	margin: 0;
	border-top: 1px solid #e0e5ea;
}

.vehicle-method-card--led .vehicle-method-spec {
	border-color: rgba(255,255,255,.18);
}

.vehicle-method-spec > div {
	display: grid;
	grid-template-columns: 145px 1fr;
	gap: 20px;
	padding: 15px 0;
	border-bottom: 1px solid #e0e5ea;
}

.vehicle-method-card--led .vehicle-method-spec > div {
	border-color: rgba(255,255,255,.18);
}

.vehicle-method-spec dt {
	color: #8b95a4;
	font-size: 12px;
	font-weight: 700;
}

.vehicle-method-spec dd {
	margin: 0;
	color: #0b2239;
	font-size: 13px;
	font-weight: 700;
}

.vehicle-method-card--led .vehicle-method-spec dt {
	color: rgba(255,255,255,.48);
}

.vehicle-method-card--led .vehicle-method-spec dd {
	color: #fff;
}


/* Recommendation
-------------------------------------------------- */

.vehicle-method-card__recommend {
	margin-top: 28px;
	padding: 24px;
	background: #f5f7f9;
}

.vehicle-method-card--led .vehicle-method-card__recommend {
	background: rgba(255,255,255,.06);
}

.vehicle-method-card__recommend strong {
	display: block;
	margin-bottom: 14px;
	color: #0b2239;
	font-size: 13px;
}

.vehicle-method-card--led .vehicle-method-card__recommend strong {
	color: #fff;
}

.vehicle-method-card__recommend ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.vehicle-method-card__recommend li {
	position: relative;
	margin: 9px 0;
	padding-left: 16px;
	color: #667085;
	font-size: 12px;
	line-height: 1.7;
}

.vehicle-method-card__recommend li::before {
	content: "";
	position: absolute;
	top: .7em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #e31b23;
}

.vehicle-method-card--led .vehicle-method-card__recommend li {
	color: rgba(255,255,255,.72);
}

.vehicle-method-card__link {
	display: inline-flex;
	margin-top: 26px;
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Summary
-------------------------------------------------- */

.vehicle-method-summary {
	display: grid;
	grid-template-columns: .4fr 1.1fr 1fr auto;
	gap: 30px;
	align-items: center;
	margin-top: 28px;
	padding: 28px 32px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.vehicle-method-summary__label {
	margin: 0;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.vehicle-method-summary > div {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.vehicle-method-summary strong {
	color: #0b2239;
	font-size: 14px;
}

.vehicle-method-summary span {
	color: #a1a9b3;
}

.vehicle-method-summary > p:not(.vehicle-method-summary__label) {
	margin: 0;
	color: #667085;
	font-size: 12px;
	line-height: 1.75;
}

.vehicle-method-summary > a {
	color: #e31b23;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.vehicle-method-select {
		padding: 64px 0;
	}

	.vehicle-method-select__heading {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.vehicle-method-grid {
		grid-template-columns: 1fr;
	}

	.vehicle-method-card {
		padding: 30px 22px;
	}

	.vehicle-method-card + .vehicle-method-card {
		border-top: 0;
		border-left: 1px solid #dce2e8;
	}

	.vehicle-method-card__head {
		display: block;
	}

	.vehicle-method-card__badge {
		margin-top: 16px;
	}

	.vehicle-method-spec > div {
		grid-template-columns: 1fr;
		gap: 5px;
	}

	.vehicle-method-summary {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 24px 22px;
	}

}







/* ==================================================
   AREA PAGE
================================================== */

.area-kicker {
	margin: 0 0 18px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
}


/* Intro
-------------------------------------------------- */

.area-intro {
	padding: 96px 0;
	background: #fff;
}

.area-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
	align-items: start;
}

.area-intro h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(32px, 4vw, 46px);
	line-height: 1.5;
}

.area-intro__grid > div:last-child p {
	margin: 0 0 18px;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}


/* Heading
-------------------------------------------------- */

.area-heading {
	margin-bottom: 42px;
}

.area-heading h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.45;
}

.area-heading > p:last-child:not(.area-kicker) {
	margin: 18px 0 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.9;
}


/* Vehicle select
-------------------------------------------------- */

.area-vehicle-select {
	padding: 96px 0;
	background: #f5f7f9;
}

.area-vehicle-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.area-vehicle-card {
	padding: 42px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.area-vehicle-card + .area-vehicle-card {
	border-left: 0;
}

.area-vehicle-card--dark {
	background: #0b2239;
	color: #fff;
}

.area-vehicle-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 26px;
	border-bottom: 1px solid #dce2e8;
}

.area-vehicle-card--dark .area-vehicle-card__head {
	border-color: rgba(255,255,255,.18);
}

.area-vehicle-card__en {
	margin: 0 0 8px;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.area-vehicle-card h3 {
	margin: 0;
	color: #0b2239;
	font-size: 28px;
}

.area-vehicle-card--dark h3 {
	color: #fff;
}

.area-vehicle-card__head > span {
	padding: 7px 11px;
	border-radius: 999px;
	background: #fff1f1;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	white-space: nowrap;
}

.area-vehicle-card--dark .area-vehicle-card__head > span {
	background: rgba(255,255,255,.1);
	color: #fff;
}

.area-vehicle-card > p {
	margin: 28px 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}

.area-vehicle-card--dark > p {
	color: rgba(255,255,255,.72);
}

.area-vehicle-card ul {
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.area-vehicle-card li {
	position: relative;
	margin: 10px 0;
	padding-left: 16px;
	color: #667085;
	font-size: 13px;
}

.area-vehicle-card li::before {
	content: "";
	position: absolute;
	top: .65em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #e31b23;
}

.area-vehicle-card--dark li {
	color: rgba(255,255,255,.72);
}

.area-vehicle-card a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Main areas
-------------------------------------------------- */

.area-main {
	padding: 96px 0;
	background: #fff;
}

.area-main-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.area-main-grid article {
	min-height: 330px;
	padding: 28px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
}

.area-main-grid article > span {
	display: block;
	margin-bottom: 42px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
}

.area-main-grid__en {
	margin: 0 0 10px;
	color: #919aa7;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .13em;
}

.area-main-grid h3 {
	margin: 0 0 18px;
	color: #0b2239;
	font-size: 23px;
}

.area-main-grid article > p:not(.area-main-grid__en) {
	margin: 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.9;
}

.area-main-grid__note {
	margin-top: 22px;
	padding: 14px 16px;
	border-left: 2px solid #e31b23;
	background: #f5f7f9;
	color: #0b2239;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.7;
}


/* Nationwide
-------------------------------------------------- */

.area-nationwide {
	padding: 96px 0;
	background: #0b2239;
	color: #fff;
}

.area-nationwide__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
}

.area-nationwide h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(32px, 4vw, 46px);
	line-height: 1.5;
}

.area-nationwide__grid > div:last-child p {
	margin: 0 0 18px;
	color: rgba(255,255,255,.72);
	font-size: 14px;
	line-height: 1.95;
}

.area-text-link {
	display: inline-flex;
	margin-top: 12px;
	color: #ef2027;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Travel cost
-------------------------------------------------- */

.area-cost {
	padding: 96px 0;
	background: #f5f7f9;
}

.area-cost-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid #dce2e8;
	border-left: 1px solid #dce2e8;
}

.area-cost-grid article {
	min-height: 280px;
	padding: 30px;
	border-right: 1px solid #dce2e8;
	border-bottom: 1px solid #dce2e8;
	background: #fff;
}

.area-cost-grid article > span {
	display: block;
	margin-bottom: 40px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
}

.area-cost-grid h3 {
	margin: 0 0 16px;
	color: #0b2239;
	font-size: 20px;
	line-height: 1.55;
}

.area-cost-grid p {
	margin: 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.9;
}

.area-cost__link {
	margin-top: 28px;
}

.area-cost__link a {
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}


/* Select guide
-------------------------------------------------- */

.area-guide {
	padding: 34px 0;
	background: #fff;
}

.area-guide__inner {
	display: grid;
	grid-template-columns: .5fr 1fr 1fr auto;
	gap: 28px;
	align-items: center;
	padding: 28px 32px;
	border: 1px solid #dce2e8;
}

.area-guide__label {
	margin: 0;
	color: #e31b23;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
}

.area-guide__inner > div {
	display: grid;
	grid-template-columns: auto auto 1fr;
	gap: 10px;
	align-items: center;
}

.area-guide strong {
	color: #0b2239;
	font-size: 13px;
}

.area-guide span {
	color: #a0a8b2;
}

.area-guide__inner > div p {
	margin: 0;
	color: #667085;
	font-size: 12px;
}

.area-guide a {
	color: #e31b23;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}


/* CTA
-------------------------------------------------- */

.area-cta__copy {
	margin: 14px 0 0;
	color: rgba(255,255,255,.82);
	font-size: 14px;
	line-height: 1.8;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.area-intro,
	.area-vehicle-select,
	.area-main,
	.area-nationwide,
	.area-cost {
		padding: 64px 0;
	}

	.area-intro__grid,
	.area-nationwide__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.area-vehicle-grid {
		grid-template-columns: 1fr;
	}

	.area-vehicle-card {
		padding: 30px 22px;
	}

	.area-vehicle-card + .area-vehicle-card {
		border-top: 0;
		border-left: 1px solid #dce2e8;
	}

	.area-vehicle-card__head {
		display: block;
	}

	.area-vehicle-card__head > span {
		display: inline-flex;
		margin-top: 16px;
	}

	.area-main-grid {
		grid-template-columns: 1fr;
	}

	.area-main-grid article {
		min-height: auto;
	}

	.area-cost-grid {
		grid-template-columns: 1fr;
	}

	.area-cost-grid article {
		min-height: auto;
	}

	.area-guide__inner {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 22px;
	}

}









/* ==================================================
   SAFETY - VEHICLE MAINTENANCE
================================================== */

.safety-maintenance {
	padding: 96px 0;
	background: #f5f7f9;
}

.safety-maintenance__heading {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: end;
	margin-bottom: 44px;
}

.safety-maintenance__heading h2 {
	margin: 0;
	color: #0b2239;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.5;
}

.safety-maintenance__heading > p {
	margin: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.95;
}


/* Cards */

.safety-maintenance__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.safety-maintenance__grid article {
	min-height: 310px;
	padding: 32px;
	border: 1px solid #dce2e8;
	background: #fff;
}

.safety-maintenance__grid article + article {
	border-left: 0;
}

.safety-maintenance__grid article > span {
	display: block;
	margin-bottom: 46px;
	color: #e31b23;
	font-size: 11px;
	font-weight: 700;
}

.safety-maintenance__grid h3 {
	margin: 0 0 18px;
	color: #0b2239;
	font-size: 22px;
}

.safety-maintenance__grid article > p:last-child {
	margin: 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.95;
}


/* Featured card */

.safety-maintenance__featured {
	background: #0b2239 !important;
}

.safety-maintenance__featured h3 {
	color: #fff;
}

.safety-maintenance__featured > p:last-child {
	color: rgba(255,255,255,.72) !important;
}

.safety-maintenance__featured .safety-card__eyebrow {
	color: #ef2027;
}


/* Bottom message */

.safety-maintenance__message {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 70px;
	margin-top: 34px;
	padding: 32px 0 0;
	border-top: 1px solid #dce2e8;
}

.safety-maintenance__message p {
	margin: 0;
	color: #667085;
	font-size: 14px;
	line-height: 1.9;
}

.safety-maintenance__message strong {
	color: #0b2239;
	font-size: 20px;
	line-height: 1.7;
}


/* Mobile */

@media (max-width: 767px) {

	.safety-maintenance {
		padding: 64px 0;
	}

	.safety-maintenance__heading {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.safety-maintenance__grid {
		grid-template-columns: 1fr;
	}

	.safety-maintenance__grid article {
		min-height: auto;
	}

	.safety-maintenance__grid article + article {
		border-top: 0;
		border-left: 1px solid #dce2e8;
	}

	.safety-maintenance__message {
		grid-template-columns: 1fr;
		gap: 18px;
	}

}






/* ==================================================
   HOME - STRENGTH CARD LINKS
================================================== */

.strength-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
	transition:
		transform .25s ease,
		background-color .25s ease,
		border-color .25s ease,
		box-shadow .25s ease;
}

.strength-card--link:hover {
	position: relative;
	z-index: 2;
	transform: translateY(-4px);
	background: #fff;
	border-color: #cfd7df;
	box-shadow: 0 14px 32px rgba(11, 34, 57, .08);
}

.strength-card--link .strength-card__mark {
	transition:
		background-color .25s ease,
		border-color .25s ease,
		transform .25s ease;
}

.strength-card--link:hover .strength-card__mark {
	background-color: #e31b23;
	border-color: #e31b23;
	transform: rotate(90deg);
}

/* ＋の線をホバー時に白へ */
.strength-card--link:hover .strength-card__mark::before,
.strength-card--link:hover .strength-card__mark::after {
	background-color: #fff;
}

.strength-card--link:focus-visible {
	outline: 2px solid #e31b23;
	outline-offset: -2px;
}











/* ==================================================
   HOME - STATS LINKS
================================================== */

.stat-item--link {
	position: relative;
	display: block;
	color: inherit;
	text-decoration: none;
	transition:
		background-color .25s ease,
		transform .25s ease;
}

.stat-item--link:hover {
	background: rgba(255, 255, 255, .045);
	transform: translateY(-3px);
}

.stat-item__arrow {
	position: absolute;
	top: 28px;
	right: 28px;
	color: #ef2027;
	font-size: 18px;
	font-weight: 700;
	opacity: 0;
	transform: translateX(-8px);
	transition:
		opacity .25s ease,
		transform .25s ease;
}

.stat-item--link:hover .stat-item__arrow {
	opacity: 1;
	transform: translateX(0);
}

.stat-item--link:focus-visible {
	outline: 2px solid #ef2027;
	outline-offset: -2px;
}


/* Mobile */
@media (max-width: 767px) {

	.stat-item__arrow {
		top: 20px;
		right: 20px;
		opacity: 1;
		transform: none;
	}

}








/* ==================================================
   HOME - STRENGTHS TITLE
================================================== */

#home-strengths-title {
	font-size: clamp(40px, 4vw, 52px);
	line-height: 1.28;
	letter-spacing: -0.035em;
}

.home-strengths-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-strengths-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-strengths-title__line {
		white-space: normal;
	}

}










/* ==================================================
   HOME - SERVICES TITLE
================================================== */

#home-services-title {
	font-size: clamp(40px, 4vw, 52px);
	line-height: 1.28;
	letter-spacing: -0.035em;
}

.home-services-title__line {
	display: block;
	white-space: nowrap;
}


/* サービスカード見出しの不自然な改行を防止 */

.service-card h3 {
	font-size: clamp(26px, 2.4vw, 32px);
	line-height: 1.45;
	word-break: keep-all;
	overflow-wrap: normal;
}


/* Mobile */

@media (max-width: 767px) {

	#home-services-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-services-title__line {
		white-space: normal;
	}

	.service-card h3 {
		font-size: 26px;
		word-break: normal;
		overflow-wrap: anywhere;
	}

}





/* ==================================================
   HOME - PRICE TITLE
================================================== */

#home-price-title {
	font-size: clamp(40px, 4vw, 52px);
	line-height: 1.28;
	letter-spacing: -0.035em;
}

.home-price-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-price-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-price-title__line {
		white-space: normal;
	}

}










/* ==================================================
   HOME - COLUMN TITLE
================================================== */

#home-column-title {
	font-size: clamp(40px, 4vw, 52px);
	line-height: 1.28;
	letter-spacing: -0.035em;
}

.home-column-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-column-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-column-title__line {
		white-space: normal;
	}

}












/* ==================================================
   HOME - SAFETY TITLE
================================================== */

#home-safety-title {
	font-size: clamp(38px, 3.6vw, 48px);
	line-height: 1.3;
	letter-spacing: -0.035em;
}

.home-safety-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-safety-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-safety-title__line {
		white-space: normal;
	}

}












/* ==================================================
   HOME - AREA TITLE
================================================== */

#home-area-title {
	font-size: clamp(38px, 3.6vw, 48px);
	line-height: 1.3;
	letter-spacing: -0.035em;
}

.home-area-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-area-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-area-title__line {
		white-space: normal;
	}

}











/* ==================================================
   HOME - CONTACT CTA TITLE
================================================== */

#home-contact-title {
	font-size: clamp(44px, 4.2vw, 58px);
	line-height: 1.25;
	letter-spacing: -0.035em;
}

.home-contact-title__line {
	display: block;
	white-space: nowrap;
}

@media (max-width: 767px) {

	#home-contact-title {
		font-size: clamp(32px, 9vw, 42px);
	}

	.home-contact-title__line {
		white-space: normal;
	}

}












/* ==================================================
   HOME - CLICKABLE FLOW / SAFETY CARDS
================================================== */

.flow-item,
.safety-card {
	position: relative;
	transition:
		background-color .25s ease,
		transform .25s ease;
}

.flow-item__hitarea,
.safety-card__hitarea {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: block;
}

.flow-item > *:not(.flow-item__hitarea),
.safety-card > *:not(.safety-card__hitarea) {
	position: relative;
	z-index: 1;
}


/* FLOW */

.flow-item:hover {
	background: rgba(255, 255, 255, .045);
	transform: translateY(-3px);
}

.flow-item__hitarea:focus-visible {
	outline: 2px solid #ef2027;
	outline-offset: -4px;
}


/* SAFETY */

.safety-card:hover {
	background: #fff;
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(11, 34, 57, .07);
}

.safety-card__hitarea:focus-visible {
	outline: 2px solid #ef2027;
	outline-offset: -4px;
}









/* ==================================================
   BACK TO TOP
================================================== */

.site-back-to-top {
	position: fixed;
	right: 28px;
	bottom: 28px;
	z-index: 999;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 54px;
	height: 54px;

	margin: 0;
	padding: 0;

	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 50%;

	background: #0b2239;
	color: #fff;

	font-size: 22px;
	font-weight: 700;
	line-height: 1;

	cursor: pointer;

	box-shadow: 0 10px 30px rgba(0, 0, 0, .18);

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transform: translateY(32px);

	transition:
		opacity .35s ease,
		transform .45s cubic-bezier(.22, 1, .36, 1),
		visibility .35s ease,
		background-color .25s ease;
}


/* 500pxスクロール後 */

.site-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}


/* Hover */

.site-back-to-top.is-visible:hover {
	background: #e31b23;
	transform: translateY(-3px);
}


/* Keyboard */

.site-back-to-top:focus-visible {
	outline: 2px solid #e31b23;
	outline-offset: 3px;
}


/* Mobile */

@media (max-width: 767px) {

	.site-back-to-top {
		right: 16px;
		bottom: 18px;

		width: 46px;
		height: 46px;

		font-size: 19px;
	}

}


/* Motion accessibility */

@media (prefers-reduced-motion: reduce) {

	.site-back-to-top {
		transition: none;
	}

}
















/* ==================================================
   NEWS ARCHIVE
================================================== */

.news-archive-hero {
	background: #071f35;
	color: #fff;
}

.news-archive-hero .subpage-hero__title,
.news-archive-hero .subpage-hero__lead {
	color: #fff;
}

.news-archive-hero .subpage-hero__lead {
	max-width: 720px;
	color: rgba(255, 255, 255, .68);
}


/* Main
-------------------------------------------------- */

.news-archive-main {
	padding: 100px 0 120px;
	background: #f5f7f9;
}

.news-archive-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr);
	gap: 80px;
	align-items: end;
	margin-bottom: 55px;
}

.news-archive-kicker {
	margin: 0 0 18px;
	color: #e31b23;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .18em;
}

.news-archive-heading h2 {
	margin: 0;
	color: #071f35;
	font-size: clamp(32px, 3.2vw, 48px);
	line-height: 1.25;
}

.news-archive-heading > p {
	margin: 0;
	color: #697789;
	font-size: 15px;
	line-height: 2;
}


/* News list
-------------------------------------------------- */

.news-archive-list {
	border-top: 1px solid #d8e0e7;
}

.news-archive-item {
	margin: 0;
	border-bottom: 1px solid #d8e0e7;
}

.news-archive-item__link {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr) 50px;
	gap: 42px;
	align-items: center;

	padding: 36px 20px;

	color: inherit;
	text-decoration: none;

	transition:
		background-color .25s ease,
		padding .25s ease;
}

.news-archive-item__meta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
}

.news-archive-item__meta time {
	color: #7d8997;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
}

.news-archive-item__category {
	display: inline-flex;
	align-items: center;

	padding: 6px 10px;

	border-radius: 20px;

	background: #fff0f1;
	color: #e31b23;

	font-size: 11px;
	font-weight: 700;
}

.news-archive-item__content h2 {
	margin: 0 0 12px;

	color: #071f35;

	font-size: clamp(20px, 2vw, 27px);
	line-height: 1.5;

	transition: color .25s ease;
}

.news-archive-item__content p {
	max-width: 800px;
	margin: 0;

	color: #667587;

	font-size: 14px;
	line-height: 1.9;
}

.news-archive-item__arrow {
	color: #e31b23;
	font-size: 22px;
	text-align: right;

	transition: transform .25s ease;
}


/* Hover */

.news-archive-item__link:hover {
	padding-left: 30px;
	padding-right: 10px;
	background: #fff;
}

.news-archive-item__link:hover
.news-archive-item__content h2 {
	color: #e31b23;
}

.news-archive-item__link:hover
.news-archive-item__arrow {
	transform: translateX(6px);
}


/* Empty
-------------------------------------------------- */

.news-archive-empty {
	padding: 55px 0;
	border-top: 1px solid #d8e0e7;
	border-bottom: 1px solid #d8e0e7;
}

.news-archive-empty p {
	margin: 0;
	color: #687687;
}


/* Pagination
-------------------------------------------------- */

.news-archive-main .navigation.pagination {
	margin-top: 60px;
}

.news-archive-main .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.news-archive-main .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 44px;
	height: 44px;
	padding: 0 14px;

	border: 1px solid #d8e0e7;

	background: #fff;
	color: #071f35;

	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.news-archive-main .page-numbers.current,
.news-archive-main .page-numbers:hover {
	border-color: #071f35;
	background: #071f35;
	color: #fff;
}


/* Contact
-------------------------------------------------- */

.news-archive-contact {
	padding: 72px 0;
	background: #e31b23;
	color: #fff;
}

.news-archive-contact__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
}

.news-archive-contact__eyebrow {
	margin: 0 0 18px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
}

.news-archive-contact h2 {
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.4;
}

.news-archive-contact p {
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: 14px;
	line-height: 1.9;
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.news-archive-main {
		padding: 65px 0 80px;
	}

	.news-archive-heading {
		grid-template-columns: 1fr;
		gap: 22px;
		margin-bottom: 35px;
	}

	.news-archive-item__link {
		position: relative;
		display: block;

		padding: 28px 6px 30px;
	}

	.news-archive-item__link:hover {
		padding-left: 6px;
		padding-right: 6px;
	}

	.news-archive-item__meta {
		flex-direction: row;
		align-items: center;
		margin-bottom: 16px;
	}

	.news-archive-item__content {
		padding-right: 35px;
	}

	.news-archive-item__content h2 {
		font-size: 19px;
	}

	.news-archive-item__content p {
		font-size: 13px;
	}

	.news-archive-item__arrow {
		position: absolute;
		right: 5px;
		top: 50%;
		transform: translateY(-50%);
	}

	.news-archive-item__link:hover
	.news-archive-item__arrow {
		transform: translate(4px, -50%);
	}

	.news-archive-contact {
		padding: 55px 0;
	}

	.news-archive-contact__inner {
		display: block;
	}

	.news-archive-contact .button {
		margin-top: 28px;
	}

}






/* ==================================================
   404 PAGE
================================================== */

.error404-hero {
	padding: 90px 0 100px;
	background:
		radial-gradient(
			circle at 78% 28%,
			rgba(40, 87, 145, .32),
			transparent 34%
		),
		#071f35;
	color: #fff;
	overflow: hidden;
}

.error404-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(420px, .8fr);
	gap: 80px;
	align-items: center;
}


/* Content
-------------------------------------------------- */

.error404-hero__eyebrow {
	margin: 0 0 18px;
	color: #ef2027;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .18em;
}

.error404-hero__number {
	margin: 0 0 5px;
	color: rgba(255, 255, 255, .10);
	font-size: clamp(90px, 11vw, 160px);
	font-weight: 800;
	line-height: .85;
	letter-spacing: -.06em;
}

.error404-hero h1 {
	margin: -16px 0 28px;
	color: #fff;
	font-size: clamp(36px, 4.7vw, 62px);
	line-height: 1.25;
	letter-spacing: -.04em;
}

.error404-hero__lead {
	margin: 0;
	color: rgba(255, 255, 255, .68);
	font-size: 15px;
	line-height: 2;
}

.error404-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 36px;
}

.error404-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 30px;

	min-height: 56px;
	padding: 0 24px;

	border-radius: 4px;

	font-size: 14px;
	font-weight: 700;
	text-decoration: none;

	transition:
		background-color .25s ease,
		border-color .25s ease,
		transform .25s ease;
}

.error404-button--primary {
	border: 1px solid #ef2027;
	background: #ef2027;
	color: #fff;
}

.error404-button--primary:hover {
	transform: translateY(-2px);
	background: #fff;
	border-color: #fff;
	color: #071f35;
}

.error404-button--outline {
	border: 1px solid rgba(255, 255, 255, .3);
	background: transparent;
	color: #fff;
}

.error404-button--outline:hover {
	transform: translateY(-2px);
	border-color: #fff;
	background: rgba(255, 255, 255, .08);
}


/* Visual
-------------------------------------------------- */

.error404-hero__visual {
	position: relative;
	min-height: 360px;

	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 18px;

	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, .05),
			rgba(255, 255, 255, .015)
		);

	overflow: hidden;
}

.error404-visual__line {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 92px;

	height: 1px;

	background: rgba(255, 255, 255, .18);
}

.error404-visual__truck {
	position: absolute;
	left: 50%;
	bottom: 92px;

	width: 310px;
	height: 105px;

	transform: translateX(-50%);
}

.error404-visual__body {
	position: absolute;
	right: 0;
	top: 0;

	width: 235px;
	height: 78px;

	border: 2px solid rgba(255, 255, 255, .72);
	border-radius: 4px;

	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, .04),
			rgba(255, 255, 255, .10)
		);
}

.error404-visual__cab {
	position: absolute;
	left: 0;
	top: 24px;

	width: 78px;
	height: 54px;

	border: 2px solid rgba(255, 255, 255, .72);
	border-radius: 5px 10px 3px 3px;
}

.error404-visual__wheel {
	position: absolute;
	bottom: 7px;

	width: 24px;
	height: 24px;

	border: 3px solid rgba(255, 255, 255, .7);
	border-radius: 50%;

	background: #071f35;
}

.error404-visual__wheel--01 {
	left: 45px;
}

.error404-visual__wheel--02 {
	right: 38px;
}

.error404-visual__label {
	position: absolute;
	right: 26px;
	bottom: 25px;

	color: rgba(255, 255, 255, .45);

	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
}


/* Guide
-------------------------------------------------- */

.error404-guide {
	padding: 90px 0 110px;
	background: #f5f7f9;
}

.error404-guide__heading {
	margin-bottom: 40px;
}

.error404-guide__eyebrow {
	margin: 0 0 16px;
	color: #e31b23;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .18em;
}

.error404-guide h2 {
	margin: 0;
	color: #071f35;
	font-size: clamp(30px, 3vw, 44px);
	line-height: 1.35;
}

.error404-guide__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid #d8e0e7;
	border-left: 1px solid #d8e0e7;
}

.error404-guide__grid a {
	position: relative;

	display: grid;
	grid-template-columns: 55px minmax(0, 1fr) 30px;
	gap: 22px;
	align-items: center;

	min-height: 150px;
	padding: 28px 30px;

	border-right: 1px solid #d8e0e7;
	border-bottom: 1px solid #d8e0e7;

	background: #fff;
	color: inherit;
	text-decoration: none;

	transition:
		background-color .25s ease,
		transform .25s ease;
}

.error404-guide__grid a:hover {
	z-index: 2;
	background: #071f35;
	transform: translateY(-3px);
}

.error404-guide__grid > a > span {
	color: #e31b23;
	font-size: 11px;
	font-weight: 800;
}

.error404-guide__grid p {
	margin: 0 0 7px;
	color: #8792a0;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .16em;
}

.error404-guide__grid h3 {
	margin: 0;
	color: #071f35;
	font-size: 20px;

	transition: color .25s ease;
}

.error404-guide__grid strong {
	color: #e31b23;
	font-size: 18px;

	transition: transform .25s ease;
}

.error404-guide__grid a:hover h3 {
	color: #fff;
}

.error404-guide__grid a:hover strong {
	transform: translateX(5px);
}


/* Mobile
-------------------------------------------------- */

@media (max-width: 767px) {

	.error404-hero {
		padding: 65px 0 70px;
	}

	.error404-hero__inner {
		grid-template-columns: 1fr;
		gap: 45px;
	}

	.error404-hero__visual {
		min-height: 260px;
	}

	.error404-visual__truck {
		width: 240px;
	}

	.error404-visual__body {
		width: 180px;
	}

	.error404-guide {
		padding: 65px 0 80px;
	}

	.error404-guide__grid {
		grid-template-columns: 1fr;
	}

	.error404-guide__grid a {
		min-height: 120px;
		padding: 24px 20px;
	}

}












/* ==================================================
   CONTACT - AFTER SEND NOTE
================================================== */

.contact-note {
	margin-top: 28px;
	padding: 22px 24px 24px;

	background: #fff;
	border: 1px solid #dfe5eb;
	border-left: 3px solid #e31b23;

	box-shadow: 0 8px 22px rgba(7, 31, 53, .04);
}

.contact-note strong {
	display: block;
	margin: 0 0 10px;

	color: #071f35;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
}

.contact-note p {
	margin: 0;

	color: #647284;
	font-size: 13px;
	line-height: 1.9;
}


/* Mobile */
@media (max-width: 767px) {

	.contact-note {
		margin-top: 24px;
		padding: 18px 18px 20px;
	}

	.contact-note strong {
		font-size: 14px;
	}

	.contact-note p {
		font-size: 13px;
	}

}






@media (min-width: 768px) {
	.service-detail-hero__title {
		max-width: none;
		white-space: nowrap;
		font-size: clamp(48px, 5vw, 72px);
	}
}



/* ==================================================
   PRODUCTION HERO TITLE
================================================== */

@media (min-width: 1024px) {
	.service-hero__title--production {
		font-size: clamp(48px, 4.2vw, 64px);
		white-space: nowrap;
	}
}









/* =========================================================
   Production page
   /service/production/
========================================================= */

/* ---------- Production Factory ---------- */

.production-heading--split {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
	gap: 64px;
	align-items: end;
	margin-bottom: 48px;
}

.production-heading--split > p {
	margin: 0 0 8px;
	color: #68758a;
	line-height: 2;
}

.production-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.production-gallery__item {
	margin: 0;
	background: #fff;
	border: 1px solid #d9e0e8;
	overflow: hidden;
}

.production-gallery__media {
	aspect-ratio: 16 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0d2a44;
	color: #9eabba;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
}

.production-gallery__item figcaption {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 62px;
	padding: 0 24px;
	background: #fff;
}

.production-gallery__item figcaption span {
	color: #ed1c24;
	font-size: 12px;
	font-weight: 700;
}

.production-gallery__item figcaption strong {
	color: #071c32;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
}


/* ---------- Production Strength ---------- */

.production-strength {
	background: #0b2943;
	color: #fff;
}

.production-strength .service-kicker,
.production-strength .service-heading h2 {
	color: #fff;
}

.production-strength__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(255,255,255,.25);
	border-left: 1px solid rgba(255,255,255,.25);
}

.production-strength__grid article {
	min-height: 300px;
	padding: 34px 32px 40px;
	border-right: 1px solid rgba(255,255,255,.25);
	border-bottom: 1px solid rgba(255,255,255,.25);
}

.production-strength__number {
	display: block;
	margin-bottom: 46px;
	color: #92a0af;
	font-size: 12px;
	font-weight: 700;
}

.production-strength__grid .service-kicker {
	margin-bottom: 14px;
	color: #ed1c24;
}

.production-strength__grid h3 {
	margin: 0 0 22px;
	color: #fff;
	font-size: 20px;
}

.production-strength__grid article > p:last-child {
	margin: 0;
	color: rgba(255,255,255,.75);
	line-height: 1.9;
}


/* ---------- Vehicle Types ---------- */

.production-types__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 1px solid #d9e0e8;
}

.production-types__card {
	padding: 46px 40px 42px;
	background: #fff;
}

.production-types__card + .production-types__card {
	border-left: 1px solid #d9e0e8;
}

.production-types__card h3 {
	margin: 10px 0 26px;
	color: #071c32;
	font-size: clamp(24px, 2vw, 30px);
}

.production-types__card > p:not(.service-kicker) {
	margin-bottom: 24px;
	color: #647186;
	line-height: 1.9;
}

.production-types__card ul {
	margin: 0 0 30px;
	padding: 0;
	list-style: none;
}

.production-types__card li {
	position: relative;
	margin: 10px 0;
	padding-left: 18px;
	color: #35465a;
}

.production-types__card li::before {
	content: "";
	position: absolute;
	top: .72em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #ed1c24;
}

.production-types__card > a {
	color: #ed1c24;
	font-weight: 700;
	text-decoration: none;
}

.production-types__card--dark {
	background: #0b2943;
}

.production-types__card--dark h3 {
	color: #fff;
}

.production-types__card--dark > p:not(.service-kicker),
.production-types__card--dark li {
	color: rgba(255,255,255,.78);
}

.production-types__card--dark .service-kicker,
.production-types__card--dark > a {
	color: #ed1c24;
}


/* ---------- Production flow link ---------- */

.production-flow__link {
	margin: 28px 0 0;
}

.production-flow__link a,
.production-related-links a {
	color: #ed1c24;
	font-weight: 700;
	text-decoration: none;
}

.production-flow__link a:hover,
.production-related-links a:hover {
	opacity: .7;
}

.production-related-links {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin-top: 26px;
}


/* ---------- Responsive ---------- */

@media (max-width: 900px) {

	.production-heading--split {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.production-gallery__grid,
	.production-types__grid,
	.production-strength__grid {
		grid-template-columns: 1fr;
	}

	.production-types__card + .production-types__card {
		border-left: 0;
		border-top: 1px solid #d9e0e8;
	}

	.production-strength__grid article {
		min-height: auto;
	}

}

@media (max-width: 600px) {

	.production-gallery__grid {
		gap: 16px;
	}

	.production-types__card,
	.production-strength__grid article {
		padding: 30px 24px;
	}

	.production-strength__number {
		margin-bottom: 30px;
	}

	.production-related-links {
		flex-direction: column;
		gap: 12px;
	}

}



.vehicle-select__title span {
	display: block;
}
@media (max-width: 767px) {
	.vehicle-select__title span {
		display: inline;
	}
}









/* =========================================================
   WORKS ARCHIVE
   ========================================================= */

.works-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 24px;
}

.works-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: #fff;
	border: 1px solid #dce2e8;
	transition:
		transform .3s ease,
		box-shadow .3s ease,
		border-color .3s ease;
}

.works-card:hover {
	transform: translateY(-4px);
	border-color: #c9d1da;
	box-shadow: 0 14px 36px rgba(8, 34, 55, .08);
}

/* Image */
.works-card__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #eef1f4;
}

.works-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.works-card:hover .works-card__image img {
	transform: scale(1.025);
}

.works-card__noimage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #98a3af;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
}

/* Body */
.works-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 26px 26px 28px;
}

.works-card__meta {
	margin-bottom: 12px;
	color: #8d99a7;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
}

.works-card__title {
	margin: 0;
	font-size: clamp(19px, 1.5vw, 23px);
	line-height: 1.5;
	font-weight: 700;
}

.works-card__title a {
	color: #081d31;
	text-decoration: none;
}

.works-card__title a:hover {
	color: #e31b23;
}

.works-card__more {
	margin-top: auto;
	padding-top: 24px;
	color: #e31b23;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.works-card__more span {
	display: inline-block;
	margin-left: 4px;
	transition: transform .25s ease;
}

.works-card__more:hover span {
	transform: translateX(4px);
}

/* Tablet */
@media (max-width: 960px) {

	.works-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 20px;
	}

}

/* Mobile */
@media (max-width: 640px) {

	.works-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.works-card__body {
		padding: 22px 20px 24px;
	}

}



@media (max-width: 1024px) {
	.works-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.works-grid {
		grid-template-columns: 1fr;
	}
}



/* =========================================================
   Works Single
========================================================= */

.works-detail-compact__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(48px, 6vw, 96px);
	align-items: start;
	padding-top: clamp(64px, 7vw, 104px);
	padding-bottom: clamp(72px, 8vw, 120px);
}

.works-detail-compact__main {
	min-width: 0;
}


/* Image
--------------------------------------------------------- */

.works-detail-compact__image {
	margin: 0 0 64px;
}

.works-detail-compact__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
}

.works-detail-compact__image--small {
	max-width: 520px;
}

.works-detail-compact__image--medium {
	max-width: 720px;
}

.works-detail-compact__image--large {
	max-width: 100%;
}

.works-detail-compact__image figcaption {
	margin-top: 12px;
	font-size: 12px;
	line-height: 1.7;
	color: #8a96a6;
}


/* Sections
--------------------------------------------------------- */

.works-detail-section {
	margin-top: 64px;
}

.works-detail-section:first-of-type {
	margin-top: 0;
}

.works-detail-section__eyebrow {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	color: #ed1c24;
}

.works-detail-section h2 {
	margin: 0 0 28px;
	font-size: clamp(26px, 2.5vw, 36px);
	line-height: 1.35;
	color: #071b31;
}


/* Spec table
--------------------------------------------------------- */

.works-spec-table {
	margin: 0;
	border-top: 1px solid #d9e0e7;
}

.works-spec-table__row {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	border-bottom: 1px solid #d9e0e7;
}

.works-spec-table__row dt,
.works-spec-table__row dd {
	margin: 0;
	padding: 18px 20px;
}

.works-spec-table__row dt {
	font-weight: 700;
	background: #f4f6f8;
	color: #071b31;
}

.works-spec-table__row dd {
	color: #344253;
}

.works-spec-table__row dd a {
	color: #071b31;
	text-decoration: underline;
	text-underline-offset: 4px;
}


/* Sidebar
--------------------------------------------------------- */

.works-detail-compact__aside {
	position: sticky;
	top: 120px;
}

.works-detail-note,
.works-detail-contact {
	padding: 30px;
	border: 1px solid #d9e0e7;
}

.works-detail-contact {
	margin-top: 18px;
}

.works-detail-note__eyebrow {
	margin: 0 0 22px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	color: #ed1c24;
}

.works-detail-note h2,
.works-detail-contact h2 {
	margin: 0 0 16px;
	font-size: 20px;
	line-height: 1.5;
	color: #071b31;
}

.works-detail-note p,
.works-detail-contact p {
	line-height: 1.9;
	color: #657284;
}


/* Back
--------------------------------------------------------- */

.works-detail-bottom {
	padding-bottom: 64px;
}

.works-detail-back {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	color: #071b31;
	text-decoration: none;
}

.works-detail-back:hover {
	color: #ed1c24;
}


/* Bottom CTA
--------------------------------------------------------- */

.works-detail-bottom-cta {
	background: #ed1c24;
	color: #fff;
}

.works-detail-bottom-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 60px;
	align-items: center;
	padding-top: clamp(54px, 6vw, 82px);
	padding-bottom: clamp(54px, 6vw, 82px);
}

.works-detail-bottom-cta__eyebrow {
	margin: 0 0 18px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	color: #fff;
}

.works-detail-bottom-cta h2 {
	margin: 0 0 18px;
	font-size: clamp(30px, 3.5vw, 48px);
	line-height: 1.35;
	color: #fff;
}

.works-detail-bottom-cta p {
	margin: 0;
	line-height: 1.8;
	color: rgba(255,255,255,.88);
}

.works-detail-bottom-cta .button--light {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 0 28px;
	background: #fff;
	color: #071b31;
	border-radius: 6px;
	font-weight: 700;
	text-decoration: none;
}


/* Responsive
--------------------------------------------------------- */

@media (max-width: 900px) {

	.works-detail-compact__layout {
		grid-template-columns: 1fr;
		gap: 56px;
	}

	.works-detail-compact__aside {
		position: static;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 16px;
	}

	.works-detail-contact {
		margin-top: 0;
	}

	.works-detail-bottom-cta__inner {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

@media (max-width: 640px) {

	.works-detail-compact__image--small,
	.works-detail-compact__image--medium,
	.works-detail-compact__image--large {
		max-width: 100%;
	}

	.works-spec-table__row {
		grid-template-columns: 1fr;
	}

	.works-spec-table__row dt {
		padding-bottom: 8px;
	}

	.works-spec-table__row dd {
		padding-top: 8px;
	}

	.works-detail-compact__aside {
		grid-template-columns: 1fr;
	}
}




/* =========================================================
   News Single
========================================================= */

.news-single__hero {
	background: #071f35;
	color: #fff;
	padding: 88px 0 82px;
}

.news-single__eyebrow {
	margin: 0 0 24px;
	color: #ef2028;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
}

.news-single__date {
	margin: 0 0 18px;
	color: rgba(255, 255, 255, .58);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
}

.news-single__title {
	max-width: 900px;
	margin: 0;
	color: #fff;
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -.02em;
}

.news-single__body {
	padding: 90px 0 100px;
	background: #fff;
}

.news-single__content {
	max-width: 860px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 2;
	color: #172338;
}

.news-single__content p {
	margin: 0 0 1.8em;
}

.news-single__content h2 {
	margin: 60px 0 24px;
	font-size: 30px;
	line-height: 1.5;
}

.news-single__content h3 {
	margin: 44px 0 20px;
	font-size: 22px;
	line-height: 1.5;
}

.news-single__back {
	max-width: 860px;
	margin: 72px auto 0;
	padding-top: 28px;
	border-top: 1px solid #dce2e8;
}

.news-single__back a {
	color: #071f35;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.news-single__back a:hover {
	color: #ef2028;
}

.news-single__cta {
	background: #ed1c24;
	color: #fff;
	padding: 68px 0;
}

.news-single__cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
}

.news-single__cta-eyebrow {
	margin: 0 0 20px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
}

.news-single__cta-copy h2 {
	margin: 0 0 22px;
	color: #fff;
	font-size: clamp(30px, 3.5vw, 48px);
	line-height: 1.35;
}

.news-single__cta-copy > p:last-child {
	margin: 0;
	color: #fff;
	font-size: 14px;
	line-height: 1.9;
}

.news-single__cta-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 270px;
	padding: 20px 28px;
	background: #fff;
	border: 1px solid #fff;
	color: #071f35;
	font-weight: 700;
	text-decoration: none;
}

.news-single__cta-button:hover {
	background: #071f35;
	border-color: #071f35;
	color: #fff;
}


/* Mobile */
@media (max-width: 767px) {

	.news-single__hero {
		padding: 60px 0 56px;
	}

	.news-single__eyebrow {
		margin-bottom: 18px;
	}

	.news-single__date {
		margin-bottom: 14px;
	}

	.news-single__title {
		font-size: 34px;
	}

	.news-single__body {
		padding: 60px 0 70px;
	}

	.news-single__content {
		font-size: 15px;
		line-height: 1.9;
	}

	.news-single__content h2 {
		margin-top: 48px;
		font-size: 26px;
	}

	.news-single__content h3 {
		font-size: 21px;
	}

	.news-single__back {
		margin-top: 52px;
	}

	.news-single__cta {
		padding: 52px 0;
	}

	.news-single__cta-inner {
		display: block;
	}

	.news-single__cta-action {
		margin-top: 30px;
	}

	.news-single__cta-button {
		width: 100%;
		min-width: 0;
	}

}





/* =========================================================
   Column single - Hero title
   ========================================================= */

.column-single__hero-inner {
	max-width: 1280px;
}

.column-single__title {
	max-width: 1180px;
	font-size: clamp(48px, 4.6vw, 72px);
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

/* Tablet */
@media (max-width: 1024px) {
	.column-single__title {
		max-width: 900px;
		font-size: clamp(42px, 5.5vw, 58px);
	}
}

/* Mobile */
@media (max-width: 767px) {
	.column-single__title {
		max-width: none;
		font-size: clamp(32px, 9vw, 42px);
		line-height: 1.3;
		letter-spacing: -0.01em;
		text-wrap: wrap;
	}
}












/* ==================================================
   HOME HERO / BACKGROUND VIDEO
================================================== */

.home-hero--video {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: #061c30;
}


/* ------------------------------
   Background video layer
------------------------------ */

.home-hero__video-layer {
	position: absolute;
	z-index: 0;
	inset: 0;
	overflow: hidden;

	background-color: #061c30;
	background-image: url("./assets/images/hero-bg-poster.webp");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}


/* video */

.home-hero__video {
	position: absolute;
	top: 50%;
	left: 50%;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center center;

	transform: translate(-50%, -50%) scale(1.02);

	opacity: 0;

	transition:
		opacity 0.8s ease;

	pointer-events: none;
}


/* 動画再生可能後 */

.home-hero__video.is-ready {
	opacity: 1;
}


/* ------------------------------
   Video dark overlay
------------------------------ */

.home-hero__video-overlay {
	position: absolute;
	z-index: 1;
	inset: 0;

	background:
		linear-gradient(
			90deg,
			rgba(3, 20, 36, 0.93) 0%,
			rgba(3, 20, 36, 0.82) 30%,
			rgba(3, 20, 36, 0.62) 52%,
			rgba(3, 20, 36, 0.42) 72%,
			rgba(3, 20, 36, 0.58) 100%
		),
		linear-gradient(
			180deg,
			rgba(3, 20, 36, 0.12) 0%,
			rgba(3, 20, 36, 0.26) 55%,
			rgba(3, 20, 36, 0.68) 100%
		);

	pointer-events: none;
}


/* ------------------------------
   Existing ambient effects
------------------------------ */

.home-hero--video .home-hero__ambient {
	z-index: 2;
	opacity: 0.48;
	pointer-events: none;
}


/* ------------------------------
   Existing contents
------------------------------ */

.home-hero--video .home-hero__grid {
	position: relative;
	z-index: 4;
}


.home-hero--video .home-hero__content {
	position: relative;
	z-index: 4;
}


.home-hero--video .home-hero__visual {
	position: relative;
	z-index: 5;
}


.home-hero--video .home-hero__scroll {
	z-index: 6;
}


/* ------------------------------
   文字の視認性
------------------------------ */

.home-hero--video .home-hero__title,
.home-hero--video .home-hero__lead,
.home-hero--video .home-hero__eyebrow,
.home-hero--video .home-hero__trust {
	position: relative;
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1024px) {

	.home-hero__video {
		object-position: center center;
	}

	.home-hero__video-overlay {
		background:
			linear-gradient(
				90deg,
				rgba(3, 20, 36, 0.94) 0%,
				rgba(3, 20, 36, 0.78) 50%,
				rgba(3, 20, 36, 0.56) 100%
			),
			linear-gradient(
				180deg,
				rgba(3, 20, 36, 0.18) 0%,
				rgba(3, 20, 36, 0.65) 100%
			);
	}

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767px) {

	.home-hero__video {
		object-position: center center;
		transform:
			translate(-50%, -50%)
			scale(1.04);
	}


	.home-hero__video-overlay {
		background:
			linear-gradient(
				180deg,
				rgba(3, 20, 36, 0.89) 0%,
				rgba(3, 20, 36, 0.82) 46%,
				rgba(3, 20, 36, 0.72) 72%,
				rgba(3, 20, 36, 0.90) 100%
			);
	}


	.home-hero--video .home-hero__ambient {
		opacity: 0.30;
	}

}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

	.home-hero__video {
		display: none;
	}

}




/* ==================================================
   HEADER LOGO
================================================== */

.site-branding {
	flex: 0 0 auto;
}

.site-branding__logo {
	display: block;
	line-height: 0;
}

.site-branding__logo .custom-logo-link {
	display: block;
	line-height: 0;
}

.site-branding__logo .custom-logo {
	display: block;
	width: 240px !important;
	height: auto !important;
	max-width: 240px;
	object-fit: contain;
}

/* PC header */
.site-header__inner {
	min-height: 92px;
}

/* SP */
@media (max-width: 767px) {

	.site-branding__logo .custom-logo {
		width: 155px !important;
		max-width: 155px;
	}

	.site-header__inner {
		min-height: 74px;
	}
}






.hero {
	position: relative;
	overflow: hidden;
	color: #fff;
}

.hero__bg-video {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero__bg-video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(3, 14, 35, 0.58);
	z-index: 1;
}

.hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	padding: 80px 40px;
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: 48px;
}

.hero__eyebrow {
	margin: 0 0 24px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.hero__title {
	margin: 0 0 28px;
	font-size: clamp(48px, 7vw, 96px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.03em;
}

.hero__title-line {
	display: block;
}

.hero__lead {
	margin: 0 0 32px;
	font-size: 18px;
	line-height: 1.9;
	max-width: 680px;
}

.hero__buttons {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}

.hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 28px;
	border-radius: 12px;
	font-weight: 700;
	text-decoration: none;
	transition: 0.3s ease;
}

.hero__btn--primary {
	background: #e41d24;
	color: #fff;
}

.hero__btn--secondary {
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.24);
	color: #fff;
}

.hero__points {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	font-weight: 700;
}

.hero__points li::before {
	content: "•";
	color: #e41d24;
	margin-right: 8px;
}

.hero__visual {
	position: relative;
}

.hero__visual-frame {
	padding: 22px;
	border-radius: 30px;
	background: rgba(12, 32, 66, 0.72);
	border: 1px solid rgba(255,255,255,0.12);
	backdrop-filter: blur(6px);
	box-shadow: 0 20px 40px rgba(0,0,0,0.24);
}

.hero__visual-main {
	overflow: hidden;
	border-radius: 20px;
	margin-bottom: 14px;
}

.hero__visual-main img {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
}

.hero__visual-sub {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.hero__visual-subitem {
	overflow: hidden;
	border-radius: 16px;
}

.hero__visual-subitem img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.hero__card {
	position: absolute;
	right: -20px;
	bottom: 24px;
	background: #fff;
	color: #0e1d35;
	border-radius: 16px;
	padding: 18px 20px;
	box-shadow: 0 12px 24px rgba(0,0,0,0.18);
}

.hero__card-label {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: #e41d24;
	text-transform: uppercase;
}

@media (max-width: 991px) {
	.hero__inner {
		grid-template-columns: 1fr;
		padding: 64px 24px;
	}

	.hero__visual {
		margin-top: 12px;
	}

	.hero__card {
		right: 10px;
		bottom: 10px;
	}
}

@media (max-width: 767px) {
	.hero__title {
		font-size: clamp(40px, 11vw, 60px);
	}

	.hero__lead {
		font-size: 16px;
		line-height: 1.8;
	}

	.hero__visual-main img {
		height: 220px;
	}

	.hero__visual-subitem img {
		height: 120px;
	}

	.hero__card {
		position: static;
		margin-top: 14px;
		display: inline-block;
	}
}








/* ==================================================
   HERO TITLE FINAL LINE BREAK
================================================== */

.home-hero__title .home-hero__title-line {
	display: block !important;
	width: max-content !important;
	max-width: none !important;
	white-space: nowrap !important;
	word-break: keep-all !important;
	overflow-wrap: normal !important;
}

@media (min-width: 1100px) {

	.home-hero__title {
		font-size: clamp(56px, 4.2vw, 70px);
		line-height: 1.15;
	}

	.home-hero__content {
		min-width: 640px;
	}

	.home-hero__grid {
		grid-template-columns: minmax(640px, 1.1fr) minmax(480px, .9fr);
	}
}




/* ==================================================
   HOME STRENGTH LINK CARD
================================================== */

.strength-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.strength-card--link:hover,
.strength-card--link:focus-visible {
	color: inherit;
	transform: translateY(-4px);
}

.strength-card__more {
	display: inline-block;
	margin-top: 18px;
	color: #e21b23;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .03em;
}







/* ==================================================
   HOME STATS LINK
================================================== */

.stat-item--link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	transition:
		transform .25s ease,
		background-color .25s ease;
}

.stat-item--link:hover,
.stat-item--link:focus-visible {
	color: inherit;
	transform: translateY(-4px);
}

.stat-item__more {
	display: inline-block;
	margin-top: 16px;
	color: #e21b23;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
}




/* トップページ：走行エリア画像 */
.area-panel__visual {
	width: 100%;
	overflow: hidden;
}

.area-panel__visual img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}





/* サービスページ：導入説明文の行間を30px → 28pxへ */
.service-intro__copy p { line-height: 26px; }
@media (min-width: 1024px) {
	.service-intro__copy { padding-top: 65px; }
}

/* サービスページ：導入見出し */
.service-intro h2 { font-size: clamp(32px, 4vw, 60px); line-height: 1.2; }

/* 車両ラインナップページ：導入見出し */
.vehicle-intro h2 { font-size: clamp(32px, 4vw, 60px); line-height: 1.2; }
.service-kicker { margin: 0 0 14px; font-size: 11px; font-weight: 700; letter-spacing: .14em; color: #e31b23; }

/* 車両ラインナップページ：導入見出し */
h2.section-heading__title { margin:0; font-size: clamp(32px, 4vw, 60px); line-height: 1.2; }
.section-heading__eyebrow { margin: 0 0 14px; font-size: 11px; font-weight: 700; letter-spacing: .14em; color: #e31b23; }



/* 車両ラインナップページ：導入説明文の行間を30px → 28pxへ */
.vehicle-intro__copy p { line-height: 26px; }
@media (min-width: 1024px) {
	.vehicle-intro__copy { padding-top: 65px; }
}








/* 運行実績画像：幅800px以上・本文中央配置 */
.works-detail-compact__image {
	margin: 0 auto 64px;
}

.works-detail-compact__image--small,
.works-detail-compact__image--medium {
	width: 100%;
	max-width: 800px;
}

.works-detail-compact__image--large {
	width: 100%;
	max-width: 100%;
}







/* 運行実績・ギャラリー：ページ送り */
.works-archive .pagination {
	margin-top: 56px;
}

.works-archive .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.works-archive .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	min-height: 46px;
	padding: 8px 14px;
	box-sizing: border-box;
	border: 1px solid #dce2e9;
	border-radius: 6px;
	background: #fff;
	color: #0b2239;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s;
}

.works-archive .pagination a.page-numbers:hover {
	border-color: #0b2239;
	background: #0b2239;
	color: #fff;
}

.works-archive .pagination .page-numbers.current {
	border-color: #df1220;
	background: #df1220;
	color: #fff;
}

.works-archive .pagination .page-numbers.dots {
	min-width: 24px;
	padding-right: 0;
	padding-left: 0;
	border-color: transparent;
	background: transparent;
	color: #667085;
}

.works-archive .pagination a.page-numbers:focus-visible {
	outline: 2px solid #0b2239;
	outline-offset: 4px;
}

@media (max-width: 600px) {
	.works-archive .pagination {
		margin-top: 36px;
	}

	.works-archive .pagination .nav-links {
		gap: 6px;
	}

	.works-archive .pagination .page-numbers {
		min-width: 44px;
		min-height: 44px;
		padding: 8px 12px;
		font-size: 14px;
	}
}



/* 車両製作・広告面施工：Hero画像 */
.production-hero-image {
	width: 100%;
	min-width: 0;
	aspect-ratio: 8 / 7;
	align-self: center;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 18px;
	background: #0b2239;
}

.production-hero-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}




/* 車両製作・施工風景：画像 */
.production-gallery__media.production-gallery__media--photo {
	display: block;
	position: relative;
	aspect-ratio: 16 / 9;
	height: auto;
	min-height: 0;
	padding: 0;
	overflow: hidden;
}

.production-gallery__media--photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* 既存の装飾を非表示 */
.production-gallery__media--photo::before,
.production-gallery__media--photo::after {
	display: none;
}

/* 日本語の項目名 */
.production-gallery__item figcaption strong {
	letter-spacing: .04em;
}






/* ==================================================
   SERVICE ADTRUCK HERO IMAGE
================================================== */

.service-hero__visual--image {
	position: relative;
	min-height: 420px;
	padding: 0;
	overflow: hidden;

	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 22px;

	background: #0b2745;

	box-shadow:
		0 24px 60px rgba(0, 0, 0, .20);
}


/* 写真 */
.service-hero__visual-image {
	position: absolute;
	inset: 0;

	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;

	filter:
		brightness(.82)
		contrast(1.05)
		saturate(.90);

	transition: transform .6s ease;
}


/* ネイビーの薄いオーバーレイ */
.service-hero__visual-overlay {
	position: absolute;
	z-index: 1;
	inset: 0;

	background:
		linear-gradient(
			180deg,
			rgba(5, 25, 47, .08) 20%,
			rgba(5, 25, 47, .18) 55%,
			rgba(5, 25, 47, .78) 100%
		);
}


/* 写真上のコピー */
.service-hero__visual-copy {
	position: absolute;
	z-index: 2;

	left: 34px;
	right: 34px;
	bottom: 30px;
}


.service-hero__visual-copy span {
	display: block;

	margin-bottom: 7px;

	color: #e51d27;

	font-size: 10px;
	font-weight: 800;
	letter-spacing: .20em;
}


.service-hero__visual-copy strong {
	display: block;

	color: #fff;

	font-size: clamp(20px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.4;
}


/* Hover */
@media (hover: hover) {

	.service-hero__visual--image:hover
	.service-hero__visual-image {
		transform: scale(1.025);
	}

}


/* Tablet */
@media (max-width: 1024px) {

	.service-hero__visual--image {
		min-height: 380px;
	}

}


/* SP */
@media (max-width: 767px) {

	.service-hero__visual--image {
		min-height: 300px;
		border-radius: 16px;
	}

	.service-hero__visual-copy {
		left: 22px;
		right: 22px;
		bottom: 22px;
	}

	.service-hero__visual-copy strong {
		font-size: 20px;
	}

}











/* ========================================
   共通セクション見出し
======================================== */

.section-heading--standard {
	margin-bottom: 40px;
}

/* 英字ラベル */
.section-heading--standard .section-heading__eyebrow {
	margin: 0 0 18px;
}

/* タイトル
   SERVICE「街で目を引く広告を〜」とサイズを統一
*/
.section-heading--standard .section-heading__title {
	margin: 0 0 15px;

	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: #0f223d;
}


/* 説明文＋リンク */
.section-heading__meta {
	display: flex;
	align-items: baseline; /* center → baseline に変更 */
	justify-content: space-between;
	gap: 40px;
	width: 100%;
}


/* 説明文
   SERVICE右側説明文とサイズを統一
*/
.section-heading__meta .section-heading__lead {
	margin: 0;

	font-size: 1rem;
	font-weight: 500;
	line-height: 1.9;
	color: #697386;

	flex: 1 1 auto;
	max-width: 760px;
}


/* 右側リンク */
.section-heading__meta .section-more {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;

	flex-shrink: 0;

	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.9; /* 0 → 説明文と同じ1.9 */

	color: #e83939;
	text-decoration: none;

	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.section-heading__meta .section-more:hover {
	opacity: 0.75;
	transform: translateX(3px);
}


/* ========================================
   SP
======================================== */

@media (max-width: 767px) {

	.section-heading--standard {
		margin-bottom: 30px;
	}

	.section-heading--standard .section-heading__title {
		margin-bottom: 20px;
		font-size: 3.2rem;
		line-height: 1.3;
	}

	.section-heading__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}

	.section-heading__meta .section-heading__lead {
		max-width: 100%;
		font-size: 1.3rem;
		line-height: 1.8;
	}

	.section-heading__meta .section-more {
		font-size: 1.2rem;
	}
}





/* ========================================
   HOME / Vehicle Lineup
======================================== */

.home-vehicle-lineup {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}


/* Card */
.home-vehicle-card {
	display: flex;
	flex-direction: column;
	min-width: 0;

	background: #fff;
	border: 1px solid #e2e6eb;
	border-radius: 10px;

	overflow: hidden;
}


/* Image */
.home-vehicle-card__image {
	display: block;
	overflow: hidden;

	background: #f3f5f7;
}

.home-vehicle-card__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 0.92;
	object-fit: cover;

	transition: transform 0.4s ease;
}

.home-vehicle-card__image:hover img {
	transform: scale(1.02);
}


/* Body */
.home-vehicle-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;

	padding: 22px 22px 24px;
}


/* 内照式 badge */
.home-vehicle-card__label {
	align-self: flex-start;

	margin-bottom: 12px;
	padding: 4px 9px;

	border-radius: 6px;

	background: #edf0f3;
	color: #536174;

	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.3;
}


/* Title */
.home-vehicle-card__title {
	margin: 0 0 8px;

	color: #0f223d;

	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.02em;
}


/* Description */
.home-vehicle-card__description {
	margin: 0 0 20px;

	color: #657286;

	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.7;
}


/* Specifications */
.home-vehicle-card__specs {
	margin-top: auto;
	padding-top: 18px;

	border-top: 1px solid #e6e9ed;
}

.home-vehicle-card__spec {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.home-vehicle-card__spec + .home-vehicle-card__spec {
	margin-top: 17px;
}

.home-vehicle-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 26px;

	width: 26px;
	height: 26px;

	color: #59677a;
}

.home-vehicle-card__icon svg {
	width: 23px;
	height: 23px;

	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.home-vehicle-card__spec strong {
	display: block;

	margin-bottom: 2px;

	color: #15243a;

	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.45;
}

.home-vehicle-card__spec p {
	margin: 0;

	color: #657286;

	font-size: 0.76rem;
	line-height: 1.55;
}


/* Link */
.home-vehicle-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;

	margin-top: 26px;

	color: #e83939;

	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.5;

	text-decoration: none;

	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.home-vehicle-card__more:hover {
	opacity: 0.75;
	transform: translateX(3px);
}


/* ========================================
   Tablet
======================================== */

@media (max-width: 1100px) {

	.home-vehicle-lineup {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}


/* ========================================
   SP
======================================== */

@media (max-width: 767px) {

	.home-vehicle-lineup {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.home-vehicle-card__body {
		padding: 20px;
	}

	.home-vehicle-card__title {
		font-size: 1.5rem;
	}

	.home-vehicle-card__description {
		font-size: 0.9rem;
	}

	.home-vehicle-card__spec p {
		font-size: 0.8rem;
	}

}








/* ========================================
   Vehicle Page / 1列4段ラインナップ
======================================== */

.vehicle-page {
	background: #f7f8fa;
}


/* lineup */
.vehicle-lineup {
	padding: 50px 0 100px;
}

.vehicle-lineup-item {
	margin-bottom: 24px;
	padding: 18px;
	background: #fff;
	border: 1px solid #e4e8ee;
	border-radius: 14px;
	box-shadow: 0 1px 0 rgba(15, 34, 61, 0.03);
	scroll-margin-top: 120px;
}

.vehicle-lineup-item:last-child {
	margin-bottom: 0;
}

.vehicle-lineup-item__grid {
	display: grid;
	grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}


/* left gallery */
.vehicle-gallery {
	position: relative;
}

.vehicle-gallery__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 60px;
	padding: 6px 12px;
	border-radius: 8px;
	background: rgba(15, 34, 61, 0.92);
	color: #fff;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
}

.vehicle-gallery__main {
	overflow: hidden;
	border-radius: 10px;
	background: #eef3f7;
}

.vehicle-gallery__main img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 8.4;
	object-fit: cover;
}

.vehicle-gallery__sub {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-top: 10px;
}

.vehicle-gallery__thumb {
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	background: #eef3f7;
}

.vehicle-gallery__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 0.8;
	object-fit: cover;
}

.vehicle-gallery__thumb span {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 8px 10px;
	background: rgba(15, 34, 61, 0.82);
	color: #fff;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}


/* right content */
.vehicle-lineup-item__head {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 10px 18px;
	align-items: start;
	padding-top: 8px;
}

.vehicle-lineup-item__number {
	font-size: 5.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	color: #1f6fe5;
}

.vehicle-lineup-item__title {
	margin: 0 0 16px;
	font-size: 3.4rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #0f223d;
}

.vehicle-lineup-item__lead {
	margin: 0;
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1.9;
	color: #5f6f84;
}


/* 3カラム情報 */
.vehicle-lineup-item__info {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid #e5eaf1;
}

.vehicle-info-box,
.vehicle-feature-box,
.vehicle-about-box {
	min-width: 0;
}

.vehicle-feature-box,
.vehicle-about-box {
	padding-left: 24px;
	border-left: 1px solid #e5eaf1;
}

.vehicle-info-box h3,
.vehicle-feature-box h3,
.vehicle-about-box h3 {
	margin: 0 0 14px;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.4;
	color: #0f223d;
}

.vehicle-info-box__sub {
	margin-top: 24px !important;
}

.vehicle-info-box ul,
.vehicle-feature-box ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.vehicle-info-box li {
	margin: 0 0 8px;
	font-size: 1.7rem;
	line-height: 1.8;
	color: #5f6f84;
}

.vehicle-feature-box li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 28px;
	font-size: 1.7rem;
	line-height: 1.8;
	color: #5f6f84;
}

.vehicle-feature-box li::before {
	content: "✓";
	position: absolute;
	top: 1px;
	left: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #1f6fe5;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
}

.vehicle-about-box p {
	margin: 0 0 10px;
	font-size: 1.7rem;
	line-height: 1.9;
	color: #5f6f84;
}


/* button */
.vehicle-lineup-item__cta {
	margin-top: 28px;
}

.vehicle-lineup-item__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 320px;
	padding: 16px 28px;
	border: 2px solid #1f6fe5;
	border-radius: 999px;
	color: #1f6fe5;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.vehicle-lineup-item__button:hover {
	background: #1f6fe5;
	color: #fff;
	transform: translateY(-1px);
}


/* ========================================
   Tablet
======================================== */
@media (max-width: 1180px) {

	.vehicle-page__heading {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.vehicle-page__heading-main::after {
		display: none;
	}

	.vehicle-lineup-item__grid {
		grid-template-columns: 1fr;
	}

	.vehicle-lineup-item__info {
		grid-template-columns: 1fr;
	}

	.vehicle-feature-box,
	.vehicle-about-box {
		padding-left: 0;
		border-left: none;
		padding-top: 20px;
		border-top: 1px solid #e5eaf1;
	}

	.vehicle-lineup-item__button {
		min-width: 280px;
	}
}






/* ========================================
   Vehicle Page
   PC typography adjustment
======================================== */
@media (min-width: 1181px) {

	/* 01 / 02 / 03 / 04 */
	.vehicle-lineup-item__number {
		font-size: 42px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: -0.04em;
	}

	/* 4t,SPロング */
	.vehicle-lineup-item__title {
		margin: 0 0 12px;
		font-size: 30px;
		font-weight: 700;
		line-height: 1.25;
		letter-spacing: -0.02em;
	}

	/* 車両タイトル下の説明文 */
	.vehicle-lineup-item__lead {
		margin: 0;
		font-size: 14px;
		font-weight: 500;
		line-height: 1.8;
	}

	/* 車両サイズ / 特徴・設備 / この車両について */
	.vehicle-info-box h3,
	.vehicle-feature-box h3,
	.vehicle-about-box h3 {
		margin: 0 0 10px;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.45;
	}

	/* 広告サイズ見出し */
	.vehicle-info-box__sub {
		margin-top: 18px !important;
	}

	/* 車両サイズ・広告サイズ */
	.vehicle-info-box li {
		margin-bottom: 5px;
		font-size: 13px;
		line-height: 1.65;
	}

	/* 特徴・設備 */
	.vehicle-feature-box li {
		margin-bottom: 7px;
		padding-left: 22px;
		font-size: 13px;
		line-height: 1.65;
	}

	/* 青チェック */
	.vehicle-feature-box li::before {
		top: 2px;
		width: 16px;
		height: 16px;
		font-size: 10px;
		line-height: 16px;
	}

	/* この車両について 本文 */
	.vehicle-about-box p {
		margin: 0 0 7px;
		font-size: 13px;
		line-height: 1.75;
	}

	/* 3カラム間 */
	.vehicle-lineup-item__info {
		gap: 20px;
		margin-top: 22px;
		padding-top: 20px;
	}

	.vehicle-feature-box,
	.vehicle-about-box {
		padding-left: 20px;
	}

	/* CTA */
	.vehicle-lineup-item__cta {
		margin-top: 20px;
	}

	.vehicle-lineup-item__button {
		min-width: 285px;
		padding: 11px 24px;
		font-size: 14px;
		font-weight: 700;
		line-height: 1.4;
	}

	/* 左画像の「正面・背面」 */
	.vehicle-gallery__thumb span {
		padding: 6px 8px;
		font-size: 12px;
	}

	/* 内照式 */
	.vehicle-gallery__badge {
		font-size: 12px;
		padding: 6px 10px;
	}
}






/* ========================================
   SP
======================================== */
@media (max-width: 767px) {

	.vehicle-lineup {
		padding-bottom: 60px;
	}

	.vehicle-lineup-item {
		padding: 14px;
		margin-bottom: 18px;
		border-radius: 12px;
		scroll-margin-top: 90px;
	}


	/* 内照式 */
	.vehicle-gallery__badge {
		top: 10px;
		left: 10px;
		padding: 5px 9px;

		font-size: 11px;
		line-height: 1.2;
	}


	/* 正面・背面 */
	.vehicle-gallery__thumb span {
		padding: 5px 8px;

		font-size: 11px;
		line-height: 1.3;
	}


	/* 画像間 */
	.vehicle-gallery__sub {
		gap: 8px;
	}


	/* 車両見出し */
	.vehicle-lineup-item__head {
		grid-template-columns: 1fr;
		gap: 6px;
		padding-top: 4px;
	}


	/* 01 / 02 / 03 / 04 */
	.vehicle-lineup-item__number {
		font-size: 32px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: -0.03em;
	}


	/* 4t,SPロング */
	.vehicle-lineup-item__title {
		margin: 0 0 8px;

		font-size: 27px;
		font-weight: 700;
		line-height: 1.3;
		letter-spacing: -0.02em;
	}


	/* タイトル下説明文 */
	.vehicle-lineup-item__lead {
		margin: 0;

		font-size: 14px;
		font-weight: 500;
		line-height: 1.8;
	}


	/* ページ上部説明文 */
	.vehicle-page__sublead {
		font-size: 14px;
		line-height: 1.8;
	}


	/* 詳細情報 */
	.vehicle-lineup-item__info {
		grid-template-columns: 1fr;
		gap: 0;

		margin-top: 22px;
		padding-top: 20px;
	}


	/* 車両サイズ / 広告サイズ / 特徴・設備 / この車両について */
	.vehicle-info-box h3,
	.vehicle-feature-box h3,
	.vehicle-about-box h3 {
		margin: 0 0 10px;

		font-size: 17px;
		font-weight: 700;
		line-height: 1.45;
	}


	/* 広告サイズ */
	.vehicle-info-box__sub {
		margin-top: 22px !important;
	}


	/* 車両サイズ・広告サイズ本文 */
	.vehicle-info-box li {
		margin-bottom: 5px;

		font-size: 14px;
		line-height: 1.7;
	}


	/* 特徴・設備 */
	.vehicle-feature-box {
		margin-top: 22px;
		padding-top: 20px;
		padding-left: 0;

		border-top: 1px solid #e5eaf1;
		border-left: 0;
	}

	.vehicle-feature-box li {
		margin-bottom: 7px;
		padding-left: 23px;

		font-size: 14px;
		line-height: 1.7;
	}


	/* 青チェック */
	.vehicle-feature-box li::before {
		top: 3px;

		width: 16px;
		height: 16px;

		font-size: 10px;
		line-height: 16px;
	}


	/* この車両について */
	.vehicle-about-box {
		margin-top: 22px;
		padding-top: 20px;
		padding-left: 0;

		border-top: 1px solid #e5eaf1;
		border-left: 0;
	}

	.vehicle-about-box p {
		margin: 0 0 8px;

		font-size: 14px;
		line-height: 1.8;
	}


	/* CTA */
	.vehicle-lineup-item__cta {
		margin-top: 22px;
	}

	.vehicle-lineup-item__button {
		width: 100%;
		min-width: 0;

		padding: 12px 16px;

		font-size: 14px;
		font-weight: 700;
		line-height: 1.4;
	}
}








/* 2日目以降の料金非公開表示 */
.price-hidden {
	position: relative;
	overflow: hidden;
	text-align: right;
}

.price-hidden__dummy {
	display: inline-block;

	color: #0f223d;

	filter: blur(6px);
	-webkit-filter: blur(6px);

	user-select: none;
	pointer-events: none;

	opacity: 0.75;
}

.price-hidden__label {
	position: absolute;
	top: 50%;
	right: 20px;

	transform: translateY(-50%);

	padding: 4px 8px;

	background: rgba(255, 255, 255, 0.92);

	color: #e83939;

	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;

	white-space: nowrap;
}











/* ========================================
   Price Plan Heading + Vehicle Visual
======================================== */

.price-plan__heading--visual {
	display: grid;
	grid-template-columns:
		minmax(280px, 0.9fr)
		minmax(320px, 1.15fr)
		minmax(220px, 0.75fr);

	align-items: center;
	gap: 32px;

	padding-bottom: 20px;

	border-bottom: 1px solid #dfe4ea;
}


/* ------------------------------
   Title
------------------------------ */

.price-plan__heading-title {
	min-width: 0;
}

.price-plan__heading-title .price-plan__type {
	margin: 0 0 12px;

	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;

	letter-spacing: 0.18em;

	color: #e83939;
}

.price-plan__heading-title h3 {
	margin: 0;

	font-size: 34px;
	font-weight: 700;
	line-height: 1.3;

	letter-spacing: -0.02em;

	color: #0f223d;
}


/* ------------------------------
   Vehicle image
------------------------------ */

.price-plan__heading-visual {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	min-width: 0;
	height: 130px;

	overflow: hidden;
}


/*
 * 画像の左右を白へ自然にフェード
 */
.price-plan__heading-visual::before,
.price-plan__heading-visual::after {
	content: "";

	position: absolute;
	top: 0;
	bottom: 0;

	z-index: 2;

	width: 75px;

	pointer-events: none;
}

.price-plan__heading-visual::before {
	left: 0;

	background:
		linear-gradient(
			to right,
			#fff 0%,
			rgba(255, 255, 255, 0.9) 28%,
			rgba(255, 255, 255, 0) 100%
		);
}

.price-plan__heading-visual::after {
	right: 0;

	background:
		linear-gradient(
			to left,
			#fff 0%,
			rgba(255, 255, 255, 0.9) 28%,
			rgba(255, 255, 255, 0) 100%
		);
}

.price-plan__heading-visual img {
	display: block;

	width: 100%;
	max-width: 430px;
	height: 125px;

	object-fit: contain;
	object-position: center;

	/* 白背景画像でも枠を感じにくくする */
	mix-blend-mode: multiply;
}


/* ------------------------------
   Recommendation
------------------------------ */

.price-plan__heading--visual .price-plan__recommend {
	margin: 0;

	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;

	text-align: right;

	color: #637083;
}


/* ========================================
   Tablet
======================================== */

@media (max-width: 1000px) {

	.price-plan__heading--visual {
		grid-template-columns:
			minmax(230px, 0.8fr)
			minmax(280px, 1fr)
			minmax(180px, 0.6fr);

		gap: 20px;
	}

	.price-plan__heading-title h3 {
		font-size: 29px;
	}

	.price-plan__heading-visual {
		height: 110px;
	}

	.price-plan__heading-visual img {
		height: 105px;
	}

}


/* ========================================
   SP
======================================== */

@media (max-width: 767px) {

	.price-plan__heading--visual {
		display: block;

		padding-bottom: 20px;
	}

	.price-plan__heading-title .price-plan__type {
		margin-bottom: 8px;

		font-size: 10px;
	}

	.price-plan__heading-title h3 {
		font-size: 27px;
		line-height: 1.35;
	}


	/* SPではタイトル下に車両画像 */
	.price-plan__heading-visual {
		width: 100%;
		height: 120px;

		margin-top: 18px;
	}

	.price-plan__heading-visual img {
		width: 100%;
		max-width: 360px;
		height: 115px;
	}


	/* おすすめ文 */
	.price-plan__heading--visual .price-plan__recommend {
		margin-top: 12px;

		font-size: 11px;
		line-height: 1.6;

		text-align: left;
	}

}









/* ========================================
   Contact Form / Date Range
======================================== */

.adtora-form-date-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.adtora-form-date-grid .adtora-form-row {
	margin: 0;
}

@media (max-width: 767px) {

	.adtora-form-date-grid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.adtora-form-date-grid .adtora-form-row {
		margin-bottom: 20px;
	}

}









/* ========================================
   AD TRUCK HERO BUTTON HEIGHT FIX
======================================== */

.service-hero__actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 52px;
	padding-top: 0;
	padding-bottom: 0;

	line-height: 1.4;
	box-sizing: border-box;
}

/* ========================================
   SERVICE HERO BUTTON SIZE FIX
======================================== */

.service-hero__actions > .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	height: 52px !important;
	min-height: 52px !important;

	padding: 0 24px !important;

	line-height: 1 !important;
	box-sizing: border-box !important;
}

/* ========================================
   AD TRUCK HERO BUTTON ALIGN FIX
======================================== */

.service-hero--adtruck .service-hero__actions {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

.service-hero--adtruck .service-hero__actions > .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	height: 52px !important;
	min-height: 52px !important;

	margin: 0 !important;
	padding: 0 24px !important;

	position: static !important;
	top: auto !important;
	bottom: auto !important;

	transform: none !important;

	line-height: 1 !important;
	box-sizing: border-box !important;
}



/* ========================================
   PRODUCTION HERO BUTTON ALIGN FIX
======================================== */

.service-hero--production .service-hero__actions {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

.service-hero--production .service-hero__actions > .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	height: 52px !important;
	min-height: 52px !important;

	margin: 0 !important;
	padding: 0 24px !important;

	position: static !important;
	top: auto !important;
	bottom: auto !important;

	transform: none !important;

	line-height: 1 !important;
	box-sizing: border-box !important;
}