/* ============================================================================
   «Il foglio del banco prova» — skin chiara del frontend pubblico
   ----------------------------------------------------------------------------
   Il sito come la stampa di una prova al dinamometro: corpo bianco con carta
   millimetrata appena percepibile, inchiostro nero blu, un solo colore di marca
   (--color-primary-*), intestazioni come intestazioni di tabella, valori in
   cifre tabulari. Solo stile: nessun testo e nessuna composizione cambia.
   Testata e piede restano scuri (il logo e' disegnato per fondi scuri).

   Si carica DOPO i fogli storici e li sovrascrive; si attiva con MtTheme::light()
   (tenant abilitati oppure ?tema=chiaro). ?tema=scuro mostra la skin precedente.
   ========================================================================== */

/* ---------- 1. Token ---------- */
:root {
  --bp-paper: #ffffff;
  --bp-ink: #111114;
  --bp-ink-2: #343842;
  --bp-ink-3: #565d6b;
  --bp-line: rgba(17, 17, 20, .14);
  --bp-line-2: rgba(17, 17, 20, .30);
  --bp-grid: rgba(17, 17, 20, .040);
  --bp-grid-major: rgba(17, 17, 20, .070);
  --bp-red: var(--color-primary-500, #c7081b);
  --bp-red-d: var(--color-primary-600, #a50616);
  --bp-red-t: var(--color-primary-600, #a50616); /* rosso come testo su bianco (>= 4.5:1) */
  --bp-tint: rgba(var(--color-primary-500-rgb, 199, 8, 27), .06);
  --bp-r: 4px;
  --bp-r-lg: 8px;
  --bp-font: 'DM Sans', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ---------- 2. Carta millimetrata ---------- */
html body, html body[class] {
  background-color: var(--bp-paper) !important;
  background-image:
    linear-gradient(var(--bp-grid-major) 1px, transparent 1px),
    linear-gradient(90deg, var(--bp-grid-major) 1px, transparent 1px),
    linear-gradient(var(--bp-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bp-grid) 1px, transparent 1px) !important;
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px !important;
  color: var(--bp-ink);
  font-family: var(--bp-font);
}

/* ---------- 3. Il contenuto si inverte, testata e piede no ---------- */
:is(main, .site-main, #main-content, .ecu-main, .PriceslistContainer, .mainContainerBox, .product-detail-page) {
  --lux-void: #ffffff; --lux-abyss: #ffffff; --lux-deep: #ffffff; --lux-black: #ffffff;
  --lux-surface: #ffffff; --lux-elevated: #f7f7f8; --lux-card: #ffffff; --lux-hover: #f2f2f4;
  --lux-white: var(--bp-ink);
  --lux-text-primary: var(--bp-ink); --lux-text-secondary: var(--bp-ink-2);
  --lux-text-muted: var(--bp-ink-3); --lux-text-subtle: var(--bp-ink-3);
  --lux-border: var(--bp-line); --lux-border-hover: var(--bp-line-2);
  --lux-red: var(--bp-red-t); --lux-red-vivid: var(--bp-red); --lux-red-deep: var(--bp-red-d);
  --lux-red-glow: transparent; --lux-red-subtle: var(--bp-tint);
  --lux-shadow-subtle: 0 1px 2px rgba(17,17,20,.06);
  --lux-shadow-medium: 0 4px 14px rgba(17,17,20,.08);
  --lux-shadow-deep: 0 10px 30px rgba(17,17,20,.10);
  --lux-shadow-glow-red: none; --lux-shadow-glow-gold: none;
  color: var(--bp-ink);
}
/* le fasce con foto restano scure con testo bianco */
:is(.HeaderLarge, .headerSmall, .innerBanner, .HeaderVideo, .wp-cta.dark-theme) {
  --lux-white: #ffffff; --lux-text-primary: #ffffff; --lux-text-secondary: rgba(255,255,255,.88);
  --lux-text-muted: rgba(255,255,255,.76); --lux-text-subtle: rgba(255,255,255,.6);
  --lux-border: rgba(255,255,255,.18); color: #ffffff;
}

/* sezioni con fondo nero forzato dai fogli storici */
html body :is(.PriceslistContainer, .PrivacypolicyContainer, .mainContainerBox, .subSections, .brandsSection,
              .widget-premium, .widget-premium.dark-theme, .widget-premium.light-theme, .wp-container,
              .product-detail-page, .cars-section-fourteen, .ts-page, .ts-section) {
  background-color: transparent !important;
  background-image: none !important;
}

/* ---------- 4. Tipografia ---------- */
html body :is(main, #main-content, .ecu-main) :is(h1, h2, h3, h4, h5, h6) {
  color: var(--bp-ink) !important;
  -webkit-text-fill-color: var(--bp-ink) !important;
  background: none !important;
  text-shadow: none !important;
  filter: none !important;
  text-transform: none !important;
  letter-spacing: -0.015em !important;
  font-weight: 700 !important;
  font-family: var(--bp-font) !important;
}
html body :is(main, #main-content, .ecu-main) :is(p, li, td, th, label, dd, dt, small, figcaption) {
  color: var(--bp-ink-2);
  letter-spacing: 0;
}
html body :is(main, #main-content) a:not(.btn):not([class*="btn-"]):not(.wp-btn):not(.skip-link) {
  -webkit-text-fill-color: currentColor;
}
html body :is(main, #main-content, .ecu-main) strong,
html body :is(main, #main-content, .ecu-main) b {
  background: none !important;
  -webkit-text-fill-color: var(--bp-ink) !important;
  color: var(--bp-ink) !important;
  font-weight: 700 !important;
}
html body :is(main, #main-content, .ecu-main) :is(.text-muted, .text-secondary) { color: var(--bp-ink-3) !important; }
html body :is(main, #main-content, .ecu-main) :is(.text-dark, .text-black, .text-white) { color: var(--bp-ink) !important; }
/* cifre sempre a larghezza fissa: i valori non "ballano" */
html body :is(main, #main-content, .ecu-main) :is(.wp-price, .pd-current-price, .pd-original-price, .modprice, .ts-hero__stat-value,
  .ts-gauge__value, .ts-dynograph__value, .ts-bars__val, td, .price, [class*="price"], [class*="value"], [class*="stat"]) {
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1;
}

/* Intestazione di sezione = intestazione di tabella: filetto nero sopra, tacche da righello sotto */
html body :is(main, #main-content) :is(.wp-header h2, .widget-premium h2, .ContentWrapper > h3, .wp-contact-form h2,
    .blog-header h1, .related-posts__title, .ts-seo-content h2, .ecu-main .card h2) {
  position: relative;
  padding-bottom: 18px !important;
}
html body :is(main, #main-content) :is(.wp-header h2, .widget-premium h2, .ContentWrapper > h3, .blog-header h1,
    .related-posts__title, .ts-seo-content h2)::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 0; bottom: 0;
  width: 112px; height: 10px;
  background:
    repeating-linear-gradient(90deg, var(--bp-ink) 0 1px, transparent 1px 8px) bottom / 100% 6px no-repeat,
    linear-gradient(var(--bp-red), var(--bp-red)) bottom / 100% 2px no-repeat;
  opacity: 1 !important;
}
html body :is(main, #main-content) :is(.wp-header, .ContentWrapper, .blog-header) { text-align: center; }
html body :is(main, #main-content) :is(.wp-header h2, .ContentWrapper > h3, .blog-header h1)::after { left: 50%; transform: translateX(-50%); }

/* etichette brevi (kicker): maiuscoletto da asse del grafico */
html body :is(main, #main-content) :is(.widget-premium .wp-badge, .wp-header .wp-badge, .brandsSection h6,
    .wp-step-subtitle, .blog-post__category) {
  background: none !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; border-radius: 0 !important;
  color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important;
  font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .12em !important;
  text-transform: uppercase !important; margin-bottom: 10px !important;
}

/* ---------- 5. Superfici: fogli bianchi con filetto, angoli netti ---------- */
html body :is(main, #main-content) :is(.card, .wp-card, .wp-contact-form, .blog-card, .related-post-card, .product-card,
    .wp-tuning-card, .ts-card, .modcard, .pd-related-product, .pd-tabs-section, .pd-related-section, .search-bar-wrapper,
    .mappingleftsec, .wp-step-item, .alert, .blog-empty) {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--bp-line) !important;
  border-radius: var(--bp-r-lg) !important;
  box-shadow: none !important;
  color: var(--bp-ink) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html body :is(main, #main-content) :is(.blog-card, .wp-tuning-card, .ts-card, .product-card, .modcard, .related-post-card,
    .pd-related-product):hover {
  border-color: var(--bp-ink) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html body :is(main, #main-content) :is(.blog-card, .wp-tuning-card, .ts-card, .product-card, .modcard):hover { transform: none !important; }
}
html body :is(main, #main-content) :is(.card-header, .card-footer) {
  background: transparent !important; background-image: none !important;
  border-bottom: 2px solid var(--bp-ink) !important; border-radius: 0 !important;
  color: var(--bp-ink) !important;
}
html body :is(main, #main-content) :is(.card-body) { background: transparent !important; color: var(--bp-ink) !important; }

/* ---------- 6. Pulsanti ---------- */
html body :is(main, #main-content, .ecu-main) :is(.btn-default, a.btn-default, .wp-btn-primary, .btn-primary, .btn-danger,
    .btn-search, .pd-add-to-cart-btn, .cta .t, .modbuy, .add-to-cart-btn, button[type="submit"].btn) {
  background: var(--bp-red) !important; background-image: none !important;
  border: 2px solid var(--bp-red) !important; color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border-radius: var(--bp-r) !important; box-shadow: none !important;
  font-weight: 700 !important; letter-spacing: .02em !important; text-transform: none !important;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}
html body :is(main, #main-content, .ecu-main) :is(.btn-default, a.btn-default, .wp-btn-primary, .btn-primary, .btn-danger,
    .btn-search, .pd-add-to-cart-btn, .cta .t, .modbuy, .add-to-cart-btn):hover {
  background: var(--bp-ink) !important; border-color: var(--bp-ink) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none !important;
}
html body :is(main, #main-content, .ecu-main) :is(.btn-default.btn-highlighted, .btn-outline-danger, .btn-outline-secondary,
    .cta .b, .pd-related-cart-btn, .btn-secondary) {
  background: transparent !important; background-image: none !important;
  border: 2px solid var(--bp-ink) !important; color: var(--bp-ink) !important;
  -webkit-text-fill-color: var(--bp-ink) !important; border-radius: var(--bp-r) !important; box-shadow: none !important;
  font-weight: 700 !important;
}
html body :is(main, #main-content, .ecu-main) :is(.btn-default.btn-highlighted, .btn-outline-danger, .btn-outline-secondary,
    .cta .b, .pd-related-cart-btn):hover {
  background: var(--bp-ink) !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
}
/* sulla foto il secondario resta bianco */
html body :is(.HeaderLarge, .headerSmall) :is(.btn-default.btn-highlighted) {
  border-color: #ffffff !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
}
html body :is(.HeaderLarge, .headerSmall) :is(.btn-default.btn-highlighted):hover {
  background: #ffffff !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
}
html body :is(main, #main-content, .ecu-main) :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--bp-red) !important; outline-offset: 3px !important;
}

/* ---------- 7. Campi ---------- */
html body :is(main, #main-content) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea, .form-control, .form-select) {
  background: #ffffff !important; color: var(--bp-ink) !important;
  border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
  box-shadow: none !important; font-style: normal !important;
}
html body :is(main, #main-content) :is(input, textarea)::placeholder { color: var(--bp-ink-3) !important; opacity: 1 !important; font-style: normal !important; }
html body :is(main, #main-content) :is(input, select, textarea, .form-control, .form-select):focus {
  border-color: var(--bp-ink) !important; box-shadow: 0 0 0 3px rgba(var(--color-primary-500-rgb, 199, 8, 27), .25) !important; outline: none !important;
}
html body :is(main, #main-content) label, html body :is(main, #main-content) .form-check-label {
  color: var(--bp-ink-2) !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 500;
}
html body :is(main, #main-content) .form-check-input { background-color: #fff; border: 1px solid var(--bp-line-2); }
html body :is(main, #main-content) .form-check-input:checked { background-color: var(--bp-red) !important; border-color: var(--bp-red) !important; }

/* ---------- 8. Tabelle ---------- */
html body :is(main, #main-content, .ecu-main) table { border-collapse: collapse; width: 100%; }
html body :is(main, #main-content, .ecu-main) :is(th) {
  background: transparent !important; color: var(--bp-ink) !important;
  border-bottom: 2px solid var(--bp-ink) !important; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem;
}
html body :is(main, #main-content, .ecu-main) :is(td) { border-bottom: 1px solid var(--bp-line) !important; background: transparent !important; }

/* ---------- 9. Badge ---------- */
html body :is(main, #main-content, .ecu-main) :is(.badge, .discount-badge) {
  border-radius: var(--bp-r) !important; box-shadow: none !important; font-weight: 700 !important;
}
html body :is(main, #main-content) .badge.bg-success, html body .ecu-main .badge {
  background: #e9f6ee !important; color: #11602f !important; border: 1px solid #a7d8b9 !important;
}
html body :is(main, #main-content) :is(.badge.bg-danger) { background: #fff !important; color: var(--bp-red-t) !important; border: 1px solid var(--bp-red) !important; }
html body :is(main, #main-content) .discount-badge { background: var(--bp-red) !important; color: #fff !important; }

/* ---------- 10. Home ---------- */
html body.page-slug-home .HeaderLarge .BnrMainTitle,
html body.page-slug-home .HeaderLarge h6.SubTitleHeader {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
  font-size: clamp(2.5rem, 6.4vw, 4.5rem) !important; line-height: 1.02 !important; letter-spacing: -0.03em !important;
  text-shadow: 0 2px 28px rgba(0,0,0,.5) !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
html body.page-slug-home .HeaderLarge .bnrSubTitle {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; font-weight: 500 !important;
  font-size: clamp(1.0625rem, 2vw, 1.375rem) !important; text-transform: none !important; letter-spacing: 0 !important;
}
/* bordo inferiore dell'hero: asse del grafico con tacche e picco di curva */
html body :is(.HeaderLarge, .headerSmall, .innerBanner) { position: relative; }
html body :is(.HeaderLarge, .headerSmall, .innerBanner)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 44px; pointer-events: none;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.85) 0 1px, transparent 1px 24px) bottom / 100% 10px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 44' preserveAspectRatio='none'%3E%3Cpath d='M0 44 L0 40 C180 38 320 30 480 22 C640 12 760 6 900 10 C1040 14 1120 26 1200 36 L1200 44 Z' fill='%23ffffff'/%3E%3Cpath d='M0 40 C180 38 320 30 480 22 C640 12 760 6 900 10 C1040 14 1120 26 1200 36' fill='none' stroke='%23c7081b' stroke-width='3'/%3E%3C/svg%3E") bottom / 100% 44px no-repeat;
}
html body.page-slug-home .wp-steps-grid { position: relative; }
html body.page-slug-home .wp-step-number {
  background: var(--bp-ink) !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
  border: 0 !important; box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--bp-ink) !important; border-radius: 50% !important;
  font-variant-numeric: tabular-nums;
}
html body.page-slug-home .wp-step-item { border: 0 !important; background: transparent !important; box-shadow: none !important; }
html body.page-slug-home .wp-step-item:hover { transform: none !important; box-shadow: none !important; }
html body.page-slug-home .wp-step-subtitle { color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important; }
html body.page-slug-home .wp-price, html body.page-slug-home .wp-price * {
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; text-shadow: none !important; filter: none !important;
}
html body.page-slug-home .wp-price > span { font-size: 1.5rem !important; font-weight: 800 !important; }
html body.page-slug-home .wp-tuning-card-icon {
  background: var(--bp-tint) !important; border: 1px solid var(--bp-red) !important; border-radius: var(--bp-r) !important; box-shadow: none !important;
}
html body.page-slug-home .wp-tuning-card-icon * { color: var(--bp-red) !important; -webkit-text-fill-color: var(--bp-red) !important; }
html body.page-slug-home .wp-cta { background: var(--bp-ink) !important; }
html body.page-slug-home .wp-cta :is(h2, h3, p) { color: #fff !important; -webkit-text-fill-color: #fff !important; }
/* tile dei loghi marca */
html body.page-slug-home :is(.TuningSpacesLOGOS_Widget, .brandsSection) :is(a, .swiper-slide > div, .item) {
  background: #fff !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r-lg) !important; box-shadow: none !important;
}

/* ---------- 11. Contatti ---------- */
html body.page-slug-contact .wp-contact-form { padding: clamp(24px, 4vw, 44px) !important; }
html body.page-slug-contact .wp-contact-form label { font-size: .8125rem !important; text-transform: uppercase !important; letter-spacing: .08em !important; color: var(--bp-ink-3) !important; }
html body.page-slug-contact .checkboxcontainer {
  background: #ffffff !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
}
html body.page-slug-contact .checkboxcontainer * { color: var(--bp-ink) !important; }
html body.page-slug-contact .checkboxcontainer a { color: var(--bp-red-t) !important; }
html body.page-slug-contact .BnrMainTitle, html body :is(.headerSmall) .SubTitleHeader {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; background: none !important; border: 0 !important; box-shadow: none !important;
  font-size: clamp(2rem, 5vw, 3.25rem) !important; letter-spacing: -0.025em !important; text-transform: none !important;
}

/* ---------- 12. Blog ---------- */
html body .blog-card__image { background: #e9eaee; }
html body .blog-card__category, html body .blog-category-badge {
  background: #ffffff !important; color: var(--bp-ink) !important; border: 1px solid var(--bp-ink) !important;
  border-radius: var(--bp-r) !important; font-size: .6875rem !important; letter-spacing: .1em !important; text-transform: uppercase !important;
}
html body .blog-card__title, html body .blog-card__title a { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body :is(.blog-card__meta, .blog-card__excerpt, .blog-card__reading-time, .blog-post__meta, .blog-header p) { color: var(--bp-ink-3) !important; }
html body .blog-card__read-more { color: var(--bp-red-t) !important; font-weight: 700 !important; }
html body .blog-card__footer { border-top: 1px solid var(--bp-line) !important; }
html body .blog-pagination .page-link {
  background: #fff !important; color: var(--bp-ink) !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
}
html body .blog-pagination .page-item.active .page-link { background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; color: #fff !important; }
html body .blog-post__content { color: var(--bp-ink-2) !important; }
html body .blog-post__content a { color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; text-decoration: underline; }
html body .blog-post__content blockquote {
  background: var(--bp-tint) !important; border-left: 0 !important; color: var(--bp-ink) !important; font-style: normal !important;
}
html body :is(.blog-post__tags, .blog-post__tag) { background: #fff !important; border-color: var(--bp-line) !important; color: var(--bp-ink-2) !important; }
html body .blog-post__share { border-color: var(--bp-line) !important; }
html body .related-post-card__content * { background: none !important; border: 0 !important; box-shadow: none !important; }
html body .related-post-card__title a { color: var(--bp-ink) !important; }

/* ---------- 13. Pagine legali ---------- */
html body .innerBanner.privacyimg .innerbannerContent h1,
html body .innerBanner.privacyimg .innerbannerContent h2 {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; background: none !important; border: 0 !important; box-shadow: none !important;
  font-size: clamp(2rem, 4.6vw, 3.25rem) !important; letter-spacing: -0.025em !important; padding: 0 !important;
}
html body .PrivacypolicyContainer .mappingleftsec { padding: clamp(24px, 4vw, 56px) !important; }
html body .PrivacypolicyContainer .mappingCont { max-width: 72ch !important; margin-left: auto !important; margin-right: auto !important; }
html body .PrivacypolicyContainer .mappingCont :is(p, li) { color: var(--bp-ink-2) !important; font-size: 1rem !important; line-height: 1.75 !important; }
html body .PrivacypolicyContainer .mappingCont :is(h1, h2, h3, h4) {
  display: block !important; border: 0 !important; padding: 0 !important; margin: 2.25rem 0 .75rem !important;
}
html body .PrivacypolicyContainer .mappingCont h2 { border-left: 0 !important; padding-left: 14px !important; font-size: 1.5rem !important; }
html body .PrivacypolicyContainer .mappingCont a { color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; text-decoration: underline; }

/* ---------- 14. Catalogo ECU ---------- */
html body:has(> main.ecu-main) { background-color: var(--bp-paper) !important; color: var(--bp-ink) !important; }
html body .ecu-main { --rosso: var(--bp-red); --bg: var(--bp-paper); --bd: var(--bp-line); color: var(--bp-ink); }
html body .ecu-main .hero { background: transparent !important; border-bottom: 2px solid var(--bp-ink) !important; padding: 44px 0 28px !important; }
html body .ecu-main .hero h1 { color: var(--bp-ink) !important; font-size: clamp(1.875rem, 4vw, 2.75rem) !important; }
html body .ecu-main .hero p { color: var(--bp-ink-3) !important; }
html body .ecu-main .grid a.it { background: #fff !important; border: 1px solid var(--bp-line) !important; color: var(--bp-ink-2) !important; border-radius: var(--bp-r-lg) !important; }
html body .ecu-main .grid a.it b { color: var(--bp-ink) !important; }
html body .ecu-main .card h2 { border-left: 0 !important; }
html body .ecu-main .bc, html body .ecu-main .bc a { color: var(--bp-ink-3) !important; }
html body .ecu-main a { color: var(--bp-red-t); }
html body .ecu-main .cta .t { color: #fff !important; }
html body .ecu-main .cta .b { color: var(--bp-ink) !important; }
html body .ecu-main .faq details { background: #fff !important; border: 1px solid var(--bp-line) !important; }
html body .ecu-main .faq summary { color: var(--bp-ink) !important; }
html body .ecu-main .faq .ans { color: var(--bp-ink-2) !important; }
html body .ecu-main .modcard img { background: #fff !important; }
html body .ecu-main .card.cta-top { background: #fff !important; border: 2px solid var(--bp-ink) !important; }
html body .ecu-main .ecu-filter input { background: #fff !important; color: var(--bp-ink) !important; border: 1px solid var(--bp-line-2) !important; }
html body footer.site { background: #111114 !important; }

/* ---------- 15. Dizionario DTC (documento autonomo con variabili proprie) ---------- */
html:has(header.site) {
  --bg: #ffffff; --fg: var(--bp-ink); --muted: var(--bp-ink-3); --surface: #ffffff; --card: #ffffff; --line: var(--bp-line);
  --subtle: var(--bp-ink-3); --mt-primary: var(--bp-red); --mt-primary-600: var(--bp-red-d); --mt-primary-400: var(--bp-red-t);
  color-scheme: light;
}
html:has(header.site) body { background-color: #ffffff !important; color: var(--bp-ink); }
html:has(header.site) header.site { background: #111114 !important; border-bottom: 0; }
html:has(header.site) header.site nav a { color: #ffffff; }
html:has(header.site) :is(h1, h2) { color: var(--bp-ink) !important; }
html:has(header.site) h1 .code { color: var(--bp-red-t) !important; }
html:has(header.site) p { color: var(--bp-ink-2); }
html:has(header.site) :is(.badge, .card, details, ul.rel li a, .cta, form.search input) { background: #fff; color: var(--bp-ink-2); border-color: var(--bp-line); }
html:has(header.site) .badge b, html:has(header.site) ul.rel li a b, html:has(header.site) details summary, html:has(header.site) .cta strong { color: var(--bp-ink) !important; }
html:has(header.site) table.facts td { color: var(--bp-ink); border-bottom-color: var(--bp-line); }
html:has(header.site) table.facts td:first-child { color: var(--bp-ink-3); }
html:has(header.site) a { color: var(--bp-red-t); }
html:has(header.site) .cta a, html:has(header.site) form.search button { background: var(--bp-red); color: #fff; }
html:has(header.site) footer.site { background: #111114; color: rgba(255,255,255,.7); }
html:has(header.site) footer.site a { color: rgba(255,255,255,.85); }

/* ---------- 16. Negozio, scheda prodotto, carrello ---------- */
html body :is(#productsGrid, #shopFlow, #productdetail_mainWrap) { color: var(--bp-ink); }
html body .product-card .image-container { background: #fff !important; border-bottom: 1px solid var(--bp-line); border-radius: var(--bp-r-lg) var(--bp-r-lg) 0 0 !important; }
html body .product-card .card-title a { color: var(--bp-ink) !important; }
html body .product-card .fw-bold, html body .pd-current-price { color: var(--bp-ink) !important; }
html body .product-card .text-success { color: #11602f !important; }
html body .pagination .page-link { background: #fff !important; color: var(--bp-ink) !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important; }
html body .pagination .page-item.active .page-link { background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; color: #fff !important; }
html body .pd-main-image-container { background: #fff !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r-lg) !important; }
html body .pd-thumbnail { background: #fff !important; border: 2px solid var(--bp-line) !important; border-radius: var(--bp-r) !important; }
html body .pd-thumbnail.active { border-color: var(--bp-red) !important; }
html body .pd-stock-status, html body .pd-stock-status * { background: #e9f6ee !important; color: #11602f !important; border-color: #a7d8b9 !important; }
html body .pd-tabs-nav { border-bottom: 2px solid var(--bp-ink) !important; }
html body .pd-tab-btn { color: var(--bp-ink-3) !important; background: none !important; }
html body .pd-tab-btn.active { color: var(--bp-ink) !important; box-shadow: inset 0 -3px 0 var(--bp-red) !important; }
html body .pd-tab-pane *, html body .pd-product-description * { color: var(--bp-ink-2); }
html body .pd-tab-pane :is(h2, h3, strong), html body .pd-product-description :is(h2, h3, strong) { color: var(--bp-ink) !important; }
html body .pd-spec-table tr:nth-child(even) { background: rgba(17,17,20,.025) !important; }
html body .breadcrumb a { color: var(--bp-red-t) !important; }
html body .breadcrumb li, html body .breadcrumb span { color: var(--bp-ink-3) !important; }
html body .alert-warning { background: #fff8e6 !important; border: 1px solid #f0c36d !important; color: #6b4a00 !important; }

/* ---------- 17. Database veicoli ---------- */
html body main.ts-page { color: var(--bp-ink); }
html body main.ts-page .ts-hero { background: transparent !important; border-bottom: 2px solid var(--bp-ink) !important; }
html body main.ts-page .ts-hero__overlay { display: none !important; }
html body main.ts-page .ts-hero__title { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body main.ts-page .ts-hero__subtitle, html body main.ts-page .ts-breadcrumb a, html body main.ts-page .ts-breadcrumb__current { color: var(--bp-ink-3) !important; }
html body main.ts-page .ts-card__image { background: #fff !important; border: 1px solid var(--bp-line) !important; }
html body main.ts-page .ts-card__title { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body main.ts-page .ts-card__link { color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; font-weight: 700 !important; }
html body main.ts-page :is(.ts-hero__stat, .ts-specs, .ts-gauge, .ts-bars, .ts-dynograph, .ts-transfer, .ts-startblock, .ts-vehicle) {
  background: #fff !important; background-image: none !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r-lg) !important; box-shadow: none !important;
}
html body main.ts-page :is(.ts-hero__stat *, .ts-specs *, .ts-gauge *, .ts-bars *, .ts-transfer *, .ts-vehicle *) { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body main.ts-page .ts-seo-content p, html body main.ts-page .ts-seo-content li { color: var(--bp-ink-2) !important; max-width: 75ch; }

/* ---------- 18. Cassa ---------- */
html body :is(main, #main-content) :is(.checkout-section, .payment-method, .order-summary, .summary-card, .shipping-card, .billing-card, .cart-summary) {
  background: #fff !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r-lg) !important; box-shadow: none !important; color: var(--bp-ink) !important;
}

/* ---------- 19. Seconda passata: eccezioni sulla foto e specificita' ---------- */
/* titoli sulle fasce con foto: bianchi (battono la regola generale su #main-content) */
html body #main-content :is(.HeaderLarge, .headerSmall, .innerBanner, .wp-cta.dark-theme) :is(h1, h2, h3, h4, h5, h6, p, span),
html body main :is(.HeaderLarge, .headerSmall, .innerBanner) :is(h1, h2, h3, h4, h5, h6, p, span) {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
}
html body #main-content :is(.HeaderLarge, .headerSmall, .innerBanner) :is(h1, h2, h3, h6)::after { display: none !important; }
/* velo scuro per la leggibilita' del testo sulla foto */
html body :is(.HeaderLarge, .headerSmall, .innerBanner) { isolation: isolate; }
html body :is(section.HeaderLarge.bgImg, section.headerSmall.bgImg, section.headerFull.bgImg, .innerBanner)::before {
  content: "" !important; display: block !important; position: absolute !important; inset: 0 !important; z-index: 0 !important;
  background: linear-gradient(180deg, rgba(17,17,20,.55) 0%, rgba(17,17,20,.55) 55%, rgba(17,17,20,.78) 100%) !important;
  pointer-events: none;
}
html body :is(.HeaderLarge, .headerSmall, .innerBanner) > .container, html body :is(.HeaderLarge, .headerSmall, .innerBanner) .innerbannerContent { position: relative; z-index: 2; }
/* bordo inferiore: asse con tacche e curva di coppia (vince sul gradiente storico) */
html body :is(section.HeaderLarge.bgImg, section.headerSmall.bgImg, section.headerFull.bgImg, .innerBanner)::after {
  content: "" !important; display: block !important; position: absolute !important; z-index: 1 !important;
  inset: auto 0 -1px 0 !important;
  left: 0 !important; right: 0 !important; bottom: -1px !important; width: 100% !important; height: 46px !important;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.7) 0 1px, transparent 1px 24px) 0 0 / 100% 9px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 46 L0 42 C180 40 320 32 480 24 C640 14 760 8 900 12 C1040 16 1120 28 1200 38 L1200 46 Z' fill='%23ffffff'/%3E%3Cpath d='M0 42 C180 40 320 32 480 24 C640 14 760 8 900 12 C1040 16 1120 28 1200 38' fill='none' stroke='%23c7081b' stroke-width='3'/%3E%3C/svg%3E") 0 100% / 100% 46px no-repeat !important;
  opacity: 1 !important; pointer-events: none;
}
/* pulsante secondario dell'hero: contorno bianco (specificita' sopra a a.btn-default) */
html body #main-content a.btn-default.btn-highlighted, html body main a.btn-default.btn-highlighted {
  background: transparent !important; border: 2px solid var(--bp-ink) !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
}
html body #main-content :is(.HeaderLarge, .headerSmall) a.btn-default.btn-highlighted {
  border-color: #ffffff !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
}
html body #main-content :is(.HeaderLarge, .headerSmall) a.btn-default.btn-highlighted:hover {
  background: #ffffff !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
}
/* passi: nessun alone, nessun connettore */
html body .wp-step-number { filter: none !important; }
html body .wp-step-item::before, html body .wp-step-item::after, html body .wp-steps-grid::before, html body .wp-steps-grid::after { display: none !important; content: none !important; }
html body .wp-step-item { text-align: center; padding: 28px 20px !important; }

/* etichette: la barretta rossa storica sotto il kicker non serve, c'e' il righello sotto i titoli */
html body :is(.wp-header, .wp-text-content)::before, html body :is(.wp-header, .wp-text-content)::after,
html body .bnrSubTitle::after, html body .smallHeaderTitle::after { display: none !important; content: none !important; }
html body :is(.HeaderLarge, .headerSmall) .BnrMainTitle, html body :is(.HeaderLarge, .headerSmall) .SubTitleHeader {
  background: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; box-shadow: none !important;
}

/* ---------- 20. Terza passata ---------- */
/* spunta privacy del modulo contatti */
html body .cb-box { background: #ffffff !important; border: 2px solid var(--bp-ink) !important; border-radius: 3px !important; }
html body .cb-check { stroke: #ffffff !important; }
html body input#agreement:checked ~ .cb-box, html body label:has(input#agreement:checked) .cb-box { background: var(--bp-red) !important; border-color: var(--bp-red) !important; }
/* ricerca nell'elenco ECU */
html body .ecu-main .ecu-filter input { width: 100%; max-width: 420px; box-sizing: border-box; padding: 12px 14px; font: inherit; border-radius: var(--bp-r); }
/* database veicoli: griglia compatta, il logo resta solo sulle marche */
html body main.ts-page .ts-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important; gap: 14px !important; }
html body main.ts-page .ts-card { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 16px; padding: 14px 16px !important; min-height: 84px; text-decoration: none !important; }
html body main.ts-page .ts-card__image { flex: 0 0 64px; width: 64px !important; height: 64px !important; min-height: 0 !important; padding: 6px; border-radius: var(--bp-r) !important; overflow: hidden; display: flex; align-items: center; justify-content: center; }
html body main.ts-page .ts-card__image img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
html body main.ts-page .ts-card:not(.ts-card--brand) .ts-card__image { display: none !important; }
html body main.ts-page .ts-card__content { background: none !important; border: 0 !important; padding: 0 !important; flex: 1; min-width: 0; }
html body main.ts-page .ts-card__title { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 4px !important; font-size: 1.0625rem !important; text-transform: none !important; letter-spacing: 0 !important; }
html body main.ts-page .ts-card__link { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; font-size: .875rem !important; }
html body main.ts-page .ts-card__specs { color: var(--bp-ink-3) !important; font-size: .875rem !important; }
/* pannelli della scheda motore: il titolo si legge sul bianco */
html body main.ts-page :is(.ts-section, .ts-container) { color: var(--bp-ink); }
html body main.ts-page .ts-hero { padding-top: 28px !important; }
@media (max-width: 640px) { html body main.ts-page .ts-grid { grid-template-columns: 1fr !important; } }
html body :is(.HeaderLarge, .headerSmall) :is(.BnrMainTitle, .SubTitleHeader)::before { display: none !important; content: none !important; }


/* ======================================================================
   REVISIONE C — negozio, scheda, carrello, cassa, piede
   ====================================================================== */
/* ============================================================================
   C_patch.css — correzioni negozio / scheda prodotto / carrello / cassa
   Da ACCODARE a public/web/assets/css/theme-bancoprova.css (sezioni 21-26).
   Solo CSS, nessun testo o markup toccato. Prefisso `html body` e !important
   dove i fogli storici (shop.css, luxury-global.css, stili inline) lo impongono.
   Testato su copia locale con <base href> (shop, scheda, carrello pieno, cassa).
   ========================================================================== */

/* ---------- 21. Residui trasversali ---------- */
:root { --bp-plate: #f4f4f6; --bp-success: #11602f; }
/* Il layout non chiude <main>: il piede e' DENTRO il main e il tema gli inverte
   titoli e paragrafi in inchiostro scuro su #0a0a0a (contrasto 1.05:1 / 1.69:1). */
html body :is(main, #main-content, .ecu-main) footer.tf-footer :is(.tf-footer__nav-title, .tf-footer__contact-title) {
  color: rgba(255,255,255,.66) !important; -webkit-text-fill-color: rgba(255,255,255,.66) !important;
}
html body :is(main, #main-content, .ecu-main) footer.tf-footer :is(.tf-footer__app-titolo, .tf-footer__app-nota, .tf-footer__address, .tf-footer__copyright, .tf-footer__copyright a) {
  color: rgba(255,255,255,.66) !important; -webkit-text-fill-color: rgba(255,255,255,.66) !important;
}
/* il contenuto non deve attaccarsi al piede (carrello, cassa, paginazione) */
html body footer.tf-footer { margin-top: clamp(56px, 7vw, 112px); }
/* forme controllo: segno di spunta e dimensione uniformi (il tema lasciava un quadrato
   rosso con interno blu e 14 px di bersaglio) */
html body :is(main, #main-content) :is(.form-check-input, .checkbox-input, .item-checkbox) {
  appearance: none; -webkit-appearance: none;
  width: 22px !important; height: 22px !important; min-width: 22px; margin: 0 !important; flex: 0 0 22px;
  background: #fff !important; border: 2px solid var(--bp-ink) !important; border-radius: 3px !important;
  transform: none !important; cursor: pointer; vertical-align: middle;
  background-position: center !important; background-repeat: no-repeat !important; background-size: 100% 100% !important;
}
html body :is(main, #main-content) :is(.form-check-input, .checkbox-input, .item-checkbox):checked {
  background-color: var(--bp-red) !important; border-color: var(--bp-red) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M4.5 10.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E") !important;
}
html body :is(main, #main-content) :is(.form-check-input, .checkbox-input, .item-checkbox):focus-visible { outline: 3px solid var(--bp-red); outline-offset: 3px; }
/* main.css (tema acquistato) disegna un quadratino blu --pt-color-accent dentro ogni checkbox e un pallino nei radio */
html body :is(main, #main-content) input[type="checkbox"]::before { content: none !important; display: none !important; }
html body :is(main, #main-content) input[type="radio"] {
  appearance: none; -webkit-appearance: none; width: 22px; height: 22px; flex: 0 0 22px; border: 2px solid var(--bp-ink); border-radius: 50%;
  background: #fff; transform: none; display: inline-grid; place-content: center; margin: 0;
}
html body :is(main, #main-content) input[type="radio"]::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--bp-red); transform: scale(0); transition: transform .12s ease-out; }
html body :is(main, #main-content) input[type="radio"]:checked { border-color: var(--bp-red); }
html body :is(main, #main-content) input[type="radio"]:checked::before { transform: scale(1); }
html body :is(main, #main-content) input[type="radio"]:focus-visible { outline: 3px solid var(--bp-red); outline-offset: 3px; }
/* alert a banda piena: testo >= 4.5:1 anche con gli stili inline della cassa */
html body :is(main, #main-content) .alert-warning { background: #fff8e6 !important; border: 1px solid #f0c36d !important; color: #6b4a00 !important; }
html body :is(main, #main-content) .alert-warning * { color: inherit !important; }
/* stelle recensioni: il giallo #ffc107 su bianco sta a 1.6:1 */
html body :is(main, #main-content) :is(.stars, .star-rating) :is(.text-warning, .fas, .fa-solid, label) { color: var(--bp-red) !important; }

/* ---------- 22. Negozio ---------- */
/* 22.1 barra laterale: da scheda a elenco con filetti, riga cliccabile da 44 px */
html body :is(main, #main-content) .card:has(> #categoriesBody) {
  background: transparent !important; border: 0 !important; border-top: 2px solid var(--bp-ink) !important; border-radius: 0 !important; box-shadow: none !important;
}
html body :is(main, #main-content) .card:has(> #categoriesBody) > .card-header { border: 0 !important; padding: 14px 0 10px !important; }
html body :is(main, #main-content) .card:has(> #categoriesBody) > .card-header h5 {
  font-size: .75rem !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important;
}
html body :is(main, #main-content) #categoriesBody { padding: 0 !important; }
html body :is(main, #main-content) #filterForm .form-check {
  display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 0; padding: 0 8px 0 0; border-bottom: 1px solid var(--bp-line);
}
html body :is(main, #main-content) #filterForm .form-check-label {
  flex: 1; display: flex; align-items: center; min-height: 44px; margin: 0; cursor: pointer;
  font-size: .9375rem !important; font-weight: 500; font-variant-numeric: tabular-nums;
}
html body :is(main, #main-content) #filterForm .form-check:has(input:checked) { box-shadow: inset 3px 0 0 var(--bp-red); background: var(--bp-tint); padding-left: 12px; }
html body :is(main, #main-content) #filterForm .form-check:has(input:checked) .form-check-label { font-weight: 700; }

/* 22.2 ricerca: una riga di banco, non una scheda che ne contiene un'altra */
html body :is(main, #main-content) .search-bar-wrapper.search-bar-wrapper {
  background: transparent !important; border: 0 !important; border-top: 2px solid var(--bp-ink) !important; border-radius: 0 !important;
  box-shadow: none !important; padding: 18px 0 20px !important; margin-bottom: 8px !important;
}
html body :is(main, #main-content) .search-bar-wrapper form { align-items: center; }
html body :is(main, #main-content) .search-bar-wrapper .form-control {
  height: 52px; padding: 0 16px !important; font-size: 1rem !important; border-radius: var(--bp-r) !important; text-overflow: ellipsis;
}
html body :is(main, #main-content) .search-bar-wrapper .btn-search {
  height: 52px; padding: 0 22px !important; border-radius: var(--bp-r) !important; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap;
}
html body :is(main, #main-content) .search-bar-wrapper .btn-search:hover { transform: none !important; }

/* 22.3 testata dell'elenco: titolo a misura, conteggio come nota, filetto di tabella */
html body :is(main, #main-content) .col-lg-9 > .d-flex.justify-content-between {
  border-bottom: 2px solid var(--bp-ink); padding-bottom: 14px; margin-bottom: 28px !important; row-gap: 12px !important;
}
html body :is(main, #main-content) .col-lg-9 > .d-flex.justify-content-between > h2 {
  font-size: clamp(1.5rem, 2.2vw, 1.875rem) !important; line-height: 1.15; text-transform: capitalize !important; margin: 0;
}
html body :is(main, #main-content) .col-lg-9 > .d-flex.justify-content-between > h2 > span { text-transform: none !important; font-size: .875rem !important; font-weight: 600 !important; font-variant-numeric: tabular-nums; margin-left: 6px; }
html body :is(main, #main-content) .sort-wrapper .form-select { min-height: 44px; min-width: 220px; font-weight: 600; }
html body :is(main, #main-content) .col-lg-9 > .d-flex.justify-content-between .btn-danger { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }

/* 22.4 scheda prodotto in elenco */
html body :is(main, #main-content) #productsGrid .product-card {
  border-top: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r-lg) !important; overflow: hidden; background: #fff !important;
}
html body :is(main, #main-content) #productsGrid .product-card .image-container {
  background: var(--bp-plate, #f4f4f6) !important; aspect-ratio: 5 / 4; display: flex; align-items: center; justify-content: center; padding: 0; overflow: hidden;
}
html body :is(main, #main-content) #productsGrid .product-card .image-container img {
  width: 100% !important; height: 100% !important; max-height: none !important; object-fit: contain !important; padding: 18px; mix-blend-mode: multiply;
}
html body :is(main, #main-content) #productsGrid .product-card .discount-badge {
  top: 12px; left: 12px; padding: 4px 9px; font-size: .8125rem; border-radius: var(--bp-r) !important; background: var(--bp-red) !important;
  font-variant-numeric: tabular-nums;
}
/* esaurito: la scheda si spegne (immagine in grigio, titolo attenuato), il pulsante e' gia' disabilitato */
html body :is(main, #main-content) #productsGrid .product-card:has(.badge.bg-danger) .image-container img { opacity: .5; filter: grayscale(1); }
html body :is(main, #main-content) #productsGrid .product-card:has(.badge.bg-danger) .card-title a { color: var(--bp-ink-3) !important; }
html body :is(main, #main-content) #productsGrid .product-card .card-body { padding: 18px 18px 18px; gap: 0; }
html body :is(main, #main-content) #productsGrid .product-card .card-title {
  font-size: 1.0625rem !important; line-height: 1.3 !important; letter-spacing: -.01em; margin: 0 0 8px !important; overflow-wrap: anywhere;
}
html body :is(main, #main-content) #productsGrid .product-card .card-title a { font-weight: 700 !important; }
html body :is(main, #main-content) #productsGrid .product-card .card-text {
  font-size: .875rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 14px;
}
/* riga prezzo: va a capo senza spezzare "Disponibilita: 100"; cifre grandi e tabulari */
html body :is(main, #main-content) #productsGrid .product-card .mt-auto > .d-flex:first-child {
  flex-wrap: wrap; gap: 2px 12px; align-items: baseline !important; border-top: 1px solid var(--bp-line); padding-top: 12px; margin-bottom: 12px !important;
}
html body :is(main, #main-content) #productsGrid .product-card .mt-auto > .d-flex:first-child > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
html body :is(main, #main-content) #productsGrid .product-card :is(.fw-bold, .text-success) { font-size: 1.25rem; font-weight: 800 !important; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
html body :is(main, #main-content) #productsGrid .product-card .text-decoration-line-through { font-size: .9375rem; text-decoration-thickness: 1px; color: var(--bp-ink-3) !important; font-variant-numeric: tabular-nums; }
html body :is(main, #main-content) #productsGrid .product-card small { white-space: nowrap; font-size: .8125rem; font-variant-numeric: tabular-nums; }
/* pulsanti: in colonna, 44 px, senza testo spezzato su due righe */
html body :is(main, #main-content) #productsGrid .product-card .mt-auto > .d-flex.gap-2 { flex-direction: column; gap: 8px !important; }
html body :is(main, #main-content) #productsGrid .product-card .mt-auto > .d-flex.gap-2 > .btn {
  flex: 0 0 auto !important; width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-size: .875rem; white-space: nowrap;
}
html body :is(main, #main-content) #productsGrid .product-card .btn-secondary[disabled],
html body :is(main, #main-content) #productsGrid .product-card .btn-warning[disabled] {
  background: var(--bp-plate, #f4f4f6) !important; border: 2px solid var(--bp-line-2) !important; color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important; opacity: 1;
}
/* "In carrello (n)": stesso rosso di "Aggiungi" = stato ambiguo. Diventa un pulsante verde a filetto. */
html body :is(main, #main-content) #productsGrid .product-card .add-to-cart-btn.btn-success {
  background: #fff !important; color: #11602f !important; -webkit-text-fill-color: #11602f !important; border: 2px solid #11602f !important;
}
html body :is(main, #main-content) #productsGrid .product-card .add-to-cart-btn.btn-success:hover { background: #11602f !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border-color: #11602f !important; }
html body :is(main, #main-content) #productsGrid .product-card .image-container img { font-size: .8125rem; color: var(--bp-ink-3); }
/* il bagliore circolare del pulsante (::before di shop.css) e' un residuo della skin scura */
html body :is(main, #main-content) .add-to-cart-btn::before { display: none !important; }

/* 22.5 paginazione: bersagli 44 px, riepilogo sopra, mai attaccata al piede */
html body .d-flex.justify-content-center.mt-4 > nav { width: 100%; }
html body .d-flex.justify-content-center.mt-4 > nav > div.d-sm-flex { flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 14px; }
html body .d-flex.justify-content-center.mt-4 > nav p { margin: 0; color: var(--bp-ink-3) !important; font-size: .875rem; font-variant-numeric: tabular-nums; text-align: center; }
html body nav .pagination { gap: 6px; margin: 0; flex-wrap: wrap; justify-content: center; }
html body nav .pagination .page-item .page-link {
  min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px;
  font-weight: 700; font-variant-numeric: tabular-nums; border-radius: var(--bp-r) !important; margin: 0 !important;
}
html body nav .pagination .page-item.active .page-link { box-shadow: inset 0 -3px 0 var(--bp-red) !important; }
html body nav .pagination .page-item.disabled .page-link { color: var(--bp-ink-3) !important; background: var(--bp-plate, #f4f4f6) !important; }
html body :is(main, #main-content) #productsGrid + .d-flex { margin-top: 12px !important; padding-bottom: 8px; }

/* 22.6 nessun risultato */
html body :is(main, #main-content) #productsGrid .col-12 > .text-center.py-5 {
  border: 1px dashed var(--bp-line-2); border-radius: var(--bp-r-lg); background: var(--bp-plate, #f4f4f6); padding: 56px 24px !important;
}
html body :is(main, #main-content) #productsGrid .fa-box-open { color: var(--bp-red) !important; opacity: 1; }

/* ---------- 23. Scheda prodotto ---------- */
html body #productdetail_mainWrap .boxcar-container { max-width: 1240px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 32px); }
html body #productdetail_mainWrap .boxcar-title-three { padding-top: 20px; margin-bottom: 20px; }
html body #productdetail_mainWrap .breadcrumb { font-size: .875rem; line-height: 1.5; margin-bottom: 14px; }
html body #productdetail_mainWrap .boxcar-title-three h1 {
  font-size: clamp(1.75rem, 3.4vw, 2.5rem) !important; line-height: 1.1 !important; letter-spacing: -.025em !important; text-wrap: balance;
}
/* DECISIONE: lo stesso nome compare due volte (h1 in alto e h2 nella colonna). L'h2 resta nel DOM
   per i lettori di schermo ma esce dalla vista: sul telefono liberava ~210 px sopra il prezzo.
   Per tenerlo visibile basta cancellare questo blocco. */
html body #productdetail_mainWrap .pd-product-title {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important;
}
/* galleria: piastra grigio-chiaro con multiply (i JPG su bianco si fondono), miniature quadrate sotto */
html body #productdetail_mainWrap .pd-image-gallery { flex-direction: column !important; height: auto !important; gap: 12px; }
html body #productdetail_mainWrap .pd-main-image { width: 100% !important; height: auto !important; order: 1; }
html body #productdetail_mainWrap .pd-main-image-container {
  height: auto !important; aspect-ratio: 1 / 1; max-height: 560px; width: 100%; background: var(--bp-plate, #f4f4f6) !important;
  border: 1px solid var(--bp-line) !important; border-top: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r-lg) !important; box-shadow: none !important; padding: clamp(16px, 4vw, 36px) !important;
}
html body #productdetail_mainWrap .pd-main-image-container img { max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; }
html body #productdetail_mainWrap .pd-thumbnails { order: 2; flex-direction: row !important; width: auto !important; height: auto !important; gap: 10px; overflow-x: auto; padding: 2px; }
html body #productdetail_mainWrap .pd-thumbnail {
  flex: 0 0 72px; width: 72px !important; height: 72px !important; padding: 6px !important; box-shadow: none !important;
  background: var(--bp-plate, #f4f4f6) !important; border: 2px solid var(--bp-line) !important; border-radius: var(--bp-r) !important;
}
html body #productdetail_mainWrap .pd-thumbnail img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
html body #productdetail_mainWrap .pd-thumbnail.active { border-color: var(--bp-red) !important; }
@media (min-width: 992px) {
  html body #productdetail_mainWrap .pd-image-gallery { position: sticky; top: 104px; }
}
/* prezzo: lettura da strumento */
html body #productdetail_mainWrap .pd-price-section { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--bp-line); }
html body #productdetail_mainWrap .pd-current-price { font-size: clamp(2rem, 3.4vw, 2.5rem) !important; font-weight: 800 !important; letter-spacing: -.03em; line-height: 1; margin: 0 !important; }
html body #productdetail_mainWrap .pd-original-price { font-size: 1.125rem; color: var(--bp-ink-3) !important; text-decoration-thickness: 1px; }
html body #productdetail_mainWrap .pd-discount-badge {
  background: var(--bp-red) !important; background-image: none !important; color: #fff !important; border-radius: var(--bp-r) !important;
  box-shadow: none !important; padding: 4px 9px; font-size: .875rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
/* disponibilita': pillola compatta, non una barra a tutta larghezza */
html body #productdetail_mainWrap .pd-stock-status {
  display: inline-flex !important; width: auto !important; max-width: 100%; align-items: center; gap: 8px; padding: 6px 12px;
  border-radius: var(--bp-r) !important; border: 1px solid #a7d8b9 !important; font-weight: 600; margin-bottom: 16px;
}
html body #productdetail_mainWrap .pd-stock-status.out-of-stock, html body #productdetail_mainWrap .pd-stock-status.out-of-stock * {
  background: #fff !important; border-color: var(--bp-red) !important; color: var(--bp-red-t) !important;
}
html body #productdetail_mainWrap .pd-product-description, html body #productdetail_mainWrap .pd-product-description * { font-size: 1rem; line-height: 1.65; color: var(--bp-ink-2); }
/* quantita' + carrello: stepper da 44 px a filetto pieno */
html body #productdetail_mainWrap .pd-quantity-cart { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: stretch; }
@media (max-width: 479.98px) { html body #productdetail_mainWrap .pd-quantity-cart { grid-template-columns: minmax(0, 1fr); } html body #productdetail_mainWrap .pd-quantity-selector { justify-self: start; } }
html body #productdetail_mainWrap .pd-quantity-selector {
  border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important; background: #fff !important; overflow: hidden; height: 52px; width: auto;
}
html body #productdetail_mainWrap .pd-qty-btn { width: 48px !important; height: 100% !important; background: #fff !important; color: var(--bp-ink) !important; font-weight: 700; padding: 0 !important; }
html body #productdetail_mainWrap .pd-qty-btn:hover { background: var(--bp-ink) !important; color: #fff !important; }
html body #productdetail_mainWrap .pd-qty-input {
  width: 56px !important; height: 100% !important; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums;
  border: 0 !important; border-left: 0 !important; border-left: 1px solid var(--bp-line-2) !important; border-radius: 0 !important; padding: 0 !important;
}
html body #productdetail_mainWrap .pd-add-to-cart-btn { min-height: 52px; height: auto !important; width: 100%; flex: none; border-radius: var(--bp-r) !important; font-size: .9375rem; justify-content: center; }
html body #productdetail_mainWrap .pd-add-to-cart-btn.view-cart { background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; }
html body #productdetail_mainWrap .pd-product-meta { border-top: 1px solid var(--bp-line) !important; }
/* schede: respiro interno, intestazioni coerenti, voce attiva con filo rosso */
html body #productdetail_mainWrap .pd-tabs-section { padding: 0 !important; overflow: hidden; border-top: 2px solid var(--bp-ink) !important; }
html body #productdetail_mainWrap .pd-tabs-nav { background: transparent; }
html body #productdetail_mainWrap .pd-tab-btn { min-height: 52px; padding: 0 clamp(16px, 3vw, 32px) !important; font-weight: 700; flex: 0 0 auto; }
html body #productdetail_mainWrap .pd-tab-btn:not(.active) { color: var(--bp-ink-3) !important; }
html body #productdetail_mainWrap .pd-tab-content { padding: clamp(18px, 3vw, 32px) !important; }
html body #productdetail_mainWrap .pd-tab-pane > h3 { font-size: 1.25rem !important; color: var(--bp-ink) !important; letter-spacing: -.015em; }
html body #productdetail_mainWrap .pd-description-content :is(h1, h2) { font-size: 1.5rem !important; line-height: 1.2 !important; text-transform: none !important; margin: 1.75rem 0 .75rem !important; }
html body #productdetail_mainWrap .pd-description-content h3 { font-size: 1.25rem !important; margin: 1.5rem 0 .5rem !important; }
html body #productdetail_mainWrap .pd-description-content :is(p, li) { max-width: 75ch; line-height: 1.7; font-size: 1rem; }
html body #productdetail_mainWrap .pd-spec-table { border-top: 2px solid var(--bp-ink); }
html body #productdetail_mainWrap .pd-spec-table th { width: 38%; text-align: left; font-size: .8125rem; padding: 12px 12px 12px 0 !important; border-bottom: 1px solid var(--bp-line) !important; }
html body #productdetail_mainWrap .pd-spec-table td { padding: 12px 0 !important; font-variant-numeric: tabular-nums; }
/* correlati: niente scheda dentro la scheda; piastra come in elenco */
html body #productdetail_mainWrap .pd-related-section { border: 0 !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; }
html body #productdetail_mainWrap .pd-section-header {
  border-top: 2px solid var(--bp-ink); padding-top: 14px; align-items: baseline; flex-wrap: wrap; gap: 6px 16px;
}
html body #productdetail_mainWrap .pd-section-title { font-size: clamp(1.25rem, 2.2vw, 1.5rem) !important; }
html body #productdetail_mainWrap .pd-related-product { padding: 14px !important; border-radius: var(--bp-r-lg) !important; }
html body #productdetail_mainWrap .pd-related-image { background: var(--bp-plate, #f4f4f6) !important; border-radius: var(--bp-r) !important; }
html body #productdetail_mainWrap .pd-related-image img { mix-blend-mode: multiply; }
html body #productdetail_mainWrap .pd-related-title { display: block; font-weight: 700; line-height: 1.3; min-height: 2.6em; }
html body #productdetail_mainWrap .pd-related-current-price { font-weight: 800; font-variant-numeric: tabular-nums; }
html body #productdetail_mainWrap .pd-related-cart-btn { min-height: 44px; width: 100%; justify-content: center; border-radius: var(--bp-r) !important; }
html body #productdetail_mainWrap .pd-view-all-link { min-height: 44px; align-items: center; color: var(--bp-red-t) !important; font-weight: 700; }
html body #productdetail_mainWrap :is(.slick-dots li button, .pd-related-slider .slick-dots button) { background: var(--bp-ink) !important; opacity: .3; border-radius: 50%; }
html body #productdetail_mainWrap :is(.slick-dots li.slick-active button) { opacity: 1; background: var(--bp-red) !important; }
html body #productdetail_mainWrap .slick-dots li, html body #productdetail_mainWrap .slick-dots li button { width: 28px !important; height: 28px !important; }
html body :is(main, #main-content) .card:has(> #categoriesBody) > .card-header .btn { min-height: 44px; }
/* recensioni: intestazione di sezione e avviso nel registro del tema */
html body #productdetail_mainWrap .container.mt-5 { max-width: 1240px; padding-inline: clamp(16px, 3vw, 32px); }
html body #productdetail_mainWrap .container.mt-5 > .row h3 { font-size: clamp(1.25rem, 2.2vw, 1.5rem); border-top: 2px solid var(--bp-ink); padding-top: 14px; }
html body #productdetail_mainWrap .review-item { background: var(--bp-plate, #f4f4f6) !important; border: 1px solid var(--bp-line); border-radius: var(--bp-r-lg) !important; }
/* configuratore Flex: le sue regole erano scritte per fondo scuro (bianco al 12-20%) e qui non si vedono */
html body #productdetail_mainWrap .pd-addons { background: #fff !important; border: 1px solid var(--bp-line) !important; border-top: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r-lg) !important; padding: clamp(14px, 2.4vw, 22px); }
html body #productdetail_mainWrap .pd-addons__title { font-size: .8125rem !important; letter-spacing: .12em !important; color: var(--bp-ink) !important; }
html body #productdetail_mainWrap .pd-addons__intro { opacity: 1 !important; color: var(--bp-ink-3) !important; font-size: .875rem !important; }
html body #productdetail_mainWrap .pd-addons__tier { border: 2px solid var(--bp-line-2) !important; background: #fff !important; border-radius: var(--bp-r) !important; min-height: 56px; }
html body #productdetail_mainWrap .pd-addons__tier.is-active { border-color: var(--bp-ink) !important; background: var(--bp-tint) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30); }
html body #productdetail_mainWrap .pd-addons__tier-sub { opacity: 1 !important; color: var(--bp-ink-3) !important; font-size: .8125rem !important; }
html body #productdetail_mainWrap .pd-addons__tier input { accent-color: var(--bp-red); }
html body #productdetail_mainWrap .pd-addons__group { border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r) !important; }
html body #productdetail_mainWrap .pd-addons__head { background: transparent !important; border-bottom: 2px solid var(--bp-ink); opacity: 1 !important; color: var(--bp-ink) !important; }
html body #productdetail_mainWrap .pd-addons__row { border-top: 1px solid var(--bp-line) !important; font-size: .9375rem !important; min-height: 48px; }
html body #productdetail_mainWrap .pd-addons__row.is-on { background: var(--bp-tint) !important; box-shadow: inset 3px 0 0 var(--bp-red); }
html body #productdetail_mainWrap .pd-addons__price, html body #productdetail_mainWrap .pd-addons__input, html body #productdetail_mainWrap .pd-addons__total strong { font-variant-numeric: tabular-nums; }
html body #productdetail_mainWrap :is(.pd-addons__btn, .pd-addons__input) {
  width: 36px !important; height: 36px !important; border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important; background: #fff !important; color: var(--bp-ink) !important; font-weight: 700;
}
html body #productdetail_mainWrap .pd-addons__input { width: 48px !important; }
html body #productdetail_mainWrap .pd-addons__btn:hover { background: var(--bp-ink) !important; color: #fff !important; border-color: var(--bp-ink) !important; }
html body #productdetail_mainWrap .pd-addons__qty { width: 140px !important; }
html body #productdetail_mainWrap .pd-addons__total { background: var(--bp-ink) !important; border-radius: var(--bp-r) !important; border-bottom: 3px solid var(--bp-red); }
html body #productdetail_mainWrap .pd-addons__note { opacity: 1 !important; color: var(--bp-ink-3) !important; font-size: .8125rem !important; }

/* ---------- 24. Carrello ---------- */
html body #shopFlow { max-width: 1240px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 32px); }
html body #shopFlow > .row > .col-12 > .d-flex.align-items-center.mb-4 {
  flex-wrap: wrap; gap: 12px 20px; padding-bottom: 16px; border-bottom: 2px solid var(--bp-ink); margin-bottom: 28px !important;
}
html body #shopFlow h1 { font-size: clamp(1.75rem, 3.4vw, 2.5rem) !important; line-height: 1.1 !important; letter-spacing: -.025em !important; }
html body #shopFlow > .row > .col-12 > .d-flex.align-items-center.mb-4 .btn { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; }
/* righe: griglia al posto delle colonne col-1/col-2 che sul telefono si schiacciavano (qty a 20 px, prezzo spezzato per lettera) */
html body #cartItems .cart-item { padding: 18px 0 !important; border-color: var(--bp-line) !important; }
html body #cartItems .cart-item > .row {
  display: grid; margin: 0 !important; gap: 10px 18px; align-items: center;
  grid-template-columns: 24px 80px minmax(0, 1fr) auto 110px 44px;
  grid-template-areas: "chk img name qty line rm";
}
html body #cartItems .cart-item > .row > [class*="col-"] { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; min-width: 0; }
html body #cartItems .cart-item > .row > :nth-child(1) { grid-area: chk; }
html body #cartItems .cart-item > .row > :nth-child(2) { grid-area: img; }
html body #cartItems .cart-item > .row > :nth-child(3) { grid-area: name; }
html body #cartItems .cart-item > .row > :nth-child(4) { grid-area: qty; }
html body #cartItems .cart-item > .row > :nth-child(5) { grid-area: line; }
html body #cartItems .cart-item > .row > :nth-child(6) { grid-area: rm; }
html body #cartItems .cart-item img { width: 80px !important; height: 80px !important; object-fit: contain !important; background: var(--bp-plate, #f4f4f6); border: 1px solid var(--bp-line); border-radius: var(--bp-r) !important; mix-blend-mode: multiply; padding: 6px; }
html body #cartItems .cart-item h6 { font-size: 1rem !important; line-height: 1.35 !important; font-weight: 700 !important; letter-spacing: -.005em; overflow-wrap: anywhere; margin-bottom: 4px !important; }
html body #cartItems .cart-item small { font-variant-numeric: tabular-nums; }
html body #cartItems .cart-item .btn-group { flex-wrap: nowrap; }
html body #cartItems .cart-item .btn-group .btn { min-width: 44px; min-height: 44px; font-weight: 700; }
html body #cartItems .cart-item .btn-group input { height: 44px; width: 56px !important; font-weight: 700; font-variant-numeric: tabular-nums; border-radius: 0 !important; }
html body #cartItems .cart-item .text-end .fw-bold { font-size: 1.125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
html body #cartItems .cart-item .text-end small { white-space: nowrap; }
html body #cartItems .cart-item .btn-outline-danger { width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
html body #cartItems .cart-item .btn-outline-danger:hover { background: var(--bp-red) !important; border-color: var(--bp-red) !important; color: #fff !important; }
@media (max-width: 767.98px) {
  html body #cartItems .cart-item > .row {
    grid-template-columns: 24px 72px minmax(0, 1fr) 44px;
    grid-template-areas: "chk img name name" "chk img qty rm" "chk img line line";
    gap: 8px 12px;
  }
  html body #cartItems .cart-item > .row > :nth-child(5) .text-end { text-align: left !important; }
  html body #cartItems .cart-item img { width: 72px !important; height: 72px !important; }
}
/* riepilogo: filetto visibile, totale grande, scontrino con bordo tratteggiato */
html body #shopFlow .card.sticky-top { top: 104px !important; border-top: 2px solid var(--bp-ink) !important; }
html body #shopFlow .card hr { background: var(--bp-ink) !important; opacity: 1 !important; height: 2px !important; margin: 16px 0 !important; border: 0; }
html body #shopFlow .card-body :is(#subtotal, #discount, #tax, #shipping, #total) { font-variant-numeric: tabular-nums; }
html body #shopFlow #total { font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; }
html body #shopFlow .text-success, html body #shopFlow .text-success * { color: var(--bp-success, #11602f) !important; }
html body #shopFlow .btn-primary.w-100 { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
html body #shopFlow .btn-outline-secondary.w-100 { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
html body #cartItems ~ *, html body #shopFlow .card-body > .d-flex.justify-content-between.mb-3 { flex-wrap: wrap; gap: 8px 16px; }
html body #shopFlow .form-check { display: flex; align-items: center; gap: 10px; padding-left: 0; margin: 0; min-height: 44px; }
html body #shopFlow .form-check-label { margin: 0; cursor: pointer; font-weight: 600; }
/* carrello vuoto */
html body #shopFlow .text-center.py-5 { border: 1px dashed var(--bp-line-2); border-radius: var(--bp-r-lg); background: var(--bp-plate, #f4f4f6); margin-top: 8px; }
html body #shopFlow .text-center.py-5 .fa-shopping-cart { color: var(--bp-red) !important; opacity: 1; }

/* ---------- 25. Cassa ---------- */
html body .checkout-main-container { width: 100% !important; max-width: 1200px; margin-inline: auto; }
html body .checkout-main-container .checkout-wrapper { padding: 0 clamp(0px, 2vw, 16px); }
html body .checkout-main-container .cart-header {
  display: flex; align-items: center; gap: 14px; text-align: left; padding-bottom: 16px; margin-bottom: 28px; border-bottom: 2px solid var(--bp-ink) !important;
}
html body .checkout-main-container .cart-title { font-size: clamp(1.5rem, 3vw, 2.25rem) !important; line-height: 1.1 !important; letter-spacing: -.025em !important; margin: 0 !important; }
html body .checkout-main-container .checkout-subtitle { color: var(--bp-ink-3) !important; font-size: .9375rem; margin: 4px 0 0 !important; }
html body .checkout-main-container .back-to-cart {
  width: 44px; height: 44px; margin: 0 !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center;
  color: var(--bp-ink) !important; border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important; flex: 0 0 44px;
}
html body .checkout-main-container .back-to-cart:hover { background: var(--bp-ink) !important; color: #fff !important; }
html body .checkout-main-container .checkout-content { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); gap: clamp(20px, 3vw, 36px); }
@media (max-width: 1024px) { html body .checkout-main-container .checkout-content { grid-template-columns: minmax(0, 1fr); } }
/* superfici: stessa lingua del negozio (filetto superiore da intestazione, niente ombre morbide a 16 px) */
html body .checkout-main-container :is(.checkout-form-section, .order-summary) {
  background: #fff !important; border: 1px solid var(--bp-line) !important; border-top: 2px solid var(--bp-ink) !important;
  border-radius: var(--bp-r-lg) !important; box-shadow: none !important; padding: clamp(18px, 3vw, 32px) !important;
}
html body .checkout-main-container .form-section { margin-bottom: 36px; }
html body .checkout-main-container :is(.section-title, .summary-title) {
  font-size: 1.125rem !important; font-weight: 700 !important; letter-spacing: -.01em; color: var(--bp-ink) !important;
  padding-bottom: 12px !important; margin-bottom: 20px !important; border-bottom: 2px solid var(--bp-ink) !important; gap: 10px;
}
html body .checkout-main-container .section-title i { color: var(--bp-red) !important; margin-right: 0 !important; }
/* campi: 48 px, 16 px (sotto i 16 px iOS ingrandisce la pagina al focus), select con la stessa altezza degli input */
html body .checkout-main-container .form-label { font-size: .8125rem !important; font-weight: 600 !important; color: var(--bp-ink-2) !important; margin-bottom: 6px !important; }
html body .checkout-main-container :is(.form-input, .form-select) {
  height: 48px !important; min-height: 48px; padding: 0 14px !important; font-size: 1rem !important; color: var(--bp-ink) !important;
  background-color: #fff !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important; box-shadow: none !important;
}
html body .checkout-main-container .form-select {
  appearance: none; -webkit-appearance: none; padding-right: 40px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23111114' stroke-width='2' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 16px center !important;
}
html body .checkout-main-container :is(.form-input, .form-select):focus {
  border-color: var(--bp-ink) !important; box-shadow: 0 0 0 3px rgba(var(--color-primary-500-rgb, 199, 8, 27), .25) !important; outline: none !important;
}
html body .checkout-main-container .form-input::placeholder { color: var(--bp-ink-3) !important; opacity: 1; }
html body .checkout-main-container .form-input:disabled { background: var(--bp-plate, #f4f4f6) !important; color: var(--bp-ink-3) !important; }
html body .checkout-main-container .form-hint { font-size: .8125rem !important; color: var(--bp-ink-3) !important; margin-top: 6px !important; }
html body .checkout-main-container .form-grid.row > [class*="col-"], html body .checkout-main-container #fiscalSection .row > [class*="col-"] { margin-bottom: 14px; }
html body .checkout-main-container .checkbox-group { gap: 12px; margin-top: 18px; align-items: flex-start; }
html body .checkout-main-container .checkbox-label { color: var(--bp-ink-2) !important; font-size: .9375rem !important; line-height: 1.45; min-height: 24px; }
/* metodi di pagamento: il selezionato si vede (prima il bordo restava a 14% di inchiostro) */
html body .checkout-main-container .payment-methods { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
html body .checkout-main-container .payment-method {
  width: auto !important; min-height: 88px; padding: 14px !important; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  border: 2px solid var(--bp-line-2) !important; border-radius: var(--bp-r-lg) !important; background: #fff !important; cursor: pointer; box-shadow: none !important;
}
html body .checkout-main-container .payment-method:hover { border-color: var(--bp-ink) !important; }
html body .checkout-main-container .payment-method.active {
  border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none;
}
html body .checkout-main-container .payment-method i { color: var(--bp-ink-3) !important; font-size: 24px !important; margin: 0 !important; }
html body .checkout-main-container .payment-method.active i { color: var(--bp-red) !important; }
html body .checkout-main-container .payment-method-name { color: var(--bp-ink) !important; font-size: .8125rem !important; font-weight: 700 !important; }
/* campi carta (Stripe) e messaggi */
html body .checkout-main-container .StripeElement {
  min-height: 48px; height: auto !important; padding: 14px 14px !important; background: #fff !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
}
html body .checkout-main-container .StripeElement--focus { border-color: var(--bp-ink) !important; box-shadow: 0 0 0 3px rgba(var(--color-primary-500-rgb, 199, 8, 27), .25); }
html body .checkout-main-container .StripeElement--invalid { border-color: var(--bp-red) !important; }
html body .checkout-main-container :is(#card-errors, #payment-message) { color: var(--bp-red-t) !important; font-size: .875rem !important; }
/* riepilogo ordine */
html body .checkout-main-container .order-items { max-height: 300px; overflow-y: auto; padding-right: 8px; scrollbar-width: thin; scrollbar-color: var(--bp-ink) transparent; }
html body .checkout-main-container .order-item { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--bp-line) !important; }
html body .checkout-main-container .item-image { width: 56px; height: 56px; margin: 0 !important; background: var(--bp-plate, #f4f4f6) !important; border: 1px solid var(--bp-line); border-radius: var(--bp-r) !important; }
html body .checkout-main-container .item-image img { mix-blend-mode: multiply; }
html body .checkout-main-container .item-name { color: var(--bp-ink) !important; font-size: .9375rem !important; line-height: 1.3 !important; overflow-wrap: anywhere; }
html body .checkout-main-container div.item-quantity { color: var(--bp-ink-3) !important; font-size: .8125rem !important; font-variant-numeric: tabular-nums; }
html body .checkout-main-container .item-price { color: var(--bp-ink) !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
html body .checkout-main-container .price-breakdown { border-top: 0 !important; margin-top: 12px; padding-top: 4px; }
html body .checkout-main-container .price-row { align-items: baseline; font-size: .9375rem; }
html body .checkout-main-container .price-label { color: var(--bp-ink-3) !important; }
html body .checkout-main-container .price-value { color: var(--bp-ink) !important; font-weight: 600 !important; font-variant-numeric: tabular-nums; }
html body .checkout-main-container .total-row { border-top: 2px solid var(--bp-ink) !important; align-items: baseline; margin-top: 12px; padding-top: 16px; }
html body .checkout-main-container .total-label { color: var(--bp-ink) !important; font-size: 1rem !important; text-transform: uppercase; letter-spacing: .08em; }
html body .checkout-main-container .total-value { color: var(--bp-ink) !important; font-size: 1.75rem !important; font-weight: 800 !important; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
/* conferma ordine: pulsante piatto del tema (prima gradiente, raggio 12, peso 400, ombra viola) */
html body .checkout-main-container .place-order-btn {
  background: var(--bp-red) !important; background-image: none !important; border: 2px solid var(--bp-red) !important; border-radius: var(--bp-r) !important;
  min-height: 56px; font-size: 1rem !important; font-weight: 700 !important; letter-spacing: .02em; padding: 0 20px !important; box-shadow: none !important;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
html body .checkout-main-container .place-order-btn:hover:not(:disabled) {
  background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none;
}
html body .checkout-main-container .place-order-btn:active:not(:disabled) { transform: translate(0, 0) scale(.985); box-shadow: none !important; }
html body .checkout-main-container .place-order-btn:disabled { background: var(--bp-ink-3) !important; border-color: var(--bp-ink-3) !important; opacity: 1 !important; }
html body .checkout-main-container .place-order-btn:focus-visible { outline: 3px solid var(--bp-red); outline-offset: 3px; }
html body .checkout-main-container .security-badge { background: #e9f6ee !important; color: #11602f !important; border: 1px solid #a7d8b9; border-radius: var(--bp-r) !important; font-size: .8125rem !important; }
html body .checkout-main-container .security-badge i { color: #11602f !important; }
/* conferma finale */
html body .checkout-main-container .success-content { border-radius: var(--bp-r-lg) !important; border-top: 4px solid var(--bp-red); }
html body .checkout-main-container .success-icon { background: #11602f !important; }
html body .checkout-main-container .success-title { color: var(--bp-ink) !important; }
html body .checkout-main-container .success-message { color: var(--bp-ink-2) !important; }
html body .checkout-main-container .order-number { background: var(--bp-plate, #f4f4f6) !important; color: var(--bp-ink) !important; border: 1px solid var(--bp-line); border-radius: var(--bp-r) !important; font-variant-numeric: tabular-nums; }
html body .checkout-main-container .success-btn { background: var(--bp-red) !important; border: 2px solid var(--bp-red) !important; border-radius: var(--bp-r) !important; min-height: 48px; font-weight: 700; }
html body .checkout-main-container .success-btn:hover { background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; }
/* telefono: barra del riepilogo a 56 px e cifre fisse */
@media (max-width: 1024px) {
  html body .checkout-main-container .mobile-total-preview { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--bp-ink) !important; }
  html body .checkout-main-container .mobile-summary-toggle { color: var(--bp-red-t) !important; font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
}
html body .checkout-main-container :is(.order-summary, .checkout-form-section) { max-width: 100%; }
@media (max-width: 575.98px) {
  html body .checkout-main-container .payment-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body .checkout-main-container .payment-method { padding: 10px !important; }
}

/* ---------- 26. Movimento ridotto e touch ---------- */
@media (prefers-reduced-motion: reduce) {
  html body .checkout-main-container :is(.place-order-btn, .payment-method):hover,
  html body .checkout-main-container .payment-method.active { transform: none !important; }
}
@media (hover: none) {
  html body :is(main, #main-content) :is(.product-card, .pd-related-product):hover { transform: none !important; box-shadow: none !important; }
}


/* ======================================================================
   REVISIONE A — home e contatti
   ====================================================================== */
/* ============================================================================
   A_patch.css — correzioni per HOME e CONTATTI della skin «banco prova»
   Da ACCODARE a theme-bancoprova.css (stesso foglio o subito dopo).
   Solo CSS: nessun testo, ordine o markup cambia.

   CAUSA RADICE n.1 (spiega meta' dei difetti): la regola della riga 70-75 del tema
     html body :is(.PriceslistContainer, ... #productdetail_mainWrap, ...)
   contiene un ID: tutta la lista :is() prende specificita' (1,0,2). Qualunque
   regola "html body.page-slug-home .wp-cta" (0,2,2) perde, anche se viene dopo.
   Per battere quella lista si usa il prefisso `html body #main-content`.

   CAUSA RADICE n.2: le regole `body.page-slug-home` / `body.page-slug-contact` del
   tema NON scattano sui tenant con slug tradotto (/pradzia, /accueil, /contatti...).
   Qui le stesse regole sono riscritte senza lo slug, agganciate alle classi dei
   componenti (.wp-step-number, .wp-price, .wp-contact-form...).
   ========================================================================== */

/* ---------------------------------------------------------------------------
   A1 [P0] Invito finale "wp-cta": testo bianco su fondo trasparente = illeggibile.
   Lente: impeccable (contrasto), redesign-skill (sezione scura casuale).
   Diventa un pannello inchiostro con filo rosso in alto e fitta di carta
   millimetrata in negativo (come lo schermo del banco prova).
   --------------------------------------------------------------------------- */
html body #main-content .wp-cta.widget-premium {
  background-color: #111114 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px) !important;
  background-size: 24px 24px, 24px 24px !important;
  border-top: 3px solid var(--bp-red) !important;
  padding: clamp(56px, 8vw, 104px) 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden;
}
/* alone rosso radiale del tema scuro: via */
html body #main-content .wp-cta.widget-premium::before { display: none !important; content: none !important; }
html body #main-content .wp-cta :is(h2, p) {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; text-align: center;
}
html body #main-content .wp-cta p { color: rgba(255,255,255,.88) !important; -webkit-text-fill-color: rgba(255,255,255,.88) !important; max-width: 60ch; margin-inline: auto; text-transform: none; }
html body #main-content .wp-cta h2 { text-transform: none !important; padding-bottom: 22px !important; margin-bottom: 18px !important; }
/* il righello sotto il titolo resta centrato e diventa chiaro sul fondo scuro */
html body #main-content .wp-cta h2::after {
  left: 50% !important; transform: translateX(-50%) !important;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.85) 0 1px, transparent 1px 8px) bottom / 100% 6px no-repeat,
    linear-gradient(var(--bp-red), var(--bp-red)) bottom / 100% 2px no-repeat !important;
}
/* il pulsante: all'hover il tema lo fa diventare inchiostro = sparisce sul pannello */
html body #main-content .wp-cta .wp-btn-primary:hover,
html body #main-content .wp-cta .wp-btn-primary:focus-visible {
  background: #ffffff !important; border-color: #ffffff !important;
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important;
}
html body #main-content .wp-cta .wp-btn-primary { min-height: 52px; padding-inline: 28px; font-size: 1rem !important; }

/* ---------------------------------------------------------------------------
   A2 [P1] Aloni residui del tema scuro sul bianco.
   luxury-global.css mette su main/.page/.home radial-gradient rossi (!important)
   e un fondo pieno che COPRE la carta millimetrata del body: gli angoli
   restano rosa e il foglio non si vede.
   --------------------------------------------------------------------------- */
html body :is(main, #content, .content-area, .site-content, .page, .scheme-light, .scheme-dark) {
  background-color: transparent !important;
  background-image: none !important;
}
html body.home, html body.page { background-color: var(--bp-paper) !important; }

/* ---------------------------------------------------------------------------
   A3 [P0] Casella della privacy invisibile (contatti).
   Il markup usa stili inline per il tema scuro: riquadro bianco-su-bianco.
   Il tema puntava a .checkboxcontainer / .cb-box che qui non esistono.
   Agganciato a input#agreement + div: vince sugli stili inline con !important.
   Lente: impeccable (stati, accessibilita'), apple-design (feedback).
   --------------------------------------------------------------------------- */
html body #main-content input#agreement + div {
  background: #ffffff !important;
  border: 1px solid var(--bp-line-2) !important;
  border-radius: var(--bp-r) !important;
  padding: 14px 16px !important;
  gap: 14px !important;
  min-height: 56px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
html body #main-content input#agreement + div:hover { border-color: var(--bp-ink) !important; }
html body #main-content input#agreement + div .cbox {
  width: 24px !important; height: 24px !important; min-width: 24px !important;
  border: 2px solid var(--bp-ink) !important; border-radius: 3px !important;
  background-color: #ffffff;
}
html body #main-content input#agreement + div .cmark { color: #ffffff !important; }
/* spuntata: rosso pieno (lo stile inline imposta il fondo via JS) */
html body #main-content input#agreement:checked + div { border-color: var(--bp-ink) !important; }
html body #main-content input#agreement:checked + div .cbox { background: var(--bp-red) !important; border-color: var(--bp-red) !important; }
html body #main-content input#agreement:focus-visible + div { outline: 3px solid var(--bp-red); outline-offset: 3px; }
html body #main-content input#agreement + div span { color: var(--bp-ink-2) !important; font-size: .9375rem !important; line-height: 1.45; }
html body #main-content input#agreement + div a {
  color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; font-weight: 700 !important;
  text-decoration: underline; text-underline-offset: 3px;
  display: inline-block; padding: 12px 0; margin: -12px 0;    /* bersaglio di tocco >= 44px */
}

/* ---------------------------------------------------------------------------
   A4 [P0] Regole "solo home" che non scattano sugli slug tradotti.
   (passi, prezzi, icone dei servizi, titolo dell'hero)
   --------------------------------------------------------------------------- */
html body .wp-step-number {
  background: var(--bp-ink) !important; background-image: none !important;
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
  border: 0 !important; border-radius: 50% !important; filter: none !important;
  box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--bp-ink) !important;
  font-variant-numeric: tabular-nums;
}
html body .wp-step-item { border: 1px solid var(--bp-line) !important; background: #fff !important; box-shadow: none !important; }
html body .wp-step-item:hover { transform: none !important; box-shadow: none !important; }
html body .wp-step-subtitle {
  color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important;
  font-family: var(--bp-font) !important;
}
html body .wp-price, html body .wp-price * {
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  text-shadow: none !important; filter: none !important;
  font-family: var(--bp-font) !important; font-variant-numeric: tabular-nums lining-nums;
}
html body .wp-price > span { font-size: 1.5rem !important; font-weight: 800 !important; letter-spacing: -.01em; }
html body .wp-tuning-card-icon {
  background: var(--bp-tint) !important; background-image: none !important;
  border: 1px solid var(--bp-red) !important; border-radius: var(--bp-r) !important;
  box-shadow: none !important; filter: none !important;
}
html body .wp-tuning-card-icon * { color: var(--bp-red) !important; -webkit-text-fill-color: var(--bp-red) !important; filter: none !important; }
html body .wp-tuning-card-icon svg { filter: none !important; }
/* titolo hero grande: stessa scala su tutte le lingue */
html body .HeaderLarge .BnrMainTitle {
  font-size: clamp(2.5rem, 6.4vw, 4.5rem) !important; line-height: 1.02 !important; letter-spacing: -.03em !important;
}
html body .HeaderLarge .bnrSubTitle { font-size: clamp(1.0625rem, 2vw, 1.375rem) !important; font-weight: 500 !important; }

/* ---------------------------------------------------------------------------
   A5 [P1] Pulsanti dell'hero: 41px (desktop) e 31px/11px (mobile) = sotto i 44px.
   Lente: impeccable (tap target), apple-design (risposta al tocco).
   --------------------------------------------------------------------------- */
html body #main-content :is(.HeaderLarge, .headerSmall) .bannerAction a.btn-default {
  min-height: 48px; padding: 13px 26px !important; font-size: .9375rem !important;
  justify-content: center; align-items: center;
}
@media (max-width: 575px) {
  /* l'hero (max-height 380px) ora ospita due pulsanti da 48px: cresce e lascia il
     posto alla curva di coppia (46px) senza coprire il secondo pulsante */
  html body #main-content section.HeaderLarge {
    height: auto !important; min-height: 440px !important; max-height: none !important;
  }
  html body #main-content section.HeaderLarge > .container { padding-top: 28px !important; padding-bottom: 76px !important; }
  html body #main-content :is(.HeaderLarge, .headerSmall) .hero-content-body {
    flex-direction: column !important; align-items: stretch !important; gap: 12px !important;
    width: min(100%, 300px); margin-inline: auto;
  }
  html body #main-content :is(.HeaderLarge, .headerSmall) .bannerAction { width: 100%; }
}

/* ---------------------------------------------------------------------------
   A6 [P1] Gerarchia dei blocchi "kicker + titolo" (servizi e passi).
   "I nostri Servizi" e' un <div> grigio da 16px 63px sotto il kicker: il titolo vero
   non c'e'. Lo si fa leggere come un titolo (stessa scala e righello degli <h2>).
   Il kicker usa il carattere del sito, non Arial.
   --------------------------------------------------------------------------- */
html body #main-content :is(.wp-badge, .wp-step-subtitle, .brandsSection h6) { font-family: var(--bp-font) !important; }
html body #main-content .widget-premium .wp-header:has(> .wp-badge) { margin-bottom: 10px !important; padding-bottom: 0 !important; }
html body #main-content .wp-tuning-types .wp-header.wp-text-content {
  position: relative; display: block !important;
  font-family: var(--bp-font) !important; font-size: clamp(1.625rem, 3vw, 2.25rem) !important;
  font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.015em !important;
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  text-align: center; padding: 0 0 22px !important; margin: 0 0 44px !important;
}
html body #main-content .wp-tuning-types .wp-header.wp-text-content::after {
  content: "" !important; display: block !important; position: absolute; left: 50%; bottom: 0;
  width: 112px; height: 10px; transform: translateX(-50%);
  background:
    repeating-linear-gradient(90deg, var(--bp-ink) 0 1px, transparent 1px 8px) bottom / 100% 6px no-repeat,
    linear-gradient(var(--bp-red), var(--bp-red)) bottom / 100% 2px no-repeat !important;
}
/* kicker del blocco marche: stacca dal titolo di 10px invece di 12 */
html body #main-content .brandsSection h6 { margin-bottom: 10px !important; text-align: center; }

/* ---------------------------------------------------------------------------
   A7 [P1] Passi 1-4 su mobile: 4 card da 190px = 760px per 4 frasi.
   Sotto 576px diventano righe compatte: cerchio a sinistra, testo a destra.
   Lente: redesign-skill (ritmo verticale), impeccable (densita').
   --------------------------------------------------------------------------- */
@media (max-width: 575px) {
  html body .wp-steps-grid { gap: 12px !important; }
  html body .wp-step-item {
    display: grid !important; grid-template-columns: 56px 1fr; column-gap: 16px; row-gap: 2px;
    align-items: center; text-align: left !important; padding: 16px !important;
  }
  html body .wp-step-item .wp-step-number { grid-row: 1 / span 2; width: 56px !important; height: 56px !important; margin: 0 !important; font-size: 1.25rem !important; }
  html body .wp-step-item .wp-step-subtitle { align-self: end; margin: 0 !important; }
  html body .wp-step-item .wp-step-title { align-self: start; margin: 0 !important; font-size: 1rem !important; text-align: left; }
}

/* ---------------------------------------------------------------------------
   A8 [P1] Blocco loghi marca.
   - frecce a left:-60px: fuori schermo sotto ~1360px e, dove visibili, con alone
   - tessera dentro tessera (due bordi) e logo piccolo nel vuoto
   --------------------------------------------------------------------------- */
html body #main-content .BrandsliderContainer { position: relative; padding-bottom: 76px; }
/* frecce sotto il carosello, centrate: non coprono i loghi e non escono dallo schermo */
html body #main-content .BrandsliderContainer :is(.custom-prev-arrow, .custom-next-arrow) {
  position: absolute !important; top: auto !important; bottom: 8px !important; transform: none !important;
  width: 48px !important; height: 48px !important; display: flex !important; align-items: center; justify-content: center;
  background: #ffffff !important; border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important;
  color: var(--bp-ink) !important; box-shadow: none !important; filter: none !important; z-index: 6 !important;
  font-size: 1.25rem; transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
html body #main-content .BrandsliderContainer .custom-prev-arrow { left: calc(50% - 56px) !important; right: auto !important; }
html body #main-content .BrandsliderContainer .custom-next-arrow { right: calc(50% - 56px) !important; left: auto !important; }
html body #main-content .BrandsliderContainer :is(.custom-prev-arrow, .custom-next-arrow) * { color: inherit !important; filter: none !important; }
html body #main-content .BrandsliderContainer :is(.custom-prev-arrow, .custom-next-arrow):hover { background: var(--bp-ink) !important; color: #fff !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; }
html body #main-content .brandslider .item a {
  border: 0 !important; background: transparent !important; border-radius: 0 !important; box-shadow: none !important;
  width: 128px; max-width: 100%; height: auto !important;
}
html body #main-content .brandslider .item :is(.image, img) { width: 100% !important; max-width: 128px; height: auto !important; max-height: 96px; object-fit: contain; margin-inline: auto; }
html body #main-content .brandslider .item { transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
html body #main-content .brandslider .item:hover { border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none; }
@media (prefers-reduced-motion: reduce) { html body #main-content .brandslider .item:hover { transform: none; } }

/* ---------------------------------------------------------------------------
   A9 [P2] Schede servizio: voci senza prezzo lasciano la card "monca";
   cifra e unita' allineate sulla linea di base.
   --------------------------------------------------------------------------- */
html body .wp-tuning-card { align-items: center; }
html body .wp-tuning-card .wp-price { align-items: baseline; gap: .4em; }
html body .wp-tuning-card .wp-tuning-card-content { align-self: center; }

/* ---------------------------------------------------------------------------
   A10 [P1] Modulo contatti (stessa regola senza slug).
   - etichette in maiuscoletto da 13px come da tema, ma con piu' respiro
   - pulsante a tutta larghezza dei campi su mobile (era 300px contro 308px)
   --------------------------------------------------------------------------- */
html body .wp-contact-form { padding: clamp(24px, 4vw, 44px) !important; }
html body .wp-contact-form .wp-form-header { margin-bottom: 28px; }
html body .wp-contact-form label {
  font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .06em !important;
  text-transform: uppercase !important; color: var(--bp-ink-2) !important; margin-bottom: 8px;
}
html body .wp-contact-form :is(input, textarea):not([type=checkbox]) { min-height: 52px; font-size: 1rem !important; padding: 12px 16px !important; }
html body .wp-contact-form textarea { min-height: 140px; }
html body .wp-contact-form button[type="submit"] {
  min-height: 54px; padding-inline: 32px !important; font-size: 1rem !important;
  display: inline-flex; align-items: center; gap: 10px; justify-content: center;
}
@media (max-width: 575px) {
  html body .wp-contact-form button[type="submit"] { width: 100% !important; max-width: none !important; } /* widgets-premium: .wp-btn{max-width:300px!important} */
}

/* ---------------------------------------------------------------------------
   A11 [P1] Testata con menu lunghi (FR/LT/ES): voci sovrapposte ai pulsanti.
   In francese il <ul> misura 1196px dentro 738px: esce a sinistra (x=-36) e copre
   lingua e ACCEDI. Compattato, senza toccare l'elenco.
   --------------------------------------------------------------------------- */
@media (min-width: 992px) and (max-width: 1599px) {
  html body .tf-header__nav { min-width: 0; flex: 1 1 0; }
  html body .tf-header__menu:has(> li:nth-child(n+10)) { justify-content: center; gap: 0 !important; flex-wrap: wrap; row-gap: 0; width: 100%; max-height: 72px; }
  html body .tf-header__menu:has(> li:nth-child(n+10)) > li > a {
    padding-inline: 6px !important; font-size: 12px !important; letter-spacing: 0 !important; white-space: nowrap;
  }
}

/* ---------------------------------------------------------------------------
   A13 [P2] Carta millimetrata: ora che main non la copre piu' (A2) le righe
   maggiori ai 120px risultano piu' marcate del "appena percepibile" voluto.
   --------------------------------------------------------------------------- */
:root { --bp-grid: rgba(17, 17, 20, .028); --bp-grid-major: rgba(17, 17, 20, .050); }

/* ---------------------------------------------------------------------------
   A14 [P1] Contrasto dei pulsanti pieni con rosso di marca molto vivo.
   Bianco su #fc0303 (turbomotorsports24.it) = 4.07:1 (< 4.5 per testo da 15-16px).
   Il fondo si scurisce del 12% verso il nero: con #c7081b resta praticamente
   identico (5.9 -> 7.2:1), con #fc0303 passa a 5.0:1. Hover e focus restano quelli del tema.
   --------------------------------------------------------------------------- */
html body #main-content :is(a.btn-default:not(.btn-highlighted), .wp-btn-primary, button[type="submit"].wp-btn):not(:hover):not(:focus-visible) {
  background-color: color-mix(in srgb, var(--bp-red) 88%, #000) !important;
  border-color: color-mix(in srgb, var(--bp-red) 88%, #000) !important;
}


/* ======================================================================
   REVISIONE B — blog e legali
   ====================================================================== */
/* ============================================================================
   B_patch.css — correzioni BLOG + PAGINE LEGALI per theme-bancoprova.css
   Da ACCODARE in fondo al foglio (dopo la sezione 20). Solo CSS: nessun testo,
   nessun markup. Testato su mastertuningfile.com (1280 / 820 / 390).
   Convenzione: prefisso `html body`, !important dove i fogli storici
   (luxury-global, frontend-v2, custom) lo impongono.
   ========================================================================== */

/* ---- B1. [P1] Il corpo non e' carta: main.site-main ha un suo background-image
   (due aloni radiali rossi 8% e 4% + un linear-gradient) che COPRE la carta
   millimetrata del body e sporca di rosa l'angolo alto e quello basso-destro.
   Si toglie: la carta del body torna visibile in tutto il contenuto. ---- */
html body main.site-main,
html body #main-content {
  background-image: none !important;
  background-color: transparent !important;
}
html body::after { background-image: none !important; }   /* alone radiale fisso 4% */

/* ---- B2. [P0] Legali: il pannello bianco ".shaperoundedTop" (80px, raggio 80,
   margine -80px, dentro .innerbannerContent z-index:2) copre la curva rossa del
   banner: restano visibili solo le due tacche ai bordi. Si rende invisibile ma si
   MANTIENE la geometria (80px) cosi' il resto non salta. ---- */
html body .shaperoundedTop {
  visibility: hidden !important;      /* un background transparent non basta: un foglio storico impone #fff !important */
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  pointer-events: none;
}
/* angolo scarpato in alto a sinistra (custom.css: clip-path polygon(80px 0 ...)):
   lascia un triangolo bianco che sembra un buco; l'asse del grafico e' orizzontale */
html body .innerBanner { clip-path: none !important; }

/* ---- B3. [P1] Legali: ~148px di vuoto fra la curva e il primo titolo.
   Somma: .PrivacypolicyContainer padding 30(mobile)/60(desktop) + .mappingleftsec
   padding 51 + margin-top 36 del primo h2. Il pannello diventa un "foglio" della
   larghezza del testo, con filetto d'inchiostro in testa. ---- */
html body .PrivacypolicyContainer { padding-top: 24px !important; padding-bottom: 40px !important; }
/* :is(main,#main-content) serve a pareggiare la specificita' della regola a riga 144 del tema */
html body :is(main, #main-content) .PrivacypolicyContainer .mappingleftsec {
  max-width: 920px !important;
  margin-left: auto !important; margin-right: auto !important;
  padding: clamp(20px, 3.4vw, 40px) clamp(20px, 5vw, 64px) clamp(28px, 4vw, 48px) !important;
  border-top: 3px solid var(--bp-ink) !important;
  border-radius: 0 0 var(--bp-r-lg) var(--bp-r-lg) !important;
}
html body .PrivacypolicyContainer .mappingCont { max-width: none !important; }
html body .PrivacypolicyContainer .mappingCont > :first-child { margin-top: 0 !important; }
html body .PrivacypolicyContainer .mappingCont :is(h1, h2) { font-variant-numeric: tabular-nums lining-nums; text-wrap: balance; }
/* le righe d'indirizzo sono <p> consecutivi: 1.75 di interlinea + 20px di margine
   le fa sembrare voci separate */
html body .PrivacypolicyContainer .mappingCont p { margin: 0 0 .85em !important; }
html body .PrivacypolicyContainer .mappingCont h3 { font-size: 1.125rem !important; margin-top: 1.75rem !important; }
html body .PrivacypolicyContainer .mappingCont h4 { font-size: 1rem !important; margin-top: 1.25rem !important; }

/* ---- B4. [P1] Legali: pulsante "torna indietro" con alone rosso 30px, gradiente,
   angoli 12px e maiuscole: e' l'unico residuo della skin scura. Diventa il
   pulsante del foglio. ---- */
html body .backcentercont__ .cta,
html body .installerViewContainer button.cta {
  background: var(--bp-red) !important; background-image: none !important;
  border: 2px solid var(--bp-red) !important; border-radius: var(--bp-r) !important;
  box-shadow: none !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
  text-transform: none !important; letter-spacing: .02em !important; font-weight: 700 !important;
  min-height: 48px;
  transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}
html body .backcentercont__ .cta:hover {
  background: var(--bp-ink) !important; border-color: var(--bp-ink) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none !important;
}
html body .backcentercont__ .cta:active { transform: scale(.98) !important; box-shadow: none !important; }
html body .commonconatctlinkSection { background: transparent !important; }

/* ---- B5. [P2] Mobile: body padding-top 80px con testata alta 65px -> striscia di
   15px di carta fra testata e banner. (Verificare la soglia: sopra i 992px la
   testata e' 90/91px e il padding 90px, corretti.) ---- */
@media (max-width: 767px) { html body { padding-top: 65px !important; } }

/* ---- B6. Blog: titolo e sottotitolo dell'elenco ---- */
html body .blog-header p {
  max-width: 54ch; margin-left: auto !important; margin-right: auto !important;
  text-wrap: balance;               /* niente "performance" da solo sulla seconda riga */
}

/* ---- B7. Blog: card a piede allineato (i "Read More" stanno a quote diverse nella
   stessa riga: la card e' alta uguale ma il contenuto no) ---- */
html body .blog-card { display: flex !important; flex-direction: column; overflow: hidden; }
html body .blog-card > a:not(.blog-card__image) { display: flex; flex-direction: column; flex: 1; }
html body .blog-card__content { flex: 1; display: flex !important; flex-direction: column; }
html body .blog-card__excerpt {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
html body .blog-card__footer { margin-top: auto !important; }
html body .blog-card__meta { font-variant-numeric: tabular-nums lining-nums; }
/* chip categoria: 11px era sotto la soglia di leggibilita'; resta chip, non pillola */
html body .blog-card__category, html body .blog-category-badge {
  font-size: .75rem !important; padding: 5px 12px !important; letter-spacing: .08em !important;
  /* categoria lunga (lituano, finlandese...): una riga con ellissi, mai a tutta card */
  max-width: calc(100% - 30px); white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis;
}
/* "Read More": 95x23 -> area di tocco 44 senza cambiare l'aspetto */
html body .blog-card__read-more { display: inline-flex !important; align-items: center; min-height: 44px; }
html body .blog-card__footer { padding-top: 0 !important; }
/* l'immagine non e' piu' staccata di 1px dal bordo */
html body .blog-card__image { margin: -1px -1px 0 !important; width: calc(100% + 2px) !important; }

/* ---- B8. Blog: paginazione. Il <ul> ha margin-top 48px (Bootstrap/tema) e il
   "Showing 1 to 12 of 26" gli sta a lato, sfalsato di 48px e a filo del primo
   pulsante. In colonna, centrati. ---- */
html body .blog-pagination nav { justify-content: center !important; width: 100%; }
html body .blog-pagination nav > div.d-sm-flex {
  flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 14px; width: 100%;
}
html body .blog-pagination nav > div.d-sm-flex > div:first-child { order: 2; }
html body .blog-pagination nav > div.d-sm-flex > div:last-child { order: 1; }
/* sotto 576px Bootstrap mostra solo « Previous / Next »: a tutta larghezza, 44px */
html body .blog-pagination nav > div.d-sm-none { width: 100%; }
html body .blog-pagination nav > div.d-sm-none .pagination { width: 100%; justify-content: space-between; }
html body .blog-pagination ul.pagination { margin: 0 !important; justify-content: center; gap: 6px; }
html body .blog-pagination .page-item .page-link { margin: 0 !important; padding: 10px 14px !important; min-width: 44px; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
html body .blog-pagination .page-item:not(.active):not(.disabled) .page-link:hover {
  border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none;
}
html body .blog-pagination .page-item.disabled .page-link { color: var(--bp-ink-3) !important; border-color: var(--bp-line) !important; background: transparent !important; }
html body .blog-pagination p.small { text-align: center; font-variant-numeric: tabular-nums; color: var(--bp-ink-3) !important; }

/* ---- B9. Articolo: misura di riga. 860px a 17.6px = ~95 caratteri per riga
   (soglia comoda 65-75). Colonna di lettura a 42rem, intestazione piu' larga. ---- */
html body .blog-post__content,
html body .blog-post__tags,
html body .blog-post__share {
  max-width: 42rem; margin-left: auto !important; margin-right: auto !important;
}
html body .blog-post__content { font-size: 1.0625rem !important; line-height: 1.75 !important; }
html body .blog-post__content > p:first-child { font-size: 1.1875rem; line-height: 1.65; color: var(--bp-ink) !important; }
html body .blog-post__content :is(p, li) { text-wrap: pretty; }
html body .blog-post__content strong, html body .blog-post__content b { font-weight: 700 !important; }
html body .blog-post__content a { text-underline-offset: .2em; text-decoration-thickness: 1px; }
html body .blog-post__content a:hover { text-decoration-thickness: 2px; }
/* intestazioni come intestazioni di tabella: filetto nero sopra, tacche sotto */
html body .blog-post__content h2 {
  border-top: 1px solid var(--bp-line-2) !important; padding-top: 14px !important; margin-top: 2.75rem !important;
  position: relative; padding-bottom: 14px !important;
}
html body .blog-post__content h2::after {
  content: "" !important; display: block !important; position: absolute; left: 0; bottom: 0; width: 72px; height: 8px;
  background:
    repeating-linear-gradient(90deg, var(--bp-ink) 0 1px, transparent 1px 8px) bottom / 100% 5px no-repeat,
    linear-gradient(var(--bp-red), var(--bp-red)) bottom / 100% 2px no-repeat;
}
html body .blog-post__content h3 { margin-top: 2rem !important; }
html body .blog-post__content blockquote { padding: 18px 22px !important; border-radius: 0 var(--bp-r) var(--bp-r) 0 !important; margin: 1.75rem 0 !important; }
/* nota legale: e' un avviso, non un paragrafo qualunque */
html body .blog-post__content .legal-note {
  background: #f7f7f8 !important; border: 1px solid var(--bp-line) !important; border-left: 0 !important;
  border-radius: 0 var(--bp-r) var(--bp-r) 0 !important; padding: 16px 20px !important; font-size: 1rem; color: var(--bp-ink) !important;
}
html body .blog-post__content .legal-note strong { color: var(--bp-ink) !important; }

/* ---- B10. Articolo: testata. Il titolo non ha il righello che hanno tutti gli
   altri titoli; i metadati non hanno separatori. ---- */
html body .blog-post__title { text-wrap: balance; position: relative; padding-bottom: 22px !important; margin-bottom: 22px !important; }
html body .blog-post__title::after {
  content: "" !important; display: block !important; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 112px; height: 10px;
  background:
    repeating-linear-gradient(90deg, var(--bp-ink) 0 1px, transparent 1px 8px) bottom / 100% 6px no-repeat,
    linear-gradient(var(--bp-red), var(--bp-red)) bottom / 100% 2px no-repeat;
}
html body .blog-post__meta { font-variant-numeric: tabular-nums lining-nums; gap: 0 !important; flex-wrap: wrap; row-gap: 6px; }
html body .blog-post__meta > * { padding: 0 16px; }
html body .blog-post__meta > * + * { border-left: 1px solid var(--bp-line-2); }
@media (max-width: 575px) {   /* a capo i separatori diventano barre orfane: via */
  html body .blog-post__meta { gap: 6px 4px !important; }
  html body .blog-post__meta > * { padding: 0 10px; }
  html body .blog-post__meta > * + * { border-left: 0; }
}
html body .blog-post__category { font-size: .8125rem !important; }

/* ---- B11. Articolo: etichette. Doppio bordo (contenitore + ogni chip), 10.4px,
   area di tocco 39px. ---- */
html body .blog-post__tags {
  border: 0 !important; background: transparent !important; padding: 0 !important; gap: 10px; flex-wrap: wrap; justify-content: flex-start;
}
html body .blog-post__tag {
  font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .06em !important;
  min-height: 44px; display: inline-flex !important; align-items: center; padding: 0 16px !important;
  border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
html body .blog-post__tag:hover { border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30); transform: none; color: var(--bp-ink) !important; }

/* ---- B12. Articolo: condivisione. Quattro colori di marca esterni (#1877f2,
   #0088cc, #0a66c2, #25d366) con icona inchiostro: contrasto 3.6-4.3:1 sul blu
   e ben 4 colori contro "un solo rosso". Pulsanti di foglio. ---- */
html body .blog-post__share { border-top: 2px solid var(--bp-ink) !important; border-bottom: 0 !important; justify-content: flex-start !important; gap: 12px; padding: 24px 0 0 !important; }
html body .blog-post__share-btn {
  background: #fff !important; background-image: none !important; color: var(--bp-ink) !important;
  border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important;
  width: 48px !important; height: 48px !important; box-shadow: none !important;
  transition: background-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}
html body .blog-post__share-btn :is(i, svg) { color: inherit !important; fill: currentColor; }
html body .blog-post__share-btn:hover {
  background: var(--bp-ink) !important; color: #fff !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none !important;
}
html body .blog-post__share-btn:active { transform: scale(.96) !important; box-shadow: none !important; }

/* ---- B13. Correlati ----
   (a) il righello e' ancorato a sinistra (left:0) ma il titolo e' centrato:
       .related-posts__title non e' nella lista [..]::after centrata (riga 131).
   (b) bordo 1px della card + immagine inset di 1px = filo doppio attorno al blocco
       del titolo (e vuoto bianco da 72px sotto una riga sola).
   (c) .related-posts ha border-top rgba(255,255,255,.1): residuo del tema scuro. */
html body .related-posts { border-top: 0 !important; padding-top: 24px !important; }
html body .related-posts__title { text-align: center; }
html body .related-posts__title::after { left: 50% !important; transform: translateX(-50%) !important; }
html body :is(main, #main-content) .related-post-card {
  border: 0 !important; outline: 1px solid var(--bp-line); outline-offset: -1px;   /* il filo sta SOPRA l'immagine */
  overflow: hidden; display: flex !important; flex-direction: column;
}
html body :is(main, #main-content) .related-post-card:hover { outline-color: var(--bp-ink); }
html body .related-post-card__image img { display: block; width: 100%; }
html body .related-post-card__content { padding: 16px 20px 18px !important; flex: 1; display: flex; align-items: flex-start; }
html body .related-post-card__title { margin: 0 !important; font-size: 1.0625rem !important; line-height: 1.35 !important; text-wrap: balance; }
html body .related-post-card__title a { display: block; padding: 2px 0; text-decoration: none; }
html body .related-post-card:hover .related-post-card__title a { color: var(--bp-red-t) !important; }

/* ---- B14. Movimento: rispetta le preferenze ---- */
@media (prefers-reduced-motion: reduce) {
  html body :is(.blog-post__tag, .blog-post__share-btn, .page-link, .backcentercont__ .cta):hover { transform: none !important; }
}


/* ======================================================================
   REVISIONE D — ECU, DTC, database, scheda motore
   ====================================================================== */
/* ============================================================================
   D. CATALOGO ECU / DTC / DATABASE VEICOLI — correzioni da accodare a
   theme-bancoprova.css (sezione 21). Solo CSS, nessun testo, nessun markup.
   Ogni blocco indica il difetto (D-xx) del rapporto D_ecu_dtc_vdb.md.
   ========================================================================== */

/* ---- D-01 (P0) Token della scheda: i fogli storici dichiarano --ts-* scuri su :root.
        Si ridefiniscono sul <main>: tutto cio' che li usa (card, tabelle, specifiche,
        FAQ, back, text-logo) diventa foglio bianco senza toccare le singole regole. */
html body main.ts-page:not(#_) {
  --ts-card-bg: #ffffff; --ts-card-bg-hover: #ffffff;
  --ts-card-border: var(--bp-line);
  --ts-card-border-hover: var(--bp-ink);
  --ts-card-shadow: none; --ts-card-shadow-hover: 4px 4px 0 var(--bp-red);
  --ts-card-radius: var(--bp-r-lg);
  --ts-text-primary: var(--bp-ink); --ts-text-secondary: var(--bp-ink-2); --ts-text-muted: var(--bp-ink-3);
  --ts-accent: var(--bp-red-t); --ts-accent-light: var(--bp-tint); --ts-accent-glow: transparent;
  --ts-bg-light: #ffffff; --ts-bg-gray: #f7f7f8; --ts-bg-section: #f4f4f6;
}
/* la barra fissa in basso resta uno strumento scuro: i token tornano scuri qui */
html body .ts-sticky-bar:not(#_) {
  --ts-card-bg: #111114; --ts-card-border: rgba(255,255,255,.12);
  --ts-text-primary: #ffffff; --ts-text-secondary: rgba(255,255,255,.82); --ts-text-muted: rgba(255,255,255,.64);
  --ts-accent: #ff4d5e; --ts-bg-section: #1a1a1f;
}
html body .ts-sticky-bar:not(#_) :is(strong, b, span, p, a, small) { -webkit-text-fill-color: currentColor !important; }
html body .ts-sticky-bar:not(#_) strong { color: #ffffff !important; }
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-gain, html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-gain * { color: #ff6b79 !important; }  /* 5.4:1 su #18181b (era 2.9) */
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-btn--active { background: var(--bp-red-d) !important; }                                         /* bianco su rosso 6.0:1 (era bianco su verde 2.3) */
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-btn--active * { color: #ffffff !important; }
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__btn, html body .ts-sticky-bar:not(#_) .ts-sticky-bar__btn * { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__btn--whatsapp { background: #0f7a3f !important; }   /* bianco su #25d366 = 1.8 -> 5.4 */
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__btn--call { background: #1d4ed8 !important; }       /* bianco su #3b82f6 = 3.1 -> 6.7 */
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__btn--quote { background: var(--bp-red-d) !important; } /* 600 del tenant: bianco >= 4.5 anche con primary-500 #fc0303 (4.07) */

/* ---- D-02 (P0) Pannelli Potenza/Coppia: [class*="card"] di luxury-global li rendeva
        scuri (gradiente #1c1c24). Foglio bianco, barre piatte, niente bagliori. */
html body main.ts-page:not(#_) .ts-gauge-card {
  background: #ffffff !important; background-image: none !important;
  border: 1px solid var(--bp-line) !important; border-top: 3px solid var(--bp-ink) !important;
  border-radius: var(--bp-r) !important; box-shadow: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html body main.ts-page:not(#_) .ts-gauge-card__header {
  background: transparent !important; background-image: none !important;
  border-bottom: 1px solid var(--bp-line) !important; color: var(--bp-ink) !important;
  letter-spacing: .12em !important;
}
html body main.ts-page:not(#_) .ts-gauge-card__header iconify-icon { filter: none !important; color: var(--bp-red) !important; }
html body main.ts-page:not(#_) .ts-gauge-card__body { background: transparent !important; }
html body main.ts-page:not(#_) .ts-bars { background: transparent !important; box-shadow: none !important; border: 0 !important; }
/* il numero: era un gradiente bianco-su-bianco con ombra; ora inchiostro pieno, cifre tabulari */
html body main.ts-page:not(#_) .ts-bars__number {
  background: none !important; -webkit-background-clip: border-box !important; background-clip: border-box !important;
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  text-shadow: none !important; font-variant-numeric: tabular-nums lining-nums; line-height: 1.04 !important;
  padding-top: .06em;                                   /* il "140" toccava il bordo superiore */
}
html body main.ts-page:not(#_) .ts-bars__unit { color: var(--bp-ink-3) !important; }
html body main.ts-page:not(#_) .ts-bars__gain {
  background: #e9f6ee !important; color: #11602f !important; -webkit-text-fill-color: #11602f !important;   /* 7.3:1 (era bianco su #22c55e 2.3) */
  border: 1px solid #a7d8b9 !important; box-shadow: none !important; border-radius: var(--bp-r) !important;
}
html body main.ts-page:not(#_) .ts-bars__gain iconify-icon { color: #11602f !important; filter: none !important; animation: none !important; }
/* barre: binario con tacche, originale grigio acciaio, modificata rosso di marca, piatte */
html body main.ts-page:not(#_) .ts-bars__bar-wrap {
  background:
    repeating-linear-gradient(0deg, rgba(17,17,20,.18) 0 1px, transparent 1px 20px),
    #f1f1f4 !important;
  border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important; box-shadow: none !important;
}
html body main.ts-page:not(#_) .ts-bars__bar { border-radius: 2px !important; }
html body main.ts-page:not(#_) .ts-bars__item--original .ts-bars__bar { background: #7a808c !important; box-shadow: none !important; }
html body main.ts-page:not(#_) .ts-bars__item--modified .ts-bars__bar { background: var(--bp-red) !important; box-shadow: none !important; animation: none !important; }
html body main.ts-page:not(#_) .ts-bars__label { color: var(--bp-ink-3) !important; text-shadow: none !important; }
html body main.ts-page:not(#_) .ts-bars__item--modified .ts-bars__label { color: var(--bp-red-t) !important; }
html body main.ts-page:not(#_) .ts-bars__val { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; text-shadow: none !important; font-variant-numeric: tabular-nums; }

/* ---- D-03 (P0) Grafico potenza/coppia: pannello e canvas nero #1a1a1f.
        Il canvas si disegna da JS con colori fissi: lo si inverte in CSS (nero->carta,
        rosso e azzurro restano rosso e azzurro grazie a hue-rotate). */
html body main.ts-page:not(#_) .ts-dynograph {
  background: #ffffff !important; border: 1px solid var(--bp-line) !important; border-top: 3px solid var(--bp-ink) !important;
  border-radius: var(--bp-r) !important; box-shadow: none !important;
}
html body main.ts-page:not(#_) .ts-dynograph__header { border-bottom: 1px solid var(--bp-line) !important; }
html body main.ts-page:not(#_) .ts-dynograph__title { color: var(--bp-ink) !important; }
html body main.ts-page:not(#_) .ts-dynograph__title iconify-icon { color: var(--bp-red) !important; filter: none !important; }
html body main.ts-page:not(#_) .ts-dynograph__value-label { color: var(--bp-ink-3) !important; }
html body main.ts-page:not(#_) .ts-dynograph__value--power, html body main.ts-page:not(#_) .ts-dynograph__value--power-orig { color: var(--bp-red-t) !important; }
html body main.ts-page:not(#_) .ts-dynograph__value--torque, html body main.ts-page:not(#_) .ts-dynograph__value--torque-orig { color: #0b6aa8 !important; } /* 5.6:1 (era #33bbff 2.1) */
html body main.ts-page:not(#_) .ts-dynograph__value-box--original { opacity: 1 !important; }
html body main.ts-page:not(#_) .ts-dynograph__canvas-wrapper { background: #ffffff !important; padding: 0 !important; border-top: 1px solid var(--bp-line); }
html body main.ts-page:not(#_) .ts-dynograph__canvas-wrapper canvas {
  filter: none; /* il canvas si disegna gia' in versione chiara (mtSkin), a risoluzione piena */
  border-radius: 0 !important;
}

/* ---- D-04 (P0) Blocco «File di rimappatura per…»: sfondo #111114 con testo #343842
        (1.6:1, illeggibile). Foglio bianco con filetto rosso. */
html body main.ts-page:not(#_) .ts-text-logo {
  background: #ffffff !important; border: 1px solid var(--bp-line) !important; border-left: 0 !important;
  border-radius: var(--bp-r) !important; box-shadow: none !important; background-image: none !important;
}
html body main.ts-page:not(#_) .ts-text-logo__content, html body main.ts-page:not(#_) .ts-text-logo__content p { color: var(--bp-ink-2) !important; -webkit-text-fill-color: var(--bp-ink-2) !important; }
html body main.ts-page:not(#_) .ts-text-logo__content :is(h1, h2, h3, h4, strong, b) { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body main.ts-page:not(#_) .ts-text-logo__content ul li { color: var(--bp-ink) !important; }
html body main.ts-page:not(#_) .ts-text-logo__content ul li::before { color: var(--bp-red) !important; }
html body main.ts-page:not(#_) .ts-text-logo__image { background: #ffffff !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r) !important; }

/* ---- D-05 (P0) «Torna a …»: pillola nera con testo scuro (1.6:1) */
html body main.ts-page:not(#_) .ts-back {
  background: #ffffff !important; background-image: none !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  border: 2px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important; box-shadow: none !important;
  min-height: 44px; font-weight: 700 !important;
}
html body main.ts-page:not(#_) .ts-back * { color: inherit !important; -webkit-text-fill-color: currentColor !important; }
html body main.ts-page:not(#_) .ts-back iconify-icon { color: var(--bp-red) !important; -webkit-text-fill-color: var(--bp-red) !important; }
html body main.ts-page:not(#_) .ts-back:hover { background: var(--bp-ink) !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; }
html body main.ts-page:not(#_) .ts-back:hover * { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }

/* ---- D-06 (P0) Carosello «Scopri le nostre soluzioni»: voci a 6% di bianco su bianco,
        testo #fff (1:1): la sezione era invisibile. */
html body section.TuningTypes_Widget:not(#_) .pt-categories .item {
  background: #ffffff !important; border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r-lg) !important;
  box-shadow: none !important; clip-path: none !important;
}
html body section.TuningTypes_Widget:not(#_) .pt-categories .item:hover {
  background: #ffffff !important; border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; transform: none !important;
}
html body section.TuningTypes_Widget:not(#_) .pt-categories .item .contentOption p,
html body section.TuningTypes_Widget:not(#_) .pt-categories .item p,
html body section.TuningTypes_Widget:not(#_) .pt-categories .item .contentOption iconify-icon {
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; font-weight: 700 !important;
}
html body section.TuningTypes_Widget:not(#_) .pt-categories .item .contentOption { justify-content: center; }
html body section.TuningTypes_Widget:not(#_) .pt-categories .item:hover .contentOption iconify-icon { color: var(--bp-red) !important; }

/* ---- D-07 (P1) FAQ: la voce era display:flex (domanda e risposta affiancate, titoli
        spezzati a 1 parola per riga) e la lista chiusa a 800px. */
html body main.ts-page:not(#_) .ts-faq-list { max-width: none !important; }
html body main.ts-page:not(#_) .ts-faq-item { display: block !important; padding: 0 !important; margin-bottom: 10px !important; }
html body main.ts-page:not(#_) .ts-faq-question {
  width: 100% !important; min-height: 56px; display: flex !important; align-items: center; justify-content: space-between; gap: 16px;
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; text-align: left;
}
html body main.ts-page:not(#_) .ts-faq-question:hover { color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; }
html body main.ts-page:not(#_) .ts-faq-icon { filter: none !important; background: none !important; flex: 0 0 auto; }
html body main.ts-page:not(#_) .ts-faq-item--open { border-color: var(--bp-ink) !important; box-shadow: inset 4px 0 0 var(--bp-red) !important; }
html body main.ts-page:not(#_) .ts-faq-answer p { color: var(--bp-ink-2) !important; max-width: 75ch; }
/* CTA in coda alla FAQ: gradiente rosso->rosa con testo bianco (3.4:1) e alone */
html body main.ts-page:not(#_) .ts-faq-cta { display: flex !important; flex-wrap: wrap; align-items: center; gap: 16px 24px; text-align: left !important; }
html body main.ts-page:not(#_) .ts-faq-cta p { margin: 0 !important; color: var(--bp-ink-2) !important; }
html body main.ts-page:not(#_) .ts-cta {
  background: var(--bp-red-d) !important; background-image: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
  border: 2px solid var(--bp-red-d) !important; border-radius: var(--bp-r) !important; box-shadow: none !important; min-height: 48px; font-weight: 700 !important;
}
html body main.ts-page:not(#_) .ts-cta:hover { background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; opacity: 1 !important; }
html body main.ts-page:not(#_) .ts-cta--secondary { background: transparent !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; border-color: var(--bp-ink) !important; }

/* ---- D-08 (P1) Badge guadagno verdi (+35 CV, +50 Nm): bianco su #22c55e = 2.3:1 */
html body main.ts-page:not(#_) .ts-specs-gain {
  background: #e9f6ee !important; color: #11602f !important; -webkit-text-fill-color: #11602f !important;
  border: 1px solid #a7d8b9 !important; border-radius: var(--bp-r) !important; box-shadow: none !important; font-variant-numeric: tabular-nums;
}

/* ---- D-09 (P1) Bagliori residui: drop-shadow rosso sulle icone (specifiche, titoli,
        FAQ) = alone rosa su carta bianca */
html body main.ts-page:not(#_) :is(iconify-icon, .ts-specs-row > *, .ts-faq-icon, .ts-section-header__title *) { filter: none !important; text-shadow: none !important; }
html body main.ts-page:not(#_) :is(.ts-section-header, .ts-specs-row, .ts-vehicle-summary) :is(span, div):not(.ts-bars__gain) { text-shadow: none !important; }

/* ---- D-10 (P1) Bordi doppi nelle specifiche chiave: ogni cella aveva filetto
        proprio + filetto del contenitore; una riga sola. */
html body main.ts-page:not(#_) .ts-vehicle-summary { background: #ffffff !important; background-image: none !important; box-shadow: none !important; border-radius: var(--bp-r-lg) !important; }
html body main.ts-page:not(#_) .ts-vehicle-summary__table { border: 0 !important; border-top: 2px solid var(--bp-ink) !important; border-radius: 0 !important; }
html body main.ts-page:not(#_) .ts-vehicle-summary__table :is(th, td) { border-bottom: 0 !important; }
html body main.ts-page:not(#_) .ts-vehicle-summary__table tr { border-bottom: 1px solid var(--bp-line) !important; }
html body main.ts-page:not(#_) .ts-vehicle-summary__table td { color: var(--bp-ink) !important; font-variant-numeric: tabular-nums; }
html body main.ts-page:not(#_) .ts-specs-compact { background: #ffffff !important; background-image: none !important; box-shadow: none !important; border-radius: var(--bp-r-lg) !important; border-top: 3px solid var(--bp-ink) !important; }
html body main.ts-page:not(#_) .ts-specs-row { border-bottom: 1px solid var(--bp-line) !important; }
html body main.ts-page:not(#_) .ts-specs-row:last-child { border-bottom: 0 !important; }
html body main.ts-page:not(#_) .ts-specs-label { color: var(--bp-ink-3) !important; }
html body main.ts-page:not(#_) .ts-specs-values { color: var(--bp-ink-2) !important; font-variant-numeric: tabular-nums; }
html body main.ts-page:not(#_) .ts-specs-values strong { font-size: 1.375em; }

/* ---- D-11 (P1) Hero scheda: il box centrale ha sfondo bianco opaco con bordi che sfumano
        sulla griglia (si leggono due "strappi" verticali) e le 4 card staccate. */
html body main.ts-page:not(#_) .ts-hero__content { background: transparent !important; background-image: none !important; }
html body main.ts-page:not(#_) .ts-hero__stats { gap: 0 !important; border-top: 3px solid var(--bp-ink); border-bottom: 1px solid var(--bp-line-2); background: #ffffff; }
html body main.ts-page:not(#_) .ts-hero__stat { border: 0 !important; border-left: 1px solid var(--bp-line) !important; border-radius: 0 !important; background: transparent !important; flex: 1 1 0; }
html body main.ts-page:not(#_) .ts-hero__stat:first-child { border-left: 0 !important; }
html body main.ts-page:not(#_) .ts-hero__stat:hover { transform: none !important; box-shadow: none !important; background: var(--bp-tint) !important; }
html body main.ts-page:not(#_) .ts-hero__stat-value { font-size: clamp(2.25rem, 5vw, 3.5rem) !important; font-weight: 800 !important; font-variant-numeric: tabular-nums lining-nums; letter-spacing: -.03em; line-height: 1 !important; }
html body main.ts-page:not(#_) .ts-hero__stat--accent .ts-hero__stat-value { color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important; }
html body main.ts-page:not(#_) .ts-hero__stat { padding: 20px 12px !important; }
html body main.ts-page:not(#_) .ts-hero__stat-label { letter-spacing: .08em !important; white-space: nowrap; color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important; font-size: .75rem !important; font-weight: 700 !important; }
html body main.ts-page:not(#_) .ts-breadcrumb :is(a, span, .ts-breadcrumb__current) { font-size: .875rem !important; }          /* ultimo anello 14px contro 16px degli altri */
html body main.ts-page:not(#_) .ts-breadcrumb a { padding: 12px 0 !important; min-height: 44px; display: inline-flex !important; align-items: center; }   /* tap target 44px */

/* ---- D-12 (P2) Spazio morto sotto la FAQ (~500px prima del piede) e tra carosello e testo */
html body main.ts-page:not(#_) > .ts-section:last-of-type { padding-bottom: clamp(32px, 5vw, 64px) !important; }
html body main.ts-page:not(#_) .ts-section--nav { padding-top: 8px !important; padding-bottom: 8px !important; }

/* ---- D-13 (P2) Mobile: pannelli e barre */
@media (max-width: 640px) {
  html body main.ts-page:not(#_) .ts-hero__stats { display: grid !important; grid-template-columns: 1fr 1fr; }
  html body main.ts-page:not(#_) .ts-hero__stat:nth-child(odd) { border-left: 0 !important; }
  html body main.ts-page:not(#_) .ts-hero__stat:nth-child(n+3) { border-top: 1px solid var(--bp-line); }
  html body main.ts-page:not(#_) .ts-bars__number { font-size: 52px !important; }
}

/* ---- D-14 (P2) Carosello soluzioni: voci da 130px con una riga di testo */
html body section.TuningTypes_Widget:not(#_) .pt-categories .item { height: 88px !important; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 14px 20px !important; }
html body section.TuningTypes_Widget:not(#_) .pt-categories .swiper-slide { height: auto !important; }
html body section.TuningTypes_Widget:not(#_) .pt-categories .item a { position: absolute; inset: 0; }

/* ---- D-15 (P1) Barra fissa: testo rosso su riquadro bianco con primary-500 chiaro (4.07:1) */
html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-final, html body .ts-sticky-bar:not(#_) .ts-sticky-bar__power-final * { color: var(--bp-red-d) !important; }
html body .ts-sticky-bar:not(#_) .tf-header__login-btn { background: var(--bp-red-d) !important; }

/* ---- D-16 (P1) «Stampa Certificato»: velo bianco semitrasparente con alone sulla griglia */
html body main.ts-page:not(#_) .ts-hero a[style] {
  background: #ffffff !important; border: 1px solid var(--bp-ink) !important; border-radius: var(--bp-r) !important;
  box-shadow: none !important; backdrop-filter: none !important; min-height: 44px; color: var(--bp-ink) !important; font-weight: 700 !important;
}
html body main.ts-page:not(#_) .ts-hero a[style]:hover { background: var(--bp-ink) !important; color: #ffffff !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important; }
html body main.ts-page:not(#_) .ts-hero a[style]:hover * { color: #ffffff !important; }
html body main.ts-page:not(#_) .ts-hero__title { font-family: var(--bp-font) !important; font-size: clamp(1.75rem, 5.2vw, 3.25rem) !important; line-height: 1.08 !important; overflow-wrap: break-word; text-wrap: balance; }

/* ---- D-17 (P1) Mobile: intestazione del grafico a parole spezzate (ORIGINA/LE), spec a 148px
        per riga, "Simo/s 10" spezzato a meta' parola, breadcrumb su tre righe */
@media (max-width: 640px) {
  html body main.ts-page:not(#_) .ts-dynograph__values { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px 16px; width: 100%; }
  html body main.ts-page:not(#_) .ts-dynograph__value-box { align-items: flex-start !important; }
  html body main.ts-page:not(#_) .ts-dynograph__value-label { font-size: .6875rem !important; overflow-wrap: normal !important; word-break: normal !important; hyphens: none; }
  html body main.ts-page:not(#_) .ts-dynograph__canvas-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  html body main.ts-page:not(#_) .ts-dynograph__canvas-wrapper canvas { width: 880px !important; max-width: none !important; }   /* assi a >= 9px reali invece di 5px */
  html body main.ts-page:not(#_) .ts-specs-row { flex-wrap: wrap; gap: 8px 12px; padding: 16px !important; }
  html body main.ts-page:not(#_) .ts-specs-values { white-space: nowrap; flex: 1 1 auto; }
  html body main.ts-page:not(#_) .ts-specs-gain { margin-left: auto; }
  html body main.ts-page:not(#_) .ts-vehicle-summary__table tr { padding: 4px 0; }
  html body main.ts-page:not(#_) .ts-vehicle-summary__table td { padding: 10px 16px !important; overflow-wrap: break-word !important; word-break: normal !important; hyphens: manual; }
  html body main.ts-page:not(#_) .ts-breadcrumb { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; white-space: nowrap; justify-content: flex-start !important; scrollbar-width: none; }
  html body main.ts-page:not(#_) .ts-breadcrumb > * { flex: 0 0 auto; }
  html body section.TuningTypes_Widget:not(#_) .pt-categories .item { height: auto !important; min-height: 72px; }
}

/* ---- D-18 (P2) Catalogo ECU: il titolo di sezione (.card h2) ha padding-bottom 18px senza
        righello: la barra rossa laterale e' alta il doppio del testo; ricerca senza stacco */
html body .ecu-main .card > h2 { padding-bottom: 0 !important; margin-bottom: 16px !important; line-height: 1.25 !important; }
html body .ecu-main .ecu-filter { margin: 4px 0 18px; }
html body .ecu-main .ecu-filter input { min-height: 48px; }
html body .ecu-main .grid a.it { min-height: 56px; }
html body .ecu-main .grid a.it:hover { border-color: var(--bp-ink) !important; box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30); transform: none; }
html body .ecu-main .grid a.it b { letter-spacing: .02em; overflow-wrap: anywhere; }

/* ---- D-19 (P1) Dizionario DTC: testo del piede #565d6b su #111114 (2.85:1) */
html:has(header.site) footer.site, html:has(header.site) footer.site :is(p, div, span, small, .wrap) { color: rgba(255,255,255,.78) !important; }
html:has(header.site) footer.site a { color: #ffffff !important; }
html:has(header.site) main a, html:has(header.site) .wrap > a { min-height: 24px; }
html:has(header.site) details summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; }

/* ---- D-20 (P2) Database veicoli: testo SEO centrato a 190px, fuori dalla griglia a 24px */
html body main.ts-page:not(#_) .ts-section--content > .ts-container { max-width: none; }



/* ======================================================================
   SOBRIETA' — passata «quieter/distill»: meno decorazione, piu' ordine.
   Tolti: carta millimetrata, righelli sotto i titoli, curva e tacche
   dell'hero, etichette in maiuscolo rosso, ombre a blocco, traslazioni.
   Resta: bianco, inchiostro, filetti sottili, un rosso usato con parsimonia.
   ====================================================================== */
:root { --bp-grid: transparent; --bp-grid-major: transparent; --bp-r: 6px; --bp-r-lg: 6px; }
html body, html body[class] { background-image: none !important; }

/* niente righello sotto i titoli (anche quelli aggiunti dalle revisioni) */
html body :is(main, #main-content, .ecu-main):not(#_) :is(h1, h2, h3, h4, h5, h6)::after,
html body :is(main, #main-content, .ecu-main):not(#_) :is(.wp-header, .ContentWrapper, .blog-header, .related-posts__title)::after {
  content: none !important; display: none !important;
}
html body :is(main, #main-content, .ecu-main):not(#_) :is(.wp-header h2, .widget-premium h2, .ContentWrapper > h3, .blog-header h1,
    .related-posts__title, .ts-seo-content h2, .ecu-main .card h2) { padding-bottom: 0 !important; }

/* hero: bordo inferiore netto, senza curva ne' tacche */
html body :is(section.HeaderLarge.bgImg, section.headerSmall.bgImg, section.headerFull.bgImg, .innerBanner):not(#_)::after {
  content: none !important; display: none !important;
}

/* etichette sopra i titoli: didascalia discreta, non un'insegna rossa */
html body :is(main, #main-content):not(#_) :is(.widget-premium .wp-badge, .wp-header .wp-badge, .brandsSection h6,
    .wp-step-subtitle, .blog-post__category) {
  color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important;
  font-size: .875rem !important; font-weight: 500 !important; letter-spacing: .01em !important; text-transform: none !important;
}
html body :is(main, #main-content):not(#_) :is(.wp-header .wp-badge)::before,
html body :is(main, #main-content):not(#_) :is(.wp-header .wp-badge)::after { content: none !important; display: none !important; }

/* titoli: peso 600, interlinea pulita */
html body :is(main, #main-content, .ecu-main):not(#_) :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 600 !important; letter-spacing: -0.01em !important;
}
html body :is(main, #main-content, .ecu-main):not(#_) :is(h1) { letter-spacing: -0.02em !important; }

/* link nel testo: inchiostro sottolineato, il rosso solo in hover */
html body :is(.blog-post__content, .PrivacypolicyContainer .mappingCont, .pd-description-content, .pd-tab-pane, .ts-seo-content, .ecu-main .card p):not(#_) a {
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 3px !important;
}
html body :is(.blog-post__content, .PrivacypolicyContainer .mappingCont, .pd-description-content, .pd-tab-pane, .ts-seo-content):not(#_) a:hover {
  color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important;
}
html body .blog-card__read-more { color: var(--bp-ink) !important; font-weight: 600 !important; }
html body .blog-card:hover .blog-card__read-more { color: var(--bp-red-t) !important; }

/* superfici: filetto sottile, profondita' morbida solo in hover, nessun movimento */
html body :is(main, #main-content):not(#_) :is(.blog-card, .wp-tuning-card, .ts-card, .product-card, .modcard, .related-post-card,
    .pd-related-product, .wp-step-item):hover {
  transform: none !important; border-color: var(--bp-line-2) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.06), 0 12px 24px -16px rgba(17,17,20,.30) !important;
}
html body :is(main, #main-content, .ecu-main):not(#_) :is(.btn-default, a.btn-default, .wp-btn-primary, .btn-primary, .btn-danger,
    .btn-search, .pd-add-to-cart-btn, .cta .t, .add-to-cart-btn):hover {
  background: var(--bp-red-d) !important; border-color: var(--bp-red-d) !important; box-shadow: none !important; transform: none !important;
}
/* passi: numeri semplici, senza doppio anello */
html body.page-slug-home .wp-step-number, html body :is(main, #main-content) .wp-step-number {
  box-shadow: none !important; background: var(--bp-ink) !important;
}
/* movimento: solo cambi di colore, nessuna entrata animata */
html body :is(main, #main-content):not(#_) * { animation-name: none !important; }
html body :is(main, #main-content):not(#_) :is(.swiper, .swiper-wrapper, .swiper-slide, [class*="slick"], .owl-carousel) * { animation-name: initial !important; }

/* ---------- Ricerca veicolo (widget qsv2: Database incrementi e pagine con ricerca rapida) ---------- */
html body .qsv2-section:not(#_) { background: transparent !important; color: var(--bp-ink) !important; padding: 56px 20px !important; }
html body .qsv2-container:not(#_) { --ts-card-bg: #ffffff; --ts-card-bg-hover: #f7f7f8; --ts-card-border: var(--bp-line); }
html body .qsv2-title:not(#_) {
  color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; font-family: var(--bp-font) !important;
  font-weight: 600 !important; letter-spacing: -0.01em !important; text-transform: none !important;
}
html body .qsv2-title strong:not(#_) { color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body .qsv2-subtitle:not(#_) { color: var(--bp-ink-3) !important; }
html body .qsv2-title-divider:not(#_) { display: none !important; }
html body .qsv2-vtype-btn:not(#_) {
  background: #ffffff !important; border: 1px solid var(--bp-line-2) !important; color: var(--bp-ink) !important;
  border-radius: var(--bp-r) !important; box-shadow: none !important; transform: none !important; min-width: 96px;
}
html body .qsv2-vtype-btn:not(#_):hover { border-color: var(--bp-ink) !important; background: #ffffff !important; }
html body .qsv2-vtype-btn.active:not(#_), html body .qsv2-vtype-btn.active:not(#_):hover {
  background: var(--bp-ink) !important; border-color: var(--bp-ink) !important; color: #ffffff !important; box-shadow: none !important; background-image: none !important;
}
html body .qsv2-vtype-icon:not(#_), html body .qsv2-vtype-icon svg:not(#_) { color: var(--bp-ink-2) !important; }
html body .qsv2-vtype-label:not(#_) { font-family: var(--bp-font) !important; letter-spacing: .02em !important; color: inherit !important; }
html body .qsv2-vtype-count:not(#_) { color: var(--bp-ink-3) !important; opacity: 1 !important; }
html body .qsv2-vtype-btn.active .qsv2-vtype-icon, html body .qsv2-vtype-btn.active .qsv2-vtype-icon svg,
html body .qsv2-vtype-btn.active .qsv2-vtype-label, html body .qsv2-vtype-btn.active .qsv2-vtype-count { color: #ffffff !important; }
html body .qsv2-search-card:not(#_) {
  background: #ffffff !important; border: 1px solid var(--bp-line) !important; border-radius: var(--bp-r-lg) !important;
  box-shadow: 0 1px 2px rgba(17,17,20,.05), 0 16px 32px -24px rgba(17,17,20,.30) !important;
}
html body .qsv2-field-label:not(#_) { color: var(--bp-ink-2) !important; font-family: var(--bp-font) !important; letter-spacing: .01em !important; text-transform: none !important; font-size: .8125rem !important; }
html body .qsv2-field-label .qsv2-step-num:not(#_) { background: var(--bp-ink) !important; color: #ffffff !important; }
html body .qsv2-select:not(#_) {
  background-color: #ffffff !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important;
  border: 1px solid var(--bp-line-2) !important; border-radius: var(--bp-r) !important;
}
html body .qsv2-select:not(#_):hover { border-color: var(--bp-ink) !important; }
html body .qsv2-select:not(#_):focus { border-color: var(--bp-ink) !important; box-shadow: 0 0 0 3px rgba(var(--color-primary-500-rgb, 199, 8, 27), .25) !important; }
html body .qsv2-select:disabled:not(#_) { background-color: #f4f4f5 !important; color: var(--bp-ink-3) !important; -webkit-text-fill-color: var(--bp-ink-3) !important; opacity: 1 !important; }
html body .qsv2-select option:not(#_) { background: #ffffff !important; color: var(--bp-ink) !important; -webkit-text-fill-color: var(--bp-ink) !important; }
html body .qsv2-submit-btn:not(#_) {
  background: var(--bp-red) !important; background-image: none !important; color: #ffffff !important; box-shadow: none !important;
  border: 2px solid var(--bp-red) !important; border-radius: var(--bp-r) !important; font-family: var(--bp-font) !important;
  letter-spacing: .02em !important; text-transform: none !important; font-weight: 700 !important; transform: none !important;
}
html body .qsv2-submit-btn:not(#_):hover { background: var(--bp-red-d) !important; border-color: var(--bp-red-d) !important; transform: none !important; box-shadow: none !important; }
/* fasce vuote tra i blocchi della pagina */
html body section.mainContainerBox:not(#_) { background: transparent !important; margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
html body .qsv2-vtype-btn.active:not(#_) .qsv2-vtype-icon svg, html body .qsv2-vtype-btn.active:not(#_) .qsv2-vtype-icon i { filter: brightness(0) invert(1) !important; }
/* invito finale: pannello inchiostro pieno, senza trame */
html body :is(main, #main-content):not(#_) .wp-cta { background-image: none !important; background-color: var(--bp-ink) !important; }
html body :is(main, #main-content):not(#_) .wp-cta::before, html body :is(main, #main-content):not(#_) .wp-cta::after { content: none !important; display: none !important; }
html body :is(main, #main-content):not(#_) .wp-cta h2 { font-size: clamp(1.75rem, 3.2vw, 2.25rem) !important; }
html body :is(main, #main-content):not(#_) .wp-cta p { text-transform: none !important; letter-spacing: 0 !important; font-size: 1.0625rem !important; color: rgba(255,255,255,.82) !important; -webkit-text-fill-color: rgba(255,255,255,.82) !important; }

/* ======================================================================
   REGISTRO «APPLE / TESLA» — minimale, tipografia grande, molto respiro.
   Superfici grigio perla senza bordo, angoli ampi, pulsanti a pillola,
   un solo rosso. Solo stile: nessun testo e nessuna composizione cambia.
   ====================================================================== */
:root {
  --ap-ink: #1d1d1f; --ap-ink-2: #424245; --ap-ink-3: #6e6e73;
  --ap-surface: #f5f5f7; --ap-surface-2: #ececef; --ap-line: rgba(0,0,0,.10);
  --ap-r: 18px; --ap-r-sm: 12px; --ap-pill: 980px;
  --bp-ink: var(--ap-ink); --bp-ink-2: var(--ap-ink-2); --bp-ink-3: var(--ap-ink-3);
  --bp-line: var(--ap-line); --bp-line-2: rgba(0,0,0,.22);
  --bp-r: var(--ap-r-sm); --bp-r-lg: var(--ap-r);
}
html body { font-family: 'DM Sans', -apple-system, 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* --- tipografia: titoli grandi, tracking stretto, peso 600 --- */
html body :is(main, #main-content, .ecu-main):not(#_) h1 {
  font-size: clamp(2.25rem, 5.2vw, 4rem) !important; line-height: 1.06 !important; letter-spacing: -0.035em !important; font-weight: 600 !important; text-wrap: balance;
}
html body :is(main, #main-content, .ecu-main):not(#_) h2 {
  font-size: clamp(1.625rem, 3.4vw, 2.5rem) !important; line-height: 1.12 !important; letter-spacing: -0.028em !important; font-weight: 600 !important; text-wrap: balance;
}
html body :is(main, #main-content, .ecu-main):not(#_) h3 { letter-spacing: -0.015em !important; font-weight: 600 !important; }
html body :is(.entry-content, .wp-text-content, .blog-post__content, .PrivacypolicyContainer .mappingCont, .pd-description-content, .ts-seo-content):not(#_) :is(p, li) {
  font-size: 1.0625rem !important; line-height: 1.58 !important; color: var(--ap-ink-2) !important;
}
html body :is(.HeaderLarge, .headerSmall, .innerBanner) :is(h1, h6.SubTitleHeader, .BnrMainTitle, .innerbannerContent h1):not(#_) {
  font-size: clamp(2.5rem, 6.4vw, 5rem) !important; line-height: 1.02 !important; letter-spacing: -0.04em !important; font-weight: 600 !important; text-transform: none !important;
}

/* --- ritmo: sezioni con molto spazio --- */
html body :is(.widget-premium, .qsv2-section, .PriceslistContainer):not(#_) { padding-top: clamp(48px, 7vw, 104px) !important; padding-bottom: clamp(48px, 7vw, 104px) !important; }
html body :is(.wp-header, .qsv2-title-wrap):not(#_) { margin-bottom: clamp(28px, 4vw, 56px) !important; }

/* --- hero: a tutta altezza, titolo protagonista, nessun bordo decorativo --- */
html body :is(section.HeaderLarge.bgImg):not(#_) { min-height: min(76vh, 700px); display: flex; align-items: center; justify-content: center; }
html body :is(section.headerSmall.bgImg, .innerBanner):not(#_) { min-height: min(46vh, 380px); display: flex; align-items: center; justify-content: center; }
html body :is(section.HeaderLarge.bgImg, section.headerSmall.bgImg, .innerBanner):not(#_)::before {
  background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.34) 60%, rgba(0,0,0,.62) 100%) !important;
}
html body :is(.HeaderLarge, .headerSmall) .bnrSubTitle:not(#_) { font-size: clamp(1.125rem, 2.2vw, 1.5rem) !important; font-weight: 400 !important; opacity: .92; }

/* --- superfici: grigio perla, nessun bordo, angoli ampi --- */
html body :is(main, #main-content):not(#_) :is(.blog-card, .wp-tuning-card, .ts-card, .product-card, .modcard, .related-post-card,
    .pd-related-product, .wp-step-item, .card, .wp-card, .search-bar-wrapper, .qsv2-search-card, .alert) {
  background: var(--ap-surface) !important; border: 0 !important; border-radius: var(--ap-r) !important; box-shadow: none !important; overflow: hidden;
}
html body :is(main, #main-content):not(#_) :is(.blog-card, .wp-tuning-card, .ts-card, .product-card, .modcard, .related-post-card, .pd-related-product, .wp-step-item):hover {
  background: var(--ap-surface-2) !important; box-shadow: none !important; transform: none !important;
}
html body :is(main, #main-content):not(#_) :is(.wp-contact-form, .mappingleftsec, .pd-tabs-section, .pd-related-section, .card.sticky-top) {
  background: #ffffff !important; border: 0 !important; box-shadow: none !important; border-radius: var(--ap-r) !important;
}
html body .wp-contact-form:not(#_), html body .PrivacypolicyContainer .mappingleftsec:not(#_) { background: var(--ap-surface) !important; }
html body .product-card .image-container:not(#_), html body .blog-card__image:not(#_) { background: #ffffff !important; border: 0 !important; border-radius: 0 !important; }
html body :is(main, #main-content):not(#_) :is(.blog-card__footer, .card-header, .pd-tabs-nav, .pd-spec-table td, .pd-spec-table th) { border-color: var(--ap-line) !important; }
html body :is(main, #main-content):not(#_) .card-header { border-bottom-width: 1px !important; background: transparent !important; }
/* filetti spessi (2-3px inchiostro) → capello */
html body :is(main, #main-content, .ecu-main):not(#_) *:not(.tf-footer *):not(.tf-header *):not(.tf-footer):not(.skip-link) { border-top-color: var(--ap-line) !important; }
html body :is(main, #main-content, .ecu-main):not(#_) :is(.ts-dynograph, .ts-gauge-card, .ts-specs, .ts-hero__stat, .ts-hero__stats, .ts-vehicle-summary, .ecu-main .card.cta-top,
   .wp-header, .ContentWrapper, hr, .pd-tabs-nav, .blog-post__share, .blog-post__tags) { border-top-width: 1px !important; }
html body :is(main, #main-content, .ecu-main):not(#_) :is(th) { border-bottom: 1px solid var(--bp-line-2) !important; }
html body :is(main, #main-content):not(#_) :is(.ts-hero, .ecu-main .hero) { border-bottom: 0 !important; }

/* --- pulsanti: pillola --- */
html body :is(main, #main-content, .ecu-main):not(#_) :is(.btn-default, a.btn-default, .wp-btn-primary, .btn-primary, .btn-danger, .btn-search,
    .pd-add-to-cart-btn, .cta .t, .add-to-cart-btn, .qsv2-submit-btn, .modbuy, button[type="submit"].btn, .wp-btn) {
  border-radius: var(--ap-pill) !important; padding: 13px 28px !important; font-size: 1.0625rem !important; font-weight: 500 !important; letter-spacing: -0.005em !important;
  min-height: 48px; border-width: 1px !important;
}
html body :is(main, #main-content, .ecu-main):not(#_) :is(.btn-default.btn-highlighted, .btn-outline-danger, .btn-outline-secondary, .cta .b, .pd-related-cart-btn, .btn-secondary, .ts-back) {
  border-radius: var(--ap-pill) !important; border-width: 1px !important; font-weight: 500 !important; padding: 12px 24px !important; min-height: 48px;
}
html body :is(.qsv2-vtype-btn):not(#_) { border-radius: var(--ap-r-sm) !important; }
html body :is(.qsv2-vtype-btn.active):not(#_) .qsv2-vtype-count { color: rgba(255,255,255,.82) !important; -webkit-text-fill-color: rgba(255,255,255,.82) !important; }

/* --- campi --- */
html body :is(main, #main-content):not(#_) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea, .form-control, .form-select, .qsv2-select) {
  border: 1px solid #d2d2d7 !important; border-radius: var(--ap-r-sm) !important; background: #ffffff !important; min-height: 48px; padding-left: 16px !important;
}
html body :is(main, #main-content):not(#_) textarea { min-height: 120px; padding-top: 14px !important; }

/* --- etichette e dettagli --- */
html body :is(main, #main-content):not(#_) :is(.blog-card__category, .blog-category-badge) {
  border: 0 !important; border-radius: var(--ap-pill) !important; background: rgba(255,255,255,.92) !important; color: var(--ap-ink) !important; font-size: .75rem !important; padding: 5px 12px !important;
}
html body :is(main, #main-content):not(#_) :is(.badge, .discount-badge, .pd-stock-status) { border-radius: var(--ap-pill) !important; }
html body :is(main, #main-content):not(#_) :is(.blog-post__tag, .pagination .page-link, .blog-pagination .page-link) { border-radius: var(--ap-pill) !important; }
html body .wp-step-number:not(#_) { background: var(--ap-ink) !important; box-shadow: none !important; }
html body .wp-step-item:not(#_) { background: transparent !important; text-align: center; padding: 8px 12px !important; }

/* --- contenuto CMS con stili inline scritti per il tema scuro (/servizi e traduzioni) --- */
html body :is(main, #main-content) [style*="background:#1b1b1b"], html body :is(main, #main-content) [style*="background: #1b1b1b"],
html body :is(main, #main-content) [style*="background:#111"], html body :is(main, #main-content) [style*="background:#141414"],
html body :is(main, #main-content) [style*="background:#1a1a1a"], html body :is(main, #main-content) [style*="background:#0f0f0f"] {
  background: var(--ap-surface) !important; border-color: transparent !important; border-radius: var(--ap-r) !important; box-shadow: none !important;
}
html body :is(main, #main-content) :is([style*="background:#1b1b1b"], [style*="background: #1b1b1b"], [style*="background:#111"], [style*="background:#141414"], [style*="background:#1a1a1a"]) :is(h2, h3, h4, strong, div, span, p):not(#_) { }
html body :is(main, #main-content) [style*="color:#fff"], html body :is(main, #main-content) [style*="color: #fff"], html body :is(main, #main-content) [style*="color:#ffffff"] {
  color: var(--ap-ink) !important; -webkit-text-fill-color: var(--ap-ink) !important;
}
html body :is(main, #main-content) :is([style*="color:#b5b5b5"], [style*="color:#9a9a9a"], [style*="color:#aaa"], [style*="color:#bbb"], [style*="color:#999"], [style*="color:#ccc"]) {
  color: var(--ap-ink-3) !important; -webkit-text-fill-color: var(--ap-ink-3) !important;
}
html body :is(main, #main-content) :is([style*="color:#ff4040"], [style*="color:#ff3333"], [style*="color:#ff0000"], [style*="color:#e30613"]) {
  color: var(--bp-red-t) !important; -webkit-text-fill-color: var(--bp-red-t) !important;
}
html body :is(main, #main-content) [style*="border:1px solid #ff4040"], html body :is(main, #main-content) [style*="border: 1px solid #ff4040"] {
  border: 0 !important; background: rgba(var(--color-primary-500-rgb, 199, 8, 27), .10) !important; border-radius: var(--ap-pill) !important;
}
html body :is(main, #main-content) [style*="border-left:3px solid"], html body :is(main, #main-content) [style*="border-left: 3px solid"] {
  border-left: 0 !important; background: var(--ap-surface) !important; border-radius: var(--ap-r) !important;
}
html body :is(main, #main-content) [style*="font-size:1.7rem"] { letter-spacing: -0.03em; font-size: 2.25rem !important; }

/* --- testata e piede: un filo, nessuna decorazione --- */
html body .tf-header { border-bottom: 1px solid rgba(255,255,255,.08) !important; }
/* titoli di prodotto e di scheda: lunghi, devono restare leggibili */
html body :is(#productdetail_mainWrap, .product-detail-page, .boxcar-title-three) h1:not(#_),
html body :is(.pd-product-info, .pd-product-title):not(#_) { font-size: clamp(1.625rem, 3vw, 2.5rem) !important; line-height: 1.12 !important; }
html body .ts-hero__title:not(#_) { font-size: clamp(2rem, 4.4vw, 3.25rem) !important; }
html body :is(.card-title, .blog-card__title, .wp-tuning-card h3):not(#_) { font-size: 1.1875rem !important; letter-spacing: -0.015em !important; }
