/* =====================================================
   1519 Automotive — personalizzazioni sul tema Bconsul
   Caricato dopo i CSS del tema. Bottoni: arrotondamento minimo (3px).
   ===================================================== */

/* Accessibilità */
.skip-link {
  position: absolute; left: 10px; top: -60px; z-index: 10000;
  background: #141414; color: #fff; padding: 10px 14px; border-radius: 3px;
}
.skip-link:focus { top: 10px; color: #fff; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 2px solid #1e579e; outline-offset: 2px; }

/* Bottoni: raggio minimo su tutte le varianti */
.btn,
.btn-round,
.btn.btn-round,
.btn-theme-colored1,
.btn-outline-theme-colored2,
.cc-banner .btn,
.cc-dialog .btn,
.wpcf7-submit {
  border-radius: 3px !important;
}

/* Voci del menu principale (anche versione mobile): raggio minimo */
.menuzord-menu > li > a,
.menuzord-menu > li.active > a,
.menuzord-menu > li:hover > a,
.menuzord .menuzord-menu ul.dropdown li > a,
.menuzord-responsive .menuzord-menu > li > a {
  border-radius: 3px !important;
}

/* Bottone a tema usato nei moduli e nei CTA */
.btn-primary-site {
  background: #141414; border-color: #141414; color: #fff;
}
.btn-primary-site:hover { background: #1e579e; border-color: #1e579e; color: #fff; }
.btn-outline-site {
  background: transparent; border: 3px solid #141414; color: #141414;
}
.btn-outline-site:hover { background: #141414; color: #fff; }
.btn-light-site {
  background: #fff; border-color: #fff; color: #141414;
}
.btn-light-site:hover { background: #1e579e; border-color: #1e579e; color: #fff; }

.link-button {
  font: inherit; padding: 0; border: 0; background: none; cursor: pointer;
  color: inherit; text-decoration: underline; text-underline-offset: 2px;
}
.link-button:hover { color: #1e579e; }

/* Header */
.site-brand img { height: 80px; width: auto; }

/* Hero */
.logo-img { display: inline-block; height: 80px; width: auto; }
@media (max-width: 767.98px) { .site-brand img, .logo-img { height: 64px; } }
.hero-actions .btn { margin: 0 10px 10px 0; }

/* Contenuti testuali */
.prose { max-width: 78ch; }
.prose h2 { margin-top: 32px; font-size: 26px; }
.prose h3 { margin-top: 22px; }
.prose ul, .prose ol { padding-left: 22px; margin: 0 0 16px; }
.prose li { margin-bottom: 6px; }
.prose table { border-collapse: collapse; width: 100%; margin: 0 0 20px; }
.prose th, .prose td { border: 1px solid #d8dde3; padding: 8px 10px; text-align: left; vertical-align: top; font-size: 14px; }
.prose th { background: #f3f6f9; }
.table-wrap { overflow-x: auto; }
.updated { font-size: 13px; color: #666; margin-top: 24px; }

/* Riquadri di servizio */
.feature-box {
  display: block; height: 100%; padding: 30px; background: #f5f7fa;
  border-top: 4px solid #1e579e; border-radius: 3px; color: inherit;
}
a.feature-box:hover { background: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, .12); color: inherit; }
.feature-box h3, .feature-box h4 { margin-top: 0; }
.feature-box p:last-child { margin-bottom: 0; }

/* Partner */
.partner-card {
  display: flex; align-items: center; justify-content: center; min-height: 130px;
  background: #fff; border: 1px solid #e3e7ec; border-radius: 3px; padding: 20px;
}
.partner-card img { max-height: 72px; width: auto; }

/* Scheda partner (pagina /partner): logo, attività, note, link */
.partner-detail {
  display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid #e3e7ec; border-radius: 3px; padding: 24px;
}
.partner-detail-logo { display: flex; align-items: center; justify-content: center; min-height: 96px; margin-bottom: 16px; }
.partner-detail-logo img { max-height: 72px; max-width: 100%; width: auto; }
.partner-detail h2 { margin: 0 0 6px; }
.partner-detail-activity { font-weight: 600; color: #141414; margin-bottom: 8px; }
.partner-detail-notes { color: #555; margin-bottom: 16px; }
.partner-detail-link { margin: auto 0 0; }

/* Dati societari */
.dl { display: grid; grid-template-columns: minmax(160px, 260px) 1fr; margin: 0; border-top: 1px solid #d8dde3; }
.dl dt, .dl dd { padding: 12px 0; border-bottom: 1px solid #d8dde3; margin: 0; }
.dl dt { font-weight: 600; padding-right: 16px; }

/* Moduli */
.site-form .field { margin-bottom: 18px; }
.site-form label { font-weight: 600; font-size: 14px; margin-bottom: 6px; display: block; }
.site-form .form-control { border-radius: 3px; }
.site-form .has-error .form-control { border-color: #b00020; border-width: 2px; }
.field-error { color: #b00020; font-size: 13px; margin: 6px 0 0; }
.field-error::before { content: '⚠ '; }
.site-form .check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
.site-form .check input { margin-top: 5px; width: 16px; height: 16px; flex-shrink: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.notice { border-radius: 3px; padding: 16px 20px; margin: 0 0 24px; border: 1px solid #1e579e; background: #eaf0f8; }
.notice--error { border-color: #b00020; background: #fdecee; color: #b00020; }
.notice p { margin: 0; }

/* Mappa soggetta a consenso */
.embed-consent {
  background: #f5f7fa; border-radius: 3px; min-height: 300px; display: flex;
  align-items: center; justify-content: center; text-align: center; padding: 24px;
}
.embed-frame { width: 100%; height: 360px; border: 0; display: block; border-radius: 3px; }

/* News */
.news-meta { font-size: 14px; color: #666; }

/* Footer */
.footer .plain, .footer .menu { list-style: none; margin: 0; padding: 0; }
.footer .plain li, .footer .menu li { margin-bottom: 8px; }
.footer .footer-paragraph, .footer .plain, .footer .menu a, .footer .link-button { font-size: 14px; }
.footer .footer-paragraph a { text-decoration: underline; }

/* Cookie consent */
.cc-banner {
  position: fixed; left: 16px; bottom: 16px; z-index: 9999; max-width: 520px; width: calc(100% - 32px);
  background: #fff; color: #222; border-top: 4px solid #1e579e; border-radius: 3px;
  padding: 22px 26px 20px; box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
}
.cc-banner[hidden] { display: none; }
.cc-banner h2 { font-size: 18px; margin: 0 0 8px; }
.cc-banner p { font-size: 14px; margin-bottom: 14px; }
.cc-close {
  position: absolute; right: 10px; top: 8px; width: 32px; height: 32px; font-size: 22px; line-height: 1;
  background: none; border: 0; cursor: pointer; color: #222;
}
.cc-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cc-actions .btn { padding: .6rem 1.2rem; font-size: 14px; border-width: 2px; }
.cc-dialog { border: 0; border-top: 4px solid #1e579e; border-radius: 3px; padding: 28px; width: min(560px, calc(100% - 32px)); color: #222; }
.cc-dialog::backdrop { background: rgba(0, 0, 0, .55); }
.cc-dialog h2 { font-size: 20px; }
.cc-dialog fieldset { border: 0; padding: 0; margin: 0 0 18px; }
.cc-row { background: #f5f7fa; border-radius: 3px; padding: 14px 16px; margin-bottom: 10px; }
.cc-switch { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 14px; line-height: 1.45; margin: 0; }
.cc-switch input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }

@media (max-width: 767.98px) {
  .dl { grid-template-columns: 1fr; }
  .dl dt { border-bottom: 0; padding-bottom: 0; }
}

/* Footer: colonne più ariose */
.footer .footer-widget-area > .container { padding-top: 80px; padding-bottom: 50px; }
.footer .footer-col { margin-bottom: 40px; padding-left: 28px; padding-right: 28px; }
.footer .footer-col .widget-title { margin-bottom: 26px; }
/* Allineamento a sinistra: voci del menu senza il rientro della freccia del tema, margini uguali al testo sotto */
.footer .widget_nav_menu ul > li { padding-left: 0; }
.footer .widget_nav_menu ul > li::before { content: none; }
@media (max-width: 991.98px) { .footer .footer-col { padding-left: 15px; padding-right: 15px; } }
.footer .footer-col:first-child { padding-left: 15px; }
.footer .plain li, .footer .menu li { margin-bottom: 14px; line-height: 1.6; }
.footer .footer-bottom { padding-top: 10px; }
@media (min-width: 992px) {
  .footer .footer-col + .footer-col { border-left: 1px solid rgba(255, 255, 255, .08); }
}

/* Logo: meno spazio sopra e sotto */
header#header .menuzord-brand.site-brand { margin: 6px 20px 6px 0 !important; line-height: 0; }
header#header .header-nav .menuzord-container > .container { padding-top: 0; padding-bottom: 0; }
@media (max-width: 1199.98px) {
  header#header .menuzord-brand.site-brand { margin: 4px 0 !important; }
}

/* Desktop: azzera il padding verticale che il tema assegna alle voci di menu (30px) e non comprimere il logo */
@media (min-width: 1200px) {
  header#header .menuzord-menu > li { padding: 8px 0 !important; }
}
header#header .menuzord-brand.site-brand { float: none; display: block; }
header#header .menuzord-brand.site-brand img,
header#header .logo-img { max-width: none !important; width: auto !important; height: 80px !important; }
header#header .header-nav-col-row > div:first-child { flex: 0 0 auto; width: auto; max-width: none; }
@media (max-width: 767.98px) {
  header#header .menuzord-brand.site-brand img,
  header#header .logo-img { height: 64px !important; }
}

/* Il tema limita il logo a max-height 38px: lo togliamo per usare l'altezza impostata sopra */
header#header .menuzord-brand img,
header#header .menuzord-brand.site-brand img { max-height: none !important; }

/* =====================================================
   Stile "agenzia digitale" (ispirato a Bcorz): nero + arancio,
   titoli in grassetto, riquadri a spigoli netti, barra menu bianca.
   Bottoni e voci di menu restano a 3px.
   ===================================================== */
:root {
  --bz-accent: #1e579e;
  --bz-accent-dark: #184a87;
  --bz-black: #0b0b0b;
  --bz-dark: #141414;
  --bz-soft: #f7f5f3;
  --bz-line: #e6e2de;
}
body { color: #4a4a4a; }
h1, h2, h3, h4, h5, h6 { color: var(--bz-black); font-weight: 700; letter-spacing: -.01em; }
a { color: var(--bz-accent-dark); }
a:hover { color: var(--bz-accent); }


/* Bottoni: pieno arancio, stesso 3px */
.btn, .btn-theme-colored1, .btn-primary-site { font-weight: 600; letter-spacing: .02em; text-transform: none; }
.btn-primary-site, .btn-theme-colored1 { background: var(--bz-accent); border-color: var(--bz-accent); color: #fff; }
.btn-primary-site:hover, .btn-theme-colored1:hover { background: var(--bz-black); border-color: var(--bz-black); color: #fff; }
.btn-outline-site { border-color: var(--bz-black); color: var(--bz-black); }
.btn-outline-site:hover { background: var(--bz-black); color: #fff; }
.btn-light-site { background: #fff; border-color: #fff; color: var(--bz-black); }
.btn-light-site:hover { background: var(--bz-accent); border-color: var(--bz-accent); color: #fff; }


/* Etichetta sopra i titoli con onda arancio */
.eyebrow, .hero-site .h6 {
  display: inline-block; position: relative; padding-bottom: 12px; margin-bottom: 16px;
  color: var(--bz-accent) !important; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.eyebrow::after, .hero-site .h6::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 44px; height: 6px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='6' viewBox='0 0 44 6'%3E%3Cpath d='M0 3 Q5.5 0 11 3 T22 3 T33 3 T44 3' fill='none' stroke='%231e579e' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat;
}
.section-title .title { font-size: clamp(28px, 3.6vw, 44px); font-weight: 800; }
.section-title .title-seperator-line { display: none; }

/* Riquadri servizio: spigoli netti, numero grande, ombra piena al passaggio */
.feature-box {
  position: relative; background: #fff; border: 1px solid var(--bz-line); border-top: 1px solid var(--bz-line);
  border-radius: 0; padding: 34px 30px; transition: box-shadow .2s, transform .2s;
}
.feature-box::before {
  content: attr(data-num); position: absolute; right: 24px; top: 14px;
  font-size: 54px; font-weight: 800; line-height: 1; color: #efebe7;
}
.feature-box { padding-top: 62px; }
.feature-box::before { top: 10px; font-size: 44px; }
.feature-box h3, .feature-box h4 { font-size: 21px; position: relative; }
.feature-box p { font-weight: 400; color: #5a5a5a; }
.scrollToTop { background: var(--bz-accent) !important; border-radius: 50% !important; }
a.feature-box:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--bz-black); background: #fff; }
a.feature-box::after {
  content: 'Scopri →'; display: inline-block; margin-top: 14px; font-weight: 600; font-size: 14px; color: var(--bz-accent);
}
.bg-silver-light { background: var(--bz-soft) !important; }

/* Schede partner e contatti con lo stesso stile netto */
.partner-card, .partner-detail { border-radius: 0; border-color: var(--bz-line); }
.partner-detail-activity { color: var(--bz-accent-dark); }

/* Banda contatti: nera con accento arancio */
section.bg-theme-colored1.section-typo-light:not(.hero-site) { background: var(--bz-black) !important; border-top: 4px solid var(--bz-accent); }

/* Footer scuro */
.footer, .footer .footer-widget-area { background: var(--bz-dark) !important; }
.footer .footer-bottom { background: var(--bz-black) !important; }
.footer a:hover { color: var(--bz-accent); }
.footer .widget-title { color: #fff; }

/* Moduli e notifiche */
.site-form .form-control { border-radius: 3px; border-color: #d9d4cf; }
.site-form .form-control:focus { border-color: var(--bz-accent); box-shadow: 0 0 0 3px rgba(30, 87, 158, .15); }
.notice { background: #eaf0f8; border-color: var(--bz-accent); }
.cc-banner, .cc-dialog { border-top-color: var(--bz-accent); border-radius: 0; }
:focus-visible { outline-color: var(--bz-accent); }

/* Banner titolo delle pagine interne: cerchio arancio e onda sotto il titolo */
.page-title.bg-theme-colored1 {
  position: relative; overflow: hidden;
  background: radial-gradient(circle at 96% 130%, var(--bz-accent) 0 150px, transparent 151px), var(--bz-dark) !important;
}
.page-title .title, .page-title h1 { font-weight: 800; color: #fff; }
.page-title .breadcrumbs a { color: #fff; }
.page-title .breadcrumbs .trail-end, .page-title .breadcrumbs span { color: var(--bz-accent); }

/* Testi: titoli di sezione con barra arancio, tabelle e link */
.prose h2 { position: relative; padding-left: 16px; }
.prose h2::before {
  content: ''; position: absolute; left: 0; top: .15em; bottom: .15em; width: 5px; background: var(--bz-accent);
}
.prose th { background: var(--bz-black); color: #fff; border-color: var(--bz-black); }
.prose td { border-color: var(--bz-line); }
.prose a { text-decoration: underline; text-underline-offset: 2px; }

/* Moduli: bottone di invio coerente con il resto del sito */
.site-form button[type="submit"], .site-form .btn-primary { background: var(--bz-accent); border-color: var(--bz-accent); color: #fff; font-weight: 600; }
.site-form button[type="submit"]:hover, .site-form .btn-primary:hover { background: var(--bz-black); border-color: var(--bz-black); }
.site-form label { color: var(--bz-black); }

/* Partner: scheda a spigoli netti con filo arancio e ombra piena al passaggio */
.partner-card, .partner-detail { background: #fff; transition: box-shadow .2s, transform .2s; }
.partner-detail { border-top: 4px solid var(--bz-accent); padding: 30px 28px; }
.partner-detail:hover, a.partner-card:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--bz-black); }
.partner-detail-logo { background: var(--bz-soft); padding: 16px; }
.partner-detail h2 { font-size: 22px; color: var(--bz-black); }
.partner-detail-link .btn { padding: 8px 20px; }

/* News: schede come i servizi, data e categoria in evidenza */
.news-meta { color: var(--bz-accent-dark); font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
article.feature-box { padding-top: 34px; }
article.feature-box::before { content: none; }
article.feature-box h2 a { color: var(--bz-black); }
article.feature-box h2 a:hover { color: var(--bz-accent); }
article.feature-box .btn-plain-text-with-arrow { color: var(--bz-accent); font-weight: 600; padding-left: 0; }
.section-content > p:only-child {
  padding: 28px 30px; background: var(--bz-soft); border-left: 5px solid var(--bz-accent); max-width: 640px; color: var(--bz-black);
}

/* Elenco dati societari */
.dl { border-top: 3px solid var(--bz-black); }
.dl dt { color: var(--bz-black); }

@media (max-width: 767.98px) {
}

/* =====================================================
   Struttura "Bcorz": header a barra unica, slider, sezioni home, footer
   ===================================================== */


/* --- Barra principale: blocco logo arancio obliquo, menu, capsula beige con telefono --- */
header#header .header-nav-wrapper,
header#header .menuzord-container { background: #fff; border-bottom: 0; box-shadow: 0 8px 24px rgba(0, 0, 0, .07); overflow-x: clip; }
header#header .header-nav .container { max-width: 1320px; }
header#header .header-brand-col { position: relative; z-index: 1; padding-right: 64px; }
header#header .header-brand-col::before {
  content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: -100vw; right: 0; background: var(--bz-accent);
  clip-path: polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%);
}
header#header .menuzord-brand.site-brand {
  background: transparent; padding: 0; margin: 10px 0 !important;
}header#header .header-menu-col { padding-left: 24px; }
header#header .menuzord-menu > li > a { color: var(--bz-black); font-weight: 600; font-size: 15px; }
header#header .menuzord-menu > li:hover > a,
header#header .menuzord-menu > li.active > a { color: var(--bz-accent) !important; background: transparent !important; }

header#header .header-cta-col { position: relative; z-index: 1; align-items: center; gap: 18px; padding: 0 0 0 34px; }
.header-call-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 46px; height: 46px; border-radius: 50%; background: #fff; color: var(--bz-accent); font-size: 20px;
}
.header-cta-btn { white-space: nowrap; padding: 12px 22px; }
/* Chiamaci e Login nel menu a tendina del telefono (da desktop ci sono i bottoni a destra) */
@media (min-width: 1200px) { header#header .nav-cta-mobile { display: none !important; } }
header#header .menuzord-menu > li.nav-cta-mobile > a { color: var(--bz-accent) !important; }
/* Menu del telefono: niente altezza massima, altrimenti Login resta nascosto sotto lo scorrimento */
@media (max-width: 1199.98px) { header#header #top-primary-nav-clone .menuzord-menu { max-height: none !important; overflow-y: visible !important; } }
@media (max-width: 1399.98px) { header#header .header-cta-col { padding-left: 24px; } }
@media (max-width: 1199.98px) {
  header#header .header-brand-col { padding-right: 44px; }
  header#header .menuzord-brand.site-brand { margin: 6px 0 !important; }
}

/* --- Bottoni --- */
.btn-outline-white { background: transparent; border: 2px solid #fff; color: #fff; }
.btn-outline-white:hover { background: #fff; color: var(--bz-black); }

/* --- Slider --- */
.bz-hero { position: relative; overflow: hidden; background: var(--bz-dark); color: #fff; }
.bz-hero::before {
  content: ''; position: absolute; z-index: 3; left: 4%; top: 36px; width: 120px; height: 48px; opacity: .55; pointer-events: none;
  background: radial-gradient(circle, #fff 2px, transparent 3px) 0 0 / 24px 24px;
}
.bz-slides { display: grid; }
.bz-slide {
  grid-area: 1 / 1; position: relative; min-height: 660px; display: flex; align-items: center;
  opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s;
}
.bz-slide.is-active { opacity: 1; visibility: visible; }
.bz-slide::before {
  content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 11, 11, .92) 0%, rgba(11, 11, 11, .55) 100%), var(--slide-photo, none) center / cover;
  filter: grayscale(1);
}
.bz-slide::after {
  content: ''; position: absolute; right: -140px; bottom: -230px; width: 560px; height: 560px; border-radius: 50%;
  background: var(--bz-accent); box-shadow: 0 0 0 28px rgba(30, 87, 158, .16), 0 0 0 64px rgba(30, 87, 158, .08);
}
.bz-slide .container { position: relative; z-index: 2; }
.bz-slide-body { max-width: 720px; padding: 70px 0 90px; }
.bz-slide-title { margin: 0 0 20px; font-size: clamp(34px, 5.2vw, 68px); font-weight: 800; line-height: 1.08; color: #fff; }
.bz-slide-text { margin: 0 0 32px; max-width: 560px; font-size: 18px; color: #e7e2dd; }
.bz-hero .eyebrow { color: var(--bz-accent) !important; }
.bz-hero-controls { position: absolute; z-index: 5; right: 32px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; }
.bz-arrow {
  width: 54px; height: 54px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 3px; background: #111; color: #fff;
  font-size: 18px; cursor: pointer; transition: background .2s;
}
.bz-arrow:hover { background: var(--bz-accent); }
.bz-dots { position: absolute; z-index: 5; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 10px; }
.bz-dot { width: 14px; height: 14px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; }
.bz-dot.is-active { background: #fff; border-color: #fff; box-shadow: 0 0 0 3px var(--bz-accent); }
@media (max-width: 991.98px) {
  .bz-slide { min-height: 560px; }
  .bz-hero-controls { top: auto; bottom: 18px; right: 16px; flex-direction: row; transform: none; }
  .bz-arrow { width: 44px; height: 44px; }
  .bz-slide::after { width: 380px; height: 380px; right: -150px; bottom: -190px; }
}

/* --- Sezioni home --- */
.bz-title { margin: 0 0 18px; font-size: clamp(30px, 3.8vw, 46px); font-weight: 800; }
.bz-lead { max-width: 620px; margin: 0 auto; }
.mb-50 { margin-bottom: 50px; }
.bz-about, .bz-services { padding: 100px 0; }
.bz-services { background: var(--bz-soft); }
.bz-about-photo { position: relative; padding-bottom: 36px; }
.bz-about-photo img { display: block; width: 100%; max-width: 400px; height: auto; padding: 10px; background: var(--bz-soft); border: 1px solid var(--bz-line); }
.bz-about-badge {
  position: absolute; left: 34%; bottom: 0; display: flex; align-items: center; gap: 14px; max-width: 290px; padding: 18px 22px;
  background: var(--bz-accent); color: #fff; font-weight: 600; line-height: 1.35;
}
.bz-about-badge i { font-size: 30px; }
.bz-about-text { margin-bottom: 26px; }
.bz-about-text p:last-child { margin-bottom: 0; }

.feature-box { padding-top: 34px; }
.feature-box::before { top: 14px; right: 22px; }
.feature-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 18px;
  border-radius: 50%; background: #efebe7; color: var(--bz-accent); font-size: 26px; transition: background .2s, color .2s;
}
a.feature-box:hover .feature-icon { background: var(--bz-accent); color: #fff; }

.bz-split-a, .bz-split-b { color: #fff; }
.bz-split-a { background: var(--bz-dark); }
.bz-split-b { background: var(--bz-accent); }
.bz-split-body { max-width: 580px; padding: 84px 56px; }
.bz-split-a .bz-split-body { margin-left: auto; }
.bz-split-b .bz-split-body { margin-right: auto; }
.bz-split h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); font-weight: 800; }
.bz-split p { color: #f1ece7; margin-bottom: 26px; }
.bz-split-b .eyebrow { color: #fff !important; }
.bz-split-b .eyebrow::after { filter: brightness(0) invert(1); }
.bz-split-b .btn-light-site:hover { background: var(--bz-black); border-color: var(--bz-black); color: #fff; }
@media (max-width: 767.98px) { .bz-split-body { padding: 56px 24px; } }

.bz-cta { position: relative; overflow: hidden; padding: 72px 0; background: var(--bz-black); color: #fff; }
.bz-cta::before {
  content: ''; position: absolute; left: -120px; top: -140px; width: 320px; height: 320px; border-radius: 50%; background: var(--bz-accent); opacity: .9;
}
.bz-cta .container { position: relative; }
.bz-cta h2 { margin: 0 0 10px; color: #fff; font-weight: 800; }
.bz-cta p { margin: 0; color: #d8d2cc; }

/* --- Banner delle pagine interne: puntini e anello --- */
.page-title.bg-theme-colored1::before {
  content: ''; position: absolute; left: -70px; top: -70px; width: 240px; height: 240px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .1);
}
.page-title.bg-theme-colored1::after {
  content: ''; position: absolute; left: 8%; bottom: 30px; width: 96px; height: 24px; opacity: .45;
  background: radial-gradient(circle, #fff 2px, transparent 3px) 0 0 / 24px 24px;
}

/* --- Footer: icone quadrate arancio --- */
.footer-call { display: flex; align-items: center; gap: 12px; margin-top: 8px; font-size: 20px; color: #cfc9c4; }
.footer-call:hover { color: #fff; }
.footer-call .header-call-icon { width: 46px; height: 46px; border-radius: 0; background: var(--bz-accent); color: #fff; font-size: 20px; }
.footer-social { display: flex; gap: 8px; margin-top: 18px; }
.footer-social a {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #2a2a2a; color: #fff;
}
.footer-social a:hover { background: var(--bz-accent); color: #fff; }

/* --- Correzioni header: una sola riga e testi leggibili nella barra superiore --- */
@media (min-width: 1200px) {
  header#header .header-nav-col-row { flex-wrap: nowrap; align-items: center; }
  header#header .header-menu-col { flex: 1 1 auto; min-width: 0; width: auto; max-width: none; }
  header#header .header-cta-col { flex: 0 0 auto; width: auto; max-width: none; }
  header#header .header-brand-col { flex: 0 0 auto; width: auto; max-width: none; }
}
@media (min-width: 1400px) { header#header .header-nav .container { max-width: 1320px !important; } }

/* Voci di menu più compatte, così menu + capsula telefono stanno su una riga */
@media (min-width: 1200px) {
  header#header .menuzord-menu > li > a { padding: 8px 13px !important; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  header#header .menuzord-menu > li > a { padding: 8px 11px !important; font-size: 14px; }
  .header-cta-btn { padding: 11px 16px; font-size: 14px; }
  header#header .header-cta-col { gap: 12px; padding-left: 22px; }
}

/* --- Pagine interne: impostazione "About" (intestazione a sinistra, testo a destra, sezioni alternate) --- */
.bz-sec { padding: 80px 0 50px; }
.bz-sec--soft { background: var(--bz-soft); }
.bz-sec .bz-title { font-size: clamp(26px, 3vw, 38px); line-height: 1.15; }
.bz-sec .prose { max-width: none; }
.bz-sec .prose > :first-child { margin-top: 0; }
.bz-sec .prose h2 { padding-left: 0; font-size: 26px; }
.bz-sec .prose h2::before { content: none; }
.bz-sec .prose h3 { padding-left: 14px; border-left: 4px solid var(--bz-accent); font-size: 20px; }
.bz-sec .prose p { font-size: 16px; }
.bz-sec .prose p:first-of-type { font-size: 17px; color: var(--bz-black); }
.bz-sec .prose ul { list-style: none; padding-left: 0; }
.bz-sec .prose ul li { position: relative; padding-left: 28px; margin-bottom: 10px; }
.bz-sec .prose ul li::before {
  content: '\f00c'; position: absolute; left: 0; top: 1px; font-family: FontAwesome; font-size: 14px; color: var(--bz-accent);
}
.bz-sec .prose blockquote {
  margin: 24px 0; padding: 14px 0 14px 22px; border-left: 4px solid var(--bz-accent); color: var(--bz-black); font-weight: 600;
}
.bz-sec--white .prose ul.boxed, .bz-sec .prose ul + p { margin-top: 16px; }
.bz-sec--white .bz-about-photo img { background: var(--bz-soft); }
.bz-sec .mt-50 { margin-top: 0 !important; }
.bz-sec { padding: 56px 0; }
.bz-sec .row > div { margin-bottom: 0; }
.bz-sec .row > div:first-child { margin-bottom: 18px; }
.bz-sec .prose > :last-child { margin-bottom: 0; }
/* Il tema aggiunge 100px a .container dentro section: nelle sezioni nuove lo spazio lo danno già i padding della sezione */
.bz-sec > .container, .bz-about > .container, .bz-services > .container, .bz-cta > .container { padding-top: 0; padding-bottom: 0; }

/* --- Pagine interne: collage, box evidenziato, liste in riquadro, fascia numeri (come la pagina About) --- */
.bz-collage { position: relative; min-height: 460px; }
.bz-collage-a, .bz-collage-b { position: absolute; overflow: hidden; }
.bz-collage-a { left: 0; top: 0; width: 66%; height: 310px; }
.bz-collage-b { right: 0; bottom: 0; width: 66%; height: 250px; border: 8px solid #fff; border-right: 0; border-bottom: 0; }
.bz-sec--soft .bz-collage-b { border-color: var(--bz-soft); }
.bz-collage--mirror .bz-collage-a { left: auto; right: 0; }
.bz-collage--mirror .bz-collage-b { right: auto; left: 0; border-right: 8px solid #fff; border-left: 0; }
.bz-sec--soft .bz-collage--mirror .bz-collage-b { border-color: var(--bz-soft); }
.bz-collage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bz-collage-bar { position: absolute; left: 66%; top: 70px; width: 14px; height: 150px; background: var(--bz-accent); }
.bz-collage--mirror .bz-collage-bar { left: auto; right: 66%; }
.bz-collage-badge {
  position: absolute; z-index: 2; left: 46%; top: 24px; width: 200px; padding: 20px 22px;
  display: flex; flex-direction: column; gap: 10px; background: var(--bz-accent); color: #fff; font-weight: 700; font-size: 17px; line-height: 1.3;
}
.bz-collage--mirror .bz-collage-badge { left: auto; right: 46%; }
.bz-collage-badge i { font-size: 34px; }
.bz-ph {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgba(255, 255, 255, .16); font-size: 96px;
  background: radial-gradient(circle at 85% 120%, var(--bz-accent) 0 130px, transparent 131px), #1a1a1a;
}
.bz-collage-b .bz-ph {
  color: rgba(30, 87, 158, .3);
  background: radial-gradient(circle at 10% -20%, rgba(30, 87, 158, .18) 0 120px, transparent 121px), var(--bz-soft);
}
.bz-sec--soft .bz-collage-b .bz-ph { background: radial-gradient(circle at 10% -20%, rgba(30, 87, 158, .18) 0 120px, transparent 121px), #ece7e2; }
@media (max-width: 575.98px) {
  .bz-collage { min-height: 400px; }
  .bz-collage-a { height: 250px; }
  .bz-collage-b { height: 200px; }
  .bz-collage-badge { width: 170px; padding: 16px; font-size: 15px; }
}

.bz-hl { display: flex; align-items: center; gap: 18px; margin-top: 26px; padding: 18px 22px; background: var(--bz-soft); }
.bz-hl-icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%;
  background: #fff; color: var(--bz-accent); font-size: 26px;
}
.bz-hl p { margin: 0; font-weight: 600; font-size: 16px; line-height: 1.5; color: var(--bz-black); }
.bz-sec--first .prose p + p { margin-top: 22px; padding-left: 18px; border-left: 4px solid var(--bz-accent); color: var(--bz-black); }

@media (min-width: 992px) {
  .bz-cols--2 { column-count: 2; column-gap: 48px; }
}
.bz-cols > * { break-inside: avoid; }
.bz-cols p { font-size: 16px; color: #4a4a4a; }
.bz-cols p:first-of-type { font-size: 16px; color: #4a4a4a; }

.bz-sec--mirror .prose ul { position: relative; padding: 18px 20px 8px 96px; background: #fbf3f1; min-height: 76px; }
.bz-sec--soft.bz-sec--mirror .prose ul { background: #fff; }
.bz-sec--mirror .prose ul::before {
  content: '\f080'; font-family: FontAwesome; position: absolute; left: 0; top: 0; width: 72px; height: 72px; display: flex;
  align-items: center; justify-content: center; background: var(--bz-accent); color: #fff; font-size: 28px;
}

.bz-stats-wrap { padding: 20px 0 80px; }
.bz-stats-wrap > .container { padding-top: 0; padding-bottom: 0; }
.bz-stats { background: var(--bz-accent); border-radius: 3px; padding: 44px 16px; color: #fff; }
.bz-stat { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 8px 20px; }
.bz-stat i { font-size: 34px; margin-bottom: 10px; }
.bz-stat strong { display: block; font-size: 46px; line-height: 1; font-weight: 800; color: #fff; }
.bz-stat span { margin-top: 8px; font-weight: 600; }
@media (min-width: 768px) { .bz-stat + .bz-stat { border-left: 1px solid rgba(255, 255, 255, .4); } }
@media (max-width: 767.98px) { .bz-stat + .bz-stat { margin-top: 18px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .4); } }

/* --- Pagina Contatti (come la demo: schede recapiti, titolo e modulo centrati, mappa) --- */
.bz-contact-info, .bz-contact-form, .bz-contact-map { padding: 80px 0 40px; }
.bz-contact-info { background: var(--bz-soft); padding-bottom: 30px; }
.bz-contact-form { background: var(--bz-soft); padding-top: 30px; padding-bottom: 80px; }
.bz-contact-map { padding-bottom: 80px; }
.bz-contact-info > .container, .bz-contact-form > .container, .bz-contact-map > .container { padding-top: 0; padding-bottom: 0; }
.bz-info { display: flex; align-items: flex-start; gap: 18px; height: 100%; }
.bz-info-icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%;
  background: #fff; color: var(--bz-accent); font-size: 28px; box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
}
.bz-info h2 { margin: 0 0 10px; font-size: 22px; font-weight: 700; }
.bz-info address { margin: 0; font-style: normal; }
.bz-info p { margin: 0 0 8px; }
.bz-info a { color: var(--bz-black); }
.bz-info a:hover { color: var(--bz-accent); }
.bz-form-box { max-width: 860px; margin: 0 auto; }
.bz-contact-form .site-form .form-control { background: #fff; border: 1px solid #e3ddd7; padding: 14px 18px; height: auto; }
.bz-contact-form .site-form textarea.form-control { min-height: 160px; }
.bz-contact-form .site-form label { margin-bottom: 8px; }
.bz-contact-form .btn { padding: 14px 40px; }
.bz-contact-map .embed-consent { background: var(--bz-soft); }

/* --- FAQ: ricerca e accordion con numeri e icona + / − --- */
.bz-faq-wrap { max-width: 1000px; margin: 0 auto; }
.bz-faq-search { position: relative; max-width: 560px; margin: 0 auto 44px; }
.bz-faq-search input {
  width: 100%; padding: 16px 52px 16px 24px; border: 1px solid transparent; border-radius: 3px; background: #f1edea; font: inherit; color: var(--bz-black);
}
.bz-faq-search input:focus { outline: none; border-color: var(--bz-accent); background: #fff; }
.bz-faq-search i { position: absolute; right: 22px; top: 50%; transform: translateY(-50%); color: var(--bz-black); pointer-events: none; }
.bz-faq-item { margin-bottom: 12px; background: var(--bz-soft); border-radius: 3px; }
.bz-faq-item[hidden] { display: none; }
.bz-faq-item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 26px; cursor: pointer; list-style: none;
  font-weight: 600; color: var(--bz-black);
}
.bz-faq-item summary::-webkit-details-marker { display: none; }
.bz-faq-item summary:hover { color: var(--bz-accent); }
.bz-faq-icon { flex: 0 0 auto; position: relative; width: 24px; height: 24px; border: 1.5px solid currentColor; border-radius: 50%; }
.bz-faq-icon::before, .bz-faq-icon::after { content: ''; position: absolute; left: 50%; top: 50%; background: currentColor; transform: translate(-50%, -50%); }
.bz-faq-icon::before { width: 10px; height: 1.5px; }
.bz-faq-icon::after { width: 1.5px; height: 10px; }
.bz-faq-item[open] .bz-faq-icon::after { content: none; }
.bz-faq-item[open] summary { color: var(--bz-accent); }
.bz-faq-a { margin: 0 26px; padding: 18px 0 24px; border-top: 1px solid #e3ddd7; }
.bz-faq-a p { margin: 0; }
.bz-faq-empty { text-align: center; margin-top: 20px; }

/* Banner novità normativa in home (sotto lo slider) */
.bz-news-banner { padding: 0 !important; background: var(--bz-dark); border-bottom: 4px solid var(--bz-accent); }
.bz-news-banner > .container { padding-top: 0; padding-bottom: 0; }
/* Due colonne: a sinistra etichetta e titolo, a destra testo e bottone */
.bz-news-banner-inner { display: flex; align-items: center; gap: 48px; padding: 40px 0; }
.bz-news-banner-col { flex: 1 1 0; min-width: 0; }
.bz-news-banner-col-b { border-left: 1px solid rgba(255, 255, 255, .18); padding-left: 48px; }
.bz-news-banner-tag {
  display: inline-flex; align-items: center; gap: 12px; padding: 10px 18px; margin-bottom: 16px; border-radius: 3px;
  background: var(--bz-accent); color: #fff; font-weight: 700; font-size: 13px; line-height: 1.25; text-transform: uppercase; letter-spacing: .04em;
}
.bz-news-banner-tag i { font-size: 22px; }
.bz-news-banner h2 { color: #fff; font-size: clamp(22px, 2.4vw, 32px); font-weight: 800; margin: 0; }
.bz-news-banner p { color: #e6e0da; margin: 0 0 20px; font-size: 15px; line-height: 1.6; }
@media (max-width: 991.98px) {
  .bz-news-banner-inner { flex-direction: column; align-items: flex-start; gap: 22px; padding: 28px 0; }
  .bz-news-banner-col { flex: 0 0 auto; width: 100%; }
  .bz-news-banner-col-b { border-left: 0; padding-left: 0; }
}

/* Con 7 voci di menu, su schermi medi restringo ancora un po' gli spazi */
@media (min-width: 1200px) and (max-width: 1299.98px) {
  header#header .menuzord-menu > li > a { padding: 8px 8px !important; font-size: 13.5px; }
  header#header .header-brand-col { padding-right: 52px; }
}
