/* Reset and Box-Sizing */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Typography / Page base */
body {
  font-family: 'Roboto', sans-serif;
  background-color: #f8f8f8;
  color: #333;
  line-height: 1.6;
  padding-bottom: 0;       /* evita overlap con cookie banner */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

h1, h2, h3, h4, h5, h6 { margin-top: 0; }
h1 { font-size: 1.6em; }

/* Header */
header {
  background-color: #000;
  padding: 1rem;
  text-align: center;
}
header img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* Main Content */
main { padding: 2rem; flex: 1; }

/* Navigation */
.navbar-custom .navbar-nav .nav-link:hover,
.navbar-custom .navbar-nav .nav-link:focus { background-color: #005f8b; }

nav {
  background-color: #000;
  padding: 0;
  margin: 0;
  position: sticky;
  top: 0;
  z-index: 1000;
}
nav ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  margin: 0;
}
nav a {
  color: #fff;
  text-decoration: none;
  padding: 10px 20px;
  display: block;
}
nav a:hover, nav a:focus {
  background-color: #005f8b;
  text-decoration: underline;
}

/* Mobile Navigation */
@media (max-width: 767px) {
  nav ul { flex-direction: column; align-items: center; }
  main { padding-left: 10px; padding-right: 10px; }
}

/* Footer */
footer {
  background-color: #000;
  color: #fff;
  padding: 1rem;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 10px; text-align: center;
}
footer div, footer a { align-self: center; margin: 5px 0; }
footer .social-media-links {
  display: flex; justify-content: center; gap: 20px; align-items: center;
}
footer a { padding: 10px; }
footer img { width: 24px; height: 24px; }

/* Forms (base) */
input, select, textarea { border: 1px solid #ccc; }

/* Hamburger Menu */
.hamburger-menu { display: none; cursor: pointer; padding: 10px; background: none; border: 0; }
.hamburger-menu span[aria-hidden="true"] { width: 30px; height: 3px; background-color: #fff; margin: 6px 0; display: block; }

/* Mobile menu */
@media (max-width: 767px) {
  .hamburger-menu { display: block; }
  #nav-menu { display: none; flex-direction: column; align-items: center; width: 100%; }
  #nav-menu.active { display: flex; }
  nav ul { flex-direction: column; }
  nav a { padding: 10px; width: 100%; text-align: center; }

  .mobile-friendly-list li a {
    display: block; padding: 10px; margin: 5px 0; font-size: 16px; border-radius: 5px; text-decoration: none;
  }
  .mobile-friendly-list li a:hover,
  .mobile-friendly-list li a:focus { background-color: #094871; color: #fff; }
}

/* ===== Abbonamenti (categorie/piani) ===== */
.category-selector {
  display: flex; justify-content: center; gap: 30px; margin-bottom: 20px; flex-wrap: wrap;
}
.category-selector button {
  background: none; border: none; text-align: center; cursor: pointer; transition: transform 0.3s; flex: 1 0 120px;
}
.category-selector button img { width: 80px; height: 80px; }
.category-selector button span { display: block; margin-top: 5px; color: #000; font-weight: bold; }
.category-selector button:hover { transform: scale(1.1); }

#membership-categories-wrapper {
  width: 100%; display: flex; flex-direction: column; align-items: center; padding: 20px;
}
.category { display: none; width: 100%; overflow: hidden; margin-bottom: 20px; }

.membership-container {
  display: flex; gap: 20px; overflow-x: auto; padding: 20px;
  justify-content: center; align-items: center; flex-wrap: nowrap; scroll-snap-type: x mandatory;
}
.membership-type {
  background: #fff; border-radius: 10px; padding: 20px; width: 250px; min-width: 250px;
  box-shadow: 0 0 10px rgba(0,0,0,0.1); text-align: center; display: inline-block; margin-bottom: 20px;
  scroll-snap-align: start;
}
.membership-type h3 { font-size: 20px; color: #000; }
.membership-type p { font-size: 16px; margin-bottom: 10px; }
.membership-type .prices p { font-size: 18px; margin-bottom: 10px; }
.membership-type label { display: block; margin-bottom: 10px; font-size: 14px; text-align: left; }
.membership-type input { width: 100%; padding: 8px; font-size: 14px; margin-top: 5px; }
.membership-type span { display: block; margin-top: 10px; font-size: 16px; }
.membership-type button {
  background-color: #0D69A4; color: #fff; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer;
  width: 100%; margin-top: 10px; margin-bottom: 10px; transition: background-color 0.3s, transform 0.3s;
}
.membership-type button:hover { background-color: #094871; transform: scale(1.05); }

.hidden { display: none !important; }

@media (max-width: 768px) {
  .category-selector { flex-direction: row; gap: 10px; }
  .membership-container { flex-direction: row; gap: 20px; padding: 10px; justify-content: flex-start; }
  .membership-type { width: 250px; min-width: 250px; }
}
@media (max-width: 480px) {
  .membership-container { gap: 10px; flex-direction: row; }
}

/* ===== Hero (home) ===== */
.hero-section {
  background: url('hero-bg.webp') no-repeat center center/cover;
  padding-top: 80px; padding-bottom: 100px;
  color: #fff; text-align: center;
}
.hero-overlay { background: #0D69A4; padding: 40px 30px; border-radius: 8px; }
.hero-overlay p { margin-bottom: 20px; }
.cta-button {
  padding: 12px 25px; background: #0D69A4; color: #fff;
  border: 2px solid #000; border-radius: 4px; text-transform: uppercase; font-weight: bold; transition: background .3s;
}
.cta-button:hover { background: #094871; }

/* ===== Benefits (unificato) ===== */
.benefits-section {
  display: flex; justify-content: space-around; align-items: center; flex-wrap: wrap;
  gap: 20px; padding: 50px 20px; text-align: center; background-color: #f5f5f5;
}
.benefit { flex: 1 1 300px; max-width: 300px; text-align: center; padding: 10px; }
.benefit img, .benefit-icon { width: 100%; height: auto; max-width: 150px; margin: 0 auto 15px; }
@media (max-width: 768px) {
  .benefits-section { flex-direction: row; justify-content: space-evenly; }
  .benefit { flex: 1 1 45%; max-width: 45%; padding: 10px; }
  .benefit img, .benefit-icon { max-width: 100px; margin-bottom: 5px; }
  .benefit h3 { font-size: 1.1rem; margin: 0; }
  .benefit p { font-size: 0.9rem; margin: 5px 0 0; }
}
@media (max-width: 480px) {
  .benefits-section { flex-direction: column; align-items: center; }
  .benefit { max-width: 90%; }
  .benefit img, .benefit-icon { max-width: 80px; }
  .benefit h3 { font-size: 1rem; line-height: 1.2; }
  .benefit p { font-size: 0.85rem; line-height: 1.2; margin: 5px 0; }
}

/* ===== Steps (unificato) ===== */
.steps-section { background-color: #fff; padding: 3.5rem 2rem; text-align: center; }
.steps-section h3 { margin-bottom: 30px; }
.steps-container { display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content: center; }
.step {
  background-color: #f9f9f9; padding: 20px; border-radius: 8px; text-align: center;
  flex: 1 1 180px; max-width: 220px;
}
.step-number {
  width: 48px; height: 48px; line-height: 48px; border-radius: 50%;
  background: #0D69A4; color: #fff; margin: 0 auto 1rem; font-weight: 700; font-size: 1.25rem;
}
@media (max-width: 767px) {
  .steps-container {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem; justify-items: center;
  }
  .step { max-width: 160px; margin: 0 auto; }
}

/* ===== Testimonials & CTA section ===== */
.testimonials-section {
  background-color: #f9f9f9; padding: 50px 20px; text-align: center;
}
.testimonials-container { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.testimonials-section blockquote {
  font-style: italic; padding: 20px; max-width: 300px; margin: 20px; background-color: #fff;
  border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); text-align: left;
}

/* ===== Utilities (site only) ===== */
.text-center { text-align: center; }
.justify-center { justify-content: center; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-4px { margin-top: 4px; }
.mt-1rem { margin-top: 1rem; }
.mt-1-5rem { margin-top: 1.5rem; }
.mt-1-2em { margin-top: 1.2em; }
.mb-2em { margin-bottom: 2em; }
.my-1rem { margin: 1rem 0; }
.my-1-5rem { margin: 1.5rem 0; }
.mt-1em { margin-top: 1em; }
.mt-03em { margin-top: .3em; }
.mt-2em { margin-top: 2em; }
.ml-1rem { margin-left: 1rem; }
.p-1rem { padding: 1rem; }
.py-1rem { padding-top: 1rem; padding-bottom: 1rem; }
.fs-085rem { font-size: .85rem; }
.fs-093 { font-size: .93em; }
.fs-095 { font-size: .95em; }
.fs-096 { font-size: .96em; }
.fs-098 { font-size: .98em; }
.fs-1em { font-size: 1em; }
.fs-108em { font-size: 1.08em; }
.fs-115em { font-size: 1.15em; }
.text-gray-666 { color: #666; }
.text-gray-757 { color: #757575; }
.text-gray-888 { color: #888; }
.text-gray-999 { color: #999; }
.text-gray-555 { color: #555; }
.text-gray-444 { color: #444; }
.text-white { color: #ffffff; }
.italic { font-style: italic; }
.d-none { display: none; }
.text-accent { color: #e45; }
.mt-20px { margin-top: 20px; }
.mb-1-5em { margin-bottom: 1.5em; }
.mb-04em { margin-bottom: .4em; }

/* Buttons used in policy pages */
.large-button-link {
  text-decoration: none; display: inline-block; padding: 10px 20px; background-color: #0D69A4; color: #fff; border-radius: 5px; font-size: 16px;
}

/* ===== Abbonamenti overrides ===== */
.auto-size-select { margin: .5rem 0; width: 100%; padding: .35rem .5rem; border: 1px solid #ccc; border-radius: 4px; font-weight: 500; }
.membership-type button { background: #166f98; }
.membership-type button:hover { background: #135d82; }

/* Initial hidden states for dynamic sections */
#price-prepagata, #price-pmi, #price-corporate,
#size-radios, #personal-price, #business-wrapper, #business-price { display: none; }


/* Abbonamenti: mostra SOLO la categoria attiva */
.category.membership-category[aria-expanded="true"] { display: block !important; }
/* Wizard layout moved from inline */
#wizard-container { max-width: 600px; margin: 2rem auto; }
.wizard-result { display: none; margin-top: 2rem; }
.wizard-result .cta-button { display: block; width: 100%; max-width: 320px; margin: 1.5rem auto 0; text-align: center; }
/* Wizard summary list */
#summary-list { list-style: none; margin: 0 0 1.5rem 0; padding: 0; }
#summary-list li { margin: .4rem 0; }
.wizard-step[data-step="2p"],
.wizard-step[data-step="3p"],
.wizard-step[data-step="4p"],
.wizard-step[data-step="2a"],
.wizard-step[data-step="3a"] { display: none; }

/* Contatti: spacing and social links behavior */
.contact-hero .hero-copy p + p { margin-top: 1em; }
@media (max-width: 768px) {
  .social-links { flex-direction: row !important; flex-wrap: nowrap !important; }
}

/* Dashboard: file input hidden */
#csv-file { display: none; }
#no-affiliates { display: none; }

/* FAQ search input */
#faq-search { width: 90%; max-width: 400px; padding: .5rem; font-size: 1rem; border: 1px solid #ccc; border-radius: 4px; }

/* Rete: link accent */
.link-accent { color: #166f98; font-weight: 700; text-decoration: underline; }
.testimonials-section cite { display: block; margin-top: 10px; font-weight: bold; }
@media (max-width: 768px) {
  .testimonials-container { flex-direction: column; align-items: center; }
}
.cta-section { background-color: #fff; padding: 60px 20px; text-align: center; }
.cta-section h3 { margin-bottom: 20px; }
.cta-section p { margin-bottom: 30px; }
.cta-button:hover { background: #094871; }

/* ===== Intro blocks (home) ===== */
.intro-hero { background: #fff; padding: 2rem 1rem; text-align: center; max-width: 960px; margin: 0 auto 2rem; }
.intro-title { font-size: 2rem; color: #333; margin-bottom: 1rem; }
.intro-lead { font-size: 1.2rem; line-height: 1.6; max-width: 720px; margin: 0 auto 2rem; color: #333; }
.intro-columns { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; }
.intro-block {
  flex: 1 1 280px; background: #f8f8f8; padding: 1.2rem; border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05); transition: transform 0.2s ease;
}
.intro-block:hover { transform: translateY(-4px); }
.intro-block h2 { color: #0D69A4; font-size: 1.2rem; margin-bottom: .5rem; }
.intro-block p { font-size: 1rem; color: #444; }

/* ===== Hero gradient (home) ===== */
.hero-gradient{
  position:relative; display:flex; align-items:center; justify-content:flex-start;
  min-height:80vh; padding:4rem 2rem; color:#fff; overflow:hidden;
  background:linear-gradient(135deg,#0D69A4 0%,#137DC7 100%);
}
.hero-illustration{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.hero-illustration img{ width:100%; height:100%; object-fit:cover; object-position:right center; }
.hero-gradient::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(to right, rgba(13,105,164,.95) 0%, rgba(13,105,164,.85) 25%, rgba(13,105,164,0) 45%);
}
.hero-content{ position:relative; z-index:2; max-width:520px; text-align:left; }
.hero-content h1{ font-size:2.6rem; font-weight:700; margin-bottom:.5rem; }
.hero-subtitle{ font-size:1.25rem; margin-bottom:1.8rem; }
.cta-primary{
  display:inline-block; padding:.9rem 2rem; border-radius:40px; font-weight:700;
  background:#0D69A4; color:#fff; text-decoration:none; transition:transform .25s, background-color .25s;
}
.cta-primary:hover{ transform:scale(1.05); background:#094871; }

@media (max-width:767px){
  .hero-gradient{ flex-direction:column; padding:0; min-height:100vh; justify-content:flex-start; }
  .hero-gradient::after{
    background:linear-gradient(to right, rgba(13,105,164,.95) 0%, rgba(13,105,164,.85) 15%, rgba(13,105,164,0) 35%);
  }
  .hero-illustration{ inset:0; width:100%; }
  .hero-content{ max-width:90%; padding:2.75rem 1.25rem 2.25rem; margin:0; text-align:left; }
  .hero-content h1{ font-size:1.9rem; line-height:1.2; }
  .hero-subtitle{ font-size:1.05rem; line-height:1.5; margin-bottom:1.1rem; }
  .hero-content .cta-primary{ padding:.75rem 1.5rem; margin-bottom:.25rem; }
}

/* Trust bar / features / steps / CTA banner */
.trust-bar{ background:#fff; text-align:center; padding:1.2rem; }
.trust-logos{ list-style:none; display:flex; gap:40px; justify-content:center; flex-wrap:wrap; margin:0; }
.trust-logos img{ height:28px; opacity:.7; filter:grayscale(1); transition:opacity .2s; }
.trust-logos img:hover{ opacity:1; }

.features-section{
  display:flex; gap:2rem; flex-wrap:wrap; justify-content:center; padding:3rem 2rem; background:#f8f8f8;
}
.feature-card{
  background:#fff; border-radius:16px; box-shadow:0 4px 12px rgba(0,0,0,.06);
  padding:2rem; flex:1 1 250px; max-width:320px; text-align:center; transition:transform .25s;
}
.feature-card:hover{ transform: translateY(-6px); }
.feature-icon{ width:64px; height:64px; margin-bottom:1rem; }

.steps-section{ padding: 3.5rem 2rem; text-align:center; }
.cta-banner{ background:#0D69A4; color:#fff; text-align:center; padding:3rem 2rem; }
.cta-banner h2{ font-size:1.9rem; font-weight:700; margin-bottom:1rem; }

/* ===== Hero Abbonamenti ===== */
.plans-hero{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding:3rem 2rem; background:linear-gradient(135deg,#0D69A4 0%,#137DC7 100%);
  color:#fff; border-radius:8px; margin-bottom:2.5rem;
}
.plans-copy{ max-width:540px; }
.plans-copy h1{ font-size:2.2rem; margin:0 0 .75rem; font-weight:700; }
.plans-copy .lead{ font-size:1.15rem; margin-bottom:1.25rem; }
.plans-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.plans-cta a{
  display:inline-block; padding:.75rem 1.5rem; border-radius:32px; font-weight:700; text-decoration:none;
  transition: transform .25s, background-color .25s;
}
.wizard-button{ background:#fff; color:#0D69A4; }
.wizard-button:hover{ background:#e2eefd; transform:scale(1.05); }
.faq-link{ color:#fff; border:2px solid #fff; }
.faq-link:hover{ background:rgba(255,255,255,.15); transform:scale(1.05); }
.plans-hero-img{ flex:0 0 320px; max-width:320px; filter:drop-shadow(0 10px 24px rgba(0,0,0,.25)); }
.plans-hero-img img{ width:100%; height:auto; object-fit:contain; }
@media(max-width:767px){
  .plans-hero{ flex-direction:column; text-align:center; padding:2.5rem 1.25rem; }
  .plans-copy{ max-width:100%; }
  .plans-cta{ justify-content:center; }
  .plans-hero-img{ flex:0 0 auto; max-width:240px; margin-top:1.5rem; }
  .plans-copy h1{ font-size:1.8rem; }
}

/* ===== Hero Wizard ===== */
.wizard-hero{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  background:linear-gradient(135deg,#0D69A4 0%,#137DC7 100%);
  color:#fff; padding:3rem 2rem 3.5rem; margin-bottom:3rem;
}
.wizard-copy{ max-width:560px; }
.wizard-copy h1{ font-size:2.4rem; font-weight:700; margin:0 0 .75rem; }
.wizard-copy .lead{ font-size:1.2rem; margin-bottom:1.5rem; line-height:1.45; }
.wizard-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.cta-start{
  display:inline-block; padding:.9rem 2.2rem; border-radius:32px;
  background:#fff; color:#0D69A4; font-weight:700; text-decoration:none;
  transition: transform .25s, background-color .25s;
}
.cta-start:hover{ background:#e2eefd; transform:scale(1.05); }
.cta-link{
  color:#fff; border:2px solid #fff; border-radius:32px; padding:.9rem 1.8rem;
  font-weight:700; text-decoration:none; transition: transform .25s, background-color .25s;
}
.cta-link:hover{ background:rgba(255,255,255,.15); transform:scale(1.05); }
.wizard-hero-img{ flex:0 0 340px; max-width:340px; filter:drop-shadow(0 10px 24px rgba(0,0,0,.25)); }
.wizard-hero-img img{ width:100%; height:auto; object-fit:contain; }
@media(max-width:900px){ .wizard-copy h1{ font-size:2rem; } }
@media(max-width:767px){
  .wizard-hero{ flex-direction:column; text-align:center; padding:2.5rem 1.25rem; }
  .wizard-copy{ max-width:100%; }
  .wizard-cta{ justify-content:center; }
  .wizard-hero-img{ max-width:220px; margin-top:1.8rem; }
  .wizard-copy h1{ font-size:1.8rem; }
}

/* ===== Hero Contatti ===== */
.contact-hero{
  --grad:#0D69A4;
  display:flex; align-items:center; gap:2rem;
  padding:3.5rem 2rem; margin-bottom:3rem;
  background:linear-gradient(135deg,var(--grad) 0%,#137DC7 100%);
  color:#fff; border-radius:12px; overflow:hidden;
}
.hero-copy{ max-width:520px; z-index:1; }
.contact-hero h1{ font-size:2.4rem; font-weight:700; margin:0 0 .6rem; }
.contact-hero .lead{ font-size:1.2rem; margin-bottom:1.6rem; line-height:1.45; }
.cta-mail{
  display:inline-block; padding:.9rem 2.2rem; border-radius:32px;
  background:#fff; color:var(--grad); font-weight:700; text-decoration:none;
  transition: transform .25s, background-color .25s;
}
.cta-mail:hover{ background:#e2eefd; transform:scale(1.05); }
.hero-ill{ flex:0 0 340px; max-width:340px; filter:drop-shadow(0 14px 28px rgba(0,0,0,.22)); }
.hero-ill img{ width:100%; height:auto; object-fit:contain; }
@media(max-width:767px){
  .contact-hero{ flex-direction:column; text-align:center; padding:2.2rem 1rem; }
  .contact-hero h1{ font-size:2rem; }
  .hero-ill{ display:none; }
}

/* ===== Cards Contatti ===== */
.contact-cards{
  display:flex; flex-wrap:wrap; justify-content:center; gap:2rem;
}
.contact-card{
  flex:1 1 260px; max-width:320px; background:#fff; border-radius:12px;
  padding:2rem; text-align:center; box-shadow:0 6px 18px rgba(0,0,0,.06);
  transition: transform .25s;
}
.contact-card:hover{ transform:translateY(-6px); }
.contact-card h2{
  font-size:1.3rem; margin-bottom:.5rem; display:flex; align-items:center; justify-content:center; gap:.5rem; color:#0D69A4;
}
.icon{ width:24px; height:24px; }
.company-info{ font-style:normal; line-height:1.5; margin-top:.2rem; color:#333; }
.card-link{ display:inline-block; margin-top:.8rem; color:#0D69A4; font-weight:700; text-decoration:none; }
.card-link:hover{ text-decoration:underline; }

/* Social nel box contatti — più specifico per non toccare altri .social-links */
.contact-card .social-links{ display:flex; justify-content:center; gap:.8rem; margin-top:.6rem; }
.contact-card .social-links img{ width:40px; height:40px; transition:transform .25s; }
.contact-card .social-links a:hover img{ transform:scale(1.1); }

@media(max-width:600px){
  .contact-cards{ gap:1.25rem; }
  .contact-card{ padding:1.6rem; }
}

/* ===== Form generici (login/registrazione/contatti) ===== */
.form-section {
  width: 90%;
  max-width: 600px;
  margin: auto;
  padding: 2rem;
  background-color: #f9f9f9;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.form-section h2 {
  text-align: center; color: #0D69A4; margin-bottom: 1.5rem; font-size: 1.5rem;
}
.registration-form { display: flex; flex-direction: column; gap: 1.5rem; }
.form-group { display: flex; flex-direction: column; margin-bottom: 1rem; }
.form-group label { margin-bottom: 0.3rem; font-weight: bold; color: #333; }
.form-group input, .form-group select {
  padding: 0.7rem; border: 1px solid #ccc; border-radius: 4px; font-size: 1rem;
}
.dettagli-abbonamento{ display:flex; flex-direction:column; margin-bottom:1.5rem; }
.vehicle-details{ display:flex; flex-direction:column; gap:1rem; }
.vehicle-details .form-group{ flex:1 1 100%; }
.full-width{ flex:1 1 100%; }
.info-link, .policy-link{ display:inline-block; margin-top:.5rem; font-size:.9rem; color:#0D69A4; text-decoration:underline; cursor:pointer; }
.checkbox-group label{ display:flex; align-items:center; gap:.5rem; font-size:.9rem; }
.checkbox-group span{ font-size:.85rem; color:#555; }
.submit-button{
  width:100%; padding:.9rem; font-size:1rem; font-weight:700; color:#fff; background:#0D69A4;
  border:none; border-radius:4px; cursor:pointer; margin-top:1rem; transition:background-color .3s;
}
.submit-button:hover{ background:#094871; }
@media (max-width:768px){
  .form-group{ flex:1 1 100%; }
  .form-section{ padding:1.5rem; }
  .vehicle-details{ gap:.8rem; }
}

/* ===== FAQ ===== */
.faq-container { max-width: 800px; margin: 0 auto; padding: 20px; font-family: Arial, sans-serif; }
.faq-container h2 {
  font-size: 1.8em; font-weight: 700; color: #0D69A4; border-bottom: 2px solid #0D69A4;
  padding-bottom: 5px; margin-top: 30px; text-transform: uppercase;
}
.faq-item { border-bottom: 1px solid #ddd; padding: 15px 0; cursor: pointer; position: relative; }
.faq-item h3 {
  font-size: 1.2em; font-weight: 600; cursor: pointer; display: flex; align-items: center;
  padding: 10px 0; color: #333;
}
.faq-item h3::before {
  content: "▶"; font-size: 1.2em; margin-right: 10px; transition: transform .3s ease; transform: rotate(0deg);
}
.faq-item.active h3::before { transform: rotate(90deg); }
.faq-item .answer { display: none; padding-top: 10px; font-size: 1em; color: #555; }
@media (max-width:600px){ .faq-container h2{ font-size:1.4em; } }

/* ===== Rete (search) ===== */
.search-container { padding: 20px; max-width: 600px; margin: auto; text-align: center; }
.search-container h2 { font-size: 24px; margin-bottom: 10px; }
.search-container p { font-size: 16px; color: #555; margin-bottom: 20px; }
.search-bar { display: flex; justify-content: center; gap: 10px; align-items: center; margin-bottom: 20px; }
label { font-size: 16px; }
#province-select { padding: 10px; font-size: 16px; border: 1px solid #ddd; border-radius: 4px; }
#sales-points-list { list-style: none; padding: 0; margin: 20px 0; text-align: left; }
#sales-points-list li { display: none; padding: 10px; border-bottom: 1px solid #ddd; color: #333; }

/* ===== Accessibilità ===== */
.visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

/* ===== Gift Card (scroll-snap) ===== */
.giftcard-options{
  display:flex; flex-wrap:nowrap; gap:1.5rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:.75rem .5rem 1.2rem;
}
.giftcard-options::-webkit-scrollbar{ display:none; }
.option-card{
  flex:0 0 260px; max-width:260px; background:#fff; border:2px solid transparent; border-radius:10px; padding:1.25rem;
  box-shadow:0 4px 12px rgba(0,0,0,.05); cursor:pointer; transition:border-color .25s, transform .25s; scroll-snap-align:center;
}
.option-card:hover{ transform:translateY(-4px); }
.option-card.selected{ border-color:#0D69A4; }
.option-card h3{ margin:.25rem 0 .5rem; text-transform:uppercase; font-weight:700; }

/* ===== Cookie Modal (overlay) ===== */
.cookie-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.55);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999;
}
.cookie-modal {
  background: #fff; color: #222; max-width: 560px; width: 92%;
  border-radius: 16px; padding: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.2);
}
.cookie-modal__text { margin: 8px 0 16px; }
.cookie-modal__actions { display: flex; gap: 12px; justify-content: flex-end; }
.cookie-modal__actions .btn-accept {
  padding: 10px 16px; border: 0; border-radius: 10px; font-weight: 700; cursor: pointer;
  background: #0D69A4; color: #fff;
}
.cookie-modal__actions .btn-customize {
  padding: 10px 16px; border: 1px solid #ccc; background: transparent; border-radius: 10px; cursor: pointer;
}
body.cookie-modal-open { overflow: hidden; }
.option-card .price{ font-size:1.75rem; font-weight:700; margin-top:.75rem; }
@media (min-width:900px){
  .giftcard-options{ justify-content:center; overflow-x:visible; scroll-snap-type:none; }
}

/* ===== Wizard & pulsanti: scope SOLO su pagine che li hanno ===== */
body:has(.giftcard-options) .form-section,
body:has(.form-step) .form-section {
  max-width: 840px;
  margin: 0 auto 3rem;
  padding: 0 1rem;
}
.form-step{ display:none; }
.form-step.active{ display:block; }
.step-navigation{ display:flex; justify-content:flex-end; gap:1rem; margin-top:1.25rem; }

.step-navigation button,
.submit-button {
  background:#166f98; color:#fff; border:none; border-radius:4px;
  padding:.6rem 1.4rem; font-weight:700; cursor:pointer;
}
.step-navigation button:disabled{ opacity:.45; cursor:not-allowed; }
.step-navigation button:hover:not(:disabled),
.submit-button:hover{ background:#135d82; }

.summary-box{ background:#f9f9f9; border-radius:8px; padding:1rem; margin-top:1.25rem; }
.progress-bar-wrapper { margin: 1.5em 0 2em 0; }
#progress-bar { background:#e0e7ef; height:8px; border-radius:4px; width:100%; position:relative; margin-bottom:.6em; overflow:hidden; }
#progress-bar-fill { height:100%; background: linear-gradient(90deg, #0D69A4 70%, #137DC7 100%); width:0; border-radius:4px; transition: width .4s cubic-bezier(.55,.08,.47,1.05); }
.progress-steps { display:flex; justify-content:space-between; font-size:.97em; font-weight:700; color:#888; }
.progress-steps span.active { color:#0D69A4; text-decoration:underline; }

.step-navigation.final-nav{ display:flex; justify-content:flex-start; align-items:center; gap:1em; }
.step-navigation.final-nav .back-btn {
  background:#e0e7ef; color:#166f98; font-weight:700; border:1px solid #b8c9da; padding:.6rem 1.2rem; border-radius:4px; font-size:1rem; flex:0 0 auto; box-shadow:none;
}
.step-navigation.final-nav .primary {
  padding:.85rem 2.2rem; font-size:1.18em; background:#0D69A4; color:#fff; font-weight:bold; border:none; border-radius:4px;
  box-shadow:0 2px 6px rgba(0,0,0,.07); transition: background .2s, transform .15s; flex:0 1 auto;
}
.step-navigation.final-nav .primary:hover { background:#094871; transform:scale(1.03); }
@media (max-width:600px){
  .step-navigation.final-nav{ flex-direction:column; align-items:stretch; gap:.7em; }
  .step-navigation.final-nav .back-btn, .step-navigation.final-nav .primary{ width:100%; min-width:0; text-align:center; font-size:1em; }
}

/* ===== Dashboard ===== */
.dashboard-wrapper {
  width:100%; max-width:900px; margin:2rem auto 3rem; display:flex; flex-direction:column; gap:2rem;
}
.dashboard-wrapper .form-section {
  background:#fff; border-radius:12px; box-shadow:0 2px 10px rgba(13,105,164,0.09);
  padding:2rem 2rem 1.5rem; margin-bottom:0;
}
.dashboard-wrapper h2 { color:#0D69A4; margin-bottom:1.2rem; font-size:1.35rem; font-weight:700; letter-spacing:.01em; }
.dashboard-wrapper .personal-fields,
.dashboard-wrapper .auto-list,
.dashboard-wrapper .company-fields { display:flex; flex-direction:column; gap:1.2rem; }
.dashboard-wrapper label { font-weight:500; color:#111; margin-bottom:.2em; }
.dashboard-wrapper input, .dashboard-wrapper select {
  padding:.7rem; font-size:1rem; border-radius:4px; border:1px solid #b5cbe0; background:#fafcff; width:100%;
}
.auto-list { display:flex; flex-direction:column; gap:1.5rem; }
.auto-item {
  background:#f4f7fa; border-radius:7px; padding:1rem; display:flex; flex-wrap:wrap; gap:.7rem 1.5rem; align-items:center; position:relative;
}
.auto-item input, .auto-item select { width:150px; min-width:120px; margin-right:1rem; }
.auto-item .remove-auto-btn {
  background:#F44336; color:#fff; border:none; border-radius:3px; padding:.6rem 1rem; font-weight:700; cursor:pointer; transition: background .2s; margin-left:1rem;
}
.auto-item .remove-auto-btn:hover { background:#B71C1C; }
.add-auto-btn {
  background:#0D69A4; color:#fff; border:none; border-radius:5px; padding:.8rem 1.5rem; font-weight:700; cursor:pointer; transition: background .2s; margin-top:.3rem; width:auto; align-self:flex-start;
}
.add-auto-btn:disabled { opacity:.5; cursor:not-allowed; }
.auto-list .field-error { color:#F44336; font-size:.95rem; margin-left:.5rem; }
.form-actions { margin-top:1.2rem; display:flex; gap:1.2rem; align-items:center; }
.form-actions .submit-button { min-width:120px; font-size:1.03rem; }
.form-actions .cancel-btn { background:#eee; color:#222; border:1px solid #ccc; }
.form-actions .cancel-btn:hover { background:#ddd; }
.form-message { margin-left:1rem; color:#F44336; font-size:1rem; font-weight:500; }
#subscription-summary {
  background:#f6fafd; border-left:5px solid #0D69A4; border-radius:7px; padding:1.1rem 1.4rem; margin-bottom:1.2rem; font-size:1.1rem; color:#18334d; box-shadow:0 1px 4px rgba(13,105,164,.08);
}
#subscription-summary .sub-row { margin-bottom:.4rem; }
#subscription-summary .ab-status {
  font-weight:700; padding:.1em .55em; border-radius:3px; margin-left:.6em; background:#0D69A4; color:#fff; font-size:.93em;
}
#subscription-summary .ab-status.scaduto { background:#F44336; }
@media (max-width:600px){
  .dashboard-wrapper .form-section{ padding:1.2rem; }
  .auto-item input{ width:100%; }
  .auto-item{ flex-direction:column; gap:.8rem; }
  #subscription-summary{ padding:.7rem .8rem; }
  .form-actions{ flex-direction:column; align-items:stretch; }
}
