  /* Layout: a página é a estrada. A rota tracejada com pinos costura o roteiro;
     faixas Azul Noite e Branco Névoa se alternam como trechos de dia e de noite.
     Texto nunca fica em cima de foto clara: no celular a foto vem primeiro e o texto
     abaixo, no computador os dois dividem a tela por um corte de 15°. */
  :root {
    color-scheme: light;
    --azul: #0578AE;        /* Azul Costa Sul: principal */
    --lima: #F1FF4C;        /* Lima Sul: energia, no máximo 10% */
    --nevoa: #FAFCFC;       /* Branco Névoa: respiro */
    --noite: #0A2A43;       /* Azul Noite: fundos escuros e títulos */
    --glaciar: #CFE9F6;     /* Azul Glaciar: cartões e texto sobre Noite */
    --grafite: #3B4652;     /* Grafite: texto corrido no claro */
    --noite-2: #10385A;     /* superfície um tom acima do Noite */
    --linha: rgba(10, 42, 67, .12);
    --linha-escura: rgba(207, 233, 246, .16);
    --branco: #FFFFFF;

    --f-titulo: "Montserrat", "Arial Black", system-ui, sans-serif;
    --f-texto: "Lato", "Segoe UI", system-ui, sans-serif;
    --f-numero: "Bebas Neue", "Arial Narrow", "Roboto Condensed", sans-serif;

    --ease: cubic-bezier(.2, .8, .2, 1);
    --max: 1180px;
    --gutter-l: max(16px, env(safe-area-inset-left, 0px));
    --gutter-r: max(16px, env(safe-area-inset-right, 0px));
  }
  @media (min-width: 720px) {
    :root { --gutter-l: max(32px, env(safe-area-inset-left, 0px)); --gutter-r: max(32px, env(safe-area-inset-right, 0px)); }
  }

  * { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
  body {
    margin: 0;
    background: var(--nevoa);
    color: var(--grafite);
    font: 400 1.0625rem/1.55 var(--f-texto);
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden;
  }
  img, video { display: block; max-width: 100%; height: auto; }
  figure { margin: 0; }
  a { color: inherit; }
  :focus-visible { outline: 3px solid var(--azul); outline-offset: 3px; border-radius: 6px; }
  .escuro :focus-visible { outline-color: var(--lima); }
  .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

  .faixa { padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
  .miolo { max-width: var(--max); margin: 0 auto; }

  /* ---------- Tipografia ---------- */
  .chamada {
    display: flex; align-items: center; gap: 10px; margin: 0 0 12px;
    font: 400 1.125rem/1 var(--f-numero); letter-spacing: .14em; color: var(--azul);
  }
  .chamada::before { content: ""; width: 26px; height: 7px; background: currentColor; transform: skewX(-15deg); flex: none; }
  .escuro .chamada { color: var(--lima); }
  h1, h2, h3 { font-family: var(--f-titulo); color: var(--noite); margin: 0; text-wrap: balance; }
  h2 { font-weight: 800; font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem); line-height: 1.08; letter-spacing: -.02em; }
  h3 { font-weight: 800; font-size: 1.1875rem; line-height: 1.25; letter-spacing: -.01em; }
  .escuro h2, .escuro h3 { color: var(--branco); }
  .lead { font-size: 1.125rem; line-height: 1.55; max-width: 34em; margin: 14px 0 0; }
  .escuro { background: var(--noite); color: var(--glaciar); }

  /* ícone da poltrona leito-cama (silhueta oficial) */
  .leito { display: inline-block; width: 1.6em; height: 1em; flex: none; fill: currentColor; }

  /* ---------- Selos (pílulas) ---------- */
  .selos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
  .selo {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 14px 6px; border-radius: 999px;
    font: 400 1.125rem/1 var(--f-numero); letter-spacing: .06em;
    background: var(--branco); color: var(--azul);
  }
  .selo--lima { background: var(--lima); color: var(--noite); }
  .selo .leito { margin-top: -3px; width: 1.55em; height: .98em; }

  /* ---------- Botões ---------- */
  .botao {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 54px; padding: 0 24px; border-radius: 999px;
    font: 800 1rem/1.1 var(--f-titulo); letter-spacing: -.005em; text-decoration: none;
    transition: transform .3s var(--ease), background-color .2s ease, box-shadow .2s ease;
  }
  .botao:active { transform: scale(.97); transition-duration: .1s; }
  .botao--lima { background: var(--lima); color: var(--noite); }
  .botao--contorno { color: var(--branco); box-shadow: inset 0 0 0 2px rgba(255,255,255,.5); }
  @media (hover: hover) {
    .botao--lima:hover { background: #F6FF85; }
    .botao--contorno:hover { box-shadow: inset 0 0 0 2px var(--branco); }
  }

  /* ---------- Topo ---------- */
  .topo {
    position: absolute; top: 0; left: 0; right: 0; z-index: 5;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
  }
  .topo .miolo { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .topo .logo img { width: 132px; height: auto; filter: drop-shadow(0 2px 10px rgba(10,42,67,.45)); }
  .menu { display: none; gap: 28px; font: 700 .9375rem/1 var(--f-texto); }
  .menu a { color: var(--branco); text-decoration: none; opacity: .9; text-shadow: 0 1px 8px rgba(10,42,67,.6); }
  .menu a[aria-current] { opacity: 1; box-shadow: 0 2px 0 var(--lima); padding-bottom: 6px; }
  .topo .botao { min-height: 46px; min-width: 46px; padding: 0 12px; font-size: .875rem; box-shadow: 0 8px 20px -10px rgba(10,42,67,.7); }
  .topo .botao span { display: none; }
  @media (min-width: 960px) {
    .topo .logo img { width: 176px; }
    .menu { display: flex; }
    .topo .botao { padding: 0 18px; }
    .topo .botao span { display: inline; }
  }
  @media (hover: hover) { .menu a:hover { opacity: 1; } }

  /* ---------- Abertura ---------- */
  .abertura { position: relative; background: var(--noite); color: var(--branco); overflow: hidden; }
  .abertura-foto { position: relative; aspect-ratio: 1 / 1; max-height: 78vh; width: 100%; }
  .abertura-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 55%; }
  .abertura-foto::after {
    content: ""; position: absolute; inset: 0;
    background:
      linear-gradient(180deg, rgba(10,42,67,.55) 0%, rgba(10,42,67,0) 26%),
      linear-gradient(0deg, var(--noite) 0%, rgba(10,42,67,.7) 16%, rgba(10,42,67,0) 42%);
  }
  .abertura-texto { position: relative; z-index: 2; margin-top: -3.4rem; padding-bottom: 40px; }
  .titulo-destino {
    font: italic 900 clamp(3.25rem, 14.5vw, 8.75rem)/.92 var(--f-titulo);
    letter-spacing: -.035em; color: var(--branco); margin: 0 0 0 -.04em;
    text-shadow: 0 4px 30px rgba(10,42,67,.5);
  }
  .abertura .chamada { margin: 18px 0 0; color: var(--lima); }
  .abertura .sub { font-size: 1.125rem; line-height: 1.5; max-width: 30em; margin: 14px 0 20px; color: #E3F2FA; }
  .abertura .acoes { display: grid; gap: 10px; margin-top: 24px; }
  .abertura .saida { display: flex; align-items: flex-start; gap: 8px; margin: 18px 0 0; font-size: .9375rem; color: var(--glaciar); }
  .abertura .saida svg { flex: none; margin-top: 2px; }
  .creditos-foto { display: none; }
  @media (min-width: 520px) { .abertura .acoes { display: flex; flex-wrap: wrap; } }
  @media (min-width: 960px) {
    .abertura { min-height: 680px; display: flex; align-items: flex-end; }
    .abertura-foto {
      position: absolute; top: 0; right: 0; bottom: 0; width: 58%; aspect-ratio: auto; max-height: none;
      clip-path: polygon(19% 0, 100% 0, 100% 100%, 0 100%);
    }
    .abertura-foto::after {
      background: linear-gradient(180deg, rgba(10,42,67,.55) 0%, rgba(10,42,67,0) 22%),
                  linear-gradient(90deg, rgba(10,42,67,.35) 0%, rgba(10,42,67,0) 30%);
    }
    .abertura-foto img { object-position: 30% 60%; }
    .abertura-texto { width: 100%; margin: 0; padding-top: 150px; padding-bottom: 72px; }
    .abertura-texto .miolo > div { max-width: 540px; }
    .creditos-foto {
      display: block; position: absolute; z-index: 1; right: var(--gutter-r); bottom: 18px;
      padding: 6px 12px 5px; border-radius: 999px; background: rgba(10,42,67,.7);
      font: 700 .8125rem/1.2 var(--f-texto); color: var(--branco);
    }
  }
  /* Entrada do título: da esquerda para a direita, o sentido da viagem */
  @media (prefers-reduced-motion: no-preference) {
    .titulo-destino { animation: entra .9s var(--ease) both; }
    @keyframes entra { from { transform: translateX(-28px); opacity: .001; } to { transform: none; opacity: 1; } }
  }

  /* ---------- A Rota ---------- */
  .rota { padding-block: 60px 64px; }
  .rota-grade { display: grid; gap: 28px; }
  .mapa {
    border-radius: 22px; overflow: hidden; background: #E2F0F8;
    margin-inline: calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r));
  }
  .mapa img { width: 100%; height: auto; }
  .mapa figcaption { padding: 0 16px 12px; font-size: .8125rem; color: #5B7186; }
  @media (min-width: 720px) { .mapa { margin-inline: 0; } }

  .paradas { list-style: none; margin: 0; padding: 0; }
  .parada { position: relative; padding: 0 0 0 40px; min-height: 44px; }
  .parada:not(:last-child)::before {
    content: ""; position: absolute; left: 10.5px; top: 22px; bottom: -2px;
    border-left: 3px dashed var(--azul); opacity: .45;
  }
  .parada .pino {
    position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%;
    background: var(--nevoa); border: 3px solid var(--azul);
  }
  .parada.ponta .pino { background: var(--azul); box-shadow: inset 0 0 0 4px var(--nevoa); }
  .parada .linha { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding-top: 1px; }
  .parada .cidade { font: 800 1.0625rem/1.25 var(--f-titulo); color: var(--noite); letter-spacing: -.01em; }
  .parada .pais { font: 400 .9375rem/1 var(--f-numero); letter-spacing: .12em; color: var(--azul); }
  .parada .obs { display: block; margin-top: 2px; padding-bottom: 14px; font-size: .9375rem; line-height: 1.35; color: var(--grafite); }
  .a-bordo {
    position: relative; display: flex; align-items: center; gap: 10px;
    margin: -4px 0 14px -40px; font: 700 .875rem/1.2 var(--f-texto); color: var(--noite);
  }
  .a-bordo .marca {
    display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
    background: var(--lima); color: var(--noite); box-shadow: 0 0 0 4px var(--nevoa); position: relative; z-index: 1;
  }
  .a-bordo .marca .leito { width: 17px; height: 11px; }
  .a-bordo span:last-child { padding: 4px 10px; border-radius: 999px; background: var(--lima); }
  @media (min-width: 960px) {
    .rota { padding-block: 88px; }
    .rota-grade { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-areas: "head paradas" "mapa paradas"; column-gap: 72px; row-gap: 28px; align-items: start; }
    .rota-grade > header { grid-area: head; }
    .mapa { grid-area: mapa; max-width: 470px; }
    .paradas { grid-area: paradas; padding-top: 8px; }
  }

  /* ---------- Poltrona ---------- */
  .poltrona { padding-block: 64px; }
  .poltrona-grade { display: grid; gap: 26px; grid-template-areas: "head" "foto" "noites" "texto"; }
  .p-head { grid-area: head; }
  .p-foto { grid-area: foto; position: relative; }
  /* as duas frotas da Costa Sul, lado a lado */
  .frotas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .frotas img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 18px; background: var(--noite-2); }
  .p-foto figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 14px; font-size: .9375rem; line-height: 1.4; }
  .p-noites { grid-area: noites; }
  .p-texto { grid-area: texto; }
  .p-texto .lead { margin-top: 0; }

  .noites-titulo { margin: 0 0 12px; font: 700 .9375rem/1.3 var(--f-texto); color: var(--branco); }
  .noites { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; max-width: 440px; margin: 0; padding: 0; list-style: none; }
  .noite {
    aspect-ratio: 1 / 1; border-radius: 10px; display: grid; place-items: center;
    background: rgba(207,233,246,.08); border: 1.5px solid rgba(207,233,246,.28); color: var(--glaciar);
  }
  .noite svg { width: 46%; height: auto; }
  .noite--leito { background: var(--lima); border-color: var(--lima); color: var(--noite); }
  .noite--leito svg { width: 66%; }
  .noites-legenda { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0 0; font-size: .9375rem; }
  .noites-legenda span { display: inline-flex; align-items: center; gap: 8px; }
  .noites-legenda i { width: 14px; height: 14px; border-radius: 4px; background: rgba(207,233,246,.08); border: 1.5px solid rgba(207,233,246,.4); }
  .noites-legenda i.l { background: var(--lima); border-color: var(--lima); }

  .bordo { list-style: none; margin: 22px 0 0; padding: 0; }
  .bordo li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--linha-escura); }
  .bordo li:last-child { border-bottom: 1px solid var(--linha-escura); }
  .bordo .ic { flex: none; width: 28px; display: grid; place-items: center; color: var(--lima); padding-top: 2px; }
  .bordo .ic .leito { width: 28px; height: 18px; }
  .bordo b { display: block; color: var(--branco); font: 800 1rem/1.3 var(--f-titulo); }
  .bordo span { display: block; font-size: .9375rem; line-height: 1.45; margin-top: 2px; }
  @media (min-width: 960px) {
    .poltrona { padding-block: 100px; }
    .poltrona-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "foto head" "foto noites" "foto texto"; column-gap: 80px; row-gap: 28px; align-items: start; }
    .p-foto { position: sticky; top: calc(24px + env(safe-area-inset-top, 0px)); }
    .frotas { gap: 14px; }
  }

  /* ---------- Destaques ---------- */
  .destaques { padding-block: 64px; }
  .destaques header { max-width: 38em; }
  .momentos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 28px 0 0; padding: 0; list-style: none; }
  .momento { background: var(--branco); padding: 7px 7px 12px; border-radius: 8px; box-shadow: 0 14px 28px -20px rgba(10,42,67,.55); }
  .momento img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 4px; background: var(--glaciar); }
  .momento figcaption { margin: 10px 4px 0; }
  .momento .dia { display: block; font: 400 .9375rem/1 var(--f-numero); letter-spacing: .1em; color: var(--azul); }
  .momento .onde { display: block; margin-top: 4px; font: 800 .875rem/1.25 var(--f-titulo); color: var(--noite); letter-spacing: -.005em; }
  @media (min-width: 720px) {
    .momentos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
    .momento { padding: 10px 10px 16px; }
    .momento .onde { font-size: 1rem; }
  }
  @media (min-width: 960px) { .destaques { padding-block: 88px; } }

  /* ---------- Dia a dia ---------- */
  .diario { padding-block: 64px; background: var(--branco); }
  .diario .topo-diario { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px 32px; }
  .diario .topo-diario > div { max-width: 36em; }
  .alternar {
    appearance: none; border: 0; cursor: pointer;
    min-height: 44px; padding: 0 18px; border-radius: 999px;
    background: var(--glaciar); color: var(--noite); font: 800 .875rem/1 var(--f-titulo);
  }
  .dias { list-style: none; margin: 32px 0 0; padding: 0; position: relative; max-width: 820px; }
  .dias::before {
    content: ""; position: absolute; left: 11px; top: 14px; bottom: 14px;
    border-left: 3px dashed var(--azul); opacity: .45;
  }
  .dia-item { position: relative; padding-left: 44px; }
  .dia-item + .dia-item { margin-top: 2px; }
  .dia-item::before {
    content: ""; position: absolute; left: 0; top: 15px; width: 25px; height: 25px; border-radius: 50%;
    background: var(--branco); border: 3px solid var(--azul); box-sizing: border-box;
  }
  .dia-item.na-estrada::before { background: var(--lima); border-color: var(--noite); }
  .dia-item summary {
    list-style: none; cursor: pointer;
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 12px;
    padding: 12px 4px 12px 0;
  }
  .dia-item summary::-webkit-details-marker { display: none; }
  .dia-item .num { font: 400 1.375rem/1 var(--f-numero); letter-spacing: .04em; color: var(--azul); white-space: nowrap; }
  .dia-item .lugar { font: 800 1rem/1.25 var(--f-titulo); color: var(--noite); letter-spacing: -.01em; }
  .dia-item .seta { color: var(--azul); transition: transform .3s var(--ease); }
  .dia-item details[open] .seta { transform: rotate(180deg); }
  .dia-item .noite-tipo { grid-column: 2 / 3; display: inline-flex; align-items: center; gap: 7px; font-size: .875rem; color: var(--grafite); }
  .dia-item .noite-tipo svg { color: var(--azul); flex: none; }
  .dia-item .noite-tipo .leito { width: 22px; height: 14px; color: var(--noite); }
  .dia-item .texto { padding: 0 8px 18px 0; max-width: 40em; }
  .dia-item .texto p { margin: 0 0 10px; }
  .dia-item .opcional {
    display: block; margin-top: 10px; padding: 12px 14px; border-radius: 12px;
    background: var(--nevoa); border: 1px dashed rgba(5,120,174,.4); font-size: .9375rem;
  }
  .dia-item .opcional b { color: var(--noite); }
  @media (hover: hover) { .dia-item summary:hover .lugar { color: var(--azul); } }
  @media (min-width: 720px) {
    .dia-item summary { grid-template-columns: 4.6rem minmax(0, 1fr) auto auto; }
    .dia-item .noite-tipo { grid-column: auto; }
  }
  .resumo-lateral { display: none; }
  @media (min-width: 1000px) {
    .diario { padding-block: 88px; }
    .diario-grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; align-items: start; }
    .resumo-lateral {
      display: block; position: sticky; top: calc(24px + env(safe-area-inset-top, 0px)); margin-top: 32px;
      background: var(--noite); color: var(--glaciar); border-radius: 22px; padding: 26px 24px 24px;
    }
    .resumo-lateral h3 { color: var(--branco); font-size: 1.25rem; }
    .resumo-lateral dl { margin: 18px 0 22px; display: grid; gap: 12px; }
    .resumo-lateral dt { font: 400 .9375rem/1 var(--f-numero); letter-spacing: .12em; color: var(--lima); }
    .resumo-lateral dd { margin: 3px 0 0; font-size: .9375rem; line-height: 1.4; }
    .resumo-lateral .botao { width: 100%; }
  }

  /* ---------- Incluso / antes de ir ---------- */
  .pacote { padding-block: 64px; }
  .pacote .miolo { display: grid; gap: 36px; }
  .inclui { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 0 28px; }
  .inclui li { display: flex; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--linha); line-height: 1.4; }
  .inclui svg { flex: none; color: var(--azul); margin-top: 1px; }
  .lateral { display: grid; gap: 14px; align-content: start; }
  .cartao { border-radius: 18px; padding: 20px 20px 18px; background: var(--branco); border: 1px solid var(--linha); }
  .cartao h3 { font-size: 1.0625rem; }
  .cartao ul { margin: 8px 0 0; padding-left: 18px; font-size: .9375rem; line-height: 1.5; }
  .cartao li + li { margin-top: 6px; }
  .cartao--opcionais { background: var(--glaciar); border-color: transparent; }
  @media (min-width: 720px) { .inclui { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1000px) { .pacote { padding-block: 88px; } .pacote .miolo { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 56px; } .lateral { margin-top: 70px; } }

  /* ---------- Grupo ---------- */
  .grupo { padding-block: 64px; }
  .grupo-grade { display: grid; gap: 30px; }
  .mosaico { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .mosaico > * { border-radius: 16px; overflow: hidden; background: var(--noite-2); }
  .mosaico img, .mosaico video { width: 100%; height: 100%; object-fit: cover; }
  .mosaico .m-video { grid-column: 1 / -1; aspect-ratio: 1 / 1; position: relative; }
  .mosaico .m-foto { aspect-ratio: 1 / 1; }
  .mosaico .m-video figcaption {
    position: absolute; left: 12px; top: 12px; padding: 6px 12px 5px; border-radius: 999px;
    background: rgba(10,42,67,.78); color: var(--branco); font: 700 .8125rem/1.2 var(--f-texto);
  }
  .numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 20px; margin-top: 26px; }
  .numeros b { display: block; font: 400 clamp(2.125rem, 1.6rem + 2vw, 3rem)/1 var(--f-numero); color: var(--lima); letter-spacing: .02em; }
  .numeros span { display: block; margin-top: 4px; font-size: .875rem; line-height: 1.35; }
  @media (min-width: 960px) {
    .grupo { padding-block: 100px; }
    .grupo-grade { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 80px; align-items: center; }
    .mosaico { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; }
    .mosaico .m-video { grid-column: 1; grid-row: 1 / 3; aspect-ratio: auto; }
    .numeros span { font-size: .9375rem; }
  }

  /* ---------- Chamada final ---------- */
  .final { background: var(--azul); color: var(--branco); padding-block: 64px; position: relative; overflow: hidden; }
  .final::before { content: ""; position: absolute; right: -60px; top: 0; bottom: 0; width: 46%; background: rgba(10,42,67,.18); transform: skewX(-15deg); }
  .final .miolo { position: relative; }
  .final h2 { color: var(--branco); font: italic 900 clamp(2rem, 1.2rem + 3.6vw, 3.5rem)/1.02 var(--f-titulo); letter-spacing: -.025em; max-width: 14em; }
  .final p { max-width: 32em; margin: 16px 0 26px; font-size: 1.125rem; }
  .final .numero-wa { display: block; margin-top: 16px; font-size: .9375rem; color: #E3F2FA; }
  .final .numero-wa b { user-select: all; color: var(--branco); }
  .final .foto-final { display: none; }
  @media (min-width: 900px) {
    .final { padding-block: 80px; }
    .final .miolo { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; align-items: center; }
    .final .foto-final { display: block; }
    .final .foto-final img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; box-shadow: 0 30px 50px -24px rgba(10,42,67,.7); }
  }

  /* ---------- Outras expedições ---------- */
  .outras { padding-block: 60px 72px; }
  .cartazes { display: grid; gap: 14px; margin-top: 24px; grid-template-columns: minmax(0, 1fr); }
  .cartaz { position: relative; display: block; overflow: hidden; border-radius: 18px; text-decoration: none; aspect-ratio: 16 / 9; background: var(--noite); }
  .cartaz img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
  .cartaz::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,42,67,.9) 0%, rgba(10,42,67,0) 62%); }
  .cartaz .info { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--branco); }
  .cartaz .info b { font: italic 900 1.5rem/1.05 var(--f-titulo); letter-spacing: -.02em; }
  .cartaz .info .selo { font-size: 1rem; padding: 6px 12px 4px; }
  @media (min-width: 720px) {
    .cartazes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    .cartaz { aspect-ratio: 4 / 5; }
    .cartaz .info { flex-direction: column; align-items: flex-start; }
  }
  @media (hover: hover) { .cartaz:hover img { transform: scale(1.04); } }

  /* ---------- Rodapé ---------- */
  .rodape { padding-block: 52px calc(110px + env(safe-area-inset-bottom, 0px)); font-size: .9375rem; }
  .rodape .miolo { display: grid; gap: 30px; }
  .rodape img { width: 160px; height: auto; }
  .rodape h3 { font-size: .9375rem; color: var(--branco); margin-bottom: 10px; }
  .rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
  .rodape a { text-decoration: none; }
  .rodape .legal { border-top: 1px solid var(--linha-escura); padding-top: 22px; margin: 0; font-size: .8125rem; color: rgba(207,233,246,.75); }
  @media (min-width: 900px) {
    .rodape { padding-bottom: 56px; }
    .rodape .miolo { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
    .rodape .legal { grid-column: 1 / -1; }
  }

  /* ---------- Barra fixa do WhatsApp (celular) ---------- */
  .barra {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
    padding: 10px var(--gutter-r) calc(10px + env(safe-area-inset-bottom, 0px)) var(--gutter-l);
    background: rgba(10,42,67,.88);
    -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%);
    transform: translateY(110%); transition: transform .45s var(--ease);
  }
  .barra.on { transform: none; }
  .barra .botao { width: 100%; }
  @media (min-width: 900px) {
    .barra { left: auto; right: calc(24px + env(safe-area-inset-right, 0px)); bottom: calc(24px + env(safe-area-inset-bottom, 0px)); padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .barra .botao { width: auto; box-shadow: 0 18px 36px -14px rgba(10,42,67,.7); }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .barra, .botao, .cartaz img, .dia-item .seta { transition: none; }
  }

  /* ---------- Ajustes do gerador ---------- */
  .rodape-frase { margin: 14px 0 0; max-width: 22em; }
  /* Nome do destino: diminui conforme o número de letras, para caber no celular */
  .titulo-destino--m { font-size: clamp(2.5rem, 10.5vw, 6.5rem); }
  .titulo-destino--p { font-size: clamp(2rem, 8vw, 4.75rem); line-height: .98; }
  .titulo-complemento { display: block; margin-top: .3em; font: italic 800 clamp(1.25rem, 5vw, 2.25rem)/1.1 var(--f-titulo); letter-spacing: -.02em; }
  .aviso { margin: 18px 0 0; max-width: 40em; font-size: .875rem; line-height: 1.5; color: #5B7186; }
  @media (min-width: 1000px) { .pacote .miolo.sem-lateral { grid-template-columns: minmax(0, 1fr); } }

  /* ---------- Catálogo ---------- */
  .catalogo-topo { padding-block: calc(112px + env(safe-area-inset-top, 0px)) 40px; }
  .catalogo-titulo { margin: 0; font: italic 900 clamp(2.5rem, 11vw, 5rem)/.95 var(--f-titulo); letter-spacing: -.03em; color: var(--branco); }
  .catalogo-topo .lead { color: var(--glaciar); }
  .filtro { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
  .filtro a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px;
    font: 800 .9375rem/1 var(--f-titulo); color: var(--branco); text-decoration: none;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.4);
  }
  .filtro a[aria-current] { background: var(--lima); color: var(--noite); box-shadow: none; }
  .catalogo { padding-block: 48px 8px; }
  #catalogo > .catalogo:last-child { padding-bottom: 72px; }
  .catalogo-cabeca p { margin: 6px 0 0; }
  .cartazes--catalogo { margin-top: 20px; }
  @media (min-width: 720px) { .cartazes--catalogo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1000px) {
    .catalogo-topo { padding-block: 150px 56px; }
    .cartazes--catalogo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (hover: hover) { .filtro a:hover { box-shadow: inset 0 0 0 2px var(--branco); } .filtro a[aria-current]:hover { box-shadow: none; } }

  /* ---------- Início ---------- */
  .abertura-foto video { width: 100%; height: 100%; object-fit: cover; }
  .abertura--inicio .abertura-foto { aspect-ratio: 4 / 5; max-height: 72vh; }
  .titulo-inicio {
    font: italic 900 clamp(2.5rem, 11vw, 5.75rem)/.95 var(--f-titulo);
    letter-spacing: -.03em; color: var(--branco); margin: 0; max-width: 11em;
    text-shadow: 0 4px 30px rgba(10,42,67,.5);
  }
  @media (min-width: 960px) {
    .abertura--inicio .abertura-foto { aspect-ratio: auto; max-height: none; }
    .abertura--inicio .abertura-foto video { object-position: 50% 50%; }
  }
  @media (prefers-reduced-motion: no-preference) {
    .titulo-inicio { animation: entra .9s var(--ease) both; }
  }

  .vitrine { padding-block: 64px 72px; }
  .vitrine header { max-width: 38em; }
  .vitrine-grupo { margin-top: 36px; }
  .vitrine-cabeca { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 24px; }
  .vitrine-cabeca > div { max-width: 40em; }
  .vitrine-cabeca h3 { font-size: 1.5rem; }
  .vitrine-cabeca p { margin: 4px 0 0; }
  .vitrine-link { font: 800 .9375rem/1.3 var(--f-titulo); color: var(--azul); text-decoration: underline; text-underline-offset: 4px; padding-block: 10px; }
  .cartazes--vitrine { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
  .cartazes--vitrine .cartaz { aspect-ratio: 4 / 5; border-radius: 16px; }
  .cartazes--vitrine .cartaz .info { left: 12px; right: 12px; bottom: 12px; flex-direction: column; align-items: flex-start; gap: 8px; }
  .cartazes--vitrine .cartaz .info b { font-size: 1.125rem; }
  .cartazes--vitrine .cartaz .info .selo { font-size: .875rem; padding: 5px 10px 3px; }
  @media (min-width: 1000px) {
    .vitrine { padding-block: 96px; }
    .cartazes--vitrine { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
    .cartazes--vitrine .cartaz .info b { font-size: 1.375rem; }
  }
  @media (hover: hover) { .vitrine-link:hover { color: var(--noite); } }

  .p-link { margin-top: 24px; }

  .grupo--claro { background: var(--branco); color: var(--grafite); }
  .grupo--claro h2 { color: var(--noite); }
  .grupo--claro .chamada { color: var(--azul); }
  .grupo--claro .numeros b { color: var(--azul); }
  .grupo--claro .mosaico > * { background: var(--glaciar); }
  .numeros--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  @media (min-width: 720px) { .numeros--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (min-width: 960px) { .grupo-grade .numeros--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

  .certificacoes { padding-block: 44px; border-top: 1px solid var(--linha); }
  .certificacoes h2 { font-size: 1.125rem; text-align: center; }
  .selos-oficiais { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px 40px; }
  .selos-oficiais img { height: 48px; width: auto; }
  .selos-oficiais li:first-child img { height: 40px; }
  .selos-oficiais li:last-child img { height: 64px; }
  .cartaz .info .selo { white-space: nowrap; flex: none; }

  /* ---------- Páginas internas ---------- */
  .pagina-topo { padding-block: calc(112px + env(safe-area-inset-top, 0px)) 44px; }
  .pagina-titulo { margin: 0; font: italic 900 clamp(2.25rem, 10vw, 4.5rem)/.98 var(--f-titulo); letter-spacing: -.03em; color: var(--branco); max-width: 14em; }
  .pagina-topo .lead { color: var(--glaciar); }
  .acoes--topo { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
  @media (min-width: 1000px) { .pagina-topo { padding-block: 150px 64px; } }

  .pilares, .duvidas, .historia, .galeria, .contato, .texto-longo { padding-block: 64px; }
  .lista-pilares { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 14px; }
  .lista-pilares li { background: var(--branco); border: 1px solid var(--linha); border-radius: 18px; padding: 20px; }
  .lista-pilares .ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--glaciar); color: var(--azul); }
  .lista-pilares h3 { margin-top: 14px; font-size: 1.0625rem; }
  .lista-pilares p { margin: 6px 0 0; font-size: .9375rem; line-height: 1.5; }
  @media (min-width: 720px) { .lista-pilares { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1100px) { .lista-pilares { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

  .duvidas { background: var(--branco); }
  .lista-duvidas { margin-top: 24px; max-width: 820px; border-top: 1px solid var(--linha); }
  .lista-duvidas details { border-bottom: 1px solid var(--linha); }
  .lista-duvidas summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 18px 0; font: 800 1.0625rem/1.35 var(--f-titulo); color: var(--noite);
  }
  .lista-duvidas summary::-webkit-details-marker { display: none; }
  .lista-duvidas .seta { flex: none; color: var(--azul); transition: transform .3s var(--ease); }
  .lista-duvidas details[open] .seta { transform: rotate(180deg); }
  .lista-duvidas p { margin: 0 0 20px; max-width: 40em; }

  .historia-grade { display: grid; gap: 32px; align-items: center; }
  .historia h3 { margin-top: 26px; }
  .historia-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; }
  .historia .numeros b { color: var(--azul); }
  @media (min-width: 960px) { .historia-grade { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 80px; } .historia .numeros--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .galeria { background: var(--branco); }

  .canais { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
  .canal { background: var(--branco); border: 1px solid var(--linha); border-radius: 18px; padding: 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
  .canal .ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--glaciar); color: var(--azul); margin-bottom: 6px; }
  .canal h2 { font-size: 1rem; }
  .canal-valor { margin: 0; font: 800 1rem/1.35 var(--f-titulo); color: var(--noite); user-select: all; overflow-wrap: anywhere; }
  .canal .botao { margin-top: 10px; min-height: 46px; font-size: .9375rem; }
  .botao--glaciar { background: var(--glaciar); color: var(--noite); }
  .redes-contato { margin-top: 36px; }
  .redes-contato h2 { font-size: 1.25rem; }
  .redes-contato ul { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
  .redes-contato a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--noite); color: var(--branco); font: 800 .9375rem/1 var(--f-titulo); text-decoration: none; }
  @media (min-width: 720px) { .canais { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1100px) { .canais { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

  .texto-longo .miolo { max-width: 760px; }
  .texto-longo h2 { font-size: 1.375rem; margin: 32px 0 10px; }
  .texto-longo ul { padding-left: 20px; }
  .texto-longo li + li { margin-top: 6px; }

  /* ---------- Correções da revisão ---------- */
  /* foco visível também na faixa azul da chamada final */
  .final :focus-visible { outline-color: var(--lima); }
  .final .numero-wa { color: var(--branco); }

  /* menu do celular: abre sem JavaScript */
  .menu-movel { position: relative; margin-left: auto; }
  .menu-movel summary {
    list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
    min-height: 46px; padding: 0 16px; border-radius: 999px;
    color: var(--branco); background: rgba(10,42,67,.55); box-shadow: inset 0 0 0 2px rgba(255,255,255,.5);
    font: 800 .875rem/1 var(--f-titulo);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  }
  .menu-movel summary::-webkit-details-marker { display: none; }
  .menu-movel[open] summary { background: var(--branco); color: var(--noite); box-shadow: none; }
  .menu-movel nav {
    position: absolute; right: 0; top: calc(100% + 10px); z-index: 30; min-width: 230px;
    display: grid; padding: 8px; border-radius: 18px; background: var(--noite);
    box-shadow: 0 24px 48px -16px rgba(0,0,0,.6);
  }
  .menu-movel nav a { display: block; padding: 14px 16px; border-radius: 12px; color: var(--branco); text-decoration: none; font: 800 1rem/1.2 var(--f-titulo); }
  .menu-movel nav a[aria-current] { color: var(--lima); }
  .menu-movel :focus-visible { outline-color: var(--lima); }
  @media (hover: hover) { .menu-movel nav a:hover { background: var(--noite-2); } }
  @media (min-width: 960px) { .menu-movel { display: none; } }
