/* Vision page — builds on the Bachelor of Science stylesheet (".bsc") and adds
   its own components, scoped to the WPBakery row carrying el_class "vis". */

/* ---------- Hero: the vision statement ---------- */

.vis-hero { padding-block: clamp(88px, 12vw, 168px) clamp(80px, 10vw, 136px); }
.vis-hero__text { max-width: 980px; }

/* Sunrise: slow rays turning from a glowing sun low on the right. */
@property --vis-sweep {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}
.vis-hero { overflow: hidden; }
.vis-hero::before {
	opacity: 1;
	background-image: repeating-conic-gradient(from var(--vis-sweep) at 86% 118%, rgba(201, 226, 101, .08) 0deg 1.2deg, transparent 1.2deg 10deg);
	mask-image: radial-gradient(circle at 86% 118%, #000 0, #000 20%, transparent 58%);
	-webkit-mask-image: radial-gradient(circle at 86% 118%, #000 0, #000 20%, transparent 58%);
	animation: vis-sweep 9s linear infinite;
}
@keyframes vis-sweep { to { --vis-sweep: 10deg; } }
.vis-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: 4%;
	bottom: -38%;
	width: clamp(260px, 34vw, 480px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(244, 182, 63, .55) 0%, rgba(201, 226, 101, .35) 35%, rgba(201, 226, 101, .08) 58%, transparent 70%);
	animation: vis-glow 6s ease-in-out infinite alternate;
}
@keyframes vis-glow {
	from { scale: .94; opacity: .8; }
	to { scale: 1.06; opacity: 1; }
}
.vis-hero.is-offscreen::after { animation-play-state: paused; }

/* The h1 reads as a kicker; the statement below carries the visual weight. */
.bsc .vis-hero__kicker {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--bsc-display);
	font-weight: 600 !important;
	font-size: 14px;
	line-height: 1.2 !important;
	letter-spacing: 0.16em;
	color: var(--bsc-leaf);
	margin-bottom: clamp(24px, 3vw, 36px);
}
.bsc .vis-hero__kicker::before {
	content: "";
	width: 40px;
	height: 2px;
	background: currentColor;
}

.bsc .vis-statement {
	font-family: var(--bsc-display);
	font-weight: 500;
	font-size: clamp(28px, 3.9vw, 50px);
	line-height: 1.22 !important;
	letter-spacing: -0.015em;
	color: var(--bsc-white);
	text-wrap: pretty;
}
.vis-statement em {
	font-style: normal;
	color: var(--bsc-leaf);
}

/* ---------- Mission ---------- */

.vis-mission { background: var(--bsc-paper); }

/* "#wrapper .bsc" beats the theme's "#wrapper ol li" / "#wrapper ol li:before" list styling. */
#wrapper .bsc .vis-mission__list { counter-reset: vis-mission; }
#wrapper .bsc .vis-mission__item {
	counter-increment: vis-mission;
	position: relative;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 24px;
	margin: 0;
	padding: 32px 0;
	border-top: 1px solid var(--bsc-line);
	font-family: var(--bsc-display);
	font-weight: 500;
	font-size: clamp(19px, 1.8vw, 23px);
	line-height: 1.45;
	color: var(--bsc-forest);
}
#wrapper .bsc .vis-mission__item:last-child { border-bottom: 1px solid var(--bsc-line); }
#wrapper .bsc .vis-mission__item::before {
	content: counter(vis-mission, decimal-leading-zero);
	position: static;
	border: 0;
	background: none;
	width: auto;
	height: auto;
	font-family: var(--bsc-display);
	font-weight: 700;
	font-size: clamp(32px, 3.2vw, 44px);
	line-height: 1;
	color: var(--bsc-teal);
	text-align: left;
}
/* Accent rule that grows along the top border on hover. */
#wrapper .bsc .vis-mission__item::after {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 72px;
	height: 2px;
	background: var(--bsc-leaf);
	transform-origin: left;
	transition: width .4s cubic-bezier(.3, .8, .25, 1);
}
#wrapper .bsc .vis-mission__item:hover::after { width: 100%; }

/* ---------- Values (SISKU) ---------- */

.vis-values {
	position: relative;
	background:
		radial-gradient(800px 420px at 100% 0%, rgba(201, 226, 101, .16), transparent 60%),
		var(--bsc-forest);
	color: var(--bsc-white);
}
.bsc .vis-values .bsc-h2 { color: var(--bsc-white); }
.bsc .vis-values__acronym {
	margin-top: 12px;
	font-family: var(--bsc-display);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.4em;
	color: var(--bsc-leaf);
}

#wrapper .bsc .vis-values__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	background: rgba(255, 255, 255, .14);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--bsc-radius);
	overflow: hidden;
}
#wrapper .bsc .vis-value {
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	min-height: 280px;
	padding: clamp(20px, 2vw, 28px);
	background: var(--bsc-forest);
	transition: background-color .3s ease;
}
#wrapper .bsc .vis-value::before { content: none; }
#wrapper .bsc .vis-value:hover { background: var(--bsc-forest-2); }

.vis-value__word {
	font-family: var(--bsc-display);
	font-weight: 600;
	font-size: clamp(17px, 1.45vw, 21px);
	line-height: 1.2;
	color: var(--bsc-white);
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, .2);
}
/* The letters across the row spell SISKU. */
.vis-value__letter {
	font-family: var(--bsc-display);
	font-weight: 700;
	font-size: clamp(72px, 8vw, 120px);
	line-height: .85;
	color: var(--bsc-leaf);
	transition: transform .4s cubic-bezier(.3, .8, .25, 1);
	transform-origin: left bottom;
}
.vis-value:hover .vis-value__letter { transform: scale(1.08); }

/* ---------- Strategic focus ---------- */

.vis-strategy { background: var(--bsc-cream); }
.vis-strategy .bsc-section__head { max-width: 820px; }

/* The theme's page padding leaves an empty band above the footer. */
.page-padding:has(.bsc.vis) { padding-bottom: 0 !important; }

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

@media (max-width: 1024px) {
	/* 3 + 2: the last two tiles share the second row. */
	#wrapper .bsc .vis-values__list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	#wrapper .bsc .vis-value { grid-column: span 2; min-height: 220px; }
	#wrapper .bsc .vis-value:nth-child(n + 4) { grid-column: span 3; }
}

@media (max-width: 720px) {
	#wrapper .bsc .vis-mission__item { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
	#wrapper .bsc .vis-values__list { grid-template-columns: 1fr; }
	#wrapper .bsc .vis-value,
	#wrapper .bsc .vis-value:nth-child(n + 4) {
		grid-column: auto;
		min-height: 0;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		gap: 20px;
		padding: 20px 24px;
	}
	.vis-value__letter { font-size: 56px; width: 48px; flex-shrink: 0; }
	.vis-value__word { padding-top: 0; border-top: 0; }
}
