/*
Theme Name: Concessionaria
Theme URI: https://example.com/
Description: Tema per concessionaria - vendita e noleggio auto e moto. Da usare col plugin "Concessionaria".
Author: Custom
Version: 1.6.26
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: concessionaria-theme
*/

:root {
	--accent:#e11d2a;
	--accent-dark:#b3151f;
	--accent-hot:#ff5a3c;
	--ink:#0a0d14;          /* carbonio (non nero puro) */
	--ink-soft:#141922;
	--ink-2:#1c222e;
	--muted:#6b7280;
	--line:#e8eaed;
	--bg:#ffffff;
	--bg-soft:#f5f6f8;
	--maxw:1240px;
	--radius:12px;
	--shadow:0 18px 40px -18px rgba(9,14,26,.35);
	--font-head:'Rajdhani',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	--font-body:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
	margin:0; font-family:var(--font-body);
	color:var(--ink); background:var(--bg); line-height:1.65;
	-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4 { font-family:var(--font-head); font-weight:700; line-height:1.15; letter-spacing:-.02em; }
a { color:var(--accent); text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
.container { max-width:var(--maxw); margin:0 auto; padding:0 22px; }
.eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:700; color:var(--accent); margin:0 0 10px; }

/* ---------- Header (sportivo / racing) ---------- */
.site-header {
	position:sticky; top:0; z-index:60;
	background:linear-gradient(180deg,#0b0f19 0%,#12172250 100%),#0b0f19;
	background-color:rgba(11,15,25,.92); backdrop-filter:saturate(160%) blur(12px);
	border-bottom:1px solid rgba(255,255,255,.08);
	box-shadow:0 2px 20px rgba(0,0,0,.35);
}
/* Stripe racing rossa in cima */
.site-header::before {
	content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:1;
	background:linear-gradient(90deg,var(--accent) 0%,var(--accent) 60%,#ff5a3c 100%);
}
.site-header .container { display:flex; align-items:center; justify-content:space-between; gap:20px; height:74px; }

/* Brand: corsivo veloce con accento */
.site-brand {
	font-family:var(--font-head); font-size:24px; font-weight:800;
	font-style:italic; letter-spacing:-.03em; color:#fff; text-transform:uppercase;
	position:relative; padding-left:16px;
}
.site-brand::before {
	content:""; position:absolute; left:0; top:50%; transform:translateY(-50%) skewX(-12deg);
	width:5px; height:26px; background:var(--accent); box-shadow:0 0 14px rgba(225,29,42,.7);
}
.site-brand span { color:var(--accent); }

/* Logo immagine (custom-logo): adattato all'altezza header, senza distorsione */
.custom-logo-link { display:inline-flex; align-items:center; line-height:0; }
.custom-logo {
	height:48px; width:auto; max-width:240px; object-fit:contain; display:block;
}
@media (max-width:400px) { .custom-logo { height:38px; max-width:170px; } }

/* Nav: maiuscolo, underline che scorre */
.main-nav ul { list-style:none; display:flex; gap:30px; margin:0; padding:0; align-items:center; }
.main-nav a {
	position:relative; color:#e7e9ee; font-weight:700; font-size:13.5px;
	text-transform:uppercase; letter-spacing:.09em; padding:6px 0; transition:color .18s;
}
.main-nav a::after {
	content:""; position:absolute; left:0; bottom:0; height:2px; width:100%;
	background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.main-nav a:hover { color:#fff; }
.main-nav a:hover::after { transform:scaleX(1); }

/* Voce pagina corrente: underline rossa fissa */
.main-nav a.is-current,
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a,
.main-nav .current_page_item > a { color:#fff; }
.main-nav a.is-current::after,
.main-nav a[aria-current]::after,
.main-nav .current-menu-item > a::after,
.main-nav .current-menu-ancestor > a::after,
.main-nav .current_page_item > a::after { transform:scaleX(1); }

/* CTA racing: pieno accento, bordo squadrato (niente clip-path che tagliava) */
.nav-cta {
	display:inline-block; background:var(--accent); color:#fff !important;
	padding:10px 22px; letter-spacing:.08em; white-space:nowrap; line-height:1.4;
	border-radius:4px; transition:background .18s, color .18s;
	box-shadow:0 8px 20px -8px var(--accent);
}
.nav-cta:hover { background:#fff; color:var(--accent) !important; }
.main-nav a.nav-cta::after { display:none; }

/* Hamburger (nascosto su desktop) */
.nav-toggle { display:none; background:none; border:0; cursor:pointer; width:44px; height:44px; padding:10px; position:relative; z-index:70; }
.nav-toggle span { display:block; height:2px; width:100%; background:#fff; border-radius:2px; transition:transform .3s ease, opacity .2s ease; }
.nav-toggle span + span { margin-top:5px; }
.nav-overlay { position:fixed; inset:0; background:rgba(5,8,14,.6); backdrop-filter:blur(2px); z-index:55; display:none; }
body.nav-open .nav-overlay { display:block; }
body.nav-open { overflow:hidden; }

/* ---------- Hero ---------- */
.hero {
	position:relative; min-height:82vh; display:flex; align-items:center; color:#fff; overflow:hidden;
}
.hero-media, .hero-media img, .hero-media video {
	position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.hero::after {
	content:""; position:absolute; inset:0; z-index:1;
	background:linear-gradient(105deg,rgba(9,14,26,.92) 0%,rgba(9,14,26,.65) 45%,rgba(9,14,26,.25) 100%);
}
.hero .container { position:relative; z-index:2; padding-top:60px; padding-bottom:60px; }
.hero h1 { font-size:clamp(34px,5.4vw,60px); margin:0 0 18px; max-width:15ch; }
.hero h1 em { color:var(--accent); font-style:normal; }
.hero p { font-size:clamp(16px,2vw,20px); color:#d7dbe4; margin:0 0 32px; max-width:56ch; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.btn {
	display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:15px 28px; border-radius:999px;
	font-family:var(--font-head); font-weight:600; font-size:15px; white-space:nowrap; transition:transform .18s, box-shadow .18s, background .18s; cursor:pointer; border:0;
}
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--accent); color:#fff; box-shadow:0 14px 30px -12px var(--accent); }
.btn-primary:hover { background:var(--accent-dark); }
.btn-ghost { background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(4px); }
.btn-ghost:hover { background:rgba(255,255,255,.2); }

/* Hero stats bar */
.hero-stats {
	position:relative; z-index:2; margin-top:44px; display:flex; flex-wrap:wrap; gap:38px;
}
.hero-stats .stat b { font-family:var(--font-head); font-size:30px; display:block; line-height:1; }
.hero-stats .stat span { font-size:13px; color:#c3c8d2; letter-spacing:.02em; }

/* ---------- Sections ---------- */
.section { padding:88px 0; }
.section.soft { background:var(--bg-soft); }
.section.dark { background:var(--ink); color:#fff; }
.section-head { max-width:640px; margin:0 0 42px; }
.section.center .section-head { margin-left:auto; margin-right:auto; text-align:center; }
.section-title { font-size:clamp(26px,3.4vw,40px); margin:0 0 12px; }
.section.dark .section-title { color:#fff; }
.section-sub { color:var(--muted); margin:0; font-size:17px; }
.section.dark .section-sub { color:#aab0bd; }

/* ---------- Category cards (con foto) ---------- */
.cat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:24px; }
.cat-card {
	position:relative; min-height:280px; border-radius:var(--radius); overflow:hidden; color:#fff;
	display:flex; flex-direction:column; justify-content:flex-end; padding:26px;
	box-shadow:var(--shadow); isolation:isolate;
}
.cat-card img {
	position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .6s ease;
}
.cat-card::after {
	content:""; position:absolute; inset:0; z-index:-1;
	background:linear-gradient(180deg,rgba(9,14,26,0) 30%,rgba(9,14,26,.85) 100%);
}
.cat-card:hover img { transform:scale(1.08); }
.cat-card h3 { margin:0 0 4px; font-size:23px; }
.cat-card p { margin:0; color:#dfe3ea; font-size:14px; }
.cat-card .cat-arrow { position:absolute; top:22px; right:22px; width:42px; height:42px; border-radius:50%;
	background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); display:grid; place-items:center; font-size:18px; transition:background .2s; }
.cat-card:hover .cat-arrow { background:var(--accent); border-color:var(--accent); }

/* ---------- Video showcase ---------- */
.video-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.video-card { background:var(--ink-soft); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.video-frame { position:relative; aspect-ratio:16/9; }
.video-frame iframe, .video-frame video { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-frame video { object-fit:cover; background:#000; }
.video-card .video-meta { padding:16px 20px; }
.video-card .video-meta h4 { margin:0 0 4px; font-size:16px; color:#fff; }
.video-card .video-meta span { font-size:13px; color:#9aa1af; }

/* ---------- Feature strip / trust ---------- */
.feature-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:26px; }
.feature { padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; transition:transform .2s, box-shadow .2s; }
.feature:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.feature .ico { font-size:30px; margin-bottom:12px; }
.feature h4 { margin:0 0 6px; font-size:18px; }
.feature p { margin:0; color:var(--muted); font-size:14px; }

/* ---------- CTA band ---------- */
.cta-band { position:relative; border-radius:calc(var(--radius) + 6px); overflow:hidden; padding:64px 40px; text-align:center; color:#fff; }
.cta-band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.cta-band::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(120deg,rgba(225,29,42,.9),rgba(9,14,26,.85)); }
.cta-band h2 { font-size:clamp(26px,3.4vw,38px); margin:0 0 14px; color:#fff; }
.cta-band p { margin:0 0 26px; color:#f1e5e6; font-size:17px; }

/* ---------- Single veicolo ---------- */
.veicolo-single { padding:48px 0; }
.veicolo-layout { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:start; }
.veicolo-gallery img { width:100%; border-radius:var(--radius); margin-bottom:12px; box-shadow:var(--shadow); }
.veicolo-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.veicolo-thumbs img { border-radius:10px; cursor:pointer; aspect-ratio:1; object-fit:cover; }
.veicolo-title { font-size:clamp(26px,3.4vw,36px); margin:0 0 8px; }
.veicolo-prices { display:flex; gap:16px; flex-wrap:wrap; margin:16px 0 24px; }
.price-box { border:1px solid var(--line); border-radius:14px; padding:16px 20px; background:var(--bg-soft); }
.price-box .lbl { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:4px; }
.price-box .val { font-family:var(--font-head); font-size:26px; font-weight:700; }
.price-box.rent .val { color:var(--accent); }
/* Prezzo scontato (offerta attiva) nella scheda veicolo */
.price-box.promo { border-color:var(--accent); background:#fff5f5; }
.price-box.promo .lbl { color:var(--accent); }
.price-box.promo .val { color:var(--accent); }
.price-box.promo .price-was { color:var(--muted); font-family:var(--font-body); font-weight:400; font-size:16px; text-decoration:line-through; margin-right:8px; }
.price-box.promo .price-scad { display:block; margin-top:6px; font-family:var(--font-body); font-weight:600; font-size:12px; color:var(--muted); text-transform:none; letter-spacing:0; }
.price-box.promo .price-permuta { display:block; margin-top:8px; padding:8px 10px; background:var(--accent); color:#fff; border-radius:6px; font-family:var(--font-body); font-weight:600; font-size:14px; text-transform:none; letter-spacing:0; }
.price-box.promo .price-permuta small { font-weight:400; opacity:.9; }
/* Nota permuta nella card promo (home, sfondo scuro) */
.conc-promo .promo-permuta { display:block; margin-top:10px; padding:7px 10px; background:var(--accent); color:#fff; border-radius:6px; font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.02em; font-size:13px; }
.conc-promo .promo-permuta strong { font-size:15px; }
.conc-promo .promo-permuta small { font-family:var(--font-body); font-weight:400; text-transform:none; letter-spacing:0; opacity:.9; }
.veicolo-desc { margin:26px 0; }
.badge { display:inline-block; background:#eef0f3; color:#374151; padding:5px 13px; border-radius:999px; font-size:13px; font-weight:600; margin:0 6px 6px 0; }
.badge.rent { background:#fdecec; color:var(--accent-dark); }

/* ---------- Footer ---------- */
.site-footer { background:var(--ink); color:#c3c8d2; padding:60px 0 30px; margin-top:0; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; }
.site-footer h4 { color:#fff; margin:0 0 14px; font-size:16px; }
.site-footer p { margin:0 0 8px; }
.site-footer a { color:#c3c8d2; }
.site-footer a:hover { color:#fff; }
.footer-brand { font-family:var(--font-head); font-size:22px; font-weight:800; color:#fff; margin-bottom:10px; }
/* Social (footer + scheda contatti) */
.conc-social, .footer-social { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.conc-social-link {
	display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
	border-radius:50%; border:1px solid var(--line); color:var(--ink); background:#fff;
	transition:transform .18s, background .18s, color .18s, border-color .18s;
}
.conc-social-link:hover { background:var(--accent); color:#fff; border-color:var(--accent); transform:translateY(-2px); }
.footer-social .conc-social-link { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#c3c8d2; }
.footer-social .conc-social-link:hover { background:var(--accent); color:#fff; border-color:var(--accent); }

.footer-menu { list-style:none; margin:0; padding:0; }
.footer-menu li { margin:0 0 8px; }
.footer-menu a { color:#c3c8d2; }
.footer-menu a:hover { color:#fff; }

/* Sottomenu del menu principale (voci con figli) */
.main-nav .sub-menu { list-style:none; margin:0; padding:0; }
@media (min-width:901px) {
	.main-nav li { position:relative; }
	.main-nav .sub-menu {
		position:absolute; top:100%; left:0; min-width:210px; display:none; z-index:70;
		background:#0b0f19; border:1px solid rgba(255,255,255,.1); border-radius:8px;
		padding:8px 0; box-shadow:0 18px 40px -18px rgba(0,0,0,.7);
	}
	.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { display:block; }
	.main-nav .sub-menu a { display:block; padding:9px 16px; width:auto; }
	.main-nav .sub-menu a::after { display:none; }
}
@media (max-width:900px) {
	.main-nav .sub-menu { padding-left:14px; }
	.main-nav .sub-menu a { font-size:15px; border-bottom:1px solid rgba(255,255,255,.06); }
}
.footer-brand span { color:var(--accent); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:36px; padding-top:20px; font-size:13px; color:#8b92a1; }

/* ---------- Reveal animation ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:none; }

/* ---------- Lightbox galleria veicolo ---------- */
.conc-lb-trigger { display:block; width:100%; padding:0; border:0; background:none; cursor:pointer; position:relative; }
.conc-lb-main { border-radius:var(--radius); overflow:hidden; }
.conc-lb-main img { border-radius:var(--radius); }
.conc-lb-zoom {
	position:absolute; right:12px; bottom:12px; width:40px; height:40px; border-radius:50%;
	background:rgba(11,15,25,.6); color:#fff; display:flex; align-items:center; justify-content:center;
	font-size:20px; opacity:0; transition:opacity .2s;
}
.conc-lb-main:hover .conc-lb-zoom { opacity:1; }
.veicolo-thumbs .conc-lb-trigger img { margin:0; }

.conc-lightbox { position:fixed; inset:0; z-index:9999; background:rgba(6,8,14,.94); display:none; }
.conc-lightbox.open { display:flex; align-items:center; justify-content:center; }
.conc-lightbox img { max-width:90vw; max-height:82vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.6); user-select:none; }
.conc-lb-btn {
	position:absolute; top:50%; transform:translateY(-50%); width:56px; height:56px; border:0; border-radius:50%;
	background:rgba(255,255,255,.12); color:#fff; font-size:30px; line-height:1; cursor:pointer;
	display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.conc-lb-btn:hover { background:var(--accent); }
.conc-lb-prev { left:24px; }
.conc-lb-next { right:24px; }
.conc-lb-close { position:absolute; top:20px; right:24px; width:48px; height:48px; border:0; border-radius:50%;
	background:rgba(255,255,255,.12); color:#fff; font-size:26px; cursor:pointer; transform:none; }
.conc-lb-close:hover { background:var(--accent); }
.conc-lb-counter { position:absolute; bottom:22px; left:50%; transform:translateX(-50%); color:#fff; font-size:14px; letter-spacing:.05em; background:rgba(0,0,0,.4); padding:6px 14px; border-radius:999px; }
@media (max-width:560px) {
	.conc-lb-btn { width:44px; height:44px; font-size:24px; }
	.conc-lb-prev { left:10px; } .conc-lb-next { right:10px; }
}

/* ---------- Home a blocchi (Gutenberg) ---------- */
/* Larghezza contenuto + full-bleed per .alignfull */
.block-home > * { max-width:var(--maxw); margin-left:auto; margin-right:auto; padding-left:22px; padding-right:22px; }
.block-home > .alignfull { max-width:none; padding-left:0; padding-right:0; }
.block-home > .alignwide { max-width:1360px; }

/* Gruppi-sezione a tutta larghezza: banda colorata + spazio, contenuto centrato */
.block-home .wp-block-group.section { padding:88px 0; }
.block-home .wp-block-group.section.soft { background:var(--bg-soft); }
.block-home .wp-block-group.section.dark { background:var(--ink); color:#fff; }
.block-home .wp-block-group.section.dark .section-title,
.block-home .wp-block-group.section.dark h2 { color:#fff; }
/* Centra i figli-blocco diretti (heading, columns, ecc.) alla larghezza container */
.block-home .wp-block-group.section > .wp-block-heading,
.block-home .wp-block-group.section > .wp-block-columns,
.block-home .wp-block-group.section > .wp-block-paragraph,
.block-home .wp-block-group.section > p {
	max-width:var(--maxw); margin-left:auto; margin-right:auto; padding-left:22px; padding-right:22px;
}
.block-home .wp-block-columns { gap:26px; }
.block-home .wp-block-column h4 { margin:0 0 6px; font-size:18px; }
.block-home .wp-block-column p { color:var(--muted); font-size:14px; }

/* Hero cover: testo grande + bottoni */
.block-home .hero-cover { color:#fff; align-items:center; text-align:left; }
/* Immagine di sfondo hero (blocco Cover): sempre a riempimento e centrata */
.block-home .hero-cover .wp-block-cover__image-background { object-fit:cover; object-position:center; width:100%; height:100%; }
.block-home .hero-cover .wp-block-cover__inner-container { max-width:var(--maxw); width:100%; margin:0 auto; padding:0 22px; }
.block-home .hero-cover h1 { font-size:clamp(34px,5.4vw,60px); margin:0 0 18px; max-width:15ch; color:#fff; }
.block-home .hero-cover p:not(.eyebrow) { font-size:clamp(16px,2vw,20px); color:#e6e8ee; max-width:56ch; }
.block-home .hero-cover .eyebrow { color:#fff; opacity:.85; }


.block-home .wp-block-button__link { background:var(--accent); border-radius:999px; padding:14px 26px; font-family:var(--font-head); font-weight:600; }
.block-home .wp-block-button.is-style-outline .wp-block-button__link { background:transparent; border:1px solid rgba(255,255,255,.5); color:#fff; }

/* CTA cover */
.block-home .cta-cover { padding:64px 22px; }
.block-home .cta-cover h2 { color:#fff; font-size:clamp(26px,3.4vw,38px); }
.block-home .cta-cover p { color:#f1e5e6; }

@media (max-width:900px) {
	.veicolo-layout { grid-template-columns:1fr; }
	.footer-grid { grid-template-columns:1fr 1fr; }
	.section { padding:60px 0; }
	.hero { min-height:74vh; }

	/* Menu mobile a scomparsa */
	.nav-toggle { display:block; }
	.main-nav {
		position:fixed; top:0; right:0; height:100dvh; width:min(82vw,320px);
		background:#0b0f19; padding:92px 26px 28px; z-index:60;
		transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
		box-shadow:-24px 0 48px rgba(0,0,0,.45); overflow-y:auto;
	}
	body.nav-open .main-nav { transform:translateX(0); }
	.main-nav ul { flex-direction:column; align-items:stretch; gap:4px; }
	.main-nav a { font-size:16px; padding:14px 2px; width:100%; border-bottom:1px solid rgba(255,255,255,.08); letter-spacing:.05em; }
	.main-nav a::after { display:none; }
	.nav-cta { clip-path:none; border-radius:4px; text-align:center; margin-top:16px; padding:14px 18px; }

	/* Hamburger -> X */
	body.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
	body.nav-open .nav-toggle span:nth-child(2) { opacity:0; }
	body.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
}
@media (max-width:560px) {
	.footer-grid { grid-template-columns:1fr; }
	.hero-stats { gap:24px; }
}

/* ===================== RESPONSIVE (completo) ===================== */
/* Anti-overflow orizzontale (clip-path/skew, immagini larghe) */
html, body { max-width:100%; overflow-x:hidden; }
img, iframe, video, table { max-width:100%; }

/* Tablet landscape */
@media (max-width:1024px) {
	.section { padding:70px 0; }
	.block-home .wp-block-group.section { padding:70px 0; }
	.hero-stats { gap:30px; }
}

/* Tablet / phone grande */
@media (max-width:768px) {
	.hero { min-height:70vh; }
	.hero .container { padding-top:40px; padding-bottom:40px; }
	.veicolo-thumbs { grid-template-columns:repeat(3,1fr); }
	.veicolo-prices { gap:12px; }
	.price-box { flex:1 1 calc(50% - 12px); }
	.section-head { margin-bottom:32px; }

	/* Blocco columns: forza lo stack se il core non lo fa */
	.block-home .wp-block-columns { flex-wrap:wrap; }
	.block-home .wp-block-column { flex-basis:calc(50% - 13px) !important; }
}

/* Phone */
@media (max-width:560px) {
	.section { padding:52px 0; }
	.block-home .wp-block-group.section { padding:52px 0; }
	.container { padding:0 18px; }

	.hero { min-height:auto; padding:40px 0; }
	.hero h1 { max-width:100%; }
	.hero p { max-width:100%; }

	/* Bottoni a piena larghezza, impilati */
	.hero-actions { flex-direction:column; align-items:stretch; }
	.hero-actions .btn { width:100%; justify-content:center; }
	.block-home .wp-block-buttons { flex-direction:column; }
	.block-home .wp-block-button { width:100%; }
	.block-home .wp-block-button__link { display:block; text-align:center; }

	/* Griglie a colonna singola */
	.cat-grid, .video-grid, .feature-row { grid-template-columns:1fr; }
	.block-home .wp-block-column { flex-basis:100% !important; }
	.veicolo-thumbs { grid-template-columns:repeat(4,1fr); }

	.price-box { flex:1 1 100%; }
	.hero-stats { width:100%; }
	.hero-stats .stat { flex:1 1 40%; }

	/* Scheda tecnica: label sopra valore su schermi stretti */
	.conc-specs-table th { width:48%; }
}

/* Phone piccolo */
@media (max-width:400px) {
	.site-brand { font-size:20px; }
	.hero h1 { font-size:30px; }
	.section-title { font-size:24px; }
	.main-nav { width:88vw; }
	.hero-stats .stat b { font-size:26px; }
}



/* --- Tipografia racing --- */
h1, h2, h3, h4, .section-title, .veicolo-title { font-family:var(--font-head); letter-spacing:.005em; }
.section-title, .veicolo-title, .cta-band h2, .hero h1 { text-transform:uppercase; font-weight:700; letter-spacing:.01em; }
.eyebrow { font-family:var(--font-head); font-weight:700; letter-spacing:.28em; font-size:13px; }
/* Barretta rossa prima dei titoli sezione */
.section-head .section-title { position:relative; }
.section-head .section-title::before {
	content:""; display:inline-block; width:34px; height:4px; background:var(--accent);
	margin-right:14px; vertical-align:middle; transform:skewX(-18deg); box-shadow:0 0 12px rgba(225,29,42,.6);
}
.section.center .section-head .section-title::before { display:none; }

/* --- Bottoni netti/racing (angolari, uppercase) --- */
.btn, .conc-btn {
	font-family:var(--font-head); text-transform:uppercase; letter-spacing:.06em; font-weight:700;
	border-radius:6px;
}
.btn-primary, .conc-btn-primary {
	background:var(--accent); color:#fff !important;
	clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
	box-shadow:0 10px 26px -12px var(--accent);
}
.btn-primary:hover, .conc-btn-primary:hover { background:var(--accent-dark); transform:translateY(-2px); }
.conc-filters button {
	font-family:var(--font-head); text-transform:uppercase; letter-spacing:.05em; font-weight:700;
	border-radius:6px; clip-path:polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}

/* --- Hero: stripe diagonale + titolo enorme condensato --- */
.hero h1 { font-size:clamp(38px,6.2vw,74px); line-height:.98; letter-spacing:.005em; }
.hero::before {
	content:""; position:absolute; z-index:1; top:0; bottom:0; left:0; width:8px;
	background:linear-gradient(180deg,var(--accent),var(--accent-hot)); box-shadow:0 0 26px rgba(225,29,42,.7);
}
.hero-stats .stat b { font-family:var(--font-head); font-weight:700; }
.hero-stats .stat { border-left:2px solid var(--accent); padding-left:14px; }

/* --- Card catalogo: taglio netto + accento rosso in hover --- */
.conc-card, .cat-card, .video-card, .feature { border-radius:12px; }
.conc-card { position:relative; border-color:#e6e8ec; transition:transform .2s, box-shadow .2s, border-color .2s; }
.conc-card::after {
	content:""; position:absolute; left:0; right:0; top:0; height:4px; background:var(--accent);
	transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.conc-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px -18px rgba(9,14,26,.4); border-color:transparent; }
.conc-card:hover::after { transform:scaleX(1); }
.conc-card-title a { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.01em; font-size:19px; }
.conc-price-sell { font-family:var(--font-head); font-weight:700; font-size:24px; }
.conc-price-rent { font-family:var(--font-head); font-weight:600; }
.conc-card-specs li { text-transform:uppercase; letter-spacing:.04em; font-size:12px; font-weight:600; }

/* --- Categorie foto: overlay + titolo racing --- */
.cat-card h3 { font-family:var(--font-head); text-transform:uppercase; font-weight:700; letter-spacing:.02em; }
.cat-card .cat-arrow { border-radius:4px; }


.feature { border-radius:12px; }
.feature .ico { color:var(--accent); }
.feature .ico svg { width:34px; height:34px; }
.feature h4 { font-family:var(--font-head); text-transform:uppercase; letter-spacing:.02em; font-weight:700; }


.conc-feat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.conc-feat { text-decoration:none; color:inherit; }
.conc-feat-media { aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:#eef0f3; box-shadow:var(--shadow); }
.conc-feat-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.conc-feat:hover .conc-feat-media img { transform:scale(1.05); }
.conc-feat-ey { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.16em; font-size:12px; color:var(--accent); margin:16px 0 4px; }
.conc-feat-title { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.01em; font-size:22px; line-height:1.1; margin:0 0 6px; }
.conc-feat-text { color:var(--muted); font-size:14px; margin:0; }
.section.dark .conc-feat-title { color:#fff; }
@media (max-width:1024px){ .conc-feat-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .conc-feat-grid { grid-template-columns:1fr; } }

/* --- Footer brand --- */
.footer-brand { font-family:var(--font-head); text-transform:uppercase; letter-spacing:.04em; }

/* =====================================================================
   NUOVE SEZIONI
   ===================================================================== */

/* --- Brand-wall (banda scura con marche) --- */
.conc-brands { background:var(--ink); padding:34px 0; overflow:hidden; }
.conc-brands .container { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 34px; }
.conc-brand-chip {
	font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.14em;
	color:#c3c8d2; font-size:18px; padding:8px 4px; border-bottom:2px solid transparent; transition:color .2s, border-color .2s;
	text-decoration:none; white-space:nowrap;
}
.conc-brand-chip:hover { color:#fff; border-color:var(--accent); }
.conc-brand-logo { display:inline-flex; align-items:center; padding:6px 12px; }
.conc-brand-logo img {
	max-height:44px; width:auto; max-width:130px; object-fit:contain; display:block;
	opacity:.92; transition:opacity .2s, transform .2s;
}
.conc-brand-logo:hover img { opacity:1; transform:scale(1.06); }
@media (max-width:560px){ .conc-brand-logo img { max-height:34px; max-width:100px; } }

/* Sezioni autonome a tutta larghezza (promo/evidenza/vendita generate da shortcode) */
.conc-fullband { width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); padding-left:0; padding-right:0; }

/* Ancora catalogo: dopo "Filtra" la vista resta qui (compensa header fisso) */
[id^="conc-catalogo"] { scroll-margin-top:90px; }

/* --- Promo cards (scure, prezzo grande) --- */
.conc-promo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; }
.conc-promo {
	position:relative; border-radius:14px; overflow:hidden; min-height:400px; display:flex; flex-direction:column;
	justify-content:flex-end; padding:22px; color:#fff; text-decoration:none;
	background:linear-gradient(160deg,#1a2230,#0a0d14);
	box-shadow:0 20px 44px -20px rgba(0,0,0,.6); isolation:isolate;
}
.conc-promo img { position:absolute; inset:0; width:100%; height:60%; object-fit:cover; z-index:-2; opacity:.92; }
.conc-promo::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(10,13,20,.15) 0%,rgba(10,13,20,.6) 55%,#0a0d14 100%); }
.conc-promo .promo-ey { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.18em; font-size:12px; color:#c3c8d2; }
.conc-promo .promo-price { font-family:var(--font-head); font-weight:700; font-size:38px; line-height:1; margin:4px 0 2px; }
.conc-promo .promo-price sup { color:var(--accent); font-size:20px; }
.conc-promo .promo-model { font-family:var(--font-head); font-weight:700; text-transform:uppercase; font-size:20px; letter-spacing:.01em; margin-top:8px; }
.conc-promo .promo-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.conc-promo .promo-badge { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:11px; padding:5px 10px; border:1px solid rgba(255,255,255,.3); border-radius:4px; }
.conc-promo .promo-badge.rent { border-color:var(--accent); color:#ff8a7a; }
.conc-promo:hover { transform:translateY(-4px); transition:transform .2s; }
.conc-promo .promo-was { color:#9aa1af; font-family:var(--font-body); font-weight:400; font-size:16px; margin-right:6px; }
.conc-promo .promo-tag {
	display:inline-block; margin-top:10px; align-self:flex-start;
	font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:12px;
	background:var(--accent); color:#fff; padding:5px 10px; border-radius:4px;
	clip-path:polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.conc-promo .promo-scad {
	display:block; margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.14);
	font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:12px; color:#c3c8d2;
}

/* --- Categorie a icone (line-art) --- */
.conc-icat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.conc-icat {
	display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;
	background:#fff; border:1px solid var(--line); border-radius:12px; padding:26px 18px;
	text-decoration:none; color:var(--ink); transition:transform .2s, box-shadow .2s, border-color .2s;
}
.conc-icat:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.conc-icat svg { width:60px; height:38px; color:var(--ink); transition:color .2s; }
.conc-icat:hover svg { color:var(--accent); }
.conc-icat span { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.03em; font-size:15px; }

/* --- Filtro a TAB (sopra il catalogo) --- */
.conc-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; border-bottom:1px solid var(--line); padding-bottom:2px; }
.conc-tab {
	font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:14px;
	padding:10px 16px; color:#6b7280; text-decoration:none; border-bottom:3px solid transparent; transition:color .2s, border-color .2s;
}
.conc-tab:hover { color:var(--ink); }
.conc-tab.is-active { color:var(--ink); border-color:var(--accent); }

@media (prefers-reduced-motion:reduce){
	.conc-card, .conc-promo, .conc-icat, .btn-primary { transition:none !important; }
}

/* ---------- Capitoli extra (griglia 3 card in riga) ---------- */
.conc-chap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch; }
.conc-chap-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.conc-chap-media { aspect-ratio:16/10; overflow:hidden; background:#eef0f3; }
.conc-chap-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.conc-chap-card:hover .conc-chap-media img { transform:scale(1.05); }
.conc-chap-body { padding:22px; }
.conc-chap-title { font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.01em; font-size:22px; line-height:1.1; margin:0 0 8px; }
.conc-chap-text { color:var(--muted); font-size:14px; margin:0; }
.conc-chap-text p { margin:0 0 8px; }
.conc-chap-text p:last-child { margin-bottom:0; }
.section.dark .conc-chap-title { color:#fff; }
@media (max-width:900px) { .conc-chap-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .conc-chap-grid { grid-template-columns:1fr; } }
