/* NINSS contact page — builds on ninss-program.css (.np base) */

.nc-hero {
	position: relative;
	overflow: hidden;
	padding: 80px 0 150px;
	text-align: center;
	color: #fff;
	background: radial-gradient(900px 420px at 50% -20%, #3a4aa8 0%, transparent 65%), linear-gradient(135deg, var(--np-navy-deep), var(--np-navy));
}
.nc-hero::before, .nc-hero::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	border: 50px solid rgba(255, 255, 255, .04);
}
.nc-hero::before { width: 360px; height: 360px; left: -140px; bottom: -180px; }
.nc-hero::after { width: 280px; height: 280px; right: -100px; top: -120px; }
.nc-hero .np-eyebrow { color: var(--np-sky); justify-content: center; }
.nc-hero h1 {
	color: #fff !important;
	font-size: clamp(36px, 5.2vw, 58px) !important;
	font-weight: 800 !important;
	line-height: 1.08 !important;
	margin: 0 0 16px !important;
}
.nc-hero p { font-size: 18px; color: #d3d8f3; max-width: 620px; margin: 0 auto !important; }

/* Contact method cards */
.nc-cards { position: relative; z-index: 2; margin-top: -96px; }
.nc-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.nc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 28px 24px 24px;
	border-radius: 22px;
	background: #fff;
	color: var(--np-ink) !important;
	box-shadow: 0 20px 44px rgba(26, 33, 85, .14);
	overflow: hidden;
	transition: transform .35s, box-shadow .35s;
}
.nc-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--nc-accent, var(--np-navy));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s;
}
a.nc-card:hover { transform: translateY(-6px); box-shadow: 0 26px 52px rgba(26, 33, 85, .2); }
a.nc-card:hover::before { transform: none; }
a.nc-card:focus-visible { outline: 3px solid var(--np-sky); outline-offset: 3px; }
.nc-card .np-icon { width: 52px; height: 52px; border-radius: 16px; background: var(--nc-accent, var(--np-navy)); margin-bottom: 18px; }
.nc-card small { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--np-muted); }
.nc-card strong { display: block; font-size: 19px; color: var(--np-navy); line-height: 1.35; margin: 4px 0 6px; word-break: break-word; }
.nc-card span.nc-sub { font-size: 14px; color: var(--np-muted); }
.nc-card .nc-go { margin-top: auto; padding-top: 16px; font-size: 14px; font-weight: 700; color: var(--nc-accent, var(--np-navy)); display: inline-flex; align-items: center; gap: 6px; }
.nc-card .nc-go svg { transition: transform .3s; }
a.nc-card:hover .nc-go svg { transform: translateX(4px); }
.nc-card.is-whatsapp { --nc-accent: #1fa855; }
.nc-card.is-mail { --nc-accent: var(--np-red); }
.nc-card.is-visit { --nc-accent: #3a4aa8; }

/* Visit: details + map */
.nc-visit { display: grid; grid-template-columns: .9fr 1.1fr; gap: 24px; align-items: stretch; }
.nc-info {
	padding: 36px;
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(26, 33, 85, .08);
}
.nc-info h2 { font-size: clamp(24px, 2.8vw, 32px); font-weight: 800; margin-bottom: 10px !important; }
.nc-info > p { color: var(--np-ink); margin-bottom: 24px !important; }
.nc-address {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 16px;
	padding: 20px;
	border-radius: 18px;
	background: #f2f6f5;
	margin-bottom: 20px;
}
.nc-address .np-icon { margin: 0; }
.nc-address address { font-style: normal; color: var(--np-ink); font-size: 15px; line-height: 1.65; }
.nc-address address b { display: block; font-size: 16.5px; color: var(--np-navy); margin-bottom: 2px; }
.nc-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.np .nc-btn-dark { background: var(--np-navy); color: #fff !important; box-shadow: 0 10px 22px rgba(39, 49, 113, .25); }
.np .nc-btn-line { color: var(--np-navy) !important; box-shadow: inset 0 0 0 2px rgba(39, 49, 113, .2); }
.np .nc-btn-line:hover { box-shadow: inset 0 0 0 2px var(--np-navy); }
.nc-map {
	position: relative;
	min-height: 460px;
	border-radius: 26px;
	overflow: hidden;
	background: #e6eeec;
	box-shadow: 0 14px 34px rgba(26, 33, 85, .1);
}
.nc-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Quick links */
.nc-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.nc-link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .75);
	box-shadow: inset 0 0 0 1px rgba(39, 49, 113, .1);
	color: var(--np-navy) !important;
	font-weight: 700;
	transition: background .3s, transform .3s, box-shadow .3s;
}
.nc-link:hover { background: #fff; transform: translateY(-4px); box-shadow: 0 14px 28px rgba(26, 33, 85, .12); }
.nc-link:focus-visible { outline: 3px solid var(--np-sky); outline-offset: 3px; }
.nc-link .np-icon { margin: 0; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 12px; }
.nc-link small { display: block; font-weight: 400; font-size: 13px; color: var(--np-muted); }

/* Responsive */
@media (max-width: 1024px) {
	.nc-cards-grid, .nc-links { grid-template-columns: 1fr 1fr; }
	.nc-visit { grid-template-columns: 1fr; }
	.nc-map { min-height: 380px; }
}
@media (max-width: 767px) {
	.nc-hero { padding: 56px 0 130px; }
	.nc-hero p { font-size: 16px; }
	.nc-cards { margin-top: -84px; }
	.nc-cards-grid { gap: 12px; }
	.nc-card { padding: 22px 18px 18px; }
	.nc-card strong { font-size: 16.5px; }
	.nc-info { padding: 26px 22px; }
	.nc-map { min-height: 320px; }
}
@media (max-width: 480px) {
	.nc-cards-grid, .nc-links { grid-template-columns: 1fr; }
}
