/* ==========================================================================
   SITE ASA: a cola entre as páginas do site e a biblioteca.
   Carregar depois dos quatro arquivos de css/. Aqui fica só o que é do
   site e não é componente: o arranjo do cabeçalho com submenus, o menu do
   celular, o rodapé em seis grupos, o botão do WhatsApp e o que cada
   página precisa para encaixar as faixas. Tudo usa os tokens de
   asa-tokens.css; nenhum valor de cor novo nasce aqui.
   Quando algo daqui se repetir em três páginas, sobe para
   asa-components.css e para 06 Componentes.
   ========================================================================== */

.site-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   CABEÇALHO
   Utility bar + navbar da biblioteca. O submenu abre ao passar o mouse, ao
   focar pelo teclado e pelo botão de seta ao lado de cada item.
   -------------------------------------------------------------------------- */
.asa-utilitybar > .asa-utilitybar__group:first-child { color: var(--asa-ink-inverse); }

.site-nav { display: flex; align-items: stretch; }

.site-nav__item {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 2px;
}

.site-nav__toggle {
  display: flex;
  align-items: center;
  padding: 0 2px;
  background: none;
  border: none;
  color: var(--asa-ink-3);
  cursor: pointer;
}

.site-nav__toggle .asa-icon { width: var(--asa-icon-dense); height: var(--asa-icon-dense); }

.site-nav__panel {
  top: calc(100% - 6px);
  left: -12px;
  min-width: 300px;
  padding: var(--asa-space-2);
}

.site-nav__item[data-aberto] .site-nav__panel,
.site-nav__item:not([data-fechado]):focus-within .site-nav__panel {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

@media (hover: hover) {
  .site-nav__item:not([data-fechado]):hover .site-nav__panel {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}

.site-nav__item[data-aberto] .site-nav__toggle .asa-icon { transform: scaleY(-1); }

.site-menu__item {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  padding-block: var(--asa-space-2);
  text-decoration: none;
}

.site-menu__item b { font-weight: var(--asa-weight-bold); }

.site-menu__item span {
  font-size: var(--asa-fs-label);
  line-height: var(--asa-lh-label);
  color: var(--asa-ink-3);
}

.site-menu__all {
  font-weight: var(--asa-weight-bold);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   MENU DO CELULAR
   -------------------------------------------------------------------------- */
.asa-navdrawer[data-state="closed"] { visibility: hidden; transition: visibility 0s var(--asa-dur-scene); }
.asa-navdrawer[data-state="open"] { visibility: visible; }

.site-drawer__group > summary {
  justify-content: space-between;
  list-style: none;
  cursor: pointer;
}

.site-drawer__group > summary::-webkit-details-marker { display: none; }
.site-drawer__group[open] > summary .asa-icon { transform: scaleY(-1); }

.site-drawer__sub {
  list-style: none;
  margin: 0;
  padding: var(--asa-space-1) 0 var(--asa-space-3);
}

.site-drawer__sub a {
  display: flex;
  align-items: center;
  min-height: var(--asa-touch-min);
  padding-left: var(--asa-space-3);
  font-size: var(--asa-fs-body-dense);
  font-weight: var(--asa-weight-medium);
  color: var(--asa-ink-2);
  text-decoration: none;
}

.site-drawer__foot {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--asa-space-3);
  padding-top: var(--asa-space-4);
  border-top: var(--asa-border-width) solid var(--asa-line-soft);
}

.site-drawer__title {
  margin: 0;
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

html[data-drawer-aberto] { overflow: hidden; }

/* --------------------------------------------------------------------------
   RODAPÉ
   asa-footer com os seis grupos da copy. No celular cada grupo é um
   acordeão (<details>); a partir de 768px todos ficam abertos.
   -------------------------------------------------------------------------- */
.site-footer__top {
  display: grid;
  gap: var(--asa-space-7);
  padding-bottom: var(--asa-space-7);
  border-bottom: var(--asa-border-width) solid var(--asa-line-inverse);
}

@media (min-width: 1024px) {
  .site-footer__top { grid-template-columns: 1fr auto; align-items: end; }
}

.site-footer__brand img { height: 28px; width: auto; }

.site-footer__brand p,
.site-footer__contact p {
  margin: var(--asa-space-3) 0 0;
  max-width: 46ch;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-inverse-2);
}

.site-footer__contact .site-footer__title {
  margin: 0;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink-inverse);
}

.site-footer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-3);
  margin-top: var(--asa-space-4);
}

.site-btn--on-dark {
  color: var(--asa-ink-inverse);
  border-color: var(--asa-line-inverse);
}

.site-btn--on-dark:hover:not(:disabled) {
  color: var(--asa-ink-inverse);
  border-color: var(--asa-ink-inverse);
}

.site-footer__hub { grid-template-columns: 1fr; gap: 0; }

@media (min-width: 768px) {
  .site-footer__hub { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--asa-space-7) var(--asa-space-6); }
}

@media (min-width: 1024px) {
  .site-footer__hub { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.site-footer__group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--asa-touch-min);
  margin: 0;
  list-style: none;
  cursor: pointer;
  border-bottom: 1px solid var(--asa-line-inverse);
}

.site-footer__group > summary::-webkit-details-marker { display: none; }

.site-footer__group > summary::after {
  content: "+";
  font-weight: var(--asa-weight-regular);
  color: var(--asa-ink-inverse-2);
}

.site-footer__group[open] > summary::after { content: "−"; }

.site-footer__group[open] { padding-bottom: var(--asa-space-3); }

@media (min-width: 768px) {
  .site-footer__group > summary {
    min-height: 0;
    margin-bottom: var(--asa-space-3);
    border-bottom: none;
    pointer-events: none;
  }
  .site-footer__group > summary::after,
  .site-footer__group[open] > summary::after { content: none; }
  .site-footer__group[open] { padding-bottom: 0; }
}

.site-footer__places {
  display: grid;
  gap: var(--asa-space-6);
  padding-top: var(--asa-space-7);
  border-top: var(--asa-border-width) solid var(--asa-line-inverse);
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
}

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

.site-footer__places address { font-style: normal; }

.site-footer__places b {
  display: block;
  margin-bottom: var(--asa-space-1);
  color: var(--asa-ink-inverse);
}

.site-footer__places .asa-footer__link { margin-top: var(--asa-space-2); color: var(--asa-ink-inverse); text-decoration: underline; text-underline-offset: 3px; }

.site-footer__note {
  margin: 0;
  max-width: none;
  font-size: var(--asa-fs-label);
  line-height: var(--asa-lh-label);
  color: var(--asa-ink-inverse-2);
}

/* --------------------------------------------------------------------------
   WHATSAPP
   Botão amarelo fixo (secundário: suporte, nunca a ação principal). Abre um
   cartão com três assuntos, para a mensagem sair com contexto.
   -------------------------------------------------------------------------- */
.site-fab {
  position: fixed;
  right: var(--asa-space-4);
  bottom: var(--asa-space-4);
  z-index: var(--asa-z-dropdown);
}

.site-fab[data-oculto] { display: none; }

.site-fab__btn {
  width: 52px;
  height: 52px;
  padding: 0;
  border: var(--asa-border-width) solid var(--asa-ink);
}

.site-fab__btn .asa-icon { width: 24px; height: 24px; }

.site-fab__label { display: none; }

@media (hover: hover) and (min-width: 1024px) {
  .site-fab__btn:hover { width: auto; padding: 0 var(--asa-space-5); }
  .site-fab__btn:hover .site-fab__label { display: inline; }
}

.site-fab__panel {
  right: 0;
  bottom: calc(100% + var(--asa-space-2));
  width: min(320px, calc(100vw - 32px));
}

.site-fab[data-aberto] .site-fab__panel {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.site-fab__title {
  margin: 0;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
}

.site-fab__text {
  margin: var(--asa-space-1) 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-2);
}

.site-fab .asa-menu__item { text-decoration: none; font-weight: var(--asa-weight-medium); }

/* --------------------------------------------------------------------------
   BUSCA COMPACTA
   asa-search com local e as duas datas. As linhas de apoio (diária de 27
   horas, cancelamento, requisitos) ficam abaixo, em 12px.
   -------------------------------------------------------------------------- */
.site-booking { gap: var(--asa-space-4); }

.site-booking .asa-field__error[hidden] { display: none; }

.site-booking__lines {
  display: grid;
  gap: var(--asa-space-1);
  padding-top: var(--asa-space-3);
  border-top: var(--asa-border-width) solid var(--asa-line-soft);
}

.site-booking__lines p {
  margin: 0;
  max-width: none;
  font-size: var(--asa-fs-label);
  line-height: var(--asa-lh-label);
  color: var(--asa-ink-3);
}

.site-booking__lines b { color: var(--asa-ink); font-weight: var(--asa-weight-bold); }

.site-booking__lines a {
  color: var(--asa-ink);
  font-weight: var(--asa-weight-medium);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-booking__status:empty { display: none; }

.site-booking__status {
  margin: 0;
  max-width: none;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  font-weight: var(--asa-weight-medium);
  color: var(--asa-ink);
}

/* --------------------------------------------------------------------------
   ABERTURA DE PÁGINA INFORMATIVA
   Blog, regras, proteções: data-page-mode="informational" deixa o amarelo
   só no cabeçalho e no logo (13 Roadmap, proporção por arquétipo). A
   abertura é cinza mist: trilha, H1 em Registro 1 e o lide. Sem marca
   d'água, que só existe sobre amarelo.
   -------------------------------------------------------------------------- */
.site-opening { padding-block: clamp(32px, 5vw, 72px) clamp(40px, 5vw, 80px); }

.site-opening .asa-breadcrumb { margin-bottom: clamp(20px, 3vw, 32px); }

.site-opening .asa-lead { margin-top: var(--asa-space-5); }

.site-opening__meta {
  margin: var(--asa-space-5) 0 0;
  max-width: none;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-opening__meta b { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }

/* --------------------------------------------------------------------------
   BLOG
   -------------------------------------------------------------------------- */
/* Destaque: a faixa editorial com o artigo escolhido. Sem card: a foto com
   o corte de 8° e o texto ao lado. */
.site-feature .asa-editorial__media { border-radius: 0; }

.site-feature__meta {
  margin: var(--asa-space-4) 0 0;
  max-width: none;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-feature__meta b { color: var(--asa-ink-2); font-weight: var(--asa-weight-medium); }

.site-feature .asa-btn { margin-top: var(--asa-space-7); }

.site-blog__tabs { margin-bottom: var(--asa-space-8); }

.site-blog__grid {
  display: grid;
  gap: var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 640px)  { .site-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-blog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.site-blog__grid > li { display: flex; }
.site-blog__grid > li > .asa-card-article { flex: 1; }
.site-blog__grid > li[hidden] { display: none; }

.site-blog__count {
  margin: 0 0 var(--asa-space-4);
  max-width: none;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-blog__pages { margin-top: var(--asa-space-9); }

.site-blog__pages .asa-pagination { list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }

.site-blog__pages .asa-pagination__item--text { padding-inline: var(--asa-space-3); }

.site-blog__empty[hidden] { display: none; }

.site-blog__empty .asa-btn { margin-top: var(--asa-space-2); }

/* Faixa de reserva: H2 e lide em cima; a foto da estrada em largura total,
   com o topo subindo a 8° (asa-cut__under); a busca sobe por cima da base
   da foto, sem corte, porque é contêiner interativo. */
.site-roadband { padding-bottom: var(--asa-section-pad-y); }

.site-roadband__head { margin-bottom: var(--asa-space-8); }

.site-roadband__head .asa-lead a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }

.site-roadband__media .asa-photo { height: clamp(260px, 34vw, 460px); }

.site-roadband__search { position: relative; z-index: 1; margin-top: clamp(-160px, -12vw, -64px); }

.site-roadband__search .asa-search {
  max-width: 1040px;
  border: var(--asa-border-width) solid var(--asa-line);
}

/* --------------------------------------------------------------------------
   ARTIGO
   Texto na medida de 640px; no desktop o resumo da viagem gruda ao lado.
   -------------------------------------------------------------------------- */
.site-article {
  display: grid;
  gap: var(--asa-space-8);
  align-items: start;
}

@media (min-width: 1024px) {
  .site-article { grid-template-columns: minmax(0, 640px) 320px; justify-content: space-between; }
}

.site-article__figure { margin: 0 0 var(--asa-space-8); }

.site-article__figure figcaption {
  margin-top: var(--asa-space-2);
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-article__answer {
  font-size: var(--asa-fs-lead);
  line-height: var(--asa-lh-lead);
  color: var(--asa-ink);
}

.site-summary__title {
  margin: 0;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-summary .asa-summary__row span:last-child {
  color: var(--asa-ink);
  font-weight: var(--asa-weight-medium);
  text-align: right;
}

.site-summary__note {
  margin: 0;
  max-width: none;
  font-size: var(--asa-fs-label);
  line-height: var(--asa-lh-label);
  color: var(--asa-ink-3);
}

/* No celular o resumo vem logo depois da resposta, no fluxo do texto; no
   desktop ele sai do texto e gruda na coluna da direita. */
.site-summary--inline { margin: 0 0 var(--asa-space-7); }

@media (min-width: 1024px) {
  .site-summary--inline { display: none; }
}

/* Busca dentro do texto, depois do segundo H2: o mesmo motor, num bloco
   mist que sai da medida do texto. */
.site-article__booking {
  margin: var(--asa-space-8) 0;
  padding: var(--asa-space-6);
  background: var(--asa-bg);
  border-radius: var(--asa-radius);
}

.site-article__booking-title {
  margin: 0 0 var(--asa-space-4);
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-article__booking .asa-search { padding: 0; background: transparent; }

@media (min-width: 768px) {
  .site-article__booking .asa-search__row { grid-template-columns: 1fr 1fr; }
  .site-article__booking .asa-search__row > :first-child,
  .site-article__booking .asa-search__row > .asa-btn { grid-column: 1 / -1; }
}

.site-article__fleet {
  margin: 0 0 var(--asa-space-4);
  padding: 0;
  list-style: none;
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-article__fleet li {
  display: grid;
  gap: 2px var(--asa-space-4);
  padding: var(--asa-space-4) 0;
  border-bottom: 1px solid var(--asa-line-soft);
}

@media (min-width: 640px) {
  .site-article__fleet li { grid-template-columns: 180px 1fr; }
}

.site-article__fleet b { color: var(--asa-ink); }

.site-article__pending {
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-warn);
  font-weight: var(--asa-weight-medium);
}

.site-roadband__media .asa-photo__caption { top: calc(min(14.05cqw, 45%) + var(--asa-space-3)); bottom: auto; }

/* Aviso curto (número copiado). Some sozinho. */
.site-toast {
  position: fixed;
  left: 50%;
  bottom: var(--asa-space-6);
  z-index: var(--asa-z-toast);
  transform: translateX(-50%);
  padding: var(--asa-space-3) var(--asa-space-4);
  background: var(--asa-ink);
  color: var(--asa-ink-inverse);
  border-radius: var(--asa-radius);
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  font-weight: var(--asa-weight-medium);
}

.site-toast:empty { display: none; }

/* --------------------------------------------------------------------------
   PÁGINAS DE ERRO
   -------------------------------------------------------------------------- */
.site-opening__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-3);
  margin-top: var(--asa-space-7);
}

.site-opening__search { margin-top: var(--asa-space-7); }

.site-opening__search .asa-search { border: var(--asa-border-width) solid var(--asa-line); }

.site-links__list {
  list-style: none;
  margin: var(--asa-space-7) 0;
  padding: 0;
  max-width: var(--asa-measure);
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-links__list a {
  display: flex;
  align-items: center;
  min-height: 56px;
  border-bottom: 1px solid var(--asa-line-soft);
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-links__list a:hover { color: var(--asa-action-hover); }

.site-blog__grid[hidden] { display: none; }

.asa-tabs__tab[hidden] { display: none; }

/* Legenda do placeholder no alto da foto cortada: embaixo, o corte de 8°
   fatiaria a legenda longa. */
.asa-cut__media .asa-photo__caption { top: var(--asa-space-3); bottom: auto; right: var(--asa-space-3); }

/* Dentro do texto corrido, a margem de parágrafo e o recuo de lista da
   prose não valem para o resumo nem para a lista da frota. */
.asa-prose .site-summary p { margin: 0; }
.asa-prose .site-article__fleet { padding-left: 0; }
.asa-prose .site-article__booking p { margin: 0; }
.asa-prose .site-article__booking .site-article__booking-title { margin-bottom: var(--asa-space-4); }

/* --------------------------------------------------------------------------
   RASCUNHO PARA REVISÃO
   Páginas que dependem de dado da empresa ou de revisão jurídica (RI,
   privacidade, termos) saem como rascunho: um aviso no topo e cada trecho
   pendente em laranja de atenção, para quem revisa achar tudo no navegador.
   Nada disso vai ao ar: o aviso sai quando a última pendência fechar.
   -------------------------------------------------------------------------- */
.site-draft { margin-bottom: clamp(20px, 3vw, 32px); }

.site-pending {
  color: var(--asa-warn);
  font-weight: var(--asa-weight-medium);
}

/* --------------------------------------------------------------------------
   TEXTO LONGO COM ÍNDICE
   Política, termos, regras: índice à esquerda no desktop (grudado), texto
   na medida de 640px à direita. No celular o índice vem antes, recolhido.
   -------------------------------------------------------------------------- */
.site-legal {
  display: grid;
  gap: var(--asa-space-8);
  align-items: start;
}

@media (min-width: 1024px) {
  .site-legal { grid-template-columns: 260px minmax(0, 720px); justify-content: space-between; }
}

.site-legal__toc > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--asa-touch-min);
  padding: 0 var(--asa-space-4);
  background: var(--asa-bg);
  border-radius: var(--asa-radius);
  font-weight: var(--asa-weight-bold);
  list-style: none;
  cursor: pointer;
}

.site-legal__toc > summary::-webkit-details-marker { display: none; }
.site-legal__toc[open] > summary { margin-bottom: var(--asa-space-4); }
.site-legal__toc[open] > summary .asa-icon { transform: scaleY(-1); }

@media (min-width: 1024px) {
  .site-legal__toc > summary { display: none; }
}

.site-legal .asa-prose { max-width: 720px; }

.site-legal .asa-prose h2 {
  font-size: clamp(22px, 2.4vw, 26px);
  line-height: 1.25;
  margin-top: var(--asa-space-9);
}

.site-legal .asa-prose h2:first-child { margin-top: 0; }

/* O resumo do topo: lista curta, numa caixa branca dentro da abertura. */
.site-legal__summary {
  margin-top: var(--asa-space-7);
  max-width: 760px;
}

.site-legal__summary ul {
  margin: var(--asa-space-2) 0 0;
  padding-left: 1.2em;
  display: grid;
  gap: var(--asa-space-1);
}

.site-legal__summary li { color: var(--asa-ink-2); font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); }
.site-legal__summary b { color: var(--asa-ink); }

.site-opening__tools { margin-top: var(--asa-space-5); }

/* --------------------------------------------------------------------------
   LISTA DE ARQUIVOS (RI)
   Uma linha por documento, com divisor: título, data e tamanho, e o botão
   de baixar à direita. Sem card e sem ícone de arquivo: o botão já diz PDF.
   -------------------------------------------------------------------------- */
.site-files {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-files li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--asa-space-3) var(--asa-space-6);
  padding: var(--asa-space-5) 0;
  border-bottom: 1px solid var(--asa-line-soft);
}

.site-files__title {
  display: block;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-files__meta {
  display: block;
  margin-top: 2px;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-files .asa-btn { flex: none; }

.site-tabpanel[hidden] { display: none; }

.site-tabpanels { margin-top: var(--asa-space-7); }

/* Valores, missão e visão: lista de definições em duas colunas. */
.site-values {
  display: grid;
  gap: var(--asa-space-6);
  margin: var(--asa-space-8) 0 0;
  padding-top: var(--asa-space-7);
  border-top: var(--asa-border-width) solid var(--asa-line);
}

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

.site-values dt { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-values dd { margin: var(--asa-space-1) 0 0; color: var(--asa-ink-2); }

.site-editorial-link { display: inline-block; margin-top: var(--asa-space-6); }

/* Contato: duas colunas, o alerta de atendimento ao lado. */
.site-contact {
  display: grid;
  gap: var(--asa-space-7);
  align-items: start;
}

@media (min-width: 1024px) { .site-contact { grid-template-columns: 5fr 7fr; } }

.site-contact dl { margin: var(--asa-space-6) 0 0; display: grid; gap: var(--asa-space-4); }
.site-contact dt { font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink-3); }
.site-contact dd { margin: 2px 0 0; font-weight: var(--asa-weight-medium); color: var(--asa-ink); }

.site-contact .asa-alert a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; font-weight: var(--asa-weight-medium); }

/* --------------------------------------------------------------------------
   IMPRESSÃO
   Termos e política saem só com o texto: sem cabeçalho, índice, rodapé,
   botões e o WhatsApp.
   -------------------------------------------------------------------------- */
@media print {
  .asa-utilitybar, .asa-navbar, .asa-navdrawer, .asa-overlay, .site-fab, .site-footer,
  .site-legal__toc, .site-opening__tools, .site-links-band, .asa-skiplink { display: none !important; }
  .site-opening, .asa-section { padding-block: 12px; background: none !important; }
  .site-legal { display: block; }
  .asa-prose a { color: inherit; }
  .site-pending { color: inherit; }
  h1 { font-size: 28pt; }
}

/* --------------------------------------------------------------------------
   HERO COM FOTO (Quem somos)
   O asa-hero da biblioteca, com a foto no lugar da busca: texto à
   esquerda, foto com o corte de 8° à direita no desktop, embaixo no
   celular. Continua o único lugar do H1 e da marca d'água.
   -------------------------------------------------------------------------- */
.site-hero-media .asa-hero__inner {
  display: grid;
  gap: var(--asa-space-8);
  align-items: center;
}

@media (min-width: 1024px) {
  .site-hero-media .asa-hero__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 72px); }
}

.site-hero-media .asa-breadcrumb { margin-bottom: clamp(20px, 3vw, 32px); }
.site-hero-media .asa-breadcrumb__link { color: var(--asa-ink); }
.site-hero-media .asa-lead { margin-top: var(--asa-space-5); }
.site-hero-media__photo { border-radius: var(--asa-radius); overflow: hidden; }

.site-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--asa-space-3) var(--asa-space-6);
  margin-top: var(--asa-space-7);
}

.site-actions .asa-btn--link { min-height: var(--asa-touch-min); }

/* --------------------------------------------------------------------------
   PESSOAS (Quem somos)
   Retrato com o corte de 8°, nome, praça e função, e o trecho da avaliação
   que cita a pessoa. Sem card: a foto e o texto bastam.
   -------------------------------------------------------------------------- */
.site-people {
  display: grid;
  gap: var(--asa-space-8) var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

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

.site-people__name {
  margin: var(--asa-space-5) 0 0;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
}

.site-people__role {
  margin: 2px 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-people blockquote { margin: var(--asa-space-4) 0 0; }
.site-people blockquote p { color: var(--asa-ink-2); }
.site-people cite {
  display: block;
  margin-top: var(--asa-space-2);
  font-style: normal;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-proof__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-2) var(--asa-space-6);
  margin-top: var(--asa-space-7);
}

.site-proof__links a { color: var(--asa-surface); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }
.site-proof__links a:hover { color: var(--asa-ink-inverse); }

.site-proof__note {
  margin: var(--asa-space-3) 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-inverse-2);
}

.asa-bg-dense .site-pending { color: var(--asa-surface); }

/* --------------------------------------------------------------------------
   LINHAS (Quem somos: o que você encontra)
   Lista com divisor: título em Destaque, uma frase e o link. Faz o papel do
   trio ícone + título + texto, sem ícone e sem card.
   -------------------------------------------------------------------------- */
.site-rows {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-rows li {
  display: grid;
  gap: var(--asa-space-2) var(--asa-space-7);
  padding: var(--asa-space-6) 0;
  border-bottom: 1px solid var(--asa-line-soft);
}

@media (min-width: 768px) { .site-rows li { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) auto; align-items: baseline; } }

.site-rows b { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); color: var(--asa-ink); }
.site-rows p { margin: 0; color: var(--asa-ink-2); }
.site-rows a { font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); white-space: nowrap; }

.site-more {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-2) var(--asa-space-6);
  margin-top: var(--asa-space-7);
  font-size: var(--asa-fs-body-dense);
}

.site-more a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   ATALHOS POR ASSUNTO (Contato)
   Quatro blocos clicáveis com um fio no topo, sem caixa: o bloco inteiro é
   o link.
   -------------------------------------------------------------------------- */
.site-shortcuts {
  display: grid;
  gap: var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 640px)  { .site-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-shortcuts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.site-shortcuts a {
  display: flex;
  flex-direction: column;
  gap: var(--asa-space-2);
  height: 100%;
  padding-top: var(--asa-space-5);
  border-top: 2px solid var(--asa-ink);
  color: inherit;
  text-decoration: none;
}

.site-shortcuts b { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); color: var(--asa-ink); }
.site-shortcuts span { color: var(--asa-ink-2); }
.site-shortcuts em {
  margin-top: auto;
  padding-top: var(--asa-space-3);
  font-style: normal;
  font-size: var(--asa-fs-body-dense);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-action-hover);
}

.site-shortcuts a:hover { border-top-color: var(--asa-action); }
.site-shortcuts a:hover em { text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   LOJAS (Contato)
   Duas colunas: foto do balcão com o corte de 8°, nome, endereço do Google
   letra a letra e o link de rota.
   -------------------------------------------------------------------------- */
.site-stores {
  display: grid;
  gap: var(--asa-space-9) var(--asa-space-7);
}

@media (min-width: 768px) { .site-stores { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.site-stores h3 { margin: var(--asa-space-5) 0 var(--asa-space-2); }
.site-stores address { font-style: normal; color: var(--asa-ink-2); }
.site-stores p { margin: var(--asa-space-2) 0 0; }
.site-stores .site-stores__fact { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }
.site-stores .asa-btn { margin-top: var(--asa-space-5); }

.site-section-foot { margin-top: var(--asa-space-8); }

/* --------------------------------------------------------------------------
   FORMULÁRIO (Contato)
   -------------------------------------------------------------------------- */
.site-form-layout {
  display: grid;
  gap: var(--asa-space-9);
  align-items: start;
}

@media (min-width: 1024px) { .site-form-layout { grid-template-columns: minmax(0, 640px) minmax(0, 360px); justify-content: space-between; } }

.site-form { display: grid; gap: var(--asa-space-5); margin-top: var(--asa-space-7); }

.site-form .asa-field__error[hidden] { display: none; }

.site-form textarea.asa-input { min-height: 160px; resize: vertical; line-height: 1.5; }

.site-form__row { display: grid; gap: var(--asa-space-5); }
@media (min-width: 640px) { .site-form__row { grid-template-columns: 1fr 1fr; } }

.site-form__count { justify-self: end; font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-form__count-row { display: flex; justify-content: space-between; gap: var(--asa-space-3); }

.site-form fieldset { border: 0; margin: 0; padding: 0; }
.site-form legend { padding: 0; margin-bottom: var(--asa-space-1); font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink-2); }
.site-form__inline { display: flex; flex-wrap: wrap; gap: 0 var(--asa-space-6); }

.site-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.site-form__submit { display: grid; gap: var(--asa-space-3); justify-items: start; }

.site-form__note { margin: 0; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink-3); }

.site-form .asa-choice__title a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 2px; }

.site-form-aside { display: grid; gap: var(--asa-space-7); }
.site-form-aside h3 { margin-bottom: var(--asa-space-2); }
.site-form-aside p { margin: 0; color: var(--asa-ink-2); }
.site-form-aside a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

.site-alert-slot:empty { display: none; }

/* Prova com três depoimentos: as placas em cima, os depoimentos em três
   colunas embaixo (no 5fr/7fr da biblioteca, o terceiro cairia sozinho). */
@media (min-width: 1024px) {
  .site-proof-3 .asa-proof__bar { grid-template-columns: 1fr; }
  .site-proof-3 .asa-proof__plates { grid-template-columns: repeat(2, max-content); gap: var(--asa-space-10); }
  .site-proof-3 .asa-proof__quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   HERO COM BUSCA (Ofertas e campanhas)
   O asa-hero da home: H1 em Registro 1, linha de apoio e a busca num cartão
   branco. A busca já tem o próprio fundo; aqui ela perde o padding duplo.
   -------------------------------------------------------------------------- */
.site-hero-search .asa-breadcrumb { margin-bottom: clamp(20px, 3vw, 32px); }
.site-hero-search .asa-lead { margin-top: var(--asa-space-5); max-width: 760px; }
.site-hero-search .asa-hero__search .site-booking { padding: 0; }
.site-hero-search .asa-coupon { margin-top: var(--asa-space-6); }

.site-hero__offer {
  margin: var(--asa-space-5) 0 0;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-hero__offer .asa-tag { vertical-align: middle; margin-right: var(--asa-space-2); }

.site-hero__meta {
  margin: var(--asa-space-3) 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-2);
}

.site-hero__meta a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }

/* "Tenho um cupom" dentro da busca: recolhido, com cara de link. Aberto,
   mostra o campo e o botão Aplicar na mesma linha. */
.site-booking__coupon { border-bottom: 0; }

.site-booking__coupon > summary.asa-disclosure__trigger {
  display: inline-flex;
  width: auto;
  min-height: var(--asa-touch-min);
  padding: 0;
  color: var(--asa-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-booking__coupon > summary .asa-icon { width: var(--asa-icon-dense); height: var(--asa-icon-dense); }

.site-booking__coupon-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--asa-space-3);
  padding-bottom: var(--asa-space-2);
}

.site-booking__coupon-row .asa-field { flex: 1 1 220px; max-width: 360px; }
.site-booking__coupon-row .asa-btn { min-height: var(--asa-control-h); }

.site-booking__coupon-msg {
  flex-basis: 100%;
  margin: 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  font-weight: var(--asa-weight-medium);
}

.site-booking__coupon-msg:empty { display: none; }
.site-booking__coupon-msg[data-tipo="ok"] { color: var(--asa-ok); }
.site-booking__coupon-msg[data-tipo="erro"] { color: var(--asa-action-hover); }

/* --------------------------------------------------------------------------
   VITRINE DE OFERTAS
   Três colunas no desktop; os cards esticam até a mesma altura e as ações
   descem para o pé.
   -------------------------------------------------------------------------- */
.site-offers {
  display: grid;
  gap: var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 768px)  { .site-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-offers { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.site-offers > li { display: flex; }
.site-offers > li[hidden] { display: none; }
.site-offers > li > .asa-card-offer { flex: 1; }

.site-offers__note {
  margin: var(--asa-space-6) 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-3);
}

.site-offers-empty[hidden] { display: none; }
.site-offers-empty { border-top: var(--asa-border-width) solid var(--asa-line); }

/* Uma oferta só, larga: a foto à esquerda e a ficha à direita. Campanhas. */
@media (min-width: 768px) {
  .site-offer-wide.asa-card-offer {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 0 var(--asa-space-7);
    padding: 0;
  }
  .site-offer-wide > .asa-cut { margin: 0; grid-row: 1 / span 6; min-width: 0; }
  .site-offer-wide > .asa-cut .asa-photo { aspect-ratio: auto !important; height: 100%; min-height: 360px; }
  .site-offer-wide > :not(.asa-cut) { grid-column: 2; }
  .site-offer-wide > :not(.asa-cut) { margin-right: var(--asa-space-6); }
  .site-offer-wide > .asa-tag { margin-top: var(--asa-space-6); }
  .site-offer-wide > :last-child { margin-bottom: var(--asa-space-6); }
}

/* --------------------------------------------------------------------------
   PASSOS NUMERADOS
   A ordem informa (busca, cupom, preço), então o número aparece. Lista com
   divisor, o número em negrito à esquerda; sem círculo e sem ícone.
   -------------------------------------------------------------------------- */
.site-steps {
  list-style: none;
  margin: var(--asa-space-7) 0 0;
  padding: 0;
  counter-reset: passo;
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-steps li {
  counter-increment: passo;
  display: grid;
  grid-template-columns: 2.25em minmax(0, 1fr);
  gap: var(--asa-space-3);
  padding: var(--asa-space-5) 0;
  border-bottom: 1px solid var(--asa-line-soft);
}

.site-steps li::before {
  content: counter(passo);
  font-size: var(--asa-fs-subtitle);
  line-height: 1.2;
  font-weight: var(--asa-weight-bold);
  color: var(--asa-ink);
}

.site-steps b { display: block; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); color: var(--asa-ink); }
.site-steps p { margin: var(--asa-space-1) 0 0; color: var(--asa-ink-2); }

.site-steps + .asa-alert { margin-top: var(--asa-space-7); }
.site-steps + .asa-alert a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; font-weight: var(--asa-weight-medium); }

/* Como usar o cupom + como o preço aparece: os passos à esquerda, o
   resumo de exemplo à direita no desktop. */
.site-howto {
  display: grid;
  gap: var(--asa-space-9);
  align-items: start;
}

@media (min-width: 1024px) { .site-howto { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(48px, 6vw, 96px); } }

.site-howto__price h3 { margin-bottom: var(--asa-space-3); }
.site-howto__price > p { color: var(--asa-ink-2); }
.site-howto__price .asa-summary { margin-top: var(--asa-space-6); }
.site-howto__price .asa-summary__row span:last-child { color: var(--asa-ink-3); text-align: right; }
.site-howto__price .asa-summary__row--total span:last-child { color: var(--asa-ink); }
.site-howto__price a { display: inline-block; margin-top: var(--asa-space-5); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }

/* --------------------------------------------------------------------------
   ANTES DE CHEGAR AO BALCÃO
   O H2 e o aviso à esquerda, a lista de conferência à direita. Cada item
   abre com o fato em negrito; divisor entre eles, sem ícone de check.
   -------------------------------------------------------------------------- */
.site-check {
  display: grid;
  gap: var(--asa-space-8);
  align-items: start;
}

@media (min-width: 1024px) { .site-check { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 5vw, 80px); } }

.site-check__aside .asa-alert { margin-top: var(--asa-space-6); }
.site-check__aside > p { margin-top: var(--asa-space-4); color: var(--asa-ink-2); }
.site-check__aside > a { display: inline-block; margin-top: var(--asa-space-6); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }

.site-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: var(--asa-border-width) solid var(--asa-line);
}

.site-checklist li {
  padding: var(--asa-space-5) 0;
  border-bottom: 1px solid var(--asa-line-soft);
  color: var(--asa-ink-2);
}

.site-checklist b { color: var(--asa-ink); }

/* --------------------------------------------------------------------------
   REGRAS DO CUPOM
   Lista de definições em linhas: o assunto à esquerda, a regra à direita.
   Visível sem clique, porque aqui as regras são o conteúdo.
   -------------------------------------------------------------------------- */
.site-terms {
  margin: var(--asa-space-8) 0 0;
  border-top: var(--asa-border-width) solid var(--asa-line);
  max-width: 960px;
}

.site-terms > div {
  display: grid;
  gap: var(--asa-space-1) var(--asa-space-7);
  padding: var(--asa-space-4) 0;
  border-bottom: 1px solid var(--asa-line-soft);
}

@media (min-width: 768px) { .site-terms > div { grid-template-columns: 14em minmax(0, 1fr); } }

.site-terms dt { font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-terms dd { margin: 0; color: var(--asa-ink-2); }

/* --------------------------------------------------------------------------
   DIÁRIA DE 27 HORAS NA TEMPORADA
   O texto à esquerda; à direita, o exemplo de horário como um resumo: a
   retirada, o limite da devolução e o que acontece depois.
   -------------------------------------------------------------------------- */
.site-clock {
  display: grid;
  gap: var(--asa-space-8);
  align-items: center;
}

@media (min-width: 1024px) { .site-clock { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(48px, 6vw, 96px); } }

.site-clock__copy > p { color: var(--asa-ink-2); margin-top: var(--asa-space-4); }
.site-clock__copy > a { display: inline-block; margin-top: var(--asa-space-6); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }

.site-clock .asa-summary { padding: var(--asa-space-6); gap: var(--asa-space-4); }
.site-clock .asa-summary__row { font-size: var(--asa-fs-body); }
.site-clock .asa-summary__row span:last-child { font-weight: var(--asa-weight-bold); color: var(--asa-ink); text-align: right; }
.site-clock__title { margin: 0; font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink-3); }

/* --------------------------------------------------------------------------
   ROTEIROS DE TEMPORADA
   Dois lugares lado a lado, cada um com a foto no corte de 8°, o nome, o
   texto e o link para a página de destino. No Réveillon, um por aba.
   -------------------------------------------------------------------------- */
.site-routes {
  display: grid;
  gap: var(--asa-space-9) var(--asa-space-7);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 768px) { .site-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.site-routes h3 { margin: var(--asa-space-5) 0 var(--asa-space-2); }
.site-routes p { margin: 0; color: var(--asa-ink-2); }
.site-routes p + p { margin-top: var(--asa-space-3); }
.site-routes a { display: inline-block; margin-top: var(--asa-space-4); margin-right: var(--asa-space-5); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }

.site-routes-note { margin-top: var(--asa-space-8); max-width: 760px; }

/* Réveillon: abas Pernambuco | Ceará, e em cada painel a foto do estado ao
   lado da lista de praias. */
.site-tabpanel .site-places {
  display: grid;
  gap: var(--asa-space-7);
  align-items: start;
}

@media (min-width: 1024px) { .site-tabpanel .site-places { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 5vw, 80px); } }

.site-places ul { list-style: none; margin: 0; padding: 0; border-top: var(--asa-border-width) solid var(--asa-line); }
.site-places li { padding: var(--asa-space-5) 0; border-bottom: 1px solid var(--asa-line-soft); color: var(--asa-ink-2); }
.site-places li b { display: block; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); color: var(--asa-ink); }
.site-places li a { display: block; width: fit-content; margin-top: var(--asa-space-2); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }

/* --------------------------------------------------------------------------
   CARROS DA TEMPORADA
   A vitrine: três cards de veículo. O preço vem do motor de reservas; até
   lá, o lugar dele fica marcado.
   -------------------------------------------------------------------------- */
.site-vehicles {
  display: grid;
  gap: var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 640px)  { .site-vehicles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-vehicles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.site-vehicles > li { display: flex; }
.site-vehicles > li > .asa-card { flex: 1; display: flex; flex-direction: column; }
.site-vehicles .asa-card__body { flex: 1; }
.site-vehicles .asa-card-vehicle__footer { margin-top: auto; align-items: flex-end; }

.site-vehicle-price { display: grid; gap: 2px; font-size: var(--asa-fs-label); line-height: 1.35; color: var(--asa-ink-3); }
.site-vehicle-price b { font-size: var(--asa-fs-body-dense); color: var(--asa-ink); }

.site-vehicles-note { margin-top: var(--asa-space-6); font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }

/* --------------------------------------------------------------------------
   FECHAMENTO COM NOTA
   -------------------------------------------------------------------------- */
.site-closing__rating {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-2) var(--asa-space-5);
  margin: var(--asa-space-4) 0 0;
}

.asa-bg-surface .asa-rating__source,
.asa-bg-surface .asa-rating__count { color: var(--asa-ink-2); }

.site-closing__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-2) var(--asa-space-5);
  margin: var(--asa-space-4) 0 0;
  font-size: var(--asa-fs-body-dense);
}

/* Estados da página de campanha e do cupom: o que é só da temporada some
   fora dela, e vice-versa. O HTML traz os dois; o CMS escolhe. */
[data-temporada][hidden], [data-fora][hidden] { display: none !important; }

/* Prova com um depoimento só: ele ocupa a coluna inteira, na medida. */
.site-proof-1 .asa-proof__quotes { grid-template-columns: 1fr; }
.site-proof-1 .asa-testimonial { max-width: 560px; }

.site-offers.site-offers--one { grid-template-columns: minmax(0, 1fr); }

.site-places__from {
  margin: 0 0 var(--asa-space-4);
  font-size: var(--asa-fs-body-dense);
  font-weight: var(--asa-weight-medium);
  color: var(--asa-ink-3);
}

/* --------------------------------------------------------------------------
   PÁGINAS DE AJUDA (Assistência, Fraudes, Acessibilidade)
   -------------------------------------------------------------------------- */

/* Abertura com as ações de contato: no celular, cada botão ocupa a linha
   inteira, para acertar com o polegar sob pressa. */
@media (max-width: 639px) {
  .site-actions--full { flex-direction: column; align-items: stretch; }
  .site-actions--full .asa-btn { width: 100%; }
}

/* Emergência: os números de socorro são links tel:, em negrito. */
.site-emergency { margin-top: var(--asa-space-7); max-width: 760px; }
.site-emergency a { color: inherit; font-weight: var(--asa-weight-bold); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* Barra de ligação, só no celular: Ligar e WhatsApp fixos no pé da tela
   em toda a página da assistência. Ela substitui o botão flutuante. */
.site-callbar { display: none; }

@media (max-width: 767px) {
  .site-callbar {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--asa-z-sticky);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--asa-space-2);
    padding: var(--asa-space-3) var(--asa-space-4) calc(var(--asa-space-3) + env(safe-area-inset-bottom));
    background: var(--asa-bg-elevated);
    border-top: var(--asa-border-width) solid var(--asa-line);
  }
  .site-callbar .asa-btn { width: 100%; }
  body:has(.site-callbar) { padding-bottom: 76px; }
  body:has(.site-callbar) .site-fab { display: none; }
}

/* Duas colunas, cada uma com o próprio H2: assuntos curtos que, sozinhos,
   seriam faixas de uma linha. */
.site-duo {
  display: grid;
  gap: var(--asa-space-9) var(--asa-space-9);
  align-items: start;
}

@media (min-width: 1024px) { .site-duo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.site-duo > div > p { margin-top: var(--asa-space-4); color: var(--asa-ink-2); }
.site-duo .asa-alert { margin-top: var(--asa-space-6); }
.site-duo a:not(.asa-btn) { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* Abertura dividida: o H1 e o aviso à esquerda, a lista de canais à direita. */
.site-opening-split {
  display: grid;
  gap: var(--asa-space-8);
  align-items: start;
}

@media (min-width: 1024px) { .site-opening-split { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 80px); } }

.site-opening-split .asa-alert { margin-top: var(--asa-space-7); }
.site-opening-split .site-terms { margin-top: 0; }
.site-opening-split .site-terms > div { grid-template-columns: 1fr; }
.site-channels__title { margin: 0 0 var(--asa-space-4); font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-terms dd a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }

/* Sinais de golpe: três colunas com um fio preto no topo, sem caixa. */
.site-signals {
  display: grid;
  gap: var(--asa-space-8) var(--asa-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

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

.site-signals li { padding-top: var(--asa-space-5); border-top: 2px solid var(--asa-ink); }
.site-signals h3 { margin: 0 0 var(--asa-space-2); }
.site-signals p { margin: 0; color: var(--asa-ink-2); }
.site-signals p + p { margin-top: var(--asa-space-3); color: var(--asa-ink); }

/* Lista de conferência em duas colunas no desktop (lista longa). */
@media (min-width: 1024px) {
  .site-checklist--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--asa-space-8); border-top: 0; }
  .site-checklist--2 li { border-top: 1px solid var(--asa-line-soft); border-bottom: 0; }
}

.site-checklist--2 { margin-top: var(--asa-space-7); }

.site-check > .site-steps { margin-top: 0; }
.site-check__aside .site-pending { display: block; margin-top: var(--asa-space-3); }

/* Texto curto abaixo de uma lista, com o link para a página do assunto. */
.site-after { margin: var(--asa-space-6) 0 0; color: var(--asa-ink-2); max-width: 760px; }
.site-after a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* Fechamento em fundo neutro (páginas informativas): a mesma faixa curta,
   sem o amarelo, que nessas páginas fica só no cabeçalho e no logo. */
.site-closing-neutral .asa-closing__copy .asa-lead { color: var(--asa-ink-2); }

/* Passos em grade de dois no desktop, quando são curtos. */
@media (min-width: 1024px) {
  .site-steps--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--asa-space-8); border-top: 0; }
  .site-steps--grid li { border-top: 1px solid var(--asa-line-soft); border-bottom: 0; }
}
.site-nowrap { white-space: nowrap; }
.site-opening .site-opening-split { margin-top: var(--asa-space-6); }
.site-opening-split .asa-lead { margin-top: 0; }

/* --------------------------------------------------------------------------
   EMPRESAS, DÚVIDAS, DIÁRIA, PROTEÇÕES E CAUÇÃO
   -------------------------------------------------------------------------- */

/* Atalhos em três colunas (Empresas: escolha o seu caso). */
@media (min-width: 1024px) { .site-shortcuts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Fatos sobre fundo preto (Empresas: por que a Asa), em grade de dois. */
.site-facts-dark {
  display: grid;
  gap: var(--asa-space-6) var(--asa-space-8);
  list-style: none;
  margin: var(--asa-space-8) 0 0;
  padding: 0;
}

@media (min-width: 768px) { .site-facts-dark { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.site-facts-dark li { padding-top: var(--asa-space-5); border-top: 1px solid var(--asa-line-inverse); }
.site-facts-dark b { display: block; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); color: var(--asa-ink-inverse); }
.site-facts-dark p { margin: var(--asa-space-2) 0 0; color: var(--asa-ink-inverse-2); }
.site-facts-dark a { color: var(--asa-surface); font-weight: var(--asa-weight-bold); }
.site-facts-dark a:hover { color: var(--asa-ink-inverse); }
.asa-bg-dense .asa-proof__bar.site-proof-plates { grid-template-columns: 1fr; }

/* Formulário em seções (Empresas). */
.site-form fieldset.site-form__group { display: grid; gap: var(--asa-space-5); padding-top: var(--asa-space-6); border-top: var(--asa-border-width) solid var(--asa-line); }
.site-form fieldset.site-form__group > legend { float: left; width: 100%; margin: 0 0 var(--asa-space-2); font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-form fieldset.site-form__group > legend + * { clear: both; }
.site-form .site-form__choices { display: flex; flex-wrap: wrap; gap: var(--asa-space-1) var(--asa-space-6); }
.site-form .site-form__choices legend { font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink-2); }
.site-form [data-condicional][hidden] { display: none; }
.site-form .asa-field__help--aviso { color: var(--asa-warn); font-weight: var(--asa-weight-medium); }
.site-form-summary:empty { display: none; }
.site-form-summary ul { margin: var(--asa-space-2) 0 0; padding-left: 1.1em; }
.site-form-summary a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }
.site-form-done[hidden] { display: none; }
.site-form-done h3 { margin-bottom: var(--asa-space-3); }
.site-form-done p { color: var(--asa-ink-2); }

/* Dúvidas: a busca e os atalhos na abertura; temas com índice ao lado. */
.site-faq-search { max-width: 560px; margin-top: var(--asa-space-7); }
.site-faq-search .asa-field__help { min-height: 1.4em; }
.site-faq-topics { margin-top: var(--asa-space-6); }
.site-faq-topic + .site-faq-topic { margin-top: var(--asa-space-10, 64px); }
.site-faq-topic[hidden], .site-faq-topic details[hidden] { display: none; }
.site-faq-topic > h2 { margin-bottom: var(--asa-space-4); }
.site-faq-topic .asa-disclosure__body ul { margin: var(--asa-space-2) 0; padding-left: 1.1em; }
.site-faq-topic .asa-disclosure__body a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; font-weight: var(--asa-weight-medium); }
.site-faq-empty[hidden] { display: none; }
.site-faq-empty { padding: var(--asa-space-6) 0; border-top: var(--asa-border-width) solid var(--asa-line); color: var(--asa-ink-2); }
.site-legal--faq .site-legal__toc > summary { display: none; }
@media (max-width: 1023px) { .site-legal--faq .site-legal__toc { display: none; } }
.site-legal--faq .site-faq-main { max-width: 760px; }

/* Diária de 27 horas: a regra em destaque no hero, como um resumo. */
.site-rule {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--asa-space-3) var(--asa-space-5);
  margin-top: var(--asa-space-6);
  padding: var(--asa-space-4) var(--asa-space-5);
  background: var(--asa-bg-elevated);
  border: var(--asa-border-width) solid var(--asa-ink);
  border-radius: var(--asa-radius);
  max-width: 640px;
  font-size: var(--asa-fs-highlight);
  line-height: var(--asa-lh-highlight);
  color: var(--asa-ink);
}

.site-rule b { font-weight: var(--asa-weight-bold); }

/* Busca com a dica das 27 horas: sugestão, não erro. */
.site-booking__hint:empty { display: none; }
.site-booking__hint { display: flex; flex-wrap: wrap; align-items: center; gap: var(--asa-space-2) var(--asa-space-4); margin: 0; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink); }
.site-booking__hint .asa-btn { min-height: 36px; }

/* Exemplos com horários: a tabela e, ao lado, como ler e o bate e volta. */
.site-examples {
  display: grid;
  gap: var(--asa-space-8);
  align-items: start;
}

@media (min-width: 1024px) { .site-examples { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 80px); } }

.site-examples .asa-prose { max-width: none; }
.site-examples__aside p { color: var(--asa-ink-2); }
.site-examples__aside p + p { margin-top: var(--asa-space-4); }
.site-examples__aside .asa-alert { margin-top: var(--asa-space-6); }

/* Proteções: a tabela da biblioteca no desktop; no celular, um card por
   proteção, com o selo "Escolha popular" em texto. */
.site-compare .asa-comparison { --asa-comparison-cols: 3; }
.site-compare .asa-comparison__col .asa-tag { margin-top: var(--asa-space-2); }
.site-compare .asa-comparison__row--head .asa-comparison__col { font-size: var(--asa-fs-body); }
.site-plans { display: none; }

@media (max-width: 767px) {
  .site-compare .asa-comparison { display: none; }
  .site-plans { display: grid; gap: var(--asa-space-5); list-style: none; margin: 0; padding: 0; }
  .site-plans > li { padding: var(--asa-space-5); background: var(--asa-bg-elevated); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }
  .site-plans > li[data-popular] { border-color: var(--asa-ink); }
  .site-plans h3 { margin: 0; }
  .site-plans .asa-tag { margin-top: var(--asa-space-2); }
  .site-plans dl { margin: var(--asa-space-4) 0 0; display: grid; gap: var(--asa-space-3); }
  .site-plans dt { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }
  .site-plans dd { margin: 2px 0 0; color: var(--asa-ink); }
  .site-plans__note { margin: var(--asa-space-4) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }
}

.site-compare__note { margin: var(--asa-space-5) 0 0; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink-2); }
.site-compare .site-checklist { margin-top: var(--asa-space-7); }
.site-compare > .asa-alert { margin-top: var(--asa-space-7); max-width: 760px; }

/* Tabela da prosa fora de um artigo (documentos, adicionais, exemplos). */
.site-table { max-width: 960px; }
.site-table table { margin: 0; }
.site-table + p, .site-table + .site-after { margin-top: var(--asa-space-5); }

/* Fechamento com a busca (Proteções, Caução): o H2, a frase e a busca. */
.site-closing-search .asa-search { margin-top: var(--asa-space-6); border: var(--asa-border-width) solid var(--asa-line); }
.site-closing-search .asa-lead { margin-top: var(--asa-space-3); color: var(--asa-ink-2); }
.site-closing-search .site-closing__links { margin-top: var(--asa-space-5); }
.site-closing-search .site-closing__links a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* Abertura com a lista de requisitos (Caução). */
.site-opening .site-checklist { margin-top: var(--asa-space-7); max-width: 760px; }
.site-opening .site-checklist li { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-opening .site-checklist + .asa-alert { margin-top: var(--asa-space-6); max-width: 760px; }
.site-form[hidden] { display: none; }

/* --------------------------------------------------------------------------
   HOME
   A home aprovada (asa-home-v2) remontada com a biblioteca: hero, faixa-foto,
   prateleira, prova, grade de destinos, editorial, dúvidas e fechamento.
   Aqui só o que a biblioteca não traz: a linha abaixo da faixa-foto, os
   links soltos de cada faixa e o botão dentro do card de praça.
   -------------------------------------------------------------------------- */
.site-arrival { padding-top: clamp(32px, 4vw, 56px); }

.site-arrival__note {
  margin: var(--asa-space-5) auto 0;
  font-size: var(--asa-fs-label);
  line-height: 1.4;
  color: var(--asa-ink-3);
  text-align: center;
  max-width: none;
}

.asa-factstrip__text a,
.site-shelf__more a,
.site-editorial__links a,
.site-faq__all a,
.site-proof__map a,
.site-place__links a,
.site-proof__reviews a {
  color: inherit;
  font-weight: var(--asa-weight-medium);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* A prateleira ocupa o container; os cards têm a mesma altura e o rodapé
   do card (preço e botão) cola embaixo. */
.site-shelf .asa-shelf__track { padding-top: 2px; }
.site-shelf .asa-card-vehicle { display: flex; flex-direction: column; }
.site-shelf .asa-card__body { flex: 1; }
.site-shelf .asa-card-vehicle__footer { margin-top: auto; align-items: flex-end; flex-wrap: wrap; }
.site-shelf .site-vehicle-price span:last-child { color: var(--asa-ink-3); }
.site-shelf__more { margin: var(--asa-space-6) 0 0; font-size: var(--asa-fs-body-dense); }

/* Praça: o card da biblioteca é um link inteiro; aqui ele leva um botão
   (preenche a busca) e dois links, por isso vira article. */
.site-place__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--asa-space-3);
  margin-top: var(--asa-space-5);
}

.site-place__links,
.site-proof__map,
.site-proof__reviews {
  margin: 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-inverse-2);
  max-width: none;
}

.site-place__links a,
.site-proof__map a,
.site-proof__reviews a { color: var(--asa-ink-inverse); }

.site-proof__map { margin-top: var(--asa-space-6); }

.site-proof__facts {
  margin: var(--asa-space-6) 0 0;
  font-size: var(--asa-fs-body-dense);
  line-height: var(--asa-lh-body-dense);
  color: var(--asa-ink-inverse-2);
  max-width: 40ch;
}

.site-proof__facts b { color: var(--asa-ink-inverse); }

.site-proof__reviews { margin-top: var(--asa-space-7); }
.site-proof__pending { margin: var(--asa-space-3) 0 0; font-size: var(--asa-fs-label); max-width: none; }

.site-editorial__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--asa-space-2) var(--asa-space-6);
  margin: var(--asa-space-6) 0 0;
  font-size: var(--asa-fs-body-dense);
}

.site-faq__all { margin: var(--asa-space-4) 0 0; font-size: var(--asa-fs-body-dense); }

/* Lide logo abaixo do H2 fora do asa-section-head (prova e editorial). */
.asa-proof > .asa-section-head__copy .asa-lead,
.asa-editorial h2 + .asa-lead { margin-top: var(--asa-space-4); }

html.site-travado { overflow: hidden; }

/* --------------------------------------------------------------------------
   VITRINE (/reservas-online)
   Topo do funil com stepper e resumo, filtros em coluna (painel no
   celular), cabeçalho da lista, atalhos e os cards.
   -------------------------------------------------------------------------- */
.site-funnel-top { padding-block: var(--asa-space-6); }
.site-funnel-top .site-draft { margin-bottom: var(--asa-space-5); }

.site-stepper { max-width: 760px; }
.site-stepper .asa-stepper__index { text-transform: none; letter-spacing: 0; font-family: var(--asa-font); }

.site-searchsum {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--asa-space-4);
  margin-top: var(--asa-space-5);
  padding: var(--asa-space-4) var(--asa-space-5);
  background: var(--asa-bg-elevated);
  border: var(--asa-border-width) solid var(--asa-line);
  border-radius: var(--asa-radius);
}

.site-searchsum[hidden] { display: none; }
.site-searchsum__body { display: grid; gap: 2px; min-width: 0; }
.site-searchsum__body p { margin: 0; max-width: none; }
.site-searchsum__place { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); font-weight: var(--asa-weight-bold); }
.site-searchsum__dates { display: flex; flex-wrap: wrap; gap: 0 var(--asa-space-5); font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-searchsum__rule { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-searchsum__coupon { margin-top: var(--asa-space-2) !important; }

/* H1 do funil: Registro 1, no tamanho de uma tela de tarefa. */
.site-funnel-h1 { font-size: clamp(28px, 3.4vw, 40px); }

.site-vitrine { padding-top: clamp(32px, 4vw, 48px); }
.site-vitrine__alert { margin-bottom: var(--asa-space-6); }
.site-vitrine__nosearch .asa-lead { margin-top: var(--asa-space-4); }
.site-vitrine__inline { margin-top: var(--asa-space-6); padding: clamp(16px, 2vw, 24px); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }
.site-vitrine__inline .site-booking { padding: 0; }
.site-vitrine__main { min-width: 0; }

.site-resultbar { margin-top: var(--asa-space-5); }
.site-resultbar .asa-resultbar__count { margin: 0; margin-right: auto; }
.site-resultbar__rating { margin-right: var(--asa-space-4); }

.site-chips {
  display: flex;
  gap: var(--asa-space-2);
  margin: var(--asa-space-4) 0 var(--asa-space-6);
  overflow-x: auto;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  padding-bottom: 2px;
}

.site-chips::-webkit-scrollbar { display: none; }
.site-chips .asa-chip { flex: none; white-space: nowrap; }
.site-chips .asa-chip span { color: inherit; opacity: 1; }

.site-results {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 264px), 1fr));
  gap: var(--asa-space-6);
}

.site-results[aria-busy="true"] { pointer-events: none; }
.site-vitrine__main:has([aria-busy="true"]) .asa-resultbar__count { font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-regular); color: var(--asa-ink-2); }
.site-results > li { display: flex; min-width: 0; }
.site-results > li > * { flex: 1; }
.site-results__wide { grid-column: 1 / -1; }

.site-vcard { display: flex; flex-direction: column; }
.site-vcard .asa-card__body { flex: 1; gap: var(--asa-space-2); padding: var(--asa-space-4); }
.site-vcard .asa-card-vehicle__category { margin-top: -4px; }
.site-vcard__price { margin-top: auto; padding-top: var(--asa-space-3); border-top: 1px solid var(--asa-line-soft); }
.site-vcard__price .asa-price__value { font-size: 30px; }
.site-vcard__old { font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-vcard .asa-card-vehicle__actions { flex-wrap: wrap; margin-top: var(--asa-space-2); }
.site-vcard .asa-card-vehicle__actions .asa-btn--primary,
.site-vcard .asa-card-vehicle__actions .asa-btn--outline { flex: 1 1 auto; }

/* Esgotado: a foto apaga e o selo escrito diz o porquê (cor não é o único
   sinal). O texto não recebe opacidade. */
.site-vcard[data-esgotado] .site-vcard__media { filter: grayscale(1); opacity: .45; }
.site-vcard__soldout {
  display: grid;
  justify-items: start;
  gap: var(--asa-space-2);
  margin-top: auto;
  padding-top: var(--asa-space-3);
  border-top: 1px solid var(--asa-line-soft);
}

.site-vcard__soldout p { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }

.site-skel { gap: var(--asa-space-3); }

.site-empty { padding-block: var(--asa-space-8); border: var(--asa-border-width) dashed var(--asa-line); border-radius: var(--asa-radius); }
.site-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--asa-space-3); margin-top: var(--asa-space-3); }

/* Filtros: painel ancorado embaixo no celular (asa-sheet), coluna no desktop. */
.site-filters__head {
  display: flex;
  align-items: center;
  gap: var(--asa-space-3);
  margin-bottom: var(--asa-space-4);
}

.site-filters__title { margin: 0 auto 0 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-filters .asa-filters__group { border: 0; border-bottom: var(--asa-border-width) solid var(--asa-line-soft); margin: 0; padding: 0 0 var(--asa-space-4); min-width: 0; }
.site-filters .asa-filters__group:last-of-type { border-bottom: 0; }
.site-filters legend { padding: 0; }
.site-filters .asa-choice__text { flex: 1; }
.asa-filters__option:has(:disabled) .asa-choice__title,
.asa-filters__option:has(:disabled) .asa-filters__count { color: var(--asa-disabled-text); }
.asa-filters__option:has(:disabled) { cursor: not-allowed; }
.site-filters__help { margin: -2px 0 4px; }
.site-filters__range { margin: 0 0 var(--asa-space-2); font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); font-variant-numeric: tabular-nums; }
.site-filters__foot { position: sticky; bottom: 0; padding-top: var(--asa-space-4); background: var(--asa-surface-float); }

.site-range { display: grid; grid-template-columns: 32px 1fr; align-items: center; gap: var(--asa-space-2); min-height: var(--asa-touch-min); font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-range input { width: 100%; accent-color: var(--asa-ink); }

.site-filters__open {
  position: fixed;
  left: 50%;
  bottom: var(--asa-space-4);
  transform: translateX(-50%);
  z-index: var(--asa-z-sticky);
  gap: var(--asa-space-2);
}

.site-filters__open[hidden] { display: none; }

@media (min-width: 1024px) {
  .site-filters {
    position: sticky;
    top: calc(var(--asa-header-h) + var(--asa-space-4));
    inset: auto;
    z-index: auto;
    display: block;
    pointer-events: auto;
  }
  .site-filters__veil,
  .site-filters .asa-sheet__handle,
  .site-filters__close,
  .site-filters__foot,
  .site-filters__open { display: none !important; }
  .site-filters .asa-sheet__surface {
    max-width: none;
    max-height: calc(100vh - var(--asa-header-h) - 32px);
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    transform: none;
    transition: none;
  }
}

/* Ficha do grupo no modal "Ver detalhes". */
.site-spec { width: 100%; border-collapse: collapse; font-size: var(--asa-fs-body-dense); }
.site-spec th, .site-spec td { padding: var(--asa-space-2) 0; border-bottom: 1px solid var(--asa-line-soft); text-align: left; }
.site-spec th { font-weight: var(--asa-weight-medium); color: var(--asa-ink-3); width: 44%; }
.site-modal-busca .asa-modal__surface { max-width: 560px; }
.site-modal-busca .site-booking { padding: 0; }
.site-modal-busca .asa-search__row { grid-template-columns: 1fr; }

/* Ajuda no pé da lista: três itens em texto, sem ícone nem card. */
.site-listhelp {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--asa-space-6);
}

@media (min-width: 768px) { .site-listhelp { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--asa-space-8); } }

.site-listhelp b { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-listhelp p { margin: var(--asa-space-1) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-listhelp a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* Na vitrine o botão de filtros ocupa o centro do pé; o WhatsApp fica à direita. */
body[data-page-type="vitrine"] { padding-bottom: 72px; }
@media (min-width: 1024px) { body[data-page-type="vitrine"] { padding-bottom: 0; } }
.site-vitrine [hidden] { display: none !important; }
.site-vcard__media { position: relative; }
.site-vcard__badge { position: absolute; left: var(--asa-space-3); bottom: var(--asa-space-3); z-index: 1; }
.site-vcard__badge { background: var(--asa-bg-elevated); }

.site-filters__veil { z-index: 0; }
.site-filters__surface { position: relative; z-index: 1; }
.site-filters__open--fora { visibility: hidden; }

/* --------------------------------------------------------------------------
   FUNIL: etapas 2 a 4 (adicionais, checkout, confirmação)
   Conteúdo à esquerda e resumo à direita no desktop (fixo ao rolar); no
   celular o resumo vem depois do conteúdo e uma barra no pé leva o total.
   -------------------------------------------------------------------------- */
.site-stepper__edit {
  margin-left: var(--asa-space-2);
  font-size: var(--asa-fs-label);
  font-weight: var(--asa-weight-medium);
  color: var(--asa-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-funnel { padding-top: clamp(32px, 4vw, 48px); }
.site-funnel [hidden] { display: none !important; }

.site-funnel__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--asa-space-8); align-items: start; }
@media (min-width: 1024px) { .site-funnel__grid { grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(32px, 4vw, 56px); } }

.site-funnel__main { min-width: 0; display: grid; gap: var(--asa-space-7); }
.site-funnel__main > .site-funnel-h1 { margin-bottom: calc(-1 * var(--asa-space-3)); }
.site-funnel__block { display: grid; gap: var(--asa-space-4); padding-top: var(--asa-space-7); border-top: 1px solid var(--asa-line-soft); min-width: 0; }
.site-funnel__block > h2 { margin: 0; }
.site-funnel__lead { margin: 0; color: var(--asa-ink-2); max-width: 640px; }
.site-funnel__after, .site-funnel__proof, .site-funnel__ref { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-funnel__after a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-funnel__proof, .site-funnel__ref { font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-funnel__proof b { color: var(--asa-ink); }
.site-funnel .asa-alert a { color: inherit; font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 2px; }

@media (min-width: 1024px) {
  .site-funnel__aside { position: sticky; top: calc(var(--asa-header-h) + var(--asa-space-4)); }
}
.site-funnel__aside { display: grid; gap: var(--asa-space-4); min-width: 0; }

/* Resumo */
.site-sum { gap: var(--asa-space-2); }
.site-sum:focus { outline: none; }
.site-sum:focus-visible { outline: 2px solid var(--asa-ink); outline-offset: 3px; }
.site-sum p { margin: 0; max-width: none; }
.site-sum__title { margin: 0 0 var(--asa-space-1); font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-sum__trip, .site-sum__rule, .site-sum__car { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-sum__trip b, .site-sum__car b { color: var(--asa-ink); }
.site-sum__car { display: grid; padding-bottom: var(--asa-space-2); border-bottom: 1px solid var(--asa-line-soft); }
.site-sum__car span { font-size: var(--asa-fs-label); color: var(--asa-ok); font-weight: var(--asa-weight-medium); }
.site-sum .asa-summary__row > span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.site-sum__strong { font-weight: var(--asa-weight-medium); color: var(--asa-ink); }
.site-sum__total { font-size: 26px; line-height: 1; font-weight: var(--asa-weight-black); font-style: italic; letter-spacing: var(--asa-tracking-price); color: var(--asa-action); }
.site-sum__total .site-pending { font-size: var(--asa-fs-label); font-style: normal; letter-spacing: 0; }
.site-sum__note { font-size: var(--asa-fs-label); color: var(--asa-ink-3); text-align: right; }
.site-sum__deposit, .site-sum__cancel, .site-sum__proof { font-size: var(--asa-fs-label); line-height: 1.45; color: var(--asa-ink-2); }
.site-sum__deposit { padding-top: var(--asa-space-3); border-top: 1px solid var(--asa-line-soft); }
.site-sum__cancel { color: var(--asa-ok); font-weight: var(--asa-weight-medium); }
.site-sum__actions { display: grid; gap: var(--asa-space-3); justify-items: stretch; }
.site-sum__actions .asa-btn[aria-disabled="true"] { background: var(--asa-disabled-bg); color: var(--asa-disabled-text); border-color: var(--asa-disabled-bg); cursor: not-allowed; }
.site-sum__back { justify-self: center; font-size: var(--asa-fs-body-dense); color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }
.site-sum__small { margin: 0; font-size: var(--asa-fs-label); line-height: 1.45; color: var(--asa-ink-3); max-width: none; }
.site-sum__error { display: flex; flex-wrap: wrap; align-items: center; gap: var(--asa-space-2); }

/* Barra do celular (asa-summary--bar): some quando o resumo está na tela. */
.site-sumbar { gap: var(--asa-space-3); padding: var(--asa-space-3) var(--asa-space-4); }
.site-sumbar__total { display: grid; gap: 0; line-height: 1.2; font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-sumbar__total b { font-size: var(--asa-fs-highlight); color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.site-sumbar__total .asa-btn--link { justify-self: start; min-height: 32px; padding: 0; }
.site-sumbar .asa-btn--primary { flex: none; }
.site-sumbar--fora { visibility: hidden; }
body[data-page-type^="funil-"] { padding-bottom: 88px; }
body[data-page-type^="funil-"] .site-fab { bottom: 96px; }
@media (min-width: 1024px) {
  body[data-page-type^="funil-"] { padding-bottom: 0; }
  body[data-page-type^="funil-"] .site-fab { bottom: var(--asa-space-4); }
}
body[data-page-type="funil-confirmacao"] { padding-bottom: 0; }
body[data-page-type="funil-confirmacao"] .site-fab { bottom: var(--asa-space-4); }

/* Etapa 2: carro escolhido */
.site-chosen { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: stretch; }
.site-chosen__photo { aspect-ratio: auto; min-height: 96px; height: 100%; }
.site-chosen__photo .asa-photo__caption { font-size: 11px; }
.site-chosen__body { display: grid; gap: var(--asa-space-1); padding: var(--asa-space-4); align-content: center; }
.site-chosen__title { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: none; }
.site-chosen__title b { color: var(--asa-ink); }
.site-chosen__link { justify-self: start; font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 640px) { .site-chosen { grid-template-columns: 180px minmax(0, 1fr); } }

/* Etapa 2: upgrade */
.site-upsell { flex-wrap: wrap; align-items: flex-end; cursor: default; background: var(--asa-surface-selected); }
.site-upsell .asa-upsell__body { flex: 1 1 320px; gap: var(--asa-space-2); }
.site-upsell__title { margin: 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-upsell__car { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: none; }
.site-upsell__car b { color: var(--asa-ink); }
.site-upsell__tags { display: flex; flex-wrap: wrap; gap: var(--asa-space-2); list-style: none; margin: 0; padding: 0; }
.site-upsell__side { display: grid; gap: var(--asa-space-2); justify-items: start; }
.site-upsell__msg { flex-basis: 100%; margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-upsell__msg:empty { display: none; }
.site-upsell--feito { background: var(--asa-bg-elevated); align-items: center; }

/* Etapa 2: proteção em três colunas com as mesmas linhas (subgrid alinha as
   linhas entre os cards no desktop; no celular, cards empilhados). */
.site-prots-wrap { border: 0; margin: 0; padding: 0; min-width: 0; }
.site-prots { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--asa-space-4); }
.site-prot {
  display: grid;
  gap: var(--asa-space-2);
  padding: var(--asa-space-4);
  background: var(--asa-bg-elevated);
  border: var(--asa-border-width) solid var(--asa-line);
  border-radius: var(--asa-radius);
  cursor: pointer;
}
.site-prot:has(input:disabled) { cursor: default; }
.site-prot[data-escolhida] { border: 2px solid var(--asa-ink); padding: calc(var(--asa-space-4) - .5px); background: var(--asa-surface-selected); }
.site-prot__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--asa-space-2); }
.site-prot__name { margin: 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-prot__price, .site-prot__delta { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: none; }
.site-prot__price b { font-size: var(--asa-fs-highlight); color: var(--asa-ink); }
.site-prot__delta { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }
.site-prot__rows { margin: var(--asa-space-2) 0 0; display: grid; }
.site-prot__rows > div { display: grid; gap: 2px; padding: var(--asa-space-2) 0; border-top: 1px solid var(--asa-line-soft); }
.site-prot__rows dt { font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-prot__rows dd { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink); }
.site-prot__choice { padding-top: var(--asa-space-3); border-top: 1px solid var(--asa-line); }
.site-prot__note { margin: 0; font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-prot__error { margin: 0; }
.site-prots-skeleton { display: grid; gap: var(--asa-space-4); }
@media (min-width: 768px) {
  .site-prots, .site-prots-skeleton { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* Nome, preço, diferença, as 8 linhas da comparação, a escolha e a nota:
     13 linhas de grade compartilhadas, para cada linha ficar na mesma altura
     nas três proteções. */
  .site-prot { grid-template-rows: subgrid; grid-row: span 13; }
  .site-prot__rows { grid-template-rows: subgrid; grid-row: span 8; row-gap: 0; }
}

/* Etapa 2: adicionais */
.site-extras { list-style: none; margin: 0; padding: 0; border-top: var(--asa-border-width) solid var(--asa-line); }
.site-extra { display: grid; gap: var(--asa-space-3) var(--asa-space-6); padding: var(--asa-space-5) 0; border-bottom: 1px solid var(--asa-line-soft); align-items: center; }
@media (min-width: 640px) { .site-extra { grid-template-columns: minmax(0, 1fr) auto; } }
.site-extra__text p { margin: var(--asa-space-1) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: 560px; }
.site-extra__name { margin: 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-extra__name span { margin-left: var(--asa-space-2); font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink-2); white-space: nowrap; }
.site-extra__text .site-extra__help { font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-extra__check { white-space: nowrap; }
.site-extra__alert, .site-extra__msg { grid-column: 1 / -1; margin: 0; }
.site-extra__msg { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-extra__msg:empty { display: none; }
.site-qty { display: inline-flex; align-items: center; gap: var(--asa-space-3); }
.site-qty__value { min-width: 2ch; text-align: center; font-size: var(--asa-fs-highlight); font-weight: var(--asa-weight-bold); font-variant-numeric: tabular-nums; }

/* Etapa 3: checkout */
.site-checkout { margin-top: 0; gap: var(--asa-space-7); }
.site-checkout .asa-fieldset { gap: var(--asa-space-4); }
.site-checkout .asa-field-row { grid-template-columns: 1fr; }
@media (min-width: 640px) { .site-checkout .asa-field-row { grid-template-columns: 1fr 1fr; } }
.site-checkout__h { margin: 0 0 var(--asa-space-1); }
.site-checkout__h3 { margin: var(--asa-space-4) 0 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-checkout__sub { display: grid; gap: var(--asa-space-4); padding-top: var(--asa-space-2); }
.site-checkout__other { display: grid; gap: var(--asa-space-4); padding: var(--asa-space-4); background: var(--asa-surface-float); border-radius: var(--asa-radius); }
.site-checkout__other > p { margin: 0; color: var(--asa-ink-2); }
.site-checkout__pend { margin: 0; font-size: var(--asa-fs-body-dense); }
.site-radios { border: 0; margin: 0; padding: 0; display: grid; }
.site-switch { align-items: center; }
.site-alert__links { display: flex; flex-wrap: wrap; gap: 0 var(--asa-space-4); margin-top: var(--asa-space-2); }
.site-pays { display: grid; gap: var(--asa-space-3); }
.site-pay { border-radius: var(--asa-radius); }
.site-pay__body { display: grid; gap: var(--asa-space-4); padding: var(--asa-space-4); border: var(--asa-border-width) solid var(--asa-line); border-top: 0; border-radius: 0 0 var(--asa-radius) var(--asa-radius); margin-top: -4px; }
.site-pay__body > p { margin: 0; color: var(--asa-ink-2); }
.site-pay:has(.site-pay__body:not([hidden])) .site-pay__choice { border-radius: var(--asa-radius) var(--asa-radius) 0 0; }
.site-consent { display: grid; gap: 2px; }
.site-funnel__notice { margin: 0; }

/* Etapa 4: confirmação */
.site-confirm__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--asa-space-7); align-items: start; }
@media (min-width: 1024px) { .site-confirm__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); } }
.site-confirm__main { display: grid; gap: var(--asa-space-5); min-width: 0; }
.site-confirm__main > * { margin: 0; }
.site-confirm__main .site-funnel-h1:focus { outline: none; }
.site-confirm__status { display: inline-flex; align-items: center; gap: var(--asa-space-2); margin: 0; font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-bold); color: var(--asa-ok); }
.site-confirm__status--wait { color: var(--asa-warn); }
.site-confirm__code .asa-field__label { margin: 0 0 var(--asa-space-2); }
.site-confirm__code .asa-coupon__code { font-size: clamp(22px, 3vw, 28px); letter-spacing: .06em; }
.site-confirm__mail, .site-confirm__fix { margin: 0; color: var(--asa-ink-2); max-width: 640px; }
.site-confirm__fix { font-size: var(--asa-fs-body-dense); }
.site-confirm__mail a, .site-confirm__fix a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-confirm__resp { display: block; margin-top: var(--asa-space-2); }
.site-pix { display: grid; gap: var(--asa-space-5); }
.site-pix__grid { display: grid; gap: var(--asa-space-5); align-items: start; }
@media (min-width: 640px) { .site-pix__grid { grid-template-columns: 200px minmax(0, 1fr); } }
.site-pix__qr { aspect-ratio: 1; max-width: 200px; }
.site-pix__code .asa-coupon__code { font-size: var(--asa-fs-label); letter-spacing: 0; text-overflow: ellipsis; }
.site-pix__steps { margin: var(--asa-space-4) 0 0; padding-left: 1.2em; color: var(--asa-ink-2); display: grid; gap: var(--asa-space-1); }
.site-voucher__box { margin-top: var(--asa-space-5); }
.site-voucher__list { display: grid; gap: var(--asa-space-2); margin: 0; }
.site-voucher__list .asa-summary__row { align-items: baseline; }
.site-voucher__list dt { flex: none; max-width: 45%; }
.site-voucher__list dd { margin: 0; text-align: right; color: var(--asa-ink); }
.site-voucher__total { font-size: 24px; font-weight: var(--asa-weight-black); font-style: italic; letter-spacing: var(--asa-tracking-price); color: var(--asa-action); }
.site-voucher__status { display: block; font-size: var(--asa-fs-label); font-weight: var(--asa-weight-medium); color: var(--asa-ink-2); }
.site-voucher__actions { margin-top: var(--asa-space-5); }
.site-voucher .site-checklist { margin-top: var(--asa-space-5); }
.site-listhelp__title { margin: 0 0 var(--asa-space-6); }
@media (min-width: 768px) { .site-listhelp--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media print {
  body[data-page-type="funil-confirmacao"] .asa-utilitybar,
  body[data-page-type="funil-confirmacao"] .site-navbar,
  body[data-page-type="funil-confirmacao"] .asa-footer,
  body[data-page-type="funil-confirmacao"] .site-fab,
  body[data-page-type="funil-confirmacao"] .site-funnel-top,
  body[data-page-type="funil-confirmacao"] .asa-bg-surface,
  body[data-page-type="funil-confirmacao"] .asa-coupon__copy,
  body[data-page-type="funil-confirmacao"] .site-voucher__actions { display: none !important; }
}
.site-confirm [hidden], .site-voucher [hidden] { display: none !important; }
/* Grade de uma coluna: a coluna nunca cresce além do espaço (o localizador e
   o código Pix são campos longos). */
.site-confirm__main, .site-funnel__main { grid-template-columns: minmax(0, 1fr); }
.site-pay__choice { justify-content: flex-start; }

/* --------------------------------------------------------------------------
   MINHA RESERVA
   Consulta por localizador e CPF num painel branco (como a busca do hero),
   o cartão da reserva (asa-card-booking) com status em texto e ícone, e a
   passagem para o WhatsApp na versão sem integração.
   -------------------------------------------------------------------------- */
.site-lookup { align-items: start; }
.site-lookup h1 { font-size: clamp(32px, 4.4vw, 52px); }
.site-lookup__note { margin: var(--asa-space-5) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: 520px; }
.site-lookup__note a, .site-result__small a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-lookup__card {
  padding: clamp(16px, 2vw, 24px);
  background: var(--asa-bg-elevated);
  border: var(--asa-border-width) solid var(--asa-line);
  border-radius: var(--asa-radius);
  display: grid;
  gap: var(--asa-space-4);
  min-width: 0;
}
.site-lookup__card [hidden] { display: none !important; }
.site-lookup__form { margin-top: 0; gap: var(--asa-space-4); }
.site-lookup__help { justify-self: center; }

.site-result [hidden] { display: none !important; }
.site-result__b { display: grid; gap: var(--asa-space-4); max-width: 760px; }
.site-result__b > * { margin: 0; }
.site-result__b h2:focus, .site-booking-card__title:focus { outline: none; }
.site-result__small { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }
.site-result__extra { display: grid; gap: var(--asa-space-2); justify-items: start; margin-top: var(--asa-space-4); padding-top: var(--asa-space-6); border-top: 1px solid var(--asa-line-soft); }
.site-result__extra h3, .site-result__extra p { margin: 0; }
.site-result__extra p { color: var(--asa-ink-2); }
.site-result__extra .asa-btn { margin-top: var(--asa-space-2); }

.site-booking-card { max-width: 760px; }
.site-booking-card .asa-card-booking__header { padding: var(--asa-space-5) var(--asa-space-5) 0; flex-wrap: wrap; }
.site-booking-card .asa-card-booking__body { padding: var(--asa-space-4) var(--asa-space-5); gap: var(--asa-space-4); }
.site-booking-card__title { margin: 0; font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }
.site-booking-card__title .asa-card-booking__code { font-size: inherit; color: var(--asa-ink); letter-spacing: .04em; }
.site-status { display: inline-flex; align-items: center; gap: 6px; }
.site-status .asa-icon { width: 14px; height: 14px; }
.site-booking-card__rows { margin: 0; display: grid; }
.site-booking-card__rows > div { display: grid; gap: 2px var(--asa-space-4); padding: var(--asa-space-3) 0; border-top: 1px solid var(--asa-line-soft); }
@media (min-width: 640px) { .site-booking-card__rows > div { grid-template-columns: 140px minmax(0, 1fr); } }
.site-booking-card__rows dt { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }
.site-booking-card__rows dd { margin: 0; color: var(--asa-ink); }
.site-booking-card__actions { display: grid; gap: var(--asa-space-3); justify-items: start; padding: var(--asa-space-4) var(--asa-space-5) var(--asa-space-5); border-top: 1px solid var(--asa-line-soft); }
.site-booking-card__actions[hidden] { display: none; }
.site-booking-card__main { display: grid; gap: var(--asa-space-2); justify-items: start; padding-bottom: var(--asa-space-2); }
.site-booking-card__main p, .site-booking-card__late { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-booking-card__link { font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-medium); color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }
button.site-booking-card__link { min-height: 0; padding: 0; }
.site-booking-card__late a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   PRÉ-CADASTRO (página-ponte)
   -------------------------------------------------------------------------- */
.site-checkin-top { align-items: center; }
.site-checkin-top h1 { font-size: clamp(32px, 4.4vw, 52px); }
.site-checkin-top .site-actions { margin-top: var(--asa-space-6); }
.site-checkin-top__note { margin: var(--asa-space-3) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3); }
.site-checkin-duo { margin-top: var(--asa-space-7); }
.site-checkin-duo h3 { margin: 0 0 var(--asa-space-4); }
.site-booking-card__row { margin: 0; font-size: var(--asa-fs-body-dense); }
.site-lookup h1 + .asa-lead, .site-checkin-top h1 + .asa-lead { margin-top: var(--asa-space-5); }

/* --------------------------------------------------------------------------
   FROTA (/frota e as seis categorias)
   Hero com o "a partir de" no cartão branco da busca (vermelho não vai
   sobre amarelo), cards de veículo com o preço do frota.js, a tabela dos
   15 grupos com filtros em chips, colunas de texto (roteiros, fatos) e a
   barra de reserva do celular.
   -------------------------------------------------------------------------- */
body[data-page-type^="frota"] [hidden], body[data-page-type="praca"] [hidden] { display: none !important; }

.site-hero__groups { margin: var(--asa-space-4) 0 0; font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-hero-fleet .site-hero__groups + .asa-lead { margin-top: var(--asa-space-3); }
.site-hero__proof { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--asa-space-2) var(--asa-space-5); margin: var(--asa-space-5) 0 0; }
.site-hero__since { font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }

.site-hero-price { padding-bottom: var(--asa-space-4); margin-bottom: var(--asa-space-4); border-bottom: 1px solid var(--asa-line-soft); }
.site-hero-price .asa-price { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: var(--asa-space-1) var(--asa-space-3); }
.site-hero-price .asa-price__value { font-size: clamp(30px, 3.4vw, 44px); }
.site-hero-price .asa-skeleton--title { height: 36px; margin: 0; }
.site-hero-price__pending { margin: calc(-1 * var(--asa-space-2)) 0 var(--asa-space-4); font-size: var(--asa-fs-label); max-width: none; }
.site-hero-price__pending:not(:has(.site-pending)) { display: none; }

.site-booking__grupo { margin: var(--asa-space-3) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-booking__grupo b { color: var(--asa-ink); }
.site-booking__grupo .asa-btn--link { min-height: 0; padding: 0; vertical-align: baseline; }

/* Cards da categoria: dois ou três; com dois, a grade não abre a terceira coluna vazia. */
@media (min-width: 1024px) {
  .site-vehicles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 880px; }
}
.site-fcard .asa-card-vehicle__specs b { font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-fcard__text { margin: var(--asa-space-1) 0 0; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink-2); max-width: none; }
.site-vcard__price .asa-price__note { color: var(--asa-ink-2); }
.site-vcard__price .asa-skeleton { margin: 0; }
.site-fcard[data-esgotado] .site-vcard__media { filter: grayscale(1); opacity: .45; }

.site-fleet-status { margin: 0 0 var(--asa-space-5); font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); max-width: 760px; }
.site-fleet-status:empty { display: none; }
.site-fleet-status a, .site-fleet-empty a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-fleet-alert:empty { display: none; }
.site-fleet-alert { margin-bottom: var(--asa-space-6); max-width: 760px; }
.site-fleet-alert .site-actions { margin-top: var(--asa-space-3); }

/* Listas com divisor: "para quem" e "considere outra categoria". Sem ícone. */
.site-list { list-style: none; margin: 0; padding: 0; }
.site-list li { padding: var(--asa-space-4) 0; border-top: 1px solid var(--asa-line-soft); color: var(--asa-ink-2); }
.site-list li:last-child { border-bottom: 1px solid var(--asa-line-soft); }
.site-list b { color: var(--asa-ink); }
.site-list a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-fleet-duo { margin-top: var(--asa-space-7); }
.site-fleet-duo h3 { margin: 0 0 var(--asa-space-4); }
.site-check__aside > p + p { margin-top: var(--asa-space-3); }
.site-check__aside > p a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }

/* Roteiros: com três lugares, três colunas no desktop. */
@media (min-width: 1024px) { .site-routes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Fatos curtos em colunas, com fio preto no topo (regras, diária, pontos de atenção). */
.site-trio { display: grid; gap: var(--asa-space-7); list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .site-trio--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-trio--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.site-trio > li { display: grid; align-content: start; gap: var(--asa-space-2); padding-top: var(--asa-space-5); border-top: 2px solid var(--asa-ink); }
.site-trio h3, .site-trio p { margin: 0; }
.site-trio p { color: var(--asa-ink-2); }
.site-trio a { justify-self: start; margin-top: var(--asa-space-2); font-weight: var(--asa-weight-bold); font-size: var(--asa-fs-body-dense); }
.site-trio__after { margin-top: var(--asa-space-7); max-width: 760px; color: var(--asa-ink-2); }
.site-trio__after a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-trio__after.site-actions { display: flex; flex-wrap: wrap; gap: var(--asa-space-3); }

.site-fleet-compare { margin-top: var(--asa-space-8); max-width: 560px; }
.site-fleet-compare h3 { margin: 0 0 var(--asa-space-4); }
.site-fleet-manual { max-width: 760px; }
.site-fleet-manual p { margin: var(--asa-space-4) 0 0; color: var(--asa-ink-2); }
.site-fleet-similar { max-width: 760px; }
.site-fleet-similar .asa-prose { margin-top: var(--asa-space-5); }
.site-fleet-similar .asa-alert { margin-top: var(--asa-space-6); }

.site-tabpanel__more { margin: var(--asa-space-5) 0 0; font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-bold); }
.site-tabpanel__empty { margin: 0 0 var(--asa-space-5); color: var(--asa-ink-2); }
.site-tabpanel:focus-visible { outline: 2px solid var(--asa-ink); outline-offset: 4px; }

/* Hub: os seis usos. O card inteiro é clicável pelo link (pseudo-elemento). */
.site-ucard .site-ucard__link { align-self: flex-start; margin-top: auto; }
.site-ucard .site-fcard__text { margin-bottom: var(--asa-space-3); }
.site-ucard__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.site-ucard:has(.site-ucard__link:hover) { border-color: var(--asa-ink); }

/* Hub: filtros em chips, por grupo. */
.site-ffilters { display: flex; flex-wrap: wrap; gap: var(--asa-space-4) var(--asa-space-7); margin-top: var(--asa-space-7); }
.site-ffilters__group { display: grid; gap: var(--asa-space-2); }
.site-ffilters__label { font-size: var(--asa-fs-label); font-weight: var(--asa-weight-medium); color: var(--asa-ink-3); }
.site-ffilters__chips { display: flex; flex-wrap: wrap; gap: var(--asa-space-2); }
@media (max-width: 767px) {
  .site-ffilters { display: grid; gap: var(--asa-space-3); }
  .site-ffilters__group { grid-template-columns: 64px minmax(0, 1fr); align-items: center; }
}
.site-ffilters__bar { display: flex; align-items: center; gap: var(--asa-space-4); margin: var(--asa-space-6) 0 var(--asa-space-3); min-height: var(--asa-touch-min); }
.site-ffilters__count { margin: 0; font-weight: var(--asa-weight-bold); color: var(--asa-ink); }

/* Hub: a tabela dos 15 grupos. No desktop, tabela; abaixo de 768px, cada
   linha vira um bloco: grupo e modelo, a ficha numa linha, a categoria e
   o preço. A unidade ("lugares") só aparece no bloco: na tabela, o
   cabeçalho já diz. */
.site-fleet-wrap { background: var(--asa-bg-elevated); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }
.site-fleet { width: 100%; border-collapse: collapse; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); }
.site-fleet th, .site-fleet td { padding: var(--asa-space-3) var(--asa-space-3); text-align: left; vertical-align: middle; border-bottom: 1px solid var(--asa-line-soft); }
.site-fleet thead th { font-size: var(--asa-fs-label); font-weight: var(--asa-weight-medium); color: var(--asa-ink-3); border-bottom: var(--asa-border-width) solid var(--asa-line); white-space: nowrap; }
.site-fleet tbody tr:last-child > * { border-bottom: 0; }
.site-fleet__g { font-weight: var(--asa-weight-black); font-style: italic; font-size: var(--asa-fs-body); color: var(--asa-ink); width: 1%; white-space: nowrap; }
.site-fleet__model { font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-fleet__similar { font-weight: var(--asa-weight-regular); color: var(--asa-ink-3); }
.site-fleet td { color: var(--asa-ink-2); }
.site-fleet__cats a { color: var(--asa-ink); text-decoration: underline; text-underline-offset: 3px; }
.site-fleet__price { white-space: nowrap; }
.site-fleet__value { display: inline-grid; gap: 0; margin-right: var(--asa-space-2); vertical-align: middle; }
.site-fleet__value:empty { display: none; }
.site-fleet__value b { font-size: var(--asa-fs-body); color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.site-fleet__value span { font-size: var(--asa-fs-label); color: var(--asa-ink-3); }
.site-fleet__price .asa-btn--link { min-height: 32px; padding: 0; }
.site-fleet tr[data-esgotado] .site-fleet__model { color: var(--asa-ink-3); }
.site-fleet__unit { display: none; }
.site-fleet-empty { padding: var(--asa-space-7) var(--asa-space-5); text-align: center; background: var(--asa-bg-elevated); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }
.site-fleet-empty p { margin: 0 auto var(--asa-space-4); color: var(--asa-ink-2); }

@media (max-width: 767px) {
  .site-fleet-wrap { background: none; border: 0; }
  .site-fleet thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .site-fleet, .site-fleet tbody { display: block; }
  .site-fleet tbody tr { display: block; padding: var(--asa-space-4); margin-bottom: var(--asa-space-3); background: var(--asa-bg-elevated); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }
  .site-fleet th, .site-fleet td { display: inline; padding: 0; border: 0; }
  .site-fleet__g::after { content: " · "; font-weight: var(--asa-weight-regular); font-style: normal; color: var(--asa-ink-3); }
  .site-fleet__model { display: inline; font-size: var(--asa-fs-body); }
  .site-fleet__model::after { content: ""; display: block; margin-bottom: var(--asa-space-2); }
  .site-fleet__unit { display: inline; }
  .site-fleet td[data-label="Malas"] { white-space: nowrap; }
  .site-fleet td[data-label="Tipo"], .site-fleet td[data-label="Câmbio"], .site-fleet td[data-label="Lugares"], .site-fleet td[data-label="Portas"] { color: var(--asa-ink-2); }
  .site-fleet td[data-label="Tipo"]::after, .site-fleet td[data-label="Câmbio"]::after, .site-fleet td[data-label="Lugares"]::after, .site-fleet td[data-label="Portas"]::after { content: " · "; color: var(--asa-ink-3); }
  .site-fleet td.site-fleet__cats { display: block; margin-top: var(--asa-space-2); }
  .site-fleet__cats::before { content: "Categoria: "; color: var(--asa-ink-3); }
  .site-fleet td.site-fleet__price { display: flex; align-items: center; justify-content: space-between; gap: var(--asa-space-3); margin-top: var(--asa-space-3); padding-top: var(--asa-space-3); border-top: 1px solid var(--asa-line-soft); white-space: normal; }
  .site-fleet__price .asa-btn--link { margin-left: auto; }
}

/* Barra de reserva do celular (asa-summary--bar). */
.site-fleetbar { transition: transform var(--asa-dur-fast) var(--asa-ease); }
.site-fleetbar.site-sumbar--fora { visibility: hidden; transform: translateY(100%); }
.site-fleetbar .site-sumbar__total b { font-size: var(--asa-fs-body); }
@media (max-width: 1023px) {
  body:has(.site-fleetbar) { padding-bottom: 76px; }
  body:has(.site-fleetbar) .site-fab { bottom: 88px; }
}
@media (prefers-reduced-motion: reduce) { .site-fleetbar { transition: none; } }
.site-fleet-status:focus { outline: none; }

/* --------------------------------------------------------------------------
   PRAÇAS (Aeroporto do Recife, Recife, Aeroporto de Fortaleza, Fortaleza)
   As peças da frota (hero com preço, cards, documentos, barra do celular)
   e mais: a loja ao lado do texto, duas colunas com H2 próprio, o
   depoimento grande da madrugada e as notas curtas.
   -------------------------------------------------------------------------- */
.site-fcard__text a, .site-vehicles-note a, .site-praca-note a, .site-routes-note a { color: var(--asa-ink); font-weight: var(--asa-weight-medium); text-decoration: underline; text-underline-offset: 3px; }
.site-praca-editorial { align-items: start; }
.site-praca-editorial .asa-editorial__media .asa-photo { aspect-ratio: 4 / 5; }
.site-praca-editorial h2 + .site-steps, .site-praca-editorial h2 + .asa-editorial__facts { margin-top: var(--asa-space-6); }
@media (min-width: 640px) { .site-praca-facts--1 { grid-template-columns: minmax(0, 1fr); } }
.site-praca-note { margin: var(--asa-space-6) 0 0; font-size: var(--asa-fs-body-dense); line-height: var(--asa-lh-body-dense); color: var(--asa-ink-2); max-width: 640px; }

.site-praca-duo > div > p:first-of-type { margin-top: var(--asa-space-5); }
.site-praca-duo > div > p + p { margin-top: var(--asa-space-3); }

.site-praca-loja { display: grid; gap: var(--asa-space-8); align-items: start; }
@media (min-width: 1024px) { .site-praca-loja { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 80px); } }
.site-praca-loja .asa-lead { margin-top: var(--asa-space-5); }
.site-praca-loja .site-list { margin-top: var(--asa-space-6); }
.site-store h3 { margin: var(--asa-space-5) 0 var(--asa-space-2); }
.site-store address { font-style: normal; color: var(--asa-ink-2); }
.site-store p { margin: var(--asa-space-2) 0 0; color: var(--asa-ink-2); }
.site-store .site-stores__fact { color: var(--asa-ink); font-weight: var(--asa-weight-medium); }
.site-store__links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--asa-space-3) var(--asa-space-5); margin-top: var(--asa-space-5); }
.site-store__links a:not(.asa-btn) { font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }

.site-praca-madrugada { display: grid; gap: var(--asa-space-8); align-items: center; }
@media (min-width: 1024px) { .site-praca-madrugada { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 5vw, 80px); } }
.site-praca-madrugada .asa-lead { margin-top: var(--asa-space-5); }
.site-praca-quote { margin: 0; padding-left: var(--asa-space-6); border-left: 2px solid var(--asa-ink); }
.site-praca-quote .asa-testimonial__quote { font-size: var(--asa-fs-highlight); line-height: var(--asa-lh-highlight); }

@media (min-width: 1024px) { .site-trio--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 960px; } }
@media (min-width: 1024px) { .site-routes--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--asa-space-7) var(--asa-space-6); } }

/* --------------------------------------------------------------------------
   LOJAS, DESTINOS E ALUGUEL MENSAL
   A ficha da rota (asa-summary) dentro do editorial, as lojas completas
   com o mapa sob demanda e o formulário de cotação.
   -------------------------------------------------------------------------- */
body[data-page-type="lojas"] [hidden], body[data-page-type="aluguel-mensal"] [hidden] { display: none !important; }

.site-route-card { margin-top: var(--asa-space-6); }
.site-route-card__title { margin: 0 0 var(--asa-space-2); font-size: var(--asa-fs-body-dense); font-weight: var(--asa-weight-bold); color: var(--asa-ink); }
.site-route-card .asa-summary__row > span:last-child { text-align: right; max-width: 62%; }
.site-route-tips { margin: var(--asa-space-7) 0 var(--asa-space-3); font-size: var(--asa-fs-highlight); }

.site-lojas__tel { margin: var(--asa-space-4) 0 0; color: var(--asa-ink-2); }
.site-lojas__tel a { color: var(--asa-ink); text-decoration: none; }
.site-stores--full { align-items: start; }
.site-store--full h3 { margin-bottom: 0; }
.site-store__name { margin: var(--asa-space-1) 0 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-3) !important; }
.site-store__facts { display: grid; gap: var(--asa-space-4); margin: var(--asa-space-5) 0 0; }
.site-store__facts dt { font-size: var(--asa-fs-label); font-weight: var(--asa-weight-medium); color: var(--asa-ink-3); }
.site-store__facts dd { margin: 2px 0 0; color: var(--asa-ink-2); }
.site-store__facts address { font-style: normal; }
.site-store__facts a { color: var(--asa-ink); font-weight: var(--asa-weight-bold); }
@media (max-width: 767px) { .site-stores--full[data-primeiro="FOR"] > :last-child { order: -1; } }
.site-map { margin-top: var(--asa-space-4); padding-top: var(--asa-space-3); border-top: 1px solid var(--asa-line-soft); }
.site-map .asa-btn--link { padding: 0; min-height: var(--asa-touch-min); }
.site-map__status { margin: 0; font-size: var(--asa-fs-body-dense); color: var(--asa-ink-2); }
.site-map__status:empty { display: none; }
.site-map__frame { display: block; width: 100%; aspect-ratio: 4 / 3; margin-top: var(--asa-space-3); border: var(--asa-border-width) solid var(--asa-line); border-radius: var(--asa-radius); }

.site-compare__alert { margin-top: var(--asa-space-7); max-width: 760px; }

/* ==========================================================================
   FOTO REAL NO LUGAR DO PLACEHOLDER (scripts/aplicar_fotos.py)
   A caixa do .asa-photo continua (proporção, corte de 8°); a foto cobre a
   caixa toda e a hachura sai.
   ========================================================================== */
.asa-photo.site-foto { background-image: none; background-color: var(--asa-placeholder); }
.asa-photo.site-foto > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* Foto de carro em fundo branco (recorte do site atual): o carro inteiro
   aparece em qualquer proporção de caixa, sem cortar para-choque ou roda. */
.asa-photo.site-foto--inteira { background-color: var(--asa-white); }
.asa-photo.site-foto--inteira > img { object-fit: contain; }

/* ==========================================================================
   Home com carrossel no hero (teste, /home-carrossel)
   Três slides no lugar do hero amarelo: o H1 da home, o pré-cadastro e a
   diária de 27 horas, nos layouts enviados pela Asa. A busca continua fixa
   logo abaixo, fora do carrossel, para não sumir quando o slide troca.
   Troca a cada 7 s; para no hover, no foco e no botão de pausa; sem
   troca automática com prefers-reduced-motion.
   ========================================================================== */
.site-hc { position: relative; overflow: clip; background: var(--asa-surface); color: var(--asa-ink); }
.site-hc__slides { display: grid; }
.site-hc__slide { grid-area: 1 / 1; position: relative; display: grid; align-items: center; opacity: 0; visibility: hidden; transition: opacity .45s ease, visibility 0s linear .45s; }
.site-hc__slide[data-ativo] { opacity: 1; visibility: visible; transition: opacity .45s ease; }
.site-hc__slide--surface { background: var(--asa-surface); }
.site-hc__slide--mist { background: var(--asa-mist); }
.site-hc__inner { position: relative; z-index: 1; display: grid; gap: var(--asa-space-6); align-items: center; padding-block: clamp(28px, 4vw, 56px); }
.site-hc__copy { display: grid; gap: var(--asa-space-4); justify-items: start; min-width: 0; max-width: 620px; }
.site-hc__copy p { margin: 0; max-width: 52ch; }
.site-hc__copy .asa-display { font-size: clamp(34px, 4.6vw, 58px); }
.site-hc__media { min-width: 0; }
.site-hc__media .asa-cut__media { aspect-ratio: 4 / 3; max-width: 100%; overflow: hidden; border-radius: var(--asa-radius); }
.site-hc__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Pré-cadastro: bloco amarelo atrás da foto, como no layout. */
.site-hc__slide--mist::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 26%; background: var(--asa-surface); z-index: 0; }
/* 27 horas: foto sangrando à direita, com o corte de 8° na borda esquerda. */
.site-hc__slide--sangria .site-hc__media { position: absolute; inset: 0 0 0 auto; width: 50%; }
.site-hc__slide--sangria .site-hc__media img { clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
.site-hc__slide--sangria .site-hc__inner { grid-template-columns: minmax(0, 1fr); }
.site-hc__slide--sangria .site-hc__copy { max-width: 46%; }

.site-hc__controles { position: relative; z-index: 2; padding-block: var(--asa-space-4); }
.site-hc__controles .asa-container { display: flex; align-items: center; gap: var(--asa-space-2); }
.site-hc__pontos { display: flex; gap: var(--asa-space-2); margin-inline: var(--asa-space-2); }
.site-hc__ponto { width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.site-hc__ponto::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--asa-ink); opacity: .3; transition: width .2s, opacity .2s; }
.site-hc__ponto[aria-current="true"]::before { width: 24px; border-radius: 5px; opacity: 1; }
.site-hc__ponto:focus-visible { outline: 3px solid var(--asa-ink); outline-offset: 2px; border-radius: 6px; }
.site-hc .asa-btn--icon { background: var(--asa-white); }
.site-hc .asa-btn--icon svg[hidden] { display: none; }  /* o atributo hidden não esconde svg sozinho */

.site-hc-busca { position: relative; z-index: 3; padding-bottom: clamp(40px, 5vw, 80px); }
.site-hc-busca .site-draft { margin-bottom: var(--asa-space-4); }
.site-hc-busca .asa-hero__search { margin-top: 0; box-shadow: 0 8px 24px rgba(20, 21, 23, .08); }

@media (min-width: 900px) {
  .site-hc__inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 440px; }
}
@media (max-width: 899px) {
  .site-hc__slide--mist::after { display: none; }
  .site-hc__slide--sangria .site-hc__media { position: static; width: auto; }
  .site-hc__slide--sangria .site-hc__media img { clip-path: none; aspect-ratio: 16 / 9; border-radius: var(--asa-radius); }
  .site-hc__slide--sangria .site-hc__copy { max-width: none; }
  .site-hc__slide--sangria .site-hc__inner { padding-bottom: var(--asa-space-4); }
  .site-hc__slide--sangria .site-hc__media { padding: 0 var(--asa-section-pad-x) var(--asa-space-6); }
}
/* No celular a foto sai, para a busca ficar perto da primeira dobra. */
@media (max-width: 639px) {
  .site-hc__media { display: none; }
  .site-hc__slide--sangria .site-hc__inner { padding-bottom: clamp(28px, 4vw, 56px); }
}
@media (prefers-reduced-motion: reduce) {
  .site-hc__slide, .site-hc__slide[data-ativo] { transition: none; }
}
