.aiact-badge-wrap {
	position: relative;
	display: inline-block;
	max-width: 100%;
}

.aiact-badge-wrap img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Galleria: il core dimensiona i figli diretti della figure (img o link)
   con flex; il wrapper del badge si mette in mezzo e deve quindi ereditare
   quel ruolo, altrimenti il ritaglio is-cropped non pareggia più le righe. */
.wp-block-gallery.has-nested-images figure.wp-block-image > .aiact-badge-wrap {
	display: flex;
	flex: 1 0 0%;
	width: 100%;
}

.wp-block-gallery.has-nested-images figure.wp-block-image .aiact-badge-wrap img,
.wp-block-gallery.has-nested-images figure.wp-block-image .aiact-badge-wrap a {
	flex: 1 0 0%;
	width: 100%;
}

.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image .aiact-badge-wrap img {
	height: 100%;
	object-fit: cover;
}

/* Media & Text: il wrapper occupa la cella della griglia come farebbe l'img. */
.wp-block-media-text__media > .aiact-badge-wrap {
	display: block;
	width: 100%;
}

.wp-block-media-text__media > .aiact-badge-wrap img {
	width: 100%;
}

/* Nei blocchi che impongono un rapporto d'aspetto al contenitore (immagine
   in evidenza con aspect-ratio, es. il query loop di Twenty Twenty-Five) il
   core si aspetta che l'img riempia il figure e venga ritagliata con
   object-fit. Il wrapper del badge si inserisce tra figure e img: senza
   queste regole l'immagine sborda dal figure e copre il contenuto sotto. */
.wp-block-post-featured-image .aiact-badge-wrap {
	display: block;
	width: 100%;
	height: 100%;
}

.wp-block-post-featured-image .aiact-badge-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aiact-badge {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.4;
	border-radius: 999px;
	pointer-events: none;
}

/* Posizione sull'immagine (impostabile dalla pagina di configurazione). */
.aiact-badge--top-left {
	top: 10px;
	left: 10px;
}

.aiact-badge--top-right {
	top: 10px;
	right: 10px;
}

.aiact-badge--bottom-left {
	bottom: 10px;
	left: 10px;
}

.aiact-badge--bottom-right {
	bottom: 10px;
	right: 10px;
}

/* Stile grafico (impostabile dalla pagina di configurazione). */
.aiact-badge--chrome {
	background: linear-gradient( 180deg, #fbfcfd 0%, #dde2e6 42%, #aab1b8 44%, #ced3d8 70%, #f4f6f7 100% );
	color: #14181b;
	border: 1px solid rgba( 255, 255, 255, 0.7 );
	box-shadow:
		0 1px 2px rgba( 0, 0, 0, 0.4 ),
		0 0 0 1px rgba( 0, 0, 0, 0.18 ),
		inset 0 1px 0 rgba( 255, 255, 255, 0.95 ),
		inset 0 -1px 1px rgba( 0, 0, 0, 0.2 );
	text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.6 );
}

.aiact-badge--dark {
	background: rgba( 29, 35, 39, 0.85 );
	color: #fff;
	border: 1px solid rgba( 255, 255, 255, 0.15 );
	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.4 );
}

.aiact-badge--accent {
	background: #2271b1;
	color: #fff;
	border: 1px solid rgba( 255, 255, 255, 0.25 );
	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.35 );
}

/* Stili "stravaganti": ciascuno imposta il proprio aspetto (background,
   colore, ombre) più due variabili (--aiact-before-bg, --aiact-after-bg,
   --aiact-speed) consumate dal blocco condiviso di ::before/::after subito
   sotto, che disegna il bagliore pulsante e il riflesso in movimento senza
   dover ripetere quella logica per ognuno degli 8 stili. */
.aiact-badge--acid,
.aiact-badge--holo,
.aiact-badge--inferno,
.aiact-badge--alien,
.aiact-badge--candy,
.aiact-badge--galaxy,
.aiact-badge--brutal,
.aiact-badge--royal {
	isolation: isolate;
	overflow: hidden;
}

.aiact-badge--acid::before,
.aiact-badge--holo::before,
.aiact-badge--inferno::before,
.aiact-badge--alien::before,
.aiact-badge--candy::before,
.aiact-badge--galaxy::before,
.aiact-badge--brutal::before,
.aiact-badge--royal::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	pointer-events: none;
	mix-blend-mode: screen;
	background: var( --aiact-before-bg );
	animation: aiact-badge-pulse var( --aiact-speed ) ease-in-out infinite;
}

.aiact-badge--acid::after,
.aiact-badge--holo::after,
.aiact-badge--inferno::after,
.aiact-badge--alien::after,
.aiact-badge--candy::after,
.aiact-badge--galaxy::after,
.aiact-badge--brutal::after,
.aiact-badge--royal::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
	pointer-events: none;
	background: var( --aiact-after-bg );
	transform: translateX( -130% ) skewX( -18deg );
	animation: aiact-badge-shine var( --aiact-speed ) ease-in-out infinite;
	opacity: 0.75;
}

@keyframes aiact-badge-shine {
	0%, 22% { transform: translateX( -140% ) skewX( -18deg ); }
	52%, 100% { transform: translateX( 140% ) skewX( -18deg ); }
}

@keyframes aiact-badge-pulse {
	0%, 100% { opacity: 0.18; transform: scale( 0.98 ) rotate( 0deg ); }
	50% { opacity: 0.58; transform: scale( 1.04 ) rotate( 4deg ); }
}

.aiact-badge--acid {
	--aiact-before-bg: repeating-radial-gradient( circle at 50% 50%, rgba( 255, 255, 255, 0.35 ) 0 2px, transparent 2px 9px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 0.98 ), transparent );
	--aiact-speed: 1.8s;
	background:
		radial-gradient( circle at 18% 18%, #fff 0 3%, transparent 12% ),
		radial-gradient( circle at 75% 20%, rgba( 255, 255, 255, 0.9 ), transparent 9% ),
		linear-gradient( 135deg, #c7ff00, #00ff85 38%, #1bff00 52%, #fff000 100% );
	color: #071000;
	border: 1px solid rgba( 220, 255, 0, 0.95 );
	box-shadow:
		0 0 14px rgba( 156, 255, 0, 0.95 ),
		0 0 42px rgba( 0, 255, 133, 0.65 ),
		0 22px 50px rgba( 0, 0, 0, 0.45 ),
		inset 0 2px 3px rgba( 255, 255, 255, 0.9 ),
		inset 0 -6px 12px rgba( 0, 85, 20, 0.35 );
	text-shadow:
		0 1px 0 rgba( 255, 255, 255, 0.55 ),
		0 0 14px rgba( 255, 255, 255, 0.5 );
}

.aiact-badge--holo {
	--aiact-before-bg: repeating-linear-gradient( 90deg, transparent 0 8px, rgba( 255, 255, 255, 0.22 ) 8px 10px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 1 ), transparent );
	--aiact-speed: 2.2s;
	background:
		linear-gradient( 115deg, #ff00d4, #00e5ff 20%, #fff 34%, #7cff00 48%, #ffea00 62%, #ff3b7f 78%, #7b61ff ),
		linear-gradient( 180deg, rgba( 255, 255, 255, 0.92 ), rgba( 255, 255, 255, 0.2 ) );
	color: #080812;
	border: 1px solid rgba( 255, 255, 255, 0.88 );
	box-shadow:
		0 0 0 2px rgba( 255, 255, 255, 0.26 ),
		0 0 34px rgba( 0, 229, 255, 0.72 ),
		0 0 70px rgba( 255, 0, 212, 0.42 ),
		inset 0 1px 0 rgba( 255, 255, 255, 0.95 ),
		inset 0 -8px 22px rgba( 0, 0, 0, 0.25 );
	filter: saturate( 1.35 ) contrast( 1.08 );
	text-shadow:
		1px 1px 0 rgba( 255, 255, 255, 0.6 ),
		-2px 0 rgba( 0, 229, 255, 0.6 ),
		2px 0 rgba( 255, 0, 212, 0.6 );
}

.aiact-badge--inferno {
	--aiact-before-bg: repeating-linear-gradient( -45deg, rgba( 255, 255, 255, 0.2 ) 0 3px, transparent 3px 12px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 210, 0.95 ), transparent );
	--aiact-speed: 1.45s;
	background:
		radial-gradient( circle at 22% 25%, #fff6b5, transparent 13% ),
		radial-gradient( circle at 80% 80%, #ff0000, transparent 28% ),
		linear-gradient( 180deg, #fff000 0%, #ff8a00 28%, #ff2400 49%, #3b0000 51%, #ff5a00 100% );
	color: #210000;
	border: 1px solid rgba( 255, 190, 0, 0.9 );
	box-shadow:
		0 0 22px rgba( 255, 90, 0, 0.95 ),
		0 0 62px rgba( 255, 0, 0, 0.55 ),
		0 30px 80px rgba( 0, 0, 0, 0.55 ),
		inset 0 2px 2px rgba( 255, 255, 255, 0.6 ),
		inset 0 -10px 20px rgba( 70, 0, 0, 0.55 );
	text-shadow:
		0 1px 0 rgba( 255, 255, 255, 0.4 ),
		0 0 14px rgba( 255, 255, 0, 0.8 );
}

.aiact-badge--alien {
	--aiact-before-bg: repeating-conic-gradient( from 0deg, rgba( 0, 255, 213, 0.28 ) 0 12deg, transparent 12deg 30deg );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 180, 255, 250, 0.9 ), transparent );
	--aiact-speed: 3.2s;
	background:
		radial-gradient( circle at 24% 20%, rgba( 255, 255, 255, 0.95 ), transparent 9% ),
		radial-gradient( circle at 75% 70%, rgba( 73, 255, 255, 0.85 ), transparent 18% ),
		linear-gradient( 135deg, #090f1f, #00ffd5 36%, #083b47 37%, #b8fff5 70%, #021015 );
	color: #eafffb;
	border: 1px solid rgba( 108, 255, 236, 0.8 );
	box-shadow:
		0 0 0 1px rgba( 0, 255, 213, 0.55 ),
		0 0 30px rgba( 0, 255, 213, 0.75 ),
		0 0 90px rgba( 0, 119, 255, 0.45 ),
		inset 0 1px 0 rgba( 255, 255, 255, 0.8 ),
		inset 0 -8px 16px rgba( 0, 0, 0, 0.7 );
	text-shadow:
		0 0 8px rgba( 0, 255, 213, 1 ),
		0 0 24px rgba( 0, 255, 213, 0.8 );
}

.aiact-badge--candy {
	--aiact-before-bg: repeating-linear-gradient( 135deg, rgba( 255, 255, 255, 0.22 ) 0 12px, transparent 12px 22px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 0.98 ), transparent );
	--aiact-speed: 2.6s;
	background:
		radial-gradient( circle at 18% 18%, rgba( 255, 255, 255, 0.98 ), transparent 10% ),
		linear-gradient( 135deg, #ff4fd8 0%, #ffe66d 24%, #7cffcb 48%, #74a7ff 72%, #ff4fd8 100% );
	color: #3a0034;
	border: 1px solid rgba( 255, 255, 255, 0.86 );
	box-shadow:
		0 0 0 4px rgba( 255, 255, 255, 0.18 ),
		0 0 34px rgba( 255, 79, 216, 0.75 ),
		0 24px 60px rgba( 0, 0, 0, 0.45 ),
		inset 0 2px 0 rgba( 255, 255, 255, 0.85 ),
		inset 0 -7px 18px rgba( 112, 0, 105, 0.28 );
	text-shadow: 0 2px 0 rgba( 255, 255, 255, 0.4 );
}

.aiact-badge--galaxy {
	--aiact-before-bg: conic-gradient( from 90deg, transparent, rgba( 255, 255, 255, 0.25 ), transparent, rgba( 255, 59, 248, 0.3 ), transparent );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 0.82 ), transparent );
	--aiact-speed: 4s;
	background:
		radial-gradient( circle at 20% 22%, #fff 0 1px, transparent 2px ),
		radial-gradient( circle at 64% 28%, #fff 0 1px, transparent 2px ),
		radial-gradient( circle at 82% 70%, #fff 0 1px, transparent 2px ),
		radial-gradient( circle at 35% 80%, #fff 0 1px, transparent 2px ),
		radial-gradient( circle at 50% 50%, #ff3bf8, transparent 25% ),
		linear-gradient( 135deg, #08001f, #32106c 45%, #001d52 70%, #000 );
	color: #ffffff;
	border: 1px solid rgba( 177, 137, 255, 0.75 );
	box-shadow:
		0 0 28px rgba( 123, 97, 255, 0.85 ),
		0 0 72px rgba( 255, 59, 248, 0.42 ),
		0 28px 80px rgba( 0, 0, 0, 0.6 ),
		inset 0 1px 0 rgba( 255, 255, 255, 0.5 ),
		inset 0 -10px 18px rgba( 0, 0, 0, 0.65 );
	text-shadow:
		0 0 8px rgba( 255, 255, 255, 0.7 ),
		0 0 28px rgba( 255, 59, 248, 0.9 );
}

.aiact-badge--brutal {
	--aiact-before-bg: repeating-linear-gradient( 0deg, rgba( 0, 0, 0, 0.28 ) 0 4px, transparent 4px 8px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 0.55 ), transparent );
	--aiact-speed: 1.1s;
	border-radius: 14px;
	background:
		linear-gradient( 90deg, #ffea00 0 12%, #000 12% 18%, #ff00cc 18% 38%, #00f5ff 38% 60%, #111 60% 68%, #9cff00 68% 100% );
	color: #fff;
	border: 1px solid #fff;
	box-shadow:
		8px 8px 0 #000,
		12px 12px 0 #ff00cc,
		16px 16px 0 #00f5ff,
		inset 0 0 0 3px #000;
	text-shadow:
		3px 3px 0 #000,
		-2px -2px 0 #ff00cc,
		2px -2px 0 #00f5ff;
}

.aiact-badge--royal {
	--aiact-before-bg: repeating-linear-gradient( 90deg, rgba( 255, 255, 255, 0.22 ) 0 4px, transparent 4px 18px );
	--aiact-after-bg: linear-gradient( 90deg, transparent, rgba( 255, 255, 255, 0.9 ), transparent );
	--aiact-speed: 2.9s;
	background:
		radial-gradient( circle at 22% 18%, #fff9bf, transparent 12% ),
		linear-gradient( 135deg, #fff0a3 0%, #b07000 28%, #fff7bd 46%, #6b3900 48%, #f6c453 74%, #fff6bd 100% );
	color: #2b1400;
	border: 1px solid rgba( 255, 237, 165, 0.9 );
	box-shadow:
		0 0 0 2px rgba( 111, 58, 0, 0.8 ),
		0 0 34px rgba( 255, 196, 0, 0.68 ),
		0 28px 70px rgba( 0, 0, 0, 0.48 ),
		inset 0 2px 0 rgba( 255, 255, 255, 0.9 ),
		inset 0 -8px 18px rgba( 85, 40, 0, 0.42 );
	text-shadow:
		0 1px 0 rgba( 255, 255, 255, 0.55 ),
		0 0 10px rgba( 255, 236, 165, 0.8 );
}

/* Dimensione (impostabile dalla pagina di configurazione). */
.aiact-badge--small {
	gap: 4px;
	font-size: 10px;
	padding: 3px 9px 3px 7px;
}

.aiact-badge--medium {
	gap: 5px;
	font-size: 12px;
	padding: 5px 12px 5px 9px;
}

.aiact-badge--large {
	gap: 6px;
	font-size: 15px;
	padding: 7px 16px 7px 12px;
}
