/* Front page — precision modules with a warm-light sensibility. */

body.page-front main.home-page{
	width:auto;
	max-width:none;
	margin:0;
	padding:0;
	overflow:hidden;
}

body.page-front .home-section{padding-block:clamp(72px,8vw,116px)}
body.page-front .home-section--mist{background:var(--zg-mist)}
body.page-front .home-section--dark{background:var(--zg-graphite)}
body.page-front .home-section--dark h2,
body.page-front .home-section--dark h3{color:#fff}
body.page-front .home-section--dark .home-head__copy{color:#b8c1c5}

body.page-front .home-page *,
body.page-front .home-page *::before,
body.page-front .home-page *::after{box-sizing:border-box}

body.page-front .home-page h2{font-size:clamp(1.9rem,3.4vw,3rem)}
body.page-front .home-page p{margin:0}

/* ---------- Hero ---------- */

body.page-front .home-hero{
	padding-block:clamp(56px,7vw,92px) clamp(56px,7vw,84px);
	background:
		linear-gradient(90deg,transparent 0 49.9%,rgba(23,35,42,.04) 50%,transparent 50.1%),
		linear-gradient(0deg,transparent 0 49.9%,rgba(23,35,42,.03) 50%,transparent 50.1%),
		var(--zg-warm-white);
	background-size:96px 96px;
}

body.page-front .home-hero__grid{
	display:grid;
	grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
	gap:clamp(40px,6vw,84px);
	align-items:center;
}

body.page-front .home-eyebrow{
	display:flex;
	gap:12px;
	align-items:center;
	margin-bottom:20px;
	color:var(--zg-teal);
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.13em;
	text-transform:uppercase;
}

body.page-front .home-eyebrow > span{width:30px;height:2px;background:var(--zg-amber)}

body.page-front .home-hero h1{
	margin-bottom:24px;
	font-size:clamp(2.5rem,5vw,4.2rem);
	font-weight:650;
	line-height:1.05;
}

body.page-front .home-hero__lead{
	max-width:44ch;
	margin-bottom:32px;
	color:var(--zg-muted);
	font-size:clamp(1.05rem,1.3vw,1.2rem);
	line-height:1.7;
}

body.page-front .home-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

body.page-front .home-micro{
	display:flex;
	flex-wrap:wrap;
	gap:10px 24px;
	margin:28px 0 0;
	padding:0;
	list-style:none;
	color:var(--zg-muted);
	font-size:.86rem;
}

body.page-front .home-micro li::before{content:"✓";margin-right:7px;color:var(--zg-ok);font-weight:800}

body.page-front .home-hero__visual{position:relative}

body.page-front .home-hero__grid > *{min-width:0}

/* ---------- Gray image placeholders ---------- */

body.page-front .home-media{
	position:relative;
	overflow:hidden;
	border:1px solid #cbd2d4;
	border-radius:var(--zg-radius-card);
	background:
		linear-gradient(135deg,transparent 49.85%,rgba(23,35,42,.12) 50%,transparent 50.15%),
		linear-gradient(45deg,transparent 49.85%,rgba(23,35,42,.1) 50%,transparent 50.15%),
		linear-gradient(135deg,#e8ebeb 0%,#cdd3d5 52%,#e0e4e5 100%);
	box-shadow:var(--zg-shadow);
}

body.page-front .home-media::before{
	position:absolute;
	inset:16px;
	border:1px solid rgba(23,35,42,.18);
	border-radius:5px;
	content:"";
}

body.page-front .home-media--hero{aspect-ratio:4/5}

/* Photograph variant: the frame decoration belongs to the empty placeholder only. */
body.page-front .home-media--photo{background:#dfe3e4}

body.page-front .home-media--photo::before{display:none}

body.page-front .home-media__img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
}

body.page-front .home-media--hero .home-media__img{object-position:center 45%}

body.page-front .home-media--card{aspect-ratio:4/3;box-shadow:var(--zg-shadow-soft)}

body.page-front .home-media__marks span{
	position:absolute;
	width:26px;
	height:26px;
	border-color:rgba(23,35,42,.5);
	border-style:solid;
}

body.page-front .home-media__marks span:nth-child(1){top:26px;left:26px;border-width:2px 0 0 2px}
body.page-front .home-media__marks span:nth-child(2){top:26px;right:26px;border-width:2px 2px 0 0}
body.page-front .home-media__marks span:nth-child(3){right:26px;bottom:26px;border-width:0 2px 2px 0}
body.page-front .home-media__marks span:nth-child(4){bottom:26px;left:26px;border-width:0 0 2px 2px}

body.page-front .home-media__caption{
	position:absolute;
	bottom:22px;
	left:22px;
	z-index:1;
	display:inline-flex;
	flex-direction:column;
	gap:3px;
	max-width:calc(100% - 44px);
	padding:12px 15px;
	border:1px solid rgba(255,255,255,.44);
	border-radius:6px;
	background:rgba(23,35,42,.86);
	color:#fff;
}

body.page-front .home-media__caption strong{font-size:.84rem}
body.page-front .home-media__caption span{color:#c8d0d3;font-size:.72rem}

body.page-front .home-system-card{
	position:absolute;
	left:-18px;
	bottom:-22px;
	width:min(280px,80%);
	padding:18px 20px;
	border:1px solid var(--zg-border);
	border-radius:var(--zg-radius-card);
	background:#fff;
	box-shadow:var(--zg-shadow);
}

body.page-front .home-system-card__label{
	margin-bottom:12px;
	color:var(--zg-muted);
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.09em;
	text-transform:uppercase;
}

body.page-front .home-system-line{display:flex;align-items:center;gap:7px}

body.page-front .home-system-line span{
	display:grid;
	flex:1;
	height:30px;
	place-items:center;
	border:1px solid var(--zg-border);
	border-radius:var(--zg-radius-tag);
	background:var(--zg-mist);
	color:var(--zg-graphite);
	font-size:.62rem;
	font-weight:800;
	letter-spacing:.04em;
}

body.page-front .home-system-line i{width:12px;height:2px;background:var(--zg-teal)}

/* ---------- Proof strip ---------- */

body.page-front .home-proof{border-block:1px solid var(--zg-border);background:#fff}

body.page-front .home-proof__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}

body.page-front .home-fact{padding:26px 24px;border-right:1px solid var(--zg-border)}
body.page-front .home-fact:last-child{border-right:0}
body.page-front .home-fact strong{display:block;color:var(--zg-graphite);font-size:1.5rem;font-weight:650;letter-spacing:-.03em}
body.page-front .home-fact span{color:var(--zg-muted);font-size:.82rem;line-height:1.5}

/* ---------- Section headings ---------- */

body.page-front .home-head{max-width:760px;margin-bottom:44px}
body.page-front .home-head--split{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);
	gap:clamp(32px,6vw,88px);
	max-width:none;
	align-items:end;
}

body.page-front .home-head__copy{color:var(--zg-muted);max-width:620px}
body.page-front .home-note{margin-top:28px;color:var(--zg-muted);font-size:.84rem;line-height:1.6}
body.page-front .home-note a{margin-left:4px}

/* ---------- Products ---------- */

body.page-front .home-product-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:22px;
}

body.page-front .home-product h3{margin:20px 0 10px}
body.page-front .home-product p{color:var(--zg-muted);font-size:.92rem;line-height:1.65}

/* ---------- Paths ---------- */

body.page-front .home-path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}

body.page-front .home-path{
	display:flex;
	min-height:400px;
	flex-direction:column;
	padding:30px;
	border:1px solid var(--zg-border);
	border-radius:var(--zg-radius-card);
	background:#fff;
	box-shadow:var(--zg-shadow-soft);
}

body.page-front .home-path--accent{border-top:4px solid var(--zg-teal);padding-top:27px}

body.page-front .home-path__top{
	display:flex;
	justify-content:space-between;
	gap:14px;
	margin-bottom:44px;
	color:var(--zg-muted);
	font-size:.7rem;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
}

body.page-front .home-path__top span:first-child{color:var(--zg-amber)}
body.page-front .home-path h3{margin-bottom:14px;font-size:1.42rem}
body.page-front .home-path > p{color:var(--zg-muted);font-size:.92rem}

body.page-front .home-path__note{
	padding-left:14px;
	border-left:2px solid var(--zg-amber);
	color:var(--zg-copy) !important;
}

body.page-front .home-path__foot{
	margin-top:auto !important;
	padding-top:20px;
	border-top:1px solid var(--zg-border);
	color:var(--zg-graphite) !important;
	font-size:.88rem;
	font-weight:650;
}

/* ---------- Quality ---------- */

body.page-front .home-quality-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}

body.page-front .home-quality{
	padding:26px;
	border:1px solid var(--zg-border);
	border-radius:var(--zg-radius-card);
	background:#fff;
}

body.page-front .home-quality h3{margin-bottom:12px;font-size:1.05rem}
body.page-front .home-quality p{color:var(--zg-muted);font-size:.9rem;line-height:1.65}

body.page-front .home-delivery{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
	margin-top:22px;
}

body.page-front .home-delivery__card{
	padding:26px;
	border-radius:var(--zg-radius-card);
	background:var(--zg-graphite);
	color:#b9c3c6;
}

body.page-front .home-delivery__card strong{
	display:block;
	margin-bottom:12px;
	color:var(--zg-amber);
	font-size:1.5rem;
	font-weight:650;
	letter-spacing:-.02em;
}

body.page-front .home-delivery__card h3{margin-bottom:10px;color:#fff;font-size:1rem}
body.page-front .home-delivery__card p{font-size:.88rem;line-height:1.6}

/* ---------- Process ---------- */

body.page-front .home-steps{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:1px;
	overflow:hidden;
	border:1px solid #3a484e;
	border-radius:var(--zg-radius-card);
	background:#3a484e;
}

body.page-front .home-step{padding:30px;background:var(--zg-graphite)}
body.page-front .home-step__index{display:block;margin-bottom:34px;color:var(--zg-amber);font-size:.72rem;font-weight:800;letter-spacing:.08em}
body.page-front .home-step h3{margin-bottom:10px;font-size:1.05rem}
body.page-front .home-step p{color:#aab5b9;font-size:.88rem;line-height:1.65}

/* ---------- Clients ---------- */

body.page-front .home-clients{
	display:grid;
	grid-template-columns:minmax(0,.85fr) minmax(380px,1fr);
	gap:clamp(40px,7vw,110px);
	align-items:start;
}

body.page-front .home-client-list{
	margin:0;
	padding:0;
	border-top:1px solid var(--zg-border);
	list-style:none;
}

body.page-front .home-client-list li{
	display:grid;
	grid-template-columns:44px 1fr;
	gap:16px;
	align-items:start;
	padding-block:24px;
	border-bottom:1px solid var(--zg-border);
	color:var(--zg-graphite);
	font-size:clamp(1rem,1.5vw,1.22rem);
	font-weight:600;
	line-height:1.45;
}

body.page-front .home-client-list span{padding-top:4px;color:var(--zg-amber);font-size:.72rem;letter-spacing:.08em}

/* ---------- CTA ---------- */

body.page-front .home-cta{
	padding-block:clamp(68px,8vw,108px);
	background:
		radial-gradient(circle at 88% 18%,rgba(217,154,61,.18),transparent 24%),
		var(--zg-teal);
}

body.page-front .home-cta__inner{
	display:grid;
	grid-template-columns:minmax(0,1.35fr) auto;
	gap:48px;
	align-items:end;
}

body.page-front .home-cta h2{color:#fff;margin-bottom:16px;max-width:720px}
body.page-front .home-cta p:not(.zg-kicker){max-width:660px;color:#d9ecee}
body.page-front .home-cta__actions{display:flex;flex-direction:column;gap:14px;align-items:flex-start}

/* ---------- Responsive ---------- */

@media (max-width:1080px){
	body.page-front .home-product-grid,
	body.page-front .home-quality-grid,
	body.page-front .home-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
	body.page-front .home-path-grid{grid-template-columns:1fr}
	body.page-front .home-path{min-height:0}
	body.page-front .home-path__top{margin-bottom:32px}
	body.page-front .home-path__foot{margin-top:26px !important}
	body.page-front .home-clients{grid-template-columns:1fr}
	body.page-front .home-cta__inner{grid-template-columns:1fr}
}

@media (max-width:900px){
	body.page-front .home-hero__grid,
	body.page-front .home-head--split{grid-template-columns:1fr}
	body.page-front .home-proof__grid{grid-template-columns:1fr 1fr}
	body.page-front .home-fact:nth-child(2){border-right:0}
	body.page-front .home-fact:nth-child(-n+2){border-bottom:1px solid var(--zg-border)}
	body.page-front .home-media--hero{min-height:0;aspect-ratio:4/3}
	body.page-front .home-system-card{position:static;width:100%;margin-top:16px}
}

@media (max-width:640px){
	body.page-front .home-product-grid,
	body.page-front .home-quality-grid,
	body.page-front .home-delivery,
	body.page-front .home-steps,
	body.page-front .home-proof__grid{grid-template-columns:1fr}
	body.page-front .home-fact{border-right:0;border-bottom:1px solid var(--zg-border)}
	body.page-front .home-actions .zg-btn{width:100%}
	body.page-front .home-cta__actions .zg-btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
	body.page-front .home-media,
	body.page-front .home-media__caption{transition:none}
}
