:root{
  /* ---- Tema de cor (baseado na logo) ----
     --cor-destaque muda conforme [data-tema] no <html>; --cor-destaque-clara é
     derivada automaticamente dela via color-mix(), então cada tema novo só
     precisa definir uma única cor. Os dois neutros abaixo são fixos — iguais
     nos 4 temas, como pedido. */
  --cor-destaque:#FFCC29;
  --cor-destaque-clara: color-mix(in srgb, var(--cor-destaque) 78%, white);
  --cor-neutro-escuro:#5F6157;
  --cor-neutro-claro:#848688;

  --bg:#14120E;
  --bg-soft:#1B1812;
  --bg-card:#201C15;
  --ink:#F3EEDF;
  --ink-muted:#A89F88;
  --ink-faint:#6F6858;
  --teal:#2F6F62;
  --teal-bright:#4C9585;
  --line: color-mix(in srgb, var(--cor-destaque) 16%, transparent);
  --radius:2px;
  --espaco-bloco: clamp(3.5rem, 7vw, 6rem);
  /* Glow do hover dos cards de Serviços — generoso no escuro. Modulado por
     tema (ver body.tema-claro abaixo): um valor fixo só funciona num dos
     dois temas, igual ao gotcha já corrigido no scrim do hero. */
  --glow-servico: 0 0 28px 3px color-mix(in srgb, var(--cor-destaque) 45%, transparent);

  /* Cores fixas do Header/Footer — o FUNDO/TEXTO não mudam entre os temas
     claro/escuro do corpo da página (propositalmente), mas o acento sempre
     acompanha o --cor-destaque escolhido, igual ao resto do site. */
  --chrome-bg-soft:#1B1812;
  --chrome-ink:#F3EEDF;
  --chrome-ink-muted:var(--cor-neutro-claro);
  --chrome-line: color-mix(in srgb, var(--cor-destaque) 16%, transparent);
}

/* As 4 variações de cor da logo. "amarelo" não precisa de regra própria:
   é o valor padrão já definido em :root acima. */
[data-tema="verde"]{ --cor-destaque:#00A859; }
[data-tema="laranja"]{ --cor-destaque:#F6A13A; }
[data-tema="azul"]{ --cor-destaque:#3E4095; }

/* Tema claro: inverte só as cores do CORPO da página (fundo/texto).
   Header e Footer usam as variáveis --chrome-*, que não são redefinidas aqui,
   então permanecem escuros nos dois temas. */
body.tema-claro{
  --bg:#F7F3E7;
  --bg-soft:#EFE7D3;
  --bg-card:#FFFFFF;
  --ink:#1C1912;
  --ink-muted:#5C5646;
  --ink-faint:#8A8371;
  --cor-destaque-clara: color-mix(in srgb, var(--cor-destaque) 70%, black);
  --line: color-mix(in srgb, var(--cor-destaque) 22%, transparent);
  --glow-servico: 0 0 14px 1px color-mix(in srgb, var(--cor-destaque) 22%, transparent);
}

*{box-sizing:border-box;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Inter',-apple-system,Segoe UI,Tahoma,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease, color .25s ease;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
.mono{font-family:'IBM Plex Mono',monospace;}
.container{max-width:1200px;margin:0 auto;padding:0 32px;}
::selection{background:var(--cor-destaque);color:#14120E;}

/* Header — sempre escuro, independente do tema claro/escuro escolhido */
.topo{
  position:sticky;top:0;z-index:50;
  background:rgba(20,18,14,0.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--chrome-line);
}
.topo-conteudo{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;max-width:1200px;margin:0 auto;gap:24px;flex-wrap:wrap;
}
.logo{display:flex;align-items:center;}
.logo img{height:74px;display:block;}
.topo nav{display:flex;gap:28px;align-items:center;flex:1;justify-content:center;flex-wrap:wrap;}
.topo nav a{
  font-size:13.5px;letter-spacing:0.03em;color:var(--chrome-ink-muted);font-weight:500;transition:color .2s;
}
.topo nav a:hover{color:var(--cor-destaque-clara);}
/* Submenu "Serviços" — agrupa as páginas de serviço (Cruzeiros/Hotéis/Scooters/
   Casas de Temporada) num só item de nav, mesmo padrão hover/focus-within do
   .admin-dropdown. No mobile (nav já colapsada em lista vertical via
   .nav-toggle) isso é achatado de volta pra lista simples — ver media query. */
.nav-servicos{position:relative;}
.nav-servicos-toggle{
  font:inherit;font-size:13.5px;letter-spacing:0.03em;color:var(--chrome-ink-muted);font-weight:500;
  background:none;border:none;padding:0;cursor:pointer;transition:color .2s;
}
.nav-servicos-toggle:hover{color:var(--cor-destaque-clara);}
.nav-servicos-menu{
  display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  flex-direction:column;background:#1B1812;border:1px solid var(--chrome-line);border-radius:4px;
  min-width:190px;padding:6px;box-shadow:0 16px 32px rgba(0,0,0,0.45);z-index:60;
}
.nav-servicos-menu a{display:block;padding:9px 12px;font-size:13px;color:var(--chrome-ink-muted);border-radius:3px;white-space:nowrap;transition:all .15s;}
.nav-servicos-menu a:hover{background:color-mix(in srgb, var(--cor-destaque) 12%, transparent);color:var(--cor-destaque-clara);}
.nav-servicos:hover .nav-servicos-menu,
.nav-servicos:focus-within .nav-servicos-menu{display:flex;}
.login-group{display:flex;gap:10px;align-items:center;}
.btn-login{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
  padding:9px 15px;border-radius:var(--radius);border:1px solid var(--chrome-line);color:var(--chrome-ink-muted);
  white-space:nowrap;transition:all .2s;background:transparent;cursor:pointer;
}
.btn-login.agencia{border-color:var(--cor-neutro-escuro);color:var(--cor-destaque-clara);}
.btn-login.agencia:hover{background:var(--cor-destaque);color:#14120E;border-color:var(--cor-destaque);}
.btn-login.viajante:hover{background:var(--teal);color:#0E1E1A;border-color:var(--teal);}

/* Botão de "escolha de tipo de conta" (Agência/Pessoa Jurídica vs.
   Cliente/Pessoa Física) com título + subtítulo menor — usado no header
   (deslogado) e na tela de Login. */
.btn-login-duplo{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.35;gap:1px;}
.btn-login-subtitulo{display:block;font-size:0.72em;opacity:0.7;font-weight:400;letter-spacing:0.03em;}

/* Submenu do Admin (dropdown no header) — agrupado em seções e distribuído
   em 2 colunas (balanceadas automaticamente via column-count) pra não virar
   uma lista vertical enorme conforme o site ganha mais telas de Admin. */
.admin-dropdown{position:relative;}
.admin-dropdown-menu{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#1B1812;border:1px solid var(--chrome-line);border-radius:4px;
  width:440px;max-width:calc(100vw - 24px);padding:10px 6px;box-shadow:0 16px 32px rgba(0,0,0,0.45);z-index:60;
  column-count:2;column-gap:4px;
}
.admin-dropdown-menu a{
  display:block;padding:8px 12px;font-size:13px;color:var(--chrome-ink-muted);
  border-radius:3px;white-space:nowrap;transition:all .15s;
}
.admin-dropdown-menu a:hover{background:color-mix(in srgb, var(--cor-destaque) 12%, transparent);color:var(--cor-destaque-clara);}
.admin-dropdown-menu a.admin-dropdown-destaque{font-weight:700;color:var(--cor-destaque-clara);margin-bottom:4px;}
.admin-dropdown:hover .admin-dropdown-menu,
.admin-dropdown:focus-within .admin-dropdown-menu{display:block;}
.admin-dropdown-grupo{break-inside:avoid-column;margin-bottom:6px;}
.admin-dropdown-titulo{
  font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--chrome-ink-muted);opacity:0.55;font-weight:700;padding:7px 12px 2px;
}

/* Cards do painel inicial do Admin (/Admin), agrupados por seção (mesmos 5
   grupos do dropdown — ver _Layout.cshtml). Dois formatos: com contador
   (pendência de verdade, número grande + destaque quando > 0) e "simples"
   (só atalho de navegação, sem número, pra links que não representam fila
   de trabalho). */
.admin-painel-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:12px 0 8px;}
.admin-painel-card{
  display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:92px;min-width:0;
  background:var(--bg-card);border:1px solid var(--line);
  border-radius:4px;padding:22px 20px;transition:transform .2s,border-color .2s;
}
.admin-painel-card:hover{transform:translateY(-3px);border-color:var(--cor-neutro-escuro);}
.admin-painel-card.atencao{border-color:color-mix(in srgb, var(--cor-destaque) 45%, var(--line));}
.admin-painel-num{font-family:'Fraunces',Georgia,serif;font-size:34px;font-weight:600;color:var(--ink-muted);}
.admin-painel-card.atencao .admin-painel-num{color:var(--cor-destaque-clara);}
.admin-painel-label{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0.05em;overflow-wrap:break-word;}
.admin-painel-card.simples .admin-painel-label{
  font-family:'Fraunces',Georgia,serif;font-size:17px;font-weight:600;text-transform:none;
  letter-spacing:normal;color:var(--ink);
}

/* Switch discreto de tema claro/escuro */
.tema-toggle{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  border:1px solid var(--chrome-line);background:transparent;color:var(--chrome-ink-muted);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;
}
.tema-toggle:hover{border-color:var(--cor-destaque);color:var(--cor-destaque-clara);}
.tema-toggle svg{width:15px;height:15px;}
.tema-toggle .icone-sol{display:none;}
body.tema-claro .tema-toggle .icone-lua{display:none;}
body.tema-claro .tema-toggle .icone-sol{display:block;}

/* Botão de menu (hamburger) — só aparece no mobile, abre/fecha a nav */
.nav-toggle{display:none;}
/* No desktop, esse wrapper "desaparece" do layout (display:contents), então o
   botão (escondido) e a <nav> continuam se comportando como filhos diretos do
   header, sem afetar o flex existente. No mobile viramos isso num container
   de posicionamento de verdade, para a nav abrir como dropdown ancorado no
   botão — ver @media(max-width:900px) mais abaixo. */
.nav-wrap{display:contents;}

/* Dropdown de seleção de tema de cores (paleta baseada na logo) */
.paleta-dropdown{position:relative;}
.paleta-dropdown-menu{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#1B1812;border:1px solid var(--chrome-line);border-radius:4px;
  width:200px;max-width:calc(100vw - 24px);padding:6px;box-shadow:0 16px 32px rgba(0,0,0,0.45);z-index:60;
}
.paleta-dropdown:hover .paleta-dropdown-menu,
.paleta-dropdown:focus-within .paleta-dropdown-menu{display:block;}
.paleta-opcao{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:9px 12px;font-size:13px;color:var(--chrome-ink-muted);
  border-radius:3px;white-space:nowrap;transition:all .15s;
  background:transparent;border:none;text-align:left;cursor:pointer;font-family:'Inter',sans-serif;
}
.paleta-opcao:hover{background:color-mix(in srgb, var(--cor-destaque) 12%, transparent);color:var(--cor-destaque-clara);}
.paleta-opcao.ativo{color:var(--cor-destaque-clara);}
.paleta-bolinha{
  width:14px;height:14px;border-radius:50%;flex-shrink:0;border:1px solid rgba(255,255,255,0.25);
}

/* Layout geral */
.conteudo{min-height:60vh;padding:56px 32px;max-width:1200px;margin:0 auto;}

/* Hero — fundo decorativo precisa ir de ponta a ponta da viewport, mesmo
   agora que <main> virou um container centralizado com max-width. A técnica
   width:100vw + margin negativo "escapa" do container pai, independente da
   largura dele (mesma técnica usada em .ticker-section, mais abaixo). */
.hero{
  position:relative;padding:26px 32px 20px;border-bottom:1px solid var(--line);overflow:hidden;
  background:radial-gradient(ellipse 700px 400px at 15% 0%, color-mix(in srgb, var(--cor-destaque) 9%, transparent), transparent 60%),
             radial-gradient(ellipse 600px 500px at 100% 30%, rgba(47,111,98,0.10), transparent 60%);
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.hero-inner{max-width:1200px;margin:0 auto;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.12em;color:var(--cor-destaque);
  text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:10px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--cor-destaque);display:inline-block;}
.hero h1{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:30px;line-height:1.15;
  letter-spacing:-0.01em;margin:0 0 10px;color:var(--ink);
}
.hero p{font-size:15px;line-height:1.6;color:var(--ink-muted);max-width:560px;margin-bottom:16px;}
.hero h1 .flip-word{
  display:inline-block;color:var(--cor-destaque-clara);font-style:italic;font-weight:500;
  min-width:1ch;transition:opacity .25s ease;
}
.botao{
  background:var(--cor-destaque);color:#14120E;font-weight:600;font-size:14px;
  padding:13px 24px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:8px;
  transition:transform .15s, background .2s;border:none;cursor:pointer;
}
.botao:hover{background:var(--cor-destaque-clara);transform:translateY(-1px);}
/* Variante do .botao pro CTA "Falar no WhatsApp" — verde (reaproveita o teal
   já usado em .status.ok/promo-card) em vez do dourado de destaque, pra não
   competir visualmente com o CTA principal da página quando os dois
   aparecem juntos (ex: cards de Pacotes). */
.botao-whatsapp{background:var(--teal-bright);color:#0F1D19;}
.botao-whatsapp:hover{background:var(--teal);color:#F3EEDF;}

/* Hero da Home v2 — bloco/classe própria, separada de .hero (que continua
   sendo o banner genérico reusado por Contato/Pacotes/Sobre/Conta/etc). Full
   bleed com a mesma técnica width:100vw + margin negativo do .hero acima. */
.home-hero{
  position:relative;overflow:hidden;min-height:78vh;display:flex;align-items:flex-end;
  border-bottom:1px solid var(--line);
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.home-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;}
/* Os dois gradientes usam var(--bg) (não um preto fixo) — mesmo padrão já
   validado em .cruz-hero-overlay (Cruzeiros/Hotéis/Scooters/CasasTemporada):
   o texto do hero usa var(--ink), que também inverte no tema claro, então o
   scrim PRECISA inverter junto. Uma primeira versão fixava o gradiente
   horizontal em rgba(20,18,14,...) — no tema claro isso deixava texto escuro
   sobre scrim ainda escuro, quase ilegível (achado testando no navegador). */
.home-hero-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to right, var(--bg) 0%, color-mix(in srgb, var(--bg) 40%, transparent) 45%, transparent 70%),
    linear-gradient(to top, var(--bg) 0%, color-mix(in srgb, var(--bg) 62%, transparent) 28%, transparent 60%);
}
.home-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:0 32px 56px;}
.home-hero-content{max-width:640px;}
/* Mesmo ajuste já usado em .cruz-hero-inner .eyebrow: no tema claro o
   dourado padrão fica de baixo contraste sobre a área clara da foto. */
body.tema-claro .home-hero-content .eyebrow{color:color-mix(in srgb, var(--cor-destaque) 45%, black);}
body.tema-claro .home-hero-content .eyebrow::before{background:color-mix(in srgb, var(--cor-destaque) 45%, black);}
.home-hero-content h1{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.08;letter-spacing:-0.01em;margin:0 0 14px;color:var(--ink);
}
.home-hero-flip-line{font-size:16px;line-height:1.6;color:var(--ink-muted);margin:0 0 24px;}
.home-hero-flip-line .flip-word{
  display:inline-block;color:var(--cor-destaque-clara);font-style:italic;font-weight:500;
  min-width:1ch;transition:opacity .25s ease;
}
.home-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.home-hero-ctas .botao, .home-hero-ctas .botao-whatsapp{min-height:44px;}
/* CTA secundário nesta seção é outline dourado (não o teal sólido que
   .botao-whatsapp usa nas páginas de serviço) — sobrescrito só aqui, via
   seletor descendente, sem alterar a classe global reaproveitada por
   Cruzeiros/Hotéis/Scooters/CasasTemporada/Contato. */
.home-hero-ctas .botao-whatsapp{
  background:transparent;color:var(--cor-destaque-clara);border:1px solid var(--cor-destaque);
}
.home-hero-ctas .botao-whatsapp:hover{background:color-mix(in srgb, var(--cor-destaque) 14%, transparent);color:var(--cor-destaque-clara);}
.home-hero-ctas .botao:focus-visible, .home-hero-ctas .botao-whatsapp:focus-visible{
  outline:2px solid var(--cor-destaque);outline-offset:3px;
}
@media(max-width:560px){
  .home-hero-ctas{flex-direction:column;align-items:stretch;}
}
@media(max-width:780px){
  .home-hero{min-height:62vh;}
}
@media(prefers-reduced-motion: reduce){
  .home-hero-flip-line .flip-word{transition:none;}
}

/* Faixa de Credibilidade — cola direto no hero (sem respiro vertical, por
   isso margin-top:0 e um padding-block bem menor que o resto dos blocos). */
.credibilidade{
  margin-top:0;background:var(--bg);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.credibilidade-inner{
  max-width:1200px;margin:0 auto;padding:28px 32px;
  display:flex;justify-content:space-around;flex-wrap:wrap;gap:20px;
}
.credibilidade-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;}
.credibilidade-valor{font-size:28px;font-weight:600;color:var(--cor-destaque-clara);}
.credibilidade-label{
  font-size:11px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0.08em;opacity:0.72;
}
@media(max-width:780px){
  .credibilidade-inner{display:grid;grid-template-columns:1fr 1fr;justify-items:center;}
}

/* Painel de Operações (board) */
.board{
  background:linear-gradient(180deg,#100E0A,#171310);border:1px solid var(--line);border-radius:4px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);overflow:hidden;margin-top:32px;
}
.board-head{
  display:flex;justify-content:space-between;align-items:center;padding:12px 20px;
  border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:0.1em;color:var(--cor-destaque);text-transform:uppercase;
}
.board-head .dot{
  width:7px;height:7px;border-radius:50%;background:var(--teal-bright);display:inline-block;
  margin-right:7px;box-shadow:0 0 8px var(--teal-bright);
}
.board-atualizado{opacity:0.7;font-size:10px;}
/* flex column + "order" (JS reordena a janela de 5 linhas visíveis entre
   todas as entradas ativas, sem mover nó nenhum no DOM). */
.board-rows{display:flex;flex-direction:column;}
/* Especificidade .board-row.board-row-oculta (não só .board-row-oculta) de
   propósito: essa regra precisa vencer .board-row{display:grid;...}, que vem
   DEPOIS no arquivo — com as duas em 0,1,0 a que vem depois ganharia (achado
   testando no navegador: a classe era aplicada mas o display:grid continuava
   valendo, linha "oculta" seguia ocupando espaço). */
.board-row.board-row-oculta{display:none;}
.board-row-entrando{animation:boardFlipIn .5s ease both;}
@keyframes boardFlipIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion: reduce){
  .board-row-entrando{animation:none;}
}
.board-row{
  display:grid;grid-template-columns:80px 1fr 90px 110px;gap:12px;padding:12px 20px;
  border-bottom:1px solid color-mix(in srgb, var(--cor-destaque) 8%, transparent);font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;align-items:center;
}
.board-row:last-child{border-bottom:none;}
.board-row .code{color:var(--cor-destaque-clara);font-weight:600;}
.board-row .dest{color:var(--ink);}
.board-row .dest small{display:block;color:var(--ink-faint);font-size:10.5px;margin-top:2px;font-family:'Inter',sans-serif;}
.board-row .time{color:var(--ink-muted);}
.status{font-size:9.5px;text-transform:uppercase;letter-spacing:0.05em;padding:3px 7px;border-radius:2px;text-align:center;}
.status.ok{background:rgba(47,111,98,0.25);color:var(--teal-bright);}
.status.hot{background:color-mix(in srgb, var(--cor-destaque) 20%, transparent);color:var(--cor-destaque-clara);}
.status.neutro{background:color-mix(in srgb, var(--ink-muted) 18%, transparent);color:var(--ink-muted);}
.status.cancelado{background:rgba(224,138,125,0.18);color:#e08a7d;}

/* Section headers */
/* Centralização/respiro lateral já vem do <main class="container"> em
   _Layout.cshtml (ver .container acima) — aqui só sobra o ritmo vertical. */
section.bloco{padding-block:var(--espaco-bloco);padding-inline:0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px;gap:20px;flex-wrap:wrap;}
.section-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.1em;color:var(--cor-destaque);text-transform:uppercase;margin-bottom:6px;display:block;}
.section-head h2{font-family:'Fraunces',Georgia,serif;font-size:28px;font-weight:600;margin:0;color:var(--ink);}

/* Cards (pacotes) */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:10px;}
.card{
  background:var(--bg-card);border:1px solid var(--line);border-radius:4px;padding:20px;
  transition:transform .25s,border-color .25s;
}
.card:hover{transform:translateY(-3px);border-color:var(--cor-neutro-escuro);}
.card h3{font-family:'Fraunces',Georgia,serif;font-size:19px;margin:0 0 8px;font-weight:600;color:var(--ink);}
.card p{font-size:13.5px;color:var(--ink-muted);line-height:1.55;}
.card .preco{font-weight:700;color:var(--cor-destaque-clara);font-family:'IBM Plex Mono',monospace;font-size:14px;}
.card .preco small{color:var(--ink-faint);font-weight:400;font-family:'Inter',sans-serif;font-size:11px;text-transform:none;}
.card .link{font-size:12.5px;color:var(--cor-destaque-clara);font-weight:600;}
.tag-categoria{
  display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--cor-destaque-clara);background:color-mix(in srgb, var(--cor-destaque) 12%, transparent);
  padding:3px 9px;border-radius:20px;margin-bottom:10px;
}
.card-meta{font-size:12px;color:var(--ink-faint);margin:6px 0 12px;}

/* Filtros em formato de pílula (usado na página de Pacotes) */
.filtro-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
.filtro-pill{
  padding:9px 18px;border:1px solid var(--line);border-radius:20px;font-size:13px;
  color:var(--ink-muted);font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;transition:all .2s;
}
.filtro-pill:hover{border-color:var(--cor-destaque);color:var(--cor-destaque-clara);}
.filtro-pill.ativo{background:var(--cor-destaque);color:#14120E;border-color:var(--cor-destaque);font-weight:600;}

/* Serviços — cards de imagem-em-cima/texto-embaixo (Home v2, refeito: a
   versão anterior era texto sobre a foto, e o contraste dependia do que
   cada foto tinha no rodapé — funcionava em algumas, sumia em outras,
   ex. Scooters). Agora o texto sempre fica sobre --bg-card sólido, igual
   ao vocabulário visual já usado nos cards de categoria de Hotéis (.card +
   .tag-categoria) — sem categoria de risco de contraste-sobre-imagem aqui. */
.servicos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
.servico-card{
  display:block;background:var(--bg-card);border:1px solid var(--cor-destaque);
  border-radius:4px;overflow:hidden;transition:box-shadow .2s;
}
.servico-card-img{position:relative;aspect-ratio:4/3;overflow:hidden;}
.servico-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s ease;}
.servico-card-corpo{padding:16px;}
.servico-card-titulo-linha{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.servico-card-titulo-linha h3{font-family:'Fraunces',Georgia,serif;font-size:18px;font-weight:600;margin:0;color:var(--ink);}
.servico-card-seta{color:var(--cor-destaque-clara);font-weight:600;flex-shrink:0;}
.servico-card:hover .servico-card-img img, .servico-card:focus-visible .servico-card-img img{transform:scale(1.03);}
/* --glow-servico é modulado por tema (dark generoso, claro contido) —
   mesmo cuidado do gotcha do scrim do hero: nunca fixar um valor só,
   porque o que funciona no tema escuro vira borrão no tema claro. */
.servico-card:hover, .servico-card:focus-visible{box-shadow:var(--glow-servico);outline:none;}
@media(max-width:1100px){
  .servicos-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:780px){
  .servicos-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion: reduce){
  .servico-card-img img{transition:none;}
}

/* Por que a Ronatrip — textura em opacidade bem baixa atrás do conteúdo
   (camada separada, ::before), nunca sob o texto de verdade: o fundo da
   seção continua var(--bg) sólido, a textura só acrescenta uma variação
   sutil, não reduz o contraste do texto abaixo dela. */
.porque{position:relative;overflow:hidden;background:var(--bg);}
.porque::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0.08;
  background-image:url('/img/textura-porque.webp');background-size:cover;background-position:center;
}
.porque > *{position:relative;z-index:1;}
.porque-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:8px;}
.porque-col{display:flex;flex-direction:column;gap:10px;}
.porque-rotulo{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--cor-destaque);}
.porque-col h3{font-family:'Fraunces',Georgia,serif;font-size:20px;font-weight:600;margin:0;color:var(--ink);}
.porque-col p{font-size:14px;line-height:1.6;color:var(--ink-muted);margin:0;}
@media(max-width:780px){
  .porque-grid{grid-template-columns:1fr;gap:28px;}
}

/* Formulário */
.formulario{display:flex;flex-direction:column;max-width:520px;gap:4px;}
.formulario label{font-weight:600;margin-top:12px;font-size:13px;color:var(--ink-muted);}
.formulario input, .formulario select, .formulario textarea{
  padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;
  background:var(--bg-card);color:var(--ink);font-family:'Inter',sans-serif;
}
/* <select> nativo dimensiona pela opção mais larga por padrão — sem isso, um
   catálogo com descrição longa (ex: Transfer) estoura a largura do card. */
.formulario select.select-catalogo{width:100%;max-width:100%;box-sizing:border-box;}
.formulario textarea.input-descricao-livre{width:100%;max-width:100%;box-sizing:border-box;resize:vertical;font-family:inherit;}
.formulario input:focus, .formulario select:focus, .formulario textarea:focus{outline:none;border-color:var(--cor-destaque);}
.formulario span{color:#e08a7d;font-size:0.85rem;}
.formulario .linha-dupla{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
.formulario .linha-dupla > div{display:flex;flex-direction:column;}
.formulario .linha-dupla label{margin-top:12px;}
/* Campos condicionais (mostrados/escondidos via JS, ex: Admin/Cotacoes/Nova.cshtml)
   ficam em divs aninhadas dentro de .formulario — o display:flex do
   .formulario só empilha filhos DIRETOS, então sem isso label/input dentro
   dessas divs volta pro fluxo normal do documento (label é inline, input é
   inline-block por padrão do navegador) e ficam lado a lado em vez de
   empilhados, um por linha. */
.formulario .grupo-condicional{display:flex;flex-direction:column;gap:4px;}
.alerta-sucesso{background:rgba(47,111,98,0.2);color:var(--teal-bright);padding:15px;border-radius:4px;border:1px solid rgba(47,111,98,0.4);}
.erros{color:#e08a7d;}

/* Tabela (admin) */
.tabela{width:100%;border-collapse:collapse;margin-top:20px;}
.tabela th, .tabela td{border:1px solid var(--line);padding:10px 12px;text-align:left;font-size:0.88rem;}
.tabela th{background:var(--bg-soft);color:var(--cor-destaque);font-family:'IBM Plex Mono',monospace;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;}
.tabela tbody tr:hover{background:var(--bg-soft);}
.tabela td a{color:var(--cor-destaque-clara);font-weight:600;}

/* Filtros em formulário (admin) */
.filtros-admin{
  display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;
  background:var(--bg-card);border:1px solid var(--line);border-radius:4px;
  padding:16px 18px;margin-top:16px;
}
.filtros-admin .campo{display:flex;flex-direction:column;gap:4px;}
.filtros-admin label{font-size:11px;color:var(--ink-muted);font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:0.04em;}
.filtros-admin input, .filtros-admin select{
  padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);font-size:13.5px;
  background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;min-width:160px;
}
.filtros-admin input:focus, .filtros-admin select:focus{outline:none;border-color:var(--cor-destaque);}
.filtros-admin .botao-secundario{
  font-size:13px;color:var(--ink-muted);padding:8px 4px;border:none;background:none;cursor:pointer;
  font-family:'Inter',sans-serif;text-decoration:underline;
}

/* Paginação (admin) */
.paginacao{display:flex;align-items:center;gap:16px;margin-top:18px;font-size:13px;color:var(--ink-muted);}
.paginacao a{color:var(--cor-destaque-clara);font-weight:600;}
.paginacao .desabilitado{color:var(--ink-faint);pointer-events:none;}

/* Detalhe de Cotacao (admin) */
.detalhe-cabecalho{
  display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;
  background:var(--bg-card);border:1px solid var(--line);border-radius:4px;padding:20px 22px;margin-top:16px;
}
.detalhe-cabecalho h2{font-family:'Fraunces',Georgia,serif;font-size:22px;margin:0 0 6px;color:var(--ink);}
/* Nº da cotação — Pages/Shared/_NumeroCotacao.cshtml, usado na lista (tamanho
   natural de <small>) e no cabeçalho do detalhe (encolhido por quem chama,
   já que ali fica dentro de um h2 grande). */
.numero-cotacao{color:var(--ink-faint);}
.detalhe-cabecalho .meta{font-size:13px;color:var(--ink-muted);line-height:1.7;}

/* Cabeçalho da área da Agência (logo/monograma) — Pages/Shared/_HeaderAgencia.cshtml.
   Cor do monograma segue var(--cor-destaque) sozinha, sem JS: acompanha o
   tema ativo igual ao favicon dinâmico. */
.cabecalho-agencia{display:flex;align-items:center;gap:16px;margin-bottom:8px;}
.cabecalho-agencia h1{font-family:'Fraunces',Georgia,serif;font-size:26px;color:var(--ink);}
.logo-agencia, .monograma-agencia{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
}
.logo-agencia{object-fit:cover;border:1px solid var(--line);background:var(--bg-card);}
.monograma-agencia{
  display:flex;align-items:center;justify-content:center;
  background:var(--cor-destaque);color:#14120E;
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:22px;
}
.detalhe-secao{margin-top:32px;}
.detalhe-secao h3{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--cor-destaque);margin:0 0 12px;
}

/* Divisórias entre os blocos principais de Admin/Cotacoes/Detalhes
   (Docs/spec-nome-editavel-divisorias.md) — modificador próprio, não uma
   mudança em .detalhe-secao em si, porque essa classe é reaproveitada por
   outras telas (Agencia/Cotacoes/Detalhes, Admin/Index, Invoice, Voucher)
   que não pediram esse ajuste. Linha sutil na cor de borda do tema — nunca
   um traço forte. A Zona de Perigo fica de fora de propósito: já tem
   destaque próprio (borda vermelha), uma divisória por cima seria
   redundante. */
.detalhe-secao-divisoria{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);}

/* Botões do bloco "Ações" de Admin/Cotacoes/Detalhes (Reativar/Inativar
   Cotação, Marcar como Respondida, Solicitar/Confirmar Reserva, Gerar
   Invoice, Reabrir Cotação) — mesma largura mínima entre si, independente
   do comprimento do texto. Escopo deliberadamente restrito a este bloco
   (ver Docs/spec-polimento-detalhes.md) — não é um padrão global de botão,
   só herda cor/padding/altura de .botao e acrescenta largura mínima
   uniforme + texto centralizado. */
.botao-acao-cotacao{min-width:230px;justify-content:center;}
@media(max-width:480px){.botao-acao-cotacao{min-width:0;width:100%;}}
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);}
.timeline li{padding:0 0 16px 18px;position:relative;font-size:13.5px;color:var(--ink-muted);}
.timeline li::before{
  content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;
  background:var(--cor-destaque);border:2px solid var(--bg);
}
.timeline li strong{color:var(--ink);}
.timeline li small{display:block;color:var(--ink-faint);margin-top:2px;}

/* "Ver mais antigas" (Docs/spec-ver-mais-antigas.md) — entrada oculta some
   por completo (sem reservar espaço/bolinha), o botão fica no topo da
   lista (a timeline é ordenada da mais antiga pra mais recente, então o
   corte esconde o começo). Botão sem a bolinha padrão de .timeline
   li::before — não representa um evento no tempo. */
.timeline li.timeline-item-oculto{display:none;}
.timeline li.timeline-ver-mais{list-style:none;}
.timeline li.timeline-ver-mais::before{display:none;}
.timeline li.timeline-ver-mais button{
  background:none;border:1px solid var(--line);color:var(--cor-destaque-clara);
  font-size:12.5px;padding:6px 14px;border-radius:3px;cursor:pointer;
}
.timeline li.timeline-ver-mais button:hover{border-color:var(--cor-destaque-clara);}

/* Acompanhamento (Admin/Cotacoes/Detalhes) — a bolinha da timeline reforça o
   badge de visibilidade (ver Docs/resposta-cc-plano-acompanhamento.md,
   Ajuste 1): "Interno" é o estado visualmente excepcional (âmbar,
   destacado), "Visível ao cliente"/"Histórico interno" usam o teal padrão —
   normal não deveria chamar atenção, só o que é exclusivo do Admin. */
.timeline li.timeline-interno::before{background:var(--cor-destaque);}
.timeline li.timeline-cliente::before{background:var(--teal-bright);}

.formulario-busca-acompanhamento{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.formulario-busca-acompanhamento input, .formulario-busca-acompanhamento select{
  padding:6px 10px;border:1px solid var(--line);border-radius:3px;background:var(--bg-card);color:var(--ink);font-size:13px;
}

.acompanhamento-formularios{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;}
@media (max-width:800px){.acompanhamento-formularios{grid-template-columns:1fr;}}
.form-visivel-cliente, .form-interno{
  border:1px solid var(--line);border-radius:6px;padding:14px 16px;background:var(--bg-card);
}
.form-visivel-cliente{border-left:3px solid var(--teal-bright);}
.form-interno{border-left:3px solid var(--cor-destaque);}
.form-visivel-cliente h4, .form-interno h4{
  margin:0;font-size:13px;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-muted);display:flex;align-items:center;
}

/* Dica "ou cole com Ctrl+V" do campo de imagem do Acompanhamento
   (Docs/spec-colar-imagem.md) — some em telas pequenas, onde não existe
   Ctrl+V (sem teclado físico); o upload por arquivo e o preview continuam
   funcionando normalmente lá, só a dica de texto é condicional. */
@media(max-width:640px){.dica-paste-desktop{display:none;}}

/* Modal "Editar Item" (Admin/Cotacoes/Detalhes.cshtml) — segue o mesmo
   tema dark/gold (--bg-card/--line/--cor-destaque) do resto do admin, sem
   paleta nova. .aberto (JS) é o que efetivamente mostra o overlay. */
.modal-overlay{
  display:none;position:fixed;inset:0;z-index:100;
  background:rgba(0,0,0,0.6);
  align-items:flex-start;justify-content:center;
  padding:40px 16px;overflow-y:auto;
}
.modal-overlay.aberto{display:flex;}
.modal-caixa{
  background:var(--bg-card);border:1px solid var(--line);border-radius:4px;
  max-width:640px;width:100%;padding:24px 28px 28px;
  box-shadow:0 16px 40px rgba(0,0,0,0.5);
}
.modal-caixa h3{
  font-family:'Fraunces',Georgia,serif;font-size:19px;margin:0 0 8px;color:var(--ink);
}
.modal-grupo{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
.modal-grupo:first-of-type{border-top:none;padding-top:0;margin-top:4px;}
.modal-grupo-titulo{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--cor-destaque);margin-bottom:8px;
}
.modal-campo-readonly{
  background:var(--bg-soft);color:var(--ink-muted);padding:8px 10px;border-radius:3px;font-size:13px;
  border:1px solid var(--line);
}
.modal-rodape{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;}
.botao-cancelar-modal{
  background:none;border:1px solid var(--line);color:var(--ink-muted);
  padding:8px 16px;border-radius:var(--radius);font-size:14px;cursor:pointer;font-family:'Inter',sans-serif;
}
.botao-cancelar-modal:hover{border-color:var(--cor-neutro-escuro);color:var(--ink);}
.botao-editar-item{padding:6px 12px;font-size:12px;}

/* Rodapé */
.rodape{background:var(--chrome-bg-soft);border-top:1px solid var(--chrome-line);color:var(--chrome-ink-muted);padding:32px;font-size:0.85rem;}
.rodape .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

/* Ticker de notícias */
.ticker-section{
  background:var(--bg-soft);border-bottom:1px solid var(--line);
  display:flex;align-items:stretch;
  /* Mesma técnica de full-bleed do .hero, acima — essa faixa também precisa
     tocar as duas bordas da viewport, apesar de estar dentro de <main class="container">. */
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.ticker-label{
  background:var(--cor-destaque);color:#14120E;font-family:'IBM Plex Mono',monospace;
  font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  padding:12px 20px;display:flex;align-items:center;white-space:nowrap;flex-shrink:0;
}
.ticker-viewport{overflow:hidden;flex:1;display:flex;align-items:center;position:relative;}
.ticker-track{display:flex;gap:0;white-space:nowrap;animation:scroll-left 55s linear infinite;}
.ticker-track:hover{animation-play-state:paused;}
@keyframes scroll-left{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ticker-item{
  padding:12px 36px;font-size:13px;color:var(--ink-muted);
  border-right:1px solid var(--line);display:flex;align-items:center;gap:10px;
  text-decoration:none;flex-shrink:0;
}
.ticker-item:hover{color:var(--ink);}
.ticker-item .tag{color:var(--cor-destaque-clara);font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;}
/* Antes desativava a animação quando o sistema pedia "reduzir movimento"
   (acessibilidade). Removido a pedido — o ticker agora sempre rola,
   independente dessa configuração do navegador/SO. */

/* Faixa de estatísticas (usada na página Sobre Nós) */
.stats-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;
  padding:36px 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--bg-soft);max-width:1200px;margin:0 auto;
}
.stat-num{font-family:'Fraunces',Georgia,serif;font-size:32px;font-weight:600;color:var(--cor-destaque-clara);}
.stat-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:0.06em;margin-top:6px;}

/* Layout de duas colunas (texto + card), usado na página Sobre Nós */
.duas-colunas{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start;}

/* Carrossel */
.carousel{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none;}
.carousel::-webkit-scrollbar{display:none;}
.carousel-nav{display:flex;gap:8px;}
.nav-btn{
  width:36px;height:36px;border:1px solid var(--line);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--ink-muted);
  cursor:pointer;transition:all .2s;background:transparent;font-size:14px;
}
.nav-btn:hover{border-color:var(--cor-destaque);color:var(--cor-destaque-clara);}

/* Card de promoção sazonal — foto de fundo (Home v2), mesma linguagem
   visual dos cards de Serviços: gradiente escuro fixo de baixo pra cima
   (a foto não muda com o tema, o texto por cima também usa cor fixa, nunca
   var(--ink)/var(--cor-destaque) — mesmo raciocínio do hero/servico-card). */
.promo-card{
  position:relative;display:block;overflow:hidden;border-radius:4px;
  scroll-snap-align:start;flex:0 0 340px;aspect-ratio:3/2;
  background-size:cover;background-position:center;
  box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s;
}
.promo-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  /* Reforçado (Home v2, ajuste): a base fica opaca por uma faixa maior antes
     de clarear — o texto precisa cair sempre sobre área escura, não sobre o
     meio claro da foto. Texto continua branco (nunca dourado sobre foto
     clara); quem garante contraste é este overlay, não a cor da letra. */
  background:linear-gradient(to top, rgba(20,18,14,0.94) 0%, rgba(20,18,14,0.82) 40%, rgba(20,18,14,0.4) 72%, transparent 100%);
}
.promo-card:hover, .promo-card:focus-visible{box-shadow:inset 0 0 0 1px var(--cor-destaque);outline:none;}
/* Plan B do ajuste de contraste: o reforço do gradiente da base não alcança
   o topo do card, onde o selo fica — testado com a foto de fallback (céu
   claro), a legibilidade ficava no limite. Legenda semitransparente só atrás
   do texto (não uma barra full-width), mesmo espírito de "legenda" pedido. */
.promo-card-selo{
  position:absolute;top:16px;left:16px;z-index:1;max-width:calc(100% - 32px);
  font-size:10.5px;color:#F3EEDF;letter-spacing:0.08em;text-transform:uppercase;
  background:rgba(20,18,14,0.55);padding:4px 10px;border-radius:3px;display:inline-block;
}
.promo-card-conteudo{position:absolute;left:16px;right:16px;bottom:16px;z-index:1;}
.promo-card-conteudo h3{font-family:'Fraunces',Georgia,serif;font-size:19px;font-weight:600;margin:0 0 6px;color:#F3EEDF;}
.promo-card-conteudo p{font-size:13px;color:#F3EEDF;opacity:0.85;margin:0 0 12px;line-height:1.5;}
.promo-cta{font-size:12.5px;font-weight:700;color:#F3EEDF;display:inline-flex;align-items:center;gap:6px;}

/* Depoimentos — 1 por vez até 1100px, 3 lado a lado a partir daí. */
.depoimento-card{
  flex:0 0 100%;scroll-snap-align:start;
  background:var(--bg-card);border:1px solid var(--line);border-radius:4px;padding:28px 24px;
  display:flex;flex-direction:column;gap:14px;
}
.depoimento-aspas{font-family:'Fraunces',Georgia,serif;font-size:46px;line-height:1;color:var(--cor-destaque);font-weight:600;}
.depoimento-texto{font-size:14.5px;line-height:1.65;color:var(--ink-muted);margin:0;}
.depoimento-assinatura{font-size:11px;color:var(--ink-faint);letter-spacing:0.03em;}
@media(min-width:1100px){
  .depoimento-card{flex:0 0 calc((100% - 40px)/3);}
}

/* Ponto de virada do menu (nav inline -> hambúrguer) é mais largo (1100px) que
   o resto dos ajustes "mobile" deste arquivo (900px, ver bloco abaixo) de
   propósito: com Início/Serviços▾/Pacotes/Sobre Nós/Contactar + o login-group
   (Agência/Cliente/toggles de tema) disputando espaço, a nav ainda quebrava
   numa faixa estreita de telas médias (~960-1024px) mesmo já reduzida a 5
   itens — abrir o hambúrguer um pouco mais cedo fecha essa lacuna. */
@media(max-width:1100px){
  .nav-toggle{display:flex;}
  .nav-wrap{display:block;position:relative;}
  .topo nav{
    display:none;position:absolute;top:calc(100% + 8px);right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:#1B1812;border:1px solid var(--chrome-line);border-radius:4px;
    min-width:190px;padding:6px;box-shadow:0 16px 32px rgba(0,0,0,0.45);z-index:60;
  }
  .topo nav.aberto{display:flex;}
  .topo nav a{padding:11px 14px;width:100%;border-radius:3px;transition:all .15s;}
  .topo nav a:hover{background:color-mix(in srgb, var(--cor-destaque) 12%, transparent);color:var(--cor-destaque-clara);}
  /* A nav inteira já vira lista vertical no hambúrguer (sem problema de
     espaço) — então o submenu "Serviços" não precisa de dropdown aqui, só
     achata de volta pra links soltos, com leve indentação pra manter o
     agrupamento visual. */
  .nav-servicos{position:static;}
  .nav-servicos-toggle{display:none;}
  .nav-servicos-menu{display:flex !important;position:static;transform:none;background:none;border:none;box-shadow:none;padding:0;min-width:0;}
  .topo nav .nav-servicos-menu a{padding-left:26px;}
}
@media(max-width:900px){
  .hero h1{font-size:30px;}
  /* No mobile, o botão que abre o dropdown fica perto da borda da tela, então
     centralizar o menu nele mesmo (como no desktop) faz o menu vazar pra fora.
     Em vez disso, tiramos o botão como "âncora" (position:static) para o menu
     se ancorar no <header> inteiro (que ocupa 100% da largura) e centralizamos
     nele — sempre cabe na tela, não importa onde o botão esteja. */
  .paleta-dropdown, .admin-dropdown{position:static;}
  .paleta-dropdown-menu, .admin-dropdown-menu{
    left:50%;right:auto;transform:translateX(-50%);
    width:calc(100vw - 24px);max-width:280px;
  }
  .admin-dropdown-menu{column-count:1;max-width:260px;}
  .login-group{flex-wrap:wrap;justify-content:flex-end;row-gap:8px;}
  .board-row{grid-template-columns:60px 1fr 70px;}
  .board-row .time{display:none;}
  .promo-card{flex:0 0 280px;}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .duas-colunas{grid-template-columns:1fr;}
  .formulario .linha-dupla{grid-template-columns:1fr;}
  .admin-painel-cards{grid-template-columns:repeat(2,1fr);}
}

/* Celular estreito: 2 colunas ainda aperta demais os cards com label mais
   longa ("Cotações Inativas", "Agências Pendentes") — melhor empilhar em
   1 coluna só do que arriscar estouro. */
@media(max-width:480px){
  .admin-painel-cards{grid-template-columns:1fr;}
}

/* =========================================================================
   Página de Cruzeiros (/Cruzeiros) — tudo escopado sob .pagina-cruzeiros pra
   não vazar pro resto do site. Usa só as variáveis de tema (responde ao
   claro/escuro e aos 4 temas de cor). Ver Pages/Cruzeiros.cshtml.
   ========================================================================= */

/* Bandas que precisam ir de ponta a ponta da viewport apesar do
   <main class="container"> — mesma técnica do .hero. */
.pagina-cruzeiros .cruz-fullbleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* ---- Reveal (scroll-in) — genérico da página ---- */
.pagina-cruzeiros .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.pagina-cruzeiros .reveal.is-visible{opacity:1;transform:none;}

/* ---- HERO ---- */
.cruz-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:clamp(440px,72vh,640px);display:flex;align-items:flex-end;}
/* Foto de fundo (navio ao entardecer). Oversized + top negativo pra o parallax
   sutil não revelar bordas. object-position mantém sol (esq.) e navio (dir.)
   no enquadramento; ajustado no mobile mais abaixo. */
.cruz-hero-img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;object-position:center center;z-index:0;will-change:transform;}
/* Degradê escuro (mais forte à esquerda, onde fica o texto) + assento no
   rodapé. Usa var(--bg), então ADAPTA ao tema: escurece no tema escuro
   (texto claro legível) e clareia no tema claro (texto escuro legível). */
.cruz-hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 66%, transparent) 42%, transparent 68%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 55%, transparent) 0%, transparent 42%);
}
.cruz-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:0 32px 56px;}
.cruz-hero-inner .eyebrow{margin-bottom:14px;}
/* No tema claro o dourado do eyebrow fica de baixo contraste sobre a área
   clara/dourada da foto — escurece só aqui (hero de cruzeiros), sem mexer no
   eyebrow das outras páginas nem no tema escuro. */
body.tema-claro .cruz-hero-inner .eyebrow{color:color-mix(in srgb, var(--cor-destaque) 45%, black);}
body.tema-claro .cruz-hero-inner .eyebrow::before{background:color-mix(in srgb, var(--cor-destaque) 45%, black);}
.cruz-hero-inner h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(32px,5.2vw,58px);line-height:1.08;letter-spacing:-0.015em;margin:0 0 16px;color:var(--ink);}
.cruz-hero-inner p{font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:var(--ink-muted);max-width:560px;margin:0 0 24px;}
.cruz-cta-hero{font-size:15px;}

/* ---- FAIXA DE CONFIANÇA ---- */
.cruz-confianca{background:var(--bg-soft);border-bottom:1px solid var(--line);}
.cruz-confianca-inner{max-width:1200px;margin:0 auto;padding:40px 32px;display:flex;flex-wrap:wrap;gap:28px 48px;align-items:center;justify-content:space-between;}
.cruz-stats{display:flex;gap:40px;flex-wrap:wrap;}
.cruz-stat{display:flex;flex-direction:column;line-height:1;}
.cruz-stat-num{font-family:'Fraunces',Georgia,serif;font-size:clamp(30px,4vw,42px);font-weight:600;color:var(--cor-destaque-clara);display:inline;}
.cruz-stat-mais{font-family:'Fraunces',Georgia,serif;font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--cor-destaque-clara);margin-left:1px;}
.cruz-stat-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-muted);margin-top:8px;max-width:150px;}
.cruz-stat-label em{color:var(--ink-faint);font-style:normal;text-transform:none;letter-spacing:0;}
.cruz-selos{display:flex;flex-direction:column;gap:10px;}
.cruz-selo{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);font-weight:500;}
.cruz-selo-ponto{width:7px;height:7px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 8px var(--teal-bright);flex-shrink:0;}

/* ---- SEPARADORES DE ONDA ---- */
.cruz-onda-sep{line-height:0;}
.cruz-onda-sep svg{display:block;width:100%;height:70px;}

/* ---- SEÇÕES ---- */
.pagina-cruzeiros .cruz-secao{padding-top:64px;padding-bottom:64px;}
.cruz-placeholder-nota{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);letter-spacing:0.03em;margin:8px 0 0;}

/* ---- CARDS DE BENEFÍCIO ---- */
.cruz-card-beneficio{display:flex;flex-direction:column;}
.cruz-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;
  background:color-mix(in srgb, var(--cor-destaque) 10%, transparent);border:1px solid color-mix(in srgb, var(--cor-destaque) 22%, transparent);}
.cruz-ico svg{width:30px;height:30px;}

/* ---- DESTAQUE DISNEY ---- */
.cruz-disney{background:
    radial-gradient(ellipse 80% 100% at 90% 0%, rgba(47,111,98,0.14), transparent 60%),
    var(--bg-soft);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.cruz-disney-inner{max-width:1200px;margin:0 auto;padding:64px 32px;display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;}
.cruz-disney-texto h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.2vw,32px);font-weight:600;margin:6px 0 10px;color:var(--ink);}
.cruz-lista-check{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
.cruz-lista-check li{position:relative;padding-left:28px;font-size:14.5px;line-height:1.5;color:var(--ink-muted);}
.cruz-lista-check li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;
  background:color-mix(in srgb, var(--cor-destaque) 18%, transparent);
  box-shadow:inset 0 0 0 1px var(--cor-destaque);}
.cruz-lista-check li::after{content:"";position:absolute;left:5px;top:8px;width:6px;height:3px;border-left:1.6px solid var(--cor-destaque-clara);border-bottom:1.6px solid var(--cor-destaque-clara);transform:rotate(-45deg);}
.cruz-nota-legal{font-size:11.5px;color:var(--ink-faint);margin-top:20px;line-height:1.5;max-width:460px;}
/* Foto da família ao lado do texto — aspect 5/4 aproxima a altura da coluna
   de texto e corta só ~8% de cada lateral (mar/grade), preservando os rostos.
   Border-radius de card (4px), object-fit:cover pra não distorcer. Máscara
   de transparência (não cor fixa) na borda esquerda — deixa o fundo real da
   seção (var(--bg-soft), por trás da imagem) aparecer por baixo, então
   funciona igual nos dois temas sem precisar saber a cor exata. O
   border-radius já clipa a caixa antes da máscara entrar, então o degradê
   nunca vaza quina reta. Fim em 13% (não 18%) pra garantir que o rosto da
   avó — o mais próximo da borda esquerda no enquadramento — fique 100%
   nítido, não só parcialmente. */
.cruz-disney-arte img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:center center;border-radius:4px;border:1px solid var(--line);display:block;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, white 13%);
  mask-image:linear-gradient(to right, transparent 0%, white 13%);}

/* ---- BOARD PRÓXIMAS SAÍDAS ---- */
.cruz-board-legenda{font-size:9.5px;color:var(--ink-faint);text-transform:none;letter-spacing:0;}
.cruz-board .board-row.is-visible{animation:cruzFlip .5s ease both;}
@keyframes cruzFlip{from{opacity:0;transform:translateY(-6px) rotateX(-18deg);}to{opacity:1;transform:none;}}

/* ---- VITRINE DE ROTEIROS ---- */
.cruz-roteiro{position:relative;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
.cruz-roteiro:hover,.cruz-roteiro:focus-visible{transform:translateY(-5px);border-color:color-mix(in srgb, var(--cor-destaque) 40%, var(--line));box-shadow:0 20px 40px -22px color-mix(in srgb, var(--cor-destaque) 55%, transparent);outline:none;}
.cruz-roteiro-noites{font-family:'Fraunces',Georgia,serif;color:var(--cor-destaque-clara);font-size:15px;font-weight:600;margin-bottom:10px;}
.cruz-roteiro-noites span{font-size:34px;line-height:1;margin-right:4px;}
.cruz-roteiro-slot{margin:14px 0;aspect-ratio:16/9;border-radius:4px;border:1px dashed color-mix(in srgb, var(--ink-faint) 55%, transparent);
  display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--ink-faint) 8%, transparent);}
.cruz-roteiro-slot span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);letter-spacing:0.05em;}
.cruz-roteiro-link{margin-top:auto;align-self:flex-start;}

/* Carrossel de fotos do card de roteiro (crossfade automático, pausa no
   hover, para no prefers-reduced-motion — ver script em Cruzeiros.cshtml).
   Fotos empilhadas via position:absolute, só a .is-ativa com opacidade 1. */
.cruz-roteiro-fotos{position:relative;border:1px solid var(--line);border-style:solid;overflow:hidden;background:var(--bg);}
.cruz-roteiro-fotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;}
.cruz-roteiro-fotos img.is-ativa{opacity:1;}
@media(prefers-reduced-motion: reduce){
  .cruz-roteiro-fotos img{transition:none;}
}

/* ---- DEPOIMENTOS ---- */
.cruz-depo{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.cruz-depo-inner{max-width:1200px;margin:0 auto;padding:56px 32px;}
.cruz-depo-carrossel{margin-top:20px;}
.cruz-depo-card{scroll-snap-align:start;flex:0 0 320px;background:var(--bg-card);border:1px solid var(--line);border-radius:6px;padding:26px 24px;margin:0;display:flex;flex-direction:column;position:relative;}
.cruz-aspas{font-family:'Fraunces',Georgia,serif;font-size:52px;line-height:0.6;color:color-mix(in srgb, var(--cor-destaque) 45%, transparent);margin-bottom:10px;}
.cruz-depo-card blockquote{margin:0 0 16px;font-size:15px;line-height:1.55;color:var(--ink);}
.cruz-depo-card figcaption{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:auto;}

/* ---- FORMULÁRIO ---- */
.cruz-form-grid{margin-top:8px;}
.cruz-opcional{color:var(--ink-faint);font-weight:400;font-size:0.85em;}
.cruz-duracoes-fs{border:none;padding:0;margin:12px 0 0;min-width:0;}
.cruz-duracoes-fs legend{font-weight:600;font-size:13px;color:var(--ink-muted);padding:0;margin-bottom:8px;}
.cruz-duracoes{display:flex;flex-wrap:wrap;gap:9px;}
.cruz-duracao-pill{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:1px solid var(--line);border-radius:22px;
  font-size:13px;color:var(--ink-muted);cursor:pointer;transition:all .18s ease;user-select:none;}
.cruz-duracao-pill:hover{border-color:var(--cor-destaque);color:var(--cor-destaque-clara);}
.cruz-duracao-pill input{accent-color:var(--cor-destaque);width:15px;height:15px;cursor:pointer;}
.cruz-duracao-pill:has(input:checked){background:color-mix(in srgb, var(--cor-destaque) 16%, transparent);border-color:var(--cor-destaque);color:var(--cor-destaque-clara);font-weight:600;}
.cruz-duracao-tantofaz{margin-left:2px;}
.cruz-pill-off{opacity:0.4;pointer-events:none;}
/* honeypot — fora da tela, sem display:none (bots ignoram display:none) */
.cruz-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ---- FAQ ---- */
.cruz-faq{display:flex;flex-direction:column;gap:10px;max-width:760px;}
.cruz-faq details{border:1px solid var(--line);border-radius:4px;background:var(--bg-card);overflow:hidden;}
.cruz-faq summary{cursor:pointer;padding:15px 18px;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;}
.cruz-faq summary::-webkit-details-marker{display:none;}
.cruz-faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--cor-destaque);font-size:18px;margin-left:12px;transition:transform .2s;}
.cruz-faq details[open] summary::after{content:"\2013";}
.cruz-faq details p{margin:0;padding:0 18px 16px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
.cruz-faq details p em{color:var(--ink-faint);font-style:normal;}

/* ---- FAIXA FINAL DE CONTATO ---- */
.cruz-contato-final{background:
    radial-gradient(ellipse 70% 120% at 15% 0%, rgba(47,111,98,0.18), transparent 60%),
    linear-gradient(180deg, var(--bg-soft), var(--bg));
  border-top:1px solid var(--line);}
.cruz-contato-inner{max-width:900px;margin:0 auto;padding:64px 32px;text-align:center;}
.cruz-contato-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 10px;color:var(--ink);}
.cruz-contato-inner p{font-size:15px;color:var(--ink-muted);margin:0 0 22px;}
.cruz-contato-acoes{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cruz-contato-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);margin-top:22px;}

/* ---- RESPONSIVO ---- */
@media(max-width:900px){
  .cruz-disney-inner{grid-template-columns:1fr;gap:32px;}
  .cruz-confianca-inner{gap:24px 32px;}
  .cruz-stats{gap:26px;}
}
@media(max-width:640px){
  .pagina-cruzeiros .cruz-secao{padding-top:44px;padding-bottom:44px;}
  .cruz-hero-inner{padding-bottom:40px;}
  /* Foto é bem panorâmica: no mobile estreito o cover corta as laterais.
     Enquadra puxando pro navio (dir.) mantendo o brilho dourado do sol à
     esquerda no quadro. */
  .cruz-hero-img{object-position:62% center;}
  /* Texto ocupa mais da largura no mobile — reforça o degradê pra legibilidade. */
  .cruz-hero-overlay{background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 48%, color-mix(in srgb, var(--bg) 30%, transparent) 100%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 62%, transparent) 0%, transparent 46%);}
  .cruz-stats{gap:20px;width:100%;justify-content:space-between;}
  .cruz-stat-label{max-width:none;}
  .cruz-onda-sep svg{height:44px;}
}

/* ---- REDUCED MOTION: desliga tudo que se move ---- */
@media(prefers-reduced-motion: reduce){
  .pagina-cruzeiros .reveal{opacity:1;transform:none;transition:none;}
  .pagina-cruzeiros [data-parallax]{transform:none !important;}
  .cruz-board .board-row.is-visible{animation:none;}
  .cruz-roteiro{transition:none;}
}

/* =========================================================================
   Página de Hotéis (/Hoteis) — mesmo espírito de .pagina-cruzeiros acima
   (irmã mais nova), tudo escopado sob .pagina-hoteis. Institucional: sem
   preço, sem hotel específico. Ver Pages/Hoteis.cshtml.
   ========================================================================= */

.pagina-hoteis .hot-fullbleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* ---- Reveal (scroll-in) — genérico da página ---- */
.pagina-hoteis .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.pagina-hoteis .reveal.is-visible{opacity:1;transform:none;}

/* ---- HERO ---- */
.hot-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:clamp(420px,60vh,560px);display:flex;align-items:center;}
/* Foto de fundo (piscina de borda infinita ao pôr do sol). Fonte QUADRADA
   (1024x1024) — bem diferente da panorâmica de Cruzeiros —, então
   object-fit:cover corta bastante em cima/embaixo pra preencher um hero
   largo/baixo. object-position:center 58% desloca o enquadramento um pouco
   pra baixo do centro pra manter piscina + reflexo + prédio + palmeiras
   visíveis (o assunto principal fica na metade inferior/central da foto);
   ajustado de novo no mobile mais abaixo, onde o hero fica proporcionalmente
   mais alto/estreito e corta menos na vertical. */
.hot-hero-img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;z-index:0;}
/* Degradê escuro (mais forte à esquerda, onde a foto tem mais céu/mar vazio)
   — mesma técnica de .cruz-hero-overlay: usa var(--bg), então ADAPTA ao tema
   (escurece no tema escuro, clareia no tema claro), sempre legível. */
.hot-hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 66%, transparent) 42%, transparent 68%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 55%, transparent) 0%, transparent 42%);
}
.hot-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:64px 32px;}
.hot-hero-inner .eyebrow{margin-bottom:14px;}
/* No tema claro o dourado do eyebrow fica de baixo contraste sobre a área
   clara do céu — escurece só aqui, mesmo ajuste já feito no hero de Cruzeiros. */
body.tema-claro .hot-hero-inner .eyebrow{color:color-mix(in srgb, var(--cor-destaque) 45%, black);}
body.tema-claro .hot-hero-inner .eyebrow::before{background:color-mix(in srgb, var(--cor-destaque) 45%, black);}
/* max-width força quebra de linha dentro da faixa bem coberta pelo degradê
   (a mesma zona do parágrafo, que já tem max-width:560px) — sem isso, num
   viewport largo o título em 1 linha só passa da faixa 42%-68% onde o
   overlay esmaece, caindo direto sobre a foto (baixo contraste no tema
   claro). Mesmo raciocínio do <br> manual no hero de Cruzeiros, só que via
   CSS porque aqui o título não tem quebra natural de sentido. */
.hot-hero-inner h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(32px,5vw,54px);line-height:1.1;letter-spacing:-0.015em;margin:0 0 16px;color:var(--ink);max-width:620px;}
.hot-hero-inner p{font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:var(--ink-muted);max-width:560px;margin:0 0 24px;}
.hot-cta-hero{font-size:15px;}

/* ---- FAIXA DE CONFIANÇA ---- */
.hot-confianca{background:var(--bg-soft);border-bottom:1px solid var(--line);}
.hot-confianca-inner{max-width:1200px;margin:0 auto;padding:40px 32px;display:flex;flex-wrap:wrap;gap:28px 48px;align-items:center;justify-content:space-between;}
.hot-stats{display:flex;gap:40px;flex-wrap:wrap;}
.hot-stat{display:flex;flex-direction:column;line-height:1;}
.hot-stat-num{font-family:'Fraunces',Georgia,serif;font-size:clamp(30px,4vw,42px);font-weight:600;color:var(--cor-destaque-clara);display:inline;}
.hot-stat-mais{font-family:'Fraunces',Georgia,serif;font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--cor-destaque-clara);margin-left:1px;}
.hot-stat-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-muted);margin-top:8px;max-width:150px;}
.hot-stat-label em{color:var(--ink-faint);font-style:normal;text-transform:none;letter-spacing:0;}
.hot-selos{display:flex;flex-direction:column;gap:10px;}
.hot-selo{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);font-weight:500;}
.hot-selo-ponto{width:7px;height:7px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 8px var(--teal-bright);flex-shrink:0;}

/* ---- SEPARADORES DE ONDA ---- */
.hot-onda-sep{line-height:0;}
.hot-onda-sep svg{display:block;width:100%;height:70px;}

/* ---- SEÇÕES ---- */
.pagina-hoteis .hot-secao{padding-top:64px;padding-bottom:64px;}

/* ---- CARDS DE BENEFÍCIO ---- */
.hot-card-beneficio{display:flex;flex-direction:column;}
.hot-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;
  background:color-mix(in srgb, var(--cor-destaque) 10%, transparent);border:1px solid color-mix(in srgb, var(--cor-destaque) 22%, transparent);}
.hot-ico svg{width:30px;height:30px;}

/* ---- VITRINE DE CATEGORIAS ---- */
.hot-categoria{position:relative;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
.hot-categoria:hover,.hot-categoria:focus-visible{transform:translateY(-5px);border-color:color-mix(in srgb, var(--cor-destaque) 40%, var(--line));box-shadow:0 20px 40px -22px color-mix(in srgb, var(--cor-destaque) 55%, transparent);outline:none;}
.hot-categoria-slot{margin:14px 0;aspect-ratio:16/9;border-radius:4px;border:1px solid var(--line);overflow:hidden;background:var(--bg);}
.hot-categoria-slot img{width:100%;height:100%;object-fit:cover;display:block;}
.hot-categoria-link{margin-top:auto;align-self:flex-start;}

/* ---- FAIXA DE DESTINOS ---- */
.hot-destinos{background:
    radial-gradient(ellipse 80% 100% at 90% 0%, rgba(47,111,98,0.14), transparent 60%),
    var(--bg-soft);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.hot-destinos-inner{max-width:840px;margin:0 auto;padding:64px 32px;text-align:center;}
.hot-destinos-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.2vw,32px);font-weight:600;margin:6px 0 10px;color:var(--ink);}
.hot-destinos-inner p{font-size:14.5px;line-height:1.6;color:var(--ink-muted);margin:0 auto;max-width:640px;}
.hot-destinos-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px;}
.hot-destino-pill{display:inline-flex;align-items:center;padding:9px 18px;border:1px solid var(--line);border-radius:22px;
  font-size:13px;font-weight:500;color:var(--ink-muted);background:var(--bg-card);}
.hot-destino-principal{border-color:var(--cor-destaque);color:var(--cor-destaque-clara);font-weight:600;background:color-mix(in srgb, var(--cor-destaque) 14%, transparent);}
.hot-destino-mais{font-style:italic;color:var(--ink-faint);border-style:dashed;}

/* ---- FORMULÁRIO ---- */
.hot-form-grid{margin-top:8px;}
.hot-opcional{color:var(--ink-faint);font-weight:400;font-size:0.85em;}
/* honeypot — fora da tela, sem display:none (bots ignoram display:none) */
.hot-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ---- FAQ ---- */
.hot-faq{display:flex;flex-direction:column;gap:10px;max-width:760px;}
.hot-faq details{border:1px solid var(--line);border-radius:4px;background:var(--bg-card);overflow:hidden;}
.hot-faq summary{cursor:pointer;padding:15px 18px;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;}
.hot-faq summary::-webkit-details-marker{display:none;}
.hot-faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--cor-destaque);font-size:18px;margin-left:12px;transition:transform .2s;}
.hot-faq details[open] summary::after{content:"\2013";}
.hot-faq details p{margin:0;padding:0 18px 16px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
.hot-faq details p em{color:var(--ink-faint);font-style:normal;}

/* ---- FAIXA FINAL DE CONTATO ---- */
.hot-contato-final{background:
    radial-gradient(ellipse 70% 120% at 15% 0%, rgba(47,111,98,0.18), transparent 60%),
    linear-gradient(180deg, var(--bg-soft), var(--bg));
  border-top:1px solid var(--line);}
.hot-contato-inner{max-width:900px;margin:0 auto;padding:64px 32px;text-align:center;}
.hot-contato-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 10px;color:var(--ink);}
.hot-contato-inner p{font-size:15px;color:var(--ink-muted);margin:0 0 22px;}
.hot-contato-acoes{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.hot-contato-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);margin-top:22px;}

/* ---- RESPONSIVO ---- */
@media(max-width:900px){
  .hot-confianca-inner{gap:24px 32px;}
  .hot-stats{gap:26px;}
}
@media(max-width:640px){
  .pagina-hoteis .hot-secao{padding-top:44px;padding-bottom:44px;}
  .hot-hero-inner{padding:48px 32px;}
  /* Fonte quadrada + hero mais estreito no mobile = corta menos na vertical
     e mais nas laterais. Desloca pra direita (prédio + palmeiras, o "assunto"
     da foto) mantendo alguma folga de céu/mar à esquerda pro texto. */
  .hot-hero-img{object-position:64% 55%;}
  .hot-hero-overlay{background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 48%, color-mix(in srgb, var(--bg) 30%, transparent) 100%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 62%, transparent) 0%, transparent 46%);}
  .hot-stats{gap:20px;width:100%;justify-content:space-between;}
  .hot-stat-label{max-width:none;}
  .hot-onda-sep svg{height:44px;}
}

/* ---- REDUCED MOTION: desliga tudo que se move ---- */
@media(prefers-reduced-motion: reduce){
  .pagina-hoteis .reveal{opacity:1;transform:none;transition:none;}
  .hot-categoria{transition:none;}
}

/* =========================================================================
   Página de Scooters (/Scooters) — mesma família de Cruzeiros/Hoteis, mas
   mais enxuta (sem vitrine de categorias, sem depoimentos, sem painel de
   saídas). Tudo escopado sob .pagina-scooters. Ver Pages/Scooters.cshtml.
   ========================================================================= */

.pagina-scooters .scoot-fullbleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* ---- Reveal (scroll-in) — genérico da página ---- */
.pagina-scooters .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.pagina-scooters .reveal.is-visible{opacity:1;transform:none;}

/* ---- HERO ---- */
.scoot-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:clamp(420px,60vh,560px);display:flex;align-items:center;}
/* Foto de fundo (avó + netas passeando com a scooter num jardim tropical).
   Já vem quase 16:9 (1376x768) — corte bem mais suave que o hero quadrado de
   Hoteis. object-position:center 56% desloca um pouco pra baixo do centro
   pra manter a scooter (não só os rostos) no enquadramento; mobile ajusta o
   eixo horizontal mais abaixo, onde o corte passa a ser lateral. */
.scoot-hero-img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;z-index:0;}
.scoot-hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 66%, transparent) 42%, transparent 68%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 55%, transparent) 0%, transparent 42%);
}
.scoot-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:64px 32px;}
.scoot-hero-inner .eyebrow{margin-bottom:14px;}
body.tema-claro .scoot-hero-inner .eyebrow{color:color-mix(in srgb, var(--cor-destaque) 45%, black);}
body.tema-claro .scoot-hero-inner .eyebrow::before{background:color-mix(in srgb, var(--cor-destaque) 45%, black);}
/* max-width força quebra de linha dentro da faixa coberta pelo degradê —
   mesma lição aprendida no hero de Hoteis (título em 1 linha só passava da
   faixa 42%-68% e ficava ilegível no tema claro). */
.scoot-hero-inner h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(32px,5vw,54px);line-height:1.1;letter-spacing:-0.015em;margin:0 0 16px;color:var(--ink);max-width:620px;}
.scoot-hero-inner p{font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:var(--ink-muted);max-width:560px;margin:0 0 24px;}
.scoot-cta-hero{font-size:15px;}

/* ---- SEPARADORES DE ONDA ---- */
.scoot-onda-sep{line-height:0;}
.scoot-onda-sep svg{display:block;width:100%;height:70px;}

/* ---- SEÇÕES ---- */
.pagina-scooters .scoot-secao{padding-top:64px;padding-bottom:64px;}

/* ---- CARDS DE BENEFÍCIO ---- */
.scoot-card-beneficio{display:flex;flex-direction:column;}
.scoot-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;
  background:color-mix(in srgb, var(--cor-destaque) 10%, transparent);border:1px solid color-mix(in srgb, var(--cor-destaque) 22%, transparent);}
.scoot-ico svg{width:30px;height:30px;}

/* ---- COMO FUNCIONA ---- */
.scoot-passos{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:24px;}
.scoot-passo{padding:22px;border:1px solid var(--line);border-radius:6px;background:var(--bg-card);}
.scoot-passo-num{font-family:'Fraunces',Georgia,serif;font-size:36px;font-weight:600;color:var(--cor-destaque-clara);display:block;margin-bottom:10px;line-height:1;}
.scoot-passo h3{font-family:'Fraunces',Georgia,serif;font-size:17px;font-weight:600;margin:0 0 6px;color:var(--ink);}
.scoot-passo p{font-size:13.5px;color:var(--ink-muted);line-height:1.55;margin:0;}
.scoot-passos-foto{margin:28px 0 0;}
.scoot-passos-foto img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;border:1px solid var(--line);display:block;}
.scoot-passos-foto figcaption{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-faint);letter-spacing:0.03em;margin-top:10px;text-align:center;}

/* ---- PRA QUEM É ---- */
.scoot-quem{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.scoot-quem-inner{max-width:760px;margin:0 auto;padding:64px 32px;text-align:center;}
.scoot-quem-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.2vw,32px);font-weight:600;margin:6px 0 14px;color:var(--ink);}
.scoot-quem-inner p{font-size:15px;line-height:1.65;color:var(--ink-muted);margin:0;}

/* ---- FORMULÁRIO ---- */
.scoot-form-grid{margin-top:8px;}
.scoot-opcional{color:var(--ink-faint);font-weight:400;font-size:0.85em;}
/* honeypot — fora da tela, sem display:none (bots ignoram display:none) */
.scoot-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ---- FAQ ---- */
.scoot-faq{display:flex;flex-direction:column;gap:10px;max-width:760px;}
.scoot-faq details{border:1px solid var(--line);border-radius:4px;background:var(--bg-card);overflow:hidden;}
.scoot-faq summary{cursor:pointer;padding:15px 18px;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;}
.scoot-faq summary::-webkit-details-marker{display:none;}
.scoot-faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--cor-destaque);font-size:18px;margin-left:12px;transition:transform .2s;}
.scoot-faq details[open] summary::after{content:"\2013";}
.scoot-faq details p{margin:0;padding:0 18px 16px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
.scoot-faq details p em{color:var(--ink-faint);font-style:normal;}

/* ---- FAIXA FINAL DE CONTATO ---- */
.scoot-contato-final{background:
    radial-gradient(ellipse 70% 120% at 15% 0%, rgba(47,111,98,0.18), transparent 60%),
    linear-gradient(180deg, var(--bg-soft), var(--bg));
  border-top:1px solid var(--line);}
.scoot-contato-inner{max-width:900px;margin:0 auto;padding:64px 32px;text-align:center;}
.scoot-contato-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 10px;color:var(--ink);}
.scoot-contato-inner p{font-size:15px;color:var(--ink-muted);margin:0 0 22px;}
.scoot-contato-acoes{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.scoot-contato-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);margin-top:22px;}

/* ---- RESPONSIVO ---- */
@media(max-width:900px){
  .scoot-passos{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .pagina-scooters .scoot-secao{padding-top:44px;padding-bottom:44px;}
  .scoot-hero-inner{padding:48px 32px;}
  /* Fonte já é quase 16:9, então no hero mobile (mais estreito/alto) o corte
     passa a ser lateral, não vertical — desloca pra manter o grupo (avó +
     netas) no quadro, não só o canto do jardim. */
  .scoot-hero-img{object-position:70% center;}
  .scoot-hero-overlay{background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 48%, color-mix(in srgb, var(--bg) 30%, transparent) 100%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 62%, transparent) 0%, transparent 46%);}
  .scoot-passos{grid-template-columns:1fr;}
  .scoot-onda-sep svg{height:44px;}
}

/* ---- REDUCED MOTION: desliga tudo que se move ---- */
@media(prefers-reduced-motion: reduce){
  .pagina-scooters .reveal{opacity:1;transform:none;transition:none;}
}

/* =========================================================================
   Página de Casas de Temporada (/CasasTemporada) — mesmo nível de riqueza de
   .pagina-cruzeiros (estatísticas, vitrine de categorias, depoimentos, FAQ),
   estrutura de formulário mais próxima de .pagina-hoteis. Tudo escopado sob
   .pagina-casas, classes prefixadas casa-. Ver Pages/CasasTemporada.cshtml.
   ========================================================================= */

.pagina-casas .casa-fullbleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* ---- Reveal (scroll-in) — genérico da página ---- */
.pagina-casas .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.pagina-casas .reveal.is-visible{opacity:1;transform:none;}

/* ---- HERO ---- */
.casa-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:clamp(420px,60vh,560px);display:flex;align-items:center;}
/* Foto de fundo (casa moderna com piscina privativa ao entardecer). Já quase
   16:9 (1376x768, mesmo padrão de Scooters) — corte suave, bem mais leve que
   o hero quadrado de Hoteis. object-position:center 55% desloca um pouco pra
   baixo do centro pra manter a piscina/área externa (não só o telhado/céu)
   no enquadramento; ajustado de novo no mobile mais abaixo. */
.casa-hero-img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:0;}
.casa-hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 66%, transparent) 42%, transparent 68%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 55%, transparent) 0%, transparent 42%);
}
.casa-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:64px 32px;}
.casa-hero-inner .eyebrow{margin-bottom:14px;}
body.tema-claro .casa-hero-inner .eyebrow{color:color-mix(in srgb, var(--cor-destaque) 45%, black);}
body.tema-claro .casa-hero-inner .eyebrow::before{background:color-mix(in srgb, var(--cor-destaque) 45%, black);}
/* max-width força quebra de linha dentro da faixa coberta pelo degradê —
   mesma lição aprendida no hero de Hoteis. */
.casa-hero-inner h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(32px,5vw,54px);line-height:1.1;letter-spacing:-0.015em;margin:0 0 16px;color:var(--ink);max-width:620px;}
.casa-hero-inner p{font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:var(--ink-muted);max-width:560px;margin:0 0 24px;}
.casa-cta-hero{font-size:15px;}

/* ---- FAIXA DE CONFIANÇA ---- */
.casa-confianca{background:var(--bg-soft);border-bottom:1px solid var(--line);}
.casa-confianca-inner{max-width:1200px;margin:0 auto;padding:40px 32px;display:flex;flex-wrap:wrap;gap:28px 48px;align-items:center;justify-content:space-between;}
.casa-stats{display:flex;gap:40px;flex-wrap:wrap;}
.casa-stat{display:flex;flex-direction:column;line-height:1;}
.casa-stat-num{font-family:'Fraunces',Georgia,serif;font-size:clamp(30px,4vw,42px);font-weight:600;color:var(--cor-destaque-clara);display:inline;}
.casa-stat-mais{font-family:'Fraunces',Georgia,serif;font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--cor-destaque-clara);margin-left:1px;}
.casa-stat-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-muted);margin-top:8px;max-width:160px;}
.casa-stat-label em{color:var(--ink-faint);font-style:normal;text-transform:none;letter-spacing:0;}
.casa-selos{display:flex;flex-direction:column;gap:10px;}
.casa-selo{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);font-weight:500;}
.casa-selo-ponto{width:7px;height:7px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 8px var(--teal-bright);flex-shrink:0;}

/* ---- SEPARADORES DE ONDA ---- */
.casa-onda-sep{line-height:0;}
.casa-onda-sep svg{display:block;width:100%;height:70px;}

/* ---- SEÇÕES ---- */
.pagina-casas .casa-secao{padding-top:64px;padding-bottom:64px;}
.casa-placeholder-nota{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);letter-spacing:0.03em;margin:8px 0 0;}

/* ---- CARDS DE BENEFÍCIO ---- */
.casa-card-beneficio{display:flex;flex-direction:column;}
.casa-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;
  background:color-mix(in srgb, var(--cor-destaque) 10%, transparent);border:1px solid color-mix(in srgb, var(--cor-destaque) 22%, transparent);}
.casa-ico svg{width:30px;height:30px;}

/* ---- VITRINE DE TIPOS DE PROPRIEDADE ---- */
.casa-categoria{position:relative;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
.casa-categoria:hover,.casa-categoria:focus-visible{transform:translateY(-5px);border-color:color-mix(in srgb, var(--cor-destaque) 40%, var(--line));box-shadow:0 20px 40px -22px color-mix(in srgb, var(--cor-destaque) 55%, transparent);outline:none;}
.casa-categoria-slot{margin:14px 0;aspect-ratio:16/9;border-radius:4px;border:1px dashed color-mix(in srgb, var(--ink-faint) 55%, transparent);
  display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--ink-faint) 8%, transparent);}
.casa-categoria-slot span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);letter-spacing:0.05em;}
/* Foto real (categorias já preenchidas) — mesma caixa 16:9, borda sólida e
   overflow:hidden no lugar do tracejado, mesmo padrão de .hot-categoria-slot
   com <img> em /Hoteis. */
.casa-categoria-foto{margin:14px 0;aspect-ratio:16/9;border-radius:4px;border:1px solid var(--line);overflow:hidden;background:var(--bg);}
.casa-categoria-foto img{width:100%;height:100%;object-fit:cover;display:block;}
.casa-categoria-link{margin-top:auto;align-self:flex-start;}

/* ---- COMO FUNCIONA ---- */
.casa-passos{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;}
.casa-passo{padding:22px;border:1px solid var(--line);border-radius:6px;background:var(--bg-card);}
.casa-passo-num{font-family:'Fraunces',Georgia,serif;font-size:36px;font-weight:600;color:var(--cor-destaque-clara);display:block;margin-bottom:10px;line-height:1;}
.casa-passo h3{font-family:'Fraunces',Georgia,serif;font-size:17px;font-weight:600;margin:0 0 6px;color:var(--ink);}
.casa-passo p{font-size:13.5px;color:var(--ink-muted);line-height:1.55;margin:0;}

/* ---- DEPOIMENTOS ---- */
.casa-depo{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.casa-depo-inner{max-width:1200px;margin:0 auto;padding:56px 32px;}
.casa-depo-carrossel{margin-top:20px;}
.casa-depo-card{scroll-snap-align:start;flex:0 0 320px;background:var(--bg-card);border:1px solid var(--line);border-radius:6px;padding:26px 24px;margin:0;display:flex;flex-direction:column;position:relative;}
.casa-aspas{font-family:'Fraunces',Georgia,serif;font-size:52px;line-height:0.6;color:color-mix(in srgb, var(--cor-destaque) 45%, transparent);margin-bottom:10px;}
.casa-depo-card blockquote{margin:0 0 16px;font-size:15px;line-height:1.55;color:var(--ink);}
.casa-depo-card figcaption{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:auto;}

/* ---- FORMULÁRIO ---- */
.casa-form-grid{margin-top:8px;}
.casa-opcional{color:var(--ink-faint);font-weight:400;font-size:0.85em;}
/* honeypot — fora da tela, sem display:none (bots ignoram display:none) */
.casa-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ---- FAQ ---- */
.casa-faq{display:flex;flex-direction:column;gap:10px;max-width:760px;}
.casa-faq details{border:1px solid var(--line);border-radius:4px;background:var(--bg-card);overflow:hidden;}
.casa-faq summary{cursor:pointer;padding:15px 18px;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;}
.casa-faq summary::-webkit-details-marker{display:none;}
.casa-faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--cor-destaque);font-size:18px;margin-left:12px;transition:transform .2s;}
.casa-faq details[open] summary::after{content:"\2013";}
.casa-faq details p{margin:0;padding:0 18px 16px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
.casa-faq details p em{color:var(--ink-faint);font-style:normal;}

/* ---- FAIXA FINAL DE CONTATO ---- */
.casa-contato-final{background:
    radial-gradient(ellipse 70% 120% at 15% 0%, rgba(47,111,98,0.18), transparent 60%),
    linear-gradient(180deg, var(--bg-soft), var(--bg));
  border-top:1px solid var(--line);}
.casa-contato-inner{max-width:900px;margin:0 auto;padding:64px 32px;text-align:center;}
.casa-contato-inner h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 10px;color:var(--ink);}
.casa-contato-inner p{font-size:15px;color:var(--ink-muted);margin:0 0 22px;}
.casa-contato-acoes{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.casa-contato-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);margin-top:22px;}

/* ---- RESPONSIVO ---- */
@media(max-width:900px){
  .casa-confianca-inner{gap:24px 32px;}
  .casa-stats{gap:26px;}
  .casa-passos{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .pagina-casas .casa-secao{padding-top:44px;padding-bottom:44px;}
  .casa-hero-inner{padding:48px 32px;}
  /* Fonte já é quase 16:9, então no hero mobile (mais estreito/alto) o corte
     passa a ser lateral, não vertical — desloca levemente pra manter a
     casa+piscina centralizadas no quadro. */
  .casa-hero-img{object-position:56% center;}
  .casa-hero-overlay{background:
    linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 48%, color-mix(in srgb, var(--bg) 30%, transparent) 100%),
    linear-gradient(0deg, color-mix(in srgb, var(--bg) 62%, transparent) 0%, transparent 46%);}
  .casa-stats{gap:20px;width:100%;justify-content:space-between;}
  .casa-stat-label{max-width:none;}
  .casa-onda-sep svg{height:44px;}
}

/* ---- REDUCED MOTION: desliga tudo que se move ---- */
@media(prefers-reduced-motion: reduce){
  .pagina-casas .reveal{opacity:1;transform:none;transition:none;}
  .casa-categoria{transition:none;}
}

/* ---- TENANT (Docs/spec-tenant-resolucao.md) ----
   _LayoutTenant.cshtml + Pages/TenantHome.cshtml. Deliberadamente simples —
   é um placeholder (a substância visual vem nos Blocos 2/3 do piloto). As
   variáveis --cor-destaque/--bg/--ink/etc. já chegam sobrescritas pelo
   <style> inline de _LayoutTenant com as cores do Tenant — aqui só o
   layout, sem cor fixa nenhuma. */
.tenant-header{padding:20px 0;border-bottom:1px solid var(--line);}
.tenant-header-inner{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:14px;}
.tenant-header-logo{height:44px;width:auto;}
.tenant-header-nome{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--ink);}
.tenant-hero{padding:64px 32px;text-align:center;}
.tenant-hero h1{font-family:'Fraunces',serif;font-size:clamp(28px,5vw,44px);font-weight:600;color:var(--ink);max-width:720px;margin:0 auto 12px;}
.tenant-sobre{max-width:680px;margin:0 auto;padding:0 32px 56px;text-align:center;color:var(--ink-muted);line-height:1.7;}
.tenant-contatos{max-width:680px;margin:0 auto;padding:0 32px 64px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink-muted);}
.tenant-contatos a{color:var(--cor-destaque);}
.tenant-footer{border-top:1px solid var(--line);padding:24px 32px;text-align:center;color:var(--ink-faint);font-size:13px;}
@media(max-width:640px){
  .tenant-hero{padding:44px 20px;}
  .tenant-sobre,.tenant-contatos{padding-left:20px;padding-right:20px;}
}
