/* SNRG Page Builder: front-end styles. Brand colours and fonts live in the first block. */
.snrg-section {
	--snrg-accent: #fbad1e;
	--snrg-accent-contrast: #070707;
	--snrg-font-display: "Space Grotesk", var(--valky-font-heading, system-ui), sans-serif;
	--snrg-font-body: "Manrope", var(--valky-font-body, system-ui), sans-serif;
	--snrg-radius: 22px;
	--snrg-line: color-mix(in srgb, currentColor 14%, transparent);
	--snrg-muted: color-mix(in srgb, currentColor 62%, transparent);
	--snrg-ease: cubic-bezier(.22, 1, .36, 1);
	position: relative;
	overflow-x: clip;
	font-family: var(--snrg-font-body);
}

.snrg-section :is(h1, h2, h3, h4, h5, h6, p) {
	color: inherit;
}

/* Colour schemes */
.snrg-scheme-dark { --snrg-bg: #0d0d0e; background-color: var(--snrg-bg); color: #f4f4f1; }
.snrg-scheme-black { --snrg-bg: #070707; background-color: var(--snrg-bg); color: #f4f4f1; }
.snrg-scheme-light { --snrg-bg: #f1f1ed; --snrg-eyebrow: #8b5700; background-color: var(--snrg-bg); color: #141414; }
.snrg-scheme-accent { --snrg-bg: var(--snrg-accent); --snrg-eyebrow: #3a2600; --snrg-accent-text: #fff; background-color: var(--snrg-bg); color: #080808; }
.snrg-scheme-accent .snrg-btn-primary { background: #080808; border-color: #080808; color: #fff; }

/* Section spacing and height */
.snrg-pad-none { padding-block: 0; }
.snrg-pad-small { padding-block: 3rem; }
.snrg-pad-medium { padding-block: clamp(4rem, 8vw, 6rem); }
.snrg-pad-large { padding-block: clamp(5rem, 10vw, 8rem); }

.snrg-height-medium, .snrg-height-large, .snrg-height-screen {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.snrg-height-medium { min-height: 60svh; }
.snrg-height-large { min-height: 80svh; }
.snrg-height-screen { min-height: 100svh; }
.snrg-height-medium > .position-relative,
.snrg-height-large > .position-relative,
.snrg-height-screen > .position-relative { width: 100%; }

/* Background layers */
.snrg-section-background { z-index: 0; }
.snrg-overlay-dim::after,
.snrg-overlay-vignette::after {
	content: "";
	position: absolute;
	inset: 0;
}
.snrg-overlay-dim::after { background: rgba(0, 0, 0, .55); }
.snrg-overlay-vignette::after {
	background:
		radial-gradient(ellipse 70% 60% at 50% 45%, rgba(0, 0, 0, .45), rgba(0, 0, 0, .85) 80%),
		linear-gradient(180deg, rgba(7, 7, 7, .35) 0%, transparent 30%, transparent 65%, var(--snrg-bg, #070707) 100%);
}
.snrg-bg-grid {
	position: absolute;
	inset: 0;
	z-index: 1;
	opacity: .12;
	background-image:
		linear-gradient(rgba(255, 255, 255, .2) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .2) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: linear-gradient(to bottom, #000, transparent 75%);
	transform: perspective(700px) rotateX(58deg) translateY(34%);
	transform-origin: center bottom;
}

/* Columns and alignment */
.snrg-col {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.snrg-col > * {
	width: 100%;
	margin: 0;
}
.snrg-align-center .snrg-col,
.snrg-ta-center { text-align: center; --snrg-justify: center; --snrg-ms: auto; --snrg-me: auto; }
.snrg-ta-start { text-align: start; --snrg-justify: flex-start; --snrg-ms: 0; --snrg-me: auto; }
.snrg-ta-end { text-align: end; --snrg-justify: flex-end; --snrg-ms: auto; --snrg-me: 0; }

/* Heading */
.snrg-eyebrow {
	display: flex;
	align-items: center;
	justify-content: var(--snrg-justify, flex-start);
	gap: 12px;
	margin-bottom: 1rem;
	color: var(--snrg-eyebrow, var(--snrg-accent));
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.snrg-eyebrow-lines::before,
.snrg-eyebrow-lines::after {
	content: "";
	width: 38px;
	height: 1px;
	background: currentColor;
}
.snrg-title {
	margin: 0;
	font-family: var(--snrg-font-display);
	font-weight: 700;
	line-height: .95;
	letter-spacing: -.055em;
}
.snrg-line { display: block; }
.snrg-accent { color: var(--snrg-accent-text, var(--snrg-accent)); }
.snrg-heading.snrg-size-xl .snrg-title { font-size: clamp(56px, 8vw, 120px); }
.snrg-heading.snrg-size-l .snrg-title { font-size: clamp(40px, 6vw, 86px); }
.snrg-heading.snrg-size-m .snrg-title { font-size: clamp(28px, 3.4vw, 50px); }
.snrg-heading.snrg-size-s .snrg-title { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.25; letter-spacing: -.03em; }
.snrg-heading-split {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1.5rem 30px;
}
.snrg-section .snrg-heading-intro {
	max-width: 420px;
	margin: 0;
	color: var(--snrg-muted);
	font-size: 14px;
	line-height: 1.7;
	text-align: start;
}
.snrg-col > .snrg-heading + :not(.snrg-heading) { margin-top: 1.5rem; }
.snrg-headline .snrg-eyebrow { margin-bottom: 22px; font-size: 10px; letter-spacing: .18em; }

/* Text */
.snrg-text { font-size: 15px; line-height: 1.7; }
.snrg-text-large { font-size: clamp(16px, 1.4vw, 19px); }
.snrg-text-small { font-size: 13px; }
.snrg-text-muted { color: var(--snrg-muted); }
.snrg-text > :last-child { margin-bottom: 0; }
.snrg-narrow {
	max-width: 34rem;
	margin-inline-start: var(--snrg-ms, 0) !important;
	margin-inline-end: var(--snrg-me, auto) !important;
}
.snrg-link { text-decoration: underline; text-underline-offset: 3px; }

/* Buttons */
.snrg-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: var(--snrg-justify, flex-start);
}
.snrg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 14px 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--snrg-font-body);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .25s, border-color .25s, color .25s, transform .25s;
}
.snrg-btn:hover { transform: translateY(-2px); }
.snrg-btn:focus-visible { outline: 2px solid var(--snrg-accent); outline-offset: 3px; }
.snrg-btn-primary { background: var(--snrg-accent); border-color: var(--snrg-accent); color: var(--snrg-accent-contrast); }
.snrg-btn-primary:hover { background: #fff; border-color: #fff; color: #050505; }
.snrg-btn-ghost {
	background: color-mix(in srgb, currentColor 4%, transparent);
	border-color: color-mix(in srgb, currentColor 30%, transparent);
	color: inherit;
	backdrop-filter: blur(8px);
}
.snrg-btn-ghost:hover { border-color: var(--snrg-accent); color: var(--snrg-accent); }
.snrg-btn-dark { background: #080808; border-color: #080808; color: #fff; }
.snrg-btn-dark:hover { background: #fff; border-color: #fff; color: #080808; }
.snrg-btn-light { background: #fff; border-color: #fff; color: #080808; }
.snrg-btn-light:hover { background: var(--snrg-accent); border-color: var(--snrg-accent); color: #080808; }

/* Image, video, spacer */
.snrg-image img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.snrg-image-full img { width: 100%; }
.snrg-image-logo img { width: auto; max-width: min(100%, 160px); max-height: 80px; object-fit: contain; }
.snrg-image-rounded img { border-radius: var(--snrg-radius); }
.snrg-image-circle img { aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.snrg-spacer.snrg-size-s { height: .5rem; }
.snrg-spacer.snrg-size-m { height: 2rem; }
.snrg-spacer.snrg-size-l { height: 4rem; }
.snrg-spacer.snrg-size-xl { height: 6rem; }

/* Animated headline: all phrases share one grid cell so the height never jumps */
.snrg-headline-stage {
	display: grid;
	align-items: center;
	perspective: 900px;
}
.snrg-headline-stage > * {
	grid-area: 1 / 1;
	visibility: hidden;
}
.snrg-headline-stage > .is-static,
.snrg-headline-stage > .is-active { visibility: visible; }
.snrg-headline-phrase {
	font-family: var(--snrg-font-display);
	font-weight: 700;
	line-height: .96;
	letter-spacing: -.055em;
}
.snrg-headline.snrg-size-xl .snrg-headline-phrase { font-size: clamp(44px, 6.5vw, 96px); }
.snrg-headline.snrg-size-l .snrg-headline-phrase { font-size: clamp(36px, 5vw, 72px); }
.snrg-headline.snrg-size-m .snrg-headline-phrase { font-size: clamp(28px, 3.5vw, 50px); }
.snrg-headline.snrg-size-s .snrg-headline-phrase { font-size: clamp(22px, 2.4vw, 32px); }
.snrg-headline-final img { display: inline-block; width: min(100%, 430px); height: auto; }
.snrg-word { display: inline-block; white-space: nowrap; }
.snrg-char { display: inline-block; transform-origin: 50% 100%; }

/* Sliding elements */
.snrg-ticker {
	overflow: hidden;
	font-family: var(--snrg-font-display);
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
	--snrg-ticker-duration: 28s;
}
.snrg-ticker-accent { background: var(--snrg-accent); color: var(--snrg-accent-contrast); }
.snrg-ticker-dark { background: #070707; color: #f4f4f1; border-block: 1px solid rgba(255, 255, 255, .11); }
.snrg-ticker-light { background: #f1f1ed; color: #141414; }
.snrg-ticker-track { display: flex; width: max-content; }
.snrg-ticker-group { display: flex; flex: 0 0 auto; align-items: center; }
.snrg-ticker-item,
.snrg-ticker-sep { flex: 0 0 auto; padding: .85em 1.3em; line-height: 1.3; }
.snrg-ticker-image { display: block; width: auto; height: 1.6em; object-fit: contain; }
.snrg-ticker.snrg-size-s { font-size: 14px; }
.snrg-ticker.snrg-size-m { font-size: clamp(17px, 1.6vw, 22px); }
.snrg-ticker.snrg-size-l { font-size: clamp(28px, 4vw, 56px); }
.snrg-ticker.snrg-size-xl { font-size: clamp(40px, 6vw, 90px); }
.snrg-speed-slow { --snrg-ticker-duration: 45s; }
.snrg-speed-fast { --snrg-ticker-duration: 16s; }
/* Motion is driven by builder.js (Web Animations) so hover can ease the speed down and up. */
.snrg-ticker-viewport { overflow: hidden; }
.snrg-ticker-fade .snrg-ticker-viewport {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

/* Statistics */
.snrg-stat-value {
	display: block;
	font-family: var(--snrg-font-display);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -.06em;
}
.snrg-stat-label {
	display: block;
	margin-top: 10px;
	color: var(--snrg-muted);
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.snrg-stats-row {
	display: grid;
	grid-template-columns: repeat(var(--snrg-cols, 4), minmax(0, 1fr));
	border-block: 1px solid var(--snrg-line);
	text-align: start;
}
.snrg-stats-row .snrg-stat { padding: 34px 24px; border-inline-end: 1px solid var(--snrg-line); }
.snrg-stats-row .snrg-stat:last-child { border-inline-end: 0; }
.snrg-stats-row .snrg-stat-value { font-size: clamp(42px, 5vw, 74px); }
.snrg-stats-floating {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	text-align: center;
}
.snrg-stats-floating .snrg-stat-value { font-size: clamp(28px, 2.8vw, 40px); }
.snrg-stats-floating .snrg-stat-label { font-size: 9px; letter-spacing: .12em; }
@media (min-width: 1200px) {
	.snrg-stats-floating { position: absolute; inset: 0 12px; z-index: 1; display: block; pointer-events: none; }
	.snrg-stats-floating .snrg-stat { position: absolute; width: 200px; text-align: start; }
	.snrg-stats-floating .snrg-stat:nth-child(1) { left: 0; top: 23%; }
	.snrg-stats-floating .snrg-stat:nth-child(2) { right: 0; top: 51%; text-align: end; }
	.snrg-stats-floating .snrg-stat:nth-child(3) { left: 16px; top: 73%; }
	.snrg-stats-floating .snrg-stat:nth-child(4) { right: 16px; top: 10%; text-align: end; }
}

/* Image cards */
.snrg-cards { display: grid; gap: 18px; --snrg-card-h: 400px; }
.snrg-cards.snrg-height-s { --snrg-card-h: 260px; }
.snrg-cards.snrg-height-l { --snrg-card-h: 540px; }
.snrg-cards-featured { grid-template-columns: 1.35fr .85fr; }
.snrg-cards-side { display: grid; grid-auto-rows: 1fr; gap: 18px; }
.snrg-cards-side .snrg-card { min-height: calc(var(--snrg-card-h) * .65); }
.snrg-cards-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.snrg-cards-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.snrg-cards-mosaic { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.snrg-cards-mosaic > .snrg-card:nth-child(4n+1),
.snrg-cards-mosaic > .snrg-card:nth-child(4n+4) { grid-column: span 7; }
.snrg-cards-mosaic > .snrg-card:nth-child(4n+2),
.snrg-cards-mosaic > .snrg-card:nth-child(4n+3) { grid-column: span 5; }
.snrg-projects-more { justify-content: var(--snrg-justify, flex-end); margin-top: .5rem !important; }
.snrg-card {
	position: relative;
	display: block;
	min-height: var(--snrg-card-h);
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--snrg-radius);
	background: #161617;
	color: #fff;
	text-align: start;
}
.snrg-card-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
a.snrg-card:hover .snrg-card-image { transform: scale(1.06); }
.snrg-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, .88));
}
.snrg-card-info { position: absolute; z-index: 1; inset-inline: 28px; bottom: 26px; }
.snrg-tag {
	display: inline-flex;
	margin-bottom: 12px;
	padding: 7px 10px;
	border: 1px solid color-mix(in srgb, var(--snrg-accent) 50%, transparent);
	border-radius: 999px;
	color: var(--snrg-accent);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.snrg-section .snrg-card-title {
	margin: 0 0 8px;
	color: #fff;
	font-family: var(--snrg-font-display);
	font-size: clamp(24px, 2.6vw, 44px);
	font-weight: 700;
	line-height: .98;
	letter-spacing: -.05em;
}
.snrg-section .snrg-card-text {
	margin: 0;
	color: #bdbdbd;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* List */
.snrg-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--snrg-line);
	text-align: start;
}
.snrg-list > li { border-bottom: 1px solid var(--snrg-line); }
.snrg-list-item { display: grid; align-items: center; color: inherit; }
.snrg-list-title {
	display: block;
	font-family: var(--snrg-font-display);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.05em;
}
.snrg-list.snrg-size-xl .snrg-list-title { font-size: clamp(32px, 4.5vw, 64px); }
.snrg-list.snrg-size-l .snrg-list-title { font-size: clamp(25px, 3.1vw, 46px); }
.snrg-list.snrg-size-m .snrg-list-title { font-size: clamp(19px, 1.8vw, 24px); letter-spacing: -.02em; }
.snrg-list.snrg-size-s .snrg-list-title { font-size: 17px; letter-spacing: -.01em; }
.snrg-list-text { display: block; color: var(--snrg-muted); font-size: 13px; line-height: 1.6; }
.snrg-list-numbered .snrg-list-item {
	grid-template-columns: 48px minmax(0, 1fr) 40px;
	gap: 24px;
	min-height: 108px;
	padding: 26px 24px;
	border-inline-start: 3px solid transparent;
	transition: background-color .2s, border-color .2s;
}
.snrg-list-numbered .snrg-list-text { margin-top: 6px; }
.snrg-list-num { font-family: var(--snrg-font-display); font-size: 13px; color: var(--snrg-muted); }
.snrg-list-arrow { justify-self: center; font-size: 26px; transition: transform .25s; }
a.snrg-list-item:hover,
a.snrg-list-item:focus-visible {
	background: color-mix(in srgb, var(--snrg-accent) 16%, transparent);
	border-inline-start-color: var(--snrg-accent);
}
a.snrg-list-item:hover .snrg-list-arrow { transform: translateX(4px); }
.snrg-list-features .snrg-list-item {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 20px;
	padding: 23px 0;
}
.snrg-list-features .snrg-list-text { justify-self: end; max-width: 280px; font-size: 12px; text-align: end; }

/* Box grid */
.snrg-grid { display: grid; grid-template-columns: repeat(var(--snrg-cols, 4), minmax(0, 1fr)); }
.snrg-cols-2 { --snrg-cols: 2; }
.snrg-cols-3 { --snrg-cols: 3; }
.snrg-cols-4 { --snrg-cols: 4; }
.snrg-cols-5 { --snrg-cols: 5; }
.snrg-cols-6 { --snrg-cols: 6; }
.snrg-box { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 24px 20px; }
.snrg-box > * { max-width: 100%; margin: 0; }
.snrg-box-align-center > .snrg-box {
	align-items: center;
	justify-content: center;
	text-align: center;
	--snrg-justify: center;
	--snrg-ms: auto;
	--snrg-me: auto;
}
.snrg-box-s > .snrg-box { min-height: 140px; }
.snrg-box-m > .snrg-box { min-height: 198px; }
.snrg-box-l > .snrg-box { min-height: 280px; }
.snrg-grid-lines { border-top: 1px solid var(--snrg-line); border-inline-start: 1px solid var(--snrg-line); }
.snrg-grid-lines > .snrg-box {
	border-bottom: 1px solid var(--snrg-line);
	border-inline-end: 1px solid var(--snrg-line);
	color: color-mix(in srgb, currentColor 65%, transparent);
	transition: background-color .25s, color .25s;
}
.snrg-grid-lines > .snrg-box:hover { background: color-mix(in srgb, currentColor 4%, transparent); color: inherit; }
.snrg-grid-cards { gap: 18px; }
.snrg-grid-cards > .snrg-box {
	border: 1px solid var(--snrg-line);
	border-radius: var(--snrg-radius);
	background: color-mix(in srgb, currentColor 5%, transparent);
}
.snrg-grid-plain { gap: 24px; }

/* Box grid: extra tall, numbers, hover highlight, animate in */
.snrg-box-xl > .snrg-box { min-height: 440px; padding: 40px 34px 44px; }
.snrg-box-number {
	margin-bottom: 1.25rem !important;
	font-family: var(--snrg-font-display);
	font-size: 64px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.06em;
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 1px color-mix(in srgb, currentColor 30%, transparent);
	transition: -webkit-text-fill-color .4s, -webkit-text-stroke-color .4s;
}
.snrg-box > .snrg-text-label:last-child { margin-top: auto !important; padding-top: 1.5rem; }
.snrg-grid-interactive > .snrg-box,
.snrg-grid-animate > .snrg-box { position: relative; color: inherit; }
.snrg-grid-interactive > .snrg-box::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0;
	background: radial-gradient(420px circle at var(--snrg-x, 50%) var(--snrg-y, 50%), color-mix(in srgb, var(--snrg-accent) 13%, transparent), transparent 45%);
	transition: opacity .3s;
}
.snrg-grid-interactive > .snrg-box:hover::after { opacity: 1; }
.snrg-grid-interactive > .snrg-box:hover .snrg-box-number { -webkit-text-fill-color: var(--snrg-accent); -webkit-text-stroke-color: var(--snrg-accent); }
.snrg-grid-animate > .snrg-box::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	width: 0;
	height: 2px;
	background: var(--snrg-accent);
	transition: width 1s var(--snrg-ease) calc(var(--snrg-i, 0) * .15s + .35s);
}
.snrg-grid-animate.is-visible > .snrg-box::before { width: calc(100% + 1px); }
@media (prefers-reduced-motion: no-preference) {
	.snrg-js .snrg-grid-animate > .snrg-box {
		opacity: 0;
		transform: translateY(40px);
		transition: opacity .9s var(--snrg-ease), transform .9s var(--snrg-ease), background-color .25s, color .25s;
		transition-delay: calc(var(--snrg-i, 0) * .15s);
	}
	.snrg-js .snrg-grid-animate.is-visible > .snrg-box { opacity: 1; transform: none; }
	.snrg-js .snrg-grid-animate.is-settled > .snrg-box { transition-delay: 0s; transition-duration: .4s; }
}
@media (hover: hover) {
	/* After the animate-in rules so the dimming wins once boxes are visible. */
	.snrg-grid-interactive:hover > .snrg-box:not(:hover) { opacity: .45; }
	.snrg-grid-interactive > .snrg-box { transition: opacity .4s, background-color .25s; }
}

/* Word list */
.snrg-words {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: var(--snrg-font-display);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: -.03em;
}
.snrg-words.snrg-size-s { font-size: 18px; }
.snrg-words.snrg-size-m { font-size: clamp(20px, 1.8vw, 26px); }
.snrg-words.snrg-size-l { font-size: clamp(26px, 2.6vw, 36px); }
.snrg-words.snrg-size-xl { font-size: clamp(32px, 3.6vw, 48px); }
.snrg-words li { transition: opacity .5s, transform .5s var(--snrg-ease); }
.snrg-words-marker {
	display: inline-block;
	margin-inline-end: .55em;
	color: var(--snrg-accent);
	font-size: .5em;
	vertical-align: .3em;
	transition: transform .5s var(--snrg-ease);
}
.snrg-js .snrg-words[data-snrg-cycle] li:not(.is-on) { opacity: .35; }
.snrg-js .snrg-words[data-snrg-cycle] li.is-on { transform: translateX(8px); }
.snrg-js .snrg-words[data-snrg-cycle] li.is-on .snrg-words-marker { transform: rotate(180deg) scale(1.4); }
.snrg-text-label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
@media (prefers-reduced-motion: reduce) {
	.snrg-js .snrg-words[data-snrg-cycle] li { opacity: 1 !important; transform: none !important; }
	.snrg-grid-animate > .snrg-box::before { transition: none; }
}

/* Forms (Fluent Forms) inside builder sections: underline fields that take the section's text colour */
.snrg-section {
	--snrg-form-btn-bg: #080808;
	--snrg-form-btn-ink: #fff;
	--snrg-form-error: #9e1c12;
}
.snrg-scheme-dark,
.snrg-scheme-black {
	--snrg-form-btn-bg: var(--snrg-accent);
	--snrg-form-btn-ink: var(--snrg-accent-contrast);
	--snrg-form-error: #ff8f80;
}
.snrg-section .fluentform {
	--fluentform-primary: currentColor;
	--fluentform-secondary: currentColor;
	--fluentform-danger: var(--snrg-form-error);
	font-family: var(--snrg-font-body);
	text-align: start;
}
.snrg-section .fluentform .ff-el-group { margin-bottom: 1.75rem; }
.snrg-section .fluentform .ff-t-container { gap: 1.5rem; }
.snrg-section .fluentform .ff-t-cell { padding: 0 !important; }
.snrg-section .fluentform .ff-el-input--label { margin-bottom: 0.15rem; }
.snrg-section .fluentform .ff-el-input--label label {
	color: inherit;
	font-family: var(--snrg-font-body);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.75;
}
.snrg-section .fluentform .ff-el-is-required.asterisk-right label::after {
	margin-inline-start: 0.2em;
	color: inherit;
}
.snrg-section .fluentform .ff-el-tooltip svg { fill: currentColor; opacity: 0.6; }
.snrg-section .fluentform .ff-el-form-control {
	padding: 0.75rem 0;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.snrg-section .fluentform .ff-el-form-control::placeholder { color: color-mix(in srgb, currentColor 45%, transparent); opacity: 1; }
.snrg-section .fluentform .ff-el-form-control:focus {
	border-bottom-color: currentColor;
	background: transparent;
	box-shadow: 0 1px 0 0 currentColor;
	color: inherit;
	outline: 0;
}
.snrg-section .fluentform textarea.ff-el-form-control { min-height: 120px; resize: vertical; }
.snrg-section .fluentform .ff-el-is-error .ff-el-form-control { border-bottom-color: var(--snrg-form-error); }
.snrg-section .fluentform .error.text-danger {
	margin-top: 0.5rem;
	color: var(--snrg-form-error);
	font-size: 12px;
	font-weight: 600;
}
.snrg-section .fluentform .ff_submit_btn_wrapper { margin-top: 0.5rem; text-align: start; }
.snrg-section .fluentform .ff-btn.ff-btn-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--snrg-form-btn-bg);
	border-radius: 999px;
	background: var(--snrg-form-btn-bg);
	box-shadow: none;
	color: var(--snrg-form-btn-ink);
	font-family: var(--snrg-font-body);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 0.25s, border-color 0.25s, color 0.25s, transform 0.25s, opacity 0.25s;
}
.snrg-section .fluentform .ff-btn.ff-btn-submit::after { content: "↗"; font-size: 14px; letter-spacing: 0; }
.snrg-section .fluentform .ff-btn.ff-btn-submit:hover {
	background: #fff;
	border-color: #fff;
	color: #080808;
	opacity: 1;
	transform: translateY(-2px);
}
.snrg-section .fluentform .ff-btn.ff-btn-submit:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.snrg-section .ff-message-success {
	padding: 1.25rem 1.5rem;
	border: 1px solid color-mix(in srgb, currentColor 25%, transparent);
	border-radius: 14px;
	background: color-mix(in srgb, currentColor 6%, transparent);
	box-shadow: none;
	color: inherit;
	font-weight: 600;
}

/* Email verification row under the email field (email-verification.js) */
.snrg-ev {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem 0.75rem;
	margin-top: 0.85rem;
	font-size: 13px;
	line-height: 1.45;
}
.snrg-ev__icon {
	position: relative;
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 20px;
	height: 20px;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 800;
	opacity: 0.55;
}
.snrg-ev__message { flex: 1 1 14rem; margin: 0; opacity: 0.8; }
.snrg-ev__action {
	flex: 0 0 auto;
	padding: 0.55rem 1rem;
	border: 1px solid color-mix(in srgb, currentColor 45%, transparent);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-family: var(--snrg-font-body);
	font-size: 10px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 0.2s, border-color 0.2s, opacity 0.2s;
}
.snrg-ev__action:hover:not(:disabled) { border-color: currentColor; background: color-mix(in srgb, currentColor 10%, transparent); }
.snrg-ev__action:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.snrg-ev__action:disabled { cursor: default; opacity: 0.55; }
.snrg-ev[data-state="sent"] .snrg-ev__icon { opacity: 0.9; }
.snrg-ev[data-state="sent"] .snrg-ev__icon::after {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	animation: snrg-ev-pulse 1.4s ease-in-out infinite;
}
.snrg-ev[data-state="verified"] { font-weight: 700; }
.snrg-ev[data-state="verified"] .snrg-ev__icon { opacity: 1; }
.snrg-ev[data-state="verified"] .snrg-ev__icon::after { content: "✓"; }
.snrg-ev[data-state="verified"] .snrg-ev__message { opacity: 1; }
.snrg-ev[data-state="error"] { color: var(--snrg-form-error, #9e1c12); }
.snrg-ev[data-state="error"] .snrg-ev__icon { opacity: 1; }
.snrg-ev[data-state="error"] .snrg-ev__icon::after { content: "!"; }
.snrg-ev[data-state="error"] .snrg-ev__message { opacity: 1; }
.snrg-ev.is-nudged { animation: snrg-ev-nudge 0.4s ease; }
@keyframes snrg-ev-pulse { 50% { opacity: 0.25; transform: scale(0.7); } }
@keyframes snrg-ev-nudge { 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) {
	.snrg-ev[data-state="sent"] .snrg-ev__icon::after,
	.snrg-ev.is-nudged { animation: none; }
}

/* Fade in on scroll (only when JavaScript is running and motion is welcome) */
@media (prefers-reduced-motion: no-preference) {
	.snrg-js .snrg-reveal .snrg-col {
		opacity: 0;
		transform: translateY(40px);
		transition: opacity .9s var(--snrg-ease), transform .9s var(--snrg-ease);
	}
	.snrg-js .snrg-reveal.is-visible .snrg-col { opacity: 1; transform: none; }
}

@media (max-width: 991px) {
	.snrg-cards-featured { grid-template-columns: 1fr; }
	.snrg-cards-featured .snrg-cards-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.snrg-cards-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.snrg-grid:is(.snrg-cols-3, .snrg-cols-4, .snrg-cols-5, .snrg-cols-6) { --snrg-cols: 2; }
	.snrg-grid.snrg-cols-3 { --snrg-cols: 1; }
	.snrg-stats-row:is(.snrg-cols-3, .snrg-cols-4) { --snrg-cols: 2; }
	.snrg-stats-row .snrg-stat:nth-child(2n) { border-inline-end: 0; }
	.snrg-stats-row .snrg-stat:not(:nth-last-child(-n+2)) { border-bottom: 1px solid var(--snrg-line); }
}

@media (max-width: 767px) {
	.snrg-cards-two,
	.snrg-cards-three,
	.snrg-cards-mosaic,
	.snrg-cards-featured .snrg-cards-side { grid-template-columns: minmax(0, 1fr); }
	.snrg-cards-mosaic > .snrg-card:nth-child(n) { grid-column: auto; }
	.snrg-list-numbered .snrg-list-item { grid-template-columns: 25px minmax(0, 1fr) 28px; gap: 12px; min-height: 90px; padding: 22px 14px; }
	.snrg-list-arrow { font-size: 23px; }
	.snrg-stats-row .snrg-stat { padding: 25px 15px; }
	.snrg-box-xl > .snrg-box { min-height: 0; padding: 32px 24px 36px; }
}

@media (max-width: 575px) {
	.snrg-grid { --snrg-cols: 1 !important; }
	.snrg-pad-medium { padding-block: 3.5rem; }
	.snrg-pad-large { padding-block: 4.5rem; }
	.snrg-buttons .snrg-btn { flex: 1 1 auto; }
}
