/* New Star Company WLL — site-specific additions on top of the rebranded template styles. */

/* ============================================================
   Typography — the template ships "Adamina" (a decorative serif)
   for all headings and "Roboto" for body text, which reads as
   dated/off-brand for a medical B2B distributor. Replacing with
   a corporate-trust pairing (Lexend for headings, Source Sans 3
   for body) used across enterprise/healthcare/finance sites.
   !important is required: the vendor stylesheet sets font-family
   on many individual selectors more specific than a bare element
   selector, and this is the only reliable way to win against all
   of them without editing style.css directly. Icon tags (<i> with
   .fa/.fas/.far/.fab classes) are deliberately excluded so glyphs
   keep rendering correctly.
   ============================================================ */
/* Fonts are loaded via <link> in includes/header.php (preconnect + single
   stylesheet) instead of an @import chain that blocked first paint. */

body, p, li, td, th, label, input, textarea, button, select, blockquote, a, span, div {
	font-family: "Source Sans 3", "Roboto", sans-serif !important;
}
h1, h2, h3, h4, h5, h6 {
	font-family: "Lexend", "Roboto", sans-serif !important;
	font-weight: 600 !important;
}

/* ============================================================
   Color hierarchy — the vendor CSS leaves headings, nav links and
   section eyebrows all inheriting the same flat body text color
   (#242527), so nothing but the buttons carries any brand color.
   Give text real hierarchy instead.
   ============================================================ */
h1, h2, h3, h4, h5, h6 { color: #152440; }
.section-title .title-head p, .breadcrumb_list .title-head p {
	color: #C92547;
	font-size: 14px;
	letter-spacing: .5px;
}
.section-title .title-head p:before, .section-title .title-head p:after { background-color: #C92547; }
#main-nav > li > a { color: #152440 !important; }
#main-nav > li > a:hover, #main-nav > li.menu-item-has-child:hover > a { color: #0D509F !important; }
a:hover { color: #0D509F; }

/* Two-column section titles ("Who We Are" etc.) render the small eyebrow
   label AFTER the big heading in the markup, which the vendor CSS then
   displays in that same order — reads backwards for a standard eyebrow-
   above-headline layout. Reorder visually without touching every page. */
.section-left-title .title-head { display: flex; flex-direction: column; }
.section-left-title .title-head p { order: -1; margin-bottom: 10px; margin-left: 0 !important; }
.section-left-title .title-head p:before { display: none; }
.section-left-title .title-head h2 { order: 2; }

/* Bootstrap's base .navbar-nav defaults to flex-direction:column and only
   flips to row inside a .navbar-expand-* wrapper, which this template's
   custom nav markup never uses — without this override the desktop menu
   collapses into a vertical stack. #main-nav's ID gives this enough
   specificity to win over .navbar-nav. */
#main-nav {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}
/* The template's default 40px side-padding per link was tuned for a
   6-item menu; our 7-item menu (Home/About/Solutions/Partners/Customers/
   Blog/Contact) wrapped onto a second row at common desktop widths.
   Tighten padding/size so it fits on one line without crowding. */
.home-1 .nav-menu-1 .navbar-nav li a {
	padding: 28px 20px 24px;
	font-size: 14px;
}

.brand-logo img { max-height: 62px; width: auto; }
.w-brand-logo img, .mobile_menu .w-brand-logo img { max-width: 160px; }

.footer-logo img { max-width: 150px; margin-bottom: 20px; }

.logo-card {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 2px 14px rgba(13, 36, 64, .08);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px 18px;
	height: 110px;
	margin-bottom: 30px;
	transition: box-shadow .25s ease, transform .25s ease;
}
.logo-card:hover { box-shadow: 0 8px 24px rgba(13, 36, 64, .14); transform: translateY(-3px); }
.logo-card img { max-width: 100%; max-height: 72px; width: auto; object-fit: contain; }

.client-counter-section {
	background: linear-gradient(135deg, #0D509F 0%, #0a3f80 55%, #082f61 100%);
	position: relative;
	overflow: hidden;
}
.client-counter-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 15% 20%, rgba(255,255,255,.06) 0, transparent 40%),
		radial-gradient(circle at 85% 85%, rgba(255,255,255,.05) 0, transparent 40%);
	pointer-events: none;
}
.stats-row { align-items: stretch; position: relative; z-index: 1; }
.stat-box { height: 100%; text-align: center; padding: 14px 20px; position: relative; }
@media (min-width: 992px) {
	.stats-row > [class*="col-"]:not(:first-child) .stat-box::before {
		content: '';
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 1px;
		height: 56px;
		background: rgba(255, 255, 255, .18);
	}
}
.stat-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
	font-size: 22px;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	transition: transform .25s ease, background .25s ease;
}
.stat-box:hover .stat-icon { transform: scale(1.08); background: rgba(255, 255, 255, .2); }
.stat-icon.accent-red { color: #ff7a92; }
.stat-box .stat-number { font-size: 44px; font-weight: 800; color: #fff; line-height: 1; letter-spacing: .5px; }
.stat-box .stat-label { margin-top: 10px; font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, .72); text-transform: uppercase; letter-spacing: .7px; }

.icon-img { display: inline-block; object-fit: contain; vertical-align: middle; }
.value-card .icon-img, .core-card .icon-img, .service-icon .icon-img { margin-bottom: 16px; }

/* Font Awesome <i> icons dropped into the template's .flaticon-span-based service-icon slot */
.service-icon-text .service-icon i,
.service-icon-text .background-icon i {
	font-size: 70px;
	color: #C92547;
}
.service-icon-text .background-icon i { color: #f1f6ff; font-size: 230px; }

/* Division/service cards (60px vertical padding + a 70px icon, designed
   for a 3-up grid with 1-line blurbs) rendered ~440px tall in our 4-up
   grid with 2-line blurbs — visibly oversized. Tighten to a size that
   matches the amount of content actually inside each card. */
.service-icon-text { padding: 34px 24px; }
.service-icon-text .service-icon { margin-bottom: 16px; }
.service-icon-text .service-icon i { font-size: 40px; }
.service-icon-text .service-text h3 { font-size: 19px; padding-bottom: 8px; }
.service-icon-text .service-text p { font-size: 14px; line-height: 1.55; }
.service-icon-text .btn-more { margin-top: 14px !important; }

/* The giant faded watermark heading (title-bg) behind each section title
   reserves 130px of padding below it — a huge empty gap before any real
   content starts. Scale both down together. */
.section-title-area { padding-bottom: 50px; }
.section-title .title-bg { font-size: 110px; letter-spacing: 18px; }
.section-title .title-head { bottom: -18px; }

/* Partner logo carousel (#client_slide): the vendor CSS only caps images
   at max-width:100% of their slide slot, so each logo scales down to the
   same WIDTH but keeps its own natural aspect ratio — logos with a wide
   flat crop end up much shorter than logos with a squarer crop, so the
   strip renders as a jagged, unaligned row instead of a clean line of
   evenly-sized logos. Give every slot a fixed height and letterbox the
   image inside it instead of just capping width. */
.client-list.about_overview_client { padding: 40px 60px 50px; }
.client_show {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 70px;
}
.client_show img {
	max-width: 140px !important;
	max-height: 70px;
	width: auto !important;
	height: auto;
	object-fit: contain;
	filter: grayscale(35%);
	opacity: .85;
	transition: opacity .2s ease, filter .2s ease;
}
.client_show:hover img { opacity: 1; filter: grayscale(0%); }

/* Blog card thumbnails ("Latest Updates" etc.): the vendor CSS never
   constrains .blog-img img's height, so a near-square source photo like
   our building shot renders at ~376px tall per card — oversized for a
   3-up teaser row. Crop to a normal thumbnail band instead. */
.blog-img-text .blog-img { overflow: hidden; }
.blog-img-text .blog-img img { width: 100%; height: 230px; object-fit: cover; }


.division-icon-circle {
	width: 74px; height: 74px; border-radius: 50%;
	background: rgba(13, 80, 159, .08);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 20px;
	font-size: 30px; color: #0D509F;
}
.division-card:nth-child(odd) .division-icon-circle { color: #C92547; background: rgba(201, 37, 71, .08); }

.timeline-row { display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 40px; }
.timeline-item { flex: 1 1 22%; text-align: center; padding: 0 15px; min-width: 180px; margin-bottom: 30px; }
.timeline-item .timeline-year { font-size: 22px; font-weight: 700; color: #0D509F; }
.timeline-item .timeline-dot { width: 14px; height: 14px; border-radius: 50%; background: #0D509F; margin: 12px auto; }
.timeline-item.is-current .timeline-dot { background: #C92547; }
.timeline-item .timeline-label { color: #667; }

.value-card, .core-card {
	background: #fff; border-radius: 6px; padding: 34px 26px;
	box-shadow: 0 2px 14px rgba(13, 36, 64, .06);
	margin-bottom: 30px; height: 100%;
}
.value-card i, .core-card i { font-size: 34px; color: #0D509F; margin-bottom: 16px; display: inline-block; }
.value-card-accent-blue { border-top: 3px solid #0D509F; }
.value-card-accent-red { border-top: 3px solid #C92547; }

.leader-card { text-align: center; margin-bottom: 40px; }
.leader-card img { width: 190px; height: 190px; border-radius: 50%; object-fit: cover; margin-bottom: 20px; box-shadow: 0 6px 20px rgba(13,36,64,.15); }
.leader-card h3 { margin-bottom: 4px; }
.leader-card .leader-title { color: #C92547; text-transform: uppercase; font-weight: 600; letter-spacing: .5px; display: block; margin-bottom: 18px; }
.leader-card .leader-quote { font-style: italic; color: #556; max-width: 520px; margin: 0 auto; }

.division-product-img { border-radius: 6px; overflow: hidden; margin-bottom: 20px; box-shadow: 0 2px 14px rgba(13,36,64,.08); }
.division-product-img img { width: 100%; height: 210px; object-fit: cover; display: block; }
.division-product-img-contain img { object-fit: contain; background: #fff; }
.division-product-img-dark img { background: #111; }

.logo-card-sm { height: 80px; padding: 14px 16px; }

/* dental division page */
.dental-hero-img { width: 100%; border-radius: 6px; margin-bottom: 30px; display: block; }
.offering-card { margin-bottom: 24px; }
.offering-title { font-size: 19px; }
.section-subheading { margin-top: 40px; }
.dental-partners-grid { margin-top: 16px; }
.dental-partners-teaser { margin-top: 14px; color: #667; }
.sidebar-cta-box { margin-top: 30px; background: #0D509F; border-radius: 6px; padding: 30px; text-align: center; }
.sidebar-cta-box h3, .sidebar-cta-box p { color: #fff; }
.sidebar-cta-box p { color: #e3ecf7; margin-bottom: 18px; }

/* partners / customers teaser + list pages */
.teaser-heading { margin-bottom: 14px; }
.teaser-copy { max-width: 640px; margin: 0 auto 24px; }
.more-customers-note { margin-top: 14px; color: #667; }

/* contact page */
.contact-map-spacing { margin: 50px 0; }
.form-alert { padding: 16px 20px; border-radius: 4px; margin-bottom: 24px; }
.form-alert-success { background: #e8f7ee; border: 1px solid #b7e4c7; color: #1e7e34; }
.form-alert-error { background: #fdecea; border: 1px solid #f5c2c0; color: #a12622; }

/* blog list + single */
.filter-summary { margin-bottom: 20px; }
.pagination-nav { margin-top: 30px; }
.pagination-link { display: inline-block; margin: 0 4px; padding: 8px 15px; border-radius: 4px; background: #f1f6ff; color: #152440; }
.pagination-link.is-active { background: #0D509F; color: #fff; }
.pagination-link:hover { background: #e1ebff; text-decoration: none; }
.pagination-link.is-active:hover { background: #0a3f7d; }
.blog-single-cover { width: 100%; border-radius: 6px; margin-bottom: 26px; display: block; }
.sidebar-widget-spacing { margin-bottom: 34px; }

/* footer */
.footer-social-spacing { margin-top: 16px; }
.footer-contact-item-spacing { margin-top: 10px; }
.contact-map-iframe { border: 0; border-radius: 6px; }

/* Contact form submit button — the template's own CSS only styles
   .sub-button button inside a ".quote_form" wrapper, which this page's
   markup (.contact_page_form > .get-quote-section) never uses, so the
   button rendered unstyled. Style it directly instead of restructuring
   markup to match a wrapper class this page doesn't otherwise need. */
.contact_page_form .sub-button button {
	border: none;
	border-radius: 50px;
	background-color: #C92547;
	color: #fff;
	height: 58px;
	min-width: 200px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	cursor: pointer;
	transition: background-color .25s ease;
}
.contact_page_form .sub-button button:hover { background-color: #a91d3a; }

/* Contact form fields — the template's input/icon styling lives under
   ".cotanct_formarea .contact-info" and ".quote_form .icon-bg", wrapper
   classes this page's form (#contact_form) doesn't use, so fields
   rendered as plain unstyled inputs with a stray icon. Style the form
   directly by its id instead of adding unrelated template wrapper
   classes to the markup. */
#contact_form .contact-info { position: relative; margin-bottom: 6px; }
#contact_form label { display: block; text-transform: uppercase; font-size: 12px; letter-spacing: .5px; color: #667; margin-bottom: 6px; }
#contact_form .contact-info input,
#contact_form .contact-info textarea {
	width: 100%;
	height: 54px;
	border: none;
	padding: 0 44px 0 0;
	background-color: transparent;
	border-bottom: 2px solid #e5e5e5;
	font-size: 15px;
	outline: none;
	transition: border-color .18s ease;
}
#contact_form .contact-info textarea { height: auto; padding: 14px 44px 14px 0; min-height: 130px; border-bottom: 2px solid #e5e5e5; resize: vertical; }
#contact_form .contact-info input::placeholder,
#contact_form .contact-info textarea::placeholder { color: #b7bfcc; }
/* No selector previously gave focused fields any visible state at all —
   tabbing through the form left every field looking identical, with no
   way to tell which one currently has keyboard focus. */
#contact_form .contact-info input:focus,
#contact_form .contact-info textarea:focus { border-bottom-color: #0D509F; }
#contact_form .contact-info:focus-within .icon-bg { color: #0D509F; }
#contact_form .contact-info .icon-bg { top: 14px; right: 0; color: #C92547; position: absolute; opacity: 1; font-size: 16px; transition: color .18s ease; }
#contact_form .row .contact-info { margin-bottom: 26px; }
#contact_form .sub-button { margin-top: 20px; }

/* margin-top-only utilities — the bundled bootstrap.min.css was trimmed down
   to only the utilities the original template used (m-*, mx-*, my-* exist,
   but not mt-*/pt-* etc.), so we provide the ones this site needs. */
.mt-2 { margin-top: .5rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }

.contact-info-strip .icon-bg { color: #0D509F; }

.badge-count {
	display: inline-block; background: #C92547; color: #fff; border-radius: 20px;
	font-size: 12px; padding: 2px 10px; margin-left: 8px;
}

@media (max-width: 767px) {
	.timeline-item { flex: 1 1 45%; }
}

/* ============================================================
   Button system — one consistent CTA look across the whole site.
   Pair with .hover-btn (template class) for the sweep hover fx.
   ============================================================ */
.btn {
	display: inline-block;
	padding: 14px 36px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: .5px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	border: 2px solid transparent;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
	cursor: pointer;
	text-align: center;
}
.btn:hover { transform: translateY(-2px); text-decoration: none; }
.btn + .btn { margin-left: 12px; }
.btn-sm { padding: 11px 26px; font-size: 13px; }

.btn-primary { background: #0D509F; color: #fff; border-color: #0D509F; }
.btn-primary:hover { background: #0a3f7d; border-color: #0a3f7d; color: #fff; }

.btn-accent { background: #C92547; color: #fff; border-color: #C92547; }
.btn-accent:hover { background: #a91d3a; border-color: #a91d3a; color: #fff; }

.btn-white { background: #fff; color: #0D509F; border-color: #fff; }
.btn-white:hover { background: #f1f6ff; color: #0D509F; }

.btn-outline-white { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
.btn-outline-white:hover { background: rgba(255,255,255,.14); border-color: #fff; color: #fff; }

@media (max-width: 480px) {
	.btn { display: block; width: 100%; }
	.btn + .btn { margin-left: 0; margin-top: 12px; }
	.cta-band .btn + .btn { margin-left: 0; margin-top: 12px; }
}

/* ============================================================
   Section rhythm — one spacing scale, used instead of one-off
   inline padding:70px/80px/100px on individual <section> tags.
   ============================================================ */
.section-pad { padding: 90px 0; }
.section-pad-lg { padding: 100px 0; }
.section-pad-sm { padding: 60px 0; }
.section-tight { padding: 50px 0; }
.bg-light { background: #f8f9fb; }

.cta-band { background: #0D509F; padding: 60px 0; text-align: center; }
.cta-band h2 { color: #fff; margin-bottom: 22px; font-size: 30px; }
.cta-band p { color: #dce8fa; }

@media (max-width: 767px) {
	.section-pad, .section-pad-lg { padding: 50px 0; }
	.section-pad-sm { padding: 40px 0; }
	.section-tight { padding: 35px 0; }
	.cta-band { padding: 45px 0; }
	.cta-band h2 { font-size: 24px; }
}

/* ============================================================
   Division / service card grid — equal-height cards, button
   pinned to the bottom regardless of blurb length.
   ============================================================ */
.colmd4 { display: flex; margin-bottom: 30px; }
.service-icon-text {
	width: 100%;
	display: flex;
	flex-direction: column;
}
.service-icon-text .service-text {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.service-icon-text .btn-more { margin-top: auto; }

/* theme-tag "Division 0x" eyebrow label */
.theme-tag { color: #C92547; letter-spacing: 1px; font-size: 13px; display: inline-block; margin-bottom: 10px; }

/* about page image column — fill the height of the text column */
.about_page_content .row > .col-md-6:first-child { display: flex; }
.about_page_img { width: 100%; border-radius: 6px; overflow: hidden; }
.about_page_img img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; }

/* value/core cards used as a grid keep equal height via .row's flex + height:100% already set above */

/* blog card title — clamp to 2 lines so floating text cards line up */
.blog-img-text .blog-title h2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.6em;
}

/* logo-card grids: normalize any leftover inline height overrides */
.logo-card { height: 110px; }

@media (max-width: 767px) {
	.about_page_content .row > .col-md-6:first-child { display: block; margin-bottom: 30px; }
	.about_page_img img { min-height: 220px; }
}

/* ============================================================
   Sticky header on scroll — the template's JS adds .f-nav on
   scroll and the desktop CSS balloons the fixed bar to 130px
   (tuned for the desktop dropdown nav's padding). Below 1200px
   the site shows the hamburger nav instead, whose natural header
   height is ~62px — without this fix the ballooned scrolled bar
   overlaps the page content on every tablet/mobile width.
   ============================================================ */
@media (max-width: 1199px) {
	.main-header.f-nav.prime_header { height: 62px; }
	.main-header.f-nav.prime_header .brand-logo { padding-top: 0; }
	.main-header.f-nav.prime_header .header-right { padding-top: 0; }
}

/* ============================================================
   Interface polish — small details, applied from
   github.com/jakubkrehel/make-interfaces-feel-better
   ============================================================ */

/* Font smoothing: crisper text rendering on macOS/WebKit. */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Text wrapping: balanced headings (no orphaned single word on its own
   line), and "pretty" wrapping on body copy to avoid orphans. */
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Image outlines: a hairline pure-black-at-low-opacity edge (not a tinted
   grey) reads as consistent depth across photos on white/light cards. */
.about_page_img img, .division-product-img img, .blog-img-text .blog-img img,
.blog-single-cover, .leader-card img, .dental-hero-img, .service_bottomimg img {
	outline: 1px solid oklch(0 0 0 / 0.1);
	outline-offset: -1px;
}

/* Scale on press: tactile click feedback on real buttons (not every <a>,
   to avoid the effect firing on plain text links). */
.btn:active, .hover-btn:active { transform: scale(0.96); }

/* Minimum hit area: the hamburger toggle, search toggle, and header social
   icons were rendering as small as 8x22px — expand the clickable area
   with padding rather than growing the icon glyph itself. */
.header-right .open_bar { padding: 12px; margin: -12px; display: inline-block; }
.header-right .search-btn { padding: 12px; margin: -12px; display: inline-block; }
.header_social a, .pro_social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }

/* Shadow for elevation, border for structure: division cards used a flat
   border to fake depth while every other card on the site (logo-card,
   value-card) uses a soft shadow — align them for a consistent card
   language across the whole site. */
.service-icon-text { border: none !important; box-shadow: 0 2px 14px rgba(13, 36, 64, .06) !important; }
.service-icon-text:hover { box-shadow: 0 10px 28px rgba(13, 36, 64, .12) !important; }

/* ============================================================
   Homepage section-collision fixes (design review, see directive)
   ============================================================ */

/* 1. .service-section ships a -35px top margin in the vendor CSS, tuned to
   tuck it under whatever section the ORIGINAL template placed directly
   above it. We insert our own Stats + "Who We Are" sections before it on
   this page, so the negative margin now pulls "Our Divisions" up into
   that content instead — a real section-overlap bug, not just spacing. */
.service-section { margin-top: 0; }

/* 2. The "Read more about us" arrow was wrongly built on .icon_bg, a
   template class for a 130px, near-white, z-index:-1 BACKGROUND watermark
   glyph (see .feature_quote .icon_bg in style.css) — not a small inline
   UI icon. Give it its own token-sized, properly-colored, inline style. */
.read-more-arrow { display: inline-flex; align-items: center; margin-left: 10px; }
.read-more-arrow i { font-size: 16px; color: #C92547; }
.author_intro { display: flex; align-items: center; justify-content: space-between; }

/* 3 & 4. The giant ghost-text section watermark (.title-bg, e.g. "BLOG" /
   "SOLUTIONS") depends on a gradient mask precisely tuned to the original
   200px font-size + section height to fade the text to white. Reducing
   that size in an earlier pass (200px -> 110px) broke the mask: the text
   now renders solid dark and collides with real content below it (the
   "garbled text over Latest Updates" and "grey bar" issues both trace
   back to this). Decorative flourish that fights real content fails the
   basic bar — remove it rather than re-tune a fragile effect. A clean,
   minimal watermark-free section title also better matches the
   Trust & Authority / Minimalism style profile for a medical B2B brand. */
.title-bg { display: none !important; }

/* 5. Stats section bottom padding (90px) + about_page_content's own
   top padding (115px, vendor default) stack into ~200px of dead space
   between the stat numbers and "Who We Are" — two independently-padded
   sections compounding instead of one deliberate spacing tier. */
.about_page_content { padding-top: 40px; }

/* ============================================================
   Round 2: breadcrumb banner + nav fixes (design review)
   ============================================================ */

/* 6. .title-head was absolutely positioned so it could overlay the giant
   .title-bg watermark text. Now that .title-bg is display:none (see
   fix #3/4 above), .section-title-area has nothing left in normal flow
   to give it height, so the absolutely-positioned title collapses
   upward into whatever section precedes it — exactly what caused
   "Covering the full spectrum of healthcare" to overlap the breadcrumb
   banner above it. The watermark this trick supported is gone, so put
   the title back in normal document flow instead of re-tuning magic
   offsets a second time. */
.section-title .title-head {
	position: static;
	padding: 50px 0 10px;
}

/* 7. The solid red 30%-width corner block (.breadcrumb_section:after)
   was designed to sit on top of the ORIGINAL template's abstract
   background pattern (background/bbg.jpg) as a bold brand accent. We
   swapped in a real photograph of the building for every breadcrumb
   hero, and a flat color block chopping off a third of an actual photo
   reads as a rendering bug, not a design choice. Remove it. */
.breadcrumb_section:after { display: none; }

/* 8. The dropdown "+" indicator (.menu-item-has-child > a:before) is
   positioned with a fixed top:38px/right:24px tuned for the vendor's
   original, taller nav-link padding (35px 40px 30px). Our compressed
   padding (28px 20px 24px — needed to fit 7 menu items on one row,
   see the #main-nav fix above) left neither enough vertical room for
   that fixed offset nor enough horizontal clearance, so the "+" now
   sits on top of the link text instead of clear of it. Vertically
   center it relative to the link (robust to padding changes) and
   reserve real horizontal space for it instead of guessing an offset. */
.main-navigation .menu-item-has-child > a { padding-right: 34px !important; }
.main-navigation .menu-item-has-child > a:before {
	top: 50% !important;
	right: 14px !important;
	margin-top: -5px;
}

/* 9. Logo and first nav item sit flush with zero gap at desktop widths
   (brand-logo floats left, #main-nav starts immediately after) —
   cramped, no breathing room. */
.brand-logo { margin-right: 24px; }

/* ============================================================
   New header (full rebuild) — self-contained, does not use the
   vendor .main-header/.nav-menu-1/.wide_sidebar system.
   Reasons for the rebuild rather than another patch:
   1. The old header's background was dark navy (#152440) and our
      logo wordmark is ALSO dark navy — invisible by design, not a
      one-line fix.
   2. The "grid icon" opened a promotional slide-out panel
      (.wide_sidebar) whose overlay is solid brand red at full
      viewport size — the "full screen red" bug. That panel was
      largely redundant with the real nav anyway.
   3. User asked to match a cleaner reference (medvision-kw.com):
      one flat bar, logo + inline nav together, regular-weight
      non-uppercase links — structurally different enough from the
      vendor's two-tier/uppercase/bold/divider-line nav that patching
      forward was going to cost more than rebuilding.
   ============================================================ */

body { padding-top: 84px; }

.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 500;
	background: #fff;
	box-shadow: 0 1px 3px rgba(21, 36, 64, .08);
}
.site-header-inner {
	max-width: 1360px;
	margin: 0 auto;
	padding: 0 30px;
	height: 84px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}
.site-logo { display: flex; align-items: center; flex-shrink: 0; }
.site-logo img { height: 46px; width: auto; }

.site-nav { flex: 1; display: flex; justify-content: center; }
.site-nav > ul { display: flex; align-items: center; gap: 32px; list-style: none; margin: 0; padding: 0; }
.site-nav > ul > li { position: relative; }
.site-nav > ul > li > a {
	display: flex; align-items: center;
	color: #152440;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	padding: 30px 0;
	transition: color .18s ease;
}
.site-nav > ul > li > a:hover,
.site-nav > ul > li.is-active > a { color: #0D509F; }
.site-nav .caret {
	display: inline-block;
	width: 0; height: 0;
	margin-left: 6px;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	opacity: .55;
}

.site-nav .dropdown {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 6px);
	min-width: 210px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 12px 30px rgba(21, 36, 64, .14);
	list-style: none;
	margin: 0;
	padding: 8px 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.site-nav .has-dropdown:hover .dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.site-nav .dropdown a {
	display: block;
	padding: 10px 22px;
	color: #152440;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease;
}
.site-nav .dropdown a:hover { background: #f1f6fc; color: #0D509F; }

.site-header-actions { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
.site-header-phone { display: flex; align-items: center; gap: 8px; color: #152440; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.site-header-phone i { color: #C92547; }
.site-header-phone:hover { color: #0D509F; }
.site-header-cta {
	display: inline-block;
	padding: 11px 24px;
	background: #0D509F;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	border-radius: 4px;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .18s ease, transform .12s ease;
}
.site-header-cta:hover { background: #0a3f7d; color: #fff; }
.site-header-cta:active { transform: scale(0.97); }

/* Staff login / staff-area icon button (top-right of the header). */
.site-header-login {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border: 1px solid #d8e2ee;
	border-radius: 50%;
	background: #f6f9fc;
	color: #152440;
	font-size: 16px;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease;
}
.site-header-login:hover {
	background: #0D509F;
	border-color: #0D509F;
	color: #fff;
}
.site-header-login:active { transform: scale(0.94); }
.site-header-login:focus-visible {
	outline: 2px solid #C92547;
	outline-offset: 2px;
}

/* Signed-in account dropdown (opened from the header icon). */
.site-header-login-wrap { position: relative; display: inline-flex; }
.login-menu {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	z-index: 700;
	min-width: 230px;
	padding: 8px;
	background: #fff;
	border: 1px solid #e8eef5;
	border-radius: 14px;
	box-shadow: 0 18px 44px rgba(11, 31, 58, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.site-header-login-wrap.is-open .login-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.login-menu::before {
	content: '';
	position: absolute;
	top: -6px;
	right: 15px;
	width: 10px;
	height: 10px;
	background: #fff;
	border-left: 1px solid #e8eef5;
	border-top: 1px solid #e8eef5;
	transform: rotate(45deg);
}
.login-menu-head {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px 10px 12px;
	border-bottom: 1px solid #eef1f6;
}
.login-menu-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	background: linear-gradient(135deg, #0D509F, #152440);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
}
.login-menu-id { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.login-menu-id strong { font-size: 14.5px; color: #152440; overflow-wrap: anywhere; }
.login-menu-id small { font-size: 12px; color: #6b7a90; text-transform: uppercase; letter-spacing: .04em; }
.login-menu-items { padding-top: 6px; display: flex; flex-direction: column; }
.login-menu-items a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border-radius: 8px;
	color: #152440;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}
.login-menu-items a i { width: 16px; color: #0D509F; font-size: 13px; text-align: center; }
.login-menu-items a:hover { background: #f1f6fc; color: #0D509F; }
.login-menu-signout { margin-top: 4px; border-top: 1px solid #eef1f6; padding-top: 11px !important; border-radius: 0 0 8px 8px !important; }
.login-menu-signout i { color: #C92547 !important; }
.login-menu-signout:hover { background: #fdf1f3 !important; color: #C92547 !important; }

.site-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px; height: 40px;
	padding: 0; margin: 0;
	background: none; border: none; cursor: pointer;
}
.site-nav-toggle span { display: block; width: 22px; height: 2px; background: #152440; margin: 0 auto; transition: transform .2s ease, opacity .2s ease; }

/* Mobile off-canvas nav */
.mobile-nav-overlay {
	position: fixed; inset: 0;
	background: rgba(0, 9, 25, .55);
	opacity: 0; visibility: hidden;
	transition: opacity .25s ease, visibility .25s;
	z-index: 600;
}
.mobile-nav {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: 300px; max-width: 85vw;
	background: #fff;
	transform: translateX(100%);
	transition: transform .3s ease;
	z-index: 601;
	overflow-y: auto;
	display: flex; flex-direction: column;
}
body.mobile-nav-open .mobile-nav-overlay { opacity: 1; visibility: visible; }
body.mobile-nav-open .mobile-nav { transform: translateX(0); }
body.mobile-nav-open { overflow: hidden; }
.mobile-nav-head { display: flex; align-items: center; justify-content: space-between; padding: 20px; border-bottom: 1px solid #eef1f6; }
.mobile-nav-head img { height: 40px; }
.mobile-nav-close { background: none; border: none; font-size: 28px; line-height: 1; color: #152440; cursor: pointer; padding: 4px 8px; }
.mobile-nav ul { list-style: none; margin: 0; padding: 8px 0; }
.mobile-nav ul li a { display: block; padding: 14px 22px; color: #152440; font-size: 15px; font-weight: 500; text-decoration: none; border-bottom: 1px solid #f4f6fa; }
.mobile-nav ul li a:hover { color: #0D509F; background: #f8fafc; }
.mobile-nav-contact { margin-top: auto; padding: 20px 22px; border-top: 1px solid #eef1f6; display: flex; flex-direction: column; gap: 12px; }
.mobile-nav-contact a { display: flex; align-items: center; gap: 10px; color: #152440; font-size: 14px; text-decoration: none; }
.mobile-nav-contact i { color: #C92547; width: 16px; }

@media (max-width: 991px) {
	body { padding-top: 68px; }
	.site-header-inner { height: 68px; padding: 0 20px; }
	.site-logo img { height: 36px; }
	.site-nav, .site-header-phone, .site-header-cta { display: none; }
	.site-nav-toggle { display: flex; }
}

/* Breadcrumb hero was padded (290px/150px) to clear the old tall,
   two-tier header — our new header is a slim 84px fixed bar with body
   padding-top already compensating for it, so that legacy clearance is
   now pure excess whitespace. */
.breadcrumb_section { padding: 90px 0 60px !important; }
@media (max-width: 991px) {
	.breadcrumb_section { padding: 60px 0 40px !important; }
}

/* Same "tuck under the old tall header" trick as .service-section and
   .breadcrumb_section above, applied to the homepage hero slider — it
   shifted 25px up (top:-25px) and padded 145px down internally, both
   tuned for the old two-tier header. Our new header clearance is
   handled once, globally, via body's padding-top — this internal
   compensation is now just an unwanted 25px overlap with the header. */
.home_slide1 { top: 0 !important; padding-top: 0 !important; display: block !important; }

/* ============================================================
   2026 public experience — Swiss healthcare system
   A clean, high-trust layer shared by every public page.
   ============================================================ */
:root {
	--ns-navy: #0b1f3a;
	--ns-blue: #0d509f;
	--ns-blue-bright: #0b72c7;
	--ns-red: #C92547;
	--ns-ink: #18263a;
	--ns-muted: #64748b;
	--ns-line: #dde5ef;
	--ns-soft: #f5f8fc;
	--ns-white: #ffffff;
	--ns-radius: 18px;
	--ns-shadow-sm: 0 8px 24px rgba(11, 31, 58, .07);
	--ns-shadow-lg: 0 22px 55px rgba(11, 31, 58, .14);
}

html { scroll-behavior: smooth; scroll-padding-top: 100px; }
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
body {
	color: var(--ns-ink);
	background: var(--ns-white);
	font-size: 16px;
	line-height: 1.7;
}
body::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: -1;
	background: radial-gradient(circle at 100% 8%, rgba(11,114,199,.05), transparent 28rem);
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
	outline: 3px solid rgba(11, 114, 199, .35) !important;
	outline-offset: 3px;
}
.skip-link {
	position: fixed;
	top: 8px;
	left: 12px;
	z-index: 10000;
	padding: 10px 16px;
	border-radius: 8px;
	background: var(--ns-navy);
	color: #fff;
	transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); color: #fff; }

/* Refined navigation and tactile logo depth */
.site-header { border-bottom: 1px solid rgba(11,31,58,.07); transition: box-shadow .25s ease, background-color .25s ease; }
.site-header.is-scrolled { box-shadow: 0 12px 35px rgba(11,31,58,.1); background: rgba(255,255,255,.96); backdrop-filter: blur(16px); }
.site-logo { perspective: 700px; }
.site-logo img {
	transform-origin: left center;
	filter: drop-shadow(0 5px 7px rgba(11,31,58,.12));
	transition: transform .4s cubic-bezier(.2,.8,.2,1), filter .4s ease;
}
.site-logo:hover img { transform: rotateY(-7deg) rotateX(2deg) translateY(-2px); filter: drop-shadow(7px 8px 8px rgba(11,31,58,.18)); }
.site-nav > ul > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 22px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--ns-blue), var(--ns-red));
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .2s ease;
}
.site-nav > ul > li:hover > a::after, .site-nav > ul > li.is-active > a::after { transform: scaleX(1); transform-origin: left; }
.site-nav .dropdown { border: 1px solid var(--ns-line); border-radius: 14px; padding: 10px; }
.site-nav .dropdown a { border-radius: 8px; padding: 10px 14px; }
.site-nav .dropdown a[aria-current="page"] { background: var(--ns-soft); color: var(--ns-blue); }
.site-header-cta { border-radius: 10px; box-shadow: 0 7px 18px rgba(7,93,168,.2); }
.site-header-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(7,93,168,.26); }

/* Hero: legible editorial panel with a controlled cinematic gradient */
.slider-section, .slide-area-content, .slider-layer { min-height: clamp(540px, 69vh, 720px); }
.slider-layer { position: relative; display: flex; align-items: center; overflow: hidden; }
.slider-layer > .container { position: relative; z-index: 3; width: 100%; }
.slider-img { position: absolute; inset: 0; width: 100%; height: 100%; background-size: cover; background-position: center; }
.slider-img::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(7,23,44,.9) 0%, rgba(7,23,44,.69) 46%, rgba(7,23,44,.12) 78%), linear-gradient(0deg, rgba(7,23,44,.28), transparent 48%);
}
.slider-img { transform: scale(1.025); }
.slider-text { position: relative; z-index: 3; max-width: 780px; }
.slider-text .content-area { padding: 40px 0; }
.slider-text h1, .slider-text .hero-heading {
	font-size: clamp(40px, 5vw, 70px) !important;
	line-height: 1.09 !important;
	letter-spacing: -.035em;
	color: #fff !important;
	text-shadow: 0 2px 20px rgba(0,0,0,.2);
	padding: 25px 0;
	opacity: 0;
	transform: translateY(-100px);
}
.owl-item.active .slider-layer .slider_wrap1 .hero-heading { opacity: 1; transform: translateY(0); transition: all 900ms ease 300ms; }
.slider-text p { margin-top: 22px !important; font-size: clamp(17px, 2vw, 21px) !important; color: rgba(255,255,255,.86) !important; max-width: 650px; }
#slide_wrapper { position: relative; }
#slide_wrapper .owl-controls { position: absolute; left: 0; right: 0; bottom: 0; height: 0; z-index: 20; margin: 0 !important; }
.home_slide1 .owl-dots { position: absolute; left: 50%; bottom: 30px !important; display: flex; align-items: center; justify-content: center; transform: translateX(-50%); }
.home_slide1 .owl-dot { width: auto !important; height: auto !important; border: 0 !important; background: transparent !important; margin: 0 5px; }
.home_slide1 .owl-dot span { display: block; width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.58); transition: width .2s ease, background .2s ease; }
.home_slide1 .owl-dot.active span { width: 30px; border-radius: 20px; background: #fff; }

/* Titles and rhythm */
.section-title-area { padding: 0 0 46px; }
.section-title .title-head { display: flex; flex-direction: column; align-items: center; padding: 0; }
.section-title .title-head h2, .section-left-title .title-head h2 {
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.16;
	letter-spacing: -.025em;
}
.section-title .title-head p {
	position: relative;
	display: inline-block;
	margin: 0 0 12px !important;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.section-title .title-head h2 { order: 2; }
.section-title .title-head p { order: 1; }
.section-title .title-head p::before, .section-title .title-head p::after { display: none !important; }
.section-left-title .title-head { align-items: flex-start; }
.section-left-title .title-head p { order: -1; }
.bg-light { background: var(--ns-soft); }
.service-section { padding: 92px 0; }

/* Professional card language: structured borders + modest 3D lift */
.service-icon-text, .value-card, .core-card, .logo-card, .blog-img-text {
	border: 1px solid rgba(11,31,58,.09) !important;
	border-radius: var(--ns-radius) !important;
	background: rgba(255,255,255,.98);
	box-shadow: var(--ns-shadow-sm) !important;
	transform: translateZ(0);
	transition: transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s ease, border-color .32s ease !important;
}
.service-icon-text:hover, .value-card:hover, .core-card:hover, .logo-card:hover, .blog-img-text:hover {
	transform: perspective(900px) translateY(-8px) rotateX(1.25deg) !important;
	border-color: rgba(7,93,168,.22) !important;
	box-shadow: var(--ns-shadow-lg) !important;
}
.service-icon-text { padding: 34px 26px 30px; overflow: hidden; text-align: left !important; }
.service-icon-text::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, var(--ns-blue), var(--ns-blue-bright), var(--ns-red));
	opacity: .82;
}
.service-icon-text .service-icon {
	width: 64px;
	height: 64px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: linear-gradient(145deg, #eef6ff, #fff);
	box-shadow: inset 0 0 0 1px rgba(7,93,168,.1), 0 9px 18px rgba(7,93,168,.1);
}
.service-icon-text .service-icon img { width: 34px !important; height: 34px !important; object-fit: contain; }
.service-icon-text .service-icon i { font-size: 28px; color: var(--ns-blue); }
/* The bundled FA font predates the tooth glyph; retain the standard
   .fa-tooth API and provide a crisp single-colour fallback silhouette. */
.service-icon .fa-tooth { width: 24px; height: 26px; }
.service-icon .fa-tooth::before {
	content: '';
	display: block;
	width: 24px;
	height: 26px;
	background: currentColor;
	clip-path: polygon(50% 11%, 65% 1%, 82% 4%, 97% 20%, 94% 44%, 83% 68%, 73% 100%, 60% 100%, 52% 73%, 48% 73%, 40% 100%, 27% 100%, 17% 68%, 6% 44%, 3% 20%, 18% 4%, 35% 1%);
}
.service-icon-text .service-text h3 { font-size: 19px; line-height: 1.35; color: var(--ns-navy); }
.service-icon-text .service-text p { color: var(--ns-muted); }
.service-icon-text .btn-more a { display: inline-flex; align-items: center; color: var(--ns-blue); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.service-icon-text .btn-more a::after { content: '\2192'; margin-left: 9px; font-size: 18px; transition: transform .2s ease; }
.service-icon-text:hover .btn-more a::after { transform: translateX(4px); }
.service-icon-text .background-icon { display: none; }

.value-card, .core-card { padding: 34px 30px; }
.value-card i, .core-card i, .contact-info-strip .icon-bg {
	width: 58px;
	height: 58px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: #eaf4fc;
	color: var(--ns-blue);
	font-size: 24px;
}
.value-card h3, .core-card h3 { margin: 2px 0 12px; font-size: 21px; }
.value-card p, .core-card p { color: var(--ns-muted); }
.value-card-accent-blue, .value-card-accent-red { border-top-width: 4px !important; }

.logo-card { border-radius: 14px !important; padding: 18px 22px; }
.logo-card img { filter: grayscale(8%); transition: filter .25s ease, transform .3s ease; }
.logo-card:hover img { filter: grayscale(0); transform: scale(1.04); }

/* Statistics sit like a premium information band, not four floating icons */
.client-counter-section { padding: 68px 0; background: linear-gradient(125deg, #071b34, #0b3768 64%, #075da8); }
.client-counter-section::after {
	content: '';
	position: absolute;
	inset: -30% -5%;
	background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255,255,255,.025) 80px 81px);
	transform: rotate(-3deg);
}
.stat-box { z-index: 2; padding: 10px 20px; }
.stat-icon { width: 50px; height: 50px; margin-bottom: 18px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.13); }
.stat-icon img { filter: brightness(0) invert(1); opacity: .92; }
.stat-box .stat-number { font-size: clamp(38px, 4vw, 52px); letter-spacing: -.03em; }
.stat-box .stat-label { font-size: 12px; letter-spacing: .14em; }

/* Content images */
.about_page_content { padding: 100px 0; }
.about_page_content .row { align-items: stretch; }
.about_page_img { border-radius: 22px; box-shadow: 0 24px 50px rgba(11,31,58,.16); position: relative; }
.about_page_img::after { content: ''; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); pointer-events: none; }
.about_page_text { padding: 24px 0 24px 44px; }
.about_page_text > span { color: var(--ns-muted); font-size: 17px; }
.feature_quote { margin-top: 28px; padding: 25px 26px; border: 0; border-left: 4px solid var(--ns-red); border-radius: 0 14px 14px 0; background: var(--ns-soft); }
.feature_quote > span { color: var(--ns-ink); }
.author_intro { margin-top: 18px; }
.ath_add, .ath_add li { margin: 0 !important; }
.ath_name a { color: var(--ns-blue); font-weight: 700; }

.division-product-img, .dental-hero-img, .blog-single-cover, .contact-map-iframe { border-radius: var(--ns-radius); box-shadow: var(--ns-shadow-sm); }
.division-product-img img { height: 260px; }
.leader-card { background: #fff; border: 1px solid var(--ns-line); border-radius: var(--ns-radius); padding: 38px 32px; box-shadow: var(--ns-shadow-sm); height: calc(100% - 40px); transition: transform .3s ease, box-shadow .3s ease; }
.leader-card:hover { transform: translateY(-7px); box-shadow: var(--ns-shadow-lg); }
.leader-card img { border: 6px solid #fff; outline: 1px solid var(--ns-line); width: 176px; height: 176px; }

/* Breadcrumbs become a compact, consistent subpage masthead */
.breadcrumb_section { min-height: 260px; display: flex; align-items: end; padding: 74px 0 58px !important; background-position: center 42% !important; }
.breadcrumb_section .background-overlay { background: linear-gradient(90deg, rgba(5,22,43,.94), rgba(5,22,43,.66) 62%, rgba(5,22,43,.42)) !important; }
.breadcrumb_list { position: relative; z-index: 2; }
.breadcrumb_list .breadcrumb_title { font-size: clamp(34px, 5vw, 56px); line-height: 1.1; letter-spacing: -.035em; color: #fff; margin-bottom: 18px; }
.breadcrumb_list .breadcrumb { display: flex; flex-wrap: wrap; align-items: center; background: transparent; margin: 0; padding: 0; }
.breadcrumb_list .breadcrumb-item, .breadcrumb_list .breadcrumb-item a { color: rgba(255,255,255,.72); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.breadcrumb_list .breadcrumb-item.active { color: #fff; }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.4) !important; }

/* Blog, sidebar, forms */
.blog-section { background: #f7f9fc; }
.blog-img-text { overflow: hidden; margin-bottom: 30px; height: calc(100% - 30px); }
.blog-img-text .blog-img img { height: 244px; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.blog-img-text:hover .blog-img img { transform: scale(1.045); }
.blog-img-text .blog-text { position: relative !important; inset: auto !important; width: auto !important; padding: 26px !important; background: #fff !important; }
.blog-img-text .blog-title h2 { color: var(--ns-navy); font-size: 20px !important; line-height: 1.4; }
.blog-img-text .blog-meta { color: var(--ns-muted); }
.blog-img-text .blog-date { top: 18px !important; left: 18px !important; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 20px rgba(11,31,58,.18); }
.single-sidebar, .blog_details_content { border: 1px solid var(--ns-line); border-radius: var(--ns-radius); padding: 30px; background: #fff; box-shadow: var(--ns-shadow-sm); }
.service_itemlist .widget-title, .single-sidebar .widget-title { padding-bottom: 16px; border-bottom: 1px solid var(--ns-line); }
.service_itemlist ul li a { border-radius: 9px; }

.contact_page_form .get-quote-section { max-width: 920px; margin: 0 auto; padding: 46px; border: 1px solid var(--ns-line); border-radius: 22px; background: #fff; box-shadow: var(--ns-shadow-sm); }
#contact_form label { color: var(--ns-ink); font-weight: 700; }
#contact_form .contact-info input, #contact_form .contact-info textarea { border: 1px solid var(--ns-line); border-radius: 10px; background: #fbfcfe; padding: 0 48px 0 16px; }
#contact_form .contact-info textarea { padding-top: 14px; }
#contact_form .contact-info input:focus, #contact_form .contact-info textarea:focus { border-color: var(--ns-blue); background: #fff; box-shadow: 0 0 0 4px rgba(7,93,168,.08); }
#contact_form .contact-info .icon-bg { right: 16px; background: transparent; width: auto; height: auto; border-radius: 0; }
.contact_page_form .sub-button button { border-radius: 10px; min-width: 190px; box-shadow: 0 8px 20px rgba(197,34,69,.22); }
.contact-map-iframe { border: 8px solid #fff; min-height: 420px; }
.contact-map-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.contact-map-heading span { color: var(--ns-red); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.contact-map-heading h2 { margin: 4px 0 0; font-size: clamp(25px, 4vw, 36px); }
.contact-map-heading a { color: var(--ns-blue); font-size: 14px; font-weight: 700; white-space: nowrap; }
.contact-map-heading a i { margin-left: 7px; }

/* CTA and footer */
.cta-band { position: relative; overflow: hidden; padding: 72px 0; background: linear-gradient(120deg, var(--ns-navy), var(--ns-blue)); }
.cta-band::before, .cta-band::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.cta-band::before { width: 340px; height: 340px; left: -130px; top: -160px; }
.cta-band::after { width: 220px; height: 220px; right: -70px; bottom: -130px; }
.cta-band .container { position: relative; z-index: 1; }
.cta-band h2 { max-width: 760px; margin: 0 auto 26px; font-size: clamp(27px, 4vw, 39px); letter-spacing: -.02em; }
.btn { border-radius: 10px; box-shadow: 0 8px 20px rgba(11,31,58,.12); }

.footer-section { background: #07172c !important; border-top: 1px solid rgba(255,255,255,.08); }
.footer-widget-wrap { padding: 76px 0 58px !important; }
.footer-section .widget-title { color: #fff !important; font-size: 16px !important; letter-spacing: .02em; margin-bottom: 24px !important; }
.footer-section p, .footer-section li, .footer-section a { color: #aebbd0 !important; }
.footer-section a:hover { color: #fff !important; }
.footer-section .footer-menu li { margin-bottom: 11px; }
.footer-section .footer-menu i { color: #65aee8; width: 22px; }
.footer-logo { display: inline-flex; align-items: center; justify-content: center; padding: 12px 16px; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 10px 26px rgba(0,0,0,.18); }
.footer-logo img { max-width: 150px; margin: 0; filter: none; }
.header_social.footer-social-spacing a { border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: rgba(255,255,255,.04); }
.header_social.footer-social-spacing a:hover { background: var(--ns-blue); border-color: var(--ns-blue); transform: translateY(-2px); }
.header_social.footer-social-spacing, .header_social.footer-social-spacing ul { float: none !important; clear: both; }
.header_social.footer-social-spacing ul { display: flex; align-items: center; gap: 8px; }
.header_social.footer-social-spacing li { float: none !important; width: 40px !important; height: 40px !important; margin: 0 !important; }
.copyright-text { border-top: 1px solid rgba(255,255,255,.08) !important; background: transparent !important; padding: 22px 15px !important; color: #8594aa !important; }
.scrollup { right: 24px !important; bottom: 24px !important; width: 46px !important; height: 46px !important; line-height: 46px !important; border-radius: 12px !important; background: var(--ns-red) !important; box-shadow: 0 10px 24px rgba(197,34,69,.3); }

/* Lightweight reveal system, enhanced progressively by script.js */
.wow { visibility: visible !important; }
.ns-reveal { opacity: 1; transform: translateY(0); transition: opacity .62s ease, transform .62s cubic-bezier(.2,.8,.2,1); }
.js .ns-reveal { opacity: 0; transform: translateY(22px); }
.js .ns-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 991px) {
	.site-header-inner { padding: 0 22px; }
	.mobile-nav { width: 340px; }
	.mobile-nav-head { padding: 22px; }
	.mobile-nav ul li a { padding: 13px 24px; }
	.slider-section, .slide-area-content, .slider-layer { min-height: 560px; }
	.about_page_text { padding: 38px 0 0; }
	.section-pad, .section-pad-lg, .service-section, .about_page_content { padding: 70px 0; }
	.footer-widget-wrap { padding-top: 60px !important; }
}

@media (max-width: 767px) {
	body { font-size: 15px; }
	.slider-section, .slide-area-content, .slider-layer { min-height: 500px; }
	.slider-img { background-size: contain; background-repeat: no-repeat; background-color: #07172c; }
	.slider-img::before { background: linear-gradient(90deg, rgba(7,23,44,.9), rgba(7,23,44,.62)); }
	.slider-text h1, .slider-text .hero-heading { font-size: clamp(34px, 10vw, 48px) !important; }
	.client-counter-section { padding: 52px 0 34px; }
	.stats-row > div { margin-bottom: 24px !important; }
	.section-pad, .section-pad-lg, .service-section, .about_page_content { padding: 56px 0; }
	.section-title-area { padding-bottom: 34px; }
	.service-icon-text { padding: 28px 24px; }
	.contact_page_form .get-quote-section { padding: 30px 22px; }
	.contact-map-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
	.contact-map-iframe { height: 320px; min-height: 320px; }
	.breadcrumb_section { min-height: 220px; padding: 55px 0 42px !important; }
	.footer-section .site-widget { margin-bottom: 36px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.ns-reveal { opacity: 1; transform: none; }
	.site-logo:hover img, .service-icon-text:hover, .value-card:hover, .core-card:hover, .logo-card:hover, .blog-img-text:hover { transform: none !important; }
}

/* Partners & Customers — Star Constellation Matrix */
.constellation-page {
	--constellation-blue: var(--ns-blue);
	--constellation-red: var(--ns-red);
	--constellation-ink: var(--ns-ink);
	--constellation-muted: var(--ns-muted);
	background: #f5f7fa;
}

.constellation-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(72px, 8vw, 116px) 0 clamp(86px, 9vw, 132px);
	background:
		radial-gradient(circle at 8% 28%, rgba(197, 26, 44, .055), transparent 25%),
		radial-gradient(circle at 88% 16%, rgba(10, 75, 148, .08), transparent 29%),
		linear-gradient(180deg, #fbfcfe, #f3f6fa);
}

.constellation-heading {
	max-width: 880px;
	margin: 0 auto;
	text-align: center;
}

.constellation-kicker {
	display: block;
	margin-bottom: 16px;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.constellation-heading h1 {
	margin: 0;
	color: var(--constellation-ink);
	font-family: "Lexend", "Roboto", sans-serif !important;
	font-size: clamp(42px, 5.3vw, 72px);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -.055em;
	text-wrap: balance;
}

.constellation-heading p {
	max-width: 690px;
	margin: 22px auto 0;
	color: var(--constellation-muted);
	font-size: clamp(16px, 1.35vw, 19px);
	line-height: 1.7;
	text-wrap: pretty;
}

.constellation-filter {
	display: flex;
	justify-content: center;
	gap: 8px;
	max-width: 1120px;
	margin: 38px auto 0;
	padding: 5px;
	overflow-x: auto;
	scrollbar-width: none;
}

.constellation-filter::-webkit-scrollbar { display: none; }

.constellation-filter button {
	flex: 0 0 auto;
	min-height: 42px;
	padding: 9px 17px;
	border: 1px solid rgba(10, 75, 148, .1);
	border-radius: 999px;
	background: rgba(255, 255, 255, .74);
	color: #526278;
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: 13px;
	font-weight: 650;
	cursor: pointer;
	transition: color .22s ease, background-color .22s ease, border-color .22s ease, transform .22s ease;
}

.constellation-filter button:hover,
.constellation-filter button:focus-visible {
	border-color: rgba(10, 75, 148, .32);
	color: var(--constellation-blue);
	outline: none;
	transform: translateY(-1px);
}

.constellation-filter button.is-active {
	border-color: var(--constellation-blue);
	background: var(--constellation-blue);
	color: #fff;
	box-shadow: 0 9px 22px rgba(10, 75, 148, .17);
}

/* Orbit stage */
.constellation-stage {
	position: relative;
	width: min(760px, 100%);
	margin: 26px auto 0;
	padding: 6px 0 10px;
	isolation: isolate;
}

.constellation-bloom {
	position: absolute;
	inset: 12% 10% 14%;
	z-index: -1;
	border-radius: 50%;
	background:
		radial-gradient(circle at 42% 37%, rgba(197, 26, 44, .08), transparent 18%),
		radial-gradient(circle, rgba(10, 75, 148, .11), rgba(10, 75, 148, .02) 47%, transparent 72%);
	filter: blur(18px);
	animation: constellationBloom 6s ease-in-out infinite;
}

/* Page-level ring geometry (shared by guides, rings and nodes) */
.constellation-page--orbit {
	--ring-inner: min(318px, 54vw);
	--ring-outer: min(560px, 88vw);
}

.constellation-orbit {
	position: relative;
	width: var(--ring-outer);
	aspect-ratio: 1;
	margin: 0 auto;
}

.orbit-guide {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: 1px dashed rgba(10, 75, 148, .13);
	border-radius: 50%;
	pointer-events: none;
}
.orbit-guide--inner { width: var(--ring-inner); aspect-ratio: 1; }
.orbit-guide--outer { width: var(--ring-outer); aspect-ratio: 1; }

/* Rotating rings; logos stay upright via counter-rotation layers. */
.orbit-ring {
	--size: var(--ring-outer);
	--period: 60s;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: var(--size);
	aspect-ratio: 1;
	margin: calc(var(--size) / -2) 0 0 calc(var(--size) / -2);
	animation: orbitSpin var(--period) linear infinite;
	transform-origin: center;
}
.orbit-ring--inner { --size: var(--ring-inner); --period: 42s; }

@keyframes orbitSpin { from { transform: rotate(0); } to { transform: rotate(360deg); } }

.orbit-node {
	--badge: clamp(58px, 8vw, 76px);
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--badge);
	height: var(--badge);
	margin: calc(var(--badge) / -2) 0 0 calc(var(--badge) / -2);
	padding: 0;
	border: 0;
	background: transparent;
	transform: rotate(var(--angle)) translateY(calc(var(--size) / -2));
	cursor: pointer;
}
.orbit-node:focus-visible { outline: none; }
.orbit-node.is-empty { cursor: default; }

.node-unrotate { display: block; transform: rotate(calc(-1 * var(--angle))); }
.node-card {
	display: block;
	animation: orbitSpin var(--period, 60s) linear infinite reverse;
}

.node-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--badge);
	height: var(--badge);
	padding: 15px;
	border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 12px 30px rgba(7, 32, 64, .14), inset 0 0 0 1px rgba(10, 75, 148, .06);
	backdrop-filter: blur(10px);
	transition: transform .28s cubic-bezier(.2,.85,.2,1), box-shadow .28s ease, border-color .28s ease;
}
.node-badge img { max-width: 100%; max-height: 100%; object-fit: contain; }
.node-badge img[hidden] { display: none; }

/* Empty slots read as faint placeholder dots on the orbit path. */
.node-badge.is-empty {
	padding: 0;
	border-style: dashed;
	border-color: rgba(10, 75, 148, .18);
	background: rgba(255, 255, 255, .35);
	box-shadow: none;
}
.node-badge.is-empty::before {
	content: '';
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(10, 75, 148, .22);
}

.orbit-node.is-populated:hover .node-badge,
.orbit-node:focus-visible .node-badge,
.orbit-node.is-pinned .node-badge {
	transform: scale(1.16);
	border-color: rgba(10, 75, 148, .55);
	box-shadow: 0 18px 40px rgba(7, 32, 64, .22), 0 0 0 5px rgba(10, 75, 148, .1);
}
.orbit-node.constellation-node--accent .node-badge { border-color: rgba(201, 37, 71, .45); }
.orbit-node.constellation-node--accent.is-populated:hover .node-badge,
.orbit-node.constellation-node--accent:focus-visible .node-badge,
.orbit-node.constellation-node--accent.is-pinned .node-badge {
	border-color: rgba(201, 37, 71, .65);
	box-shadow: 0 18px 40px rgba(120, 20, 40, .18), 0 0 0 5px rgba(201, 37, 71, .1);
}

/* Pause the whole system while a visitor reads. */
.constellation-stage:hover .orbit-ring,
.constellation-stage:hover .node-card,
.constellation-stage:focus-within .orbit-ring,
.constellation-stage:focus-within .node-card { animation-play-state: paused; }

/* Central hub: brand face + stationary detail card (hover/focus/tap target). */
.constellation-hub {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 5;
	width: clamp(118px, 16vw, 164px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
}
.hub-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, .78);
	border-radius: 50%;
	background: rgba(255, 255, 255, .88);
	box-shadow: 0 20px 48px rgba(7, 32, 64, .17), inset 0 0 0 1px rgba(10, 75, 148, .07);
	backdrop-filter: blur(12px);
	transition: opacity .25s ease, transform .3s ease;
}
.hub-brand img { max-width: 100%; max-height: 100%; object-fit: contain; }

.stage-has-hub-detail .hub-brand,
.has-detail .hub-brand { opacity: 0; transform: scale(.86); pointer-events: none; }

.hub-detail {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 6;
	width: min(280px, 74vw);
	padding: 20px 22px;
	border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 16px;
	background: rgba(8, 26, 51, .93);
	box-shadow: 0 22px 52px rgba(7, 25, 49, .28);
	color: #fff;
	text-align: center;
	backdrop-filter: blur(14px);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -46%) scale(.92);
	transition: opacity .22s ease, transform .28s cubic-bezier(.2,.85,.2,1);
}
.has-detail .hub-detail {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, -50%) scale(1);
}
.hub-detail strong {
	display: block;
	color: #fff;
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-wrap: balance;
}
.hub-detail small {
	display: block;
	margin-top: 4px;
	color: #8ec6f5;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.hub-detail p {
	margin: 9px 0 0;
	color: #cad7e6;
	font-size: 13px;
	line-height: 1.5;
}
.hub-detail a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 12px;
	padding: 7px 15px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease;
}
.hub-detail a:hover { background: var(--ns-blue, #0D509F); }
.hub-detail a[hidden] { display: none; }

/* Rotation page-change transition */
.constellation-stage.is-rotating .constellation-orbit {
	opacity: .55;
	transform: perspective(800px) rotateY(3deg) scale(.985);
}
.constellation-orbit { transition: opacity .24s ease, transform .3s ease; }

.constellation-status {
	min-height: 20px;
	margin: 14px 0 0;
	color: #7b899a;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-align: center;
}

@keyframes constellationBreath {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.04); }
}

@keyframes constellationBloom {
	0%, 100% { opacity: .65; transform: scale(.98); }
	50% { opacity: 1; transform: scale(1.035); }
}

@keyframes constellationEnter {
	0% { opacity: 0; transform: scale(.4) rotate(-45deg); }
	100% { opacity: 1; transform: scale(1) rotate(0); }
}

@media (max-width: 767px) {
	.constellation-hero { padding: 54px 0 78px; }
	.constellation-heading { padding: 0 9px; }
	.constellation-heading h1 { font-size: clamp(37px, 11vw, 50px); }
	.constellation-heading p { font-size: 15px; line-height: 1.65; }
	.constellation-filter { justify-content: flex-start; margin-top: 30px; padding-inline: 4px; }
	.constellation-filter button { min-height: 39px; padding: 8px 14px; font-size: 12px; }
	.constellation-page--orbit { --ring-inner: min(168px, 46vw); --ring-outer: min(292px, 84vw); }
	.constellation-stage { margin-top: 20px; padding-bottom: 8px; }
	.orbit-node { --badge: clamp(44px, 12vw, 56px); }
	.node-badge { padding: 10px; }
	.node-badge.is-empty::before { width: 5px; height: 5px; }
	.constellation-hub { width: clamp(88px, 24vw, 108px); }
	.hub-brand { padding: 16px; }
	.hub-detail { width: min(240px, 78vw); padding: 16px 18px; }
	.hub-detail strong { font-size: 14px; }
	.hub-detail p { font-size: 12px; }
	.constellation-status { font-size: 11px; padding: 0 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.constellation-bloom,
	.orbit-ring,
	.node-card { animation: none !important; }
	.node-badge,
	.hub-brand,
	.hub-detail,
	.constellation-orbit { transition: none !important; }
}

/* Partners and customers: department-led brand directories */
.brand-directory { --directory-navy: #071b34; --directory-blue: #075da8; --directory-line: rgba(11,31,58,.1); --directory-soft: #f3f7fb; color: var(--ns-ink); }
.brand-directory .directory-intro { padding: 92px 0 70px; background: #fff; }
.directory-intro-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); gap: clamp(48px,8vw,110px); align-items: end; }
.directory-heading h2, .customer-intro-content h2 { max-width: 760px; margin: 14px 0 0; font-size: clamp(36px,5vw,60px); line-height: 1.08; letter-spacing: -.04em; text-wrap: balance; }
.directory-eyebrow, .directory-section-head > div > span, .customer-group-head > span, .customer-closing-panel > div > span, .cta-kicker { display: block; color: var(--ns-red); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.directory-intro-copy > p, .customer-intro-content > p { margin: 0; color: var(--ns-muted); font-size: 18px; line-height: 1.75; text-wrap: pretty; }
.directory-metric { display: flex; align-items: baseline; gap: 13px; margin-top: 25px; padding-top: 22px; border-top: 1px solid var(--directory-line); }
.directory-metric strong { color: var(--directory-blue); font-family: "Lexend",sans-serif !important; font-size: 31px; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.directory-metric span { color: var(--ns-muted); font-size: 14px; font-weight: 600; }
.directory-jump-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 58px; padding-top: 24px; border-top: 1px solid var(--directory-line); }
.directory-jump-nav > span { margin-right: 9px; color: var(--directory-navy); font-size: 13px; font-weight: 700; }
.directory-jump-nav a { padding: 9px 13px; border: 1px solid var(--directory-line); border-radius: 8px; color: var(--ns-muted); background: #fff; font-size: 13px; font-weight: 600; transition: color .2s ease,border-color .2s ease,transform .2s ease; }
.directory-jump-nav a:hover { color: var(--directory-blue); border-color: rgba(7,93,168,.32); transform: translateY(-2px); }
.partner-department { padding: 88px 0 98px; scroll-margin-top: 90px; }
.partner-department-tinted, .customer-group-tinted { background: var(--directory-soft); }
.directory-section-head { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 24px; align-items: center; margin-bottom: 38px; padding-bottom: 30px; border-bottom: 1px solid var(--directory-line); }
.directory-section-icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 17px; background: #e8f3fc; color: var(--directory-blue); box-shadow: inset 0 0 0 1px rgba(7,93,168,.08); }
.directory-section-icon i { font-size: 25px; }
.directory-section-head h2, .customer-group-head h2 { margin: 5px 0 7px; color: var(--directory-navy); font-size: clamp(28px,3.5vw,40px); letter-spacing: -.025em; }
.directory-section-head p { max-width: 700px; margin: 0; color: var(--ns-muted); font-size: 16px; }
.directory-count { min-width: 90px; color: var(--directory-blue); font-family: "Lexend",sans-serif !important; font-size: 30px; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.directory-count span { display: block; color: var(--ns-muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.directory-logo-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.directory-logo-card { position: relative; display: flex; min-width: 0; min-height: 154px; align-items: center; justify-content: center; padding: 28px 24px 48px; overflow: hidden; border: 1px solid var(--directory-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(11,31,58,.045); transition: transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s ease,box-shadow .28s ease; }
.directory-logo-card::before { content: ''; position: absolute; top: 0; left: 24px; right: 24px; height: 2px; background: var(--directory-blue); opacity: 0; transform: scaleX(.4); transition: opacity .28s ease,transform .28s ease; }
.directory-logo-card:hover { z-index: 1; transform: translateY(-5px); border-color: rgba(7,93,168,.25); box-shadow: 0 18px 38px rgba(11,31,58,.1); }
.directory-logo-card:hover::before { opacity: 1; transform: scaleX(1); }
.directory-logo-card img { display: block; width: auto; max-width: 84%; height: 66px; object-fit: contain; filter: saturate(.88); transition: filter .25s ease,transform .25s ease; }
.directory-logo-card:hover img { filter: saturate(1); transform: scale(1.025); }
.directory-logo-fallback { color: var(--directory-navy); font-family: "Lexend",sans-serif !important; font-size: 18px; font-weight: 600; text-align: center; text-wrap: balance; }
.directory-logo-fallback[hidden] { display: none; }
.directory-logo-name { position: absolute; right: 12px; bottom: 12px; left: 12px; overflow: hidden; color: #68778a; font-size: 12px; font-weight: 600; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.directory-additional-brands { margin: 25px 0 0; padding: 18px 20px; border-left: 3px solid var(--ns-red); background: rgba(255,255,255,.78); color: var(--ns-muted); font-size: 14px; line-height: 1.7; }
.directory-additional-brands strong { color: var(--directory-navy); }
.directory-empty { padding: 34px; border: 1px dashed rgba(7,93,168,.22); border-radius: 14px; color: var(--ns-muted); background: rgba(255,255,255,.62); text-align: center; }
.brand-directory .cta-band p { margin: -14px auto 26px; color: rgba(255,255,255,.72); font-size: 16px; }
.brand-directory .cta-kicker { margin-bottom: 12px; color: #8fc8f3; }

/* Customer directory uses a quieter editorial split while sharing the logo system. */
.customer-intro { padding: 92px 0 62px; background: #fff; }
.customer-intro-panel { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(310px,.65fr); gap: clamp(50px,9vw,120px); align-items: end; }
.customer-intro-content > p { max-width: 700px; margin-top: 25px; }
.customer-proof { display: grid; border-top: 1px solid var(--directory-line); }
.customer-proof > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 19px 0; border-bottom: 1px solid var(--directory-line); }
.customer-proof strong { color: var(--directory-blue); font-family: "Lexend",sans-serif !important; font-size: 28px; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.customer-proof span { color: var(--ns-muted); font-size: 13px; font-weight: 600; text-align: right; }
.customer-group { padding: 94px 0; scroll-margin-top: 90px; }
.customer-group-layout { display: grid; grid-template-columns: minmax(245px,.32fr) minmax(0,.68fr); gap: clamp(45px,8vw,105px); align-items: start; }
.customer-group-head { position: sticky; top: 112px; }
.customer-group-head .directory-section-icon { margin-bottom: 25px; }
.customer-group-head > p { margin: 14px 0 25px; color: var(--ns-muted); font-size: 16px; line-height: 1.7; }
.customer-group-count { display: inline-flex; align-items: baseline; gap: 7px; padding-top: 18px; border-top: 1px solid var(--directory-line); color: var(--ns-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.customer-group-count strong { color: var(--directory-blue); font-family: "Lexend",sans-serif !important; font-size: 24px; font-variant-numeric: tabular-nums; }
.customer-logo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.customer-logo-card { min-height: 160px; }
.customer-more { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--directory-line); }
.customer-more > span { display: block; margin-bottom: 12px; color: var(--directory-navy); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.customer-more ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.customer-more li { padding: 8px 11px; border-radius: 7px; background: #eaf1f7; color: #56677a; font-size: 12px; font-weight: 600; }
.customer-group-tinted .customer-more li { background: #fff; border: 1px solid var(--directory-line); }
.customer-closing { padding: 48px 0 96px; background: var(--directory-soft); }
.customer-closing-panel { display: grid; grid-template-columns: 1fr .8fr auto; gap: 38px; align-items: center; padding: 43px 46px; border-radius: 20px; background: linear-gradient(120deg,var(--directory-navy),#0b3d70); box-shadow: 0 24px 55px rgba(7,27,52,.18); }
.customer-closing-panel h2 { max-width: 520px; margin: 7px 0 0; color: #fff; font-size: clamp(25px,3vw,34px); line-height: 1.24; letter-spacing: -.025em; }
.customer-closing-panel > div > span { color: #8fc8f3; }
.customer-closing-panel > p { margin: 0; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.65; }
.customer-closing-panel .btn { white-space: nowrap; }

@media (max-width: 991px) {
	.directory-intro-grid, .customer-intro-panel { grid-template-columns: 1fr; gap: 34px; }
	.directory-logo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.customer-group-layout { grid-template-columns: 1fr; gap: 34px; }
	.customer-group-head { position: static; max-width: 620px; }
	.customer-logo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.customer-closing-panel { grid-template-columns: 1fr auto; }
	.customer-closing-panel > p { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 767px) {
	.brand-directory .directory-intro, .customer-intro { padding: 60px 0 44px; }
	.directory-heading h2, .customer-intro-content h2 { font-size: clamp(33px,10vw,45px); }
	.directory-intro-copy > p, .customer-intro-content > p { font-size: 16px; }
	.directory-jump-nav { margin-top: 40px; align-items: stretch; }
	.directory-jump-nav > span { flex: 0 0 100%; margin-bottom: 3px; }
	.directory-jump-nav a { flex: 1 1 calc(50% - 10px); text-align: center; }
	.partner-department, .customer-group { padding: 64px 0 70px; }
	.directory-section-head { grid-template-columns: 58px minmax(0,1fr); gap: 16px; align-items: start; }
	.directory-section-icon { width: 54px; height: 54px; border-radius: 14px; }
	.directory-section-head h2 { font-size: 27px; }
	.directory-count { grid-column: 2; text-align: left; }
	.directory-logo-grid, .customer-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
	.directory-logo-card, .customer-logo-card { min-height: 132px; padding: 22px 14px 42px; }
	.directory-logo-card img { height: 54px; }
	.customer-closing { padding: 22px 0 64px; }
	.customer-closing-panel { grid-template-columns: 1fr; gap: 23px; padding: 34px 26px; }
	.customer-closing-panel > p { grid-column: auto; grid-row: auto; }
	.customer-closing-panel .btn { justify-self: start; }
}

/* Directory refinement: reference-led logo boards for partners and customers */
body #preloader {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 50% 38%, rgba(7, 93, 168, .1), transparent 42%),
		radial-gradient(circle at 82% 88%, rgba(201, 37, 71, .05), transparent 40%),
		linear-gradient(168deg, #f5f9fd 0%, #e9f1f9 58%, #f2f7fc 100%);
}
.preloader-badge {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 148px;
	height: 148px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 18px 44px rgba(7, 42, 82, .16);
}
.preloader-badge img {
	width: 88px;
	height: 88px;
	padding: 8px;
	box-sizing: border-box;
	border-radius: 14px;
	object-fit: contain;
	object-position: center;
	animation: preloaderPulse 1.6s ease-in-out infinite;
}
.preloader-ring {
	position: absolute;
	inset: -12px;
	border-radius: 50%;
	background: conic-gradient(from 0deg, #0D509F, #4da3e8 34%, rgba(255, 255, 255, .25) 50%, #4da3e8 66%, #C92547);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
	animation: preloaderSpin 1.15s linear infinite;
}
@keyframes preloaderSpin { to { transform: rotate(360deg); } }
@keyframes preloaderPulse {
	0%, 100% { transform: scale(.94); opacity: .88; }
	50% { transform: scale(1); opacity: 1; }
}

.brand-directory {
	--directory-navy: #071b34;
	--directory-blue: #075da8;
	--directory-red: var(--ns-red);
	--directory-paper: #fff;
	--directory-field: #f4f6f9;
	--directory-line: rgba(7, 27, 52, .095);
	background:
		linear-gradient(180deg, #f6f8fb 0%, #fff 18%, #f5f8fb 100%);
}
.brand-directory .directory-intro,
.brand-directory .customer-intro {
	padding: clamp(70px, 9vw, 118px) 0 clamp(34px, 5vw, 58px);
	background:
		linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.72)),
		radial-gradient(circle at 12% 18%, rgba(7, 93, 168, .08), transparent 32%);
}
.directory-intro-grid,
.customer-intro-panel {
	display: block;
	max-width: 980px;
	margin: 0 auto;
	text-align: center;
}
.directory-heading h2,
.customer-intro-content h2 {
	max-width: 820px;
	margin: 13px auto 0;
	color: #101828;
	font-size: clamp(34px, 4.6vw, 52px);
	line-height: 1.12;
	letter-spacing: 0;
}
.directory-eyebrow,
.directory-section-head > div > span,
.customer-group-head > span,
.customer-closing-panel > div > span,
.cta-kicker {
	color: #1d4f99;
	font-size: 11px;
	letter-spacing: .13em;
}
.directory-intro-copy,
.customer-intro-content {
	max-width: 760px;
	margin: 22px auto 0;
}
.directory-intro-copy > p,
.customer-intro-content > p {
	margin-right: auto;
	margin-left: auto;
	color: #5b6778;
	font-size: 17px;
	line-height: 1.75;
}
.directory-metric,
.customer-proof {
	display: inline-grid;
	grid-auto-flow: column;
	gap: 0;
	margin: 30px auto 0;
	overflow: hidden;
	border: 1px solid var(--directory-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(11, 31, 58, .055);
}
.directory-metric {
	grid-auto-flow: row;
	padding: 18px 24px;
	text-align: left;
}
.customer-proof > div {
	display: grid;
	min-width: 158px;
	padding: 18px 22px;
	border: 0;
	border-right: 1px solid var(--directory-line);
	text-align: left;
}
.customer-proof > div:last-child { border-right: 0; }
.directory-metric strong,
.customer-proof strong {
	color: #071b34;
	font-size: 27px;
	letter-spacing: 0;
}
.directory-metric span,
.customer-proof span {
	color: #6a7585;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-align: left;
	text-transform: uppercase;
}
.directory-jump-nav {
	justify-content: center;
	max-width: 1040px;
	margin: 42px auto 0;
	padding-top: 0;
	border-top: 0;
}
.directory-jump-nav > span {
	flex: 0 0 100%;
	margin: 0 0 8px;
	color: #071b34;
	text-align: center;
}
.directory-jump-nav a {
	border-radius: 7px;
	background: rgba(255, 255, 255, .8);
	box-shadow: 0 9px 22px rgba(7, 27, 52, .04);
}
.partner-department,
.customer-group {
	padding: 34px 0;
	background: transparent !important;
	scroll-margin-top: 94px;
}
.partner-department .container,
.customer-group .container {
	position: relative;
	padding: clamp(34px, 5vw, 58px);
	overflow: hidden;
	border: 1px solid var(--directory-line);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
		#fff;
	box-shadow: 0 24px 70px rgba(11, 31, 58, .08);
}
.partner-department .container::before,
.customer-group .container::before {
	content: '';
	position: absolute;
	top: 0;
	left: clamp(30px, 5vw, 58px);
	right: clamp(30px, 5vw, 58px);
	height: 3px;
	background: linear-gradient(90deg, var(--directory-blue), var(--directory-red), var(--directory-blue));
	opacity: .88;
}
.directory-section-head,
.customer-group-layout {
	display: block;
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--directory-line);
	text-align: center;
}
.customer-group-head {
	position: static;
	max-width: 760px;
	margin: 0 auto;
}
.directory-section-icon,
.customer-group-head .directory-section-icon {
	width: 58px;
	height: 58px;
	margin: 0 auto 17px;
	border-radius: 8px;
	background: #f0f6fc;
}
.directory-section-head h2,
.customer-group-head h2 {
	margin: 8px auto 9px;
	color: #101828;
	font-size: clamp(25px, 3vw, 34px);
	letter-spacing: 0;
}
.directory-section-head p,
.customer-group-head > p {
	max-width: 720px;
	margin: 0 auto;
	color: #667085;
	font-size: 15px;
	line-height: 1.7;
}
.directory-count,
.customer-group-count {
	display: inline-flex;
	align-items: baseline;
	gap: 7px;
	min-width: 0;
	margin-top: 18px;
	padding: 9px 13px;
	border: 1px solid var(--directory-line);
	border-radius: 7px;
	background: #f9fbfd;
	color: #5b6778;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-align: center;
	text-transform: uppercase;
}
.directory-count {
	font-family: inherit !important;
}
.directory-count span { display: inline; font-size: inherit; letter-spacing: inherit; }
.directory-logo-grid,
.customer-logo-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.6vw, 18px);
}
.directory-logo-card,
.customer-logo-card {
	min-height: 104px;
	padding: 23px 24px 31px;
	border: 1px solid rgba(7, 27, 52, .1);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 12px 24px rgba(11, 31, 58, .045);
}
.directory-logo-card::before {
	left: 18px;
	right: 18px;
	height: 2px;
	background: linear-gradient(90deg, var(--directory-blue), var(--directory-red));
}
.directory-logo-card:hover {
	transform: translateY(-4px);
	border-color: rgba(7, 93, 168, .24);
	box-shadow: 0 18px 34px rgba(11, 31, 58, .095);
}
.directory-logo-card img {
	max-width: 82%;
	height: 46px;
	filter: none;
}
.directory-logo-card img[hidden] + .directory-logo-fallback,
.directory-logo-card .directory-logo-fallback:not([hidden]) {
	display: block;
	max-width: 92%;
	color: #10243f;
	font-size: clamp(15px, 1.25vw, 20px);
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: 0;
}
.directory-logo-card:has(img[hidden]) .directory-logo-name,
.directory-logo-card:not(:has(img)) .directory-logo-name {
	display: none;
}
.directory-logo-name {
	bottom: 9px;
	color: #7a8493;
	font-size: 11px;
}
.customer-group-content {
	margin-top: 0;
}
.customer-more {
	max-width: 920px;
	margin: 28px auto 0;
	padding-top: 20px;
	text-align: center;
}
.customer-more ul {
	justify-content: center;
}
.customer-more li {
	border: 1px solid var(--directory-line);
	border-radius: 7px;
	background: #f8fafc;
}
.directory-additional-brands {
	max-width: 900px;
	margin: 24px auto 0;
	border-left: 0;
	border-top: 2px solid rgba(201, 24, 61, .62);
	border-radius: 0 0 8px 8px;
	text-align: center;
}
.customer-closing {
	padding: 40px 0 92px;
	background: transparent;
}
.customer-closing-panel {
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(7, 27, 52, .98), rgba(7, 93, 168, .94)),
		#071b34;
	box-shadow: 0 24px 60px rgba(7, 27, 52, .18);
}

@media (max-width: 991px) {
	.directory-logo-grid,
	.customer-logo-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.directory-metric,
	.customer-proof {
		grid-auto-flow: row;
	}
	.customer-proof > div {
		border-right: 0;
		border-bottom: 1px solid var(--directory-line);
	}
	.customer-proof > div:last-child { border-bottom: 0; }
}
@media (max-width: 767px) {
	.brand-directory .directory-intro,
	.brand-directory .customer-intro {
		padding: 56px 0 30px;
	}
	.partner-department,
	.customer-group {
		padding: 18px 0;
	}
	.partner-department .container,
	.customer-group .container {
		padding: 30px 18px;
	}
	.directory-logo-grid,
	.customer-logo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.directory-logo-card,
	.customer-logo-card {
		min-height: 102px;
		padding: 20px 12px 30px;
	}
	.directory-logo-card img {
		height: 40px;
	}
	.preloader-badge {
		width: 124px;
		height: 124px;
	}
	.preloader-badge img {
		width: 74px;
		height: 74px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.preloader-badge img,
	.preloader-ring { animation: none !important; }
}

/* ============================================================
   Solutions page — consolidated department portfolio
   ============================================================ */
.solutions-page {
	--solutions-ink: #0b1f3a;
	--solutions-blue: #075da8;
	--solutions-soft: #f4f7fb;
	--solutions-line: rgba(11, 31, 58, .11);
	background: #fff;
}

.solutions-page .solutions-eyebrow {
	display: block;
	margin-bottom: 13px;
	color: var(--solutions-blue);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.solutions-page .solutions-eyebrow--light { color: #9fd1fa; }

.solutions-page .solutions-overview {
	position: relative;
	overflow: hidden;
	padding: 92px 0 104px;
	background:
		radial-gradient(circle at 88% 8%, rgba(7, 93, 168, .08), transparent 29%),
		linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.solutions-page .solutions-overview::before {
	content: '';
	position: absolute;
	top: 0;
	left: calc(50% - 590px);
	width: 82px;
	height: 3px;
	background: var(--solutions-blue);
}

.solutions-page .solutions-constellation {
	position: relative;
	overflow: hidden;
	padding: clamp(42px, 6vw, 70px) clamp(22px, 4vw, 54px) clamp(36px, 5vw, 58px);
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 8px;
	background:
		radial-gradient(circle at 50% 62%, rgba(7,93,168,.11), transparent 24%),
		radial-gradient(circle at 92% 10%, rgba(201,24,61,.08), transparent 24%),
		linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,253,.94));
	box-shadow: 0 26px 74px rgba(11,31,58,.09);
}

.solutions-page .solutions-constellation::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(7,27,52,.028) 1px, transparent 1px),
		linear-gradient(90deg, rgba(7,27,52,.028) 1px, transparent 1px);
	background-size: 42px 42px;
	mask-image: radial-gradient(circle at center, #000 0 44%, transparent 82%);
	pointer-events: none;
}

.solutions-page .solutions-constellation__intro {
	position: relative;
	z-index: 2;
	max-width: 860px;
	margin: 0 auto clamp(34px, 5vw, 56px);
	text-align: center;
}

.solutions-page .solutions-constellation__intro h2 {
	max-width: 820px;
	margin: 0 auto 14px;
	color: var(--solutions-ink);
	font-size: clamp(34px, 4.7vw, 58px);
	line-height: 1.08;
	letter-spacing: 0;
	text-wrap: balance;
}

.solutions-page .solutions-constellation__intro p {
	max-width: 760px;
	margin: 0 auto;
	color: #536277;
	font-size: 17px;
	line-height: 1.75;
	text-wrap: pretty;
}

.solutions-page .solutions-orbit {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(190px, 260px) minmax(0, 1fr);
	align-items: center;
	gap: clamp(18px, 3vw, 36px);
}

.solutions-page .solutions-orbit__group {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
	gap: 12px;
	align-items: center;
}

.solutions-page .solutions-orbit__center {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	padding: 34px;
	clip-path: polygon(50% 0, 92% 25%, 92% 75%, 50% 100%, 8% 75%, 8% 25%);
	background:
		linear-gradient(145deg, #fff, #f3f8fc);
	box-shadow: 0 26px 54px rgba(7,27,52,.14);
	animation: solutionsCenterFloat 5.4s ease-in-out infinite;
}

.solutions-page .solutions-orbit__center::after {
	content: '';
	position: absolute;
	inset: 11px;
	clip-path: inherit;
	border: 1px solid rgba(7,93,168,.12);
	pointer-events: none;
}

.solutions-page .solutions-orbit__center img {
	position: relative;
	z-index: 2;
	max-width: 86%;
	max-height: 86%;
	object-fit: contain;
}

.solutions-page .solutions-orbit__rings {
	position: absolute;
	inset: -20px;
	border: 1px solid rgba(7,93,168,.12);
	border-radius: 50%;
	animation: solutionsOrbitPulse 3.4s ease-in-out infinite;
}

.solutions-page .solutions-orbit-logo {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 118px;
	padding: 22px;
	clip-path: polygon(50% 0, 92% 25%, 92% 75%, 50% 100%, 8% 75%, 8% 25%);
	background: #fff;
	box-shadow: 0 14px 28px rgba(11,31,58,.09);
	animation: solutionsLogoDrift 4.8s ease-in-out infinite;
	animation-delay: calc(var(--orbit-delay, 0) * -.18s);
	transition: transform .24s ease, box-shadow .24s ease;
}

.solutions-page .solutions-orbit-logo:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 36px rgba(11,31,58,.13);
}

.solutions-page .solutions-orbit-logo img {
	max-width: 82%;
	max-height: 48px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.solutions-page .solutions-orbit-logo span {
	color: var(--solutions-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-wrap: balance;
}

.solutions-page .solutions-orbit-logo span[hidden] { display: none; }

@keyframes solutionsCenterFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-7px); }
}

@keyframes solutionsOrbitPulse {
	0%, 100% { opacity: .28; transform: scale(.96); }
	50% { opacity: .7; transform: scale(1.06); }
}

@keyframes solutionsLogoDrift {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-5px); }
}

.solutions-page .solutions-overview__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
	align-items: end;
	gap: clamp(40px, 8vw, 110px);
	margin-bottom: 52px;
}

.solutions-page .solutions-overview__heading h2 {
	max-width: 740px;
	margin: 0;
	color: var(--solutions-ink);
	font-size: clamp(36px, 4.7vw, 62px);
	line-height: 1.06;
	letter-spacing: -.045em;
	text-wrap: balance;
}

.solutions-page .solutions-overview__heading > p {
	max-width: 490px;
	margin: 0 0 5px;
	color: #536277;
	font-size: 18px;
	line-height: 1.7;
	text-wrap: pretty;
}

.solutions-page .solutions-index {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 8px;
	margin-top: 22px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.solutions-page .solutions-index__item {
	position: relative;
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	min-height: 58px;
	padding: 11px 13px;
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 8px;
	background: rgba(255, 255, 255, .72);
	transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}

.solutions-page .solutions-index__item:hover,
.solutions-page .solutions-index__item:focus-visible {
	z-index: 2;
	background: #fff;
	box-shadow: 0 18px 44px rgba(7, 93, 168, .12);
	transform: translateY(-3px);
}

.solutions-page .solutions-index__item:focus-visible {
	outline: 3px solid rgba(7, 93, 168, .27);
	outline-offset: -3px;
}

.solutions-page .solutions-index__icon,
.solutions-page .solutions-division__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 54px;
	height: 54px;
	border: 1px solid rgba(7, 93, 168, .11);
	border-radius: 15px;
	background: #edf5fc;
	color: var(--solutions-blue);
}

.solutions-page .solutions-index__icon {
	width: 30px;
	height: 30px;
	border-radius: 8px;
}

.solutions-page .solutions-index__icon img,
.solutions-page .solutions-division__icon img,
.solutions-page .solutions-offering img {
	object-fit: contain;
}

.solutions-page .solutions-index__copy { min-width: 0; }

.solutions-page .solutions-index__copy strong {
	display: block;
	margin-bottom: 0;
	color: var(--solutions-ink);
	font-family: "Lexend", "Roboto", sans-serif !important;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.25;
}

.solutions-page .solutions-index__copy small {
	display: none;
	color: #68778a;
	font-size: 14px;
	line-height: 1.45;
}

.solutions-page .solutions-index__arrow {
	display: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: var(--solutions-blue);
	font-size: 19px;
	transition: color .22s ease, background .22s ease, transform .22s ease;
}

.solutions-page .solutions-index__item:hover .solutions-index__arrow {
	background: var(--solutions-blue);
	color: #fff;
	transform: translateY(3px);
}

.solutions-page .solutions-division {
	position: relative;
	padding: 104px 0 112px;
	scroll-margin-top: 110px;
}

.solutions-page .solutions-division:nth-child(even) { background: var(--solutions-soft); }

.solutions-page .solutions-division__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(380px, .88fr);
	align-items: center;
	gap: clamp(55px, 8vw, 112px);
}

.solutions-page .solutions-division--reverse .solutions-division__content { order: 2; }
.solutions-page .solutions-division--reverse .solutions-division__visual { order: 1; }

.solutions-page .solutions-division__title-row {
	display: flex;
	align-items: center;
	gap: 19px;
	margin-bottom: 23px;
}

.solutions-page .solutions-division__icon {
	width: 58px;
	height: 58px;
	border-radius: 17px;
	background: #eaf3fb;
}

.solutions-page .solutions-division__title-row h2 {
	margin: 0;
	color: var(--solutions-ink);
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.12;
	letter-spacing: -.035em;
	text-wrap: balance;
}

.solutions-page .solutions-division__brief {
	max-width: 690px;
	margin: 0;
	color: #45566c;
	font-size: 17px;
	line-height: 1.75;
	text-wrap: pretty;
}

.solutions-page .solutions-division__visual {
	position: relative;
	overflow: hidden;
	min-height: 430px;
	border-radius: 24px 24px 8px 24px;
	background: #edf2f7;
	box-shadow: 0 28px 64px rgba(11, 31, 58, .16);
}

.solutions-page .solutions-division--reverse .solutions-division__visual {
	border-radius: 24px 24px 24px 8px;
}

.solutions-page .solutions-division__visual::after {
	content: '';
	position: absolute;
	inset: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .42);
	pointer-events: none;
}

.solutions-page .solutions-division__visual > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.2, .8, .2, 1);
}

.solutions-page .solutions-division__visual:hover > img { transform: scale(1.035); }

.solutions-page .solutions-division__visual--contain {
	background: linear-gradient(145deg, #fff, #edf3f8);
}

.solutions-page .solutions-division__visual--contain > img {
	inset: 58px;
	width: calc(100% - 116px);
	height: calc(100% - 116px);
	object-fit: contain;
}

.solutions-page .solutions-division__visual--dark { background: #080c10; }
.solutions-page .solutions-division__visual--dark > img { object-fit: contain; }

.solutions-page .solutions-division__visual-label {
	position: absolute;
	z-index: 2;
	right: 18px;
	bottom: 18px;
	left: 18px;
	padding: 14px 17px;
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 11px;
	background: rgba(8, 27, 51, .84);
	box-shadow: 0 10px 28px rgba(7, 23, 44, .16);
	color: rgba(255, 255, 255, .9);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
	backdrop-filter: blur(10px);
}

.solutions-page .solutions-offerings {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-top: 34px;
	border: 1px solid var(--solutions-line);
	background: var(--solutions-line);
}

.solutions-page .solutions-offering {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	min-height: 98px;
	padding: 18px;
	background: #fff;
}

.solutions-page .solutions-offering:last-child:nth-child(odd) { grid-column: 1 / -1; }

.solutions-page .solutions-offering > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: #edf5fc;
	color: var(--solutions-blue);
}

.solutions-page .solutions-offering strong,
.solutions-page .solutions-offering small { display: block; }

.solutions-page .solutions-offering strong {
	margin-bottom: 4px;
	color: var(--solutions-ink);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

.solutions-page .solutions-offering small {
	color: #6a7889;
	font-size: 12px;
	line-height: 1.45;
}

.solutions-page .solutions-manufacturers {
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--solutions-line);
}

.solutions-page .solutions-manufacturers__label {
	display: block;
	margin-bottom: 13px;
	color: #718095;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.solutions-page .solutions-manufacturers__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.solutions-page .solutions-manufacturer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 116px;
	height: 64px;
	padding: 11px 14px;
	border: 1px solid var(--solutions-line);
	border-radius: 10px;
	background: #fff;
	transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.solutions-page .solutions-manufacturer:hover {
	border-color: rgba(7, 93, 168, .25);
	box-shadow: 0 10px 24px rgba(11, 31, 58, .09);
	transform: translateY(-2px);
}

.solutions-page .solutions-manufacturer img {
	max-width: 100%;
	max-height: 40px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.solutions-page .solutions-cta-copy {
	max-width: 660px;
	margin: -12px auto 28px;
	color: rgba(255, 255, 255, .74);
	font-size: 17px;
	line-height: 1.65;
}

@media (max-width: 991px) {
	.solutions-page .solutions-overview { padding: 74px 0 82px; }
	.solutions-page .solutions-overview::before { left: 30px; }
	.solutions-page .solutions-orbit { grid-template-columns: 1fr; }
	.solutions-page .solutions-orbit__center {
		width: min(250px, 72vw);
		margin: 0 auto;
		order: -1;
	}
	.solutions-page .solutions-orbit__group {
		grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
		max-width: 640px;
		margin: 0 auto;
		width: 100%;
	}
	.solutions-page .solutions-overview__heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 42px; }
	.solutions-page .solutions-overview__heading > p { max-width: 650px; }
	.solutions-page .solutions-division { padding: 78px 0 86px; }
	.solutions-page .solutions-division__layout { grid-template-columns: 1fr; gap: 46px; }
	.solutions-page .solutions-division--reverse .solutions-division__content,
	.solutions-page .solutions-division--reverse .solutions-division__visual { order: initial; }
	.solutions-page .solutions-division__visual { min-height: 400px; }
}

@media (max-width: 767px) {
	.solutions-page .solutions-overview { padding: 60px 0 68px; }
	.solutions-page .solutions-overview::before { left: 20px; }
	.solutions-page .solutions-constellation { padding: 34px 16px 28px; }
	.solutions-page .solutions-constellation__intro { margin-bottom: 28px; }
	.solutions-page .solutions-constellation__intro h2 { font-size: clamp(31px, 9vw, 42px); }
	.solutions-page .solutions-constellation__intro p { font-size: 15px; line-height: 1.7; }
	.solutions-page .solutions-orbit { gap: 18px; }
	.solutions-page .solutions-orbit__group {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
	}
	.solutions-page .solutions-orbit-logo {
		min-height: 96px;
		padding: 16px;
	}
	.solutions-page .solutions-orbit-logo img { max-height: 38px; }
	.solutions-page .solutions-orbit__center { width: min(210px, 74vw); padding: 28px; }
	.solutions-page .solutions-overview__heading h2 { font-size: clamp(34px, 10vw, 46px); }
	.solutions-page .solutions-overview__heading > p { font-size: 16px; }
	.solutions-page .solutions-index { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.solutions-page .solutions-index__item { min-height: 54px; padding: 10px; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; }
	.solutions-page .solutions-index__icon { width: 28px; height: 28px; border-radius: 8px; }
	.solutions-page .solutions-index__copy strong { font-size: 12px; }
	.solutions-page .solutions-index__copy small { font-size: 13px; }
	.solutions-page .solutions-division { padding: 62px 0 70px; scroll-margin-top: 84px; }
	.solutions-page .solutions-division__layout { gap: 36px; }
	.solutions-page .solutions-division__title-row { align-items: flex-start; gap: 14px; }
	.solutions-page .solutions-division__icon { width: 50px; height: 50px; border-radius: 14px; }
	.solutions-page .solutions-division__title-row h2 { font-size: clamp(29px, 9vw, 38px); }
	.solutions-page .solutions-division__brief { font-size: 16px; line-height: 1.7; }
	.solutions-page .solutions-division__visual { min-height: 310px; border-radius: 18px 18px 7px 18px; }
	.solutions-page .solutions-division--reverse .solutions-division__visual { border-radius: 18px 18px 18px 7px; }
	.solutions-page .solutions-division__visual--contain > img { inset: 40px; width: calc(100% - 80px); height: calc(100% - 80px); }
	.solutions-page .solutions-offerings { grid-template-columns: 1fr; }
	.solutions-page .solutions-offering:last-child:nth-child(odd) { grid-column: auto; }
	.solutions-page .solutions-manufacturer { width: calc(50% - 5px); height: 68px; }
}

@media (prefers-reduced-motion: reduce) {
	.solutions-page .solutions-index__item,
	.solutions-page .solutions-index__arrow,
	.solutions-page .solutions-division__visual > img,
	.solutions-page .solutions-manufacturer,
	.solutions-page .solutions-orbit-logo { transition: none !important; }
	.solutions-page .solutions-orbit__center,
	.solutions-page .solutions-orbit__rings,
	.solutions-page .solutions-orbit-logo { animation: none !important; }
	.solutions-page .solutions-index__item:hover,
	.solutions-page .solutions-division__visual:hover > img,
	.solutions-page .solutions-manufacturer:hover,
	.solutions-page .solutions-orbit-logo:hover { transform: none !important; }
}

/* 2026 Solutions reset: clean partner constellation inspired by the provided reference */
.solutions-page--constellation-only {
	--solutions-ink: var(--ns-ink);
	--solutions-blue: #075da8;
	--solutions-red: var(--ns-red);
	--solutions-muted: var(--ns-muted);
	background: #f6f7f9;
}

.solutions-page--constellation-only .solutions-showcase {
	position: relative;
	overflow: hidden;
	padding: clamp(36px, 4vw, 64px) 0 clamp(70px, 7vw, 104px);
	background:
		radial-gradient(circle at 10% 85%, rgba(201, 24, 61, .08), transparent 26%),
		radial-gradient(circle at 86% 15%, rgba(7, 93, 168, .09), transparent 27%),
		linear-gradient(180deg, #fbfcfd 0%, #f3f5f8 100%);
}

.solutions-page--constellation-only .solutions-showcase__panel {
	position: relative;
	overflow: hidden;
	min-height: 0;
	padding: clamp(52px, 5vw, 76px) clamp(24px, 4vw, 64px) clamp(64px, 6vw, 88px);
	border: 1px solid rgba(11, 31, 58, .06);
	border-radius: 0 36px 36px 36px;
	background:
		radial-gradient(circle at 50% 61%, rgba(7, 93, 168, .075), transparent 29%),
		radial-gradient(circle at 0% 86%, rgba(201, 24, 61, .06), transparent 23%),
		radial-gradient(circle at 100% 14%, rgba(7, 93, 168, .055), transparent 24%),
		linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,250,252,.96));
	box-shadow: 0 26px 70px rgba(17, 29, 48, .09);
	isolation: isolate;
}

.solutions-page--constellation-only .solutions-showcase__panel::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(circle at 50% 60%, rgba(7, 93, 168, .035), transparent 34%),
		radial-gradient(circle at 12% 84%, rgba(201, 24, 61, .028), transparent 24%),
		radial-gradient(circle at 88% 28%, rgba(7, 93, 168, .03), transparent 23%);
	pointer-events: none;
}

.solutions-page--constellation-only .solutions-showcase__panel::after {
	content: '';
	position: absolute;
	inset: auto 7% -20% 7%;
	height: 42%;
	z-index: -1;
	background: radial-gradient(ellipse at center, rgba(7, 93, 168, .08), transparent 67%);
	filter: blur(22px);
	animation: solutionsPanelGlow 7s ease-in-out infinite;
}

.solutions-page--constellation-only .solutions-showcase__copy {
	position: relative;
	z-index: 3;
	max-width: 1040px;
	margin: 0 auto clamp(42px, 5vw, 68px);
	text-align: center;
}

.solutions-page--constellation-only .solutions-showcase__kicker {
	display: block;
	margin-bottom: 16px;
	color: var(--solutions-blue);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.solutions-page--constellation-only .solutions-showcase__copy h1 {
	max-width: 1060px;
	margin: 0 auto 20px;
	color: var(--solutions-ink);
	font-family: "Lexend", "Roboto", sans-serif !important;
	font-size: clamp(40px, 4.3vw, 62px);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -.055em;
	text-wrap: balance;
}

.solutions-page--constellation-only .solutions-showcase__copy p {
	max-width: 680px;
	margin: 0 auto;
	color: var(--solutions-muted);
	font-size: clamp(16px, 1.25vw, 20px);
	line-height: 1.75;
	text-wrap: pretty;
}

.solutions-page--constellation-only .solutions-honeycomb {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(320px, 1fr) minmax(220px, 280px) minmax(320px, 1fr);
	align-items: center;
	gap: clamp(42px, 5vw, 76px);
	max-width: 1180px;
	margin: 0 auto;
	padding: 12px 0 16px;
}

.solutions-page--constellation-only .solutions-honeycomb__cluster {
	display: grid;
	grid-template-columns: repeat(3, minmax(96px, 1fr));
	gap: clamp(20px, 1.8vw, 28px);
	align-content: center;
}

.solutions-page--constellation-only .solutions-honeycomb__cluster--left {
	justify-self: end;
}

.solutions-page--constellation-only .solutions-honeycomb__cluster--right {
	justify-self: start;
}

.solutions-page--constellation-only .solutions-honeycomb__cell {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1 / .88;
	min-height: 112px;
	margin: 0;
	padding: 22px 18px;
	clip-path: polygon(50% 0, 94% 25%, 94% 75%, 50% 100%, 6% 75%, 6% 25%);
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(10, 24, 48, .07);
	filter: drop-shadow(0 12px 16px rgba(10, 24, 48, .07));
	transition: transform .3s cubic-bezier(.2,.8,.2,1), filter .3s ease, background-color .3s ease;
	isolation: isolate;
}

.solutions-page--constellation-only .solutions-honeycomb__cell::before {
	content: '';
	position: absolute;
	inset: 1px;
	z-index: 0;
	clip-path: inherit;
	border: 1px solid rgba(7, 93, 168, .08);
	pointer-events: none;
}


.solutions-page--constellation-only .solutions-honeycomb__cell::after { content: none; }

.solutions-page--constellation-only .solutions-honeycomb__cell:hover {
	background: #fbfdff;
	filter: drop-shadow(0 16px 22px rgba(7, 93, 168, .11));
	transform: translateY(-5px) scale(1.015);
}

.solutions-page--constellation-only .solutions-honeycomb__cell img {
	position: relative;
	z-index: 2;
	display: block;
	max-width: 82%;
	max-height: 50px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none;
	opacity: 1;
}

.solutions-page--constellation-only .solutions-honeycomb__cell span {
	color: var(--solutions-ink);
	font-family: "Lexend", "Roboto", sans-serif !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-wrap: balance;
}

.solutions-page--constellation-only .solutions-honeycomb__cell span[hidden] { display: none; }

.solutions-page--constellation-only .solutions-honeycomb__brand {
	position: relative;
	display: grid;
	place-items: center;
	justify-self: center;
	align-self: center;
	width: min(100%, 300px);
	min-height: 280px;
	padding: clamp(28px, 3vw, 38px);
	filter: drop-shadow(0 18px 26px rgba(7, 35, 74, .1));
}

.solutions-page--constellation-only .solutions-honeycomb__brand::before {
	content: '';
	position: absolute;
	inset: 0;
	clip-path: polygon(50% 0, 94% 25%, 94% 75%, 50% 100%, 6% 75%, 6% 25%);
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(7, 93, 168, .1);
	z-index: 0;
}

.solutions-page--constellation-only .solutions-honeycomb__brand::after { content: none; }

.solutions-page--constellation-only .solutions-honeycomb__brand img {
	position: relative;
	z-index: 2;
	display: block;
	max-width: 84%;
	max-height: 220px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none;
}

.solutions-page--constellation-only .solutions-honeycomb__brand-glow {
	position: absolute;
	inset: -30px;
	z-index: -3;
	clip-path: polygon(50% 0, 94% 25%, 94% 75%, 50% 100%, 6% 75%, 6% 25%);
	background: radial-gradient(circle, rgba(7, 93, 168, .1), transparent 66%);
	filter: blur(20px);
	opacity: .7;
}

.solutions-page--constellation-only .solutions-honeycomb__sparks {
	position: absolute;
	inset: -34px;
	z-index: 3;
	pointer-events: none;
}

.solutions-page--constellation-only .solutions-honeycomb__sparks i {
	position: absolute;
	width: 11px;
	aspect-ratio: 1;
	background: var(--solutions-blue);
	clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%);
	opacity: .42;
	animation: solutionsSpark 4.8s ease-in-out infinite;
}

.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(1) { left: 9%; top: 18%; }
.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(2) { right: 4%; top: 29%; width: 8px; animation-delay: -.8s; }
.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(3) { right: 16%; bottom: 8%; background: var(--solutions-red); animation-delay: -1.6s; }
.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(4) { left: 2%; bottom: 27%; width: 7px; background: var(--solutions-red); animation-delay: -2.4s; }
.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(5) { left: 37%; top: -1%; width: 6px; animation-delay: -3.2s; }
.solutions-page--constellation-only .solutions-honeycomb__sparks i:nth-child(6) { right: 37%; bottom: -1%; width: 6px; animation-delay: -4s; }

.solutions-page--constellation-only .solutions-honeycomb__empty {
	position: absolute;
	right: 50%;
	bottom: -42px;
	transform: translateX(50%);
	padding: 10px 14px;
	border: 1px dashed rgba(7, 93, 168, .25);
	border-radius: 999px;
	background: rgba(255,255,255,.78);
	color: #5d6878;
	font-size: 13px;
	font-weight: 600;
	text-align: center;
}

@keyframes solutionsCellRise {
	from { opacity: 0; transform: translateY(28px) scale(.96); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes solutionsPanelGlow {
	0%, 100% { opacity: .55; transform: translateY(0) scale(1); }
	50% { opacity: .95; transform: translateY(-12px) scale(1.04); }
}

@keyframes solutionsSpark {
	0%, 100% { opacity: .22; transform: translate3d(0, 0, 0) scale(.72) rotate(0); }
	50% { opacity: .75; transform: translate3d(0, -7px, 0) scale(1) rotate(45deg); }
}

@media (max-width: 1199px) {
	.solutions-page--constellation-only .solutions-honeycomb {
		grid-template-columns: minmax(220px, 1fr) minmax(220px, 260px) minmax(220px, 1fr);
		gap: 30px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cluster {
		grid-template-columns: repeat(2, minmax(112px, 1fr));
	}
}

@media (max-width: 991px) {
	.solutions-page--constellation-only .solutions-showcase__panel {
		min-height: auto;
		border-radius: 0 28px 28px 28px;
	}

	.solutions-page--constellation-only .solutions-honeycomb {
		grid-template-columns: 1fr;
		align-items: center;
		gap: 24px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__brand {
		order: -1;
		width: min(280px, 76vw);
		min-height: 260px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cluster,
	.solutions-page--constellation-only .solutions-honeycomb__cluster--left,
	.solutions-page--constellation-only .solutions-honeycomb__cluster--right {
		width: min(680px, 100%);
		margin: 0 auto;
		justify-self: center;
		transform: none;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cluster {
		grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
	}

}

@media (max-width: 767px) {
	.solutions-page--constellation-only .solutions-showcase {
		padding: 28px 0 70px;
	}

	.solutions-page--constellation-only .solutions-showcase__panel {
		padding: 38px 14px 46px;
		border-radius: 0 22px 22px 22px;
	}

	.solutions-page--constellation-only .solutions-showcase__copy {
		margin-bottom: 28px;
	}

	.solutions-page--constellation-only .solutions-showcase__copy h1 {
		font-size: clamp(34px, 11vw, 48px);
		letter-spacing: -.045em;
	}

	.solutions-page--constellation-only .solutions-showcase__copy p {
		font-size: 15px;
		line-height: 1.65;
	}

	.solutions-page--constellation-only .solutions-honeycomb__brand {
		width: min(245px, 76vw);
		min-height: 228px;
		padding: 32px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cluster {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 16px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cell {
		min-height: 112px;
		padding: 20px 17px;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cell img {
		max-height: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.solutions-page--constellation-only .solutions-showcase__panel::after,
	.solutions-page--constellation-only .solutions-honeycomb__cell,
	.solutions-page--constellation-only .solutions-honeycomb__brand-glow,
	.solutions-page--constellation-only .solutions-honeycomb__sparks i {
		animation: none !important;
	}

	.solutions-page--constellation-only .solutions-honeycomb__cell,
	.solutions-page--constellation-only .solutions-honeycomb__cell:hover {
		transition: none !important;
	}
}

/* 2026 refinement: compact footer, About journey and Vision/Mission */
.footer-section .footer-main-row { align-items: flex-start; }
.footer-section .footer-widget-wrap { padding: 42px 0 34px !important; }
.footer-section .site-widget { margin: 0; }
.footer-section .footer-brand { max-width: 440px; }
.footer-section .footer-brand p {
	max-width: 390px;
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.65;
}
.footer-section .footer-logo {
	padding: 8px 11px;
	border-radius: 10px;
	box-shadow: none;
}
.footer-section .footer-logo img { max-width: 112px; }
.footer-section .widget-title {
	margin: 3px 0 15px !important;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.footer-section .footer-menu ul { margin: 0; }
.footer-section .footer-menu li {
	margin: 0 0 7px;
	font-size: 14px;
	line-height: 1.55;
}
.footer-section .footer-menu-widget .footer-menu li { padding-left: 0; }
.footer-section .footer-menu-widget .footer-menu li::after { display: none; }
.footer-section .footer-contact-list li {
	display: grid;
	grid-template-columns: 20px 1fr;
	gap: 9px;
	align-items: start;
}
.footer-section .footer-contact-list i { margin-top: 4px; font-size: 12px; }
.header_social.footer-social-spacing { margin-top: 15px; }
.header_social.footer-social-spacing ul { gap: 5px; }
.header_social.footer-social-spacing li {
	width: 32px !important;
	height: 32px !important;
	background: transparent !important;
	border: 0 !important;
}
.footer-section .header_social.footer-social-spacing li.h-fb,
.footer-section .header_social.footer-social-spacing li.h-lk,
.footer-section .header_social.footer-social-spacing li.h-in { background: transparent !important; }
.header_social.footer-social-spacing a {
	display: flex;
	width: 32px !important;
	height: 32px !important;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	color: #8fa8c8 !important;
	font-size: 14px;
	line-height: 32px !important;
	box-shadow: none;
}
.header_social.footer-social-spacing a:hover,
.header_social.footer-social-spacing a:focus-visible {
	background: transparent !important;
	color: #fff !important;
	transform: translateY(-2px);
}
.footer-section .copyright-text { padding: 13px 0 !important; }
.footer-legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-size: 12px;
}
.footer-legal a { font-weight: 600; }
.footer-legal a i { margin-left: 7px; font-size: 10px; }

.about-journey {
	display: grid;
	grid-template-columns: minmax(230px, .82fr) minmax(0, 2fr);
	gap: clamp(40px, 6vw, 78px);
	margin-top: 88px;
	padding: clamp(34px, 5vw, 56px);
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 16px;
	background: #f5f8fc;
}
.journey-heading > span,
.vm-intro > span,
.vm-card-content > span {
	display: block;
	margin-bottom: 10px;
	color: var(--ns-red);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.journey-heading h2 { margin: 0 0 15px; font-size: clamp(27px, 3vw, 38px); line-height: 1.15; letter-spacing: -.025em; }
.journey-heading p { margin: 0; color: var(--ns-muted); line-height: 1.75; }
.about-journey .timeline-row {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: 6px 0 0;
}
.about-journey .timeline-row::before {
	content: '';
	position: absolute;
	top: 48px;
	left: 7%;
	right: 7%;
	height: 1px;
	background: #c9d5e3;
}
.about-journey .timeline-item {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 0 10px;
	text-align: left;
}
.about-journey .timeline-year {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	font-variant-numeric: tabular-nums;
}
.about-journey .timeline-dot {
	position: relative;
	z-index: 1;
	width: 11px;
	height: 11px;
	margin: 17px 0 21px;
	border: 3px solid #f5f8fc;
	background: var(--ns-blue);
	box-shadow: 0 0 0 1px var(--ns-blue);
}
.about-journey .timeline-item.is-current .timeline-dot {
	background: var(--ns-red);
	box-shadow: 0 0 0 1px var(--ns-red), 0 0 0 6px rgba(197,34,69,.09);
}
.about-journey .timeline-label strong,
.about-journey .timeline-label span { display: block; }
.about-journey .timeline-label strong { margin-bottom: 7px; color: var(--ns-navy); font-size: 14px; line-height: 1.35; }
.about-journey .timeline-label span { color: var(--ns-muted); font-size: 12px; line-height: 1.6; }
.about-values-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.about-value-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 0;
	min-height: 190px;
	padding: 30px 24px !important;
}
.about-value-card h3, .about-value-card p { text-align: center; }
.about-value-card:nth-child(4n + 1),
.about-value-card:nth-child(4n + 4) { background: #f0f6fc; }
.about-value-card .value-icon-wrap {
	display: flex;
	width: 54px;
	height: 54px;
	align-items: center;
	justify-content: center;
	margin-bottom: 15px;
	border-radius: 14px;
	background: linear-gradient(145deg, #eaf4fc, #fff);
	box-shadow: inset 0 0 0 1px rgba(7, 93, 168, .12);
}
.about-value-card .value-icon-wrap i {
	color: var(--ns-blue) !important;
	font-size: 20px !important;
}
.about-value-card .value-icon-wrap i {
	width: auto;
	height: auto;
	margin: 0;
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-size: 19px;
}
.about-value-card h3 { margin: 2px 0 8px; }
.about-value-card p { margin: 0; line-height: 1.65; }

/* About page clean pass: simpler surfaces and compact value cards */
.about_page_content {
	background: #fff;
	padding: 86px 0 78px;
}
.about_page_content .row {
	align-items: center;
}
.about_page_img {
	overflow: hidden;
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 8px;
	box-shadow: 0 18px 44px rgba(11,31,58,.1);
}
.about_page_img img {
	min-height: 360px;
}
.about_page_text {
	padding: 10px 0 10px clamp(28px, 4vw, 48px);
}
.about_page_text .section-title-area {
	margin-bottom: 16px;
	padding-bottom: 0;
}
.about_page_text .title-head h2 {
	margin-bottom: 8px;
	color: var(--ns-navy);
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.14;
	letter-spacing: 0;
}
.about_page_text .title-head p {
	margin: 0;
	color: var(--ns-red);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.about_page_text > span {
	display: block;
	max-width: 640px;
	color: var(--ns-muted);
	font-size: 16px;
	line-height: 1.75;
	text-wrap: pretty;
}
.about_page_text .feature_quote {
	max-width: 640px;
	margin-top: 22px;
	padding: 18px 20px;
	border-left: 3px solid var(--ns-red);
	border-radius: 0 8px 8px 0;
	background: #f5f8fc;
	box-shadow: none;
}
.about_page_text .feature_quote > span {
	color: #34445b;
	font-size: 15px;
	line-height: 1.72;
}
#core_values.service-section {
	padding: 78px 0 92px;
	background: #f6f9fc !important;
}
#core_values .section-title-area {
	padding-bottom: 30px;
}
#core_values .title-bg {
	display: none;
}
#core_values .title-head h2 {
	margin-bottom: 8px;
	color: var(--ns-navy);
	font-size: clamp(30px, 4vw, 42px);
	line-height: 1.16;
	letter-spacing: 0;
}
#core_values .title-head p {
	margin: 0 0 10px;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.6;
}
#core_values .about-values-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}
#core_values .about-value-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-height: 170px;
	padding: 26px 22px !important;
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 12px;
	background: #fff !important;
	box-shadow: 0 10px 24px rgba(11,31,58,.045);
	text-align: center;
	transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}
#core_values .about-value-card h3,
#core_values .about-value-card p { text-align: center; }
#core_values .about-value-card .value-icon-wrap { margin-bottom: 13px; }
#core_values .about-value-card:hover {
	transform: translateY(-2px);
	border-color: rgba(7,93,168,.22);
	box-shadow: 0 16px 30px rgba(11,31,58,.075);
}
#core_values .about-value-card .value-icon-wrap {
	width: 38px;
	height: 38px;
	border-radius: 8px;
	background: #eef5fb;
	box-shadow: inset 0 0 0 1px rgba(7,93,168,.08);
}
#core_values .about-value-card .value-icon-wrap i {
	color: var(--ns-blue);
	font-size: 15px;
}
#core_values .about-value-card h3 {
	margin: 0 0 6px;
	color: var(--ns-navy);
	font-size: 17px;
	line-height: 1.25;
	letter-spacing: 0;
}
#core_values .about-value-card p {
	margin: 0;
	color: var(--ns-muted);
	font-size: 13.5px;
	line-height: 1.6;
}
.js #core_values .section-title-area.ns-reveal,
.js #core_values .about-value-card.ns-reveal {
	opacity: 1;
	transform: none;
}

.vision-mission-page { position: relative; overflow: hidden; padding: 92px 0 98px; background: #f6f9fc; }
.vision-mission-page::before {
	content: '';
	position: absolute;
	top: -210px;
	right: -190px;
	width: 480px;
	height: 480px;
	border: 1px solid rgba(7,93,168,.09);
	border-radius: 50%;
}
.vm-intro { position: relative; max-width: 760px; margin: 0 auto 36px; text-align: center; }
.vm-intro h2 { margin: 0; font-size: clamp(32px, 4.4vw, 48px); line-height: 1.12; letter-spacing: 0; text-wrap: balance; }
.vm-intro p { max-width: 640px; margin: 0 auto; color: var(--ns-muted); font-size: 16px; line-height: 1.72; text-wrap: pretty; }
.vm-layout { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; align-items: stretch; max-width: 1080px; margin: 0 auto; }
.vm-organic-panel {
	overflow: hidden;
	border: 1px solid rgba(11,31,58,.08);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 22px 60px rgba(7,23,44,.12);
}
.vm-organic-panel::after {
	content: '';
	position: absolute;
	z-index: 5;
	top: 0;
	bottom: 0;
	left: -42%;
	width: 32%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
	transform: skewX(-15deg);
	animation: vmPanelSheen 4.8s ease-in-out 1.1s infinite;
	pointer-events: none;
}
.vm-curve {
	position: absolute;
	z-index: 3;
	top: 0;
	bottom: 0;
	left: calc(50% - 58px);
	width: 116px;
	height: 100%;
	color: #fff;
	pointer-events: none;
}
.vm-curve path { fill: currentColor; }
.vm-card {
	position: relative;
	overflow: hidden;
	min-height: 360px;
	padding: clamp(32px, 4.5vw, 58px);
	border-radius: 0;
	text-align: left;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.vm-card:hover {
	transform: none;
}
.vm-card-content {
	position: relative;
	z-index: 4;
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	max-width: 470px;
	align-content: start;
	justify-items: start;
	padding-top: clamp(34px, 4.2vw, 58px);
	animation: vmContentIn .72s cubic-bezier(.2,.8,.2,1) both;
}
.vm-card h3 { margin: 0 0 15px; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.16; letter-spacing: 0; }
.vm-card p { max-width: 100%; margin: 0; font-size: 15px; line-height: 1.7; text-align: left; text-wrap: pretty; }
.vm-card-vision {
	padding-right: clamp(40px, 6vw, 78px);
	background: var(--ns-navy);
	color: #fff;
	box-shadow: none;
	animation: vmPanelInLeft .82s cubic-bezier(.2,.8,.2,1) both;
}
.vm-card-vision::after {
	content: '';
	position: absolute;
	right: -92px;
	bottom: -116px;
	width: 220px;
	height: 220px;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 50%;
}
.vm-card-vision h3 { color: #fff; }
.vm-card-vision p {
	max-width: 520px;
	color: #c1cde0;
}
.vm-card-mission {
	padding-left: clamp(64px, 8vw, 112px);
	border: 0;
	background:
		radial-gradient(circle at 92% 8%, rgba(7,93,168,.08), transparent 30%),
		#fff;
	box-shadow: none;
	animation: vmPanelInRight .82s cubic-bezier(.2,.8,.2,1) .08s both;
}
.vm-card-mission::after {
	content: '';
	position: absolute;
	right: -60px;
	bottom: -90px;
	width: 235px;
	height: 235px;
	border: 1px solid rgba(7,93,168,.12);
	border-radius: 50%;
}
.vm-card-mission:hover { border-color: transparent; box-shadow: none; }
.vm-card-mission p { color: var(--ns-muted); }
.vm-curve { animation: vmCurveIn .9s cubic-bezier(.2,.8,.2,1) .12s both, vmCurveBreathe 5.2s ease-in-out 1.1s infinite; }

@keyframes vmPanelInLeft {
	from { opacity: 0; transform: translateX(-18px); }
	to { opacity: 1; transform: translateX(0); }
}
@keyframes vmPanelInRight {
	from { opacity: 0; transform: translateX(18px); }
	to { opacity: 1; transform: translateX(0); }
}
@keyframes vmContentIn {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes vmCurveIn {
	from { opacity: 0; transform: scaleX(.72); transform-origin: center; }
	to { opacity: 1; transform: scaleX(1); transform-origin: center; }
}
@keyframes vmCurveBreathe {
	0%, 100% { transform: translateX(0) scaleX(1); }
	50% { transform: translateX(8px) scaleX(1.06); }
}
@keyframes vmPanelSheen {
	0%, 58% { transform: translateX(0) skewX(-15deg); opacity: 0; }
	66% { opacity: .55; }
	84% { transform: translateX(470%) skewX(-15deg); opacity: 0; }
	100% { transform: translateX(470%) skewX(-15deg); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.vm-card-content,
	.vm-card-vision,
	.vm-card-mission,
	.vm-curve,
	.vm-organic-panel::after {
		animation: none !important;
	}
}

@media (max-width: 991px) {
	.footer-section .footer-widget-wrap { padding: 38px 0 24px !important; }
	.footer-section .footer-brand { max-width: 560px; margin-bottom: 28px; }
	.about_page_text { padding: 34px 0 0; }
	#core_values .about-values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.about-journey { grid-template-columns: 1fr; margin-top: 64px; }
	.vm-layout { grid-template-columns: 1fr; }
	.vm-card { min-height: auto; }
	.vm-card-content { padding-top: 0; }
	.vm-curve { display: none; }
	.vm-card-vision { padding-right: clamp(26px, 5vw, 42px); }
	.vm-card-mission { padding-left: clamp(26px, 5vw, 42px); }
}

@media (max-width: 767px) {
	.footer-section .footer-widget-wrap { padding: 32px 0 20px !important; }
	.footer-section .footer-logo img { max-width: 96px; }
	.footer-section .footer-brand p { margin-top: 10px; line-height: 1.55; }
	.footer-section .site-widget { margin-bottom: 24px; }
	.footer-section .footer-main-row > div:last-child .site-widget { margin-bottom: 0; }
	.footer-legal { align-items: flex-start; flex-direction: column; gap: 6px; }
	.about-journey { margin-top: 52px; padding: 30px 24px; }
	.about-journey .timeline-row { grid-template-columns: 1fr; gap: 25px; }
	.about-journey .timeline-row::before { top: 6px; bottom: 6px; left: 5px; right: auto; width: 1px; height: auto; }
	.about-journey .timeline-item { display: grid; grid-template-columns: 52px 14px 1fr; gap: 12px; align-items: start; padding: 0; }
	.about-journey .timeline-year { padding-top: 1px; font-size: 12px; }
	.about-journey .timeline-dot { margin: 4px 0 0; }
	.about-journey .timeline-label strong { margin-top: 0; }
	.about-values-grid { grid-template-columns: 1fr; }
	.about-value-card:nth-child(n) { background: #fff; }
	.about-value-card:nth-child(even) { background: #f0f6fc; }
	.about_page_content { padding: 58px 0 56px; }
	.about_page_img img { min-height: 240px; }
	#core_values.service-section { padding: 58px 0 66px; }
	#core_values .section-title-area { padding-bottom: 24px; }
	#core_values .about-values-grid { grid-template-columns: 1fr; gap: 10px; }
	#core_values .about-value-card {
		min-height: 0;
		padding: 20px 16px !important;
	}
	#core_values .about-value-card .value-icon-wrap { margin-bottom: 10px; }
	#core_values .about-value-card .value-icon-wrap {
		width: 34px;
		height: 34px;
	}
	.vm-intro { margin-bottom: 30px; }
	.vision-mission-page { padding: 66px 0 74px; }
	.vm-card { min-height: auto; padding: 26px 22px; }
	.vm-card-vision { border-radius: 8px 8px 0 0; }
	.vm-card-mission { border-radius: 0 0 8px 8px; }
}

@media (max-width: 420px) {
	.about-value-card { grid-template-columns: 1fr; gap: 16px; }
	#core_values .about-value-card { grid-template-columns: 34px minmax(0, 1fr); }
}

/* Contact page — form-led hierarchy, compact contact details and branded map */
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-page {
	position: relative;
	overflow: hidden;
	background: #f5f8fc;
}
.contact-page::before {
	content: '';
	position: absolute;
	top: -240px;
	right: -210px;
	width: 520px;
	height: 520px;
	border: 1px solid rgba(7, 93, 168, .08);
	border-radius: 50%;
}
.contact-page .container { position: relative; z-index: 1; }
.contact-form-layout {
	display: grid;
	grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr);
	gap: clamp(40px, 7vw, 90px);
	align-items: center;
}
.contact-form-intro { max-width: 430px; }
.contact-kicker,
.contact-form-heading > span {
	display: block;
	margin-bottom: 13px;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.contact-form-intro h2 {
	margin: 0 0 20px;
	font-size: clamp(35px, 5vw, 56px);
	line-height: 1.08;
	letter-spacing: -.04em;
	text-wrap: balance;
}
.contact-form-intro > p {
	margin: 0;
	color: var(--ns-muted);
	font-size: 17px;
	line-height: 1.75;
}
.contact-response-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-top: 31px;
	padding-top: 24px;
	border-top: 1px solid var(--ns-line);
	color: var(--ns-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}
.contact-response-note i { margin-top: 3px; color: var(--ns-blue); }
.contact-page .contact_page_form .get-quote-section {
	max-width: none;
	margin: 0;
	padding: clamp(30px, 4vw, 48px);
	border: 1px solid rgba(11, 31, 58, .08);
	border-radius: 18px;
	box-shadow: 0 28px 65px rgba(11, 31, 58, .1);
}
.contact-form-heading { margin-bottom: 30px; }
.contact-form-heading > span { margin-bottom: 6px; }
.contact-form-heading h3 { margin: 0; font-size: clamp(25px, 3vw, 32px); letter-spacing: -.025em; }
.contact-page #contact_form .contact-info { margin-bottom: 22px; }
.contact-page #contact_form label { margin-bottom: 8px; letter-spacing: .02em; text-transform: none; }
.contact-page #contact_form label span { color: var(--ns-muted); font-weight: 500; }
.contact-page #contact_form .contact-info input,
.contact-page #contact_form .contact-info textarea { background: #f7f9fc; }
.contact-page #contact_form .contact-info textarea { min-height: 142px; }
.contact-page #contact_form .sub-button { margin-top: 4px; text-align: left !important; }
.contact-page .contact_page_form .sub-button button {
	min-width: 0;
	height: 54px;
	padding: 0 25px;
	border-radius: 9px;
	font-size: 13px;
	letter-spacing: .03em;
	text-transform: none;
}
.contact-page .contact_page_form .sub-button button i { margin-left: 12px; font-size: 11px; }
.contact-methods {
	display: grid;
	grid-template-columns: .85fr 1.3fr 1fr;
	gap: 14px;
	margin: clamp(54px, 8vw, 88px) 0 clamp(70px, 9vw, 104px);
}
.contact-method-card {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 15px;
	align-items: start;
	min-height: 112px;
	padding: 22px;
	border: 1px solid var(--ns-line);
	border-radius: 12px;
	background: #fff;
	transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.contact-method-card:hover {
	border-color: rgba(7, 93, 168, .22);
	box-shadow: 0 15px 34px rgba(11, 31, 58, .07);
	transform: translateY(-3px);
}
.contact-method-icon {
	display: flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: #edf5fc;
	color: var(--ns-blue);
	font-size: 15px;
}
.contact-method-card span {
	display: block;
	margin-bottom: 7px;
	color: var(--ns-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.contact-method-card a,
.contact-method-card p {
	display: block;
	margin: 0;
	color: var(--ns-navy);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.55;
	overflow-wrap: anywhere;
}
.contact-method-card .contact-method-secondary { margin-top: 2px; color: var(--ns-muted); font-size: 13px; }
.contact-page .contact_map { margin: 0; }
.contact-map-frame {
	position: relative;
	overflow: hidden;
	border-radius: 18px;
	background: #dce6ef;
	box-shadow: 0 24px 54px rgba(11, 31, 58, .12);
}
.contact-page .contact-map-iframe {
	display: block;
	min-height: 440px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	filter: saturate(.72) contrast(.96);
}
.contact-brand-marker {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	width: 82px;
	height: 82px;
	align-items: center;
	justify-content: center;
	padding: 13px;
	border: 4px solid var(--ns-blue);
	border-radius: 50% 50% 50% 8px;
	background: #fff;
	box-shadow: 0 18px 36px rgba(11, 31, 58, .28);
	transform: translate(-50%, -85%) rotate(-45deg);
	pointer-events: none;
}
.contact-brand-marker::after {
	content: '';
	position: absolute;
	inset: 5px;
	border: 1px solid rgba(7, 93, 168, .14);
	border-radius: inherit;
}
.contact-brand-marker img {
	position: relative;
	z-index: 1;
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	transform: rotate(45deg);
}
/* Consent-gated embeds: dim the frame until allowed, prompt overlay. */
.contact-page .contact-map-iframe.is-blocked { filter: grayscale(.55) blur(2px) saturate(.6); }
.contact-map-consent {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 24px;
	text-align: center;
	background: rgba(11, 31, 58, .38);
	color: #fff;
	backdrop-filter: blur(2px);
}
.contact-map-consent[hidden] { display: none; }
.contact-map-consent p { max-width: 420px; margin: 0; font-size: 15px; line-height: 1.5; }
.contact-map-consent .hover-btn {
	background: var(--ns-blue, #075da8);
	border-color: #fff;
	color: #fff;
}

@media (max-width: 991px) {
	.contact-form-layout { grid-template-columns: 1fr; gap: 38px; }
	.contact-form-intro { max-width: 680px; }
	.contact-methods { grid-template-columns: 1fr 1fr; }
	.contact-method-card-wide { grid-column: span 2; }
}

@media (max-width: 767px) {
	.contact-methods { grid-template-columns: 1fr; margin-bottom: 70px; }
	.contact-method-card-wide { grid-column: auto; }
	.contact-page .contact-map-heading { gap: 10px; margin-bottom: 17px; }
	.contact-page .contact-map-iframe { height: 340px; min-height: 340px; }
	.contact-brand-marker { width: 68px; height: 68px; padding: 11px; }
}

/* 2026 constellation refinement: visible logos orbit a fixed New Star mark */
.constellation-page--orbit .constellation-stage {
	width: min(900px, 100%);
	padding: 26px 0 34px;
}

.constellation-page--orbit .constellation-matrix {
	width: min(720px, 88vw);
	aspect-ratio: 1;
	animation: constellationOrbit 78s linear infinite;
	will-change: transform;
}

.constellation-page--orbit .constellation-center-brand {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 1;
	display: grid;
	place-items: center;
	width: clamp(154px, 19vw, 210px);
	aspect-ratio: 1;
	padding: 20px;
	border: 1px solid rgba(10, 75, 148, .12);
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 24px 60px rgba(8, 35, 67, .13), inset 0 0 0 8px rgba(10, 75, 148, .025);
	transform: translate(-50%, -50%);
	backdrop-filter: blur(14px);
}

.constellation-page--orbit .constellation-center-brand::before,
.constellation-page--orbit .constellation-center-brand::after {
	content: '';
	position: absolute;
	border: 1px solid rgba(10, 75, 148, .1);
	border-radius: 50%;
	pointer-events: none;
}

.constellation-page--orbit .constellation-center-brand::before { inset: -23px; border-style: dashed; }
.constellation-page--orbit .constellation-center-brand::after { inset: -48px; opacity: .48; }

.constellation-page--orbit .constellation-center-brand > span {
	position: absolute;
	inset: -12px;
	z-index: -1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(10,75,148,.14), transparent 68%);
	filter: blur(15px);
}

.constellation-page--orbit .constellation-center-brand img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.constellation-page--orbit .constellation-node {
	width: clamp(76px, 8vw, 96px);
	animation: constellationCounterOrbit 78s linear infinite;
	will-change: transform;
}

.constellation-page--orbit .constellation-node:nth-child(1) { --node-x: 50%; --node-y: 5%; }
.constellation-page--orbit .constellation-node:nth-child(2) { --node-x: 82%; --node-y: 17%; }
.constellation-page--orbit .constellation-node:nth-child(3) { --node-x: 95%; --node-y: 50%; }
.constellation-page--orbit .constellation-node:nth-child(4) { --node-x: 82%; --node-y: 83%; }
.constellation-page--orbit .constellation-node:nth-child(5) { --node-x: 50%; --node-y: 95%; }
.constellation-page--orbit .constellation-node:nth-child(6) { --node-x: 18%; --node-y: 83%; }
.constellation-page--orbit .constellation-node:nth-child(7) { --node-x: 5%; --node-y: 50%; }
.constellation-page--orbit .constellation-node:nth-child(8) { --node-x: 18%; --node-y: 17%; }
.constellation-page--orbit .constellation-node:nth-child(9) { --node-x: 50%; --node-y: 27%; }
.constellation-page--orbit .constellation-node:nth-child(10) { --node-x: 72%; --node-y: 43%; }
.constellation-page--orbit .constellation-node:nth-child(11) { --node-x: 64%; --node-y: 69%; }
.constellation-page--orbit .constellation-node:nth-child(12) { --node-x: 36%; --node-y: 69%; }
.constellation-page--orbit .constellation-node:nth-child(13) { --node-x: 28%; --node-y: 43%; }

.constellation-page--orbit .constellation-node.is-populated .constellation-star { display: none; }

.constellation-page--orbit .constellation-star {
	inset: 21%;
	animation: none;
}

.constellation-page--orbit .constellation-logo {
	width: 100%;
	padding: 18px;
	border-color: rgba(10, 75, 148, .1);
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 12px 28px rgba(8, 35, 67, .105), inset 0 0 0 1px rgba(10, 75, 148, .035);
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.constellation-page--orbit .constellation-node--accent.is-populated .constellation-logo {
	border-color: rgba(197, 26, 44, .34);
	box-shadow: 0 14px 32px rgba(197, 26, 44, .12), inset 0 0 0 2px rgba(197, 26, 44, .05);
}

.constellation-page--orbit .constellation-logo img { max-height: 52px; }

.constellation-page--orbit .constellation-node.is-populated:hover .constellation-logo,
.constellation-page--orbit .constellation-node.is-populated:focus-visible .constellation-logo,
.constellation-page--orbit .constellation-node.is-active .constellation-logo {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1.09);
	border-color: rgba(10, 75, 148, .24);
	box-shadow: 0 18px 38px rgba(8, 35, 67, .16), inset 0 0 0 1px rgba(10, 75, 148, .06);
}

.constellation-page--orbit .constellation-node.is-populated:hover .constellation-star,
.constellation-page--orbit .constellation-node.is-populated:focus-visible .constellation-star,
.constellation-page--orbit .constellation-node.is-active .constellation-star { display: none; }

.constellation-page--orbit .constellation-node:nth-child(-n + 5) .constellation-tooltip {
	top: auto;
	bottom: calc(100% + 18px);
	transform: translate(-50%, 9px);
}

.constellation-page--orbit .constellation-node.is-populated:hover .constellation-tooltip,
.constellation-page--orbit .constellation-node.is-populated:focus-visible .constellation-tooltip,
.constellation-page--orbit .constellation-node.is-active .constellation-tooltip { transform: translate(-50%, 0); }

.constellation-page--orbit .constellation-stage:hover .constellation-matrix,
.constellation-page--orbit .constellation-stage:focus-within .constellation-matrix,
.constellation-page--orbit .constellation-stage:hover .constellation-node,
.constellation-page--orbit .constellation-stage:focus-within .constellation-node { animation-play-state: paused; }

.constellation-page--orbit .constellation-stage.is-rotating .constellation-matrix {
	opacity: .56;
	transform: none;
}

@keyframes constellationOrbit {
	to { transform: rotate(360deg); }
}

@keyframes constellationCounterOrbit {
	from { transform: translate(-50%, -50%) rotate(0); }
	to { transform: translate(-50%, -50%) rotate(-360deg); }
}

@media (max-width: 767px) {
	.constellation-page--orbit .constellation-stage { margin-top: 28px; padding-bottom: 20px; }
	.constellation-page--orbit .constellation-matrix { width: min(350px, 90vw); animation-duration: 88s; }
	.constellation-page--orbit .constellation-node { width: clamp(48px, 15vw, 61px); animation-duration: 88s; }
	.constellation-page--orbit .constellation-logo { width: 100%; padding: 11px; }
	.constellation-page--orbit .constellation-logo img { max-height: 32px; }
	.constellation-page--orbit .constellation-center-brand { width: 112px; padding: 12px; }
	.constellation-page--orbit .constellation-center-brand::before { inset: -13px; }
	.constellation-page--orbit .constellation-center-brand::after { inset: -28px; }
}

@media (prefers-reduced-motion: reduce) {
	.constellation-page--orbit .constellation-orbit,
	.constellation-page--orbit .node-card { animation: none !important; }
}

/* ==========================================================================
   Design polish pass — stats, blog cards, partner logo strip
   ========================================================================== */

/* Stat numbers use tabular figures so digits don't wobble while counting. */
.stat-number { font-variant-numeric: tabular-nums; }

/* Blog thumbnails: consistent 16:9 crop that adapts with the column width
   instead of a fixed 230px band (no distortion, no dead space on wide cards). */
.blog-img-text .blog-img img {
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Category tag as a quiet pill above the title, consistent across the
   homepage teaser row and the blog listing. */
.blog-tag, .blog-img-text .blog-tag {
	margin-bottom: 12px;
}
.blog-img-text .blog-tag a {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 999px;
	background: rgba(201, 37, 71, .08);
	color: var(--ns-red) !important;
	font-size: 11px !important;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.blog-img-text .blog-tag a:hover {
	background: var(--ns-red);
	color: #fff !important;
}

/* Reading-time meta sits quietly next to the author line. */
.blog-meta ul, .blog-img-text .blog-meta ul {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.blog-read-time {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ns-muted);
}
.blog-read-time i { font-size: 14px; }
.blog-meta li { float: none !important; margin: 0 !important; }

/* Homepage partner strip: letterboxed logos become proper tiles so the row
   reads as an aligned grid of manufacturers rather than floating images. */
.client-list.about_overview_client {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	max-width: 1140px;
	margin: 0 auto 70px;
	padding: 0 15px;
}
.about_overview_client .client_show {
	background: #fff;
	border: 1px solid var(--ns-line);
	border-radius: 12px;
	height: 84px;
	padding: 12px 18px;
	box-shadow: 0 2px 10px rgba(13, 36, 64, .05);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.about_overview_client .client_show:hover {
	transform: translateY(-3px);
	border-color: rgba(7, 93, 168, .28);
	box-shadow: 0 10px 24px rgba(13, 36, 64, .1);
}
.about_overview_client .client_show img {
	filter: grayscale(100%);
	opacity: .62;
}
.about_overview_client .client_show:hover img {
	filter: grayscale(0%);
	opacity: 1;
	transform: scale(1.03);
}
@media (max-width: 767px) {
	.client-list.about_overview_client { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.about_overview_client .client_show { height: 72px; padding: 10px 12px; }
}

/* Division cards: title carries the link (Read More removed) — keep the
   arrow affordance on hover, and neutralize vendor link styling on h3 a. */
.service-icon-text .service-text h3 a {
	color: inherit !important;
	text-decoration: none;
}
.service-icon-text:hover .service-text h3 a { color: var(--ns-blue) !important; }

/* ==========================================================================
   Constellation v2 — manual paging, stats strip, full directory catalog
   ========================================================================== */

.constellation-hero { padding-bottom: clamp(48px, 5vw, 72px); }

/* Manual paging controls (only shown when more than one page exists). */
.constellation-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	margin-top: 18px;
}
.constellation-nav button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(10, 75, 148, .16);
	border-radius: 50%;
	background: rgba(255, 255, 255, .85);
	color: var(--constellation-blue);
	font-size: 15px;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
.constellation-nav button:hover:not(:disabled),
.constellation-nav button:focus-visible {
	border-color: var(--constellation-blue);
	outline: none;
}
.constellation-nav button:disabled { opacity: .35; cursor: default; }
.constellation-nav [data-constellation-page] {
	min-width: 52px;
	text-align: center;
	color: #66758a;
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* Anchor link from hero down to the directory. */
.constellation-jump {
	display: flex;
	width: max-content;
	align-items: center;
	gap: 9px;
	margin: 26px auto 0;
	color: var(--constellation-blue);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
}
.constellation-jump i { font-size: 12px; transition: transform .2s ease; }
.constellation-jump:hover { color: var(--constellation-red); }
.constellation-jump:hover i { transform: translateY(3px); }
.constellation-jump-wrap { text-align: center; }

/* Stats strip between hero and catalog. */
.constellation-stats {
	padding: 58px 0;
	border-top: 1px solid rgba(10, 75, 148, .07);
	background: linear-gradient(125deg, #071b34, #0b3768 64%, #075da8);
	position: relative;
	overflow: hidden;
}
.constellation-stats::after {
	content: '';
	position: absolute;
	inset: -30% -5%;
	background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255,255,255,.025) 80px 81px);
	transform: rotate(-3deg);
	pointer-events: none;
}
.constellation-stat { position: relative; z-index: 1; text-align: center; padding: 8px 14px; }
.constellation-stat-number {
	display: block;
	color: #fff;
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: clamp(38px, 4vw, 52px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -.03em;
	font-variant-numeric: tabular-nums;
}
.constellation-stat-label {
	display: block;
	margin-top: 9px;
	color: rgba(255, 255, 255, .72);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* Full directory catalog. */
.showcase-catalog { padding: 84px 0 90px; background: #f5f7fa; }

.catalog-toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 44px;
}
.catalog-toolbar-text h2 {
	margin: 0 0 6px;
	color: var(--constellation-ink);
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 800;
	letter-spacing: -.03em;
}
.catalog-toolbar-text p { margin: 0; color: var(--constellation-muted); font-size: 15px; }

.catalog-search { position: relative; min-width: min(320px, 100%); }
.catalog-search i {
	position: absolute;
	left: 17px;
	top: 50%;
	transform: translateY(-50%);
	color: #93a1b4;
	font-size: 14px;
	pointer-events: none;
}
.catalog-search input {
	width: 100%;
	height: 48px;
	padding: 0 18px 0 42px;
	border: 1px solid rgba(10, 75, 148, .14);
	border-radius: 999px;
	background: #fff;
	color: var(--constellation-ink);
	font-size: 14px;
	box-shadow: 0 4px 16px rgba(10, 45, 88, .05);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.catalog-search input:focus {
	border-color: var(--constellation-blue);
	box-shadow: 0 0 0 4px rgba(10, 75, 148, .09);
	outline: none;
}

.catalog-group { margin-bottom: 46px; }
.catalog-group[hidden] { display: none; }
.catalog-group-title {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 20px;
	color: var(--constellation-ink);
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: 21px;
	font-weight: 750;
	letter-spacing: -.01em;
}
.catalog-group-title::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(10, 75, 148, .16), transparent);
}
.catalog-group-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 26px;
	padding: 0 9px;
	border-radius: 999px;
	background: rgba(10, 75, 148, .08);
	color: var(--constellation-blue);
	font-size: 12px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.catalog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(196px, 1fr));
	gap: 14px;
}
.catalog-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4px;
	padding: 24px 18px 20px;
	border: 1px solid rgba(10, 75, 148, .09);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(10, 45, 88, .04);
	text-decoration: none;
	transform: translateZ(0);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.catalog-tile:hover {
	transform: translateY(-4px);
	border-color: rgba(10, 75, 148, .26);
	box-shadow: 0 14px 30px rgba(8, 28, 54, .1);
}
.catalog-tile[hidden] { display: none; }

.catalog-tile-media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 62px;
	margin-bottom: 10px;
}
.catalog-tile-media img {
	max-width: 100%;
	max-height: 62px;
	object-fit: contain;
	filter: grayscale(18%);
	transition: filter .22s ease, transform .25s ease;
}
.catalog-tile:hover .catalog-tile-media img { filter: grayscale(0%); transform: scale(1.05); }

.catalog-mono {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: linear-gradient(145deg, #eef6ff, #fff);
	box-shadow: inset 0 0 0 1px rgba(7, 93, 168, .14);
	color: var(--constellation-blue);
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: 22px;
	font-weight: 800;
}

.catalog-tile-name {
	color: var(--constellation-ink);
	font-family: "Lexend", "Roboto", sans-serif;
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.35;
}
a.catalog-tile:hover .catalog-tile-name { color: var(--constellation-blue); }

.catalog-tile-impact {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--constellation-muted);
	font-size: 12.5px;
	line-height: 1.45;
}

.catalog-tile-link {
	position: absolute;
	top: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 27px;
	height: 27px;
	border-radius: 50%;
	background: rgba(10, 75, 148, .07);
	color: var(--constellation-blue);
	font-size: 11px;
	opacity: 0;
	transform: translateY(-3px);
	transition: opacity .2s ease, transform .2s ease;
}
.catalog-tile-link i { transform: rotate(45deg); }
a.catalog-tile:hover .catalog-tile-link,
a.catalog-tile:focus-visible .catalog-tile-link { opacity: 1; transform: translateY(0); }

.catalog-empty {
	margin: 30px 0 0;
	padding: 34px;
	border: 1px dashed rgba(10, 75, 148, .2);
	border-radius: 14px;
	background: #fff;
	color: var(--constellation-muted);
	font-size: 15px;
	text-align: center;
}

@media (max-width: 767px) {
	.showcase-catalog { padding: 60px 0 64px; }
	.catalog-toolbar { align-items: stretch; flex-direction: column; gap: 16px; margin-bottom: 32px; }
	.catalog-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.catalog-tile { padding: 18px 12px 16px; }
	.catalog-tile-media { height: 50px; }
	.catalog-tile-media img { max-height: 50px; }
	.catalog-mono { width: 44px; height: 44px; font-size: 19px; }
	.catalog-tile-name { font-size: 13px; }
	.catalog-tile-impact { display: none; }
	.catalog-group { margin-bottom: 34px; }
	.constellation-stats { padding: 44px 0 36px; }
	.constellation-stat { margin-bottom: 18px; }
}

/* ==========================================================================
   Contact page redesign — dark intro panel + overlapping form card,
   unified contact strip, map address card
   ========================================================================== */

.contact-page .contact-form-layout {
	grid-template-columns: minmax(320px, .92fr) minmax(0, 1.08fr);
	gap: 0;
	align-items: stretch;
}

/* Intro becomes a brand-navy panel */
.contact-page .contact-form-intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: none;
	margin-right: clamp(28px, 5vw, 64px);
	padding: clamp(34px, 4vw, 52px);
	border-radius: 22px;
	background:
		radial-gradient(circle at 88% 8%, rgba(201, 37, 71, .18), transparent 42%),
		radial-gradient(circle at 8% 92%, rgba(77, 163, 232, .16), transparent 46%),
		linear-gradient(152deg, #071b34, #0b3768);
	box-shadow: 0 26px 60px rgba(7, 27, 52, .28);
	overflow: hidden;
	position: relative;
}
.contact-page .contact-form-intro::after {
	content: '';
	position: absolute;
	inset: -30% -5%;
	background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255, 255, 255, .03) 80px 81px);
	transform: rotate(-3deg);
	pointer-events: none;
}
.contact-page .contact-form-intro > * { position: relative; z-index: 1; }
.contact-page .contact-kicker { color: #ff92a8; }
.contact-page .contact-form-intro h2 { color: #fff; }
.contact-page .contact-form-intro > p { color: rgba(255, 255, 255, .78); font-size: 16px; }
.contact-page .contact-response-note {
	margin-top: 26px;
	padding-top: 22px;
	border-top-color: rgba(255, 255, 255, .14);
	color: rgba(255, 255, 255, .88);
}
.contact-page .contact-response-note i { color: #7db7e8; }

/* Quick call / email tiles inside the panel */
.contact-quick-links {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin-top: 22px;
}
.contact-quick-links a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 13px;
	background: rgba(255, 255, 255, .05);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	overflow-wrap: anywhere;
	transition: background-color .22s ease, border-color .22s ease, transform .22s ease;
}
.contact-quick-links a:hover {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .3);
	transform: translateY(-2px);
}
.contact-quick-links a i {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: rgba(255, 255, 255, .1);
	color: #9ecdf3;
	font-size: 13px;
}
.contact-quick-links a small {
	display: block;
	margin-bottom: 2px;
	color: rgba(255, 255, 255, .58);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Form card overlaps the panel */
.contact-page .contact_page_form {
	align-self: center;
	z-index: 2;
	margin-left: clamp(-84px, -6vw, -28px);
}
.contact-page .contact_page_form .get-quote-section {
	border-radius: 20px;
	box-shadow: 0 34px 80px rgba(11, 31, 58, .16);
}
.contact-page .contact_page_form .sub-button button {
	background: var(--ns-red);
	box-shadow: 0 10px 24px rgba(197, 34, 69, .26);
	transition: background-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.contact-page .contact_page_form .sub-button button:hover {
	background: #a91c3c;
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(197, 34, 69, .32);
}
.contact-page .contact_page_form .sub-button button:hover i { transform: translateX(4px); }
.contact-page .contact_page_form .sub-button button i { transition: transform .22s ease; }

/* Contact methods become one connected strip */
.contact-page .contact-methods {
	grid-template-columns: .9fr 1.35fr 1fr;
	gap: 0;
	border: 1px solid var(--ns-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(11, 31, 58, .05);
	overflow: hidden;
}
.contact-page .contact-method-card {
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 15px;
	align-items: center;
	min-height: 0;
	padding: 26px 28px;
	border: 0;
	border-left: 1px solid var(--ns-line);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.contact-page .contact-method-card:first-child { border-left: 0; }
.contact-page .contact-method-card:hover {
	border-color: transparent;
	box-shadow: none;
	transform: none;
	background: #f6fafd;
}

/* Map: address card overlay */
.contact-map-card {
	position: absolute;
	left: 18px;
	bottom: 18px;
	z-index: 2;
	max-width: min(330px, calc(100% - 36px));
	padding: 18px 20px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 20px 44px rgba(11, 31, 58, .2);
	backdrop-filter: blur(8px);
}
.contact-map-card strong {
	display: block;
	margin-bottom: 5px;
	color: var(--ns-navy);
	font-size: 15px;
	letter-spacing: -.01em;
}
.contact-map-card p {
	margin: 0 0 12px;
	color: var(--ns-muted);
	font-size: 13px;
	line-height: 1.55;
}
.contact-map-card a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--ns-blue);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease, transform .2s ease;
}
.contact-map-card a:hover { background: #0a3f80; transform: translateY(-1px); }
.contact-map-card a i { font-size: 11px; transition: transform .2s ease; }
.contact-map-card a:hover i { transform: translateX(3px); }
.contact-page .contact-map-iframe { min-height: 460px; }

@media (max-width: 991px) {
	.contact-page .contact-form-layout { grid-template-columns: 1fr; gap: 26px; }
	.contact-page .contact-form-intro { margin-right: 0; }
	.contact-page .contact_page_form { margin-left: 0; }
	.contact-page .contact-methods { grid-template-columns: 1fr 1fr; }
	.contact-page .contact-method-card-wide { grid-column: span 2; border-left: 0; border-top: 1px solid var(--ns-line); }
	.contact-page .contact-method-card + .contact-method-card:not(.contact-method-card-wide) { border-left: 1px solid var(--ns-line); }
}

@media (max-width: 767px) {
	.contact-page .contact-form-intro { padding: 28px 24px; }
	.contact-page .contact-methods { grid-template-columns: 1fr; }
	.contact-page .contact-method-card,
	.contact-page .contact-method-card + .contact-method-card:not(.contact-method-card-wide) { border-left: 0; }
	.contact-page .contact-method-card + .contact-method-card { border-top: 1px solid var(--ns-line); }
	.contact-page .contact-method-card-wide { grid-column: auto; border-top: 1px solid var(--ns-line); }
	.contact-map-card { left: 12px; bottom: 12px; padding: 15px 16px; }
	.contact-page .contact-map-iframe { min-height: 380px; }
}

/* Contact form: pin input icons inside the field, vertically centered
   (vendor CSS hardcoded top:55px which drifted out of alignment). */
.contact-page #contact_form .contact-info { position: relative; }
.contact-page #contact_form .contact-info input { height: 52px; }
.contact-page #contact_form .contact-info .icon-bg {
	top: auto;
	bottom: 15px;
	right: 16px;
	transform: none;
}


/* ==========================================================================
   Footer — final: on-identity navy band (matches stats/CTA sections)
   ========================================================================== */

.footer-section {
	background:
		radial-gradient(circle at 12% 18%, rgba(77, 163, 232, .09) 0, transparent 42%),
		radial-gradient(circle at 88% 88%, rgba(255, 255, 255, .035) 0, transparent 40%),
		linear-gradient(135deg, #071b34, #0b3768 64%, #075da8 130%) !important;
	border-top: 0;
	position: relative;
	overflow: hidden;
}
/* Brand accent hairline */
.footer-section::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 1;
	background: linear-gradient(90deg, var(--ns-blue), #4da3e8 45%, var(--ns-red));
}
/* Same diagonal-line texture as the stats band */
.footer-section::after {
	content: '';
	position: absolute;
	inset: -30% -5%;
	background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255, 255, 255, .022) 80px 81px);
	transform: rotate(-3deg);
	pointer-events: none;
}
.footer-section .container { position: relative; z-index: 1; }

/* Rhythm */
.footer-section .footer-widget-wrap { padding: 48px 0 36px !important; }
.footer-section .footer-main-row { align-items: flex-start; }
.footer-section .site-widget { margin: 0 !important; }

/* Logo: white tile, on-brand and readable */
.footer-logo {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .22);
}
.footer-logo::before, .footer-logo::after { display: none; }
.footer-logo img { max-width: 116px; margin: 0; }

/* Brand column */
.footer-section .footer-brand { max-width: 400px; }
.footer-section .footer-brand .footer-logo { margin-bottom: 18px; }
.footer-section .footer-brand p {
	color: #b6c3d6 !important;
	font-size: 13.5px;
	line-height: 1.7;
	margin-bottom: 14px;
}
.footer-since {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	background: rgba(255, 255, 255, .06);
	color: #c3cfdf;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.footer-since i { color: #ff92a8; font-size: 10px; }

/* Column titles */
.footer-section .widget-title {
	position: relative;
	color: #fff !important;
	font-size: 14px !important;
	letter-spacing: .04em;
	margin-bottom: 20px !important;
	padding-bottom: 12px;
}
.footer-section .widget-title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 32px;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--ns-blue-bright, #4da3e8), var(--ns-red));
}

/* Explore links: quiet, arrow slides in on hover */
.footer-section .footer-menu-widget .footer-menu a {
	display: inline-flex;
	align-items: center;
	color: #b6c3d6 !important;
	font-size: 13.5px;
	text-decoration: none;
	transition: color .2s ease, padding-left .2s ease;
}
.footer-section .footer-menu-widget .footer-menu a::before {
	content: '\2192';
	display: inline-block;
	width: 0;
	overflow: hidden;
	opacity: 0;
	font-size: 12px;
	transition: width .2s ease, opacity .2s ease, margin .2s ease;
}
.footer-section .footer-menu-widget .footer-menu a:hover { color: #fff !important; padding-left: 3px; }
.footer-section .footer-menu-widget .footer-menu a:hover::before {
	width: 15px;
	opacity: 1;
	margin-right: 8px;
	color: #65aee8;
}
.footer-section .footer-menu li { margin-bottom: 9px !important; }

/* Contact column: blue-tinted icon tiles */
.footer-section .footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 12px !important;
	color: #b6c3d6 !important;
	font-size: 13.5px;
	line-height: 1.55;
}
.footer-section .footer-contact-list li i {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background: rgba(255, 255, 255, .08);
	color: #65aee8 !important;
	font-size: 12px;
	margin-top: 1px;
}
.footer-section .footer-contact-list li > span,
.footer-section .footer-contact-list li > a { flex: 1; padding-top: 5px; }
.footer-section .footer-contact-list li a { color: #b6c3d6 !important; text-decoration: none; transition: color .2s ease; }
.footer-section .footer-contact-list li a:hover { color: #fff !important; }
.footer-section .footer-contact-lines { display: flex; flex-direction: column; gap: 3px; padding-top: 5px; }

/* Social icons */
.header_social.footer-social-spacing, .header_social.footer-social-spacing ul { float: none !important; clear: both; }
.header_social.footer-social-spacing ul { display: flex; gap: 8px; margin-top: 2px; }
.header_social.footer-social-spacing li { float: none !important; width: 38px !important; height: 38px !important; margin: 0 !important; }
.header_social.footer-social-spacing a {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 10px;
	background: rgba(255, 255, 255, .05);
	color: #c3cfdf !important;
	transition: background-color .22s ease, border-color .22s ease, transform .22s ease, color .22s ease;
}
.header_social.footer-social-spacing a:hover {
	background: var(--ns-blue);
	border-color: var(--ns-blue);
	color: #fff !important;
	transform: translateY(-2px);
}

/* Legal bar */
.footer-section .copyright-text {
	position: relative;
	z-index: 1;
	border-top: 1px solid rgba(255, 255, 255, .1) !important;
	background: rgba(4, 12, 24, .35) !important;
	padding: 16px 15px !important;
	color: #8fa0b5 !important;
	font-size: 12.5px;
}
.footer-legal { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.footer-legal-links { display: inline-flex; align-items: center; gap: 22px; }
.footer-legal-links a { color: #a9b8ca !important; text-decoration: none; font-weight: 600; }
.footer-legal-links a:hover { color: #fff !important; }
.footer-legal-links a i { margin-left: 6px; font-size: 11px; transition: transform .2s ease; }
.footer-legal-links a:hover i { transform: translateX(3px); }

@media (max-width: 991px) {
	.footer-section .footer-widget-wrap { padding: 40px 0 28px !important; }
	.footer-section .site-widget { margin-bottom: 30px !important; }
	.footer-section .footer-brand { max-width: 520px; }
}
@media (max-width: 767px) {
	.footer-section .footer-widget-wrap { padding: 34px 0 22px !important; }
	.footer-section .site-widget { margin-bottom: 26px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.footer-section .footer-menu-widget .footer-menu a,
	.footer-legal-links a i,
	.header_social.footer-social-spacing a { transition: none !important; }
}

/* ==========================================================================
   Vision & Mission enrichment — kicker, icons, balanced panels, checklists
   ========================================================================== */

.vm-kicker {
	display: block;
	margin-bottom: 14px;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.vm-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin-bottom: 20px;
	border-radius: 16px;
	font-size: 23px;
}
.vm-card-vision .vm-icon {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .16);
	color: #8ec6f5;
}
.vm-card-mission .vm-icon {
	background: #eaf4fc;
	box-shadow: inset 0 0 0 1px rgba(7, 93, 168, .1);
	color: var(--ns-blue);
}

.vm-card-content h3 { margin-bottom: 13px; }

/* Checklist points */
.vm-points {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}
.vm-points li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}
.vm-points li i {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	border-radius: 50%;
	font-size: 9px;
}
.vm-card-vision .vm-points li { color: #c1cde0; }
.vm-card-vision .vm-points li i {
	background: rgba(142, 198, 245, .16);
	color: #8ec6f5;
}
.vm-card-mission .vm-points li { color: var(--ns-ink); }
.vm-card-mission .vm-points li i {
	background: rgba(13, 80, 159, .09);
	color: var(--ns-blue);
}

/* Balance: flex column content, vertically centered in both panels */
.vm-card { display: flex; flex-direction: column; }
.vm-card .vm-card-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	height: 100%;
	padding-top: 0;
}
.vm-card-vision { min-height: 440px; }

@media (max-width: 991px) {
	.vm-card-vision { min-height: 0; }
}

/* ==========================================================================
   Vision & Mission — full redesign on the site's card identity
   ========================================================================== */

.vision-mission-page {
	background: #f6f9fc !important;
	padding: 88px 0 96px !important;
}
.vision-mission-page::before { display: none; }

.vm-intro { margin-bottom: 46px; }
.vm-kicker {
	display: block;
	margin-bottom: 13px;
	color: var(--ns-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.vm-intro h2 {
	margin: 0 0 16px;
	font-size: clamp(32px, 4.2vw, 48px);
	line-height: 1.12;
	letter-spacing: -.025em;
	text-wrap: balance;
}
.vm-intro p {
	max-width: 640px;
	margin: 0 auto;
	color: var(--ns-muted);
	font-size: 16px;
	line-height: 1.72;
	text-wrap: pretty;
}

/* Vision / Mission panels */
.vm-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	max-width: 1120px;
	margin: 0 auto;
	align-items: stretch;
}
.vm-panel {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(30px, 3.4vw, 44px);
	border-radius: 20px;
	transition: transform .3s ease, box-shadow .3s ease;
}
.vm-panel:hover { transform: translateY(-5px); }

.vm-panel-vision {
	color: #fff;
	background:
		radial-gradient(circle at 88% 6%, rgba(201, 37, 71, .16), transparent 42%),
		radial-gradient(circle at 6% 94%, rgba(77, 163, 232, .14), transparent 46%),
		linear-gradient(152deg, #071b34, #0b3768);
	box-shadow: 0 24px 56px rgba(7, 27, 52, .26);
	overflow: hidden;
	position: relative;
}
.vm-panel-vision::after {
	content: '';
	position: absolute;
	inset: -30% -5%;
	background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255, 255, 255, .025) 80px 81px);
	transform: rotate(-3deg);
	pointer-events: none;
}
.vm-panel-vision > * { position: relative; z-index: 1; }

.vm-panel-mission {
	border: 1px solid rgba(11, 31, 58, .09);
	background: #fff;
	box-shadow: 0 18px 44px rgba(11, 31, 58, .08);
}

.vm-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: 20px;
	border-radius: 16px;
	font-size: 22px;
}
.vm-panel-vision .vm-icon {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .16);
	color: #8ec6f5;
}
.vm-panel-mission .vm-icon {
	background: #eaf4fc;
	box-shadow: inset 0 0 0 1px rgba(7, 93, 168, .1);
	color: var(--ns-blue);
}

.vm-panel h3 {
	margin: 0 0 14px;
	font-size: clamp(25px, 2.4vw, 31px);
	line-height: 1.15;
	letter-spacing: -.02em;
}
.vm-panel-vision h3 { color: #fff; }
.vm-panel-mission h3 { color: var(--ns-navy); }

.vm-panel > p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.72;
	text-wrap: pretty;
}
.vm-panel-vision > p { color: #c1cde0; }
.vm-panel-mission > p { color: var(--ns-muted); }

.vm-points {
	margin: auto 0 0;
	padding: 22px 0 0;
	border-top: 1px solid rgba(125, 145, 170, .18);
	list-style: none;
	display: grid;
	gap: 10px;
	width: 100%;
}
/* Guarantee identical internal structure: icon/title/paragraph blocks share
   the same heights across both panels, lists sit on the same baseline. */
.vm-panel .vm-icon,
.vm-panel h3 { flex-shrink: 0; }
.vm-panel > p { flex-shrink: 0; }
.vm-points li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.5;
}
.vm-points li i {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	border-radius: 50%;
	font-size: 9px;
}
.vm-panel-vision .vm-points li { color: #c1cde0; }
.vm-panel-vision .vm-points li i { background: rgba(142, 198, 245, .16); color: #8ec6f5; }
.vm-panel-mission .vm-points li { color: var(--ns-ink); }
.vm-panel-mission .vm-points li i { background: rgba(13, 80, 159, .09); color: var(--ns-blue); }

/* Values strip */
.vm-values { max-width: 1120px; margin: 64px auto 0; }
.vm-values-head { margin-bottom: 26px; text-align: center; }
.vm-values-head h3 {
	margin: 0;
	font-size: clamp(21px, 2.2vw, 27px);
	letter-spacing: -.02em;
	color: var(--ns-navy);
}
.vm-value-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 30px 24px;
	border: 1px solid rgba(11, 31, 58, .09);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 20px rgba(11, 31, 58, .05);
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.vm-value-card:hover {
	transform: translateY(-5px);
	border-color: rgba(7, 93, 168, .24);
	box-shadow: 0 16px 34px rgba(11, 31, 58, .1);
}
.vm-value-card i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 14px;
	border-radius: 13px;
	background: #eaf4fc;
	color: var(--ns-blue);
	font-size: 18px;
}
.vm-value-card h4 {
	margin: 0 0 7px;
	font-size: 17px;
	color: var(--ns-navy);
}
.vm-value-card p {
	margin: 0;
	color: var(--ns-muted);
	font-size: 13.5px;
	line-height: 1.6;
}

@media (max-width: 991px) {
	.vm-grid { grid-template-columns: 1fr; }
	.vm-values { margin-top: 48px; }
	.vm-value-card { margin-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.vm-panel:hover, .vm-value-card:hover { transform: none; }
}

/* ==========================================================================
   Stats band refinement — cleaner icon tiles, accent suffix, tighter type
   ========================================================================== */

.client-counter-section { padding: 62px 0; }
.stat-box { padding: 6px 18px; }

/* Icon: compact rounded tile instead of the big circular chip */
.stat-icon {
	width: 46px;
	height: 46px;
	margin: 0 auto 16px;
	border-radius: 13px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .14);
	font-size: 18px;
}
.stat-box:hover .stat-icon {
	transform: translateY(-3px);
	background: rgba(255, 255, 255, .14);
}

/* Number: tighter, with the "+" in brand red */
.stat-box .stat-number {
	font-size: clamp(42px, 4.4vw, 58px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.035em;
}
.stat-box .stat-number .stat-suffix { color: #ff92a8; margin-left: 1px; }
.stat-box:hover .stat-number { text-shadow: 0 0 26px rgba(142, 198, 245, .45); }

/* Label */
.stat-box .stat-label {
	margin-top: 10px;
	font-size: 11.5px;
	letter-spacing: .16em;
	color: rgba(255, 255, 255, .66);
}

/* Dividers slightly taller and softer */
@media (min-width: 992px) {
	.stats-row > [class*="col-"]:not(:first-child) .stat-box::before { height: 74px; background: rgba(255, 255, 255, .14); }
}

/* ==========================================================================
   Header CTA — brand-red pill with sliding arrow (matches site CTAs)
   ========================================================================== */

.site-header-cta {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 22px;
	border-radius: 10px;
	background: linear-gradient(135deg, #d42a50, var(--ns-red));
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 8px 20px rgba(197, 34, 69, .28), inset 0 1px 0 rgba(255, 255, 255, .18);
	transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.site-header-cta i {
	font-size: 12px;
	transition: transform .22s ease;
}
.site-header-cta::before {
	content: '';
	position: absolute;
	top: 0;
	left: -70%;
	width: 45%;
	height: 100%;
	background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .25), transparent);
	transform: skewX(-20deg);
	transition: left .5s ease;
	pointer-events: none;
}
.site-header-cta:hover {
	background: linear-gradient(135deg, #c22347, #a91d3a);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(197, 34, 69, .34), inset 0 1px 0 rgba(255, 255, 255, .18);
}
.site-header-cta:hover i { transform: translateX(4px); }
.site-header-cta:hover::before { left: 130%; }
.site-header-cta:active { transform: translateY(0) scale(.98); }

@media (max-width: 1080px) {
	.site-header-cta { padding: 10px 16px; font-size: 13px; }
}
@media (max-width: 991px) {
	/* This later, unconditional redefinition above (same specificity as the
	   mobile-hide rule near .site-nav-toggle) wins by source order and was
	   un-hiding the CTA on mobile, pushing the hamburger toggle off-screen. */
	.site-header-cta { display: none; }
}

/* ==========================================================================
   "View All Posts" — outlined pill that fills with the brand gradient
   ========================================================================== */

.view-all-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 30px;
	border: 2px solid var(--ns-blue);
	border-radius: 999px;
	background: transparent;
	color: var(--ns-blue);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .2s ease;
}
.view-all-btn i { font-size: 12px; transition: transform .25s ease; }
.view-all-btn:hover {
	background: linear-gradient(135deg, #d42a50, var(--ns-red));
	border-color: var(--ns-red);
	color: #fff;
	box-shadow: 0 12px 26px rgba(197, 34, 69, .28);
	transform: translateY(-2px);
}
.view-all-btn:hover i { transform: translateX(4px); }
.view-all-btn:active { transform: translateY(0) scale(.98); }

/* Footer credit line */
.footer-credit { font-size: 11.5px; color: #7e8896 !important; }
.footer-credit a { color: #a9b8ca !important; font-weight: 600; text-decoration: none; }
.footer-credit a:hover { color: #fff !important; }

/* ==========================================================================
   Blog post share bar
   ========================================================================== */

.post-share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px 18px;
	margin-top: 34px;
	padding: 18px 22px;
	border: 1px solid var(--ns-line);
	border-radius: 14px;
	background: #f8fafd;
}
.post-share-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ns-navy);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
}
.post-share-label i { color: var(--ns-red); }
.post-share-buttons { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.post-share-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 14px;
	border: 1px solid var(--ns-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ns-ink);
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	font-family: inherit;
	transition: color .2s ease, border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.post-share-btn i { font-size: 13px; }
.post-share-btn:hover { transform: translateY(-2px); color: #fff; }
.post-share-btn.ps-linkedin:hover { background: #0a66c2; border-color: #0a66c2; }
.post-share-btn.ps-x:hover { background: #0f1419; border-color: #0f1419; }
.post-share-btn.ps-whatsapp:hover { background: #25d366; border-color: #25d366; }
.post-share-btn.ps-facebook:hover { background: #1877f2; border-color: #1877f2; }
.post-share-btn.ps-copy:hover { background: var(--ns-blue); border-color: var(--ns-blue); }
.post-share-short {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--ns-muted);
	margin-left: auto;
}
.post-share-short code {
	background: #eef3f9;
	border-radius: 6px;
	padding: 3px 8px;
	color: var(--ns-blue);
	font-size: 11.5px;
}
@media (max-width: 767px) {
	.post-share { flex-direction: column; align-items: flex-start; }
	.post-share-short { margin-left: 0; }
}
