/*
 * neb-sections.css — стилі секцій Neborak (hero, page-hero, benefits, feature-
 * cards, data-cards, cta-banner, seo-text, logo-wall, marquee, about-intro,
 * content-intro, ras-*, impact-bars, timeline, news-slider, product-*, faq,
 * gallery, map, post-grid, related, article-header, for-restaurants, lead-form).
 *
 * Ці класи (.neb-hero__title, .neb-fc__card, …) виводить РОЗМІТКА елементів ISB;
 * СКІН живе тут, у ТЕМІ (не в плагіні), щоб плагін лишався переносним, а сайти
 * без теми Neborak не успадкували цих стилів.
 *
 * Наповнюється по секції за фазами 3–4 (порт 1:1 з blocks/<name>/style-index.css).
 * Порожньо у Фазі 1 — тема-оболонка ще не має секцій.
 */

/* ===================== ISB-поверхні: шрифт від теми =====================
 * Рендерер ISB (і шаблони blog/article) загортають вміст у .isb-content і читають
 * шрифти з власних змінних --isb-font-heading / --isb-font-body. Плагін лишає їх
 * `inherit`, СВІДОМО очікуючи, що значення задасть тема («= від теми»). Тема
 * Neborak їх не задавала — тож .isb-content :is(h1..h4){font-family:var(--isb-font-heading)}
 * діставав inherit і тягнув body-шрифт (Manrope), перебиваючи наші .neb-*__title:
 * заголовки на канвасі/в блозі/статтях ставали sans замість Lora. Задаємо змінні
 * тут — це штатний хук теми до плагіна, без правки плагіна (§11). Правило на
 * .isb-content виграє над :root-дефолтом плагіна ДЕТЕРМІНОВАНО (пряме співпадіння
 * селектора > успадковане значення), незалежно від порядку підключення стилів. */
.isb-content {
	--isb-font-heading: var( --wp--preset--font-family--heading, 'Lora', serif );
	--isb-font-body: var( --wp--preset--font-family--body, 'Manrope', system-ui, sans-serif );
}

/* ===================== neb/hero ===================== */
/* neb/hero — mobile-first. Faithful to the approved design reference. */

.neb-hero {
	position: relative;
	min-height: 560px;
	height: 100vh;
	background: #04181f;
	color: #fff;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.neb-hero__bg-radial {
	position: absolute;
	inset: -8% -4%;
	background: radial-gradient( 120% 90% at 70% 20%, #16718a 0%, #0a3a49 42%, #04181f 78% );
	animation: neb-aqua 18s ease-in-out infinite;
	will-change: transform;
}

.neb-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

/* Brand tint: video/gradient muted into the deep brand gamma (ТЗ §3.2).
   PERF DEVIATION from reference (§9): mix-blend-mode:multiply over an autoplay
   video forces per-frame compositing and freezes the hero. We use plain alpha
   tinting (mix-blend-mode:normal); the radial-tint layer keeps the look ~1:1. */
.neb-hero__tint {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: #06222b;
	mix-blend-mode: normal;
	opacity: 0.62;
}

.neb-hero__radial-tint {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: radial-gradient( 120% 90% at 70% 18%, rgba( 22, 113, 138, 0.5 ) 0%, rgba( 10, 58, 73, 0.2 ) 45%, rgba( 4, 24, 31, 0.7 ) 82% );
}

.neb-hero__diag-lines {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image: repeating-linear-gradient( 115deg, rgba( 255, 255, 255, 0.05 ) 0 1px, transparent 1px 64px );
}

.neb-hero__grid {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image: linear-gradient( rgba( 255, 255, 255, 0.05 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, 0.05 ) 1px, transparent 1px );
	background-size: 72px 72px;
	mask-image: radial-gradient( 80% 70% at 50% 40%, #000, transparent );
}

.neb-hero__bottom-fade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient( 180deg, rgba( 4, 24, 31, 0.5 ) 0%, transparent 28%, transparent 55%, rgba( 4, 24, 31, 0.85 ) 100% );
}

.neb-hero__bracket {
	position: absolute;
	z-index: 2;
	top: 108px;
	width: 18px;
	height: 18px;
	border-top: 1.5px solid rgba( 239, 82, 73, 0.9 );
	display: none;
}
.neb-hero__bracket--tl { left: 56px; border-left: 1.5px solid rgba( 239, 82, 73, 0.9 ); }
.neb-hero__bracket--tr { right: 56px; border-right: 1.5px solid rgba( 239, 82, 73, 0.9 ); }

.neb-hero__geo {
	position: absolute;
	z-index: 2;
	top: 120px;
	left: 50%;
	transform: translateX( -50% );
	font-family: var( --wp--preset--font-family--mono );
	font-size: 11px;
	letter-spacing: 0.34em;
	color: rgba( 255, 255, 255, 0.55 );
	text-transform: uppercase;
	white-space: nowrap;
	display: none;
}

.neb-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 88px 20px 40px;
}

.neb-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #ff7a73;
	text-transform: uppercase;
}
.neb-hero__eyebrow-line {
	width: 28px;
	height: 1px;
	background: #ff7a73;
	display: block;
}

.neb-hero__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 40px, 6.6vw, 92px );
	line-height: 1.02;
	font-weight: 600;
	margin: 24px 0 0;
	letter-spacing: -0.02em;
	max-width: 14ch;
}

.neb-hero__row {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 28px;
}

.neb-hero__subtitle {
	font-size: 17px;
	line-height: 1.6;
	color: rgba( 255, 255, 255, 0.78 );
	max-width: 520px;
	margin: 0;
}

.neb-hero__cta-group {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.neb-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 14px 22px;
	border-radius: 11px;
	font: 700 14px var( --wp--preset--font-family--body );
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.neb-hero__cta--primary {
	background: #ef5249;
	color: #fff;
	box-shadow: 0 10px 28px rgba( 239, 82, 73, 0.4 );
}
.neb-hero__cta--primary:hover {
	transform: translateY( -2px );
	box-shadow: 0 16px 36px rgba( 239, 82, 73, 0.52 );
}
.neb-hero__cta--secondary {
	background: rgba( 255, 255, 255, 0.07 );
	color: #fff;
	border: 1px solid rgba( 255, 255, 255, 0.32 );
}
.neb-hero__cta--secondary:hover {
	border-color: #fff;
	background: rgba( 255, 255, 255, 0.14 );
}

.neb-hero__scroll-indicator {
	position: absolute;
	z-index: 2;
	bottom: 20px;
	left: 50%;
	transform: translateX( -50% );
	width: 22px;
	height: 34px;
	border: 1.5px solid rgba( 255, 255, 255, 0.4 );
	border-radius: 12px;
	display: none;
	justify-content: center;
	padding-top: 7px;
}
.neb-hero__scroll-dot {
	width: 3px;
	height: 7px;
	border-radius: 2px;
	background: #ef5249;
	animation: neb-scrolldot 1.8s ease-in-out infinite;
}

@keyframes neb-aqua {
	0% { transform: translate( 0, 0 ) scale( 1.1 ); }
	50% { transform: translate( -2%, -3% ) scale( 1.18 ); }
	100% { transform: translate( 0, 0 ) scale( 1.1 ); }
}
@keyframes neb-scrolldot {
	0% { transform: translateY( 0 ); opacity: 0; }
	30% { opacity: 1; }
	100% { transform: translateY( 20px ); opacity: 0; }
}

@media ( min-width: 768px ) {
	.neb-hero__inner { padding: 96px 40px 48px; }
	/* Keep subtitle + CTAs stacked (CTAs below), left-aligned. */
	.neb-hero__row { flex-direction: column; align-items: flex-start; gap: 28px; }
}

@media ( min-width: 880px ) {
	.neb-hero__bracket,
	.neb-hero__geo,
	.neb-hero__scroll-indicator { display: flex; }
	.neb-hero__bracket { display: block; }
}

@media ( min-width: 1024px ) {
	.neb-hero__inner { padding: 104px 56px 56px; }
}

@media ( prefers-reduced-motion: reduce ) {
	.neb-hero__bg-radial,
	.neb-hero__scroll-dot {
		animation: none !important;
	}
}

/* ===================== neb/marquee ===================== */
.neb-marquee {
	background: #ef5249;
	color: #fff;
	overflow: hidden;
	white-space: nowrap;
	padding: 15px 0;
	/* Flush against neighbouring sections — no block-gap above/below. */
	margin: 0;
}
.neb-marquee__track {
	display: inline-flex;
	flex-wrap: nowrap;
	width: max-content;
	animation: neb-marquee 32s linear infinite;
	will-change: transform;
}
.neb-marquee__item {
	flex: none;
	font-family: var( --wp--preset--font-family--mono );
	font-size: 14px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}
.neb-marquee:hover .neb-marquee__track { animation-play-state: paused; }

@media ( prefers-reduced-motion: reduce ) {
	.neb-marquee { white-space: normal; }
	.neb-marquee__track { animation: none !important; width: auto; flex-wrap: wrap; }
	.neb-marquee__item:not( :first-child ) { display: none; }
}

/* ===================== neb/seo-text ===================== */
/* SEO BOTTOM — faithful to designer. */
.neb-seo { background: #fff; border-top: 1px solid #e3eaea; }
.neb-seo__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp( 36px, 6vw, 48px ) clamp( 20px, 5vw, 56px );
}
.neb-seo__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 11px;
	letter-spacing: 0.1em;
	color: #9aa7ac;
	text-transform: uppercase;
}
.neb-seo__heading {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 22px, 2.6vw, 30px );
	font-weight: 600;
	margin: 12px 0 20px;
	letter-spacing: -0.01em;
	max-width: 26ch;
}
.neb-seo__body {
	columns: 300px;
	column-gap: 48px;
	font-size: 15px;
	line-height: 1.72;
	color: #5e6f76;
}
.neb-seo__body p { margin: 0 0 16px; }
.neb-seo__body p:last-child { margin-bottom: 0; }
.neb-seo__links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.neb-seo__chip {
	text-decoration: none;
	color: #0e1f27;
	border: 1px solid #d7e0e0;
	padding: 9px 16px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	transition: border-color 0.2s, background 0.2s;
}
.neb-seo__chip:hover { border-color: #0e1f27; background: #f5f8f8; }

/* ===================== neb/page-hero ===================== */
/* Inner-page VIDEO HERO — faithful to designer. */
.neb-vhero {
	position: relative;
	/* Half the height of the full-screen home hero (100vh), with a sensible floor. */
	min-height: 50vh;
	max-height: 620px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: #04181f;
	color: #fff;
}
@media ( max-width: 767px ) {
	.neb-vhero { min-height: 60vh; max-height: none; }
}
.neb-vhero__radial {
	position: absolute;
	inset: -6%;
	z-index: 0;
	background: radial-gradient( 120% 100% at 72% 12%, #16718a, #0a3a49 45%, #04181f 82% );
	animation: neb-aqua 18s ease-in-out infinite;
}
.neb-vhero__video {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Perf (§9): normal (alpha) tint, not multiply — see .neb-hero__tint note above. */
.neb-vhero__tint { position: absolute; inset: 0; z-index: 1; background: #06222b; mix-blend-mode: normal; opacity: 0.6; }
.neb-vhero__radial-tint { position: absolute; inset: 0; z-index: 1; background: radial-gradient( 120% 100% at 72% 12%, rgba( 22, 113, 138, 0.4 ), rgba( 4, 24, 31, 0.65 ) 80% ); }
.neb-vhero__grid {
	position: absolute;
	inset: 0;
	z-index: 2;
	background-image: linear-gradient( rgba( 255, 255, 255, 0.05 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, 0.05 ) 1px, transparent 1px );
	background-size: 72px 72px;
	mask-image: radial-gradient( 80% 80% at 50% 30%, #000, transparent );
}
.neb-vhero__fade { position: absolute; inset: 0; z-index: 2; background: linear-gradient( 180deg, rgba( 4, 24, 31, 0.45 ) 0%, transparent 32%, rgba( 4, 24, 31, 0.9 ) 100% ); }

.neb-vhero__inner {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 120px clamp( 20px, 5vw, 56px ) 64px;
}
.neb-vhero__crumbs {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	color: rgba( 255, 255, 255, 0.6 );
}
.neb-vhero__crumbs a { text-decoration: none; }
.neb-vhero__crumbs a:hover { color: #fff; }
.neb-vhero__crumb-current { color: #ff7a73; }
.neb-vhero__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 34px, 4.8vw, 62px );
	font-weight: 600;
	margin: 18px 0 0;
	letter-spacing: -0.02em;
	max-width: 15ch;
	line-height: 1.05;
}
.neb-vhero__lead {
	font-size: 19px;
	line-height: 1.6;
	color: rgba( 255, 255, 255, 0.8 );
	max-width: 580px;
	margin: 22px 0 0;
}

@media ( prefers-reduced-motion: reduce ) {
	.neb-vhero__radial { animation: none !important; }
}

/* ===================== neb/benefits-grid ===================== */
/* ADVANTAGES (05/07) — numbered rows, faithful to designer. */
.neb-adv { background: #fff; border-bottom: 1px solid #e3eaea; }
.neb-adv__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
}
.neb-adv__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-adv__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 30px, 3.8vw, 46px );
	font-weight: 600;
	margin: 16px 0 44px;
	letter-spacing: -0.015em;
}
.neb-adv__row {
	display: grid;
	grid-template-columns: 56px minmax( 160px, 1.1fr ) minmax( 220px, 1.9fr );
	gap: 20px;
	align-items: start;
	padding: 28px 12px;
	border-top: 1px solid #e6eded;
	transition: background 0.2s;
}
.neb-adv__row:last-child { border-bottom: 1px solid #e6eded; }
.neb-adv__row:hover { background: #f7fafa; }
.neb-adv__mark { display: flex; flex-direction: column; gap: 8px; }
.neb-adv__num {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	color: #9aa7ac;
}
.neb-adv__row-title { font-size: 18px; font-weight: 700; margin: 0; }
.neb-adv__row-text { font-size: 15px; line-height: 1.58; color: #5e6f76; margin: 0; }

@media ( max-width: 767px ) {
	.neb-adv__row {
		grid-template-columns: 40px 1fr;
		gap: 14px 16px;
	}
	.neb-adv__row-title { grid-column: 2; }
	.neb-adv__row-text { grid-column: 1 / -1; }
}

/* ===================== neb/feature-cards ===================== */
/* Feature cards grid — shared Neborak card style. */
.neb-fc { background: #fff; }
.neb-fc__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 56px, 9vw, 96px ) clamp( 20px, 5vw, 56px );
}
.neb-fc__head { max-width: 640px; margin-bottom: 40px; }
.neb-fc__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-fc__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 28px, 3.6vw, 42px );
	font-weight: 600;
	margin: 16px 0 0;
	letter-spacing: -0.015em;
}
.neb-fc__lead { font-size: 17px; line-height: 1.64; color: #5e6f76; margin: 16px 0 0; }
.neb-fc__grid {
	display: grid;
	grid-template-columns: repeat( var( --neb-fc-cols, auto-fit ), minmax( min( 240px, 100% ), 1fr ) );
	gap: 24px;
}
.neb-fc__card {
	background: #f7fafa;
	border: 1px solid #e6eded;
	border-radius: 14px;
	padding: 30px;
	transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.neb-fc__card:hover {
	transform: translateY( -4px );
	box-shadow: 0 18px 38px rgba( 12, 30, 38, 0.07 );
	border-color: #d3dede;
}
.neb-fc__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 13px;
	background: #fff;
	border: 1px solid #e6eded;
}
.neb-fc__card-title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 20px;
	font-weight: 600;
	margin: 18px 0 10px;
}
.neb-fc__card-text { font-size: 15px; line-height: 1.6; color: #5e6f76; margin: 0; }

/* Optional card image (replaces icon) + card button. */
.neb-fc__media { display: block; width: 100%; border-radius: 12px; overflow: hidden; margin-bottom: 4px; }
.neb-fc__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.neb-fc__btn { display: inline-block; margin-top: 16px; font-weight: 700; font-size: 14px; color: #ef5249; text-decoration: none; }
.neb-fc__btn:hover { text-decoration: underline; }

/* ===================== neb/data-cards ===================== */
/* STATS (04/07) — dark band with counters, faithful to designer. */
.neb-stats {
	background: #06222b;
	color: #fff;
	position: relative;
	overflow: hidden;
}
.neb-stats__overlay {
	position: absolute;
	inset: 0;
	background-image: linear-gradient( rgba( 255, 255, 255, 0.045 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, 0.045 ) 1px, transparent 1px );
	background-size: 64px 64px;
}
.neb-stats__inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 60px, 9vw, 108px ) clamp( 20px, 5vw, 56px );
}
.neb-stats__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-stats__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 28px, 3.6vw, 42px );
	font-weight: 600;
	margin: 16px 0 0;
	color: #fff;
}
.neb-stats__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 180px, 1fr ) );
	gap: 28px;
	margin-top: 54px;
}
.neb-stat { border-top: 1px solid rgba( 255, 255, 255, 0.16 ); padding-top: 22px; }
.neb-stat__value {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 44px, 5vw, 60px );
	font-weight: 600;
	color: #ef5249;
	line-height: 1;
}
.neb-stat__label {
	font-size: 14px;
	line-height: 1.5;
	color: rgba( 255, 255, 255, 0.72 );
	margin: 16px 0 0;
}

/* ===================== neb/cta-banner ===================== */
/* CTA BANNER — full-bleed band, faithful to designer. */
.neb-cta-banner {
	position: relative;
	overflow: hidden;
	background: #eef6f7;
	color: #0e1f27;
	border-top: 1px solid #e3eaea;
	border-bottom: 1px solid #e3eaea;
}
.neb-cta-banner--dark {
	background: #04181f;
	color: #fff;
	border-color: transparent;
}
.neb-cta-banner__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient( 100% 140% at 80% 0%, #14647a 0%, transparent 60% );
}
.neb-cta-banner__inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 60px, 9vw, 104px ) clamp( 20px, 5vw, 56px );
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: center;
	justify-content: space-between;
}
.neb-cta-banner__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #ef5249;
	margin: 0 0 10px;
}
.neb-cta-banner__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 28px, 3.6vw, 44px );
	font-weight: 600;
	margin: 0;
	max-width: 16ch;
	letter-spacing: -0.015em;
}
.neb-cta-banner__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Large button modifier + banner secondary (ghost on dark, outline on light). */
.neb-btn--lg { padding: 16px 30px; border-radius: 11px; font-size: 15px; }
.neb-btn--primary.neb-btn--lg:hover { box-shadow: 0 16px 36px rgba( 239, 82, 73, 0.52 ); }
.neb-cta-banner--dark .neb-cta-banner__secondary {
	background: rgba( 255, 255, 255, 0.07 );
	color: #fff;
	border-color: rgba( 255, 255, 255, 0.32 );
}
.neb-cta-banner--dark .neb-cta-banner__secondary:hover {
	border-color: #fff;
	background: rgba( 255, 255, 255, 0.14 );
}
.neb-cta-banner--light .neb-cta-banner__secondary {
	background: transparent;
	color: #0e1f27;
	border-color: #d7e0e0;
}
.neb-cta-banner--light .neb-cta-banner__secondary:hover { border-color: #0e1f27; }

/* ===================== neb/logo-wall ===================== */
/* Logo wall — bordered cards (works with text names or real logos). */
.neb-logo-wall {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 56px, 9vw, 96px ) clamp( 20px, 5vw, 56px );
}
.neb-logo-wall__head { margin-bottom: 36px; }
.neb-logo-wall__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: #ef5249; margin: 0 0 12px; }
.neb-logo-wall__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 26px, 3.4vw, 38px ); font-weight: 600; margin: 0; letter-spacing: -0.015em; }
.neb-logo-wall__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 200px, 100% ), 1fr ) );
	gap: 16px;
}
.neb-logo-wall__item {
	display: grid;
	place-items: center;
	min-height: 110px;
	padding: 24px;
	background: #f7fafa;
	border: 1px solid #e6eded;
	border-radius: 14px;
	transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.neb-logo-wall__item:hover {
	transform: translateY( -4px );
	box-shadow: 0 18px 38px rgba( 12, 30, 38, 0.07 );
	border-color: #d3dede;
}
.neb-logo-wall__item img { max-height: 48px; width: auto; filter: grayscale( 1 ); opacity: 0.75; transition: filter 0.25s, opacity 0.25s; }
.neb-logo-wall__item:hover img { filter: none; opacity: 1; }
.neb-logo-wall__placeholder {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 16px;
	font-weight: 600;
	color: #0e1f27;
	text-align: center;
}
.neb-logo-wall__empty { color: #5e6f76; font-size: 14px; }

/* ===================== neb/about-intro ===================== */
.neb-about {
	background: #fff;
	border-bottom: 1px solid #e3eaea;
}
.neb-about__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
}
.neb-about__head {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 320px, 100% ), 1fr ) );
	gap: 48px;
	align-items: end;
}
.neb-about__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-about__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 30px, 3.8vw, 46px );
	line-height: 1.12;
	font-weight: 600;
	margin: 18px 0 0;
	letter-spacing: -0.015em;
}
.neb-about__lead {
	font-size: 17px;
	line-height: 1.66;
	color: #5e6f76;
	margin: 0;
}
.neb-about__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 260px, 100% ), 1fr ) );
	gap: 24px;
	margin-top: 56px;
}
.neb-about__card {
	background: #f7fafa;
	border: 1px solid #e6eded;
	border-radius: 14px;
	padding: 34px;
	transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.neb-about__card:hover {
	transform: translateY( -4px );
	box-shadow: 0 18px 38px rgba( 12, 30, 38, 0.07 );
	border-color: #d3dede;
}
.neb-about__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 13px;
	background: #fff;
	border: 1px solid #e6eded;
}
.neb-about__card-title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 22px;
	font-weight: 600;
	margin: 18px 0 10px;
}
.neb-about__card-text {
	font-size: 15px;
	line-height: 1.6;
	color: #5e6f76;
	margin: 0;
}

.neb-about__media { width: 54px; height: 54px; border-radius: 13px; overflow: hidden; }
.neb-about__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ===================== neb/content-intro ===================== */
/* Content / SEO intro — 2 columns, faithful to designer. */
.neb-cintro__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp( 56px, 9vw, 88px ) clamp( 20px, 5vw, 56px ) 0;
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 300px, 100% ), 1fr ) );
	gap: 48px;
	align-items: start;
}
.neb-cintro__heading {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 26px, 3vw, 36px );
	font-weight: 600;
	margin: 0;
	letter-spacing: -0.01em;
	line-height: 1.18;
}
.neb-cintro__body { font-size: 17px; line-height: 1.72; color: #5e6f76; }
.neb-cintro__body p { margin: 0 0 18px; }
.neb-cintro__body p:last-child { margin-bottom: 0; }

/* ===================== ISB full-bleed integration ===================== */
/* neb_ elements are whole, edge-to-edge sections with their own inner max-width.
   Neutralize the ISB row/col wrapper (max-width 1160 + padding) for any row that
   contains a neb_ element, so the section renders flush 1:1 with the design. */
.isb-row:has( > .isb-col > [class*="isb-el-neb_"] ) {
	max-width: none;
	margin: 0;
	padding: 0;
	gap: 0;
}
.isb-row:has( > .isb-col > [class*="isb-el-neb_"] ) > .isb-col {
	flex: 1 1 100%;
	min-width: 0;
}
[class*="isb-el-neb_"] { margin: 0; }

/* ===================== neb/ras-infographic ===================== */
/* RAS (06/07) — horizontal step timeline, faithful to designer. */
.neb-ras {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
}
.neb-ras__head { max-width: 640px; }
.neb-ras__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-ras__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 28px, 3.6vw, 42px );
	font-weight: 600;
	margin: 16px 0 0;
	letter-spacing: -0.015em;
}
.neb-ras__lead { font-size: 17px; line-height: 1.64; color: #5e6f76; margin: 16px 0 0; }

.neb-ras__timeline { margin-top: 54px; }
.neb-ras__flowline {
	height: 3px;
	margin-bottom: -2px;
	position: relative;
	z-index: 1;
	background: linear-gradient( 90deg, transparent 0%, #ef5249 18%, transparent 38%, transparent 62%, #ef5249 82%, transparent 100% );
	background-size: 200% 100%;
	animation: neb-flow 4.5s linear infinite;
}
.neb-ras__steps {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 180px, 1fr ) );
	gap: 0;
}
.neb-ras__step {
	position: relative;
	border-top: 1.5px solid #0e1f27;
	padding: 26px 22px 0;
}
.neb-ras__step--first { padding-left: 0; }
.neb-ras__step--last { padding: 26px 0 0 22px; }
.neb-ras__node {
	position: absolute;
	top: -7px;
	left: 0;
	width: 13px;
	height: 13px;
	background: #ef5249;
	border-radius: 999px;
}
.neb-ras__step--last .neb-ras__node { left: 22px; }
.neb-ras__step-no { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; color: #9aa7ac; }
.neb-ras__step-title { font-size: 16px; font-weight: 700; margin: 10px 0 6px; line-height: 1.25; }
.neb-ras__step-text { font-size: 13px; line-height: 1.5; color: #5e6f76; margin: 0; }

@media ( prefers-reduced-motion: reduce ) {
	.neb-ras__flowline { animation: none !important; background: #ef5249; opacity: 0.5; }
}

@media ( max-width: 767px ) {
	.neb-ras__step,
	.neb-ras__step--last { padding: 22px 0 0 0; }
	.neb-ras__step--last .neb-ras__node { left: 0; }
}

/* ===================== neb/ras-cycle ===================== */
.neb-cyc-block { max-width: 1280px; margin: 0 auto; padding: 60px 20px; }
.neb-cyc-block__head { margin-bottom: 36px; }
.neb-cyc-block__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ef5249;
	margin: 0 0 12px;
}
.neb-cyc-block__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 26px, 3.4vw, 38px );
	margin: 0;
	max-width: 28ch;
}

.neb-cyc-block__loop {
	display: flex;
	flex-direction: column;
	gap: 0;
	align-items: stretch;
}
.neb-cyc-block__stage { display: flex; align-items: flex-start; gap: 16px; padding: 4px 0; }
.neb-cyc-block__node {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #ef5249;
	color: #fff;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: 14px;
}
.neb-cyc-block__copy strong {
	display: block;
	font-family: var( --wp--preset--font-family--heading );
	font-size: 16px;
	margin-bottom: 4px;
}
.neb-cyc-block__copy p { margin: 0; font-size: 13px; color: #5e6f76; }

/* Marching-ants dashed connector (ТЗ §5.1 — @keyframes neb-dash). */
.neb-cyc-block__dash {
	margin: 4px 0 4px 19px;
	width: 2px;
	height: 26px;
	background: repeating-linear-gradient( 180deg, #ff7a73 0 6px, transparent 6px 12px );
	background-size: 1px 24px;
	animation: neb-dash-v 1s linear infinite;
}
.neb-cyc-block__return {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 8px 0 0 8px;
	font-family: var( --wp--preset--font-family--mono );
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #14647a;
}
.neb-cyc-block__return::before {
	content: "";
	width: 22px;
	height: 22px;
	border: 2px dashed #14647a;
	border-radius: 50%;
	flex: none;
}

@keyframes neb-dash-v {
	from { background-position: 0 0; }
	to { background-position: 0 24px; }
}
@keyframes neb-dash {
	from { background-position: 0 0; }
	to { background-position: 24px 0; }
}

@media ( min-width: 880px ) {
	.neb-cyc-block__loop {
		display: grid;
		grid-template-columns: repeat( 5, 1fr );
		align-items: start;
		position: relative;
	}
	.neb-cyc-block__stage { flex-direction: column; align-items: center; text-align: center; gap: 12px; }
	.neb-cyc-block__dash {
		margin: 19px 0 0;
		width: auto;
		height: 2px;
		align-self: start;
		background: repeating-linear-gradient( 90deg, #ff7a73 0 6px, transparent 6px 12px );
		background-size: 24px 1px;
		animation: neb-dash 1s linear infinite;
	}
	/* Hide the trailing dash after the last stage; show the closed-loop label full-width. */
	.neb-cyc-block__stage:last-of-type ~ .neb-cyc-block__dash { display: none; }
	.neb-cyc-block__return {
		grid-column: 1 / -1;
		justify-content: center;
		margin-top: 16px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.neb-cyc-block__dash { animation: none !important; }
}

/* ===================== neb/impact-bars ===================== */
.neb-impact { max-width: 1280px; margin: 0 auto; padding: 50px 20px; }
.neb-impact__head { margin-bottom: 28px; }
.neb-impact__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; text-transform: uppercase; color: #ef5249; margin: 0 0 12px; }
.neb-impact__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 24px, 3.2vw, 34px ); margin: 0; }
.neb-impact__list { display: grid; gap: 18px; max-width: 640px; }
.neb-impact__row-label { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 6px; }
.neb-impact__track { height: 10px; background: #eef6f7; border-radius: 999px; overflow: hidden; }
.neb-impact__fill {
	height: 100%;
	width: 100%;
	transform: scaleX( 0 );
	transform-origin: left;
	background: linear-gradient( 90deg, #ef5249, #14647a );
	border-radius: 999px;
	transition: transform 1.1s cubic-bezier( 0.2, 0.7, 0.2, 1 );
}

@media ( prefers-reduced-motion: reduce ) {
	.neb-impact__fill { transition: none !important; }
}
@media ( min-width: 768px ) { .neb-impact { padding: 64px 40px; } }
@media ( min-width: 1024px ) { .neb-impact { padding: 88px 56px; } }

.neb-impact__note { font-size: 13px; color: #5e6f76; margin: 6px 0 0; }

/* ===================== neb/timeline ===================== */
.neb-timeline { max-width: 1280px; margin: 0 auto; padding: 60px 20px; }
.neb-timeline__head { margin-bottom: 28px; }
.neb-timeline__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; text-transform: uppercase; color: #ef5249; margin: 0 0 12px; }
.neb-timeline__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 26px, 3.4vw, 38px ); margin: 0; }
.neb-timeline__list { display: grid; gap: 16px; }
.neb-timeline__step { padding: 24px; border: 1px solid #e3eaea; border-radius: 16px; background: #fff; }
.neb-timeline__number { font-family: var( --wp--preset--font-family--mono ); color: #ef5249; font-weight: 700; font-size: 14px; }
.neb-timeline__step-title { font-family: var( --wp--preset--font-family--heading ); font-size: 19px; margin: 10px 0 6px; }
.neb-timeline__step-text { color: #5e6f76; font-size: 14px; margin: 0; }

@media ( min-width: 768px ) {
	.neb-timeline { padding: 72px 40px; }
	.neb-timeline__list { grid-template-columns: repeat( 2, 1fr ); }
}
@media ( min-width: 1024px ) {
	.neb-timeline { padding: 108px 56px; }
	.neb-timeline__list { grid-template-columns: repeat( 4, 1fr ); }
}

/* ===================== neb/news-slider ===================== */
/* NEWS / INSIGHTS slider — faithful to designer. */
.neb-slider { background: #fff; border-top: 1px solid #e3eaea; }
.neb-slider__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
}
.neb-slider__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	flex-wrap: wrap;
}
.neb-slider__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; letter-spacing: 0.1em; color: #ef5249; }
.neb-slider__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 30px, 3.8vw, 46px ); font-weight: 600; margin: 14px 0 0; letter-spacing: -0.015em; max-width: 16ch; }
.neb-slider__nav { display: flex; align-items: center; gap: 10px; }
.neb-slider__round {
	width: 46px;
	height: 46px;
	border-radius: 999px;
	border: 1px solid #cdd8d8;
	background: #fff;
	color: #0e1f27;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.2s, background 0.2s;
}
.neb-slider__round:hover { border-color: #0e1f27; }
.neb-slider__all {
	margin-left: 6px;
	background: transparent;
	color: #0e1f27;
	border: 1px solid #cdd8d8;
	padding: 13px 24px;
	border-radius: 10px;
	font: 700 14px var( --wp--preset--font-family--body );
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.2s;
}
.neb-slider__all:hover { border-color: #0e1f27; }

.neb-slider__viewport {
	overflow-x: auto;
	margin-top: 50px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	cursor: grab;
}
.neb-slider__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.neb-slider__viewport::-webkit-scrollbar { display: none; }
.neb-slider__track { display: flex; gap: 24px; }

.neb-slide {
	scroll-snap-align: start;
	flex: 0 0 clamp( 260px, 78vw, 330px );
	border: 1px solid #e3eaea;
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s, box-shadow 0.3s;
}
.neb-slide:hover { transform: translateY( -6px ); box-shadow: 0 24px 50px rgba( 12, 30, 38, 0.10 ); }
.neb-slide__media { position: relative; height: 190px; background: linear-gradient( 145deg, #06222b, #14647a ); overflow: hidden; }
.neb-slide--alt .neb-slide__media { background: linear-gradient( 145deg, #14647a, #36b3c6 ); }
.neb-slide__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.neb-slide__bracket { position: absolute; top: 14px; left: 14px; width: 14px; height: 14px; border-top: 1.5px solid #ef5249; border-left: 1.5px solid #ef5249; }
.neb-slide__body { padding: 24px; }
.neb-slide__meta { font-family: var( --wp--preset--font-family--mono ); font-size: 11px; color: #ef5249; }
.neb-slide__title { font-family: var( --wp--preset--font-family--heading ); font-size: 19px; font-weight: 600; margin: 10px 0 0; line-height: 1.28; }
.neb-slider__empty { color: #5e6f76; margin-top: 30px; }

/* ===================== neb/gallery ===================== */
.neb-gallery { max-width: 1280px; margin: 0 auto; padding: clamp( 48px, 8vw, 88px ) clamp( 20px, 5vw, 56px ); }
.neb-gallery__head { margin-bottom: 28px; }
.neb-gallery__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: #ef5249; margin: 0 0 10px; }
.neb-gallery__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 26px, 3.4vw, 38px ); font-weight: 600; margin: 0; letter-spacing: -0.015em; }

/* Grid mode */
.neb-gallery__grid { display: grid; grid-template-columns: repeat( var( --neb-gallery-cols, 3 ), 1fr ); gap: 16px; }
.neb-gallery__item { margin: 0; }
.neb-gallery__item img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; display: block; }
.neb-gallery__item figcaption,
.neb-gallery__slide figcaption { font-size: 13px; color: #5e6f76; margin-top: 8px; }

/* Slider mode */
.neb-gallery__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; }
.neb-gallery__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.neb-gallery__viewport::-webkit-scrollbar { display: none; }
.neb-gallery__track { display: flex; gap: 16px; }
.neb-gallery__slide { scroll-snap-align: start; flex: 0 0 clamp( 260px, 70vw, 520px ); margin: 0; }
.neb-gallery__slide img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 16px; display: block; }
.neb-gallery__controls { display: flex; gap: 10px; margin-top: 18px; }
.neb-gallery__arrow {
	width: 46px; height: 46px; border-radius: 999px; border: 1px solid #cdd8d8; background: #fff; color: #0e1f27;
	cursor: pointer; font-size: 16px; transition: border-color 0.2s;
}
.neb-gallery__arrow:hover { border-color: #0e1f27; }

@media ( max-width: 767px ) {
	.neb-gallery__grid { grid-template-columns: repeat( 2, 1fr ); }
}
@media ( max-width: 480px ) {
	.neb-gallery__grid { grid-template-columns: 1fr; }
}

/* ===================== neb/product-cards ===================== */
/* PRODUCTS (03/07) — faithful to designer. */
.neb-products {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
}
.neb-products__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-products__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 30px, 3.8vw, 46px );
	font-weight: 600;
	margin: 16px 0 0;
	max-width: 620px;
	letter-spacing: -0.015em;
	line-height: 1.12;
}
.neb-products__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 340px, 100% ), 1fr ) );
	gap: 28px;
	margin-top: 50px;
}
.neb-products__empty { color: #5e6f76; margin-top: 40px; }

.neb-product-card {
	border: 1px solid #e3eaea;
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s, box-shadow 0.3s;
}
.neb-product-card:hover {
	transform: translateY( -6px );
	box-shadow: 0 26px 54px rgba( 12, 30, 38, 0.12 );
}
.neb-product-card__media {
	position: relative;
	height: 320px;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 20px;
	background: linear-gradient( 145deg, #06222b, #14647a );
}
.neb-product-card:nth-child( 2n ) .neb-product-card__media {
	background: linear-gradient( 145deg, #14647a, #36b3c6 );
}
.neb-product-card__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient( 45deg, rgba( 255, 255, 255, 0.06 ) 0 18px, transparent 18px 36px );
}
.neb-product-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.neb-product-card__bracket {
	position: absolute;
	top: 14px;
	left: 14px;
	width: 15px;
	height: 15px;
	border-top: 1.5px solid #ef5249;
	border-left: 1.5px solid #ef5249;
}
.neb-product-card__caption {
	position: relative;
	font-family: var( --wp--preset--font-family--mono );
	font-size: 10px;
	color: rgba( 255, 255, 255, 0.85 );
}
.neb-product-card__body { padding: 34px; display: flex; flex-direction: column; flex: 1; }
.neb-product-card__headrow {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.neb-product-card__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 26px;
	font-weight: 600;
	margin: 0;
}
.neb-product-card__code {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 11px;
	color: #9aa7ac;
	text-transform: uppercase;
	white-space: nowrap;
}
.neb-product-card__desc {
	font-size: 15px;
	line-height: 1.62;
	color: #5e6f76;
	margin: 12px 0 0;
}
.neb-product-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 26px;
}
.neb-product-card__chip {
	border: 1px solid #e0e8e8;
	color: #5e6f76;
	padding: 6px 13px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
}
.neb-product-card__actions { display: flex; gap: 12px; margin-top: auto; flex-wrap: wrap; }

/* ===================== neb/product-detail ===================== */
.neb-product-detail {
	display: grid;
	gap: 28px;
	padding: 24px 20px;
	max-width: 1100px;
	margin: 0 auto;
}

.neb-product-detail__media {
	border-radius: 16px;
	overflow: hidden;
	background: #eef6f7;
	min-height: 220px;
	display: grid;
	place-items: center;
}
.neb-product-detail__media img,
.neb-product-detail__video { width: 100%; height: 100%; object-fit: cover; }
.neb-product-detail__placeholder { font-family: var( --wp--preset--font-family--mono ); color: #5e6f76; letter-spacing: .1em; }

.neb-product-detail__markers { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0 0 18px; }
.neb-product-detail__markers li {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
	background: #eef6f7;
	color: #14647a;
}

.neb-product-detail__facts { display: grid; gap: 14px; margin: 0 0 20px; }
.neb-product-detail__fact { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #e3eaea; padding-bottom: 8px; }
.neb-product-detail__fact dt { color: #5e6f76; font-size: 14px; margin: 0; }
.neb-product-detail__fact dd { margin: 0; font-weight: 600; font-size: 14px; text-align: right; }

.neb-product-detail__spec {
	display: inline-block;
	font-weight: 700;
	color: #ef5249;
	text-decoration: none;
}

@media ( min-width: 880px ) {
	.neb-product-detail { grid-template-columns: 1.1fr 1fr; align-items: start; padding: 40px 56px; }
	.neb-product-detail__media { min-height: 420px; }
}

/* ===================== neb/faq-accordion ===================== */
.neb-faq { padding: 60px 20px; }
.neb-faq__inner { max-width: 1100px; margin: 0 auto; }
.neb-faq__head { margin-bottom: 24px; }
.neb-faq__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; text-transform: uppercase; color: #ef5249; margin: 0 0 12px; }
.neb-faq__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 24px, 3vw, 34px ); margin: 0; }
.neb-faq__list { display: grid; gap: 10px; }
.neb-faq__item { border-bottom: 1px solid #e3eaea; padding: 0 0 14px; }
.neb-faq__item summary { cursor: pointer; font-weight: 700; padding: 14px 28px 14px 0; position: relative; list-style: none; }
.neb-faq__item summary::-webkit-details-marker { display: none; }
.neb-faq__item summary::after { content: '+'; position: absolute; right: 0; top: 12px; color: #ef5249; font-size: 22px; }
.neb-faq__item[open] summary::after { content: '\2212'; }
.neb-faq__item div { color: #5e6f76; font-size: 15px; line-height: 1.6; padding-top: 4px; }
.neb-faq__empty { color: #5e6f76; font-size: 14px; }

@media ( min-width: 768px ) { .neb-faq { padding: 72px 40px; } }
@media ( min-width: 1024px ) { .neb-faq { padding: 108px 56px; } }

/* ===================== neb/for-restaurants ===================== */
/* FOR RESTAURANTS (07/07) — split, faithful to designer. */
.neb-rest { background: #eef6f7; border-top: 1px solid #e3eaea; }
.neb-rest__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp( 64px, 10vw, 120px ) clamp( 20px, 5vw, 56px );
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 340px, 100% ), 1fr ) );
	gap: 56px;
	align-items: center;
}
.neb-rest__eyebrow {
	font-family: var( --wp--preset--font-family--mono );
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #ef5249;
}
.neb-rest__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 30px, 3.8vw, 46px );
	font-weight: 600;
	margin: 16px 0 0;
	letter-spacing: -0.015em;
}
.neb-rest__sub {
	font-size: 17px;
	line-height: 1.64;
	color: #5e6f76;
	margin: 18px 0 0;
	max-width: 470px;
}
.neb-rest__points { display: flex; flex-direction: column; gap: 14px; margin: 30px 0 34px; }
.neb-rest__point { display: flex; align-items: center; gap: 12px; font-size: 15px; color: #22343c; }
.neb-rest__ring {
	width: 20px;
	height: 20px;
	border-radius: 999px;
	border: 1.5px solid #ef5249;
	flex: none;
}
.neb-rest__cta {
	background: #ef5249;
	color: #fff;
	border: none;
	padding: 15px 28px;
	border-radius: 10px;
	font: 700 15px var( --wp--preset--font-family--body );
	cursor: pointer;
	transition: transform 0.2s, box-shadow 0.2s;
	box-shadow: 0 8px 22px rgba( 239, 82, 73, 0.26 );
}
.neb-rest__cta:hover { transform: translateY( -2px ); box-shadow: 0 12px 28px rgba( 239, 82, 73, 0.38 ); }

.neb-rest__media {
	position: relative;
	border-radius: 18px;
	background: linear-gradient( 150deg, #14647a, #06222b );
	overflow: hidden;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	padding: 22px;
}
.neb-rest__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient( 45deg, rgba( 255, 255, 255, 0.06 ) 0 18px, transparent 18px 36px );
}
.neb-rest__bracket { position: absolute; width: 16px; height: 16px; }
.neb-rest__bracket--tl { top: 14px; left: 14px; border-top: 1.5px solid #ef5249; border-left: 1.5px solid #ef5249; }
.neb-rest__bracket--br { bottom: 14px; right: 14px; border-bottom: 1.5px solid #ef5249; border-right: 1.5px solid #ef5249; }
.neb-rest__caption {
	position: relative;
	font-family: var( --wp--preset--font-family--mono );
	font-size: 11px;
	color: rgba( 255, 255, 255, 0.85 );
}

/* ===================== neb/map ===================== */
.neb-map { max-width: 1280px; margin: 0 auto; padding: 50px 20px; }
.neb-map__head { margin-bottom: 22px; }
.neb-map__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; text-transform: uppercase; color: #ef5249; margin: 0 0 12px; }
.neb-map__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 24px, 3.2vw, 34px ); margin: 0; }

.neb-map__frame {
	position: relative;
	width: 100%;
	height: 280px;
	border-radius: 16px;
	overflow: hidden;
	background: #eef6f7;
}

.neb-map__frame iframe,
.neb-map__frame img {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	object-fit: cover;
}

.neb-map__pin {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	margin: -24px 0 0 -9px;
	background: #ef5249;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 0 0 4px rgba(239, 82, 73, 0.2);
}

.neb-map__placeholder {
	height: 100%;
	display: grid;
	place-items: center;
	color: #5e6f76;
	font-size: 14px;
	text-align: center;
	padding: 0 24px;
}

.neb-map__address {
	margin: 16px 0 0;
	font-size: 14px;
	color: #5e6f76;
}

@media ( min-width: 768px ) {
	.neb-map { padding: 64px 40px; }
	.neb-map__frame { height: 360px; }
}
@media ( min-width: 1024px ) {
	.neb-map { padding: 88px 56px; }
	.neb-map__frame { height: 420px; }
}

/* Address + directions row. */
.neb-map__meta { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 16px; }
.neb-map__directions { flex: none; }

/* ===================== neb/lead-form ===================== */
/* Inline lead form — card + field states per Styleguide. */
.neb-leadform {
	background: #fff;
	border: 1px solid #e3eaea;
	border-radius: 18px;
	padding: clamp( 24px, 4vw, 36px );
}
.neb-leadform__title {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 22px;
}
.neb-leadform__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.neb-field { display: block; }
.neb-field--full { grid-column: 1 / -1; margin-top: 16px; }
.neb-field__label { font-size: 12px; font-weight: 600; color: #5e6f76; }
.neb-field__input {
	width: 100%;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid #d7e0e0;
	border-radius: 9px;
	font: 400 14px var( --wp--preset--font-family--body );
	background: #fff;
	color: #0e1f27;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.neb-field__input::placeholder { color: #9aa7ac; }
/* focus = teal ring (Styleguide). */
.neb-field__input:focus { border-color: #14647a; box-shadow: 0 0 0 3px rgba( 20, 100, 122, 0.16 ); }
/* error = coral. */
.neb-field__input:user-invalid { border-color: #ef5249; box-shadow: 0 0 0 3px rgba( 239, 82, 73, 0.14 ); }
textarea.neb-field__input { resize: vertical; }

.neb-form-trap { position: absolute; left: -9999px; }
.neb-leadform__submit {
	width: 100%;
	background: #ef5249;
	color: #fff;
	border: none;
	padding: 15px;
	border-radius: 10px;
	font: 700 15px var( --wp--preset--font-family--body );
	cursor: pointer;
	margin-top: 20px;
	transition: transform 0.2s, box-shadow 0.2s;
}
.neb-leadform__submit:hover { transform: translateY( -2px ); box-shadow: 0 12px 26px rgba( 239, 82, 73, 0.34 ); }
.neb-leadform__submit:disabled { opacity: 0.6; cursor: default; transform: none; box-shadow: none; }
.neb-form-status { margin: 14px 0 0; font-size: 14px; }
.neb-form-status.is-success { color: #1f8a5b; }
.neb-form-status.is-error { color: #ef5249; }

@media ( max-width: 600px ) {
	.neb-leadform__grid { grid-template-columns: 1fr; }
}

/* ===================== neb/post-grid ===================== */
/* Insights / Blog archive — faithful to designer. */
.neb-grad-a { background: linear-gradient( 145deg, #06222b, #14647a ); }
.neb-grad-b { background: linear-gradient( 145deg, #14647a, #36b3c6 ); }
.neb-grad-c { background: linear-gradient( 145deg, #0e3b34, #2f7d72 ); }

.neb-archive__inner {
	max-width: 1240px;
	margin: 0 auto;
	/* extra top padding clears the fixed header (this page has no hero). */
	padding: clamp( 104px, 13vw, 150px ) clamp( 20px, 5vw, 56px ) clamp( 56px, 9vw, 88px );
}
.neb-archive__crumbs { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; color: #9aa7ac; margin-bottom: 22px; }
.neb-archive__crumbs a { text-decoration: none; }
.neb-archive__crumbs span { color: #ef5249; }
.neb-archive__eyebrow { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; letter-spacing: 0.1em; color: #ef5249; }
.neb-archive__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 30px, 4vw, 48px ); font-weight: 600; margin: 16px 0 0; letter-spacing: -0.015em; max-width: 16ch; line-height: 1.1; }
.neb-archive__lead { font-size: 17px; line-height: 1.7; color: #5e6f76; margin: 18px 0 0; max-width: 60ch; }

.neb-archive__filters { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.neb-chip {
	background: transparent;
	color: #5e6f76;
	border: 1px solid #d7e0e0;
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.2s, color 0.2s;
}
.neb-chip:hover { border-color: #0e1f27; color: #0e1f27; }
.neb-chip.is-active { background: #04181f; color: #fff; border-color: #04181f; }

.neb-archive__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 320px, 100% ), 1fr ) );
	gap: 32px;
	margin-top: 40px;
	align-items: stretch;
}

.neb-fcard {
	border: 1px solid #e3eaea;
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s, box-shadow 0.3s;
}
.neb-fcard:hover { transform: translateY( -6px ); box-shadow: 0 24px 50px rgba( 12, 30, 38, 0.10 ); }
.neb-fcard__media { position: relative; height: 240px; }
.neb-fcard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.neb-fcard__bracket { position: absolute; top: 14px; left: 14px; width: 15px; height: 15px; border-top: 1.5px solid #ef5249; border-left: 1.5px solid #ef5249; }
.neb-fcard__body { padding: 28px; }
.neb-fcard__meta { font-family: var( --wp--preset--font-family--mono ); font-size: 11px; color: #ef5249; }
.neb-fcard__title { font-family: var( --wp--preset--font-family--heading ); font-size: 24px; font-weight: 600; margin: 12px 0 8px; line-height: 1.2; }
.neb-fcard__excerpt { font-size: 15px; line-height: 1.6; color: #5e6f76; margin: 0; }

.neb-archive__list { display: flex; flex-direction: column; gap: 18px; }
.neb-hcard {
	border: 1px solid #e3eaea;
	border-radius: 14px;
	background: #fff;
	padding: 22px;
	display: flex;
	gap: 18px;
	align-items: center;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.neb-hcard:hover { border-color: #cdd8d8; box-shadow: 0 12px 26px rgba( 12, 30, 38, 0.06 ); }
.neb-hcard__thumb { width: 96px; height: 72px; flex: none; border-radius: 10px; overflow: hidden; position: relative; }
.neb-hcard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.neb-hcard__body { display: block; }
.neb-hcard__meta { display: block; font-family: var( --wp--preset--font-family--mono ); font-size: 11px; color: #ef5249; }
.neb-hcard__title { display: block; font-family: var( --wp--preset--font-family--heading ); font-size: 18px; font-weight: 600; margin: 6px 0 0; line-height: 1.25; }
.neb-archive__empty { color: #5e6f76; margin-top: 30px; }

@media ( max-width: 520px ) {
	.neb-hcard__thumb { width: 72px; height: 60px; }
}

/* ===================== neb/related-posts ===================== */
/* Related posts ("Читайте далі") — faithful to designer. */
.neb-related { margin-top: 48px; padding-top: 32px; border-top: 1px solid #e6eded; }
.neb-related__heading { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; letter-spacing: 0.1em; color: #ef5249; margin-bottom: 18px; }
.neb-related__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( min( 240px, 100% ), 1fr ) );
	gap: 16px;
}
.neb-related__card {
	text-decoration: none;
	color: inherit;
	border: 1px solid #e3eaea;
	border-radius: 12px;
	padding: 20px;
	background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.neb-related__card:hover { border-color: #cdd8d8; box-shadow: 0 12px 26px rgba( 12, 30, 38, 0.06 ); transform: translateY( -3px ); }
.neb-related__meta { font-family: var( --wp--preset--font-family--mono ); font-size: 11px; color: #9aa7ac; }
.neb-related__title { font-family: var( --wp--preset--font-family--heading ); font-size: 17px; font-weight: 600; margin: 8px 0 0; line-height: 1.25; }

/* ===================== neb/article-header ===================== */
/* Article / News header — faithful to designer. */
.neb-article__top {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp( 104px, 13vw, 150px ) clamp( 20px, 5vw, 56px ) 0;
}
.neb-article__crumbs { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; color: #9aa7ac; }
.neb-article__crumbs a { text-decoration: none; }
.neb-article__crumb-current { color: #ef5249; }
.neb-article__meta { font-family: var( --wp--preset--font-family--mono ); font-size: 12px; color: #ef5249; margin-top: 24px; }
.neb-article__title { font-family: var( --wp--preset--font-family--heading ); font-size: clamp( 30px, 4vw, 48px ); font-weight: 600; margin: 14px 0 0; letter-spacing: -0.015em; line-height: 1.1; }
.neb-article__lead { font-size: 19px; line-height: 1.6; color: #5e6f76; margin: 22px 0 0; }
.neb-article__author { display: flex; align-items: center; gap: 12px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #e6eded; }
.neb-article__avatar { width: 42px; height: 42px; border-radius: 999px; background: linear-gradient( 145deg, #14647a, #36b3c6 ); flex: none; }
.neb-article__author-name { font-size: 14px; font-weight: 700; }
.neb-article__author-role { font-family: var( --wp--preset--font-family--mono ); font-size: 11px; color: #9aa7ac; }

.neb-article__media-wrap { max-width: 980px; margin: 0 auto; padding: clamp( 24px, 4vw, 32px ) clamp( 20px, 5vw, 56px ) 0; }
.neb-article__media {
	position: relative;
	height: clamp( 240px, 42vw, 440px );
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient( 145deg, #06222b, #14647a );
	/* §9: keep alpha (normal) blending on this media container — no multiply. */
	mix-blend-mode: normal;
}
.neb-article__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.neb-article__bracket { position: absolute; top: 16px; left: 16px; width: 16px; height: 16px; border-top: 1.5px solid #ef5249; border-left: 1.5px solid #ef5249; }

/* ===================== ISB inner-page content width ===================== */
/* Reference constrained prose/forms to a 760px group; ISB rows have no 760
   option, so constrain the content wrappers themselves — same look. */
.neb-page-body { max-width: 760px; margin-left: auto; margin-right: auto; }
.neb-leadform { max-width: 760px; margin-left: auto; margin-right: auto; }
