/* NorthPro Login Chooser — modal + first-visit welcome popup */

.npl-modal{
	position:fixed;inset:0;z-index:99999;display:none;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",sans-serif;
}
.npl-modal[aria-hidden="false"]{
	display:block;animation:nplFade .22s ease;
}
.npl-backdrop{
	position:absolute;inset:0;background:rgba(7,20,28,.65);
	-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.npl-card{
	position:relative;background:#fff;border-radius:24px;
	max-width:680px;width:calc(100% - 32px);
	margin:8vh auto;padding:36px;
	box-shadow:0 30px 80px -20px rgba(0,0,0,.55);
	animation:nplPop .25s cubic-bezier(.2,.85,.3,1.1);
}
.npl-eyebrow{
	color:#0d3b2e;font-weight:800;letter-spacing:.18em;
	font-size:.74rem;text-transform:uppercase;margin-bottom:10px;
}
.npl-h{
	font-size:1.6rem;font-weight:800;margin:0 0 8px;
	color:#0a1f17;line-height:1.15;letter-spacing:-.02em;
}
.npl-sub{
	color:#5a6b63;margin:0 0 24px;font-size:.96rem;line-height:1.45;
}
.npl-grid{
	display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;
}
.npl-tile{
	display:block;background:#fff;border:2px solid #e3eae6;border-radius:14px;
	padding:22px;text-decoration:none;color:inherit;
	transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.npl-tile:hover{
	border-color:#0d3b2e;transform:translateY(-3px);
	box-shadow:0 12px 28px -10px rgba(13,59,46,.25);
	color:inherit;
}
.npl-tile-gold{
	background:linear-gradient(135deg,#c9a85a 0%,#d4b66a 100%);
	border-color:transparent;color:#07291e;
}
.npl-tile-gold:hover{
	border-color:#07291e;
	box-shadow:0 14px 32px -10px rgba(201,168,90,.55);
}
.npl-tile-label{
	font-weight:800;font-size:.7rem;letter-spacing:.2em;
	color:#1a6b52;margin-bottom:10px;text-transform:uppercase;
}
.npl-tile-gold .npl-tile-label{color:#07291e}
.npl-tile h3{
	font-size:1.05rem;margin:0 0 4px;font-weight:700;
	color:#0a1f17;letter-spacing:-.01em;
}
.npl-tile-gold h3{color:#07291e}
.npl-tile p{
	margin:0 0 14px;font-size:.86rem;color:#5a6b63;line-height:1.4;
}
.npl-tile-gold p{color:#07291e;opacity:.85}
.npl-tile-cta{
	display:inline-block;font-weight:700;color:#0d3b2e;font-size:.88rem;
}
.npl-tile-gold .npl-tile-cta{color:#07291e}
.npl-tile:hover .npl-tile-cta{text-decoration:underline}
.npl-footer-links{
	text-align:center;font-size:.86rem;color:#5a6b63;padding-top:6px;
}
.npl-footer-links a{
	color:#0d3b2e;text-decoration:underline;text-underline-offset:2px;
	font-weight:600;margin:0 6px;
}
.npl-footer-links a:hover{color:#1a6b52}
.npl-sep{opacity:.5;margin:0 4px}
.npl-close{
	position:absolute;top:12px;right:14px;
	background:transparent;border:0;font-size:1.7rem;color:#7c948b;
	cursor:pointer;line-height:1;padding:4px 10px;border-radius:8px;
	transition:background .15s ease,color .15s ease;
}
.npl-close:hover{background:#f3f7f4;color:#0a1f17}

@keyframes nplFade{from{opacity:0}to{opacity:1}}
@keyframes nplPop{
	from{opacity:0;transform:translateY(20px) scale(.96)}
	to{opacity:1;transform:translateY(0) scale(1)}
}

/* Welcome variant — slightly more visual flourish */
.npl-welcome .npl-card-welcome{
	background:
		radial-gradient(800px 300px at 100% 0%,rgba(201,168,90,.16),transparent 55%),
		radial-gradient(600px 280px at 0% 100%,rgba(13,59,46,.07),transparent 60%),
		#fff;
}

@media (max-width:600px){
	.npl-card{padding:24px 18px;margin:4vh 12px;border-radius:18px}
	.npl-grid{grid-template-columns:1fr;gap:10px}
	.npl-h{font-size:1.25rem}
	.npl-sub{font-size:.88rem;margin-bottom:18px}
	.npl-tile{padding:18px}
	.npl-tile h3{font-size:1rem}
}

/* Prevent background scroll when a modal is open */
body.npl-locked{overflow:hidden}
