/* --- Stili CSS v4 - LITE VERSION - Font: Lato --- */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700&display=swap');

/* ADDED FIX: Elimina lo scroll orizzontale */
body {
  overflow-x: hidden;
}

#lic-calculator-wrapper {
	margin: 0;
	font-family: 'Lato', sans-serif;	
	font-weight: 500;
	padding: 10px;
	padding-top: 30px;
	background: #FFFFFF00;
	color: #333;
	width: 100%;
    max-width: 100vw;
    overflow-x: clip !important;
    box-sizing: border-box;
}

#lic-calculator-wrapper label,
#lic-calculator-wrapper input,
#lic-calculator-wrapper button,
#lic-calculator-wrapper select,
#lic-calculator-wrapper textarea {
	display: block;
	width: 100%;
	padding: 0;
	border: none;
	outline: none;
	box-sizing: border-box;
	font-family: 'Lato', sans-serif;
}

#lic-calculator-wrapper label {
	margin-bottom: 6px;
	text-align: left;
	color: #3e4c59; /* Blu-grigio scuro */
	font-size: 14px;
	font-weight: 600;
	margin-top: 15px;
}

#lic-calculator-wrapper *:not(legend) > label:first-of-type {
	 margin-top: 0;
}

#lic-calculator-wrapper input::placeholder {
	color: #a0aec0; /* Grigio chiaro */
	font-weight: 400;
}

#lic-calculator-wrapper input[type="text"],
#lic-calculator-wrapper input[type="number"],
#lic-calculator-wrapper input[type="date"],
#lic-calculator-wrapper input[type="email"],
#lic-calculator-wrapper input[type="tel"],
#lic-calculator-wrapper select,
#lic-calculator-wrapper textarea {
	background: #fff;
	padding: 12px 18px;
	height: 50px;
	font-size: 16px;
	font-weight: 500;
	border-radius: 8px; /* Stile più flat */
	margin-bottom: 10px;
	color: #2d3748; /* Grigio molto scuro */
	border: 1px solid #e2e8f0; /* Bordo grigio chiaro */
	transition: all 0.2s ease-in-out;
  /* white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; */
}

#lic-calculator-wrapper input:focus,
#lic-calculator-wrapper select:focus,
#lic-calculator-wrapper textarea:focus {
	 border-color: #e63946; /* Colore rosso del brand al focus */
	 box-shadow: 0 0 0 2px rgba(230, 57, 70, 0.2);
}

#lic-calculator-wrapper input[aria-invalid="true"] {
	 border-color: #d32f2f !important;
	 box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.2) !important;
}

/* Stile per il placeholder del menu a tendina */
#lic-calculator-wrapper select:invalid {
	color: #a0aec0; /* Grigio chiaro, come i placeholder degli input */
}
#lic-calculator-wrapper option {
	color: #2d3748; /* Testo scuro standard per le opzioni valide */
}

#lic-calculator-wrapper textarea {
	height: auto;
	min-height: 100px;
	border-radius: 12px;
	resize: vertical;
}

/* Bottone principale con colore del brand */
#lic-calculator-wrapper button[type="submit"] {
	color: #ffffff;
	margin-top: 20px;
	background: #e63946;
	height: 50px;	
	border-radius: 10px;
	cursor: pointer;
	font-weight: 700;
	font-size: 1.1em;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	transition: all 0.2s ease-in-out;
	letter-spacing: 0.5px;	
	border: none;
	text-shadow: none;
}

#lic-calculator-wrapper button[type="submit"]:hover {	
	background: #ea0e1f;
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
	transform: translateY(-2px);
}

#lic-calculator-wrapper h2, #lic-calculator-wrapper h3, #lic-calculator-wrapper h4 {
	font-family: 'Lato', sans-serif;
	font-weight: 700;
	color: #2c3c65; /* Blu navy scuro */
}
#lic-calculator-wrapper h2 { font-size: 2rem; text-align: center; margin-top: 70px; margin-bottom: 40px; }
#lic-calculator-wrapper h3 { font-size: 1.6rem; text-align: center; margin-bottom: 25px; margin-top: 25px; }
#lic-calculator-wrapper h4 {
	font-size: 1.2rem;
	text-align: left;
	margin-bottom: 15px;
	margin-top: 20px;
	color: #3e4c59;
	border-bottom: 2px solid #e63946;
	padding-bottom: 8px;
	font-weight: 600;
}
#lic-calculator-wrapper legend {
	font-family: 'Lato', sans-serif;
	font-weight: 700;
	font-size: 1.3rem;
	color: #fff;
	background-color: #1d3557;
	padding: 10px 22px;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(44, 60, 101, 0.2);
	display: inline-block;
	width: auto;
	margin-left: 0;
	position: relative;
	top: 0px;
}

/* Stile unificato per checkbox e radio */
#lic-calculator-wrapper input[type="checkbox"],
#lic-calculator-wrapper input[type="radio"] {
	height: 1.2em;
	width: 1.2em;
	margin-right: 10px;
	accent-color: #e63946;
	flex-shrink: 0;
}
#lic-calculator-wrapper label.inline-label {
	display: flex;
	align-items: center;
	font-weight: 500;
	cursor: pointer;
	font-size: 1em;
	color: #2d3748;
	width: 100%;
	margin-top: 0;
}

/* --- FIX: Allineamento Radio Button Sì/No --- */
#lic-calculator-wrapper .col-full > div > label.inline-label {
  width: auto;
}

/* CLASSE BASE per i box */
#lic-calculator-wrapper .rc-styled-box {
	padding: 25px 30px;
	margin-top: 40px;
	margin-bottom: 40px;
	border-radius: 15px;
	text-align: left;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	box-shadow: 0 10px 25px rgba(0,0,0,0.08);
	border: 1px solid #e2e8f0;
}

/* Sfondo del box risultati */
#lic-calculator-wrapper .rc-styled-box-lite-results {
	background-color: #ffffff;
	color: #2d3748;
}

/* Sfondo del box lead-gen */
#lic-calculator-wrapper .rc-styled-box-lite-leadgen {
	background-color: #f7fafc;
	border: 2px solid #e63946;
}
#lic-calculator-wrapper .rc-styled-box-lite-leadgen h3 {
	color: #1d3557;
}
#lic-calculator-wrapper .rc-styled-box-lite-leadgen p {
	color: #4a5568;
}

#lic-calculator-wrapper #risultato-container .importo-finale {
	font-weight: 700;
	font-size: 1.8em;
	color: #1d3557;
	text-align: center;
	margin-top: 20px;
	background-color: #f7fafc;
	padding: 15px;
	border-radius: 10px;
}

#lic-calculator-wrapper #risultato-container hr {
	border: 0;
	height: 1px;
	background-color: #e2e8f0;
	margin: 25px 0;
}

#lic-calculator-wrapper .disclaimer {
	margin-top: 25px;
	padding: 15px;
	background-color: #1d3557;	
	border-left: 4px solid #e63946;
	border-radius: 4px;
}
#lic-calculator-wrapper .disclaimer h4 {
	border-bottom: none;
	color: #fff;
	margin-top: 0;
}
#lic-calculator-wrapper .disclaimer p,	
#lic-calculator-wrapper .disclaimer ul {
	font-size: 0.95em;
	color: #fff;
}
#lic-calculator-wrapper .disclaimer ul {
	padding-left: 20px;
}

#lic-calculator-wrapper .nota-teaser {
	margin-top: 15px;
	padding: 12px;
	border-radius: 8px;
	background-color: #f8f9fa;
}
#lic-calculator-wrapper .nota-teaser h5 {
	margin: 0 0 5px 0;
	font-weight: 700;
}
#lic-calculator-wrapper .nota-teaser p {
	margin: 0;
	font-size: 0.9em;
	color: #4a5568;
}

#lic-calculator-wrapper #rc-ai-assistant-button {
	width: 100%;
	max-width: 450px;
	padding: 10px;
	background: #e63946;	
	color: white;
	border-radius: 10px;
  border: none;
  cursor: pointer;
}
#lic-calculator-wrapper #rc-ai-assistant-button:hover {
	background: #d62828;
}

#lic-calculator-wrapper #lead-gen-container label {
	color: #4a5568;
	font-weight: 600;
}
#lic-calculator-wrapper #lead-gen-container #lead_consent a {
	 color: #e63946;
	 font-weight: 600;
}
#lic-calculator-wrapper #lead-gen-feedback {
	margin-top: 15px;
	font-weight: 600;
	min-height: 20px;
	text-align: center;
}

#lic-calculator-wrapper fieldset {
	border: none;
	padding: 25px 25px 25px 25px;
	margin-bottom: 30px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 6px 5px 30px 0px rgba(0, 0, 0, 0.12);
	position: relative;
	max-width: 100%;
  box-sizing: border-box;
}
#lic-calculator-wrapper form#mainForm { max-width: 800px; margin: 0 auto; box-sizing: border-box; padding: 0 0px;}
#lic-calculator-wrapper .buttons-container { display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; padding-top: 20px; border-top: none; }
#lic-calculator-wrapper .buttons-container button { margin-top: 0; width: auto; min-width: 280px; padding: 0 30px; }

#lic-calculator-wrapper .row { display: flex; flex-wrap: wrap; margin-left: -10px; margin-right: -10px; }
#lic-calculator-wrapper .col-half, .col-third, .col-quarter, .col-full { padding: 0 10px; box-sizing: border-box; margin-bottom: 10px; }
#lic-calculator-wrapper .col-full { flex: 1 1 100%; max-width: 100%; }
#lic-calculator-wrapper .col-half { flex: 1 1 50%; max-width: 50%; }
#lic-calculator-wrapper .col-third { flex: 1 1 33.333%; max-width: 33.333%; }
#lic-calculator-wrapper .col-quarter { flex: 1 1 25%; max-width: 25%; }

#lic-calculator-wrapper .input-hint {
	font-size: 0.85em;
	color: #718096;
	text-align: left;
	margin-top: -5px;
	margin-bottom: 10px;
	padding-left: 5px;
	display: block;
}
#lic-calculator-wrapper .error-message {
	padding: 5px;
	color: #fff;
	font-weight: 600;
	background-color: #d32f2f;
	border-radius: 8px;
	margin: 1em 0;
	text-align: left;
}

/* Stili per la sezione Vademecum */
#prossimi-passi-checklist ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
#prossimi-passi-checklist li {
	background-color: #f8f9fa;
	padding: 15px 20px;
	margin-bottom: 10px;
	border-radius: 8px;
	border-left: 5px solid #e63946;
	line-height: 1.5;
}
#prossimi-passi-checklist li strong {
	display: block;
	font-size: 1.1em;
	font-weight: 700;
	color: #1d3557;
	margin-bottom: 8px;
}
#prossimi-passi-checklist li p {
	margin: 0;
	padding: 0;
	font-size: 0.95em;
	line-height: 1.6;
	color: #4a5568;
}

/* Stili per la Timeline del Risarcimento */
.timeline-list {
	position: relative;
	padding-left: 30px;	
}
.timeline-list::before {
	content: '';
	position: absolute;
	top: 5px;
	bottom: 5px;
	width: 2px;
	background-color: #e2e8f0;
}
.timeline-list-item {
	display: flex;
	position: relative;
	margin-bottom: 30px;
}
.timeline-list-item:last-child {
	margin-bottom: 0;
}
.timeline-list-icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #fff;
	border: 2px solid #e2e8f0;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: -21px;	
	z-index: 1;
	color: #e63946;
	transition: all 0.3s ease;
}
.timeline-list-item:hover .timeline-list-icon {
	background-color: #e63946;
	color: #fff;
}
.timeline-list-icon svg {
	width: 20px;
	height: 20px;
}
.timeline-list-content {
	padding-left: 35px;	
	width: 100%;
}
.timeline-list-content h5 {
	margin: 0 0 8px 0;
	font-size: 1.1em;
	font-weight: 700;
	color: #1d3557;
	line-height: 1.3;
}
.timeline-description {
	font-size: 0.9em;
	color: #718096;
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: 12px;
}
.timeline-time {
	font-size: 0.9em;
	font-weight: 600;
	color: #1d3557;
	background-color: #eef2f7;
	padding: 5px 10px;
	border-radius: 6px;
	display: inline-block;
}

/* Stili per i Tooltip Interattivi */
.label-with-tooltip {
	display: flex;
	align-items: center;
	gap: 8px;
}
.tooltip-icon {
	display: inline-block;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: #e2e8f0;
	color: #718096;
	font-weight: 700;
	font-size: 12px;
	text-align: center;
	line-height: 18px;
	cursor: help;
	position: relative;
	flex-shrink: 0;
	margin-bottom: 5px;
}
.tooltip-icon::before {
	content: attr(data-tooltip);
	position: absolute;
	bottom: 140%;
	left: 50%;
	transform: translateX(-50%);
	background-color: #1d3557;
	color: #fff;
	padding: 10px 15px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	width: 280px;
	text-align: left;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
	z-index: 10;
	box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.tooltip-icon:hover::before,
.tooltip-icon:focus::before {
	opacity: 1;
	visibility: visible;
}

/* --- Stili per lo Slider Dinamico --- */
.slider-label-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 5px;
}
.slider-value {
  font-weight: 700;
  font-size: 1.1em;
  color: #e63946; /* Colore rosso del brand */
}
#lic-calculator-wrapper input[type="range"] {
  -webkit-appearance: none;
  width: 100%;
  height: 10px;
  background: #e2e8f0;
  border-radius: 5px;
  outline: none;
  padding: 0;
  margin: 10px 0;
}
#lic-calculator-wrapper input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  background: #e63946;
  border-radius: 50%;
  cursor: pointer;
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
#lic-calculator-wrapper input[type="range"]::-moz-range-thumb {
  width: 24px;
  height: 24px;
  background: #e63946;
  border-radius: 50%;
  cursor: pointer;
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

/* Stili per il Selettore di Lingua */
#language-switcher {
	 position: absolute;
	 top: 20px;
	 right: 20px;
	 background-color: #f8f9fa;
	 border-radius: 20px;
	 padding: 5px;
	 display: flex;
	 gap: 5px;
	 border: 1px solid #e2e8f0;
	 box-shadow: 0 2px 5px rgba(0,0,0,0.05);
	 z-index: 10;
}

#language-switcher a {
	 padding: 5px 12px;
	 text-decoration: none;
	 color: #4a5568;
	 font-weight: 600;
	 font-size: 14px;
	 border-radius: 15px;
	 transition: all 0.2s ease-in-out;
}

#language-switcher a.active {
	 background-color: #1d3557;
	 color: #fff;
	 cursor: default;
}

#language-switcher a:not(.active):hover {
	 background-color: #eef2f7;
}

/* --- Stili per Stima a Doppio Livello --- */
.stima-sezione {
  margin-top: 25px;
  padding-top: 15px;
  border-top: 1px dashed #cccccc;
}

.stima-sezione h5 {
  text-align: center;
  color: #1d3557;
  font-size: 1.1em;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.importo-cautelativo {
  font-weight: 700;
  font-size: 1.8em;
  color: #1d3557;
  text-align: center;
  background-color: #f8f9fa;
  padding: 10px;
  border-radius: 10px;
  border: 1px solid #e0e0e0;
}

.descrizione-stima {
  font-size: 0.85em;
  text-align: center;
  color: #666;
  max-width: 500px;
  margin: 10px auto 0 auto;
  line-height: 1.5;
}

.dettaglio-scomposizione {
  text-align: center;
  font-size: 0.9em;
  line-height: 1.6;
  margin-top: 15px;
  background-color: #f8f9fa;
  padding: 10px;
  border-radius: 8px;
}
/* --- Fine Stili --- */

/* --- STILI PER GRUPPI DI RADIO BUTTON --- */

/* Comportamento su Desktop: affiancati */
.radio-group-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 5px;
}

/* --- Stili per Indicatore Visivo (Tachimetro) --- */
.tachimetro-wrapper {
  margin: 25px auto 20px auto;
  max-width: 300px;
  text-align: center;
}

.tachimetro-container {
  width: 280px;
  height: 140px; /* Metà della larghezza */
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  background-color: #f0f4f8;
  border-radius: 140px 140px 0 0;
  border: 1px solid #e0e0e0;
}

.tachimetro-gauge {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: conic-gradient(from -90deg at 50% 100%, #E63946, #FFC107 50%, #4CAF50);
}

.tachimetro-overlay {
  width: 240px;
  height: 120px;
  background: #f0f4f8;
  border-radius: 120px 120px 0 0;
  position: absolute;
  top: 10px;
  left: 20px;
}

.tachimetro-needle {
  width: 5px;
  height: 100px;
  background: #1d3557;
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -1px;
  transform-origin: bottom center;
  transition: transform 0.8s ease-out;
  border-radius: 2px;
}

.tachimetro-pivot {
  width: 15px;
  height: 15px;
  background: #1d3557;
  border-radius: 50%;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%);
  border: 3px solid #f0f4f8;
}

.tachimetro-label {
  margin-top: -5px;
  font-size: 1.1em;
  font-weight: bold;
  color: #1d3557;
}
/* --- Fine Stili --- */

/* --- Stili per il Box Messaggi di Errore --- */
#lic-calculator-wrapper #error-container {
	padding: 15px 20px;
	border: 1px solid #e57373; /* Bordo rosso chiaro */
	color: #fff; /* Testo rosso scuro */
	font-weight: 600;
	background-color: #d32f2f; /* Sfondo rosso */
	border-radius: 8px;
	margin: 0 auto 30px auto; /* Centrato e con margine inferiore */
	max-width: 800px;
	text-align: left;
	border-left: 5px solid #d32f2f; /* Bordo sinistro più spesso per enfasi */
}

/* --- Stili Sezione Demo Servizi LITE --- */

/* Etichette per scegliere Basic/Plus */
#lic-calculator-wrapper .service-option-label {
  border: 2px solid #e2e8f0; /* Bordo grigio chiaro di default */
  padding: 15px 20px;
  border-radius: 10px;
  background-color: #fff;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  width: auto; /* Sovrascrive stili generici se presenti */
  display: inline-flex; /* Necessario per allineare radio e testo */
  flex-direction: column;
  align-items: center;
  min-width: 180px;
  text-align: center; /* Centra il testo */
}

#lic-calculator-wrapper .service-option-label input[type="radio"] {
  margin-bottom: 10px; /* Spazio tra radio e testo */
}

#lic-calculator-wrapper .service-option-label:hover {
  border-color: #a0aec0; /* Bordo più scuro al passaggio */
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

/* Evidenziazione quando selezionato */
#lic-calculator-wrapper label:has(input[name="liteServiceTier"]:checked) {
  border-color: #e63946; /* Bordo rosso brand */
  background-color: #fff1f2; /* Sfondo rosa molto chiaro */
  box-shadow: 0 4px 10px rgba(230, 57, 70, 0.1);
}
/* Cambia colore titolo quando selezionato */
#lic-calculator-wrapper label:has(input[name="liteServiceTier"]:checked) .service-title {
  color: #e63946;
}


/* Stile Titolo e Prezzo dentro le etichette */
#lic-calculator-wrapper .service-title {
  font-weight: 700;
  font-size: 1.1em;
  color: #1d3557; /* Blu scuro di default */
  transition: color 0.2s ease-in-out; /* Aggiungi transizione per cambio colore */
}

#lic-calculator-wrapper .service-price {
  font-size: 0.95em;
  color: #4a5568;
}

/* Box Descrizione Servizio */
#lic-calculator-wrapper .service-description-box {
  background-color: #f8f9fa; /* Sfondo leggermente grigio */
  border: 1px solid #e2e8f0; /* Bordo sottile */
  border-left: 4px solid #1d3557; /* Bordo blu a sinistra */
  padding: 15px 20px;
  border-radius: 8px;
  font-size: 0.9em;
  line-height: 1.6;
  color: #4a5568; /* Grigio scuro per testo */
}

#lic-calculator-wrapper .service-description-box h5 {
  margin-top: 0;
  margin-bottom: 10px;
  color: #1d3557; /* Blu scuro per titolo interno */
  font-size: 1.1em;
}

#lic-calculator-wrapper .service-description-box ul {
  padding-left: 20px;
  margin-bottom: 0;
}


/* --- Stili Pulsanti Specifici della Demo --- */

/* Stile base condiviso per i 3 pulsanti della demo */
#lic-calculator-wrapper #simulate-purchase-button,
#lic-calculator-wrapper #restart-form-button,
#lic-calculator-wrapper #submit-data-button {
  color: #ffffff; /* Testo bianco */
  height: 50px; 
  border-radius: 10px;
  cursor: pointer;
  font-weight: 700;
  font-size: 1.1em;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1); /* Ombra leggera */
  transition: all 0.2s ease-in-out; /* Transizione per hover */
  letter-spacing: 0.5px;
  border: none;
  text-shadow: none;
  padding: 0 20px;
  margin: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* 1. Pulsante "Procedi (Simulazione Acquisto)" */
/* Applichiamo la larghezza qui specificamente */
#lic-calculator-wrapper #simulate-purchase-button {
  background-color: #e63946; /* Rosso Brand */
  width: 80%;
  max-width: 350px;
}
/* Stato Hover */
#lic-calculator-wrapper #simulate-purchase-button:not(:disabled):hover {
  background-color: #d62828; /* Rosso più scuro */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transform: translateY(-2px);
}
/* Stato Disabilitato */
#lic-calculator-wrapper #simulate-purchase-button:disabled {
  background-color: #ced4da; /* Grigio chiaro */
  cursor: not-allowed;
  opacity: 0.7;
  box-shadow: none;
  transform: none;
}

/* 2. Pulsante "Rifai il Calcolo" */
/* Applichiamo la larghezza qui specificamente */
#lic-calculator-wrapper #restart-form-button {
  background-color: #6c757d; /* Grigio */
  width: 80%;
  max-width: 350px;
}
#lic-calculator-wrapper #restart-form-button:not(:disabled):hover {
  background-color: #5a6268; /* Grigio più scuro */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transform: translateY(-2px);
}

/* 3. Pulsante "Invia i Dati della Stima" */
/* Applichiamo la larghezza qui specificamente */
#lic-calculator-wrapper #submit-data-button {
  background-color: #1d3557; /* Blu Scuro Brand */
  width: 80%;
  max-width: 350px;
}
#lic-calculator-wrapper #submit-data-button:not(:disabled):hover {
  background-color: #122a4a; /* Blu ancora più scuro */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transform: translateY(-2px);
}

/* Stile disabilitato generico per i pulsanti post-acquisto (Rifai/Invia) */
#lic-calculator-wrapper #post-purchase-options button:disabled {
  background-color: #ced4da; /* Grigio chiaro */
  cursor: not-allowed;
  opacity: 0.7;
  box-shadow: none;
  transform: none;
}

/* --- Stili Sottotitoli Pulsanti Demo --- */

#lic-calculator-wrapper .button-subtitle {
  display: block;
  font-size: 0.8em;
  color: #6c757d;
  margin-top: 5px;
  text-align: center;
}

/* Stile per le note contestuali nell'analisi */
.context-note {
    display: block;
    margin-top: 8px;
    padding: 10px 12px;
    background-color: rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    font-size: 0.9em;
    font-style: italic;
    border-left: 3px solid #69f0ae; /* Verde "Punti di Forza" */
    color: #f3f4f6;
}





/* --- FIX RESPONSIVE PER FIELDSET 1 --- */
@media (max-width: 768px) {
  .radio-group-row {
    flex-direction: column;
    gap: 15px;
    align-items: flex-start;
  }
}

/* ================================================= */
/* === SEZIONE RESPONSIVE (MOBILE OPTIMIZATION) === */
/* ================================================= */

@media (max-width: 768px) {
    /* *** FIX: Assicura che TUTTO rispetti il contenitore 100% *** */
    #lic-calculator-wrapper * {
        max-width: 100%;
        box-sizing: border-box; 
    }
    /* FIX: Forza interruzione parole lunghe su titoli/blocchi di testo */
    #lic-calculator-wrapper h1, 
    #lic-calculator-wrapper h2, 
    #lic-calculator-wrapper h3,
    #lic-calculator-wrapper p {
        word-break: break-word;
        overflow-wrap: break-word; 
    }
    /* ************************************************************* */

	#lic-calculator-wrapper .row {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	#lic-calculator-wrapper .col-half,
	#lic-calculator-wrapper .col-third,
	#lic-calculator-wrapper .col-quarter,
	#lic-calculator-wrapper .col-full {
		padding-left: 0;
		padding-right: 0;
		flex-basis: 100%;
   max-width: 100%;
	}

    /* FIX TOOLTIP: Ridisegna il tooltip per non eccedere il viewport mobile */
  .tooltip-icon::before {
    transform: none;
    left: auto;
    right: -10px; /* Lascia un piccolo margine dal bordo destro */
    bottom: 125%;
    max-width: 300px; /* Limite massimo ragionevole */
    width: calc(100vw - 30px); /* Usa il 100% del viewport meno un margine sicuro */
  }

	/* RIGA AGGIUNTA per colonne. La duplice definizione è corretta in questo contesto */
	#lic-calculator-wrapper .col-half,
	#lic-calculator-wrapper .col-third {
		flex-basis: 100%;
		max-width: 100%;
	}
	#lic-calculator-wrapper .col-quarter {
		flex-basis: 50%;
		max-width: 50%;
	}
}

@media (max-width: 576px) {
	#lic-calculator-wrapper .col-half,
	#lic-calculator-wrapper .col-quarter {
		flex-basis: 100%;
		max-width: 100%;
	}
	#language-switcher {
		position: static;
		margin: 0 auto 30px auto;
		justify-content: center;
		width: fit-content;
		max-width: 100%;
   box-sizing: border-box;
	}
}

#lic-calculator-wrapper .tooltip-icon {
 -webkit-tap-highlight-color: transparent; /* Rimuove il "flash" blu/grigio su iOS */
}
#lic-calculator-wrapper .tooltip-icon:focus {
 outline: none; /* Rimuove il bordo di focus standard */
}

/* FIX: Allineamento label con icona tooltip */
#lic-calculator-wrapper .label-with-tooltip label {
 width: auto; /* Rimuove la larghezza fissa del 100% */
 flex-grow: 1; /* Permette alla label di occupare lo spazio giusto */
 margin-bottom: 0; /* Aggiunta opzionale per un allineamento verticale perfetto */
}

/* --- Stili per il Bottone Fluttuante (CTA) --- */
#lic-calculator-wrapper #lic-floating-cta-button {
 position: fixed;
 bottom: 20px;
 left: 50%;
 /* La trasformazione di base è solo per centrare */
 transform: translateX(-50%);
 z-index: 1000;
 width: auto;
 height: 55px;
 max-width: 450px;
 background-color: #e63946;
 color: #ffffff;
 font-family: 'Lato', sans-serif;
 font-size: 16px;
 font-weight: 700;
 padding: 12px 30px;
 border: none;
 border-radius: 50px;
 box-shadow: 0 4px 12px rgba(0,0,0,0.25);
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 white-space: nowrap;

 /* La transizione si applica a tutte le modifiche */
 transition: opacity 0.3s ease, transform 0.3s ease;
}

#lic-calculator-wrapper #lic-floating-cta-button.is-hidden {
 opacity: 0;
 pointer-events: none;
 /* La trasformazione per "nascondere" è qui */
 transform: translateX(-50%) translateY(20px);
}

#lic-calculator-wrapper #lic-floating-cta-button:hover {
 /* La trasformazione sull'hover ora include anche quella per centrare */
 transform: translateX(-50%) translateY(-3px);
 box-shadow: 0 6px 16px rgba(0,0,0,0.3);
 background-color: #d62828;
}

/* La @media query rimane invariata */
@media (max-width: 576px) {
#lic-calculator-wrapper #lic-floating-cta-button {
  font-size: 15px;
  padding: 12px 20px;
 }
}

/* --- INIZIO STILI OUTPUT "A SCHEDE" --- */

/* 1. Rimuove il box bianco principale dei risultati */
#lic-calculator-wrapper .rc-styled-box-lite-results {
 background: transparent;
 border: none;
 box-shadow: none;
 padding: 0;
 margin-top: 40px;
}

/* 2. Stile di base per TUTTI i box di output (emergenza, analisi, timeline, ecc.) */
#lic-calculator-wrapper #output-emergenza-revenge-porn .nota-teaser,
#lic-calculator-wrapper #output-emergenza-minori .nota-teaser,
#lic-calculator-wrapper #safety-warning-box,
#lic-calculator-wrapper #stalking-warning-box,
#lic-calculator-wrapper #analisi-qualitativa,
#lic-calculator-wrapper #analisi-dettagliata-container,
#lic-calculator-wrapper #prossimi-passi-container,
#lic-calculator-wrapper #timeline-container,
#lic-calculator-wrapper .disclaimer {
 border: none !important; /* Rimuove tutti i bordi */
 padding: 25px;
 margin-top: 30px; /* Spazia le schede */
 border-radius: 12px;
}

/* 3. Colori di sfondo specifici per le schede */

/* Schede di Emergenza (Rosso) */
#lic-calculator-wrapper #output-emergenza-revenge-porn .nota-teaser,
#lic-calculator-wrapper #output-emergenza-minori .nota-teaser,
#lic-calculator-wrapper #safety-warning-box,
#lic-calculator-wrapper #output-scenario-7-mobbing .nota-teaser {
 background-color: #d32f2f; /* Rosso emergenza */
}

/* Scheda Avviso Stalking (Giallo) */
#lic-calculator-wrapper #stalking-warning-box {
 background-color: #E64A19 !important; /* Giallo avviso */
}

/* Schede Avviso Specifico (Giallo) */
#lic-calculator-wrapper #output-flag-sexting .nota-teaser,
#lic-calculator-wrapper #output-flag-deepfake-live,
#lic-calculator-wrapper #output-scenario-8-media .nota-teaser,
#lic-calculator-wrapper #output-danno-biologico {
 background-color: #E64A19 !important; /* Giallo avviso */
}

/* Schede Standard (Blu Scuro) */
#lic-calculator-wrapper #analisi-qualitativa,
#lic-calculator-wrapper #prossimi-passi-container,
#lic-calculator-wrapper #timeline-container,
#lic-calculator-wrapper .disclaimer {
 background-color: #1d3557; /* Blu scuro brand */
}

/* 4. Forzatura testo bianco (Leggibilità) */
/* Usiamo !important per sovrascrivere le regole specifiche esistenti */
#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser,
#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser h4,
#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser h5,
#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser p,
#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser li,
#lic-calculator-wrapper #prossimi-passi-container,
#lic-calculator-wrapper #prossimi-passi-container h4,
#lic-calculator-wrapper #prossimi-passi-container p,
#lic-calculator-wrapper #prossimi-passi-checklist li strong,
#lic-calculator-wrapper #timeline-container,
#lic-calculator-wrapper #timeline-container h4,
#lic-calculator-wrapper #timeline-container h5,
#lic-calculator-wrapper #timeline-container p,
#lic-calculator-wrapper .timeline-description,
#lic-calculator-wrapper .timeline-time,
#lic-calculator-wrapper .disclaimer,
#lic-calculator-wrapper .disclaimer h4,
#lic-calculator-wrapper .disclaimer p {
 color: #ffffff !important;
}

#lic-calculator-wrapper .rc-styled-box-lite-results .nota-teaser a,
#lic-calculator-wrapper #prossimi-passi-container a,
#lic-calculator-wrapper .disclaimer a {
 color: #ffffff !important;
 font-weight: 700;
 text-decoration: underline;
}

/* 5. Pulizia stili interni (per schede blu) */

/* Rende lo sfondo delle checklist trasparente (era grigio chiaro) */
#prossimi-passi-checklist li {
 background-color: rgba(255, 255, 255, 0.08);
 border-left: 5px solid #e63946; /* Manteniamo il bordo rosso per stacco */
}

/* Modifica icone timeline (erano rosse su sfondo bianco) */
.timeline-list-icon {
 background-color: rgba(255, 255, 255, 0.15);
 border: 2px solid rgba(255, 255, 255, 0.3);
 color: #ffffff; /* Rende l'icona SVG bianca */
}
.timeline-list-item:hover .timeline-list-icon {
 background-color: #e63946; /* Manteniamo l'hover rosso */
}
.timeline-list::before {
 background-color: rgba(255, 255, 255, 0.2); /* Linea timeline */
}
.timeline-time {
 background-color: rgba(0, 0, 0, 0.15); /* Badge tempo */
}

/* --- FINE STILI OUTPUT "A SCHEDE" --- */

/* --- INIZIO BLOCCO PROSSIMI PASSI (Corretto e Completo) --- */

/* 1. Rende il contenitore "prossimi passi" trasparente */
#lic-calculator-wrapper #prossimi-passi-container {
 background: transparent !important;
 padding: 0 !important;
 margin-top: 40px;
 border: none !important;
}

/* 2. Rende scuri SOLO il titolo h4 e il paragrafo p
che sono FIGLI DIRETTI del contenitore */
#lic-calculator-wrapper #prossimi-passi-container > h4 {
 color: #2c3c65 !important; /* Colore titolo originale */
 border-bottom: 2px solid #e63946;
}
#lic-calculator-wrapper #prossimi-passi-container > p {
 color: #333 !important; /* Colore testo scuro per l'intro */
}

/* 3. Stile schede rosse per i singoli passi (gli li) */
#prossimi-passi-checklist li {
 background-color: #d32f2f !important; /* Sfondo rosso */
 border-left: none !important;
 border-radius: 12px !important;
 padding: 20px 25px !important;
 margin-bottom: 15px !important;
}

/* 4. FORZA il testo (strong e p) DENTRO le schede
a essere bianco. Questa è la regola chiave. */
#prossimi-passi-checklist li strong,
#prossimi-passi-checklist li p {
 color: #ffffff !important;
}

/* --- FINE BLOCCO PROSSIMI PASSI --- */

/* ========================================= */
/* === CSS DEFINITIVO GUIDE E MODALI v6 === */
/* ========================================= */

/* --- 1. TRIGGER (LINK) GUIDE STRATEGICHE --- */
.guide-link-container {
 margin-top: 8px;
 margin-bottom: 5px;
 font-size: 0.9em;
 line-height: 1.4;
 position: relative;
 z-index: 5;
 clear: both;
}

.guide-trigger-text {
 color: #003049;
 font-weight: 600;
 cursor: pointer;
 text-decoration: none;
 border-bottom: 1px dotted #003049;
 display: inline-block;
 padding: 4px 6px;
 margin-left: -6px;
 border-radius: 6px;
 transition: all 0.2s ease-in-out; /* Animazione fluida */
 pointer-events: auto;
}

.guide-trigger-text:hover {
 color: #e63946;
 background-color: rgba(230, 57, 70, 0.08);
 border-bottom-style: solid;
 border-bottom-color: #e63946;
}

/* --- 2. OVERLAY MODALE (Centratura Mobile Fix) --- */
.modal-overlay {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background-color: rgba(0, 0, 0, 0.5);
 backdrop-filter: blur(3px);
 z-index: 3000;

 opacity: 0;
 visibility: hidden;
 pointer-events: none;

 /* FLEXBOX FORZATO PER CENTRATURA */
 display: flex !important;
 align-items: center !important;
 justify-content: center !important;
 padding: 20px !important;
 box-sizing: border-box;

 transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal-overlay.active {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
}

/* --- 3. BOX MODALE (Struttura Esterna) --- */
.modal-box {
 background: #ffffff;
 width: 100% !important;
 max-width: 600px !important;
 margin-left: auto !important; /* Sicurezza extra per centratura */
 margin-right: auto !important; /* Sicurezza extra per centratura */
 border-radius: 12px;
 box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
 overflow: hidden;
 transform: translateY(20px);
 transition: transform 0.3s ease-out;
 max-height: 85vh;
 display: flex;
 flex-direction: column;
 font-family: 'Roboto Condensed', sans-serif; /* Font base */
}

.modal-overlay.active .modal-box {
 transform: translateY(0);
}

/* --- 4. HEADER MODALE (Stile Interno) --- */
.modal-header {
 background-color: #1d3557;
 color: #ffffff;
 padding: 15px 20px;
 display: flex;
 justify-content: space-between;
 align-items: center;
 flex-shrink: 0;
}

.modal-header h3 {
 margin: 0 !important;
 color: #ffffff !important;
 font-family: 'Oswald', sans-serif !important; /* Font Titolo Corretto */
 font-weight: 500 !important;
 font-size: 1.3rem !important;
 text-align: left !important;
 border: none !important;
 letter-spacing: 0.5px;
}

.modal-close-btn {
 background: none;
 border: none;
 color: #ffffff;
 font-size: 2.2rem;
 line-height: 1;
 cursor: pointer;
 padding: 0 0 0 15px;
}
.modal-close-btn:hover {
 color: #e63946;
}

/* --- 5. CORPO MODALE (Stile Interno & Scroll) --- */
.modal-body {
 padding: 20px 25px;
 overflow-y: auto;
 font-size: 0.95rem;
 line-height: 1.6;
 color: #2d3748;
 font-family: 'Roboto Condensed', sans-serif !important;
}

/* Sottotitoli H4 nel corpo */
.modal-body h4 {
 color: #1d3557;
 font-family: 'Oswald', sans-serif !important;
 font-weight: 500;
 margin-top: 25px;
 margin-bottom: 10px;
 font-size: 1.1rem;
 border-bottom: 1px solid #e2e8f0;
 padding-bottom: 5px;
}

/* Liste e paragrafi nel corpo */
.modal-body ul {
 padding-left: 20px;
 margin-bottom: 15px;
 margin-top: 0;
}
.modal-body li {
 margin-bottom: 8px;
}
.modal-body p {
 margin-top: 0;
 margin-bottom: 15px;
}

/* --- 6. DISCLAIMER INTERNO --- */
.modal-disclaimer {
 background: #f8f9fa;
 color: #555;
 font-size: 0.9em;
 padding: 12px 15px;
 border-radius: 8px;
 margin-bottom: 20px;
 border-left: 4px solid #003049; /* Blu scuro invece di rosso per tono informativo */
 font-family: 'Roboto Condensed', sans-serif;
}
.modal-disclaimer strong {
 color: #1d3557;
 font-weight: 700;
}

/* --- MOBILE MODAL FIX (Effetto "Bottom Sheet") --- */
@media (max-width: 768px) {
 /* 1. Overlay: spinge tutto in basso e rimuove il padding laterale/inferiore */
 .modal-overlay {
  align-items: flex-end !important; /* Allinea il box al fondo */
  padding: 20px 0 0 0 !important; /* Lascia spazio solo sopra, zero ai lati e sotto */
 }

 /* 2. Box Modale: occupa tutto lo spazio orizzontale e si attacca al fondo */
 .modal-box {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;  /* Rimuove ogni margine residuo */
  border-radius: 20px 20px 0 0; /* Arrotonda solo gli angoli superiori */
  max-height: 85vh;   /* Impedisce che copra tutto lo schermo fino in cima */
 
  /* Opzionale: cambia l'animazione per farlo salire dal basso */
  animation-name: slideUpMobile;
 }

 /* Animazione specifica per mobile (slide dal basso) */
 @keyframes slideUpMobile {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
 }
}
/* === FIX VISIVO: Rimuove la riga sotto il titolo nei box risultati === */
#prossimi-passi-container h4,
#scenario-A h4 {
border: none !important;
box-shadow: none !important;
}