/* Offerta Formativa GTC — stili front-end.
   Pensati per non entrare in conflitto con il tema: prefisso ofgtc- su tutto,
   nessun reset globale. Personalizzabili dal tema (child theme / CSS
   aggiuntivo) sovrascrivendo queste classi o le variabili --ofgtc-*. */

.ofgtc-elenco,
.ofgtc-scheda-corso {
	--ofgtc-ink: #1f2937;
	--ofgtc-ink-soft: #6b7280;
	--ofgtc-line: #e5e7eb;
	--ofgtc-card-bg: #ffffff;
	--ofgtc-radius: 14px;
	--ofgtc-radius-sm: 8px;
	--ofgtc-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
	--ofgtc-shadow-hover: 0 4px 10px rgba(16, 24, 40, .10), 0 2px 4px rgba(16, 24, 40, .08);
}

/* ===== Temi grafici per macro-categoria di corso ===== */
.ofgtc-tema-triennale {
	--ofgtc-accent: #2563eb;
	--ofgtc-accent-dark: #1d4ed8;
	--ofgtc-accent-bg: #eff6ff;
	--ofgtc-accent-border: #bfdbfe;
}

.ofgtc-tema-magistrale {
	--ofgtc-accent: #7c3aed;
	--ofgtc-accent-dark: #6d28d9;
	--ofgtc-accent-bg: #f5f3ff;
	--ofgtc-accent-border: #ddd6fe;
}

.ofgtc-tema-master {
	--ofgtc-accent: #0f766e;
	--ofgtc-accent-dark: #115e59;
	--ofgtc-accent-bg: #f0fdfa;
	--ofgtc-accent-border: #99f6e4;
}

/* ===== Badge icona (placeholder a tema scuola) ===== */
.ofgtc-badge-icona {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--ofgtc-accent, #6b7280);
	color: #fff;
	flex-shrink: 0;
}

.ofgtc-badge-icona svg {
	display: block;
	width: 58%;
	height: 58%;
}

.ofgtc-badge {
	display: inline-block;
	padding: 3px 11px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--ofgtc-accent-border, #e5e7eb);
	color: var(--ofgtc-ink-soft);
	font-size: 12.5px;
	font-weight: 600;
}

/* ===== Griglia elenco =====
   Stesso approccio difensivo del modulo di contatto (vedi piu' sotto): il
   tema del sito puo' avere le proprie regole per liste, link e "card" che
   qui vanno sempre vinte con !important, altrimenti le card dell'elenco
   possono apparire sovrapposte, disallineate o senza la griglia. */
.ofgtc-elenco,
.ofgtc-elenco * {
	box-sizing: border-box !important;
}

.ofgtc-elenco {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
	gap: 22px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.ofgtc-elenco-item {
	display: flex !important;
	flex-direction: column !important;
	float: none !important;
	width: auto !important;
	height: auto !important;
	background: var(--ofgtc-card-bg) !important;
	border: 1px solid var(--ofgtc-line) !important;
	border-radius: var(--ofgtc-radius) !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: var(--ofgtc-shadow) !important;
	transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease !important;
	position: relative !important;
	overflow: hidden !important;
}

.ofgtc-elenco-item::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 4px !important;
	background: var(--ofgtc-accent, #6b7280) !important;
}

.ofgtc-elenco-item:hover,
.ofgtc-elenco-item:focus-within {
	box-shadow: var(--ofgtc-shadow-hover) !important;
	transform: translateY(-2px) !important;
	border-color: var(--ofgtc-accent-border, #d1d5db) !important;
}

.ofgtc-elenco-link {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	padding: 20px 20px 16px !important;
	margin: 0 !important;
	text-decoration: none !important;
	color: inherit !important;
	background: none !important;
	border: none !important;
}

.ofgtc-elenco-link:hover,
.ofgtc-elenco-link:focus {
	text-decoration: none !important;
	color: inherit !important;
}

.ofgtc-elenco-top {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

.ofgtc-elenco-titoli {
	min-width: 0 !important;
	flex: 1 1 auto !important;
}

.ofgtc-elenco-titolo {
	display: block !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	line-height: 1.35 !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	color: var(--ofgtc-ink) !important;
}

.ofgtc-elenco-tipo-label {
	display: block !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--ofgtc-accent-dark, var(--ofgtc-ink-soft)) !important;
	text-transform: uppercase !important;
	letter-spacing: .03em !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ofgtc-elenco-meta {
	margin: auto 0 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px 10px !important;
	padding: 12px 0 0 !important;
	border-top: 1px solid var(--ofgtc-line) !important;
	border-right: none !important;
	border-bottom: none !important;
	border-left: none !important;
	list-style: none !important;
}

.ofgtc-pill {
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	font-size: 12.5px !important;
	color: var(--ofgtc-ink-soft) !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	line-height: 1.3 !important;
}

.ofgtc-elenco-cta {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 13px 20px !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	font-family: inherit !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: #fff !important;
	background: var(--ofgtc-accent, #2563eb) !important;
	background-image: none !important;
	border: none !important;
	box-shadow: none !important;
	transition: background .15s ease, gap .15s ease !important;
}

.ofgtc-elenco-cta:hover,
.ofgtc-elenco-cta:focus {
	background: var(--ofgtc-accent-dark, #1d4ed8) !important;
	color: #fff !important;
	gap: 12px !important;
}

.ofgtc-icona-freccia {
	display: block !important;
	width: 15px !important;
	height: 15px !important;
	flex-shrink: 0 !important;
	color: #fff !important;
}

.ofgtc-elenco-codice {
	display: block !important;
	font-size: 11.5px !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
	color: var(--ofgtc-ink-soft) !important;
	margin: 0 !important;
	padding: 0 !important;
	letter-spacing: .01em !important;
}

.ofgtc-vuoto,
.ofgtc-elenco-nessun-risultato {
	color: #666;
	font-style: italic;
}

/* ===== Contenitore, gruppi e barra filtri dell'elenco =====
   Stesso approccio difensivo delle altre sezioni: il tema del sito puo'
   avere le proprie regole per liste, form e titoli che qui vanno sempre
   vinte con !important. */
.ofgtc-elenco-contenitore,
.ofgtc-elenco-contenitore * {
	box-sizing: border-box !important;
}

.ofgtc-elenco-contenitore [hidden] {
	display: none !important;
}

.ofgtc-elenco-filtri {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	margin: 0 0 26px !important;
	padding: 0 !important;
}

.ofgtc-elenco-filtri input[type="search"],
.ofgtc-elenco-filtri select {
	display: block !important;
	margin: 0 !important;
	padding: 10px 14px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
	color: var(--ofgtc-ink, #1f2937) !important;
	background: #fff !important;
	background-image: none !important;
	border: 1px solid var(--ofgtc-line, #d1d5db) !important;
	border-radius: var(--ofgtc-radius-sm, 8px) !important;
	box-shadow: none !important;
	height: auto !important;
}

.ofgtc-elenco-filtri input[type="search"] {
	flex: 1 1 220px !important;
	min-width: 180px !important;
}

.ofgtc-elenco-filtri select {
	flex: 0 1 220px !important;
	min-width: 160px !important;
	cursor: pointer !important;
}

.ofgtc-elenco-filtri input[type="search"]:focus,
.ofgtc-elenco-filtri select:focus {
	outline: 2px solid #6b7280 !important;
	outline-offset: 1px !important;
	border-color: #9ca3af !important;
}

.ofgtc-elenco-gruppo {
	margin: 0 0 36px !important;
	padding: 0 !important;
}

.ofgtc-elenco-gruppo:last-child {
	margin-bottom: 0 !important;
}

.ofgtc-elenco-gruppo-titolo {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px !important;
	padding: 0 0 0 14px !important;
	color: var(--ofgtc-ink, #1f2937) !important;
	border-left: 4px solid var(--ofgtc-accent, #6b7280) !important;
	line-height: 1.3 !important;
}

/* ===== Pagina archivio per categoria (Dipartimento / Tipo Corso) ===== */
.ofgtc-elenco-wrap {
	max-width: 1180px;
	margin: 0 auto;
}

.ofgtc-elenco-titolo-pagina {
	font-size: 30px;
	line-height: 1.25;
	margin: 0 0 24px;
	color: #1f2937;
}

/* ===== Scheda corso singolo ===== */
.ofgtc-single-wrap {
	padding: 40px 24px 64px;
}

.ofgtc-scheda-corso {
	max-width: 980px;
	margin: 0 auto;
	font-size: 16px;
}

.ofgtc-hero {
	background: var(--ofgtc-accent-bg, #f7f7f7);
	border: 1px solid var(--ofgtc-accent-border, #e5e7eb);
	border-radius: var(--ofgtc-radius);
	padding: 36px 40px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 26px;
	margin-bottom: 26px;
}

.ofgtc-hero-testo {
	min-width: 0;
	flex: 1 1 auto;
}

/* ===== Logo Università/Polo (impostabile da "Offerta Formativa > Logo
   Università") — sempre a fianco del titolo, in ogni contesto in cui la
   scheda del corso viene mostrata (pagina singola o shortcode [offerta_corso]
   dentro un'altra pagina), cosi' chi arriva sulla pagina riconosce subito a
   quale Università/Polo si sta iscrivendo. Nessuno spazio riservato se non è
   configurato: l'elemento semplicemente non viene stampato. ===== */
.ofgtc-hero-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: 260px;
	max-height: 140px;
	flex-shrink: 0;
	margin-left: auto;
	object-fit: contain;
}

@media (max-width: 640px) {
	.ofgtc-hero-logo {
		max-width: 192px;
		max-height: 108px;
		margin-left: 0;
	}
}

.ofgtc-hero-eyebrow {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ofgtc-accent-dark);
	margin-bottom: 6px;
}

.ofgtc-hero-titolo {
	font-size: 32px;
	line-height: 1.25;
	margin: 0 0 12px;
	color: var(--ofgtc-ink);
}

.ofgtc-hero-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ofgtc-sezione {
	background: var(--ofgtc-card-bg);
	border: 1px solid var(--ofgtc-line);
	border-radius: var(--ofgtc-radius);
	padding: 28px 32px;
	margin-bottom: 20px;
	box-shadow: var(--ofgtc-shadow);
}

.ofgtc-sezione h3 {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ofgtc-ink-soft);
	margin: 0 0 18px;
}

.ofgtc-scheda-dati {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 16px 20px;
	margin: 0;
}

.ofgtc-dato {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ofgtc-dato dt {
	font-size: 12px;
	color: var(--ofgtc-ink-soft);
	font-weight: 600;
	margin: 0;
}

.ofgtc-dato dd {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--ofgtc-ink);
}

.ofgtc-scheda-descrizione {
	margin-bottom: 18px;
}

/* ===== Requisito di accesso ===== */
.ofgtc-requisito {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: var(--ofgtc-accent-bg, #f7f7f7);
	border: 1px solid var(--ofgtc-accent-border, #e5e7eb);
	border-radius: var(--ofgtc-radius);
	padding: 18px 22px;
	margin-bottom: 18px;
}

.ofgtc-requisito-icona {
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--ofgtc-accent-dark);
}

.ofgtc-requisito h3 {
	margin: 0 0 4px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ofgtc-accent-dark);
}

.ofgtc-requisito p {
	margin: 0;
	font-size: 14.5px;
}

/* ===== Prezzi e tasse ===== */
.ofgtc-prezzi-tabella {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 14px;
	margin-bottom: 14px;
}

.ofgtc-prezzo-card {
	display: flex;
	flex-direction: column;
	padding: 16px 18px;
	border: 1px solid var(--ofgtc-line);
	border-radius: var(--ofgtc-radius-sm);
	background: #fafafa;
}

.ofgtc-prezzo-soci {
	border-color: var(--ofgtc-accent);
	background: var(--ofgtc-accent-bg);
}

.ofgtc-prezzo-etichetta {
	font-weight: 700;
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--ofgtc-ink-soft);
}

.ofgtc-prezzo-valore {
	font-size: 24px;
	font-weight: 800;
	margin: 4px 0 2px;
	color: var(--ofgtc-ink);
}

.ofgtc-prezzo-dettaglio {
	font-size: 12.5px;
	color: var(--ofgtc-ink-soft);
}

.ofgtc-prezzi-tasse-elenco {
	font-size: 12.5px;
	color: var(--ofgtc-ink-soft);
	margin: 0;
}

/* ===== Piano di studi ===== */
.ofgtc-curriculum {
	font-size: 15px;
	margin: 0 0 4px;
	color: var(--ofgtc-ink);
}

.ofgtc-anno-chip {
	display: inline-block;
	background: var(--ofgtc-accent);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
	margin: 14px 0 8px;
}

.ofgtc-tabella-piano {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 4px;
}

.ofgtc-tabella-piano th,
.ofgtc-tabella-piano td {
	padding: 9px 10px;
	text-align: left;
	font-size: 13.5px;
	border-bottom: 1px solid var(--ofgtc-line);
}

.ofgtc-tabella-piano th {
	font-size: 11.5px;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--ofgtc-ink-soft);
	border-bottom: 2px solid var(--ofgtc-line);
}

.ofgtc-tabella-piano tbody tr:nth-child(even) {
	background: #fafafa;
}

/* ===== Breadcrumb ===== */
.ofgtc-breadcrumb {
	max-width: 980px;
	margin: 0 auto 20px;
	font-size: 13px;
	color: var(--ofgtc-ink-soft, #6b7280);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.ofgtc-breadcrumb a {
	color: var(--ofgtc-ink-soft, #6b7280);
	text-decoration: none;
}

.ofgtc-breadcrumb a:hover {
	text-decoration: underline;
	color: var(--ofgtc-ink, #1f2937);
}

.ofgtc-breadcrumb-sep {
	margin: 0 7px;
	color: var(--ofgtc-line, #d1d5db);
}

.ofgtc-breadcrumb-corrente {
	color: var(--ofgtc-ink, #1f2937);
	font-weight: 600;
}

/* ===== Modulo di contatto =====
   Il tema del sito puo' avere le proprie regole per input/textarea/button
   (spesso con selettori piu' specifici o caricate dopo questo file): tutte
   le dichiarazioni visive che contano davvero qui sotto usano !important,
   apposta per vincere sempre sul tema, cosi' il modulo ha lo stesso aspetto
   su qualsiasi sito. Il fallback di --ofgtc-accent non e' mai piu' scuro
   dell'inchiostro del testo, cosi' anche nel caso limite in cui il tema
   colori' il corso al di fuori del proprio contenitore ".ofgtc-tema-*" il
   pulsante resta comunque blu e riconoscibile, mai nero. */
.ofgtc-form-contatto,
.ofgtc-form-contatto * {
	box-sizing: border-box !important;
}

.ofgtc-form-contatto h3 {
	font-weight: 700 !important;
	color: var(--ofgtc-ink, #1f2937) !important;
}

.ofgtc-form-contatto p {
	margin: 0 0 16px !important;
	padding: 0 !important;
	color: var(--ofgtc-ink-soft, #6b7280) !important;
	font-size: 14px !important;
	font-family: inherit !important;
}

.ofgtc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.ofgtc-form-riga {
	margin: 0 0 16px !important;
	padding: 0 !important;
	list-style: none !important;
	float: none !important;
}

.ofgtc-form-riga label {
	display: block !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--ofgtc-ink, #1f2937) !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	line-height: 1.4 !important;
	font-family: inherit !important;
}

.ofgtc-form-colonne {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
	gap: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ofgtc-form-contatto input[type="text"],
.ofgtc-form-contatto input[type="email"],
.ofgtc-form-contatto input[type="tel"],
.ofgtc-form-contatto input[type="file"],
.ofgtc-form-contatto textarea {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	font-size: 14.5px !important;
	line-height: 1.4 !important;
	font-family: inherit !important;
	color: var(--ofgtc-ink, #1f2937) !important;
	background: #fff !important;
	background-image: none !important;
	border: 1px solid var(--ofgtc-line, #d1d5db) !important;
	border-radius: var(--ofgtc-radius-sm, 8px) !important;
	box-shadow: none !important;
}

.ofgtc-form-contatto input[type="text"]:focus,
.ofgtc-form-contatto input[type="email"]:focus,
.ofgtc-form-contatto input[type="tel"]:focus,
.ofgtc-form-contatto textarea:focus {
	outline: 2px solid var(--ofgtc-accent, #2563eb) !important;
	outline-offset: 1px !important;
	border-color: var(--ofgtc-accent, #2563eb) !important;
}

.ofgtc-form-contatto textarea {
	resize: vertical !important;
	min-height: 100px !important;
}

.ofgtc-form-privacy label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	color: var(--ofgtc-ink-soft, #6b7280) !important;
}

.ofgtc-form-contatto input[type="checkbox"] {
	appearance: auto !important;
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	margin: 3px 0 0 !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	accent-color: var(--ofgtc-accent, #2563eb);
}

.ofgtc-form-invia,
button.ofgtc-form-invia,
.ofgtc-form-contatto button[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	margin: 0 !important;
	padding: 12px 26px !important;
	font-size: 14.5px !important;
	font-weight: 700 !important;
	font-family: inherit !important;
	line-height: 1.4 !important;
	color: #fff !important;
	background: var(--ofgtc-accent, #2563eb) !important;
	background-image: none !important;
	border: none !important;
	border-radius: var(--ofgtc-radius-sm, 8px) !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	cursor: pointer !important;
	transition: background .15s ease !important;
}

.ofgtc-form-invia:hover,
.ofgtc-form-invia:focus,
button.ofgtc-form-invia:hover,
.ofgtc-form-contatto button[type="submit"]:hover {
	background: var(--ofgtc-accent-dark, #1d4ed8) !important;
	color: #fff !important;
}

.ofgtc-form-esito {
	padding: 12px 16px !important;
	border-radius: var(--ofgtc-radius-sm, 8px) !important;
	font-size: 14px !important;
	margin: 0 0 16px !important;
}

.ofgtc-form-esito-ok {
	background: var(--ofgtc-accent-bg, #ecfdf3) !important;
	border: 1px solid var(--ofgtc-accent-border, #a7f3d0) !important;
	color: var(--ofgtc-accent-dark, #065f46) !important;
	font-weight: 600 !important;
}

.ofgtc-form-esito-errore {
	background: #fef2f2 !important;
	border: 1px solid #fecaca !important;
	color: #991b1b !important;
}

.ofgtc-form-esito-errore ul {
	margin: 0 !important;
	padding-left: 20px !important;
}

/* ===== Pulsante flottante "Sono interessato" (scheda del singolo corso) =====
   Stesso approccio difensivo del resto del plugin: fisso in basso a destra,
   sempre sopra al contenuto del tema, con un piccolo pallino pulsante per
   farsi notare. Si nasconde da solo (classe aggiunta da assets/front.js)
   quando il modulo di contatto è già visibile, per non coprirlo. */
.ofgtc-cta-flottante {
	position: fixed !important;
	right: 20px !important;
	bottom: 20px !important;
	left: auto !important;
	top: auto !important;
	z-index: 999999 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 14px 22px !important;
	font-size: 14.5px !important;
	font-weight: 700 !important;
	font-family: inherit !important;
	line-height: 1.3 !important;
	color: #fff !important;
	background: var(--ofgtc-accent, #2563eb) !important;
	background-image: none !important;
	border: none !important;
	border-radius: 999px !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: 0 10px 26px rgba(15, 23, 42, .22) !important;
	cursor: pointer !important;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}

.ofgtc-cta-flottante:hover,
.ofgtc-cta-flottante:focus {
	background: var(--ofgtc-accent-dark, #1d4ed8) !important;
	color: #fff !important;
	transform: translateY(-3px) !important;
	box-shadow: 0 14px 30px rgba(15, 23, 42, .28) !important;
}

.ofgtc-cta-flottante svg {
	display: block !important;
	width: 15px !important;
	height: 15px !important;
	flex-shrink: 0 !important;
	color: #fff !important;
}

.ofgtc-cta-flottante-badge {
	position: absolute !important;
	top: -3px !important;
	left: -3px !important;
	width: 14px !important;
	height: 14px !important;
	border-radius: 50% !important;
	background: #ef4444 !important;
	border: 2px solid #fff !important;
	box-shadow: 0 0 0 0 rgba(239, 68, 68, .6) !important;
	animation: ofgtc-cta-flottante-pulsa 1.8s ease-out infinite !important;
}

@keyframes ofgtc-cta-flottante-pulsa {
	0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .55); }
	70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
	100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.ofgtc-cta-flottante-nascosto {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.ofgtc-cta-flottante-badge {
		animation: none !important;
	}
}

@media (max-width: 480px) {
	.ofgtc-cta-flottante {
		right: 14px !important;
		bottom: 14px !important;
		padding: 12px 18px !important;
		font-size: 13.5px !important;
	}
}

/* ===== Pulsante flottante "Chiamaci al ..." =====
   Stessa base del pulsante "Sono interessato", ma sollevato sopra di esso
   (bottom maggiore) e con uno stile "outline" per distinguerlo visivamente
   pur restando coerente con il tema del corso. */
.ofgtc-cta-flottante-chiama {
	bottom: 84px !important;
	background: #fff !important;
	color: var(--ofgtc-accent, #2563eb) !important;
	border: 2px solid var(--ofgtc-accent, #2563eb) !important;
	box-shadow: 0 8px 20px rgba(15, 23, 42, .14) !important;
}

.ofgtc-cta-flottante-chiama:hover,
.ofgtc-cta-flottante-chiama:focus {
	background: var(--ofgtc-accent-bg, #eff6ff) !important;
	color: var(--ofgtc-accent-dark, #1d4ed8) !important;
	border-color: var(--ofgtc-accent-dark, #1d4ed8) !important;
	transform: translateY(-3px) !important;
}

.ofgtc-cta-flottante-chiama svg {
	color: var(--ofgtc-accent, #2563eb) !important;
}

@media (max-width: 480px) {
	.ofgtc-cta-flottante-chiama {
		bottom: 70px !important;
	}
}
