@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;300;700&family=Poppins:wght@400;500;700&display=swap');

.container{
	font-family: "Poppins";
}

.formGroup{
	border: 0;
	padding: 0;
}

input{
	width: 100%;
	padding: 8px;
	margin-bottom: 5px;
	
}

#submitLogin{
	color: #fff;
	background-color: #f30438;
	border: 0;
	padding: 10px;
	width: 350px;
}

.formGroup label{
	text-transform: uppercase;
	
}

a{
	color: #f30438;
}

.btn-primary{
	background-color: #f30438;
	border-color: #f30438;
}

.ufc{
	max-width:350px;
}

.voixBanner{
	font-size: 66px;
	line-height: 60px;
	margin-top:30px;
}

@media only screen and (max-width: 600px) {
	.voixBanner{
		margin-top:0;

	}

}

/* ---------- Split-screen home / login page (index.php) ---------- */

.login-page{
	display: flex;
	min-height: calc(100vh - 56px);
	font-family: "Poppins", sans-serif;
	color: #1c2733;
}

.login-hero{
	flex: 1 1 50%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 48px 40px 48px 8%;
	background: linear-gradient(135deg, #ffffff 0%, #f1f3f6 100%);
}

.login-hero-inner{
	max-width: 560px;
	width: 100%;
}

.login-hero h1{
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 16px;
}

.login-hero h1 span{
	display: block;
	font-weight: 400;
}

.login-hero-sub{
	font-size: 1.15rem;
	color: #5b6672;
	max-width: 380px;
	margin-bottom: 28px;
}

.login-features{
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}

.login-features li{
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 18px;
}

.login-features i{
	font-size: 1.7rem;
	line-height: 1;
	color: #f30438;
	flex: 0 0 34px;
}

.login-features strong{
	display: block;
	font-weight: 500;
}

.login-features span{
	display: block;
	font-size: .85rem;
	color: #6b7682;
}

.login-hero-img{
	display: block;
	width: 100%;
	max-height: 300px;
	object-fit: cover;
	border-radius: 12px;
}

.login-side{
	flex: 1 1 50%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 48px 8% 48px 40px;
	background: #f6f7f9;
}

.login-card{
	width: 100%;
	max-width: 640px;
	background: #fff;
	border-radius: 12px;
	padding: 64px 76px;
	box-shadow: 0 8px 30px rgba(20, 30, 45, .08);
}

.login-card h2{
	font-size: 1.9rem;
	font-weight: 700;
	margin: 0 0 6px;
}

.login-card-sub{
	color: #6b7682;
	margin-bottom: 26px;
}

/* Form generated by the shared GBM User::form() – restyled only here */
.login-form .ufc{
	max-width: none;
}

/* register form: groups are fixed 350px + float in std.inc.css */
.login-form .formGroup{
	width: 100%;
	float: none;
	margin: 0;
}

.login-form input.form-control,
.login-form input[type=email],
.login-form input[type=password],
.login-form input[type=text]{
	height: 48px;
	padding: 8px 14px;
	border: 1px solid #d9dee4;
	border-radius: 6px;
	margin-bottom: 14px;
}

.login-form input:focus{
	border-color: #f30438;
	box-shadow: 0 0 0 3px rgba(243, 4, 56, .12);
	outline: 0;
}

.login-form #submitLogin,
.login-form input[type=submit]{
	width: 100%;
	height: 48px;
	border-radius: 6px;
	font-weight: 500;
	cursor: pointer;
}

/* register: space the bare "Déjà inscrit ?" text below the button */
.login-form form:has(a[href="?action=login"]) #submitLogin{
	margin-bottom: 1rem;
}

.login-form #submitLogin:hover{
	background-color: #d6032f;
}

/* language dropdown is already in the top navbar */
.login-form .dropdown{
	display: none;
}

/* register link is replaced by the dedicated block below the form */
.login-form a[href="?action=register"]{
	display: none;
}

.login-form a{
	font-size: .9rem;
}

.pw-wrap{
	position: relative;
}

.pw-toggle{
	position: absolute;
	top: 0;
	right: 4px;
	height: 48px;
	width: 42px;
	border: 0;
	background: transparent;
	color: #4a5560;
	cursor: pointer;
}

.pw-wrap input{
	padding-right: 44px;
}

.login-or{
	position: relative;
	text-align: center;
	margin: 22px 0;
	color: #8a94a0;
	font-size: .85rem;
	text-transform: lowercase;	/* DICO_WORD_OR is capitalised */
}

.login-or:before{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	border-top: 1px solid #e3e7ec;
}

.login-or span{
	position: relative;
	background: #fff;
	padding: 0 12px;
}

.login-extra{
	display: flex;
	align-items: center;
	gap: 16px;
	background: #f6f7f9;
	border-radius: 8px;
	padding: 16px 20px;
	font-size: .92rem;
}

.login-extra i.bi:first-child{
	font-size: 1.5rem;
}

.login-extra-plain{
	background: transparent;
	padding: 24px 20px 0;
}

.login-extra a{
	font-size: .85rem;
}

@media only screen and (max-width: 991px) {
	.login-page{
		flex-direction: column;
	}
	.login-hero,
	.login-bg{
		display: none;
	}
	.login-side{
		justify-content: center;
		padding: 24px 16px 40px;
	}
	.login-card{
		padding: 28px 22px;
	}
}

/* ---------- fidelity pass ---------- */
.login-form .dropdown{ display: none !important; }

/* header: slogan next to logo, hide the "Connexion" nav item */
.navbar-brand:after{
	content: "";
	display: inline-block;
	margin-left: 18px;
	padding-left: 18px;
	border-left: 1px solid rgba(255,255,255,.25);
	font-size: .95rem;
	vertical-align: middle;
	color: #fff;
	font-family: "Poppins", sans-serif;
}
.navbar-nav .nav-link[href$="voix.test/"], .navbar-nav .nav-link[href="https://voix.test/"]{ display:none; }
.login-help{ color: #fff !important; margin-right: 12px; }

/* register button, top right of the navbar */
.login-register-btn{
	margin-left: 12px;
	color: #fff !important;
	background-color: #f30438;
	border-color: #f30438;
	font-weight: 500;
}
.login-register-btn:hover, .login-register-btn:focus{
	background-color: #d6032f;
	border-color: #d6032f;
}
@media only screen and (max-width: 991px){ .login-register-btn{ margin: 8px 0; } }

/* hero: full-bleed picture fading into the panel */
.login-hero{ position: relative; overflow: hidden; align-items: flex-start; padding-top: 80px; }
.login-hero-inner{ position: relative; z-index: 1; }
.login-hero-img{
	position: absolute;
	left: 0; right: 0; bottom: 0;
	width: 100%; height: 42%;
	max-height: none;
	border-radius: 0;
	object-fit: cover;
	object-position: center 55%;
	mix-blend-mode: multiply;
	opacity: .9;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 45%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 45%);
	z-index: 0;
}

/* labelled fields with inside icon */
.login-label, .login-form .formLabel{
	display: block;
	font-size: .9rem;
	font-weight: 500;
	margin-bottom: 6px;
	text-transform: none !important;
}
.field-wrap, .pw-wrap{ position: relative; margin-bottom: 14px; }
.field-wrap input{ padding-left: 42px !important; margin-bottom: 0 !important; }
.field-icon{
	position: absolute; left: 14px; top: 14px;
	color: #7a8591; font-size: 1.05rem; pointer-events: none;
}
.field-wrap .pw-toggle{ top: 0; right: 4px; }
.login-form br{ display: none; }
.login-form .alert br, .login-form [class^="msgInfo"] br{ display: initial; }	/* keep line breaks in messages (e.g. register success) */
.login-form a{ text-decoration: underline; }
.login-extra a{ text-decoration: underline; }
@media only screen and (max-width: 991px){ .navbar-brand:after{ display:none; } }

/* ---------- full-page background, card centred in right half ---------- */
.login-page{ position: relative; overflow: hidden; background: #f4f5f7; }
.login-bg{
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: center;
	z-index: 0;
}
/* white veil: opaque on the text side, lighter towards the right */
.login-page:before{
	content: "";
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.9) 40%, rgba(246,247,249,.72) 100%);
}
.login-hero, .login-side{ position: relative; z-index: 2; background: transparent; }
.login-hero{ align-items: center; padding-top: 48px; }
.login-side{ justify-content: center; padding: 48px 5%; }
.login-hero-img{ display: none; }

/* arrows aligned with their link text */
.login-extra a{ display: inline-flex; align-items: center; gap: 6px; }
.login-extra a i{ font-size: 1rem; line-height: 1; margin: 0; position: static; }
.login-extra i.bi:first-child{ flex: 0 0 auto; }

/* image on the left half only */
.login-bg{ width: 50%; right: auto; }
.login-page:before{ right: auto; width: 50%; background: linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.85) 100%); }
.login-side{ background: #f6f7f9; }
@media only screen and (max-width: 991px){ .login-bg, .login-page:before{ width: 100%; height: 45%; bottom: auto; } }

/* image shown as-is (no veil), text top-left with margins */
.login-page:before{ display: none; }
.login-bg{ object-position: center bottom; }
.login-hero{ align-items: flex-start; justify-content: flex-start; padding: 56px 48px 48px 64px; }
.login-hero-inner{ max-width: 520px; }
@media only screen and (max-width: 991px){ .login-hero{ padding: 32px 24px; } }

/* readable text: white only behind the text block, photo untouched below */
.login-page:before{
	display: block;
	right: auto; width: 50%;
	background: linear-gradient(to bottom, rgba(255,255,255,.96) 0%, rgba(255,255,255,.92) 42%, rgba(255,255,255,0) 68%);
}
@media only screen and (max-width: 991px){ .login-page:before{ width: 100%; height: 45%; bottom: auto; } }

/* no white band: a soft white halo behind the text block over the photo */
.login-page:before{ display: none; }
.login-hero-inner{ position: relative; isolation: isolate; }
.login-hero-inner::before{
	content: "";
	position: absolute;
	inset: -4rem -5rem;
	z-index: -1;
	background: radial-gradient(ellipse at 40% 50%,
	            #fff 55%,
	            rgba(255,255,255,.6) 70%,
	            rgba(255,255,255,0) 85%);
	filter: blur(16px);
	pointer-events: none;
}
.login-hero h1,
.login-hero-sub,
.login-features strong,
.login-features span{
	color: #1b2a3a;
	font-weight: 800;
}
