/* ──────────────────────────────────────────────
   AraguaiaBiotech - Custom Styles
   ────────────────────────────────────────────── */

/* ── Design Tokens (CSS Custom Properties) ──
   All colors, shadows, transitions, and spacing
   referenced from theme.json where possible.
   These supplements bridge theme.json vars with
   component-level usage.
   ────────────────────────────────────────────── */
:root {
	--ablib-primary: var(--wp--preset--color--primary, #0077B6);
	--ablib-primary-dark: var(--wp--preset--color--primary-dark, #005F8A);
	--ablib-accent: var(--wp--preset--color--accent, #5BB531);
	--ablib-accent-dark: #4A9628;
	--ablib-text: var(--wp--preset--color--text, #1A1A2E);
	--ablib-muted: var(--wp--preset--color--muted, #666666);
	--ablib-bg: var(--wp--preset--color--background, #F6F6F6);
	--ablib-bg-white: var(--wp--preset--color--white, #FFFFFF);
	--ablib-light: var(--wp--preset--color--light-teal, #E8ECEC);
	--ablib-shadow-card: 0 2px 8px rgba(0, 0, 0, 0.08);
	--ablib-shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.2);
	--ablib-shadow-header: 0 2px 8px rgba(0, 0, 0, 0.1);
	--ablib-radius-sm: 4px;
	--ablib-radius-md: 8px;
	--ablib-radius-lg: 12px;
	--ablib-radius-xl: 16px;
	--ablib-radius-btn: 4px;
	--ablib-radius-pill: 9999px;
	--ablib-transition-fast: 0.2s ease;
	--ablib-transition-normal: 0.3s ease;
	--ablib-font-btn: var(--wp--preset--font-family--poppins, 'Poppins', sans-serif);
	--ablib-section-padding-y: 3.75rem;    /* 60px desktop (biotechtown) */
	--ablib-section-padding-y-sm: 2.5rem;  /* 40px mobile */
	--ablib-card-gap: 1.875rem;            /* 30px */
}

/* ── Base & Reset ── */
html {
	scroll-behavior: smooth;
	overflow-x: hidden;
}

body {
	overflow-x: hidden;
}

body {
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection {
	background: var(--ablib-primary);
	color: #fff;
}

body.menu-open {
	overflow: hidden;
}

/* ── Skip-to-Content (Accessibility) ── */
.skip-to-content {
	position: absolute;
	top: -100%;
	left: 50%;
	transform: translateX(-50%);
	background: var(--ablib-accent);
	color: #fff;
	padding: 0.75rem 1.5rem;
	border-radius: var(--ablib-radius-md);
	font-weight: 600;
	z-index: 10000;
	text-decoration: none;
	transition: top var(--ablib-transition-fast);
}

.skip-to-content:focus {
	top: 1rem;
}

/* ── Focus-Visible Styles (Accessibility) ── */
:focus-visible {
	outline: 2px solid var(--ablib-accent);
	outline-offset: 2px;
}

button:focus-visible,
a:focus-visible {
	outline: 2px solid var(--ablib-accent);
	outline-offset: 2px;
}

/* ── Reduced Motion (Accessibility) ── */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ── Hero Static ── */
.hero-static {
	position: relative;
}

.hero-static .wp-block-cover__background {
	background: linear-gradient(135deg, rgba(0, 47, 75, 0.4) 0%, rgba(0, 0, 0, 0.15) 100%) !important;
	opacity: 1 !important;
}

.hero-static .wp-block-cover__inner-container {
	display: flex;
	align-items: center;
	min-height: 80vh;
	min-height: 80dvh;
	padding-bottom: 10vh;
}

.hero-static .hero-title {
	color: var(--ablib-white, #fff) !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6), 0 0 40px rgba(0, 0, 0, 0.35);
	max-width: 700px;
	margin-top: 0;
}

.hero-static .hero-subtitle {
	color: var(--ablib-white, #fff) !important;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5), 0 0 30px rgba(0, 0, 0, 0.3);
	max-width: 640px;
}

/* Ghost button (white outline) on dark backgrounds */
.btn-ghost-white .wp-block-button__link {
	background: transparent !important;
	transition: background var(--ablib-transition-normal), color var(--ablib-transition-normal);
}

.btn-ghost-white .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.15) !important;
	transform: translateY(-2px);
}

/* Hero scroll indicator */
.hero-scroll-indicator {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	animation: scrollBounce 2s ease-in-out infinite;
	opacity: 0.7;
	pointer-events: none;
}

@keyframes scrollBounce {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50% { transform: translateX(-50%) translateY(8px); }
}

/* ── Metrics Strip (centered between hero and about) ── */
.metrics-section {
	margin-top: -2rem;
	padding-top: 0 !important;
	padding-bottom: 2.5rem !important;
	position: relative;
	z-index: 6;
}

.metrics-grid {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	max-width: 1100px;
	margin: 0 auto;
}

.metric-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 2rem;
	position: relative;
}

.metric-item:not(:last-child)::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 2rem;
	background: var(--ablib-light, #E8ECEC);
}

.metric-number {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	color: var(--ablib-primary);
	line-height: 1;
	margin: 0;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	min-width: max-content;
}

.metric-label {
	font-size: 0.8125rem;
	color: var(--ablib-muted);
	margin: 0;
	line-height: 1.3;
	max-width: 140px;
}

/* Old green line dividers removed — replaced by wave separators */

/* ── Cards text: ensure readability ── */
.hover-lift h3,
.hover-lift h4 {
	color: var(--ablib-primary-dark) !important;
}

.hover-lift p {
	color: #374151 !important;
}

/* ── Fixed Header ── */
.site-header {
	transition: background var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal), padding var(--ablib-transition-normal);
	position: fixed !important;
	top: 0 !important;
	left: 0;
	right: 0;
	z-index: 1000;
	background: var(--ablib-primary);
	overflow: visible;
}

.site-logo {
	margin: -10px 0;
	position: relative;
	top: 7px;
}

.site-header::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: clamp(20px, 4vw, 40px);
	margin-top: -1px; /* overlap 1px to prevent sub-pixel gap */
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2880 100' preserveAspectRatio='none' shape-rendering='geometricPrecision'%3E%3Cpath d='M0,0 L0,40 C720,80 1440,0 2880,50 L2880,0 Z' fill='%230077B6'/%3E%3Cpath d='M-40,42 C680,82 1360,2 2920,52' stroke='%23005F8A' stroke-width='2' fill='none' opacity='0.5'/%3E%3Cpath d='M-20,48 C700,88 1380,8 2940,58' stroke='%235BB531' stroke-width='1.8' fill='none' opacity='0.45'/%3E%3Cpath d='M-60,36 C660,76 1340,-4 2900,46' stroke='%230077B6' stroke-width='1.5' fill='none' opacity='0.3'/%3E%3C/svg%3E") center/100% 100% no-repeat;
	pointer-events: none;
	z-index: 999;
}

/* Eliminate WordPress default block gap after header */
.site-header + *,
:where(.wp-site-blocks) > *,
:where(.wp-site-blocks) > :first-child {
	margin-block-start: 0 !important;
}

.site-header.transparent {
	background: var(--ablib-primary);
}

.site-header.scrolled {
	background: var(--ablib-primary);
}

/* Header height stays constant — no shrink on scroll */

/* Logo: always show light version (bg is always dark/transparent) */
.site-header .logo-light { display: block; }

/* Nav link colors — always white on dark/blue bg */
.site-header .nav-desktop .wp-block-navigation-item a { color: #fff !important; }



/* Nav underlines — all green for visibility on dark/blue header */
.nav-desktop .wp-block-navigation-item a::after {
	background: var(--ablib-accent) !important;
}

/* ── Desktop Nav Link Hover Underlines ── */
.nav-desktop .wp-block-navigation-item a {
	position: relative;
	padding-bottom: 4px;
	letter-spacing: 0.5px;
	transition: color var(--ablib-transition-fast);
}

.nav-desktop .wp-block-navigation-item a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 2px;
	background: var(--ablib-accent);
	transition: width var(--ablib-transition-normal), left var(--ablib-transition-normal);
}

.nav-desktop .wp-block-navigation-item a:hover::after,
.nav-desktop .wp-block-navigation-item.current-menu-item a::after {
	width: 100%;
	left: 0;
}

/* Active nav state: accent color */
.nav-desktop .wp-block-navigation-item.current-menu-item a {
	color: var(--ablib-accent) !important;
}

/* ── Mobile Hamburger Menu ── */
.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	width: 32px;
	height: 24px;
	position: relative;
	z-index: 1001;
	padding: 0;
}

.mobile-menu-toggle span {
	display: block;
	width: 100%;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	position: absolute;
	left: 0;
	transition: transform var(--ablib-transition-normal), opacity var(--ablib-transition-normal);
}

.mobile-menu-toggle span:nth-child(1) { top: 0; }
.mobile-menu-toggle span:nth-child(2) { top: 11px; }
.mobile-menu-toggle span:nth-child(3) { top: 22px; }

.mobile-menu-toggle.active span:nth-child(1) {
	transform: translateY(11px) rotate(45deg);
}
.mobile-menu-toggle.active span:nth-child(2) {
	opacity: 0;
}
.mobile-menu-toggle.active span:nth-child(3) {
	transform: translateY(-11px) rotate(-45deg);
}


.mobile-nav-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 50, 75, 0.97);
	z-index: 999;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	opacity: 0;
	transition: opacity var(--ablib-transition-normal);
}

.mobile-nav-overlay.active {
	display: flex;
	opacity: 1;
}

.mobile-nav-overlay a {
	color: #fff;
	text-decoration: none;
	font-size: 1.25rem;
	font-weight: 500;
	padding: 0.75rem 2rem;
	transition: color var(--ablib-transition-fast);
	display: block;
	text-align: center;
}

.mobile-nav-overlay a:hover {
	color: var(--ablib-accent);
}

.mobile-nav-overlay .mobile-lang-switch {
	margin-top: 1.5rem;
	display: flex;
	gap: 1rem;
}

.mobile-nav-overlay .mobile-lang-switch a {
	font-size: 0.9rem;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--ablib-radius-sm);
}

/* ── Language Switcher ── */
.language-switcher {
	position: relative;
}

.language-switcher ul {
	list-style: none;
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.language-switcher li {
	display: inline-block;
}

.language-switcher a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border-radius: var(--ablib-radius-sm);
	font-size: 0.75rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: background var(--ablib-transition-fast), color var(--ablib-transition-fast);
	border: 1px solid transparent;
}

.language-switcher a:hover,
.language-switcher .current-lang a {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.2);
}

.language-switcher img {
	width: 16px;
	height: 12px;
	border-radius: 1px;
}

.lang-fallback {
	display: inline-flex;
	gap: 4px;
	align-items: center;
}

.lang-fallback a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: var(--ablib-radius-sm);
	transition: background var(--ablib-transition-fast), color var(--ablib-transition-fast);
}

.lang-fallback a:hover,
.lang-fallback a.active {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

.lang-fallback span {
	color: rgba(255, 255, 255, 0.4);
	font-size: 0.75rem;
}

/* ── Section Headings ── */
.section-heading {
	font-size: 1.875rem;
	font-weight: 600;
	color: var(--ablib-primary);
}

.section-subtitle {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ablib-muted);
}

/* ── Alternating Section Backgrounds ── */
.section-bg-white {
	background-color: var(--ablib-bg-white);
}

.section-bg-alt {
	background-color: var(--ablib-bg);
}

/* ── Consistent Section Spacing ── */
.section-spacing {
	padding-top: var(--ablib-section-padding-y);
	padding-bottom: var(--ablib-section-padding-y);
}

/* ── SVG Icon Containers ── */
.icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ablib-light);
	color: var(--ablib-primary);
	transition: background var(--ablib-transition-normal), transform var(--ablib-transition-normal), color var(--ablib-transition-normal);
	flex-shrink: 0;
}

.icon-wrap:hover {
	background: var(--ablib-primary);
	color: #fff;
	transform: scale(1.05);
}

.icon-wrap svg {
	width: 28px;
	height: 28px;
}

/* ── Card System ── */
.card-shadow {
	box-shadow: var(--ablib-shadow-card);
}

.hover-lift {
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.hover-lift:hover {
	transform: translateY(-8px);
	box-shadow: var(--ablib-shadow-card-hover);
}

/* ── Gradient Accent Border ── */
.card-gradient-border {
	position: relative;
	overflow: hidden;
}

.card-gradient-border::before {
	display: none;
}

/* ── Card shadows for all card types ── */
.research-card,
.service-card,
.news-card,
.team-card {
	box-shadow: var(--ablib-shadow-card);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.research-card:hover,
.service-card:hover,
.news-card:hover,
.team-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ablib-shadow-card-hover);
}

/* ── Services Carousel (transform-based, infinite loop) ── */
.services-carousel-wrap {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
	padding: 0 3rem;
}

.services-carousel {
	overflow: hidden;
	padding: 1rem 0 2rem;
}

.services-carousel-track {
	display: flex;
	gap: 1.5rem;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.services-carousel-track > * {
	margin: 0 !important;
}

/* Kill all transitions during clone-to-real jump */
.services-carousel-track.no-transition,
.services-carousel-track.no-transition .service-card,
.services-carousel-track.no-transition .service-card .icon-wrap {
	transition: none !important;
}

/* --- Card depth levels: far → adjacent → active --- */
.services-carousel .service-card {
	flex: 0 0 auto;
	box-sizing: border-box;
	min-height: 0;
	display: flex;
	flex-direction: column;
	background: var(--ablib-white, #fff);
	border-radius: 12px;
	padding: 2.25rem 2rem 2rem;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition:
		box-shadow 0.6s ease,
		transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
		opacity 0.6s ease,
		filter 0.6s ease;
	opacity: 0.25;
	transform: scale(0.82);
	filter: blur(3px);
	will-change: transform, opacity, filter;
	position: relative;
	overflow: hidden;
}

/* Subtle top accent gradient (not a border strip — a soft glow) */
.services-carousel .service-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--ablib-primary, #0077B6), var(--ablib-accent, #5BB531));
	opacity: 0;
	transition: opacity 0.5s ease;
}
.services-carousel .service-card.carousel-active::before {
	opacity: 1;
}

/* Adjacent cards (prev/next) — partial visibility */
.services-carousel .service-card.carousel-adjacent {
	opacity: 0.6;
	transform: scale(0.92);
	filter: blur(0.5px);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

/* Active (centered) card — full clarity + glow */
.services-carousel .service-card.carousel-active {
	opacity: 1;
	transform: scale(1);
	filter: none;
	box-shadow:
		0 12px 40px rgba(0, 119, 182, 0.2),
		0 4px 12px rgba(0, 0, 0, 0.08);
}

.services-carousel .service-card:hover {
	box-shadow:
		0 16px 48px rgba(0, 119, 182, 0.25),
		0 6px 16px rgba(0, 0, 0, 0.1);
}

/* --- Icon container --- */
.services-carousel .service-card .icon-wrap {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(0, 119, 182, 0.1), rgba(91, 181, 49, 0.06));
	margin-bottom: 0.75rem;
	transition: background 0.5s ease, box-shadow 0.5s ease, transform 0.5s ease;
}

.services-carousel .service-card.carousel-active .icon-wrap {
	background: linear-gradient(135deg, var(--ablib-primary, #0077B6), rgba(0, 95, 138, 0.9));
	color: #fff;
	box-shadow: 0 6px 24px rgba(0, 119, 182, 0.25);
	transform: scale(1.08);
}

.services-carousel .service-card .icon-wrap svg {
	width: 30px;
	height: 30px;
	transition: stroke 0.5s ease;
}

.services-carousel .service-card.carousel-active .icon-wrap svg {
	stroke: #fff;
}

/* --- Card typography --- */
.services-carousel .service-card h3 {
	color: var(--ablib-primary-dark) !important;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	margin-top: 0.25rem;
	margin-bottom: 0.625rem;
	line-height: 1.3;
}

.services-carousel .service-card p {
	color: var(--ablib-text, #1A1A2E) !important;
	font-size: 0.9375rem;
	line-height: 1.75;
	flex: 1;
	margin: 0;
	opacity: 0.8;
}

.services-carousel .service-card.carousel-active p {
	opacity: 1;
}

.services-carousel .service-card .card-link {
	margin-top: 1rem;
	font-weight: 600;
	font-size: 0.8125rem;
	color: var(--ablib-accent);
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	background: rgba(91, 181, 49, 0.08);
	border-radius: var(--ablib-radius-btn, 4px);
	transition: background 0.3s ease, color 0.3s ease, gap 0.3s ease, transform 0.3s ease;
}

.services-carousel .service-card .card-link:hover {
	background: var(--ablib-accent, #5BB531);
	color: #fff;
	gap: 0.625rem;
	transform: translateY(-1px);
}

.services-carousel .service-card .card-link:hover svg {
	stroke: #fff;
}

/* --- Nav buttons --- */
.carousel-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.95);
	color: var(--ablib-primary);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
	backdrop-filter: blur(8px);
}

.carousel-btn:hover {
	background: var(--ablib-accent);
	color: #fff;
	transform: translateY(-50%) scale(1.08);
	box-shadow: 0 6px 24px rgba(91, 181, 49, 0.3);
}

.carousel-btn svg {
	width: 20px;
	height: 20px;
}

.carousel-btn-prev {
	left: 0.5rem;
}

.carousel-btn-next {
	right: 0.5rem;
}

/* --- Bar-style indicators with progress fill --- */
.carousel-indicators {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 0;
}

.carousel-dot {
	width: 24px;
	height: 3px;
	border-radius: 2px;
	border: none;
	background: rgba(255, 255, 255, 0.25);
	cursor: pointer;
	padding: 0;
	position: relative;
	overflow: hidden;
	transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
}

.carousel-dot.active {
	width: 40px;
	background: rgba(255, 255, 255, 0.25);
}

.carousel-dot .dot-fill {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: #fff;
	border-radius: 2px;
	transform-origin: left;
	transform: scaleX(0);
}

.carousel-dot.active .dot-fill {
	animation: dotFillProgress 4s linear forwards;
}

.carousel-paused .carousel-dot.active .dot-fill {
	animation-play-state: paused;
}

@keyframes dotFillProgress {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

/* --- Slide counter --- */
.carousel-counter {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.carousel-counter-current {
	color: #fff;
	font-weight: 700;
	font-size: 0.875rem;
}

/* ── Services on blue background — wave texture + controls ── */
.section-services-preview.has-primary-background-color {
	position: relative;
	overflow: hidden;
}

.section-services-preview.has-primary-background-color::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('../img/wave-bg-blue.svg') center/cover no-repeat;
	pointer-events: none;
	z-index: 0;
}

.section-services-preview.has-primary-background-color > * {
	position: relative;
	z-index: 1;
}

.section-services-preview.has-primary-background-color .section-heading {
	color: #fff !important;
}

.section-services-preview.has-primary-background-color > p {
	color: rgba(255, 255, 255, 0.85) !important;
}

.section-services-preview.has-primary-background-color .carousel-btn {
	background: rgba(255, 255, 255, 0.95);
	color: var(--ablib-primary);
	backdrop-filter: blur(8px);
}

.section-services-preview.has-primary-background-color .carousel-btn:hover {
	background: var(--ablib-accent);
	color: #fff;
}

@media (max-width: 768px) {
	.services-carousel-wrap {
		padding: 0 2.5rem;
	}
}

@media (max-width: 480px) {
	.services-carousel-wrap {
		padding: 0 0.5rem;
	}

	.carousel-btn {
		display: none;
	}

	.carousel-dot {
		width: 20px;
	}

	.carousel-dot.active {
		width: 32px;
	}
}

/* ── Button Enhancements ── */
.wp-block-button__link {
	transition: background var(--ablib-transition-normal), transform var(--ablib-transition-fast), box-shadow var(--ablib-transition-normal), filter var(--ablib-transition-fast);
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	filter: brightness(1.08);
}

.wp-block-button__link {
	font-family: var(--ablib-font-btn);
	text-transform: uppercase;
	letter-spacing: 1px;
}

.btn-pill .wp-block-button__link {
	border-radius: var(--ablib-radius-btn) !important;
}

.btn-arrow .wp-block-button__link::after {
	content: ' \2192';
	display: inline-block;
	transition: transform var(--ablib-transition-fast);
}

.btn-arrow .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

.is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.15) !important;
}

/* ── Stagger Animations ── */
.stagger-1 { transition-delay: 0s; }
.stagger-2 { transition-delay: 0.1s; }
.stagger-3 { transition-delay: 0.2s; }
.stagger-4 { transition-delay: 0.3s; }
.stagger-5 { transition-delay: 0.4s; }
.stagger-6 { transition-delay: 0.5s; }

/* ── Scroll-triggered fade-in ── */
.fade-in-up {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-up.visible {
	opacity: 1;
	transform: translateY(0);
}

/* ── Slide-in from sides (editorial features) ── */
.slide-in-left {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.slide-in-right {
	opacity: 0;
	transform: translateX(40px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.slide-in-left.visible,
.slide-in-right.visible {
	opacity: 1;
	transform: translateX(0);
}

/* ── Inner Hero Entrance Animations ── */
.hero-anim-breadcrumb {
	opacity: 0;
	animation: heroSlideIn 0.6s ease 0.2s forwards;
}

.hero-anim-title {
	opacity: 0;
	animation: heroFadeUp 0.7s ease 0.35s forwards;
}

.hero-anim-subtitle {
	opacity: 0;
	animation: heroFadeUp 0.6s ease 0.55s forwards;
}

.hero-anim-stats {
	opacity: 0;
	animation: heroFadeUp 0.5s ease 0.7s forwards;
}

.hero-anim-stat-item {
	opacity: 0;
	animation: heroFadeUp 0.5s ease forwards;
}

@keyframes heroSlideIn {
	from { opacity: 0; transform: translateX(-16px); }
	to   { opacity: 1; transform: translateX(0); }
}

@keyframes heroFadeUp {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ── Text Utilities ── */
.text-gradient {
	background: linear-gradient(135deg, var(--ablib-primary), var(--ablib-accent));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* ── Wave Divider (Amazon River Meander) ── */
.wave-divider-wrap {
	position: relative;
	z-index: 5;
	height: 0;
	overflow: visible;
	pointer-events: none;
	line-height: 0;
	font-size: 0;
}

.wave-divider {
	display: block;
	width: 100%;
	height: 20vh;
	position: relative;
	top: -20vh;
	margin-bottom: -20vh;
	background: transparent;
}

/* Inner page wave — same overlap trick as homepage, scaled to 12vh */
.wave-divider-wrap--inner .wave-divider {
	height: 12vh;
	top: -12vh;
	margin-bottom: -12vh;
	background: transparent;
}

@keyframes riverDrift {
	0% { transform: translateX(0); }
	50% { transform: translateX(-12px); }
	100% { transform: translateX(0); }
}

/* Fill shape — no animation */
.wave-fill {
	animation: none;
}

/* Stroke lines — subtle drift with staggered timing */
.wave-stroke-1 {
	animation: riverDrift 8s ease-in-out infinite;
}

.wave-stroke-2 {
	animation: riverDrift 11s ease-in-out infinite;
	animation-delay: -3s;
}

.wave-stroke-3 {
	animation: riverDrift 14s ease-in-out infinite;
	animation-delay: -6s;
}

/* ── Wave Section Separators ── */
.wave-separator {
	line-height: 0;
	font-size: 0;
	margin: 0;
	pointer-events: none;
}

/* Standardize spacing for sections adjacent to wave dividers */
.wave-separator + section:not(.home-cta-section):not(.pnipe-dark-section),
.wave-separator + .wp-block-group {
	padding-top: 2rem !important;
}
section:not(.home-cta-section):not(.pnipe-dark-section):has(+ .wave-separator),
.wp-block-group:has(+ .wave-separator) {
	padding-bottom: 3rem !important;
}

.wave-separator svg {
	display: block;
	width: 100%;
	height: clamp(40px, 7vw, 80px);
}

.wave-separator--to-blue {
	background: #fff;
	margin-bottom: -1px; /* seal the gap with the blue section below */
}

.wave-separator--to-blue path:nth-child(2) {
	animation: riverDrift 9s ease-in-out infinite;
}

.wave-separator--to-blue path:nth-child(3) {
	animation: riverDrift 12s ease-in-out infinite;
	animation-delay: -4s;
}

.wave-separator--to-blue path:nth-child(4) {
	animation: riverDrift 15s ease-in-out infinite;
	animation-delay: -7s;
}

.wave-separator--from-blue {
	background: #F6F6F6;
	margin-top: -1px; /* seal the gap with the blue section above */
}

.wave-separator--from-blue path:nth-child(2) {
	animation: riverDrift 10s ease-in-out infinite;
	animation-delay: -2s;
}

.wave-separator--from-blue path:nth-child(3) {
	animation: riverDrift 13s ease-in-out infinite;
	animation-delay: -5s;
}

.wave-separator--from-blue path:nth-child(4) {
	animation: riverDrift 16s ease-in-out infinite;
	animation-delay: -8s;
}

.wave-separator--gray-to-white {
	background: #fff;
	margin-top: -1px;
}

.wave-separator--gray-to-white path:nth-child(2) {
	animation: riverDrift 11s ease-in-out infinite;
	animation-delay: -1s;
}

.wave-separator--gray-to-white path:nth-child(3) {
	animation: riverDrift 14s ease-in-out infinite;
	animation-delay: -6s;
}

.wave-separator--gray-to-white path:nth-child(4) {
	animation: riverDrift 17s ease-in-out infinite;
	animation-delay: -9s;
}

.wave-separator--white-to-gray {
	background: #F6F6F6;
	margin-top: -1px;
}

.wave-separator--white-to-gray path:nth-child(2) {
	animation: riverDrift 10s ease-in-out infinite;
	animation-delay: -3s;
}

.wave-separator--white-to-gray path:nth-child(3) {
	animation: riverDrift 13s ease-in-out infinite;
	animation-delay: -7s;
}

.wave-separator--white-to-gray path:nth-child(4) {
	animation: riverDrift 16s ease-in-out infinite;
	animation-delay: -10s;
}

.wave-separator--gray-to-dark {
	background: #F6F6F6;
	margin-top: -1px;
	margin-bottom: -1px;
	position: relative;
	z-index: 1;
}

.wave-separator--gray-to-dark path:nth-child(2) {
	animation: riverDrift 9s ease-in-out infinite;
	animation-delay: -2s;
}

.wave-separator--gray-to-dark path:nth-child(3) {
	animation: riverDrift 12s ease-in-out infinite;
	animation-delay: -5s;
}

.wave-separator--gray-to-dark path:nth-child(4) {
	animation: riverDrift 15s ease-in-out infinite;
	animation-delay: -8s;
}

/* Generic wave separators (inner pages) — add drift to stroke paths */
.wave-separator:not([class*="--"]) path:nth-child(2) {
	animation: riverDrift 10s ease-in-out infinite;
	animation-delay: -2s;
}

.wave-separator:not([class*="--"]) path:nth-child(3) {
	animation: riverDrift 13s ease-in-out infinite;
	animation-delay: -6s;
}

/* ── Wave into/from photo-background sections ── */
.wave-separator--into-photo {
	background: transparent !important;
	position: relative;
	z-index: 2;
	margin: 0 0 calc(-1 * clamp(40px, 7vw, 80px)) 0 !important;
}
.wave-separator--from-photo {
	background: transparent !important;
	position: relative;
	z-index: 2;
	margin: calc(-1 * clamp(40px, 7vw, 80px)) 0 0 0 !important;
}

/* ── Partner Logos Marquee ── */
@keyframes marquee-scroll {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.partners-marquee {
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(to right, transparent, black 60px, black calc(100% - 60px), transparent);
	mask-image: linear-gradient(to right, transparent, black 60px, black calc(100% - 60px), transparent);
}

.partners-marquee-track {
	display: flex;
	align-items: flex-start;
	gap: 2.5rem;
	width: max-content;
	animation: marquee-scroll 40s linear infinite;
}

.partners-marquee:hover .partners-marquee-track {
	animation-play-state: paused;
}

.partner-logo-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}

.partner-logo-box {
	width: 170px;
	height: 95px;
	display: flex;
	align-items: center;
	justify-content: center;
	filter: grayscale(40%);
	opacity: 0.75;
	transition: filter var(--ablib-transition-normal), opacity var(--ablib-transition-normal);
}

.partner-logo-item:hover .partner-logo-box {
	filter: grayscale(0%);
	opacity: 1;
}

.partner-logo-box img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.partner-logo-name {
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--ablib-muted);
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* PNIPE badge */
.pnipe-badge {
	text-align: center;
	margin-top: 2rem;
}

.pnipe-badge a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0.625rem 1.5rem;
	border: 1px solid var(--ablib-light);
	border-radius: var(--ablib-radius-pill);
	background: var(--ablib-bg);
	color: var(--ablib-muted);
	font-size: 0.8125rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color var(--ablib-transition-fast), color var(--ablib-transition-fast), background var(--ablib-transition-fast);
}

.pnipe-badge a:hover {
	border-color: var(--ablib-primary);
	color: var(--ablib-primary);
	background: #fff;
}

.pnipe-badge svg {
	width: 18px;
	height: 18px;
}

/* Logo Marquee (shared: home + parcerias) */
.logo-marquee {
	overflow: hidden;
	margin-bottom: 2rem;
	padding: 0.75rem 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}

.logo-marquee:last-of-type {
	margin-bottom: 0;
}

.logo-marquee-track {
	display: flex;
	align-items: center;
	gap: 3rem;
	width: max-content;
	animation: scrollLogos 25s linear infinite;
}

.logo-marquee-track:hover {
	animation-play-state: paused;
}

.logo-marquee-track img {
	height: 48px;
	width: auto;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.55;
	transition: filter 0.3s ease, opacity 0.3s ease;
	flex-shrink: 0;
}

.logo-marquee-track img:hover {
	filter: grayscale(0%);
	opacity: 1;
}

.logo-marquee--reverse .logo-marquee-track {
	animation-direction: reverse;
}

.logo-marquee--fast .logo-marquee-track {
	animation-duration: 20s;
}

@keyframes scrollLogos {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.marquee-category-label {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ablib-accent, #5BB531);
	text-align: center;
	margin-bottom: 1rem;
}

/* Partners responsive */
@media (max-width: 480px) {
	.partner-logo-box {
		width: 100px;
		height: 56px;
		padding: 8px;
	}
	.partners-marquee-track {
		gap: 1.5rem;
	}
	.logo-marquee-track {
		gap: 1.5rem;
	}
	.logo-marquee-track img {
		height: 36px;
	}
}

/* ── Publication Filters ── */
.pub-filter-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	align-items: center;
}

.pub-filter-select,
.pub-filter-search {
	padding: 10px 16px;
	border: 2px solid var(--ablib-light);
	border-radius: var(--ablib-radius-md);
	font-size: 0.875rem;
	font-family: inherit;
	background: #fff;
	color: var(--ablib-text);
	transition: border-color var(--ablib-transition-fast), box-shadow var(--ablib-transition-fast);
}

.pub-filter-select:focus,
.pub-filter-search:focus {
	outline: none;
	border-color: var(--ablib-primary);
	box-shadow: 0 0 0 3px rgba(0, 119, 182, 0.15);
}

.pub-filter-search {
	min-width: 260px;
}

/* ── Publications List ── */
.publications-list .publication-item {
	padding: 20px 0;
	border-bottom: 1px solid var(--ablib-light);
	transition: background var(--ablib-transition-fast), padding-left var(--ablib-transition-fast);
}

.publications-list .publication-item:hover {
	background: rgba(232, 242, 252, 0.3);
	padding-left: 12px;
}

.publication-item .pub-title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ablib-text);
	margin: 0 0 6px;
	line-height: 1.4;
}

.publication-item .pub-title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--ablib-transition-fast);
}

.publication-item .pub-title a:hover {
	color: var(--ablib-primary);
}

.publication-item .pub-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	font-size: 0.8rem;
	color: var(--ablib-muted);
	margin-bottom: 8px;
}

.publication-item .pub-meta .pub-year-badge {
	background: var(--ablib-light);
	color: var(--ablib-primary);
	padding: 2px 10px;
	border-radius: var(--ablib-radius-pill);
	font-weight: 600;
	font-size: 0.75rem;
}

.publication-item .pub-actions {
	display: flex;
	gap: 12px;
}

.pub-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	border-radius: 6px;
	font-size: 0.8rem;
	font-weight: 500;
	text-decoration: none;
	transition: background var(--ablib-transition-fast), transform var(--ablib-transition-fast), color var(--ablib-transition-fast);
}

.pub-btn:hover {
	transform: translateY(-1px);
}

.pub-btn-doi {
	background: var(--ablib-light);
	color: var(--ablib-primary);
}

.pub-btn-doi:hover {
	background: var(--ablib-primary);
	color: #fff;
}

.pub-btn-pdf {
	background: #FEF3C7;
	color: #92400E;
}

.pub-btn-pdf:hover {
	background: var(--ablib-accent);
	color: #fff;
}

.publications-loading,
.publications-empty {
	text-align: center;
	padding: 40px;
	color: var(--ablib-muted);
}

/* ── Single Publication Detail ── */
.pub-detail-meta {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 24px;
	padding: 24px;
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-lg);
	font-size: 0.9rem;
}

.pub-detail-meta strong {
	color: var(--ablib-primary-dark);
}

.pub-detail-actions {
	display: flex;
	gap: 12px;
	margin-bottom: 24px;
}

.pub-detail-abstract {
	margin-top: 24px;
	padding: 24px;
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-lg);
}

.pub-detail-abstract h3 {
	font-size: 1rem;
	color: var(--ablib-primary-dark);
	margin-bottom: 8px;
}

.pub-detail-abstract p {
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--ablib-text);
}

/* ── Team Grid ── */
.team-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--ablib-card-gap);
}

.team-member-card {
	background: #fff;
	border-radius: var(--ablib-radius-xl);
	padding: 32px 24px;
	text-align: center;
	box-shadow: var(--ablib-shadow-card);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
	position: relative;
	overflow: hidden;
}


.team-member-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ablib-shadow-card-hover);
}


.team-member-photo {
	position: relative;
	overflow: hidden;
	border-radius: 50%;
	width: 140px;
	height: 140px;
	margin: 0 auto;
}

.team-member-photo img {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.team-member-card:hover .team-member-photo img {
	transform: scale(1.08);
}

.team-member-photo-placeholder {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--ablib-light), #d0e8f5);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}

.team-member-photo-placeholder span {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--ablib-primary);
}

.team-member-name {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ablib-text);
	margin: 16px 0 4px;
}

.team-member-role {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--ablib-accent);
	margin: 0 0 8px;
}

.team-member-bio {
	font-size: 0.8rem;
	color: var(--ablib-muted);
	line-height: 1.6;
	margin: 0 0 12px;
}

.team-member-links {
	display: flex;
	justify-content: center;
	gap: 8px;
}

.team-member-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	color: var(--ablib-primary);
	background: var(--ablib-light);
	text-decoration: none;
	transition: background var(--ablib-transition-fast), color var(--ablib-transition-fast), transform var(--ablib-transition-fast);
}

.team-member-links a:hover {
	background: var(--ablib-primary);
	color: #fff;
	transform: scale(1.1);
}

.team-member-links a svg {
	width: 16px;
	height: 16px;
}

.team-no-members {
	text-align: center;
	color: var(--ablib-muted);
	padding: 40px;
	font-style: italic;
}



/* ── Home CTA Section ── */
.home-cta-section {
	position: relative;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-repeat: no-repeat;
}

.home-cta-overlay {
	background: linear-gradient(135deg, rgba(0, 55, 100, 0.9) 0%, rgba(0, 95, 138, 0.85) 50%, rgba(0, 119, 182, 0.8) 100%);
	padding: clamp(5rem, 10vw, 7rem) var(--wp--preset--spacing--40) clamp(7rem, 14vw, 10rem);
}

.home-cta-content {
	max-width: 700px;
	margin: 0 auto;
	text-align: center;
}

.home-cta-heading {
	color: #fff;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 600;
	margin: 0 0 var(--wp--preset--spacing--20);
	line-height: 1.3;
}

.home-cta-text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.1rem;
	line-height: 1.7;
	margin: 0 0 var(--wp--preset--spacing--40);
}

.home-cta-buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.home-cta-btn {
	display: inline-block;
	padding: 0.875rem 2.5rem;
	border-radius: 4px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.3s ease;
	font-family: var(--ablib-font-btn);
}

.home-cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.home-cta-btn--solid {
	background: var(--ablib-accent);
	color: #fff;
	border: 2px solid var(--ablib-accent);
}

.home-cta-btn--solid:hover {
	background: var(--ablib-accent-dark);
	border-color: var(--ablib-accent-dark);
	color: #fff;
}

.home-cta-btn--ghost {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255, 255, 255, 0.6);
}

.home-cta-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #fff;
	color: #fff;
}

@media (max-width: 768px) {
	.home-cta-section {
		background-attachment: scroll;
	}
}

/* ── Pre-Footer CTA Band (light variant) ── */
.prefooter-cta-section {
	position: relative;
}

/* Email-style form — light background variant */
.prefooter-cta-form {
	display: flex;
	gap: 0;
	max-width: 480px;
	margin: 0 auto;
}

.prefooter-cta-form input[type="email"] {
	flex: 1;
	padding: 0.875rem 1.25rem;
	border: 2px solid var(--ablib-primary);
	border-right: none;
	border-radius: var(--ablib-radius-btn) 0 0 var(--ablib-radius-btn);
	background: #fff;
	color: var(--ablib-text);
	font-size: 0.95rem;
	font-family: inherit;
	outline: none;
	transition: border-color var(--ablib-transition-fast), box-shadow var(--ablib-transition-fast);
}

.prefooter-cta-form input[type="email"]::placeholder {
	color: #8899a6;
}

.prefooter-cta-form input[type="email"]:focus {
	border-color: var(--ablib-accent);
	box-shadow: 0 0 0 3px rgba(91, 181, 49, 0.15);
}

.prefooter-cta-form button {
	padding: 0.875rem 1.5rem;
	border: none;
	border-radius: 0 var(--ablib-radius-btn) var(--ablib-radius-btn) 0;
	background: var(--ablib-primary);
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	font-family: inherit;
	cursor: pointer;
	transition: background var(--ablib-transition-fast), transform var(--ablib-transition-fast);
	white-space: nowrap;
}

.prefooter-cta-form button:hover {
	background: var(--ablib-primary-dark);
	transform: scale(1.02);
}

/* ── "Saiba mais" links ── */
.card-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--ablib-accent);
	text-decoration: none;
	margin-top: 8px;
	transition: gap var(--ablib-transition-fast), color var(--ablib-transition-fast);
}

.card-link:hover {
	gap: 8px;
	color: var(--ablib-accent-dark);
}

.card-link svg {
	width: 14px;
	height: 14px;
	transition: transform var(--ablib-transition-fast);
}

.card-link:hover svg {
	transform: translateX(2px);
}

/* ── Recent Publications Pattern ── */
.recent-pub-item {
	transition: padding-left var(--ablib-transition-fast), background var(--ablib-transition-fast);
}

.recent-pub-item:hover {
	padding-left: 12px;
	background: rgba(232, 242, 252, 0.3);
}

/* ── Breadcrumb ── */
.breadcrumb {
	font-size: 0.8rem;
	color: var(--ablib-muted);
}

.breadcrumb a {
	color: var(--ablib-primary);
	text-decoration: none;
	transition: color var(--ablib-transition-fast);
}

.breadcrumb a:hover {
	text-decoration: underline;
	color: var(--ablib-accent);
}

.breadcrumb .sep {
	margin: 0 6px;
	color: #ccc;
}

/* Breadcrumb inside page heroes (white text) */
.page-hero .breadcrumb {
	color: rgba(255, 255, 255, 0.7);
}

.page-hero .breadcrumb a {
	color: rgba(255, 255, 255, 0.9);
}

.page-hero .breadcrumb a:hover {
	color: var(--ablib-accent);
}

.page-hero .breadcrumb .sep {
	color: rgba(255, 255, 255, 0.4);
}

/* ── Contact Page Icons ── */
.contact-info-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.contact-info-item .contact-icon {
	color: var(--ablib-primary);
	flex-shrink: 0;
	margin-top: 2px;
}

/* ── Footer ── */
.has-primary-dark-background-color .is-style-no-bullets li {
	margin-bottom: 6px;
}

.has-primary-dark-background-color .is-style-no-bullets a {
	color: rgba(232, 242, 252, 0.85);
	text-decoration: none;
	transition: color var(--ablib-transition-fast);
}

.has-primary-dark-background-color .is-style-no-bullets a:hover {
	color: var(--ablib-accent);
}

/* All links in footer — white, no black */
.has-primary-dark-background-color a:not(.custom-logo-link):not(.footer-social a),
.has-primary-background-color a:not(.custom-logo-link):not(.footer-social a) {
	color: rgba(232, 242, 252, 0.85);
	transition: color var(--ablib-transition-fast);
}

.has-primary-dark-background-color a:not(.custom-logo-link):not(.footer-social a):hover,
.has-primary-background-color a:not(.custom-logo-link):not(.footer-social a):hover {
	color: var(--ablib-accent);
}

/* Footer headings — force white */
.has-primary-dark-background-color h4.wp-block-heading,
.has-primary-background-color h4.wp-block-heading {
	color: #fff !important;
}

/* Compact footer spacing */
footer.has-primary-background-color .wp-block-columns {
	gap: 0.5rem 2rem;
	margin-bottom: 0;
	flex-wrap: wrap;
}

footer.has-primary-background-color .wp-block-column {
	flex: 1 1 0 !important;
}

footer.has-primary-background-color .wp-block-column:first-child {
	flex: 1.6 1 0 !important;
}

footer.has-primary-background-color .wp-block-column p,
footer.has-primary-background-color .wp-block-column ul {
	margin-top: 0;
	margin-bottom: 0;
}

footer.has-primary-background-color .wp-block-column ul li {
	margin-bottom: 0;
	line-height: 1.8;
}

footer.has-primary-background-color h4.wp-block-heading {
	margin-top: 0;
	margin-bottom: 0.25rem;
}

footer.has-primary-background-color hr {
	margin: 0.5rem 0 0.375rem !important;
}

footer.has-primary-background-color img {
	margin-bottom: 0.25rem !important;
}

footer.has-primary-background-color .footer-social {
	margin-top: 0.5rem !important;
}

/* Remove bullet points from footer lists */
.has-primary-dark-background-color .is-style-no-bullets {
	list-style: none;
	padding-left: 0;
}

.has-primary-dark-background-color .is-style-no-bullets li {
	list-style: none;
}

/* Footer Social Links */
.footer-social {
	display: flex;
	gap: 12px;
}

.footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: background var(--ablib-transition-normal), color var(--ablib-transition-normal), border-color var(--ablib-transition-normal), transform var(--ablib-transition-fast);
}

.footer-social a:hover {
	background: var(--ablib-accent);
	color: #fff;
	border-color: var(--ablib-accent);
	transform: translateY(-2px);
}

.footer-social a svg {
	width: 20px;
	height: 20px;
}

/* Footer gradient top border -- strengthened */
.footer-gradient-border {
	position: relative;
}

.footer-gradient-border::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--ablib-accent), var(--ablib-primary), var(--ablib-accent));
}

/* ── Inner Page Hero Banners ── */
.inner-hero {
	position: relative;
}

.inner-hero .wp-block-cover__background {
	opacity: 1 !important;
}

.inner-hero .wp-block-cover__inner-container {
	display: flex;
	align-items: center;
	min-height: 70vh;
	min-height: 70dvh;
	padding-bottom: 8vh;
	position: relative;
	z-index: 2;
}

.inner-hero .hero-title {
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.8), 0 0 40px rgba(0, 0, 0, 0.4);
	max-width: 700px;
	color: #fff !important;
	margin-top: 0;
}

.inner-hero .hero-subtitle {
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.7), 0 0 30px rgba(0, 0, 0, 0.3);
	font-weight: 300 !important;
	color: #fff !important;
	max-width: 640px;
}

/* Inner hero breadcrumb styled like home eyebrow */
.inner-hero .breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ablib-font-btn);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 2px;
}

.inner-hero .breadcrumb::before {
	content: '';
	width: 28px;
	height: 1px;
	background: var(--ablib-accent);
	flex-shrink: 0;
}

.inner-hero .breadcrumb a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	transition: color var(--ablib-transition-fast);
}

.inner-hero .breadcrumb a:hover {
	color: #fff;
}

/* Subtle scan-line grid overlay on inner heroes (matching home) */
.inner-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
	background-size: 64px 64px;
	pointer-events: none;
	z-index: 1;
}

/* Hero stats row */
.inner-hero .hero-stats-row {
	display: flex;
	gap: 2.5rem;
	margin-top: 2rem;
	flex-wrap: wrap;
}

.inner-hero .hero-stat-number {
	font-family: var(--ablib-font-heading);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: var(--ablib-accent);
}

.inner-hero .hero-stat-label {
	display: block;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.8);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-top: 0.25rem;
}

.page-hero {
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-hero .wp-block-cover__background {
	opacity: 0.7;
}

/* ── Archive Hero Banner ── */
.archive-hero {
	background: linear-gradient(135deg, var(--ablib-primary-dark) 0%, var(--ablib-primary) 100%);
	padding: 3rem 1.5rem;
	text-align: center;
}

/* ── Status Badge ── */
.status-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: var(--ablib-radius-pill);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.status-badge.active {
	background: #DEF7EC;
	color: #03543F;
}

.status-badge.implanting {
	background: #FEF3C7;
	color: #92400E;
}

/* ── Post Navigation ── */
.post-nav-enhanced {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.post-nav-enhanced a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ablib-primary);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	padding: 8px 16px;
	border-radius: var(--ablib-radius-md);
	background: var(--ablib-light);
	transition: background var(--ablib-transition-fast), transform var(--ablib-transition-fast), color var(--ablib-transition-fast);
}

.post-nav-enhanced a:hover {
	background: var(--ablib-primary);
	color: #fff;
	transform: translateY(-2px);
}

/* ── Back-to-Top Button ── */
.back-to-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	width: 44px;
	height: 44px;
	border-radius: var(--ablib-radius-md);
	background: var(--ablib-primary);
	color: #fff;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--ablib-transition-normal), visibility var(--ablib-transition-normal), transform var(--ablib-transition-normal), background var(--ablib-transition-fast);
	z-index: 900;
}

.back-to-top.visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.back-to-top:hover {
	background: var(--ablib-accent);
	transform: translateY(-2px);
}

/* ── Blog Cards ── */
.blog-card {
	cursor: pointer;
	overflow: hidden;
}

.blog-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.blog-card-img {
	position: relative;
	overflow: hidden;
}

.blog-card-img img {
	transition: transform var(--ablib-transition-normal);
}

.blog-card:hover .blog-card-img img {
	transform: scale(1.05);
}

.blog-date-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--ablib-primary);
	color: #fff !important;
	padding: 6px 10px;
	line-height: 1.2;
	text-align: center;
	z-index: 1;
}

/* ── WPForms Contact Styling ── */
.wpforms-container .wpforms-field input,
.wpforms-container .wpforms-field textarea,
.wpforms-container .wpforms-field select {
	border: 2px solid var(--ablib-accent) !important;
	border-radius: 4px !important;
	padding: 12px 20px !important;
	font-family: inherit !important;
	transition: border-color var(--ablib-transition-fast), box-shadow var(--ablib-transition-fast);
}

.wpforms-container .wpforms-field textarea {
	border-radius: 4px !important;
}

.wpforms-container .wpforms-field input:focus,
.wpforms-container .wpforms-field textarea:focus {
	border-color: var(--ablib-primary) !important;
	box-shadow: 0 0 0 3px rgba(0, 119, 182, 0.15) !important;
}

.wpforms-container button[type="submit"] {
	font-family: var(--ablib-font-btn) !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	border-radius: 4px !important;
	padding: 14px 32px !important;
}

/* ── About Preview ── */
.about-preview-grid {
	display: grid;
	grid-template-columns: 60% 40%;
	gap: 3rem;
	align-items: center;
}

.about-preview-text {
	padding-right: 1rem;
}

.about-preview-text p {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--ablib-text);
	margin: 0 0 1rem;
}

.about-preview-text .card-link {
	margin-top: 1.5rem;
}

.about-preview-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.about-preview-image img {
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.about-preview-image:hover img {
	transform: scale(1.03);
}

.section-about-preview .section-heading--left,
.section-research-preview .section-heading--left {
	text-align: left;
	position: relative;
	padding-bottom: 12px;
	margin-bottom: 1.5rem;
}

.section-about-preview .section-heading--left::after,
.section-research-preview .section-heading--left::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 3px;
	background: var(--ablib-accent);
	border-radius: 2px;
}

/* ── Pipeline Section ── */
.section-pipeline {
	position: relative;
	overflow: hidden;
}

.pipeline-steps {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	max-width: 1100px;
	margin: 0 auto;
}

.pipeline-step {
	flex: 1;
	text-align: center;
	padding: 0 1rem;
	position: relative;
}

.pipeline-number {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ablib-accent);
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1rem;
	box-shadow: 0 4px 16px rgba(91, 181, 49, 0.3);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.pipeline-step:hover .pipeline-number {
	transform: scale(1.1);
	box-shadow: 0 6px 24px rgba(91, 181, 49, 0.4);
}

.pipeline-title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ablib-text, #1A1A2E);
	margin: 0 0 0.5rem;
}

.pipeline-desc {
	font-size: 0.8125rem;
	color: var(--ablib-muted, #666);
	line-height: 1.5;
	margin: 0;
}

.pipeline-connector {
	width: 40px;
	min-width: 40px;
	height: 2px;
	background: var(--ablib-light, #E8ECEC);
	margin-top: 28px;
	position: relative;
	flex-shrink: 0;
}

.pipeline-connector::after {
	content: '';
	position: absolute;
	right: -4px;
	top: -3px;
	width: 0;
	height: 0;
	border-left: 6px solid var(--ablib-light, #E8ECEC);
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
}

/* ── Research Preview ── */

.research-preview-grid {
	display: grid;
	grid-template-columns: 55% 45%;
	gap: 3rem;
	align-items: center;
}

.research-preview-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.research-preview-image img {
	width: 100%;
	height: 100%;
	min-height: 400px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.research-preview-image:hover img {
	transform: scale(1.03);
}

.research-preview-intro {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0 0 1.5rem;
}

.research-mini-cards {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.research-mini-card {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1rem;
	border-radius: var(--ablib-radius-md);
	background: var(--ablib-bg);
	transition: transform var(--ablib-transition-fast), box-shadow var(--ablib-transition-fast);
}

.research-mini-card:hover {
	transform: translateX(4px);
	box-shadow: var(--ablib-shadow-card);
}

.research-mini-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	border-radius: 50%;
	background: rgba(0, 119, 182, 0.1);
	color: var(--ablib-primary);
}

.research-mini-icon svg {
	width: 20px;
	height: 20px;
}

.research-mini-card strong {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ablib-text);
	margin-bottom: 2px;
}

.research-mini-card span {
	font-size: 0.8125rem;
	color: var(--ablib-muted);
	line-height: 1.5;
}

/* ── Team Preview (Homepage) ── */

.team-preview-rows {
	max-width: 1020px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.team-preview-row {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 2rem;
	align-items: center;
}

.team-preview-row--reverse {
	grid-template-columns: 1fr 200px;
}

.team-preview-row--reverse .team-preview-photo {
	order: 2;
}

.team-preview-row--reverse .team-preview-info {
	order: 1;
	text-align: right;
}

.team-preview-photo {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(0, 119, 182, 0.25);
	transition: box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-preview-row:hover .team-preview-photo {
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--ablib-accent), 0 0 24px rgba(91, 181, 49, 0.2);
}

.team-preview-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-preview-row:hover .team-preview-photo img {
	transform: scale(1.06);
}

.team-preview-name {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ablib-text);
	margin: 0 0 8px;
	letter-spacing: -0.01em;
}

.team-preview-role {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ablib-primary);
	background: rgba(0, 119, 182, 0.08);
	padding: 4px 14px;
	border-radius: 4px;
	margin-bottom: 10px;
}

.team-preview-bio {
	font-size: 0.9rem;
	color: var(--ablib-muted);
	line-height: 1.65;
	margin: 0;
}

/* ── Blog Preview Cards ── */
.section-blog-preview .blog-card {
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.section-blog-preview .blog-card .wp-block-post-featured-image img {
	transition: transform var(--ablib-transition-normal);
}

.section-blog-preview .blog-card:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

.section-blog-preview .wp-block-post-featured-image {
	overflow: hidden;
}

/* ── General Links ── */
a {
	transition: color var(--ablib-transition-fast);
}

/* ── Responsive ── */
@media (max-width: 781px) {
	:root {
		--ablib-section-padding-y: var(--ablib-section-padding-y-sm);
	}

	.mobile-menu-toggle {
		display: block;
	}

	.nav-desktop {
		display: none !important;
	}

	.language-switcher {
		display: none !important;
	}

	.header-top-bar {
		display: none;
	}

	/* Hero static responsive */
	.hero-static .wp-block-cover__inner-container {
		min-height: 70vh;
		min-height: 70dvh;
	}

	/* Pipeline: stack vertically on mobile */
	.pipeline-steps {
		flex-direction: column;
		align-items: center;
		gap: 0;
	}

	.pipeline-step {
		padding: 1rem 0;
	}

	.pipeline-connector {
		width: 2px;
		height: 24px;
		min-width: 2px;
		margin-top: 0;
	}

	.pipeline-connector::after {
		right: auto;
		top: auto;
		bottom: -4px;
		left: -3px;
		border-left: 4px solid transparent;
		border-right: 4px solid transparent;
		border-top: 6px solid rgba(255, 255, 255, 0.3);
		border-bottom: none;
	}

	/* Metrics: wrap to 2x2 on tablet */
	.metrics-grid {
		flex-wrap: wrap;
		justify-content: center;
		gap: 1.25rem 0;
	}

	.metric-item {
		flex: 0 0 50%;
		justify-content: center;
	}

	.metric-item:nth-child(2)::after {
		display: none;
	}

	/* About preview: stack */
	.about-preview-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.about-preview-text {
		padding-right: 0;
		order: 1;
	}

	.about-preview-image {
		order: 2;
	}

	.about-preview-image img {
		min-height: 280px;
	}

	/* Research preview: stack */
	.research-preview-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.research-preview-image img {
		min-height: 280px;
	}

	/* Research mini cards */
	.research-mini-card {
		padding: 0.75rem;
	}

	/* Team preview: smaller photo on tablet */
	.team-preview-row,
	.team-preview-row--reverse {
		grid-template-columns: 160px 1fr;
	}

	.team-preview-row--reverse {
		grid-template-columns: 1fr 160px;
	}

	.team-preview-photo {
		width: 160px;
		height: 160px;
	}

	/* Blog preview: single column */
	.section-blog-preview .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}


	.pub-filter-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.pub-filter-search {
		min-width: auto;
	}

	.team-grid {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: 16px;
	}

	.wp-block-columns {
		gap: 16px !important;
	}

	footer.has-primary-background-color .wp-block-columns {
		flex-direction: column;
		gap: 1.5rem !important;
	}

	footer.has-primary-background-color .wp-block-column,
	footer.has-primary-background-color .wp-block-column:first-child {
		flex: 0 0 auto !important;
		min-width: 0 !important;
	}

	.footer-social {
		justify-content: center;
	}

	.post-nav-enhanced {
		flex-direction: column;
	}

	.pub-detail-actions {
		flex-direction: column;
	}

	.contact-map iframe {
		height: 250px !important;
	}

	/* Pre-footer CTA form stacks on mobile */
	.prefooter-cta-form {
		flex-direction: column;
		gap: 12px;
	}

	.prefooter-cta-form input[type="email"] {
		border-right: 2px solid var(--ablib-primary);
		border-radius: var(--ablib-radius-btn);
	}

	.prefooter-cta-form button {
		border-radius: var(--ablib-radius-btn);
	}
}

@media (max-width: 480px) {
	.team-grid {
		grid-template-columns: 1fr;
	}

	.team-member-card {
		padding: 24px 16px;
	}

	/* Metrics: stack on small mobile */
	.metric-item {
		flex: 0 0 100%;
		justify-content: center;
		padding: 0.5rem 1rem;
	}

	.metric-item:not(:last-child)::after {
		display: none;
	}

	/* Team preview: stack on mobile */
	.team-preview-row,
	.team-preview-row--reverse {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
		gap: 1rem;
	}

	.team-preview-row--reverse .team-preview-photo {
		order: 0;
	}

	.team-preview-row--reverse .team-preview-info {
		order: 0;
		text-align: center;
	}

	.team-preview-photo {
		width: 150px;
		height: 150px;
	}

	.team-preview-name {
		font-size: 1.0625rem;
	}

	.team-preview-bio {
		font-size: 0.8125rem;
	}

	/* Pipeline numbers smaller */
	.pipeline-number {
		width: 44px;
		height: 44px;
		font-size: 1rem;
	}

	/* About/Research images smaller */
	.about-preview-image img,
	.research-preview-image img {
		min-height: 220px;
	}


	/* Hero scroll indicator hide on mobile */
	.hero-scroll-indicator {
		display: none;
	}
}

/* ══════════════════════════════════════════════════
   HOMEPAGE REDESIGN v2 — "Precision + Nature"
   Enhances: Hero · Metrics · About · Services ·
             Team · CTA
   ══════════════════════════════════════════════════ */

/* ── 1. Hero: Eyebrow Label ── */
.hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ablib-font-btn);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ablib-accent);
	margin-bottom: 2px;
	opacity: 0;
	animation: heroEyebrowIn 0.7s ease 0.3s forwards;
}

.hero-eyebrow::before {
	content: '';
	width: 28px;
	height: 1px;
	background: var(--ablib-accent);
	flex-shrink: 0;
}

@keyframes heroEyebrowIn {
	from { opacity: 0; transform: translateX(-12px); }
	to   { opacity: 1; transform: translateX(0); }
}

/* Subtle scan-line grid overlay on hero */
.hero-static::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 64px 64px;
	pointer-events: none;
	z-index: 1;
}

/* Hero inner content sits above grid overlay */
.hero-static .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

/* Hero subtitle: lighter weight for contrast against bold title */
.hero-static .hero-subtitle {
	font-weight: 300 !important;
}

/* ── 3. About Preview: Accent Bar + Heading Animation ── */

/* Decorative accent bar anchored below-left of image */
.about-preview-image-wrap {
	position: relative;
}

.about-preview-image-wrap .about-preview-image {
	width: 100%;
	height: 100%;
}

.about-preview-image-wrap::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 64px;
	height: 4px;
	background: var(--ablib-accent);
	border-radius: 2px;
}

/* Animate left-aligned heading underlines when visible */
.section-about-preview .section-heading--left::after,
.section-research-preview .section-heading--left::after {
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.2s;
}

.section-about-preview .section-heading--left.visible::after,
.section-research-preview .section-heading--left.visible::after {
	transform: scaleX(1);
}

/* Animated underlines on centered section headings */
.section-team-preview .section-heading,
.section-blog-preview .section-heading,
.section-partners .section-heading {
	position: relative;
	padding-bottom: 14px;
}

.section-team-preview .section-heading::after,
.section-blog-preview .section-heading::after,
.section-partners .section-heading::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 48px;
	height: 3px;
	background: var(--ablib-accent);
	border-radius: 2px;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.2s;
}

.section-team-preview .section-heading.visible::after,
.section-blog-preview .section-heading.visible::after,
.section-partners .section-heading.visible::after {
	transform: translateX(-50%) scaleX(1);
}

/* ── 4. Services: Enhanced Section BG + Glass Active Card ── */
.section-services-grid {
	background-image:
		radial-gradient(ellipse 60% 50% at 18% 40%, rgba(255, 255, 255, 0.055) 0%, transparent 70%),
		radial-gradient(ellipse 45% 60% at 82% 60%, rgba(91, 181, 49, 0.07) 0%, transparent 70%);
}

.service-card.carousel-active {
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.55);
}

.service-card .icon-wrap {
	background: linear-gradient(135deg, rgba(0, 119, 182, 0.18) 0%, rgba(91, 181, 49, 0.14) 100%);
	border: 1px solid rgba(0, 119, 182, 0.14);
}

/* Glow halo on active card — via box-shadow to avoid overflow */
.service-card.carousel-active {
	box-shadow: 0 8px 32px rgba(0, 119, 182, 0.22), 0 0 0 1px rgba(255, 255, 255, 0.55);
}

/* ── 5. (Team Preview reverted to original alternating rows) ── */

/* Catalog number label — unused after revert, kept for reference */
.team-card-num {
	position: absolute;
	bottom: 1rem;
	right: 1.25rem;
	font-family: var(--ablib-font-btn);
	font-size: 0.75rem;
	font-weight: 700;
	color: rgba(0, 0, 0, 0.06);
	letter-spacing: 0.05em;
	pointer-events: none;
	user-select: none;
}

/* ── 6. CTA Final: Enhanced Overlay + Accent Rule + Particles ── */

/* Override gradient with green tint at bottom */
.home-cta-overlay {
	background: linear-gradient(
		170deg,
		rgba(0, 55, 100, 0.93) 0%,
		rgba(0, 95, 138, 0.89) 58%,
		rgba(28, 98, 20, 0.78) 100%
	) !important;
	overflow: hidden;
	position: relative;
}

/* Accent rule above heading */
.home-cta-rule {
	width: 48px;
	height: 2px;
	background: var(--ablib-accent);
	margin: 0 auto 1.5rem;
	border-radius: 2px;
}

/* Larger, more commanding heading */
.home-cta-heading {
	font-size: clamp(1.875rem, 4vw, 3rem) !important;
}

/* Floating particle dots */
.cta-particle {
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	pointer-events: none;
	animation: ctaFloat ease-in-out infinite alternate;
}

.cta-particle--1 { width: 6px;  height: 6px;  top: 15%; left: 9%;  animation-duration: 7s; }
.cta-particle--2 { width: 4px;  height: 4px;  top: 68%; left: 17%; animation-duration: 11s; animation-delay: -3s; }
.cta-particle--3 { width: 8px;  height: 8px;  top: 28%; left: 79%; animation-duration: 9s;  animation-delay: -1s; }
.cta-particle--4 { width: 5px;  height: 5px;  top: 76%; left: 86%; animation-duration: 13s; animation-delay: -5s; }
.cta-particle--5 { width: 3px;  height: 3px;  top: 52%; left: 5%;  animation-duration: 8s;  animation-delay: -2s; }
.cta-particle--6 { width: 7px;  height: 7px;  top: 20%; left: 57%; animation-duration: 14s; animation-delay: -6s; }

@keyframes ctaFloat {
	from { transform: translateY(0)    translateX(0);   opacity: 0.15; }
	to   { transform: translateY(-20px) translateX(8px); opacity: 0.5; }
}

/* ── Responsive: New Elements ── */
@media (max-width: 768px) {
	/* Fix ordering for new image wrapper on mobile */
	.about-preview-image-wrap {
		order: 2;
	}

	/* Hide accent bar on mobile to avoid overflow */
	.about-preview-image-wrap::after {
		display: none;
	}
}

/* ════════════════════════════════════════════════
   ABOUT PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Section Label (small caps above headings) ── */
.section-label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ablib-accent);
	margin-bottom: 0.75rem;
}

/* ── About Story Grid ── */
.about-story-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: stretch;
}

.about-story-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.25rem;
}

.about-story-visual {
	position: relative;
}

.about-story-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.about-story-image img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.about-story-image:hover img {
	transform: scale(1.03);
}

.about-story-badge {
	position: absolute;
	bottom: -1.5rem;
	right: 1.5rem;
	background: var(--ablib-primary);
	color: #fff;
	padding: 1rem 1.25rem;
	border-radius: var(--ablib-radius-md);
	text-align: center;
	box-shadow: 0 4px 16px rgba(0, 119, 182, 0.3);
	line-height: 1.2;
}

.about-story-badge .badge-year {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.8;
}

.about-story-badge .badge-number {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.75rem;
	font-weight: 800;
}

.about-story-badge .badge-label {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.8;
}

/* ── MVV Grid (Mission/Vision/Values) ── */
.mvv-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ablib-card-gap);
}

.mvv-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2.5rem 2rem;
	text-align: center;
	box-shadow: var(--ablib-shadow-card);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.mvv-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ablib-shadow-card-hover);
}

.mvv-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(0, 119, 182, 0.08) 0%, rgba(91, 181, 49, 0.08) 100%);
	margin-bottom: 1.25rem;
}

.mvv-icon svg {
	width: 28px;
	height: 28px;
	color: var(--ablib-primary);
}

.mvv-card h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.75rem;
}

.mvv-card p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0;
}

/* ── About Location Grid ── */
.about-location-grid {
	display: grid;
	grid-template-columns: 45% 1fr;
	gap: 3.5rem;
	align-items: stretch;
}

.about-location-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.about-location-image img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.about-location-image:hover img {
	transform: scale(1.03);
}

.about-location-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.5rem;
}

.location-highlights {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.location-highlight-item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.location-highlight-item .highlight-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(0, 119, 182, 0.08);
}

.location-highlight-item .highlight-icon svg {
	width: 20px;
	height: 20px;
	color: var(--ablib-primary);
}

.location-highlight-item strong {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ablib-primary-dark);
	margin-bottom: 0.125rem;
}

.location-highlight-item p {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--ablib-muted);
	margin: 0;
}

/* ── About Metrics Grid ── */
.about-metrics-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--ablib-card-gap);
}

.about-metric-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem 1.5rem;
	text-align: center;
	box-shadow: var(--ablib-shadow-card);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.about-metric-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ablib-shadow-card-hover);
}

.about-metric-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(91, 181, 49, 0.1);
	margin-bottom: 1rem;
}

.about-metric-icon svg {
	width: 24px;
	height: 24px;
	color: var(--ablib-accent);
}

.about-metric-number {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: var(--ablib-primary);
	margin: 0 0 0.5rem;
	line-height: 1;
}

.about-metric-label {
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--ablib-muted);
	margin: 0;
}

/* ── Differentials Grid ── */
.differentials-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin-bottom: 3rem;
}

.differential-item {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
	padding: 1.5rem;
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-md);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.differential-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.differential-number {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--ablib-primary);
	color: #fff;
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 0.8125rem;
	font-weight: 700;
}

.differential-content h4 {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.375rem;
}

.differential-content p {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ablib-muted);
	margin: 0;
}

.pnipe-badge-section {
	text-align: center;
}

/* ── Governance Chain ── */
.governance-chain {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-bottom: 3.5rem;
}

.governance-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 1.5rem 2rem;
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	box-shadow: var(--ablib-shadow-card);
	min-width: 120px;
}

.governance-item img {
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.governance-item span {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ablib-text);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.governance-item--highlight {
	background: var(--ablib-primary);
	box-shadow: 0 4px 16px rgba(0, 119, 182, 0.3);
}

.governance-item--highlight span {
	color: #fff;
}

.governance-arrow {
	font-size: 1.5rem;
	color: var(--ablib-muted);
	font-weight: 300;
}

/* ── Governance Partners Strip ── */
.governance-partners-strip {
	text-align: center;
}

.governance-partners-strip h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--ablib-text);
	margin: 0 0 1.5rem;
}

.governance-logos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2rem;
}

.governance-logos img {
	height: 48px;
	width: auto;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.6;
	transition: filter var(--ablib-transition-normal), opacity var(--ablib-transition-normal);
}

.governance-logos img:hover {
	filter: grayscale(0%);
	opacity: 1;
}

/* ── About Page Responsive ── */
@media (max-width: 768px) {
	.about-story-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.about-story-image img {
		height: 280px;
	}

	.about-story-badge {
		bottom: -1rem;
		right: 1rem;
		padding: 0.75rem 1rem;
	}

	.about-story-badge .badge-number {
		font-size: 1.5rem;
	}

	.mvv-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.about-location-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.about-location-image {
		order: -1;
	}

	.about-location-image img {
		height: 260px;
	}

	.about-metrics-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}

	.about-metric-card {
		padding: 1.5rem 1rem;
	}

	.differentials-grid {
		grid-template-columns: 1fr;
	}

	.governance-chain {
		flex-direction: column;
		gap: 1rem;
	}

	.governance-arrow {
		transform: rotate(90deg);
	}

	.governance-item {
		width: 100%;
		max-width: 200px;
	}

	.governance-logos {
		gap: 1.5rem;
	}

	.governance-logos img {
		height: 36px;
	}
}

/* ════════════════════════════════════════════════
   SERVICES PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Services Intro Grid ── */
.services-intro-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: start;
}

.services-intro-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.25rem;
}

.services-intro-audiences h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--ablib-primary-dark);
	margin: 0 0 1.25rem;
}

.audience-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.audience-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-md);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--ablib-text);
	transition: transform var(--ablib-transition-fast), box-shadow var(--ablib-transition-fast);
}

.audience-tag svg {
	width: 18px;
	height: 18px;
	color: var(--ablib-primary);
}

.audience-tag:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ── Service Detail Cards ── */
.services-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ablib-card-gap);
}

.service-detail-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem;
	box-shadow: var(--ablib-shadow-card);
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.service-detail-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ablib-shadow-card-hover);
}

.service-detail-header {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
}

.service-detail-header .icon-wrap {
	flex-shrink: 0;
}

.service-detail-header h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0;
}

.service-detail-card > p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0 0 1.25rem;
}

.service-detail-meta {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--ablib-light);
}

.meta-label {
	display: block;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ablib-primary);
	margin-bottom: 0.25rem;
}

.service-equipment span {
	font-size: 0.8125rem;
	color: var(--ablib-text);
}

.app-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.app-tags span {
	display: inline-block;
	padding: 0.25rem 0.625rem;
	background: rgba(0, 119, 182, 0.06);
	border-radius: var(--ablib-radius-pill);
	font-size: 0.75rem;
	color: var(--ablib-primary-dark);
}

/* ── Strategic Grid ── */
.strategic-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ablib-card-gap);
}

.strategic-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem;
	box-shadow: var(--ablib-shadow-card);
}

.strategic-card .icon-wrap {
	margin-bottom: 1rem;
}

.strategic-card h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.75rem;
}

.strategic-card p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0 0 1rem;
}

.strategic-sector {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ablib-accent);
}

/* ── Equipment Highlight Grid ── */
.equipment-highlight-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: center;
}

.equipment-highlight-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.5rem;
}

.equipment-list {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
}

.equipment-list li {
	display: flex;
	flex-direction: column;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--ablib-light);
}

.equipment-list li:first-child {
	border-top: 1px solid var(--ablib-light);
}

.equipment-list li strong {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ablib-primary-dark);
}

.equipment-list li span {
	font-size: 0.8125rem;
	color: var(--ablib-muted);
	margin-top: 0.125rem;
}

.equipment-highlight-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.equipment-highlight-image img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.equipment-highlight-image:hover img {
	transform: scale(1.03);
}

/* ── Services Page Responsive ── */
@media (max-width: 768px) {
	.services-intro-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.services-detail-grid {
		grid-template-columns: 1fr;
	}

	.strategic-grid {
		grid-template-columns: 1fr;
	}

	.equipment-highlight-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.equipment-highlight-image img {
		height: 280px;
	}
}

/* ════════════════════════════════════════════════
   TEAM PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Leader Cards (Coordenação — horizontal, circular photo 150px) ── */
.team-leader-cards {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.team-leader-card {
	display: flex;
	align-items: flex-start;
	gap: 2.25rem;
	background: #fff;
	border-radius: var(--ablib-radius-md);
	padding: 2.25rem;
	box-shadow: 0 2px 12px rgba(0, 47, 75, 0.06), 0 0 0 1px rgba(0, 119, 182, 0.04);
	transition: box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.team-leader-card:hover {
	box-shadow: 0 8px 32px rgba(0, 47, 75, 0.1), 0 0 0 1px rgba(0, 119, 182, 0.08);
	transform: translateY(-3px);
}

.team-leader-photo {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	flex-shrink: 0;
	overflow: hidden;
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(0, 119, 182, 0.25);
	transition: box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-leader-card:hover .team-leader-photo {
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--ablib-accent), 0 0 24px rgba(91, 181, 49, 0.2);
}

.team-leader-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-leader-card:hover .team-leader-photo img {
	transform: scale(1.06);
}

.team-leader-info {
	flex: 1;
	min-width: 0;
}

.team-leader-name {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: clamp(1.3rem, 2.5vw, 1.5rem);
	font-weight: 700;
	color: var(--ablib-primary);
	margin: 0 0 0.2rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.team-leader-title {
	font-size: 0.9rem;
	color: var(--ablib-muted);
	font-weight: 500;
	margin: 0 0 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--ablib-light, #E8ECEC);
	font-style: italic;
}

.team-leader-bio {
	font-size: 0.925rem;
	line-height: 1.75;
	color: var(--ablib-text);
	margin: 0 0 0.75rem;
}

.team-leader-links,
.team-researcher-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1.25rem;
}

.team-leader-links a,
.team-researcher-links a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--ablib-primary);
	text-decoration: none;
	padding: 0.4rem 0.8rem;
	background: rgba(0, 119, 182, 0.05);
	border-radius: var(--ablib-radius-btn);
	border: 1px solid rgba(0, 119, 182, 0.08);
	transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.team-leader-links a:hover,
.team-researcher-links a:hover {
	background: var(--ablib-primary);
	color: #fff;
	border-color: var(--ablib-primary);
	transform: translateY(-1px);
	box-shadow: 0 3px 10px rgba(0, 119, 182, 0.2);
}

.team-leader-links a:hover svg,
.team-researcher-links a:hover svg {
	stroke: #fff;
}

.team-leader-links a svg,
.team-researcher-links a svg {
	flex-shrink: 0;
	width: 15px;
	height: 15px;
	transition: stroke 0.25s ease;
}

/* ── Researcher Cards (2-column grid, smaller circular photos 110px) ── */
.team-researcher-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.team-researcher-card {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: #fff;
	border-radius: var(--ablib-radius-md);
	padding: 1.75rem;
	box-shadow: 0 2px 12px rgba(0, 47, 75, 0.06), 0 0 0 1px rgba(0, 119, 182, 0.04);
	transition: box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.team-researcher-card:hover {
	box-shadow: 0 8px 32px rgba(0, 47, 75, 0.1), 0 0 0 1px rgba(0, 119, 182, 0.08);
	transform: translateY(-3px);
}

.team-researcher-photo {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	flex-shrink: 0;
	overflow: hidden;
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(0, 119, 182, 0.25);
	transition: box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-researcher-card:hover .team-researcher-photo {
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--ablib-accent), 0 0 20px rgba(91, 181, 49, 0.2);
}

.team-researcher-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.team-researcher-card:hover .team-researcher-photo img {
	transform: scale(1.05);
}

.team-researcher-info {
	flex: 1;
	min-width: 0;
}

.team-researcher-name {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ablib-primary);
	margin: 0 0 0.15rem;
}

.team-researcher-title {
	font-size: 0.8rem;
	color: var(--ablib-muted);
	font-weight: 500;
	font-style: italic;
	margin: 0 0 0.75rem;
}

.team-researcher-bio {
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--ablib-text);
	margin: 0;
}

/* ── Team Collaboration Section ── */
.team-collab-section {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 3rem;
	align-items: center;
}

.team-collab-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 2rem;
	background: var(--ablib-primary);
	border-radius: var(--ablib-radius-lg);
	color: #fff;
	min-width: 140px;
}

.team-collab-number {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
}

.team-collab-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 0.5rem;
	text-align: center;
}

.team-collab-content h2 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.75rem;
}

.team-collab-content p {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0 0 1rem;
}

/* ── Team Page Responsive ── */
@media (max-width: 768px) {
	.team-leader-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.team-leader-photo {
		width: 120px;
		height: 120px;
	}

	.team-leader-links {
		justify-content: center;
	}

	.team-researcher-grid {
		grid-template-columns: 1fr;
	}

	.team-researcher-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.team-researcher-photo {
		width: 90px;
		height: 90px;
	}

	.team-researcher-links {
		justify-content: center;
	}

	.team-collab-section {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		text-align: center;
	}

	.team-collab-stat {
		margin: 0 auto;
	}
}

/* ════════════════════════════════════════════════
   RESEARCH PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Research Overview Grid ── */
.research-overview-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: center;
}

.research-overview-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.25rem;
}

.research-overview-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.research-overview-image img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.research-overview-image:hover img {
	transform: scale(1.03);
}

/* ── Research Lines Grid ── */
.research-lines-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ablib-card-gap);
}

.research-line-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem;
	box-shadow: var(--ablib-shadow-card);
}

.research-line-card .icon-wrap {
	margin-bottom: 1rem;
}

.research-line-card h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.75rem;
}

.research-line-card p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0;
}

.research-line-card--wide {
	grid-column: span 3;
	max-width: 600px;
	margin: 0 auto;
	text-align: center;
}

/* ── Projects List ── */
.projects-list {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.project-card {
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-md);
	padding: 1.75rem 2rem;
	transition: transform var(--ablib-transition-normal), box-shadow var(--ablib-transition-normal);
}

.project-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.project-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.project-card-info h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0;
}

.project-funder {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--ablib-accent);
	margin-top: 0.25rem;
}

.project-card > p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0 0 1rem;
}

.project-meta {
	display: flex;
	gap: 1.5rem;
}

.project-value {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1rem;
	font-weight: 700;
	color: var(--ablib-primary);
}

.project-year {
	font-size: 0.8125rem;
	color: var(--ablib-muted);
	display: flex;
	align-items: center;
}

/* Status badges */
.status-badge {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	border-radius: var(--ablib-radius-pill);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.status-badge.active {
	background: rgba(91, 181, 49, 0.12);
	color: var(--ablib-accent-dark, #4A9628);
}

.status-badge.implanting {
	background: rgba(0, 119, 182, 0.1);
	color: var(--ablib-primary);
}

/* ── Research Page Responsive ── */
@media (max-width: 768px) {
	.research-overview-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.research-overview-image img {
		height: 260px;
	}

	.research-lines-grid {
		grid-template-columns: 1fr;
	}

	.research-line-card--wide {
		grid-column: span 1;
	}

	.project-card-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
}

/* ════════════════════════════════════════════════
   INFRASTRUCTURE PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Infra Overview Grid ── */
.infra-overview-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: stretch;
}

.infra-overview-content p {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--ablib-text);
	margin: 0 0 1.25rem;
}

.infra-overview-image {
	border-radius: var(--ablib-radius-md);
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.infra-overview-image img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.infra-overview-image:hover img {
	transform: scale(1.03);
}

/* ── Infra Spaces Grid ── */
.infra-spaces-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ablib-card-gap);
}

.infra-space-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem;
	box-shadow: var(--ablib-shadow-card);
}

.infra-space-header {
	margin-bottom: 0.75rem;
}

.infra-space-area {
	display: inline-block;
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--ablib-primary);
	line-height: 1;
	margin-bottom: 0.5rem;
}

.infra-space-header h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0;
}

.infra-space-card p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--ablib-muted);
	margin: 0;
}

/* ── Infra Equipment Grid ── */
.infra-equipment-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ablib-card-gap);
}

.infra-equipment-card {
	background: var(--ablib-bg);
	border-radius: var(--ablib-radius-lg);
	overflow: hidden;
	box-shadow: var(--ablib-shadow-card);
}

.infra-equipment-image {
	width: 100%;
	height: 200px;
	overflow: hidden;
}

.infra-equipment-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--ablib-transition-normal);
}

.infra-equipment-card:hover .infra-equipment-image img {
	transform: scale(1.05);
}

.infra-equipment-info {
	padding: 1.5rem;
}

.infra-equipment-info h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.5rem;
}

.infra-equipment-info p {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ablib-muted);
	margin: 0 0 0.75rem;
}

.infra-equipment-tag {
	display: inline-block;
	padding: 0.25rem 0.625rem;
	background: rgba(0, 119, 182, 0.08);
	border-radius: var(--ablib-radius-pill);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--ablib-primary);
}

/* ── Infrastructure Page Responsive ── */
@media (max-width: 768px) {
	.infra-overview-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.infra-overview-image img {
		height: 260px;
	}

	.infra-spaces-grid {
		grid-template-columns: 1fr;
	}

	.infra-equipment-grid {
		grid-template-columns: 1fr;
	}
}

/* ════════════════════════════════════════════════
   PARTNERSHIPS PAGE — Inner Page Styles
   ════════════════════════════════════════════════ */

/* ── Partners Category Grid ── */
.partners-category-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ablib-card-gap);
}

.partner-detail-card {
	background: #fff;
	border-radius: var(--ablib-radius-lg);
	padding: 2rem;
	text-align: center;
	box-shadow: var(--ablib-shadow-card);
}

.partner-detail-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: var(--ablib-bg);
	margin: 0 auto 1.25rem;
	overflow: hidden;
}

.partner-detail-logo img {
	width: 60px;
	height: 60px;
	object-fit: contain;
	filter: grayscale(100%);
	transition: filter var(--ablib-transition-normal);
}

.partner-detail-card:hover .partner-detail-logo img {
	filter: grayscale(0%);
}

.partner-detail-card h3 {
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--ablib-primary-dark);
	margin: 0 0 0.5rem;
}

.partner-detail-card p {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ablib-muted);
	margin: 0 0 0.75rem;
}

.partner-detail-value {
	display: inline-block;
	font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', sans-serif);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--ablib-accent);
}

/* ── All Partners Logos Strip ── */
.all-partners-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
}

.all-partners-logos img {
	height: 48px;
	width: auto;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.5;
	transition: filter var(--ablib-transition-normal), opacity var(--ablib-transition-normal);
}

.all-partners-logos img:hover {
	filter: grayscale(0%);
	opacity: 1;
}

/* ── Partnerships Page Responsive ── */
@media (max-width: 768px) {
	.partners-category-grid {
		grid-template-columns: 1fr;
	}

	.all-partners-logos {
		gap: 1.5rem;
	}

	.all-partners-logos img {
		height: 36px;
	}
}
