/*
 * Fernando Melo Transfer — estilos do site.
 * Linguagem: sinalização de aeroporto e cartão de embarque. Marinho e champanhe.
 * Mobile-first. Cores, tipos e movimento só por tokens (variáveis), editáveis aqui no topo.
 */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

:root {
	/* Cores */
	--navy: #0b1a2c;
	--navy-deep: #07111e;
	--navy-2: #11253c;
	--navy-3: #1a3350;
	--navy-line: rgba(242, 236, 225, .14);
	--ink: #0d1b2e;
	--ink-soft: #46526a;
	--paper: #f4efe6;
	--card: #fffcf6;
	--field: #e9e1d2;
	--champagne: #d9c296;
	--champagne-hi: #e8d7b3;
	--gold: #b8925a;
	--gold-deep: #7a5c30;
	--on-navy: #f2ece1;
	--on-navy-soft: #b4bdca;
	--line: rgba(13, 27, 46, .16);
	--line-strong: rgba(13, 27, 46, .32);

	/* Tipos */
	--font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--font-text: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--wide: 112%;
	--step--1: .9375rem;
	--step-0: 1.0625rem;
	--step-1: clamp(1.1875rem, 1.1rem + .4vw, 1.375rem);
	--step-2: clamp(1.5rem, 1.3rem + .9vw, 2rem);
	--step-3: clamp(2rem, 1.55rem + 2vw, 3.25rem);
	--step-4: clamp(2.375rem, 1.6rem + 3.6vw, 4.75rem);
	--step-5: clamp(2.75rem, 1.6rem + 5.4vw, 6rem);

	/* Espaço e medida */
	--gutter: clamp(1rem, .6rem + 2vw, 2.5rem);
	--section: clamp(4.5rem, 3rem + 6vw, 9rem);
	--max: 80rem;
	--measure: 40rem;
	--pad-x: max(var(--gutter), calc((100% - var(--max)) / 2));
	--radius: 10px;
	--radius-s: 6px;

	/* Movimento */
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-quart: cubic-bezier(.25, 1, .5, 1);
	--dur: .45s;
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; scrollbar-color: var(--gold) var(--field); }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-text);
	font-size: var(--step-0);
	line-height: 1.6;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	caret-color: var(--gold-deep);
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .2s; }
a:hover { text-decoration-thickness: 2px; }
p, ul, ol, figure, table { margin: 0 0 1.25rem; }
h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-stretch: var(--wide);
	font-weight: 640;
	line-height: 1.02;
	letter-spacing: -.028em;
	margin: 0 0 1.25rem;
	text-wrap: balance;
}
h1 { font-size: var(--step-5); }
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-2); letter-spacing: -.02em; }
h4 { font-size: var(--step-1); letter-spacing: -.01em; }
strong, b { font-weight: 700; }
::selection { background: var(--champagne); color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 2px; }
.fm-main:focus { outline: none; }
.fm-arrow { display: inline-block; width: 1.125em; height: auto; flex: none; transition: transform .35s var(--ease-out); }

.fm-skip {
	position: absolute; left: 1rem; top: -4rem; z-index: 100;
	background: var(--champagne); color: var(--ink); padding: .75rem 1rem; font-weight: 700; border-radius: var(--radius-s);
}
.fm-skip:focus { top: 1rem; }

.fm-wrap { padding-inline: var(--pad-x); }
.fm-muted { color: var(--ink-soft); }
.fm-lead { font-size: var(--step-1); line-height: 1.5; max-width: 36rem; }

/* ---------- Botões ---------- */

.fm-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.fm-btn {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
	min-height: 3.25rem; padding: .875rem 1.5rem;
	font: 700 1rem/1.2 var(--font-text);
	text-decoration: none; text-align: center;
	border: 1.5px solid transparent; border-radius: var(--radius-s);
	cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s, transform .2s var(--ease-out), box-shadow .25s;
}
.fm-btn:hover .fm-arrow, .fm-btn:focus-visible .fm-arrow { transform: translateX(4px); }
.fm-btn:active { transform: translateY(1px) scale(.985); }
.fm-btn--gold { background: var(--champagne); color: var(--ink); }
.fm-btn--gold:hover { background: var(--champagne-hi); box-shadow: 0 10px 30px -12px rgba(217, 194, 150, .55); }
.fm-btn--navy { background: var(--navy); color: var(--on-navy); }
.fm-btn--navy:hover { background: var(--navy-3); color: #fff; }
.fm-btn--line { border-color: var(--line-strong); color: var(--ink); }
.fm-btn--line:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.fm-btn--line-light { border-color: rgba(217, 194, 150, .55); color: var(--on-navy); }
.fm-btn--line-light:hover { border-color: var(--champagne); background: var(--champagne); color: var(--ink); }
.fm-link { font-weight: 700; text-decoration: underline; }

/* ---------- Cabeçalho ---------- */

.fm-header { position: sticky; top: 0; z-index: 50; background: var(--navy); color: var(--on-navy); transition: box-shadow .3s; }
.fm-header.is-scrolled { box-shadow: 0 1px 0 var(--navy-line), 0 12px 30px -18px rgba(0, 0, 0, .6); }
.admin-bar .fm-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .fm-header { top: 32px; } }
.fm-header__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	min-height: 4.75rem; padding-inline: var(--pad-x);
	transition: min-height .35s var(--ease-out);
}
.fm-header.is-scrolled .fm-header__inner { min-height: 4rem; }
.fm-wordmark { display: inline-flex; flex-direction: column; text-decoration: none; color: var(--on-navy); white-space: nowrap; line-height: 1; }
.fm-wordmark img { max-height: 2.75rem; width: auto; }
.fm-wordmark__name { font-family: var(--font-display); font-stretch: 125%; font-weight: 760; font-size: clamp(1rem, .9rem + .5vw, 1.1875rem); letter-spacing: .01em; text-transform: uppercase; }
.fm-wordmark__trade { font-family: var(--font-display); font-stretch: 125%; font-weight: 500; font-size: .6875rem; letter-spacing: .42em; text-transform: uppercase; color: var(--champagne); margin-top: .35rem; }

.fm-menu-toggle {
	display: inline-flex; align-items: center; gap: .625rem;
	min-height: 3rem; padding: 0 .25rem 0 .75rem;
	background: none; border: 0; color: inherit; font: 700 1rem var(--font-text); cursor: pointer;
}
.fm-menu-toggle__bars, .fm-menu-toggle__bars::before, .fm-menu-toggle__bars::after {
	display: block; width: 1.375rem; height: 2px; background: currentColor; transition: transform .3s var(--ease-out), background-color .2s;
}
.fm-menu-toggle__bars { position: relative; }
.fm-menu-toggle__bars::before, .fm-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
.fm-menu-toggle__bars::before { top: -7px; }
.fm-menu-toggle__bars::after { top: 7px; }
.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars { background: transparent; }
.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

.fm-nav__list { list-style: none; margin: 0; padding: 0; }
.fm-nav__list a { text-decoration: none; font-weight: 600; }
.fm-nav__list .current-menu-item > a, .fm-nav__list .current-page-ancestor > a { color: var(--champagne); }
.fm-nav__list .sub-menu { list-style: none; margin: 0; padding: 0 0 0 1rem; }

/* Celular: painel abaixo do cabeçalho */
@media (max-width: 959px) {
	.fm-nav {
		position: absolute; left: 0; right: 0; top: 100%;
		background: var(--navy); padding: .5rem var(--gutter) 1.75rem;
		border-top: 1px solid var(--navy-line);
		max-height: calc(100vh - 4.75rem); overflow-y: auto;
		display: none;
	}
	.fm-nav.is-open { display: block; }
	.fm-nav__list > li { border-bottom: 1px solid var(--navy-line); }
	.fm-nav__list a { display: block; padding: 1rem 0; font-family: var(--font-display); font-stretch: var(--wide); font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
	.fm-nav.is-open .fm-nav__list > li { animation: fm-rise .5s var(--ease-out) both; }
	.fm-nav.is-open .fm-nav__list > li:nth-child(2) { animation-delay: .04s; }
	.fm-nav.is-open .fm-nav__list > li:nth-child(3) { animation-delay: .08s; }
	.fm-nav.is-open .fm-nav__list > li:nth-child(4) { animation-delay: .12s; }
	.fm-nav.is-open .fm-nav__list > li:nth-child(5) { animation-delay: .16s; }
	.fm-nav.is-open .fm-nav__list > li:nth-child(n+6) { animation-delay: .2s; }
	.fm-nav__cta { width: 100%; margin-top: 1.5rem; }
	html:not(.fm-js) .fm-nav { display: block; position: static; padding: 0 0 1rem; }
	html:not(.fm-js) .fm-header__inner { flex-wrap: wrap; }
	html:not(.fm-js) .fm-menu-toggle { display: none; }
}

@media (min-width: 960px) {
	.fm-menu-toggle { display: none; }
	.fm-nav { display: flex; align-items: center; gap: 2rem; }
	.fm-nav__list { display: flex; gap: 1.75rem; }
	.fm-nav__list > li { position: relative; }
	.fm-nav__list a { display: inline-block; padding: .5rem 0; position: relative; }
	.fm-nav__list > li > a::after {
		content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 2px;
		background: var(--champagne); transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease-out);
	}
	.fm-nav__list > li > a:hover::after, .fm-nav__list > .current-menu-item > a::after, .fm-nav__list > .current-page-ancestor > a::after { transform: scaleX(1); transform-origin: left; }
	.fm-nav__list .sub-menu {
		position: absolute; top: 100%; left: -1rem; min-width: 14rem; padding: .5rem 1rem;
		background: var(--navy-deep); border-radius: var(--radius-s); opacity: 0; visibility: hidden; transform: translateY(.25rem);
		transition: opacity .2s, transform .2s, visibility .2s;
	}
	.fm-nav__list li:hover > .sub-menu, .fm-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.fm-nav__cta { min-height: 2.875rem; padding: .625rem 1.125rem; }
	.fm-nav__list > li > a, .fm-nav__cta { white-space: nowrap; }
}
/* Notebook pequeno e iPad deitado: menu mais compacto para caber numa linha. */
@media (min-width: 960px) and (max-width: 1119px) {
	.fm-nav { gap: 1.25rem; }
	.fm-nav__list { gap: 1.125rem; }
	.fm-nav__list a { font-size: .9375rem; }
	.fm-nav__cta { padding: .625rem .875rem; font-size: .9375rem; }
}

/* ---------- Seções da página inicial ---------- */

.fm-home-content > .wp-block-group { padding: var(--section) var(--pad-x); position: relative; }
.wp-block-group__inner-container > :last-child { margin-bottom: 0; }

/* Abertura */
.fm-hero { background: var(--navy); color: var(--on-navy); overflow: hidden; }
.fm-home-content > .fm-hero { padding-top: clamp(3rem, 2rem + 5vw, 6.5rem); padding-bottom: clamp(3.5rem, 2rem + 6vw, 7.5rem); }
@media (min-width: 1040px) and (max-height: 860px) {
	.fm-home-content > .fm-hero { padding-top: clamp(2.5rem, 6vh, 4rem); }
}
.fm-hero::before {
	/* Malha discreta de quadras, desenhada em CSS. */
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image:
		linear-gradient(var(--navy-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--navy-line) 1px, transparent 1px);
	background-size: 88px 88px;
	background-position: -1px -1px;
	opacity: .35;
	-webkit-mask-image: radial-gradient(120% 90% at 85% 40%, #000 0%, transparent 70%);
	mask-image: radial-gradient(120% 90% at 85% 40%, #000 0%, transparent 70%);
}
.fm-hero > .wp-block-group__inner-container { position: relative; display: grid; gap: clamp(2.5rem, 2rem + 3vw, 5rem); align-items: center; }
.fm-hero h1 { font-size: var(--step-5); font-weight: 680; line-height: .98; letter-spacing: -.035em; margin-bottom: 1.75rem; max-width: 11ch; }
.fm-hero .fm-lead { color: var(--on-navy-soft); margin-bottom: 2.25rem; }
@media (min-width: 1040px) {
	.fm-hero > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
	/* Em duas colunas o título acompanha a largura da coluna: "executivo em" cabe numa linha e os botões ficam na primeira tela. */
	.fm-hero h1 { font-size: min(var(--step-5), calc(6.6vw - .25rem), 11.5vh); }
}

/* Cartão de trajeto (formulário curto no topo) */
.fm-pass {
	position: relative; display: grid; color: var(--ink); margin: 0;
	--notch: 14px;
	filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .35));
}
.fm-pass__main, .fm-pass__stub { background-color: var(--card); }
.fm-pass__main {
	padding: clamp(1.25rem, 1rem + 1.4vw, 2.25rem); border-radius: var(--radius) var(--radius) 0 0;
	-webkit-mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
	mask: radial-gradient(circle var(--notch) at 0 100%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, transparent 98%, #000) right / 51% 100% no-repeat;
}
.fm-pass__stub {
	position: relative; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .25rem 1rem;
	padding: 1.5rem clamp(1.25rem, 1rem + 1.4vw, 2.25rem) clamp(1.25rem, 1rem + 1vw, 1.75rem);
	border-radius: 0 0 var(--radius) var(--radius);
	background-image: linear-gradient(90deg, var(--line-strong) 50%, transparent 0);
	background-size: 12px 1.5px; background-repeat: repeat-x; background-position: 0 0;
	-webkit-mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
	mask: radial-gradient(circle var(--notch) at 0 0, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, transparent 98%, #000) right / 51% 100% no-repeat;
}
.fm-pass__title { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; font-size: var(--step-2); letter-spacing: -.02em; line-height: 1.1; margin-bottom: 1.25rem; }
.fm-pass fieldset { border: 0; margin: 0 0 1.125rem; padding: 0; min-width: 0; }
.fm-pass legend, .fm-pass__field label { display: block; padding: 0; margin-bottom: .5rem; font-weight: 700; font-size: var(--step--1); color: var(--ink-soft); }
.fm-pass__chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.fm-pass__chip { position: relative; display: block; cursor: pointer; }
.fm-pass__chip input, .fm-pass__toggle input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.fm-pass__chip span {
	display: flex; flex-direction: column; gap: .125rem; min-height: 4.25rem; justify-content: center;
	padding: .625rem .75rem; border: 1.5px solid var(--line); border-radius: var(--radius-s);
	font-size: .875rem; color: var(--ink-soft); line-height: 1.2;
	transition: border-color .2s, background-color .2s, color .2s;
}
.fm-pass__chip b { font-family: var(--font-display); font-stretch: 125%; font-weight: 780; font-size: 1.375rem; letter-spacing: .02em; color: var(--ink); transition: color .2s; }
.fm-pass__chip:hover span { border-color: var(--line-strong); }
.fm-pass__chip input:checked + span { background: var(--navy); border-color: var(--navy); color: var(--on-navy-soft); }
.fm-pass__chip input:checked + span b { color: var(--champagne); }
.fm-pass__chip input:focus-visible + span, .fm-pass__toggle input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }
.fm-pass__toggle { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; background: var(--field); border-radius: var(--radius-s); }
.fm-pass__toggle label { position: relative; }
.fm-pass__toggle span { display: block; text-align: center; padding: .625rem .5rem; border-radius: 4px; font-size: .875rem; font-weight: 700; color: var(--ink-soft); cursor: pointer; transition: background-color .25s, color .25s, box-shadow .25s; }
.fm-pass__toggle input:checked + span { background: var(--card); color: var(--ink); box-shadow: 0 1px 3px rgba(13, 27, 46, .18); }
.fm-pass .fm-pass__way[hidden] { display: none; }
.fm-pass__field { margin-bottom: 1.25rem; }
.fm-pass__field input {
	width: 100%; min-height: 3.25rem; padding: .75rem .875rem; font: inherit; font-size: 1rem; color: var(--ink);
	background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--radius-s);
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.fm-pass__field input::placeholder { color: #69718a; }
.fm-pass__field input:hover { border-color: var(--line-strong); }
.fm-pass__field input:focus { outline: none; border-color: var(--navy); background: #fff; box-shadow: 0 0 0 3px rgba(184, 146, 90, .35); }
.fm-pass__go { width: 100%; }
.fm-pass__from { grid-column: 1 / -1; font-size: var(--step--1); font-weight: 700; color: var(--ink-soft); }
.fm-pass__code { font-family: var(--font-display); font-stretch: 125%; font-weight: 800; font-size: clamp(3rem, 2rem + 4vw, 4.75rem); line-height: .9; letter-spacing: .01em; color: var(--ink); }
.fm-pass__name { justify-self: end; text-align: right; font-weight: 700; padding-bottom: .375rem; }
.fm-pass__note { grid-column: 1 / -1; font-size: .875rem; color: var(--gold-deep); font-weight: 700; margin-top: .5rem; }

/* Letras que trocam como num painel de aeroporto */
[data-flap] { display: inline-block; white-space: nowrap; }
.fm-flap-char { display: inline-block; }
.fm-flap-char.is-spinning { animation: fm-flap .09s linear infinite; }

/* Painel de destinos (primeira versão da abertura; continua disponível no editor) */
.fm-board { background: var(--navy-deep); color: var(--on-navy); padding: clamp(1.25rem, 1rem + 1vw, 2rem); border-radius: var(--radius); }
.fm-board__head { display: flex; justify-content: space-between; color: var(--champagne); font-weight: 700; font-size: var(--step--1); padding-bottom: .875rem; }
.fm-board__rows { list-style: none; margin: 0; padding: 0; perspective: 900px; }
.fm-board__rows li + li { margin-top: 4px; }
.fm-board__rows a {
	display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); grid-template-areas: "code name" "code status";
	column-gap: 1rem; align-items: center;
	padding: .875rem 1rem; background: var(--navy-2); text-decoration: none; border-radius: var(--radius-s);
	transition: background-color .25s, transform .25s var(--ease-out);
}
.fm-board__rows a:hover, .fm-board__rows a:focus-visible { background: var(--navy-3); transform: translateX(4px); }
.fm-board__code { grid-area: code; font-family: var(--font-display); font-stretch: 125%; font-weight: 780; font-size: 1.625rem; line-height: 1; color: var(--champagne); }
.fm-board__name { grid-area: name; line-height: 1.3; }
.fm-board__name strong { font-size: 1.0625rem; display: block; }
.fm-board__name span { color: var(--on-navy-soft); font-size: var(--step--1); }
.fm-board__status { grid-area: status; font-weight: 700; color: var(--champagne); font-size: var(--step--1); margin-top: .25rem; }
.fm-board__foot { color: var(--on-navy-soft); font-size: var(--step--1); margin: 1rem 0 0; }
@media (min-width: 560px) {
	.fm-board__rows a { grid-template-columns: 5.5rem minmax(0, 1fr) auto; grid-template-areas: "code name status"; padding: 1.125rem 1.25rem; }
	.fm-board__code { font-size: 2rem; }
	.fm-board__status { margin: 0; text-align: right; }
}

/* Serviços: painel de partidas impresso em papel */
.fm-services-section h2 { max-width: 12ch; }
.fm-services-section > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
@media (min-width: 1180px) {
	.fm-services-section > .wp-block-group__inner-container { grid-template-columns: minmax(0, .5fr) minmax(0, 1.5fr); align-items: start; }
	.fm-services-section h2 { position: sticky; top: 7rem; font-size: var(--step-3); }
}
ul.fm-services { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.fm-services li { border-bottom: 1px solid var(--line); }
.fm-services a {
	position: relative; display: grid; align-items: baseline;
	grid-template-columns: 4rem minmax(0, 1fr) auto;
	grid-template-areas: "code name go" "code desc desc" "code status status";
	gap: .375rem 1rem; padding: 1.5rem .25rem; text-decoration: none; isolation: isolate;
	transition: color .35s var(--ease-out), padding .45s var(--ease-out);
}
.fm-services a::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--navy); border-radius: var(--radius-s);
	transform: scaleY(0); transform-origin: 50% 100%; transition: transform .45s var(--ease-out);
}
.fm-services__code { grid-area: code; font-family: var(--font-display); font-stretch: 125%; font-weight: 800; font-size: 1.375rem; letter-spacing: .02em; color: var(--gold-deep); transition: color .35s; }
.fm-services__name { grid-area: name; font-family: var(--font-display); font-stretch: var(--wide); font-weight: 640; font-size: var(--step-2); letter-spacing: -.022em; line-height: 1.1; }
.fm-services__desc { grid-area: desc; color: var(--ink-soft); max-width: 34rem; transition: color .35s; }
.fm-services__status { grid-area: status; font-weight: 700; font-size: var(--step--1); color: var(--gold-deep); transition: color .35s; }
.fm-services__go { grid-area: go; align-self: center; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border: 1.5px solid var(--line-strong); border-radius: 50%; transition: border-color .35s, background-color .35s, color .35s, transform .45s var(--ease-out); }
.fm-services a:hover, .fm-services a:focus-visible { color: var(--on-navy); padding-inline: 1.25rem; }
.fm-services a:hover::before, .fm-services a:focus-visible::before { transform: scaleY(1); }
.fm-services a:hover .fm-services__code, .fm-services a:focus-visible .fm-services__code, .fm-services a:hover .fm-services__status, .fm-services a:focus-visible .fm-services__status { color: var(--champagne); }
.fm-services a:hover .fm-services__desc, .fm-services a:focus-visible .fm-services__desc { color: var(--on-navy-soft); }
.fm-services a:hover .fm-services__go, .fm-services a:focus-visible .fm-services__go { background: var(--champagne); border-color: var(--champagne); color: var(--ink); transform: rotate(-45deg); }
@media (min-width: 760px) {
	.fm-services a { grid-template-columns: 5.5rem minmax(0, 1fr) minmax(0, 1.15fr) 8.5rem 2.75rem; grid-template-areas: "code name desc status go"; align-items: center; padding-block: 1.75rem; gap: 1.5rem; }
	.fm-services__code { font-size: 1.75rem; }
	.fm-services__status { text-align: right; }
}

/* Índice simples (lista com links, usada nas páginas internas e na primeira versão da inicial) */
.fm-index { list-style: none; padding: 0; margin: 0 0 1.5rem; border-top: 2px solid var(--ink); }
.fm-index li { padding: 1.375rem 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.fm-index a { display: inline; text-decoration: none; color: var(--ink); margin-right: .375rem; }
.fm-index a strong { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 640; font-size: var(--step-1); letter-spacing: -.015em; line-height: 1.2; }
.fm-index a strong::after {
	content: ""; display: inline-block; width: .9em; height: .6em; margin-left: .5rem; background: var(--gold-deep);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M0 6h18M13 1l5 5-5 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M0 6h18M13 1l5 5-5 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .3s var(--ease-out);
}
.fm-index a:hover strong::after, .fm-index a:focus-visible strong::after { transform: translateX(.375rem); }
.fm-index a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.fm-index a strong { display: inline; }
.fm-index li > a + * { display: block; }
@media (min-width: 900px) { .fm-services > .wp-block-group__inner-container > .fm-index { display: grid; grid-template-columns: 1fr 1fr; column-gap: 3rem; } }

/* Faixas de cor */
.fm-band--navy { background: var(--navy); color: var(--on-navy); }
.fm-band--navy .fm-lead { color: var(--on-navy-soft); }
.fm-band--gold { background: var(--champagne); color: var(--ink); }

/* Aeroportos: mapa desenhado + três colunas */
#aeroportos > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
#aeroportos h2 { max-width: 11ch; }
@media (min-width: 960px) {
	#aeroportos > .wp-block-group__inner-container { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-template-areas: "h map" "lead map" "btn map" "list list"; align-content: start; }
	#aeroportos h2 { grid-area: h; align-self: end; }
	#aeroportos .fm-lead { grid-area: lead; }
	#aeroportos .fm-map { grid-area: map; align-self: center; }
	#aeroportos .fm-airports { grid-area: list; }
	#aeroportos > .wp-block-group__inner-container > p:last-child { grid-area: btn; align-self: start; }
}
.fm-airports { list-style: none; padding: 0; margin: 2.5rem 0 2rem; display: grid; }
.fm-airports li { padding: 1.75rem 0; border-top: 1px solid var(--navy-line); color: var(--on-navy-soft); }
.fm-airports strong { display: block; color: var(--champagne); font-family: var(--font-display); font-stretch: 125%; font-weight: 780; font-size: var(--step-2); letter-spacing: .005em; line-height: 1.05; margin-bottom: .75rem; }
@media (min-width: 960px) {
	.fm-airports { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(1.5rem, 1rem + 2vw, 3rem); margin: clamp(3rem, 2rem + 3vw, 5rem) 0 0; }
}

.fm-map { margin: 1rem 0 2rem; }
.fm-map svg { width: 100%; height: auto; overflow: visible; }
.fm-map__route { fill: none; stroke: var(--champagne); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.fm-map__city { fill: var(--on-navy); }
.fm-map__pulse { fill: none; stroke: none; }
.fm-map__citylabel { fill: var(--on-navy-soft); font: 600 15px var(--font-text); }
.fm-map__airport rect { fill: var(--champagne); }
.fm-map__code { fill: var(--champagne); font: 800 34px var(--font-display); font-stretch: 125%; }
.fm-map__name { fill: var(--on-navy); font: 600 15px var(--font-text); }
@media (max-width: 600px) {
	.fm-map__citylabel, .fm-map__name { font-size: 21px; }
	.fm-map__code { font-size: 38px; }
}
.fm-map figcaption { color: var(--on-navy-soft); font-size: var(--step--1); margin-top: .75rem; }

/* Por hora: tabela de preços como um tarifário */
.fm-hourly > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
.fm-hourly h2 { max-width: 12ch; }
.fm-hourly > .wp-block-group__inner-container > p:not(:last-child) { color: var(--ink-soft); font-size: var(--step-1); max-width: 30rem; }
@media (min-width: 1040px) {
	.fm-hourly > .wp-block-group__inner-container { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-auto-flow: dense; align-content: start; }
	.fm-hourly > .wp-block-group__inner-container > * { grid-column: 1; }
	.fm-hourly > .wp-block-group__inner-container > .fmt-prices { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
	.fm-hourly > .wp-block-group__inner-container > .fmt-prices-note { grid-column: 2; grid-row: 4; }
	.fm-hourly > .wp-block-group__inner-container > p:last-child { grid-row: 3; align-self: start; }
}
.fmt-prices { width: 100%; border-collapse: collapse; margin: 1.5rem 0 1rem; font-variant-numeric: tabular-nums; }
.fmt-prices th, .fmt-prices td { padding: 1.125rem 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: baseline; font-weight: 600; }
.fmt-prices th { font-size: var(--step-1); padding-right: 1rem; }
.fmt-prices td { text-align: right; }
.fmt-prices td strong { display: block; font-family: var(--font-display); font-stretch: var(--wide); font-size: var(--step-2); font-weight: 650; letter-spacing: -.02em; line-height: 1.1; white-space: nowrap; }
.fmt-prices td span { display: block; color: var(--ink-soft); font-size: var(--step--1); font-weight: 600; margin-top: .25rem; }
.fmt-prices tr:first-child td strong { font-size: var(--step-3); }
@media (max-width: 559px) {
	.fmt-prices th { font-size: 1.0625rem; }
	.fmt-prices td strong, .fmt-prices tr:first-child td strong { font-size: 1.375rem; }
}
.fm-hourly .fmt-prices, .fm-prose .fmt-prices {
	background: var(--card); border-radius: var(--radius); border-collapse: separate; border-spacing: 0; overflow: hidden;
	box-shadow: 0 1px 0 var(--line), 0 24px 50px -30px rgba(13, 27, 46, .35);
}
.fm-hourly .fmt-prices th, .fm-prose .fmt-prices th { padding-left: clamp(1.125rem, .75rem + 1.5vw, 2rem); }
.fm-hourly .fmt-prices td, .fm-prose .fmt-prices td { padding-right: clamp(1.125rem, .75rem + 1.5vw, 2rem); }
.fm-hourly .fmt-prices tr:first-child > *, .fm-prose .fmt-prices tr:first-child > * { padding-top: 1.75rem; padding-bottom: 1.5rem; background: var(--navy); color: var(--on-navy); border-bottom: 0; }
.fm-hourly .fmt-prices tr:first-child td strong, .fm-prose .fmt-prices tr:first-child td strong, .fm-hourly .fmt-prices tr:first-child td span, .fm-prose .fmt-prices tr:first-child td span { color: var(--champagne); }
.fm-hourly .fmt-prices tr:last-child > *, .fm-prose .fmt-prices tr:last-child > * { border-bottom: 0; }
.fm-hourly .fmt-prices tr:not(:first-child) > *, .fm-prose .fmt-prices tr:not(:first-child) > * { transition: background-color .2s; }
.fm-hourly .fmt-prices tr:not(:first-child):hover > *, .fm-prose .fmt-prices tr:not(:first-child):hover > * { background: #f8f1e3; }
.fmt-prices-note { color: var(--ink-soft); font-size: var(--step--1); }
.fmt-prices-empty { font-family: var(--font-display); font-stretch: var(--wide); font-size: var(--step-2); }
.fm-hourly > .wp-block-group__inner-container > p:last-child { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; }

/* Como funciona: linha do tempo de quatro paradas (a ordem é a informação) */
.fm-how { background: var(--field); }
.fm-how h2 { max-width: 14ch; }
.fm-steps { list-style: none; padding: 0; margin: clamp(2.5rem, 2rem + 2vw, 4rem) 0 0; display: grid; gap: 2.25rem; counter-reset: fm-step; position: relative; }
.fm-steps li { counter-increment: fm-step; color: var(--ink-soft); position: relative; padding-left: 4.25rem; }
.fm-steps li::before {
	content: counter(fm-step); position: absolute; left: 0; top: -.25rem;
	width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%;
	background: var(--navy); color: var(--champagne);
	font-family: var(--font-display); font-stretch: 125%; font-weight: 800; font-size: 1.25rem;
	box-shadow: 0 0 0 6px var(--field);
}
.fm-steps::before { content: ""; position: absolute; left: 1.5rem; top: .5rem; bottom: .5rem; width: 2px; background: var(--line-strong); transform-origin: 50% 0; }
.fm-steps strong { display: block; color: var(--ink); font-family: var(--font-display); font-stretch: var(--wide); font-weight: 640; font-size: var(--step-1); letter-spacing: -.015em; margin-bottom: .375rem; }
@media (min-width: 900px) {
	.fm-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
	.fm-steps li { padding: 5rem 1rem 0 0; }
	.fm-steps li::before { top: 0; width: 3.5rem; height: 3.5rem; font-size: 1.375rem; }
	.fm-steps::before { left: 1.75rem; right: calc((100% - 6rem) / 4 - 1.75rem); top: 1.75rem; bottom: auto; width: auto; height: 2px; transform-origin: 0 50%; }
}

/* Compromissos por escrito: a proposta como documento */
.fm-band--gold > .wp-block-group__inner-container { display: grid; gap: 2.5rem clamp(2rem, 1rem + 4vw, 6rem); align-items: center; }
.fm-band--gold h2 { max-width: 11ch; }
.fm-cta-band { text-align: center; }
.fm-band--gold.fm-cta-band > .wp-block-group__inner-container { grid-template-columns: none; justify-items: center; gap: 1.25rem; max-width: 44rem; margin-inline: auto; }
.fm-cta-band h2 { max-width: none; margin: 0; }
.fm-cta-band .fm-lead { margin: 0; color: var(--ink); }
.fm-cta-band .fm-actions { margin: .5rem 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.fm-promise {
	list-style: none; margin: 0; background: var(--card); border-radius: var(--radius);
	padding: clamp(3.25rem, 3rem + 1.5vw, 4.5rem) clamp(1.25rem, 1rem + 1.5vw, 2.5rem) clamp(1rem, .75rem + 1vw, 2rem);
	position: relative; box-shadow: 0 30px 60px -30px rgba(13, 27, 46, .45);
	transform: rotate(-.6deg);
}
.fm-promise::before {
	content: ""; position: absolute; top: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); left: clamp(1.25rem, 1rem + 1.5vw, 2.5rem); right: clamp(1.25rem, 1rem + 1.5vw, 2.5rem);
	height: 6px; background: linear-gradient(90deg, var(--navy) 0 32%, var(--champagne) 32% 100%); border-radius: 3px;
}
.fm-promise li { font-size: var(--step-1); line-height: 1.45; padding: 1.125rem 0 1.125rem 2.75rem; border-top: 1px solid var(--line); position: relative; }
.fm-promise li:first-child { border-top: 0; }
.fm-promise li::before { content: ""; position: absolute; left: 0; top: 1.25rem; width: 1.625rem; height: 1.625rem; border-radius: 50%; background: var(--navy); }
.fm-promise li::after { content: ""; position: absolute; left: .5rem; top: 1.62rem; width: .65rem; height: .35rem; border-left: 2px solid var(--champagne); border-bottom: 2px solid var(--champagne); transform: rotate(-45deg); }
@media (min-width: 960px) { .fm-band--gold > .wp-block-group__inner-container { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }

/* Formulário */
.fm-quote > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
.fm-quote h2 { max-width: 11ch; }
.fm-quote > .wp-block-group__inner-container > p { max-width: 28rem; color: var(--ink-soft); font-size: var(--step-1); }
@media (min-width: 1040px) {
	.fm-quote > .wp-block-group__inner-container { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); grid-template-rows: auto 1fr; }
	.fm-quote h2, .fm-quote > .wp-block-group__inner-container > p { grid-column: 1; }
	.fm-quote > .wp-block-group__inner-container > :not(h2):not(p) { grid-column: 2; grid-row: 1 / span 3; }
}
.fmt-form, .fmt-success, .fmt-proposal { --paper: #fffcf6; --field: #f1ebdf; --accent: var(--navy); --accent-ink: var(--on-navy); }
.fm-quote .fmt-form, .fm-quote .fmt-success { background: var(--card); padding: clamp(1.25rem, .75rem + 2vw, 2.75rem); max-width: none; border-radius: var(--radius); box-shadow: 0 1px 0 var(--line), 0 30px 60px -36px rgba(13, 27, 46, .4); }
.fmt-step legend, .fmt-success h2, .fmt-proposal h2 { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; letter-spacing: -.02em; }
.fmt-form input[type="text"], .fmt-form input[type="tel"], .fmt-form input[type="email"], .fmt-form input[type="date"], .fmt-form input[type="time"], .fmt-form input[type="number"], .fmt-form textarea, .fmt-form select { border-radius: var(--radius-s); }
.fmt-form .fmt-check { display: flex; align-items: center; gap: .75rem; min-height: 2.75rem; }
.fmt-form .fmt-check input { width: 1.375rem; height: 1.375rem; margin: 0; flex: none; }
.fmt-form .fmt-btn, .fmt-success .fmt-btn, .fmt-proposal .fmt-btn { border-radius: var(--radius-s); }

/* Perguntas frequentes */
.fm-faq > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
@media (min-width: 960px) {
	.fm-faq > .wp-block-group__inner-container { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: start; }
	.fm-faq h2 { position: sticky; top: 7rem; grid-row: 1 / span 10; }
	.fm-faq details { grid-column: 2; }
}
.fm-faq h2 { max-width: 10ch; }
.fm-faq details { border-top: 1px solid var(--line); }
.fm-faq details:first-of-type { border-top: 2px solid var(--ink); }
.fm-faq details:last-of-type { border-bottom: 1px solid var(--line); }
.fm-faq summary { list-style: none; cursor: pointer; position: relative; padding: 1.5rem 3.5rem 1.5rem 0; font-family: var(--font-display); font-stretch: var(--wide); font-size: var(--step-1); font-weight: 620; letter-spacing: -.015em; transition: color .2s; }
.fm-faq summary::-webkit-details-marker { display: none; }
.fm-faq summary::before, .fm-faq summary::after { content: ""; position: absolute; right: .875rem; top: 50%; width: 1rem; height: 2px; background: var(--gold-deep); transition: transform .35s var(--ease-out); }
.fm-faq summary::after { transform: rotate(90deg); }
.fm-faq details[open] summary::after { transform: rotate(0); }
.fm-faq summary:hover { color: var(--gold-deep); }
.fm-faq details > :not(summary) { color: var(--ink-soft); max-width: var(--measure); padding-bottom: .5rem; }

/* ---------- Páginas internas ---------- */

.fm-entry__head { position: relative; overflow: hidden; background: var(--navy); color: var(--on-navy); padding: clamp(2rem, 1.5rem + 3vw, 4.5rem) 0 clamp(3.5rem, 2rem + 5vw, 7rem); }
.fm-entry__headgrid { position: relative; z-index: 1; display: grid; gap: 2rem; align-items: end; }
@media (min-width: 960px) { .fm-entry--coded .fm-entry__headgrid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); } }
.fm-entry__title { font-size: clamp(2.5rem, 1.5rem + 3.8vw, 4.75rem); font-weight: 680; letter-spacing: -.035em; line-height: 1; max-width: 18ch; margin-bottom: 1.5rem; }
.fm-entry__lead { font-size: var(--step-1); max-width: 34rem; color: var(--on-navy-soft); margin-bottom: 2.25rem; }
.fm-entry__head .fm-actions { margin: 0; }
.fm-entry__codes { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; font-family: var(--font-display); font-stretch: 125%; font-weight: 800; line-height: .85; letter-spacing: .01em; color: transparent; -webkit-text-stroke: 1.5px var(--champagne); user-select: none; }
.fm-entry__codes span { font-size: clamp(4.5rem, 2rem + 8vw, 9.5rem); }
.fm-codes--3 span { font-size: clamp(3rem, 1.5rem + 4.5vw, 5.75rem); }
.fm-entry__codes span:first-child { color: var(--champagne); -webkit-text-stroke: 0; }
@media (max-width: 959px) {
	.fm-entry__codes { flex-direction: row; justify-content: flex-start; gap: 1rem; order: -1; }
	.fm-entry__codes span, .fm-codes--3 span { font-size: clamp(2.5rem, 1.5rem + 6vw, 4rem); }
}
.fm-route { position: absolute; pointer-events: none; overflow: visible; }
.fm-route__line { fill: none; stroke: var(--champagne); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 0; vector-effect: non-scaling-stroke; opacity: .45; }
.fm-route__a, .fm-route__b { fill: var(--champagne); opacity: .6; }
.fm-entry__route { right: -2%; bottom: 8%; width: 60%; height: 55%; }
@media (max-width: 959px) { .fm-entry__route { width: 70%; height: 16%; top: 1.5rem; bottom: auto; right: -6%; } }
.fm-entry__media { margin: 0; }
.fm-entry__media img { width: 100%; max-height: 70vh; object-fit: cover; }

.fm-crumbs ol { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; font-size: var(--step--1); color: var(--on-navy-soft); }
.fm-crumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--gold); }
.fm-crumbs a { color: var(--on-navy); }

.fm-entry__body { padding: clamp(3rem, 2rem + 4vw, 6.5rem) var(--pad-x); display: grid; gap: 3rem clamp(2rem, 1rem + 4vw, 6rem); align-items: start; }
@media (min-width: 1024px) { .fm-entry--aside .fm-entry__body { grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); } }
.fm-prose { min-width: 0; }
.fm-prose > * { max-width: var(--measure); }
.fm-prose > .fmt-form, .fm-prose > .fmt-success, .fm-prose > .fmt-proposal { max-width: 48rem; }
.fm-prose h2 { font-size: var(--step-3); margin-top: 4rem; padding-top: 1.5rem; border-top: 2px solid var(--ink); }
.fm-prose h2:first-child { margin-top: 0; }
.fm-prose h3 { font-size: var(--step-2); margin-top: 2.5rem; }
.fm-prose > p { font-size: 1.125rem; line-height: 1.7; }
.fm-prose > h2 + p { font-size: var(--step-1); line-height: 1.55; }
.fm-prose ul:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]), .fm-prose ol:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) { padding-left: 0; list-style: none; }
.fm-prose ul:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) li, .fm-prose ol:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) li { position: relative; padding: .875rem 0 .875rem 2rem; border-bottom: 1px solid var(--line); margin: 0; }
.fm-prose ul:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) li::before { content: ""; position: absolute; left: .25rem; top: 1.55rem; width: .75rem; height: 2px; background: var(--gold); }
.fm-prose ol:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) { counter-reset: fm-ol; }
.fm-prose ol:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) li { counter-increment: fm-ol; }
.fm-prose ol:not(.fm-index):not(.fm-services):not(.fm-airports):not(.fm-cards):not([class*="fmt-"]) li::before { content: counter(fm-ol); position: absolute; left: 0; top: .875rem; font-weight: 800; color: var(--gold-deep); }
.fm-prose .fm-index { max-width: var(--measure); }
.fm-prose details { border-top: 1px solid var(--line); }
.fm-prose details:last-of-type { border-bottom: 1px solid var(--line); }
.fm-prose summary { cursor: pointer; padding: 1.125rem 0; font-weight: 700; font-size: var(--step-1); }
.fm-prose table:not(.fmt-prices) { width: 100%; border-collapse: collapse; }
.fm-prose table:not(.fmt-prices) td, .fm-prose table:not(.fmt-prices) th { border-bottom: 1px solid var(--line); padding: .75rem .5rem .75rem 0; text-align: left; }
.fm-prose .fm-board, .fm-prose .fm-map { max-width: 44rem; }
.fm-prose .fm-map { background: var(--navy); padding: clamp(1rem, .5rem + 2vw, 2rem); border-radius: var(--radius); }
.fm-prose > .fmt-form, .fm-prose > .fmt-success, .fm-prose > .fmt-proposal { background: var(--card); padding: clamp(1.25rem, .75rem + 2vw, 2.75rem); border-radius: var(--radius); box-shadow: 0 1px 0 var(--line), 0 30px 60px -36px rgba(13, 27, 46, .4); }
.fm-prose > .fm-cta { max-width: none; margin: 4rem 0 0; padding: clamp(2rem, 1.5rem + 3vw, 4rem); border-radius: var(--radius); }
.fm-prose > .fm-cta h2 { font-size: var(--step-3); border: 0; padding: 0; margin-top: 0; }
.fm-prose .fm-actions { margin-top: 2rem; }
.fm-entry--form .fm-prose { width: 100%; max-width: 52rem; }

/* Lateral das páginas de serviço */
.fm-aside { background: var(--card); border-radius: var(--radius); padding: clamp(1.5rem, 1rem + 1vw, 2rem); box-shadow: 0 1px 0 var(--line), 0 24px 50px -32px rgba(13, 27, 46, .35); }
@media (min-width: 1024px) { .fm-aside { position: sticky; top: 6.5rem; } }
.fm-aside__title { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; font-size: var(--step-1); letter-spacing: -.015em; margin-bottom: 1rem; }
.fm-aside__steps { list-style: none; padding: 0; margin: 0 0 1.5rem; counter-reset: fm-as; }
.fm-aside__steps li { counter-increment: fm-as; position: relative; padding: .625rem 0 .625rem 2.5rem; color: var(--ink-soft); font-size: var(--step--1); line-height: 1.45; }
.fm-aside__steps li::before { content: counter(fm-as); position: absolute; left: 0; top: .5rem; width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--navy); color: var(--champagne); font: 800 .8125rem var(--font-display); font-stretch: 125%; }
.fm-aside__actions { display: grid; gap: .625rem; margin: 0; }

/* Chamada final */
.fm-cta { position: relative; overflow: hidden; isolation: isolate; background: var(--navy); color: var(--on-navy); padding: var(--section) var(--pad-x); }
.fm-cta h2 { max-width: 13ch; position: relative; }
.fm-cta__text, .fm-cta > p:not(.fm-actions) { font-size: var(--step-1); max-width: 34rem; margin-bottom: 2.25rem; color: var(--on-navy-soft); position: relative; }
.fm-cta .fm-actions { margin: 0; position: relative; }
.fm-cta__route { z-index: -1; right: -4%; top: 12%; width: 64%; height: 70%; }
.fm-cta__route .fm-route__line { stroke-width: 2; opacity: .6; }
@media (max-width: 759px) { .fm-cta__route { width: 70%; height: 14%; top: 1rem; right: -8%; } }

/* ---------- Rodapé ---------- */

.fm-footer { background: var(--navy-deep); color: var(--on-navy-soft); padding: clamp(3.5rem, 2.5rem + 3vw, 5.5rem) var(--pad-x) 5.5rem; font-size: var(--step--1); }
.fm-footer__grid { display: grid; gap: 2.5rem 2rem; grid-template-columns: 1fr 1fr; margin-bottom: 3rem; }
.fm-footer__brand { grid-column: 1 / -1; }
@media (min-width: 760px) { .fm-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1100px) {
	.fm-footer__grid { grid-template-columns: minmax(0, 1.7fr) repeat(4, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 1rem + 1.5vw, 3rem); }
	.fm-footer__brand { grid-column: auto; }
}
.fm-footer__name { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 680; letter-spacing: -.015em; color: var(--on-navy); font-size: var(--step-1); line-height: 1.2; margin: 0; }
.fm-footer__tagline { margin: .375rem 0 0; font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--champagne); }
.fm-footer__about { margin: 1.125rem 0 1.5rem; max-width: 22rem; line-height: 1.6; }
.fm-footer__contact { list-style: none; padding: 0; margin: 0; display: grid; gap: .625rem; }
.fm-footer__contact a { display: inline-flex; align-items: center; gap: .625rem; font-weight: 600; }
.fm-footer__contact .fm-icon { color: var(--champagne); flex: none; }
.fm-footer__title { font-family: var(--font-text); font-stretch: 100%; font-size: .9375rem; font-weight: 700; color: var(--on-navy); margin: 0 0 1rem; letter-spacing: 0; }
.fm-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .625rem; }
.fm-footer a { color: var(--on-navy-soft); text-decoration: none; transition: color .2s; }
.fm-footer a:hover, .fm-footer a:focus-visible { color: var(--champagne); }
.fm-footer__contact a { color: var(--on-navy); }
.fm-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-top: 1.5rem; border-top: 1px solid var(--navy-line); font-size: .8125rem; }
.fm-footer__legal p { margin: 0; }

/* Botão flutuante do WhatsApp (some enquanto o visitante digita no formulário) */
.fm-float-wa {
	position: fixed; right: 1rem; bottom: 1rem; z-index: 40;
	display: inline-flex; align-items: center; gap: .5rem;
	min-height: 3.5rem; padding: 0 1.25rem 0 1rem; border-radius: 999px;
	background: var(--champagne); color: var(--ink); font-weight: 700; text-decoration: none;
	box-shadow: 0 14px 30px -12px rgba(7, 17, 30, .55);
	transition: transform .35s var(--ease-out), opacity .3s, background-color .2s;
}
.fm-float-wa:hover { background: var(--champagne-hi); transform: translateY(-2px); }
.fmt-typing .fm-float-wa { opacity: 0; transform: translateY(140%); pointer-events: none; }
@media (max-width: 480px) {
	.fm-float-wa { padding: 0; width: 3.5rem; justify-content: center; }
	.fm-float-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- Movimento ---------- */

@keyframes fm-rise { from { opacity: 0; transform: translateY(1.25rem); } to { opacity: 1; transform: none; } }
@keyframes fm-wipe { from { clip-path: inset(0 0 100% 0); transform: translateY(.3em); } to { clip-path: inset(-10% -5% -15% -5%); transform: none; } }
@keyframes fm-flip { 0% { opacity: 0; transform: rotateX(-88deg); } 60% { opacity: 1; transform: rotateX(8deg); } 100% { opacity: 1; transform: none; } }
@keyframes fm-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fm-ping { from { transform: scale(1); opacity: .7; } to { transform: scale(3); opacity: 0; } }
@keyframes fm-flap { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.2); } }
@keyframes fm-card { from { opacity: 0; transform: translateY(2.5rem); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
	/* Só esconde quando o JS está ativo; sem JS, tudo aparece normalmente. */
	.fm-js .fm-reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); transition-delay: calc(var(--d, 0) * 50ms); }
	.fm-js .fm-reveal.is-in { opacity: 1; transform: none; }
	/* Títulos de seção sobem por trás de uma máscara, em vez de só aparecer. */
	.fm-js h2.fm-reveal { opacity: 1; transform: none; }
	.fm-js h2.fm-reveal .fm-wipe { display: inline-block; clip-path: inset(0 0 100% 0); transform: translateY(.3em); transition: clip-path .6s var(--ease-quart), transform .6s var(--ease-quart); transition-delay: inherit; }
	.fm-js h2.fm-reveal.is-in .fm-wipe { clip-path: inset(-10% -5% -15% -5%); transform: none; }

	/* Linhas de listas e tabelas entram uma a uma. */
	.fm-js .fm-services li, .fm-js .fm-airports li { opacity: 0; transform: translateY(1rem); transition: opacity .45s var(--ease-out), transform .45s var(--ease-out); transition-delay: calc(var(--i, 0) * 45ms + 60ms); }
	.fm-js .fm-airports li:nth-child(2) { --i: 1; }
	.fm-js .fm-airports li:nth-child(3) { --i: 2; }
	.fm-js .fm-services.is-in li, .fm-js .fm-airports.is-in li { opacity: 1; transform: none; }

	/* Linha do tempo: o traço corre e as paradas acendem em sequência. */
	.fm-js .fm-steps.fm-reveal { opacity: 1; transform: none; }
	.fm-js .fm-steps::before { transform: scale(0); transition: transform 1.4s var(--ease-quart) .2s; }
	.fm-js .fm-steps.is-in::before { transform: none; }
	.fm-js .fm-steps li { opacity: 0; transform: translateY(1rem); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); }
	.fm-js .fm-steps.is-in li { opacity: 1; transform: none; }
	.fm-js .fm-steps.is-in li:nth-child(2) { transition-delay: .1s; }
	.fm-js .fm-steps.is-in li:nth-child(3) { transition-delay: .2s; }
	.fm-js .fm-steps.is-in li:nth-child(4) { transition-delay: .3s; }

	/* A proposta pousa na faixa dourada e os itens se marcam um a um. */
	.fm-js .fm-promise.fm-reveal { transform: translateY(2.5rem) rotate(-.6deg); }
	.fm-js .fm-promise.fm-reveal.is-in { transform: rotate(-.6deg); }
	.fm-js .fm-promise li::before, .fm-js .fm-promise li::after { transform: scale(0); transition: transform .45s var(--ease-out); }
	.fm-js .fm-promise li::after { transform: rotate(-45deg) scale(0); }
	.fm-js .fm-promise.is-in li::before { transform: none; }
	.fm-js .fm-promise.is-in li::after { transform: rotate(-45deg); }
	.fm-js .fm-promise.is-in li:nth-child(1)::before, .fm-js .fm-promise.is-in li:nth-child(1)::after { transition-delay: .4s; }
	.fm-js .fm-promise.is-in li:nth-child(2)::before, .fm-js .fm-promise.is-in li:nth-child(2)::after { transition-delay: .55s; }
	.fm-js .fm-promise.is-in li:nth-child(3)::before, .fm-js .fm-promise.is-in li:nth-child(3)::after { transition-delay: .7s; }
	.fm-js .fm-promise.is-in li:nth-child(4)::before, .fm-js .fm-promise.is-in li:nth-child(4)::after { transition-delay: .85s; }
	.fm-js .fm-promise.is-in li:nth-child(5)::before, .fm-js .fm-promise.is-in li:nth-child(5)::after { transition-delay: 1s; }

	.fm-js .fm-board__rows li { opacity: 0; transform-origin: 50% 0; }
	.fm-js .fm-board.is-in .fm-board__rows li { animation: fm-flip .8s var(--ease-out) both; animation-delay: calc(200ms + var(--i, 0) * 110ms); }

	.fm-js .fm-map__route { stroke-dashoffset: 1; }
	.fm-js .fm-map.is-in .fm-map__route { animation: fm-draw 1.6s var(--ease-out) forwards; }
	.fm-js .fm-map.is-in .fm-map__route:nth-of-type(2) { animation-delay: .25s; }
	.fm-js .fm-map.is-in .fm-map__route:nth-of-type(3) { animation-delay: .5s; }
	.fm-js .fm-map__airport { opacity: 0; transition: opacity .6s; }
	.fm-js .fm-map.is-in .fm-map__airport { opacity: 1; transition-delay: 1.2s; }
	.fm-js .fm-map.is-in .fm-map__pulse { transform-box: fill-box; transform-origin: center; stroke: var(--on-navy); stroke-width: 1.5; animation: fm-ping 2.4s ease-out 1.6s infinite; }

	.fm-js .fm-route__line { stroke-dashoffset: 1; }
	.fm-js .fm-route.is-in .fm-route__line { animation: fm-draw 2.2s var(--ease-quart) .2s forwards; }
	.fm-js .fm-route__b { opacity: 0; transition: opacity .6s 1.8s; }
	.fm-js .fm-route.is-in .fm-route__b { opacity: .6; }

	.fm-hero h1, .fm-entry__title { animation: fm-wipe 1.1s var(--ease-quart) both; }
	.fm-hero .fm-lead, .fm-entry__lead { animation: fm-rise .9s var(--ease-out) .15s both; }
	.fm-hero .fm-actions, .fm-entry__head .fm-actions { animation: fm-rise .9s var(--ease-out) .25s both; }
	.fm-hero .fm-pass, .fm-hero .fm-board { animation: fm-card 1.1s var(--ease-out) .3s both; }
	.fm-entry__codes span { animation: fm-rise .9s var(--ease-out) both; animation-delay: calc(.2s + var(--i, 0) * .1s); }
	.fm-faq details[open] > :not(summary) { animation: fm-rise .45s var(--ease-out); }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ---------- Impressão (proposta) ---------- */
@media print {
	.fm-header, .fm-footer, .fm-float-wa, .fm-cta, .fm-aside, .fm-route { display: none !important; }
	body { background: #fff; }
	.fm-entry__head { background: none; color: #000; padding: 0 0 1rem; }
	.fm-entry__codes { display: none; }
}

/* ---------- 1.3.0: blocos trazidos do projeto Lovable ---------- */

/* Destaques no fim da abertura */
.fm-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 1.25rem 2rem; margin: 0; padding-top: 1.75rem; border-top: 1px solid var(--navy-line); }
.fm-facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--on-navy-soft); }
.fm-facts dd { margin: .375rem 0 0; font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; font-size: var(--step-0); color: var(--on-navy); letter-spacing: -.01em; }
.fm-facts dd::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .625rem; border-radius: 50%; background: var(--champagne); vertical-align: .12em; }

/* Cartões (destinos e guia) */
.fm-cards { list-style: none; padding: 0; margin: 2.5rem 0 2rem; display: grid; gap: 1.25rem; }
@media (min-width: 760px) { .fm-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fm-cards a { position: relative; display: flex; flex-direction: column; height: 100%; padding: clamp(1.375rem, 1rem + 1vw, 1.875rem); background: var(--card); color: var(--ink); text-decoration: none; border-radius: var(--radius); box-shadow: 0 1px 0 var(--line), 0 24px 50px -36px rgba(13, 27, 46, .45); border-top: 3px solid var(--champagne); transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out); }
.fm-cards a:hover, .fm-cards a:focus-visible { transform: translateY(-4px); box-shadow: 0 1px 0 var(--line), 0 30px 60px -30px rgba(13, 27, 46, .5); }
.fm-cards__tag { font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-deep); }
.fm-cards__title { margin-top: .625rem; font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; font-size: var(--step-1); line-height: 1.2; letter-spacing: -.015em; }
.fm-cards__text { margin-top: .625rem; flex: 1; color: var(--ink-soft); font-size: var(--step--1); line-height: 1.55; }
.fm-cards__more { margin-top: 1.25rem; display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: var(--step--1); }
.fm-cards a:hover .fm-arrow { transform: translateX(4px); }
.fm-cards .fm-arrow { transition: transform .3s var(--ease-out); }
.fm-prose .fm-cards { margin-top: 2rem; max-width: 44rem; grid-template-columns: 1fr; }

/* Perguntas dentro das páginas: mesmo sinal de abrir/fechar da página inicial */
.fm-prose summary { list-style: none; position: relative; padding-right: 3rem; font-family: var(--font-display); font-stretch: var(--wide); font-weight: 620; letter-spacing: -.015em; transition: color .2s; }
.fm-prose summary::-webkit-details-marker { display: none; }
.fm-prose summary::before, .fm-prose summary::after { content: ""; position: absolute; right: .875rem; top: 50%; width: 1rem; height: 2px; background: var(--gold-deep); transition: transform .35s var(--ease-out); }
.fm-prose summary::after { transform: rotate(90deg); }
.fm-prose details[open] summary::after { transform: rotate(0); }
.fm-prose summary:hover { color: var(--gold-deep); }
.fm-prose details > :not(summary) { color: var(--ink-soft); }

.fm-trips, .fm-guide { background: var(--paper); }
.fm-guide { border-top: 1px solid var(--line); }
.fm-trips .fm-lead, .fm-guide .fm-lead { color: var(--ink-soft); }
.fm-guide:not(:has(.fm-cards)), .fm-trips:not(:has(.fm-cards)) .fm-cards { display: none; }

/* Grupos e bagagem (faixa escura) */
.fm-group > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 6rem); }
@media (min-width: 960px) {
	.fm-group > .wp-block-group__inner-container { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
	.fm-group h2, .fm-group .fm-lead, .fm-group .fm-muted { grid-column: 1; }
	.fm-group .fm-promise { grid-column: 2; grid-row: 1 / span 3; }
}
.fm-group h2 { max-width: 14ch; }
.fm-group .fm-promise { background: var(--navy-2); color: var(--on-navy); box-shadow: none; }
.fm-group .fm-promise::before { display: none; }
.fm-group .fm-promise li { border-color: var(--navy-line); }
.fm-group .fm-promise li::before { background: var(--champagne); }
.fm-group .fm-promise li::after { border-color: var(--navy); }
.fm-group .fm-muted { color: var(--on-navy-soft); margin-top: 1.5rem; }

/* Avaliações */
.fm-reviews { background: var(--card); }
.fm-reviews > .wp-block-group__inner-container { display: grid; gap: 1.5rem clamp(2rem, 1rem + 4vw, 6rem); }
@media (min-width: 960px) { .fm-reviews > .wp-block-group__inner-container { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; } }
.fm-reviews__box { border: 1.5px dashed var(--line-strong); border-radius: var(--radius); padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }
.fm-reviews__box p { margin: 0; color: var(--ink-soft); font-size: var(--step-1); line-height: 1.5; }
.fm-reviews__box a { color: var(--ink); font-weight: 700; }

@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-facts > div { animation: fm-rise .8s var(--ease-out) both; animation-delay: calc(.5s + var(--i, 0) * .1s); }
	.fm-js .fm-cards li { opacity: 0; transform: translateY(1.5rem); transition: opacity .45s var(--ease-out), transform .45s var(--ease-out); transition-delay: calc(var(--i, 0) * 50ms + 60ms); }
	.fm-js .fm-cards.is-in li { opacity: 1; transform: none; }
}

/* ---------- Correções trazidas da 1.2.0 ---------- */

/* Linha de rota no celular fica fora do texto (antes cruzava o caminho de navegação). */
@media (max-width: 959px) { .fm-entry__route { display: none; } }

/* Aviso de cookies (plugin CookieAdmin da hospedagem) nas cores do site */
.cookieadmin_law_container, .cookieadmin_cookie_modal, .cookieadmin_reconsent_wrap { font-family: var(--font-text) !important; color: var(--ink) !important; }
.cookieadmin_law_container .cookieadmin_consent_inside { background: var(--card) !important; border-radius: var(--radius) !important; box-shadow: 0 24px 60px -24px rgba(7, 17, 30, .6) !important; border: 0 !important; }
.cookieadmin_law_container #cookieadmin_notice_title { font-family: var(--font-display) !important; font-stretch: var(--wide); font-weight: 650 !important; letter-spacing: -.01em; color: var(--ink) !important; }
.cookieadmin_law_container #cookieadmin_notice, .cookieadmin_law_container .cookieadmin_notice_con p { color: var(--ink-soft) !important; }
.cookieadmin_btn { font-family: var(--font-text) !important; font-weight: 700 !important; border-radius: var(--radius-s) !important; box-shadow: none !important; }
.cookieadmin_accept_btn, .cookieadmin_save_btn { background: var(--navy) !important; border-color: var(--navy) !important; color: var(--on-navy) !important; }
.cookieadmin_accept_btn:hover, .cookieadmin_save_btn:hover { background: var(--navy-3) !important; }
.cookieadmin_customize_btn, .cookieadmin_reject_btn { background: transparent !important; border: 1.5px solid var(--line-strong) !important; color: var(--ink) !important; }
.cookieadmin_customize_btn:hover, .cookieadmin_reject_btn:hover { border-color: var(--ink) !important; }
.cookieadmin_remark, .cookieadmin_showmore { color: var(--gold-deep) !important; }
input:checked + .cookieadmin_slider, input:disabled + .cookieadmin_slider { background-color: var(--navy) !important; }
.cookieadmin_reconsent_wrap { left: auto !important; right: auto !important; }
.cookieadmin_re_consent { width: 2.75rem !important; height: 2.75rem !important; padding: .5rem !important; background: var(--navy) !important; border: 2px solid var(--champagne) !important; border-radius: 50% !important; box-shadow: none !important; }
.cookieadmin_reconsent_img { width: 100% !important; height: 100% !important; filter: grayscale(1) brightness(2.2); }
@media (max-width: 759px) {
	/* No celular o aviso vira uma faixa baixa no rodapé da tela, sem cobrir o topo da página. */
	.cookieadmin_law_container { width: auto !important; left: .75rem !important; right: .75rem !important; bottom: .75rem !important; top: auto !important; max-height: 46vh; overflow: auto; }
	.cookieadmin_law_container .cookieadmin_consent_inside { padding: 1rem 1.125rem !important; }
	.cookieadmin_law_container #cookieadmin_notice_title { font-size: 1rem !important; margin: 0 0 .25rem !important; }
	.cookieadmin_law_container #cookieadmin_notice, .cookieadmin_law_container .cookieadmin_notice_con p { font-size: .8125rem !important; line-height: 1.45 !important; margin: 0 0 .75rem !important; }
	.cookieadmin_law_container .cookieadmin_consent_btns { display: grid !important; grid-template-columns: 1fr 1fr; gap: .5rem !important; }
	.cookieadmin_law_container .cookieadmin_btn { width: 100% !important; margin: 0 !important; padding: .625rem .5rem !important; font-size: .875rem !important; min-height: 2.75rem; }
	.cookieadmin_law_container .cookieadmin_accept_btn { grid-column: 1 / -1; grid-row: 1; }
	.cookieadmin_law_container .cookieadmin-poweredby { display: none !important; }
	.cookieadmin_reconsent_wrap { bottom: 1rem !important; left: 1rem !important; }
	.cookieadmin_re_consent { width: 2.5rem !important; height: 2.5rem !important; }
}

/* ---------- 1.3.0: home com fundos alternados e blocos novos ---------- */

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.fm-home-content > .fm-tone--paper { background: var(--paper); }
.fm-home-content > .fm-tone--white { background: var(--card); }
.fm-home-content > .fm-tone--navy { background: var(--navy); color: var(--on-navy); }
.fm-kicker { font-size: .75rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-deep); margin: 0 0 1rem; }
.fm-tone--navy .fm-kicker { color: var(--champagne); }

/* Painel de serviços: ícone no lugar das siglas, sem coluna de valor */
.fm-services a { grid-template-columns: 3.25rem minmax(0, 1fr) auto; grid-template-areas: "icon name go" "icon desc desc"; }
.fm-services__icon { grid-area: icon; align-self: start; width: 3.25rem; height: 3.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--paper); color: var(--gold-deep); transition: background-color .35s, color .35s; }
.fm-services a:hover .fm-services__icon, .fm-services a:focus-visible .fm-services__icon { background: var(--navy-3); color: var(--champagne); }
@media (min-width: 760px) {
	.fm-services a { grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 1.3fr) 2.75rem; grid-template-areas: "icon name desc go"; }
	.fm-services__icon { align-self: center; width: 3.5rem; height: 3.5rem; }
}

/* Imprevistos x transporte agendado */
.fm-contrast-section > .wp-block-group__inner-container { display: grid; gap: 0 clamp(2rem, 1rem + 4vw, 5rem); }
@media (min-width: 1040px) {
	.fm-contrast-section > .wp-block-group__inner-container { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; }
	.fm-contrast-section > .wp-block-group__inner-container > :not(.fm-contrast) { grid-column: 1; }
	.fm-contrast-section .fm-contrast { grid-column: 2; grid-row: 1 / span 3; }
}
.fm-contrast-section h2 { max-width: 16ch; font-size: var(--step-3); }
.fm-contrast-section .fm-lead { color: var(--ink-soft); margin-bottom: 2.5rem; }
.fm-contrast { border-radius: calc(var(--radius) * 1.6); overflow: hidden; background: var(--card); box-shadow: 0 1px 0 var(--line), 0 40px 80px -48px rgba(13, 27, 46, .55); position: relative; }
.fm-contrast::before { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 58%; background: var(--navy); }
.fm-contrast > * { position: relative; }
.fm-contrast__head, .fm-contrast__rows li { display: grid; grid-template-columns: 42% 58%; }
.fm-contrast__label { padding: 1.25rem 1.25rem .75rem 1.5rem; font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.fm-contrast__label--bad { color: #a3352b; }
.fm-contrast__label--good { color: var(--champagne); padding-left: 1.75rem; }
.fm-contrast__rows { list-style: none; margin: 0; padding: 0; }
.fm-contrast__rows li + li > * { border-top: 1px solid var(--line); }
.fm-contrast__rows li + li > .fm-contrast__good { border-top-color: var(--navy-line); }
.fm-contrast__bad, .fm-contrast__good { display: flex; align-items: center; gap: .75rem; padding: 1.125rem 1.25rem 1.125rem 1.5rem; line-height: 1.35; }
.fm-contrast__bad { color: var(--ink-soft); font-size: var(--step--1); }
.fm-contrast__mark { flex: none; width: 1.5rem; height: 1.5rem; display: grid; place-items: center; border-radius: 50%; background: rgba(163, 53, 43, .1); color: #a3352b; }
.fm-contrast__good { color: var(--on-navy); font-weight: 700; padding-left: 1.75rem; }
.fm-contrast__icon { flex: none; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: var(--radius-s); background: rgba(217, 194, 150, .14); color: var(--champagne); }
.fm-contrast__cta { margin: 0; padding: 1.5rem 1.75rem 1.75rem calc(42% + 1.75rem); }
@media (max-width: 699px) {
	.fm-contrast::before { display: none; }
	.fm-contrast__head { display: none; }
	.fm-contrast__rows li { grid-template-columns: 1fr; padding: .375rem; }
	.fm-contrast__rows li + li > * { border-top: 0; }
	.fm-contrast__bad { padding: .875rem .875rem .5rem; text-decoration: line-through; text-decoration-color: rgba(163, 53, 43, .45); }
	.fm-contrast__good { background: var(--navy); border-radius: var(--radius-s); padding: .875rem; }
	.fm-contrast__cta { padding: 1rem .375rem .375rem; }
	.fm-contrast__cta .fm-btn { width: 100%; justify-content: center; }
}

/* Serviços em cartões + faixa de empresas */
.fm-scards-section { text-align: center; }
.fm-scards-section h2 { margin-inline: auto; }
.fm-scards-section h2::after { content: ""; display: block; width: 4.5rem; height: 3px; margin: 1.25rem auto 0; background: var(--champagne); border-radius: 2px; }
.fm-scards { text-align: left; margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
.fm-scards__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
@media (min-width: 860px) { .fm-scards__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fm-scard { display: flex; flex-direction: column; background: var(--card); border-radius: calc(var(--radius) * 1.4); padding: clamp(1.5rem, 1.2rem + 1vw, 2rem); box-shadow: 0 1px 0 var(--line), 0 28px 56px -40px rgba(13, 27, 46, .45); transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out); }
.fm-scard:hover { transform: translateY(-4px); box-shadow: 0 1px 0 var(--line), 0 36px 64px -36px rgba(13, 27, 46, .5); }
.fm-scard__icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: var(--radius-s); background: var(--navy); color: var(--champagne); }
.fm-scard__title { margin: 1.25rem 0 0; padding-bottom: 1rem; border-bottom: 1px solid var(--line); font-size: var(--step-1); }
.fm-scard__list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 1rem; flex: 1; align-content: start; }
.fm-scard__list li { display: flex; gap: .625rem; align-items: flex-start; font-size: var(--step--1); color: var(--ink-soft); line-height: 1.45; }
.fm-scard__list .fm-icon { flex: none; margin-top: .15rem; color: var(--gold-deep); }
.fm-scard__list a { display: inline-block; padding: .5rem 0; margin: -.5rem 0; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: .2em; } /* área de toque maior sem mudar o visual */
.fm-scard__list a:hover { text-decoration-color: var(--gold); }
.fm-scard__note { margin: 1.25rem 0 0; padding: .75rem .875rem; border-radius: var(--radius-s); background: var(--paper); border: 1px solid var(--line); font-size: .875rem; font-weight: 700; color: var(--ink); }
.fm-scard__more { margin-top: 1.5rem; display: inline-flex; gap: .5rem; align-items: center; font-weight: 700; font-size: var(--step--1); color: var(--ink); text-decoration: none; }
.fm-scard__more:hover .fm-arrow { transform: translateX(4px); }
.fm-scard__more .fm-arrow { transition: transform .3s var(--ease-out); }
.fm-scards__corp { margin-top: 1.25rem; display: grid; gap: 1.5rem; align-items: center; background: var(--navy); color: var(--on-navy); border-radius: calc(var(--radius) * 1.6); padding: clamp(1.75rem, 1.2rem + 2vw, 3rem); box-shadow: 0 40px 80px -50px rgba(7, 17, 30, .8); }
@media (min-width: 900px) { .fm-scards__corp { grid-template-columns: auto minmax(0, 1fr) auto; gap: 2.5rem; } }
.fm-scards__corpicon { width: 5.5rem; height: 5.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--navy-2); border: 1px solid var(--navy-line); color: var(--champagne); }
.fm-scards__corp h3 { color: var(--on-navy); font-size: var(--step-2); margin: 0 0 1rem; }
.fm-scards__corp ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .625rem 2rem; }
@media (min-width: 640px) { .fm-scards__corp ul { grid-template-columns: 1fr 1fr; } }
.fm-scards__corp li { position: relative; padding-left: 1.25rem; color: var(--on-navy-soft); font-size: var(--step--1); }
.fm-scards__corp li::before { content: ""; position: absolute; left: 0; top: .55em; width: .45rem; height: .45rem; border-top: 2px solid var(--champagne); border-right: 2px solid var(--champagne); transform: rotate(45deg); }

/* Grupos em fundo claro */
.fm-tone--white.fm-group .fm-promise { background: var(--navy); }
.fm-tone--white.fm-group .fm-muted { color: var(--ink-soft); }
.fm-tone--white.fm-group .fm-lead { color: var(--ink-soft); }

/* Motorista por hora sem valores */
.fm-on-request { background: var(--card); border-radius: var(--radius); padding: clamp(1.25rem, 1rem + 1vw, 2rem); box-shadow: 0 1px 0 var(--line), 0 24px 50px -36px rgba(13, 27, 46, .4); border-top: 3px solid var(--champagne); }
.fm-on-request__title { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 680; font-size: var(--step-2); margin: 0 0 1rem; }
.fm-prose .fm-on-request ul li, .fm-on-request ul li { padding-block: .625rem; }
.fm-on-request__note { color: var(--ink-soft); font-size: var(--step--1); margin: 1rem 0 1.25rem; }
.fm-on-request p:last-child { margin: 0; }

/* Depoimentos */
.fm-testi-section { text-align: center; }
.fm-testi-section h2 { margin-inline: auto; color: var(--on-navy); }
.fm-testi { margin-top: 2rem; }
.fm-testi__stats { list-style: none; margin: 0 auto clamp(2rem, 1.5rem + 2vw, 3.25rem); padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 2.5rem; color: var(--on-navy-soft); }
.fm-testi__stats li { display: inline-flex; align-items: center; gap: .625rem; }
.fm-testi__stats li + li::before { content: ""; width: .375rem; height: .375rem; border-radius: 50%; background: var(--champagne); opacity: .5; margin-right: 1.875rem; margin-left: -1.25rem; }
.fm-stars { display: inline-flex; gap: 2px; color: rgba(13, 27, 46, .18); }
.fm-tone--navy .fm-testi__stats .fm-stars { color: rgba(242, 236, 225, .2); }
.fm-stars .is-on { color: var(--champagne); }
.fm-testi__card .fm-stars .is-on { color: #c89b3c; }
.fm-testi__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--pad-x) * -1); padding: .5rem var(--pad-x) 1.5rem; scroll-padding-inline: var(--pad-x); }
.fm-testi__viewport::-webkit-scrollbar { display: none; }
.fm-testi__viewport:focus-visible { outline: 2px solid var(--champagne); outline-offset: -2px; }
.fm-testi__track { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: min(86%, 22rem); gap: 1.25rem; }
@media (min-width: 900px) { .fm-testi__track { grid-auto-columns: calc((100% - 2.5rem) / 3); } }
.fm-testi__card { scroll-snap-align: start; background: var(--card); color: var(--ink); border-radius: calc(var(--radius) * 1.4); padding: 2rem 1.5rem 1.75rem; display: flex; flex-direction: column; align-items: center; text-align: center; }
.fm-testi__avatar { width: 4.25rem; height: 4.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--navy); color: var(--champagne); font-family: var(--font-display); font-stretch: 125%; font-weight: 800; font-size: 1.25rem; letter-spacing: .02em; box-shadow: 0 0 0 4px var(--card), 0 0 0 5px var(--line); }
.fm-testi__name { margin: 1rem 0 0; font-weight: 800; color: var(--ink); }
.fm-testi__source, .fm-testi__when { margin: .25rem 0 0; font-size: .8125rem; color: var(--ink-soft); }
.fm-testi__card .fm-stars { margin-top: .625rem; }
.fm-testi__card blockquote { margin: 1rem 0 0; }
.fm-testi__title { margin: 0; font-family: var(--font-display); font-stretch: var(--wide); font-weight: 650; font-size: var(--step-0); color: var(--ink); }
.fm-testi__text { margin: .625rem 0 0; color: var(--ink-soft); font-size: var(--step--1); line-height: 1.6; }
.fm-testi__nav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: .5rem; }
.fm-testi__nav[hidden] { display: none; }
.fm-testi__btn { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--navy-line); background: transparent; color: var(--on-navy); cursor: pointer; transition: background-color .2s, border-color .2s, color .2s; }
.fm-testi__btn:hover:not(:disabled) { background: var(--champagne); border-color: var(--champagne); color: var(--ink); }
.fm-testi__btn:disabled { opacity: .35; cursor: default; }
.fm-testi__dots { display: flex; gap: .5rem; }
.fm-testi__dots span { width: .5rem; height: .5rem; border-radius: 999px; background: rgba(242, 236, 225, .25); transition: width .3s var(--ease-out), background-color .3s; }
.fm-testi__dots span.is-on { width: 1.5rem; background: var(--champagne); }
/* Nota do Google (enquanto não há depoimentos publicados) */
.fm-gbadge { display: grid; justify-items: center; gap: .5rem; max-width: 40rem; margin: 0 auto; text-align: center; }
.fm-gbadge__score { display: flex; align-items: center; gap: .875rem; margin: 0; }
.fm-gbadge__num { font-family: var(--font-display); font-stretch: var(--wide); font-weight: 750; font-size: var(--step-4); line-height: 1; letter-spacing: -.03em; color: var(--ink); }
.fm-gbadge .fm-stars svg { width: 1.5rem; height: 1.5rem; }
.fm-gbadge__count, .fm-gbadge__lead { margin: 0; color: var(--ink-soft); font-size: var(--step-1); line-height: 1.5; }
.fm-gbadge__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.25rem; }
.fm-gbadge .fm-btn--line-light { border-color: var(--line-strong); color: var(--ink); }
.fm-tone--navy .fm-gbadge__num { color: var(--on-navy); }
.fm-tone--navy .fm-gbadge .fm-stars { color: rgba(242, 236, 225, .2); }
.fm-tone--navy .fm-gbadge__count, .fm-tone--navy .fm-gbadge__lead { color: var(--on-navy-soft); }
.fm-tone--navy .fm-gbadge .fm-btn--line-light { border-color: rgba(217, 194, 150, .55); color: var(--on-navy); }

@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-contrast__rows li, .fm-js .fm-scard { opacity: 0; transform: translateY(1.25rem); transition: opacity .45s var(--ease-out), transform .45s var(--ease-out), box-shadow .4s var(--ease-out); transition-delay: calc(var(--i, 0) * 50ms + 60ms); }
	.fm-js .fm-contrast.is-in .fm-contrast__rows li, .fm-js .fm-scards.is-in .fm-scard { opacity: 1; transform: none; }
	.fm-js .fm-scards.is-in .fm-scard:hover { transform: translateY(-4px); transition-delay: 0s; }
	.fm-testi__viewport { scroll-behavior: smooth; }
}
.fm-testi__source a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }

/* Sugestões de endereço no cartão de trajeto */
.fm-places { position: absolute; z-index: 1000; box-sizing: border-box; margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line-strong); border-radius: 10px; box-shadow: 0 14px 34px rgba(11, 26, 44, .18); max-height: 280px; overflow: auto; text-align: left; }
.fm-places li { margin: 0; padding: .6rem .75rem; border-radius: 8px; cursor: pointer; color: var(--navy); line-height: 1.35; }
.fm-places li strong { display: block; font-weight: 700; font-size: var(--step--1); }
.fm-places li span { display: block; font-size: .8rem; color: var(--ink-soft); }
.fm-places li:hover, .fm-places li[aria-selected="true"] { background: #f3eee4; }
