/* ============================================================
   Job Hub Festival — banner e pannello del consenso cookie (v1.27.0)
   Solo token del design system (tokens.css). Contrasti verificati:
   testo #E8ECF1 su navy #0D1D31 ≈ 14:1; testo secondario #B9C3CF ≈ 9:1;
   magenta #EC005F con testo bianco ≈ 4.6:1.
   «Rifiuta tutto» è un pulsante pieno (bianco) come «Accetta» (magenta).
   ============================================================ */

.jhf-consent {
	position: fixed;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	z-index: 2147483000;
	box-sizing: border-box;
	width: min(820px, calc(100% - 32px));
	max-height: calc(100vh - 32px);
	overflow: auto;
	padding: var(--jhf-space-6);
	background: var(--jhf-primary, #0D1D31);
	color: var(--jhf-text-on-dark, #E8ECF1);
	border: 1px solid var(--jhf-primary-soft, #1a2d4a);
	border-radius: var(--jhf-radius-lg, 1rem);
	box-shadow: var(--jhf-shadow-lg);
	font-family: var(--jhf-font-body);
	font-size: var(--jhf-text-sm);
	line-height: 1.55;
	text-align: left;
}

.jhf-consent *,
.jhf-consent *::before,
.jhf-consent *::after { box-sizing: border-box; }

.jhf-consent--banner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-4);
	align-items: center;
	justify-content: space-between;
}

.jhf-consent--pannello { width: min(580px, calc(100% - 32px)); }

.jhf-consent__text { flex: 1 1 340px; min-width: 240px; }

.jhf-consent__title,
.jhf-consent__heading {
	margin: 0 0 var(--jhf-space-1);
	font-family: var(--jhf-font-display);
	font-weight: 800;
	color: #fff;
}
.jhf-consent__title { font-size: var(--jhf-text-base); }
.jhf-consent__heading { font-size: var(--jhf-text-xl); line-height: 1.25; }

.jhf-consent__desc {
	margin: 0;
	color: #B9C3CF;
	font-size: var(--jhf-text-sm);
}
.jhf-consent--pannello .jhf-consent__desc { margin-bottom: var(--jhf-space-2); }

.jhf-consent__link,
.jhf-consent__link:visited {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.jhf-consent__link:hover { color: var(--jhf-secondary-soft, #FF3380); }

.jhf-consent__actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: var(--jhf-space-2);
}
.jhf-consent__actions--panel {
	justify-content: flex-end;
	padding-top: var(--jhf-space-4);
	border-top: 1px solid var(--jhf-primary-soft, #1a2d4a);
}

/* Pulsanti: gli stessi del sito (.jhf-button --primary / --white / --ghost-light,
   frontend.css). Qui solo impaginazione e un ritocco: sul fondo navy il
   «white» in hover diventerebbe navy su navy, quindi tiene il bordo bianco. */
.jhf-consent .jhf-consent__btn { margin: 0; white-space: nowrap; }
.jhf-consent .jhf-button--white:hover,
.jhf-consent .jhf-button--white:focus { border-color: #ffffff !important; }
.jhf-consent__link:focus-visible,
.jhf-consent__check:focus-visible {
	outline: 2px solid var(--jhf-secondary-soft, #FF3380);
	outline-offset: 2px;
}

.jhf-consent__row {
	display: flex;
	gap: var(--jhf-space-4);
	align-items: flex-start;
	padding: var(--jhf-space-4) 0;
	border-top: 1px solid var(--jhf-primary-soft, #1a2d4a);
}
.jhf-consent__row-text { flex: 1 1 auto; }
.jhf-consent__row-title {
	display: block;
	margin-bottom: 2px;
	font-weight: 700;
	color: #fff;
	cursor: pointer;
}
.jhf-consent__row-desc { margin: 0; color: #B9C3CF; font-size: 0.8125rem; line-height: 1.5; }
.jhf-consent__row-control {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: var(--jhf-space-2);
	margin-top: 2px;
	color: #B9C3CF;
	font-size: 0.8125rem;
}
.jhf-consent__check {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--jhf-secondary, #EC005F);
	cursor: pointer;
}
.jhf-consent__check:disabled { cursor: default; }

@media (max-width: 640px) {
	.jhf-consent { bottom: 8px; width: calc(100% - 16px); padding: var(--jhf-space-4); max-height: calc(100vh - 16px); }
	.jhf-consent__actions { width: 100%; }
	.jhf-consent .jhf-consent__btn { flex: 1 1 auto; }
}
