.tpf-front-form,
.tpf-results,
.tpf-confirmation {
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
	padding: 22px;
}

.tpf-front-grid,
.tpf-card-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.tpf-field {
	margin: 0 0 16px;
}

.tpf-field label {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
}

.tpf-field input,
.tpf-field select {
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	box-sizing: border-box;
	min-height: 42px;
	padding: 9px 11px;
	width: 100%;
}

.tpf-button {
	background: #102a43;
	border: 0;
	border-radius: 999px;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	margin-top: 12px;
	padding: 12px 20px;
	text-decoration: none;
}

.tpf-button:hover,
.tpf-button:focus {
	background: #1f4b73;
	color: #ffffff;
}

.tpf-results {
	display: grid;
	gap: 22px;
	grid-template-columns: minmax(220px, 280px) 1fr;
}

.tpf-recap {
	background: #f8fafc;
	border-radius: 12px;
	padding: 16px;
}

.tpf-vehicle-list {
	display: grid;
	gap: 16px;
}

.tpf-vehicle-card {
	align-items: center;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	display: grid;
	gap: 18px;
	grid-template-columns: 180px 1fr auto;
	padding: 16px;
}

.tpf-vehicle-image img {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.tpf-specs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tpf-specs li {
	background: #eef2ff;
	border-radius: 999px;
	font-size: 13px;
	padding: 5px 9px;
}

.tpf-choice-card {
	border: 1px solid #dbe4ee;
	border-radius: 14px;
	cursor: pointer;
	display: grid;
	gap: 8px;
	padding: 16px;
}

.tpf-choice-card:has(input:checked) {
	border-color: #102a43;
	box-shadow: 0 0 0 3px rgba(16, 42, 67, 0.15);
}

.tpf-choice-card strong,
.tpf-choice-card em {
	display: block;
}

.tpf-inline-choice {
	display: block;
	margin: 12px 0;
}

.tpf-summary-table {
	border-collapse: collapse;
	width: 100%;
}

.tpf-summary-table th,
.tpf-summary-table td {
	border-bottom: 1px solid #e5e7eb;
	padding: 10px;
	text-align: left;
}

.tpf-notice {
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 12px;
	padding: 16px;
}

@media (max-width: 800px) {
	.tpf-results,
	.tpf-vehicle-card {
		grid-template-columns: 1fr;
	}
}
