@charset "utf-8";

/* ==========================================================================
   INDICE
   1. Variabili (colori, ombre)
   2. Font (@font-face)
   3. Base / Globale (tutte le pagine)
   4. Utility condivise (home.php, win_si.php, win_no.php, registrazione.php)
   5. Componenti condivisi: bottoni (home.php, registrazione.php)
   6. Menu (menu.php)
   7. Home (home.php) - hero, come partecipare, premi
   8. Registrazione (registrazione.php) - form, upload OCR
   9. Footer (footer.php)
   ========================================================================== */


/* ============================
   1. VARIABILI
   ============================ */
:root {
	/* --- Colori Primari (Brand & Background) --- */
	--color-primary-blue: #0b3c74;       /* Blu scuro di sfondo principale e Weetabix */
	--color-secondary-yellow: #fcd116;   /* Giallo brillante del background superiore e Weetabix */
	--color-accent-orange: #f37021;      /* Arancione Weetabix e albicocche */

	/* --- Colori di Accento (Prodotti Santa Rosa) --- */
	--color-accent-red: #c8102e;         /* Rosso fragola / amarena Santa Rosa */
	--color-accent-green: #3aa93f;       /* Verde "Attiva il Gusto" / dettagli jam (rif. KV: script "il" e importo "1.500€") */
	--color-accent-cyan: #008cc9;        /* Azzurro etichetta Santa Rosa Zero */

	/* --- Toni Neutri e Superfici --- */
	--color-surface-white: #ffffff;      /* Bianco puro per box, testi e contrasti */
	--color-surface-card: #f8f9fa;       /* Off-white per sfondi schede e container */
	--color-wood-neutral: #d2a679;       /* Tonalità legno della superficie di appoggio */

	/* --- Testo e Contrasti --- */
	--color-text-main: #0b3c74;          /* Blu scuro per testo su sfondo chiaro */
	--color-text-inverse: #ffffff;       /* Bianco per testo su sfondo scuro */
	--color-text-muted: #6c757d;         /* Grigio per note legali / legende */

	/* --- Mappatura Funzionale (Utility) --- */
	--bg-page-top: var(--color-secondary-yellow);
	--bg-page-bottom: var(--color-primary-blue);
	--btn-primary-bg: var(--color-secondary-yellow);
	--btn-primary-text: var(--color-primary-blue);
	--badge-green-bg: var(--color-accent-green);
	--badge-orange-bg: var(--color-accent-orange);


	/* ==============================================
	   VARIANTI DERIVATE
	   (hover, stati, trasparenze, sfondi tenui - coerenti col profilo sopra)
	   ============================================== */
	/* Hover / stati scuri, derivati dai colori di brand e accento */
	--color-primary-blue-dark: color-mix(in srgb, var(--color-primary-blue) 80%, black);
	--color-secondary-yellow-dark: color-mix(in srgb, var(--color-secondary-yellow) 85%, black);
	--color-accent-red-dark: color-mix(in srgb, var(--color-accent-red) 80%, black);
	--color-accent-green-hover: color-mix(in srgb, var(--color-accent-green) 85%, black);
	--color-accent-green-dark: color-mix(in srgb, var(--color-accent-green) 70%, black);

	/* Sfondi tenui per schede/box tematizzati (rosso Santa Rosa / verde "Attiva il Gusto") */
	--color-surface-tint-red: color-mix(in srgb, var(--color-accent-red) 6%, var(--color-surface-white));
	--color-surface-tint-green: color-mix(in srgb, var(--color-accent-green) 6%, var(--color-surface-white));

	/* Stati e feedback */
	--color-danger: var(--color-accent-red);

	/* Ombre e trasparenze */
	--color-secondary-yellow-alpha-35: color-mix(in srgb, var(--color-secondary-yellow) 35%, transparent);
	--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12);
}


/* ============================
   2. FONT
   ============================ */

@font-face {
	font-family: 'Atomic Marker';
	src: url('../fonts/set-sail-studios-atomic-marker-regular.otf') format('opentype');
	font-weight: normal;
	font-style: normal;
}

/* Montserrat (font di testo per l'intero sito) */
@font-face {
	font-display: swap;
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/montserrat-v31-latin-regular.woff2') format('woff2'),
		url('../fonts/montserrat-v31-latin-regular.woff') format('woff');
}

@font-face {
	font-display: swap;
	font-family: 'Montserrat';
	font-style: italic;
	font-weight: 400;
	src: url('../fonts/montserrat-v31-latin-italic.woff2') format('woff2'),
		url('../fonts/montserrat-v31-latin-italic.woff') format('woff');
}

@font-face {
	font-display: swap;
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/montserrat-v31-latin-700.woff2') format('woff2'),
		url('../fonts/montserrat-v31-latin-700.woff') format('woff');
}

@font-face {
	font-display: swap;
	font-family: 'Montserrat';
	font-style: italic;
	font-weight: 700;
	src: url('../fonts/montserrat-v31-latin-700italic.woff2') format('woff2'),
		url('../fonts/montserrat-v31-latin-700italic.woff') format('woff');
}

/* Pacifico (font secondario per i titoli, brush script arrotondato simile al lettering "il" del claim "Attiva il Gusto") */
@font-face {
	font-display: swap;
	font-family: 'Pacifico';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/pacifico-v23-latin-regular.woff2') format('woff2'),
		url('../fonts/pacifico-v23-latin-regular.woff') format('woff');
}


/* ============================
   3. BASE / GLOBALE
   (presenti in head.php su tutte le pagine)
   ============================ */

body {
	font-family: 'Montserrat', sans-serif;
	font-weight: normal;
	font-style: normal;
	font-size: 14px;
	color: var(--color-text-main);
	background-position: top center;
	background-size: contain;
	background-repeat: repeat-y;
}

.row {
	margin-left: 0px;
	margin-right: 0px;
}

h1,
h2 {
	font-weight: bold;
}

a {
	text-decoration: none;
}

.skip-to-main-content-link {
	position: absolute;
	left: -9999px;
	z-index: 999;
	padding: 1em;
	background-color: black;
	color: white;
	opacity: 0;
}

.skip-to-main-content-link:focus {
	left: 50%;
	transform: translateX(-50%);
	opacity: 1;
}

/* ============================
   4. UTILITY CONDIVISE
   (home.php, win_si.php, win_no.php, registrazione.php)
   ============================ */

.text-red {
	color: var(--color-accent-red);
}

.text-green {
	color: var(--color-accent-green);
}

.text-beige {
	color: var(--color-secondary-yellow);
}

.bg-red {
	background-color: var(--color-accent-red);
}

.bg-green {
	background-color: var(--color-accent-green);
}

.text-blue {
	color: var(--color-primary-blue);
}


.bg-giallo {
	background-image: url('../img/sfondo_giallo.jpg');
	background-size: cover;
	background-position: center;
	background-attachment: scroll;
}

.bg-frutta_spighe {
	background-image: url('../img/bg_frutta_spighe.jpg');
	background-size: cover;
	background-position: center;
	background-attachment: scroll;
}

.ff-atomic {
	font-family: 'Pacifico', cursive;
}

/* Pennellata di evidenziazione dietro i nomi brand (rif. KV: "SANTA ROSA" / "WEETABIX") */
.highlight-red,
.highlight-orange {
	display: inline-block;
	position: relative;
	padding: .05em .4em;
	color: var(--color-text-inverse);
	font-weight: 700;
	white-space: nowrap;
}

.highlight-red {
	background-color: var(--color-accent-red);
	border-radius: 40% 60% 55% 45% / 60% 45% 55% 40%;
}

.highlight-orange {
	background-color: var(--badge-orange-bg);
	border-radius: 45% 55% 60% 40% / 55% 40% 60% 45%;
}


/* ============================
   5. COMPONENTI CONDIVISI: BOTTONI
   (home.php, registrazione.php)
   ============================ */

.button,
.button_green {
	position: relative;
	display: inline-flex;
	border-radius: 999px;
	border: 0;
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: .01em;
	padding: .9rem 2.25rem;
	width: max-content;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.button {
	color: var(--btn-primary-text);
	background: linear-gradient(135deg, var(--color-secondary-yellow) 0%, var(--btn-primary-bg) 55%, var(--color-secondary-yellow-dark) 100%);
	box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--color-secondary-yellow) 75%, transparent);
}

.button:hover {
	color: var(--btn-primary-text);
	background: var(--color-secondary-yellow-dark);
	transform: translateY(-3px);
	box-shadow: 0 18px 34px -8px color-mix(in srgb, var(--color-secondary-yellow) 90%, transparent);
}

.button_green {
	/* Gradiente entro toni scuri di verde: garantisce testo bianco leggibile (contrasto AA) su tutta l'area */
	color: var(--color-text-inverse);
	background: linear-gradient(135deg, var(--color-accent-green-dark) 0%, color-mix(in srgb, var(--color-accent-green-dark) 75%, black) 100%);
	box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--color-accent-green) 60%, transparent);
}

.button_green:hover {
	color: var(--color-text-inverse);
	background: var(--color-accent-green-dark);
	transform: translateY(-3px);
	box-shadow: 0 18px 34px -8px color-mix(in srgb, var(--color-accent-green) 75%, transparent);
}

.button:active,
.button_green:active {
	transform: translateY(-1px);
}

.button:focus-visible,
.button_green:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--color-primary-blue) 45%, transparent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

	.button,
	.button_green {
		transition: none;
	}
}

@media screen and (max-width: 767px) {

	.button,
	.button_green {
		font-size: 1rem;
		padding: .8rem 1.75rem;
	}
}


/* ============================
   6. MENU (menu.php)
   ============================ */

#menu {
	position: sticky;
	top: 0;
	z-index: 1030;
	background-color: var(--color-surface-white);
	transition: background-color .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}

#menu.menu--scrolled {
	background-color: color-mix(in srgb, var(--color-surface-white) 65%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 2px 16px rgba(0, 0, 0, .1);
}

#attiva_menu {
	max-width: 30px;
	margin: 0 0 15px;
	padding: 6px;
	border: 0;
	background: transparent;
	cursor: pointer;
}

#attiva_menu img {
	display: block;
	width: 100%;
	height: auto;
}

#attiva_menu:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--color-primary-blue) 45%, transparent);
	outline-offset: 2px;
	border-radius: 4px;
}

.menu_list {
	list-style-type: none;
	margin: 0;
	padding: .5rem 1.5rem 1rem;
	align-items: center;
	justify-content: center;
	gap: clamp(1rem, 3vw, 3rem);
}

.menu_list-item a {
	display: block;
	text-align: center;
	text-decoration: none;
	color: var(--color-text-main);
	font-weight: 700;
	font-size: 1.1rem;
	padding: .5rem 0;
	position: relative;
}

.menu_list-item a.active:after,
.menu_list-item a:hover:after {
	content: url('../img/highlight.png');
	position: absolute;
	max-width: 80px;
	left: 50%;
	transform: translateX(-50%);
	bottom: -8px;
}

.menu_list-item--logo a {
	padding: .25rem 0;
}

.menu-logo {
	max-height: 48px;
	width: auto;
	display: block;
}

@media screen and (max-width: 991.98px) {
	.menu_list {
		flex-direction: column;
		padding: 0 1.5rem 1.5rem;
	}

	.menu_list-item {
		width: 100%;
	}

	.menu-logo {
		max-height: 60px;
		margin: 0 auto;
	}
}


/* ============================
   7. HOME (home.php)
   ============================ */

/* --- Hero --- */

@keyframes float {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-10px);
	}

	100% {
		transform: translateY(0);
	}
}

img.float-on-hover {
	display: block;
	transition: transform 0.3s ease;
}

img.float-on-hover:hover {
	animation: float 2s ease-in-out infinite;
}

/* --- Come partecipare (step tiles) --- */

.steps-section {
	background: linear-gradient(180deg, var(--color-surface-card) 0%, var(--color-surface-white) 100%);
}

.steps-eyebrow {
	/* Arancio scurito rispetto a --color-accent-orange: a questa dimensione di testo
	   il colore puro non raggiunge il contrasto minimo AA (4.5:1) su sfondo chiaro */
	color: color-mix(in srgb, var(--color-accent-orange) 70%, black);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .85rem;
}

.step-line {
	position: absolute;
	top: 30px;
	left: 8%;
	right: 8%;
	height: 4px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--color-accent-orange), var(--color-accent-cyan), var(--color-accent-red), var(--color-accent-green));
	opacity: .35;
	z-index: 0;
}

.step-col {
	position: relative;
	z-index: 1;
}

.step-tile {
	--tile-accent-a: var(--color-primary-blue);
	--tile-accent-b: var(--color-accent-cyan);
	position: relative;
	margin-top: 30px;
	padding: 2.75rem 1.5rem 2rem;
	background-color: var(--color-surface-white);
	border-radius: 1.75rem;
	box-shadow: 0 14px 32px -16px rgba(11, 60, 116, .28);
	text-align: center;
	transition: transform .35s ease, box-shadow .35s ease;
}

.step-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(160deg, var(--tile-accent-a) 0%, transparent 60%);
	opacity: .08;
	pointer-events: none;
	z-index: 0;
}

.step-tile:hover,
.step-tile:focus-within {
	transform: translateY(-10px);
	box-shadow: 0 22px 44px -16px rgba(11, 60, 116, .38);
}

.step-tile--orange {
	--tile-accent-a: var(--color-accent-orange);
	--tile-accent-b: var(--color-secondary-yellow);
}

.step-tile--cyan {
	--tile-accent-a: var(--color-accent-cyan);
	--tile-accent-b: var(--color-primary-blue);
}

.step-tile--red {
	--tile-accent-a: var(--color-accent-red);
	--tile-accent-b: var(--color-accent-orange);
}

.step-tile--green {
	--tile-accent-a: var(--color-accent-green);
	--tile-accent-b: var(--color-secondary-yellow);
}

.step-tile--bonus {
	--tile-accent-a: var(--color-primary-blue);
	--tile-accent-b: var(--color-accent-cyan);
	padding-top: 2rem;
	border: 2px dashed color-mix(in srgb, var(--tile-accent-a) 35%, transparent);
}

.step-tile--bonus .step-tile__icon {
	margin-top: 0;
}

.step-tile__number {
	position: absolute;
	top: -28px;
	left: 50%;
	transform: translateX(-50%);
	width: 58px;
	height: 58px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	line-height: 1;
	font-weight: 800;
	color: var(--color-text-inverse);
	/* Gradiente derivato da --tile-accent-a (non dal binomio a/b, che può includere il giallo chiaro):
	   garantisce contrasto sufficiente per il testo bianco con qualunque colore di accento */
	background: linear-gradient(135deg, color-mix(in srgb, var(--tile-accent-a) 60%, black), color-mix(in srgb, var(--tile-accent-a) 35%, black));
	border: 4px solid var(--color-surface-white);
	border-radius: 50%;
	box-shadow: 0 10px 22px -6px var(--tile-accent-a);
}

.step-tile__icon {
	position: relative;
	width: 72px;
	height: 72px;
	margin: 1rem auto 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.7rem;
	color: var(--tile-accent-a);
	background-color: color-mix(in srgb, var(--tile-accent-a) 14%, var(--color-surface-white));
	border-radius: 50%;
	transition: transform .35s ease;
}

.step-tile:hover .step-tile__icon {
	transform: scale(1.1) rotate(-6deg);
}

.step-tile__title {
	color: var(--color-primary-blue);
	font-weight: 800;
}

.step-tile__text {
	color: var(--color-text-muted);
}

.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity .6s ease, transform .6s ease;
	transition-delay: var(--step-delay, 0s);
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.step-icon {
	width: 72px;
	height: 72px;
	margin: 0 auto 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--tile-accent-a, var(--color-primary-blue));
	background-color: color-mix(in srgb, var(--tile-accent-a, var(--color-primary-blue)) 14%, var(--color-surface-white));
	font-size: 1.7rem;
	transition: transform .35s ease;
}

.prize-card:hover .step-icon {
	transform: scale(1.1) rotate(-6deg);
}

.cta-partecipa {
	position: relative;
}

.cta-partecipa--premi {
	color: var(--color-text-inverse);
	background: linear-gradient(135deg, var(--color-primary-blue) 0%, var(--color-primary-blue-dark) 100%);
	box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--color-primary-blue) 75%, transparent);
	font-size: 1.4rem;
	padding: 1.15rem 2.75rem;
}

.cta-partecipa--premi:hover {
	color: var(--color-text-inverse);
	background: var(--color-primary-blue-dark);
	box-shadow: 0 18px 34px -8px color-mix(in srgb, var(--color-primary-blue) 90%, transparent);
}

@media screen and (max-width: 767px) {
	.cta-partecipa--premi {
		font-size: 1.15rem;
		padding: 1rem 2.1rem;
	}
}

.cta-partecipa::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 65px;
	box-shadow: 0 0 0 0 var(--color-secondary-yellow-alpha-35);
	animation: cta-pulse 2.2s ease-out infinite;
	pointer-events: none;
}

.cta-partecipa:hover::after {
	animation: none;
}

@keyframes cta-pulse {
	0% {
		box-shadow: 0 0 0 0 var(--color-secondary-yellow-alpha-35);
	}

	70% {
		box-shadow: 0 0 0 18px color-mix(in srgb, var(--color-secondary-yellow) 0%, transparent);
	}

	100% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-secondary-yellow) 0%, transparent);
	}
}

@media (prefers-reduced-motion: reduce) {

	.step-tile,
	.step-tile__icon,
	.reveal,
	.cta-partecipa::after {
		transition: none !important;
		animation: none !important;
	}

	.reveal {
		opacity: 1;
		transform: none;
	}
}

/* --- Premi --- */

/* Pannello dietro i titoli che poggiano su sfondi fotografici (es. bg-giallo):
   garantisce il contrasto del testo indipendentemente dalla zona dell'immagine sottostante */
.section-title-card {
	max-width: 900px;
	padding: 1.25rem 1.75rem;
	background-color: color-mix(in srgb, var(--color-surface-white) 88%, transparent);
	border-radius: 1.5rem;
	box-shadow: 0 14px 32px -18px rgba(11, 60, 116, .35);
}

.prize-card {
	--tile-accent-a: var(--color-primary-blue);
	--tile-accent-b: var(--color-accent-cyan);
	position: relative;
	margin-top: 22px;
	padding: 2.75rem 1.5rem 2rem;
	background-color: var(--color-surface-white);
	border-radius: 1.75rem;
	box-shadow: 0 14px 32px -16px rgba(11, 60, 116, .28);
	transition: transform .35s ease, box-shadow .35s ease;
}

.prize-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(160deg, var(--tile-accent-a) 0%, transparent 60%);
	opacity: .08;
	pointer-events: none;
	z-index: 0;
}

.prize-card:hover,
.prize-card:focus-within {
	transform: translateY(-10px);
	box-shadow: 0 22px 44px -16px rgba(11, 60, 116, .38);
}

.prize-card--instant {
	--tile-accent-a: var(--color-accent-red);
	--tile-accent-b: var(--color-accent-orange);
}

.prize-card--final {
	--tile-accent-a: var(--color-accent-green);
	--tile-accent-b: var(--color-secondary-yellow);
}

.prize-badge {
	position: absolute;
	top: -32px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	white-space: nowrap;
	padding: .8rem 2.16rem;
	border-radius: 999px;
	font-size: 1.2rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--color-text-inverse);
	/* Come .step-tile__number: gradiente scuro derivato da --tile-accent-a per il contrasto del testo */
	background: linear-gradient(135deg, color-mix(in srgb, var(--tile-accent-a) 60%, black), color-mix(in srgb, var(--tile-accent-a) 35%, black));
	border: 5px solid var(--color-surface-white);
	box-shadow: 0 10px 22px -6px var(--tile-accent-a);
}

.prize-card-img {
	position: relative;
	z-index: 1;
	display: block;
}

.prize-card-img--round {
	width: 150px;
	height: 150px;
	object-fit: cover;
	border-radius: 50%;
	border: 4px solid var(--color-text-inverse);
	box-shadow: var(--shadow-md);
}

.prize-card-img--wide {
	width: 100%;
	max-width: 260px;
	object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
	.prize-card {
		transition: none !important;
	}
}

/* --- Prodotti in promozione --- */

.products-section {
	background: linear-gradient(180deg, var(--color-surface-white) 0%, var(--color-surface-card) 100%);
}

.products-row-wrap {
	overflow-x: auto;
	overflow-y: hidden;
	padding: .5rem .25rem 1.5rem;
}

.products-row {
	width: max-content;
	margin: 0 auto;
}

.product-col {
	position: relative;
	z-index: 1;
	text-align: center;
}

.product-img {
	display: inline-block;
	height: clamp(110px, 15vw, 190px);
	width: auto;
	max-width: none;
	object-fit: contain;
	filter: drop-shadow(0 18px 20px rgba(11, 60, 116, .25));
	transition: transform .35s ease;
}

.product-col:hover .product-img {
	transform: translateY(-6px) scale(1.05);
}

.product-img--hero {
	height: clamp(176px, 24vw, 304px);
}

.product-decor-col {
	align-self: center;
}

.product-decor {
	width: clamp(42px, 5vw, 68px);
	height: auto;
	opacity: .95;
	filter: drop-shadow(0 8px 10px rgba(11, 60, 116, .2));
}

.product-decor--1 {
	transform: rotate(-10deg);
	margin-bottom: 3rem;
}

.product-decor--2 {
	transform: rotate(8deg);
	margin-bottom: 4.5rem;
}

.product-decor--3 {
	transform: rotate(-6deg);
	margin-bottom: 2rem;
}

@media (prefers-reduced-motion: reduce) {
	.product-img {
		transition: none !important;
	}
}

.peluche-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 50%;
	background-color: var(--color-text-inverse);
	border: 3px solid var(--color-text-inverse);
	box-shadow: var(--shadow-md);
}

@media (prefers-reduced-motion: reduce) {
	.peluche-avatar {
		transition: none !important;
	}
}

small.small {
	font-size: 10px;
	line-height: 9px;
}


/* ============================
   8. REGISTRAZIONE (registrazione.php)
   ============================ */

/* Blocchi del form come step-tile, in stile coerente con "Come partecipare" in home */
.reg-card {
	--tile-accent-a: var(--color-primary-blue);
	--tile-accent-b: var(--color-accent-cyan);
	position: relative;
	margin-top: 28px;
	background-color: var(--color-surface-white);
	border-radius: 1.75rem;
	box-shadow: 0 14px 32px -16px rgba(11, 60, 116, .28);
	padding: 2.75rem 1.5rem 1.75rem;
	transition: box-shadow .3s ease;
}

.reg-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(160deg, var(--tile-accent-a) 0%, transparent 60%);
	opacity: .08;
	pointer-events: none;
	z-index: 0;
}

.reg-card:focus-within {
	box-shadow: 0 22px 44px -16px rgba(11, 60, 116, .38);
}

.reg-card > * {
	position: relative;
	z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
	.reg-card {
		transition: none !important;
	}
}

#errore {
	color: var(--color-danger);
	font-weight: bold;
	font-size: 24px;
}

.form-control,
.form-select {
	border-radius: 5px;
	border: 1px solid var(--color-primary-blue);
	color: var(--color-text-main);
}

.form-group {
	margin-bottom: 15px;
}

/* Checkbox di consenso: label a tutta larghezza per impilare testo e checkbox */
label[for=dati_reg],
label[for=ricez_info_1] {
	display: block;
}

label a {
	color: inherit;
	text-decoration: underline;
}

/* Modale di caricamento durante la lettura OCR dello scontrino */
#ocr_loading,
#ocr_loading>.modal-dialog,
#ocr_loading>.modal-dialog>.modal-content,
#ocr_loading>.modal-dialog>.modal-content>.modal-body {
	background-color: transparent !important;
}


/* ============================
   9. FOOTER (footer.php)
   ============================ */

footer {
	font-family: 'Montserrat';
	font-size: 0.8rem;
	background-color: var(--color-primary-blue);
}

footer p {
	color: var(--color-text-inverse);
	font-family: 'Montserrat';
	font-weight: normal;
	font-style: normal;
	font-size: 0.8rem;
	text-align: start;
}

footer p a {
	color: var(--color-text-inverse);
	text-decoration: underline;
	font-weight: 700;
}
