/* =============================================================================
   Paid FEC Subscription — moduli pubblici
   Stessa palette del resto del plugin. Ogni var() porta il suo valore di
   ripiego: se un ottimizzatore scarta un blocco, i colori restano giusti.
   Mobile first.
   ========================================================================== */

.fec-abb {
	--fec-ink: #1b1140;
	--fec-grape: #4b2e83;
	--fec-confetto: #ff3d7f;
	--fec-limone: #ffc53d;
	--fec-menta: #12b886;
	--fec-carta: #fbf7ff;
	--fec-nebbia: #ede7f6;
	--fec-bordo: #ddd2ee;
	--fec-testo: #241a44;
	--fec-tenue: #6b5f8c;
	--fec-r: 14px;
	--fec-r-s: 8px;
	color: var(--fec-testo, #241a44);
	font-size: 1rem;
	line-height: 1.5;
	max-width: 44rem;
	margin: 0 auto 2rem;
	box-sizing: border-box;
}
.fec-abb *,
.fec-abb *::before,
.fec-abb *::after { box-sizing: inherit; min-width: 0; }

.fec-abb-modulo { margin: 0; }
.fec-abb-campo { margin: 0 0 1rem; display: flex; flex-direction: column; gap: .3rem; }
.fec-abb-campo > label { font-weight: 600; color: var(--fec-ink, #1b1140); }
.fec-abb-campo small { color: var(--fec-tenue, #6b5f8c); font-size: .85rem; }
.fec-abb input[type="text"],
.fec-abb input[type="email"],
.fec-abb input[type="tel"],
.fec-abb input[type="password"] {
	width: 100%;
	max-width: 100%;
	padding: .7rem .85rem;
	border: 1.5px solid var(--fec-bordo, #ddd2ee);
	border-radius: var(--fec-r-s, 8px);
	background: #fff;
	color: var(--fec-testo, #241a44);
	font: inherit;
}
.fec-abb input:focus-visible,
.fec-abb button:focus-visible,
.fec-abb a:focus-visible {
	outline: 3px solid var(--fec-limone, #ffc53d);
	outline-offset: 2px;
}
.fec-abb-campo--errore input { border-color: #c2255c; }
.fec-abb-errore { color: #c2255c; font-size: .9rem; font-weight: 600; }
.fec-abb-ok { color: #0a7d4f; font-size: .9rem; font-weight: 600; }
.fec-abb-griglia { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
@media (min-width: 560px) { .fec-abb-griglia { grid-template-columns: 1fr 1fr; } }

.fec-abb-nota { color: var(--fec-tenue, #6b5f8c); margin: 0 0 1rem; }
.fec-abb-link { margin-top: 1rem; font-size: .95rem; }
.fec-abb a { color: var(--fec-grape, #4b2e83); }

.fec-abb-btn {
	display: inline-block;
	padding: .8rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--fec-confetto, #ff3d7f);
	color: #fff !important;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: transform .12s ease, background .12s ease;
}
.fec-abb-btn:hover { background: #e6286a; transform: translateY(-1px); }
.fec-abb-btn:disabled { opacity: .6; cursor: default; transform: none; }
.fec-abb-btn--secondario { background: var(--fec-grape, #4b2e83); padding: .7rem 1.1rem; }
.fec-abb-btn--secondario:hover { background: #3a2266; }
.fec-abb-btn--leggero {
	background: transparent;
	color: var(--fec-tenue, #6b5f8c) !important;
	border: 1.5px solid var(--fec-bordo, #ddd2ee);
	font-weight: 600;
}
.fec-abb-btn--leggero:hover { background: var(--fec-nebbia, #ede7f6); }
.fec-abb-riga { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Avvisi */
.fec-abb-avviso {
	padding: .9rem 1.1rem;
	border-radius: var(--fec-r-s, 8px);
	margin: 0 0 1rem;
	border-left: 5px solid var(--fec-grape, #4b2e83);
	background: var(--fec-nebbia, #ede7f6);
	overflow-wrap: anywhere;
}
.fec-abb-avviso p { margin: .4rem 0 0; }
.fec-abb-avviso--ok { border-color: var(--fec-menta, #12b886); background: #e6f8f1; }
.fec-abb-avviso--errore { border-color: #c2255c; background: #fdecf2; }
.fec-abb-avviso--info { border-color: var(--fec-limone, #ffc53d); background: #fff8e6; }

/* Piani */
.fec-abb fieldset { border: 0; padding: 0; margin: 0 0 1.2rem; }
.fec-abb legend { font-weight: 700; color: var(--fec-ink, #1b1140); margin-bottom: .5rem; padding: 0; }
.fec-abb-piani { display: grid; gap: .6rem; }
.fec-abb-piano {
	display: flex;
	gap: .8rem;
	align-items: flex-start;
	padding: .9rem 1rem;
	border: 2px solid var(--fec-bordo, #ddd2ee);
	border-radius: var(--fec-r, 14px);
	background: #fff;
	cursor: pointer;
	transition: border-color .12s ease, background .12s ease;
}
.fec-abb-piano:hover { border-color: var(--fec-grape, #4b2e83); }
.fec-abb-piano:has(input:checked) { border-color: var(--fec-confetto, #ff3d7f); background: #fff5f9; }
.fec-abb-piano input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .3rem; accent-color: var(--fec-confetto, #ff3d7f); }
.fec-abb-piano__corpo { display: flex; flex-direction: column; gap: .15rem; }
.fec-abb-piano__nome { font-size: 1.05rem; color: var(--fec-ink, #1b1140); }
.fec-abb-piano__prezzo { font-weight: 600; color: var(--fec-grape, #4b2e83); }
.fec-abb-piano__descr { color: var(--fec-tenue, #6b5f8c); font-size: .9rem; }

.fec-abb-sconto__riga { display: flex; gap: .5rem; }
.fec-abb-sconto__riga input { flex: 1; text-transform: uppercase; }
.fec-abb-riepilogo {
	margin: 0 0 1.2rem;
	padding: .8rem 1rem;
	border-radius: var(--fec-r-s, 8px);
	background: var(--fec-carta, #fbf7ff);
	border: 1px dashed var(--fec-bordo, #ddd2ee);
	font-weight: 600;
}
.fec-abb-riepilogo:empty { display: none; }
.fec-abb-gateway { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; }
.fec-abb-gateway legend { width: 100%; }
.fec-abb-gw { display: inline-flex; gap: .4rem; align-items: center; cursor: pointer; }
.fec-abb-gw input, .fec-abb-auto input, .fec-abb-consenso input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--fec-confetto, #ff3d7f); }
.fec-abb-auto label, .fec-abb-consenso label { display: flex; gap: .5rem; align-items: flex-start; }
.fec-abb [hidden] { display: none !important; }

/* Area personale */
.fec-abb-testa {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}
.fec-abb-esci { font-size: .9rem; }
.fec-abb-schede {
	display: flex;
	gap: .3rem;
	overflow-x: auto;
	margin: 0 0 1.3rem;
	border-bottom: 2px solid var(--fec-nebbia, #ede7f6);
}
.fec-abb-schede a {
	padding: .6rem .9rem;
	text-decoration: none;
	color: var(--fec-tenue, #6b5f8c);
	font-weight: 600;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
}
.fec-abb-schede a[aria-current="page"] { color: var(--fec-ink, #1b1140); border-bottom-color: var(--fec-confetto, #ff3d7f); }
.fec-abb-blocco {
	padding: 1.1rem 1.2rem;
	border: 1px solid var(--fec-bordo, #ddd2ee);
	border-radius: var(--fec-r, 14px);
	background: #fff;
	margin: 0 0 1.2rem;
}
.fec-abb-blocco h3 { margin: 0 0 .8rem; font-size: 1.15rem; color: var(--fec-ink, #1b1140); }
.fec-abb-mio__testa { display: flex; justify-content: space-between; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .6rem; }
.fec-abb-mio__testa h3 { margin: 0; }
.fec-abb-stato { padding: .2rem .7rem; border-radius: 999px; font-size: .85rem; font-weight: 700; }
.fec-abb-stato--ok { background: #e6f8f1; color: #0a7d4f; }
.fec-abb-stato--attesa { background: #fff3d6; color: #8a5a00; }
.fec-abb-stato--ko { background: #fdecf2; color: #a5133a; }
.fec-abb-dati { display: grid; grid-template-columns: auto 1fr; gap: .3rem 1rem; margin: 0 0 1rem; }
.fec-abb-dati dt { color: var(--fec-tenue, #6b5f8c); }
.fec-abb-dati dd { margin: 0; font-weight: 600; }
.fec-abb-attesa { padding: 1rem; background: #fff8e6; border-radius: var(--fec-r-s, 8px); margin: 0 0 1rem; }
.fec-abb-attesa h4 { margin: 0 0 .5rem; }

.fec-abb-tabella { overflow-x: auto; }
.fec-abb-tabella table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.fec-abb-tabella th, .fec-abb-tabella td { padding: .6rem .5rem; text-align: left; border-bottom: 1px solid var(--fec-nebbia, #ede7f6); }
.fec-abb-tabella th { color: var(--fec-tenue, #6b5f8c); font-weight: 600; }
.fec-abb-pg { font-weight: 700; }
.fec-abb-pg--completato { color: #0a7d4f; }
.fec-abb-pg--in_attesa { color: #8a5a00; }
.fec-abb-pg--fallito, .fec-abb-pg--rimborsato { color: #a5133a; }
@media (max-width: 559px) {
	.fec-abb-tabella thead { display: none; }
	.fec-abb-tabella tr { display: block; padding: .5rem 0; border-bottom: 1px solid var(--fec-bordo, #ddd2ee); }
	.fec-abb-tabella td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .2rem 0; }
	.fec-abb-tabella td::before { content: attr(data-t); color: var(--fec-tenue, #6b5f8c); }
}

/* Contenuto riservato */
.fec-abb-riservato {
	max-width: none;
	padding: 1.2rem 1.3rem;
	border-radius: var(--fec-r, 14px);
	background: linear-gradient(135deg, #f6f0ff, #fff5f9);
	border: 1px solid var(--fec-bordo, #ddd2ee);
	margin: 1rem 0;
}
.fec-abb-riservato::before { content: "🔒"; font-size: 1.4rem; display: block; margin-bottom: .3rem; }
.fec-abb-riservato p:last-child { margin-bottom: 0; }

/* Listino */
.fec-abb-listino {
	max-width: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 1rem;
}
.fec-abb-listino__piano {
	display: flex;
	flex-direction: column;
	padding: 1.4rem 1.3rem;
	border: 2px solid var(--fec-bordo, #ddd2ee);
	border-radius: var(--fec-r, 14px);
	background: #fff;
}
.fec-abb-listino__piano h3 { margin: 0 0 .4rem; color: var(--fec-ink, #1b1140); }
.fec-abb-listino__prezzo { margin: 0 0 .4rem; }
.fec-abb-listino__prezzo strong { font-size: 1.9rem; color: var(--fec-confetto, #ff3d7f); }
.fec-abb-listino__prezzo span { color: var(--fec-tenue, #6b5f8c); }
.fec-abb-listino__prova, .fec-abb-listino__quota { margin: 0 0 .3rem; font-size: .9rem; font-weight: 600; color: var(--fec-grape, #4b2e83); }
.fec-abb-listino__descr { flex: 1; font-size: .95rem; }
