/**
 * Tema orientamento UniPV — frontend tenant (login / registrazione).
 */

:root {
	--primary-color: #2875A7;
	--primary-color-light: #C43F58;
	--primary-color-rgb: 40, 117, 167;
	--primary-color-light-rgb: 196, 63, 88;
	--secondary-color: #58595b;
	--secondary-color-rgb: 88, 89, 91;
	--light-bg: #f4f5f7;
	--border-color: #d9dde3;
	--text-muted: #5c6670;
	--gradient-primary: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-color-light) 100%);
	--std-color: #b45309;
	--std-color-light: #d97706;
	--std-color-rgb: 180, 83, 9;
	--std-bg-soft: #fffbeb;
	--std-border-soft: #fcd34d;
	--gradient-std: linear-gradient(135deg, var(--std-color) 0%, var(--std-color-light) 100%);
}

body.orientamento {
	background: var(--light-bg);
	color: #333;
}

body.orientamento .page-container {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.unipv-btn-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--primary-color);
	color: #fff !important;
	border-radius: 999px;
	padding: 0.55rem 1.35rem;
	font-weight: 600;
	text-decoration: none !important;
	border: 0;
	transition: background 0.2s ease;
	cursor: pointer;
}

.unipv-btn-pill:hover,
.unipv-btn-pill:focus {
	background: var(--primary-color-light);
	color: #fff !important;
	text-decoration: none !important;
}

/* Login / registrazione — header grigio e griglia tipologie */
body.orientamento .unipv-login-header {
	background: #D0D8E5;
	border-bottom: 1px solid var(--border-color);
	padding: 2rem 0 1.75rem;
}

body.orientamento .unipv-login-header-inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}

body.orientamento .unipv-login-header-inner--with-event {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2rem;
}

body.orientamento .unipv-login-header-copy {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}

body.orientamento .unipv-login-header-inner--with-event .unipv-login-header-copy {
	max-width: none;
}

body.orientamento .unipv-login-header-event {
	flex: 0 0 auto;
	width: 100%;
	max-width: 22rem;
}

body.orientamento .unipv-login-header .hero-event-card {
	background: #fff !important;
	border-radius: 8px !important;
	padding: 1rem 1.15rem !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
	max-width: 100% !important;
	width: 100%;
	margin: 0 !important;
	backdrop-filter: none !important;
}

body.orientamento .unipv-login-header h1 {
	font-weight: 700;
	font-size: 2.25rem;
	margin: 0;
	color: #222;
}

body.orientamento .unipv-login-header .lead {
	font-size: 1.05rem;
	line-height: 1.65;
	color: #222;
	margin: 0;
	max-width: 52rem;
}

body.orientamento .unipv-login-header .lead u {
	text-decoration: underline;
	text-underline-offset: 0.15em;
	color: #222;
}

body.orientamento .unipv-login-header .lead strong {
	color: #111;
}

body.orientamento .unipv-login-header h1 .unipv-login-header-icon {
	margin-right: 0.65rem;
	color: var(--primary-color);
}

/* Registrazione — header grigio + card form squadrata */
body.orientamento.unipv-registrazione-page .unipv-registrazione-content {
	padding: 1.5rem 0 3rem;
}

body.orientamento.unipv-registrazione-page .registration-card {
	border-radius: 0 !important;
	border: 1px solid var(--border-color) !important;
	border-left: 4px solid var(--primary-color) !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
	margin-top: 0 !important;
	overflow: visible;
}

body.orientamento.unipv-registrazione-page .registration-card .card-body {
	overflow: visible;
}

body.orientamento.unipv-registrazione-page .step-title {
	color: var(--primary-color) !important;
}

body.orientamento.unipv-registrazione-page .step-indicator.active .step-circle,
body.orientamento.unipv-registrazione-page .registration-card .step-circle.bg-primary {
	background: var(--primary-color) !important;
	background-color: var(--primary-color) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: 0 4px 15px rgba(var(--primary-color-rgb), 0.28) !important;
}

body.orientamento.unipv-registrazione-page .step-indicator.active .step-circle {
	transform: scale(1.1);
}

body.orientamento.unipv-registrazione-universitario-page {
	--light-bg: #f8f9fa;
	background: #f8f9fa;
}

body.orientamento .unipv-login-content {
	padding: 1.5rem 0 3rem;
}

body.orientamento .unipv-login-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

body.orientamento .unipv-login-option {
	background: #fff;
	border: 1px solid var(--border-color);
	border-left: 4px solid var(--primary-color);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	padding: 1.5rem 1.35rem;
	min-height: 220px;
	text-align: center;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

body.orientamento .unipv-login-option:hover,
body.orientamento .unipv-login-option:focus {
	text-decoration: none;
	color: inherit;
	border-color: var(--border-color);
	border-left-color: var(--primary-color-light);
	box-shadow:
		0 12px 40px rgba(var(--primary-color-rgb), 0.14),
		0 4px 16px rgba(0, 0, 0, 0.08);
}

body.orientamento .unipv-login-option-icon {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
	background: linear-gradient(180deg, #eef1f5 0%, #dfe4ea 100%);
	color: var(--primary-color);
	font-size: 2rem;
	transition: color 0.2s ease, background 0.2s ease;
}

body.orientamento .unipv-login-option:hover .unipv-login-option-icon,
body.orientamento .unipv-login-option:focus .unipv-login-option-icon {
	color: var(--primary-color-light);
}

body.orientamento .unipv-login-option-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--primary-color);
	margin-bottom: 0.65rem;
	line-height: 1.35;
}

body.orientamento .unipv-login-option-description {
	font-size: 0.9rem;
	color: var(--text-muted);
	line-height: 1.55;
	margin: 0;
}

body.orientamento .unipv-login-option--register {
	border-left-color: var(--std-color);
	cursor: default;
}

body.orientamento .unipv-login-option--register:hover,
body.orientamento .unipv-login-option--register:focus {
	border-left-color: var(--std-color-light);
	box-shadow:
		0 12px 40px rgba(var(--std-color-rgb), 0.16),
		0 4px 16px rgba(0, 0, 0, 0.08);
}

body.orientamento .unipv-login-option--register .unipv-login-option-icon {
	background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
	color: var(--std-color);
}

body.orientamento .unipv-login-option--register .unipv-login-option-title {
	color: var(--std-color);
}

body.orientamento .unipv-login-option--register .unipv-btn-registrati {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1rem;
	padding: 0.55rem 1.75rem;
	border-radius: 999px;
	background: var(--gradient-std);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
	border: 0;
	transition: opacity 0.2s ease;
}

body.orientamento .unipv-login-option--register .unipv-btn-registrati:hover,
body.orientamento .unipv-login-option--register .unipv-btn-registrati:focus {
	opacity: 0.92;
	color: #fff !important;
	text-decoration: none !important;
}

body.orientamento .unipv-login-option--login {
	cursor: default;
}

body.orientamento .unipv-login-option--login:hover,
body.orientamento .unipv-login-option--login:focus {
	border-left-color: var(--primary-color-light);
	box-shadow:
		0 12px 40px rgba(var(--primary-color-rgb), 0.16),
		0 4px 16px rgba(0, 0, 0, 0.08);
}

body.orientamento .unipv-login-option--login .unipv-login-option-icon {
	background: linear-gradient(180deg, #e8eef5 0%, #d4e0ed 100%);
	color: var(--primary-color);
}

body.orientamento .unipv-login-option--login .unipv-btn-accedi {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1rem;
	padding: 0.55rem 1.75rem;
	border-radius: 999px;
	background: var(--gradient-primary);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
	border: 0;
	transition: opacity 0.2s ease;
}

body.orientamento .unipv-login-option--login .unipv-btn-accedi:hover,
body.orientamento .unipv-login-option--login .unipv-btn-accedi:focus {
	opacity: 0.92;
	color: #fff !important;
	text-decoration: none !important;
}

/* Registrazione — card tipologie in palette ambra */
body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option {
	border-left-color: var(--std-color);
}

body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option:hover,
body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option:focus {
	border-left-color: var(--std-color-light);
	box-shadow:
		0 12px 40px rgba(var(--std-color-rgb), 0.16),
		0 4px 16px rgba(0, 0, 0, 0.08);
}

body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option .unipv-login-option-icon {
	background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
	color: var(--std-color);
}

body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option:hover .unipv-login-option-icon,
body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option:focus .unipv-login-option-icon {
	color: var(--std-color-light);
}

body.orientamento.unipv-registrazione-page .unipv-login-grid > a.unipv-login-option .unipv-login-option-title {
	color: var(--std-color);
}

body.orientamento .unipv-login-tipologia-content {
	padding: 1.5rem 0 3rem;
}

body.orientamento .unipv-login-form-card {
	background: #fff;
	border: 1px solid var(--border-color);
	border-left: 4px solid var(--primary-color);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	padding: 1.75rem 1.5rem 1.5rem;
	max-width: 42rem;
	margin: 0 auto;
}

body.orientamento .unipv-login-form-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

body.orientamento .unipv-login-form-card h2 {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--primary-color);
	margin: 0;
}

body.orientamento .unipv-login-form-back {
	color: var(--text-muted);
	font-size: 0.9rem;
	text-decoration: none;
	white-space: nowrap;
}

body.orientamento .unipv-login-form-back:hover,
body.orientamento .unipv-login-form-back:focus {
	color: var(--primary-color);
	text-decoration: none;
}

body.orientamento .unipv-login-form-card .form-group {
	margin-bottom: 1rem;
}

body.orientamento .unipv-login-form-card label {
	font-weight: 600;
	color: #333;
}

body.orientamento .unipv-login-form-card #loginRecupera {
	color: var(--primary-color);
}

body.orientamento .unipv-login-form-card .unipv-btn-login-submit {
	display: flex;
	width: 100%;
	justify-content: center;
	margin-top: 1.25rem;
	padding: 0.7rem 1.5rem;
	font-size: 1rem;
	background: var(--gradient-primary);
	color: #fff !important;
	border: 0;
}

@media (max-width: 991px) {
	body.orientamento .unipv-login-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	body.orientamento .unipv-login-header {
		padding: 1.5rem 0 1.5rem;
	}

	body.orientamento .unipv-login-header-inner--with-event {
		flex-direction: column;
		align-items: stretch;
	}

	body.orientamento .unipv-login-header-event {
		max-width: none;
	}

	body.orientamento .unipv-login-header h1 {
		font-size: 1.85rem;
	}

	body.orientamento .unipv-login-content {
		padding: 1.25rem 0 2.5rem;
	}

	body.orientamento .unipv-login-grid {
		grid-template-columns: 1fr;
	}

	body.orientamento .unipv-login-tipologia-content {
		padding: 1.25rem 0 2.5rem;
	}

	body.orientamento .unipv-login-form-card {
		padding: 1.35rem 1.15rem 1.15rem;
	}

	body.orientamento .unipv-login-form-card-header {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Area personale (sidebar): sfondo bianco */
body.orientamento:has(main .list-group.mb-5),
body.frontend:has(main .list-group.mb-5) {
	background: #fff;
}

/* Area personale — banner Save The Date */
body.orientamento .unipv-std-banner-list {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

body.orientamento .unipv-std-banner {
	display: flex;
	flex-wrap: nowrap;
	background: #fff;
	border: 1px solid var(--border-color);
	border-left: 4px solid var(--std-color);
	box-shadow: 0 2px 10px rgba(var(--std-color-rgb), 0.12);
	overflow: hidden;
	min-height: 220px;
}

body.orientamento .unipv-std-banner-visual {
	position: relative;
	flex: 0 0 42%;
	max-width: 42%;
	min-height: 220px;
	background: #e3e7ec;
}

body.orientamento .unipv-std-banner-visual.unipv-copertina-placeholder {
	background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
}

body.orientamento .unipv-std-banner-image {
	width: 100%;
	height: 100%;
	min-height: 220px;
	background-size: cover;
	background-position: center;
}

body.orientamento .unipv-std-banner-date {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--gradient-std);
	color: #fff;
	padding: 0.75rem 1rem;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

body.orientamento .unipv-std-banner-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 1.35rem 1.5rem;
}

body.orientamento .unipv-std-banner-title {
	font-size: 1.15rem;
	font-weight: 700;
	color: #222;
	margin: 0 0 0.75rem;
}

body.orientamento .unipv-std-banner-title a {
	color: inherit;
	text-decoration: none;
}

body.orientamento .unipv-std-banner-title a:hover {
	color: var(--std-color);
}

body.orientamento .unipv-std-banner-actions {
	margin-top: auto;
	margin-left: auto;
	padding-top: 1rem;
	border-top: 1px solid #fde68a;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: flex-end;
	gap: 0.5rem;
	width: 100%;
	max-width: 18rem;
}

body.orientamento .unipv-std-banner-actions .btn-dettagli,
body.orientamento .unipv-std-banner-actions .btn-iscriviti,
body.orientamento .unipv-std-banner-actions .btn-std-interesse {
	flex: 1 1 0;
	min-width: 0;
	min-height: 2rem;
	padding: 0.38rem 0.6rem;
	font-size: 0.8rem;
	line-height: 1.2;
	white-space: normal;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	text-align: center;
	box-sizing: border-box;
	border: 1px solid var(--std-color);
	color: var(--std-color);
	background: #fff;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
}

body.orientamento .unipv-std-banner-actions .btn-dettagli:hover {
	background: #fff7ed;
	color: var(--std-color);
	text-decoration: none;
}

body.orientamento .unipv-std-banner-actions > :only-child {
	flex: 0 1 auto;
	min-width: 8rem;
}

@media (max-width: 767px) {
	body.orientamento .unipv-std-banner {
		flex-direction: column;
	}

	body.orientamento .unipv-std-banner-visual {
		flex: 0 0 auto;
		max-width: none;
		width: 100%;
		min-height: 200px;
	}

	body.orientamento .unipv-std-banner-image {
		min-height: 200px;
	}
}

/* Area personale — intestazione e empty state */
body.orientamento .unipv-area-personale-page {
	padding: 1.25rem 0 2rem;
}

body.orientamento .unipv-area-personale-header {
	margin-bottom: 2rem;
}

body.orientamento .unipv-area-personale-header h1 {
	font-size: 2rem;
	font-weight: 700;
	color: var(--primary-color);
	margin: 0 0 0.5rem;
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

body.orientamento .unipv-area-personale-header h1 i {
	color: var(--primary-color-light);
}

body.orientamento .unipv-area-personale-subtitle {
	color: var(--text-muted);
	font-size: 1rem;
	margin: 0;
}

body.orientamento .unipv-area-personale-empty {
	text-align: center;
	padding: 3.75rem 1.5rem;
	background: #f8f9fa;
	border: 0;
	border-radius: 1rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	margin: 0;
}

body.orientamento .unipv-area-personale-empty > i {
	font-size: 4rem;
	color: #adb5bd;
	margin-bottom: 1.25rem;
	display: block;
	line-height: 1;
}

body.orientamento .unipv-area-personale-empty h3 {
	color: #495057;
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 0.85rem;
}

body.orientamento .unipv-area-personale-empty p {
	color: #6c757d;
	margin: 0 auto 1.75rem;
	line-height: 1.65;
	max-width: 36rem;
}

body.orientamento .unipv-area-personale-empty .unipv-btn-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	padding: 0.7rem 1.85rem;
	background: var(--gradient-primary);
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.95rem;
	box-shadow: 0 5px 20px rgba(var(--primary-color-rgb), 0.28);
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

body.orientamento .unipv-area-personale-empty .unipv-btn-pill:hover,
body.orientamento .unipv-area-personale-empty .unipv-btn-pill:focus {
	background: var(--gradient-primary);
	opacity: 0.95;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(var(--primary-color-rgb), 0.35);
	color: #fff !important;
	text-decoration: none !important;
}

/* Area personale — I miei Save The Date */
body.orientamento.unipv-std-miei-page .unipv-std-miei-list {
	margin-top: 0;
}

body.orientamento.unipv-std-miei-page .unipv-std-banner--passato {
	opacity: 0.78;
}

body.orientamento.unipv-std-miei-page .unipv-std-miei-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
}

body.orientamento.unipv-std-miei-page .target-badge--stato {
	display: inline-block;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 0.72rem;
	letter-spacing: 0.03em;
}

body.orientamento.unipv-std-miei-page .target-badge--futuro {
	background: #e3f2fd;
	color: #1565c0;
}

body.orientamento.unipv-std-miei-page .target-badge--attivo {
	background: #e8f5e9;
	color: #2e7d32;
}

body.orientamento.unipv-std-miei-page .target-badge--passato {
	background: #ffebee;
	color: #c62828;
}

body.orientamento.unipv-std-miei-page .unipv-std-miei-iscrizione {
	margin: 0 0 0.5rem;
	font-size: 0.88rem;
	color: var(--text-muted);
}

body.orientamento.unipv-std-miei-page .unipv-std-miei-iscrizione i {
	margin-right: 0.35rem;
	color: var(--std-color);
}

body.orientamento.unipv-std-miei-page .unipv-std-banner-actions .btn-dettagli {
	border-color: var(--std-color);
	color: var(--std-color);
}

body.orientamento.unipv-std-miei-page .unipv-std-banner-actions .btn-dettagli:hover {
	background: #fff7ed;
	color: var(--std-color);
}

body.orientamento.unipv-std-miei-page .btn-std-annulla {
	background: #fff;
	border: 1px solid #c62828;
	color: #c62828;
	padding: 0.55rem 1.35rem;
	border-radius: 4px;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	flex: 1 1 0;
	min-width: 0;
	min-height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

body.orientamento.unipv-std-miei-page .btn-std-annulla:hover:not(:disabled) {
	background: #ffebee;
	color: #c62828;
}

body.orientamento.unipv-std-miei-page .btn-std-annulla:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
