/**
 * PowerCar — Single Veicolo page styles.
 * Classi BEM prefissate sv- (single veicolo). Nessun ID, nessun valore hardcoded.
 */

/* ── Light surface overrides (sezione scheda usa sfondo chiaro) ───────────── */
:root {
	--sv-white:      #ffffff;
	--sv-gray-light: #f4f5f7;
	--sv-gray-text:  #666666;
	--sv-dark:       #111111;
	--sv-border:     #e5e5e5;
	--sv-shadow:     0 2px 16px rgba(0,0,0,.08);

	/* Fallback: garantisce bottoni visibili anche se powercar.css non cascades */
	--color-brand:      #ed1b30;
	--color-brand-dark: #c41526;
	--color-wa:         #25d366;
	--color-wa-dark:    #1db954;
}

/* ── Gallery main image fade transition (used by main.js thumb switcher) ──── */
#main-img {
	transition: opacity .2s ease;
}

/* ── Breadcrumb ────────────────────────────────────────────────────────────── */
.sv-breadcrumb {
	padding: 100px 0 0;
	background: var(--sv-white);
}

.sv-breadcrumb-inner {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: .85rem;
	color: var(--sv-gray-text);
	padding: 18px 0;
	border-bottom: 1px solid var(--sv-border);
}

.sv-breadcrumb-inner a {
	color: var(--sv-gray-text);
	text-decoration: none;
	transition: var(--transition);
}

.sv-breadcrumb-inner a:hover {
	color: var(--color-brand);
}

.sv-breadcrumb-inner i {
	font-size: .65rem;
}

.sv-breadcrumb-inner span {
	color: var(--sv-dark);
	font-weight: 600;
}

/* ── Detail section (gallery + sidebar) ────────────────────────────────────── */
.sv-detail {
	padding: 50px 0 90px;
	background: var(--sv-white);
}

.sv-detail-layout {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 60px;
	align-items: start;
}

/* Gallery */
.sv-gallery-main {
	position: relative;
	border-radius: 8px;
	overflow: hidden;
	height: 420px;
	background: #f0f0f0;
	cursor: zoom-in;
}

.sv-gallery-main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.sv-gallery-main:hover img {
	transform: scale(1.03);
}

.sv-gallery-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--color-brand);
	color: #fff;
	padding: 6px 12px;
	font-size: .75rem;
	font-weight: 700;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 1px;
	pointer-events: none;
}

.sv-gallery-fav {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 38px;
	height: 38px;
	background: rgba(255,255,255,.92);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	color: var(--sv-gray-text);
	cursor: pointer;
	transition: var(--transition);
	border: none;
}

.sv-gallery-fav:hover,
.sv-gallery-fav[aria-pressed="true"] {
	color: var(--color-brand);
}

.sv-gallery-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-top: 12px;
}

.sv-gallery-thumb {
	height: 80px;
	border-radius: 6px;
	overflow: hidden;
	cursor: pointer;
	border: 2px solid transparent;
	transition: var(--transition);
}

.sv-gallery-thumb.is-active,
.sv-gallery-thumb:hover {
	border-color: var(--color-brand);
}

.sv-gallery-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Sidebar */
.sv-make {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--color-brand);
	margin-bottom: 6px;
}

.sv-title {
	font-size: 2rem;
	font-weight: 800;
	color: var(--sv-dark);
	line-height: 1.15;
	margin-bottom: 18px;
}

.sv-badges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}

.sv-badge {
	padding: 5px 12px;
	border-radius: 20px;
	font-size: .78rem;
	font-weight: 600;
	background: var(--sv-gray-light);
	color: var(--sv-dark);
	display: flex;
	align-items: center;
	gap: 6px;
}

.sv-badge i {
	color: var(--color-brand);
	font-size: .75rem;
}

.sv-price-block {
	background: var(--sv-gray-light);
	border: 1px solid var(--sv-border);
	border-radius: 8px;
	padding: 22px 24px;
	margin-bottom: 24px;
}

.sv-price-main {
	font-size: 2.4rem;
	font-weight: 800;
	color: var(--sv-dark);
	line-height: 1;
}

.sv-price-rate {
	font-size: .9rem;
	color: var(--sv-gray-text);
	margin-top: 6px;
}

.sv-price-rate strong {
	color: var(--color-brand);
}

.sv-price-rate a {
	color: var(--color-brand);
	font-weight: 600;
	text-decoration: none;
}

.sv-price-iva {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 10px;
	padding: 6px 12px;
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--color-brand);
	background: rgba(237, 27, 48, .08);
	border-radius: 4px;
}

.sv-price-iva i { font-size: .9em; }

.sv-cta-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 28px;
}

.sv-btn {
	width: 100%;
	padding: 15px;
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	border: 2px solid transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: var(--transition);
	text-decoration: none;
}

.sv-btn-red {
	background: var(--color-brand);
	color: #fff;
}

.sv-btn-red:hover {
	background: var(--color-brand-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 20px rgba(237,27,48,.3);
	color: #fff;
}

.sv-btn-wa {
	background: var(--color-wa);
	color: #fff;
}

.sv-btn-wa:hover {
	background: var(--color-wa-dark);
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(37,211,102,.3);
	color: #fff;
}

.sv-btn-dark {
	background: var(--sv-dark);
	color: #fff;
}

.sv-btn-dark:hover {
	background: #333;
	transform: translateY(-2px);
	color: #fff;
}

.sv-dealer {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px;
	border: 1px solid var(--sv-border);
	border-radius: 8px;
	font-size: .88rem;
}

.sv-dealer-icon {
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(237,27,48,.09);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	color: var(--color-brand);
}

.sv-dealer-info strong {
	display: block;
	font-size: .95rem;
	margin-bottom: 2px;
	color: var(--sv-dark);
}

.sv-dealer-info span {
	color: var(--sv-gray-text);
}

/* ── Specs section ─────────────────────────────────────────────────────────── */
.sv-specs {
	padding: 60px 0;
	background: var(--sv-gray-light);
}

.sv-specs-layout {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 50px;
	align-items: start;
}

.sv-section-title {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--sv-dark);
	margin-bottom: 22px;
}

.sv-specs-table-wrap {
	background: var(--sv-white);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--sv-shadow);
}

.sv-specs-table {
	width: 100%;
	border-collapse: collapse;
}

.sv-specs-table td {
	padding: 14px 20px;
	font-size: .93rem;
	border-bottom: 1px solid var(--sv-border);
}

.sv-specs-table tr:last-child td {
	border-bottom: none;
}

.sv-specs-table td:first-child {
	font-weight: 600;
	color: var(--sv-dark);
	width: 45%;
	background: rgba(0,0,0,.02);
}

.sv-specs-table td:last-child {
	color: var(--sv-gray-text);
}

.sv-desc {
	/* optional/description column */
}

.sv-desc .entry-content {
	font-size: .93rem;
	color: var(--sv-gray-text);
	line-height: 1.75;
}

.sv-desc .entry-content li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: .88rem;
	color: var(--sv-dark);
	background: var(--sv-white);
	padding: 10px 14px;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0,0,0,.05);
	margin-bottom: 10px;
}

.sv-desc .entry-content li::before {
	content: '\f058';
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
	color: var(--color-brand);
	font-size: .85rem;
	flex-shrink: 0;
}

.sv-optional-list,
.optional-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sv-optional-list li,
.optional-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: .88rem;
	color: var(--sv-dark);
	background: var(--sv-white);
	padding: 10px 14px;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0,0,0,.05);
	margin-bottom: 10px;
}

.sv-optional-list li::before,
.optional-list li::before {
	content: '\f058';
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
	color: var(--color-brand);
	font-size: .85rem;
	flex-shrink: 0;
}

/* ── Contact section ───────────────────────────────────────────────────────── */
.sv-contact {
	padding: 60px 0 90px;
	background: var(--sv-white);
}

.sv-contact-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	align-items: start;
}

/* Form */
.sv-form .fg {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 16px;
}

.sv-form .fg label {
	font-size: .8rem;
	font-weight: 600;
	color: var(--sv-dark);
	letter-spacing: .5px;
}

.sv-form input,
.sv-form textarea,
.sv-form select {
	padding: 12px 14px;
	border: 1.5px solid var(--sv-border);
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: .93rem;
	color: var(--sv-dark);
	background: var(--sv-white);
	outline: none;
	transition: var(--transition);
	width: 100%;
}

.sv-form input:focus,
.sv-form textarea:focus,
.sv-form select:focus {
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(237,27,48,.08);
}

.sv-form textarea {
	resize: vertical;
	min-height: 100px;
}

.sv-privacy-row {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	margin-bottom: 18px;
	font-size: .8rem;
	color: var(--sv-gray-text);
}

.sv-privacy-row input[type="checkbox"] {
	margin-top: 3px;
	accent-color: var(--color-brand);
	flex-shrink: 0;
	width: auto;
}

.sv-privacy-row a {
	color: var(--color-brand);
}

.sv-btn-submit {
	width: 100%;
	padding: 14px;
	background: var(--color-brand);
	color: #fff;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: var(--transition);
}

.sv-btn-submit:hover {
	background: var(--color-brand-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 20px rgba(237,27,48,.3);
}

/* Guarantees */
.sv-guarantees h3 {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--sv-dark);
	margin-bottom: 10px;
}

.sv-guarantees p.sv-guarantees-intro {
	color: var(--sv-gray-text);
	font-size: .95rem;
	line-height: 1.75;
	margin-bottom: 24px;
}

.sv-guarantee-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.sv-guarantee-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 16px;
	border: 1px solid var(--sv-border);
	border-radius: 8px;
	transition: var(--transition);
}

.sv-guarantee-item:hover {
	border-color: var(--color-brand);
}

.sv-g-icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(237,27,48,.09);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
	color: var(--color-brand);
}

.sv-guarantee-item h5 {
	font-size: .9rem;
	margin-bottom: 3px;
	color: var(--sv-dark);
}

.sv-guarantee-item p {
	color: var(--sv-gray-text);
	font-size: .83rem;
	line-height: 1.5;
	margin: 0;
}

/* ── Notice feedback form ─────────────────────────────────────────────────── */
.sv-form-notice {
	padding: 14px 18px;
	border-radius: 6px;
	font-size: .9rem;
	margin-bottom: 18px;
	display: none;
}

.sv-form-notice.is-success {
	background: #d4edda;
	color: #155724;
	display: block;
}

.sv-form-notice.is-error {
	background: #f8d7da;
	color: #721c24;
	display: block;
}

/* ── V2: Galleria senza thumbnails (hero full-height) ──────────────────────── */
.sv-gallery--no-thumbs .sv-gallery-main {
	height: 520px;
}

/* ── V2: Blocco Descrizione ─────────────────────────────────────────────────── */
.sv-desc-block {
	padding: 10px 0 36px;
}

.sv-desc-block .sv-section-title {
	margin-bottom: 14px;
}

.sv-desc-text {
	font-size: .96rem;
	line-height: 1.85;
	color: var(--sv-gray-text);
	max-width: 820px;
}

.sv-desc-text p { margin-bottom: 1em; }
.sv-desc-text p:last-child { margin-bottom: 0; }

/* ── V2: Gallery Lightbox ────────────────────────────────────────────────────── */
.sv-gallery-lb {
	padding: 0 0 6px;
}

.sv-gallery-lb .sv-section-title {
	margin-bottom: 18px;
}

.sv-gallery-lb-grid {
	display: grid;
	gap: var(--pc-lb-gap, 12px);
	grid-template-columns: repeat(var(--pc-cols-d, 4), 1fr);
}

.sv-gallery-lb-item {
	display: block;
	border-radius: var(--pc-lb-radius, 6px);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--sv-gray-light);
}

.sv-gallery-lb-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.sv-gallery-lb-item:hover img {
	transform: scale(1.05);
}

/* ── V2: CF7 form overrides ─────────────────────────────────────────────────── */
.sv-form .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.sv-form .wpcf7-form p {
	margin-bottom: 16px;
}

.sv-form .wpcf7-form p:last-child {
	margin-bottom: 0;
}

.sv-form .wpcf7-form label {
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: .8rem;
	font-weight: 600;
	color: var(--sv-dark);
	letter-spacing: .5px;
}

.wpcf7-form .sv-privacy-row label {
	display: flex;
	flex-direction: row;
}

.sv-form .wpcf7-form input[type="text"],
.sv-form .wpcf7-form input[type="email"],
.sv-form .wpcf7-form input[type="tel"],
.sv-form .wpcf7-form select,
.sv-form .wpcf7-form textarea {
	padding: 12px 14px;
	border: 1.5px solid var(--sv-border);
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: .93rem;
	color: var(--sv-dark);
	background: var(--sv-white);
	outline: none;
	transition: var(--transition);
	width: 100%;
}

.sv-form .wpcf7-form input:focus,
.sv-form .wpcf7-form select:focus,
.sv-form .wpcf7-form textarea:focus {
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(237,27,48,.08);
}

.sv-form .wpcf7-form textarea {
	resize: vertical;
	min-height: 100px;
}

.sv-form .wpcf7-form .wpcf7-acceptance {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	font-size: .8rem;
	color: var(--sv-gray-text);
}

.sv-form .wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	margin-top: 3px;
	accent-color: var(--color-brand);
	flex-shrink: 0;
	width: auto;
}

.sv-form .wpcf7-form .wpcf7-acceptance a {
	color: var(--color-brand);
}

.sv-form .wpcf7-form input[type="submit"],
.sv-form .wpcf7-form .wpcf7-submit {
	width: 100%;
	padding: 14px;
	background: var(--color-brand);
	color: #fff;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: var(--transition);
}

.sv-form .wpcf7-form input[type="submit"]:hover,
.sv-form .wpcf7-form .wpcf7-submit:hover {
	background: var(--color-brand-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 20px rgba(237,27,48,.3);
}

.sv-form .wpcf7-not-valid-tip {
	color: var(--color-brand);
	font-size: .78rem;
	margin-top: 4px;
}

.sv-form .wpcf7-response-output {
	padding: 12px 16px;
	border-radius: 6px;
	font-size: .88rem;
	margin-top: 12px;
	border: none !important;
}

.sv-form .wpcf7-mail-sent-ok {
	background: #d4edda;
	color: #155724;
}

.sv-form .wpcf7-validation-errors,
.sv-form .wpcf7-spam-blocked {
	background: #f8d7da;
	color: #721c24;
}

/* ── V2: Elementor native widget overrides ──────────────────────────────────── */

/*
 * Con Elementor, _css_classes viene aggiunto al div wrapper esterno
 * (.elementor-widget-heading), non all'<h2> stesso.
 * Questo selector punta al titolo interno.
 */
.sv-section-title .elementor-heading-title {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--sv-dark);
	margin-bottom: 0;
}

/* Text-editor widget con classe sv-guarantees-intro */
.sv-guarantees-intro .elementor-widget-container p {
	color: var(--sv-gray-text);
	font-size: .95rem;
	line-height: 1.75;
	margin-bottom: 0;
}

/* Icon-box widget con classe sv-guarantee-item-el: card bordata orizzontale */
.sv-guarantee-item-el .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 14px;
	padding: 16px;
	border: 1px solid var(--sv-border);
	border-radius: 8px;
	text-align: left;
	transition: var(--transition);
}

.sv-guarantee-item-el.elementor-widget-icon-box.elementor-position-block-start .elementor-icon-box-wrapper {
	align-items: center !important;
}

.sv-guarantee-item-el .elementor-icon-box-wrapper:hover {
	border-color: var(--color-brand);
}

.sv-guarantee-item-el .elementor-icon-box-icon {
	flex-shrink: 0;
}

.sv-guarantee-item-el .elementor-icon-box-icon .elementor-icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(237,27,48,.09);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
	color: var(--color-brand) !important;
}

.sv-guarantee-item-el .elementor-icon-box-content {
	flex: 1;
}

.sv-guarantee-item-el .elementor-icon-box-title {
	font-size: .9rem;
	margin-bottom: 3px;
	color: var(--sv-dark);
	font-weight: 700;
}

.sv-guarantee-item-el .elementor-icon-box-title span {
	font-size: inherit;
}

.sv-guarantee-item-el .elementor-icon-box-description {
	color: var(--sv-gray-text);
	font-size: .83rem;
	line-height: 1.5;
	margin: 0;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.sv-detail-layout,
	.sv-specs-layout,
	.sv-contact-layout {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.sv-gallery-lb-grid { grid-template-columns: repeat(var(--pc-cols-t, 2), 1fr); }
}

@media (max-width: 767px) {
	.sv-gallery-main {
		height: 280px;
	}

	.sv-gallery--no-thumbs .sv-gallery-main {
		height: 260px;
	}

	.sv-title {
		font-size: 1.6rem;
	}

	.sv-breadcrumb {
		padding-top: 80px;
	}

	.sv-gallery-lb-grid { grid-template-columns: repeat(var(--pc-cols-m, 1), 1fr); }
}
