/* SIGHT Symposium - postponement ticker + popup (independent of .sight-host-modal) */
:root {
	--sight-ticker-h: 36px;
}
@media (max-width: 991px) {
	:root { --sight-ticker-h: 32px; }
}

/* ---------- Ticker ---------- */
/*
 * The ticker is taken out of normal flow (absolute, top 0 of the page) on purpose:
 * include/header.php starts with a UTF-8 BOM that renders as an invisible ~24px text line
 * at the top of <body>. The original absolutely positioned header (top:0) has always covered
 * that line; an in-flow ticker was pushed below it (white strip) and overlapped by the header.
 * Absolute positioning keeps the page flow (hero etc.) exactly as before.
 */
.sight-ticker {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 110; /* above the non-sticky header (z 9), below the sticky header (z 111) and popups */
	box-sizing: border-box;
	width: 100%;
	height: var(--sight-ticker-h);
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #011741;
	border-bottom: 2px solid #1ed428;
	color: #ffffff;
	font-family: var(--ztc-family-font1, inherit);
	contain: layout paint;
}
.sight-ticker-viewport {
	width: 100%;
	height: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.sight-ticker-track {
	display: inline-flex;
	flex-wrap: nowrap;
	width: max-content;
	white-space: nowrap;
	will-change: transform;
	/* 1) enter once from the right edge, 2) then loop forever. Both copies (incl. trailing gap) are identical, so -50% lands exactly on copy 2's start. */
	animation:
		sight-ticker-intro var(--sight-ticker-intro, 20s) linear 0s 1 both,
		sight-ticker-scroll var(--sight-ticker-duration, 54s) linear var(--sight-ticker-intro, 20s) infinite;
}
.sight-ticker-item {
	flex: 0 0 auto;
	display: inline-block;
	padding-right: 80px; /* gap between repeats; part of each copy so the loop is exact */
	padding-left: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: calc(var(--sight-ticker-h) - 2px); /* minus the 2px bottom border (border-box) */
	letter-spacing: 0.01em;
	white-space: nowrap;
}
.sight-ticker-label {
	color: #1ed428;
	font-weight: 800;
	letter-spacing: 0.06em;
}
.sight-ticker-strong {
	color: #ffffff;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.sight-ticker-sep {
	color: #1ed428;
	margin: 0 6px;
	font-weight: 700;
}
@keyframes sight-ticker-intro {
	from { transform: translate3d(100vw, 0, 0); }
	to { transform: translate3d(0, 0, 0); }
}
@keyframes sight-ticker-scroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}
@media (max-width: 767px) {
	.sight-ticker-item { font-size: 13px; padding-right: 56px; }
}

/* Keep the existing absolutely positioned desktop header below the ticker (sticky state unchanged: fixed top 0). */
.sight-ticker + header .header-area.homepage1:not(.sticky) {
	top: var(--sight-ticker-h);
}
/* Fixed mobile header: sits under the ticker at the top of the page, slides to 0 as the ticker scrolls away. */
.sight-ticker ~ .mobile-header.mobile-haeder1 {
	top: var(--sight-ticker-offset, var(--sight-ticker-h));
}

@media (prefers-reduced-motion: reduce) {
	.sight-ticker {
		height: auto;
		min-height: var(--sight-ticker-h);
	}
	.sight-ticker-track {
		animation: none;
		width: 100%;
		white-space: normal;
		transform: none;
	}
	.sight-ticker-item {
		white-space: normal;
		padding: 6px 16px;
		line-height: 1.45;
	}
	.sight-ticker-item--clone { display: none; }
	.sight-ticker + header .header-area.homepage1:not(.sticky) {
		top: var(--sight-ticker-real-h, var(--sight-ticker-h));
	}
}

/* ---------- Postponement popup (visual twin of .sight-host-modal) ---------- */
body.sight-postpone-modal-open {
	overflow: hidden;
}
.sight-postpone-modal {
	position: fixed;
	inset: 0;
	z-index: 10050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
}
.sight-postpone-modal[hidden] {
	display: none;
}
.sight-postpone-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(1, 12, 32, 0.72);
}
.sight-postpone-modal-dialog {
	position: relative;
	z-index: 1;
	width: min(760px, 100%);
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	overflow-y: auto;
	overflow-x: hidden;
	padding: 28px 40px 30px;
	border-radius: 22px;
	border: 3px solid #1ed428;
	background: radial-gradient(80% 60% at 100% 0%, rgba(30, 212, 40, 0.16) 0%, transparent 50%), linear-gradient(160deg, #1d4697 0%, #001130 62%, #0b529f 100%);
	box-shadow: 0 28px 70px rgba(0, 0, 0, 0.4);
	color: #ffffff;
	-webkit-overflow-scrolling: touch;
}
.sight-postpone-modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}
.sight-postpone-modal-close:hover,
.sight-postpone-modal-close:focus,
.sight-postpone-modal-close:focus-visible {
	background: #1ed428;
	color: #011741;
	outline: none;
	box-shadow: none;
}
.sight-postpone-modal-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 48px 18px;
	text-align: center;
}
.sight-postpone-modal-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: 210px;
	max-height: 58px;
	object-fit: contain;
}
.sight-postpone-modal-eyebrow {
	margin: 0 0 8px;
	color: #1ed428;
	font-family: var(--ztc-family-font1);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
}
.sight-postpone-modal-title {
	margin: 0 0 18px;
	color: #ffffff;
	font-family: var(--ztc-family-font1);
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.sight-postpone-modal-body {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}
.sight-postpone-modal-body p {
	margin: 0 0 14px;
	color: rgba(255, 255, 255, 0.9);
	font-family: var(--ztc-family-font1);
	font-size: 15px;
	line-height: 1.6;
}
.sight-postpone-modal-body p:last-child {
	margin-bottom: 0;
}
.sight-postpone-modal-body .sight-postpone-modal-highlight {
	color: #1ed428;
	font-weight: 700;
}
@media (max-width: 767px) {
	.sight-postpone-modal-dialog {
		padding: 48px 18px 22px;
	}
	.sight-postpone-modal-brand {
		margin: 0 36px 14px;
	}
	.sight-postpone-modal-logo {
		max-width: 170px;
		max-height: 48px;
	}
	.sight-postpone-modal-body p {
		font-size: 14px;
	}
}
