/**
 * RFL – Laguna (Marea)
 *
 * Tutto è dentro `.rfl-laguna`: il tema del sito non viene toccato, e il plugin non
 * eredita sorprese. Tema chiaro e scuro automatici, tutto leggibile fino a 360 px.
 */

.rfl-laguna {
	--rfl-fondo: #eaf0f1;
	--rfl-carta: #ffffff;
	--rfl-carta2: #dde8ea;
	--rfl-incavo: #f3f7f7;
	--rfl-inchiostro: #0d2028;
	--rfl-inchiostro2: #4c6873;
	--rfl-inchiostro3: #7794a0;
	--rfl-filo: #c6d6da;
	--rfl-filo2: #e0eaec;
	--rfl-accento: #0a6c7a;
	--rfl-su-accento: #ffffff;
	--rfl-boa: #c4552c;
	--rfl-bene: #1b7a57;
	--rfl-bene-fondo: #e2f1ea;
	--rfl-attenzione: #9a6a15;
	--rfl-attenzione-fondo: #f6eeda;
	--rfl-male: #a33a2a;
	--rfl-male-fondo: #f7e5e1;
	--rfl-acceso-fondo: #dbeef1;

	max-width: 640px;
	margin: 0 auto;
	color: var(--rfl-inchiostro);
	font-size: 15px;
	line-height: 1.5;
}
.rfl-laguna.rfl-largo { max-width: 900px; }

@media (prefers-color-scheme: dark) {
	.rfl-laguna {
		--rfl-fondo: #07161c;
		--rfl-carta: #0e2028;
		--rfl-carta2: #16303a;
		--rfl-incavo: #0b1d24;
		--rfl-inchiostro: #e3edef;
		--rfl-inchiostro2: #93aeb6;
		--rfl-inchiostro3: #6a8b95;
		--rfl-filo: #21404a;
		--rfl-filo2: #18323b;
		--rfl-accento: #49b8c4;
		--rfl-su-accento: #04222a;
		--rfl-boa: #e2794c;
		--rfl-bene: #4cbc8e;
		--rfl-bene-fondo: #0f2f26;
		--rfl-attenzione: #d8a44a;
		--rfl-attenzione-fondo: #30260f;
		--rfl-male: #e0705c;
		--rfl-male-fondo: #2f1a16;
		--rfl-acceso-fondo: #0f323a;
	}
}

.rfl-laguna * { box-sizing: border-box; }
.rfl-laguna h2 { font-size: 22px; margin: 0 0 4px; line-height: 1.2; }
.rfl-laguna h3 { font-size: 16px; margin: 0; line-height: 1.25; }
.rfl-laguna p { margin: 0 0 8px; }
.rfl-intestazione { margin-bottom: 12px; }
.rfl-corpo { display: flex; flex-direction: column; gap: 12px; }
.rfl-muto { color: var(--rfl-inchiostro2); }
.rfl-minuto { font-size: 12.5px; color: var(--rfl-inchiostro2); margin: 0; }
.rfl-centro { text-align: center; }
.rfl-cresce { flex: 1; min-width: 0; }
.rfl-numero { font-variant-numeric: tabular-nums; font-size: 14px; }
.rfl-sezione { margin-top: 8px; }
.rfl-attesa, .rfl-vuoto { color: var(--rfl-inchiostro2); text-align: center; padding: 20px 10px; }

.rfl-carta {
	background: var(--rfl-carta);
	border: 1px solid var(--rfl-filo);
	border-radius: 6px;
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rfl-carta.rientro { border-left: 3px solid var(--rfl-bene); }
.rfl-riga-testa { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.rfl-due { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 380px) { .rfl-due { grid-template-columns: 1fr; } }

.rfl-occhiello {
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
	color: var(--rfl-inchiostro3); font-weight: 600;
}
.rfl-cod {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 12.5px; font-weight: 600; letter-spacing: .03em;
	background: var(--rfl-carta2); border-radius: 3px; padding: 2px 5px;
}
.rfl-etichetta {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 3px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 600;
	background: var(--rfl-carta2); color: var(--rfl-inchiostro2);
}
.rfl-etichetta.bene { background: var(--rfl-bene-fondo); color: var(--rfl-bene); }
.rfl-etichetta.attenzione { background: var(--rfl-attenzione-fondo); color: var(--rfl-attenzione); }
.rfl-etichetta.acceso { background: var(--rfl-acceso-fondo); color: var(--rfl-accento); }

.rfl-laguna .rfl-bottone {
	background: var(--rfl-accento); color: var(--rfl-su-accento);
	border: 1px solid transparent; border-radius: 5px;
	padding: 11px 16px; font-weight: 600; font-size: 14.5px;
	cursor: pointer; text-align: center; text-decoration: none; display: inline-block;
}
.rfl-laguna .rfl-bottone.pieno { width: 100%; }
.rfl-laguna .rfl-bottone.vuoto { background: transparent; color: var(--rfl-inchiostro); border-color: var(--rfl-filo); }
.rfl-laguna .rfl-bottone.quieto { background: var(--rfl-carta2); color: var(--rfl-inchiostro); }
.rfl-laguna .rfl-bottone.piccolo { padding: 7px 11px; font-size: 13px; }
.rfl-laguna .rfl-bottone[disabled] { opacity: .45; cursor: not-allowed; }
.rfl-icona {
	background: none; border: 1px solid var(--rfl-filo); border-radius: 4px;
	width: 28px; height: 28px; flex: none; cursor: pointer; color: var(--rfl-inchiostro2);
	font-size: 13px; line-height: 1;
}

.rfl-laguna input[type="text"], .rfl-laguna input[type="tel"], .rfl-laguna input[type="date"],
.rfl-laguna input[type="time"], .rfl-laguna input[type="number"], .rfl-laguna select {
	background: var(--rfl-incavo); border: 1px solid var(--rfl-filo); border-radius: 5px;
	padding: 10px 11px; font-size: 15px; width: 100%; color: var(--rfl-inchiostro);
}
.rfl-laguna input[type="range"] { width: 100%; }
.rfl-campo { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--rfl-inchiostro2); }
.rfl-consenso { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; color: var(--rfl-inchiostro2); }
.rfl-consenso input { width: 18px; height: 18px; margin-top: 2px; flex: none; }
.rfl-trappola { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; }
.rfl-cerca { width: 100%; }

.rfl-chip-riga { display: flex; gap: 6px; flex-wrap: wrap; }
.rfl-chip {
	background: var(--rfl-carta); border: 1px solid var(--rfl-filo); border-radius: 999px;
	padding: 6px 11px; font-size: 13px; cursor: pointer; color: var(--rfl-inchiostro2);
}
.rfl-chip[aria-pressed="true"] { background: var(--rfl-acceso-fondo); border-color: var(--rfl-accento); color: var(--rfl-inchiostro); }

.rfl-mappa {
	height: min(58vh, 460px); min-height: 300px;
	border: 1px solid var(--rfl-filo); border-radius: 6px; overflow: hidden;
	background: var(--rfl-carta2); z-index: 0;
}
.rfl-scheda:empty { display: none; }
.rfl-scheda {
	background: var(--rfl-carta); border: 1px solid var(--rfl-filo); border-radius: 6px; padding: 14px;
	display: flex; flex-direction: column; gap: 6px;
}
.rfl-scheda-testa { display: flex; gap: 8px; align-items: center; }
.rfl-scelte { display: flex; flex-direction: column; gap: 6px; }
.rfl-modulo { display: flex; flex-direction: column; gap: 12px; }

.rfl-lista { list-style: none; margin: 0; padding: 0; }
.rfl-lista li { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--rfl-filo2); }
.rfl-lista li:last-child { border-bottom: 0; }
.rfl-ordine {
	width: 20px; height: 20px; flex: none; border-radius: 50%;
	background: var(--rfl-boa); color: #fff; font-size: 11px; font-weight: 700;
	display: grid; place-items: center;
}
.rfl-ordine.alt { background: var(--rfl-accento); }

.rfl-rotta { display: flex; flex-direction: column; }
.rfl-fermata { display: grid; grid-template-columns: 52px 18px 1fr; align-items: start; gap: 8px; font-size: 13.5px; }
.rfl-ora { font-family: ui-monospace, monospace; font-size: 12.5px; color: var(--rfl-inchiostro2); font-variant-numeric: tabular-nums; }
.rfl-filo { position: relative; min-height: 30px; display: grid; justify-items: center; }
.rfl-filo::before { content: ""; position: absolute; top: 9px; bottom: -3px; width: 2px; background: var(--rfl-filo); }
.rfl-fermata:last-child .rfl-filo::before { display: none; }
.rfl-punto { width: 9px; height: 9px; border-radius: 50%; background: var(--rfl-carta); border: 2px solid var(--rfl-accento); margin-top: 4px; z-index: 1; }
.rfl-fermata.sale .rfl-punto { background: var(--rfl-accento); }
.rfl-fermata.fine .rfl-punto { background: var(--rfl-boa); border-color: var(--rfl-boa); }

.rfl-scala { display: flex; gap: 4px; align-items: flex-end; height: 56px; margin-top: 18px; }
.rfl-scala div {
	flex: 1; border-radius: 3px 3px 0 0; background: var(--rfl-carta2);
	display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
	padding-bottom: 3px; font-size: 10.5px; color: var(--rfl-inchiostro2); position: relative;
}
.rfl-scala div.att { background: var(--rfl-accento); color: var(--rfl-su-accento); font-weight: 600; }
.rfl-scala span { position: absolute; top: -15px; font-size: 10.5px; color: var(--rfl-inchiostro3); font-family: ui-monospace, monospace; }

.rfl-kpi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rfl-filo2); border-radius: 5px; overflow: hidden; }
.rfl-kpi div { background: var(--rfl-carta); padding: 10px 8px; }
.rfl-kpi b { display: block; font-size: 20px; font-variant-numeric: tabular-nums; line-height: 1.15; }
.rfl-kpi span { font-size: 11px; color: var(--rfl-inchiostro3); }

.rfl-barra { height: 6px; border-radius: 3px; background: var(--rfl-carta2); overflow: hidden; }
.rfl-barra i { display: block; height: 100%; background: var(--rfl-bene); }

.rfl-avviso {
	font-size: 12.5px; color: var(--rfl-inchiostro2);
	background: var(--rfl-incavo); border: 1px solid var(--rfl-filo2);
	border-left: 3px solid var(--rfl-filo); border-radius: 5px; padding: 10px 11px;
}
.rfl-avviso.bene { border-left-color: var(--rfl-bene); }
.rfl-avviso.male { border-left-color: var(--rfl-male); background: var(--rfl-male-fondo); color: var(--rfl-male); }
.rfl-messaggio {
	background: var(--rfl-incavo); border: 1px solid var(--rfl-filo2); border-left: 3px solid var(--rfl-bene);
	border-radius: 4px; padding: 10px 12px; font-size: 13px; white-space: pre-wrap; line-height: 1.45;
}
.rfl-fatto { background: var(--rfl-carta); border: 1px solid var(--rfl-filo); border-radius: 6px; padding: 18px; display: flex; flex-direction: column; gap: 10px; }

.rfl-schede { display: flex; gap: 18px; border-bottom: 1px solid var(--rfl-filo); margin-bottom: 12px; }
.rfl-schede button {
	background: none; border: 0; border-bottom: 2px solid transparent;
	padding: 9px 0; font-size: 14px; font-weight: 500; color: var(--rfl-inchiostro3); cursor: pointer;
}
.rfl-schede button.attiva { color: var(--rfl-inchiostro); border-bottom-color: var(--rfl-boa); }

/* ---------- pagine della vetrina (home, funziona, prezzi, tratte, domande) ---------- */
.rfl-vetrina { display: flex; flex-direction: column; gap: 14px; }
.rfl-vetrina h1 { font-size: 28px; line-height: 1.1; margin: 0; letter-spacing: -.02em; }
.rfl-vetrina p { max-width: 62ch; }
.rfl-sezione { font-size: 17px; margin: 6px 0 0; }

.rfl-eroe {
	background: var(--rfl-carta); border: 1px solid var(--rfl-filo); border-radius: 8px;
	padding: 20px 18px; display: flex; flex-direction: column; gap: 10px;
}
.rfl-eroe h1 { font-size: 30px; }
.rfl-claim { color: var(--rfl-inchiostro2); font-size: 14.5px; margin: 0; }
.rfl-eroe .rfl-due { margin: 4px 0 0; }

.rfl-promessa {
	background: var(--rfl-acceso-fondo); border-radius: 6px; padding: 13px 14px; font-size: 13.5px;
}
.rfl-promessa strong { display: block; }

.rfl-passi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 560px) { .rfl-passi { grid-template-columns: 1fr; } }
.rfl-passo { background: var(--rfl-carta); border: 1px solid var(--rfl-filo); border-radius: 6px; padding: 13px; }
.rfl-passo h3 { font-size: 15px; margin: 0 0 4px; }
.rfl-passo p { margin: 0; }
.rfl-n {
	width: 22px; height: 22px; border-radius: 50%; background: var(--rfl-boa); color: #fff;
	font-size: 11.5px; font-weight: 700; display: grid; place-items: center; margin-bottom: 7px; flex: none;
}
.rfl-passo-lungo { flex-direction: row; align-items: flex-start; gap: 12px; }
.rfl-passo-lungo h3 { margin: 0 0 4px; }
.rfl-passo-lungo p { margin: 0; }

.rfl-dom { border-bottom: 1px solid var(--rfl-filo2); }
.rfl-dom:last-child { border-bottom: 0; }
.rfl-dom summary {
	cursor: pointer; padding: 12px 0; font-weight: 600; font-size: 14.5px;
	list-style: none; display: flex; gap: 10px; align-items: flex-start;
}
.rfl-dom summary::-webkit-details-marker { display: none; }
.rfl-dom summary::before { content: "+"; color: var(--rfl-accento); font-weight: 700; flex: none; }
.rfl-dom[open] summary::before { content: "\2013"; }
.rfl-risposta { padding: 0 0 12px 20px; font-size: 13.5px; color: var(--rfl-inchiostro2); }

.rfl-scorre { overflow-x: auto; }
.rfl-tabella { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.rfl-tabella th {
	text-align: left; font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
	color: var(--rfl-inchiostro3); font-weight: 600; padding: 0 8px 7px 0; border-bottom: 1px solid var(--rfl-filo);
}
.rfl-tabella td { padding: 9px 8px 9px 0; border-bottom: 1px solid var(--rfl-filo2); vertical-align: top; }
.rfl-tabella tr:last-child td { border-bottom: 0; }
.rfl-tabella td.n, .rfl-tabella th.n { text-align: right; font-variant-numeric: tabular-nums; padding-right: 0; }
