:root {
	--navy: #0e2a45;
	--blue: #1b7fc4;
	--blue-light: #4fbdf0;
	--blue-pale: #7fd0f5;
	--bg-light: #eef4fa;
	--bg-white: #ffffff;
	--text-gray: #5b7288;
	--text-gray2: #69829a;
	--text-body: #2c4661;
	--text-muted: #7b93aa;
	--footer-dark: #0a2237;
	--footer-dark2: #08202c;
	--serif: 'EB Garamond', Georgia, serif;
	--sans: 'Manrope', sans-serif;
}

* { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--sans);
	color: var(--text-body);
	background: var(--bg-white);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
.nb-h2 {
	font: 500 clamp(32px, 4.2vw, 52px)/1.16 var(--serif);
	letter-spacing: -0.015em;
	color: var(--navy);
	margin: 0 0 20px;
}
.nb-section-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
}
.nb-section-eyebrow__line { width: 40px; height: 2px; background: var(--blue); }
.nb-section-eyebrow span:last-child {
	font: 600 12.5px/1 var(--sans);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--blue);
}

.nb-section-texture {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; opacity: .16; mix-blend-mode: multiply; pointer-events: none;
}
.nb-section-texture--light { opacity: .12; }

.nb-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #e6eef6;
	color: #8ea4b8;
	font: 500 13px/1.4 var(--sans);
	text-align: center;
	padding: 20px;
	width: 100%;
	height: 100%;
	min-height: 160px;
}

/* ---------- Buttons ---------- */
.nb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 15px 28px;
	border-radius: 10px;
	font: 600 15px/1 var(--sans);
	cursor: pointer;
	border: 0;
	transition: transform .2s, filter .2s, background .2s, border-color .2s, color .2s;
	white-space: nowrap;
}
.nb-btn--primary,
.nb-btn--sm {
	background: linear-gradient(135deg, var(--blue-light), var(--blue));
	color: #fff;
	box-shadow: 0 8px 20px rgba(27, 127, 196, .28);
}
.nb-btn--sm { min-height: 44px; padding: 12px 20px; font-size: 14px; }
.nb-btn--primary:hover, .nb-btn--sm:hover { transform: translateY(-2px); filter: brightness(1.06); }
.nb-btn--light { background: #fff; color: var(--navy); box-shadow: 0 14px 34px rgba(5,25,45,.3); font-weight: 700; }
.nb-btn--light:hover { transform: translateY(-2px); }
.nb-btn--ghost-dark { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.36); backdrop-filter: blur(6px); }
.nb-btn--ghost-dark:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); }
.nb-btn--outline { background: transparent; border: 1px solid rgba(19,37,56,.18); color: var(--text-body); }
.nb-btn--outline:hover { border-color: var(--blue); color: var(--blue); }
.nb-btn--dark { background: var(--navy); color: #fff; }
.nb-btn--dark:hover { background: var(--blue); }

/* ==================== HEADER ==================== */
.nb-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(9, 32, 54, .92);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.nb-header__bar {
	max-width: 1300px;
	margin: 0 auto;
	padding: 12px 28px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 26px;
}
.nb-header__logo { display: flex; align-items: center; gap: 16px; flex: none; }
.nb-header__logo img, .nb-header__logo-img { height: 44px; width: auto; }
.nb-header__logo-text { font: 700 20px/1 var(--sans); color: #fff; letter-spacing: .04em; }
.nb-header__divider { width: 1px; height: 32px; background: rgba(255,255,255,.2); }
.nb-header__city { display: flex; align-items: flex-start; gap: 7px; font: 600 12.5px/1.35 var(--sans); color: var(--blue-pale); letter-spacing: .06em; }
.nb-header__pin { width: 16px; height: 16px; object-fit: contain; margin-top: 2px; flex: none; }
.nb-header__street { color: #8ba6bf; font-weight: 500; letter-spacing: .02em; }
.nb-header__nav { flex: 1 1 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; min-width: 0; }
.nb-header__nav a { font: 500 14px/1 var(--sans); color: #cfe0ee; padding: 6px 0; }
.nb-header__nav a:hover { color: var(--blue-pale); }
.nb-header__right { display: flex; align-items: center; gap: 14px; margin-left: auto; flex: none; }
.nb-header__phones { display: flex; flex-direction: column; gap: 3px; }
.nb-header__phone { font: 600 14px/1.2 var(--sans); color: #f2f8fd; white-space: nowrap; }
.nb-header__phone:hover { color: var(--blue-pale); }
.nb-header__phone-mobile { display: none; align-items: center; gap: 8px; color: #f2f8fd; }
.nb-header__cta { display: inline-flex; align-items: center; padding: 12px 20px; background: linear-gradient(135deg, var(--blue-light), var(--blue)); color: #fff; border-radius: 8px; font: 700 13.5px/1 var(--sans); white-space: nowrap; box-shadow: 0 6px 18px rgba(27,127,196,.35); }
.nb-header__cta:hover { filter: brightness(1.08); }
.nb-header__burger { width: 46px; height: 46px; flex: none; display: none; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 0; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); border-radius: 12px; cursor: pointer; }
.nb-header__burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: #f2f8fd; transition: transform .28s ease, opacity .2s ease; }
.nb-header.is-menu-open .nb-header__burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nb-header.is-menu-open .nb-header__burger span:nth-child(2) { opacity: 0; }
.nb-header.is-menu-open .nb-header__burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nb-header__mnav { overflow: hidden; max-height: 0; transition: max-height .34s cubic-bezier(.4,0,.2,1); border-top: 1px solid rgba(255,255,255,.12); background: rgba(9,32,54,.98); }
.nb-header.is-menu-open .nb-header__mnav { max-height: 620px; }
.nb-header__mnav-inner { padding: 8px 16px 18px; display: flex; flex-direction: column; }
.nb-header__mlink { font: 500 16px/1 var(--sans); color: #eaf4fb; padding: 15px 2px; border-bottom: 1px solid rgba(255,255,255,.1); }
.nb-header__mphones { display: flex; flex-direction: column; gap: 4px; padding: 16px 2px 14px; }
.nb-header__mphones-label { font: 600 11.5px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #8ba6bf; }
.nb-header__mphone { font: 600 17px/1.3 var(--sans); color: #f2f8fd; }
.nb-header__mphone span { font: 400 12.5px/1.6 var(--sans); color: #8ba6bf; }
.nb-header__mcta { display: flex; align-items: center; justify-content: center; min-height: 52px; background: linear-gradient(135deg, var(--blue-light), var(--blue)); color: #fff; border-radius: 11px; font: 600 15.5px/1 var(--sans); }

@media (max-width: 980px) {
	.nb-header__nav, .nb-header__phones, .nb-header__cta { display: none; }
	.nb-header__phone-mobile { display: flex; }
	.nb-header__burger { display: flex; }
}

/* ==================== HERO ==================== */
.nb-hero {
	position: relative;
	background: var(--blue);
	padding: 56px 28px 92px;
	overflow: hidden;
}
.nb-hero__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(9,38,66,.86) 0%, rgba(11,48,82,.62) 46%, rgba(13,60,102,.3) 100%); pointer-events: none; }
.nb-hero__watermark {
	position: absolute; right: -30px; bottom: -46px;
	font: 600 clamp(96px,13vw,190px)/1 var(--serif);
	letter-spacing: .03em; color: transparent;
	-webkit-text-stroke: 1px rgba(255,255,255,.16);
	pointer-events: none; user-select: none;
}
.nb-hero__emblem {
	position: absolute; left: 50%; top: 50%;
	transform: translate(-50%,-50%);
	width: min(1000px,122%); max-width: none;
	opacity: .08; pointer-events: none; user-select: none;
}
.nb-hero__inner { position: relative; max-width: 1300px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(340px,1fr)); gap: 60px; align-items: center; }
.nb-hero__col { max-width: 660px; }
.nb-hero__eyebrow-row { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.nb-hero__eyebrow-line { width: 32px; height: 1px; background: var(--blue-pale); }
.nb-hero__eyebrow { font: 600 12px/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: #9fdcfa; }
.nb-hero__title { font: 500 clamp(40px,5.4vw,76px)/1.04 var(--serif); color: #fff; letter-spacing: -.01em; margin: 0 0 24px; text-shadow: 0 2px 30px rgba(5,25,45,.4); }
.nb-hero__title em { font-style: italic; color: #9fdcfa; }
.nb-hero__text { font: 400 18.5px/1.7 var(--sans); color: #dcebf6; max-width: 54ch; margin: 0 0 22px; }
.nb-hero__badge { display: inline-flex; align-items: center; gap: 10px; padding: 11px 18px; border: 1px solid rgba(255,255,255,.24); border-radius: 30px; margin-bottom: 34px; background: rgba(255,255,255,.1); backdrop-filter: blur(6px); }
.nb-hero__badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--blue-pale); }
.nb-hero__badge span:last-child { font: 500 13.5px/1.4 var(--sans); color: #eaf4fb; }
.nb-hero__cta-row { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 40px; }
.nb-hero__facts { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; }
.nb-hero__fact { font: 500 13.5px/1 var(--sans); color: #c3dcee; }
.nb-hero__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--blue-pale); }
.nb-hero__photo-col { position: relative; }
.nb-hero__photo { width: 100%; max-width: 620px; margin: 0 auto; filter: drop-shadow(0 40px 46px rgba(3,18,34,.55)); }
.nb-hero__quote { margin: -16px auto 0; width: max-content; max-width: 90%; padding: 16px 30px; background: #fff; border-radius: 9px; box-shadow: 0 14px 32px rgba(5,25,45,.34); }
.nb-hero__quote img { height: 42px; width: auto; }

/* ==================== ABOUT ==================== */
.nb-about { position: relative; background: #fff; padding: 96px 28px 104px; overflow: hidden; }
.nb-about__inner { position: relative; max-width: 1300px; margin: 0 auto; }
.nb-about__title { max-width: 22ch; margin-bottom: 52px; }
.nb-about__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: stretch; }
.nb-about__figure { position: relative; margin: 0; border-radius: 20px; overflow: hidden; min-height: 480px; box-shadow: 0 26px 60px rgba(14,42,69,.18); }
.nb-about__img { width: 100%; height: 100%; object-fit: cover; }
.nb-about__body { display: flex; flex-direction: column; gap: 26px; justify-content: center; }
.nb-about__intro { font: 400 16.5px/1.8 var(--sans); color: #3f5a74; margin: 0; }
.nb-about__features { display: flex; flex-direction: column; }
.nb-about__feature { display: flex; gap: 20px; padding: 22px 0; border-top: 1px solid rgba(19,37,56,.12); }
.nb-about__feature:last-child { border-bottom: 1px solid rgba(19,37,56,.12); }
.nb-about__feature-num { font: 400 22px/1 var(--serif); color: #2f7fc0; flex: none; width: 34px; }
.nb-about__feature-body { display: block; }
.nb-about__feature-body b { display: block; font: 500 21px/1.3 var(--serif); color: var(--navy); margin-bottom: 7px; }
.nb-about__feature-body span { display: block; font: 400 15px/1.75 var(--sans); color: var(--text-gray); }
.nb-about__cta-row { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 4px; }

@media (max-width: 900px) {
	.nb-about__grid { grid-template-columns: 1fr; }
	.nb-about__figure { min-height: 320px; }
}

/* ==================== CATALOG ==================== */
.nb-catalog { background: var(--bg-light); padding: 104px 28px; }
.nb-catalog__inner { max-width: 1300px; margin: 0 auto; }
.nb-catalog__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 52px; }
.nb-catalog__intro { font: 400 14px/1.6 var(--sans); color: var(--text-gray2); max-width: 40ch; margin: 0; }
.nb-catalog__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.nb-cat-card { background: #fff; border: 1px solid rgba(19,37,56,.1); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 6px 20px rgba(14,42,69,.07); transition: transform .25s, box-shadow .25s; }
.nb-cat-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(14,42,69,.14); }
.nb-cat-card__media { position: relative; aspect-ratio: 4/3; background: #e6eef6; overflow: hidden; }
.nb-cat-card__img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.nb-cat-card__img--scheme { object-fit: contain; background: #fff; }
.nb-cat-card__dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 8px; }
.nb-cat-card__dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; }
.nb-cat-card__dot.is-active { background: var(--blue-light); }
.nb-cat-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.nb-cat-card__name { font: 500 20px/1.3 var(--serif); color: var(--navy); }
.nb-cat-card__size { font: 400 13.5px/1.5 var(--sans); color: var(--text-muted); }
.nb-cat-card__desc { font: 400 14px/1.7 var(--sans); color: var(--text-gray); margin: 0; }
.nb-cat-card__foot { margin-top: auto; padding-top: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.nb-cat-card__price { font: 600 17px/1 var(--sans); color: var(--blue); white-space: nowrap; }

@media (max-width: 980px) { .nb-catalog__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px) { .nb-catalog__grid { grid-template-columns: 1fr; } }

/* ==================== PORTRAIT ==================== */
.nb-portrait { background: var(--bg-light); padding: 100px 28px; }
.nb-portrait__inner { max-width: 1300px; margin: 0 auto; }
.nb-portrait__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 48px; }
.nb-portrait__intro { font: 400 14px/1.6 var(--sans); color: var(--text-gray2); max-width: 40ch; margin: 0; }
.nb-portrait__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.nb-portrait-card { background: #fff; border: 1px solid rgba(19,37,56,.1); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 6px 20px rgba(14,42,69,.07); }
.nb-portrait-card__media { aspect-ratio: 4/3; background: #e6eef6; overflow: hidden; }
.nb-portrait-card__img { width: 100%; height: 100%; object-fit: cover; }
.nb-portrait-card__body { padding: 26px 26px 28px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.nb-portrait-card__title { font: 500 24px/1.25 var(--serif); color: var(--navy); }
.nb-portrait-card__body p { font: 400 15px/1.75 var(--sans); color: var(--text-gray); margin: 0; }

@media (max-width: 980px) { .nb-portrait__grid { grid-template-columns: 1fr; } }

/* ==================== STEPS ==================== */
.nb-steps { background: linear-gradient(180deg, #fff 0%, #fff 70%, #e8f1f9 100%); padding: 104px 28px; }
.nb-steps__inner { max-width: 1300px; margin: 0 auto; }
.nb-steps__title { max-width: 18ch; margin-bottom: 56px; }
.nb-steps__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); gap: 20px; }
.nb-step { background: #fff; border: 1px solid rgba(19,37,56,.1); border-radius: 16px; padding: 30px 26px; transition: transform .25s, box-shadow .25s; }
.nb-step:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(14,42,69,.12); }
.nb-step__num { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--blue-light), var(--blue)); color: #fff; font: 600 20px/1 var(--serif); margin-bottom: 20px; }
.nb-step__title { font: 500 21px/1.3 var(--serif); color: var(--navy); margin: 0 0 10px; }
.nb-step__text { font: 400 14.5px/1.7 var(--sans); color: var(--text-gray); margin: 0; }

/* ==================== GEO ==================== */
.nb-geo { background: var(--bg-light); padding: 100px 28px; }
.nb-geo__inner { max-width: 1300px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap: 56px; align-items: center; }
.nb-geo__text p { font: 400 17px/1.75 var(--sans); color: var(--text-gray); margin: 0 0 28px; max-width: 50ch; }
.nb-geo__chips { display: flex; flex-wrap: wrap; gap: 10px; align-content: center; }
.nb-geo__chip { padding: 11px 18px; background: #f4f8fc; border: 1px solid rgba(19,37,56,.12); border-radius: 30px; font: 500 14px/1 var(--sans); color: var(--text-body); }
.nb-geo__chip--main { background: linear-gradient(135deg, var(--blue-light), var(--blue)); border: 0; font-weight: 700; color: #fff; box-shadow: 0 8px 20px rgba(27,127,196,.3); }
.nb-geo__chip--area { background: var(--navy); border: 0; font-weight: 600; color: #fff; }

/* ==================== REVIEWS ==================== */
.nb-reviews { background: #fff; padding: 100px 28px; }
.nb-reviews__inner { max-width: 1300px; margin: 0 auto; }
.nb-reviews__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 44px; }
.nb-reviews__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 22px; }
.nb-review { background: #f4f8fc; border: 1px solid rgba(19,37,56,.1); border-radius: 16px; padding: 30px 28px; display: flex; flex-direction: column; gap: 18px; }
.nb-review__stars { font: 400 20px/1 var(--sans); color: #f0b429; letter-spacing: .14em; }
.nb-review__text { font: 400 15.5px/1.75 var(--sans); color: #3f5a74; margin: 0; }
.nb-review__foot { margin-top: auto; display: flex; align-items: center; gap: 12px; padding-top: 6px; border-top: 1px solid rgba(19,37,56,.1); }
.nb-review__letter { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--blue-light), var(--blue)); display: flex; align-items: center; justify-content: center; font: 600 15px/1 var(--sans); color: #fff; flex: none; }
.nb-review__who { display: block; }
.nb-review__who b { display: block; font: 500 18px/1.3 var(--serif); color: var(--navy); }
.nb-review__who span { font: 400 13px/1.4 var(--sans); color: var(--text-muted); }

/* ==================== CONTACTS ==================== */
.nb-contacts { background: linear-gradient(180deg, var(--bg-light) 0%, #e3edf7 100%); padding: 104px 28px; }
.nb-contacts__inner { max-width: 1300px; margin: 0 auto; }
.nb-contacts__title { max-width: 20ch; margin-bottom: 50px; }
.nb-contacts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 40px; align-items: start; }
.nb-contacts__info { display: flex; flex-direction: column; gap: 28px; }
.nb-contacts__label { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--text-gray2); margin-bottom: 10px; }
.nb-contacts__addr { font: 400 22px/1.45 var(--serif); color: var(--navy); }
.nb-contacts__addr span { font-size: 17px; color: var(--text-gray2); }
.nb-contacts__phones { display: flex; flex-direction: column; gap: 14px; }
.nb-contacts__phone-item { display: block; }
.nb-contacts__phone-item a { display: block; font: 400 25px/1.3 var(--serif); color: var(--navy); }
.nb-contacts__phone-item a:hover { color: var(--blue); }
.nb-contacts__phone-item span { font: 400 13px/1.4 var(--sans); color: var(--text-muted); }
.nb-contacts__hours { font: 400 16px/1.75 var(--sans); color: var(--text-body); }
.nb-contacts__socials { display: flex; flex-wrap: wrap; gap: 10px; }
.nb-contacts__social { display: inline-flex; align-items: center; min-height: 44px; padding: 12px 20px; background: #fff; border: 1px solid rgba(19,37,56,.16); border-radius: 10px; font: 600 14px/1 var(--sans); color: var(--text-body); }
.nb-contacts__social:hover { border-color: var(--blue); color: var(--blue); background: #f4f8fc; }
.nb-contacts__map { aspect-ratio: 4/3; border-radius: 16px; overflow: hidden; border: 1px solid rgba(19,37,56,.12); background: #e6eef6; }
.nb-contacts__map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ==================== FOOTER ==================== */
.nb-footer { position: relative; background: var(--footer-dark); padding: 66px 28px 40px; overflow: hidden; }
.nb-footer__inner { position: relative; max-width: 1300px; margin: 0 auto; }
.nb-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 40px; padding-bottom: 42px; border-bottom: 1px solid rgba(255,255,255,.14); }
.nb-footer__logo-text { font: 700 22px/1 var(--sans); color: #fff; letter-spacing: .04em; }
.nb-footer__col img, .nb-footer__logo-img { height: 56px; width: auto; margin-bottom: 16px; }
.nb-footer__tagline { font: 400 14px/1.7 var(--sans); color: #9bb5cb; max-width: 32ch; }
.nb-footer__title { font: 600 12px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #6d8ba6; margin-bottom: 16px; }
.nb-footer__col { display: flex; flex-direction: column; gap: 10px; }
.nb-footer__link { font: 400 14.5px/1 var(--sans); color: #cfe0ee; }
.nb-footer__link:hover { color: var(--blue-pale); }
.nb-footer__addr, .nb-footer__hours { font: 400 14.5px/1.5 var(--sans); color: #cfe0ee; }
.nb-footer__hours { color: #9bb5cb; }
.nb-footer__bottom { padding-top: 26px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.nb-footer__copy { font: 400 13px/1 var(--sans); color: #7994ad; }
.nb-footer__meta { display: flex; align-items: center; gap: 18px; }
.nb-footer__meta-text { font: 400 13px/1 var(--sans); color: #7994ad; }
.nb-footer__by { display: inline-flex; align-items: center; gap: 6px; font: 400 12px/1 var(--sans); color: #7994ad; opacity: .7; }
.nb-footer__by:hover { opacity: 1; }
.nb-footer__by img { height: 14px; width: auto; margin: 0; }

/* ==================== LEAD MODAL ==================== */
.nb-lead { position: fixed; inset: 0; z-index: 220; display: flex; align-items: center; justify-content: center; padding: 20px; }
.nb-lead[hidden] { display: none; }
.nb-lead__backdrop { position: absolute; inset: 0; background: rgba(6,20,36,.72); backdrop-filter: blur(3px); }
.nb-lead__box { position: relative; width: min(520px,100%); max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 18px; padding: 38px 36px 34px; box-shadow: 0 40px 90px rgba(6,20,36,.45); }
.nb-lead__close { position: absolute; right: 14px; top: 14px; width: 42px; height: 42px; border: 1px solid rgba(19,37,56,.14); border-radius: 50%; background: #f4f8fc; color: var(--text-body); font: 400 18px/1 var(--sans); cursor: pointer; }
.nb-lead__close:hover { background: #e6eef6; }
.nb-lead__thanks { display: flex; flex-direction: column; gap: 14px; text-align: center; padding: 26px 0 10px; }
.nb-lead__thanks[hidden] { display: none; }
.nb-lead__thanks-title { font: 500 30px/1.2 var(--serif); color: var(--navy); }
.nb-lead__thanks-text { font: 400 15.5px/1.7 var(--sans); color: var(--text-gray); margin: 0; }
.nb-lead__thanks-btn { align-self: center; margin-top: 10px; min-height: 48px; padding: 15px 30px; background: linear-gradient(135deg, var(--blue-light), var(--blue)); color: #fff; border: 0; border-radius: 10px; font: 600 14.5px/1 var(--sans); cursor: pointer; }
.nb-lead__head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.nb-lead__eyebrow { font: 600 12px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--blue); }
.nb-lead__title { font: 500 27px/1.25 var(--serif); color: var(--navy); }
.nb-lead__desc { font: 400 14.5px/1.7 var(--sans); color: var(--text-gray2); margin: 0; }
.nb-lead .wpcf7-form p { margin: 0 0 14px; }
.nb-lead .wpcf7-form label { display: flex; flex-direction: column; gap: 7px; font: 600 12.5px/1 var(--sans); color: var(--text-body); }
.nb-lead .wpcf7-form input[type=text],
.nb-lead .wpcf7-form input[type=tel],
.nb-lead .wpcf7-form textarea {
	min-height: 52px; padding: 14px 16px; background: #f4f8fc; border: 1px solid rgba(19,37,56,.14);
	border-radius: 10px; font: 400 15.5px/1 var(--sans); color: var(--navy); outline: none; width: 100%;
}
.nb-lead .wpcf7-form textarea { min-height: 90px; font: 400 15px/1.6 var(--sans); resize: vertical; }
.nb-lead .wpcf7-form input[type=submit] {
	min-height: 54px; width: 100%; background: linear-gradient(135deg, var(--blue-light), var(--blue)); color: #fff;
	border: 0; border-radius: 11px; font: 600 15.5px/1 var(--sans); cursor: pointer; box-shadow: 0 10px 24px rgba(27,127,196,.3);
}
.nb-lead .wpcf7-form input[type=submit]:hover { transform: translateY(-2px); filter: brightness(1.06); }
.nb-lead__divider { display: flex; align-items: center; gap: 14px; margin: 18px 0; }
.nb-lead__divider span:not(.nb-lead__divider-text) { height: 1px; background: rgba(19,37,56,.12); flex: 1; }
.nb-lead__divider-text { font: 500 12px/1 var(--sans); color: #8ea4b8; white-space: nowrap; }
.nb-lead__calls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nb-lead__call { text-align: center; min-height: 48px; display: flex; align-items: center; justify-content: center; padding: 15px 6px; border: 1px solid rgba(19,37,56,.16); border-radius: 10px; font: 600 14.5px/1 var(--sans); color: var(--text-body); }
.nb-lead__call:hover { border-color: var(--blue); color: var(--blue); }

/* ==================== LIGHTBOX ==================== */
.nb-lb { position: fixed; inset: 0; z-index: 200; background: rgba(6,20,36,.95); display: flex; flex-direction: column; gap: 14px; padding: 16px 18px 18px; }
.nb-lb[hidden] { display: none; }
.nb-lb__top { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex: none; }
.nb-lb__title { font: 500 21px/1.3 var(--serif); color: #eaf4fb; }
.nb-lb__ctrl { display: flex; align-items: center; gap: 8px; flex: none; }
.nb-lb__counter { font: 500 13px/1 var(--sans); color: #8fb0cb; margin-right: 6px; }
.nb-lb__btn { width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(255,255,255,.06); color: #eaf4fb; font: 400 19px/1 var(--sans); cursor: pointer; }
.nb-lb__btn:hover { background: rgba(255,255,255,.16); }
.nb-lb__stage { flex: 1; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.nb-lb__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; box-shadow: 0 30px 70px rgba(0,0,0,.5); }
.nb-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(6,20,36,.55); color: #eaf4fb; font: 400 24px/1 var(--sans); cursor: pointer; }
.nb-lb__nav:hover { background: rgba(27,127,196,.85); }
.nb-lb__nav--prev { left: 6px; }
.nb-lb__nav--next { right: 6px; }

/* ==================== Basic pages ==================== */
.nb-page { padding: 80px 28px; max-width: 900px; margin: 0 auto; }
.nb-page__content { font: 400 16px/1.8 var(--sans); color: var(--text-body); }
