/**
 * Telefer — componentes globais do redesign (todas as páginas).
 *
 * Carregado no site todo, depois do main.css e antes do home.css.
 * Hoje: variáveis de superfície, base (seções, tipografia, superfícies, campos), botões, header,
 * footer e hero de página (docs/PADRONIZACAO.md, P1).
 * Valores só por token (assets/css/tokens.css). px apenas em borda/contorno.
 */

/* --------------------------------------------------------------------------
   1. Variáveis de superfície escura
   -------------------------------------------------------------------------- */
/* Variáveis de superfície escura. .tlf-scope serve para peças fora de seção (header, barra fixa). */
.tlf-section,
.tlf-scope {
	--tlf-bg: var(--telefer-primary-dark);
	--tlf-fg: var(--telefer-neutral-50);
	--tlf-fg-2: var(--telefer-text-light);
	--tlf-fg-3: var(--telefer-neutral-600);
	--tlf-line: var(--telefer-line);
	--tlf-surface: var(--telefer-cta-bg);
	--tlf-link: var(--telefer-accent);
	--tlf-focus: var(--telefer-accent);
}

/* ==========================================================================
   BASE (seções, tipografia, motivos, superfícies, campos, ícones)
   Cópia fiel das seções 1–3 e 5–7 de home.css, para as outras páginas.
   Na home, home.css redefine as mesmas regras com os mesmos valores.
   TODO (PADRONIZACAO P1): apagar a cópia de home.css quando a sessão da home terminar.
   ========================================================================== */

/* --------------------------------------------------------------------------
   B1. Base de seção e container
   -------------------------------------------------------------------------- */
.tlf-section {
	position: relative;
	padding-block: var(--telefer-section-y);
	background-color: var(--tlf-bg);
	color: var(--tlf-fg);
	font-family: var(--telefer-font-body);
	font-size: var(--telefer-t-sm);
	line-height: var(--telefer-lh-body);
}

.tlf-section--deep {
	--tlf-bg: var(--telefer-navy-900);
}

.tlf-section--light {
	--tlf-bg: var(--telefer-neutral-50);
	--tlf-fg: var(--telefer-primary-dark);
	--tlf-fg-2: var(--telefer-neutral-900);
	--tlf-fg-3: var(--telefer-neutral-900);
	--tlf-line: var(--telefer-line-dark);
	--tlf-surface: var(--telefer-ice);
	--tlf-link: var(--telefer-primary);
	--tlf-focus: var(--telefer-primary);
}

.tlf-section--ice {
	--tlf-bg: var(--telefer-ice);
	--tlf-fg: var(--telefer-primary-dark);
	--tlf-fg-2: var(--telefer-neutral-900);
	--tlf-fg-3: var(--telefer-neutral-900);
	--tlf-line: var(--telefer-line-dark);
	--tlf-surface: var(--telefer-neutral-50);
	--tlf-link: var(--telefer-primary);
	--tlf-focus: var(--telefer-primary);
}

.tlf-container {
	width: 100%;
	max-width: var(--telefer-container);
	margin-inline: auto;
	padding-inline: var(--telefer-gutter);
}

.tlf-grid {
	display: grid;
	grid-template-columns: repeat(var(--telefer-grid-cols), minmax(0, 1fr));
	gap: var(--telefer-grid-gap);
}

.tlf-section :focus-visible {
	outline: 2px solid var(--tlf-focus);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   B2. Tipografia — hierarquia por escala e peso, não por caixa e sombra
   -------------------------------------------------------------------------- */
.tlf-display,
.tlf-h1,
.tlf-h2,
.tlf-h3 {
	margin: 0;
	font-family: var(--telefer-font-heading);
	font-optical-sizing: auto;
	color: var(--tlf-fg);
	text-wrap: balance;
}

.tlf-display {
	font-size: var(--telefer-t-2xl);
	font-weight: 800;
	line-height: var(--telefer-lh-tight);
	letter-spacing: var(--telefer-track-tight);
}

.tlf-h1 {
	font-size: var(--telefer-t-xl);
	font-weight: 750;
	line-height: var(--telefer-lh-tight);
	letter-spacing: var(--telefer-track-tight);
}

.tlf-h2 {
	font-size: var(--telefer-t-xl);
	font-weight: 700;
	line-height: var(--telefer-lh-snug);
	letter-spacing: var(--telefer-track-tight);
}

.tlf-h3 {
	font-size: var(--telefer-t-lg);
	font-weight: 650;
	line-height: var(--telefer-lh-snug);
}

/* Destaque de palavra: 1 por título, sublinhado de "sinal" em amarelo */
.tlf-mark {
	color: inherit;
	background: none;
	text-decoration-line: underline;
	text-decoration-color: var(--telefer-accent);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.2em;
	text-decoration-skip-ink: auto;
}

.tlf-section--light .tlf-mark,
.tlf-section--ice .tlf-mark {
	text-decoration-color: var(--telefer-primary);
}

.tlf-lead {
	margin: 0;
	max-width: var(--telefer-measure);
	font-size: var(--telefer-t-md);
	line-height: var(--telefer-lh-body);
	color: var(--tlf-fg-2);
	text-wrap: pretty;
}

.tlf-body {
	margin: 0;
	max-width: var(--telefer-measure);
	color: var(--tlf-fg-2);
	text-wrap: pretty;
}

.tlf-caption {
	font-size: var(--telefer-t-xs);
	color: var(--tlf-fg-3);
}

/* Legenda curta (painéis, cartões, planos): texto normal, sem caixa alta */
.tlf-label {
	margin: 0;
	font-size: var(--telefer-t-sm);
	font-weight: 600;
	line-height: 1.4;
	color: var(--tlf-fg-2);
}

/* Números: mono, tabulares (timers, métricas, preço) */
.tlf-num {
	font-family: var(--telefer-font-mono);
	font-variant-numeric: tabular-nums slashed-zero;
	font-feature-settings: 'tnum' 1, 'zero' 1;
	letter-spacing: 0;
}

.tlf-num--xl {
	font-size: var(--telefer-t-xl);
	font-weight: 500;
	line-height: 1;
	color: var(--telefer-accent);
}

.tlf-section--light .tlf-num--xl,
.tlf-section--ice .tlf-num--xl {
	color: var(--telefer-primary-dark);
}

/* --------------------------------------------------------------------------
   B3. Motivos — LED, onda de áudio, malha de patch panel (usar com sentido)
   -------------------------------------------------------------------------- */
/* Onda de áudio: SVG com path; desenha uma vez ao entrar */
.tlf-wave {
	display: block;
	width: 100%;
	height: auto;
	color: var(--telefer-accent);
	overflow: visible;
}

.tlf-wave path {
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.tlf-wave--draw path {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: tlf-wave-draw 1.4s var(--telefer-ease) 0.2s forwards;
}

@keyframes tlf-wave-draw {
	to {
		stroke-dashoffset: 0;
	}
}

/* Malha de patch panel 1px + grão: textura do navy (substitui as manchas de brilho) */
.tlf-texture {
	isolation: isolate;
}

.tlf-texture::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(to right, var(--telefer-line) var(--telefer-hair), transparent var(--telefer-hair)),
		linear-gradient(to bottom, var(--telefer-line) var(--telefer-hair), transparent var(--telefer-hair));
	background-size: var(--telefer-s-7) var(--telefer-s-7);
	background-position: center top;
	opacity: 0.45;
	mask-image: linear-gradient(to bottom, var(--telefer-ink), transparent 85%);
}

/* --------------------------------------------------------------------------
   B4. Superfícies, chips e listas
   -------------------------------------------------------------------------- */
.tlf-surface {
	position: relative;
	padding: var(--telefer-s-5);
	border: 1px solid var(--tlf-line);
	border-radius: var(--telefer-r-3);
	background-color: var(--tlf-surface);
}

/* Elevada: só o painel de produto (assinatura) usa sombra */
.tlf-surface--raised {
	box-shadow: var(--telefer-shadow-3);
}

.tlf-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--telefer-s-2);
	min-height: 1.75rem;
	padding: var(--telefer-s-1) var(--telefer-s-3);
	border-radius: var(--telefer-radius-pill);
	font-size: var(--telefer-t-xs);
	font-weight: 500;
	color: var(--tlf-fg-2);
}

.tlf-list {
	display: grid;
	gap: var(--telefer-s-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlf-list li {
	display: grid;
	grid-template-columns: 1.25rem 1fr;
	gap: var(--telefer-s-3);
	align-items: start;
	color: var(--tlf-fg-2);
}

.tlf-list .tlf-icon {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15em;
	color: var(--tlf-link);
}

.tlf-rule {
	height: 0;
	margin: 0;
	border: 0;
	border-top: 1px solid var(--tlf-line);
}

/* --------------------------------------------------------------------------
   B5. Campos de formulário — estados: padrão, foco, erro, desabilitado
   -------------------------------------------------------------------------- */
.tlf-field {
	display: grid;
	align-content: start;
	gap: var(--telefer-s-2);
}

.tlf-field__label {
	font-size: var(--telefer-t-xs);
	font-weight: 600;
	color: var(--tlf-fg);
}

.tlf-field__input {
	width: 100%;
	min-height: var(--telefer-touch);
	padding: var(--telefer-s-3) var(--telefer-s-4);
	border: 1px solid var(--telefer-line-strong);
	border-radius: var(--telefer-r-2);
	background-color: color-mix(in oklab, var(--tlf-bg), var(--telefer-ink) 18%);
	color: var(--tlf-fg);
	font: inherit;
	font-size: var(--telefer-t-sm);
	transition: border-color var(--telefer-dur-1) var(--telefer-ease);
}

.tlf-section--light .tlf-field__input,
.tlf-section--ice .tlf-field__input {
	border-color: var(--telefer-neutral-900);
	background-color: var(--telefer-neutral-50);
}

/* Painel escuro (.tlf-scope) dentro de seção clara: campo volta ao estilo escuro */
.tlf-section .tlf-scope .tlf-field__input {
	border-color: var(--telefer-line-strong);
	background-color: color-mix(in oklab, var(--tlf-bg), var(--telefer-ink) 18%);
}

.tlf-field__input::placeholder {
	color: var(--tlf-fg-3);
	opacity: 1;
}

.tlf-field__input:hover {
	border-color: var(--tlf-fg-2);
}

.tlf-field__input:focus-visible {
	outline: 2px solid var(--tlf-focus);
	outline-offset: 1px;
	border-color: transparent;
}

.tlf-field__input:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.tlf-field__hint {
	font-size: var(--telefer-t-xs);
	color: var(--tlf-fg-3);
}

.tlf-field__error {
	display: none;
	align-items: center;
	gap: var(--telefer-s-2);
	font-size: var(--telefer-t-xs);
	font-weight: 600;
	color: var(--tlf-fg);
}

.tlf-field__error .tlf-icon {
	width: 1rem;
	height: 1rem;
	color: var(--telefer-danger);
}

.tlf-field.is-invalid .tlf-field__input,
.tlf-field__input[aria-invalid='true'] {
	border-color: var(--telefer-danger);
	box-shadow: inset var(--telefer-stroke-3) 0 0 var(--telefer-danger);
}

.tlf-field.is-invalid .tlf-field__error {
	display: inline-flex;
}

/* --------------------------------------------------------------------------
   B6. Ícones (Phosphor regular, 24px)
   -------------------------------------------------------------------------- */
.tlf-icon {
	display: inline-block;
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   2. Botões — um rótulo e uma cor por ação (§6)
   -------------------------------------------------------------------------- */
.tlf-btn {
	--tlf-btn-bg: transparent;
	--tlf-btn-fg: var(--tlf-fg);
	--tlf-btn-line: transparent;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--telefer-s-2);
	min-height: var(--telefer-touch);
	padding: var(--telefer-s-3) var(--telefer-s-5);
	border: 1px solid var(--tlf-btn-line);
	border-radius: var(--telefer-r-2);
	background-color: var(--tlf-btn-bg);
	color: var(--tlf-btn-fg);
	font-family: var(--telefer-font-heading);
	font-size: var(--telefer-t-sm);
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition:
		transform var(--telefer-dur-1) var(--telefer-ease),
		opacity var(--telefer-dur-1) var(--telefer-ease);
	-webkit-tap-highlight-color: transparent;
}

.tlf-btn:hover {
	transform: translateY(calc(var(--telefer-hair) * -1));
}

.tlf-btn:active {
	transform: translateY(0) scale(0.985);
}

.tlf-btn:focus-visible {
	outline: 2px solid var(--tlf-focus);
	outline-offset: 3px;
}

.tlf-btn[disabled],
.tlf-btn[aria-disabled='true'] {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

/* Carregando: mantém a largura, troca o rótulo por uma barra de sinal */
.tlf-btn[aria-busy='true'] {
	position: relative;
	color: transparent;
	pointer-events: none;
}

.tlf-btn[aria-busy='true']::after {
	content: '';
	position: absolute;
	inset-inline: 30%;
	bottom: 50%;
	height: var(--telefer-stroke-2);
	border-radius: var(--telefer-radius-pill);
	background-color: var(--tlf-btn-fg);
	transform-origin: left center;
	animation: tlf-btn-busy 0.9s var(--telefer-ease) infinite alternate;
}

@keyframes tlf-btn-busy {
	from {
		transform: scaleX(0.15);
	}

	to {
		transform: scaleX(1);
	}
}

.tlf-btn .tlf-icon {
	width: 1.25em;
	height: 1.25em;
}

/* Primário: amarelo, texto navy (7,3:1). Só "Falar com um especialista". */
.tlf-btn--primary {
	--tlf-btn-bg: var(--telefer-accent);
	--tlf-btn-fg: var(--telefer-primary-dark);
}

/* Secundário: borda. Sobre navy: branco; sobre claro: azul (6,7:1). */
.tlf-btn--secondary {
	--tlf-btn-fg: var(--tlf-fg);
	--tlf-btn-line: var(--telefer-line-strong);
}

.tlf-section--light .tlf-btn--secondary,
.tlf-section--ice .tlf-btn--secondary {
	--tlf-btn-fg: var(--telefer-primary);
	--tlf-btn-line: var(--telefer-primary);
}

/* WhatsApp: verde, texto navy (branco sobre verde é 2,0:1 — proibido) */
.tlf-btn--whatsapp {
	--tlf-btn-bg: var(--telefer-whatsapp);
	--tlf-btn-fg: var(--telefer-primary-dark);
}

/* Link de texto com seta */
.tlf-btn--text {
	--tlf-btn-fg: var(--tlf-link);

	padding-inline: 0;
	text-decoration-line: underline;
	text-decoration-thickness: var(--telefer-hair);
	text-underline-offset: 0.3em;
}

.tlf-btn--text:hover {
	transform: none;
	text-decoration-thickness: var(--telefer-stroke-2);
}

.tlf-btn--block {
	width: 100%;
}

/* Botão com seta separada: rótulo num bloco, seta noutro ao lado (mesma cor,
   borda e raio). No hover a seta sai pela diagonal e outra entra pelo canto
   oposto. Markup: <span class="tlf-btn__label">…</span> + telefer_btn_arrow().
   Em .tlf-btn--text a seta fica solta, sem bloco, com a mesma troca. */
.tlf-btn--arrow:not(.tlf-btn--text) {
	align-items: stretch;
	padding: 0;
	border: 0;
	background-color: transparent;
}

.tlf-btn--arrow:not(.tlf-btn--text) > .tlf-btn__label {
	display: inline-flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	gap: var(--telefer-s-2);
	padding: var(--telefer-s-3) var(--telefer-s-5);
	border: 1px solid var(--tlf-btn-line);
	border-radius: var(--telefer-r-2);
	background-color: var(--tlf-btn-bg);
}

.tlf-btn--text > .tlf-btn__label {
	text-decoration: inherit;
}

.tlf-btn__arrow {
	--tlf-arrow-shift: 1.25em;

	position: relative;
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.tlf-btn--arrow:not(.tlf-btn--text) > .tlf-btn__arrow {
	--tlf-arrow-shift: calc(var(--telefer-touch) * 0.75);

	inline-size: var(--telefer-touch);
	border: 1px solid var(--tlf-btn-line);
	border-radius: var(--telefer-r-2);
	background-color: var(--tlf-btn-bg);
}

.tlf-btn__arrow > * {
	transition: transform var(--telefer-dur-2) ease-out;
}

.tlf-btn__arrow > * + * {
	position: absolute;
	transform: translate(calc(var(--tlf-arrow-shift) * -1), var(--tlf-arrow-shift));
}

:is(.tlf-btn--arrow, .tlf-arrow-trigger):is(:hover, :focus-visible) .tlf-btn__arrow > :first-child {
	transform: translate(var(--tlf-arrow-shift), calc(var(--tlf-arrow-shift) * -1));
}

:is(.tlf-btn--arrow, .tlf-arrow-trigger):is(:hover, :focus-visible) .tlf-btn__arrow > * + * {
	transform: translate(0, 0);
}

/* --------------------------------------------------------------------------
   3. Header — o mesmo em todas as páginas.
      Enxuto: fundo navy profundo, linha fina ao rolar, sem vidro nem sombra.
      Página ativa marcada pelo LED (motivo recorrente), não por cor.
   -------------------------------------------------------------------------- */
.telefer-header {
	padding-block: var(--telefer-s-3);
}

.telefer-header::before {
	background-color: color-mix(in oklab, var(--telefer-navy-900) 90%, transparent);
	border-bottom: 1px solid transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	transition: background-color var(--telefer-dur-2) var(--telefer-ease), border-color var(--telefer-dur-2) var(--telefer-ease);
}

.telefer-header.is-scrolled {
	box-shadow: none;
}

.telefer-header.is-scrolled::before {
	background-color: var(--telefer-navy-900);
	border-bottom-color: var(--telefer-line);
}

.telefer-header .telefer-nav__list a {
	display: inline-flex;
	align-items: center;
	gap: var(--telefer-s-2);
	font-family: var(--telefer-font-heading);
	font-weight: 500;
	color: var(--telefer-text-light);
}

.telefer-header .telefer-nav__list a.telefer-nav__contract {
	display: none;
}

/* Mesmo alinhamento do .tlf-container das seções */
.telefer-header__inner {
	padding-inline: var(--telefer-gutter);
}

/* Desktop: logo à esquerda, menu centralizado, CTA à direita.
   As colunas laterais têm a mesma largura (1fr), então o menu fica no centro
   do header; se faltar espaço, elas encolhem até o conteúdo e nada se sobrepõe.
   Abaixo de 769px vale o layout mobile de main.css (menu em gaveta). */
@media (min-width: 769px) {
	.telefer-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		column-gap: var(--telefer-s-5);
	}

	.telefer-header__left {
		display: contents;
	}

	.telefer-header__logo {
		justify-self: start;
		min-width: max-content;
	}

	.telefer-nav {
		justify-self: center;
	}

	.tlf-header-cta {
		justify-self: end;
		white-space: nowrap;
	}
}

.telefer-header .telefer-nav__list a:hover {
	opacity: 1;
	color: var(--telefer-neutral-50);
}

.telefer-header .telefer-nav__list a.is-active {
	color: var(--telefer-neutral-50);
	font-weight: 600;
}

.telefer-header .telefer-nav__list a:focus-visible,
.telefer-header__logo:focus-visible {
	outline: 2px solid var(--telefer-accent);
	outline-offset: 3px;
	border-radius: var(--telefer-r-1);
}

/* Seta animada de "Soluções" + abertura suave do submenu */
.telefer-header .telefer-nav__caret {
	width: 0.875rem;
	height: 0.875rem;
	flex: none;
	opacity: 0.75;
	transition:
		transform var(--telefer-dur-2) var(--telefer-ease),
		color var(--telefer-dur-1) var(--telefer-ease),
		opacity var(--telefer-dur-1) var(--telefer-ease);
}

@keyframes tlf-nav-caret-down {
	0% {
		transform: translateY(0);
	}

	55% {
		transform: translateY(0.25rem);
	}

	100% {
		transform: translateY(0.15rem);
	}
}

.telefer-header .telefer-nav__item--has-sub:hover > a .telefer-nav__caret,
.telefer-header .telefer-nav__item--has-sub.is-open > a .telefer-nav__caret,
.telefer-header .telefer-nav__item--has-sub:focus-within > a .telefer-nav__caret {
	opacity: 1;
	color: var(--telefer-accent);
	transform: translateY(0.15rem);
	animation: tlf-nav-caret-down 0.42s var(--telefer-ease);
}

@media (min-width: 769px) {
	.telefer-header .telefer-nav__sub {
		display: grid;
		gap: var(--telefer-s-1);
		min-width: 14.5rem;
		padding: var(--telefer-s-2);
		border: 1px solid var(--telefer-line-strong);
		border-radius: var(--telefer-r-2);
		background-color: var(--telefer-navy-900);
		box-shadow: var(--telefer-shadow-2);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(calc(var(--telefer-s-2) * -1)) scale(0.98);
		transform-origin: top left;
		transition:
			opacity var(--telefer-dur-2) var(--telefer-ease),
			transform var(--telefer-dur-2) var(--telefer-ease),
			visibility 0s linear var(--telefer-dur-2);
	}

	.telefer-header .telefer-nav__item--has-sub:hover .telefer-nav__sub,
	.telefer-header .telefer-nav__item--has-sub.is-open .telefer-nav__sub,
	.telefer-header .telefer-nav__item--has-sub:focus-within .telefer-nav__sub {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0) scale(1);
		transition:
			opacity var(--telefer-dur-2) var(--telefer-ease),
			transform var(--telefer-dur-2) var(--telefer-ease),
			visibility 0s linear 0s;
	}

	.telefer-header .telefer-nav__sub a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--telefer-s-3);
		width: 100%;
		padding: var(--telefer-s-2) var(--telefer-s-3);
		border-radius: var(--telefer-r-1);
		opacity: 0;
		transform: translateY(-0.25rem);
		transition:
			opacity var(--telefer-dur-2) var(--telefer-ease),
			transform var(--telefer-dur-2) var(--telefer-ease),
			background-color var(--telefer-dur-1) var(--telefer-ease),
			color var(--telefer-dur-1) var(--telefer-ease);
	}

	.telefer-header .telefer-nav__item--has-sub:hover .telefer-nav__sub a,
	.telefer-header .telefer-nav__item--has-sub.is-open .telefer-nav__sub a,
	.telefer-header .telefer-nav__item--has-sub:focus-within .telefer-nav__sub a {
		opacity: 1;
		transform: translateY(0);
	}

	.telefer-header .telefer-nav__sub li:nth-child(2) a {
		transition-delay: 35ms;
	}

	.telefer-header .telefer-nav__sub a:hover,
	.telefer-header .telefer-nav__sub a:focus-visible {
		background-color: var(--telefer-cta-bg);
		color: var(--telefer-neutral-50);
		transform: translateX(0.1875rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.telefer-header .telefer-nav__item--has-sub:hover > a .telefer-nav__caret,
	.telefer-header .telefer-nav__item--has-sub.is-open > a .telefer-nav__caret,
	.telefer-header .telefer-nav__item--has-sub:focus-within > a .telefer-nav__caret {
		animation: none;
	}
}

.tlf-header-cta {
	flex: none;
}

@media (max-width: 768px) {
	.tlf-header-cta {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   4. Footer — mesmo estilo do header: navy profundo, linha fina, títulos de
      seção em mono, links como os do menu e página ativa marcada pelo LED.
      Mesmo alinhamento do header (container + gutter).
   -------------------------------------------------------------------------- */
.tlf-footer {
	padding-block: var(--telefer-s-8) var(--telefer-s-6);
	border-top: 1px solid var(--tlf-line);
	background-color: var(--telefer-navy-900);
	color: var(--telefer-text-light);
	font-family: var(--telefer-font-body);
	font-size: var(--telefer-t-sm);
	line-height: var(--telefer-lh-body);
}

.tlf-footer__inner {
	width: 100%;
	max-width: var(--telefer-container);
	margin-inline: auto;
	padding-inline: var(--telefer-gutter);
}

.tlf-footer__main {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--telefer-s-7) var(--telefer-s-5);
}

.tlf-footer__brand,
.tlf-footer__col--social {
	grid-column: 1 / -1;
}

.tlf-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--telefer-s-4);
}

.tlf-footer__logo {
	display: inline-block;
	border-radius: var(--telefer-r-1);
}

.tlf-footer__logo img {
	display: block;
	width: auto;
	height: 2.375rem;
}

.tlf-footer__desc {
	max-width: 36ch;
	margin: 0;
	color: var(--telefer-text-light);
}

.tlf-footer__heading {
	margin: 0 0 var(--telefer-s-4);
	font-size: var(--telefer-t-xs);
	font-weight: 500;
	line-height: 1.4;
	color: var(--telefer-neutral-600);
}

.tlf-footer__list {
	display: grid;
	gap: var(--telefer-s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlf-footer__list a {
	display: inline-flex;
	align-items: center;
	gap: var(--telefer-s-2);
	min-height: var(--telefer-s-6);
	font-family: var(--telefer-font-heading);
	font-weight: 500;
	color: var(--telefer-text-light);
	text-decoration: none;
	transition: color var(--telefer-dur-1) var(--telefer-ease);
}

.tlf-footer__list a:hover {
	color: var(--telefer-neutral-50);
}

.tlf-footer__list a.is-active {
	color: var(--telefer-neutral-50);
	font-weight: 600;
}

.tlf-footer__social {
	display: flex;
	gap: var(--telefer-s-3);
}

.tlf-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--telefer-touch);
	height: var(--telefer-touch);
	border: 1px solid var(--telefer-line-strong);
	border-radius: var(--telefer-radius-pill);
	transition: border-color var(--telefer-dur-1) var(--telefer-ease);
}

.tlf-footer__social-link:hover {
	border-color: var(--telefer-accent);
}

.tlf-footer__social-link img {
	display: block;
	width: 1rem;
	height: 1rem;
}

.tlf-footer__bottom {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--telefer-s-2) var(--telefer-s-5);
	margin-top: var(--telefer-s-7);
	padding-top: var(--telefer-s-5);
	border-top: 1px solid var(--tlf-line);
	font-size: var(--telefer-t-xs);
	color: var(--telefer-text-light);
}

.tlf-footer__copyright {
	margin: 0;
}

.tlf-footer__legal {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-thickness: var(--telefer-hair);
	text-underline-offset: 0.3em;
	transition: color var(--telefer-dur-1) var(--telefer-ease);
}

.tlf-footer__legal:hover {
	color: var(--telefer-neutral-50);
}

.tlf-footer__credit {
	display: inline-flex;
	align-items: center;
	gap: var(--telefer-s-2);
}

.tlf-footer__credit img {
	display: block;
	width: 3rem;
	height: 0.9375rem;
}

.tlf-footer a:focus-visible {
	outline: 2px solid var(--telefer-accent);
	outline-offset: 3px;
	border-radius: var(--telefer-r-1);
}

/* Botão flutuante de WhatsApp: mesmas cores do .tlf-btn--primary (amarelo + ícone navy) */
.telefer-whatsapp-fab {
	border-radius: var(--telefer-radius-pill);
	background-color: var(--telefer-accent);
	color: var(--telefer-primary-dark);
}

/* Ícone centralizado: zera a margem lateral herdada de CSS externo (empurrava o ícone 4px para a esquerda) */
.telefer-whatsapp-fab svg {
	margin: 0;
}

.telefer-whatsapp-fab:focus-visible {
	outline: 2px solid var(--telefer-accent);
	outline-offset: 3px;
}

@media (min-width: 768px) {
	.tlf-footer__main {
		grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	}

	.tlf-footer__brand,
	.tlf-footer__col--social {
		grid-column: auto;
	}

	.tlf-footer__bottom {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
	}

	.tlf-footer__copyright {
		margin-right: auto;
	}
}

/* --------------------------------------------------------------------------
   5. Hero de página (blog e, depois, páginas internas)
      Mesmo esqueleto do hero da home: texto 1–6 e foto recortada 7–12 (≥ 1024).
      Abaixo de 1024 só o texto (o conteúdo da página vem logo depois).
   -------------------------------------------------------------------------- */
.tlf-pagehero {
	padding-top: calc(var(--telefer-header-height) + var(--telefer-s-7));
	padding-bottom: var(--telefer-s-8);
	overflow: clip;
}

.tlf-pagehero__grid {
	display: grid;
	gap: var(--telefer-s-7);
	align-items: center;
}

.tlf-pagehero__copy {
	display: grid;
	justify-items: start;
	gap: var(--telefer-s-5);
	min-width: 0;
}

.tlf-pagehero__visual {
	display: none;
}

@media (min-width: 1024px) {
	.tlf-pagehero {
		padding-top: calc(var(--telefer-header-height) + var(--telefer-s-6));
		padding-bottom: 0;
	}

	.tlf-pagehero__grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: var(--telefer-grid-gap);
		align-items: end;
	}

	.tlf-pagehero__copy {
		grid-column: 1 / span 6;
		align-self: center;
		padding-block: var(--telefer-s-8);
	}

	.tlf-pagehero__visual {
		display: block;
		grid-column: 7 / -1;
	}
}

/* Foto recortada: WebP transparente com a pessoa à direita.
   --tlf-cutout-ratio e --tlf-cutout-pos ajustam o recorte por imagem. */
.tlf-cutout {
	position: relative;
	isolation: isolate;
	-webkit-mask-image: linear-gradient(180deg, var(--tlf-bg) 78%, transparent 100%);
	mask-image: linear-gradient(180deg, var(--tlf-bg) 78%, transparent 100%);
}

.tlf-cutout__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: var(--tlf-cutout-ratio, 1);
	object-fit: cover;
	object-position: var(--tlf-cutout-pos, 80% 100%);
}

.tlf-cutout__shape {
	position: absolute;
	z-index: -1;
	top: 50%;
	left: 50%;
	width: 78%;
	height: auto;
	aspect-ratio: 996 / 1096;
	transform: translate(-42%, -50%) rotate(-105.752deg);
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   Movimento reduzido
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.tlf-btn[aria-busy='true']::after {
		animation: none;
	}

	.tlf-wave--draw path {
		animation: none;
		stroke-dashoffset: 0;
	}

	.tlf-btn,
	.tlf-btn:hover,
	.tlf-btn:active {
		transition: none;
		transform: none;
	}

	.tlf-btn__arrow > * {
		transition: none;
	}
}
