/**
 * /www/wwwroot/neovital.eu/assets/css/site.css
 */

:root{
	--bg:#1f2730;
	--panel:#eef2f6;
	--text:#1c2b38;
	--muted:#5e6e7d;
	--line:#d9e0e7;
	--chip:#f4f7fa;
	--chip-border:#cfd8e1;
}

*{
	box-sizing:border-box;
}

html{
	direction:ltr;
}

body{
	margin:0;
	min-height:100vh;
	background:
		radial-gradient(1200px 600px at 20% 10%, rgba(255,255,255,0.05), transparent 60%),
		radial-gradient(900px 500px at 80% 30%, rgba(255,255,255,0.03), transparent 55%),
		var(--bg);
	color:var(--text);
	font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	font-weight:400;
	display:flex;
	justify-content:center;
	align-items:flex-start;
	padding:20px 14px;
}

.card{
	width:min(1380px,100%);
	background:var(--panel);
	border:1px solid rgba(255,255,255,0.12);
	border-radius:18px;
	padding:0 48px;
	box-shadow:0 18px 40px rgba(0,0,0,0.25);
}

/* LOGO */
.logo{
	display:block;
	margin:0 auto 10px auto;
	width:60%;
	max-width:360px;
	height:auto;
}

.hairline{
	display:none;
}

/* SITE HEADER */
.site-header{
	margin:0 -48px 0 -48px;
	padding:34px 48px 18px 48px;
	background:linear-gradient(
		to bottom,
		#cfded8 0%,
		#d9e6e1 100%
	);
	border-radius:18px 18px 0 0;
	border-bottom:1px solid #b8c7d6;
}

.site-header-top{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
}

/* PAGE TITLE */
.page-title{
	text-align:center;
	color:var(--text);
	font-size:15px;
	letter-spacing:2.4px;
	font-weight:600;
	margin:28px auto 14px auto;
}

/* HERO */
.subtitle{
	margin:0 auto;
	text-align:center;
	color:#3c4a57;
	max-width:980px;
	font-size:23px;
	line-height:1.45;
	font-weight:500;
}

/* BADGES / NAV */
.badges{
	margin:30px auto 0 auto;
	display:flex;
	flex-wrap:wrap;
	gap:16px;
	justify-content:center;
}

.badges .badge-link{
	text-decoration:none;
	color:inherit;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

.badge{
	border:1px solid var(--chip-border);
	background:var(--chip);
	color:#2b3a48;
	padding:9px 16px;
	border-radius:999px;
	font-size:13px;
	letter-spacing:0.3px;
	min-width:135px;
	text-align:center;
	display:flex;
	align-items:center;
	justify-content:center;
}

.badges .badge-link:hover .badge,
.badges .badge-link:focus .badge{
	background:#ffffff;
	border-color:#bfcad6;
	box-shadow:0 6px 14px rgba(0,0,0,0.08);
	transform:translateY(-1px);
}

.badges .badge-link:focus{
	outline:none;
}

/* SHARED GLASS PANEL BASE */
.glass-panel{
	position:relative;
	overflow:hidden;
	background:rgba(255,255,255,0.23);
	backdrop-filter:blur(6px);
	-webkit-backdrop-filter:blur(6px);
	border:1px solid rgba(200,210,220,0.6);
	border-radius:18px;
	box-shadow:0 8px 18px rgba(0,0,0,0.04);
}

.glass-panel::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(255,255,255,0.23);
	z-index:0;
}

.glass-panel > *{
	position:relative;
	z-index:1;
}

/* TEMPORARY LEGACY ALIAS */
.home-block{
	position:relative;
	overflow:hidden;
	background:rgba(255,255,255,0.23);
	backdrop-filter:blur(6px);
	-webkit-backdrop-filter:blur(6px);
	border:1px solid rgba(200,210,220,0.6);
	border-radius:18px;
	box-shadow:0 8px 18px rgba(0,0,0,0.04);
}

.home-block::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(255,255,255,0.23);
	z-index:0;
}

.home-block > *{
	position:relative;
	z-index:1;
}

/* HOME CARD SYSTEM */
.home-cards{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:24px;
	align-items:stretch;
	margin-top:36px;
	padding-bottom:38px;
}

.home-card{
	min-height:210px;
	padding:24px 22px 22px 22px;
}

.home-card-title{
	margin:0 0 10px 0;
	font-size:15px;
	line-height:1.3;
	font-weight:600;
	letter-spacing:0.2px;
	color:#1f2f3b;
}

.home-card-text{
	margin:0;
	font-size:15px;
	line-height:1.7;
	color:#2f3f4d;
}

.home-blocks{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:26px;
	margin-top:34px;
}

/* SCIENCE PAGE */
body.page-science .card{
	position:relative;
	overflow:hidden;
	background:var(--panel);
}

body.page-science .card::before{
	content:"";
	position:absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	background:
		linear-gradient(
			135deg,
			rgba(255,255,255,0.12) 0%,
			rgba(255,255,255,0.20) 34%,
			rgba(255,255,255,0.34) 62%,
			rgba(255,255,255,0.48) 100%
		),
		url('/assets/img/hero-dna.png');
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	pointer-events:none;
	z-index:0;
	filter:contrast(1.28) brightness(0.88);
}

body.page-science .card > *{
	position:relative;
	z-index:1;
}

body.page-science .page-title{
	margin-top:28px;
}

body.page-science .subtitle{
	max-width:860px;
	font-size:18px;
	line-height:1.75;
	margin-bottom:10px;
	color:#314550;
}

/* FORMULATIONS PAGE */
body.page-formulations .card{
	position:relative;
	overflow:hidden;
	background:var(--panel);
}

body.page-formulations .card::before{
	content:"";
	position:absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	background:
		linear-gradient(
			90deg,
			rgba(255,255,255,0.15) 0%,
			rgba(255,255,255,0.05) 35%,
			rgba(255,255,255,0.00) 55%,
			rgba(255,255,255,0.05) 75%,
			rgba(255,255,255,0.15) 100%
		),
		url('/assets/img/hero-humans.png');
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	pointer-events:none;
	z-index:0;

	filter:contrast(1.05) brightness(0.98);
}

body.page-formulations .card > *{
	position:relative;
	z-index:1;
}

/* FOOTER */
.footer{
	margin:34px -48px 0 -48px;
	padding:20px 48px 26px 48px;
	border-top:1px solid #d6dee6;
	border-radius:0 0 18px 18px;
	background:linear-gradient(
		to bottom,
		#cfded8 0%,
		#d9e6e1 100%
	);
	text-align:center;
	color:#5e6e7d;
	font-size:12px;
	line-height:1.65;
}

.footer strong{
	color:#1c2b38;
	font-weight:600;
}

.note{
	margin-top:10px;
	color:#8c98a3;
	font-size:11px;
}

.advisor-link{
	color:inherit;
	text-decoration:none;
	font-weight:inherit;
}

.advisor-link:hover,
.advisor-link:focus{
	color:inherit;
	text-decoration:none;
	outline:none;
}

.footer .advisor-link{
	pointer-events:auto;
	cursor:pointer;
}

/* SUBPAGES */
body.page-sub .badges{
	display:none;
}

body.page-sub .logo{
	width:60%;
	max-width:360px;
	opacity:0.92;
	margin-bottom:10px;
}

body.page-sub .subtitle{
	max-width:760px;
	font-size:15px;
	line-height:1.7;
}

body.page-sub{
	align-items:flex-start;
	padding-top:70px;
}

/* HOME link inside footer */
.home-footer-link{
	margin-top:18px;
	text-align:center;
	font-size:12px;
	letter-spacing:1px;
}

.home-footer-link a{
	color:#8B4513;
	text-decoration:none;
	font-weight:500;
}

.home-footer-link a:hover{
	color:#A0522D;
}

/* TABLET */
@media (max-width:1100px){
	.card{
		width:min(980px,100%);
		padding:0 28px;
	}

	.site-header{
		margin:0 -28px 0 -28px;
		padding:34px 28px 18px 28px;
	}

	.footer{
		margin:34px -28px 0 -28px;
		padding:20px 28px 26px 28px;
	}
}

/* MOBILE */
@media (max-width:720px){
	/* (vuoto di proposito — tutto era formulations) */
}

@media (max-width:600px){
	.card{
		padding:0 18px;
	}

	.site-header{
		margin:0 -18px 0 -18px;
		padding:26px 18px 16px 18px;
	}

	.footer{
		margin:28px -18px 0 -18px;
		padding:18px 18px 22px 18px;
	}

	.page-title{
		margin:24px auto 12px auto;
	}

	.subtitle{
		font-size:18px;
		max-width:100%;
	}

	.home-block-text{
		font-size:16px;
	}

	.badges{
		gap:10px;
	}

	.badge{
		min-width:120px;
		font-size:12px;
	}

	/* HOME CARDS FIX */
	.home-cards{
		grid-template-columns:1fr;
		gap:16px;
		margin-top:24px;
		padding-bottom:28px;
	}

	.home-card{
		min-height:auto;
		padding:20px 18px;
	}

	.home-card-title{
		font-size:20px;
		line-height:1.35;
		margin-bottom:10px;
		word-break:normal;
		overflow-wrap:normal;
	}

	.home-card-text{
		font-size:16px;
		line-height:1.7;
		word-break:normal;
		overflow-wrap:break-word;
	}
}

/* ---------------------------------
   INITIAL HIDE (PREVENT FLASH)
--------------------------------- */

body.preload{
	opacity:0;
}