/* ============================================================
   Job Hub Festival — Frontend stylesheet
   Stili dei template di plugin (single/archive eventi, aziende, sector)
   e dei tre shortcode pubblici. Usa esclusivamente var(--jhf-*)
   definiti in tokens.css.
   ============================================================ */

/* -------- Layout helpers -------- */
.jhf-page {
	font-family: var(--jhf-font-body);
	color: var(--jhf-text);
	font-size: var(--jhf-text-base);
	line-height: 1.65;
	padding: 0;
}
.jhf-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--jhf-space-6);
}

.jhf-section { padding: var(--jhf-space-16) 0; }
.jhf-section--tight { padding: var(--jhf-space-12) 0; }

.jhf-eyebrow {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-eyebrow);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: var(--jhf-eyebrow-tracking);
	text-transform: uppercase;
	color: var(--jhf-secondary);
	margin: 0 0 var(--jhf-space-4);
}
.jhf-eyebrow .sep { margin: 0 0.5em; opacity: 0.5; }
.jhf-eyebrow--on-dark { color: rgba(255,255,255,0.85); }

/* -------- Buttons -------- */
.jhf-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 14px 28px;
	border: 2px solid transparent;
	border-radius: var(--jhf-radius-full);
	font-family: var(--jhf-font-display);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .25s ease-out, color .25s ease-out, border-color .25s ease-out, box-shadow .25s ease-out, transform .25s ease-out;
}
.jhf-button:hover:not([disabled]) {
	transform: translateY(-2px);
	box-shadow: var(--jhf-shadow-btn, 0 10px 40px rgba(13,29,49,0.10));
}
.jhf-button:focus-visible {
	outline: 2px solid var(--jhf-secondary);
	outline-offset: 2px;
}
.jhf-button[disabled] { opacity: 0.55; cursor: not-allowed; }

.jhf-button--primary {
	background: var(--jhf-secondary);
	color: #fff;
	border-color: var(--jhf-secondary);
}
.jhf-button--primary:hover:not([disabled]) {
	background: var(--jhf-secondary-soft);
	border-color: var(--jhf-secondary-soft);
	color: #fff;
}

.jhf-button--navy {
	background: var(--jhf-primary);
	color: #fff;
}
.jhf-button--navy:hover { background: var(--jhf-primary-dark); color: #fff; }

/* v1.7.6 — .jhf-button--secondary (mockup .btn-secondary: bg white, color navy, border grigio chiaro) */
.jhf-button--secondary {
	background: white;
	color: var(--jhf-primary);
	border-color: var(--jhf-border, #E5E7EB);
}
.jhf-button--secondary:hover { background: var(--jhf-surface-alt, #F7F8FA); color: var(--jhf-primary); }

.jhf-button--outline {
	background: transparent;
	color: var(--jhf-primary);
	border-color: var(--jhf-primary);
}
.jhf-button--outline:hover { background: var(--jhf-primary); color: #fff; }

.jhf-button--ghost {
	background: transparent;
	color: var(--jhf-secondary);
	padding-left: 0;
	padding-right: 0;
}
.jhf-button--ghost:hover { color: var(--jhf-secondary-dark); }

/* -------- Icons -------- */
.jhf-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	display: inline-block;
	vertical-align: middle;
}
.jhf-icon--accent { color: var(--jhf-secondary); }
.jhf-icon--lg { width: 22px; height: 22px; }

/* -------- Chip -------- */
.jhf-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: var(--jhf-radius-full);
	font-size: 13px;
	font-weight: 600;
	background: var(--jhf-surface-alt);
	color: var(--jhf-primary);
	border: 1px solid var(--jhf-border);
}
.jhf-chip .jhf-icon { width: 14px; height: 14px; }
.jhf-chip--accent {
	background: rgba(236, 0, 95, 0.08);
	color: var(--jhf-secondary-dark);
	border-color: rgba(236, 0, 95, 0.25);
}
.jhf-chip--ghost {
	background: transparent;
	border-color: var(--jhf-border);
}

/* ============================================================
   Event header
   ============================================================ */
.jhf-event-header { padding: var(--jhf-space-16) 0 var(--jhf-space-12); }
.jhf-event-header__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-3xl);
	font-weight: 900;
	line-height: 1.1;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-6);
	letter-spacing: -0.01em;
}
@media (min-width: 768px) {
	.jhf-event-header__title { font-size: var(--jhf-text-4xl); }
}
.jhf-event-header__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-2) var(--jhf-space-6);
	margin-top: var(--jhf-space-6);
	color: var(--jhf-text-strong);
	font-size: var(--jhf-text-sm);
}
.jhf-event-header__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* ============================================================
   Stat strip — sezione navy
   ============================================================ */
.jhf-stat-strip {
	background: var(--jhf-primary);
	color: #fff;
	padding: 64px 0;
}
.jhf-stat-strip__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	text-align: center;
}
@media (min-width: 768px) {
	.jhf-stat-strip__grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
	}
}
.jhf-stat {
	position: relative;
	padding: 0 16px;
}
.jhf-stat__value {
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
}
.jhf-stat__num {
	display: block;
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 5vw, 60px);
	font-weight: 900;
	color: var(--jhf-secondary);
	letter-spacing: -0.03em;
	line-height: 1;
	margin-bottom: 4px;
	font-variant-numeric: tabular-nums;
}
.jhf-stat__plus {
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3.5vw, 44px);
	font-weight: 900;
	line-height: 1;
	color: var(--jhf-secondary);
	margin-left: 4px;
}
.jhf-stat__label {
	display: block;
	margin: 4px 0 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: rgba(255,255,255,0.75);
}

/* ============================================================
   Companies grid
   ============================================================ */
.jhf-companies-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
@media (min-width: 640px) {
	.jhf-companies-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.jhf-companies-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================
   Company card
   ============================================================ */
.jhf-company-card {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	transition: box-shadow .2s ease, transform .2s ease;
}
.jhf-company-card:hover {
	box-shadow: var(--jhf-shadow-md);
	transform: translateY(-2px);
}
.jhf-company-card__head {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
}
.jhf-company-card__logo {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
	border-radius: var(--jhf-radius-md);
	background: var(--jhf-surface-alt);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jhf-company-card__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
}
.jhf-company-card__logo--placeholder { color: var(--jhf-text-muted); }
.jhf-company-card__logo--placeholder .jhf-icon { width: 28px; height: 28px; }
.jhf-company-card__name {
	font-family: var(--jhf-font-display);
	font-size: 18px;
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0;
	line-height: 1.2;
}
.jhf-company-card__sector {
	margin: 4px 0 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.jhf-company-card__excerpt {
	color: var(--jhf-text);
	font-size: 15px;
	margin: 0;
	line-height: 1.55;
}
.jhf-company-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.jhf-company-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--jhf-space-4);
	margin-top: auto;
	padding-top: var(--jhf-space-4);
	border-top: 1px solid var(--jhf-border);
	flex-wrap: wrap;
}

/* ============================================================
   Event card (per archive)
   ============================================================ */
.jhf-event-card {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s ease, transform .2s ease;
}
.jhf-event-card:hover {
	box-shadow: var(--jhf-shadow-md);
	transform: translateY(-2px);
}
.jhf-event-card__cover {
	display: block;
	background: var(--jhf-surface-alt);
}
.jhf-event-card__cover img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}
.jhf-event-card__body { padding: var(--jhf-space-6); display: flex; flex-direction: column; gap: var(--jhf-space-3); }
.jhf-event-card__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 700;
	margin: 0;
	color: var(--jhf-text-strong);
}
.jhf-event-card__title a { color: inherit; text-decoration: none; }
.jhf-event-card__title a:hover { color: var(--jhf-secondary); }
.jhf-event-card__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 14px;
	color: var(--jhf-text);
}
.jhf-event-card .jhf-button { margin-top: var(--jhf-space-4); align-self: flex-start; }

.jhf-events-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
@media (min-width: 768px) {
	.jhf-events-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.jhf-events-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================
   Filter form (archive aziende)
   ============================================================ */
.jhf-filter-form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-4);
	align-items: center;
	padding: var(--jhf-space-4) var(--jhf-space-6);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-md);
	margin-bottom: var(--jhf-space-8);
}
.jhf-filter-form label {
	font-size: 14px;
	font-weight: 600;
	color: var(--jhf-text-strong);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.jhf-filter-form select {
	padding: 8px 12px;
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-sm);
	font-family: var(--jhf-font-body);
	font-size: 14px;
	background: var(--jhf-surface);
	color: var(--jhf-text-strong);
}

/* ============================================================
   Single company page
   ============================================================ */
.jhf-company-page__header { padding: var(--jhf-space-12) 0 var(--jhf-space-6); }
.jhf-company-page__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-3xl);
	font-weight: 900;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-3);
	line-height: 1.1;
}
@media (min-width: 768px) {
	.jhf-company-page__title { font-size: var(--jhf-text-4xl); }
}
.jhf-company-page__sector {
	color: var(--jhf-text-muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 14px;
}
.jhf-company-page__body { padding: var(--jhf-space-6) 0; }
.jhf-company-page__events {
	background: var(--jhf-surface-alt);
	padding: var(--jhf-space-12) 0;
	margin-top: var(--jhf-space-12);
}

/* ============================================================
   Generic empty state
   ============================================================ */
.jhf-empty {
	background: var(--jhf-surface);
	border: 1px dashed var(--jhf-border);
	padding: var(--jhf-space-12);
	border-radius: var(--jhf-radius-lg);
	text-align: center;
	color: var(--jhf-text-muted);
}

/* ============================================================
   v0.3.1 — Defense layer per i bottoni
   Necessario perché alcuni temi (Hello Elementor, Astra, ecc.) o
   Elementor stesso hanno regole `a { color: ... }` con specificity
   alta che sovrascrivono il colore bianco dei nostri CTA primary/navy
   rendendoli "vuoti" su sfondo magenta.
   Selector a.jhf-button + !important sono qui un compromesso accettato.
   ============================================================ */
.jhf-button,
a.jhf-button,
a.jhf-button:link,
a.jhf-button:visited,
a.jhf-button:hover,
a.jhf-button:active,
a.jhf-button:focus,
button.jhf-button {
	text-decoration: none !important;
	font-family: var(--jhf-font-display) !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	border-radius: var(--jhf-radius-full) !important;
}

.jhf-button--primary,
a.jhf-button--primary,
a.jhf-button--primary:link,
a.jhf-button--primary:visited,
button.jhf-button--primary {
	background-color: var(--jhf-secondary) !important;
	color: #ffffff !important;
	border-color: var(--jhf-secondary) !important;
}
.jhf-button--primary:hover,
a.jhf-button--primary:hover,
a.jhf-button--primary:focus,
button.jhf-button--primary:hover {
	background-color: var(--jhf-secondary-soft) !important;
	color: #ffffff !important;
	border-color: var(--jhf-secondary-soft) !important;
}

.jhf-button--navy,
a.jhf-button--navy:link,
a.jhf-button--navy:visited,
button.jhf-button--navy {
	background-color: var(--jhf-primary) !important;
	color: #ffffff !important;
	border-color: var(--jhf-primary) !important;
}
.jhf-button--navy:hover,
a.jhf-button--navy:hover,
a.jhf-button--navy:focus {
	background-color: var(--jhf-primary-dark) !important;
	color: #ffffff !important;
}

/* v1.7.6 — .jhf-button--secondary !important block */
.jhf-button--secondary,
a.jhf-button--secondary:link,
a.jhf-button--secondary:visited,
button.jhf-button--secondary {
	background-color: #ffffff !important;
	color: var(--jhf-primary) !important;
	border: 2px solid var(--jhf-border, #E5E7EB) !important;
}
.jhf-button--secondary:hover,
a.jhf-button--secondary:hover,
a.jhf-button--secondary:focus {
	background-color: var(--jhf-surface-alt, #F7F8FA) !important;
	color: var(--jhf-primary) !important;
}

.jhf-button--outline,
a.jhf-button--outline:link,
a.jhf-button--outline:visited,
button.jhf-button--outline {
	background-color: transparent !important;
	color: var(--jhf-primary) !important;
	border: 1px solid var(--jhf-primary) !important;
}
.jhf-button--outline:hover,
a.jhf-button--outline:hover {
	background-color: var(--jhf-primary) !important;
	color: #ffffff !important;
}

.jhf-button--ghost,
a.jhf-button--ghost:link,
a.jhf-button--ghost:visited,
button.jhf-button--ghost {
	background-color: transparent !important;
	color: var(--jhf-secondary) !important;
	border-color: transparent !important;
}
.jhf-button--ghost:hover,
a.jhf-button--ghost:hover {
	color: var(--jhf-secondary-dark) !important;
}

/* L'icona dentro il bottone eredita il colore dal testo */
.jhf-button .jhf-icon { color: currentColor !important; }

/* ============================================================
   v0.4 — Form & Dashboard candidato
   ============================================================ */

.jhf-shortcode { font-family: var(--jhf-font-body); color: var(--jhf-text); }

.jhf-form {
	max-width: 480px;
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	background: var(--jhf-surface);
	padding: var(--jhf-space-8);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
}
.jhf-form--inline { padding: 0; border: none; max-width: none; gap: var(--jhf-space-3); }

.jhf-form__row { display: flex; flex-direction: column; gap: 6px; }
.jhf-form__row label {
	font-size: 14px;
	font-weight: 600;
	color: var(--jhf-text-strong);
}
.jhf-form__req { color: var(--jhf-secondary); margin-left: 2px; }
.jhf-form__help { font-size: 13px; color: var(--jhf-text-muted); margin: 0; }

.jhf-form input[type="text"],
.jhf-form input[type="email"],
.jhf-form input[type="password"],
.jhf-form input[type="file"] {
	padding: 10px 14px;
	font-family: var(--jhf-font-body);
	font-size: 16px;
	line-height: 1.4;
	color: var(--jhf-text-strong);
	background: #fff;
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-sm);
	transition: border-color .15s, box-shadow .15s;
}
.jhf-form input:focus {
	outline: none;
	border-color: var(--jhf-secondary);
	box-shadow: 0 0 0 3px rgba(236, 0, 95, 0.15);
}

.jhf-form__row--checkbox label {
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	font-weight: 400;
	color: var(--jhf-text);
	font-size: 15px;
	line-height: 1.5;
	cursor: pointer;
}
.jhf-form__row--checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--jhf-secondary);
}

.jhf-form__footer {
	font-size: 14px;
	color: var(--jhf-text-muted);
	text-align: center;
	margin: var(--jhf-space-4) 0 0;
}
.jhf-form__footer a { color: var(--jhf-secondary); font-weight: 600; }

/* ----- Notice (success / error / info) ----- */
.jhf-notice {
	padding: 14px 18px;
	border-radius: var(--jhf-radius-sm);
	margin-bottom: var(--jhf-space-6);
	font-size: 15px;
	line-height: 1.5;
	border: 1px solid;
}
.jhf-notice a { font-weight: 600; }
.jhf-notice--success { background: #ecfdf5; color: #065f46; border-color: #a7f3d0; }
.jhf-notice--error   { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.jhf-notice--info    { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }

/* ----- Dashboard ----- */
.jhf-dashboard {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--jhf-space-8) var(--jhf-space-6);
}
.jhf-dashboard__header { margin-bottom: var(--jhf-space-12); }
.jhf-dashboard__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-3xl);
	font-weight: 900;
	color: var(--jhf-text-strong);
	margin: 0;
	line-height: 1.1;
	letter-spacing: -0.01em;
}
@media (min-width: 768px) {
	.jhf-dashboard__title { font-size: var(--jhf-text-4xl); }
}

.jhf-dashboard__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-8);
}
@media (min-width: 768px) {
	.jhf-dashboard__grid { grid-template-columns: repeat(2, 1fr); }
}

.jhf-dashboard__card {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-8);
}
.jhf-dashboard__card-title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-6);
	padding-bottom: var(--jhf-space-3);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-dashboard__cv-info { margin: 0 0 var(--jhf-space-4); }

.jhf-dashboard__profile { margin: 0; }
.jhf-dashboard__profile dt {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--jhf-text-muted);
	margin-bottom: 4px;
}
.jhf-dashboard__profile dd {
	margin: 0 0 var(--jhf-space-4);
	color: var(--jhf-text-strong);
	font-weight: 600;
	font-size: 16px;
}

/* ============================================================
   v0.4.1 — Dashboard Quick Actions (next steps)
   ============================================================ */
.jhf-dashboard__subtitle {
	margin: var(--jhf-space-4) 0 0;
	color: var(--jhf-text);
	font-size: var(--jhf-text-lg);
	max-width: 65ch;
}

.jhf-dashboard__quick {
	margin: var(--jhf-space-12) 0 var(--jhf-space-16);
}
.jhf-dashboard__quick-title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-8);
	letter-spacing: -0.01em;
}

.jhf-quick-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
@media (min-width: 768px) {
	.jhf-quick-grid { grid-template-columns: repeat(3, 1fr); }
}

.jhf-quick-card {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-3);
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.jhf-quick-card:hover {
	box-shadow: var(--jhf-shadow-md);
	transform: translateY(-2px);
}

.jhf-quick-card__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--jhf-radius-md);
	background: var(--jhf-surface-alt);
	color: var(--jhf-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--jhf-space-2);
}

.jhf-quick-card__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0;
	line-height: 1.2;
}

.jhf-quick-card__text {
	color: var(--jhf-text);
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 var(--jhf-space-4);
	flex-grow: 1;
}

.jhf-quick-card .jhf-button {
	align-self: flex-start;
}

/* Variante "highlight" — la card con la CTA primaria */
.jhf-quick-card--highlight {
	background: var(--jhf-surface-dark);
	border-color: var(--jhf-surface-dark);
	color: #fff;
}
.jhf-quick-card--highlight .jhf-quick-card__title { color: #fff; }
.jhf-quick-card--highlight .jhf-quick-card__text  { color: rgba(255,255,255,0.85); }
.jhf-quick-card--highlight .jhf-quick-card__icon {
	background: rgba(236, 0, 95, 0.15);
	color: var(--jhf-secondary);
}

/* ============================================================
   v0.4.2 — CV actions (visualizza + rimuovi)
   ============================================================ */
.jhf-cv-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-3);
	align-items: center;
}
.jhf-cv-delete-form { display: inline; margin: 0; padding: 0; }

.jhf-button--danger-ghost,
button.jhf-button--danger-ghost {
	background-color: transparent !important;
	color: var(--jhf-error) !important;
	border: 1px solid transparent !important;
}
.jhf-button--danger-ghost:hover,
button.jhf-button--danger-ghost:hover {
	background-color: rgba(217, 53, 69, 0.08) !important;
	color: var(--jhf-error) !important;
	border-color: rgba(217, 53, 69, 0.25) !important;
}

/* ============================================================
   v0.5 — Booking page (slot picker) + Appointment list
   ============================================================ */
.jhf-booking { max-width: 1200px; margin: 0 auto; padding: var(--jhf-space-12) var(--jhf-space-6); }
.jhf-booking__header { margin-bottom: var(--jhf-space-12); }
.jhf-booking__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-3xl);
	font-weight: 900;
	color: var(--jhf-text-strong);
	margin: var(--jhf-space-3) 0 var(--jhf-space-3);
	line-height: 1.1;
}
@media (min-width: 768px) {
	.jhf-booking__title { font-size: var(--jhf-text-4xl); }
}
.jhf-booking__meta {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-4); font-size: 16px;
}
.jhf-booking__stats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: var(--jhf-space-4); }

.jhf-booking__companies { display: flex; flex-direction: column; gap: var(--jhf-space-12); }

.jhf-booking-company {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-8);
	scroll-margin-top: 80px;
}
.jhf-booking-company__header {
	margin: 0 0 var(--jhf-space-8);
	padding-bottom: var(--jhf-space-4);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-booking-company__name {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-3);
	line-height: 1.2;
}
.jhf-booking-company__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.jhf-slot-section { margin-top: var(--jhf-space-6); }
.jhf-slot-section__title {
	font-family: var(--jhf-font-display);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted);
	margin: 0 0 var(--jhf-space-4);
}

.jhf-slot-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
	gap: var(--jhf-space-3);
}

.jhf-slot-form { margin: 0; }

.jhf-slot {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 14px 8px;
	border-radius: var(--jhf-radius-md);
	border: 1px solid var(--jhf-border);
	background: var(--jhf-surface);
	font-family: var(--jhf-font-display);
	cursor: pointer;
	transition: all .15s ease;
}
.jhf-slot__time { font-size: 18px; font-weight: 800; color: var(--jhf-text-strong); }
.jhf-slot__label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }

.jhf-slot--available .jhf-slot__label { color: var(--jhf-secondary); }
.jhf-slot--available:hover {
	border-color: var(--jhf-secondary);
	background: rgba(236, 0, 95, 0.05);
	transform: translateY(-1px);
	box-shadow: var(--jhf-shadow-sm);
}

.jhf-slot--mine {
	background: var(--jhf-secondary);
	border-color: var(--jhf-secondary);
}
.jhf-slot--mine .jhf-slot__time,
.jhf-slot--mine .jhf-slot__label { color: #fff; }
.jhf-slot--mine:hover { background: var(--jhf-secondary-dark); border-color: var(--jhf-secondary-dark); }

.jhf-slot--booked {
	background: var(--jhf-surface-alt);
	border-color: var(--jhf-border);
	cursor: not-allowed;
	opacity: 0.55;
}
.jhf-slot--booked .jhf-slot__time { color: var(--jhf-text-muted); }
.jhf-slot--booked .jhf-slot__label { color: var(--jhf-text-muted); }

/* Appointment list (dashboard embed) */
.jhf-dashboard__appointments { margin: var(--jhf-space-12) 0; }
.jhf-appointment-list { display: flex; flex-direction: column; gap: var(--jhf-space-4); }
.jhf-appointment {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-6);
	padding: var(--jhf-space-6);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	flex-wrap: wrap;
}
.jhf-appointment__when {
	min-width: 200px;
	padding-right: var(--jhf-space-4);
	border-right: 1px solid var(--jhf-border);
}
@media (max-width: 640px) {
	.jhf-appointment__when { border-right: none; padding-right: 0; padding-bottom: var(--jhf-space-3); border-bottom: 1px solid var(--jhf-border); width: 100%; min-width: 0; }
}
.jhf-appointment__date {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--jhf-secondary);
}
.jhf-appointment__time {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 900;
	color: var(--jhf-text-strong);
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
	margin-top: 2px;
}
.jhf-appointment__who { flex: 1; min-width: 200px; }
.jhf-appointment__company {
	font-family: var(--jhf-font-display);
	font-size: 18px;
	font-weight: 700;
	color: var(--jhf-text-strong);
	text-decoration: none;
	display: block;
	margin-bottom: 4px;
}
.jhf-appointment__company:hover { color: var(--jhf-secondary); }
.jhf-appointment__event {
	font-size: 14px;
	color: var(--jhf-text-muted);
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.jhf-appointment__event a { color: var(--jhf-text-muted); text-decoration: none; }
.jhf-appointment__event a:hover { color: var(--jhf-secondary); }
.jhf-appointment__actions form { margin: 0; }

/* ============================================================
   v0.5.1 — Company picker grid + back link
   ============================================================ */
.jhf-back-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--jhf-text-muted);
	text-decoration: none;
	margin-bottom: var(--jhf-space-6);
	padding: 8px 12px;
	border-radius: var(--jhf-radius-md);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	transition: color .15s, border-color .15s;
}
.jhf-back-link:hover { color: var(--jhf-secondary); border-color: var(--jhf-secondary); }
.jhf-icon--flip { transform: rotate(180deg); }

.jhf-booking__intro {
	color: var(--jhf-text);
	font-size: 16px;
	max-width: 65ch;
	margin: 0 0 var(--jhf-space-8);
}

.jhf-booking-pickers {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-4);
}
@media (min-width: 640px)  { .jhf-booking-pickers { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .jhf-booking-pickers { grid-template-columns: repeat(3, 1fr); } }

.jhf-picker-card {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-6);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	color: var(--jhf-text);
	text-decoration: none;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.jhf-picker-card:hover {
	border-color: var(--jhf-secondary);
	transform: translateY(-2px);
	box-shadow: var(--jhf-shadow-md);
}
.jhf-picker-card.is-active {
	border-color: var(--jhf-secondary);
	background: rgba(236, 0, 95, 0.04);
}
.jhf-picker-card.is-full {
	opacity: 0.65;
}

.jhf-picker-card__head { display: flex; align-items: center; gap: var(--jhf-space-3); }
.jhf-picker-card__logo {
	width: 56px; height: 56px; flex-shrink: 0;
	border-radius: var(--jhf-radius-md);
	background: var(--jhf-surface-alt);
	overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.jhf-picker-card__logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.jhf-picker-card__logo--placeholder { color: var(--jhf-text-muted); }
.jhf-picker-card__head-text { min-width: 0; }
.jhf-picker-card__name {
	font-family: var(--jhf-font-display);
	font-size: 17px;
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0;
	line-height: 1.2;
}
.jhf-picker-card__sector {
	margin: 4px 0 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.jhf-picker-card__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.jhf-picker-card__cta {
	margin-top: auto;
	padding-top: var(--jhf-space-3);
	border-top: 1px solid var(--jhf-border);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--jhf-font-display);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--jhf-secondary);
}
.jhf-picker-card.is-full .jhf-picker-card__cta { color: var(--jhf-text-muted); }

/* v0.5.2 — Slot bloccato (hai già 1 colloquio con questa azienda) */
.jhf-slot--locked {
	background: var(--jhf-surface-alt);
	border-color: var(--jhf-border);
	cursor: not-allowed;
	opacity: 0.5;
}
.jhf-slot--locked .jhf-slot__time { color: var(--jhf-text-muted); }
.jhf-slot--locked .jhf-slot__label {
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* ============================================================
   v0.6 — Slot redesign defensivo (override totale del tema)
   Approccio: outline-only stile chip, time visibile, label minima.
   ============================================================ */
.jhf-slot-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(95px, 1fr)) !important;
	gap: 8px !important;
}
.jhf-slot-form { margin: 0 !important; padding: 0 !important; }

.jhf-slot,
button.jhf-slot,
.jhf-slot-form button.jhf-slot {
	width: 100% !important;
	min-height: 56px !important;
	padding: 8px 6px !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 3px !important;
	border-radius: 12px !important;
	background-color: var(--jhf-surface) !important;
	border: 1px solid var(--jhf-border) !important;
	color: var(--jhf-text-strong) !important;
	font-family: var(--jhf-font-display) !important;
	font-size: inherit !important;
	line-height: 1.1 !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, transform .15s, box-shadow .15s;
	overflow: hidden;
}
.jhf-slot__time {
	font-size: 15px !important;
	font-weight: 800 !important;
	color: inherit !important;
	line-height: 1 !important;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.01em;
	display: block !important;
}
.jhf-slot__label {
	font-size: 9px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	color: inherit !important;
	line-height: 1 !important;
	opacity: 0.7;
	display: block !important;
}

/* Available — bianco con accento magenta sul label */
.jhf-slot--available .jhf-slot__label { color: var(--jhf-secondary) !important; opacity: 1; }
.jhf-slot--available:hover {
	background-color: rgba(236, 0, 95, 0.06) !important;
	border-color: var(--jhf-secondary) !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(236, 0, 95, 0.15) !important;
}

/* Mine — solid magenta, testo bianco */
.jhf-slot--mine,
button.jhf-slot--mine {
	background-color: var(--jhf-secondary) !important;
	border-color: var(--jhf-secondary) !important;
	color: #fff !important;
}
.jhf-slot--mine .jhf-slot__time,
.jhf-slot--mine .jhf-slot__label {
	color: #fff !important;
	opacity: 1 !important;
}
.jhf-slot--mine:hover {
	background-color: var(--jhf-secondary-dark) !important;
	border-color: var(--jhf-secondary-dark) !important;
}

/* Booked by others — surface alt + muted */
.jhf-slot--booked,
button.jhf-slot--booked {
	background-color: var(--jhf-surface-alt) !important;
	border-color: var(--jhf-border) !important;
	color: var(--jhf-text-muted) !important;
	cursor: not-allowed !important;
	opacity: 0.6;
}
.jhf-slot--booked .jhf-slot__time,
.jhf-slot--booked .jhf-slot__label {
	color: var(--jhf-text-muted) !important;
	opacity: 1 !important;
}
.jhf-slot--booked:hover { transform: none !important; box-shadow: none !important; }

/* Locked (hai già 1 colloquio con questa azienda) — outline ghost, label nascosta */
.jhf-slot--locked,
button.jhf-slot--locked {
	background-color: transparent !important;
	border: 1px dashed var(--jhf-border) !important;
	color: var(--jhf-text-muted) !important;
	cursor: not-allowed !important;
	opacity: 0.45;
}
.jhf-slot--locked .jhf-slot__time {
	color: var(--jhf-text-muted) !important;
	font-weight: 600 !important;
}
.jhf-slot--locked .jhf-slot__label { display: none !important; }
.jhf-slot--locked:hover { transform: none !important; box-shadow: none !important; }

/* ============================================================
   v0.6 — Company Portal styles
   ============================================================ */
.jhf-company-portal { padding: var(--jhf-space-8) var(--jhf-space-6); max-width: 1200px; margin: 0 auto; }

.jhf-company-block { margin: var(--jhf-space-12) 0; }
.jhf-company-block__header { margin-bottom: var(--jhf-space-6); }
.jhf-company-block__name {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 800;
	color: var(--jhf-text-strong);
	margin: var(--jhf-space-2) 0 0;
	letter-spacing: -0.01em;
}

.jhf-event-block {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
	margin-bottom: var(--jhf-space-6);
}
.jhf-event-block__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--jhf-space-4);
	flex-wrap: wrap;
	margin-bottom: var(--jhf-space-6);
	padding-bottom: var(--jhf-space-4);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-event-block__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0;
	line-height: 1.2;
}
.jhf-event-block__date { margin: 4px 0 0; color: var(--jhf-text-muted); font-size: 14px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.jhf-event-block__chips { display: flex; flex-wrap: wrap; gap: 6px; }

.jhf-appointments-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.jhf-appointments-table thead th {
	text-align: left;
	padding: 10px 8px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--jhf-text-muted);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-appointments-table tbody td {
	padding: 12px 8px;
	border-bottom: 1px solid var(--jhf-border);
	color: var(--jhf-text);
}
.jhf-appointments-table tbody tr:last-child td { border-bottom: none; }
.jhf-appointments-table tbody tr:hover td { background: var(--jhf-surface-alt); }
.jhf-appointments-table a { color: var(--jhf-secondary); text-decoration: none; }

/* Button size --sm (allineato mockup .btn-sm: padding 10/20, font 13px) */
.jhf-button--sm,
a.jhf-button--sm,
button.jhf-button--sm {
	padding: 10px 20px !important;
	min-height: 38px !important;
	font-size: 13px !important;
}

/* ============================================================
   v0.6.1 — Slot specificity reinforcement
   I tema (Hello Elementor child) usa `button {background: white !important}`
   con specificity = nostra. Per vincere usiamo selector multi-class scoped
   sotto .jhf-shortcode (specificity più alta).
   ============================================================ */
.jhf-shortcode .jhf-slot.jhf-slot--mine,
.jhf-shortcode button.jhf-slot.jhf-slot--mine,
.jhf-shortcode .jhf-slot-form button.jhf-slot--mine,
body .jhf-booking .jhf-slot--mine,
body .jhf-booking button.jhf-slot--mine {
	background-color: var(--jhf-secondary) !important;
	background: var(--jhf-secondary) !important;
	background-image: none !important;
	border: 1px solid var(--jhf-secondary) !important;
	color: #ffffff !important;
}
.jhf-shortcode .jhf-slot--mine .jhf-slot__time,
.jhf-shortcode .jhf-slot--mine .jhf-slot__label,
body .jhf-booking .jhf-slot--mine .jhf-slot__time,
body .jhf-booking .jhf-slot--mine .jhf-slot__label,
.jhf-slot--mine *,
button.jhf-slot--mine * {
	color: #ffffff !important;
	opacity: 1 !important;
}
.jhf-shortcode .jhf-slot--mine:hover,
body .jhf-booking .jhf-slot--mine:hover {
	background-color: var(--jhf-secondary-dark) !important;
	background: var(--jhf-secondary-dark) !important;
	border-color: var(--jhf-secondary-dark) !important;
}

/* Reinforce booked + locked too */
.jhf-shortcode .jhf-slot.jhf-slot--booked,
body .jhf-booking .jhf-slot--booked {
	background-color: var(--jhf-surface-alt) !important;
	background: var(--jhf-surface-alt) !important;
	background-image: none !important;
	border: 1px solid var(--jhf-border) !important;
	color: var(--jhf-text-muted) !important;
}
.jhf-shortcode .jhf-slot.jhf-slot--locked,
body .jhf-booking .jhf-slot--locked {
	background-color: transparent !important;
	background: transparent !important;
	background-image: none !important;
	border: 1px dashed var(--jhf-border) !important;
}

/* And reinforce available too — full white card */
.jhf-shortcode .jhf-slot.jhf-slot--available,
body .jhf-booking .jhf-slot--available {
	background-color: var(--jhf-surface) !important;
	background: var(--jhf-surface) !important;
	background-image: none !important;
	border: 1px solid var(--jhf-border) !important;
	color: var(--jhf-text-strong) !important;
}
.jhf-shortcode .jhf-slot.jhf-slot--available:hover,
body .jhf-booking .jhf-slot--available:hover {
	background-color: rgba(236, 0, 95, 0.06) !important;
	border-color: var(--jhf-secondary) !important;
}

/* v0.7.1 — Profili ricercati nelle company card */
.jhf-company-card__profiles {
	margin: 0;
	padding: 10px 12px;
	background: var(--jhf-surface-alt);
	border-radius: var(--jhf-radius-sm);
	font-size: 13px;
	color: var(--jhf-text);
	line-height: 1.5;
}
.jhf-company-card__profiles strong {
	display: block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--jhf-text-muted);
	margin-bottom: 4px;
}

/* v0.8.1 — Waitlist block dentro lo slot picker focus */
.jhf-waitlist-block {
	background: var(--jhf-surface);
	border: 1px dashed var(--jhf-secondary);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-8);
	margin: var(--jhf-space-6) 0;
	text-align: left;
}
.jhf-waitlist-block h3 { color: var(--jhf-text-strong) !important; }
.jhf-waitlist-block p { color: var(--jhf-text); margin-bottom: var(--jhf-space-4); }
.jhf-waitlist-block form { margin: 0; }

.jhf-dashboard__waitlist .jhf-appointment {
	border-left: 4px solid var(--jhf-secondary);
}

/* v0.8.3 — Danger zone (Elimina account) */
.jhf-danger-zone {
	margin-top: var(--jhf-space-16);
	padding-top: var(--jhf-space-8);
	border-top: 1px dashed var(--jhf-error);
}
.jhf-danger-zone summary {
	font-family: var(--jhf-font-display);
	font-size: 14px;
	font-weight: 700;
	color: var(--jhf-error);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
	padding: 8px 0;
	user-select: none;
}
.jhf-danger-zone summary:hover { opacity: 0.7; }
.jhf-danger-zone__body {
	padding: var(--jhf-space-6) 0 0;
}

/* v0.9 — QR scanner page */
.jhf-qr-scanner { max-width: 1200px; margin: 0 auto; padding: var(--jhf-space-8) var(--jhf-space-6); }
.jhf-qr-scanner__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-8);
	margin-top: var(--jhf-space-8);
}
@media (min-width: 768px) {
	.jhf-qr-scanner__layout { grid-template-columns: 1fr 1fr; }
}
.jhf-qr-scanner__camera-box {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
}
.jhf-qr-reader {
	width: 100%;
	max-width: 500px;
	margin: 0 auto var(--jhf-space-4);
	border-radius: var(--jhf-radius-md);
	overflow: hidden;
	background: #000;
	min-height: 300px;
}
.jhf-qr-scanner__controls {
	display: flex;
	gap: var(--jhf-space-3);
	flex-wrap: wrap;
	justify-content: center;
}
.jhf-qr-scanner__result {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
	min-height: 300px;
}
.jhf-checkin-card { display: flex; flex-direction: column; }
.jhf-checkin-appointment {
	background: var(--jhf-surface-alt);
	border-radius: var(--jhf-radius-md);
	padding: var(--jhf-space-4);
	margin-bottom: var(--jhf-space-3);
	border-left: 4px solid var(--jhf-secondary);
}

/* v0.9 — QR display nel dashboard candidato */
.jhf-my-qr {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
	text-align: center;
	margin-top: var(--jhf-space-6);
}
.jhf-my-qr__canvas {
	display: inline-block;
	padding: var(--jhf-space-4);
	background: #fff;
	border-radius: var(--jhf-radius-md);
	margin: var(--jhf-space-3) auto;
}
.jhf-my-qr__canvas img,
.jhf-my-qr__canvas svg,
.jhf-my-qr__canvas canvas { display: block; max-width: 100%; height: auto; }

/* ============================================================
 * v1.4.10 — Partner di edizione (Main / Base / Patrocini)
 *
 * Riferimento mockup: single-event.html righe 465-565, 1038-1110
 *
 * Pattern comune:
 *  - .jhf-partners-section: section con padding + bg toggleable (--alt = surface-alt)
 *  - .jhf-section-header: eyebrow + h2 + paragraph centrato
 *
 * Tier specifici:
 *  - main: card 3-col grandi (logo box + name + description + "Vai al sito →")
 *  - base: cell 5-col compatte (logo o nome)
 *  - patrocini: cell orizzontali con formula testuale + logo colorato
 * ============================================================ */

.jhf-partners-section {
	padding: 96px 0;
	background: #ffffff;
}
.jhf-partners-section--alt {
	background: var(--jhf-surface-alt, #F7F8FA);
}

/* Section header standard, riusabile */
.jhf-section-header {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 64px;
}
.jhf-section-header .jhf-eyebrow {
	display: inline-block;
	margin-bottom: 16px;
}
.jhf-section-header__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 16px;
}
.jhf-section-header__paragraph {
	font-size: 18px;
	color: var(--jhf-text);
	line-height: 1.6;
	margin: 0;
}

/* ============================================================
 * Partner Main — card grandi 3 col con logo box + nome + descrizione + CTA
 * ============================================================ */
.jhf-partners__main-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.jhf-partner-main-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 24px;
	padding: 40px 32px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
.jhf-partner-main-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 60px rgba(13, 29, 49, 0.12);
	border-color: transparent;
}
.jhf-partner-main__logo {
	width: 100%;
	min-height: 100px;
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 12px;
	display: grid;
	place-items: center;
	padding: 16px;
	overflow: hidden;
}
.jhf-partners-section--alt .jhf-partner-main__logo {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
}
.jhf-partner-main__logo-img {
	max-width: 100%;
	max-height: 80px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.jhf-partner-main__placeholder {
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: 24px;
	color: var(--jhf-primary);
	letter-spacing: -0.02em;
	line-height: 1.1;
	text-align: center;
}
.jhf-partner-main__name {
	font-family: var(--jhf-font-display);
	font-size: 17px;
	font-weight: 800;
	color: var(--jhf-primary);
	margin: 0;
	line-height: 1.25;
}
.jhf-partner-main__description {
	font-size: 14px;
	color: var(--jhf-text-muted, #5B6572);
	line-height: 1.55;
	margin: 0;
}
.jhf-partner-main__cta {
	color: var(--jhf-secondary);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1px;
	text-decoration: none;
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color .25s ease-out;
}
.jhf-partner-main__cta::after {
	content: "→";
	transition: transform .25s ease-out;
}
.jhf-partner-main-card:hover .jhf-partner-main__cta::after {
	transform: translateX(4px);
}
.jhf-partner-main__cta:hover {
	color: var(--jhf-secondary-soft, #FF3380);
}

/* ============================================================
 * Partner Base — grid 5 col compatta, aspect-ratio 16:9
 * ============================================================ */
.jhf-partners__base-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
}
.jhf-partner-base-cell {
	aspect-ratio: 16/9;
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 12px;
	display: grid;
	place-items: center;
	padding: 16px;
	text-decoration: none;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out, color .25s ease-out;
	color: var(--jhf-text-muted, #5B6572);
	overflow: hidden;
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-align: center;
}
.jhf-partner-base-cell:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	border-color: var(--jhf-primary);
	color: var(--jhf-primary);
}
.jhf-partner-base__logo {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.jhf-partner-base__name {
	line-height: 1.25;
}

/* ============================================================
 * Patrocini — cell orizzontali con formula + logo (nostra variante)
 * ============================================================ */
.jhf-partners__patrocini-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.jhf-patrocinio-cell {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 24px;
	align-items: center;
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	padding: 20px 28px;
	min-height: 120px;
	text-decoration: none;
	color: inherit;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
a.jhf-patrocinio-cell:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 24px rgba(13, 29, 49, 0.08);
	border-color: var(--jhf-text-muted, #768499);
}
.jhf-patrocinio__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	line-height: 1.3;
}
.jhf-patrocinio__formula {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--jhf-text-muted, #5B6572);
}
.jhf-patrocinio__name {
	font-family: var(--jhf-font-display);
	font-size: 1.125rem;
	font-weight: 800;
	color: var(--jhf-primary);
	letter-spacing: -0.005em;
}
.jhf-patrocinio__logo {
	max-height: 80px;
	max-width: 180px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	flex-shrink: 0;
}

/* Responsive */
@media (max-width: 960px) {
	.jhf-partners-section { padding: 64px 0; }
	.jhf-section-header { margin-bottom: 40px; }
	.jhf-partners__main-grid { grid-template-columns: 1fr; gap: 16px; }
	.jhf-partners__base-grid { grid-template-columns: repeat(3, 1fr); }
	.jhf-partners__patrocini-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.jhf-partners__base-grid { grid-template-columns: repeat(2, 1fr); }
	.jhf-patrocinio-cell { grid-template-columns: 1fr; gap: 12px; padding: 16px 20px; min-height: auto; }
	.jhf-patrocinio__logo { max-height: 60px; max-width: 140px; justify-self: start; }
	.jhf-partner-main-card { padding: 32px 24px; }
}

/* ============================================================
 * v1.3 — Single Event mockup-match
 * ============================================================ */

/* Hero foto+overlay magenta/navy */
.jhf-event-hero {
	position: relative;
	min-height: 620px;
	display: flex;
	align-items: flex-end;
	color: white;
	overflow: hidden;
	padding: 96px 0 64px;
	background: var(--jhf-primary);
}
.jhf-event-hero--photo::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--jhf-hero-image) center/cover no-repeat;
	opacity: 0.55;
	z-index: 0;
}
.jhf-event-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(236,0,95,0.78) 0%, rgba(13,29,49,0.85) 60%, rgba(13,29,49,0.95) 100%);
	z-index: 1;
}
.jhf-event-hero--gradient .jhf-event-hero__overlay {
	background:
		radial-gradient(ellipse at top right, rgba(236,0,95,0.35) 0%, transparent 60%),
		radial-gradient(ellipse at bottom left, rgba(236,0,95,0.15) 0%, transparent 50%),
		var(--jhf-primary);
}

/* Hero senza foto featured → più compatto, evita troppo dark space */
.jhf-event-hero--gradient {
	min-height: 540px;
	padding: 80px 0 56px;
}
.jhf-event-hero__inner { position: relative; z-index: 2; width: 100%; }

.jhf-event-hero__breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255,255,255,0.7);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 24px;
	text-decoration: none;
	transition: color .25s ease-out;
}
.jhf-event-hero__breadcrumb:hover { color: white; }

.jhf-event-hero__pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--jhf-secondary);
	color: white;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 24px;
}
.jhf-event-hero__pill--upcoming::before {
	content: '';
	width: 8px;
	height: 8px;
	background: white;
	border-radius: 50%;
	animation: jhf-pulse 2s infinite;
}
.jhf-event-hero__pill--past {
	background: rgba(255,255,255,0.15);
	border: 1px solid rgba(255,255,255,0.25);
}
@keyframes jhf-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.5; transform: scale(1.3); }
}

.jhf-event-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-bottom: 24px;
	color: rgba(255,255,255,0.85);
	font-size: 15px;
	font-weight: 600;
}
.jhf-event-hero__meta span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.jhf-event-hero__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 800;
	line-height: 1.15;
	color: white;
	margin: 0 0 24px;
	letter-spacing: -0.01em;
	max-width: 780px;
}

.jhf-event-hero__lead {
	font-size: 19px;
	color: rgba(255,255,255,0.85);
	line-height: 1.55;
	margin: 0 0 40px;
	max-width: 620px;
}

.jhf-event-hero__actions {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

/* Section title (refactor del titolo aziende) */
.jhf-event-section-title {
	font-family: var(--jhf-font-display);
	font-size: clamp(1.625rem, 3vw, 2.25rem);
	font-weight: 800;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-8, 2rem);
	letter-spacing: -0.01em;
	line-height: 1.15;
}

/* Final CTA magenta */
.jhf-event-final-cta {
	background: var(--jhf-secondary);
	color: white;
	padding: var(--jhf-space-16, 4rem) 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.jhf-event-final-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 30%, rgba(255,255,255,0.1) 0%, transparent 40%),
		radial-gradient(circle at 80% 70%, rgba(13,29,49,0.18) 0%, transparent 40%);
	pointer-events: none;
}
.jhf-event-final-cta__inner {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}
.jhf-event-final-cta__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 800;
	color: white;
	margin: 0 0 var(--jhf-space-4, 1rem);
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.jhf-event-final-cta__text {
	color: rgba(255,255,255,0.92);
	font-size: 1.1875rem;
	margin: 0 0 var(--jhf-space-6, 1.5rem);
}
.jhf-eyebrow--on-magenta { color: rgba(255,255,255,0.85) !important; }

/* Button white per CTA finale (su sfondo magenta) */
.jhf-button--white,
a.jhf-button--white:link,
a.jhf-button--white:visited,
button.jhf-button--white {
	background-color: #ffffff !important;
	color: var(--jhf-secondary) !important;
	border: 2px solid #ffffff !important;
}
.jhf-button--white:hover,
a.jhf-button--white:hover,
a.jhf-button--white:focus {
	background-color: var(--jhf-primary) !important;
	color: #ffffff !important;
	border-color: var(--jhf-primary) !important;
}

/* Ghost-light per hero su sfondo scuro */
.jhf-button--ghost-light,
a.jhf-button--ghost-light:link,
a.jhf-button--ghost-light:visited,
button.jhf-button--ghost-light {
	background-color: transparent !important;
	color: #ffffff !important;
	border: 2px solid rgba(255,255,255,0.4) !important;
}
.jhf-button--ghost-light:hover,
a.jhf-button--ghost-light:hover,
a.jhf-button--ghost-light:focus {
	background-color: rgba(255,255,255,0.08) !important;
	border-color: #ffffff !important;
	color: #ffffff !important;
}

/* Responsive */
@media (max-width: 960px) {
	.jhf-event-hero { min-height: 540px; padding: 64px 0; }
}
@media (max-width: 640px) {
	.jhf-event-hero { min-height: 480px; padding: 48px 0; }
	.jhf-event-hero__title { font-size: clamp(32px, 8vw, 44px); }
	.jhf-event-hero__lead { font-size: 17px; margin-bottom: 32px; }
	.jhf-event-hero__actions .jhf-button { width: 100%; justify-content: center; }
}

/* ============================================================
 * v1.3.3 — Override per conflitto con Elementor global kit
 * SOLO sui loghi dei patrocini istituzionali (devono restare
 * loghi "puri" senza ritagli). Gli sponsor Main/Base mantengono
 * il radius globale del kit perché vivono dentro card stilizzate.
 * ============================================================ */
.jhf-patrocinio-cell img,
.jhf-patrocinio__logo {
	border-radius: 0 !important;
}

/* v1.4.0 Programma block removed — superseded by v1.4.1+ below */

/* ============================================================
 * v1.4.1 — Programma / Timeline dell'evento (mockup match)
 *
 * Struttura:
 *   ol.jhf-programma__list (relative, max-w 880px)
 *     ::before  → linea verticale grigio chiaro a x=90px
 *   li.jhf-programma__item (grid 90px | 1fr, gap 16px)
 *     .jhf-programma__time (testo navy bold, allineato a destra)
 *     .jhf-programma__content (card bianca)
 *       ::before → pallino magenta che sporge a sinistra (-22px)
 *
 * Variante .jhf-programma__item--key: card sfondo navy, testo bianco.
 *
 * Tag in alto (.jhf-programma__tag) → categoria (Talk/Workshop/...)
 * Tag in basso (.jhf-programma__avail) → disponibilità (Su prenotazione...)
 * ============================================================ */

.jhf-programma {
	background: #ffffff;
	padding: 96px 0;
}

.jhf-programma__header {
	max-width: 720px;
	margin: 0 auto var(--jhf-space-10, 2.5rem);
	text-align: center;
}

.jhf-programma__title {
	color: var(--jhf-navy, #0D1D31);
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	line-height: 1.2;
	margin: var(--jhf-space-2, 0.5rem) 0 0;
}

.jhf-programma__intro {
	color: #4B5563;
	font-size: 1rem;
	line-height: 1.6;
	margin: var(--jhf-space-4, 1rem) auto 0;
	max-width: 640px;
}

.jhf-programma__list {
	list-style: none;
	max-width: 880px;
	margin: 0 auto;
	padding: 0;
	position: relative;
}

/* Linea verticale continua grigio chiaro */
.jhf-programma__list::before {
	content: "";
	position: absolute;
	left: 150px;
	top: 24px;
	bottom: 24px;
	width: 2px;
	background: #E5E7EB;
}

.jhf-programma__item {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 16px;
	padding: var(--jhf-space-4, 1rem) 0;
	position: relative;
	align-items: flex-start;
}

.jhf-programma__time {
	text-align: right;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 14px;
	font-weight: 800;
	color: var(--jhf-navy, #0D1D31);
	padding-top: 18px;
	padding-right: 14px;     /* respiro tra fine testo e marker pallino */
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.jhf-programma__content {
	background: white;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	padding: var(--jhf-space-5, 1.25rem) var(--jhf-space-6, 1.5rem);
	box-shadow: 0 2px 8px rgba(13, 29, 49, 0.04);
	position: relative;
}

/* Pallino marker che sporge a sinistra della card */
.jhf-programma__content::before {
	content: "";
	position: absolute;
	left: -22px;
	top: 24px;
	width: 14px;
	height: 14px;
	background: var(--jhf-magenta, #EC005F);
	border-radius: 50%;
	border: 3px solid white;
	box-shadow: 0 0 0 1px var(--jhf-magenta, #EC005F);
}

/* Tag categoria (sopra il titolo) — pill colorato per tipo */
.jhf-programma__tag {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(13, 29, 49, 0.08);
	color: var(--jhf-navy, #0D1D31);
	margin-bottom: var(--jhf-space-2, 0.5rem);
}
.jhf-programma__tag--talk,
.jhf-programma__tag--networking,
.jhf-programma__tag--cerimonia { background: rgba(236, 0, 95, 0.10); color: var(--jhf-magenta, #EC005F); }
.jhf-programma__tag--workshop,
.jhf-programma__tag--panel,
.jhf-programma__tag--q-a,
.jhf-programma__tag--qa { background: rgba(13, 29, 49, 0.08); color: var(--jhf-navy, #0D1D31); }
.jhf-programma__tag--pausa { background: rgba(140, 143, 148, 0.15); color: #5d6770; }

.jhf-programma__item-title {
	color: var(--jhf-navy, #0D1D31);
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 var(--jhf-space-2, 0.5rem);
}

.jhf-programma__desc {
	color: #4B5563;
	font-size: 0.9375rem;
	line-height: 1.55;
	margin: 0;
}

/* Tag disponibilità (sotto la descrizione) — pill rosa uniforme */
.jhf-programma__avail {
	display: inline-block;
	margin-top: var(--jhf-space-3, 0.75rem);
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-magenta, #EC005F);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
}

/* ============================================================
 * Variante is-key: card highlighted con sfondo navy
 * ============================================================ */
.jhf-programma__item--key .jhf-programma__content {
	background: var(--jhf-navy, #0D1D31);
	border-color: var(--jhf-navy, #0D1D31);
	color: white;
}
.jhf-programma__item--key .jhf-programma__content::before {
	background: white;
	box-shadow: 0 0 0 1px white;
}
.jhf-programma__item--key .jhf-programma__item-title {
	color: white;
}
.jhf-programma__item--key .jhf-programma__desc {
	color: rgba(255, 255, 255, 0.75);
}
.jhf-programma__item--key .jhf-programma__tag {
	background: rgba(255, 255, 255, 0.12);
	color: white;
}
.jhf-programma__item--key .jhf-programma__avail {
	background: rgba(255, 255, 255, 0.15);
	color: white;
}

/* ============================================================
 * Responsive: mobile collassa a single column con linea spostata
 * ============================================================ */
@media (max-width: 768px) {
	.jhf-programma { padding: var(--jhf-space-10, 2.5rem) 0; }

	.jhf-programma__list::before {
		left: 100px;
	}
	.jhf-programma__item {
		grid-template-columns: 100px 1fr;
		gap: 12px;
	}
	.jhf-programma__time {
		font-size: 12px;
		padding-top: 16px;
		padding-right: 10px;
	}
	.jhf-programma__content {
		padding: var(--jhf-space-4, 1rem) var(--jhf-space-5, 1.25rem);
	}
	.jhf-programma__content::before {
		left: -16px;
		width: 10px;
		height: 10px;
		top: 22px;
	}
}

@media (max-width: 480px) {
	.jhf-programma__item-title { font-size: 1rem; }
	.jhf-programma__desc { font-size: 0.875rem; }
}

/* ============================================================
 * v1.4.10 — Sezione "Cos'è questa edizione" (About) — mockup 1:1
 *
 * Riferimento: mockups/single-event.html righe 217-255, 847-865
 * ============================================================ */
.jhf-about-section {
	padding: 96px 0;
	background: #ffffff;
}

.jhf-about {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: center;
}
@media (min-width: 900px) {
	.jhf-about--with-image {
		grid-template-columns: 1fr 1fr;
		gap: 96px;
	}
	.jhf-about--full .jhf-about__text {
		max-width: 760px;
		margin: 0 auto;
	}
}

.jhf-about__image {
	border-radius: 24px;
	overflow: hidden;
	height: 480px;
	position: relative;
}
.jhf-about__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(45deg, rgba(13, 29, 49, 0.25), transparent);
	pointer-events: none;
}
.jhf-about__image-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 899px) {
	.jhf-about__image {
		height: 320px;
		order: -1;
	}
}

.jhf-about__text > .jhf-eyebrow {
	margin-bottom: 16px;
	display: inline-block;
}

.jhf-about__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 24px;
}

.jhf-about__body {
	color: var(--jhf-text);
	font-size: 17px;
	line-height: 1.65;
}
.jhf-about__body p {
	margin: 0 0 16px;
	color: inherit;
}
.jhf-about__body p:last-child { margin-bottom: 0; }

/* Lead — paragrafo descrittivo dedicato (mockup .lead riga 73):
   font-size 19px, line-height 1.6, max-width 640px,
   weight default (400), color body default (text-muted) */
.jhf-about__lead {
	font-size: 19px;
	line-height: 1.6;
	color: var(--jhf-text-muted, #5B6572);
	font-weight: 400;
	max-width: 640px;
	margin: 0 0 24px;
}

/* Highlight box — mockup spec esatto */
.jhf-about__highlight {
	background: var(--jhf-surface-alt, #F7F8FA);
	border-left: 4px solid var(--jhf-secondary);
	padding: 24px 40px;
	border-radius: 0 12px 12px 0;
	margin-top: 40px;
}
.jhf-about__highlight-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-secondary);
	margin-bottom: 6px;
}
.jhf-about__highlight p {
	color: var(--jhf-primary);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
}

@media (max-width: 640px) {
	.jhf-about-section { padding: 64px 0; }
	.jhf-about__title { font-size: clamp(28px, 6vw, 36px); margin-bottom: 16px; }
	.jhf-about__body { font-size: 16px; }
	.jhf-about__lead { font-size: 17px; }
	.jhf-about__highlight { padding: 20px 24px; margin-top: 28px; }
}

/* ============================================================
 * v1.4.9 — Company card (mockup match)
 *
 * Layout:
 *  - Header: logo (64x64) | badge "Fasce protette" (a destra)
 *  - Body: nome h3, sector eyebrow, excerpt, profili
 *  - Meta: positions count con strong magenta + stand
 *  - Footer: CTA "Scopri →" + button primary "Prenota colloquio"
 * ============================================================ */
.jhf-company-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
.jhf-company-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10);
	border-color: transparent;
}

.jhf-company-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.jhf-company-card__logo {
	width: 64px;
	height: 64px;
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 12px;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	overflow: hidden;
}
.jhf-company-card__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.jhf-company-card__logo--placeholder {
	color: var(--jhf-primary);
}
.jhf-company-card__logo--placeholder svg {
	width: 28px;
	height: 28px;
}

.jhf-company-card__protected-badge,
span.jhf-company-card__protected-badge {
	display: inline-block !important;
	background: rgba(236, 0, 95, 0.10) !important;
	color: var(--jhf-secondary) !important;
	font-family: var(--jhf-font-display, "Raleway"), system-ui, sans-serif !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	padding: 4px 10px !important;
	border: 0 !important;
	border-radius: 999px !important;
	flex-shrink: 0;
	white-space: nowrap;
	text-decoration: none !important;
}

.jhf-company-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.jhf-company-card__name {
	font-family: var(--jhf-font-display);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--jhf-primary);
	margin: 0;
}

.jhf-company-card__sector {
	display: inline-block;
	font-size: 13px;
	color: var(--jhf-text-muted, #5B6572);
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 600;
}

.jhf-company-card__excerpt {
	font-size: 14px;
	color: var(--jhf-text, #435469);
	line-height: 1.55;
	margin: 4px 0 0;
}

.jhf-company-card__profiles {
	font-size: 13px;
	color: var(--jhf-text, #435469);
	line-height: 1.5;
	margin: 4px 0 0;
	padding: 10px 12px;
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 8px;
}
.jhf-company-card__profiles-label {
	font-weight: 700;
	color: var(--jhf-primary);
	margin-right: 4px;
}

.jhf-company-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	padding-top: 12px;
	margin-top: auto;
	border-top: 1px solid var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-text, #435469);
	font-size: 14px;
	font-weight: 600;
}
.jhf-company-card__positions strong {
	color: var(--jhf-secondary);
	font-size: 18px;
	font-weight: 800;
	margin-right: 4px;
}
.jhf-company-card__booth {
	color: var(--jhf-text-muted, #5B6572);
	font-size: 13px;
}
.jhf-company-card__booth strong {
	color: var(--jhf-primary);
	font-weight: 800;
}

.jhf-company-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
	flex-wrap: wrap;
}
.jhf-company-card__cta {
	color: var(--jhf-secondary);
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color .25s ease-out;
}
.jhf-company-card__cta::after {
	content: "→";
	transition: transform .25s ease-out;
}
.jhf-company-card:hover .jhf-company-card__cta::after {
	transform: translateX(4px);
}
.jhf-company-card__cta:hover {
	color: var(--jhf-secondary-soft, #FF3380);
}

@media (max-width: 640px) {
	.jhf-company-card { padding: 20px; }
	.jhf-company-card__footer { flex-direction: column; align-items: stretch; }
	.jhf-company-card__footer .jhf-button { width: 100%; justify-content: center; }
	.jhf-company-card__cta { justify-content: center; }
}


/* ============================================================
 * v1.4.11 — Companies section + Filter pills (mockup match)
 *
 * Riferimento: mockups/single-event.html righe 280-385, 867-979
 * ============================================================ */
.jhf-companies-section {
	background: var(--jhf-surface-alt, #F7F8FA);
	padding: 96px 0;
}

/* Filter container — mockup .companies-filter (riga 257-271):
   bg white, padding 24px, gap 16px, radius 16px, border #E5E7EB, shadow soft */
.jhf-companies-filter {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	align-items: center;
	background: white;
	padding: 24px;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	margin-bottom: 64px;
}

/* Label "Filtra per:" — mockup .filter-label (riga 272-279) */
.jhf-companies-filter__label {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted, #5B6572);
	margin-right: 16px;
}

/* Pill base — mockup .filter-pill (riga 280-291).
   !important mirato per battere le regole .elementor-button-link / button[type] del tema. */
.jhf-companies-filter .jhf-filter-pill,
.jhf-companies-filter button.jhf-filter-pill {
	background: var(--jhf-surface-alt, #F7F8FA) !important;
	color: var(--jhf-primary) !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	font-family: var(--jhf-font-display, "Raleway"), system-ui, sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	cursor: pointer !important;
	outline: none !important;
	box-shadow: none !important;
	transition: background-color .25s ease-out, color .25s ease-out, border-color .25s ease-out !important;
}
.jhf-companies-filter .jhf-filter-pill:hover,
.jhf-companies-filter button.jhf-filter-pill:hover {
	background: var(--jhf-border, #E5E7EB) !important;
	color: var(--jhf-primary) !important;
	border-color: transparent !important;
	transform: none !important;
}
.jhf-companies-filter .jhf-filter-pill:focus-visible {
	outline: 2px solid var(--jhf-secondary) !important;
	outline-offset: 2px !important;
}

/* Active = navy fill */
.jhf-companies-filter .jhf-filter-pill.is-active,
.jhf-companies-filter button.jhf-filter-pill.is-active {
	background: var(--jhf-primary) !important;
	color: #ffffff !important;
	border-color: var(--jhf-primary) !important;
}

/* Active + protected = magenta fill (mockup .filter-pill.is-active.protected) */
.jhf-companies-filter .jhf-filter-pill--protected.is-active,
.jhf-companies-filter button.jhf-filter-pill--protected.is-active {
	background: var(--jhf-secondary) !important;
	color: #ffffff !important;
	border-color: var(--jhf-secondary) !important;
}

/* Card hidden state */
.jhf-company-card.is-hidden {
	display: none !important;
}

/* Companies grid: già definito altrove, verifica responsive */
.jhf-companies-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}

/* Logo placeholder con iniziali (mockup spec: "DL" "PA") */
.jhf-company-card__logo--placeholder span {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 20px;
	color: var(--jhf-primary);
	letter-spacing: -0.02em;
}

/* CTA "Vedi profilo →" mockup-spec */
.jhf-company-card__cta {
	color: var(--jhf-secondary);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color .25s ease-out;
	margin-top: 8px;
}
.jhf-company-card__cta::after {
	content: "→";
	transition: transform .25s ease-out;
}
.jhf-company-card:hover .jhf-company-card__cta::after {
	transform: translateX(4px);
}
.jhf-company-card__cta:hover {
	color: var(--jhf-secondary-soft, #FF3380);
}

/* Mobile */
@media (max-width: 768px) {
	.jhf-companies-section { padding: 64px 0; }
	.jhf-companies-filter { padding: 14px 16px; }
	.jhf-companies-filter__label { width: 100%; margin-bottom: 4px; }
}

/* ============================================================
 * v1.5.0 — Sezione « Dove ci troviamo » (Location) — mockup 1:1
 *
 * Riferimento: mockups/single-event.html righe 565-650, 1108-1151
 *
 * Layout:
 *  - Section bg white (alternanza: Patrocini surface-alt sopra → bianco qui → FAQ surface-alt sotto)
 *  - Grid 2-col stretch [info card] [map]
 *  - Info card: bg white, border, radius, shadow soft
 *  - Map: iframe se embed presente, altrimenti placeholder decorativo con pin animato
 * ============================================================ */
.jhf-location-section {
	background: #ffffff;
	padding: 96px 0;
}

.jhf-location-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: stretch;
}

/* ---- Info card ---- */
.jhf-location-info {
	background: white;
	border-radius: 24px;
	padding: 40px;
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	border: 1px solid var(--jhf-border, #E5E7EB);
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.jhf-location-info__name {
	font-family: var(--jhf-font-display);
	font-size: 28px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0;
}

.jhf-location-info__address {
	font-size: 17px;
	color: var(--jhf-text-muted, #5B6572);
	line-height: 1.5;
}

.jhf-location-info__features {
	display: flex;
	flex-direction: column;
	gap: 16px;
	border-top: 1px solid var(--jhf-border, #E5E7EB);
	padding-top: 24px;
}

.jhf-location-feature {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 15px;
	color: var(--jhf-text);
	line-height: 1.4;
}

.jhf-location-feature__icon {
	width: 32px;
	height: 32px;
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 14px;
	color: var(--jhf-secondary);
	flex-shrink: 0;
	line-height: 1;
}

.jhf-location-info__cta {
	margin-top: auto;
	padding-top: 8px;
}

/* ---- Map container ---- */
.jhf-location-map {
	border-radius: 24px;
	overflow: hidden;
	background: var(--jhf-surface-alt, #F7F8FA);
	min-height: 400px;
	position: relative;
	border: 1px solid var(--jhf-border, #E5E7EB);
}

.jhf-location-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 400px;
	border: 0;
}

/* Placeholder decorativo se nessun embed: gradient + grid + pin magenta */
.jhf-location-map__placeholder {
	width: 100%;
	height: 100%;
	min-height: 400px;
	background:
		linear-gradient(135deg, rgba(236, 0, 95, 0.06) 0%, transparent 50%),
		repeating-linear-gradient(0deg, rgba(13, 29, 49, 0.04) 0px, rgba(13, 29, 49, 0.04) 1px, transparent 1px, transparent 30px),
		repeating-linear-gradient(90deg, rgba(13, 29, 49, 0.04) 0px, rgba(13, 29, 49, 0.04) 1px, transparent 1px, transparent 30px),
		var(--jhf-surface-alt, #F7F8FA);
	display: grid;
	place-items: center;
}

.jhf-location-map__pin {
	width: 56px;
	height: 56px;
	background: var(--jhf-secondary);
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	display: grid;
	place-items: center;
	box-shadow: 0 8px 24px rgba(236, 0, 95, 0.4);
	position: relative;
	animation: jhf-pin-drop 1.5s ease-out;
}
/* Anello esterno pulsante (effetto radar/ping) */
.jhf-location-map__pin::after {
	content: "";
	position: absolute;
	top: -10px;
	left: -10px;
	right: -10px;
	bottom: -10px;
	border: 2px solid var(--jhf-secondary);
	border-radius: 50%;
	opacity: 0.4;
	animation: jhf-pin-ping 2s infinite;
}

/* Animazioni map pin (mockup riga 656-657) */
@keyframes jhf-pin-drop {
	from { transform: translateY(-30px) rotate(-45deg); opacity: 0; }
	to   { transform: translateY(0)     rotate(-45deg); opacity: 1; }
}
@keyframes jhf-pin-ping {
	0%   { transform: scale(0.8); opacity: 0.6; }
	100% { transform: scale(2);   opacity: 0;   }
}

/* Riduce le animazioni per chi ha prefers-reduced-motion attivo */
@media (prefers-reduced-motion: reduce) {
	.jhf-location-map__pin,
	.jhf-location-map__pin::after {
		animation: none;
	}
}

/* Responsive */
@media (max-width: 960px) {
	.jhf-location-section { padding: 64px 0; }
	.jhf-location-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.jhf-location-info { padding: 32px; }
	.jhf-location-map,
	.jhf-location-map__placeholder,
	.jhf-location-map iframe { min-height: 320px; }
}

@media (max-width: 640px) {
	.jhf-location-info { padding: 24px; }
	.jhf-location-info__name { font-size: 24px; }
	.jhf-location-info__address { font-size: 16px; }
	.jhf-location-feature { font-size: 14px; gap: 12px; }
}

/* ============================================================
 * v1.6.0 — Sezione « Domande frequenti » (FAQ) — mockup 1:1
 *
 * Riferimento: mockups/single-event.html righe 660-688, 1152-1187
 *
 * Layout:
 *  - Section bg surface-alt (alternanza)
 *  - Wrapper centrato max-width 820px
 *  - Accordion: ogni .jhf-faq-item è bg white con border;
 *    quando .is-open → border magenta + box-shadow soft.
 *  - Question button: full-width, navy bold + toggle "+" in cerchio bg-alt
 *  - Toggle aperto: cerchio magenta + ruota 45° (il "+" diventa "×")
 *  - Answer: hidden by default → display block quando .is-open
 * ============================================================ */
.jhf-faq-section {
	background: var(--jhf-surface-alt, #F7F8FA);
	padding: 96px 0;
}

.jhf-faq-wrapper {
	max-width: 820px;
}

.jhf-faq-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.jhf-faq-item {
	background: #ffffff;
	border-radius: 12px;
	border: 1px solid var(--jhf-border, #E5E7EB);
	overflow: hidden;
	transition: border-color .25s ease-out, box-shadow .25s ease-out;
}
.jhf-faq-item.is-open {
	border-color: var(--jhf-secondary);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
}

/* Question button — targeted !important per battere Elementor Theme Style → Buttons / Hello kit.
   Stessa strategia dei filter pills v1.4.13: !important solo sulle proprietà che il tema sovrascrive. */
.jhf-faq-list .jhf-faq-question,
.jhf-faq-list button.jhf-faq-question {
	width: 100%;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	padding: 24px 40px !important;
	text-align: left;
	text-decoration: none !important;
	font-family: var(--jhf-font-display) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	color: var(--jhf-primary) !important;
	line-height: 1.35;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	transition: none;
}
.jhf-faq-list .jhf-faq-question:hover,
.jhf-faq-list button.jhf-faq-question:hover {
	background: transparent !important;
	color: var(--jhf-primary) !important;
	transform: none !important;
	box-shadow: none !important;
}
.jhf-faq-list .jhf-faq-question:focus-visible {
	outline: 2px solid var(--jhf-secondary) !important;
	outline-offset: -2px !important;
}

.jhf-faq-question__text { flex: 1; }

.jhf-faq-toggle {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-primary);
	display: grid;
	place-items: center;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	flex-shrink: 0;
	transition: background-color .25s ease-out, color .25s ease-out, transform .25s ease-out;
}
.jhf-faq-item.is-open .jhf-faq-toggle {
	background: var(--jhf-secondary);
	color: #ffffff;
	transform: rotate(45deg);
}

.jhf-faq-answer {
	padding: 0 40px 24px;
	color: var(--jhf-text-muted, #5B6572);
	font-size: 15px;
	line-height: 1.7;
	display: none;
}
.jhf-faq-item.is-open .jhf-faq-answer {
	display: block;
}

/* Responsive */
@media (max-width: 640px) {
	.jhf-faq-section { padding: 64px 0; }
	.jhf-faq-question { padding: 20px 24px; font-size: 16px; gap: 16px; }
	.jhf-faq-answer { padding: 0 24px 20px; font-size: 14px; }
}

/* prefers-reduced-motion: nessun transition */
@media (prefers-reduced-motion: reduce) {
	.jhf-faq-item,
	.jhf-faq-toggle {
		transition: none;
	}
}

/* ============================================================
 * v1.7.0 — Single Azienda (Hero · Stat · About · Eventi · Final CTA)
 *
 * Riferimento: mockups/single-azienda.html
 * ============================================================ */

/* ============================================================
 * Hero azienda — mockup riga 92-188
 * ============================================================ */
.jhf-company-hero {
	background: var(--jhf-primary);
	color: white;
	padding: 96px 0 64px;
	position: relative;
	overflow: hidden;
}
.jhf-company-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.15) 0%, transparent 55%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.06) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-company-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 64px;
	align-items: center;
}
.jhf-company-hero__breadcrumb {
	grid-column: 1 / -1;
	display: inline-flex;
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 24px;
	text-decoration: none;
	transition: color .25s ease-out;
}
.jhf-company-hero__breadcrumb:hover { color: white; }

.jhf-company-hero__logo {
	width: 140px;
	height: 140px;
	background: white;
	border-radius: 24px;
	display: grid;
	place-items: center;
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: 48px;
	color: var(--jhf-primary);
	letter-spacing: -0.04em;
	box-shadow: 0 20px 60px rgba(13, 29, 49, 0.18);
	flex-shrink: 0;
	overflow: hidden;
	padding: 12px;
}
.jhf-company-hero__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.jhf-company-hero__content {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.jhf-company-hero__badges {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.jhf-badge-sector {
	display: inline-block;
	font-size: 12px;
	color: white;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 700;
	padding: 6px 14px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
}
.jhf-badge-protected {
	background: var(--jhf-secondary);
	color: white;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 6px 14px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jhf-badge-protected::before {
	content: "";
	width: 6px;
	height: 6px;
	background: white;
	border-radius: 50%;
}

.jhf-company-hero__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: white;
	margin: 0 0 8px;
}
.jhf-company-hero__tagline {
	font-size: 18px;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.55;
	margin: 0 0 8px;
	max-width: 640px;
}

.jhf-company-hero__actions {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 16px;
}
.jhf-company-hero__icon-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	border: 2px solid rgba(255, 255, 255, 0.2);
	color: white;
	font-family: var(--jhf-font-display);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	transition: background-color .25s ease-out, border-color .25s ease-out;
}
.jhf-company-hero__icon-btn:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: white;
	color: white;
}
.jhf-company-hero__icon-btn svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* ============================================================
 * Stat strip azienda — mockup riga 207-235
 * Differente dal stat-strip evento: bg primary-soft, numeri magenta più piccoli (clamp 32-44).
 * ============================================================ */
.jhf-company-stat-strip {
	background: var(--jhf-primary-soft, #1a2d4a);
	color: white;
	padding: 40px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.jhf-company-stat-strip__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	text-align: center;
}
.jhf-company-stat-strip__grid .jhf-stat__num {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 44px);
	font-weight: 900;
	color: var(--jhf-secondary);
	letter-spacing: -0.02em;
	line-height: 1;
	margin-bottom: 4px;
	display: block;
	font-variant-numeric: tabular-nums;
}
.jhf-company-stat-strip__grid .jhf-stat__label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* ============================================================
 * Chi siamo azienda — mockup riga 241-261
 * Grid 2-col [text 1.3fr] [image 1fr 4:5]
 * ============================================================ */
.jhf-company-about-section {
	padding: 96px 0;
	background: #ffffff;
}
.jhf-company-about {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: start;
}
@media (min-width: 900px) {
	.jhf-company-about--with-image {
		grid-template-columns: 1.3fr 1fr;
		gap: 96px;
	}
	.jhf-company-about--full .jhf-company-about__text {
		max-width: 760px;
	}
}

.jhf-company-about__text > .jhf-eyebrow {
	display: inline-block;
	margin-bottom: 16px;
}
.jhf-company-about__body {
	color: var(--jhf-text);
	font-size: 17px;
	line-height: 1.65;
}
.jhf-company-about__body h2,
.jhf-company-about__body h3 {
	font-family: var(--jhf-font-display);
	color: var(--jhf-primary);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 24px;
}
.jhf-company-about__body h2 { font-size: clamp(32px, 4vw, 48px); }
.jhf-company-about__body h3 { font-size: 22px; }
.jhf-company-about__body p {
	margin: 0 0 16px;
	color: inherit;
}
.jhf-company-about__body p:last-child { margin-bottom: 0; }

.jhf-company-about__image {
	border-radius: 24px;
	overflow: hidden;
	aspect-ratio: 4/5;
	position: relative;
}
.jhf-company-about__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(45deg, rgba(13, 29, 49, 0.2), transparent);
	pointer-events: none;
}
.jhf-company-about__image-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 899px) {
	.jhf-company-about__image {
		aspect-ratio: 16/9;
		order: -1;
	}
}

/* ============================================================
 * Section header variant left-aligned (mockup-style per "Eventi" / "Profili")
 * ============================================================ */
.jhf-section-header--left {
	text-align: left;
	max-width: none;
	margin: 0 auto 64px;
}

/* ============================================================
 * Eventi a cui partecipa azienda — mockup riga 441-477
 * Grid auto-fit di event-mini-card.
 * ============================================================ */
.jhf-company-events-section {
	background: var(--jhf-surface-alt, #F7F8FA);
	padding: 96px 0;
}
.jhf-company-events__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 24px;
}
.jhf-event-mini-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	padding: 24px 32px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
.jhf-event-mini-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	border-color: transparent;
}
.jhf-event-mini-card--future {
	border-color: var(--jhf-secondary);
	border-width: 2px;
}
.jhf-event-mini__status {
	align-self: flex-start;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 4px 10px;
	border-radius: 999px;
	margin-bottom: 8px;
}
.jhf-event-mini__status--future {
	background: var(--jhf-primary);
	color: white;
}
.jhf-event-mini__status--past {
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-text-muted, #5B6572);
}
.jhf-event-mini__title {
	font-family: var(--jhf-font-display);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--jhf-primary);
	margin: 0 0 2px;
}
.jhf-event-mini__meta {
	font-size: 14px;
	color: var(--jhf-text-muted, #5B6572);
	font-weight: 600;
}
.jhf-event-mini__actions {
	margin-top: 16px;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
/* Button --sm: definizione unica (vedi block legacy sopra con !important) */

/* ============================================================
 * Final CTA azienda — magenta full-width
 * ============================================================ */
.jhf-company-final-cta {
	background: var(--jhf-secondary);
	color: white;
	padding: 96px 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.jhf-company-final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.1) 0%, transparent 40%),
		radial-gradient(circle at 80% 70%, rgba(13, 29, 49, 0.15) 0%, transparent 40%);
	pointer-events: none;
}
.jhf-company-final-cta__inner {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}
.jhf-company-final-cta__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: white;
	margin: 0 0 24px;
}
.jhf-company-final-cta__text {
	color: rgba(255, 255, 255, 0.9);
	font-size: 19px;
	line-height: 1.55;
	margin: 0 0 40px;
}

/* ============================================================
 * Responsive (≤960 e ≤640)
 * ============================================================ */
@media (max-width: 960px) {
	.jhf-company-hero { padding: 64px 0 48px; }
	.jhf-company-hero__inner { grid-template-columns: 1fr; gap: 24px; }
	.jhf-company-hero__logo { width: 110px; height: 110px; font-size: 38px; }
	.jhf-company-stat-strip__grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
	.jhf-company-about-section { padding: 64px 0; }
	.jhf-company-events-section { padding: 64px 0; }
	.jhf-company-final-cta { padding: 64px 0; }
}
@media (max-width: 640px) {
	.jhf-company-hero__title { font-size: clamp(32px, 8vw, 44px); }
	.jhf-company-hero__tagline { font-size: 17px; }
	.jhf-company-hero__icon-btn { width: 100%; justify-content: center; }
	.jhf-company-stat-strip__grid { grid-template-columns: repeat(2, 1fr); }
	.jhf-company-about__body { font-size: 16px; }
	.jhf-event-mini-card { padding: 20px 24px; }
	.jhf-event-mini__actions .jhf-button { flex: 1; justify-content: center; }
	.jhf-company-final-cta__title { font-size: clamp(28px, 6vw, 36px); }
	.jhf-company-final-cta__text { font-size: 17px; margin-bottom: 32px; }
}

/* ============================================================
 * v1.7.1 — Posizioni aperte azienda (mockup riga 264-407)
 *
 * Accordion list di posizioni.
 * Section bg = surface-alt (alternanza con About bianco sopra e Profili bianco sotto).
 * ============================================================ */
.jhf-company-positions-section {
	background: var(--jhf-surface-alt, #F7F8FA);
	padding: 96px 0;
}

.jhf-company-positions__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 64px;
	gap: 24px;
	flex-wrap: wrap;
}
.jhf-company-positions__header-text {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.jhf-company-positions__header-text .jhf-eyebrow {
	margin: 0;
	display: inline-block;
}
.jhf-company-positions__header .jhf-section-header__title {
	margin: 0;
}
.jhf-company-positions__count {
	background: var(--jhf-secondary);
	color: white;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 8px 16px;
	border-radius: 999px;
}

.jhf-company-positions__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ===== Item / Summary ===== */
.jhf-position-item {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	overflow: hidden;
	transition: border-color .25s ease-out, box-shadow .25s ease-out;
}
.jhf-position-item:hover {
	border-color: var(--jhf-secondary);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
}
.jhf-position-item.is-open {
	border-color: var(--jhf-secondary);
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10);
}

/* Summary button — targeted !important per battere Elementor Theme Style → Buttons
   (stesso pattern FAQ question button v1.6.1). */
.jhf-company-positions__list .jhf-position-summary,
.jhf-company-positions__list button.jhf-position-summary {
	width: 100%;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	padding: 24px 40px !important;
	text-align: left;
	text-decoration: none !important;
	font-family: var(--jhf-font-display) !important;
	color: var(--jhf-primary) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 24px;
	align-items: center;
	transition: none;
}
.jhf-company-positions__list .jhf-position-summary:hover,
.jhf-company-positions__list button.jhf-position-summary:hover {
	background: transparent !important;
	color: var(--jhf-primary) !important;
	transform: none !important;
	box-shadow: none !important;
}
.jhf-company-positions__list .jhf-position-summary:focus-visible {
	outline: 2px solid var(--jhf-secondary) !important;
	outline-offset: -2px !important;
}

.jhf-position-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.jhf-position-title {
	font-size: 19px;
	font-weight: 800;
	color: var(--jhf-primary);
	line-height: 1.3;
}
.jhf-position-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	font-size: 13px;
	color: var(--jhf-text-muted, #5B6572);
	font-weight: 600;
}
.jhf-position-meta span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.jhf-position-spots {
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-primary);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 6px 14px;
	border-radius: 999px;
	white-space: nowrap;
}
.jhf-position-spots strong {
	color: var(--jhf-secondary);
	font-size: 14px;
	margin-right: 4px;
}
.jhf-position-spots.is-protected {
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-secondary);
}
.jhf-position-spots.is-protected strong {
	color: var(--jhf-secondary);
}

.jhf-position-toggle {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--jhf-surface-alt, #F7F8FA);
	display: grid;
	place-items: center;
	font-size: 18px;
	font-weight: 700;
	color: var(--jhf-primary);
	line-height: 1;
	transition: background-color .25s ease-out, color .25s ease-out, transform .25s ease-out;
}
.jhf-position-item.is-open .jhf-position-toggle {
	background: var(--jhf-secondary);
	color: white;
	transform: rotate(45deg);
}

/* ===== Details espansi ===== */
.jhf-position-details {
	display: none;
	padding: 0 40px 24px;
	border-top: 1px solid var(--jhf-border, #E5E7EB);
}
.jhf-position-item.is-open .jhf-position-details {
	display: block;
	padding-top: 24px;
	margin-top: 8px;
}

.jhf-position-detail-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-bottom: 24px;
}
@media (max-width: 768px) {
	.jhf-position-detail-grid { grid-template-columns: 1fr; gap: 24px; }
}

.jhf-detail-block h4 {
	font-family: var(--jhf-font-display);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-secondary);
	margin: 0 0 16px;
	font-weight: 700;
}
.jhf-detail-block ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0;
	margin: 0;
}
.jhf-detail-block ul li {
	position: relative;
	padding-left: 22px;
	font-size: 15px;
	color: var(--jhf-text-muted, #5B6572);
	line-height: 1.55;
}
.jhf-detail-block ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--jhf-secondary);
}

/* CTA row appare in fondo ai details */
.jhf-position-cta-row {
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 12px;
	padding: 20px 32px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}
.jhf-position-cta-row p {
	margin: 0;
	font-size: 14px;
	color: var(--jhf-text);
	font-weight: 600;
}
.jhf-position-cta-row p strong {
	color: var(--jhf-primary);
}

/* Responsive */
@media (max-width: 768px) {
	.jhf-company-positions-section { padding: 64px 0; }
	.jhf-company-positions__header { margin-bottom: 40px; align-items: flex-start; flex-direction: column; }
	.jhf-position-summary { padding: 20px 24px; grid-template-columns: 1fr; gap: 12px; }
	.jhf-position-details { padding: 0 24px 20px; }
	.jhf-position-item.is-open .jhf-position-details { padding-top: 20px; }
	.jhf-position-cta-row { padding: 16px 20px; flex-direction: column; align-items: stretch; }
	.jhf-position-cta-row .jhf-button { width: 100%; justify-content: center; }
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.jhf-position-item,
	.jhf-position-toggle {
		transition: none;
	}
}

/* ============================================================
 * v1.7.4 — Profili ricercati / Competenze (mockup riga 419-440)
 *
 * Section bg white (alternanza con Positions surface-alt sopra,
 * Events surface-alt sotto).
 * Section header LEFT-aligned.
 * Grid auto-fit di card categoria + skill tags pill.
 * ============================================================ */
.jhf-company-profiles-section {
	background: #ffffff;
	padding: 96px 0;
}

.jhf-company-profiles__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
	margin-top: 0;
}

.jhf-profile-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	padding: 24px;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
.jhf-profile-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	border-color: transparent;
}

.jhf-profile-card__title {
	font-family: var(--jhf-font-display);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--jhf-primary);
	margin: 0 0 16px;
}

.jhf-skill-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.jhf-skill-tag {
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-text);
	font-size: 12px;
	font-weight: 600;
	padding: 5px 12px;
	border-radius: 999px;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.jhf-company-profiles-section { padding: 64px 0; }
	.jhf-profile-card { padding: 20px; }
}

/* ============================================================
 * v1.7.5 — System pages (404, post-register, account-deleted)
 *
 * Riferimento: mockups/system-pages.html righe 108-247
 *
 * Card centrata bianca su bg surface-alt, icona circolare in alto,
 * eyebrow + h1 + lead + (steps | actions | suggestions).
 * ============================================================ */
.jhf-system-page-section {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 96px 16px;
	background: var(--jhf-surface-alt, #F7F8FA);
}

.jhf-system-card {
	background: white;
	border-radius: 24px;
	border: 1px solid var(--jhf-border, #E5E7EB);
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	padding: 80px 64px;
	max-width: 640px;
	width: 100%;
	text-align: center;
}

/* Icona circolare */
.jhf-system-card__icon {
	margin: 0 auto 40px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	line-height: 1;
}
.jhf-system-card__icon--404 {
	background: rgba(245, 158, 11, 0.10);
	color: #f59e0b;
	font-family: var(--jhf-font-display);
	font-size: 48px;
	font-weight: 900;
	letter-spacing: -0.02em;
}
.jhf-system-card__icon--mail {
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-secondary);
}
.jhf-system-card__icon--mail svg {
	width: 44px;
	height: 44px;
}
.jhf-system-card__icon--wave {
	background: rgba(13, 29, 49, 0.05);
	color: var(--jhf-primary);
	font-size: 48px;
}

.jhf-system-card .jhf-eyebrow {
	margin-bottom: 16px;
	display: inline-block;
}

.jhf-system-card__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 16px;
}

.jhf-system-card__lead,
.jhf-system-card__paragraph {
	color: var(--jhf-text-muted, #5B6572);
	font-size: 17px;
	line-height: 1.6;
	max-width: 480px;
	margin: 0 auto 24px;
}

/* Email highlight (per post-register) */
.jhf-system-page__email-highlight {
	display: inline-block;
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-primary);
	font-weight: 800;
	padding: 4px 12px;
	border-radius: 999px;
	font-family: monospace;
	font-size: 15px;
	margin: 0 4px;
}

/* Steps (post-register) */
.jhf-system-card__steps {
	list-style: none;
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 16px;
	padding: 24px;
	margin: 16px auto 24px;
	max-width: 480px;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.jhf-system-card__step {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 8px 0;
}
.jhf-system-card__step-num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jhf-secondary);
	color: white;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: 13px;
	flex-shrink: 0;
}
.jhf-system-card__step-text {
	font-size: 14px;
	color: var(--jhf-text);
	line-height: 1.55;
	padding-top: 4px;
}
.jhf-system-card__step-text strong {
	color: var(--jhf-primary);
	font-weight: 700;
}

.jhf-system-card__resend {
	margin: 16px 0 0;
	font-size: 13px;
	color: var(--jhf-text-muted, #5B6572);
}
.jhf-system-card__resend a {
	color: var(--jhf-secondary);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Actions */
.jhf-system-card__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 8px;
}

/* Suggestions box */
.jhf-system-card__suggestions {
	background: var(--jhf-surface-alt, #F7F8FA);
	border-radius: 16px;
	padding: 24px 32px;
	margin-top: 40px;
	text-align: left;
}
.jhf-system-card__suggestions h3 {
	font-family: var(--jhf-font-display);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted, #5B6572);
	margin: 0 0 16px;
}
.jhf-system-card__suggestions ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 0;
	margin: 0;
}
.jhf-system-card__suggestions ul li {
	font-size: 14px;
	color: var(--jhf-text);
}
.jhf-system-card__suggestions ul li a {
	color: var(--jhf-secondary);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Responsive */
@media (max-width: 640px) {
	.jhf-system-page-section { padding: 64px 16px; }
	.jhf-system-card { padding: 48px 24px; }
	.jhf-system-card__icon { width: 80px; height: 80px; }
	.jhf-system-card__icon--404,
	.jhf-system-card__icon--wave { font-size: 36px; }
	.jhf-system-card__suggestions { padding: 20px; }
	.jhf-system-card__actions .jhf-button { width: 100%; justify-content: center; }
}


/* v1.7.7 — 404 canvas standalone (no theme header/footer) */
body.jhf-system-page--canvas {
	margin: 0;
	padding: 0;
	background: var(--jhf-surface-alt, #F7F8FA);
	min-height: 100vh;
	font-family: var(--jhf-font-display, "Raleway"), system-ui, sans-serif;
	color: var(--jhf-text);
}
body.jhf-system-page--canvas .jhf-system-page-section {
	min-height: 100vh;
}

/* ============================================================
 * v1.7.8 — Site Header brandizzato JHF + logo scroll-resize
 *
 * Riferimento: mockups/home.html righe 116-171
 *
 * Comportamento scroll:
 *  - Stato top (body senza .jhf-scrolled): logo grande 80px, no testo
 *  - Stato scrolled (body.jhf-scrolled): logo 36px + testo fade-in
 * ============================================================ */
.jhf-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: box-shadow .25s ease-out, border-color .25s ease-out, padding .3s ease-out;
}
body.jhf-scrolled .jhf-site-header {
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
	border-bottom-color: var(--jhf-border, #E5E7EB);
}

.jhf-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	transition: padding .3s ease-out;
}
body.jhf-scrolled .jhf-site-header__inner {
	padding: 10px 0;
}

/* Logo */
.jhf-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--jhf-primary);
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: 20px;
	letter-spacing: -0.02em;
	line-height: 1;
	text-decoration: none;
	transition: opacity .25s ease-out;
}
.jhf-logo:hover { opacity: 0.78; }

.jhf-logo__mark {
	height: 80px;
	width: auto;
	display: block;
	flex-shrink: 0;
	transition: height .3s ease-out, transform .25s ease-out;
}
/* v1.7.17: rotate hover rimosso su richiesta */

body.jhf-scrolled .jhf-logo__mark {
	height: 40px;
}

.jhf-logo__text {
	opacity: 0;
	max-width: 0;
	overflow: hidden;
	white-space: nowrap;
	transition: opacity .3s ease-out, max-width .3s ease-out;
}
body.jhf-scrolled .jhf-logo__text {
	opacity: 1;
	max-width: 300px;
}

.jhf-logo__placeholder {
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: 36px;
	color: var(--jhf-primary);
	letter-spacing: -0.04em;
}
body.jhf-scrolled .jhf-logo__placeholder { font-size: 18px; }

/* Nav */
.jhf-main-nav {
	display: flex;
	align-items: center;
	gap: 32px;
}
.jhf-main-nav__list {
	list-style: none;
	display: flex;
	gap: 28px;
	margin: 0;
	padding: 0;
}
.jhf-main-nav__list a,
.jhf-main-nav a {
	font-size: 15px;
	font-weight: 600;
	color: var(--jhf-primary);
	text-decoration: none;
	transition: color .25s ease-out;
}
.jhf-main-nav__list a:hover,
.jhf-main-nav a:hover { color: var(--jhf-secondary); }
.jhf-main-nav__list .current-menu-item > a,
.jhf-main-nav__list .current_page_item > a { color: var(--jhf-secondary); }

.jhf-nav-cta {
	padding: 10px 22px;
	background: var(--jhf-primary);
	color: white !important;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .25s ease-out;
}
.jhf-nav-cta:hover { background: var(--jhf-secondary); }

/* Mobile menu button — !important per battere Elementor Theme Style → Buttons */
.jhf-mobile-menu-btn,
.jhf-site-header button.jhf-mobile-menu-btn {
	display: none !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 8px !important;
	cursor: pointer;
	color: var(--jhf-primary) !important;
	line-height: 0;
	outline: 0 !important;
}

/* Mobile */
@media (max-width: 900px) {
	.jhf-main-nav__list,
	.jhf-nav-cta {
		display: none;
	}
	.jhf-mobile-menu-btn,
	.jhf-site-header button.jhf-mobile-menu-btn,
	button[class*="jhf-mobile-menu-btn"] { display: inline-flex !important; }
	.jhf-main-nav.is-open .jhf-main-nav__list {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: white;
		padding: 16px 24px;
		gap: 12px;
		box-shadow: 0 4px 20px rgba(13, 29, 49, 0.08);
		border-bottom: 1px solid var(--jhf-border, #E5E7EB);
	}
	.jhf-main-nav.is-open .jhf-nav-cta {
		display: inline-flex;
		justify-content: center;
	}
	.jhf-logo__mark { height: 50px; }
	body.jhf-scrolled .jhf-logo__mark { height: 36px; }
}

/* ============================================================
 * v1.7.8 — Site Footer brandizzato JHF
 *
 * Riferimento: mockups/home.html righe 627-690, 1012-1064
 * ============================================================ */
.jhf-site-footer {
	background: var(--jhf-primary);
	color: var(--jhf-text-on-dark, #E8ECF1);
	padding: 96px 0 24px;
}
.jhf-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
	gap: 64px;
	margin-bottom: 64px;
}
.jhf-footer-col h4 {
	color: white;
	font-family: var(--jhf-font-display);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2.5px;
	margin: 0 0 24px;
}
.jhf-footer-col__list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
}
.jhf-footer-col__list a,
.jhf-footer-col a {
	color: rgba(255, 255, 255, 0.72);
	font-size: 15px;
	text-decoration: none;
	transition: color .25s ease-out;
}
.jhf-footer-col__list a:hover,
.jhf-footer-col a:hover { color: white; }

/* Brand col */
.jhf-footer-brand .jhf-logo {
	color: white;
	margin-bottom: 24px;
}
.jhf-footer-brand .jhf-logo__mark {
	height: 48px;
}
.jhf-footer-brand .jhf-logo__text {
	opacity: 1;
	max-width: none;
	overflow: visible;
	color: white;
}
.jhf-footer-brand__tagline {
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	margin: 0 0 16px;
	line-height: 1.5;
}
.jhf-footer-brand__promosso {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	opacity: 0.6;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
}

/* Social */
.jhf-social-row {
	display: flex;
	gap: 10px;
	margin-top: 24px;
}
.jhf-social-link {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: white;
	display: grid;
	place-items: center;
	text-decoration: none;
	transition: background-color .25s ease-out, transform .25s ease-out;
}
.jhf-social-link:hover {
	background: var(--jhf-secondary);
	transform: translateY(-2px);
	color: white;
}
.jhf-social-link svg { display: block; }

/* Footer bottom */
.jhf-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}
.jhf-footer-bottom p {
	color: rgba(255, 255, 255, 0.72);
	font-size: 13px;
	margin: 0;
}
.jhf-footer-legal {
	display: flex;
	gap: 24px;
}
.jhf-footer-legal a {
	color: rgba(255, 255, 255, 0.72);
	font-size: 13px;
	text-decoration: none;
}
.jhf-footer-legal a:hover { color: white; }

/* Responsive footer */
@media (max-width: 960px) {
	.jhf-site-footer { padding: 64px 0 24px; }
	.jhf-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 40px; }
}
@media (max-width: 640px) {
	.jhf-footer-grid { grid-template-columns: 1fr; }
	.jhf-footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.jhf-site-header,
	.jhf-site-header__inner,
	.jhf-logo__mark,
	.jhf-logo__text { transition: none; }
}

/* ============================================================
 * v1.7.12 — Reset Elementor wrapper su header/footer JHF
 *
 * Quando il nostro header/footer è inserito in un widget HTML
 * dentro Elementor Theme Builder, gli Elementor wrapper
 * (section, container, column, widget-html, e-con) possono
 * applicare bordi, padding, margin, shadow. Questo li azzera.
 * ============================================================ */

/* Reset bordi/shadow su Elementor wrappers che CONTENGONO il nostro header */
.elementor-section:has(.jhf-site-header),
.elementor-container:has(.jhf-site-header),
.elementor-column:has(.jhf-site-header),
.elementor-widget-html:has(.jhf-site-header),
.e-con:has(.jhf-site-header),
.e-con-inner:has(.jhf-site-header) {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

/* Stessa cosa per il footer */
.elementor-section:has(.jhf-site-footer),
.elementor-container:has(.jhf-site-footer),
.elementor-column:has(.jhf-site-footer),
.elementor-widget-html:has(.jhf-site-footer),
.e-con:has(.jhf-site-footer),
.e-con-inner:has(.jhf-site-footer) {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

/* Fallback per browser senza :has() (es. Firefox <121, Safari <15.4) —
   selettori parent-aware con classe specifica sul widget HTML.
   Se Elementor TB ha widget con id specifico, useremo questi selettori. */
.elementor-widget-html .jhf-site-header,
.elementor-widget-html .jhf-site-footer {
	margin: 0;
}


/* ============================================================
 * v1.7.16 — Logo size override per battere .elementor img
 *
 * Elementor inietta `.elementor img { height: auto; max-width: 100% }`
 * che batte la mia regola .jhf-logo__mark per specificità (0,1,1 > 0,1,0).
 * Override con specificità superiore + !important sui valori critici.
 * ============================================================ */
.jhf-site-header .jhf-logo .jhf-logo__mark,
.jhf-site-header .jhf-logo img.jhf-logo__mark,
.elementor .jhf-site-header .jhf-logo__mark {
	height: 80px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
}

body.jhf-scrolled .jhf-site-header .jhf-logo .jhf-logo__mark,
body.jhf-scrolled .jhf-site-header .jhf-logo img.jhf-logo__mark,
body.jhf-scrolled .elementor .jhf-site-header .jhf-logo__mark {
	height: 40px !important;
}

/* Footer logo: 48px fisso */
.jhf-site-footer .jhf-footer-brand .jhf-logo__mark,
.jhf-site-footer .jhf-footer-brand img.jhf-logo__mark,
.elementor .jhf-site-footer .jhf-logo__mark {
	height: 48px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
}

/* Mobile breakpoint per logo header */
@media (max-width: 900px) {
	.jhf-site-header .jhf-logo .jhf-logo__mark,
	.jhf-site-header .jhf-logo img.jhf-logo__mark,
	.elementor .jhf-site-header .jhf-logo__mark {
		height: 50px !important;
	}
	body.jhf-scrolled .jhf-site-header .jhf-logo .jhf-logo__mark,
	body.jhf-scrolled .jhf-site-header .jhf-logo img.jhf-logo__mark,
	body.jhf-scrolled .elementor .jhf-site-header .jhf-logo__mark {
		height: 36px !important;
	}
}


/* ============================================================
 * v1.7.17 — Fix sticky header dentro Elementor wrappers
 *
 * Elementor Section/Container default ha overflow:hidden che
 * rompe position:sticky. Forzo overflow:visible sui wrapper
 * che contengono il nostro header.
 *
 * Plus garantisco position:sticky anche se Elementor TB ha
 * "Sticky motion effect" disattivato.
 * ============================================================ */

/* Wrapper Elementor che contengono il header: overflow visible obbligatorio */
.elementor-section:has(.jhf-site-header),
.elementor-section .elementor-container:has(.jhf-site-header),
.elementor-column:has(.jhf-site-header),
.elementor-widget-html:has(.jhf-site-header),
.elementor-widget-wrap:has(.jhf-site-header),
.e-con:has(.jhf-site-header),
.e-con-inner:has(.jhf-site-header),
.elementor-location-header,
.elementor-location-header > div,
.elementor-location-header section {
	overflow: visible !important;
}

/* body deve avere overflow visible se ci sono parent restrictions */
html, body {
	overflow-x: hidden;
	overflow-y: visible;
}

/* Force sticky header position anche se Elementor wrapper interferisce */
.jhf-site-header,
.elementor .jhf-site-header,
.elementor-widget-html .jhf-site-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 100 !important;
}


/* ============================================================
 * v1.7.18 — Aggressive sticky fix + Position fixed fallback
 *
 * Position:sticky può rompersi se UN QUALSIASI ancestor ha:
 *  - overflow: hidden/auto/scroll
 *  - transform != none
 *  - filter != none
 *  - perspective != none
 *  - contain: paint/layout
 *
 * Override aggressivo per neutralizzare tutti questi vettori sui
 * wrapper Elementor TB + Hello theme.
 * ============================================================ */

/* Tutti gli ancestor possibili del header in contesto Elementor TB */
.elementor-location-header,
.elementor-location-header *,
header.elementor-location-header,
header.elementor-location-header *,
.elementor-section-wrap,
.elementor-edit-mode .elementor-section-wrap,
#wrapper:has(.jhf-site-header),
#page:has(.jhf-site-header),
.site-main:has(.jhf-site-header),
.entry-content:has(.jhf-site-header) {
	overflow: visible !important;
	transform: none !important;
	filter: none !important;
	perspective: none !important;
	contain: none !important;
}

/* Plus override mirato su ancestor con :has() */
:has(> .jhf-site-header),
:has(> * > .jhf-site-header),
:has(> * > * > .jhf-site-header) {
	overflow: visible !important;
}

/* ============================================================
 * Fallback: position fixed se sticky non funziona
 *
 * Aggiungi class "jhf-fixed-header" al <body> via JS o admin
 * per attivare position fixed invece di sticky. Risolve qualsiasi
 * problema di ancestor che blocca sticky.
 * ============================================================ */
body.jhf-fixed-header .jhf-site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 1000 !important;
}

/* v1.7.19: padding-top rimosso su richiesta — Antonio compensa manualmente per ogni pagina */
body.jhf-fixed-header.jhf-scrolled .jhf-site-header {
	padding: 10px 0;
}

/* ============================================================
 * v1.8.0 — Archive Eventi (mockup eventi.html)
 *
 * Sequenza: hero navy + featured 2-col + upcoming grid + past grid
 * ============================================================ */

.jhf-events-archive-hero {
	background: var(--jhf-primary);
	color: white;
	padding: 96px 0 80px;
	position: relative;
	overflow: hidden;
}
.jhf-events-archive-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.18) 0%, transparent 55%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.10) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-events-archive-hero > .jhf-container {
	position: relative;
}
.jhf-events-archive-hero .jhf-eyebrow {
	margin-bottom: 16px;
	display: inline-block;
}
.jhf-events-archive-hero__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: white;
	margin: 0 0 24px;
}
.jhf-events-archive-hero__lead {
	font-size: 19px;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.6;
	margin: 0;
	max-width: 720px;
}

/* ============================================================
 * Section title row riusabile
 * ============================================================ */
.jhf-events-archive-section {
	padding: 96px 0;
	background: #ffffff;
}
.jhf-events-archive-section--alt {
	background: var(--jhf-surface-alt, #F7F8FA);
}
.jhf-section-title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 40px;
	gap: 24px;
	flex-wrap: wrap;
}
.jhf-section-title-row__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-section-title-row__meta {
	color: var(--jhf-text-muted, #5B6572);
	font-size: 14px;
	font-weight: 600;
}

/* ============================================================
 * Featured event — card 2-col grande (mockup riga 202-281)
 * ============================================================ */
.jhf-featured-event {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	background: white;
	border: 2px solid var(--jhf-secondary);  /* bordo magenta acceso (mockup spec) */
	border-radius: 24px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10);
	transition: transform .25s ease-out, box-shadow .25s ease-out;
}
.jhf-featured-event:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 60px rgba(13, 29, 49, 0.16);
}
.jhf-featured-event__image {
	min-height: 400px;
	background: var(--jhf-surface-alt, #F7F8FA) center/cover no-repeat;
	position: relative;
}
.jhf-featured-event__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(45deg, rgba(13, 29, 49, 0.25), transparent);
	pointer-events: none;
}
.jhf-featured-event__pill {
	position: absolute;
	top: 24px;
	left: 24px;
	z-index: 1;
	background: var(--jhf-secondary);
	color: white;
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
/* Pallino bianco pulsante (mockup spec) */
.jhf-featured-event__pill::before {
	content: "";
	width: 8px;
	height: 8px;
	background: white;
	border-radius: 50%;
	animation: jhf-featured-pulse 2s infinite;
}
@keyframes jhf-featured-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.5; transform: scale(1.3); }
}
@media (prefers-reduced-motion: reduce) {
	.jhf-featured-event__pill::before { animation: none; }
}
.jhf-featured-event__content {
	padding: 48px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.jhf-featured-event__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
	font-size: 14px;
	color: var(--jhf-text-muted, #5B6572);
	font-weight: 600;
	margin-bottom: 4px;
}
.jhf-featured-event__meta span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jhf-featured-event__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-featured-event__text {
	color: var(--jhf-text-muted, #5B6572);
	font-size: 16px;
	line-height: 1.6;
	margin: 0;
}
.jhf-featured-event__stats {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	padding: 16px 0;
	border-top: 1px solid var(--jhf-border, #E5E7EB);
	border-bottom: 1px solid var(--jhf-border, #E5E7EB);
}
.jhf-featured-stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.jhf-featured-stat strong {
	font-family: var(--jhf-font-display);
	font-size: 28px;
	font-weight: 900;
	color: var(--jhf-secondary);
	letter-spacing: -0.02em;
	line-height: 1;
}
.jhf-featured-stat span {
	font-size: 12px;
	color: var(--jhf-text-muted, #5B6572);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 600;
}
.jhf-featured-event__actions {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 8px;
}

/* ============================================================
 * Upcoming grid + Past grid — card eventi
 * ============================================================ */
.jhf-events-upcoming-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
}
/* Past grid: card più piccole come mockup (240px min) */
.jhf-events-past-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
}

/* Event card (upcoming) */
.jhf-event-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
	display: flex;
	flex-direction: column;
}
.jhf-event-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10);
	border-color: transparent;
}
.jhf-event-card__image {
	height: 200px;
	background: var(--jhf-surface-alt, #F7F8FA) center/cover no-repeat;
	position: relative;
}
.jhf-event-card__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 29, 49, 0) 50%, rgba(13, 29, 49, 0.25));
	pointer-events: none;
}
.jhf-event-card-status {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 1;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}
.jhf-event-card-status--upcoming {
	background: var(--jhf-secondary);
	color: white;
}
.jhf-event-card-status--past {
	background: rgba(255, 255, 255, 0.92);
	color: var(--jhf-text-muted, #5B6572);
}
.jhf-event-card__content {
	padding: 24px 28px 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.jhf-event-card__date {
	font-size: 12px;
	color: var(--jhf-secondary);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 700;
}
.jhf-event-card__title {
	font-family: var(--jhf-font-display);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--jhf-primary);
	margin: 4px 0 4px;
}
.jhf-event-card__location {
	font-size: 14px;
	color: var(--jhf-text-muted, #5B6572);
	margin-bottom: 12px;
}
.jhf-event-card__meta {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	padding: 12px 0;
	border-top: 1px solid var(--jhf-surface-alt, #F7F8FA);
	font-size: 14px;
	color: var(--jhf-text-muted, #5B6572);
}
.jhf-event-card__meta strong {
	color: var(--jhf-secondary);
	font-weight: 800;
}
.jhf-event-card__cta {
	margin-top: auto;
	padding-top: 8px;
	color: var(--jhf-secondary);
	font-weight: 700;
	font-size: 14px;
}

/* Past card (variant simile) */
.jhf-past-card {
	background: white;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
	display: flex;
	flex-direction: column;
}
.jhf-past-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 28px rgba(13, 29, 49, 0.08);
	border-color: transparent;
}
.jhf-past-card__image {
	height: 140px;
	background: var(--jhf-surface-alt, #F7F8FA) center/cover no-repeat;
	position: relative;
}
.jhf-past-card {
	filter: grayscale(0.4);
	transition: transform .25s ease-out, box-shadow .25s ease-out, filter .25s ease-out;
}
.jhf-past-card:hover {
	filter: grayscale(0);
}
.jhf-past-card__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 29, 49, 0) 50%, rgba(13, 29, 49, 0.20));
	pointer-events: none;
}
.jhf-past-card__content {
	padding: 16px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.jhf-past-card__date {
	font-size: 12px;
	color: var(--jhf-text-muted, #5B6572);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 700;
}
.jhf-past-card__title {
	font-family: var(--jhf-font-display);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--jhf-primary);
	margin: 2px 0 2px;
}
.jhf-past-card__location {
	font-size: 13px;
	color: var(--jhf-text-muted, #5B6572);
	margin-bottom: 8px;
}
.jhf-past-card__meta {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 12px;
	border-top: 1px solid var(--jhf-surface-alt, #F7F8FA);
	font-size: 13px;
	color: var(--jhf-text-muted, #5B6572);
}

/* Responsive */
@media (max-width: 960px) {
	.jhf-events-archive-hero { padding: 64px 0 56px; }
	.jhf-events-archive-section { padding: 64px 0; }
	.jhf-featured-event { grid-template-columns: 1fr; }
	.jhf-featured-event__image { min-height: 280px; }
	.jhf-featured-event__content { padding: 32px; }
	.jhf-featured-event__stats { gap: 24px; }
}
@media (max-width: 640px) {
	.jhf-section-title-row { flex-direction: column; align-items: flex-start; }
	.jhf-events-upcoming-grid,
	.jhf-events-past-grid { grid-template-columns: 1fr; }
	.jhf-featured-event__content { padding: 24px; }
}

/* ============================================================
 * v1.8.1 — Archive Eventi enhancements + footer logo 20px + aria hero
 * ============================================================ */

/* Hero archive: più aria + stats 3-col */
.jhf-events-archive-hero {
	padding: 120px 0 96px !important;
}
.jhf-events-archive-hero__inner {
	position: relative;
	max-width: 820px;
}
.jhf-events-archive-hero__stats {
	display: flex;
	gap: 64px;
	margin-top: 40px;
	flex-wrap: wrap;
}
.jhf-archive-hero-stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.jhf-archive-hero-stat strong {
	font-family: var(--jhf-font-display);
	font-size: 36px;
	font-weight: 900;
	color: var(--jhf-secondary);
	letter-spacing: -0.02em;
	line-height: 1;
}
.jhf-archive-hero-stat span {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: rgba(255, 255, 255, 0.65);
	font-weight: 600;
}

/* Compensazione header fixed: padding-top extra sull'hero quando body.jhf-fixed-header */
body.jhf-fixed-header .jhf-events-archive-hero {
	padding-top: 200px !important;  /* 120 hero + 80 header height */
}

/* Newsletter CTA section */
.jhf-newsletter-cta {
	background: var(--jhf-primary);
	color: white;
	border-radius: 24px;
	padding: 96px 64px;  /* mockup space-2xl space-xl */
	text-align: center;
	position: relative;
	overflow: hidden;
}
/* Gradient richer come mockup (2 radial-gradient circle) */
.jhf-newsletter-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 30%, rgba(236, 0, 95, 0.20) 0%, transparent 50%),
		radial-gradient(circle at 85% 70%, rgba(236, 0, 95, 0.10) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-newsletter-cta__inner {
	position: relative;
	max-width: 580px;  /* mockup spec */
	margin: 0 auto;
}
.jhf-newsletter-cta .jhf-eyebrow {
	margin-bottom: 16px;
	display: inline-block;
}
.jhf-newsletter-cta__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: white;
	margin: 0 0 16px;
}
.jhf-newsletter-cta__text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 32px;
}
.jhf-newsletter-form {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
}
/* v1.8.3 — Selettori ad alta specificita' per vincere su:
   - Hello/Elementor theme defaults: input[type=email] { border, radius, padding, width, transition }
   - Elementor Kit: .elementor-kit-N input[type=email] / button
   Specificita' raggiunta (0,3,1) vs avversari massimi (0,2,1) -> vinciamo senza !important. */
.jhf-newsletter-form input.jhf-newsletter-input[type="email"] {
	flex: 1 1 auto;
	min-width: 240px;
	width: auto;
	padding: 14px 20px;
	border: 2px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.08);
	color: white;
	border-radius: 999px;
	font-family: var(--jhf-font-display);
	font-size: 15px;
	line-height: 1.4;
	transition: border-color .25s ease-out, background-color .25s ease-out;
	box-shadow: none;
}
.jhf-newsletter-form input.jhf-newsletter-input[type="email"]::placeholder {
	color: rgba(255, 255, 255, 0.55);
	opacity: 1;
}
.jhf-newsletter-form input.jhf-newsletter-input[type="email"]:hover {
	border-color: rgba(255, 255, 255, 0.35);
}
.jhf-newsletter-form input.jhf-newsletter-input[type="email"]:focus {
	outline: none;
	border-color: var(--jhf-secondary); /* mockup spec: focus magenta */
	background: rgba(255, 255, 255, 0.12);
	box-shadow: 0 0 0 3px rgba(236, 0, 95, 0.20);
}

/* Submit button — batte .elementor-kit-N button / .elementor-button (0,2,0 / 0,1,1) */
.jhf-newsletter-form button.jhf-button.jhf-button--primary {
	padding: 14px 28px;
	border-radius: 999px;
	border: 2px solid var(--jhf-secondary);
	background: var(--jhf-secondary);
	color: white;
	font-family: var(--jhf-font-display);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: transform .2s ease-out, box-shadow .2s ease-out, background-color .2s ease-out;
	box-shadow: 0 4px 12px rgba(236, 0, 95, 0.25);
}
.jhf-newsletter-form button.jhf-button.jhf-button--primary:hover {
	background: #d6004f;
	border-color: #d6004f;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(236, 0, 95, 0.35);
}
.jhf-newsletter-form button.jhf-button.jhf-button--primary:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4), 0 4px 12px rgba(236, 0, 95, 0.25);
}

/* ═══════════════════════════════════════════════════
 * v1.8.3 — Archive Eventi: barra filtri sticky
 * Mockup `mockups/eventi.html` righe 138-190
 * ═══════════════════════════════════════════════════ */
.jhf-events-filters-bar {
	background: white;
	border-bottom: 1px solid var(--jhf-border);
	padding: 16px 0;
	position: sticky;
	top: 78px; /* sotto l'header sticky */
	z-index: 50;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.jhf-fixed-header .jhf-events-filters-bar {
	top: 80px;
}
.jhf-events-filters-bar__inner {
	display: flex;
	gap: 32px;
	align-items: center;
	flex-wrap: wrap;
}
.jhf-filter-group {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.jhf-filter-label {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted);
}
/* v1.21.9 — Filtro settore come select dinamica (sostituisce la fila di pillole).
   Regge molti settori senza affollare la barra filtri. */
.jhf-sector-select-wrap { position: relative; display: inline-flex; align-items: center; }
.jhf-sector-select {
	appearance: none; -webkit-appearance: none; -moz-appearance: none;
	font-family: inherit; font-size: 14px; font-weight: 600; color: var(--jhf-text);
	background: var(--jhf-surface-alt, #F7F8FA);
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: 999px;
	padding: 9px 42px 9px 16px;
	line-height: 1.2; cursor: pointer; max-width: 340px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.jhf-sector-select:hover { border-color: #d3dae4; }
.jhf-sector-select:focus-visible { outline: none; border-color: var(--jhf-primary, #0D1D31); box-shadow: 0 0 0 3px rgba(13,29,49,0.15); }
.jhf-sector-select__chevron { position: absolute; right: 14px; width: 16px; height: 16px; color: var(--jhf-text-muted, #5B6572); pointer-events: none; }
@media (max-width: 640px) {
	.jhf-sector-select-wrap { width: 100%; }
	.jhf-sector-select { max-width: 100%; width: 100%; }
}
/* High specificity (0,3,1) battendo .elementor-kit-N button:focus/active (0,2,2) */
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:hover,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:focus,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:focus-visible,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:active {
	padding: 7px 14px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: all .25s ease-out;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.2;
	box-shadow: none;
	outline: none;
}
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill {
	background: var(--jhf-surface-alt);
	color: var(--jhf-text);
}
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:hover {
	background: var(--jhf-border);
	color: var(--jhf-text);
}
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill.is-active,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill.is-active:hover,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill.is-active:focus,
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill.is-active:focus-visible {
	background: var(--jhf-primary);
	color: white;
	border-color: var(--jhf-primary);
	border-radius: 999px;
}
/* Accessibility: focus visibile solo da tastiera */
.jhf-events-filters-bar .jhf-filter-group button.jhf-filter-pill:focus-visible {
	box-shadow: 0 0 0 3px rgba(13, 29, 49, 0.20);
}
.jhf-filters-count {
	margin-left: auto;
	font-size: 13px;
	color: var(--jhf-text-muted);
	font-weight: 600;
}
.jhf-filters-count strong {
	color: var(--jhf-text);
	font-weight: 800;
}

/* Hide sections when filtered out (JS toggles .is-hidden-by-filter) */
.jhf-events-archive-section.is-hidden-by-filter {
	display: none;
}
.jhf-event-card-wrap.is-hidden-by-filter {
	display: none;
}

@media (max-width: 640px) {
	.jhf-events-filters-bar {
		position: static;
	}
	.jhf-events-filters-bar__inner {
		gap: 16px;
	}
	.jhf-filters-count {
		margin-left: 0;
		width: 100%;
		text-align: center;
	}
}

/* Footer logo testo 20px */
.jhf-site-footer .jhf-footer-brand .jhf-logo,
.jhf-site-footer .jhf-footer-brand .jhf-logo__text {
	font-size: 20px !important;
}

/* Responsive */
@media (max-width: 640px) {
	.jhf-events-archive-hero { padding: 96px 0 64px !important; }
	body.jhf-fixed-header .jhf-events-archive-hero { padding-top: 160px !important; }
	.jhf-events-archive-hero__stats { gap: 32px; }
	.jhf-archive-hero-stat strong { font-size: 28px; }
	.jhf-newsletter-cta { padding: 48px 24px; }
	.jhf-newsletter-form { flex-direction: column; }
	.jhf-newsletter-form .jhf-button { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════
 * v1.9.0 — ARCHIVE AZIENDE (mockup-aderente)
 * Mockup: mockups/aziende.html
 * ═══════════════════════════════════════════════════ */

/* — Hero archive aziende — */
.jhf-companies-archive-hero {
	background: var(--jhf-primary);
	color: white;
	padding: 96px 0 64px;
	position: relative;
	overflow: hidden;
}
body.jhf-fixed-header .jhf-companies-archive-hero {
	padding-top: 200px;
}
.jhf-companies-archive-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.15) 0%, transparent 55%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.06) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-companies-archive-hero__inner {
	position: relative;
	max-width: 820px;
}
.jhf-companies-archive-hero__title {
	color: white;
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 6vw, 64px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 24px;
}
.jhf-companies-archive-hero__lead {
	color: rgba(255, 255, 255, 0.8);
	font-size: 19px;
	line-height: 1.6;
	max-width: 720px;
	margin: 0;
}
.jhf-companies-archive-hero__stats {
	display: flex;
	gap: 64px;
	margin-top: 40px;
	flex-wrap: wrap;
}

/* — Search + Filtri sticky — */
.jhf-companies-search-filters-bar {
	background: white;
	padding: 24px 0;
	border-bottom: 1px solid var(--jhf-border);
	position: sticky;
	top: 78px;
	z-index: 50;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.jhf-fixed-header .jhf-companies-search-filters-bar {
	top: 80px;
}
.jhf-companies-search-bar {
	position: relative;
	margin-bottom: 24px;
}
/* High specificita': batte input[type=search] del tema (0,1,1) e .elementor-kit-N input (0,2,1) */
.jhf-companies-search-bar input.jhf-companies-search-input[type="search"] {
	width: 100%;
	padding: 16px 22px 16px 56px;
	border-radius: 999px;
	border: 2px solid var(--jhf-border);
	background: var(--jhf-surface-alt);
	font-family: inherit;
	font-size: 16px;
	color: var(--jhf-text);
	outline: none;
	transition: all .25s ease-out;
	box-shadow: none;
	line-height: 1.4;
}
.jhf-companies-search-bar input.jhf-companies-search-input[type="search"]::placeholder {
	color: var(--jhf-text-muted);
}
.jhf-companies-search-bar input.jhf-companies-search-input[type="search"]:focus {
	border-color: var(--jhf-primary);
	background: white;
	box-shadow: 0 4px 20px rgba(13, 29, 49, 0.06);
}
.jhf-companies-search-icon {
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	color: var(--jhf-text-muted);
	pointer-events: none;
}
.jhf-companies-filters-inner {
	display: flex;
	gap: 40px;
	align-items: center;
	flex-wrap: wrap;
}

/* Filter pills sticky bar — link <a>, alta specificità per battere Elementor */
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:hover,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:focus,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:focus-visible,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:active {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	color: var(--jhf-text);
	cursor: pointer;
	transition: all .25s ease-out;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.2;
	text-decoration: none;
	outline: none;
	box-shadow: none;
	background: var(--jhf-surface-alt);
}
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:hover {
	background: var(--jhf-border);
	color: var(--jhf-text);
}
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill.is-active,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill.is-active:hover,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill.is-active:focus {
	background: var(--jhf-primary);
	color: white;
	border-color: var(--jhf-primary);
	border-radius: 999px;
}
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill--protected.is-active,
.jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill--protected.is-active:hover {
	background: var(--jhf-secondary);
	border-color: var(--jhf-secondary);
}

/* — Sezioni archive aziende — */
.jhf-companies-archive-section {
	padding: 96px 0;
}
.jhf-companies-archive-section--alt {
	background: var(--jhf-surface-alt);
}

/* — Grid aziende — */
.jhf-companies-archive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
}
.jhf-companies-archive-card {
	background: white;
	border: 1px solid var(--jhf-border);
	border-radius: 16px;
	padding: 40px;
	transition: all .25s ease-out;
	display: flex;
	flex-direction: column;
	gap: 16px;
	position: relative;
	text-decoration: none;
	color: inherit;
}
.jhf-companies-archive-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10);
	border-color: transparent;
}
.jhf-companies-archive-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 8px;
}
.jhf-companies-archive-card__logo {
	width: 72px;
	height: 72px;
	background: var(--jhf-surface-alt);
	border-radius: 12px;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	overflow: hidden;
}
.jhf-companies-archive-card__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.jhf-companies-archive-card__initials {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 22px;
	color: var(--jhf-primary);
	letter-spacing: -0.02em;
}
.jhf-companies-archive-card__protected-badge {
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-secondary);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 5px 10px;
	border-radius: 999px;
	flex-shrink: 0;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.jhf-companies-archive-card__protected-badge::before {
	content: '';
	width: 6px;
	height: 6px;
	background: var(--jhf-secondary);
	border-radius: 50%;
}
.jhf-companies-archive-card__name {
	font-family: var(--jhf-font-display);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-text);
	margin: 0 0 4px;
}
.jhf-companies-archive-card__sector {
	display: inline-block;
	font-size: 11px;
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 700;
	padding: 4px 10px;
	background: var(--jhf-surface-alt);
	border-radius: 999px;
	margin-bottom: 16px;
	align-self: flex-start;
}
.jhf-companies-archive-card__desc {
	color: var(--jhf-text-muted);
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 16px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.jhf-companies-archive-card__footer {
	margin-top: auto;
	padding-top: 24px;
	border-top: 1px solid var(--jhf-surface-alt);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.jhf-companies-archive-card__editions {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--jhf-text-muted);
	font-weight: 600;
}
.jhf-companies-archive-card__editions strong {
	color: var(--jhf-primary);
	font-size: 16px;
	margin-right: 2px;
}
.jhf-companies-archive-card__cta {
	color: var(--jhf-secondary);
	font-weight: 700;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jhf-companies-archive-card__cta::after {
	content: '→';
	transition: transform .25s ease-out;
}
.jhf-companies-archive-card:hover .jhf-companies-archive-card__cta::after {
	transform: translateX(4px);
}

/* — Empty state — */
.jhf-companies-archive-empty {
	text-align: center;
	padding: 128px 24px;
	display: none;
}
.jhf-companies-archive-empty.is-visible {
	display: block;
}
.jhf-companies-archive-empty__icon {
	font-size: 56px;
	margin-bottom: 24px;
	opacity: 0.5;
}
.jhf-companies-archive-empty h3 {
	font-family: var(--jhf-font-display);
	font-size: 24px;
	font-weight: 800;
	color: var(--jhf-text);
	margin: 0 0 16px;
}
.jhf-companies-archive-empty p {
	color: var(--jhf-text-muted);
	font-size: 17px;
	margin: 0;
}

/* Card nascosta da search live JS */
.jhf-companies-archive-card.is-hidden-by-search {
	display: none;
}

/* — Pagination — */
.jhf-companies-archive-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 96px;
}
.jhf-companies-archive-pagination .jhf-page-btn {
	min-width: 40px;
	height: 40px;
	border-radius: 12px;
	background: transparent;
	border: 1px solid var(--jhf-border);
	color: var(--jhf-text);
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	transition: all .25s ease-out;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 16px;
	text-decoration: none;
}
.jhf-companies-archive-pagination .jhf-page-btn:hover {
	border-color: var(--jhf-primary);
}
.jhf-companies-archive-pagination .jhf-page-btn.is-current {
	background: var(--jhf-primary);
	color: white;
	border-color: var(--jhf-primary);
}
.jhf-companies-archive-pagination .jhf-page-btn.is-dots {
	border: none;
	opacity: 0.5;
	cursor: default;
}

/* — B2B CTA — */
.jhf-b2b-cta {
	background: var(--jhf-primary);
	color: white;
	border-radius: 24px;
	padding: 96px;
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 64px;
	align-items: center;
}
.jhf-b2b-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 30%, rgba(236, 0, 95, 0.20) 0%, transparent 50%),
		radial-gradient(circle at 85% 70%, rgba(236, 0, 95, 0.10) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-b2b-cta__content {
	position: relative;
}
.jhf-b2b-cta__title {
	color: white;
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 16px 0 24px;
}
.jhf-b2b-cta__text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 40px;
}
.jhf-b2b-cta__actions {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.jhf-b2b-cta__stats {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.jhf-b2b-stat {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: 16px;
	padding: 24px;
}
.jhf-b2b-stat strong {
	display: block;
	font-family: var(--jhf-font-display);
	font-size: 36px;
	font-weight: 900;
	color: var(--jhf-secondary);
	letter-spacing: -0.02em;
	line-height: 1;
	margin-bottom: 4px;
}
.jhf-b2b-stat span {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
	font-weight: 600;
}

/* Button variants per B2B CTA */
.jhf-button--ghost-light {
	background: transparent;
	color: white;
	border: 2px solid rgba(255, 255, 255, 0.4);
}
.jhf-button--ghost-light:hover {
	border-color: white;
	background: rgba(255, 255, 255, 0.05);
	color: white;
}

/* — Responsive — */
@media (max-width: 960px) {
	.jhf-companies-search-filters-bar { position: static; }
	.jhf-b2b-cta { grid-template-columns: 1fr; gap: 40px; padding: 64px 32px; }
	.jhf-companies-archive-hero__stats { gap: 24px; }
	.jhf-companies-archive-section { padding: 64px 0; }
}
@media (max-width: 640px) {
	.jhf-companies-archive-grid { grid-template-columns: 1fr; }
	.jhf-companies-filters-inner { gap: 16px; }
	.jhf-companies-filters-inner .jhf-filter-group { width: 100%; }
	.jhf-filters-count { margin-left: 0; }
	.jhf-b2b-cta__stats { grid-template-columns: 1fr; }
	.jhf-b2b-cta { padding: 48px 24px; }
}

/* ═══════════════════════════════════════════════════
 * v1.9.2 — Fix mockup-aderenza bg grigio (override Elementor/Hello)
 * ═══════════════════════════════════════════════════ */

/* Input search: bg grigio chiaro, focus bianco (mockup spec) */
body .jhf-companies-search-bar input.jhf-companies-search-input[type="search"] {
	background: var(--jhf-surface-alt) !important;
	background-color: var(--jhf-surface-alt) !important;
}
body .jhf-companies-search-bar input.jhf-companies-search-input[type="search"]:focus {
	background: white !important;
	background-color: white !important;
}

/* Sector pills: bg-alt default, border (più scuro) su hover.
   Forzato con !important per battere Elementor button/.elementor-button background. */
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill {
	background: var(--jhf-surface-alt) !important;
	background-color: var(--jhf-surface-alt) !important;
}
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill:hover {
	background: var(--jhf-border) !important;
	background-color: var(--jhf-border) !important;
}
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill.is-active,
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill.is-active:hover {
	background: var(--jhf-primary) !important;
	background-color: var(--jhf-primary) !important;
	color: white !important;
}
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill--protected.is-active,
body .jhf-companies-search-filters-bar .jhf-filter-group a.jhf-filter-pill--protected.is-active:hover {
	background: var(--jhf-secondary) !important;
	background-color: var(--jhf-secondary) !important;
}

/* Sector pill (badge sotto il nome nella card) — anche qui bg-alt non si vedeva */
.jhf-companies-archive-card__sector {
	background: var(--jhf-surface-alt);
	background-color: var(--jhf-surface-alt);
}

/* Section is-alt "Sei un'azienda?": fondo grigio chiaro (mockup .section.is-alt),
   NON bianco. Battiamo Elementor/Hello section default. */
body .jhf-companies-archive-section.jhf-companies-archive-section--alt {
	background: var(--jhf-surface-alt) !important;
	background-color: var(--jhf-surface-alt) !important;
}

/* Stesso fix anche su events-archive--alt per coerenza (era stato lo stesso problema in v1.8.x) */
body .jhf-events-archive-section.jhf-events-archive-section--alt {
	background: var(--jhf-surface-alt) !important;
	background-color: var(--jhf-surface-alt) !important;
}

/* Logo card placeholder: anche bg-alt era rotto */
.jhf-companies-archive-card__logo {
	background: var(--jhf-surface-alt);
	background-color: var(--jhf-surface-alt);
}

/* Card footer separator: subtle 1px (era anche lui var bg-alt rotto) */
.jhf-companies-archive-card__footer {
	border-top: 1px solid var(--jhf-surface-alt);
}

/* ═══════════════════════════════════════════════════
 * v1.10.0 — AUTH PAGES (mockup-aderente)
 * Mockup: mockups/auth.html
 * ═══════════════════════════════════════════════════ */

.jhf-auth-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 100vh;
}
body.jhf-fixed-header .jhf-auth-layout {
	min-height: calc(100vh - 80px);
}

/* === Brand side === */
.jhf-auth-brand {
	background: var(--jhf-primary);
	color: white;
	padding: 64px 96px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
}
.jhf-auth-brand::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.22) 0%, transparent 55%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.08) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-auth-brand-inner {
	position: relative;
	max-width: 480px;
}
.jhf-auth-brand-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: white !important;
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: 20px;
	letter-spacing: -0.02em;
	line-height: 1;
	margin-bottom: 64px;
	text-decoration: none;
}
.jhf-auth-brand-logo img {
	height: 48px;
	width: auto;
	display: block;
	flex-shrink: 0;
}
.jhf-auth-brand-content { position: relative; }
.jhf-auth-brand-headline {
	color: white;
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(32px, 4vw, 44px);
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 16px 0 24px;
}
.jhf-auth-brand-accent {
	color: var(--jhf-secondary);
}
.jhf-auth-brand-lead {
	color: rgba(255, 255, 255, 0.8);
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 40px;
}
.jhf-auth-features {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.jhf-auth-feature {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.jhf-auth-feature-check {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(236, 0, 95, 0.15);
	color: var(--jhf-secondary);
	display: grid;
	place-items: center;
	flex-shrink: 0;
}
.jhf-auth-feature-check svg {
	width: 18px;
	height: 18px;
}
.jhf-auth-feature-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.jhf-auth-feature-text strong {
	color: white;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
}
.jhf-auth-feature-text span {
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	line-height: 1.5;
}
.jhf-auth-brand-footer {
	position: relative;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-top: 64px;
}

/* === Form side === */
.jhf-auth-form-side {
	background: white;
	padding: 64px 96px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jhf-auth-form-wrapper {
	width: 100%;
	max-width: 440px;
}
.jhf-auth-form-card {
	display: none;
}
.jhf-auth-form-card.is-visible {
	display: block;
}
.jhf-auth-form-header {
	margin-bottom: 32px;
}
.jhf-auth-form-header .jhf-eyebrow {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--jhf-secondary);
	margin-bottom: 16px;
	display: inline-block;
}
.jhf-auth-form-header h1 {
	font-family: var(--jhf-font-display);
	font-size: clamp(28px, 3.5vw, 36px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-text-strong);
	margin: 0 0 12px;
}
.jhf-auth-form-header p {
	color: var(--jhf-text-muted);
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
}

/* === Form fields === */
.jhf-form-fields {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.jhf-form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.jhf-form-row label {
	font-size: 14px;
	font-weight: 700;
	color: var(--jhf-text-strong);
}
.jhf-form-row .jhf-form-required {
	color: var(--jhf-secondary);
	font-weight: 700;
}
.jhf-form-row--split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.jhf-form-row--split > .jhf-form-row {
	margin: 0;
}

/* Input: high specificity + !important per battere Elementor/Hello */
body .jhf-form-fields input.jhf-form-input[type="text"],
body .jhf-form-fields input.jhf-form-input[type="email"],
body .jhf-form-fields input.jhf-form-input[type="password"] {
	width: 100% !important;
	padding: 14px 18px !important;
	border-radius: 12px !important;
	border: 2px solid var(--jhf-border) !important;
	background: white !important;
	font-family: inherit !important;
	font-size: 15px !important;
	color: var(--jhf-text-strong) !important;
	outline: none !important;
	transition: border-color .25s ease-out, background-color .25s ease-out, box-shadow .25s ease-out !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
}
body .jhf-form-fields input.jhf-form-input::placeholder {
	color: var(--jhf-text-muted);
	opacity: 1;
}
body .jhf-form-fields input.jhf-form-input:hover {
	border-color: rgba(13, 29, 49, 0.25) !important;
}
body .jhf-form-fields input.jhf-form-input:focus {
	border-color: var(--jhf-primary) !important;
	box-shadow: 0 0 0 3px rgba(13, 29, 49, 0.08) !important;
}

/* Input wrapper (per password show/hide icon) */
.jhf-form-input-wrapper {
	position: relative;
}
.jhf-input-icon-action {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--jhf-text-muted);
	display: grid;
	place-items: center;
	padding: 0;
	transition: color .2s ease-out;
}
.jhf-input-icon-action:hover { color: var(--jhf-primary); }
.jhf-input-icon-action svg { width: 20px; height: 20px; }
.jhf-input-icon-action.is-showing svg path:last-of-type,
.jhf-input-icon-action.is-showing svg circle {
	opacity: 0.4;
}

.jhf-form-helper {
	font-size: 13px;
	color: var(--jhf-text-muted);
	margin-top: 4px;
}

/* Checkbox row */
.jhf-checkbox-row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px;
	background: var(--jhf-surface-alt);
	border-radius: 12px;
	border: 1px solid transparent;
	transition: border-color .2s ease-out;
}
.jhf-checkbox-row:has(input:checked) {
	border-color: var(--jhf-primary);
	background: rgba(13, 29, 49, 0.04);
}
.jhf-checkbox-row input[type="checkbox"] {
	margin-top: 3px;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	accent-color: var(--jhf-secondary);
	cursor: pointer;
}
.jhf-checkbox-row label {
	font-size: 14px;
	font-weight: 500;
	color: var(--jhf-text);
	line-height: 1.5;
	cursor: pointer;
	margin: 0;
}
.jhf-checkbox-row label strong {
	font-weight: 700;
	color: var(--jhf-text-strong);
}
.jhf-checkbox-row label a {
	color: var(--jhf-secondary);
	text-decoration: underline;
	font-weight: 700;
}

/* Forgot password row */
.jhf-forgot-row {
	text-align: right;
	margin-top: -8px;
}
.jhf-forgot-row a {
	font-size: 14px;
	color: var(--jhf-text-muted);
	font-weight: 600;
	text-decoration: none;
	transition: color .2s ease-out;
}
.jhf-forgot-row a:hover { color: var(--jhf-secondary); }

/* Submit */
.jhf-form-submit {
	margin-top: 8px;
}
.jhf-button--block {
	width: 100%;
	justify-content: center;
	padding: 16px 28px;
	font-size: 16px;
}

/* Form notices */
.jhf-form-error,
.jhf-form-info,
.jhf-form-success {
	padding: 16px 20px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.55;
	margin-bottom: 24px;
	display: flex;
	align-items: flex-start;
	gap: 8px;
}
.jhf-form-error {
	background: rgba(220, 38, 38, 0.08);
	color: #dc2626;
	border: 1px solid rgba(220, 38, 38, 0.20);
}
.jhf-form-error::before { content: '⚠'; font-size: 16px; flex-shrink: 0; }
.jhf-form-info {
	background: rgba(13, 29, 49, 0.06);
	color: var(--jhf-text-strong);
	border: 1px solid rgba(13, 29, 49, 0.15);
}
.jhf-form-info::before { content: 'ℹ'; font-size: 16px; flex-shrink: 0; }
.jhf-form-info a,
.jhf-form-info__link {
	color: inherit;
	text-decoration: underline;
	font-weight: 700;
	background: transparent;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: inherit;
	padding: 0;
}
.jhf-form-success {
	background: rgba(16, 185, 129, 0.08);
	color: #047857;
	border: 1px solid rgba(16, 185, 129, 0.25);
}
.jhf-form-success::before { content: '✓'; font-size: 16px; flex-shrink: 0; }

/* Auth form footer */
.jhf-auth-form-footer {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--jhf-border);
	text-align: center;
	font-size: 14px;
	color: var(--jhf-text-muted);
}
.jhf-auth-form-footer a {
	color: var(--jhf-secondary);
	font-weight: 700;
	text-decoration: none;
}
.jhf-auth-form-footer a:hover { text-decoration: underline; }

/* Already logged */
.jhf-auth-already-logged {
	max-width: 520px;
	margin: 96px auto;
	padding: 32px;
	background: var(--jhf-surface-alt);
	border-radius: 16px;
	text-align: center;
}
.jhf-auth-already-logged a {
	color: var(--jhf-secondary);
	font-weight: 700;
	margin-left: 8px;
}

/* Responsive */
@media (max-width: 960px) {
	.jhf-auth-layout { grid-template-columns: 1fr; }
	.jhf-auth-brand { padding: 40px 24px; }
	.jhf-auth-brand-logo { margin-bottom: 32px; }
	.jhf-auth-features { display: none; }
	.jhf-auth-brand-footer { display: none; }
	.jhf-auth-form-side { padding: 40px 24px; }
}
@media (max-width: 640px) {
	.jhf-form-row--split { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════
 * v1.10.1 — Auth fixes (altezza pagina + bottoni + show-pwd)
 * ═══════════════════════════════════════════════════ */

/* Fix altezza: il wrapper .jhf-shortcode deve passare l'altezza al .jhf-auth-layout figlio */
.jhf-shortcode:has(.jhf-auth-layout),
.entry-content:has(.jhf-auth-layout),
.elementor-widget-shortcode:has(.jhf-auth-layout),
.elementor-widget-container:has(.jhf-auth-layout) {
	display: block;
	min-height: 100vh;
}
.jhf-auth-layout {
	min-height: 100vh;
	width: 100%;
}
body.logged-in .jhf-auth-layout {
	min-height: calc(100vh - 32px); /* admin bar 32px desktop */
}
@media (max-width: 782px) {
	body.logged-in .jhf-auth-layout {
		min-height: calc(100vh - 46px); /* admin bar 46px mobile */
	}
}
/* Forza brand side a riempire l'altezza */
.jhf-auth-brand,
.jhf-auth-form-side {
	min-height: 100%;
}

/* Fix bottoni primary block: padding corretto + dimensioni — bumpo specificita' contro Elementor */
body .jhf-auth-form-card .jhf-form-submit .jhf-button.jhf-button--primary.jhf-button--block,
body .jhf-auth-form-card button.jhf-button.jhf-button--primary.jhf-button--block {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	padding: 16px 28px !important;
	border-radius: 999px !important;
	border: 2px solid var(--jhf-secondary) !important;
	background: var(--jhf-secondary) !important;
	background-color: var(--jhf-secondary) !important;
	color: white !important;
	font-family: var(--jhf-font-display) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	line-height: 1 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer !important;
	transition: all .25s ease-out !important;
	box-shadow: 0 4px 12px rgba(236, 0, 95, 0.20) !important;
	min-height: auto !important;
	text-decoration: none !important;
}
body .jhf-auth-form-card .jhf-form-submit .jhf-button.jhf-button--primary.jhf-button--block:hover,
body .jhf-auth-form-card button.jhf-button.jhf-button--primary.jhf-button--block:hover {
	background: var(--jhf-secondary-soft) !important;
	background-color: var(--jhf-secondary-soft) !important;
	border-color: var(--jhf-secondary-soft) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 40px rgba(13, 29, 49, 0.10) !important;
}

/* Fix bottone show password: no border / no outline / no background — battiamo Elementor + Hello */
body .jhf-form-input-wrapper button.jhf-input-icon-action,
body .jhf-form-input-wrapper button.jhf-input-icon-action:hover,
body .jhf-form-input-wrapper button.jhf-input-icon-action:focus,
body .jhf-form-input-wrapper button.jhf-input-icon-action:focus-visible,
body .jhf-form-input-wrapper button.jhf-input-icon-action:active {
	position: absolute !important;
	right: 12px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	color: var(--jhf-text-muted) !important;
	display: grid !important;
	place-items: center !important;
	cursor: pointer !important;
	font-size: 0 !important;
	min-height: auto !important;
	min-width: auto !important;
	letter-spacing: 0 !important;
}
body .jhf-form-input-wrapper button.jhf-input-icon-action:hover {
	color: var(--jhf-primary) !important;
}
body .jhf-form-input-wrapper button.jhf-input-icon-action svg {
	width: 20px !important;
	height: 20px !important;
	display: block !important;
}

/* ===== Home sections (v1.11.0) ===== */
/* Shortcode: [jhf_next_event_card], [jhf_editions_calendar], [jhf_companies_wall].
   Valori mockup home.html tradotti in var(--jhf-*); i tint magenta usano gli
   stessi literal rgba(236,0,95,x) già in uso nel resto del file. */

/* --- 1. Card "Prossimo evento" (hero) --- */
.jhf-next-event-card {
	position: relative;
	overflow: hidden;
	background: var(--jhf-surface);
	color: var(--jhf-text-strong);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-8);
	box-shadow: var(--jhf-shadow-lg);
}
.jhf-next-event-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: var(--jhf-secondary);
}
.jhf-next-event-card__label {
	display: inline-flex;
	align-items: center;
	gap: var(--jhf-space-2);
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-secondary);
	padding: 6px 14px;
	border-radius: var(--jhf-radius-full);
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: var(--jhf-space-6);
}
.jhf-next-event-card__label::before {
	content: '';
	width: 8px;
	height: 8px;
	background: var(--jhf-secondary);
	border-radius: 50%;
}
.jhf-next-event-card__image {
	position: relative;
	width: 100%;
	height: 180px;
	background-size: cover;
	background-position: center;
	border-radius: var(--jhf-radius-md);
	margin-bottom: var(--jhf-space-6);
}
.jhf-next-event-card__image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(236, 0, 95, 0.40) 0%, rgba(13, 29, 49, 0.60) 100%);
	border-radius: var(--jhf-radius-md);
}
.jhf-next-event-card__image--gradient {
	background: linear-gradient(135deg, var(--jhf-secondary) 0%, var(--jhf-primary) 100%);
}
.jhf-next-event-card__image--gradient::after { content: none; }
.jhf-next-event-card__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 800;
	line-height: 1.15;
	color: var(--jhf-text-strong);
	margin: 0 0 var(--jhf-space-4);
}
.jhf-next-event-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-4);
	margin-bottom: var(--jhf-space-6);
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-sm);
}
.jhf-next-event-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jhf-next-event-card__stats {
	display: flex;
	gap: var(--jhf-space-6);
	padding: var(--jhf-space-4) 0;
	margin-bottom: var(--jhf-space-6);
	border-top: 1px solid var(--jhf-border);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-next-event-card__stat {
	flex: 1;
	text-align: center;
}
.jhf-next-event-card__stat strong {
	display: block;
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-2xl);
	font-weight: 800;
	color: var(--jhf-text-strong);
}
.jhf-next-event-card__stat span {
	font-size: var(--jhf-text-xs);
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 1px;
}
.jhf-next-event-card__cta {
	width: 100%;
}

/* --- 2. Calendario edizioni --- */
.jhf-editions-calendar__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--jhf-space-6);
}
.jhf-edition-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-6);
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out, opacity .25s ease-out;
}
.jhf-edition-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--jhf-shadow-md);
	border-color: transparent;
}
.jhf-edition-card.is-featured {
	border-color: var(--jhf-secondary);
	border-width: 2px;
}
.jhf-edition-card.is-past { opacity: 0.7; }
.jhf-edition-card.is-past:hover { opacity: 1; }
.jhf-edition-status {
	align-self: flex-start;
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 4px 10px;
	border-radius: var(--jhf-radius-full);
}
.jhf-edition-status--upcoming {
	background: rgba(236, 0, 95, 0.10);
	color: var(--jhf-secondary);
}
.jhf-edition-status--featured {
	background: var(--jhf-secondary);
	color: #fff;
}
.jhf-edition-status--past {
	background: var(--jhf-surface-alt);
	color: var(--jhf-text-muted);
}
.jhf-edition-card__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 800;
	line-height: 1.15;
	color: var(--jhf-text-strong);
	margin: 0;
}
.jhf-edition-card__date {
	font-size: var(--jhf-text-sm);
	color: var(--jhf-text-muted);
	font-weight: 600;
}
.jhf-edition-card__location {
	font-size: var(--jhf-text-sm);
	color: var(--jhf-text-strong);
	font-weight: 500;
}
.jhf-edition-card__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding-top: var(--jhf-space-4);
	color: var(--jhf-secondary);
	font-family: var(--jhf-font-display);
	font-weight: 700;
	font-size: var(--jhf-text-sm);
	text-decoration: none;
}
.jhf-edition-card__link::after {
	content: '→';
	transition: transform .25s ease-out;
}
.jhf-edition-card:hover .jhf-edition-card__link::after { transform: translateX(4px); }

/* --- 3. Muro loghi aziende --- */
.jhf-logo-wall {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: var(--jhf-space-6);
}
.jhf-logo-cell {
	aspect-ratio: 16 / 9;
	display: grid;
	place-items: center;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-md);
	padding: var(--jhf-space-6);
	transition: transform .25s ease-out, box-shadow .25s ease-out, border-color .25s ease-out;
}
.jhf-logo-cell:hover {
	border-color: var(--jhf-primary);
	transform: translateY(-3px);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-logo-cell img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.jhf-logo-placeholder {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-sm);
	letter-spacing: 1px;
	text-transform: uppercase;
	text-align: center;
}

/* ============================================================
   ===== Home page brand (v1.12.0) =====
   Shortcode [jhf_home]: compone l'intera homepage brand riusando le tre
   sezioni dinamiche (.jhf-next-event-card / .jhf-editions-calendar /
   .jhf-logo-wall già definite sopra) e aggiungendo le sezioni statiche.
   Valori dal mockup home.html tradotti in var(--jhf-*); i tint magenta
   riusano gli stessi literal rgba(236,0,95,x) del resto del file.
   Breakpoint: mobile-first, con min-width 768/1024 (640 dove serve).
   ============================================================ */

/* Wrapper: evita overflow orizzontale causato dalle sezioni full-bleed. */
.jhf-home {
	overflow-x: clip;
}

/* Sezioni "normali" (contenuto entro container) */
.jhf-home-section {
	padding: var(--jhf-space-16) 0;
	background: var(--jhf-surface);
}
.jhf-home-section--alt {
	background: var(--jhf-surface-alt);
}

/* Button ghost-light (mockup .btn-ghost-light) — usato nell'hero scuro */
.jhf-button--ghost-light,
a.jhf-button--ghost-light:link,
a.jhf-button--ghost-light:visited,
button.jhf-button--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.4);
}
.jhf-button--ghost-light:hover,
a.jhf-button--ghost-light:hover,
a.jhf-button--ghost-light:focus,
button.jhf-button--ghost-light:hover {
	background: transparent;
	color: #fff;
	border-color: #fff;
}

/* --- 1. HERO (full-bleed navy + radiale magenta) --- */
.jhf-hero {
	position: relative;
	overflow: hidden;
	background: var(--jhf-primary);
	color: #fff;
	padding: var(--jhf-space-16) 0;
	/* full-bleed: sfondo da bordo a bordo anche dentro container Elementor */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.jhf-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.18) 0%, transparent 60%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.08) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-12);
	align-items: center;
}
.jhf-hero__text .jhf-eyebrow { display: inline-block; }
.jhf-hero__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 0 var(--jhf-space-6);
}
.jhf-hero__highlight {
	color: var(--jhf-secondary);
	display: inline-block;
}
.jhf-hero__lead {
	font-size: var(--jhf-text-lg);
	line-height: 1.6;
	max-width: 640px;
	color: var(--jhf-text-on-dark);
	margin: 0 0 var(--jhf-space-8);
}
.jhf-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-4);
}

/* --- 3. ABOUT (Cos'è Job Hub) --- */
.jhf-about__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-12);
	align-items: center;
}
.jhf-about__image {
	position: relative;
	height: 320px;
	border-radius: var(--jhf-radius-xl);
	overflow: hidden;
	background: linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-secondary) 120%);
	order: -1;
}
.jhf-about__image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(45deg, rgba(13, 29, 49, 0.2), transparent);
}
.jhf-about__text .jhf-eyebrow { display: inline-block; }
.jhf-about__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 var(--jhf-space-4);
}
.jhf-about__lead {
	font-size: var(--jhf-text-lg);
	line-height: 1.6;
	color: var(--jhf-text);
	margin: 0 0 var(--jhf-space-8);
}
.jhf-values-list {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-6);
}
.jhf-value-item {
	display: flex;
	gap: var(--jhf-space-6);
	align-items: flex-start;
}
.jhf-value-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	background: var(--jhf-surface-alt);
	border-radius: var(--jhf-radius-md);
	color: var(--jhf-secondary);
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 800;
}
.jhf-value-item__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-base);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0 0 4px;
}
.jhf-value-item__text {
	font-size: var(--jhf-text-sm);
	color: var(--jhf-text-muted);
	margin: 0;
}

/* --- 4. HOW IT WORKS --- */
.jhf-how__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-8);
	margin-top: var(--jhf-space-8);
}
.jhf-how-column {
	background: var(--jhf-surface);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-8);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-how-column__header {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
	margin-bottom: var(--jhf-space-8);
	padding-bottom: var(--jhf-space-6);
	border-bottom: 2px solid var(--jhf-surface-alt);
}
.jhf-how-column__icon {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: var(--jhf-radius-md);
	background: var(--jhf-primary);
	color: #fff;
}
.jhf-how-column--companies .jhf-how-column__icon {
	background: var(--jhf-secondary);
}
.jhf-how-column__icon .jhf-icon {
	width: 26px;
	height: 26px;
	color: #fff;
}
.jhf-how-column__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xl);
	font-weight: 800;
	color: var(--jhf-text-strong);
	margin: 0;
}
.jhf-steps-list {
	list-style: none;
	counter-reset: jhf-step;
	margin: 0;
	padding: 0;
}
.jhf-step-item {
	counter-increment: jhf-step;
	display: flex;
	gap: var(--jhf-space-6);
	padding: var(--jhf-space-6) 0;
	border-bottom: 1px solid var(--jhf-surface-alt);
}
.jhf-step-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.jhf-step-item::before {
	content: counter(jhf-step);
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--jhf-surface-alt);
	color: var(--jhf-primary);
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: var(--jhf-text-base);
}
.jhf-step-content__title {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-base);
	font-weight: 700;
	color: var(--jhf-text-strong);
	margin: 0 0 4px;
}
.jhf-step-content__text {
	font-size: var(--jhf-text-sm);
	color: var(--jhf-text-muted);
	margin: 0;
}

/* --- 5. Companies CTA (sotto il muro loghi) --- */
/* v1.21.8 — in Home il muro aziende è una STRISCIA a scorrimento orizzontale
   (ordinata per anno), così non allunga la pagina anche con molte aziende. */
.jhf-home-companies .jhf-logo-wall {
	margin-top: var(--jhf-space-8);
	margin-bottom: var(--jhf-space-8);
	display: flex;
	flex-wrap: nowrap;
	grid-template-columns: none;
	overflow-x: auto;
	gap: var(--jhf-space-4);
	padding-bottom: var(--jhf-space-3);
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.jhf-home-companies .jhf-logo-cell {
	flex: 0 0 auto;
	width: 180px;
	scroll-snap-align: start;
}
.jhf-home-companies .jhf-logo-wall::-webkit-scrollbar { height: 8px; }
.jhf-home-companies .jhf-logo-wall::-webkit-scrollbar-thumb { background: var(--jhf-border); border-radius: 999px; }
.jhf-home-companies .jhf-logo-wall::-webkit-scrollbar-track { background: transparent; }
@media (max-width: 640px) {
	.jhf-home-companies .jhf-logo-cell { width: 150px; }
}
.jhf-companies-cta {
	text-align: center;
}

/* --- 6. Partner iniziativa (predisposta) --- */
.jhf-home-partners__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: var(--jhf-space-6);
	margin-top: var(--jhf-space-8);
}
.jhf-home-partners__cell {
	aspect-ratio: 16 / 9;
	display: grid;
	place-items: center;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-md);
	padding: var(--jhf-space-6);
}
.jhf-home-partners__cell img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* --- 7. FAQ (accordion CSS puro con <details>/<summary>) --- */
.jhf-hfaq__wrapper {
	max-width: 820px;
}
.jhf-hfaq-list {
	margin-top: var(--jhf-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
}
.jhf-hfaq-item {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-md);
	overflow: hidden;
	transition: border-color .25s ease-out, box-shadow .25s ease-out;
}
.jhf-hfaq-item[open] {
	border-color: var(--jhf-secondary);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-hfaq-question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--jhf-space-6);
	padding: var(--jhf-space-6) var(--jhf-space-8);
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-base);
	font-weight: 700;
	color: var(--jhf-primary);
	cursor: pointer;
	list-style: none;
}
.jhf-hfaq-question::-webkit-details-marker { display: none; }
.jhf-hfaq-question:focus-visible {
	outline: 2px solid var(--jhf-secondary);
	outline-offset: -2px;
}
.jhf-hfaq-toggle {
	position: relative;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jhf-surface-alt);
	transition: background-color .25s ease-out, transform .25s ease-out;
}
.jhf-hfaq-toggle::before,
.jhf-hfaq-toggle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	background: currentColor;
	transform: translate(-50%, -50%);
}
.jhf-hfaq-toggle::before { width: 12px; height: 2px; }
.jhf-hfaq-toggle::after  { width: 2px; height: 12px; }
.jhf-hfaq-item[open] .jhf-hfaq-toggle {
	background: var(--jhf-secondary);
	color: #fff;
	transform: rotate(45deg);
}
.jhf-hfaq-answer {
	padding: 0 var(--jhf-space-8) var(--jhf-space-6);
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-sm);
	line-height: 1.7;
}

/* --- 8. FINAL CTA (full-bleed magenta) --- */
.jhf-final-cta {
	position: relative;
	overflow: hidden;
	background: var(--jhf-secondary);
	color: #fff;
	padding: var(--jhf-space-16) 0;
	text-align: center;
	/* full-bleed */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.jhf-final-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.1) 0%, transparent 40%),
		radial-gradient(circle at 80% 70%, rgba(13, 29, 49, 0.15) 0%, transparent 40%);
	pointer-events: none;
}
.jhf-final-cta__inner {
	position: relative;
	max-width: 720px;
}
.jhf-final-cta .jhf-eyebrow { display: inline-block; }
.jhf-final-cta__title {
	font-family: var(--jhf-font-display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.15;
	color: #fff;
	margin: 0 0 var(--jhf-space-4);
}
.jhf-final-cta__text {
	font-size: var(--jhf-text-lg);
	color: rgba(255, 255, 255, 0.9);
	margin: 0 0 var(--jhf-space-8);
}
.jhf-final-cta .jhf-button--secondary {
	background: #fff;
	color: var(--jhf-secondary);
	border-color: #fff;
}
.jhf-final-cta .jhf-button--secondary:hover {
	background: var(--jhf-primary);
	color: #fff;
	border-color: var(--jhf-primary);
}

/* --- Responsive home --- */
@media (max-width: 640px) {
	.jhf-hero__actions .jhf-button,
	.jhf-final-cta .jhf-button {
		width: 100%;
	}
}
@media (min-width: 768px) {
	.jhf-how__grid {
		grid-template-columns: 1fr 1fr;
	}
	.jhf-about__image {
		height: 480px;
	}
}
@media (min-width: 1024px) {
	.jhf-hero {
		padding: var(--jhf-space-24) 0 var(--jhf-space-16);
	}
	.jhf-hero__inner {
		grid-template-columns: 1.1fr 0.9fr;
		gap: var(--jhf-space-24);
	}
	.jhf-about__grid {
		grid-template-columns: 1fr 1fr;
		gap: var(--jhf-space-24);
	}
	.jhf-about__image {
		order: 0;
	}
}

/* ============================================================
   ===== Brand pages: Progetto + Contatti (v1.13.0, fedeli ai mockup) =====
   Shortcode [jhf_progetto] (il-progetto.html) e [jhf_contatti] (contatti.html).
   Riusano .jhf-container / .jhf-button* / .jhf-eyebrow / .jhf-home-section /
   .jhf-final-cta e aggiungono classi nuove prefissate jhf-. La FAQ contatti usa
   il namespace dedicato .jhf-cfaq-* (nessuna collisione con .jhf-faq-*/.jhf-hfaq-*).
   Immagini Unsplash dei mockup sostituite da placeholder a gradiente brand.
   Full-bleed con width:100vw; margin-left:calc(50% - 50vw). Breakpoint 640/768/960/1024.
   ============================================================ */

.jhf-progetto,
.jhf-contatti,
.jhf-blog,
.jhf-article {
	overflow-x: clip;
}

/* --- Section header centrato: variante on-dark --- */
.jhf-section-header--on-dark .jhf-section-header__title { color: #fff; }
.jhf-section-header--on-dark .jhf-section-header__paragraph { color: rgba(255, 255, 255, 0.72); }

/* --- Hero editoriale brand (full-bleed navy) --- */
.jhf-page-hero {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: var(--jhf-primary);
	color: #fff;
	padding: var(--jhf-space-24) 0 var(--jhf-space-16);
}
.jhf-page-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(236, 0, 95, 0.18) 0%, transparent 55%),
		radial-gradient(ellipse at bottom left, rgba(236, 0, 95, 0.06) 0%, transparent 50%);
	pointer-events: none;
}
.jhf-page-hero__inner { position: relative; max-width: 820px; }
.jhf-page-hero .jhf-eyebrow { display: inline-block; margin-bottom: var(--jhf-space-4); }
.jhf-page-hero__title {
	color: #fff;
	font-family: var(--jhf-font-display);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.01em;
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	margin: 0 0 var(--jhf-space-6);
}
.jhf-page-hero__lead {
	color: rgba(255, 255, 255, 0.85);
	font-size: clamp(1.125rem, 2vw, 1.375rem);
	line-height: 1.6;
	max-width: 720px;
	margin: 0;
}

/* ============================================================
   Progetto — Storia (testo + immagine)
   ============================================================ */
.jhf-story__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-12);
	align-items: center;
}
.jhf-story__text .jhf-eyebrow { display: block; margin-bottom: var(--jhf-space-4); }
.jhf-story__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 var(--jhf-space-6);
}
.jhf-story__p {
	color: var(--jhf-text);
	font-size: var(--jhf-text-base);
	line-height: 1.7;
	margin: 0 0 var(--jhf-space-4);
}
.jhf-story__p:last-child { margin-bottom: 0; }
.jhf-story__p strong { color: var(--jhf-primary); font-weight: 700; }
.jhf-story__media {
	position: relative;
	border-radius: var(--jhf-radius-xl);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
}
figure.jhf-story__media { margin: 0; }
.jhf-story__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.jhf-story__media--placeholder {
	background:
		radial-gradient(circle at 30% 20%, rgba(236, 0, 95, 0.35) 0%, transparent 55%),
		linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
}

/* ============================================================
   Progetto — Mission (quote centrata con accent)
   ============================================================ */
.jhf-mission__inner {
	max-width: 880px;
	margin: 0 auto;
	text-align: center;
}
.jhf-mission__inner .jhf-eyebrow { display: inline-block; margin-bottom: var(--jhf-space-4); }
.jhf-mission__quote {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(1.75rem, 3.5vw, 2.625rem);
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: 0 0 var(--jhf-space-8);
}
.jhf-mission__accent { color: var(--jhf-secondary); }
.jhf-mission__signature {
	display: inline-flex;
	align-items: center;
	gap: var(--jhf-space-4);
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-sm);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}
.jhf-mission__signature::before {
	content: '';
	display: inline-block;
	width: 40px;
	height: 2px;
	background: var(--jhf-secondary);
}

/* ============================================================
   Progetto — Valori (3 card numerate)
   ============================================================ */
.jhf-values__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
.jhf-value-card {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-6);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-12);
	transition: transform .2s ease-out, box-shadow .2s ease-out, border-color .2s ease-out;
}
.jhf-value-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--jhf-shadow-md);
	border-color: transparent;
}
.jhf-value-card__num {
	display: inline-flex;
	align-items: center;
	gap: var(--jhf-space-4);
	font-size: var(--jhf-text-sm);
	font-weight: 800;
	letter-spacing: 2px;
	color: var(--jhf-secondary);
	text-transform: uppercase;
}
.jhf-value-card__num::after {
	content: '';
	flex: 1;
	height: 2px;
	background: var(--jhf-surface-alt);
}
.jhf-value-card__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.625rem;
	line-height: 1.2;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-value-card__text {
	font-size: var(--jhf-text-base);
	line-height: 1.65;
	color: var(--jhf-text);
	margin: 0;
}

/* ============================================================
   Progetto — Team
   ============================================================ */
.jhf-team__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--jhf-space-8);
}
.jhf-team-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--jhf-space-3);
}
.jhf-team-card__photo {
	width: 160px;
	height: 160px;
	border-radius: 50%;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	border: 4px solid #fff;
	box-shadow: var(--jhf-shadow-sm);
	transition: transform .2s ease-out, box-shadow .2s ease-out;
}
.jhf-team-card:hover .jhf-team-card__photo {
	transform: translateY(-4px) scale(1.03);
	box-shadow: var(--jhf-shadow-md);
}
.jhf-team-card__photo--placeholder {
	display: grid;
	place-items: center;
	color: #fff;
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 2.5rem;
	background:
		radial-gradient(circle at 30% 25%, rgba(236, 0, 95, 0.5) 0%, transparent 60%),
		linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
}
.jhf-team-card__name {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.125rem;
	color: var(--jhf-primary);
	margin: var(--jhf-space-2) 0 0;
}
.jhf-team-card__role {
	font-size: var(--jhf-text-xs);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-secondary);
	font-weight: 700;
}
.jhf-team-card__bio {
	font-size: var(--jhf-text-sm);
	line-height: 1.55;
	color: var(--jhf-text-muted);
	max-width: 220px;
	margin: 0;
}

/* ============================================================
   Progetto — Impatto (navy full-bleed: stat + mappa Lazio)
   ============================================================ */
.jhf-impact {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: var(--jhf-primary);
	color: #fff;
	padding: var(--jhf-space-24) 0;
}
.jhf-impact > .jhf-container { position: relative; }
.jhf-impact__stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--jhf-space-8);
	margin-bottom: var(--jhf-space-16);
}
.jhf-impact__stat { text-align: center; padding: var(--jhf-space-4); }
.jhf-impact__stat strong {
	display: block;
	font-family: var(--jhf-font-display);
	font-weight: 900;
	font-size: clamp(3rem, 6vw, 5rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--jhf-secondary);
	margin-bottom: var(--jhf-space-2);
}
.jhf-impact__stat span {
	font-size: var(--jhf-text-sm);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: rgba(255, 255, 255, 0.7);
	font-weight: 600;
}
.jhf-impact__map {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-16);
	align-items: center;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-12);
}
.jhf-impact__map-text h3 {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.75rem;
	color: #fff;
	margin: 0 0 var(--jhf-space-4);
}
.jhf-impact__map-text p {
	color: rgba(255, 255, 255, 0.75);
	font-size: var(--jhf-text-base);
	line-height: 1.6;
	margin: 0 0 var(--jhf-space-6);
}
.jhf-impact__cities { display: flex; flex-direction: column; gap: var(--jhf-space-4); }
.jhf-impact__city {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-4) var(--jhf-space-6);
	background: rgba(255, 255, 255, 0.04);
	border-radius: var(--jhf-radius-md);
	border-left: 3px solid var(--jhf-secondary);
}
.jhf-impact__city-name { font-weight: 700; color: #fff; }
.jhf-impact__city-meta { font-size: var(--jhf-text-sm); color: rgba(255, 255, 255, 0.55); margin-left: auto; }
.jhf-impact__map-svg { display: grid; place-items: center; }
.jhf-lazio-map {
	width: 100%;
	height: auto;
	max-height: 480px;
	font-family: var(--jhf-font-display);
}

/* ============================================================
   Progetto — Testimonial (3 card)
   ============================================================ */
.jhf-testimonials__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
.jhf-testimonial-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-6);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-12);
}
.jhf-testimonial-card::before {
	content: '\201C';
	position: absolute;
	top: var(--jhf-space-4);
	right: var(--jhf-space-6);
	font-family: Georgia, serif;
	font-size: 96px;
	font-weight: 900;
	line-height: 1;
	color: var(--jhf-secondary);
	opacity: 0.18;
}
.jhf-testimonial-card__quote {
	position: relative;
	color: var(--jhf-primary);
	font-size: var(--jhf-text-base);
	line-height: 1.65;
	font-weight: 500;
	margin: 0;
}
.jhf-testimonial-card__author {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
	padding-top: var(--jhf-space-6);
	margin-top: auto;
	border-top: 1px solid var(--jhf-surface-alt);
}
.jhf-testimonial-card__avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	background-size: cover;
	background-position: center;
}
.jhf-testimonial-card__avatar--placeholder {
	display: grid;
	place-items: center;
	color: #fff;
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1rem;
	background: linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
}
.jhf-testimonial-card__name { font-weight: 800; color: var(--jhf-primary); font-size: var(--jhf-text-sm); }
.jhf-testimonial-card__role { font-size: var(--jhf-text-xs); color: var(--jhf-text-muted); }

/* --- Final CTA: azioni multiple (riusa .jhf-final-cta) --- */
.jhf-final-cta__actions {
	display: flex;
	gap: var(--jhf-space-4);
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================================
   Contatti — Contact split (form + canali)
   ============================================================ */
.jhf-contact-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-12);
	align-items: start;
}

/* Form card */
.jhf-contact-form-card {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-12);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-contact-form-card__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 2rem;
	color: var(--jhf-primary);
	margin: 0 0 var(--jhf-space-4);
}
.jhf-contact-form-card__intro {
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-base);
	margin: 0 0 var(--jhf-space-8);
}

.jhf-contact-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
.jhf-form-row { display: flex; flex-direction: column; gap: 6px; }
.jhf-form-row--full { grid-column: 1 / -1; }
.jhf-form-row label,
.jhf-form-label {
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted);
}
.jhf-req { color: var(--jhf-secondary); }

.jhf-input,
.jhf-select,
.jhf-textarea {
	width: 100%;
	padding: 14px 18px;
	border-radius: var(--jhf-radius-md);
	border: 2px solid var(--jhf-border);
	background: var(--jhf-surface-alt);
	font-family: inherit;
	font-size: var(--jhf-text-sm);
	color: var(--jhf-primary);
	outline: none;
	transition: border-color .2s ease-out, background .2s ease-out, box-shadow .2s ease-out;
}
.jhf-input::placeholder,
.jhf-textarea::placeholder { color: var(--jhf-text-muted); }
.jhf-input:focus,
.jhf-select:focus,
.jhf-textarea:focus {
	border-color: var(--jhf-primary);
	background: var(--jhf-surface);
	box-shadow: 0 0 0 4px rgba(13, 29, 49, 0.06);
}
.jhf-textarea { min-height: 140px; resize: vertical; line-height: 1.5; }
.jhf-select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23768499' d='M6 8L0 0h12z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 18px center;
	padding-right: 44px;
}

/* Request-type pills = radio stilizzati (funzionano senza JS) */
.jhf-reqpills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-2);
	margin-top: 6px;
}
.jhf-reqpill { display: inline-flex; cursor: pointer; }
.jhf-reqpill input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}
.jhf-reqpill span {
	display: inline-block;
	padding: 10px 18px;
	border-radius: var(--jhf-radius-full);
	background: var(--jhf-surface-alt);
	border: 2px solid transparent;
	font-size: var(--jhf-text-sm);
	font-weight: 600;
	color: var(--jhf-primary);
	transition: background .2s ease-out, color .2s ease-out, border-color .2s ease-out;
}
.jhf-reqpill:hover span { background: var(--jhf-border); }
.jhf-reqpill input:checked + span {
	background: var(--jhf-primary);
	color: #fff;
	border-color: var(--jhf-primary);
}
.jhf-reqpill input:focus-visible + span {
	outline: 2px solid var(--jhf-secondary);
	outline-offset: 2px;
}

.jhf-checkbox-row {
	display: flex;
	align-items: flex-start;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-6);
	background: var(--jhf-surface-alt);
	border-radius: var(--jhf-radius-md);
}
.jhf-checkbox-row input[type="checkbox"] {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	margin-top: 2px;
	accent-color: var(--jhf-secondary);
	cursor: pointer;
}
.jhf-checkbox-row label {
	font-size: var(--jhf-text-sm);
	line-height: 1.55;
	color: var(--jhf-primary);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
	cursor: pointer;
}
.jhf-checkbox-row a { color: var(--jhf-secondary); font-weight: 700; text-decoration: underline; }

.jhf-button--block { width: 100%; justify-content: center; padding: 16px 28px; font-size: 1rem; }
.jhf-form-actions { gap: 0; }
.jhf-form-note {
	margin-top: var(--jhf-space-4);
	font-size: var(--jhf-text-xs);
	color: var(--jhf-text-muted);
	text-align: center;
}
.jhf-form-note a { color: var(--jhf-secondary); font-weight: 700; }

/* Form notice banner (esito) */
.jhf-form-notice {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-3);
	padding: var(--jhf-space-4) var(--jhf-space-6);
	border-radius: var(--jhf-radius-md);
	margin-bottom: var(--jhf-space-6);
	font-size: var(--jhf-text-sm);
	font-weight: 600;
}
.jhf-form-notice--success { background: rgba(16, 122, 87, 0.1); color: #0f7a57; border: 1px solid rgba(16, 122, 87, 0.25); }
.jhf-form-notice--error { background: rgba(236, 0, 95, 0.08); color: var(--jhf-secondary-dark); border: 1px solid rgba(236, 0, 95, 0.25); }
.jhf-form-notice .jhf-icon { width: 20px; height: 20px; flex-shrink: 0; }

/* Honeypot */
.jhf-hp-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Canali (colonna destra) */
.jhf-channels { display: flex; flex-direction: column; gap: var(--jhf-space-6); }
.jhf-channel-card {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-2);
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	padding: var(--jhf-space-8);
	transition: transform .2s ease-out, box-shadow .2s ease-out, border-color .2s ease-out;
}
a.jhf-channel-card:hover {
	border-color: var(--jhf-secondary);
	transform: translateY(-3px);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-channel-card__icon {
	width: 44px;
	height: 44px;
	border-radius: var(--jhf-radius-md);
	background: rgba(236, 0, 95, 0.1);
	color: var(--jhf-secondary);
	display: grid;
	place-items: center;
	margin-bottom: var(--jhf-space-4);
}
.jhf-channel-card__icon .jhf-icon { width: 22px; height: 22px; }
.jhf-channel-card__label {
	font-size: var(--jhf-text-sm);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-text-muted);
	font-weight: 700;
	margin: 0;
}
.jhf-channel-card__value {
	font-size: var(--jhf-text-lg);
	font-weight: 800;
	color: var(--jhf-primary);
	word-break: break-word;
}
.jhf-channel-card__desc { font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); margin: 4px 0 0; }

.jhf-channel-card--social { background: var(--jhf-primary); }
.jhf-channel-card--social .jhf-channel-card__label { color: rgba(255, 255, 255, 0.7); }
.jhf-channel-card--social .jhf-channel-card__value { color: #fff; }
.jhf-channel-card--social .jhf-channel-card__icon { background: rgba(255, 255, 255, 0.1); color: #fff; }
.jhf-channel-card__social { display: flex; gap: var(--jhf-space-4); margin-top: var(--jhf-space-4); }
.jhf-channel-social-link {
	flex: 1;
	padding: 12px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--jhf-radius-md);
	color: #fff;
	font-weight: 700;
	font-size: var(--jhf-text-xs);
	text-align: center;
	transition: background .2s ease-out, border-color .2s ease-out;
}
.jhf-channel-social-link:hover { background: var(--jhf-secondary); border-color: var(--jhf-secondary); }

/* ============================================================
   Contatti — Sede (info + mappa placeholder con pin animato)
   ============================================================ */
.jhf-location__block {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-xl);
	overflow: hidden;
}
.jhf-location__info {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-12);
}
.jhf-location__place {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.75rem;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-location__address { font-size: var(--jhf-text-base); color: var(--jhf-text-muted); line-height: 1.5; }
.jhf-location__meta {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	border-top: 1px solid var(--jhf-border);
	padding-top: var(--jhf-space-4);
}
.jhf-location__meta-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--jhf-space-4);
	padding: 4px 0;
}
.jhf-location__meta-label {
	color: var(--jhf-text-muted);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-size: var(--jhf-text-xs);
	font-weight: 700;
}
.jhf-location__meta-value { color: var(--jhf-primary); font-weight: 700; font-size: var(--jhf-text-sm); }
.jhf-location__cta { margin-top: var(--jhf-space-4); align-self: flex-start; }
.jhf-location__map {
	min-height: 300px;
	position: relative;
	background: var(--jhf-surface-alt);
	display: grid;
	place-items: center;
}
.jhf-location__map-grid {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	background:
		linear-gradient(135deg, rgba(236, 0, 95, 0.06) 0%, transparent 50%),
		repeating-linear-gradient(0deg, rgba(13, 29, 49, 0.04) 0px, rgba(13, 29, 49, 0.04) 1px, transparent 1px, transparent 30px),
		repeating-linear-gradient(90deg, rgba(13, 29, 49, 0.04) 0px, rgba(13, 29, 49, 0.04) 1px, transparent 1px, transparent 30px),
		var(--jhf-surface-alt);
}
.jhf-location__pin {
	position: relative;
	width: 56px;
	height: 56px;
	background: var(--jhf-secondary);
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 8px 24px rgba(236, 0, 95, 0.4);
}
.jhf-location__pin::after {
	content: '';
	position: absolute;
	inset: -10px;
	border: 2px solid var(--jhf-secondary);
	border-radius: 50%;
	opacity: 0.4;
	animation: jhf-pin-ping 2s infinite;
}
@keyframes jhf-pin-ping {
	0% { transform: scale(0.8); opacity: 0.6; }
	100% { transform: scale(2); opacity: 0; }
}

/* ============================================================
   Contatti — FAQ (namespace dedicato jhf-cfaq, NON jhf-faq/jhf-hfaq)
   Accordion CSS puro con <details>/<summary>.
   ============================================================ */
.jhf-cfaq__wrapper { max-width: 820px; }
.jhf-cfaq-list {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
}
.jhf-cfaq-item {
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-md);
	padding: 0 var(--jhf-space-6);
	transition: box-shadow .2s ease-out, border-color .2s ease-out;
}
.jhf-cfaq-item[open] {
	border-color: rgba(236, 0, 95, 0.35);
	box-shadow: var(--jhf-shadow-sm);
}
.jhf-cfaq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-6) 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-lg);
	font-weight: 700;
	color: var(--jhf-primary);
}
.jhf-cfaq-question::-webkit-details-marker { display: none; }
.jhf-cfaq-question:focus-visible {
	outline: 2px solid var(--jhf-secondary);
	outline-offset: 2px;
	border-radius: var(--jhf-radius-sm);
}
.jhf-cfaq-toggle {
	position: relative;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}
.jhf-cfaq-toggle::before,
.jhf-cfaq-toggle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--jhf-secondary);
	transition: transform .2s ease-out, opacity .2s ease-out;
}
.jhf-cfaq-toggle::before { width: 12px; height: 2px; }
.jhf-cfaq-toggle::after  { width: 2px; height: 12px; }
.jhf-cfaq-item[open] .jhf-cfaq-toggle::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.jhf-cfaq-answer {
	padding: 0 0 var(--jhf-space-6);
	font-size: var(--jhf-text-base);
	line-height: 1.7;
	color: var(--jhf-text);
}

/* ============================================================
   Responsive brand pages — 640 / 768 / 960 / 1024
   ============================================================ */
@media (max-width: 640px) {
	.jhf-final-cta__actions .jhf-button,
	.jhf-page-hero__actions .jhf-button { width: 100%; }
}
@media (min-width: 768px) {
	.jhf-values__grid { grid-template-columns: repeat(3, 1fr); }
	.jhf-impact__stats { grid-template-columns: repeat(4, 1fr); }
	.jhf-contact-form__grid { grid-template-columns: 1fr 1fr; }
	.jhf-testimonials__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 960px) {
	.jhf-story__grid { grid-template-columns: 1fr 1fr; gap: var(--jhf-space-24); }
	.jhf-story__media { aspect-ratio: 4 / 3; }
	.jhf-impact__map { grid-template-columns: 1fr 1.2fr; }
	.jhf-contact-split { grid-template-columns: 1.4fr 1fr; gap: var(--jhf-space-16); }
	.jhf-location__block { grid-template-columns: 1fr 1fr; }
	.jhf-location__map { min-height: 380px; }
}

/* ============================================================
   ===== Blog (v1.13.0) =====
   Archivio (blog.html) + articolo singolo (single-article.html).
   Placeholder cover a gradiente brand (.jhf-cover-ph.img-1..9). Corpo
   articolo in Lora serif con drop-cap, pull-quote, callout. Reading progress.
   Newsletter form. Full-bleed dove serve. Breakpoint 640/768/960.
   ============================================================ */

/* Cover placeholder a gradiente brand (varianti per varietà visiva) */
.jhf-cover-ph {
	background: linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
}
.jhf-cover-ph.img-1 { background: linear-gradient(135deg, #0D1D31 0%, #1a2d4a 100%); }
.jhf-cover-ph.img-2 { background: linear-gradient(135deg, #12233b 0%, #EC005F 160%); }
.jhf-cover-ph.img-3 { background: linear-gradient(160deg, #0D1D31 0%, #33324f 100%); }
.jhf-cover-ph.img-4 { background: linear-gradient(135deg, #1a2d4a 0%, #0D1D31 100%); }
.jhf-cover-ph.img-5 { background: linear-gradient(120deg, #0D1D31 0%, #7a1140 130%); }
.jhf-cover-ph.img-6 { background: linear-gradient(150deg, #14243d 0%, #1a2d4a 100%); }
.jhf-cover-ph.img-7 { background: linear-gradient(135deg, #0D1D31 20%, #3a2b45 120%); }
.jhf-cover-ph.img-8 { background: linear-gradient(135deg, #1a2d4a 0%, #EC005F 180%); }
.jhf-cover-ph.img-9 { background: linear-gradient(160deg, #0D1D31 0%, #24344d 100%); }

/* Avatar placeholder (autore) */
.jhf-article-avatar--placeholder {
	display: grid;
	place-items: center;
	color: #fff;
	font-family: var(--jhf-font-display);
	font-weight: 800;
	background: linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
}

/* Barra categorie sticky */
.jhf-cat-bar {
	background: var(--jhf-surface);
	border-bottom: 1px solid var(--jhf-border);
	padding: var(--jhf-space-4) 0;
	position: sticky;
	top: 0;
	z-index: 40;
}
.jhf-cat-bar__inner { display: flex; gap: var(--jhf-space-4); align-items: center; flex-wrap: wrap; }
.jhf-cat-pill {
	padding: 7px 16px;
	border-radius: var(--jhf-radius-full);
	background: var(--jhf-surface-alt);
	border: 1px solid transparent;
	font-size: var(--jhf-text-sm);
	font-weight: 600;
	color: var(--jhf-primary);
	transition: background .2s ease-out, color .2s ease-out, border-color .2s ease-out;
}
.jhf-cat-pill:hover { background: var(--jhf-border); }
.jhf-cat-pill.is-active { background: var(--jhf-primary); color: #fff; border-color: var(--jhf-primary); }

/* Riga titolo sezione */
.jhf-section-title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: var(--jhf-space-4);
	flex-wrap: wrap;
	margin-bottom: var(--jhf-space-8);
}
.jhf-section-title-row h2 {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-section-meta { color: var(--jhf-text-muted); font-size: var(--jhf-text-sm); font-weight: 600; }

/* Article cat label */
.jhf-article-cat {
	display: inline-block;
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-secondary);
	align-self: flex-start;
}

/* Featured article */
.jhf-featured-article {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-xl);
	overflow: hidden;
	box-shadow: var(--jhf-shadow-md);
	transition: transform .2s ease-out, box-shadow .2s ease-out, border-color .2s ease-out;
}
.jhf-featured-article:hover {
	transform: translateY(-4px);
	box-shadow: var(--jhf-shadow-lg);
	border-color: transparent;
}
.jhf-featured-article__image {
	position: relative;
	min-height: 260px;
	background-size: cover;
	background-position: center;
}
.jhf-featured-pill {
	position: absolute;
	top: var(--jhf-space-4);
	left: var(--jhf-space-4);
	background: var(--jhf-secondary);
	color: #fff;
	padding: 6px 14px;
	border-radius: var(--jhf-radius-full);
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}
.jhf-featured-article__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-12);
}
.jhf-featured-article__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.2;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-featured-article__excerpt { font-size: var(--jhf-text-base); line-height: 1.65; color: var(--jhf-text-muted); margin: 0; }

/* Article meta (autore) */
.jhf-article-meta {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
	padding-top: var(--jhf-space-4);
	margin-top: var(--jhf-space-2);
	border-top: 1px solid var(--jhf-surface-alt);
}
.jhf-article-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	font-size: 0.85rem;
	background-size: cover;
	background-position: center;
}
.jhf-article-meta__info { display: flex; flex-direction: column; gap: 2px; }
.jhf-article-author-name { font-weight: 700; font-size: var(--jhf-text-sm); color: var(--jhf-primary); }
.jhf-article-meta__dates { font-size: var(--jhf-text-xs); color: var(--jhf-text-muted); display: flex; gap: 8px; align-items: center; }
.jhf-article-meta__dates .jhf-dot { color: var(--jhf-border); }

/* Griglia articoli */
.jhf-articles-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--jhf-space-6);
}
.jhf-article-card {
	display: flex;
	flex-direction: column;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	overflow: hidden;
	transition: transform .2s ease-out, box-shadow .2s ease-out, border-color .2s ease-out;
}
.jhf-article-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--jhf-shadow-md);
	border-color: transparent;
}
.jhf-article-card__image {
	width: 100%;
	height: 200px;
	background-size: cover;
	background-position: center;
}
.jhf-article-card__content {
	display: flex;
	flex-direction: column;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-4) var(--jhf-space-8) var(--jhf-space-8);
	flex: 1;
}
.jhf-article-card__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--jhf-primary);
	margin: 0;
}
.jhf-article-card__excerpt {
	font-size: var(--jhf-text-sm);
	line-height: 1.55;
	color: var(--jhf-text-muted);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.jhf-article-card__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--jhf-space-2);
	font-size: var(--jhf-text-xs);
	color: var(--jhf-text-muted);
	padding-top: var(--jhf-space-4);
	margin-top: auto;
	border-top: 1px solid var(--jhf-surface-alt);
}
.jhf-read-time { font-weight: 700; color: var(--jhf-primary); }
.jhf-blog-empty { text-align: center; color: var(--jhf-text-muted); padding: var(--jhf-space-16) 0; }

/* Paginazione (markup di paginate_links: .page-numbers) */
.jhf-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--jhf-space-2);
	margin-top: var(--jhf-space-16);
}
.jhf-pagination .page-numbers {
	min-width: 40px;
	height: 40px;
	padding: 0 var(--jhf-space-4);
	border-radius: var(--jhf-radius-md);
	border: 1px solid var(--jhf-border);
	background: transparent;
	color: var(--jhf-primary);
	font-weight: 700;
	font-size: var(--jhf-text-sm);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color .2s ease-out, background .2s ease-out, color .2s ease-out;
}
.jhf-pagination a.page-numbers:hover { border-color: var(--jhf-primary); }
.jhf-pagination .page-numbers.current { background: var(--jhf-primary); color: #fff; border-color: var(--jhf-primary); }
.jhf-pagination .page-numbers.dots { border-color: transparent; }

/* Newsletter CTA */
.jhf-newsletter-cta {
	position: relative;
	overflow: hidden;
	background: var(--jhf-primary);
	color: #fff;
	border-radius: var(--jhf-radius-xl);
	padding: var(--jhf-space-24) var(--jhf-space-12);
	text-align: center;
}
.jhf-newsletter-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 30%, rgba(236, 0, 95, 0.2) 0%, transparent 50%),
		radial-gradient(circle at 85% 70%, rgba(236, 0, 95, 0.1) 0%, transparent 50%);
}
.jhf-newsletter-cta__inner { position: relative; max-width: 580px; margin: 0 auto; }
.jhf-newsletter-cta .jhf-eyebrow { display: inline-block; margin-bottom: var(--jhf-space-4); }
.jhf-newsletter-cta__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: #fff;
	margin: 0 0 var(--jhf-space-4);
}
.jhf-newsletter-cta__text { color: rgba(255, 255, 255, 0.8); margin: 0 0 var(--jhf-space-8); }
.jhf-newsletter-notice {
	max-width: 460px;
	margin: 0 auto var(--jhf-space-6);
	padding: var(--jhf-space-3) var(--jhf-space-4);
	border-radius: var(--jhf-radius-md);
	font-size: var(--jhf-text-sm);
	font-weight: 600;
}
.jhf-newsletter-notice--ok { background: rgba(255, 255, 255, 0.12); color: #fff; }
.jhf-newsletter-notice--err { background: rgba(236, 0, 95, 0.2); color: #fff; }
.jhf-newsletter-form { display: flex; gap: var(--jhf-space-4); max-width: 460px; margin: 0 auto; }
.jhf-newsletter-input {
	flex: 1;
	padding: 14px 20px;
	border-radius: var(--jhf-radius-full);
	border: 2px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-family: inherit;
	font-size: var(--jhf-text-sm);
	outline: none;
	transition: border-color .2s ease-out, background .2s ease-out;
}
.jhf-newsletter-input::placeholder { color: rgba(255, 255, 255, 0.5); }
.jhf-newsletter-input:focus { border-color: var(--jhf-secondary); background: rgba(255, 255, 255, 0.12); }

/* ============================================================
   Blog — Articolo singolo
   ============================================================ */
.jhf-reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 3px;
	background: var(--jhf-secondary);
	z-index: 1000;
	transition: width .05s linear;
}
.jhf-container-narrow {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 var(--jhf-space-6);
}

.jhf-article-header { padding: var(--jhf-space-16) 0 var(--jhf-space-8); background: var(--jhf-surface); }
.jhf-article-breadcrumb {
	display: inline-flex;
	color: var(--jhf-text-muted);
	font-size: var(--jhf-text-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: var(--jhf-space-8);
}
.jhf-article-breadcrumb a { transition: color .2s ease-out; }
.jhf-article-breadcrumb a:hover { color: var(--jhf-secondary); }
.jhf-article-cat-pill {
	display: inline-block;
	color: var(--jhf-secondary);
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: var(--jhf-space-4);
}
.jhf-article-title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: clamp(2.25rem, 5.5vw, 3.75rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--jhf-primary);
	margin: 0 0 var(--jhf-space-4);
}
.jhf-article-deck {
	font-size: 1.3125rem;
	color: var(--jhf-text-muted);
	line-height: 1.5;
	font-weight: 500;
	margin: 0 0 var(--jhf-space-8);
}
.jhf-article-meta-row {
	display: flex;
	align-items: center;
	gap: var(--jhf-space-4);
	padding: var(--jhf-space-4) 0;
	border-top: 1px solid var(--jhf-border);
	border-bottom: 1px solid var(--jhf-border);
}
.jhf-article-author-block { display: flex; align-items: center; gap: var(--jhf-space-4); }
.jhf-article-author-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	font-size: 1rem;
}
.jhf-article-author-info { display: flex; flex-direction: column; gap: 2px; }
.jhf-article-author-info .jhf-name { font-weight: 800; font-size: var(--jhf-text-sm); color: var(--jhf-primary); }
.jhf-article-author-info .jhf-role { font-size: var(--jhf-text-xs); color: var(--jhf-text-muted); text-transform: uppercase; letter-spacing: 1px; }
.jhf-article-dates {
	margin-left: auto;
	display: flex;
	gap: var(--jhf-space-4);
	font-size: var(--jhf-text-xs);
	color: var(--jhf-text-muted);
	font-weight: 600;
}
.jhf-article-share { display: flex; gap: var(--jhf-space-2); }
.jhf-share-btn {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--jhf-surface-alt);
	color: var(--jhf-text-muted);
	display: grid;
	place-items: center;
	transition: background .2s ease-out, color .2s ease-out, transform .2s ease-out;
}
.jhf-share-btn:hover { background: var(--jhf-secondary); color: #fff; transform: translateY(-2px); }
.jhf-share-btn .jhf-icon { width: 16px; height: 16px; }

.jhf-article-cover {
	width: 100%;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
	border-radius: var(--jhf-radius-xl);
	margin: var(--jhf-space-4) 0 var(--jhf-space-24);
	box-shadow: var(--jhf-shadow-md);
}

/* Corpo articolo (magazine, Lora serif) */
.jhf-article-body {
	--jhf-font-serif: 'Lora', Georgia, serif;
	font-family: var(--jhf-font-serif);
	font-size: 1.1875rem;
	line-height: 1.75;
	color: #2A3441;
	max-width: 720px;
	margin: 0 auto;
	padding: 0 var(--jhf-space-6);
}
.jhf-article-body p { font-family: inherit; font-size: inherit; color: inherit; margin: 0 0 var(--jhf-space-6); }
.jhf-article-body > p:first-of-type::first-letter {
	font-family: var(--jhf-font-display);
	font-size: 72px;
	font-weight: 700;
	line-height: 0.9;
	float: left;
	margin: 6px 12px 0 0;
	color: var(--jhf-secondary);
}
.jhf-article-body h2 {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 2rem;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
	margin: var(--jhf-space-16) 0 var(--jhf-space-6);
}
.jhf-article-body h3 {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.5rem;
	color: var(--jhf-primary);
	margin: var(--jhf-space-8) 0 var(--jhf-space-4);
}
.jhf-article-body a {
	color: var(--jhf-secondary);
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	font-weight: 600;
	transition: color .2s ease-out;
}
.jhf-article-body a:hover { color: var(--jhf-secondary-soft); }
.jhf-article-body strong { color: var(--jhf-primary); font-weight: 700; }
.jhf-article-body em { font-style: italic; }
.jhf-article-body ul,
.jhf-article-body ol { margin: var(--jhf-space-6) 0; padding-left: var(--jhf-space-8); }
.jhf-article-body li { margin-bottom: var(--jhf-space-4); }
.jhf-article-body ul li::marker { color: var(--jhf-secondary); }
.jhf-article-body ol li::marker { color: var(--jhf-secondary); font-weight: 700; font-family: var(--jhf-font-display); }
.jhf-article-body img,
.jhf-article-body figure img { width: 100%; height: auto; border-radius: var(--jhf-radius-lg); }
.jhf-article-body figure { margin: var(--jhf-space-16) 0; }
.jhf-article-body figure figcaption,
.jhf-article-body .inline-image .caption {
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-xs);
	color: var(--jhf-text-muted);
	text-align: center;
	font-style: italic;
	line-height: 1.5;
	padding: var(--jhf-space-2) var(--jhf-space-4) 0;
}

/* Blockquote → pull-quote */
.jhf-article-body blockquote,
.jhf-article-body .pull-quote {
	margin: var(--jhf-space-16) 0;
	padding: var(--jhf-space-8);
	border-left: 4px solid var(--jhf-secondary);
	border-radius: 0 var(--jhf-radius-lg) var(--jhf-radius-lg) 0;
	background: var(--jhf-surface-alt);
	font-family: var(--jhf-font-display);
	font-weight: 700;
	font-size: 1.625rem;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--jhf-primary);
}
.jhf-article-body blockquote p { font-family: inherit; color: inherit; margin: 0; }

/* Callout box */
.jhf-article-body .callout-box {
	background: var(--jhf-primary);
	color: #fff;
	padding: var(--jhf-space-8);
	border-radius: var(--jhf-radius-lg);
	margin: var(--jhf-space-16) 0;
	font-family: var(--jhf-font-display);
}
.jhf-article-body .callout-box .callout-label {
	display: block;
	font-size: var(--jhf-text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--jhf-secondary);
	margin-bottom: var(--jhf-space-4);
}
.jhf-article-body .callout-box h4 { color: #fff; font-size: 1.375rem; margin: 0 0 var(--jhf-space-4); }
.jhf-article-body .callout-box p { color: rgba(255, 255, 255, 0.85); font-family: var(--jhf-font-display); font-size: 1rem; margin: 0; }
.jhf-article-body .callout-box a { color: #fff; font-weight: 700; }

/* Footer articolo (tag) */
.jhf-article-footer {
	max-width: 720px;
	margin: var(--jhf-space-24) auto 0;
	padding: var(--jhf-space-16) var(--jhf-space-6) 0;
	border-top: 1px solid var(--jhf-border);
}
.jhf-article-tags { display: flex; flex-wrap: wrap; gap: var(--jhf-space-2); }
.jhf-article-tag {
	background: var(--jhf-surface-alt);
	color: var(--jhf-primary);
	font-size: var(--jhf-text-sm);
	font-weight: 600;
	padding: 7px 14px;
	border-radius: var(--jhf-radius-full);
	transition: background .2s ease-out, color .2s ease-out;
}
.jhf-article-tag:hover { background: var(--jhf-primary); color: #fff; }

/* Author card */
.jhf-author-card {
	max-width: 720px;
	margin: var(--jhf-space-24) auto;
	padding: var(--jhf-space-12);
	background: var(--jhf-surface-alt);
	border-radius: var(--jhf-radius-xl);
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-8);
	align-items: center;
	text-align: center;
}
.jhf-author-card__avatar {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	overflow: hidden;
	font-size: 2rem;
	margin: 0 auto;
}
.jhf-author-card .jhf-eyebrow { display: inline-block; margin-bottom: 6px; }
.jhf-author-card__name { font-family: var(--jhf-font-display); font-weight: 800; font-size: 1.5rem; color: var(--jhf-primary); margin: 0 0 6px; }
.jhf-author-card__role {
	display: block;
	font-size: var(--jhf-text-xs);
	color: var(--jhf-secondary);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-weight: 700;
	margin-bottom: var(--jhf-space-4);
}
.jhf-author-card__bio { font-size: var(--jhf-text-sm); line-height: 1.6; color: var(--jhf-text); margin: 0 0 var(--jhf-space-4); }
.jhf-author-card__link { color: var(--jhf-secondary); font-weight: 700; font-size: var(--jhf-text-xs); text-transform: uppercase; letter-spacing: 1.5px; }

/* Related */
.jhf-related__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--jhf-space-6);
}
.jhf-related-card {
	display: flex;
	flex-direction: column;
	background: var(--jhf-surface);
	border: 1px solid var(--jhf-border);
	border-radius: var(--jhf-radius-lg);
	overflow: hidden;
	transition: transform .2s ease-out, box-shadow .2s ease-out, border-color .2s ease-out;
}
.jhf-related-card:hover { transform: translateY(-4px); box-shadow: var(--jhf-shadow-md); border-color: transparent; }
.jhf-related-card__image { width: 100%; height: 180px; background-size: cover; background-position: center; }
.jhf-related-card__content { display: flex; flex-direction: column; gap: var(--jhf-space-4); padding: var(--jhf-space-6); flex: 1; }
.jhf-related-card__cat { font-size: var(--jhf-text-xs); color: var(--jhf-secondary); text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; }
.jhf-related-card__title { font-family: var(--jhf-font-display); font-weight: 800; font-size: 1.125rem; line-height: 1.3; color: var(--jhf-primary); margin: 0; }
.jhf-related-card__meta { margin-top: auto; padding-top: var(--jhf-space-4); border-top: 1px solid var(--jhf-surface-alt); font-size: var(--jhf-text-xs); color: var(--jhf-text-muted); }

/* CTA finale lettura (riusa .jhf-final-cta magenta) */
.jhf-read-cta { margin-top: 0; }

@media (min-width: 640px) {
	.jhf-container-narrow { padding: 0 var(--jhf-space-6); }
}
@media (min-width: 768px) {
	.jhf-author-card { grid-template-columns: auto 1fr; text-align: left; }
	.jhf-author-card__avatar { margin: 0; }
}
@media (min-width: 960px) {
	.jhf-featured-article { grid-template-columns: 1.2fr 1fr; }
	.jhf-featured-article__image { min-height: 380px; }
	.jhf-related__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.jhf-article-body { font-size: 1.0625rem; }
	.jhf-article-body > p:first-of-type::first-letter { font-size: 56px; }
	.jhf-newsletter-form { flex-direction: column; }
	.jhf-article-meta-row { flex-wrap: wrap; }
	.jhf-article-dates, .jhf-article-share { margin-left: 0; }
}

/* ============================================================
   v1.13.1 — Hardening full-bleed clip
   Fix overflow-x orizzontale (~scrollbar) su tutte le pagine brand
   con wrapper .jhf-page (blog reso via JhfTemplate incluso).
   Regola in coda + selettore elemento per vincere sempre la cascata.
   ============================================================ */
.jhf-page,
main.jhf-page { overflow-x: clip; }

/* ============================================================
   Accessibilità — correzioni contrasto WCAG 2.1 AA (v1.17.0)
   ============================================================ */
/* Magenta accessibile per testo piccolo su fondo chiaro (usa il magenta scuro già in palette) */
.jhf-eyebrow { color: var(--jhf-secondary-dark, #C7004F); }
.jhf-eyebrow--on-dark { color: rgba(255, 255, 255, 0.9); }
.jhf-edition-status--upcoming { color: var(--jhf-secondary-dark, #C7004F); }
.jhf-edition-card__link { color: var(--jhf-secondary-dark, #C7004F); }
/* Badge "in evidenza": fondo magenta più scuro per il testo bianco (12px) */
.jhf-edition-status--featured { background: var(--jhf-secondary-dark, #C7004F); }
/* Card edizioni passate: meno dimming per non abbattere il contrasto del testo */
.jhf-edition-card.is-past { opacity: 0.85; }

/* ============================================================
   v1.19.0 — Uniformità hero pagine + pagine legali brandizzate
   ============================================================ */

/* Compensazione header fisso su .jhf-page-hero (progetto/blog/contatti +
   pagine legali): allinea lo spazio superiore a quello di Eventi/Aziende. */
body.jhf-fixed-header .jhf-page-hero { padding-top: 200px; }
@media (max-width: 640px) {
	body.jhf-fixed-header .jhf-page-hero { padding-top: 160px; }
}

/* v1.21.0 — Home hero (.jhf-hero) usa la stessa aria superiore di
   Eventi/Aziende sotto l'header fisso. Selettore con body.jhf-fixed-header
   per vincere sul padding di .jhf-hero @min-width:1024px. */
body.jhf-fixed-header .jhf-hero { padding-top: 200px; }
@media (max-width: 640px) {
	body.jhf-fixed-header .jhf-hero { padding-top: 160px; }
}

/* Pagine legali/informative: contenuto in prosa leggibile. */
.jhf-legal__body { padding: var(--jhf-space-16) 0 var(--jhf-space-24); }
.jhf-legal-content {
	max-width: 820px;
	margin: 0 auto;
	color: var(--jhf-text, #435469);
	font-size: 1.0625rem;
	line-height: 1.75;
}
.jhf-legal-content > h1:first-child { display: none; } /* titolo già nell'hero */
.jhf-legal-content h2 {
	font-family: var(--jhf-font-display);
	color: var(--jhf-primary, #0D1D31);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1.25;
	margin: 2.5rem 0 0.75rem;
}
.jhf-legal-content h3 {
	font-family: var(--jhf-font-display);
	color: var(--jhf-primary, #0D1D31);
	font-weight: 700;
	font-size: 1.2rem;
	margin: 2rem 0 0.5rem;
}
.jhf-legal-content p { margin: 0 0 1.1rem; }
.jhf-legal-content ul,
.jhf-legal-content ol { margin: 0 0 1.1rem; padding-left: 1.4rem; }
.jhf-legal-content li { margin: 0 0 0.4rem; }
.jhf-legal-content a { color: var(--jhf-secondary, #EC005F); font-weight: 600; }
.jhf-legal-content a:hover { text-decoration: underline; }
.jhf-legal-content strong { color: var(--jhf-primary, #0D1D31); }

/* ------------------------------------------------------------------ */
/* Storico — "Le passate edizioni" (v1.21.0)                          */
/* ------------------------------------------------------------------ */
.jhf-storico__body { padding: var(--jhf-space-16) 0 var(--jhf-space-24); }
.jhf-storico-ed {
	background: #fff;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: var(--jhf-radius-lg, 16px);
	box-shadow: var(--jhf-shadow-sm, 0 6px 24px rgba(13,29,49,0.06));
	overflow: hidden;
	margin: 0 0 var(--jhf-space-8, 2rem);
}
.jhf-storico-ed__head {
	background: linear-gradient(90deg, var(--jhf-primary, #0D1D31), var(--jhf-primary-dark, #1a2d4a));
	color: #fff;
	padding: 1.25rem 1.75rem;
}
.jhf-storico-ed__title {
	font-family: var(--jhf-font-display);
	font-weight: 800;
	font-size: 1.35rem;
	line-height: 1.2;
	margin: 0;
	color: #fff;
}
.jhf-storico-ed__meta { margin: 0.35rem 0 0; font-size: 0.9rem; color: rgba(255,255,255,0.75); }
.jhf-storico-block { padding: 1.25rem 1.75rem; border-top: 1px solid var(--jhf-border, #E5E7EB); }
.jhf-storico-block:first-of-type { border-top: 0; }
.jhf-storico-block__title {
	font-family: var(--jhf-font-display);
	color: var(--jhf-primary, #0D1D31);
	font-weight: 700;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 0.9rem;
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.jhf-storico-count {
	background: var(--jhf-secondary, #EC005F);
	color: #fff;
	border-radius: var(--jhf-radius-full, 999px);
	padding: 0.1rem 0.6rem;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0;
}
.jhf-storico-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.jhf-storico-chip {
	background: var(--jhf-surface-alt, #F7F8FA);
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: var(--jhf-radius-full, 999px);
	padding: 0.35rem 0.8rem;
	font-size: 0.85rem;
	color: var(--jhf-text, #435469);
}
.jhf-storico-chip--sp {
	background: #fff0f6;
	border-color: #ffc9df;
	color: #a30046;
	font-weight: 600;
}
.jhf-storico-patrocini {
	padding: 1rem 1.75rem 1.35rem;
	margin: 0;
	font-size: 0.9rem;
	color: var(--jhf-muted, #5B6572);
}
.jhf-storico-patrocini strong { color: var(--jhf-primary, #0D1D31); }
@media (max-width: 640px) {
	.jhf-storico-ed__head,
	.jhf-storico-block { padding-left: 1.15rem; padding-right: 1.15rem; }
	.jhf-storico-patrocini { padding-left: 1.15rem; padding-right: 1.15rem; }
}

/* Muro loghi storico (v1.21.0) — griglia di card bianche uniformi. */
.jhf-storico-wall {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 0.75rem;
}
.jhf-storico-logo {
	margin: 0;
	background: #fff;
	border: 1px solid var(--jhf-border, #E5E7EB);
	border-radius: var(--jhf-radius-md, 12px);
	min-height: 92px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1rem;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.jhf-storico-logo:hover {
	box-shadow: var(--jhf-shadow-sm, 0 6px 20px rgba(13,29,49,0.08));
	border-color: #d3dae4;
	transform: translateY(-2px);
}
.jhf-storico-logo img {
	max-width: 100%;
	max-height: 62px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.jhf-storico-logo--sp {
	background: #fff;
	border-color: #ffd9e8;
}
.jhf-storico-logo--text {
	font-family: var(--jhf-font-display);
	font-weight: 700;
	color: var(--jhf-primary, #0D1D31);
	font-size: 0.95rem;
	text-align: center;
}
.jhf-storico-logo--text figcaption { margin: 0; }
@media (max-width: 640px) {
	.jhf-storico-wall { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 0.6rem; }
	.jhf-storico-logo { min-height: 78px; padding: 0.6rem 0.7rem; }
	.jhf-storico-logo img { max-height: 50px; }
}

/* ------------------------------------------------------------------ */
/* v1.21.10 — Loghi card archivio aziende: rettangolo senza bordo/box, */
/* allineati a SINISTRA. I loghi quadrati si vedono bene e quelli      */
/* rettangolari non vengono rimpiccioliti né tagliati.                 */
/* ------------------------------------------------------------------ */
.jhf-companies-archive-card__logo {
	width: auto;
	max-width: 180px;
	height: 54px;
	background: transparent !important;
	background-color: transparent !important;
	border: 0;
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-shrink: 0;
	overflow: hidden;
}
.jhf-companies-archive-card__logo img {
	width: auto;
	height: auto;
	max-width: 180px;
	max-height: 54px;
	object-fit: contain;
	object-position: left center;
	display: block;
}
.jhf-companies-archive-card__initials { text-align: left; }

/* =========================================================
   v1.23.0 — Modulo adesione aziende [jhf_adesione_azienda]
   Bordi dei campi a --jhf-text-muted (5.4:1): i bordi chiari del tema
   non raggiungono il 3:1 richiesto da WCAG 1.4.11 per i controlli.
   ========================================================= */
.jhf-adh { max-width: 880px; margin: 0 auto; padding: var(--jhf-space-12) var(--jhf-space-6) var(--jhf-space-16); font-family: var(--jhf-font-body); color: var(--jhf-text); }
.jhf-adh__header { margin-bottom: var(--jhf-space-8); }
.jhf-adh__title { font-family: var(--jhf-font-display); font-size: var(--jhf-text-3xl); font-weight: 900; line-height: 1.15; color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-3); }
.jhf-adh__lead { font-size: var(--jhf-text-lg); color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-2); }
.jhf-adh__patronage { font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); margin: 0; }
.jhf-adh__intro { font-size: var(--jhf-text-base); margin: 0 0 var(--jhf-space-8); }
.jhf-adh__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.jhf-adh__hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.jhf-adh__section { border: 1px solid var(--jhf-border); border-radius: var(--jhf-radius-lg); background: var(--jhf-surface); padding: var(--jhf-space-6); margin: 0 0 var(--jhf-space-6); box-shadow: var(--jhf-shadow-sm); min-width: 0; }
.jhf-adh__section > legend { display: flex; align-items: center; gap: var(--jhf-space-3); font-family: var(--jhf-font-display); font-size: var(--jhf-text-xl); font-weight: 800; color: var(--jhf-text-strong); padding: 0 var(--jhf-space-2); }
.jhf-adh__step { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--jhf-radius-full); background: var(--jhf-primary); color: #fff; font-size: var(--jhf-text-sm); font-weight: 700; }
.jhf-adh__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--jhf-space-4) var(--jhf-space-6); }
.jhf-adh__full { grid-column: 1 / -1; }
.jhf-adh__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.jhf-adh__field > label, .jhf-adh__radios-label { font-weight: 700; font-size: var(--jhf-text-sm); color: var(--jhf-text-strong); margin: 0; }
.jhf-adh__req { color: var(--jhf-secondary); margin-left: 2px; }
.jhf-adh__help, .jhf-adh__note { font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); margin: 0; line-height: 1.5; }
.jhf-adh__note { margin-bottom: var(--jhf-space-4); }

.jhf-adh input[type="text"], .jhf-adh input[type="email"], .jhf-adh input[type="tel"], .jhf-adh input[type="url"], .jhf-adh input[type="number"], .jhf-adh select {
	width: 100%; min-height: 48px; padding: 10px 14px; font: inherit; font-size: 16px; color: var(--jhf-text-strong);
	background: var(--jhf-surface); border: 1px solid var(--jhf-text-muted); border-radius: var(--jhf-radius-sm); box-sizing: border-box;
}
.jhf-adh input[type="file"] { font: inherit; font-size: var(--jhf-text-sm); padding: var(--jhf-space-3); border: 1px dashed var(--jhf-text-muted); border-radius: var(--jhf-radius-sm); background: var(--jhf-surface-alt); }
.jhf-adh input:focus-visible, .jhf-adh select:focus-visible { outline: 3px solid var(--jhf-secondary); outline-offset: 1px; border-color: var(--jhf-primary); }
.jhf-adh .jhf-sector-select-wrap { display: flex; width: 100%; }
.jhf-adh .jhf-sector-select { max-width: none; width: 100%; appearance: none; padding-right: 40px; }

.jhf-adh .has-error input, .jhf-adh .has-error select, .jhf-adh input[aria-invalid="true"], .jhf-adh select[aria-invalid="true"] { border: 2px solid var(--jhf-error); }
.jhf-adh__error { color: var(--jhf-error); font-size: var(--jhf-text-sm); font-weight: 700; margin: 0; }
.jhf-adh__error::before { content: "\26A0\00A0"; }

.jhf-adh__summary { border: 2px solid var(--jhf-error); border-radius: var(--jhf-radius-md); background: #fef2f2; padding: var(--jhf-space-4) var(--jhf-space-6); margin: 0 0 var(--jhf-space-6); }
.jhf-adh__summary:focus { outline: 3px solid var(--jhf-secondary); outline-offset: 2px; }
.jhf-adh__summary h2 { font-size: var(--jhf-text-lg); color: #991b1b; margin: 0 0 var(--jhf-space-2); }
.jhf-adh__summary ul { margin: 0; padding-left: 1.2em; }
.jhf-adh__summary a { color: #991b1b; font-weight: 700; }
.jhf-adh__summary p { margin: var(--jhf-space-2) 0 0; font-size: var(--jhf-text-sm); }

.jhf-adh__profile { border: 1px dashed var(--jhf-border); border-radius: var(--jhf-radius-md); padding: var(--jhf-space-4); margin: 0 0 var(--jhf-space-4); min-width: 0; }
.jhf-adh__profile[hidden] { display: none; }
.jhf-adh__profile-title { font-weight: 800; color: var(--jhf-text-strong); padding: 0 var(--jhf-space-2); }
.jhf-adh__add[hidden] { display: none; }

.jhf-adh__check { display: grid; grid-template-columns: 24px 1fr; gap: 4px var(--jhf-space-3); align-items: start; margin: var(--jhf-space-4) 0 0; }
.jhf-adh__check input[type="checkbox"] { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--jhf-secondary); }
.jhf-adh__check label { font-size: var(--jhf-text-sm); line-height: 1.55; color: var(--jhf-text); }
.jhf-adh__check label a { color: var(--jhf-secondary-dark); font-weight: 700; }
.jhf-adh__check .jhf-adh__error { grid-column: 2; }

.jhf-adh__fee { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px var(--jhf-space-4); background: var(--jhf-surface-alt); border-radius: var(--jhf-radius-md); padding: var(--jhf-space-4); margin: 0 0 var(--jhf-space-4); }
.jhf-adh__fee-label { margin: 0; font-weight: 700; color: var(--jhf-text-strong); }
.jhf-adh__fee-amount { margin: 0; font-family: var(--jhf-font-display); font-size: var(--jhf-text-2xl); font-weight: 900; color: var(--jhf-text-strong); }
.jhf-adh__fee-note { margin: 0; flex-basis: 100%; font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); }
.jhf-adh__radios { display: flex; flex-direction: column; gap: var(--jhf-space-3); margin: 0 0 var(--jhf-space-3); }
.jhf-adh__radio { display: grid; grid-template-columns: 24px 1fr; gap: var(--jhf-space-3); align-items: start; border: 1px solid var(--jhf-text-muted); border-radius: var(--jhf-radius-md); padding: var(--jhf-space-3) var(--jhf-space-4); }
.jhf-adh__radio:has(input:checked) { border: 2px solid var(--jhf-secondary); }
.jhf-adh__radio input { width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--jhf-secondary); }
.jhf-adh__radio label { color: var(--jhf-text-strong); }
.jhf-adh__radio-note { display: block; font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); }

.jhf-adh__submit { display: flex; justify-content: flex-end; }
.jhf-adh__panel { border: 1px solid var(--jhf-border); border-radius: var(--jhf-radius-lg); background: var(--jhf-surface); padding: var(--jhf-space-8); box-shadow: var(--jhf-shadow-sm); }
.jhf-adh__panel--success { border-left: 4px solid var(--jhf-success); }
.jhf-adh__panel h2 { font-family: var(--jhf-font-display); font-size: var(--jhf-text-2xl); color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-4); }
.jhf-adh__panel a { color: var(--jhf-secondary-dark); font-weight: 700; }
.jhf-adh__pay-form { display: flex; flex-wrap: wrap; gap: var(--jhf-space-3); margin-top: var(--jhf-space-4); }
.jhf-adh__bank { display: grid; grid-template-columns: max-content 1fr; gap: var(--jhf-space-2) var(--jhf-space-6); margin: var(--jhf-space-4) 0; padding: var(--jhf-space-4); background: var(--jhf-surface-alt); border-radius: var(--jhf-radius-md); }
.jhf-adh__bank dt { color: var(--jhf-text-muted); }
.jhf-adh__bank dd { margin: 0; font-weight: 700; color: var(--jhf-text-strong); word-break: break-word; }
.jhf-adh__mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: 0.02em; }

@media (max-width: 640px) {
	.jhf-adh { padding: var(--jhf-space-8) var(--jhf-space-4) var(--jhf-space-12); }
	.jhf-adh__grid { grid-template-columns: 1fr; }
	.jhf-adh__section { padding: var(--jhf-space-4); }
	.jhf-adh__bank { grid-template-columns: 1fr; }
	.jhf-adh__submit .jhf-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.jhf-adh .jhf-button { transition: none; }
	.jhf-adh .jhf-button:hover { transform: none; }
}

/* =========================================================
   v1.24.0 — Home: banner "In evidenza" orizzontale + foto "Cos'è Job Hub"
   ========================================================= */
figure.jhf-about__image { margin: 0; background: var(--jhf-primary); }
.jhf-about__image .jhf-about__image-img { width: 100%; height: 100%; object-fit: cover; display: block; }

.jhf-edition-feature {
	grid-column: 1 / -1;
	position: relative;
	display: grid;
	grid-template-columns: minmax(220px, 30%) 1fr auto;
	align-items: stretch;
	background:
		radial-gradient(circle at 100% 0%, rgba(236, 0, 95, 0.28) 0%, transparent 45%),
		linear-gradient(135deg, var(--jhf-primary) 0%, var(--jhf-primary-soft) 100%);
	color: var(--jhf-text-on-dark);
	border-radius: var(--jhf-radius-xl);
	overflow: hidden;
	box-shadow: var(--jhf-shadow-lg);
	border-left: 6px solid var(--jhf-secondary);
	transition: transform .25s ease-out, box-shadow .25s ease-out;
}
.jhf-edition-feature:hover { transform: translateY(-4px); box-shadow: var(--jhf-shadow-pink); }
.jhf-edition-feature__media { position: relative; min-height: 240px; }
.jhf-edition-feature__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jhf-edition-feature__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 55%, rgba(13, 29, 49, 0.55) 100%);
	pointer-events: none;
}
.jhf-edition-feature__media .jhf-edition-status {
	position: absolute;
	top: var(--jhf-space-4);
	left: var(--jhf-space-4);
	z-index: 1;
	box-shadow: var(--jhf-shadow-pink);
}
.jhf-edition-feature__body {
	padding: var(--jhf-space-8) var(--jhf-space-8) var(--jhf-space-8) var(--jhf-space-8);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--jhf-space-4);
	min-width: 0;
}
.jhf-edition-feature__countdown {
	margin: 0;
	font-family: var(--jhf-font-display);
	font-size: var(--jhf-text-sm);
	font-weight: 800;
	letter-spacing: var(--jhf-eyebrow-tracking);
	text-transform: uppercase;
	color: var(--jhf-secondary-soft);
}
.jhf-edition-feature__title {
	margin: 0;
	font-family: var(--jhf-font-display);
	font-size: clamp(1.625rem, 2.6vw, 2.25rem);
	font-weight: 900;
	line-height: 1.1;
}
.jhf-edition-feature__title a { color: #fff; text-decoration: none; }
.jhf-edition-feature__title a:hover { text-decoration: underline; text-decoration-color: var(--jhf-secondary); text-underline-offset: 4px; }
.jhf-edition-feature__title a:focus-visible { outline: 2px solid var(--jhf-secondary-soft); outline-offset: 4px; border-radius: 4px; }
.jhf-edition-feature__meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-2) var(--jhf-space-6);
	font-size: var(--jhf-text-sm);
	font-weight: 600;
}
.jhf-edition-feature__meta li { display: inline-flex; align-items: center; gap: var(--jhf-space-2); }
.jhf-edition-feature__meta .jhf-icon { color: var(--jhf-secondary-soft); }
.jhf-edition-feature__stats {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--jhf-space-8);
	padding-top: var(--jhf-space-4);
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.jhf-edition-feature__stats div { display: flex; flex-direction: column-reverse; }
.jhf-edition-feature__stats dt { font-size: var(--jhf-text-xs); text-transform: uppercase; letter-spacing: 1px; color: rgba(255, 255, 255, 0.75); }
.jhf-edition-feature__stats dd { margin: 0; font-family: var(--jhf-font-display); font-size: var(--jhf-text-2xl); font-weight: 900; color: #fff; line-height: 1.1; }
.jhf-edition-feature__actions {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--jhf-space-3);
	padding: var(--jhf-space-8) var(--jhf-space-8) var(--jhf-space-8) 0;
}
.jhf-edition-feature__actions .jhf-button { white-space: nowrap; box-sizing: border-box; max-width: 100%; }

@media (max-width: 1099px) {
	.jhf-edition-feature { grid-template-columns: minmax(220px, 34%) 1fr; }
	.jhf-edition-feature__actions {
		grid-column: 2;
		flex-direction: row;
		flex-wrap: wrap;
		padding: 0 var(--jhf-space-8) var(--jhf-space-8);
	}
}
@media (max-width: 699px) {
	.jhf-edition-feature { grid-template-columns: 1fr; border-left: 0; border-top: 6px solid var(--jhf-secondary); }
	.jhf-edition-feature__media { min-height: 200px; }
	.jhf-edition-feature__media::after { background: linear-gradient(180deg, transparent 50%, rgba(13, 29, 49, 0.55) 100%); }
	.jhf-edition-feature__body { padding: var(--jhf-space-6); }
	.jhf-edition-feature__actions { grid-column: 1; flex-direction: column; padding: 0 var(--jhf-space-6) var(--jhf-space-6); }
	.jhf-edition-feature__actions .jhf-button { width: 100%; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
	.jhf-edition-feature, .jhf-edition-feature:hover { transition: none; transform: none; }
}

/* v1.24.2 — Card azienda sulla pagina evento: "Prenota colloquio" diretto */
.jhf-company-card__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--jhf-space-3); margin-top: auto; }
.jhf-company-card__book { box-sizing: border-box; }
.jhf-company-card .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* =========================================================
   v1.24.2 — Modale di conferma (jhf-confirm.js, <dialog> nativo)
   ========================================================= */
.jhf-modal {
	width: min(480px, calc(100vw - 32px));
	max-width: none;
	padding: 0;
	border: 0;
	border-radius: var(--jhf-radius-xl);
	background: var(--jhf-surface);
	color: var(--jhf-text);
	box-shadow: var(--jhf-shadow-lg);
	border-top: 6px solid var(--jhf-secondary);
	font-family: var(--jhf-font-body);
}
.jhf-modal--danger { border-top-color: var(--jhf-error); }
.jhf-modal::backdrop { background: rgba(13, 29, 49, 0.62); backdrop-filter: blur(2px); }
.jhf-modal[open] { animation: jhf-modal-in .2s ease-out; }
@keyframes jhf-modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.jhf-modal__inner { padding: var(--jhf-space-8); margin: 0; }
.jhf-modal__title { margin: 0 0 var(--jhf-space-3); font-family: var(--jhf-font-display); font-size: var(--jhf-text-xl); font-weight: 900; line-height: 1.2; color: var(--jhf-text-strong); }
.jhf-modal__text { margin: 0 0 var(--jhf-space-6); font-size: var(--jhf-text-base); line-height: 1.55; }
.jhf-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--jhf-space-3); }
.jhf-modal__actions .jhf-button { box-sizing: border-box; }
.jhf-modal--danger [data-jhf-ok] { background: var(--jhf-error); border-color: var(--jhf-error); color: #fff; }
.jhf-modal--danger [data-jhf-ok]:hover { filter: brightness(0.92); }
@media (max-width: 520px) {
	.jhf-modal__inner { padding: var(--jhf-space-6); }
	.jhf-modal__actions { flex-direction: column-reverse; }
	.jhf-modal__actions .jhf-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .jhf-modal[open] { animation: none; } }
.jhf-dashboard__cta { margin: var(--jhf-space-4) 0 0; }

/* v1.24.7 — Compensazione header fisso: UNA misura per tutte le pagine.
   --jhf-header-h è l'altezza reale della navbar (non compattata), misurata
   da header-scroll.js; i valori qui sotto sono il ripiego senza JS
   (117px desktop, 87px sotto i 900px, dove compare il menu mobile).
   Copre: pagine di servizio col template predefinito (My Job Hub, area
   aziende, prenota, check-in, adesione: anche gli avvisi "Devi accedere",
   che prima partivano da 0px), accedi/registrati/password dimenticata
   (.jhf-auth-layout), hero delle schede azienda ed evento (il link
   "← Tutte le aziende" / "← Tutti gli eventi" finiva sotto la navbar).
   Sostituisce i 165px/130px fissi della 1.24.4. */
:root { --jhf-header-h: 117px; --jhf-header-air: 48px; }
@media (max-width: 900px) { :root { --jhf-header-h: 87px; --jhf-header-air: 32px; } }

/* Pagine con template predefinito del tema (main.site-main) che non hanno
   un hero proprio già compensato. */
body.jhf-fixed-header > main.site-main:not(:has(.jhf-page-hero, .jhf-hero, .jhf-event-hero, .jhf-company-hero, .jhf-events-archive-hero, .jhf-companies-archive-hero, .jhf-auth-layout, .jhf-site-header)) {
	padding-top: calc(var(--jhf-header-h) + var(--jhf-header-air));
}
/* Componenti di servizio: dentro il wrapper sopra non serve altro spazio;
   altrove (es. pagina Elementor) si compensano da soli. */
body.jhf-fixed-header .jhf-dashboard,
body.jhf-fixed-header .jhf-booking,
body.jhf-fixed-header .jhf-adh,
body.jhf-fixed-header .jhf-qr-scanner {
	padding-top: calc(var(--jhf-header-h) + var(--jhf-header-air));
}
body.jhf-fixed-header > main.site-main .jhf-dashboard,
body.jhf-fixed-header > main.site-main .jhf-booking,
body.jhf-fixed-header > main.site-main .jhf-adh,
body.jhf-fixed-header > main.site-main .jhf-qr-scanner {
	padding-top: 0;
}

/* Accedi / registrati: il pannello blu resta a tutta altezza dietro la
   navbar, il contenuto scende sotto. */
body.jhf-fixed-header .jhf-auth-layout > .jhf-auth-brand,
body.jhf-fixed-header .jhf-auth-layout > .jhf-auth-form-side {
	padding-top: calc(var(--jhf-header-h) + 64px);
}
@media (max-width: 960px) {
	body.jhf-fixed-header .jhf-auth-layout > .jhf-auth-brand {
		padding-top: calc(var(--jhf-header-h) + 40px);
	}
	body.jhf-fixed-header .jhf-auth-layout > .jhf-auth-form-side {
		padding-top: 40px; /* sotto il pannello blu, non sotto la navbar */
	}
}

/* Hero delle schede azienda ed evento. */
body.jhf-fixed-header .jhf-company-hero { padding-top: calc(var(--jhf-header-h) + 64px); }
body.jhf-fixed-header .jhf-event-hero   { padding-top: calc(var(--jhf-header-h) + 48px); } /* contenuto allineato in basso: basta non coprirlo */
@media (max-width: 960px) {
	body.jhf-fixed-header .jhf-company-hero,
	body.jhf-fixed-header .jhf-event-hero { padding-top: calc(var(--jhf-header-h) + 48px); }
}
@media (max-width: 640px) {
	body.jhf-fixed-header .jhf-company-hero,
	body.jhf-fixed-header .jhf-event-hero { padding-top: calc(var(--jhf-header-h) + 32px); }
}

/* Ancore (#sezione) e focus da tastiera non finiscono sotto la navbar. */
html:has(body.jhf-fixed-header) { scroll-padding-top: calc(var(--jhf-header-h) + 16px); }

/* v1.26.0 — Area aziende: navigazione e "Scheda azienda" modificabile.
   Riusa lo stile del modulo di adesione (.jhf-adh) dentro il portale. */
.jhf-portal-nav { display: flex; flex-wrap: wrap; gap: var(--jhf-space-2); margin-top: var(--jhf-space-4); }
.jhf-portal-nav__link { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 18px; border: 1px solid var(--jhf-border); border-radius: var(--jhf-radius-full); background: var(--jhf-surface); color: var(--jhf-text-strong); font-weight: 700; font-size: var(--jhf-text-sm); text-decoration: none; }
.jhf-portal-nav__link:hover { border-color: var(--jhf-primary); color: var(--jhf-primary); }
.jhf-portal-nav__link:focus-visible { outline: 3px solid var(--jhf-secondary); outline-offset: 2px; }

body.jhf-fixed-header .jhf-adh.jhf-adh--embedded,
.jhf-adh.jhf-adh--embedded { max-width: none; margin: var(--jhf-space-12) 0 0; padding: 0; }
.jhf-company-profile__header { margin-bottom: var(--jhf-space-6); }
.jhf-company-profile__title { font-family: var(--jhf-font-display); font-size: var(--jhf-text-2xl); font-weight: 800; color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-2); }
.jhf-company-profile__header a, .jhf-company-profile__private a { color: var(--jhf-secondary-dark); font-weight: 700; }
.jhf-company-profile .jhf-notice { margin: 0 0 var(--jhf-space-6); }
.jhf-company-profile__logo img { display: block; width: 96px; height: 96px; object-fit: contain; border: 1px solid var(--jhf-border); border-radius: var(--jhf-radius-md); background: #fff; padding: 6px; }
.jhf-company-profile__private h4 { font-family: var(--jhf-font-display); font-size: var(--jhf-text-lg); color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-2); }
.jhf-adh textarea {
	width: 100%; min-height: 48px; padding: 10px 14px; font: inherit; font-size: 16px; line-height: 1.5; color: var(--jhf-text-strong);
	background: var(--jhf-surface); border: 1px solid var(--jhf-text-muted); border-radius: var(--jhf-radius-sm); box-sizing: border-box; resize: vertical;
}
.jhf-adh textarea:focus-visible { outline: 3px solid var(--jhf-secondary); outline-offset: 1px; border-color: var(--jhf-primary); }
.jhf-adh .has-error textarea, .jhf-adh textarea[aria-invalid="true"] { border: 2px solid var(--jhf-error); }
.jhf-company-block__events { scroll-margin-top: calc(var(--jhf-header-h, 117px) + 16px); }
.jhf-company-profile { scroll-margin-top: calc(var(--jhf-header-h, 117px) + 16px); }

/* v1.26.3 — Pagine corte: footer sempre in fondo alla finestra.
   header-scroll.js mette .jhf-fill sul blocco di contenuto prima del footer
   e l'altezza del footer in --jhf-footer-h. La navbar è fissa (fuori dal
   flusso), quindi basta finestra − footer; con border-box la compensazione
   della navbar (padding-top) è già compresa. */
body .jhf-fill {
	box-sizing: border-box;
	min-height: calc(100vh - var(--jhf-footer-h, 0px));
	min-height: calc(100dvh - var(--jhf-footer-h, 0px));
}

/* v1.26.3 — Accedi / Registrati con un messaggio al posto del layout a due
   colonne (es. "Sei già autenticato" per gli amministratori): anche questo
   contenitore parte sotto la navbar. */
body.jhf-fixed-header > .jhf-shortcode:not(:has(.jhf-auth-layout)) {
	padding-top: calc(var(--jhf-header-h) + var(--jhf-header-air));
}
body.jhf-fixed-header > .jhf-shortcode .jhf-auth-already-logged { margin-top: 0; }
.jhf-auth-already-logged p { margin: 0; }
.jhf-auth-already-logged a { margin-left: 4px; text-decoration: underline; text-underline-offset: 3px; }

/* v1.26.3 — Pulsante "ghost" (Esci, Scarica, Scopri…): prima aveva padding
   orizzontale 0 ma in hover prendeva ombra e rialzo dei pulsanti pieni →
   una "pillola" stretta attaccata al testo. Ora ha padding come gli altri
   pulsanti e in hover solo un fondo leggero, senza ombra né salto. */
.jhf-button.jhf-button--ghost,
a.jhf-button.jhf-button--ghost,
button.jhf-button.jhf-button--ghost {
	padding-left: 20px;
	padding-right: 20px;
}
.jhf-button.jhf-button--ghost:hover:not([disabled]),
a.jhf-button.jhf-button--ghost:hover {
	background-color: var(--jhf-surface-alt, #F7F8FA) !important;
	box-shadow: none;
	transform: none;
}
.jhf-company-card__footer .jhf-button--ghost { margin-left: -20px; } /* "Scopri" resta allineato al testo della card */

/* v1.26.3 — Il kit globale di Elementor imposta "padding: 0" su tutti i
   <button> (.elementor-kit-6 button, specificità 0,1,1), che batte .jhf-button
   (0,1,0): i pulsanti veri (Invia messaggio, Aggiungi un profilo, Salva la
   scheda, Prenota…) restavano senza padding orizzontale, i link-pulsante no.
   Con "body button.jhf-button" (0,1,2) tornano uguali ai link. */
body button.jhf-button { padding: 14px 28px; }
body button.jhf-button.jhf-button--block { padding: 16px 28px; }
body button.jhf-button.jhf-button--ghost,
body button.jhf-button.jhf-button--danger-ghost { padding: 12px 20px; }

/* v1.27.0 — Mappa Google: si carica solo su richiesta (click-to-load). */
.jhf-map-consent {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--jhf-space-3);
	width: 100%;
	height: 100%;
	min-height: 280px;
	padding: var(--jhf-space-6);
	background: var(--jhf-surface-alt, #F7F8FA);
	color: var(--jhf-text);
	text-align: center;
	font-size: var(--jhf-text-sm);
}
.jhf-map-consent p { margin: 0; max-width: 34ch; }

/* v1.27.2 - Striscia numeri prima dell'evento: prefisso del valore (es. fino a 40). */
.jhf-stat__pre {
	align-self: flex-end;
	margin: 0 6px 12px 0;
	font-family: var(--jhf-font-display);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	color: inherit;
	opacity: .85;
}

/* v1.29.0 — Area aziende: Kit social. */
.jhf-kit { margin: var(--jhf-space-12) 0 0; scroll-margin-top: calc(var(--jhf-header-h, 117px) + 16px); }
.jhf-kit__header { margin-bottom: var(--jhf-space-6); }
.jhf-kit__title { font-family: var(--jhf-font-display); font-size: var(--jhf-text-2xl); font-weight: 800; color: var(--jhf-text-strong); margin: 0 0 var(--jhf-space-2); }
.jhf-kit__intro { max-width: 68ch; margin: 0 0 var(--jhf-space-4); }
.jhf-kit .jhf-notice { margin: 0 0 var(--jhf-space-4); }
.jhf-kit__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--jhf-space-6); }
.jhf-kit__card { display: flex; flex-direction: column; border: 1px solid var(--jhf-border); border-radius: var(--jhf-radius-md); background: var(--jhf-surface); overflow: hidden; }
.jhf-kit__card--wide { grid-column: span 2; }
.jhf-kit__preview { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; padding: var(--jhf-space-3); background: #F1F2F5; }
.jhf-kit__preview img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 2px 8px rgba(13, 29, 49, .12); }
.jhf-kit__preview--checker { background-color: #fff; background-image: linear-gradient(45deg, #E6E8EC 25%, transparent 25%), linear-gradient(-45deg, #E6E8EC 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #E6E8EC 75%), linear-gradient(-45deg, transparent 75%, #E6E8EC 75%); background-size: 20px 20px; background-position: 0 0, 0 10px, 10px -10px, -10px 0; }
.jhf-kit__preview--checker img { box-shadow: none; }
.jhf-kit__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--jhf-space-2); padding: var(--jhf-space-4); }
.jhf-kit__name { display: block; font-family: var(--jhf-font-display); font-size: var(--jhf-text-lg); font-weight: 800; color: var(--jhf-text-strong); margin: 0; }
.jhf-kit__where { font-size: var(--jhf-text-sm); color: var(--jhf-text-muted); margin: 0 0 var(--jhf-space-2); }
.jhf-kit__frame { width: 100%; margin-top: var(--jhf-space-4); padding-top: var(--jhf-space-4); border-top: 1px solid var(--jhf-border); display: flex; flex-direction: column; align-items: flex-start; gap: var(--jhf-space-2); }
.jhf-kit__file { position: relative; cursor: pointer; }
.jhf-kit__file input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.jhf-kit__file:focus-within { outline: 3px solid var(--jhf-secondary); outline-offset: 2px; }
.jhf-kit__canvas { width: 100%; max-width: 320px; height: auto; border-radius: 50%; background: #F1F2F5; }
.jhf-kit__status { font-size: var(--jhf-text-sm); font-weight: 700; color: var(--jhf-success, #2E8B57); min-height: 1em; margin: 0; }
.jhf-kit__subtitle { font-family: var(--jhf-font-display); font-size: var(--jhf-text-xl); font-weight: 800; color: var(--jhf-text-strong); margin: var(--jhf-space-12) 0 var(--jhf-space-4); }
.jhf-kit__texts { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--jhf-space-6); }
.jhf-kit__text { display: flex; flex-direction: column; align-items: flex-start; gap: var(--jhf-space-2); }
.jhf-kit__text textarea { width: 100%; padding: 10px 14px; font: inherit; font-size: 15px; line-height: 1.5; color: var(--jhf-text-strong); background: var(--jhf-surface); border: 1px solid var(--jhf-text-muted); border-radius: var(--jhf-radius-sm); box-sizing: border-box; resize: vertical; }
.jhf-kit__text textarea:focus-visible { outline: 3px solid var(--jhf-secondary); outline-offset: 1px; }
@media (max-width: 600px) {
	.jhf-kit__card--wide { grid-column: auto; }
	.jhf-kit__texts { grid-template-columns: 1fr; }
}


/* v1.29.2 — Newsletter: casella consenso privacy sotto email + pulsante
   (stessa riga a capo per /eventi/ e /blog/, sfondo scuro). */
.jhf-newsletter-form { flex-wrap: wrap; }
.jhf-newsletter-form .jhf-newsletter-consent {
	flex: 1 1 100%;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 4px 0 0;
	text-align: left;
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.8);
	cursor: pointer;
}
.jhf-newsletter-form .jhf-newsletter-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--jhf-secondary, #EC005F);
}
.jhf-newsletter-form .jhf-newsletter-consent a { color: #fff; text-decoration: underline; }
