/**
 * Cypros Core — V8.32 Complete-site Visual Contract & Editorial Polish Layer
 * Shared UX, conversion and responsive polish loaded after system-refinement.
 *
 * @package Cypros_Core
 */

/* ==========================================================
   COMPLETE-SITE COMPOSITION
========================================================== */

:root {
	--cypros-content-max: 78rem;
	--cypros-reading-max: 46rem;
	--cypros-mobile-dock-height: 4.5rem;
}

.site-main :is(
	.cy-page-hero,
	.cy-services-page-hero,
	.cy-process-page-hero,
	.cy-contact-page-hero,
	.cy-industries-page-hero,
	.cy-seo-pillar__hero,
	.cy-industry-detail__hero
) {
	min-height: clamp(31rem, 58vh, 45rem);
	display: grid;
	align-items: center;
}

.site-main :is(
	.cy-page-hero,
	.cy-services-page-hero,
	.cy-process-page-hero,
	.cy-contact-page-hero,
	.cy-industries-page-hero,
	.cy-seo-pillar__hero,
	.cy-industry-detail__hero
) :is(h1, .cy-page-hero__title) {
	max-width: 13ch;
}

.site-main :is(
	.cy-page-hero,
	.cy-services-page-hero,
	.cy-process-page-hero,
	.cy-contact-page-hero,
	.cy-industries-page-hero,
	.cy-seo-pillar__hero,
	.cy-industry-detail__hero
) :is(.cy-page-hero__lead, .cy-seo-pillar__lead, p) {
	max-width: var(--cypros-reading-max);
}

/* Make the electrical language read as a system, not decoration. */
.site-main :is(
	.cy-page-hero__system,
	.cy-industries-page-hero__system,
	.cy-seo-pillar__system,
	.cy-industry-signal,
	.cy-product-system
) {
	position: relative;
}

.site-main :is(
	.cy-page-hero__system,
	.cy-industries-page-hero__system,
	.cy-seo-pillar__system,
	.cy-industry-signal
)::after {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 0.55rem;
	height: 0.55rem;
	border: 1px solid currentColor;
	background: var(--cypros-yellow);
	content: "";
	pointer-events: none;
}

/* ==========================================================
   NAVIGATION / ROUTE ORIENTATION
========================================================== */

.site-nav__menu a[aria-current="page"],
.site-nav__menu a.is-active {
	font-weight: 800;
}

.site-nav__menu a[aria-current="page"]::before,
.site-nav__menu a.is-active::before {
	position: absolute;
	top: 50%;
	left: -0.8rem;
	width: 0.28rem;
	height: 0.28rem;
	background: var(--cypros-yellow);
	content: "";
	transform: translateY(-50%);
}

body.cypros-nav-open {
	overflow: hidden;
}

/* ==========================================================
   COMMERCIAL SURFACES
========================================================== */

:is(
	.cy-equipment-card,
	.cy-card,
	.cy-compare__selector,
	.cy-contact-page-form-wrap,
	.cy-product-specs__summary-grid > *,
	.cy-product-related__grid > *
) {
	min-width: 0;
}

:is(
	.cy-equipment-card,
	.cy-card,
	.cy-compare__selector,
	.cy-contact-page-form-wrap
):focus-within {
	outline: 2px solid var(--cypros-yellow);
	outline-offset: 2px;
}

.cy-equipment-card__title,
.cy-card__title,
.cy-product-related h3 {
	text-wrap: balance;
}

.cy-equipment-card__model,
.cy-product-hero__model,
.cy-product-hero__sku-label,
.cy-equipment-filters__status,
.cy-product-section-index,
.site-system-rail {
	font-variant-numeric: tabular-nums;
}

/* Technical tables should remain usable instead of collapsing into illegible columns. */
.cy-compare__table-wrap,
.cy-product-specs__details-body {
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

.cy-compare__table {
	min-width: 48rem;
}

/* ==========================================================
   FOOTER DECISION FLOW
========================================================== */

.site-footer__decision-paths {
	position: relative;
}

.site-footer__decision-paths::before {
	position: absolute;
	top: 1.7rem;
	right: 8%;
	left: 8%;
	height: 1px;
	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.18),
		var(--cypros-yellow),
		rgba(255, 255, 255, 0.18)
	);
	content: "";
	pointer-events: none;
}

.site-footer__decision-paths > a {
	isolation: isolate;
}

.site-footer__decision-paths > a > span:first-child {
	position: relative;
	z-index: 1;
}

/* ==========================================================
   MOBILE PROJECT DOCK
========================================================== */

.site-mobile-actions {
	display: none;
}

@media (max-width: 48rem) {
	body {
		padding-bottom: calc(var(--cypros-mobile-dock-height) + env(safe-area-inset-bottom, 0px));
	}

	.site-main :is(
		.cy-page-hero,
		.cy-services-page-hero,
		.cy-process-page-hero,
		.cy-contact-page-hero,
		.cy-industries-page-hero,
		.cy-seo-pillar__hero,
		.cy-industry-detail__hero
	) {
		min-height: auto;
	}

	.site-system-rail {
		position: relative;
		z-index: 8;
	}

	.site-mobile-actions {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 120;
		display: grid;
		grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
		min-height: var(--cypros-mobile-dock-height);
		padding-bottom: env(safe-area-inset-bottom, 0px);
		border-top: 1px solid rgba(255, 255, 255, 0.18);
		box-shadow: 0 -0.8rem 2.4rem rgba(0, 0, 0, 0.18);
	}

	.site-mobile-actions a {
		display: flex;
		min-width: 0;
		flex-direction: column;
		justify-content: center;
		padding: 0.7rem 1rem;
		text-decoration: none;
	}

	.site-mobile-actions a > span {
		margin-bottom: 0.14rem;
		font-size: 0.62rem;
		font-weight: 800;
		letter-spacing: 0.12em;
		line-height: 1;
		text-transform: uppercase;
	}

	.site-mobile-actions a > strong {
		font-size: 0.92rem;
		font-weight: 900;
		line-height: 1.1;
	}

	.site-mobile-actions__secondary {
		color: #fff;
		background: #111;
	}

	.site-mobile-actions__secondary > span {
		color: rgba(255, 255, 255, 0.58);
	}

	.site-mobile-actions__primary {
		color: #111;
		background: var(--cypros-yellow);
	}

	.site-mobile-actions__primary > span {
		color: rgba(17, 17, 17, 0.62);
	}

	.site-mobile-actions b {
		margin-left: 0.2rem;
		font-weight: inherit;
	}

	.site-footer__decision-paths::before {
		display: none;
	}
}

@media (max-width: 30rem) {
	.site-mobile-actions a {
		padding-inline: 0.8rem;
	}

	.site-mobile-actions a > strong {
		font-size: 0.86rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-mobile-actions *,
	.site-nav__menu * {
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}


/* ==========================================================
   SITE BREADCRUMB / ROUTE ORIENTATION
========================================================== */
.site-breadcrumb { position: relative; z-index: 7; border-bottom: 1px solid rgba(17,17,17,.12); background: rgba(255,255,255,.96); }
.site-breadcrumb ol { display:flex; min-width:0; align-items:center; gap:0; margin:0; padding:.72rem 0; list-style:none; }
.site-breadcrumb li { display:flex; min-width:0; align-items:center; font-size:.68rem; font-weight:800; letter-spacing:.09em; line-height:1.2; text-transform:uppercase; }
.site-breadcrumb li + li::before { width:1.9rem; height:1px; margin:0 .7rem; background:linear-gradient(90deg,rgba(17,17,17,.28),var(--cypros-yellow)); content:""; flex:0 0 auto; }
.site-breadcrumb a,.site-breadcrumb span { display:block; overflow:hidden; max-width:30rem; color:inherit; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.site-breadcrumb a:hover,.site-breadcrumb a:focus-visible { color:#000; text-decoration:underline; text-decoration-color:var(--cypros-yellow); text-decoration-thickness:.16rem; text-underline-offset:.28rem; }
.site-breadcrumb span[aria-current="page"] { font-weight:900; }
@media (max-width:48rem) { .site-breadcrumb ol { overflow-x:auto; padding:.62rem 0; scrollbar-width:none; } .site-breadcrumb ol::-webkit-scrollbar { display:none; } .site-breadcrumb li { flex:0 0 auto; font-size:.61rem; } .site-breadcrumb li + li::before { width:1.15rem; margin:0 .5rem; } .site-breadcrumb a,.site-breadcrumb span { max-width:18rem; } }


/* ==========================================================
   V8.32 — TECHNICAL EDITORIAL CONTRACT
   Reusable chapter rhythm across every commercial route.
========================================================== */

:root {
	--cypros-chapter-rule: linear-gradient(90deg, var(--cypros-yellow) 0 4.5rem, rgba(17, 17, 17, 0.16) 4.5rem 100%);
	--cypros-chapter-rule-dark: linear-gradient(90deg, var(--cypros-yellow) 0 4.5rem, rgba(255, 255, 255, 0.18) 4.5rem 100%);
}

.site-main :is(
	.cy-equipment-catalog__header,
	.cy-configurations__header,
	.cy-engine-comparison__header,
	.cy-equipment-brands__header,
	.cy-services-page-services__header,
	.cy-process-page-flow__header,
	.cy-industries-page-sectors__header,
	.cy-contact-page-start__header,
	.cy-compare__header,
	.cy-product-system__header,
	.cy-product-applications__header,
	.cy-product-related__header
) {
	position: relative;
	padding-top: clamp(1.25rem, 2.3vw, 2rem);
}

.site-main :is(
	.cy-equipment-catalog__header,
	.cy-configurations__header,
	.cy-engine-comparison__header,
	.cy-equipment-brands__header,
	.cy-services-page-services__header,
	.cy-process-page-flow__header,
	.cy-industries-page-sectors__header,
	.cy-contact-page-start__header,
	.cy-compare__header,
	.cy-product-system__header,
	.cy-product-applications__header,
	.cy-product-related__header
)::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background: var(--cypros-chapter-rule);
	content: "";
	pointer-events: none;
}

.site-main :is(
	.cy-process-page-flow__header,
	.cy-product-system__header
)::before {
	background: var(--cypros-chapter-rule-dark);
}

.site-main :is(
	.cy-equipment-catalog__header,
	.cy-configurations__header,
	.cy-engine-comparison__header,
	.cy-equipment-brands__header,
	.cy-services-page-services__header,
	.cy-process-page-flow__header,
	.cy-industries-page-sectors__header,
	.cy-contact-page-start__header,
	.cy-compare__header,
	.cy-product-system__header,
	.cy-product-applications__header,
	.cy-product-related__header
) h2 {
	max-width: 14ch;
	letter-spacing: -0.045em;
	line-height: 0.98;
}

/* Industrial panels need hierarchy, not decorative shadows. */
.site-main :is(
	.cy-equipment-filters,
	.cy-compare__selector,
	.cy-contact-page-form-wrap,
	.cy-product-specs__details,
	.cy-seo-pillar__questions
) {
	border-radius: 0;
	box-shadow: none;
}

.site-main :is(
	.cy-equipment-filters,
	.cy-compare__selector,
	.cy-contact-page-form-wrap
)::after {
	position: absolute;
	top: -1px;
	right: -1px;
	width: 0.7rem;
	height: 0.7rem;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	content: "";
	pointer-events: none;
}

/* Make the system diagrams read like engineering information blocks. */
.site-main :is(
	.cy-page-hero__system,
	.cy-industries-page-hero__system,
	.cy-seo-pillar__system,
	.cy-industry-signal,
	.cy-product-system
) {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 2rem 2rem;
}

/* Strong, uniform interaction language across catalog and editorial cards. */
.site-main :is(.cy-card, .cy-equipment-card, .cy-product-related__grid > a) {
	transition:
		border-color var(--cypros-transition-fast),
		transform var(--cypros-transition-fast),
		background-color var(--cypros-transition-fast);
}

@media (hover: hover) and (pointer: fine) {
	.site-main :is(.cy-card, .cy-equipment-card, .cy-product-related__grid > a):hover {
		transform: translateY(-2px);
	}
}

/* Forms are engineering inputs: keep labels and controls visually connected. */
.site-main :is(.cy-contact-page-form-wrap, .cy-equipment-filters, .cy-compare__selector) :is(label, legend) {
	font-weight: 800;
	letter-spacing: 0.035em;
}

.site-main :is(input, select, textarea) {
	border-radius: 0;
}

.site-main :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--cypros-yellow);
	outline-offset: 2px;
	border-color: var(--cypros-black);
}

/* Section spacing follows one shared editorial cadence. */
.site-main > section:not(:first-child) {
	scroll-margin-top: calc(var(--cypros-header-height) + 4.5rem);
}

@media (max-width: 48rem) {
	.site-main :is(
		.cy-equipment-catalog__header,
		.cy-configurations__header,
		.cy-engine-comparison__header,
		.cy-equipment-brands__header,
		.cy-services-page-services__header,
		.cy-process-page-flow__header,
		.cy-industries-page-sectors__header,
		.cy-contact-page-start__header,
		.cy-compare__header,
		.cy-product-system__header,
		.cy-product-applications__header,
		.cy-product-related__header
	) h2 {
		max-width: none;
	}

	.site-main :is(
		.cy-page-hero__system,
		.cy-industries-page-hero__system,
		.cy-seo-pillar__system,
		.cy-industry-signal,
		.cy-product-system
	) {
		background-size: 1.5rem 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-main :is(.cy-card, .cy-equipment-card, .cy-product-related__grid > a) {
		transition: none;
	}

	.site-main :is(.cy-card, .cy-equipment-card, .cy-product-related__grid > a):hover {
		transform: none;
	}
}
