/**
 * Footer — dark theme matching the header's mega-menu palette.
 */

.footer--new {
	padding-top: 0;
	background: var(--wimira-night);
	color: #b8b7c9;
	/* Establishes a new block formatting context so the baseline panel's
	   margin-bottom (the last thing inside footer) can't collapse through
	   and escape this element's own dark background, exposing the page's
	   white body bg beneath it (verified — reproduced without this). */
	display: flow-root;
}

/* ── CTA banner — standalone section, sits on the page's own background
   (not the footer's), just above it. ── */
.footer-cta {
	/* Keep a small inset above the card; do not stack a full section of
	   white air on top of the last main section's padding-bottom. */
	padding: 12px 0 28px;
	background: var(--wimira-bg);
}

/*
 * White-on-white gap fix (sitewide): when main ends on a light section,
 * the previous equal top/bottom section padding (often 80–120px) plus
 * this CTA's own top padding read as a huge empty band. Dark in-page
 * CTAs are excluded — their bottom padding lives inside the night band.
 */
.site-main > :last-child:not(.sol-detail-cta):not(.capd-cta):not(.aid-cta):not(.cid-cta):not(.db-cta):not(.dg-cta):not(.ip-cta--dark):not(.home-cta-band):not(.page-cta-band):not(.util-cta-band):not(.util-faq-cta):not(.ind-hub-cta-band):not(.blog-contact-cta):not(.blog-research-cta) {
	padding-bottom: 40px !important;
}

@media (min-width: 768px) {
	.site-main > :last-child:not(.sol-detail-cta):not(.capd-cta):not(.aid-cta):not(.cid-cta):not(.db-cta):not(.dg-cta):not(.ip-cta--dark):not(.home-cta-band):not(.page-cta-band):not(.util-cta-band):not(.util-faq-cta):not(.ind-hub-cta-band):not(.blog-contact-cta):not(.blog-research-cta) {
		padding-bottom: 48px !important;
	}
}

@media (min-width: 1280px) {
	.site-main > :last-child:not(.sol-detail-cta):not(.capd-cta):not(.aid-cta):not(.cid-cta):not(.db-cta):not(.dg-cta):not(.ip-cta--dark):not(.home-cta-band):not(.page-cta-band):not(.util-cta-band):not(.util-faq-cta):not(.ind-hub-cta-band):not(.blog-contact-cta):not(.blog-research-cta) {
		padding-bottom: 56px !important;
	}
}

/* When main already ends on a dark CTA band, keep footer CTA flush — no
   extra white strip between night section and the card. */
.site-main:has(> .sol-detail-cta:last-child) + .footer-cta,
.site-main:has(> .capd-cta:last-child) + .footer-cta,
.site-main:has(> .aid-cta:last-child) + .footer-cta,
.site-main:has(> .cid-cta:last-child) + .footer-cta,
.site-main:has(> .db-cta:last-child) + .footer-cta,
.site-main:has(> .dg-cta:last-child) + .footer-cta,
.site-main:has(> .ip-cta--dark:last-child) + .footer-cta,
.site-main:has(> .home-cta-band:last-child) + .footer-cta,
.site-main:has(> .page-cta-band:last-child) + .footer-cta,
.site-main:has(> .util-cta-band:last-child) + .footer-cta,
.site-main:has(> .util-faq-cta:last-child) + .footer-cta,
.site-main:has(> .ind-hub-cta-band:last-child) + .footer-cta,
.site-main:has(> .blog-contact-cta:last-child) + .footer-cta,
.site-main:has(> .blog-research-cta:last-child) + .footer-cta {
	padding-top: 0;
}

.footer-cta__card {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 28px 24px;
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: linear-gradient(135deg, #23111a 0%, var(--wimira-night) 55%, var(--wimira-night) 100%);
}

@media (min-width: 960px) {
	.footer-cta__card {
		flex-direction: row;
		align-items: center;
		gap: 32px;
		padding: 28px 40px;
	}
}

.footer-cta__glow {
	position: absolute;
	top: -60%;
	right: -10%;
	width: 60%;
	height: 220%;
	background: radial-gradient(circle, rgba(226, 44, 40, 0.25) 0%, rgba(226, 44, 40, 0) 70%);
	pointer-events: none;
}

.footer-cta__body {
	position: relative;
	flex: 1 1 auto;
}

.footer-cta__heading {
	margin: 0 0 6px;
	font-family: var(--wimira-font-heading);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
}

@media (min-width: 1280px) {
	.footer-cta__heading {
		font-size: 26px;
	}
}

.footer-cta__heading span {
	color: var(--wimira-red);
}

.footer-cta__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: #b8b7c9;
}

.footer-cta__actions {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	flex: 0 0 auto;
}

.footer-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px;
	border-radius: 48px;
	font-family: var(--wimira-font);
	font-size: 14px;
	font-weight: 600;
	line-height: 16px;
	text-decoration: none;
	white-space: nowrap;
	transition:
		background-color 0.3s var(--wimira-ease),
		border-color 0.3s var(--wimira-ease),
		color 0.3s var(--wimira-ease);
}

.footer-cta__btn--primary {
	background: var(--wimira-red);
	border: 1px solid var(--wimira-red);
	color: #fff;
}

.footer-cta__btn--primary:hover,
.footer-cta__btn--primary:focus-visible {
	background: var(--wimira-red-hover);
	border-color: var(--wimira-red-hover);
}

.footer-cta__btn--secondary {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.24);
	color: #fff;
}

.footer-cta__btn--secondary:hover,
.footer-cta__btn--secondary:focus-visible {
	background: #fff;
	color: var(--wimira-ink);
}

/* ── Top: sidebar + link columns ── */
.footer--new__top {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-top: 40px;
	padding-bottom: 40px;
}

@media (min-width: 960px) {
	.footer--new__top {
		flex-direction: row;
		gap: 48px;
		padding-top: 56px;
		padding-bottom: 56px;
	}
}

@media (min-width: 1440px) {
	.footer--new__top {
		gap: 64px;
	}
}

/* ── Sidebar ── */
.footer--new__sidebar {
	flex: 0 0 auto;
	width: 100%;
}

@media (min-width: 960px) {
	.footer--new__sidebar {
		width: 240px;
	}
}

@media (min-width: 1440px) {
	.footer--new__sidebar {
		width: 268px;
	}
}

.footer--new__logo {
	display: inline-block;
	color: var(--wimira-red);
	text-decoration: none;
	outline: 0;
}

.footer--new__logo-image {
	display: block;
	height: 40px;
	width: auto;
}

.footer--new__desc {
	margin: 20px 0 0;
	max-width: 320px;
	font-size: 14px;
	line-height: 1.6;
	color: #b8b7c9;
}

.footer--new__social {
	display: flex;
	gap: 12px;
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
}

.footer--new__social-item {
	margin: 0;
}

.footer--new__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: #1f1e2b;
	border: 1px solid rgba(255, 255, 255, 0.08);
	color: #b8b7c9;
	text-decoration: none;
	transition:
		background-color 0.3s var(--wimira-ease),
		border-color 0.3s var(--wimira-ease),
		color 0.3s var(--wimira-ease);
}

.footer--new__social-link:hover,
.footer--new__social-link:focus-visible {
	background: var(--wimira-red);
	border-color: var(--wimira-red);
	color: #fff;
}

.footer--new__info-block {
	margin-top: 28px;
}

.footer--new__info-eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	color: var(--wimira-red);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.footer--new__info-eyebrow svg {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 5px;
	box-sizing: border-box;
	border-radius: 7px;
	border: 1px solid rgba(226, 44, 40, 0.3);
	background: rgba(226, 44, 40, 0.08);
}

.footer--new__info-text {
	font-size: 13px;
	line-height: 1.6;
	color: #b8b7c9;
}

.footer--new__info-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	transition: color 0.3s var(--wimira-ease);
}

.footer--new__info-link svg {
	color: var(--wimira-red);
	transition: transform 0.3s var(--wimira-ease);
}

.footer--new__info-link:hover,
.footer--new__info-link:focus-visible {
	color: var(--wimira-red);
}

.footer--new__info-link:hover svg,
.footer--new__info-link:focus-visible svg {
	transform: translate(2px, -2px);
}

/* ── Link columns ── */
.footer--new__columns {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	/* Columns keep their own natural height instead of grid's default
	   stretch-to-tallest-sibling — Industries (17 links) would otherwise
	   force every shorter column (Products, AI Solutions Advisor, etc.) to
	   drag a huge block of dead space down to match it before the certs
	   strip starts. */
	align-items: start;
	gap: 32px 24px;
	flex: 1 1 auto;
	min-width: 0;
}

@media (min-width: 640px) {
	.footer--new__columns {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 960px) {
	.footer--new__columns {
		grid-template-columns: repeat(5, 1fr);
		gap: 32px 20px;
	}

	.footer--new__column {
		position: relative;
		padding-right: 20px;
	}

	.footer--new__column:not(:nth-child(5n))::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 1px;
		background: rgba(255, 255, 255, 0.08);
	}

	/* Second row of the 5-column grid — top border bridges the row-gap so
	   the vertical dividers above read as one continuous grid line. */
	.footer--new__column:nth-child(n + 6) {
		padding-top: 24px;
		/* border-top: 1px solid rgba(255, 255, 255, 0.08); */
	}
}

@media (min-width: 1680px) {
	.footer--new__columns {
		gap: 32px 32px;
	}

	.footer--new__column {
		padding-right: 32px;
	}
}

.footer--new__column-title {
	position: relative;
	margin: 0 0 20px;
	padding-bottom: 12px;
	font-family: var(--wimira-font-heading);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

.footer--new__column-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 2px;
	border-radius: 1px;
	background: var(--wimira-red);
}

.footer--new__column-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer--new__column-list li {
	margin: 0 0 12px;
}

.footer--new__column-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	line-height: 1.5;
	color: #b8b7c9;
	text-decoration: none;
	transition: color 0.3s var(--wimira-ease);
}

.footer--new__column-list a svg {
	flex: 0 0 auto;
	color: rgba(184, 183, 201, 0.5);
	transition:
		color 0.3s var(--wimira-ease),
		transform 0.3s var(--wimira-ease);
}

.footer--new__column-list a:hover,
.footer--new__column-list a:focus-visible {
	color: #fff;
}

.footer--new__column-list a:hover svg,
.footer--new__column-list a:focus-visible svg {
	color: var(--wimira-red);
	transform: translateX(2px);
}

.footer--new__column-viewall {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wimira-red);
	text-decoration: none;
}

.footer--new__column-viewall:hover,
.footer--new__column-viewall:focus-visible {
	text-decoration: underline;
}

/* ── Baseline panel: certs + copyright merged into one strip. Background
   spans the full viewport width (not inset like a floating card) — only
   the content inside (via .container-n) stays aligned to the page's
   reading width. ── */
.footer--new__baseline {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: var(--wimira-night);
}

.footer--new__certs-row {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 40px;
	text-align: center;
}

.footer--new__certs-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	white-space: nowrap;
}

.footer--new__certs-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: var(--wimira-red);
}

.footer--new__baseline-divider {
	height: 1px;
	background: rgba(255, 255, 255, 0.08);
}

/* ── Bottom row (copyright / legal / language) ── */
.footer--new__bottom-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 24px 40px;
	text-align: center;
}

@media (min-width: 960px) {
	.footer--new__bottom-row {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
}

.footer--new__copyright {
	font-size: 12px;
	color: #8b8a9a;
	order: 3;
}

@media (min-width: 960px) {
	.footer--new__copyright {
		order: 1;
	}
}

.footer--new__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 16px;
	list-style: none;
	margin: 0;
	padding: 0;
	order: 1;
}

.footer--new__legal li {
	display: flex;
	align-items: center;
	gap: 16px;
}

.footer--new__legal li:not(:last-child)::after {
	content: "|";
	color: rgba(255, 255, 255, 0.16);
}

@media (min-width: 960px) {
	.footer--new__legal {
		order: 2;
	}
}

.footer--new__legal a {
	font-size: 12px;
	color: #8b8a9a;
	text-decoration: none;
	transition: color 0.3s var(--wimira-ease);
}

.footer--new__legal a:hover,
.footer--new__legal a:focus-visible {
	color: #fff;
}

.footer--new__lang {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 12px;
	font-weight: 600;
	color: #b8b7c9;
	order: 2;
}

@media (min-width: 960px) {
	.footer--new__lang {
		order: 3;
	}
}

/* ── Mobile: stack sidebar/columns, condense certs & bottom bar ── */
@media (max-width: 959px) {
	.footer--new__certs-row,
	.footer--new__bottom-row {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 639px) {
	.footer--new__columns {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 16px;
	}

	.footer--new__certs-row,
	.footer--new__bottom-row {
		padding-left: 16px;
		padding-right: 16px;
	}

	.footer-cta__btn {
		white-space: normal;
		justify-content: center;
		text-align: center;
	}

	.footer--new__certs-title {
		white-space: normal;
		font-size: 14px;
		line-height: 1.35;
	}
}
