/*
Theme Name: Flexible Circularity 2026
Theme URI: https://flexiblecircularity.com/
Author: Flexible Circularity
Author URI: https://flexiblecircularity.com/
Description: Production block theme for the 2026 Flexible Circularity website redesign.
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Version: 2.7.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: flexible-circularity-2026
Tags: block-theme, full-site-editing, sustainability, consulting, portfolio
*/

/* ----------------------------------------------------------------
   Tokens
---------------------------------------------------------------- */

:root {
	/* Surfaces */
	--fc-bg:           #f3f7fb;
	--fc-bg-light:     #f8fbfd;
	--fc-white:        #ffffff;
	--fc-section-blue: #eaf3f8;
	--fc-blue-light:   #e7f6fb;

	/* Navy / text */
	--fc-navy:         #0b2436;
	--fc-navy-deep:    #061722;
	--fc-text:         #0b2436;
	--fc-text-muted:   #496579;
	--fc-text-soft:    #5a7282;
	--fc-text-on-dark: #b7c8d2;

	/* Accents */
	--fc-blue:         #0b78b6;
	--fc-blue-deep:    #08507f;
	--fc-cyan:         #7bd3f0;
	--fc-cyan-soft:    #bfefff;
	--fc-orange:       #e87935;
	--fc-method-bg:    #172d40;
	--fc-method-card:  #25394b;

	/* Borders */
	--fc-blue-border:  #d7e8f1;
	--fc-blue-border-2:#cfe0ea;

	/* Type scale */
	--fc-hero-title:        clamp(2.45rem, 4.6vw, 4.2rem);
	--fc-section-title:     clamp(1.75rem, 3vw, 2.75rem);
	--fc-subsection-title:  clamp(1.25rem, 1.8vw, 1.6rem);
	--fc-card-title:        clamp(1rem, 1.1vw, 1.2rem);
	--fc-cta-title:         clamp(1.55rem, 2.6vw, 2.35rem);
	--fc-cta-text:          clamp(1rem, 1.15vw, 1.12rem);
	--fc-body-large:        clamp(1rem, 1.2vw, 1.15rem);
	--fc-body:              0.95rem;
	--fc-small:             0.82rem;
	--fc-label:             0.68rem;

	/* Radii */
	--fc-radius-card: 1.5rem;
	--fc-radius-pill: 999px;
	--fc-radius-cta:  2rem;
}

/* ----------------------------------------------------------------
   Brand: self-hosted Sora (OFL, assets/fonts/OFL.txt) and logo
---------------------------------------------------------------- */

@font-face {
	font-display: swap;
	font-family: "Sora";
	font-style: normal;
	font-weight: 400 700;
	src: url("assets/fonts/sora-latin.woff2") format("woff2");
}

.fc-brand {
	align-items: center;
	color: var(--fc-navy);
	display: inline-flex;
	gap: 0.6rem;
	text-decoration: none;
}

.fc-brand:hover {
	color: var(--fc-navy);
}

.fc-brand__mark {
	flex: none;
	height: 2.6rem;
	width: 2.6rem;
}

.fc-brand__word {
	font-family: "Sora", var(--wp--preset--font-family--body, system-ui), sans-serif;
	font-size: 1.2rem;
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1;
	white-space: nowrap;
}

.fc-brand__word b {
	font-weight: 700;
}

.fc-brand--footer {
	color: var(--fc-white);
	margin-bottom: 0.85rem;
}

.fc-brand--footer:hover {
	color: var(--fc-white);
}

@media (max-width: 480px) {
	.fc-brand__mark {
		height: 2.1rem;
		width: 2.1rem;
	}

	.fc-brand__word {
		font-size: 1rem;
	}
}

/* ----------------------------------------------------------------
   Reset / base
---------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
}

body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	background: var(--fc-bg);
	color: var(--fc-text);
}

.wp-site-blocks {
	min-height: 100vh;
}

p {
	max-width: 72ch;
}

a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 0.06em;
	text-decoration-color: color-mix(in srgb, currentColor 50%, transparent);
	transition: color 160ms ease, text-decoration-color 160ms ease;
}

a:hover {
	color: var(--fc-blue);
	text-decoration-color: currentColor;
}

:where(a, button, input, textarea, select, summary, .fc-button, .wp-block-button__link):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--fc-blue) 70%, white);
	outline-offset: 3px;
}

/* ----------------------------------------------------------------
   Container
---------------------------------------------------------------- */

.fc-container {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	width: 100%;
}

@media (min-width: 1024px) {
	.fc-container {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

/* ----------------------------------------------------------------
   Sections / spacing
---------------------------------------------------------------- */

.fc-section {
	padding-top: clamp(4rem, 7vw, 5rem);
	padding-bottom: clamp(4rem, 7vw, 5rem);
}

.fc-section--services {
	background: var(--fc-white);
}

.fc-section--work {
	background: var(--fc-section-blue);
}

.fc-section--method {
	background: var(--fc-white);
}

.fc-section-intro {
	max-width: 56rem;
	margin-bottom: clamp(2rem, 3.5vw, 3rem);
}

.fc-section-intro > * + * {
	margin-top: 1rem;
}

.fc-section-title {
	font-size: var(--fc-section-title);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 0.98;
	color: var(--fc-navy);
	margin: 0;
}

.fc-section-lead {
	font-size: var(--fc-body-large);
	line-height: 1.58;
	color: var(--fc-text-muted);
	max-width: 56rem;
	margin: 0;
}

/* ----------------------------------------------------------------
   Eyebrow / labels
---------------------------------------------------------------- */

.fc-eyebrow,
.fc-label {
	font-size: var(--fc-label);
	font-weight: 900;
	letter-spacing: 0.2em;
	line-height: 1.2;
	margin: 0;
	text-transform: uppercase;
	color: var(--fc-blue);
}

.fc-label--on-dark {
	color: var(--fc-cyan);
}

/* ----------------------------------------------------------------
   Buttons
---------------------------------------------------------------- */

.fc-button,
.wp-block-button__link {
	align-items: center;
	border-radius: var(--fc-radius-pill);
	display: inline-flex;
	font-size: 0.95rem;
	font-weight: 800;
	gap: 0.45rem;
	letter-spacing: -0.005em;
	line-height: 1.1;
	padding: 0.85rem 1.45rem;
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.fc-button--primary,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--fc-blue);
	color: var(--fc-white);
	box-shadow: 0 12px 24px rgba(11, 120, 182, 0.18);
}

.fc-button--primary:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--fc-blue-deep);
	color: var(--fc-white);
	transform: translateY(-1px);
}

.fc-button--ghost,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--fc-blue);
	color: var(--fc-blue);
	box-shadow: none;
}

.fc-button--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--fc-blue-light);
	color: var(--fc-blue-deep);
	border-color: var(--fc-blue-deep);
}

.fc-button--on-dark {
	background: var(--fc-white);
	color: var(--fc-navy);
}

.fc-button--on-dark:hover {
	background: var(--fc-blue-light);
	color: var(--fc-blue-deep);
	transform: translateY(-1px);
}

.fc-button-label {
	display: inline-block;
}

.fc-button:hover .fc-button-icon,
.wp-block-button__link:hover .fc-button-icon {
	transform: translateX(2px);
}

/* ----------------------------------------------------------------
   Icons
---------------------------------------------------------------- */

.fc-icon {
	color: currentColor;
	flex-shrink: 0;
	height: 1.25rem;
	width: 1.25rem;
}

.fc-service-icon {
	color: var(--fc-blue);
	flex-shrink: 0;
	height: 1.5rem;
	width: 1.5rem;
}

.fc-button-icon {
	flex-shrink: 0;
	height: 0.95rem;
	margin-left: 0.1rem;
	transition: transform 160ms ease;
	width: 0.95rem;
}

.fc-footer-icon {
	color: var(--fc-cyan);
	flex-shrink: 0;
	height: 1rem;
	width: 1rem;
}

/* ----------------------------------------------------------------
   Header
---------------------------------------------------------------- */

.fc-site-header,
.fc-header {
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	background: rgba(248, 251, 253, 0.9);
	border-bottom: 1px solid var(--fc-blue-border-2);
	position: sticky;
	top: 0;
	z-index: 40;
}

.fc-header-row {
	align-items: center;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	min-height: 4rem;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.fc-header-row .wp-block-site-title {
	font-size: 1.125rem;
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}

.fc-header-row .wp-block-site-title a {
	color: var(--fc-navy);
	text-decoration: none;
}

/* ----------------------------------------------------------------
   Language nav (header)
---------------------------------------------------------------- */

.fc-language-nav {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: 1.25rem;
	justify-content: flex-end;
}

.fc-language-nav__menu {
	align-items: center;
	color: #436174;
	display: flex;
	flex-wrap: nowrap;
	font-size: 0.78rem;
	font-weight: 700;
	gap: clamp(1rem, 1.6vw, 1.75rem);
	letter-spacing: 0.08em;
	list-style: none;
	margin: 0;
	padding: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.fc-language-nav__menu a {
	color: var(--fc-text-muted);
	text-decoration: none;
}

.fc-language-nav__menu a:hover {
	color: var(--fc-blue);
}

.fc-language-switcher {
	align-items: center;
	background: var(--fc-white);
	border: 1px solid color-mix(in srgb, var(--fc-blue) 30%, transparent);
	border-radius: var(--fc-radius-pill);
	color: var(--fc-blue);
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 0.78rem;
	font-weight: 800;
	gap: 0.45rem;
	letter-spacing: 0.06em;
	padding: 0.3rem 0.75rem;
}

.fc-language-switcher a,
.fc-footer__language a {
	color: var(--fc-blue);
	text-decoration: none;
}

.fc-language-switcher a[aria-current="true"],
.fc-footer__language a[aria-current="true"] {
	color: var(--fc-navy);
}

.fc-language-switcher a:hover,
.fc-footer__language a:hover {
	color: var(--fc-blue-deep);
}

/* ----------------------------------------------------------------
   Hero
---------------------------------------------------------------- */

.fc-hero {
	background:
		radial-gradient(circle at 72% 18%, rgba(55, 173, 210, 0.26), transparent 34%),
		radial-gradient(circle at 10% 55%, rgba(8, 83, 135, 0.12), transparent 38%),
		var(--fc-bg);
	border-bottom: 1px solid rgba(207, 224, 234, 0.5);
	padding-top: clamp(4rem, 7vw, 5.75rem);
	padding-bottom: clamp(4rem, 7vw, 5.75rem);
	position: relative;
	overflow: hidden;
}

/* The pre-existing hero-bg div is no longer needed; gradients live on .fc-hero */
.fc-hero-bg {
	display: none;
}

.fc-hero > .fc-container,
.fc-hero-grid {
	position: relative;
	z-index: 1;
}

.fc-hero-grid {
	align-items: center;
	display: grid;
	gap: clamp(2.5rem, 5vw, 4.5rem);
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.fc-hero-copy {
	max-width: 38rem;
}

.fc-hero-copy > * + * {
	margin-top: 1.25rem;
}

.fc-hero-title {
	color: var(--fc-navy);
	font-size: var(--fc-hero-title);
	font-weight: 900;
	hyphens: none;
	letter-spacing: -0.035em;
	line-height: 0.98;
	margin: 0;
	max-width: 760px;
	text-wrap: pretty;
	word-break: normal;
}

.fc-hero-text {
	color: var(--fc-text-muted);
	font-size: var(--fc-body-large);
	font-weight: 500;
	line-height: 1.6;
	margin: 0;
	max-width: 680px;
}

.fc-hero-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 2rem;
}

/* Hero right card */

.fc-hero-aside {
	width: 100%;
}

.fc-hero-panel {
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.75rem;
	box-shadow: 0 30px 60px rgba(11, 36, 54, 0.08);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	margin-left: auto;
	max-width: 520px;
	padding: clamp(1.5rem, 2.4vw, 1.75rem);
}

.fc-hero-panel > * + * {
	margin-top: 0.85rem;
}

.fc-hero-panel__title {
	color: var(--fc-navy);
	font-size: clamp(1.45rem, 2.2vw, 2.25rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.05;
	margin: 0;
}

.fc-hero-panel__text {
	color: var(--fc-text-muted);
	font-size: 0.98rem;
	line-height: 1.55;
	margin: 0;
}

.fc-hero-mini-grid {
	display: grid;
	gap: 0.65rem;
	margin-top: 1.1rem;
}

.fc-hero-mini-card {
	align-items: flex-start;
	background: var(--fc-bg-light);
	border: 1px solid var(--fc-blue-border);
	border-radius: 0.95rem;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: 2.1rem minmax(0, 1fr);
	padding: 1rem 1.1rem;
}

.fc-mini-icon {
	align-items: center;
	background: var(--fc-navy);
	border-radius: var(--fc-radius-pill);
	color: var(--fc-cyan);
	display: inline-flex;
	height: 2.1rem;
	justify-content: center;
	width: 2.1rem;
}

.fc-mini-icon .fc-icon {
	height: 1rem;
	width: 1rem;
}

.fc-mini-title {
	color: var(--fc-navy);
	font-size: 0.95rem;
	font-weight: 900;
	letter-spacing: -0.005em;
	line-height: 1.18;
	margin: 0 0 0.2rem;
}

.fc-mini-text {
	color: var(--fc-text-muted);
	font-size: 0.85rem;
	line-height: 1.5;
	margin: 0;
}

/* ----------------------------------------------------------------
   Service areas (white)
---------------------------------------------------------------- */

.fc-services-grid {
	align-items: stretch;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fc-service-card {
	background: var(--fc-bg-light);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.75rem;
	box-shadow: 0 0 0 rgba(11, 36, 54, 0);
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-height: 260px;
	padding: 1.5rem;
	transition: background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.fc-service-card:hover {
	background: var(--fc-white);
	box-shadow: 0 20px 40px rgba(11, 36, 54, 0.08);
	transform: translateY(-4px);
}

.fc-service-card__icon {
	align-items: center;
	background: var(--fc-blue-light);
	border-radius: var(--fc-radius-pill);
	color: var(--fc-blue);
	display: inline-flex;
	height: 2.5rem;
	justify-content: center;
	width: 2.5rem;
}

.fc-card-title {
	color: var(--fc-navy);
	font-size: var(--fc-card-title);
	font-weight: 900;
	letter-spacing: -0.005em;
	line-height: 1.18;
	margin: 0;
}

.fc-card-text {
	color: var(--fc-text-muted);
	font-size: var(--fc-body);
	line-height: 1.58;
	margin: 0;
}

/* ----------------------------------------------------------------
   Current work (mist)
---------------------------------------------------------------- */

.fc-work-grid {
	align-items: stretch;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fc-work-card {
	background: var(--fc-white);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.75rem;
	box-shadow: 0 14px 28px rgba(11, 36, 54, 0.05);
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-height: 230px;
	padding: 1.5rem;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.fc-work-card:hover {
	box-shadow: 0 22px 44px rgba(11, 36, 54, 0.10);
	transform: translateY(-3px);
}

.fc-work-card__top {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.fc-work-number {
	align-items: center;
	background: var(--fc-navy);
	border-radius: var(--fc-radius-pill);
	color: var(--fc-cyan);
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 900;
	height: 2rem;
	justify-content: center;
	letter-spacing: 0.04em;
	line-height: 1;
	width: 2rem;
}

.fc-work-card__icon {
	align-items: center;
	color: var(--fc-blue);
	display: inline-flex;
	justify-content: center;
}

.fc-work-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	justify-content: center;
	margin-top: clamp(2.25rem, 4vw, 3rem);
	width: 100%;
}

/* ----------------------------------------------------------------
   Method (white)
---------------------------------------------------------------- */

.fc-method-list {
	counter-reset: fc-step;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-method-item {
	align-items: flex-start;
	background: var(--fc-bg-light);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.25rem;
	display: grid;
	gap: 1rem;
	grid-template-columns: 2.6rem minmax(0, 1fr);
	padding: 1.25rem 1.4rem;
}

.fc-method-step {
	align-items: center;
	background: var(--fc-blue);
	border-radius: var(--fc-radius-pill);
	color: var(--fc-white);
	display: inline-flex;
	font-size: 0.78rem;
	font-weight: 900;
	height: 2.2rem;
	justify-content: center;
	letter-spacing: 0.04em;
	line-height: 1;
	width: 2.2rem;
}

.fc-method-text {
	color: var(--fc-text);
	font-size: 1.02rem;
	line-height: 1.55;
	margin: 0;
}

/* ----------------------------------------------------------------
   CTA
---------------------------------------------------------------- */

.fc-cta {
	background: var(--fc-navy);
	color: var(--fc-white);
}

.fc-cta-card {
	align-items: center;
	background: linear-gradient(135deg, #0b78b6 0%, #0b2436 72%);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--fc-radius-cta);
	box-shadow: 0 30px 70px rgba(11, 36, 54, 0.3);
	color: var(--fc-white);
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	grid-template-columns: minmax(0, 1fr) auto;
	padding: clamp(1.75rem, 3.5vw, 3.25rem);
}

.fc-cta-copy > * + * {
	margin-top: 1rem;
}

.fc-cta-title {
	color: var(--fc-white);
	font-size: var(--fc-cta-title);
	font-weight: 900;
	letter-spacing: -0.025em;
	line-height: 1.04;
	margin: 0;
	max-width: 28ch;
}

.fc-cta-text {
	color: rgba(255, 255, 255, 0.86);
	font-size: var(--fc-cta-text);
	line-height: 1.5;
	margin: 0;
	max-width: 52ch;
}

.fc-cta-actions {
	display: flex;
	justify-content: flex-end;
}

/* ----------------------------------------------------------------
   Footer
---------------------------------------------------------------- */

.fc-footer {
	background: var(--fc-navy-deep);
	color: var(--fc-text-on-dark);
	padding: clamp(3rem, 5vw, 4.25rem) 0 1.75rem;
}

.fc-footer__grid {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1.4fr) minmax(11rem, 0.65fr) minmax(11rem, 0.65fr);
}

.fc-footer__brand {
	max-width: 34rem;
}

.fc-footer__brand .wp-block-site-title {
	color: var(--fc-white);
	font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.45rem);
	font-weight: 900;
	letter-spacing: -0.015em;
	line-height: 1.2;
	margin: 0 0 0.85rem;
}

.fc-footer p,
.fc-footer__list {
	color: var(--fc-text-on-dark);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0;
}

.fc-footer__lead {
	margin-bottom: 1rem !important;
}

.fc-footer__location {
	align-items: center;
	display: inline-flex;
	gap: 0.5rem;
}

.fc-footer__col .fc-eyebrow {
	color: var(--fc-cyan);
	margin-bottom: 0.85rem;
}

.fc-footer__list {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 0.4rem;
}

.fc-footer__contact a {
	color: var(--fc-white);
}

.fc-footer__contact a:hover {
	color: var(--fc-cyan);
}

.fc-footer a {
	color: var(--fc-text-on-dark);
}

.fc-footer__language {
	align-items: center;
	display: inline-flex;
	gap: 0.45rem;
	margin-top: 1rem;
}

.fc-footer__language a {
	color: var(--fc-text-on-dark);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.fc-footer__language a[aria-current="true"] {
	color: var(--fc-cyan);
}

.fc-footer__language span[aria-hidden="true"] {
	color: rgba(183, 200, 210, 0.4);
}

.fc-footer__credit {
	color: rgba(183, 200, 210, 0.7);
	font-size: 0.82rem;
	margin: 2.25rem auto 0;
	max-width: 1280px;
	text-align: center;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

@media (min-width: 1024px) {
	.fc-footer__credit {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

/* ----------------------------------------------------------------
   Interior pages
---------------------------------------------------------------- */

.fc-page {
	padding-bottom: clamp(3.75rem, 6vw, 5.75rem);
	padding-top: clamp(3.25rem, 5.5vw, 5rem);
}

.fc-page .fc-page-title {
	color: var(--fc-navy);
	font-size: clamp(1.9rem, 3.2vw, 2.75rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1;
	margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
	max-width: 720px;
}

.fc-page .fc-page-content {
	max-width: 720px;
}

.fc-page .fc-page-content > * {
	margin-block-start: 1.05rem;
}

.fc-page .fc-page-content > :first-child {
	margin-block-start: 0;
}

.fc-page .fc-page-content p {
	color: var(--fc-text-muted);
	font-size: clamp(0.96rem, 1vw, 1.04rem);
	line-height: 1.68;
	max-width: 70ch;
}

.fc-page .fc-page-content .has-large-font-size {
	color: var(--fc-text);
	font-size: clamp(1rem, 1.1vw, 1.08rem) !important;
	line-height: 1.62;
}

.fc-page .fc-page-content h2 {
	color: var(--fc-navy);
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin-bottom: 0.75rem;
	margin-top: clamp(1.8rem, 3.5vw, 2.55rem);
}

.fc-page .fc-page-content h3 {
	color: var(--fc-navy);
	font-size: clamp(1.05rem, 1.2vw, 1.18rem);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.22;
	margin-bottom: 0.6rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.fc-page .fc-page-content h4 {
	color: var(--fc-navy);
	font-size: clamp(1rem, 1.15vw, 1.15rem);
	font-weight: 800;
	line-height: 1.25;
	margin-bottom: 0.5rem;
	margin-top: 1.25rem;
}

.fc-page .fc-page-content ul,
.fc-page .fc-page-content ol {
	margin-top: 0.85rem;
	padding-left: 1.25rem;
}

.fc-page .fc-page-content li {
	color: var(--fc-text-muted);
	font-size: clamp(0.94rem, 0.98vw, 1rem);
	line-height: 1.65;
	margin-bottom: 0.35rem;
}

.fc-page .fc-page-content .wp-block-group,
.fc-page .fc-page-content .wp-block-columns {
	margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
}

/* ----------------------------------------------------------------
   Override WordPress preset font-size !important rules in scope
---------------------------------------------------------------- */

.fc-hero-copy {
	--wp--preset--font-size--xx-large: var(--fc-hero-title);
	--wp--preset--font-size--large: var(--fc-body-large);
}

.fc-section-intro {
	--wp--preset--font-size--large: var(--fc-body-large);
}

.fc-cta-copy {
	--wp--preset--font-size--large: var(--fc-cta-text);
}

/* ----------------------------------------------------------------
   Entry cards: projects, articles, news (rendered by fc-core)
---------------------------------------------------------------- */

.fc-cards {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}

.fc-entry-card {
	background: var(--fc-white);
	border: 1px solid var(--fc-blue-border);
	border-radius: var(--fc-radius-card);
	box-shadow: 0 14px 28px rgba(11, 36, 54, 0.05);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.5rem;
	position: relative;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.fc-entry-card:hover {
	box-shadow: 0 22px 44px rgba(11, 36, 54, 0.10);
	transform: translateY(-3px);
}

.fc-entry-card__meta {
	color: var(--fc-blue);
	font-size: var(--fc-label);
	font-weight: 900;
	letter-spacing: 0.14em;
	margin: 0;
	text-transform: uppercase;
}

.fc-entry-card__title {
	font-size: var(--fc-card-title);
	font-weight: 900;
	line-height: 1.2;
	margin: 0;
}

.fc-entry-card__title a {
	color: var(--fc-navy);
	text-decoration: none;
}

/* Whole card is clickable via the title link. */
.fc-entry-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.fc-entry-card__excerpt {
	color: var(--fc-text-muted);
	font-size: var(--fc-body);
	line-height: 1.58;
	margin: 0;
}

.fc-entry-card__link {
	color: var(--fc-blue);
	font-size: var(--fc-small);
	font-weight: 800;
	margin-top: auto;
	text-decoration: none;
}

.fc-cards-empty {
	color: var(--fc-text-muted);
}

.fc-text-link {
	color: var(--fc-blue);
	font-weight: 800;
}

/* Listing pages need more width than running text. */
.fc-page .fc-page-content:has(.fc-cards) {
	max-width: 1080px;
}

.fc-page .fc-page-content .fc-entry-card p {
	font-size: var(--fc-body);
	margin: 0;
}

/* ----------------------------------------------------------------
   Single posts and projects
---------------------------------------------------------------- */

.fc-single__meta {
	color: var(--fc-blue);
	font-size: var(--fc-small);
	font-weight: 800;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.fc-single__meta a {
	color: inherit;
}

.fc-single__image img {
	border-radius: var(--fc-radius-card);
}

.fc-project-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	margin: 0 0 2rem;
}

.fc-project-meta dt {
	color: var(--fc-blue);
	font-size: var(--fc-label);
	font-weight: 900;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.fc-project-meta dd {
	color: var(--fc-navy);
	font-weight: 700;
	margin: 0.2rem 0 0;
}

/* ----------------------------------------------------------------
   Header menu (<details>; toggle only shows on small screens)
---------------------------------------------------------------- */

.fc-menu__toggle {
	display: none;
}

/* ----------------------------------------------------------------
   Responsive
---------------------------------------------------------------- */

@media (max-width: 1100px) {
	.fc-services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 960px) {
	.fc-hero-grid {
		grid-template-columns: 1fr;
	}

	.fc-work-grid {
		grid-template-columns: 1fr;
	}

	.fc-work-card {
		min-height: auto;
	}

	.fc-cta-card {
		grid-template-columns: 1fr;
	}

	.fc-cta-actions {
		justify-content: flex-start;
	}

	.fc-footer__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.fc-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 760px) {
	.fc-method-list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.fc-hero-title {
		font-size: clamp(2.1rem, 10vw, 3rem);
		letter-spacing: -0.025em;
		line-height: 1;
	}

	.fc-hero-panel {
		margin-left: 0;
		max-width: none;
	}

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

	.fc-service-card {
		min-height: auto;
	}

	.fc-header-row {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.75rem;
	}

	.fc-language-nav {
		flex-wrap: wrap;
		gap: 0.85rem;
		justify-content: flex-start;
		width: 100%;
	}

	.fc-language-nav {
		align-items: flex-start;
	}

	.fc-menu {
		flex: 1 1 auto;
	}

	.fc-menu__toggle {
		color: var(--fc-navy);
		cursor: pointer;
		display: inline-block;
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.08em;
		padding: 0.35rem 0;
		text-transform: uppercase;
	}

	.fc-language-nav__menu {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.9rem;
		padding: 0.75rem 0 0.5rem;
		white-space: normal;
	}

	.fc-cta-card {
		padding: clamp(1.5rem, 6vw, 2rem);
	}

	.fc-footer__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.fc-hero-actions .fc-button {
		flex: 1 1 auto;
		justify-content: center;
	}

	.fc-cta-actions .fc-button {
		width: 100%;
		justify-content: center;
	}
}

/* ----------------------------------------------------------------
   Homepage 2.2 — Brand Continuity
---------------------------------------------------------------- */

.fc-a-home {
	background: var(--fc-bg);
	color: var(--fc-navy);
	margin-block: 0;
}

.fc-a-home *,
.fc-a-home *::before,
.fc-a-home *::after {
	box-sizing: border-box;
}

.fc-a-container {
	margin-inline: auto;
	max-width: 1280px;
	padding-inline: clamp(1.1rem, 3vw, 2.5rem);
	width: 100%;
}

.fc-a-eyebrow {
	color: var(--fc-blue);
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.18em;
	line-height: 1.25;
	margin: 0 0 1.25rem;
	text-transform: uppercase;
}

.fc-a-hero {
	background:
		radial-gradient(circle at 76% 18%, rgba(123, 211, 240, 0.34), transparent 29%),
		linear-gradient(105deg, var(--fc-bg) 55%, #e6f2f5);
	border-bottom: 1px solid rgba(11, 36, 54, 0.08);
	padding-block: clamp(4.5rem, 8vw, 7.25rem);
}

.fc-a-hero__grid {
	align-items: center;
	display: grid;
	gap: clamp(2.75rem, 6vw, 6.25rem);
	grid-template-columns: minmax(0, 1.08fr) minmax(26rem, 0.92fr);
}

.fc-a-hero__copy {
	max-width: 46rem;
}

.fc-a-hero h1 {
	color: var(--fc-navy);
	font-size: clamp(2.75rem, 4.9vw, 4.4rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.04;
	margin: 0;
	text-wrap: balance;
}

/* Spanish needs more vertical air than the shorter English headline. */
html[lang^="es"] .fc-a-hero h1 {
	letter-spacing: -0.025em;
	line-height: 1.06;
}

.fc-a-hero h1::after {
	background: var(--fc-orange);
	border-radius: 999px;
	content: "";
	display: block;
	height: 0.45rem;
	margin-top: 2rem;
	width: 5.25rem;
}

.fc-a-hero__lead {
	color: var(--fc-text-muted);
	font-size: clamp(1.05rem, 1.35vw, 1.3rem);
	font-weight: 500;
	line-height: 1.58;
	margin: 1.85rem 0 0;
	max-width: 43rem;
}

.fc-a-hero__lead + .fc-a-hero__lead {
	margin-top: 0.9rem;
}

.fc-a-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: 2.25rem;
}

.fc-a-button {
	align-items: center;
	border: 1px solid transparent;
	border-radius: var(--fc-radius-pill);
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 850;
	gap: 1.2rem;
	justify-content: space-between;
	line-height: 1.1;
	min-height: 3.25rem;
	padding: 0.9rem 1.25rem;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.fc-a-button:hover {
	transform: translateY(-2px);
}

.fc-a-button--primary {
	background: var(--fc-blue);
	color: var(--fc-white);
}

.fc-a-button--primary:hover {
	background: var(--fc-blue-deep);
	color: var(--fc-white);
}

.fc-a-button--secondary {
	border-color: var(--fc-navy);
	color: var(--fc-navy);
}

.fc-a-button--secondary:hover {
	background: var(--fc-white);
	color: var(--fc-blue-deep);
}

.fc-a-button--light {
	background: var(--fc-white);
	color: var(--fc-navy);
}

.fc-a-button--light:hover {
	background: var(--fc-blue-light);
	color: var(--fc-blue-deep);
}

.fc-a-one-health {
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid rgba(11, 36, 54, 0.11);
	border-radius: 2rem;
	box-shadow: 0 24px 64px rgba(11, 36, 54, 0.08);
	margin: 0;
	overflow: hidden;
	padding: clamp(1.25rem, 2.4vw, 1.75rem);
	position: relative;
}

.fc-a-one-health::after {
	background: rgba(232, 121, 53, 0.12);
	border-radius: 50%;
	content: "";
	height: 9rem;
	position: absolute;
	right: -2.5rem;
	top: -3rem;
	width: 9rem;
}

.fc-a-one-health__label {
	color: var(--fc-text-muted);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	position: relative;
	text-transform: uppercase;
	z-index: 1;
}

.fc-a-one-health svg {
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: 34rem;
	width: 100%;
}

.fc-a-one-health > p {
	color: var(--fc-text-muted);
	font-size: 0.82rem;
	line-height: 1.5;
	margin: -0.5rem auto 0;
	max-width: 28rem;
	text-align: center;
}

.fc-a-oh-system {
	fill: none;
	stroke: rgba(11, 36, 54, 0.15);
	stroke-dasharray: 4 7;
}

.fc-a-oh-domain {
	stroke-width: 1.5;
}

.fc-a-oh-human {
	fill: rgba(11, 120, 182, 0.1);
	stroke: #55a9d0;
}

.fc-a-oh-animal {
	fill: rgba(232, 121, 53, 0.1);
	stroke: var(--fc-orange);
}

.fc-a-oh-environment {
	fill: rgba(58, 139, 97, 0.1);
	stroke: #65a986;
}

.fc-a-oh-label text {
	fill: var(--fc-navy);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
}

.fc-a-oh-ring {
	fill: none;
	stroke: var(--fc-orange);
	stroke-dasharray: 3 6;
	stroke-width: 2;
}

.fc-a-oh-core {
	fill: var(--fc-orange);
}

.fc-a-oh-core-text,
.fc-a-oh-core-small {
	fill: var(--fc-navy-deep);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.fc-a-oh-core-text {
	font-size: 11px;
}

.fc-a-oh-core-small {
	font-size: 8px;
}

.fc-a-section {
	padding-block: clamp(4.25rem, 7vw, 6.25rem);
}

.fc-a-section--white,
.fc-a-experience {
	background: var(--fc-white);
}

.fc-a-section__intro {
	align-items: end;
	display: grid;
	gap: clamp(2rem, 7vw, 8rem);
	grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
	margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
}

.fc-a-section__intro--compact {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.6fr);
}

.fc-a-section__intro h2,
.fc-a-network h2,
.fc-a-contact h2 {
	color: inherit;
	font-size: clamp(2.15rem, 3.7vw, 3.5rem);
	font-weight: 900;
	letter-spacing: -0.035em;
	line-height: 1.04;
	margin: 0;
	text-wrap: balance;
}

.fc-a-section__intro > p,
.fc-a-section__intro-copy p {
	color: var(--fc-text-muted);
	font-size: clamp(1rem, 1.15vw, 1.12rem);
	line-height: 1.6;
	margin: 0;
	max-width: 38rem;
}

.fc-a-section__intro-copy p + p {
	margin-top: 0.85rem;
}

.fc-a-pathways {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fc-a-pathway {
	background: var(--fc-bg-light);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.4rem;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: clamp(1.5rem, 2.2vw, 2rem);
}

.fc-a-index {
	align-items: center;
	background: var(--fc-blue-light);
	border-radius: 999px;
	color: var(--fc-navy);
	display: inline-flex;
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 0.7rem;
	font-weight: 900;
	height: 2rem;
	justify-content: center;
	width: 2.25rem;
}

.fc-a-pathway h3 {
	color: var(--fc-navy);
	font-size: clamp(1.35rem, 1.8vw, 1.7rem);
	font-weight: 900;
	letter-spacing: -0.035em;
	line-height: 1.12;
	margin: 2rem 0 1rem;
}

.fc-a-pathway > p {
	color: var(--fc-text-muted);
	line-height: 1.6;
	margin: 0 0 0.85rem;
}

.fc-a-contact p:not(.fc-a-eyebrow):last-of-type {
	margin-bottom: 1.75rem;
}

.fc-a-pathway ul {
	border-top: 1px solid var(--fc-blue-border);
	list-style: none;
	margin: 1.5rem 0 2rem;
	padding: 1.25rem 0 0;
}

.fc-a-pathway li {
	color: var(--fc-text-muted);
	font-size: 0.86rem;
	line-height: 1.45;
	margin: 0.7rem 0;
	padding-left: 1rem;
	position: relative;
}

.fc-a-pathway li::before {
	background: var(--fc-orange);
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	top: 0.68em;
	width: 0.38rem;
}

.fc-a-pathway > a,
.fc-a-text-link {
	color: var(--fc-blue-deep);
	font-size: 0.82rem;
	font-weight: 850;
	margin-top: auto;
	text-decoration: none;
}

.fc-a-pathway > a span,
.fc-a-text-link span {
	margin-left: 0.4rem;
}

.fc-a-method {
	background: var(--fc-method-bg);
	border-radius: 2.5rem;
	color: var(--fc-white);
	margin: 1.5rem auto;
	width: min(calc(100% - 3rem), 1440px);
}

.fc-a-method .fc-a-eyebrow {
	color: var(--fc-cyan);
}

.fc-a-method__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-a-method__grid li {
	background: var(--fc-method-card);
	border: 1px solid rgba(255, 255, 255, 0.025);
	border-radius: 1.35rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: 21rem;
	padding: 2rem 1.75rem;
}

.fc-a-method__grid li:first-child {
	padding-left: 1.75rem;
}

.fc-a-method__grid > li > span {
	color: var(--fc-cyan);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fc-a-method__grid > li > div {
	margin-top: clamp(3.5rem, 5vw, 4.75rem);
}

.fc-a-method__grid h3 {
	color: var(--fc-white);
	font-size: 1.7rem;
	margin: 0 0 0.65rem;
}

.fc-a-method__grid p {
	color: var(--fc-text-on-dark);
	font-size: 0.88rem;
	line-height: 1.55;
	margin: 0;
}

.fc-a-experience__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fc-a-experience__grid article {
	background: var(--fc-bg-light);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.4rem;
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 2.2vw, 2rem);
}

.fc-a-case-tag {
	color: var(--fc-blue);
	font-size: 0.68rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	margin: 0;
	text-transform: uppercase;
}

.fc-a-experience__grid h3 {
	color: var(--fc-navy);
	font-size: 1.55rem;
	letter-spacing: -0.035em;
	line-height: 1.15;
	margin: 0 0 1rem;
}

.fc-a-experience__grid article > p:not(.fc-a-case-tag) {
	color: var(--fc-text-muted);
	line-height: 1.6;
	margin: 0;
}

.fc-a-experience__grid dl {
	border-top: 1px solid var(--fc-blue-border);
	margin: auto 0 0;
	padding-top: 1rem;
}

.fc-a-experience__grid dl div {
	display: flex;
	font-size: 0.76rem;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.3rem 0;
}

.fc-a-experience__grid dt {
	color: var(--fc-text-muted);
}

.fc-a-experience__grid dd {
	font-weight: 800;
	margin: 0;
	text-align: right;
}

.fc-a-text-link {
	display: inline-block;
	margin-top: 2rem;
}

.fc-a-network {
	background: var(--fc-section-blue);
	border-radius: 2.5rem;
	margin-block: 1.5rem;
	margin-inline: auto;
	width: min(calc(100% - 3rem), 1440px);
}

.fc-a-network__grid {
	align-items: center;
	display: grid;
	gap: clamp(3rem, 8vw, 8rem);
	grid-template-columns: minmax(0, 0.85fr) minmax(24rem, 1.15fr);
}

.fc-a-network h2 {
	margin-bottom: 1.75rem;
}

.fc-a-network p:not(.fc-a-eyebrow) {
	color: var(--fc-text-muted);
	font-size: 1.02rem;
	line-height: 1.6;
	margin: 0 0 0.85rem;
	max-width: 38rem;
}

.fc-a-network__text {
	border-top: 1px solid var(--fc-blue-border-2);
	display: grid;
	gap: clamp(1.5rem, 5vw, 4rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	padding-top: clamp(1.75rem, 3vw, 2.5rem);
}

@media (max-width: 760px) {
	.fc-a-network__text {
		grid-template-columns: 1fr;
	}
}

.fc-a-international h3 {
	color: var(--fc-navy);
	font-size: clamp(1.15rem, 1.5vw, 1.35rem);
	font-weight: 850;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 1rem;
	max-width: 32rem;
}

.fc-a-scope-note {
	border-top: 1px solid var(--fc-blue-border-2);
	font-size: 0.82rem !important;
	margin-top: 1.75rem;
	padding-top: 1.25rem;
}

.fc-a-network__map {
	display: grid;
	place-items: center;
	min-height: 28rem;
	padding-block: 1rem;
}

.fc-a-network__diagram {
	display: block;
	height: auto;
	max-width: 46rem;
	width: 100%;
}

.fc-a-network__diagram--mobile {
	display: none;
}

.fc-a-map-line {
	fill: none;
	stroke: rgba(11, 120, 182, 0.42);
	stroke-dasharray: 5 7;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.fc-a-map-line--main {
	stroke: var(--fc-orange);
	stroke-dasharray: none;
}

.fc-a-map-node {
	fill: var(--fc-white);
	stroke: var(--fc-blue);
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.fc-a-map-node--center {
	fill: var(--fc-navy);
	stroke: var(--fc-navy);
}

.fc-a-map-label {
	fill: var(--fc-navy);
	font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.fc-a-map-label--center {
	fill: var(--fc-white);
	font-size: 14px;
}

.fc-a-ideas {
	background: var(--fc-white);
}

.fc-a-topics {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.fc-a-topics span {
	background: var(--fc-section-blue);
	border-radius: 999px;
	color: var(--fc-navy);
	font-size: 0.78rem;
	font-weight: 750;
	padding: 0.65rem 0.9rem;
}

.fc-a-editorial-state {
	align-items: center;
	color: var(--fc-text-muted);
	display: flex;
	font-size: 0.8rem;
	gap: 0.55rem;
	margin: 1.5rem 0 0;
}

.fc-a-editorial-state span {
	background: var(--fc-orange);
	border-radius: 50%;
	height: 0.55rem;
	width: 0.55rem;
}

.fc-a-contact {
	background: var(--fc-blue);
	color: var(--fc-white);
	padding-block: clamp(4rem, 6.5vw, 5.5rem);
}

.fc-a-contact__grid {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 7vw, 7rem);
	grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
}

.fc-a-contact .fc-a-eyebrow {
	color: var(--fc-cyan-soft);
}

.fc-a-contact p:not(.fc-a-eyebrow) {
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.05rem;
	line-height: 1.6;
	margin: 0 0 1.75rem;
}

@media (max-width: 1024px) {
	.fc-a-hero__grid,
	.fc-a-network__grid {
		grid-template-columns: 1fr;
	}

	.fc-a-hero__copy {
		max-width: 50rem;
	}

	.fc-a-one-health {
		margin-inline: auto;
		max-width: 42rem;
		width: 100%;
	}

	.fc-a-pathways,
	.fc-a-experience__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-a-pathway:last-child,
	.fc-a-experience__grid article:last-child {
		grid-column: 1 / -1;
		min-height: auto;
	}

	.fc-a-method__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-a-method__grid li {
		min-height: 18rem;
	}
}

@media (max-width: 760px) {
	.fc-a-hero {
		padding-block: 4.25rem;
	}

	.fc-a-hero h1 {
		font-size: clamp(2.3rem, 9.5vw, 3.1rem);
		letter-spacing: -0.025em;
	}

	html[lang^="es"] .fc-a-hero h1 {
		letter-spacing: -0.02em;
		line-height: 1.08;
	}

	.fc-a-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.fc-a-button {
		width: 100%;
	}

	.fc-a-section__intro,
	.fc-a-contact__grid {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.fc-a-section__intro h2,
	.fc-a-network h2,
	.fc-a-contact h2 {
		font-size: clamp(1.95rem, 8.2vw, 2.6rem);
	}

	.fc-a-pathways,
	.fc-a-experience__grid,
	.fc-a-method__grid {
		grid-template-columns: 1fr;
	}

	.fc-a-pathway,
	.fc-a-experience__grid article {
		grid-column: auto;
		min-height: auto;
	}

	.fc-a-method {
		border-radius: 0;
		margin: 0;
		width: 100%;
	}

	.fc-a-method__grid li,
	.fc-a-method__grid li:first-child {
		min-height: 15rem;
		padding: 1.5rem;
	}

	.fc-a-network__map {
		min-height: 20rem;
	}

	.fc-a-network__diagram--desktop {
		display: none;
	}

	.fc-a-network__diagram--mobile {
		display: block;
		max-width: 24rem;
	}

	.fc-a-network {
		border-radius: 0;
		margin: 0;
		width: 100%;
	}
}

/* Collapsed header menu: below 960px the five nav items plus the language switcher no longer fit. */
@media (max-width: 960px) {
	.fc-header-row {
		align-items: center;
		flex-direction: row;
		gap: 0.65rem;
	}

	.fc-language-nav__menu {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.9rem;
		white-space: normal;
	}

	.fc-header-row .wp-block-site-title {
		font-size: 1rem;
		white-space: nowrap;
	}

	.fc-language-nav {
		align-items: center;
		flex-wrap: nowrap;
		gap: 0.6rem;
		justify-content: flex-end;
		width: auto;
	}

	.fc-menu {
		flex: 0 0 auto;
		position: relative;
	}

	.fc-menu__toggle {
		border: 1px solid var(--fc-blue-border-2);
		border-radius: 0.25rem;
		color: var(--fc-navy);
		cursor: pointer;
		display: inline-block;
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.08em;
		padding: 0.55rem 0.75rem;
		text-transform: uppercase;
	}

	.fc-menu[open] .fc-language-nav__menu {
		background: var(--fc-white);
		border: 1px solid var(--fc-blue-border);
		border-radius: 0.75rem;
		box-shadow: 0 18px 45px rgba(11, 36, 54, 0.13);
		min-width: 12rem;
		padding: 1rem;
		position: absolute;
		right: 0;
		top: calc(100% + 0.5rem);
		z-index: 50;
	}

	.fc-language-switcher {
		font-size: 0.68rem;
		padding-inline: 0.55rem;
	}
}

@media (max-width: 420px) {
	.fc-language-switcher {
		display: none;
	}

	.fc-a-one-health {
		border-radius: 1.3rem;
		padding-inline: 0.9rem;
	}

	.fc-a-map-label {
		font-size: 9px;
	}
}

/* ----------------------------------------------------------------
   About / Nosotros (patterns/about.php)
   Reading-first: a sticky section heading on the left, ONE text column on the
   right (max ~40rem), and infographics carrying the structure.
---------------------------------------------------------------- */

.fc-about-hero {
	padding-block: clamp(4rem, 7vw, 6rem) clamp(3rem, 5vw, 4.5rem);
}

.fc-about-hero h1 {
	font-size: clamp(2.5rem, 4.4vw, 3.9rem);
	max-width: 20ch;
}

/* Key figures strip */
.fc-about-figures {
	border-top: 1px solid rgba(11, 36, 54, 0.12);
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: clamp(2.5rem, 5vw, 3.75rem) 0 0;
	padding-top: 1.75rem;
}

.fc-about-figures div {
	display: flex;
	flex-direction: column-reverse;
	gap: 0.35rem;
}

.fc-about-figures dd {
	color: var(--fc-navy);
	font-size: clamp(1.6rem, 2.6vw, 2.4rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1;
	margin: 0;
}

.fc-about-figures dt {
	color: var(--fc-text-muted);
	font-size: 0.85rem;
}

/* Sticky heading + single reading column */
.fc-about-split {
	align-items: start;
	display: grid;
	gap: clamp(2rem, 6vw, 6rem);
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.fc-about-split__head {
	position: sticky;
	top: 6.5rem;
}

.fc-about-split__head h2,
.fc-about-network h2 {
	color: inherit;
	font-size: clamp(1.9rem, 3vw, 2.8rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.02;
	margin: 0;
	text-wrap: balance;
}

.fc-about-prose {
	max-width: 40rem;
}

.fc-about-prose p:not(.fc-a-eyebrow) {
	color: var(--fc-text-muted);
	font-size: clamp(1rem, 1.1vw, 1.08rem);
	line-height: 1.65;
	margin: 0 0 1rem;
}

.fc-about-method .fc-about-prose p {
	color: var(--fc-text-on-dark);
}

/* Timeline infographic */
.fc-about-timeline {
	list-style: none;
	margin: 0;
	max-width: 40rem;
	padding: 0;
}

.fc-about-timeline li {
	border-left: 2px solid var(--fc-blue-border);
	padding: 0 0 2.25rem 2rem;
	position: relative;
}

.fc-about-timeline li:last-child {
	border-left-color: transparent;
	padding-bottom: 0;
}

.fc-about-timeline li::before {
	background: var(--fc-white);
	border: 3px solid var(--fc-blue);
	border-radius: 50%;
	content: "";
	height: 0.85rem;
	left: -0.6rem;
	position: absolute;
	top: 0.1rem;
	width: 0.85rem;
}

.fc-about-timeline li:first-child::before,
.fc-about-timeline li:last-child::before {
	background: var(--fc-orange);
	border-color: var(--fc-orange);
}

.fc-about-timeline__label {
	color: var(--fc-blue);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fc-about-timeline h3 {
	color: var(--fc-navy);
	font-size: clamp(1.2rem, 1.6vw, 1.45rem);
	letter-spacing: -0.02em;
	margin: 0.35rem 0 0.5rem;
}

.fc-about-timeline p {
	color: var(--fc-text-muted);
	line-height: 1.65;
	margin: 0;
}

/* Experience: table of contents + readable rows */
.fc-about-experience {
	background: var(--fc-bg);
}

.fc-about-toc {
	list-style: none;
	margin: 1.75rem 0 0;
	padding: 0;
}

.fc-about-toc li {
	border-top: 1px solid var(--fc-blue-border);
}

.fc-about-toc a {
	color: var(--fc-text-muted);
	display: block;
	font-size: 0.9rem;
	font-weight: 700;
	padding: 0.7rem 0;
	text-decoration: none;
}

.fc-about-toc a:hover {
	color: var(--fc-blue);
}

.fc-about-areas {
	max-width: 40rem;
}

.fc-about-area {
	border-top: 1px solid var(--fc-blue-border-2);
	padding: 2rem 0;
	scroll-margin-top: 6.5rem;
}

.fc-about-area:first-child {
	border-top: 0;
	padding-top: 0;
}

.fc-about-area__head {
	align-items: center;
	display: flex;
	gap: 0.9rem;
	margin-bottom: 1rem;
}

.fc-about-area__icon {
	align-items: center;
	background: var(--fc-white);
	border: 1px solid var(--fc-blue-border);
	border-radius: 50%;
	color: var(--fc-blue);
	display: inline-flex;
	flex: none;
	height: 2.75rem;
	justify-content: center;
	width: 2.75rem;
}

.fc-about-area__icon .fc-icon {
	height: 1.35rem;
	width: 1.35rem;
}

.fc-about-area h3 {
	color: var(--fc-navy);
	font-size: clamp(1.2rem, 1.6vw, 1.45rem);
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}

.fc-about-area p {
	color: var(--fc-text-muted);
	line-height: 1.65;
	margin: 0 0 0.85rem;
}

/* Method flow infographic (dark container) */
.fc-about-figcaption {
	color: var(--fc-cyan);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.fc-about-flow,
.fc-about-steps {
	margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
}

.fc-about-flow ol {
	counter-reset: none;
	display: grid;
	gap: 2.25rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-about-flow li {
	background: var(--fc-method-card);
	border-radius: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.25rem;
	position: relative;
}

.fc-about-flow li:last-child {
	background: var(--fc-orange);
}

.fc-about-flow li:not(:last-child)::after {
	color: var(--fc-cyan);
	content: "→";
	font-size: 1.4rem;
	position: absolute;
	right: -1.65rem;
	top: 50%;
	transform: translateY(-50%);
}

.fc-about-flow strong {
	color: var(--fc-white);
	font-size: 1rem;
	line-height: 1.25;
}

.fc-about-flow span {
	color: var(--fc-text-on-dark);
	font-size: 0.82rem;
	line-height: 1.45;
}

.fc-about-flow li:last-child span {
	color: rgba(255, 255, 255, 0.9);
}

/* Four-stage stepper */
.fc-about-steps ol {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.fc-about-steps ol::before {
	background: rgba(255, 255, 255, 0.18);
	content: "";
	height: 2px;
	left: 1.25rem;
	position: absolute;
	right: 1.25rem;
	top: 1.25rem;
}

.fc-about-steps li {
	position: relative;
}

.fc-about-steps__num {
	align-items: center;
	background: var(--fc-method-bg);
	border: 2px solid var(--fc-cyan);
	border-radius: 50%;
	color: var(--fc-white);
	display: inline-flex;
	font-weight: 900;
	height: 2.5rem;
	justify-content: center;
	position: relative;
	width: 2.5rem;
}

.fc-about-steps h3 {
	color: var(--fc-white);
	font-size: 1.25rem;
	margin: 1rem 0 0.4rem;
}

.fc-about-steps p {
	color: var(--fc-text-on-dark);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0;
}

/* Network + how we work */
.fc-about-network .fc-a-network__grid {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

.fc-about-network h2 {
	margin-bottom: 1.25rem;
}

.fc-about-network h3 {
	color: var(--fc-navy);
	font-size: 1.2rem;
	letter-spacing: -0.02em;
	margin: 1.75rem 0 0.6rem;
}

@media (max-width: 1024px) {
	.fc-about-network .fc-a-network__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 960px) {
	.fc-about-split {
		grid-template-columns: 1fr;
	}

	.fc-about-split__head {
		position: static;
	}

	.fc-about-flow ol,
	.fc-about-steps ol,
	.fc-about-figures {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-about-flow li:nth-child(2)::after {
		display: none;
	}

	.fc-about-steps ol::before {
		display: none;
	}
}

@media (max-width: 560px) {
	.fc-about-flow ol,
	.fc-about-steps ol {
		gap: 1.75rem;
		grid-template-columns: 1fr;
	}

	.fc-about-flow li:not(:last-child)::after {
		bottom: -1.65rem;
		display: block;
		left: 50%;
		right: auto;
		top: auto;
		transform: translateX(-50%) rotate(90deg);
	}
}

/* ----------------------------------------------------------------
   Final touches (2.7): sticky footer, interior page header, contact page
---------------------------------------------------------------- */

/* Keep the footer at the bottom on short pages. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
}

.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group:has(> main) {
	flex: 1 0 auto;
}

/* Interior pages (templates/page.html): same header band as the redesigned pages. */
.fc-page-hero {
	padding-block: clamp(3.5rem, 6vw, 5rem) clamp(2.5rem, 4vw, 3.5rem);
}

.fc-page-hero .fc-page-title,
.fc-page-hero h1 {
	margin: 0;
	max-width: 22ch;
}

.fc-page-body {
	padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(4rem, 7vw, 6rem);
}

.fc-page-body .fc-page-content {
	max-width: 46rem;
}

.fc-page-body .fc-page-content > * {
	margin-inline: 0 !important;
}

/* Contact page */
.fc-contact-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fc-contact-card {
	background: var(--fc-white);
	border: 1px solid var(--fc-blue-border);
	border-radius: 1.4rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: clamp(1.5rem, 2.2vw, 2rem);
}

.fc-contact-card h2 {
	color: var(--fc-navy);
	font-size: 1.25rem;
	letter-spacing: -0.02em;
	margin: 0;
}

.fc-contact-card p,
.fc-contact-card li {
	color: var(--fc-text-muted);
	line-height: 1.6;
	margin: 0;
}

.fc-contact-card ul {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-contact-card li {
	padding-left: 1rem;
	position: relative;
}

.fc-contact-card li::before {
	background: var(--fc-orange);
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	top: 0.75em;
	width: 0.45rem;
}

.fc-contact-card .fc-a-button {
	align-self: flex-start;
	margin-top: auto;
}

.fc-contact-card__email {
	color: var(--fc-navy);
	font-size: 1.1rem;
	font-weight: 800;
	word-break: break-word;
}

@media (max-width: 960px) {
	.fc-contact-grid {
		grid-template-columns: 1fr;
	}
}

main.fc-page {
	padding: 0;
}

.fc-page-hero .fc-page-title {
	font-size: clamp(2.4rem, 4.2vw, 3.6rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

/* Touch targets: text links and the collapsed menu get a 44px tap height. */
.fc-a-pathway > a,
.fc-a-text-link {
	align-items: center;
	display: inline-flex;
	min-height: 44px;
}

@media (max-width: 960px) {
	.fc-language-nav__menu {
		gap: 0;
	}

	.fc-language-nav__menu a {
		align-items: center;
		display: flex;
		min-height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}

	.fc-a-button:hover,
	.fc-entry-card:hover,
	.fc-work-card:hover {
		transform: none;
	}
}

/* Footer credit: its own row under a hairline, not glued to the columns. */
.fc-footer .fc-footer__credit {
	border-top: 1px solid rgba(183, 200, 210, 0.16);
	margin: 2.75rem auto 0;
	max-width: none;
	padding: 1.5rem 1.25rem 0;
	text-align: center;
}

/* Inline links inside About paragraphs (e.g. Blue Bridge). */
.fc-about-area a {
	color: var(--fc-blue-deep);
	font-weight: 700;
}

/* Compact method section (homepage): heading on one row, cards sized to content. */
#method .fc-a-section__intro {
	grid-template-columns: 1fr;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

#method .fc-a-section__intro h2 {
	max-width: none;
}

#method .fc-a-method__grid li,
#method .fc-a-method__grid li:first-child {
	min-height: 0;
	padding: 1.5rem 1.5rem 1.75rem;
}

#method .fc-a-method__grid > li > div {
	margin-top: 1.5rem;
}

#method .fc-a-method__grid h3 {
	font-size: 1.45rem;
	margin-bottom: 0.5rem;
}

#method .fc-a-method__grid p {
	font-size: 0.92rem;
}

/* Compact operating-model section (homepage + About): cropped diagram, no forced height. */
.fc-a-network__map {
	min-height: 0;
	padding-block: 0;
}

.fc-a-network__diagram--desktop {
	max-width: 31rem;
}

.fc-a-home > .fc-a-network:not(.fc-about-network) {
	padding-block: clamp(3.5rem, 5.5vw, 4.75rem);
}

.fc-a-home > .fc-a-network:not(.fc-about-network) h2 {
	font-size: clamp(2rem, 3.2vw, 3rem);
	margin-bottom: 0;
}

.fc-a-network__text {
	margin-top: clamp(1.25rem, 2.5vw, 2rem);
	padding-top: clamp(1.5rem, 2.5vw, 2rem);
}

.fc-a-network .fc-a-scope-note {
	margin-top: 1rem;
	padding-top: 1rem;
}

.fc-a-network__diagram--mobile {
	margin-inline: auto;
	max-width: 18.5rem;
}
