/* ==========================================================================
   Foco Inova — estilos do tema filho
   Conceito: sinalização de mapa de linhas. Cada unidade é uma linha colorida;
   soluções são estações; o resultado é o ponto de conexão.
   ========================================================================== */

:root {
	--ink: #0F1B33;
	--ink-2: #243049;
	--paper: #F4F6F8;
	--white: #FFFFFF;
	--line: #D5DBE3;
	--muted: #556074;
	--cobalt: #2440F0;
	--cobalt-dark: #1A2FB8;
	--dg: #2440F0;
	--gr: #E0A100;
	--pl: #12976B;
	--st: #D7263D;
	--unit: var(--ink);

	--font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--wrap: 1240px;
	--gutter: clamp(16px, 4vw, 40px);
	--radius: 14px;
	--pill: 999px;

	--fs-small: 0.875rem;
	--fs-body: 1.0625rem;
	--fs-lead: clamp(1.125rem, 1rem + 0.45vw, 1.3125rem);
	--fs-h3: clamp(1.1875rem, 1.05rem + 0.4vw, 1.375rem);
	--fs-h2: clamp(1.875rem, 1.35rem + 1.9vw, 2.875rem);
	--fs-h1: clamp(2.25rem, 1.4rem + 3.4vw, 3.75rem);
	--fs-hero: clamp(2.75rem, 1.5rem + 5vw, 5.5rem);

	--space-section: clamp(64px, 8vw, 120px);
}

/* ---------- Base ---------- */
body {
	font-family: var(--font);
	font-size: var(--fs-body);
	line-height: 1.6;
	color: var(--ink);
	background: var(--paper);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font);
	color: var(--ink);
	font-weight: 750;
	font-stretch: 112%;
	letter-spacing: -0.015em;
	line-height: 1.1;
}

a { color: var(--cobalt); }
a:hover, a:focus { color: var(--cobalt-dark); }

:focus-visible {
	outline: 3px solid var(--cobalt);
	outline-offset: 3px;
	border-radius: 4px;
}

::selection { background: var(--gr); color: var(--ink); }

.foco-wrap {
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* Layout de largura total sobre o contêiner do GeneratePress */
.foco-full .site.grid-container,
.foco-full #page {
	max-width: none;
	padding: 0;
	background: transparent;
}
.foco-full .site-content {
	display: block;
	padding: 0;
}
.foco-full .site-main,
.foco-main { margin: 0; }

/* ---------- Header (GeneratePress) ---------- */
.site-header {
	background: var(--white);
	border-bottom: 1px solid var(--line);
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header .inside-header {
	max-width: var(--wrap);
	padding: 14px var(--gutter);
	align-items: center;
}
.main-title { font-size: 1.375rem; font-weight: 800; font-stretch: 115%; letter-spacing: -0.02em; margin: 0; }
.main-title a, .main-title a:hover { color: var(--ink); }
.site-description { display: none; }
.site-logo img, .custom-logo { max-height: 44px; width: auto; }

.main-navigation,
.main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--ink);
	font-weight: 600;
	font-size: 0.975rem;
}
.main-navigation .main-nav ul li a { padding-inline: 16px; line-height: 56px; }
.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--cobalt);
	background: transparent;
}
.main-navigation .main-nav ul ul li a { line-height: 1.4; padding: 12px 16px; background: var(--white); }

.foco-nav-cta { display: flex; align-items: center; padding-left: 8px; }
.foco-nav-cta a,
.main-navigation .menu-bar-items .foco-nav-cta a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border-radius: var(--pill);
	background: var(--ink);
	color: var(--white);
	font-weight: 650;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
}
.foco-nav-cta a:hover,
.foco-nav-cta a:focus { background: var(--cobalt); color: var(--white); }
@media (max-width: 768px) {
	.foco-nav-cta a { min-height: 40px; padding: 0 14px; font-size: 0.875rem; }
}

/* ---------- Botões e links ---------- */
.foco-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 26px;
	border-radius: var(--pill);
	border: 2px solid transparent;
	font-family: var(--font);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.foco-btn--primary { background: var(--cobalt); color: var(--white); }
.foco-btn--primary:hover, .foco-btn--primary:focus { background: var(--cobalt-dark); color: var(--white); }
.foco-btn--ghost { border-color: var(--ink); color: var(--ink); background: transparent; }
.foco-btn--ghost:hover, .foco-btn--ghost:focus { background: var(--ink); color: var(--white); }
.foco-btn--light { background: var(--white); color: var(--ink); }
.foco-btn--light:hover, .foco-btn--light:focus { background: var(--paper); color: var(--ink); }
.foco-btn--ghost-light { border-color: rgba(255,255,255,.55); color: var(--white); }
.foco-btn--ghost-light:hover, .foco-btn--ghost-light:focus { border-color: var(--white); color: var(--white); background: rgba(255,255,255,.08); }

.foco-link {
	font-weight: 650;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

/* ---------- Marcadores de linha ---------- */
.foco-marker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	vertical-align: middle;
}
.foco-marker__dot {
	--s: 34px;
	display: inline-grid;
	place-items: center;
	width: var(--s);
	height: var(--s);
	border-radius: 50%;
	background: var(--unit);
	color: var(--on-unit, #fff);
	font-size: calc(var(--s) * 0.36);
	font-weight: 800;
	font-stretch: 100%;
	letter-spacing: 0.02em;
	line-height: 1;
	flex: none;
}
.foco-marker--xs .foco-marker__dot { --s: 22px; }
.foco-marker--sm .foco-marker__dot { --s: 28px; }
.foco-marker--lg .foco-marker__dot { --s: 52px; }
.foco-marker__name { font-weight: 600; color: var(--ink); }
.foco-marker--xs .foco-marker__name,
.foco-marker--sm .foco-marker__name { font-size: var(--fs-small); }

/* ---------- Status ---------- */
.foco-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: var(--pill);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
	background: var(--paper);
	color: var(--ink);
	border: 1px solid var(--line);
}
.foco-status::before {
	content: "";
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--muted);
}
.foco-status--operacao::before, .foco-status--expansao::before { background: var(--pl); }
.foco-status--piloto::before, .foco-status--beta::before { background: var(--gr); }
.foco-status--desenvolvimento::before, .foco-status--breve::before { background: var(--cobalt); }

/* ---------- Seções ---------- */
.foco-section { padding-block: var(--space-section); }
.foco-section--tight { padding-block: clamp(40px, 5vw, 72px); }
.foco-section--alt { background: var(--white); }
.foco-section__head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 56px); }
.foco-section__head--row {
	max-width: none;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.foco-section__title { font-size: var(--fs-h2); margin: 0 0 16px; }
.foco-section__head--row .foco-section__title { margin: 0; }
.foco-section__lead { font-size: var(--fs-lead); color: var(--muted); margin: 0; max-width: 62ch; }
.foco-intro { font-size: var(--fs-lead); max-width: 64ch; margin: 0; color: var(--ink-2); }
.foco-empty { color: var(--muted); }

/* ---------- Hero ---------- */
.foco-hero {
	background: var(--white);
	padding-block: clamp(48px, 7vw, 104px) clamp(56px, 7vw, 96px);
	border-bottom: 1px solid var(--line);
	overflow: hidden;
}
.foco-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}
.foco-hero__title {
	font-size: var(--fs-hero);
	font-weight: 800;
	font-stretch: 118%;
	line-height: 0.98;
	letter-spacing: -0.03em;
	margin: 0 0 24px;
	max-width: 11ch;
	text-wrap: balance;
}
.foco-hero__lead {
	font-size: var(--fs-lead);
	color: var(--muted);
	max-width: 52ch;
	margin: 0 0 32px;
}
.foco-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Mapa de linhas */
.foco-linemap { margin: 0; color: var(--ink); }
.foco-linemap svg { display: block; width: 100%; height: auto; overflow: visible; }
.foco-linemap text { font-family: var(--font); }
.foco-linemap text:not(.foco-linemap__sigla) { fill: var(--ink); }
.foco-linemap__sigla { font-size: 13px; font-weight: 800; }
.foco-linemap__name { font-size: 14px; font-weight: 650; }
.foco-linemap__hub { font-size: 16px; font-weight: 800; font-stretch: 115%; }
.foco-linemap__dest text { font-size: 15px; font-weight: 700; }

@media (prefers-reduced-motion: no-preference) {
	.foco-linemap__line path,
	.foco-linemap__branches path {
		stroke-dasharray: 1;
		stroke-dashoffset: 1;
		animation: foco-draw 1.1s cubic-bezier(.65,0,.35,1) forwards;
	}
	.foco-linemap__line path { animation-delay: calc(var(--i) * 0.12s); }
	.foco-linemap__branches path { animation-delay: 0.85s; animation-duration: .7s; }
	.foco-linemap__station,
	.foco-linemap__ends,
	.foco-linemap__dest { opacity: 0; animation: foco-fade .4s ease forwards; animation-delay: 1.35s; }
	.foco-linemap__station { animation-delay: .8s; }
}
@keyframes foco-draw { to { stroke-dashoffset: 0; } }
@keyframes foco-fade { to { opacity: 1; } }

/* ---------- Prova ---------- */
.foco-proof { padding-block: 40px; background: var(--paper); border-bottom: 1px solid var(--line); }
.foco-proof__nums {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 24px;
	margin: 0 0 32px;
}
.foco-proof__nums dt { font-size: var(--fs-h2); font-weight: 800; font-stretch: 115%; line-height: 1; }
.foco-proof__nums dd { margin: 6px 0 0; color: var(--muted); }
.foco-proof__label { font-size: var(--fs-small); color: var(--muted); margin: 0 0 14px; }
.foco-proof__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 32px;
	align-items: center;
}
.foco-proof__list a {
	color: var(--ink);
	font-weight: 700;
	font-stretch: 112%;
	font-size: 1.125rem;
	text-decoration: none;
	opacity: .78;
}
.foco-proof__list a:hover, .foco-proof__list a:focus { opacity: 1; color: var(--ink); }
.foco-proof__list img { max-height: 40px; width: auto; filter: grayscale(1); }
.foco-proof__list a:hover img { filter: none; }

/* ---------- Unidades (legenda das linhas) ---------- */
.foco-units__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.foco-unit {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) minmax(0, 1.2fr) minmax(0, 1.3fr);
	gap: 24px 40px;
	padding: 36px 0;
	border-bottom: 1px solid var(--line);
	align-items: start;
}
.foco-unit__id { display: flex; align-items: center; gap: 16px; }
.foco-unit__name { font-size: var(--fs-h3); margin: 0; }
.foco-unit__name a { color: var(--ink); text-decoration: none; }
.foco-unit__name a:hover, .foco-unit__name a:focus { color: var(--ink); text-decoration: underline; text-decoration-color: var(--unit); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.foco-unit__promise { margin: 6px 0 0; font-size: 1.125rem; color: var(--ink-2); }

/* Soluções como estações de uma linha */
.foco-unit__stops {
	list-style: none;
	margin: 0;
	padding: 0 0 0 26px;
	position: relative;
}
.foco-unit__stops::before {
	content: "";
	position: absolute;
	left: 7px;
	top: 12px;
	bottom: 12px;
	width: 5px;
	border-radius: 3px;
	background: var(--unit);
}
.foco-unit__stops li { position: relative; padding: 4px 0; }
.foco-unit__stops li::before {
	content: "";
	position: absolute;
	left: -26px;
	top: 50%;
	width: 19px;
	height: 19px;
	margin-top: -9.5px;
	border-radius: 50%;
	background: var(--white);
	border: 4px solid var(--unit);
	box-sizing: border-box;
}
.foco-unit__stops a { color: var(--ink); text-decoration: none; font-weight: 550; }
.foco-unit__stops a:hover, .foco-unit__stops a:focus { color: var(--cobalt); text-decoration: underline; }

/* ---------- Plataforma em destaque ---------- */
.foco-platform {
	background: var(--ink);
	color: rgba(255,255,255,.82);
	position: relative;
	overflow: hidden;
}
.foco-platform::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 8px;
	background: var(--unit);
}
.foco-platform__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
}
.foco-platform__kicker { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-weight: 600; color: rgba(255,255,255,.75); margin: 0 0 12px; }
.foco-platform .foco-status { background: rgba(255,255,255,.08); color: var(--white); border-color: rgba(255,255,255,.2); }
.foco-platform__title { color: var(--white); font-size: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); font-weight: 800; font-stretch: 120%; margin: 0 0 16px; }
.foco-platform__lead { font-size: var(--fs-lead); margin: 0 0 32px; max-width: 48ch; }
.foco-platform__features { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-left: 5px solid var(--unit); }
.foco-platform__features li { padding: 16px 0 16px 24px; position: relative; }
.foco-platform__features li + li { border-top: 1px solid rgba(255,255,255,.12); }
.foco-platform__features li::before {
	content: "";
	position: absolute;
	left: -12px; top: 22px;
	width: 19px; height: 19px;
	border-radius: 50%;
	background: var(--ink);
	border: 4px solid var(--unit);
	box-sizing: border-box;
}
.foco-platform__features strong { display: block; color: var(--white); font-weight: 700; }
.foco-platform__features span { display: block; font-size: .975rem; }
.foco-platform--compact .foco-wrap { max-width: 900px; }

/* ---------- Setores ---------- */
.foco-sectors { background: var(--white); }
.foco-sectors__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 20px;
}
.foco-sector {
	display: grid;
	gap: 8px;
	padding: 28px 28px 30px;
	border: 1px solid var(--line);
	border-left: 8px solid var(--st);
	border-radius: 4px var(--radius) var(--radius) 4px;
	background: var(--white);
	color: var(--ink);
	text-decoration: none;
	transition: border-color .15s ease;
}
.foco-sector:hover, .foco-sector:focus { border-color: var(--ink); border-left-color: var(--st); color: var(--ink); }
.foco-sector__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.foco-sector__name { font-size: var(--fs-h3); font-weight: 750; font-stretch: 112%; }
.foco-sector__for { color: var(--muted); font-weight: 600; font-size: var(--fs-small); }
.foco-sector__text { color: var(--ink-2); }

/* ---------- Método FOCO ---------- */
.foco-method__line {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px;
	position: relative;
}
.foco-method__line::before {
	content: "";
	position: absolute;
	top: 30px;
	left: 30px;
	right: 30px;
	height: 6px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--dg) 0 25%, var(--gr) 25% 50%, var(--pl) 50% 75%, var(--st) 75% 100%);
}
.foco-method__stop { position: relative; }
.foco-method__letter {
	position: relative;
	display: grid;
	place-items: center;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	background: var(--white);
	border: 6px solid var(--ink);
	font-size: 1.75rem;
	font-weight: 800;
	font-stretch: 120%;
	margin-bottom: 20px;
}
.foco-method__name { font-size: var(--fs-h3); margin: 0 0 8px; }
.foco-method__stop p { margin: 0; color: var(--muted); }

/* ---------- Cases ---------- */
.foco-cases {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 24px;
}
.foco-cases-home { background: var(--white); }
.foco-case { display: flex; }
.foco-case[hidden] { display: none; }
.foco-case__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
	color: var(--ink);
	text-decoration: none;
	transition: border-color .15s ease;
}
.foco-section--alt .foco-case__link,
.foco-cases-home .foco-case__link { background: var(--paper); border-color: transparent; }
.foco-case__link:hover, .foco-case__link:focus { border-color: var(--ink); color: var(--ink); }
.foco-case__media {
	aspect-ratio: 16 / 10;
	display: grid;
	place-items: center;
	background: var(--ink);
	border-bottom: 6px solid var(--unit);
	overflow: hidden;
}
.foco-case__media img { width: 100%; height: 100%; object-fit: cover; }
.foco-case__logo { display: grid; place-items: center; width: 100%; height: 100%; background: var(--white); padding: 32px; }
.foco-case__logo img { max-height: 90px; width: auto; height: auto; object-fit: contain; }
.foco-case__wordmark {
	color: var(--white);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 800;
	font-stretch: 120%;
	letter-spacing: -0.02em;
	text-align: center;
	padding: 0 24px;
	line-height: 1.05;
}
.foco-case__body { padding: 20px 22px 24px; display: grid; gap: 8px; align-content: start; }
.foco-case__markers { display: flex; gap: 6px; }
.foco-case__title { font-size: var(--fs-h3); margin: 4px 0 0; }
.foco-case__text { margin: 0; color: var(--muted); font-size: .975rem; }
.foco-case__tag { margin: 4px 0 0; font-size: var(--fs-small); font-weight: 650; color: var(--ink); }

/* Filtro */
.foco-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.foco-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	border-radius: var(--pill);
	border: 1px solid var(--line);
	background: var(--white);
	color: var(--ink);
	font-family: var(--font);
	font-size: .9375rem;
	font-weight: 600;
	cursor: pointer;
}
.foco-chip:hover { border-color: var(--ink); background: var(--white); color: var(--ink); }
.foco-chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.foco-chip__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--unit); }
.foco-chip--seg { border-style: dashed; }

/* ---------- Cabeçalho de páginas internas ---------- */
.foco-pagehead {
	background: var(--white);
	padding-block: clamp(48px, 6vw, 88px) clamp(40px, 5vw, 64px);
	border-bottom: 1px solid var(--line);
	position: relative;
}
.foco-pagehead--line { border-bottom: 0; }
.foco-pagehead--line::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 8px;
	background: var(--unit);
}
.foco-pagehead__markers { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
.foco-pagehead__title { font-size: var(--fs-h1); font-weight: 800; font-stretch: 116%; letter-spacing: -0.025em; margin: 0; max-width: 20ch; text-wrap: balance; }
.foco-pagehead__lead { font-size: var(--fs-lead); color: var(--muted); max-width: 60ch; margin: 18px 0 0; }
.foco-pagehead__meta { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; margin-top: 24px; font-weight: 600; font-size: .9375rem; }
.foco-pagehead__meta a { font-weight: 650; }

/* ---------- Unidade: rota de soluções ---------- */
.foco-route { list-style: none; margin: 0; padding: 0 0 0 40px; position: relative; max-width: 920px; }
.foco-route::before {
	content: "";
	position: absolute;
	left: 11px; top: 14px; bottom: 14px;
	width: 7px;
	border-radius: 4px;
	background: var(--unit);
}
.foco-route__stop { position: relative; padding: 0 0 40px; }
.foco-route__stop:last-child { padding-bottom: 0; }
.foco-route__stop::before {
	content: "";
	position: absolute;
	left: -40px; top: 4px;
	width: 29px; height: 29px;
	border-radius: 50%;
	background: var(--paper);
	border: 6px solid var(--unit);
	box-sizing: border-box;
}
.foco-route__head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.foco-route__title { font-size: clamp(1.375rem, 1.15rem + .8vw, 1.75rem); margin: 0; }
.foco-route__title a { color: var(--ink); text-decoration: none; }
.foco-route__title a:hover, .foco-route__title a:focus { text-decoration: underline; text-underline-offset: 5px; }
.foco-route__text { margin: 8px 0 0; color: var(--ink-2); max-width: 62ch; }
.foco-route__list {
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.foco-route__list li {
	padding: 6px 12px;
	border-radius: var(--pill);
	background: var(--white);
	border: 1px solid var(--line);
	font-size: .875rem;
	font-weight: 550;
}

/* ---------- Soluções agrupadas ---------- */
.foco-group + .foco-group { padding-top: 0; }
.foco-group__head { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; }
.foco-group__title { font-size: var(--fs-h3); margin: 0; }
.foco-group__title a { color: var(--ink); text-decoration: none; }
.foco-group__lead { margin: 4px 0 0; color: var(--muted); }
.foco-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 16px;
	padding-bottom: clamp(32px, 4vw, 48px);
	border-bottom: 1px solid var(--line);
}
.foco-tile {
	display: grid;
	gap: 10px;
	align-content: start;
	justify-items: start;
	padding: 22px;
	background: var(--white);
	border: 1px solid var(--line);
	border-top: 5px solid var(--unit);
	border-radius: 4px 4px var(--radius) var(--radius);
	color: var(--ink);
	text-decoration: none;
}
.foco-tile:hover, .foco-tile:focus { border-color: var(--ink); border-top-color: var(--unit); color: var(--ink); }
.foco-tile__title { font-weight: 700; font-size: 1.125rem; line-height: 1.25; }
.foco-tile__text { color: var(--muted); font-size: .9375rem; }

/* ---------- Plataformas (arquivo) ---------- */
.foco-platforms { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 24px; }
.foco-platcard {
	display: grid;
	gap: 14px;
	padding: 32px;
	border-radius: var(--radius);
	background: var(--ink);
	border-top: 8px solid var(--unit);
	color: rgba(255,255,255,.8);
	text-decoration: none;
}
.foco-platcard:hover, .foco-platcard:focus { color: var(--white); background: var(--ink-2); }
.foco-platcard__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.foco-platcard__name { color: var(--white); font-size: 2rem; font-weight: 800; font-stretch: 120%; line-height: 1; }
.foco-platcard__logo img { max-height: 44px; width: auto; }
.foco-platcard .foco-status { background: rgba(255,255,255,.08); color: var(--white); border-color: rgba(255,255,255,.2); }
.foco-platcard__for { font-size: var(--fs-small); color: rgba(255,255,255,.65); }

/* ---------- Página de detalhe ---------- */
.foco-split {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}
.foco-split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
.foco-split__side { position: sticky; top: 110px; display: grid; gap: 20px; }
.foco-split__side img { border-radius: var(--radius); }
.foco-block { margin-bottom: 40px; max-width: 68ch; }
.foco-block__title { font-size: var(--fs-h3); margin: 0 0 12px; }
.foco-block p { margin: 0 0 12px; }
.foco-prose { max-width: 70ch; }
.foco-prose h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin: 1.6em 0 .5em; }
.foco-prose h3 { font-size: var(--fs-h3); margin: 1.4em 0 .4em; }
.foco-prose p, .foco-prose ul, .foco-prose ol { margin: 0 0 1.1em; }
.foco-prose .foco-lead, .foco-prose > p:first-child.foco-lead { font-size: var(--fs-lead); color: var(--ink); font-weight: 500; }

.foco-side-box { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.foco-side-box__title { font-size: 1.0625rem; margin: 0 0 14px; }
.foco-side-links { list-style: none; margin: 0; padding: 0; }
.foco-side-links li + li { border-top: 1px solid var(--line); }
.foco-side-links a { display: block; padding: 10px 0; color: var(--ink); text-decoration: none; font-weight: 550; }
.foco-side-links a:hover, .foco-side-links a:focus { color: var(--cobalt); }

.foco-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.foco-checks--cols { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px 24px; }
.foco-checks li { position: relative; padding-left: 28px; }
.foco-checks li::before {
	content: "";
	position: absolute;
	left: 0; top: .4em;
	width: 14px; height: 14px;
	border-radius: 50%;
	border: 4px solid var(--unit, var(--ink));
	box-sizing: border-box;
}
.foco-split__side .foco-checks li::before,
.foco-block .foco-checks li::before { border-color: var(--cobalt); }

.foco-metrics { margin: 0; display: grid; gap: 12px; }
.foco-metrics > div { background: var(--ink); color: var(--white); border-radius: var(--radius); padding: 20px 22px; }
.foco-metrics dt { font-size: 2.25rem; font-weight: 800; font-stretch: 115%; line-height: 1; }
.foco-metrics dd { margin: 6px 0 0; color: rgba(255,255,255,.75); }

.foco-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-top: 24px; }
.foco-gallery figure { margin: 0; }
.foco-gallery img { border-radius: var(--radius); width: 100%; height: auto; }
.foco-case-hero { margin-top: clamp(24px, 4vw, 48px); }
.foco-case-hero img { display: block; width: 100%; max-width: 960px; height: auto; border-radius: var(--radius); }

/* Pranchas do projeto: imagem inteira, sem corte */
.foco-showcase__list { display: grid; gap: clamp(24px, 3vw, 40px); justify-items: center; }
.foco-showcase__item { margin: 0; width: 100%; max-width: 1100px; }
.foco-showcase__item img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.foco-showcase__item figcaption { margin-top: 10px; color: var(--muted); font-size: var(--fs-small); }

/* Setor */
.foco-pains { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.foco-pains li {
	padding: 18px 0 18px 36px;
	border-bottom: 1px solid var(--line);
	position: relative;
	font-size: 1.125rem;
	font-weight: 550;
}
.foco-pains li:first-child { border-top: 1px solid var(--line); }
.foco-pains li::before {
	content: "";
	position: absolute;
	left: 4px; top: 50%;
	width: 16px; height: 4px;
	margin-top: -2px;
	border-radius: 2px;
	background: var(--st);
}
.foco-modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.foco-module {
	padding: 24px;
	border-radius: var(--radius);
	background: var(--paper);
	border-left: 6px solid var(--unit);
}
.foco-module__title { font-size: 1.125rem; margin: 0 0 6px; font-stretch: 105%; }
.foco-module p { margin: 0; color: var(--muted); font-size: .975rem; }

/* ---------- CTA + formulário ---------- */
.foco-cta {
	background: var(--ink);
	color: rgba(255,255,255,.82);
	padding-block: var(--space-section);
	scroll-margin-top: 80px;
}
.foco-cta__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
.foco-cta__title { color: var(--white); font-size: var(--fs-h2); margin: 0 0 16px; max-width: 18ch; }
.foco-cta__text { font-size: var(--fs-lead); margin: 0 0 28px; max-width: 46ch; }
.foco-cta__steps { margin: 0 0 28px; padding: 0; list-style: none; counter-reset: step; display: grid; gap: 14px; }
.foco-cta__steps li { counter-increment: step; display: flex; gap: 14px; align-items: center; color: var(--white); font-weight: 550; }
.foco-cta__steps li::before {
	content: counter(step);
	display: grid;
	place-items: center;
	flex: none;
	width: 32px; height: 32px;
	border-radius: 50%;
	border: 3px solid var(--gr);
	font-weight: 800;
	font-size: .875rem;
}
.foco-cta__alt { margin: 0; }
.foco-cta__alt a { color: var(--white); font-weight: 650; }

.foco-cta__form {
	background: var(--white);
	color: var(--ink);
	border-radius: var(--radius);
	padding: clamp(24px, 3vw, 40px);
}
.foco-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.foco-form__field { margin: 0 0 16px; display: grid; gap: 6px; }
.foco-form__field--full { grid-column: 1 / -1; }
.foco-form label { font-weight: 600; font-size: .9375rem; }
.foco-form input[type="text"],
.foco-form input[type="email"],
.foco-form input[type="tel"],
.foco-form select,
.foco-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	background: var(--white);
	color: var(--ink);
	font-family: var(--font);
	font-size: 1rem;
	box-sizing: border-box;
}
.foco-form textarea { min-height: 110px; resize: vertical; }
.foco-form input:focus, .foco-form select:focus, .foco-form textarea:focus {
	border-color: var(--cobalt);
	outline: 3px solid rgba(36,64,240,.2);
	outline-offset: 0;
}
.foco-form__consent { margin: 4px 0 20px; font-size: .875rem; color: var(--muted); }
.foco-form__consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .875rem; }
.foco-form__consent input { width: 20px; height: 20px; margin-top: 1px; flex: none; accent-color: var(--cobalt); }
.foco-form .foco-btn { width: 100%; }
.foco-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.foco-form__error { background: #FDECEE; color: #8A1222; border-radius: 10px; padding: 12px 14px; margin: 0 0 20px; font-weight: 550; }
.foco-form__done { padding: 8px 0; }
.foco-form__done-title { font-size: var(--fs-h3); font-weight: 750; margin: 0 0 8px; }
.foco-form__done p { margin: 0 0 8px; }

/* ---------- Rodapé ---------- */
.site-footer { background: var(--white); }
.foco-footer { background: var(--white); color: var(--ink-2); padding-top: clamp(48px, 6vw, 80px); font-size: .975rem; }
.foco-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 40px;
	padding-bottom: 48px;
}
.foco-footer__logo { display: inline-block; color: var(--ink); font-size: 1.375rem; font-weight: 800; font-stretch: 115%; text-decoration: none; margin-bottom: 14px; }
.foco-footer__logo img { max-height: 44px; width: auto; }
.foco-footer__brand p { margin: 0 0 10px; max-width: 36ch; color: var(--muted); }
.foco-footer__title { font-size: 1rem; margin: 0 0 14px; font-stretch: 105%; }
.foco-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.foco-footer a { color: var(--ink); text-decoration: none; }
.foco-footer a:hover, .foco-footer a:focus { color: var(--cobalt); text-decoration: underline; }
.foco-footer__bottom {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 24px;
	padding-block: 20px 28px;
	border-top: 1px solid var(--line);
	font-size: var(--fs-small);
	color: var(--muted);
}
.foco-footer__bottom p { margin: 0; }

/* ---------- Blog (GeneratePress padrão) ---------- */
body:not(.foco-full) .site-content { padding-block: 48px; }
body:not(.foco-full) .inside-article { background: var(--white); border-radius: var(--radius); }
.entry-title { font-stretch: 112%; }

/* ---------- Responsivo ---------- */
@media (max-width: 1024px) {
	.foco-unit { grid-template-columns: 1fr 1fr; }
	.foco-unit__stops { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 24px; padding-left: 0; }
	.foco-unit__stops::before { display: none; }
	.foco-unit__stops li { padding-left: 26px; }
	.foco-unit__stops li::before { left: 0; }
	.foco-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
	.foco-hero__grid,
	.foco-platform__grid,
	.foco-cta__grid,
	.foco-split,
	.foco-split--even { grid-template-columns: 1fr; }
	.foco-hero__map { max-width: 560px; }
	.foco-split__side { position: static; }
	.foco-method__line { grid-template-columns: 1fr; gap: 28px; padding-left: 0; }
	.foco-method__line::before {
		top: 30px; bottom: 30px; left: 30px; right: auto;
		width: 6px; height: auto;
		background: linear-gradient(180deg, var(--dg) 0 25%, var(--gr) 25% 50%, var(--pl) 50% 75%, var(--st) 75% 100%);
	}
	.foco-method__stop { display: grid; grid-template-columns: 66px 1fr; column-gap: 20px; }
	.foco-method__letter { grid-row: span 2; margin: 0; }
	.foco-method__name { align-self: end; }
}

@media (max-width: 640px) {
	.foco-unit { grid-template-columns: 1fr; gap: 12px; padding: 28px 0; }
	.foco-unit__promise { margin: 0; }
	.foco-form__grid { grid-template-columns: 1fr; }
	.foco-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.foco-hero__actions .foco-btn { width: 100%; }
	.foco-route { padding-left: 34px; }
	.foco-route__stop::before { left: -34px; }
	.foco-route::before { left: 9px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
