/* ==========================================================================
   Bizincubator — section styles used by Elementor HTML widgets and shortcodes.
   ========================================================================== */

.biz-section-label {
	font: 700 11px/1 var(--biz-font);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--biz-green);
}

[data-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .7s ease, transform .7s ease;
}

[data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

/* ------------------------------------------------------------------ hero */

.biz-hero {
	position: relative;
	min-height: clamp(560px, 76vh, 760px);
	display: flex;
	align-items: flex-end;
	color: #fff;
	overflow: hidden;
}

.biz-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

.biz-hero__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(10, 17, 48, .93) 0%, rgba(10, 17, 48, .72) 42%, rgba(10, 17, 48, .28) 100%);
}

.biz-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--biz-max);
	margin: 0 auto;
	padding: clamp(48px, 8vw, 90px) var(--biz-pad) 0;
}

.biz-hero__title {
	margin: 0 0 18px;
	font: 800 clamp(34px, 5.4vw, 68px)/1.02 var(--biz-font);
	letter-spacing: -.03em;
	max-width: min(15ch, 100%);
	color: #fff;
}

.biz-hero__title em {
	font-style: normal;
	color: var(--biz-green);
}

.biz-hero__lead {
	margin: 0;
	font: 500 clamp(14.5px, 1.35vw, 17px)/1.65 var(--biz-font);
	color: rgba(255, 255, 255, .78);
	max-width: min(46ch, 100%);
}

.biz-hero__row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	margin-top: 26px;
}

.biz-hero__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.biz-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: clamp(30px, 4vw, 46px) 0 0;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 18px 18px 0 0;
	overflow: hidden;
	background: rgba(10, 17, 48, .35);
	backdrop-filter: blur(6px);
}

.biz-hero__stat {
	padding: clamp(16px, 2vw, 24px);
	border-right: 1px solid rgba(255, 255, 255, .14);
}

.biz-hero__stat:last-child {
	border-right: 0;
}

.biz-hero__stat b {
	display: block;
	font: 800 clamp(24px, 3vw, 40px)/1 var(--biz-font);
	letter-spacing: -.02em;
}

.biz-hero__stat span {
	display: block;
	margin-top: 7px;
	font: 600 10.5px/1.3 var(--biz-font);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
}

.biz-hero__stat--gold b {
	color: var(--biz-gold);
}

.biz-hero__stat--green b {
	color: var(--biz-green);
}

/* ----------------------------------------------------------- stats cards */

.biz-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.biz-stat-card {
	border-radius: 20px;
	padding: clamp(18px, 2.4vw, 30px);
	background: #fff;
	border: 1px solid var(--biz-line);
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 128px;
	justify-content: center;
}

.biz-stat-card b {
	font: 800 clamp(28px, 3.6vw, 46px)/1 var(--biz-font);
	letter-spacing: -.03em;
	color: var(--biz-ink);
}

.biz-stat-card span {
	font: 500 13px/1.5 var(--biz-font);
	color: var(--biz-muted);
}

.biz-stat-card--green {
	grid-column: span 2;
	background: var(--biz-green);
	border-color: transparent;
	color: #fff;
}

.biz-stat-card--green b,
.biz-stat-card--green span {
	color: #fff;
}

.biz-stat-card--dark {
	background: var(--biz-dark);
	border-color: transparent;
}

.biz-stat-card--dark b {
	color: var(--biz-gold);
}

.biz-stat-card--dark span {
	color: rgba(255, 255, 255, .6);
}

.biz-stat-card--wide {
	grid-column: span 2;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.biz-stat-card--wide img {
	width: 58px;
	height: 58px;
	object-fit: contain;
}

.biz-stat-card--wide b {
	color: var(--biz-green);
}

/* ----------------------------------------------------------------- steps */

.biz-steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.biz-step {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 22px;
	padding: clamp(20px, 2.4vw, 30px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
	overflow: hidden;
}

.biz-step__num {
	font: 800 34px/1 var(--biz-font);
	color: rgba(10, 17, 48, .12);
	letter-spacing: -.03em;
}

.biz-step h3 {
	margin: 0;
	font: 700 19px/1.2 var(--biz-font);
	color: var(--biz-ink);
}

.biz-step p {
	margin: 0;
	font: 500 13.5px/1.65 var(--biz-font);
	color: var(--biz-muted);
}

.biz-step::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 3px;
	background: var(--biz-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s ease;
}

.biz-step:hover::before {
	transform: scaleX(1);
}

.biz-step:nth-child(2)::before { background: var(--biz-blue); }
.biz-step:nth-child(3)::before { background: var(--biz-gold); }
.biz-step:nth-child(4)::before { background: var(--biz-red); }

/* ----------------------------------------------------------------- quote */

.biz-quote {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: clamp(24px, 4vw, 54px);
	align-items: center;
}

.biz-quote__photo {
	border-radius: 24px;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: rgba(255, 255, 255, .06);
}

.biz-quote__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.biz-quote__text {
	margin: 0;
	font: 700 clamp(20px, 2.6vw, 34px)/1.35 var(--biz-font);
	letter-spacing: -.02em;
	color: #fff;
}

.biz-quote__text em {
	font-style: normal;
	color: var(--biz-gold);
}

.biz-quote__author {
	margin-top: 22px;
	font: 700 15px/1.4 var(--biz-font);
	color: #fff;
}

.biz-quote__role {
	font: 500 13px/1.5 var(--biz-font);
	color: rgba(255, 255, 255, .55);
}

/* -------------------------------------------------------------- branches */

.biz-branches {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: clamp(22px, 3vw, 46px);
	align-items: center;
}

.biz-map {
	position: relative;
}

.biz-map img {
	width: 100%;
	display: block;
}

/* The pin is a point: the dot sits exactly on the coordinates of the town and
   the caption hangs off it, so a long name never drags the dot off the map. */
.biz-pin {
	position: absolute;
	width: 0;
	height: 0;
}

.biz-pin__dot {
	position: absolute;
	left: 0;
	top: 0;
	width: 14px;
	height: 14px;
	margin: -7px 0 0 -7px;
	border-radius: 50%;
	background: var(--biz-green);
	box-shadow: 0 0 0 0 rgba(0, 162, 74, .55);
	animation: biz-pulse 2.4s infinite;
}

.biz-pin--capital .biz-pin__dot {
	background: var(--biz-red);
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	box-shadow: 0 0 0 0 rgba(228, 20, 27, .55);
}

.biz-pin__label {
	position: absolute;
	left: 13px;
	top: 0;
	transform: translateY(-50%);
	font: 700 12px/1 var(--biz-font);
	color: var(--biz-ink);
	background: rgba(255, 255, 255, .92);
	padding: 5px 9px;
	border-radius: 999px;
	white-space: nowrap;
	border: 1px solid var(--biz-line);
}

.biz-pin--capital .biz-pin__label {
	left: 15px;
}

@keyframes biz-pulse {
	0% { box-shadow: 0 0 0 0 rgba(0, 162, 74, .5); }
	70% { box-shadow: 0 0 0 16px rgba(0, 162, 74, 0); }
	100% { box-shadow: 0 0 0 0 rgba(0, 162, 74, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.biz-pin__dot { animation: none; }
}

.biz-branch-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.biz-branch {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 16px;
}

.biz-branch b {
	font: 700 15px/1 var(--biz-font);
}

.biz-branch span {
	font: 500 12.5px/1.4 var(--biz-font);
	color: var(--biz-muted);
}

.biz-branch em {
	font-style: normal;
	margin-left: auto;
	font: 600 12.5px/1.4 var(--biz-font);
	color: var(--biz-green);
}

/* -------------------------------------------------------------- partners */

.biz-partners {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.biz-partner {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 10px 14px;
	font: 600 13px/1.4 var(--biz-font);
	color: var(--biz-muted);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.biz-partner:hover {
	border-color: rgba(10, 17, 48, .18);
	box-shadow: 0 10px 26px rgba(10, 17, 48, .07);
}

/* Every logo comes on an identical 440x160 tile, so one aspect ratio fits all. */
.biz-partner img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 440 / 160;
	object-fit: contain;
	mix-blend-mode: multiply;
}

@media (max-width: 1024px) {
	.biz-partners {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.biz-partners {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --------------------------------------------- useful sites (moving row)

   Sixteen cards ride one track — the eight sites printed twice, so the loop has
   no seam. The track is four times the width of the block, which makes every
   card a quarter of it: four cards in view. Changing how many are in view is a
   matter of changing the width of the track (1600 / width = cards in view). */

.biz-sites {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.biz-sites__track {
	display: flex;
	width: 400%;
	animation: biz-sites-roll 46s linear infinite;
}

.biz-sites:hover .biz-sites__track,
.biz-sites:focus-within .biz-sites__track {
	animation-play-state: paused;
}

.biz-sites__run {
	display: flex;
	width: 50%;
}

.biz-site {
	flex: 0 0 calc(12.5% - 16px);
	margin-right: 16px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border-radius: 16px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
	color: #fff;
	transition: background .2s ease, border-color .2s ease;
}

.biz-site:hover,
.biz-site:focus-visible {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .3);
	color: #fff;
}

.biz-site__mark {
	flex: 0 0 auto;
	width: 54px;
	height: 54px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 13px;
	background: #fff;
}

.biz-site__mark img {
	width: 42px;
	height: 42px;
	object-fit: contain;
	display: block;
}

.biz-site__host {
	font: 700 15px/1.2 var(--biz-font);
	letter-spacing: -.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@keyframes biz-sites-roll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.biz-sites {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.biz-sites__track {
		width: 100%;
		animation: none;
	}

	.biz-sites__run {
		width: 100%;
		flex-wrap: wrap;
		gap: 16px 0;
	}

	.biz-sites__run + .biz-sites__run {
		display: none;
	}

	.biz-site {
		flex: 0 0 calc(25% - 16px);
	}
}

/* ------------------------------------------------------------------ news */

.biz-news {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.biz-news__card {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 22px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}

.biz-news__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 30px 60px -40px rgba(16, 22, 50, .5);
}

.biz-news__thumb {
	aspect-ratio: 16 / 10;
	background: var(--biz-light);
	overflow: hidden;
}

.biz-news__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.biz-news__body {
	padding: 20px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.biz-news__date {
	font: 700 11px/1 var(--biz-font);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--biz-green);
}

.biz-news__title {
	margin: 0;
	font: 700 17px/1.35 var(--biz-font);
	color: var(--biz-ink);
}

.biz-news__title a {
	color: inherit;
}

.biz-news__excerpt {
	margin: 0;
	font: 500 13.5px/1.6 var(--biz-font);
	color: var(--biz-muted);
}

.biz-news__empty {
	padding: 26px;
	border: 1px dashed var(--biz-line);
	border-radius: 18px;
	font: 500 14px/1.6 var(--biz-font);
	color: var(--biz-muted);
	grid-column: 1 / -1;
}

/* ------------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	/* three cards in view instead of four */
	.biz-sites__track {
		width: 533.33%;
	}

	.biz-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.biz-branches {
		grid-template-columns: 1fr;
	}

	.biz-news {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.biz-hero__stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.biz-hero__stat:nth-child(2) {
		border-right: 0;
	}

	.biz-quote {
		grid-template-columns: 1fr;
	}

	.biz-quote__photo {
		max-width: 220px;
	}

	.biz-news,
	.biz-steps {
		grid-template-columns: 1fr;
	}

	/* not quite two cards in view, so the row reads as a moving one */
	.biz-sites__track {
		width: 950%;
	}

	.biz-site {
		padding: 12px 16px;
		gap: 12px;
	}

	.biz-site__host {
		font-size: 14px;
	}

	.biz-site__mark {
		width: 46px;
		height: 46px;
	}

	.biz-site__mark img {
		width: 36px;
		height: 36px;
	}

	.biz-pin__label {
		display: none;
	}
}

/* ----------------------------------------------------------------- video */

.biz-video__head {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 24px;
}

.biz-video__title {
	margin: 0;
	font: 800 clamp(24px, 3.4vw, 42px)/1.1 var(--biz-font);
	letter-spacing: -.03em;
	color: #fff;
}

.biz-video__lead {
	margin: 0;
	font: 500 14px/1.6 var(--biz-font);
	color: rgba(255, 255, 255, .6);
}

.biz-video__player {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 24px;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-color: #12131A;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, .12);
}

.biz-video__play {
	width: clamp(76px, 9vw, 116px);
	height: clamp(76px, 9vw, 116px);
	border-radius: 50%;
	background: var(--biz-green);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
	color: #fff;
	box-shadow: 0 30px 70px -24px rgba(0, 162, 74, .9);
	transition: transform .2s ease;
}

.biz-video__player:hover .biz-video__play {
	transform: scale(1.06);
}

/* ------------------------------------------------------------ pagination */

.biz-pagination {
	margin-top: 34px;
}

.biz-pagination ul {
	list-style: none;
	display: flex;
	gap: 8px;
	padding: 0;
	margin: 0;
	flex-wrap: wrap;
}

.biz-pagination a,
.biz-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--biz-line);
	font: 700 13px/1 var(--biz-font);
	color: var(--biz-ink);
}

.biz-pagination .current {
	background: var(--biz-dark);
	border-color: transparent;
	color: #fff;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ------------------------------------------------- self-contained bands */

.biz-band {
	padding: clamp(52px, 6vw, 96px) var(--biz-pad);
	background: var(--biz-light);
}

.biz-band--dark {
	background: var(--biz-dark);
	color: #fff;
}

.biz-band__inner {
	max-width: var(--biz-max);
	margin: 0 auto;
}

/* ------------------------- typography helpers for native Elementor widgets */

.biz-h1 .elementor-heading-title {
	font: 800 clamp(30px, 4.6vw, 58px)/1.03 var(--biz-font);
	letter-spacing: -.03em;
	color: var(--biz-ink);
}

.biz-h2 .elementor-heading-title {
	font: 800 clamp(26px, 3.6vw, 46px)/1.08 var(--biz-font);
	letter-spacing: -.03em;
	color: var(--biz-ink);
	max-width: min(20ch, 100%);
}

.biz-h3 .elementor-heading-title {
	font: 700 clamp(19px, 2vw, 24px)/1.25 var(--biz-font);
	color: var(--biz-ink);
}

.biz-on-dark .elementor-heading-title,
.biz-on-dark .elementor-widget-container,
.biz-on-dark p {
	color: #fff;
}

.biz-on-dark.biz-lead .elementor-widget-container,
.biz-on-dark.biz-lead p {
	color: rgba(255, 255, 255, .65);
}

.biz-lead .elementor-widget-container,
.biz-lead p {
	font: 500 clamp(14px, 1.2vw, 16px)/1.7 var(--biz-font);
	color: var(--biz-muted);
	max-width: min(62ch, 100%);
}

.biz-lead p {
	margin: 0 0 12px;
}

/* Buttons rendered by the native Elementor button widget. */

.biz-btn-el .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 26px;
	border-radius: 999px;
	font: 700 13.5px/1 var(--biz-font);
	background: var(--biz-blue);
	color: #fff;
	border: 1px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease;
	box-shadow: 0 10px 30px -12px rgba(29, 78, 216, .9);
}

.biz-btn-el .elementor-button:hover {
	transform: translateY(-1px);
	color: #fff;
}

.biz-btn-el--green .elementor-button {
	background: var(--biz-green);
	box-shadow: 0 10px 30px -12px rgba(0, 162, 74, .9);
}

.biz-btn-el--ghost .elementor-button {
	background: transparent;
	border-color: rgba(10, 17, 48, .18);
	color: var(--biz-ink);
	box-shadow: none;
}

.biz-btn-el--ghost .elementor-button:hover {
	border-color: var(--biz-dark);
	color: var(--biz-ink);
}

.biz-btn-el--light .elementor-button {
	background: rgba(255, 255, 255, .1);
	border-color: rgba(255, 255, 255, .25);
	color: #fff;
	box-shadow: none;
}

/* Service cards (native icon-box widget). */

.biz-service {
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 22px;
	padding: clamp(22px, 2.4vw, 32px);
	height: 100%;
	transition: background .25s ease, transform .25s ease;
}

.biz-service:hover {
	background: rgba(255, 255, 255, .07);
	transform: translateY(-3px);
}

.biz-service .elementor-icon {
	color: var(--biz-green);
	font-size: 26px;
}

.biz-service .elementor-icon-box-title {
	margin: 18px 0 8px;
	font: 700 19px/1.25 var(--biz-font);
	color: #fff;
}

.biz-service .elementor-icon-box-description {
	font: 500 13.5px/1.65 var(--biz-font);
	color: rgba(255, 255, 255, .6);
	margin: 0;
}

.biz-service:nth-child(2n) .elementor-icon { color: var(--biz-blue); }
.biz-service:nth-child(3n) .elementor-icon { color: var(--biz-gold); }
.biz-service:nth-child(5n) .elementor-icon { color: var(--biz-red); }

/* Space cards (native image-box widget). */

.biz-space {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 24px;
	overflow: hidden;
	height: 100%;
	transition: transform .25s ease, box-shadow .25s ease;
}

.biz-space:hover {
	transform: translateY(-4px);
	box-shadow: 0 34px 70px -46px rgba(16, 22, 50, .55);
}

.biz-space .elementor-image-box-img {
	margin: 0 !important;
	width: 100% !important;
}

.biz-space .elementor-image-box-img img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	border-radius: 0;
}

.biz-space .elementor-image-box-content {
	padding: 22px 24px 26px;
}

.biz-space .elementor-image-box-title {
	margin: 0 0 8px;
	font: 700 21px/1.2 var(--biz-font);
	color: var(--biz-ink);
}

.biz-space .elementor-image-box-description {
	font: 500 13.5px/1.65 var(--biz-font);
	color: var(--biz-muted);
}

/* ------------------------------------------------ layout for Elementor pages */

.elementor-element.biz-section {
	padding: clamp(52px, 6vw, 96px) var(--biz-pad);
	--container-max-width: 100%;
}

.elementor-element.biz-section--flush {
	padding: 0;
}

.elementor-element.biz-wrap {
	max-width: var(--biz-max);
	margin: 0 auto;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 22px;
	align-items: flex-start;
	padding: 0;
}

.elementor-element.biz-row {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 3.4vw, 48px);
	width: 100%;
	align-items: flex-start;
	padding: 0;
}

.elementor-element.biz-col {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: flex-start;
	flex: 1 1 320px;
	min-width: 0;
	padding: 0;
}

/* widths account for the row gap so two columns stay on one line */
.elementor-element.biz-col--52 { flex: 1 1 calc(52% - 26px); max-width: calc(52% - 26px); }
.elementor-element.biz-col--48 { flex: 1 1 calc(48% - 26px); max-width: calc(48% - 26px); }
.elementor-element.biz-col--60 { flex: 1 1 calc(60% - 26px); max-width: calc(60% - 26px); }
.elementor-element.biz-col--40 { flex: 1 1 calc(40% - 26px); max-width: calc(40% - 26px); }
.elementor-element.biz-col--50 { flex: 1 1 calc(50% - 26px); max-width: calc(50% - 26px); }

.elementor-element.biz-grid {
	display: grid;
	gap: 18px;
	width: 100%;
	padding: 0;
}

.elementor-element.biz-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.elementor-element.biz-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor-element.biz-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.elementor-element.biz-cell {
	padding: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.elementor-element.biz-cell > .elementor-widget {
	height: 100%;
}

.biz-section .elementor-widget {
	width: 100%;
}

@media (max-width: 1024px) {
	.elementor-element.biz-col--52,
	.elementor-element.biz-col--48,
	.elementor-element.biz-col--60,
	.elementor-element.biz-col--40,
	.elementor-element.biz-col--50 {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.elementor-element.biz-grid--3,
	.elementor-element.biz-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.elementor-element.biz-grid--2,
	.elementor-element.biz-grid--3,
	.elementor-element.biz-grid--4 {
		grid-template-columns: 1fr;
	}
}

.biz-space .elementor-image-box-wrapper {
	text-align: left;
}

.biz-space .elementor-image-box-content {
	text-align: left;
}

/* ------------------------------------------------------------ page hero */

.elementor-element.biz-page-hero {
	padding-top: clamp(36px, 4.4vw, 64px);
	padding-bottom: clamp(36px, 4.4vw, 64px);
	border-bottom: 1px solid var(--biz-line);
}

.elementor-element.biz-page-hero--dark {
	border-bottom-color: rgba(255, 255, 255, .08);
}

.biz-crumbs {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 600 12px/1 var(--biz-font);
	color: #7a8096;
	flex-wrap: wrap;
}

.biz-crumbs a {
	color: #7a8096;
}

.biz-crumbs a:hover {
	color: var(--biz-ink);
}

.biz-crumbs span {
	color: var(--biz-green);
}

.biz-crumbs i {
	font-style: normal;
	opacity: .6;
}

.biz-page-hero--dark .biz-crumbs,
.biz-page-hero--dark .biz-crumbs a {
	color: rgba(255, 255, 255, .55);
}

/* ------------------------------------------------- light service cards */

.biz-service--light {
	background: #fff;
	border-color: var(--biz-line);
}

.biz-service--light:hover {
	background: #fff;
	box-shadow: 0 30px 60px -44px rgba(16, 22, 50, .5);
}

.biz-service--light .elementor-icon-box-title {
	color: var(--biz-ink);
}

.biz-service--light .elementor-icon-box-description {
	color: var(--biz-muted);
}

/* ------------------------------------------------------------ halls page */

.biz-halls {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}

.biz-hall {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 24px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.biz-hall__photo img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.biz-hall__body {
	padding: 22px 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.biz-hall__tj {
	font: 700 11px/1 var(--biz-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--biz-green);
}

.biz-hall h3 {
	margin: 0;
	font: 700 22px/1.2 var(--biz-font);
	color: var(--biz-ink);
}

.biz-hall p {
	margin: 0;
	font: 500 13.5px/1.65 var(--biz-font);
	color: var(--biz-muted);
}

.biz-hall__specs {
	display: flex;
	gap: 28px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--biz-line);
}

.biz-hall__specs b {
	display: block;
	font: 800 22px/1 var(--biz-font);
	color: var(--biz-ink);
}

.biz-hall__specs span {
	font: 600 10.5px/1.4 var(--biz-font);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--biz-muted);
}

/* ------------------------------------------------------- mini stat grid */

.biz-minigrid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	width: 100%;
}

.biz-mini {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 20px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.biz-mini b {
	font: 800 clamp(24px, 2.8vw, 34px)/1 var(--biz-font);
	color: var(--biz-green);
	letter-spacing: -.02em;
}

.biz-mini span {
	font: 500 13px/1.5 var(--biz-font);
	color: var(--biz-muted);
}

/* ---------------------------------------------------------- contacts page */

.biz-contact-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	width: 100%;
}

.biz-contact-card {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 20px;
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.biz-contact-card span {
	font: 600 11px/1 var(--biz-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--biz-muted);
}

.biz-contact-card b {
	font: 700 16px/1.4 var(--biz-font);
	color: var(--biz-ink);
}

.biz-contact-map {
	width: 100%;
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid var(--biz-line);
	margin-top: 6px;
}

.biz-contact-map iframe {
	width: 100%;
	height: clamp(280px, 40vw, 420px);
	border: 0;
	display: block;
}

/* ------------------------------------------------------------ apply page */

.biz-aside {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
}

.biz-aside__card {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 22px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.biz-aside__card--dark {
	background: var(--biz-dark);
	border-color: transparent;
}

.biz-aside__title {
	font: 600 11px/1 var(--biz-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--biz-muted);
}

.biz-aside__card--dark .biz-aside__title {
	color: rgba(255, 255, 255, .45);
}

.biz-aside__list {
	margin: 0;
	padding-left: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font: 500 13.5px/1.6 var(--biz-font);
	color: var(--biz-muted);
}

.biz-aside__phone {
	font: 800 22px/1.2 var(--biz-font);
	color: #fff;
}

.biz-aside__mail {
	font: 600 14px/1 var(--biz-font);
	color: var(--biz-gold);
}

/* ------------------------------------------------------- contact form 7 */

.biz-form {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 24px;
	padding: clamp(22px, 3vw, 38px);
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
}

.biz-form__section {
	font: 700 11px/1 var(--biz-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--biz-green);
	padding-top: 6px;
}

.biz-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.biz-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.biz-field--wide {
	grid-column: 1 / -1;
}

.biz-field__label {
	font: 600 12.5px/1 var(--biz-font);
	color: var(--biz-ink);
}

.biz-field__label b {
	color: var(--biz-red);
}

.biz-input,
.biz-form input[type="text"],
.biz-form input[type="email"],
.biz-form input[type="tel"],
.biz-form input[type="number"],
.biz-form select,
.biz-form textarea {
	width: 100%;
	padding: 14px 16px;
	border-radius: 14px;
	border: 1px solid rgba(10, 17, 48, .14);
	background: #fff;
	font: 500 14px/1.4 var(--biz-font);
	color: var(--biz-ink);
	transition: border-color .18s ease, box-shadow .18s ease;
}

.biz-form textarea {
	min-height: 150px;
	resize: vertical;
}

.biz-form input:focus,
.biz-form select:focus,
.biz-form textarea:focus {
	outline: none;
	border-color: var(--biz-blue);
	box-shadow: 0 0 0 3px rgba(29, 78, 216, .14);
}

.biz-form .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.biz-form .wpcf7-checkbox .wpcf7-list-item {
	margin: 0;
}

.biz-form .wpcf7-checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 16px;
	border-radius: 999px;
	border: 1px solid var(--biz-line);
	background: var(--biz-light);
	font: 600 12.5px/1 var(--biz-font);
	cursor: pointer;
}

.biz-field--agree .wpcf7-list-item {
	margin: 0;
}

.biz-field--agree label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font: 500 13px/1.6 var(--biz-font);
	color: var(--biz-muted);
}

.biz-submit,
.biz-form input[type="submit"] {
	appearance: none;
	border: 0;
	cursor: pointer;
	padding: 17px 30px;
	border-radius: 999px;
	background: var(--biz-blue);
	color: #fff;
	font: 700 14px/1 var(--biz-font);
	box-shadow: 0 12px 34px -14px rgba(29, 78, 216, .9);
	transition: transform .18s ease;
}

.biz-submit:hover {
	transform: translateY(-1px);
}

.wpcf7-response-output {
	margin: 6px 0 0 !important;
	border-radius: 14px !important;
	border-width: 1px !important;
	padding: 14px 18px !important;
	font: 500 13.5px/1.5 var(--biz-font);
}

.wpcf7-not-valid-tip {
	font: 500 12px/1.4 var(--biz-font);
	color: var(--biz-red);
}

@media (max-width: 1024px) {
	.biz-minigrid,
	.biz-contact-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.biz-halls,
	.biz-minigrid,
	.biz-contact-grid,
	.biz-form__grid {
		grid-template-columns: 1fr;
	}
}

.biz-form p {
	margin: 0;
}

.biz-form .wpcf7-form-control-wrap {
	display: block;
}


/* --------------------------------------------------- mobile overflow guards */

.biz-hero__inner,
.biz-hero__row,
.biz-hero__stats,
.elementor-element.biz-wrap,
.elementor-element.biz-row,
.elementor-element.biz-col,
.elementor-element.biz-grid,
.elementor-element.biz-cell {
	min-width: 0;
	max-width: 100%;
}

.biz-hero__row > * {
	min-width: 0;
}

.biz-hero__actions .biz-btn {
	flex: 0 1 auto;
}

@media (max-width: 520px) {
	.biz-hero__actions {
		width: 100%;
	}

	.biz-hero__actions .biz-btn {
		flex: 1 1 100%;
		justify-content: center;
	}

	.biz-hero {
		min-height: auto;
		padding-bottom: 0;
	}

	.biz-hero__inner {
		padding-top: clamp(40px, 12vw, 70px);
	}

	.biz-utility__inner {
		justify-content: flex-start;
		row-gap: 0;
	}
}

/* ============================================================== founder card
   Portrait of the President next to the text about the founding of the
   institution (home page and "About"). */

/* The card sits next to the text of the block, so it must not be much taller
   than that text: a portrait at the full width of the column made the right
   half of the row half again as tall as the left one. The picture is framed on
   the head and shoulders instead, and the card is narrower than its column. */
.biz-founder {
	margin: 0 auto;
	max-width: 460px;
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 18px 44px rgba(10, 17, 48, .07);
}

.biz-founder img {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 4;
	max-height: 340px;
	object-fit: cover;
	object-position: center 25%;
}

.biz-founder__caption {
	padding: clamp(16px, 2vw, 24px);
	border-top: 3px solid var(--biz-green);
}

/* One sentence in one size and one colour: the client asked for the caption to
   stop reading as three separate lines. Only the President's name is bold. */
.biz-founder__text {
	margin: 0;
	font: 500 14px/1.6 var(--biz-font);
	color: var(--biz-ink);
}

.biz-founder__text b {
	font-weight: 800;
}

/* The statistics grid now sits under the two columns, not beside them. */
.biz-stats-wrap {
	margin-top: clamp(28px, 3vw, 44px);
}

/* Captions that would run over the next pin sit on the left of the dot. */
.biz-pin--flip .biz-pin__label {
	left: auto;
	right: 13px;
}

.biz-pin--flip.biz-pin--capital .biz-pin__label {
	right: 15px;
}

/* =============================================== mission / vision / strategy */

.biz-pillars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.biz-pillar {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 20px;
	padding: clamp(20px, 2.4vw, 30px);
}

.biz-pillar h3 {
	margin: 0 0 10px;
	font: 800 clamp(17px, 1.9vw, 21px)/1.2 var(--biz-font);
	letter-spacing: -.02em;
}

.biz-pillar p {
	margin: 0;
	font: 500 14px/1.65 var(--biz-font);
	color: var(--biz-muted);
}

.biz-pillar--accent {
	background: var(--biz-dark);
	border-color: transparent;
}

.biz-pillar--accent h3 {
	color: var(--biz-gold);
}

.biz-pillar--accent p {
	color: rgba(255, 255, 255, .72);
}

/* ==================================================================== lists */

.biz-checklist p {
	margin: 0 0 16px;
	font: 500 15px/1.7 var(--biz-font);
	color: var(--biz-muted);
}

.biz-checklist ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.biz-checklist--cols ul {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
}

.biz-checklist li {
	position: relative;
	padding: 12px 16px 12px 42px;
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 14px;
	font: 500 14px/1.55 var(--biz-font);
	color: var(--biz-ink);
}

.biz-checklist li::before {
	content: '';
	position: absolute;
	left: 16px;
	top: 18px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--biz-green);
}

@media (max-width: 1024px) {
	.biz-pillars {
		grid-template-columns: 1fr;
	}

	.biz-checklist--cols ul {
		grid-template-columns: 1fr;
	}
}

/* ------------------------------------------ Elementor 4.2 container defaults

   Elementor 4.2 gives every container `--flex-direction: column`, so a row has
   to state the direction itself — otherwise two-column blocks stack on desktop.
   The mobile overflow guard above also caps every column at `max-width: 100%`,
   which cancels the column widths, so they are restored for wide screens. */

.elementor-element.biz-row {
	flex-direction: row;
}

@media (min-width: 1025px) {
	.elementor-element.biz-col--52 { max-width: calc(52% - 26px); }
	.elementor-element.biz-col--48 { max-width: calc(48% - 26px); }
	.elementor-element.biz-col--60 { max-width: calc(60% - 26px); }
	.elementor-element.biz-col--40 { max-width: calc(40% - 26px); }
	.elementor-element.biz-col--50 { max-width: calc(50% - 26px); }
}

/* Elementor 4.2 no longer applies the gradient it generates for containers,
   so the call-to-action band paints its own background. */
.elementor-element.biz-cta {
	background-color: #0A1130;
	background-image: linear-gradient(120deg, #0A1130 0%, #12235E 100%);
}

/* ============================================== numbered goals and areas ==
   Used on «Об учреждении»: the six goals of the institution and the six areas
   of cooperation, both taken from its own presentation. */

.biz-pillar__num {
	display: block;
	margin-bottom: 12px;
	font: 800 12px/1 var(--biz-font);
	letter-spacing: .16em;
	color: var(--biz-green);
}

.biz-pillar--accent .biz-pillar__num {
	color: var(--biz-gold);
}

.biz-areas {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.biz-area {
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 20px;
	padding: clamp(20px, 2.2vw, 28px);
}

.biz-area h3 {
	margin: 0 0 14px;
	font: 800 clamp(16px, 1.7vw, 19px)/1.25 var(--biz-font);
	letter-spacing: -.02em;
}

.biz-area ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 9px;
}

.biz-area li {
	position: relative;
	padding-left: 20px;
	font: 500 14px/1.6 var(--biz-font);
	color: var(--biz-muted);
}

.biz-area li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 9px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--biz-green);
}

@media (max-width: 1024px) {
	.biz-areas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.biz-areas {
		grid-template-columns: 1fr;
	}
}

/* ------------------------------------------------------- documents (legal) */

/* A group heading needs more air above it than the 22px the section gives
   every widget, otherwise the six spheres read as one long list. */
.biz-section .elementor-widget.biz-docgroup {
	margin-top: 22px;
}

.biz-lead--tight .elementor-widget-container,
.biz-lead--tight p {
	margin-bottom: 0;
}

.biz-docs {
	display: grid;
	gap: 10px;
	width: 100%;
}

.biz-doc {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--biz-line);
	border-radius: 16px;
	color: inherit;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

a.biz-doc:hover {
	border-color: rgba(29, 78, 216, .45);
	box-shadow: 0 18px 40px -30px rgba(16, 22, 50, .8);
	transform: translateY(-2px);
}

.biz-doc__mark {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border-radius: 12px;
	background: rgba(29, 78, 216, .08);
	color: var(--biz-blue);
	font: 800 11px/1 var(--biz-font);
	letter-spacing: .06em;
}

.biz-doc__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.biz-doc__title {
	font: 600 15px/1.45 var(--biz-font);
	color: var(--biz-ink);
}

.biz-doc__meta {
	font: 500 12.5px/1.4 var(--biz-font);
	color: var(--biz-muted);
}

.biz-doc__go {
	flex: 0 0 auto;
	padding: 8px 16px;
	border-radius: 999px;
	border: 1px solid var(--biz-line);
	font: 700 12px/1 var(--biz-font);
	color: var(--biz-muted);
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

a.biz-doc:hover .biz-doc__go {
	background: var(--biz-blue);
	border-color: var(--biz-blue);
	color: #fff;
}

/* Documents the institution has not sent yet. */
.biz-doc--soon {
	background: transparent;
	border-style: dashed;
}

.biz-doc--soon .biz-doc__mark {
	background: rgba(16, 22, 50, .05);
	color: var(--biz-muted);
}

.biz-doc--soon .biz-doc__title {
	color: var(--biz-muted);
}

@media (max-width: 640px) {
	.biz-doc {
		flex-wrap: wrap;
		gap: 12px;
	}

	.biz-doc__body {
		flex: 1 1 calc(100% - 60px);
	}

	.biz-doc__go {
		margin-left: 60px;
	}
}

/* Project cards borrow the news card, so the thumb can be a plain element. */
.biz-news__thumb {
	display: block;
}

/* ------------------------------------------------------- a single news post */

.biz-post__wrap {
	max-width: 860px;
	margin: 0 auto;
	width: 100%;
	padding: 0 var(--biz-pad);
}

.biz-post__head {
	padding: clamp(36px, 4.6vw, 64px) 0 clamp(24px, 3vw, 36px);
	background: #fff;
}

.biz-post__date {
	display: block;
	margin: 22px 0 10px;
	font: 700 11px/1 var(--biz-font);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--biz-green);
}

.biz-post__title {
	margin: 0;
	font: 800 clamp(26px, 3.4vw, 42px)/1.12 var(--biz-font);
	letter-spacing: -.03em;
	color: var(--biz-ink);
}

.biz-post__main {
	padding: 0 0 clamp(52px, 6vw, 90px);
	background: #fff;
}

.biz-post__cover {
	margin: 0 0 clamp(24px, 3vw, 38px);
	border-radius: 22px;
	overflow: hidden;
	background: var(--biz-light);
}

.biz-post__cover img {
	display: block;
	width: 100%;
	height: auto;
}

.biz-post__body {
	font: 500 16px/1.75 var(--biz-font);
	color: var(--biz-muted);
}

.biz-post__body p {
	margin: 0 0 18px;
}

.biz-post__body h2,
.biz-post__body h3 {
	margin: 32px 0 12px;
	font-family: var(--biz-font);
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--biz-ink);
}

.biz-post__body h2 { font-size: clamp(20px, 2.2vw, 26px); line-height: 1.2; }
.biz-post__body h3 { font-size: clamp(18px, 1.9vw, 21px); line-height: 1.25; }

.biz-post__body strong {
	color: var(--biz-ink);
}

.biz-post__body a {
	color: var(--biz-blue);
	text-decoration: underline;
}

.biz-post__body ul,
.biz-post__body ol {
	margin: 0 0 18px;
	padding-left: 22px;
}

.biz-post__body li {
	margin: 0 0 8px;
}

.biz-post__body img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.biz-post__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: clamp(24px, 3vw, 36px);
	padding: 13px 24px;
	border-radius: 999px;
	border: 1px solid var(--biz-line);
	font: 700 13px/1 var(--biz-font);
	color: var(--biz-ink);
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.biz-post__back:hover {
	background: var(--biz-ink);
	border-color: var(--biz-ink);
	color: #fff;
}
