/* About page: awards carousel and responsive layout. */
/* ===== Awards & Recognition ============================================= */
/* Ported from the "awards-section" reference, re-skinned onto the theme
 * tokens (Bozon, navy/green) and the shared section-heading treatment. */
.awards {
	--u: calc(100vw / 1840);
	--aw-pad: 24px;
	--navy: var(--sfm-navy);
	--green: var(--sfm-green);
	--aw-overlay: rgba(0, 6, 34, .55);

	/* rail geometry - plain px; JS reads --thumb / --thumb-active / --gn */
	--thumb: 54px;
	--thumb-active: 84px;
	--gn: 72px;
	--ao: min(433px, calc(50vw - 22px));
	--dh: 186px;
	--dip: 58px;

	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: 100vh;
	min-height: 100svh;
	padding: 72px var(--aw-pad) 56px;
	background: var(--navy);
	color: #fff;
	font-family: var(--sfm-font-sans);
	font-weight: var(--sfm-weight-medium);
}

/* background image (softly blurred) + a crisp colour overlay, behind everything */
.awards::before,
.awards::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* the image layer bleeds past the edges so the blur never softens the section rim */
.awards::before {
	inset: calc(var(--aw-blur, 6px) * -2 - 4px);
	z-index: -2;
	background:
		var(--aw-bg, none) center bottom / cover no-repeat,
		radial-gradient(120% 90% at 20% 80%, #0a2a9c 0%, #04155e 45%, #010a2e 100%);
	filter: blur(var(--aw-blur, 6px));
}

/* the colour overlay is painted crisply on top of the blurred image */
.awards::after {
	z-index: -1;
	background: var(--aw-overlay);
}

.awards__head {
	position: relative;
	text-align: center;
	max-width: 1232px;
}

.awards__title {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: calc(var(--u) * 22);
	margin: 0;
	font-weight: var(--sfm-weight-bold);
	font-size: clamp(38px, 2.5vw, 46px);
	line-height: 1;
	letter-spacing: .005em;
	color: #fff;
}

.awards__title::before,
.awards__title::after {
	content: "";
	flex: none;
	width: calc(var(--u) * 13);
	height: calc(var(--u) * 13);
	border-radius: 50%;
	background: var(--green);
	box-shadow: 0 0 10px rgba(1, 164, 76, .7);
}

.awards__sub {
	margin: clamp(24px, calc(var(--u) * 32), 32px) auto 0;
	max-width: none;
	font-weight: var(--sfm-weight-medium);
	font-size: 22px;
	line-height: 1.75;
	letter-spacing: .005em;
	color: rgba(219, 226, 255, .72);
}

@media (max-width: 640px) {
	.awards__sub {
		font-size: var(--sfm-text-base);
	}
}

/* stage: award copy + photo */
.awards__stage {
	position: relative;
	flex: 1;
	width: 100%;
	max-width: 1232px;
	display: grid;
	grid-template-columns: 1fr minmax(0, 480px);
	align-items: center;
	column-gap: clamp(24px, 5vw, 80px);
	padding: 36px 0;
	touch-action: pan-y;
	transition: opacity .28s ease, transform .28s ease;
}

.awards__stage.is-changing {
	opacity: 0;
	transform: translateY(10px);
}

.award__name {
	margin: 0;
	font-weight: var(--sfm-weight-bold);
	font-size: clamp(24px, 1.6vw, 30px);
	line-height: 1.2;
	max-width: 11em;
	color: #fff;
}

.award__badge {
	margin: 10px 0 0;
	font-size: var(--sfm-text-md);
	font-weight: var(--sfm-weight-bold);
	letter-spacing: .02em;
	color: #fff;
}

.award__meta {
	margin: 48px 0 0;
	font-weight: var(--sfm-weight-bold);
	font-size: clamp(15px, 0.95vw, 17px);
	line-height: 1.5;
	color: rgba(219, 226, 255, .72);
}

.award__meta span {
	display: block;
}

.award__media {
	margin: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 20px 50px rgba(0, 0, 20, .4);
	background: #0b1d63;
}

.award__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	user-select: none;
	-webkit-user-drag: none;
}

.award__media.is-empty {
	background: linear-gradient(135deg, #0b1d63, #04155e);
}

.award__media.is-empty img {
	display: none;
}

/* rail: the full-bleed line, its centre dip, the arrows and the thumbnails */
.awards__rail {
	--cy: 55px;
	position: relative;
	height: 130px;
	margin-top: auto;
	width: calc(100% + var(--aw-pad) * 2);
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}

.awards__line,
.awards__dip {
	position: absolute;
	pointer-events: none;
}

.awards__line {
	top: var(--cy);
	height: 1px;
	background: rgba(255, 255, 255, .5);
}

.awards__line--l {
	left: 0;
	right: calc(50% + var(--ao) + 34px);
	background: linear-gradient(90deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .5));
}

.awards__line--m1 {
	left: calc(50% - var(--ao) + 34px);
	right: calc(50% + var(--dh));
}

.awards__line--m2 {
	left: calc(50% + var(--dh));
	right: calc(50% - var(--ao) + 34px);
}

.awards__line--r {
	left: calc(50% + var(--ao) + 34px);
	right: 0;
	background: linear-gradient(270deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .5));
}

.awards__dip {
	top: calc(var(--cy) + .5px);
	left: calc(50% - var(--dh));
	width: calc(var(--dh) * 2);
	height: var(--dip);
	overflow: visible;
}

.awards__dip path {
	fill: none;
	stroke: rgba(255, 255, 255, .5);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.awards__arrow {
	position: absolute;
	top: var(--cy);
	left: 50%;
	width: 30px;
	height: 30px;
	padding: 0;
	transform: translate(calc(-50% + var(--ax)), -50%);
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	z-index: 3;
	transition: background .25s, border-color .25s, transform .2s;
}

.awards__arrow::after {
	content: "";
	position: absolute;
	inset: -8px;
}

.awards__arrow svg {
	width: 14px;
	height: 14px;
}

.awards__arrow:hover {
	background: rgba(255, 255, 255, .14);
	border-color: #fff;
}

.awards__arrow:active {
	transform: translate(calc(-50% + var(--ax)), -50%) scale(.92);
}

.awards__arrow--prev {
	--ax: calc(var(--ao) * -1);
}

.awards__arrow--next {
	--ax: var(--ao);
}

.awards__arrow:focus-visible,
.awards__thumb:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.awards__clip {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: calc(var(--ao) * 2 - 76px);
	transform: translateX(-50%);
	overflow: hidden;
	z-index: 2;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
}

.awards__thumb {
	position: absolute;
	top: var(--cy);
	left: 50%;
	width: var(--thumb);
	height: var(--thumb);
	padding: 4px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 50%;
	background: rgba(2, 10, 50, .55);
	cursor: pointer;
	transform: translate(calc(-50% + var(--x, 0px)), -50%);
}

.awards__thumb img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	pointer-events: none;
}

.awards__thumb.is-empty {
	background: linear-gradient(135deg, #0b1d63, #04155e);
}

.awards__thumb.is-active {
	width: var(--thumb-active);
	height: var(--thumb-active);
	padding: 6px;
	border-color: rgba(255, 255, 255, .65);
}

.awards__thumb:not(.is-active):hover {
	border-color: rgba(255, 255, 255, .75);
}

/* size (not scale) is animated so the thumbnail images stay crisp */
.awards__rail.is-ready .awards__thumb {
	transition: transform .7s cubic-bezier(.65, 0, .25, 1),
		width .7s cubic-bezier(.65, 0, .25, 1),
		height .7s cubic-bezier(.65, 0, .25, 1),
		border-color .4s, padding .4s;
}

@media (max-width: 860px) {
	.awards__stage {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
		text-align: center;
		justify-items: center;
	}

	.award__media {
		max-width: 480px;
		order: -1;
	}

	.award__name {
		max-width: none;
	}

	.award__meta {
		margin-top: 20px;
	}
}

@media (max-width: 640px) {
	.awards {
		--aw-pad: 16px;
		--thumb: 42px;
		--thumb-active: 66px;
		--gn: 36px;
		--dip: 46px;
		--ao: calc(50vw - 22px);
		--dh: min(88px, max(56px, calc(50vw - 106px)));
		padding-top: 48px;
		padding-bottom: 44px;
	}

	.awards__title {
		gap: 12px;
	}
}

@media (max-width: 360px) {
	.awards {
		--thumb: 36px;
		--thumb-active: 56px;
		--gn: 28px;
		--dip: 38px;
		--dh: min(88px, max(50px, calc(50vw - 100px)));
	}
}

@media (prefers-reduced-motion: reduce) {
	.awards__rail.is-ready .awards__thumb,
	.awards__stage {
		transition: none;
	}
}

