/* ==========================================================================
   Afonso Táxi — folha de estilos única (mobile-first, sem dependências)
   Paleta derivada do logotipo: azul-marinho + amarelo táxi + grafite.
   ========================================================================== */

:root {
  /* Cores */
  --azul: #142d6e;
  --azul-900: #0c1c47;
  --azul-100: #e8edf8;
  --amarelo: #f5b800;
  --amarelo-100: #fff4cc;
  --whatsapp: #25d366;       /* verde oficial do WhatsApp */
  --whatsapp-hover: #1ebe5d;
  --whatsapp-texto: #111b21; /* texto escuro: contraste AA sobre o verde oficial */
  --grafite: #1f2328;
  --texto: #1f2328;
  --texto-suave: #4a5260;
  --fundo: #ffffff;
  --fundo-alt: #f4f5f7;
  --linha: #dde1e7;
  --foco: #142d6e;

  /* Tipografia */
  --fonte: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fonte-mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, "Liberation Mono", monospace;
  --t-sm: 0.9375rem;
  --t-base: 1.0625rem;
  --t-lg: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
  --t-h3: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
  --t-h2: clamp(1.625rem, 1.3rem + 1.5vw, 2.375rem);
  --t-h1: clamp(2.125rem, 1.5rem + 3vw, 3.75rem);

  /* Espaço e forma */
  --gutter: clamp(1rem, 0.6rem + 2vw, 2rem);
  --secao: clamp(3.5rem, 2.5rem + 4vw, 6rem);
  --largura: 72rem;
  --raio: 10px;
  --raio-sm: 6px;
  --sombra: 0 1px 2px rgb(12 28 71 / 0.06), 0 8px 24px -12px rgb(12 28 71 / 0.18);
  --altura-cabecalho: 6.5rem;
  --altura-barra-movel: 4.5rem;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--fonte);
  font-size: var(--t-base);
  line-height: 1.6;
  color: var(--texto);
  background: var(--fundo);
  padding-bottom: calc(var(--altura-barra-movel) + env(safe-area-inset-bottom, 0px));
}
img { display: block; max-width: 100%; height: auto; }
svg { flex-shrink: 0; }
a { color: var(--azul); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 0.75rem; color: var(--azul-900); text-wrap: balance; }
h1 { font-size: var(--t-h1); font-weight: 800; }
h2 { font-size: var(--t-h2); font-weight: 800; }
h3 { font-size: var(--t-h3); font-weight: 700; }
p { margin: 0 0 1rem; }
p, li { text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
[id] { scroll-margin-top: calc(var(--altura-cabecalho) + 0.75rem); }

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

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.texto-suave { color: var(--texto-suave); }
.acoes--espaco { margin-top: 1.5rem; }
.cartao-acao__telefone { margin: 1rem 0 0; }

.visualmente-oculto {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.pular-link {
  position: absolute; left: 0.75rem; top: -4rem; z-index: 100;
  background: var(--azul-900); color: #fff; padding: 0.75rem 1rem; border-radius: var(--raio-sm);
  font-weight: 700; text-decoration: none; transition: top 0.15s;
}
.pular-link:focus { top: 0.75rem; --foco: var(--amarelo); }

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

.icone { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  min-height: 3.25rem; padding: 0.8rem 1.4rem;
  border: 2px solid transparent; border-radius: var(--raio);
  font: inherit; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none;
  cursor: pointer; transition: background-color 0.15s, border-color 0.15s, transform 0.1s;
}
.botao:active { transform: translateY(1px); }
.botao--whatsapp { background: var(--whatsapp); color: var(--whatsapp-texto); }
.botao--whatsapp:hover { background: var(--whatsapp-hover); }
.botao--whatsapp .icone { width: 1.4em; height: 1.4em; }
.botao--ligar { background: var(--amarelo); color: var(--grafite); }
.botao--ligar:hover { background: #e0a800; }
.botao--contorno { background: transparent; color: var(--azul); border-color: currentColor; }
.botao--contorno:hover { background: var(--azul-100); }
.botao--compacto { min-height: 2.75rem; padding: 0.55rem 1rem; font-size: var(--t-sm); }
.acoes { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.acoes .botao { flex: 1 1 auto; }
.link-seta { font-weight: 700; display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.75rem; }

/* ---------- Barra superior ---------- */
.barra-topo { background: var(--azul-900); color: #fff; font-size: 0.875rem; --foco: var(--amarelo); }
.barra-topo .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.5rem; }
.barra-topo p { margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.barra-topo .icone { color: var(--amarelo); }
.barra-topo a[href*="wa.me"] .icone { color: var(--whatsapp); }
.barra-topo__atalhos { display: none; gap: 1.25rem; }
@media (max-width: 47.99em) { .barra-topo { display: none; } }
.barra-topo__atalhos a { color: #fff; font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: 0.4rem; }

/* ---------- Cabeçalho ---------- */
.cabecalho {
  position: sticky; top: 0; z-index: 50;
  background: rgb(255 255 255 / 0.97);
  border-bottom: 1px solid var(--linha);
}
.cabecalho .container { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; min-height: var(--altura-cabecalho); }
.marca { display: inline-flex; align-items: center; padding-block: 0.4rem; }
.marca { margin-right: auto; }
.marca img { width: 130px; height: auto; }
.menu-toggle {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; padding: 0.5rem 0.9rem;
  background: var(--fundo-alt); color: var(--azul-900); border: 1px solid var(--linha); border-radius: var(--raio-sm);
  font: inherit; font-weight: 700; cursor: pointer;
}
.menu-toggle .icone-fechar { display: none; }
.menu-toggle[aria-expanded="true"] .icone-abrir { display: none; }
.menu-toggle[aria-expanded="true"] .icone-fechar { display: inline; }
.nav-principal ul { list-style: none; }
.nav-principal a { display: flex; align-items: center; min-height: 2.75rem; color: var(--grafite); font-weight: 600; text-decoration: none; }
.nav-principal a:hover { color: var(--azul); text-decoration: underline; }
.cabecalho__cta { display: none; order: 2; }
.menu-toggle { order: 3; }

/* Menu móvel: só é recolhido quando o JavaScript está ativo */
.js .nav-principal {
  display: none; position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-bottom: 1px solid var(--linha); box-shadow: 0 16px 24px -16px rgb(12 28 71 / 0.25);
  max-height: calc(100vh - var(--altura-cabecalho)); overflow-y: auto;
}
.js .nav-principal.aberto { display: block; }
.js .nav-principal ul { padding: 0.5rem var(--gutter) 1rem; }
.js .nav-principal li + li { border-top: 1px solid var(--linha); }
html:not(.js) .menu-toggle { display: none; }
html:not(.js) .cabecalho .container { flex-wrap: wrap; }
html:not(.js) .nav-principal ul { display: flex; flex-wrap: wrap; column-gap: 1.25rem; }

/* ---------- Hero ---------- */
/* Compacto no celular: título, texto, botões e resumo cabem na primeira tela */
.hero { padding-block: 1.25rem 0; background: linear-gradient(180deg, var(--fundo-alt) 0%, var(--fundo) 100%); }
.hero__grade { display: grid; gap: 1.5rem; align-items: center; }
.hero h1 { font-size: clamp(2rem, 1.6rem + 2vw, 2.75rem); margin-bottom: 0.5rem; }
.hero__texto p.lead { font-size: var(--t-base); color: var(--texto-suave); max-width: 36rem; margin-bottom: 0; }
.hero .acoes { margin-block: 1rem 0.25rem; }
.hero__resumo { list-style: none; display: grid; gap: 0.25rem; margin-top: 0.5rem; font-size: var(--t-sm); color: var(--texto-suave); }
@media (max-width: 59.99em) {
  .hero { padding-top: 1rem; }
  .hero h1 { margin-bottom: 0.35rem; }
  .hero__texto p.lead { line-height: 1.5; }
  .hero .acoes { gap: 0.5rem; margin-block: 0.75rem 0; }
  .hero .link-seta { min-height: 2.5rem; }
  .hero__resumo { margin-top: 0.25rem; }
}
.hero__resumo li { display: flex; align-items: center; gap: 0.6rem; }
.hero__resumo .icone { color: var(--azul); }
.hero__foto { margin: 0; position: relative; }
.hero__foto img { width: 100%; border-radius: var(--raio); aspect-ratio: 3 / 2; object-fit: cover; box-shadow: var(--sombra); }
.hero__foto figcaption {
  position: absolute; left: 0.75rem; bottom: 0.75rem;
  background: rgb(12 28 71 / 0.88); color: #fff; font-size: 0.875rem; font-weight: 600;
  padding: 0.35rem 0.7rem; border-radius: var(--raio-sm);
}

/* Faixa quadriculada de táxi (decorativa, uma única vez) */
.faixa-taxi {
  height: 14px; margin-top: clamp(2rem, 1rem + 3vw, 3.5rem);
  background: repeating-conic-gradient(var(--grafite) 0 25%, var(--amarelo) 0 50%) 0 0 / 14px 14px;
}

/* ---------- Seções ---------- */
.secao { padding-block: var(--secao); }
.secao--alt { background: var(--fundo-alt); }
.secao__topo { max-width: 44rem; margin-bottom: 2.25rem; }
.secao__topo p { color: var(--texto-suave); font-size: var(--t-lg); margin: 0; }
.secao__cta { margin-top: 2rem; }

/* Serviços */
.servicos { list-style: none; display: grid; gap: 1rem; counter-reset: servico; }
.servico {
  position: relative; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 1.5rem 1.5rem 1.5rem; border-top: 4px solid var(--amarelo);
}
.servico__icone {
  display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-bottom: 1rem;
  border-radius: var(--raio-sm); background: var(--azul-100); color: var(--azul);
}
.servico__icone .icone { width: 1.4rem; height: 1.4rem; }
.servico p { margin: 0; color: var(--texto-suave); }

/* Área de atendimento — painel de destinos */
.area__grade { display: grid; gap: 2rem; align-items: start; }
.area__texto p { color: var(--texto-suave); }
.area__foto { margin: 1.5rem 0 0; }
.area__foto img { width: 100%; border-radius: var(--raio); aspect-ratio: 3 / 2; object-fit: cover; }
.painel {
  background: var(--azul-900); color: #fff; border-radius: var(--raio); padding: 0.5rem 1.25rem 1rem;
  box-shadow: var(--sombra); --foco: var(--amarelo); /* contorno de foco visível sobre o fundo escuro */
}
.painel__titulo {
  display: flex; justify-content: space-between; gap: 1rem; margin: 0;
  padding: 0.9rem 0 0.75rem; border-bottom: 2px solid var(--amarelo);
  font-family: var(--fonte-mono); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--amarelo);
}
.painel ul { list-style: none; }
.painel li {
  display: grid; grid-template-columns: 3.5rem 1fr auto; align-items: center; gap: 0.75rem;
  padding: 0.8rem 0; border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
.painel li:last-child { border-bottom: 0; }
.painel__codigo {
  font-family: var(--fonte-mono); font-weight: 700; font-size: 0.9375rem; letter-spacing: 0.06em;
  color: var(--amarelo); display: inline-flex; align-items: center;
}
.painel__codigo .icone { width: 1.35rem; height: 1.35rem; }
.painel__nome { font-weight: 600; line-height: 1.35; }
.painel__nome small { display: block; font-weight: 400; color: #c9d2e8; font-size: 0.875rem; }
.painel__status {
  font-family: var(--fonte-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--grafite); background: var(--amarelo); padding: 0.2rem 0.45rem; border-radius: 4px; white-space: nowrap;
}

/* Atendimento direto */
.direto__grade { display: grid; gap: 2rem; align-items: center; }
.direto__foto { margin: 0; max-width: 17rem; }
.direto__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); }
.direto__foto figcaption { margin-top: 0.75rem; font-size: var(--t-sm); color: var(--texto-suave); }
.direto__foto figcaption strong { display: block; color: var(--azul-900); font-size: var(--t-base); }
.lista-check { list-style: none; display: grid; gap: 0.9rem; }
.lista-check li { display: grid; grid-template-columns: 1.75rem 1fr; gap: 0.6rem; align-items: start; }
.lista-check .icone {
  width: 1.75rem; height: 1.75rem; padding: 0.3rem; border-radius: 50%;
  background: var(--amarelo); color: var(--grafite); stroke-width: 3;
}

/* Tarifa — trajeto em três paradas */
.trajeto { list-style: none; display: grid; gap: 0; counter-reset: passo; max-width: 46rem; }
.trajeto li { position: relative; padding: 0 0 1.75rem 3.75rem; counter-increment: passo; }
.trajeto li::before {
  content: counter(passo); position: absolute; left: 0; top: -0.2rem;
  width: 2.5rem; height: 2.5rem; display: grid; place-items: center;
  background: var(--azul); color: #fff; font-weight: 800; border-radius: 50%;
  box-shadow: 0 0 0 4px var(--fundo-alt);
}
.trajeto li::after {
  content: ""; position: absolute; left: calc(1.25rem - 1px); top: 2.5rem; bottom: 0.25rem;
  border-left: 2px dashed var(--azul);
}
.trajeto li:last-child { padding-bottom: 0; }
.trajeto li:last-child::after { display: none; }
.trajeto li:last-child::before { background: var(--amarelo); color: var(--grafite); }
.trajeto strong { display: block; color: var(--azul-900); font-size: var(--t-lg); }
.trajeto span { color: var(--texto-suave); }
.tarifa__grade { display: grid; gap: 2.5rem; align-items: start; }
.tarifa__texto p { color: var(--texto-suave); font-size: var(--t-lg); }

/* Reservas */
.reservas__grade { display: grid; gap: 2rem; align-items: start; }
.lista-dados { list-style: none; display: grid; gap: 0; border: 1px solid var(--linha); border-radius: var(--raio); background: #fff; }
.lista-dados li { display: flex; gap: 0.75rem; padding: 0.85rem 1.1rem; border-bottom: 1px solid var(--linha); }
.lista-dados li:last-child { border-bottom: 0; }
.lista-dados .icone { color: var(--azul); margin-top: 0.2rem; }
.lista-dados em { font-style: normal; color: var(--texto-suave); font-size: var(--t-sm); }
.cartao-acao { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.5rem; box-shadow: var(--sombra); }
.cartao-acao h3 { margin-bottom: 0.5rem; }
.cartao-acao > p { color: var(--texto-suave); }
.cartao-acao .acoes { flex-direction: column; align-items: stretch; }
.cartao-acao .acoes .botao { flex: 0 0 auto; }
.aviso {
  display: flex; gap: 0.75rem; margin-top: 1.25rem; padding: 1rem 1.1rem;
  background: var(--amarelo-100); border-left: 4px solid var(--amarelo); border-radius: var(--raio-sm);
  font-size: var(--t-sm);
}
.aviso .icone { color: var(--grafite); margin-top: 0.15rem; }
.aviso p { margin: 0; }

/* FAQ */
.faq { max-width: 50rem; display: grid; gap: 0.75rem; }
.faq details { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); }
.faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1rem 1.25rem; min-height: 3.25rem; font-weight: 700; color: var(--azul-900);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; flex-shrink: 0; width: 1.75rem; height: 1.75rem; display: grid; place-items: center;
  border-radius: 50%; background: var(--azul-100); color: var(--azul); font-size: 1.25rem; line-height: 1;
}
.faq details[open] summary::after { content: "\2212"; }
.faq details > div { padding: 0 1.25rem 1.1rem; color: var(--texto-suave); }
.faq details > div p { margin: 0; }

/* Contato */
.contato__grade { display: grid; gap: 2rem; }
.dados-contato { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--linha); }
.dados-contato > div { display: grid; gap: 0.15rem; padding: 0.9rem 0; border-bottom: 1px solid var(--linha); }
.dados-contato dt { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-suave); }
.dados-contato dd { margin: 0; font-size: var(--t-lg); font-weight: 600; overflow-wrap: anywhere; }
.dados-contato dd small { display: block; font-size: var(--t-sm); font-weight: 400; color: var(--texto-suave); }

/* Chamada final */
.chamada { background: var(--azul); color: #fff; --foco: var(--amarelo); }
.chamada h2 { color: #fff; }
.chamada p { color: #dfe6f5; font-size: var(--t-lg); max-width: 40rem; }
.chamada .acoes { margin-top: 1.5rem; max-width: 34rem; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--fundo-alt); border-top: 4px solid var(--amarelo); padding-block: 3rem 2rem; font-size: var(--t-sm); }
.rodape__grade { display: grid; gap: 2rem; }
.rodape__marca img { width: 170px; height: auto; margin-bottom: 0.75rem; }
.rodape h2 { font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--texto-suave); margin-bottom: 0.5rem; }
.rodape ul { list-style: none; }
.rodape li a, .rodape__contato a { display: inline-flex; align-items: center; min-height: 2.5rem; color: var(--grafite); }
/* Ícone oficial do Instagram ao lado do link */
.link-icone { display: inline-flex; align-items: center; }
.icone--instagram { width: 1.35em; height: 1.35em; margin-right: 0.45rem; }
.rodape__base { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--linha); color: var(--texto-suave); }
.rodape__base p { margin: 0; }

/* ---------- Barra fixa móvel ---------- */
.barra-movel {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
  padding: 0.5rem var(--gutter) calc(0.5rem + env(safe-area-inset-bottom, 0px));
  background: #fff; border-top: 1px solid var(--linha); box-shadow: 0 -6px 18px -12px rgb(12 28 71 / 0.35);
}
.barra-movel .botao { min-height: 3.25rem; padding-inline: 0.75rem; }

/* ---------- Aviso de cookies (consentimento LGPD) ---------- */
/* No celular fica acima da barra fixa de contato; "Recusar" tem o mesmo destaque que "Aceitar". */
.consentimento {
  position: fixed; left: 0; right: 0; z-index: 70;
  bottom: calc(var(--altura-barra-movel) + env(safe-area-inset-bottom, 0px));
  background: var(--azul-900); color: #fff; border-top: 4px solid var(--amarelo);
  box-shadow: 0 -6px 18px -12px rgb(12 28 71 / 0.5); --foco: var(--amarelo);
}
.consentimento[hidden] { display: none; }
.consentimento:focus { outline: none; }
body.sem-barra-movel .consentimento { bottom: 0; }
.consentimento__grade { display: grid; gap: 0.75rem; padding-block: 1rem; }
.consentimento__texto { margin: 0; font-size: var(--t-sm); line-height: 1.5; }
.consentimento__texto a { color: #fff; }
.consentimento__acoes { display: flex; gap: 0.5rem; }
.consentimento__acoes .botao { flex: 1 1 0; }
.consentimento__recusar { background: transparent; color: #fff; border-color: currentColor; }
.consentimento__recusar:hover { background: rgb(255 255 255 / 0.1); }
.link-botao {
  display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0; border: 0; background: none;
  font: inherit; color: var(--grafite); text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer;
}

/* ---------- Páginas internas (política, 404) ---------- */
body.sem-barra-movel { padding-bottom: 0; }
.pagina { padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.texto-longo { max-width: 46rem; }
.texto-longo h2 { font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem); margin-top: 2.5rem; }
.texto-longo ul { padding-left: 1.25rem; margin-bottom: 1rem; }
.texto-longo li { margin-bottom: 0.4rem; }
.pendencia {
  background: var(--amarelo-100); border: 1px dashed #b08400; border-radius: var(--raio-sm);
  padding: 0.1rem 0.35rem; font-weight: 600;
}
.bloco-pendencia { border: 2px dashed #b08400; background: var(--amarelo-100); border-radius: var(--raio); padding: 1rem 1.25rem; margin-bottom: 2rem; }
.bloco-pendencia p:last-child { margin-bottom: 0; }
.erro-404 { text-align: left; max-width: 40rem; }
.erro-404__codigo { font-family: var(--fonte-mono); font-weight: 700; color: var(--azul); letter-spacing: 0.1em; margin-bottom: 0.5rem; }

/* ==========================================================================
   Breakpoints
   ========================================================================== */
@media (min-width: 30em) {
  .marca img { width: 160px; }
}

@media (min-width: 40em) {
  .servicos { grid-template-columns: repeat(2, 1fr); }
  .hero__resumo { grid-template-columns: repeat(3, auto); justify-content: start; column-gap: 1.5rem; }
  .rodape__grade { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 48em) {
  body { padding-bottom: 0; }
  .barra-movel { display: none; }
  .barra-topo__atalhos { display: flex; }
  .direto__grade { grid-template-columns: minmax(0, 20rem) 1fr; gap: 3rem; }
  .direto__foto { max-width: 20rem; }
  .contato__grade { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
  .reservas__grade { grid-template-columns: 1.1fr 1fr; gap: 3rem; }
  .consentimento { bottom: 0; }
  .consentimento__grade { grid-template-columns: 1fr auto; align-items: center; gap: 1.5rem; }
  .consentimento__acoes .botao { flex: 0 0 auto; min-width: 8rem; }
}

@media (min-width: 60em) {
  :root { --altura-cabecalho: 9.25rem; }
  .cabecalho__cta { display: inline-flex; }
  .marca img { width: 190px; }
  /* Hero ocupa exatamente a área visível abaixo da barra superior e do cabeçalho */
  .hero {
    --altura-topo: 2.4rem;
    --hero-pad: clamp(1rem, 3svh, 2.25rem);
    --hero-disp: calc(100svh - var(--altura-cabecalho) - var(--altura-topo) - 2 * var(--hero-pad) - 14px);
    padding-top: var(--hero-pad);
  }
  .hero .faixa-taxi { margin-top: var(--hero-pad); }
  .hero__grade { grid-template-columns: 1.05fr 1fr; gap: 3rem; min-height: min(var(--hero-disp), 44rem); }
  .hero h1 { font-size: clamp(2rem, min(7svh, 3.4vw), 3.75rem); margin-bottom: clamp(0.5rem, 1.5svh, 1rem); }
  .hero__texto p.lead { font-size: clamp(1rem, 2.4svh, 1.25rem); }
  .hero .acoes { margin-block: clamp(0.75rem, 2.5svh, 1.5rem) 0.25rem; }
  .hero .acoes .botao { flex: 0 1 auto; }
  .hero__resumo { grid-template-columns: repeat(2, auto); justify-content: start; column-gap: 1.5rem; margin-top: clamp(0.5rem, 2svh, 1.5rem); }
  .hero__foto { justify-self: end; width: min(100%, calc(var(--hero-disp) * 1.5)); }
  .area__grade { grid-template-columns: 1fr 1.05fr; gap: 3.5rem; }
  .tarifa__grade { grid-template-columns: 1fr 1fr; gap: 4rem; }
  .rodape__grade { grid-template-columns: 1.4fr 1fr 1fr; }
}

@media (min-width: 75em) {
  .servicos { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 75em) {
  .cabecalho .container { max-width: 80rem; }
  .menu-toggle { display: none; }
  .js .nav-principal { display: block; position: static; box-shadow: none; border: 0; background: none; max-height: none; overflow: visible; }
  .js .nav-principal ul, html:not(.js) .nav-principal ul { display: flex; gap: 1.25rem; padding: 0; flex-wrap: nowrap; }
  .js .nav-principal li + li { border-top: 0; }
  .nav-principal a { font-size: var(--t-sm); white-space: nowrap; }
}

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

@media print {
  .barra-topo, .barra-movel, .menu-toggle, .cabecalho__cta, .faixa-taxi, .consentimento { display: none !important; }
  .cabecalho { position: static; }
  body { padding-bottom: 0; }
}
