/* Tagino Adventure Tour — direção artística editorial
   docs/superpowers/specs/2026-09-15-direcao-artistica-design.md
   Regras verificadas por tests/visual-rules.test.js e tests/contrast.test.js */

/* Família Barlow auto-hospedada (SIL OFL 1.1, ver /fonts/README.md) */
@font-face {
 font-family: "Barlow";
 font-style: normal;
 font-weight: 400;
 font-display: block;
 src: url("/fonts/barlow-400-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
 font-family: "Barlow";
 font-style: italic;
 font-weight: 400;
 font-display: block;
 src: url("/fonts/barlow-400-italic-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
 font-family: "Barlow";
 font-style: normal;
 font-weight: 600;
 font-display: block;
 src: url("/fonts/barlow-600-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
 font-family: "Barlow Semi Condensed";
 font-style: normal;
 font-weight: 600;
 font-display: block;
 src: url("/fonts/barlow-semi-condensed-600-latin-v16.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* fina: só a segunda frase do título da home */
@font-face {
 font-family: "Barlow Condensed";
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url("/fonts/barlow-condensed-400-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
 font-family: "Barlow Condensed";
 font-style: normal;
 font-weight: 700;
 font-display: block;
 src: url("/fonts/barlow-condensed-700-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
 font-family: "Barlow Condensed";
 font-style: normal;
 font-weight: 800;
 font-display: block;
 src: url("/fonts/barlow-condensed-800-latin-v13.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* itálico dos títulos dos topos e da faixa final (identidade "pincel", spec 2026-09-25) */
@font-face {
 font-family: "Barlow Condensed";
 font-style: italic;
 font-weight: 800;
 font-display: block;
 src: url("/fonts/barlow-condensed-800-italic-latin-v5.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Caveat (SIL OFL 1.1): só a frase manuscrita da faixa final; troca rápida, sem pré-carga */
@font-face {
 font-family: "Caveat";
 font-style: normal;
 font-weight: 500;
 font-display: swap;
 src: url("/fonts/caveat-500-latin-v5.woff2") format("woff2");
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@layer tokens, base, layout, components, sections, utilities;

@layer tokens {
 :root {
  --ink: #0a140d;
  --ink-2: #151e18;
  --paper: #f4f1ea;
  --sand: #e9e3d6;
  --white: #ffffff;
  --text: #151b17;
  --muted: #575d56;
  --line: #d9d2c4;
  --line-strong: #8b8a82;
  --line-ink: #2e3831;
  --green-700: #166534;
  --green-600: #15803d;
  --green-500: #16a34a;
  --green-400: #22c55e;
  --yellow: #f5c518;
  --on-yellow: #1a1500;
  --on-ink: #f4f1ea;
  --on-ink-muted: #b4b9b2;
  --status-open: #166534;
  --status-few: #7a5000;
  --status-soldout: #a3261f;
  --status-tbd: #4a514b;
  --status-past: #5f645d;
  --status-soldout-dark: #f87171;

  /* papéis de cor: o CSS usa estes; a versão Black só troca os valores */
  --bg: var(--white);
  --surface: var(--white);
  --surface-2: var(--sand);
  --fg: var(--text);
  --fg-muted: var(--muted);
  --rule: var(--line-strong);
  --rule-soft: var(--line);
  --accent-text: var(--green-700);
  --focus: var(--green-700);
  --st-open: var(--status-open);
  --st-few: var(--status-few);
  --st-soldout: var(--status-soldout);
  --st-tbd: var(--status-tbd);
  --st-past: var(--status-past);
  /* mapa do trajeto: terra, divisas e rios chegam ao SVG pelo <use> */
  --mapa-mar: #ffffff;
  --mapa-terra: #efece3;
  --mapa-divisa: #b3ad9e;
  --mapa-rio: #7fa6bf;
  --mapa-pais: #6f6c63;
  --mapa-traco: #0a140d;
  /* mapa da vitrine: sempre sobre a faixa escura de Destinos, nas duas versões */
  --mapa-escuro-terra: #1c2820;
  --mapa-escuro-divisa: #4b574e;
  --mapa-escuro-rio: #3f7596;
  /* globo do filtro "Tour pelo Mundo": oceano e terra de verdade, iguais nas duas versões */
  --globo-mar: #1f5f9e;
  --globo-terra: #4e9a52;

  --ff-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --ff-label: "Barlow Semi Condensed", "Arial Narrow", sans-serif;
  --ff-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --fs-hero: clamp(3.25rem, 1.1rem + 7.2vw, 8rem);
  --fs-h2: clamp(2.5rem, 1.4rem + 3.6vw, 4.75rem);
  --fs-h3: clamp(1.375rem, 1.15rem + .7vw, 1.75rem);
  --fs-lead: clamp(1.125rem, 1.05rem + .3vw, 1.3125rem);
  --fs-body: 1.0625rem;
  --fs-label: .8125rem;

  --container: 1320px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --header-h: 76px;
  --topbar-h: 38px;
  --section-y: clamp(4.5rem, 3rem + 6vw, 9rem);
  --ease: cubic-bezier(.2, .7, .2, 1);
 }
 :root[data-theme="dark"] {
  --bg: #0a140d;
  --surface: #151e18;
  --surface-2: #151e18;
  --fg: #f4f1ea;
  --fg-muted: #b4b9b2;
  --rule: #5b665e;
  --rule-soft: #2e3831;
  --accent-text: #22c55e;
  --focus: #f5c518;
  --st-open: #22c55e;
  --st-few: #f5c518;
  --st-soldout: #f87171;
  --st-tbd: #b4b9b2;
  --st-past: #9aa198;
  --mapa-mar: #0a140d;
  --mapa-terra: #1c2820;
  --mapa-divisa: #4b574e;
  --mapa-rio: #3f7596;
  --mapa-pais: #9aa198;
  --mapa-traco: #f4f1ea;
  color-scheme: dark;
 }
}

@layer base {
 *, *::before, *::after { box-sizing: border-box; }

 html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 1rem);
 }

 @media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
 }

 body {
  margin: 0;
  font-family: var(--ff-body);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--fg);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
 }

 body:has(dialog[open]) { overflow: hidden; }

 img, svg, picture { display: block; max-width: 100%; }
 img { height: auto; }
 picture img { width: 100%; }
 figure { margin: 0; }

 a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }

 h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1; text-wrap: balance; }
 p { margin: 0; text-wrap: pretty; }
 ul, ol { margin: 0; padding: 0; list-style: none; }
 dl, dd { margin: 0; }
 address { font-style: normal; }
 button, input, select, textarea { font: inherit; color: inherit; }
 button { cursor: pointer; }
 dialog { color: inherit; }

 :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
 ::selection { background: var(--yellow); color: var(--on-yellow); }
 [hidden] { display: none !important; }
}

@layer layout {
 .container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
 .section { padding-block: var(--section-y); }

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

 .skip-link {
  position: absolute; left: 1rem; top: -120px; z-index: 300;
  padding: .75rem 1rem; background: var(--yellow); color: var(--on-yellow);
  font-family: var(--ff-label); font-weight: 600; text-decoration: none;
 }
 .skip-link:focus { top: 1rem; }
}

@layer components {
 .icon { width: 1.25em; height: 1.25em; }

 /* rótulos tipográficos */
 .place,
 .section-head__label {
  font-family: var(--ff-label);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent-text);
 }

 /* botões: caixa alta semi-condensada, canto levemente arredondado (pedido do cliente, 2026-10-03) */
 .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 48px; padding: 0 1.5em;
  border: 2px solid transparent; border-radius: 4px;
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; line-height: 1.1;
  letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
  white-space: nowrap; text-align: center;
  transition: background-color .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
 }
 .btn .icon { flex: none; width: 1.15em; height: 1.15em; }
 .btn--sm { min-height: 40px; padding: 0 1.1em; font-size: .8125rem; }
 .btn--lg { min-height: 56px; padding: 0 1.9em; font-size: 1rem; }
 .btn--block { width: 100%; }
 /* verdes no degradê da logo Tagino (do verde médio, em cima, ao verde vivo, embaixo); texto escuro para o contraste */
 .btn--primary, .btn--wa {
  border-color: transparent; color: var(--ink);
  background: linear-gradient(180deg, #2eb84d 0%, #45d35a 100%);
 }
 .btn--primary:hover, .btn--wa:hover { background: linear-gradient(180deg, #45d35a 0%, #63e473 100%); color: var(--ink); }
 .btn--primary .icon { transition: transform .2s var(--ease); }
 .btn--primary:hover .icon { transform: translateX(3px); }
 .btn--outline { background: transparent; border-color: var(--fg); color: var(--fg); }
 .btn--outline:hover { background: var(--fg); color: var(--bg); }
 .btn--light { background: transparent; border-color: #fff; color: #fff; }
 .btn--light:hover { background: #fff; color: var(--ink); }

 @media (max-width: 767px) {
  .btn { white-space: normal; }
  .btn--sm { min-height: 44px; }
 }

 .icon-btn {
  display: inline-grid; place-items: center; flex: none;
  width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 0; background: transparent; color: inherit;
 }
 .icon-btn .icon { width: 24px; height: 24px; }

 /* situação das saídas: texto colorido, sem pílulas */
 .badge {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600;
  letter-spacing: .02em; white-space: nowrap;
 }
 /* marcador quadrado na cor da situação: identifica o estado sem pílula nem ícone decorativo */
 .badge--open::before, .badge--ongoing::before, .badge--few::before, .badge--soldout::before {
  content: ""; flex: none; width: 8px; height: 8px; background: currentColor;
 }
 .badge--open, .badge--ongoing { color: var(--st-open); }
 .badge--few { color: var(--st-few); }
 .badge--soldout { color: var(--st-soldout); }
 .badge--tbd { color: var(--st-tbd); }
 .badge--past { color: var(--st-past); }

 /* cabeçalho de seção editorial, assimétrico */
 .section-head {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter); row-gap: 1rem;
  margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem);
  padding-top: 1rem; border-top: 2px solid var(--fg);
 }
 .section-head__label { grid-column: 1 / -1; }
 .section-head__title {
  grid-column: 1 / span 7;
  font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800;
  line-height: .9; text-transform: uppercase;
 }
 .section-head__lead { grid-column: 9 / -1; align-self: end; font-size: var(--fs-lead); line-height: 1.5; color: var(--fg-muted); }
 .section-head__action { grid-column: 9 / -1; align-self: end; justify-self: end; }

 @media (max-width: 899px) {
  .section-head__title, .section-head__lead, .section-head__action { grid-column: 1 / -1; }
  .section-head__action { justify-self: start; }
 }

 /* barra utilitária */
 .topbar {
  background: var(--ink); color: var(--on-ink);
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .05em;
 }
 .topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: var(--topbar-h); }
 .topbar ul { display: flex; flex-wrap: wrap; gap: 0 1.75rem; }
 /* contatos com ícone e um fio entre eles; redes separadas por um fio curto */
 .topbar__contact li + li, .topbar__social li + li { position: relative; }
 .topbar__contact li + li::before, .topbar__social li + li::before {
  content: ""; position: absolute; left: -.9rem; top: 50%; width: 1px; height: 1.1em; transform: translateY(-50%); background: var(--line-ink);
 }
 .topbar__icone { width: 1.05rem; height: 1.05rem; margin-right: .5em; flex: none; }
 .topbar__icone--wa { color: var(--green-400); }
 .topbar a { display: inline-flex; align-items: center; min-height: var(--topbar-h); text-decoration: none; }
 .topbar a:hover { color: var(--yellow); }
 .topbar__key { margin-right: .4em; color: var(--on-ink-muted); text-transform: uppercase; letter-spacing: .12em; }
 .topbar :focus-visible { outline-color: var(--yellow); }

 @media (max-width: 767px) {
  .topbar { display: none; }
 }

 /* cabeçalho */
 .site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--bg); color: var(--fg);
  border-bottom: 1px solid var(--rule-soft);
 }
 .site-header__inner { display: flex; align-items: center; gap: 2rem; min-height: var(--header-h); }
 /* menu adaptável (pedido do cliente, 2026-10-03) — páginas com foto no topo (todas as públicas): no topo, transparente sobre
    a foto; ao rolar continua flutuando em vidro, escuro sobre fundo escuro (.is-solid) e claro sobre seção clara (.is-claro,
    main.js lê a cor do que está logo abaixo dele); a troca é suave. O verde fica no item ativo e no botão de WhatsApp */
 body:has(.hero, .masthead, .tour-hero) .site-header {
  margin-bottom: calc(-1 * var(--header-h)); border-bottom-color: transparent;
  background: transparent; color: #fff;
  transition: background-color .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
 }
 body:has(.hero, .masthead, .tour-hero) .site-header.is-solid { background-color: rgba(10, 20, 13, .58); border-bottom-color: rgba(244, 241, 234, .08); }
 .site-header.is-solid { -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); }
 /* sobre seção clara: vidro branco leve, texto escuro, fio e sombra quase imperceptíveis */
 body:has(.hero, .masthead, .tour-hero) .site-header.is-solid.is-claro { background-color: rgba(255, 255, 255, .74); color: var(--fg); border-bottom-color: rgba(10, 20, 13, .07); }
 .site-header.is-claro { box-shadow: 0 8px 28px -18px rgba(10, 20, 13, .35); }
 body:has(.hero, .masthead, .tour-hero) .site-header.is-claro .site-nav a[aria-current] { color: var(--accent-text); }
 body:has(.hero, .masthead, .tour-hero) .site-header.is-claro .site-nav a::after { background: var(--green-600); }
 body:has(.hero, .masthead, .tour-hero) .site-header.is-claro :focus-visible { outline-color: var(--focus); }
 body:has(.hero, .masthead, .tour-hero) .site-nav a[aria-current] { color: var(--green-400); }
 body:has(.hero, .masthead, .tour-hero) .site-nav a::after { background: var(--green-400); }
 body:has(.hero, .masthead, .tour-hero) .site-header :focus-visible { outline-color: var(--yellow); }
 .brand { flex: none; display: block; }
 .brand img { width: auto; height: 46px; }
 .site-nav { margin-left: auto; }
 .site-nav ul { display: flex; gap: clamp(1rem, 1.9vw, 2.25rem); }
 .site-nav a {
  position: relative; display: inline-flex; align-items: center; min-height: var(--header-h);
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600;
  letter-spacing: .07em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
 }
 .site-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: var(--green-600); transform: scaleX(0); transform-origin: left;
  transition: transform .25s var(--ease);
 }
 .site-nav a:hover::after, .site-nav a[aria-current]::after { transform: scaleX(1); }
 .site-header__actions { display: flex; align-items: center; gap: .5rem; }
 /* parceiro oficial (BMW Motorrad): no fim da barra escura do topo (texto branco da logo sobre o escuro), com um fio antes */
 .topbar__end { display: flex; align-items: center; gap: 1.25rem; margin-left: auto; }
 .topbar__parceiro { display: flex; align-items: center; min-height: 44px; padding-left: 1.25rem; border-left: 1px solid var(--line-ink); }
 .topbar__parceiro img { display: block; width: auto; height: 34px; }
 /* sem a barra (celular e tablet pequeno), a logo ganha uma faixa própria, escura e fina, no canto superior direito */
 .parceiro-faixa { display: none; background: var(--ink); }
 .parceiro-faixa__inner { display: flex; justify-content: flex-end; align-items: center; min-height: 40px; }
 .parceiro-faixa__logo img { display: block; width: auto; height: 28px; }
 @media (max-width: 767px) {
  .parceiro-faixa { display: block; }
 }
 .menu-toggle { display: none; }
 /* versão Black: lua na versão normal, sol na Black; sem JS o botão não aparece */
 .theme-toggle .icon--sun { display: none; }
 :root[data-theme="dark"] .theme-toggle .icon--moon { display: none; }
 :root[data-theme="dark"] .theme-toggle .icon--sun { display: block; }
 .no-js .theme-toggle { display: none; }

 @media (max-width: 1079px) {
  :root { --header-h: 64px; }
  .site-nav { display: none; }
  .menu-toggle { display: inline-grid; }
  .site-header__actions { margin-left: auto; }
  .brand img { height: 36px; }
  .no-js .site-nav { display: block; overflow-x: auto; }
  .no-js .menu-toggle { display: none; }
 }

 @media (max-width: 479px) {
  .site-header__wa { width: 44px; padding: 0; }
  .site-header__wa span { display: none; }
 }

 /* menu móvel */
 .menu {
  position: fixed; inset: 0;
  width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh;
  margin: 0; padding: .75rem var(--gutter) 2rem;
  border: 0; background: var(--ink); color: var(--on-ink);
  flex-direction: column;
 }
 .menu[open] { display: flex; }
 .menu::backdrop { background: rgba(10, 20, 13, .6); }
 .menu :focus-visible { outline-color: var(--yellow); }
 .menu__top { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
 .menu__title { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--on-ink-muted); }
 .menu__links { display: grid; margin-top: 1.5rem; border-top: 1px solid var(--line-ink); }
 .menu__link {
  display: block; padding: .75rem 0; border-bottom: 1px solid var(--line-ink);
  font-family: var(--ff-display); font-size: clamp(2.25rem, 9vw, 3rem); font-weight: 800;
  line-height: 1; text-transform: uppercase; text-decoration: none;
 }
 .menu__link[aria-current] { color: var(--yellow); }
 .menu__sublinks { display: grid; padding-bottom: .5rem; border-bottom: 1px solid var(--line-ink); }
 .menu__sublink {
  display: flex; align-items: center; min-height: 44px; padding-left: 1rem;
  font-family: var(--ff-label); font-size: 1rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--on-ink-muted);
 }
 .menu__sublink:hover { color: var(--yellow); }
 .menu__footer { display: grid; gap: 1rem; margin-top: auto; padding-top: 2rem; }
 .menu__contact { display: inline-flex; align-items: center; min-height: 44px; color: var(--on-ink-muted); }

 /* galeria em colunas: fotos sem corte */
 /* miniaturas de até ~280 px: a foto nunca aparece maior que o detalhe que tem */
 .gallery { columns: 5 13rem; column-gap: 1.25rem; }
 /* amostra da home: uma linha só, cada foto na sua célula */
 .gallery--row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; align-items: start; columns: auto; }
 .gallery--row.gallery--carousel { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 5rem) / 5); overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; scroll-snap-type: x mandatory; }
 .gallery--carousel::-webkit-scrollbar { display: none; }
 .gallery--carousel .gallery__item { min-width: 0; scroll-snap-align: start; }
 .gallery--row .gallery__item { margin-bottom: 0; }
 /* amostra da home: quadros 4:5 iguais, a foto preenche o quadro a partir do ponto focal */
 .gallery--quadros .gallery__btn { aspect-ratio: 4 / 5; overflow: hidden; }
 .gallery--quadros .gallery__btn picture, .gallery--quadros .gallery__btn img { width: 100%; height: 100%; }
 .gallery--quadros .gallery__btn img { object-fit: cover; }
 .gallery__item { break-inside: avoid; margin-bottom: 1.75rem; }
 .gallery__btn { display: block; width: 100%; padding: 0; border: 0; border-radius: 0; background: var(--bg); }
 .gallery__btn img { width: 100%; height: auto; transition: opacity .2s var(--ease); }
 .gallery__btn:hover img { opacity: .85; }
 .gallery__caption { margin-top: .55rem; font-size: .9375rem; font-style: italic; line-height: 1.4; color: var(--fg-muted); }
 .gallery-carousel__controls { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1.25rem; }
 .no-js .gallery-carousel__controls { display: none; }
 .gallery__arrow { display: inline-grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid var(--rule); border-radius: 0; background: transparent; color: var(--fg); }
 .gallery__arrow:hover:not(:disabled) { background: var(--fg); color: var(--bg); }
 .gallery__arrow:disabled { opacity: .4; cursor: not-allowed; }
 .js .gallery__item--extra { display: none; }
 .gallery.is-expanded .gallery__item--extra { display: block; }
 .gallery__more { display: flex; justify-content: center; margin-top: 1.5rem; }

 /* visualizador */
 .lightbox {
  position: fixed; inset: 0;
  width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh;
  margin: 0; padding: 4rem 1rem 1.25rem;
  border: 0; background: rgba(10, 20, 13, .97); color: var(--on-ink);
 }
 .lightbox[open] { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; align-items: center; gap: .75rem; }
 .lightbox::backdrop { background: rgba(10, 20, 13, .9); }
 .lightbox :focus-visible { outline-color: var(--yellow); }
 .lightbox__figure { display: grid; justify-items: center; gap: .75rem; min-height: 0; margin: 0; }
 .lightbox__img { max-width: min(92vw, 1600px); max-height: calc(100dvh - 10rem); object-fit: contain; }
 .lightbox__caption { max-width: 60ch; font-style: italic; text-align: center; color: var(--on-ink-muted); }
 .lightbox__count { font-family: var(--ff-label); font-size: var(--fs-label); letter-spacing: .12em; color: var(--on-ink-muted); }
 .lightbox__close { position: absolute; top: .75rem; right: .75rem; }
 .lightbox__prev, .lightbox__next { position: absolute; top: 50%; width: 52px; height: 52px; background: var(--ink-2); transform: translateY(-50%); }
 .lightbox__prev { left: .75rem; }
 .lightbox__next { right: .75rem; }

 @media (max-width: 639px) {
  .lightbox__prev, .lightbox__next { top: auto; bottom: .75rem; transform: none; }
 }
 @media (max-width: 899px) {
  .gallery--row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery--row.gallery--carousel { grid-auto-columns: calc((100% - 1.25rem) / 2); }
  /* duas colunas: a amostra mostra quatro quadros, sem um sozinho na última linha */
  .gallery--quadros .gallery__item:nth-child(5) { display: none; }
  .gallery--carousel .gallery__item:nth-child(5) { display: block; }
 }
 /* no celular sempre duas colunas: uma coluna só ampliaria as fotos mais fracas do acervo */
 @media (max-width: 559px) {
  .gallery, .tour-section .gallery { columns: 2; column-gap: .75rem; }
  .gallery__item { margin-bottom: 1rem; }
  .gallery--row.gallery--carousel { gap: .75rem; grid-auto-columns: calc((100% - .75rem) / 2); }
 }

 /* formulários */
 .field { display: grid; gap: .4rem; }
 .field label { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .02em; }
 .field__req { color: var(--st-soldout); }
 .field input, .field select, .field textarea {
  width: 100%; min-height: 50px; padding: .7rem .85rem;
  border: 1px solid var(--rule); border-radius: 0;
  background: var(--surface); color: var(--fg); font-size: 1rem;
 }
 .field select {
  appearance: none; padding-right: 2.75rem;
  background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23151b17' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .85rem center / 1.1rem;
 }
 .field textarea { min-height: 7.5rem; resize: vertical; }
 .field input:hover, .field select:hover, .field textarea:hover { border-color: var(--fg); }
 .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; border-color: var(--focus); }
 .field [aria-invalid="true"] { border: 2px solid var(--st-soldout); }
 .field__error { font-size: .9375rem; font-weight: 600; color: var(--st-soldout); }
 .field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }

 @media (max-width: 559px) {
  .field-row { grid-template-columns: minmax(0, 1fr); }
 }

 .check { display: flex; align-items: flex-start; gap: .75rem; font-size: .9375rem; color: var(--fg-muted); cursor: pointer; }
 .check input { flex: none; width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--green-600); }
 .form-status { min-height: 1.5em; font-weight: 600; color: var(--accent-text); }

 /* botão flutuante do WhatsApp */
 .wa-float {
  position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 90; display: grid; place-items: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--green-600); color: #fff;
  transition: opacity .25s var(--ease), visibility .25s, background-color .15s;
 }
 .wa-float .icon { width: 28px; height: 28px; }
 .wa-float:hover { background: var(--green-700); }
 .wa-float:focus-visible { outline-color: var(--fg); outline-offset: 3px; }
 .js .wa-float:not(.is-visible) { opacity: 0; visibility: hidden; }
 .page-tour .wa-float { display: none; }
}

@layer sections {
 /* hero: foto de ponta a ponta até 1920 px (a largura real dela: nunca ampliada), título ancorado embaixo */
 .hero { background: var(--ink); }
 /* hero seguido da faixa escura do mapa: o mesmo fio branco na diagonal das páginas (pedido do cliente) */
 .hero:has(+ .section--map) { --corte: clamp(.9rem, 2vw, 2.25rem); --fio: clamp(5px, .55vw, 9px); position: relative; }
 .hero:has(+ .section--map)::before, .hero:has(+ .section--map)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; height: calc(var(--corte) + var(--fio)); pointer-events: none;
 }
 .hero:has(+ .section--map)::before { background: var(--on-ink); clip-path: polygon(0 var(--corte), 100% 0, 100% var(--fio), 0 100%); }
 .hero:has(+ .section--map)::after {
  background: url("/img/identidade/grao.webp") 0 0 / 320px, var(--ink); clip-path: polygon(0 100%, 100% var(--fio), 100% 100%);
 }
 .hero__frame {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr); align-items: end;
  width: 100%; max-width: 1920px; margin-inline: auto;
  min-height: min(calc(100svh - var(--topbar-h)), 920px); color: #fff;
 }
 .hero__media { position: absolute; inset: 0; z-index: -2; }
 .hero__media picture, .hero__media img { width: 100%; height: 100%; }
 .hero__media img { object-fit: cover; }
 /* véu mais escuro à esquerda e embaixo, onde está o texto; a estrada e o céu à direita seguem claros */
 .hero__frame::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(10, 20, 13, .84) 0%, rgba(10, 20, 13, .76) 45%, rgba(10, 20, 13, .38) 72%, rgba(10, 20, 13, .2) 100%),
   linear-gradient(0deg, rgba(10, 20, 13, .5) 0%, rgba(10, 20, 13, 0) 50%);
 }
 /* embaixo, folga para o fio branco diagonal: os botões ficam bem acima dele */
 .hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); padding-block: clamp(6rem, 16vh, 11rem) clamp(5.5rem, 13vh, 9.5rem); }
 .hero__content { max-width: 62rem; }
 .hero__kicker {
  margin-bottom: 1.25rem;
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--yellow);
 }
 .hero__title { font-family: var(--ff-display); font-size: var(--fs-hero); font-weight: 800; line-height: .86; letter-spacing: -.01em; text-transform: uppercase; }
 .hero__line { display: block; }
 /* Long admin title: keep the highlighted phrase together on desktop. */
 @media (min-width: 900px) {
  .hero__inner:has(.hero__title--wide) { width: min(100% - 2 * var(--gutter), 1760px); }
  .hero__content:has(.hero__title--wide) { max-width: 100%; }
  .hero__title--wide { font-size: clamp(3.25rem, 6.4vw, 7.5rem); line-height: 1; }
  .hero__title--wide .hero__line--verde { white-space: nowrap; }
 }
 @media (max-width: 899px) {
  .hero__title--wide { font-size: clamp(2.5rem, 8vw, 4.5rem); line-height: 1; }
 }
 /* "poucos chegam." em verde; a segunda frase menor e fina, em branco suave */
 /* "poucos chegam." no degradê da logo Tagino; a cor de reserva (sem suporte ao recorte) é o tom mais escuro dele */
 .hero__line--verde {
  color: #4fd468;
  background: linear-gradient(180deg, #4fd468 15%, #7cf083 85%); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
 }
 .hero__line--second { margin-top: .22em; font-size: .5em; font-weight: 400; line-height: .95; letter-spacing: .01em; color: rgba(244, 241, 234, .9); }
 .hero__lead { max-width: 38rem; margin-top: 1.75rem; font-size: var(--fs-lead); line-height: 1.5; }
 .hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }
 .hero :focus-visible { outline-color: var(--yellow); }
 /* no celular o texto ocupa a largura toda: véu mais forte por igual, mais escuro embaixo */
 @media (max-width: 899px) {
  .hero__frame::before { background: linear-gradient(0deg, rgba(10, 20, 13, .8) 0%, rgba(10, 20, 13, .72) 60%, rgba(10, 20, 13, .5) 100%); }
 }

 /* seção do mapa da home: curvas de nível presas à janela */
 .section--map::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("/img/curvas-nivel.svg") 0 0 / 720px repeat fixed; opacity: .1;
 }

 /* página Destinos: exceção aprovada pelo cliente (spec 2026-09-24, parte B), confinada a .destino* */
 .destinos { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); color: var(--on-ink); }
 .destinos::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("/img/curvas-nivel.svg") center top / 720px repeat; opacity: .1;
 }
 .destinos::after {
  content: ""; position: absolute; top: -3rem; right: -5rem; z-index: -1;
  width: min(48vw, 620px); aspect-ratio: 795 / 1124;
  background: url("/img/mapa-fundo.webp") center / contain no-repeat; opacity: .16;
 }
 .destinos :focus-visible { outline-color: var(--yellow); }
 .destinos .section-head { border-top: 0; padding-top: 0; }
 .destinos .section-head__title { color: var(--on-ink); }
 .destinos .section-head__title::before { content: ""; display: block; width: 56px; height: 3px; margin-bottom: 1.1rem; background: var(--yellow); }
 .destinos__temas {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem .9rem;
  margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--on-ink-muted);
 }
 .destinos__temas .icon { width: 2rem; height: 2rem; margin-right: .6rem; color: var(--yellow); }
 .destinos__list { display: grid; gap: clamp(4rem, 2.5rem + 5vw, 8rem); }
 .tour-category + .tour-category { margin-top: clamp(5rem, 3rem + 7vw, 10rem); }

 .destino {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter); row-gap: 2rem; align-items: center;
 }
 .destino-card, .destino__text { grid-row: 1; }
 .destino .destino-card { grid-column: 1 / span 4; }
 .destino .destino__text { grid-column: 6 / -1; }
 .destino--flip .destino-card { grid-column: 9 / -1; justify-self: end; }
 .destino--flip .destino__text { grid-column: 1 / span 7; }

 .destino-card {
  position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end;
  width: 100%; max-width: 420px; aspect-ratio: 4 / 5; overflow: hidden;
  border-radius: 10px; border: 1px solid rgba(244, 241, 234, .22); background: var(--ink-2); color: var(--on-ink);
 }
 .destino-card__media { position: absolute; inset: 0; z-index: -2; }
 .destino-card__media picture, .destino-card__media img { width: 100%; height: 100%; }
 .destino-card__media img { object-fit: cover; transition: transform .8s var(--ease); }
 .destino-card::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10, 20, 13, .55) 0%, rgba(10, 20, 13, 0) 20%, rgba(10, 20, 13, 0) 38%, rgba(10, 20, 13, .9) 72%, rgba(10, 20, 13, .97) 100%);
 }
 .destino-card--sem-foto { background: var(--ink-2) url("/img/curvas-nivel.svg") center / 520px; }
 .destino-card__num {
  position: absolute; top: 1.35rem; left: 1.6rem; display: flex; align-items: center; gap: .8rem;
  font-family: var(--ff-label); font-size: 1.0625rem; font-weight: 600; letter-spacing: .06em; color: var(--on-ink);
 }
 .destino-card__num::after { content: ""; width: 28px; height: 2px; background: var(--yellow); }
 .destino-card__body { display: grid; justify-items: start; gap: .55rem; padding: 1.5rem 1.75rem 1.75rem; }
 .destino-card__place {
  display: flex; align-items: center; gap: .65rem;
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase;
 }
 .destino-card__silhueta { width: 1.9rem; height: 1.9rem; flex: none; fill: none; stroke: var(--yellow); stroke-width: 1.5; stroke-linejoin: round; overflow: visible; }
 .destino-card__title { font-family: var(--ff-display); font-size: clamp(1.875rem, 1.35rem + 1.3vw, 2.5rem); font-weight: 800; line-height: .95; text-transform: uppercase; }
 .destino-card__resumo { max-width: 22rem; font-size: 1rem; line-height: 1.45; }
 .destino-card__link {
  display: inline-flex; align-items: center; gap: .75rem; min-height: 36px; margin-top: .6rem; padding-left: .9rem;
  border-left: 3px solid var(--yellow); color: var(--on-ink); text-decoration: none;
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
 }
 /* o link cobre o card inteiro; o anel de foco vai no card */
 .destino-card__link::after { content: ""; position: absolute; inset: 0; z-index: 2; }
 .destino-card__link:focus-visible { outline: 0; }
 .destino-card:has(.destino-card__link:focus-visible) { outline: 2px solid var(--yellow); outline-offset: 4px; }
 .destino-card__link .icon { width: 1.25rem; height: 1.25rem; transition: transform .25s var(--ease); }
 .destino-card:hover .destino-card__media img { transform: scale(1.04); }
 .destino-card:hover .destino-card__link .icon { transform: translateX(5px); }

 .destino__text { display: grid; justify-items: start; gap: 1.15rem; max-width: 38rem; }
 .destino__copy { display: grid; justify-items: start; gap: 1.15rem; min-width: 0; }
 .destino__text--world { position: relative; display: block; isolation: isolate; min-height: clamp(400px, 32vw, 480px); max-width: 46rem; }
 .destino__text--world .destino__copy { position: relative; z-index: 1; width: min(72%, 33rem); padding-block: 2rem; }
 .destino__world-globe { position: absolute; z-index: 0; top: 50%; right: -250px; display: block; width: clamp(460px, 42vw, 660px); max-width: none; height: auto; opacity: .18; transform: translateY(-50%) rotate(-12deg); filter: saturate(.78); pointer-events: none; }
 .destino__subtitle { font-family: var(--ff-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem); font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--yellow); }
 .destino__desc { font-size: var(--fs-lead); line-height: 1.55; }
 .destino__facts { width: 100%; border-top: 1px solid var(--line-ink); }
 .destino__facts > div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; padding-block: .7rem; border-bottom: 1px solid var(--line-ink); }
 .destino__facts dt { padding-top: .15rem; font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-muted); }
 .destino__facts dd { font-weight: 600; }
 .destino__next { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .9rem; }
 .destino__next-label { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-muted); }
 .destino__next-date { font-family: var(--ff-display); font-size: 1.375rem; font-weight: 700; text-transform: uppercase; }
 .destino__next .badge--open, .destino__next .badge--ongoing { color: var(--green-400); }
 .destino__next .badge--few { color: var(--yellow); }
 .destino__next .badge--soldout { color: var(--status-soldout-dark); }
 .destino__next .badge--tbd, .destino__next .badge--past { color: var(--on-ink-muted); }
 .destino__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .25rem; }
 .destino__actions .btn--outline { border-color: var(--on-ink); color: var(--on-ink); }
 .destino__actions .btn--outline:hover { background: var(--on-ink); color: var(--ink); }
 .destino-soon { width: min(100%, 420px); }

 @media (max-width: 899px) {
  .destino { grid-template-columns: minmax(0, 1fr); }
  .destino .destino-card, .destino--flip .destino-card { grid-column: 1; grid-row: 1; justify-self: center; }
  .destino .destino__text, .destino--flip .destino__text { grid-column: 1; grid-row: 2; }
  .destino__text--world { min-height: 360px; max-width: 38rem; }
  .destino__text--world .destino__copy { width: min(78%, 30rem); }
  .destino__world-globe { right: -120px; width: min(66vw, 400px); }
  .destinos__temas { justify-content: flex-start; gap: .4rem .55rem; font-size: .75rem; letter-spacing: .12em; }
  .destinos__temas .icon { width: 1.5rem; height: 1.5rem; margin-right: .2rem; }
  .destino-soon { margin-inline: auto; }
 }
 @media (prefers-reduced-motion: reduce) {
  .destino-card:hover .destino-card__media img { transform: none; }
 }

 /* vitrine de cada destino (spec 2026-09-29-vitrine-destinos): a exceção dos cards estendida a .vitrine*;
    a identidade vem dos dados do destino. Leitura: foto e fatos → rota → destaques → valor, saída e ações */
 .vitrine {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr);
  column-gap: clamp(1.5rem, 3vw, 2.5rem); row-gap: 1.5rem; align-items: start;
 }
 .vitrine > .vitrine__painel, .vitrine__info { grid-row: 1; min-width: 0; }
 .vitrine > .vitrine__painel { grid-column: 1; }
 .vitrine__info { grid-column: 2; }
 .vitrine--flip { grid-template-columns: minmax(0, 6fr) minmax(0, 7fr); }
 .vitrine--flip > .vitrine__painel { grid-column: 2; justify-self: end; }
 .vitrine--flip .vitrine__info { grid-column: 1; }

 /* foto e faixa de fatos num cartão só */
 .vitrine__painel {
  width: 100%; max-width: 640px; overflow: clip;
  border-radius: 14px; border: 1px solid rgba(244, 241, 234, .22); background: var(--ink-2); color: #fff;
 }
 .vitrine__foto {
  position: relative; isolation: isolate; container-type: inline-size;
  display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 6 / 5; overflow: clip;
 }
 .vitrine__foto--sem-foto { background: var(--ink-2) url("/img/curvas-nivel.svg") center / 520px; }
 .vitrine__media { position: absolute; inset: 0; z-index: -2; }
 .vitrine__media picture, .vitrine__media img { width: 100%; height: 100%; }
 .vitrine__media img { object-fit: cover; }
 .vitrine__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: url("/img/identidade/grao.webp") 0 0 / 320px; opacity: .35; }
 .vitrine__media::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(10, 20, 13, .3) 0%, rgba(10, 20, 13, 0) 25%); }
 .vitrine__capa { position: relative; display: grid; justify-items: start; gap: .55rem; padding: clamp(1.25rem, 4.5cqi, 2.25rem); }
 /* véu escuro preso ao texto: cobre a capa inteira, qualquer que seja a altura dela, e some para cima na foto */
 .vitrine__capa::before {
  content: ""; position: absolute; inset: -5rem 0 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10, 20, 13, 0) 0, rgba(10, 20, 13, .84) 5rem, rgba(10, 20, 13, .94) 100%);
 }
 .vitrine__lugar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .65rem; margin: 0;
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
 }
 .vitrine__silhueta { width: 1.9rem; height: 1.9rem; flex: none; fill: none; stroke: var(--yellow); stroke-width: 1.5; stroke-linejoin: round; overflow: visible; }
 .vitrine__regiao { display: inline-flex; align-items: center; gap: .65rem; color: var(--yellow); }
 .vitrine__lugar span + .vitrine__regiao::before { content: ""; width: 18px; height: 2px; background: var(--yellow); }
 .vitrine__titulo {
  position: relative; max-width: 11ch; margin: .2rem 0 0;
  font-family: var(--ff-display); font-size: clamp(2.5rem, 12cqi, 5rem); font-weight: 800; line-height: .86;
  letter-spacing: -.005em; text-transform: uppercase; text-wrap: balance; overflow-wrap: break-word; color: #fff;
 }
 /* pincelada verde atrás da primeira linha, vinda da borda do painel */
 .vitrine__titulo::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: calc(-1 * clamp(1.25rem, 4.5cqi, 2.25rem) - 1px); width: calc(100% + clamp(1.25rem, 4.5cqi, 2.25rem) + .5em);
  top: -.6em; height: 2.05em;
  background: url("/img/identidade/pincel-verde.webp") right center / 100% 100% no-repeat;
 }
 .vitrine__script {
  margin: 0; font-family: "Caveat", cursive; font-weight: 500; font-size: clamp(1.5rem, 5.5cqi, 2.25rem); line-height: 1;
  color: var(--yellow); transform: rotate(-3deg); transform-origin: left center;
 }
 .vitrine__desc { max-width: 38ch; margin: .2rem 0 0; font-size: clamp(.9375rem, 2.6cqi, 1.0625rem); line-height: 1.45; color: #fff; }

 /* fatos: ícone, valor e rótulo, lidos de uma vez */
 /* cada fato ocupa o que o texto pede (o nível, longo, ganha mais largura); valor e rótulo juntos, no meio da altura */
 .vitrine__fatos {
  display: flex; margin: 0; padding: .35rem 0; list-style: none;
  border-top: 1px solid rgba(244, 241, 234, .16);
 }
 .vitrine__fato {
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; align-content: center; column-gap: .65rem; row-gap: .15rem;
  flex: 1 1 auto; min-width: 0; padding: .75rem 1.1rem;
 }
 .vitrine__fato-valor, .vitrine__fato-rotulo { grid-column: 2; }
 /* dias e distância nunca quebram; moto e nível (textos longos) quebram e o nível ganha mais largura */
 .vitrine__fato-valor { white-space: nowrap; }
 .vitrine__fato[data-fato="moto"] .vitrine__fato-valor, .vitrine__fato[data-fato="nivel"] .vitrine__fato-valor { white-space: normal; text-wrap: balance; }
 .vitrine__fato[data-fato="nivel"] { flex: 2 1 12rem; }
 .vitrine__fato + .vitrine__fato { border-left: 1px solid var(--line-ink); }
 .vitrine__fato .icon { grid-column: 1; grid-row: 1 / span 2; width: 1.75rem; height: 1.75rem; color: var(--yellow); }
 .vitrine__fato-valor { font-family: var(--ff-label); font-size: 1rem; font-weight: 700; line-height: 1.2; letter-spacing: .02em; text-transform: uppercase; }
 .vitrine__fato-rotulo { font-family: var(--ff-label); font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--on-ink-muted); }

 /* coluna de informações: cartões com a mesma borda e o mesmo fundo do painel */
 .vitrine__info { container-type: inline-size; display: grid; gap: 1rem; align-content: start; }
 /* texto claro próprio: o cartão também aparece fora da faixa escura (painel do mapa na home) */
 .vitrine__cartao { display: grid; gap: .85rem; padding: 1rem 1.15rem; border-radius: 12px; border: 1px solid var(--line-ink); background: var(--ink-2); color: var(--on-ink); }
 .vitrine__rotulo {
  display: flex; align-items: center; gap: .5rem; margin: 0;
  font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--on-ink-muted);
 }
 .vitrine__rotulo .icon { width: 1.15rem; height: 1.15rem; color: var(--yellow); }
 .vitrine__bloco { display: grid; gap: .75rem; }

 /* mapa do site (sem o print do Google, e nos cartões das coleções) */
 .vitrine__mapa, .vitrine__viagem-mapa {
  --mapa-mar: var(--ink); --mapa-terra: var(--mapa-escuro-terra); --mapa-divisa: var(--mapa-escuro-divisa); --mapa-rio: var(--mapa-escuro-rio);
  position: relative; margin: 0; overflow: hidden; border-radius: 10px; border: 1px solid var(--line-ink); background: var(--mapa-mar);
 }
 .vitrine__mapa { width: min(100%, 16rem); }
 /* print do Google Maps */
 .vitrine__gmap { width: 100%; margin: 0; }
 .vitrine__gmap__link, .route-gmap__link { display: grid; gap: .5rem; color: inherit; text-decoration: none; }
 .vitrine__gmap img { width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--line-ink); }
 .vitrine__gmap__abrir, .route-gmap__abrir {
  display: inline-flex; align-items: center; gap: .4rem; justify-self: end;
  font-family: var(--ff-label); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
 }
 .vitrine__gmap__abrir { color: var(--yellow); }
 .vitrine__gmap__abrir .icon, .route-gmap__abrir .icon { width: 1rem; height: 1rem; }
 .vitrine__gmap__link:hover .vitrine__gmap__abrir, .route-gmap__link:hover .route-gmap__abrir { text-decoration: underline; text-underline-offset: .25em; }
 /* print do Google no cartão da viagem: em pé, cortado ao quadro */
 .vitrine__viagem-mapa--google { aspect-ratio: 4 / 5; }
 .vitrine__viagem-mapa--google picture, .vitrine__viagem-mapa--google img { display: block; width: 100%; height: 100%; }
 .vitrine__viagem-mapa--google img { object-fit: cover; }
 .vitrine__mapa svg, .vitrine__viagem-mapa svg { position: absolute; inset: 0; width: 100%; height: 100%; }
 .vitrine__trecho { fill: none; stroke: var(--yellow); stroke-width: 2.5; stroke-linecap: round; }
 .vitrine__trecho--barco { stroke: var(--on-ink); stroke-width: 2; stroke-dasharray: 6 5; stroke-linecap: butt; }
 .vitrine__pontos, .vitrine__paises { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
 .vitrine__pais {
  position: absolute; transform: translate(-50%, -50%); white-space: nowrap;
  font-family: var(--ff-label); font-size: .6875rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--on-ink-muted);
 }
 .vitrine__ponto { position: absolute; width: 0; height: 0; }
 .vitrine__ponto::before {
  content: ""; position: absolute; left: -4px; top: -4px; width: 8px; height: 8px;
  border-radius: 50%; border: 1.5px solid var(--ink); background: var(--yellow);
 }
 /* início e fim por cima das paradas, com o nome */
 .vitrine__ponto--inicio, .vitrine__ponto--fim { z-index: 1; }
 .vitrine__ponto--inicio::before, .vitrine__ponto--fim::before { left: -7px; top: -7px; width: 14px; height: 14px; border-width: 2px; }
 .vitrine__ponto--fim::before { background: var(--on-ink); border-color: var(--yellow); }
 .vitrine__ponto-nome {
  position: absolute; left: 11px; top: 0; transform: translateY(-50%); white-space: nowrap;
  padding: .1rem .4rem; border-left: 2px solid var(--yellow); background: var(--ink); color: var(--on-ink);
  font-family: var(--ff-label); font-size: .6875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
 }
 .vitrine__ponto--esq .vitrine__ponto-nome { left: auto; right: 11px; border-left: 0; border-right: 2px solid var(--yellow); }
 .vitrine__paradas {
  display: flex; flex-wrap: wrap; gap: .1rem .45rem; margin: 0; padding: 0; list-style: none;
  font-size: .9375rem; line-height: 1.5; color: var(--on-ink-muted);
 }
 .vitrine__parada:not(:last-child)::after { content: "→"; margin-left: .45rem; }
 .vitrine__parada--inicio, .vitrine__parada--fim { font-weight: 600; color: var(--on-ink); }

 /* valor, próxima saída e ações */
 .vitrine__compra { grid-template-columns: minmax(0, 1fr); align-items: center; gap: 1rem; }
 .vitrine__valor, .vitrine__saida { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .75rem; margin: 0; }
 .vitrine__valor .vitrine__rotulo, .vitrine__saida .vitrine__rotulo { flex-basis: 100%; }
 .vitrine__valor strong { font-family: var(--ff-display); font-size: clamp(2rem, 1.6rem + 1.1vw, 2.6rem); font-weight: 800; line-height: 1; color: var(--yellow); }
 .vitrine__valor span:last-child { font-size: .875rem; color: var(--on-ink-muted); }
 .vitrine__saida strong { font-family: var(--ff-display); font-size: 1.375rem; font-weight: 700; text-transform: uppercase; }
 .vitrine__saida-nome { flex-basis: 100%; font-size: .875rem; color: var(--on-ink-muted); }
 .vitrine__saida .badge--open, .vitrine__saida .badge--ongoing { color: var(--green-400); }
 .vitrine__saida .badge--few { color: var(--yellow); }
 .vitrine__saida .badge--soldout { color: var(--status-soldout-dark); }
 .vitrine__saida .badge--tbd, .vitrine__saida .badge--past { color: var(--on-ink-muted); }
 .vitrine__acoes { display: flex; flex-wrap: wrap; gap: .75rem; }
 @container (min-width: 30rem) {
  .vitrine__compra { grid-template-columns: minmax(0, 1fr) auto; column-gap: 1.5rem; }
  .vitrine__compra .vitrine__acoes { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; }
  .vitrine__compra .vitrine__valor { padding-bottom: 1rem; border-bottom: 1px solid var(--line-ink); }
 }
 .vitrine__ver {
  display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 48px; padding: 0 1.4rem;
  background: var(--yellow); color: var(--on-yellow); text-decoration: none;
  font-family: var(--ff-label); font-size: .875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  transition: background-color .2s var(--ease);
 }
 .vitrine__ver .icon { width: 1.25rem; height: 1.25rem; transition: transform .25s var(--ease); }
 .vitrine__ver:hover { background: var(--on-ink); }
 .vitrine__ver:hover .icon { transform: translateX(4px); }
 .vitrine__acoes .btn--outline { border-color: var(--on-ink); color: var(--on-ink); }
 .vitrine__acoes .btn--outline:hover { background: var(--on-ink); color: var(--ink); }

 /* coleções (Amazônia, Tour pelo Mundo): uma viagem por cartão, com foto, mini-mapa e fatos */
 .vitrine__viagens { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
 .vitrine__viagem-link {
  position: relative; display: grid; grid-template-columns: 7rem minmax(0, 1fr) 5.5rem; align-items: center; gap: 1rem;
  padding: .75rem 2.5rem .75rem .75rem; border-radius: 12px; border: 1px solid var(--line-ink); background: var(--ink-2);
  color: var(--on-ink); text-decoration: none; transition: border-color .2s var(--ease);
 }
 .vitrine__viagem-link::after {
  content: "→"; position: absolute; right: .9rem; top: 50%; transform: translateY(-50%);
  font-size: 1.25rem; color: var(--yellow); transition: transform .25s var(--ease);
 }
 .vitrine__viagem-link:hover { border-color: var(--yellow); }
 .vitrine__viagem-link:hover::after { transform: translate(4px, -50%); }
 .vitrine__viagem-link:hover .vitrine__viagem-nome { color: var(--yellow); }
 .vitrine__viagem-foto { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: var(--ink); }
 .vitrine__viagem-foto picture, .vitrine__viagem-foto img { width: 100%; height: 100%; }
 .vitrine__viagem-foto img { object-fit: cover; }
 .vitrine__viagem-texto { display: grid; gap: .3rem; min-width: 0; }
 .vitrine__viagem-nome { font-family: var(--ff-display); font-size: 1.3125rem; font-weight: 700; line-height: 1.05; text-transform: uppercase; transition: color .2s var(--ease); }
 .vitrine__viagem-desc {
  display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  font-size: .8125rem; line-height: 1.4; color: var(--on-ink-muted);
 }
 .vitrine__viagem-fatos { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .15rem 0 0; padding: 0; list-style: none; font-size: .8125rem; }
 .vitrine__viagem-fatos li { display: inline-flex; align-items: center; gap: .35rem; }
 .vitrine__viagem-fatos .icon { width: 1rem; height: 1rem; color: var(--yellow); }
 .vitrine__viagem-mapa { width: 100%; }
 .vitrine__viagem-mapa .vitrine__trecho { stroke-width: 2; }
 .vitrine__viagem-mapa .vitrine__ponto::before { left: -2.5px; top: -2.5px; width: 5px; height: 5px; border-width: 1px; }
 .vitrine__viagem-mapa .vitrine__ponto--inicio::before, .vitrine__viagem-mapa .vitrine__ponto--fim::before { left: -4px; top: -4px; width: 8px; height: 8px; border-width: 1.5px; }

 /* coleção grande: foto com os destinos e a próxima saída ao lado; as viagens em grade embaixo */
 .vitrine--colecao .vitrine__roteiros { grid-column: 1 / -1; grid-row: 2; }
 .vitrine__proximas ol { display: grid; margin: 0; padding: 0; list-style: none; }
 .vitrine__proxima { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--line-ink); }
 .vitrine__proxima:first-child { border-top: 0; padding-top: 0; }
 .vitrine__proxima strong { font-family: var(--ff-display); font-size: 1.1875rem; font-weight: 700; text-transform: uppercase; }
 .vitrine__proxima span { font-size: .9375rem; color: var(--on-ink-muted); }
 .vitrine--colecao .vitrine__viagens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .vitrine__destinos ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; margin: 0; padding: 0; list-style: none; }
 .vitrine__destinos li { position: relative; padding-left: 1.2rem; font-size: .9375rem; line-height: 1.35; }
 .vitrine__destinos li::before { content: ""; position: absolute; left: 0; top: .62em; width: .7rem; height: 2px; background: var(--yellow); }
 /* com bandeira: as bandeiras do lugar no lugar do tracinho */
 .vitrine__destinos li:has(.vitrine__destino-bandeiras) { display: flex; align-items: center; gap: .55rem; padding-left: 0; }
 .vitrine__destinos li:has(.vitrine__destino-bandeiras)::before { content: none; }
 .vitrine__destino-bandeiras { display: inline-flex; gap: 3px; flex: none; }
 .vitrine__destino-bandeiras .bandeira { width: 21px; height: 14px; outline-color: rgba(244, 241, 234, .25); }

 /* desktop: a foto acompanha a leitura da coluna de informações */

 /* vitrine ampla (protótipo, Colômbia): na primeira linha a foto e, na mesma altura, o mapa da rota (print do Google) com os
    destaques ao lado; embaixo a faixa de fotos (sob a foto) e os fatos e o valor (sob a rota) */
 .vitrine--ampla {
  grid-template-columns: minmax(0, 640px) minmax(0, 1fr); grid-template-areas: "foto info" "faixa mais";
  gap: 1rem clamp(1.25rem, 2.5vw, 2rem); align-items: start;
 }
 .vitrine--ampla > .vitrine__painel { grid-area: foto; max-width: none; }
 .vitrine--ampla > .vitrine__ampla-carrossel { grid-area: faixa; }
 .vitrine__ampla-info { grid-area: info; align-self: stretch; display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 1rem; min-width: 0; }
 .vitrine__ampla-mais { grid-area: mais; container-type: inline-size; display: grid; gap: 1rem; min-width: 0; }
 .vitrine__ampla-rota, .vitrine__ampla-dest {
  display: grid; grid-template-rows: auto minmax(0, 1fr); gap: .75rem; min-height: 0; padding: 1rem 1.1rem;
  border-radius: 12px; border: 1px solid var(--line-ink); background: var(--ink-2); color: var(--on-ink);
 }
 /* o mapa ocupa quase todo o cartão: margem menor e o print na proporção do cartão */
 .vitrine__ampla-rota { gap: .6rem; padding: .85rem; }
 .vitrine--ampla .vitrine__gmap img { max-width: 540px; margin-inline: auto; }
 /* sem o print: o mapa do site na largura do cartão, as paradas embaixo em linha */
 .vitrine__ampla-rota > .vitrine__mapa { width: 100%; }
 .vitrine__ampla-rota > .vitrine__paradas { align-self: end; font-size: .875rem; line-height: 1.45; }
 /* lado a lado: o mapa encolhe para caber na altura da foto (não empurra a linha), sem cortar nada do print */
 @media (min-width: 1200px) {
  .vitrine--ampla .vitrine__gmap, .vitrine--ampla .vitrine__gmap__link { height: 100%; min-height: 0; }
  .vitrine--ampla .vitrine__gmap picture { display: flex; justify-content: center; align-items: center; min-height: 0; contain: size; }
  .vitrine--ampla .vitrine__gmap img { width: auto; height: auto; max-width: 100%; max-height: 100%; margin: 0; }
 }
 /* destaques: ícone ao lado do nome, os quatro dividindo a altura do cartão */
 .vitrine__ampla-destaques { display: grid; grid-auto-rows: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: destaque; }
 .vitrine__ampla-destaque {
  display: grid; grid-template-columns: 1.35rem 2.4rem minmax(0, 1fr); align-items: center; gap: .6rem;
  padding-block: .6rem; border-top: 1px solid var(--line-ink); counter-increment: destaque;
 }
 /* número de cada destaque, como as etapas do trajeto */
 .vitrine__ampla-destaque::before {
  content: counter(destaque, decimal-leading-zero);
  font-family: var(--ff-display); font-size: 1.125rem; font-weight: 800; line-height: 1; color: var(--yellow);
 }
 .vitrine__ampla-destaque:first-child { border-top: 0; padding-top: 0; }
 .vitrine__ampla-destaque-icone {
  display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 8px;
  border: 1px solid rgba(245, 197, 24, .4); background: rgba(245, 197, 24, .08);
 }
 .vitrine__ampla-destaque-icone .icon { width: 1.35rem; height: 1.35rem; color: var(--yellow); }
 .vitrine__ampla-destaque-nome { font-family: var(--ff-display); font-size: 1.0625rem; font-weight: 700; line-height: 1.05; text-transform: uppercase; text-wrap: balance; }
 /* fatos num cartão próprio, em linha */
 .vitrine--ampla .vitrine__fatos { border: 1px solid var(--line-ink); border-radius: 12px; background: var(--ink-2); color: var(--on-ink); }
 /* faixa de fotos embaixo da capa: 4 por vez, setas nas pontas */
 .vitrine__ampla-carrossel { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5rem; }
 .vitrine__ampla-faixa {
  display: flex; gap: .5rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
 }
 .vitrine__ampla-faixa::-webkit-scrollbar { display: none; }
 .vitrine__ampla-faixa .gallery__item { flex: 0 0 calc((100% - 1.5rem) / 4); scroll-snap-align: start; }
 .vitrine__ampla-faixa .gallery__btn { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
 .vitrine__ampla-faixa img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 8px; }
 .vitrine__ampla-carrossel .gallery__arrow { color: var(--on-ink); }
 /* abaixo de 1200 px a coluna da direita ficaria estreita para o mapa: tudo empilha */
 @media (max-width: 1199px) {
  .vitrine--ampla { grid-template-columns: minmax(0, 1fr); grid-template-areas: "foto" "faixa" "info" "mais"; }
  /* a foto não passa dos 640 px do quadro (detalhe real); tudo centrado na mesma largura */
  .vitrine--ampla > *, .vitrine--ampla > .vitrine__painel { width: 100%; max-width: 640px; justify-self: center; }
 }
 @media (max-width: 599px) {
  .vitrine__ampla-faixa .gallery__item { flex-basis: calc((100% - 1rem) / 3); }
  .vitrine__ampla-info { grid-template-columns: minmax(0, 1fr); }
 }

 /* painel do mapa da home no padrão da vitrine: foto com os fatos e, embaixo, valor, saída e ações */
 .vitrine--compacta { container-type: inline-size; grid-template-columns: minmax(0, 1fr); gap: 1rem; max-width: 640px; }
 .vitrine--compacta :focus-visible { outline-color: var(--yellow); }
 .vitrine--compacta .vitrine__painel { position: relative; grid-column: 1; grid-row: auto; justify-self: stretch; }
 /* o título é o link e cobre o card inteiro; o anel de foco vai no card */
 .vitrine__link { color: inherit; text-decoration: none; }
 .vitrine__link::after { content: ""; position: absolute; inset: 0; z-index: 2; }
 /* botão para a coleção do destino (Amazônia, Argentina…): por cima do link que cobre o card */
 .vitrine__ver--colecao { position: relative; z-index: 3; margin-top: .5rem; }
 .vitrine__ver--colecao:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
 .vitrine__link:focus-visible { outline: 0; }
 .vitrine__painel:has(.vitrine__link:focus-visible) { outline: 2px solid var(--yellow); outline-offset: 4px; }
 .vitrine__painel:has(.vitrine__link) .vitrine__media img { transition: transform .8s var(--ease); }
 .vitrine__painel:has(.vitrine__link):hover .vitrine__media img { transform: scale(1.04); }
 @media (prefers-reduced-motion: reduce) {
  .vitrine__painel:has(.vitrine__link):hover .vitrine__media img { transform: none; }
 }
 @media (max-width: 1099px) {
  .vitrine__viagem-link { grid-template-columns: 5.5rem minmax(0, 1fr) 4.5rem; gap: .8rem; }
 }
 @media (max-width: 899px) {
  .vitrine, .vitrine--flip { grid-template-columns: minmax(0, 1fr); }
  .vitrine > .vitrine__painel, .vitrine--flip > .vitrine__painel { grid-column: 1; grid-row: 1; justify-self: center; }
  .vitrine .vitrine__info, .vitrine--flip .vitrine__info { grid-column: 1; grid-row: 2; justify-self: center; width: 100%; max-width: 40rem; }
  .vitrine--colecao .vitrine__roteiros { grid-row: 3; justify-self: center; width: 100%; max-width: 40rem; }
  .vitrine--colecao .vitrine__viagens { grid-template-columns: minmax(0, 1fr); }
 }
 /* celular: quadro 4:5, estreito o bastante para a foto não passar do quadro do desktop (SLOTS.vitrine) */
 @media (max-width: 599px) {
  .vitrine .vitrine__painel, .vitrine--flip .vitrine__painel { max-width: 26.5rem; }
  .vitrine__foto { aspect-ratio: 4 / 5; }
  .vitrine__fatos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vitrine__fato:nth-child(odd) { border-left: 0; }
  .vitrine__fato:nth-child(n + 3) { border-top: 1px solid var(--line-ink); }
  .vitrine__fato:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .vitrine__viagem-link { grid-template-columns: 4.5rem minmax(0, 1fr); padding-right: 2.25rem; }
  .vitrine__viagem-mapa { display: none; }
 }
 @media (prefers-reduced-motion: reduce) {
  .vitrine__ver, .vitrine__ver .icon, .vitrine__viagem-link, .vitrine__viagem-link::after, .vitrine__viagem-nome { transition: none; }
  .vitrine__ver:hover .icon { transform: none; }
  .vitrine__viagem-link:hover::after { transform: translateY(-50%); }
 }

 /* calendário: quadro de saídas */
 .section--calendar { background: var(--bg); }
 .calendar { container-type: inline-size; }
 .calendar__bar { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2.5rem; margin-bottom: 2rem; }
 .tabs { display: flex; gap: 2.25rem; }
 .tab {
  position: relative; min-height: 52px; padding: 0; border: 0; border-radius: 0; background: none;
  font-family: var(--ff-display); font-size: 2.25rem; font-weight: 800; line-height: 1; color: var(--st-past);
 }
 .tab:hover { color: var(--fg); }
 .tab[aria-selected="true"] { color: var(--fg); }
 .tab[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--green-600); }
 .filters { display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
 .filter {
  min-height: 44px; padding: 0; border: 0; border-radius: 0; background: none;
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--fg-muted);
 }
 .filter:hover { color: var(--fg); }
 .filter[aria-pressed="true"] { color: var(--fg); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .4em; }
 /* bandeira de cada país e globo no Tour pelo Mundo (pedido do cliente); fio fino para as bandeiras claras no fundo branco */
 .filter:has(.filter__marca) { display: inline-flex; align-items: center; gap: .55rem; }
 .filter__marca { display: inline-flex; gap: 3px; flex: none; }
 .bandeira { width: 21px; height: 14px; outline: 1px solid var(--rule-soft); outline-offset: 0; }
 .globo { width: 20px; height: 20px; }
 .globo__mar { fill: var(--globo-mar); stroke: var(--rule-soft); stroke-width: 1; }
 .globo__terra { fill: var(--globo-terra); }
 .no-js .calendar__bar { display: none; }
 .js .calendar__panel:not(.is-active) { display: none; }
 .js .calendar__year { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
 .calendar__year { margin-bottom: 1rem; font-family: var(--ff-display); font-size: 2rem; font-weight: 800; }
 .no-js .calendar__panel + .calendar__panel { margin-top: 3rem; }
 .events-head, .event {
  display: grid; grid-template-columns: 10rem minmax(0, 1fr) 9rem 11rem 11rem;
  column-gap: 1.5rem; align-items: center;
 }
 .events-head {
  padding-block: .7rem; border-bottom: 2px solid var(--fg);
  font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted);
 }
 .event { padding-block: 1.35rem; border-bottom: 1px solid var(--rule-soft); }
 .event__date { display: grid; }
 .event__day { font-family: var(--ff-display); font-size: 1.75rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
 .event__year { margin-top: .2rem; font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-muted); }
 .event__main { display: grid; justify-items: start; gap: .2rem; }
 .event__title { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 700; line-height: 1.02; text-transform: uppercase; }
 .event__title a { text-decoration: none; }
 .event__title a:hover { color: var(--accent-text); text-decoration: underline; }
 .event__duration { color: var(--fg-muted); }
 .event__cta { justify-self: end; }
 .events-past { margin-top: 1.5rem; }
 .events-past summary { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--ff-label); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); cursor: pointer; }
 .calendar__empty { display: grid; justify-items: start; gap: 1.25rem; padding: clamp(1.5rem, 1rem + 2vw, 2.75rem); background: var(--surface-2); }
 .calendar__empty p { font-size: var(--fs-lead); }
 .calendar__none { padding-block: 1.5rem; color: var(--fg-muted); }

 /* diferenciais: foto vertical + lista editorial */
 .section--reasons { background: var(--bg); padding-top: clamp(4rem, 3rem + 4vw, 7rem); }
 .reasons { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: start; }
 .reasons__media { grid-column: 1 / span 4; max-width: 420px; position: sticky; top: calc(var(--header-h) + 2rem); }
 .reasons__body { grid-column: 6 / -1; }
 .reasons__body .section-head__title { grid-column: 1 / -1; }
 .reasons__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gutter); }
 .reason { padding-block: 1.5rem 2rem; border-top: 1px solid var(--rule); }
 .reason__title { margin-bottom: .6rem; font-family: var(--ff-label); font-size: var(--fs-h3); font-weight: 600; line-height: 1.15; }
 .reason p { color: var(--fg-muted); }

 @media (max-width: 899px) {
  .reasons__media { grid-column: 1 / -1; position: static; width: min(100%, 24rem); margin-bottom: 3rem; }
  .reasons__body { grid-column: 1 / -1; }
 }

 @media (max-width: 599px) {
  .reasons__list { grid-template-columns: minmax(0, 1fr); }
 }

 /* locações: faixa escura, foto contida ao lado do texto */
 .section--rental { padding-block: var(--section-y); background: var(--ink); color: var(--on-ink); }
 .section--rental :focus-visible { outline-color: var(--yellow); }
 .section--rental .section-head__label { color: var(--green-400); }
 .rental { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
 .rental--plain { grid-template-columns: minmax(0, 1fr); }
 .rental__media { max-width: 740px; margin: 0; }
 .rental__media img { width: 100%; height: auto; }
 .rental__text { display: grid; justify-items: start; gap: 1.25rem; max-width: 40rem; }
 .rental__title { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .rental__lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--on-ink-muted); }
 .rental__list { width: 100%; border-bottom: 1px solid var(--line-ink); }
 .rental__list li { padding-block: .65rem; border-top: 1px solid var(--line-ink); font-family: var(--ff-label); font-weight: 600; letter-spacing: .02em; }
 .moto-styles { padding-top: var(--section-y); }
 .moto-styles__title {
  margin-bottom: 2.25rem; padding-top: 1rem; border-top: 2px solid var(--on-ink);
  font-family: var(--ff-display); font-size: clamp(1.875rem, 1.3rem + 1.8vw, 3rem); font-weight: 800; line-height: .95; text-transform: uppercase;
 }
 .moto-styles__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gutter); align-items: end; }
 .moto-style__media { background: var(--ink-2); }
 .moto-style__title { margin-top: 1rem; font-family: var(--ff-label); font-size: 1.25rem; font-weight: 600; line-height: 1.2; }
 .moto-style__note { font-size: .9375rem; color: var(--on-ink-muted); }

 @media (max-width: 899px) {
  .rental { grid-template-columns: minmax(0, 1fr); }

  .moto-styles__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }

 /* galeria */
 .section--gallery { background: var(--bg); }

 /* quem somos */
 .section--about { background: var(--bg); }
 .section--about.section--rental { color: var(--on-ink); }
 .section--about.section--rental .about__head { border-color: var(--on-ink); }
 .section--about.section--rental .about__facts { border-color: var(--line-ink); }
 .section--about.section--rental .about__facts li { border-color: var(--line-ink); }
 .section--about.section--rental .about__facts strong { color: var(--green-400); }
 .about { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); }
 /* com foto: contida em 7 colunas (até 740 px), título e texto ao lado */
 .about__media { max-width: 740px; margin: 0; }
 .about__media img { width: 100%; height: auto; }
 .about--photo { grid-template-rows: auto 1fr; }
 .about--photo .about__media { grid-column: 1 / span 7; grid-row: 1 / span 2; align-self: start; }
 .about--photo .about__head { grid-column: 9 / -1; grid-row: 1; }
 .about--photo .about__text { grid-column: 9 / -1; grid-row: 2; align-content: start; margin-top: 1.75rem; }
 .about--photo .about__title { font-size: clamp(2.25rem, 1.4rem + 2.2vw, 3.5rem); }
 .about--photo .about__text > p:first-child { font-size: var(--fs-lead); }
 .about__head { grid-column: 1 / span 5; padding-top: 1rem; border-top: 2px solid var(--fg); }
 .about__title { margin-top: 1rem; font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .section--about .about__title::after { content: ""; display: block; width: 116px; height: 42px; margin: .55rem 0 0 -.4rem; background: url("/img/identidade/pincel-curto.webp") left center / contain no-repeat; }
 .about__text { grid-column: 7 / -1; display: grid; gap: 1.25rem; font-size: var(--fs-lead); line-height: 1.55; }
 .about__text > p:first-child { font-size: clamp(1.3125rem, 1.15rem + .6vw, 1.625rem); line-height: 1.45; }
 /* um fato por linha, valor numa coluna: nada de separador sobrando no começo da linha quando quebra */
 .about__facts { display: grid; margin-top: .75rem; border-top: 1px solid var(--rule); font-family: var(--ff-label); font-size: 1.0625rem; font-weight: 600; line-height: 1.3; }
 .about__facts li { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1rem; padding-block: .65rem; border-bottom: 1px solid var(--rule-soft); }
 .about__facts strong { color: var(--accent-text); font-weight: 600; }
 @media (max-width: 899px) {
  .about__head, .about__text,
  .about--photo .about__media, .about--photo .about__head, .about--photo .about__text { grid-column: 1 / -1; grid-row: auto; }
  .about--photo .about__media { margin-bottom: 2rem; }
  .about__text { margin-top: 1.75rem; }
 }

 /* contato: faixa escura como as das outras páginas (grão e curvas de nível); canais à esquerda, formulário num painel */
 .section--contact { position: relative; isolation: isolate; overflow: hidden; background: url("/img/identidade/grao.webp") 0 0 / 320px, var(--ink); color: var(--on-ink); }
 .section--contact::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("/img/curvas-nivel.svg") center top / 720px repeat; opacity: .18;
 }
 .contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 1.5rem + 4vw, 6rem); align-items: start; }
 .contact__info { display: grid; justify-items: start; gap: 1.5rem; }
 .contact__title { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .contact__lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--on-ink-muted); }
 .contact-details { width: 100%; }
 .contact-details__row { padding-block: 1.1rem; border-top: 1px solid var(--line-ink); }
 .contact-details__row:first-child { padding-top: 0; border-top: 0; }
 .contact-details dt { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); }
 .contact-details dd { margin-top: .35rem; }
 .contact-details a { font-family: var(--ff-display); font-size: 1.75rem; font-weight: 700; line-height: 1.1; color: var(--on-ink); text-decoration: none; overflow-wrap: anywhere; }
 .contact-details__row--main a { font-size: clamp(2.5rem, 1.7rem + 2.6vw, 3.75rem); font-weight: 800; }
 .contact-details a:hover { color: var(--yellow); text-decoration: underline; text-underline-offset: .15em; }
 .contact-details a:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
 .contact-details address { font-size: 1.0625rem; line-height: 1.55; color: var(--on-ink-muted); }
 .section--contact .btn--outline, .section--contact .contact-form .btn--outline { border-color: var(--on-ink); color: var(--on-ink); }
 .section--contact .btn--outline:hover { background: var(--on-ink); color: var(--ink); }
 .map { width: 100%; }
 .map.is-loaded { aspect-ratio: 16 / 10; border: 1px solid var(--line-ink); }
 .map iframe { display: block; width: 100%; height: 100%; border: 0; }
 /* formulário: placa de vidro escura e translúcida sobre o mapa topográfico (pedido do cliente, 2026-10-03): o mapa aparece
    por trás, desfocado; borda quase invisível, sombra suave e bastante respiro */
 .contact-form {
  display: grid; gap: 1.6rem; padding: clamp(1.75rem, 1rem + 3.5vw, 3.75rem);
  border: 1px solid rgba(244, 241, 234, .12); border-radius: 10px;
  background: rgba(16, 32, 21, .5);
  -webkit-backdrop-filter: blur(10px) saturate(1.2); backdrop-filter: blur(10px) saturate(1.2);
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .7);
 }
 .contact-form__title { font-family: var(--ff-display); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem); font-weight: 800; line-height: 1; text-transform: uppercase; }
 /* a pincelada curta embaixo do título, como nos títulos de seção */
 .contact-form__title::after {
  content: ""; display: block; width: 96px; height: 34px; margin: .4rem 0 -.6rem -.35rem;
  background: url("/img/identidade/pincel-curto.webp") left center / contain no-repeat;
 }
 .section--contact .field { gap: .55rem; }
 .section--contact .field label { color: var(--on-ink-muted); font-family: var(--ff-label); font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; }
 .section--contact .field__req { color: var(--yellow); }
 .section--contact .field-row { gap: 1.5rem; }
 /* campos integrados: um véu escuro leve sobre o vidro, fio claro embaixo mais marcado que as laterais */
 .section--contact .field input, .section--contact .field select, .section--contact .field textarea {
  min-height: 54px; border: 1px solid rgba(244, 241, 234, .1); border-bottom-color: rgba(244, 241, 234, .3);
  background-color: rgba(8, 16, 11, .38); color: var(--on-ink);
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
 }
 .section--contact .field select {
  background: rgba(8, 16, 11, .38) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5c518' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .85rem center / 1.1rem;
 }
 .section--contact .field select option { background: var(--ink); color: var(--on-ink); }
 .section--contact .field input:hover, .section--contact .field select:hover, .section--contact .field textarea:hover { border-color: rgba(244, 241, 234, .22); border-bottom-color: rgba(244, 241, 234, .45); }
 .section--contact .field input:focus-visible, .section--contact .field select:focus-visible, .section--contact .field textarea:focus-visible {
  outline: 0; border-color: rgba(245, 197, 24, .55); border-bottom-color: var(--yellow); background-color: rgba(8, 16, 11, .55);
 }
 .section--contact .field [aria-invalid="true"], .section--contact .field [aria-invalid="true"]:focus-visible { border-color: var(--status-soldout-dark); }
 .section--contact .field__error { color: var(--status-soldout-dark); }
 .section--contact .check { color: var(--on-ink-muted); }
 .section--contact .check input { accent-color: var(--yellow); }
 .section--contact .form-status { color: var(--yellow); }
 .contact-form__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
 .contact-form__actions .btn { flex: 1 1 14rem; }

 @media (max-width: 899px) {
  .contact { grid-template-columns: minmax(0, 1fr); }
 }

 /* faixa final: panorâmica inteira (sem corte) na largura do conteúdo, texto à esquerda e frase à direita */
 .fechamento { padding-block: clamp(2.5rem, 2rem + 3vw, 5rem); background: var(--ink); color: var(--on-ink); border-top: 1px solid var(--line-ink); }
 .fechamento :focus-visible { outline-color: var(--yellow); }
 .fechamento__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
 /* com foto: de ponta a ponta até 1920 px, sem margem em cima e embaixo */
 .fechamento:has(.fechamento__stage) { padding-block: 0; }
 /* faixa baixa (6:1: 320 px a 1920, no mínimo 260): montanhas, sol e o piloto; o título numa linha só */
 .fechamento__stage { position: relative; isolation: isolate; display: grid; align-items: center; width: 100%; max-width: 1920px; margin-inline: auto; aspect-ratio: 6 / 1; min-height: 260px; }
 .fechamento__media { position: absolute; inset: 0; z-index: -1; }
 .fechamento__media picture, .fechamento__media img { width: 100%; height: 100%; }
 .fechamento__media img { object-fit: cover; }
 /* véu: forte à esquerda (rótulo e título sobre a neve) e .5 da metade para a direita (a frase manuscrita, medida >= 4,5:1) */
 .fechamento__media::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(10, 20, 13, .82) 0%, rgba(10, 20, 13, .74) 30%, rgba(10, 20, 13, .5) 55%, rgba(10, 20, 13, .5) 100%);
 }
 .fechamento__text { display: grid; justify-items: start; gap: .6rem; max-width: 58rem; }
 .fechamento__label { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); }
 .fechamento__title { font-family: var(--ff-display); font-size: clamp(2rem, 1rem + 2vw, 3rem); font-weight: 800; line-height: .92; text-transform: uppercase; color: #fff; }
 .fechamento__lead { max-width: 30rem; font-size: 1.0625rem; line-height: 1.5; color: #fff; }
 .fechamento__text .btn { margin-top: .3rem; }
 .fechamento__assinatura {
  font-family: "Caveat", cursive; font-weight: 500; font-size: clamp(1.75rem, .9rem + 1.9vw, 2.75rem);
  line-height: .95; color: var(--yellow);
 }
 /* à direita do piloto, abaixo do sol: a área medida com o véu (>= 4,5:1) */
 .fechamento__media .fechamento__assinatura {
  position: absolute; z-index: 2; right: 2.5%; top: 30%; margin: 0; font-size: clamp(1.5rem, .6rem + 1.5vw, 2.25rem);
  transform: rotate(-7deg); transform-origin: right top;
 }
 /* o traço acompanha a largura da frase sem alargá-la */
 .fechamento__assinatura { position: relative; padding-bottom: .55em; }
 .fechamento__traco { position: absolute; left: 0; bottom: 0; width: 100%; height: .5em; fill: currentColor; }
 .fechamento--plain .fechamento__assinatura { transform: rotate(-4deg); }

 /* abaixo de 1200 px o texto não cabe sobre a foto sem cortá-la: vai para cima, a foto segue inteira */
 @media (max-width: 1199px) {
  .fechamento__stage { display: block; aspect-ratio: auto; }
  .fechamento__content { padding-block: clamp(2.5rem, 2rem + 3vw, 4rem) 1.75rem; }
  .fechamento__text { max-width: none; }
  .fechamento__title, .fechamento__lead { color: var(--on-ink); }
  .fechamento__media { position: relative; z-index: 0; aspect-ratio: var(--ratio); }
  .fechamento__media .fechamento__assinatura { right: 2.5%; font-size: clamp(1.25rem, .6rem + 2.2vw, 2.5rem); }
 }
 /* no celular a faixa 6:1 teria 65 px: vira 3:1, centrada no piloto (foco no manifest); a frase vai para a esquerda */
 @media (max-width: 599px) {
  .fechamento__media { aspect-ratio: 3 / 1; }
  .fechamento__media .fechamento__assinatura { left: 4%; right: auto; top: auto; bottom: 10%; transform: rotate(-6deg); transform-origin: left bottom; }
 }
 @media (max-width: 899px) {
  .fechamento__inner { grid-template-columns: minmax(0, 1fr); }
 }

 /* rodapé escuro: faixa da marca (logo, assinatura, parceiro), colunas e a linha do © (com os créditos das fotos) */
 .site-footer { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); color: var(--on-ink); border-top: 4px solid var(--yellow); }
 .site-footer::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("/img/curvas-nivel.svg") center top / 720px repeat; opacity: .07;
 }
 .site-footer :focus-visible { outline-color: var(--yellow); }
 .site-footer__marca { border-bottom: 1px solid var(--line-ink); }
 .site-footer__marca-inner {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem clamp(1.5rem, 1rem + 3vw, 4rem);
  padding-block: clamp(2rem, 1.5rem + 2vw, 3rem);
 }
 .site-footer__logo { display: inline-block; }
 .site-footer__logo img { width: auto; height: clamp(40px, 2rem + 1.2vw, 52px); }
 .site-footer__tagline {
  position: relative; max-width: 30ch; margin: 0; padding-bottom: 1rem;
  font-family: var(--ff-display); font-size: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); font-weight: 800; line-height: 1;
  text-transform: uppercase; text-wrap: balance; color: var(--on-ink);
 }
 /* traço amarelo curto embaixo, como nos títulos de seção da faixa escura */
 .site-footer__tagline::after { content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 3px; background: var(--yellow); }
 .site-footer__parceiro { display: block; }
 .site-footer__parceiro img { display: block; width: auto; height: clamp(40px, 2rem + 1vw, 50px); }

 .site-footer__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr) minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 2.5rem clamp(1.5rem, 1rem + 2vw, 3rem); padding-block: clamp(2.5rem, 2rem + 2vw, 3.75rem);
 }
 .site-footer__title {
  margin-bottom: 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--line-ink);
  font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--yellow);
 }
 .site-footer__col ul, .site-footer__col ol { display: grid; margin: 0; padding: 0; list-style: none; }
 .site-footer__nav { display: block !important; columns: 2; column-gap: 1.25rem; }
 .site-footer__nav li { break-inside: avoid; }
 /* só o e-mail pode quebrar em qualquer ponto; nomes das páginas ficam inteiros */
 .site-footer__nav a { overflow-wrap: normal; white-space: nowrap; }
 .site-footer__col a { display: inline-flex; align-items: center; gap: .65rem; min-height: 36px; color: var(--on-ink-muted); text-decoration: none; overflow-wrap: anywhere; transition: color .15s var(--ease); }
 .site-footer__col a:hover { color: var(--yellow); }
 .site-footer__col .icon { flex: none; width: 1.1rem; height: 1.1rem; color: var(--on-ink); }
 .site-footer__pais { display: inline-flex; gap: 3px; flex: none; }
 .site-footer__pais .bandeira { width: 22px; height: 15px; }
 .site-footer__pais .globo { width: 18px; height: 18px; margin-inline: 2px; }

 /* próximas saídas: data grande, expedição embaixo */
 .site-footer__saidas li + li { border-top: 1px solid var(--line-ink); }
 .site-footer__saidas a { display: grid !important; gap: .1rem; padding-block: .55rem; }
 .site-footer__saidas strong { font-family: var(--ff-display); font-size: 1.1875rem; font-weight: 700; line-height: 1.1; text-transform: uppercase; color: var(--on-ink); transition: color .15s var(--ease); }
 .site-footer__saidas span { font-size: .875rem; }
 .site-footer__saidas a:hover strong { color: var(--yellow); }
 .site-footer__col .site-footer__mais { margin-top: .5rem; font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--yellow); }
 .site-footer__mais .icon { color: var(--yellow) !important; transition: transform .2s var(--ease); }
 .site-footer__mais:hover .icon { transform: translateX(4px); }

 .site-footer__contato { display: grid; align-content: start; justify-items: start; gap: .6rem; }
 .site-footer__contato .btn { margin-bottom: .35rem; }
 .site-footer__contato .btn .icon { color: currentColor; }
 .site-footer__endereco { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--on-ink-muted); }
 .site-footer__social { display: flex !important; flex-wrap: wrap; gap: .25rem 1.25rem; margin-top: .25rem; }

 .site-footer__bottom { padding-block: 1.1rem; border-top: 1px solid var(--line-ink); color: var(--on-ink-muted); font-size: .8125rem; }
 /* à direita, espaço para o botão flutuante do WhatsApp não cobrir o "Voltar ao topo" */
 .site-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 2rem; padding-right: 5.5rem; }
 .site-footer__copy { margin: 0; }
 .site-footer__creditos { color: inherit; text-decoration: none; }
 .site-footer__creditos:hover { color: var(--on-ink); text-decoration: underline; }
 .site-footer__topo {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 36px; color: var(--on-ink); text-decoration: none;
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
 }
 .site-footer__topo .icon { width: 1rem; height: 1rem; color: var(--yellow); transition: transform .2s var(--ease); }
 .site-footer__topo:hover { color: var(--yellow); }
 .site-footer__topo:hover .icon { transform: translateY(-3px); }

 @media (max-width: 1023px) {
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 }
 @media (max-width: 899px) {
  .site-footer__marca-inner { grid-template-columns: auto auto; justify-content: space-between; }
  .site-footer__tagline { grid-column: 1 / -1; grid-row: 2; }
 }
 @media (max-width: 559px) {
  .site-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .site-footer__bottom-inner { padding-right: 0; }
 }
 @media (prefers-reduced-motion: reduce) {
  .site-footer__mais .icon, .site-footer__topo .icon { transition: none; }
  .site-footer__mais:hover .icon, .site-footer__topo:hover .icon { transform: none; }
 }

 /* página da expedição: o quadro é o mesmo do topo das páginas (ver acima) */
 .breadcrumb { margin-bottom: 1.25rem; }
 .breadcrumb ol { display: flex; flex-wrap: wrap; gap: .4rem; font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .04em; color: #fff; }
 .breadcrumb li + li::before { content: "/"; margin-right: .4rem; }
 .breadcrumb a { text-decoration: none; }
 .breadcrumb a:hover { text-decoration: underline; }
 .tour-hero__place { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); }
 .tour-hero__subtitle { margin-top: .6rem; font-family: var(--ff-display); font-size: clamp(1.5rem, 1.15rem + 1.4vw, 2.5rem); font-weight: 700; line-height: 1; text-transform: uppercase; color: #fff; }
 .tour-hero__lead { max-width: 38rem; margin-top: 1rem; font-size: clamp(1.1875rem, 1.05rem + .5vw, 1.4375rem); line-height: 1.5; color: #fff; }

 .tour-body { background: var(--bg); }
 .tour-layout { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: clamp(2.5rem, 1rem + 5vw, 6rem); align-items: start; padding-block: clamp(3rem, 2rem + 4vw, 6rem); }
 .tour-content { container-type: inline-size; display: grid; gap: clamp(2.5rem, 1.75rem + 2vw, 4rem); min-width: 0; }
 .tour-lead { max-width: 46rem; font-size: clamp(1.3125rem, 1.1rem + .8vw, 1.75rem); line-height: 1.45; }
 .tour-facts { display: flex; flex-wrap: wrap; column-gap: 2rem; border-top: 2px solid var(--fg); }
 .tour-facts__item { flex: 1 1 9rem; padding-block: 1rem 1.1rem; border-bottom: 1px solid var(--rule); }
 .tour-facts__item--text { flex-basis: 18rem; }
 .tour-facts__item--wide { flex-basis: 100%; }
 .tour-facts dt { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
 .tour-facts dd { margin-top: .35rem; font-family: var(--ff-display); font-size: 2rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
 .tour-facts .tour-facts__item--text dd,
 .tour-facts .tour-facts__item--wide dd,
 .tour-facts .tour-facts__item--moto dd { font-family: var(--ff-body); font-size: 1.0625rem; font-weight: 600; line-height: 1.45; text-transform: none; }
 /* ficha da viagem: a moto numa linha própria, com a miniatura do recorte do catálogo */
 .tour-facts__item--moto { flex-basis: 100%; }
 .tour-facts .tour-facts__item--moto dd { display: flex; align-items: center; gap: .9rem; }
 .tour-facts__moto { flex: none; width: 64px; aspect-ratio: 4 / 3; }
 .tour-facts__moto picture, .tour-facts__moto img { display: block; width: 100%; height: 100%; object-fit: contain; }
 /* destaques em lista, um por linha */
 .tour-destaques { margin-top: 1.75rem; }
 .tour-destaques__title { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
 .tour-destaques__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; margin-top: .5rem; }
 .tour-destaques__list li { padding-block: .6rem; border-bottom: 1px solid var(--rule-soft); line-height: 1.4; }
 @media (max-width: 599px) {
  .tour-destaques__list { grid-template-columns: minmax(0, 1fr); }
  .tour-facts__moto { width: 48px; }
 }
 .tour-section { display: grid; gap: 1.5rem; }
 .tour-section__title { padding-top: .9rem; border-top: 2px solid var(--fg); font-family: var(--ff-display); font-size: clamp(2rem, 1.5rem + 1.6vw, 3.25rem); font-weight: 800; line-height: .92; text-transform: uppercase; }
 .events--compact { border-top: 1px solid var(--rule-soft); }
 .events--compact .event {
  grid-template-columns: 9.5rem minmax(0, 1fr) auto auto;
  grid-template-areas: "date main status cta" "date duration status cta";
  row-gap: .15rem;
 }
 .events--compact .event__date { grid-area: date; }
 .events--compact .event__main { grid-area: main; align-self: end; }
 .events--compact .event__duration { grid-area: duration; align-self: start; }
 .events--compact .event__status { grid-area: status; }
 .events--compact .event__cta { grid-area: cta; }
 .itinerary { border-top: 1px solid var(--rule); }
 .itinerary__day details { border-bottom: 1px solid var(--rule); }
 .itinerary__day summary { display: flex; align-items: center; gap: 1rem; min-height: 60px; padding-block: .75rem; list-style: none; cursor: pointer; }
 .itinerary__day summary::-webkit-details-marker { display: none; }
 .itinerary__num { font-family: var(--ff-display); font-size: 1.5rem; font-weight: 800; color: var(--accent-text); }
 .itinerary__title { flex: 1; font-family: var(--ff-label); font-size: 1.1875rem; font-weight: 600; }
 .itinerary__day summary .icon { transition: transform .25s var(--ease); }
 .itinerary__day details[open] summary .icon { transform: rotate(180deg); }
 .itinerary__day details p { padding: 0 0 1.25rem 2.75rem; color: var(--fg-muted); }
 .includes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
 .includes > div { min-width: 0; }
 .includes__title { margin-bottom: .5rem; font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
 .plain-list { border-top: 1px solid var(--rule); }
 /* crédito das fotos de terceiros: legenda da galeria e página /creditos */
 .creditos { max-width: 52rem; }
 .creditos__intro { color: var(--fg-muted); }
 .creditos__lista { margin-top: 2rem; border-top: 1px solid var(--rule); }
 .credito { padding-block: .9rem; border-bottom: 1px solid var(--rule-soft); }
 .credito__foto { font-weight: 600; }
 .credito__onde { font-weight: 400; color: var(--fg-muted); }
 .credito__meta { margin-top: .2rem; font-size: .875rem; color: var(--fg-muted); }
 .credito__meta a { color: var(--accent-text); }
 /* valores da viagem: termo à esquerda, valor na tipografia dos fatos à direita */
 .valores { border-top: 1px solid var(--rule); }
 .valores__item { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; padding-block: .8rem; border-bottom: 1px solid var(--rule-soft); }
 .valores dt { line-height: 1.4; }
 .valores dd { flex: none; font-family: var(--ff-display); font-size: 1.75rem; font-weight: 800; line-height: 1; white-space: nowrap; }
 .plain-list li { padding-block: .6rem; border-bottom: 1px solid var(--rule-soft); }
 .tour-section#incluido .includes__title { padding-top: .75rem; border-top: 1px solid var(--rule); }
 .tour-section#documentos .plain-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); border-top: 0; }
 .tour-section#documentos .plain-list li { padding-block: .8rem; border-top: 1px solid var(--rule); border-bottom: 0; line-height: 1.4; }
 .tour-section .gallery { columns: 3 11rem; }
 @media (max-width: 559px) {
  .tour-section .gallery { columns: 2; column-gap: .75rem; }
 }
 .booking {
  position: sticky; top: calc(var(--header-h) + 1.5rem);
  display: grid; justify-items: start; gap: .75rem; padding: 1.75rem;
  background: var(--surface); border-top: 6px solid var(--green-600);
 }
 .booking__label { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
 .booking__date { font-family: var(--ff-display); font-size: 2.25rem; font-weight: 800; line-height: .95; text-transform: uppercase; }
 .booking .btn { margin-top: .75rem; }
 .booking__link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--accent-text); }
 .booking-bar { display: none; }
 .booking-bar__info { display: grid; min-width: 0; }
 .booking-bar__label { font-family: var(--ff-label); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-muted); }
 .booking-bar__date { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }

 @media (max-width: 1023px) {
  .tour-layout { grid-template-columns: minmax(0, 1fr); }
  .booking { position: static; }
  .booking-bar {
   position: fixed; inset: auto 0 0; z-index: 90;
   display: flex; align-items: center; justify-content: space-between; gap: .75rem;
   padding: .75rem var(--gutter) max(.75rem, env(safe-area-inset-bottom));
   background: var(--ink); color: var(--on-ink); border-top: 1px solid var(--line-ink);
   transition: transform .25s var(--ease);
  }
  .booking-bar :focus-visible { outline-color: var(--yellow); }
  .booking-bar.is-hidden { transform: translateY(110%); }
  .page-tour .site-footer__bottom { padding-bottom: 5.5rem; }
 }

 @media (max-width: 639px) {
  .includes { grid-template-columns: minmax(0, 1fr); }
  .valores__item { flex-direction: column; gap: .35rem; }
  .valores dd { white-space: normal; }
  .tour-section#documentos .plain-list { grid-template-columns: minmax(0, 1fr); }
 }
 @media (max-width: 479px) {
  .destino__text--world { min-height: 310px; }
  .destino__text--world .destino__copy { width: 84%; }
  .destino__world-globe { top: 48%; right: -95px; width: 290px; opacity: .16; }
 }

 /* outras expedições: faixa de fotos em proporção original */
 .section--more { background: var(--bg); }
 .filmstrip { display: flex; gap: var(--gutter); overflow-x: auto; padding-bottom: 1rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
 .tour-tile { flex: none; scroll-snap-align: start; }
 .tour-tile__link { display: grid; gap: 1rem; text-decoration: none; }
 .tour-tile__media { display: block; height: clamp(16rem, 11rem + 14vw, 26rem); overflow: hidden; background: var(--bg); }
 .tour-tile__media picture, .tour-tile__media img { width: 100%; height: 100%; }
 .tour-tile__media img { object-fit: cover; }
 .tour-tile__text { display: grid; gap: .2rem; }
 .tour-tile__name { font-family: var(--ff-display); font-size: 1.875rem; font-weight: 800; line-height: .95; text-transform: uppercase; }
 .tour-tile__meta { color: var(--fg-muted); }
 .tour-tile__link:hover .tour-tile__name { text-decoration: underline; }

 /* quadro de saídas estreito (celular, página da expedição) */
 @container (max-width: 52rem) {
  .events-head { display: none; }
  .event,
  .events--compact .event {
   grid-template-columns: minmax(0, 1fr) auto;
   grid-template-areas: "date status" "main main" "duration duration" "cta cta";
   gap: .5rem 1rem; padding-block: 1.25rem;
  }
  .event__date { grid-area: date; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
  .event__year { margin-top: 0; }
  .event__status { grid-area: status; justify-self: end; }
  .event__main { grid-area: main; align-self: auto; }
  .event__duration { grid-area: duration; align-self: auto; }
  .event__duration:empty { display: none; }
  .event__cta { grid-area: cta; justify-self: stretch; margin-top: .5rem; }
  .event__cta:empty { display: none; }
  .event__cta .btn { width: 100%; }
 }
}

@layer sections {
 /* texto pequeno sobre foto: branco garante contraste mesmo nos trechos claros */
 .hero__kicker { color: #fff; }

 /* topo das páginas e das expedições (identidade "pincel", spec 2026-09-25-identidade-pincel): de ponta a ponta;
    a foto nítida vai até o detalhe real dela e as laterais são a própria foto desfocada e escurecida */
 .masthead, .tour-hero { background: var(--ink); }
 .masthead__frame, .tour-hero__frame {
  --fs-topo: clamp(3rem, 1.4rem + 5.2vw, 7.25rem);
  position: relative; isolation: isolate; overflow: hidden; overflow: clip; display: grid; align-items: end;
  min-height: clamp(480px, 36vw, 660px); background: var(--ink); color: #fff;
 }
 .masthead__fundo, .tour-hero__fundo {
  position: absolute; inset: -60px; z-index: -6;
  background-position: center; background-size: cover; background-repeat: no-repeat;
  filter: blur(28px) brightness(.64) saturate(1.1);
 }
 /* --some: onde a foto começa a sumir embaixo (só nos topos mais altos que a foto; nos outros, não some) */
 .masthead__media, .tour-hero__media {
  /* encostada na borda direita (pedido do cliente): o desfoque fica só à esquerda, sob o véu escuro do texto */
  position: absolute; top: 0; bottom: 0; right: 0; z-index: -5; width: min(100%, var(--foto-max));
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%), linear-gradient(180deg, #000 var(--some, 100%), transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 14%), linear-gradient(180deg, #000 var(--some, 100%), transparent 100%);
  mask-composite: intersect;
 }
 .masthead__media picture, .masthead__media img,
 .tour-hero__media picture, .tour-hero__media img { width: 100%; height: 100%; }
 .masthead__media img, .tour-hero__media img { object-fit: cover; }
 /* véu: escuro à esquerda (onde está o texto) e embaixo; a direita mostra a foto */
 .masthead__frame::before, .tour-hero__frame::before {
  content: ""; position: absolute; inset: 0; z-index: -4;
  background: linear-gradient(90deg, rgba(10, 20, 13, .92) 0%, rgba(10, 20, 13, .84) 40%, rgba(10, 20, 13, .7) 62%, rgba(10, 20, 13, .38) 80%, rgba(10, 20, 13, .16) 100%),
   linear-gradient(0deg, rgba(10, 20, 13, .62) 0%, rgba(10, 20, 13, 0) 45%);
 }
 /* curvas de nível e grão à esquerda; pincelada amarela no canto */
 .masthead__textura, .tour-hero__textura { position: absolute; inset: 0; z-index: -3; pointer-events: none; }
 .masthead__textura::before, .tour-hero__textura::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: min(42vw, 620px);
  background: url("/img/curvas-nivel.svg") left center / 560px; opacity: .22;
  -webkit-mask-image: linear-gradient(90deg, #000 25%, transparent); mask-image: linear-gradient(90deg, #000 25%, transparent);
 }
 .masthead__textura::after, .tour-hero__textura::after { content: ""; position: absolute; inset: 0; background: url("/img/identidade/grao.webp") 0 0 / 320px; opacity: .5; }
 .masthead__frame::after, .tour-hero__frame::after {
  content: ""; position: absolute; right: -3%; bottom: -5%; z-index: -2; width: min(36vw, 600px); aspect-ratio: 1860 / 640;
  background: url("/img/identidade/pincel-amarelo.webp") center / contain no-repeat; pointer-events: none;
 }
 .masthead__text, .tour-hero__text {
  width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto;
  /* embaixo, folga para o fio branco diagonal e a pincelada amarela do canto (o texto fica mais para cima) */
  padding-block: clamp(4.5rem, 3rem + 5vw, 7.5rem) clamp(5.5rem, 3.5rem + 5vw, 9rem);
 }
 /* pincelada verde atrás da primeira linha do título, vinda da borda esquerda (medida no próprio título, em em) */
 .masthead__title, .tour-hero__title { position: relative; }
 .masthead__title::before, .tour-hero__title::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: calc((min(100vw - 2 * var(--gutter), var(--container)) - 100vw) / 2 - 3rem);
  width: calc((100vw - min(100vw - 2 * var(--gutter), var(--container))) / 2 + 3rem + min(6em, 88vw));
  /* a tinta ocupa a metade do meio do arquivo: caixa 2x a linha, centrada nela, e a pincelada passa por cima e por baixo das letras */
  top: -.6em; height: 2.05em;
  background: url("/img/identidade/pincel-verde.webp") right center / 100% 100% no-repeat;
 }
 .masthead :focus-visible, .tour-hero :focus-visible { outline-color: var(--yellow); }
 .masthead__label { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--yellow); }
 .masthead__title, .tour-hero__title {
  max-width: 16ch; margin-top: .6rem; font-family: var(--ff-display); font-size: var(--fs-topo); font-style: italic; font-weight: 800;
  line-height: .84; letter-spacing: -.005em; text-transform: uppercase; text-wrap: balance; color: #fff;
 }
 .masthead__title em, .tour-hero__title em { font-style: inherit; color: var(--yellow); }
 .masthead__lead { max-width: 36rem; margin-top: 1.4rem; font-size: var(--fs-lead); line-height: 1.5; color: #fff; }
 /* sem foto: a mesma faixa escura, com a textura e as pinceladas */
 .masthead--plain .masthead__frame, .tour-hero--plain .tour-hero__frame { min-height: clamp(360px, 28vw, 480px); }

 @media (max-width: 899px) {
  .masthead__frame, .tour-hero__frame { --fs-topo: clamp(2.75rem, 1.6rem + 5vw, 4rem); min-height: 560px; }
  /* no celular o texto ocupa a largura toda: véu forte por igual */
  .masthead__frame::before, .tour-hero__frame::before { background: rgba(10, 20, 13, .74); }
  .masthead__frame::after, .tour-hero__frame::after { width: min(46vw, 300px); bottom: -3%; }
  /* a pincelada amarela fica abaixo do texto, nunca atrás dele */
  .masthead__text, .tour-hero__text { padding-bottom: 7rem; }
 }

 .page-body { padding-block: clamp(3.5rem, 2.5rem + 4vw, 7rem); }

 .more-link {
  display: inline-flex; align-items: center; min-height: 44px;
  font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .35em; color: var(--fg);
 }
 .more-link:hover { color: var(--accent-text); }
 .section--rental .more-link { color: var(--on-ink); }
 .section--rental .more-link:hover { color: var(--yellow); }
 .rental__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }

 /* índice de expedições (home) */
 .tour-index { border-top: 2px solid var(--fg); }
 .tour-index__row { border-bottom: 1px solid var(--rule); }
 .tour-index__link {
  display: grid; grid-template-columns: 22rem minmax(0, 1fr) 10rem auto;
  align-items: center; gap: var(--gutter); padding-block: 1.5rem; text-decoration: none;
 }
 .tour-index__media { display: block; height: 11rem; max-width: 100%; overflow: hidden; background: var(--bg); }
 .tour-index__media picture, .tour-index__media img { width: 100%; height: 100%; }
 .tour-index__media img { object-fit: cover; transition: opacity .2s var(--ease); }
 .tour-index__text { display: grid; justify-items: start; gap: .3rem; }
 .tour-index__name { font-family: var(--ff-display); font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .tour-index__subtitle { font-family: var(--ff-display); font-size: 1.375rem; font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--fg-muted); }
 .tour-index__meta { font-weight: 600; color: var(--fg-muted); }
 .tour-index__cta { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .35em; }
 .tour-index__link:hover .tour-index__name { text-decoration: underline; text-decoration-thickness: 3px; }
 .tour-index__link:hover img { opacity: .85; }

 @media (max-width: 899px) {
  .tour-index__link { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .tour-index__media { height: 12rem; }
  .tour-index__cta { display: none; }
 }

 /* depoimentos */
 .section--testimonials { background: var(--bg); }
 .testimonials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.5rem, 1.5rem + 3vw, 4rem) var(--gutter); }
 .testimonials--teaser { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .testimonial__figure { display: grid; gap: 1rem; margin: 0; }
 .video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ink); }
 .video__link { display: block; width: 100%; height: 100%; }
 .video picture, .video img, .video iframe { display: block; width: 100%; height: 100%; border: 0; }
 .video img { object-fit: cover; transition: opacity .2s var(--ease); }
 .video__link:hover img { opacity: .82; }
 .video__link:focus-visible { outline: 3px solid var(--yellow); outline-offset: -3px; }
 .video__play { position: absolute; left: 0; bottom: 0; display: grid; place-items: center; width: 64px; height: 64px; background: var(--green-600); color: #fff; transition: background-color .15s var(--ease); }
 .video__play .icon { width: 30px; height: 30px; }
 .video__link:hover .video__play { background: var(--green-700); }
 .testimonial__quote { margin: 0; font-size: var(--fs-lead); line-height: 1.5; }
 .testimonial__author { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; padding-top: .75rem; border-top: 1px solid var(--rule); }
 .testimonial__name { font-family: var(--ff-display); font-size: 1.875rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
 .testimonial__city, .testimonial__date { color: var(--fg-muted); }
 .testimonial__trip { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-text); }
 .testimonials-empty { display: grid; justify-items: start; gap: 1.25rem; padding: clamp(1.75rem, 1.2rem + 2.5vw, 3.5rem); background: var(--surface-2); }
 .testimonials-empty__text { font-family: var(--ff-display); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem); font-weight: 800; line-height: .95; text-transform: uppercase; }
 .testimonials-empty__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

 @media (max-width: 899px) {
  .testimonials, .testimonials--teaser { grid-template-columns: minmax(0, 1fr); }
 }

 /* páginas de locações e quem somos */
 .rental-page { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gutter); align-items: start; }
 .rental-page .rental__list { border-color: var(--rule); }
 .rental-page .rental__list li { border-color: var(--rule); font-size: 1.25rem; }
 .rental-page__cta { display: grid; justify-items: start; gap: 1.25rem; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); background: var(--surface); border-top: 6px solid var(--green-600); }
 .rental-page__cta p { font-size: var(--fs-lead); }
 .section--styles { padding-block: 0 var(--section-y); }
 .about--page { padding-top: 0; }
 .about--page .about__text { grid-column: 3 / span 8; }

 @media (max-width: 899px) {
  .rental-page { grid-template-columns: minmax(0, 1fr); }
  .about--page .about__text { grid-column: 1 / -1; margin-top: 0; }
 }

 /* nossa história: linha do tempo sobre a faixa escura com curvas de nível, igual a /expedicoes, nas duas versões */
 /* clip, não hidden: hidden cria contêiner de rolagem e o view() do trilho deixaria de seguir a página
    (hidden antes é só para navegador sem clip, que também não tem view()) */
 .historia { --trilho: clamp(1.75rem, 1rem + 2.5vw, 4rem); position: relative; isolation: isolate; overflow: hidden; overflow: clip; padding-block: var(--section-y); background: var(--ink); color: var(--on-ink); }
 .historia::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("/img/curvas-nivel.svg") center top / 720px repeat; opacity: .1;
 }
 .historia::after {
  content: ""; position: absolute; top: -3rem; right: -5rem; z-index: -1;
  width: min(48vw, 620px); aspect-ratio: 795 / 1124;
  background: url("/img/mapa-fundo.webp") center / contain no-repeat; opacity: .14;
 }
 .historia :focus-visible { outline-color: var(--yellow); }
 /* prévia na home: a mesma linha do tempo, compacta — ano e foto menores, só rótulo e título (pedido do cliente) */
 .historia__cabeca { margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4rem); }
 .historia--resumo .historia__linha { gap: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
 .historia--resumo .capitulo { row-gap: 1.25rem; }
 .historia--resumo .capitulo__ano { font-size: clamp(3rem, 1.75rem + 4.5vw, 5.75rem); }
 .historia--resumo .capitulo__foto { max-width: 320px; }
 .historia--resumo .capitulo__title { font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem); }
 .historia__mais { margin-top: clamp(2.5rem, 1.5rem + 3vw, 4rem); padding-left: var(--trilho); }
 .historia__linha { position: relative; display: grid; gap: clamp(5rem, 3rem + 6vw, 10rem); padding-left: var(--trilho); }
 .historia__linha::before, .historia__linha::after { content: ""; position: absolute; left: 0; top: 2.2rem; bottom: 0; width: 2px; background: var(--line-ink); }
 /* a linha se enche de amarelo com a rolagem; sem suporte ou com movimento reduzido, fica só o trilho */
 .historia__linha::after { background: var(--yellow); transform-origin: top; transform: scaleY(0); }
 @supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
   .historia__linha::after { animation: historia-linha linear both; animation-timeline: view(); animation-range: entry 30% exit 70%; }
  }
 }
 @supports not (animation-timeline: view()) {
  .historia__linha::after { content: none; }
 }

 .capitulo {
  position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter); row-gap: clamp(2rem, 1.25rem + 2.5vw, 3.5rem); align-items: center;
 }
 .capitulo::before { content: ""; position: absolute; top: 1.95rem; left: calc(-1 * var(--trilho) - 6px); width: 14px; height: 14px; background: var(--yellow); }
 .capitulo__marco { grid-column: 1 / -1; display: flex; align-items: flex-end; gap: clamp(1rem, .5rem + 1.5vw, 2rem); }
 .capitulo__marco::after { content: ""; flex: 1; height: 1px; margin-bottom: .9rem; background: var(--line-ink); }
 .capitulo__ano { font-family: var(--ff-display); font-size: clamp(4.25rem, 2rem + 8vw, 10rem); font-weight: 800; line-height: .78; letter-spacing: -.01em; color: var(--yellow); }
 .capitulo__num { padding-bottom: .55rem; font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .2em; color: var(--on-ink-muted); }
 .capitulo__foto { grid-row: 2; grid-column: 1 / span 6; justify-self: end; width: 100%; max-width: 480px; aspect-ratio: 4 / 5; overflow: hidden; }
 .capitulo__foto picture, .capitulo__foto img { width: 100%; height: 100%; }
 .capitulo__foto img { object-fit: cover; }
 .capitulo__texto { grid-row: 2; grid-column: 7 / -1; display: grid; justify-items: start; gap: 1.15rem; max-width: 36rem; }
 .capitulo--inverso .capitulo__foto { grid-column: 7 / -1; justify-self: start; }
 .capitulo--inverso .capitulo__texto { grid-column: 1 / span 6; justify-self: end; }
 .capitulo--sem-foto .capitulo__texto { grid-column: 1 / span 8; justify-self: start; }
 .capitulo__texto > .capitulo__label { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--on-ink-muted); }
 .capitulo__sep { color: var(--yellow); }
 .capitulo__title { font-family: var(--ff-display); font-size: clamp(2.25rem, 1.35rem + 2.8vw, 3.875rem); font-weight: 800; line-height: .92; text-transform: uppercase; }
 .capitulo__title::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 1.25rem; background: var(--yellow); }
 .capitulo__texto > p { font-size: var(--fs-lead); line-height: 1.55; }
 .capitulo__marcos { width: 100%; margin-top: .5rem; border-top: 1px solid var(--line-ink); }
 .capitulo__marcos > div { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; padding-block: .75rem; border-bottom: 1px solid var(--line-ink); }
 .capitulo__marcos dt { padding-top: .2rem; font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-muted); }
 .capitulo__marcos dd { font-family: var(--ff-display); font-size: 1.5rem; font-weight: 700; line-height: 1.1; text-transform: uppercase; }
 .capitulo__texto > .capitulo__assinatura { font-family: var(--ff-label); font-size: .9375rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--yellow); }
 .capitulo__acoes { margin-top: .5rem; }
 .capitulo__acoes .btn--outline { border-color: var(--on-ink); color: var(--on-ink); }
 .capitulo__acoes .btn--outline:hover { background: var(--on-ink); color: var(--ink); }

 @media (max-width: 899px) {
  .historia::after { width: 70vw; right: -30vw; }
  .capitulo { grid-template-columns: minmax(0, 1fr); }
  .capitulo__foto, .capitulo--inverso .capitulo__foto { grid-row: 2; grid-column: 1; justify-self: start; }
  .capitulo__texto, .capitulo--inverso .capitulo__texto, .capitulo--sem-foto .capitulo__texto { grid-row: 3; grid-column: 1; justify-self: start; }
  .capitulo--sem-foto .capitulo__texto { grid-row: 2; }
  .capitulo__marcos > div { grid-template-columns: 8.5rem minmax(0, 1fr); }
  .capitulo__marcos dd { font-size: 1.25rem; }
 }
 @keyframes historia-linha { to { transform: scaleY(1); } }

 /* catálogo de motos (/locacoes): palco escuro com curvas de nível, uma moto por vez; sem JavaScript, uma embaixo da outra */
 .catalogo { position: relative; isolation: isolate; overflow: hidden; overflow: clip; padding-block: var(--section-y); background: var(--ink); color: var(--on-ink); }
 .catalogo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("/img/curvas-nivel.svg") center top / 720px repeat; opacity: .1;
 }
 .catalogo :focus-visible { outline-color: var(--yellow); }
 .catalogo__label { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--yellow); }
 .catalogo__title { margin-top: .6rem; font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .catalogo__title::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 1.25rem; background: var(--yellow); }
 /* dois grupos no mesmo palco escuro: motos para locação e motos usadas nos passeios */
 .catalogo__grupo + .catalogo__grupo { margin-top: var(--section-y); }
 .catalogo__nota { max-width: 36rem; margin-top: 1.25rem; font-size: var(--fs-lead); line-height: 1.5; color: var(--on-ink-muted); }
 .catalogo__slides { display: grid; gap: clamp(3rem, 2rem + 4vw, 6rem); margin-top: clamp(2rem, 1rem + 3vw, 4rem); }
 .moto { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); align-items: end; }
 /* número do modelo em contorno, atrás da moto (decorativo) */
 .moto__numeral {
  position: absolute; top: -1rem; left: 0; z-index: -1;
  font-family: var(--ff-display); font-size: clamp(8rem, 4rem + 14vw, 19rem); font-weight: 800; line-height: .8; letter-spacing: -.02em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(245, 197, 24, .38);
 }
 .moto__foto { grid-column: 1 / span 7; aspect-ratio: 4 / 3; max-width: 720px; border-bottom: 1px solid var(--line-ink); }
 .moto__foto picture, .moto__foto img { width: 100%; height: 100%; }
 .moto__foto img { object-fit: contain; object-position: 50% 100%; user-select: none; -webkit-user-drag: none; }
 .moto__texto { grid-column: 8 / -1; display: grid; justify-items: start; gap: 1rem; padding-bottom: 2.5rem; }
 .moto__cat { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--on-ink-muted); }
 .moto__nome { font-family: var(--ff-display); font-size: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); font-weight: 800; line-height: .88; text-transform: uppercase; }
 .moto__marca { display: block; font-size: .42em; letter-spacing: .12em; color: var(--yellow); }
 .moto__preco { font-family: var(--ff-display); font-size: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem); font-weight: 800; line-height: 1; color: var(--yellow); }
 .moto__desc { max-width: 30rem; font-size: var(--fs-lead); line-height: 1.55; }
 /* motos dos passeios: os passeios em que cada uma é usada (no lugar da descrição) */
 .moto__passeios { display: grid; gap: .6rem; width: 100%; max-width: 30rem; }
 .moto__passeios-rotulo { font-family: var(--ff-label); font-size: var(--fs-label); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--on-ink-muted); }
 .moto__passeios ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem 1.5rem; margin: 0; padding: 0; list-style: none; }
 .moto__passeios li { position: relative; padding-left: 1.2rem; font-size: 1rem; line-height: 1.35; }
 .moto__passeios li::before { content: ""; position: absolute; left: 0; top: .65em; width: .7rem; height: 2px; background: var(--yellow); }
 .moto__passeios a { color: var(--on-ink); text-decoration: none; }
 .moto__passeios a:hover { color: var(--yellow); text-decoration: underline; text-underline-offset: .2em; }
 .moto__passeios a:focus-visible { outline: 2px solid var(--yellow); outline-offset: 2px; }
 .catalogo__nav { display: flex; align-items: stretch; justify-content: space-between; gap: 1.5rem; margin-top: 1.75rem; }
 .catalogo__lista { flex: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
 .catalogo__tab {
  display: grid; justify-items: start; align-content: start; gap: .35rem; min-height: 48px; padding: 1rem 1rem 0 0;
  border: 0; border-top: 2px solid var(--line-ink); background: none; color: var(--on-ink-muted); text-align: left;
  font-family: var(--ff-display); font-size: 1.375rem; font-weight: 700; line-height: 1; text-transform: uppercase;
  transition: color .2s var(--ease), border-color .2s var(--ease);
 }
 .catalogo__tab-num { font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .2em; }
 .catalogo__tab:hover { color: var(--on-ink); }
 .catalogo__tab[aria-selected="true"] { color: var(--on-ink); border-top-color: var(--yellow); }
 .catalogo__setas { display: flex; align-self: end; gap: .5rem; }
 .catalogo__seta { display: grid; place-items: center; width: 48px; height: 48px; border: 2px solid var(--on-ink); background: none; color: var(--on-ink); }
 .catalogo__seta:hover { background: var(--on-ink); color: var(--ink); }

 /* com JavaScript: as motos se empilham no mesmo palco e só a escolhida aparece */
 .catalogo--ativo .catalogo__slides { gap: 0; touch-action: pan-y pinch-zoom; }
 .catalogo--ativo .moto { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility 0s linear .3s; }
 .catalogo--ativo .moto.is-active { opacity: 1; visibility: visible; transition: opacity .3s ease; }
 /* antes de a seção aparecer na tela, a primeira moto espera para entrar (só com movimento liberado) */
 .catalogo__grupo.will-enter .moto.is-active .moto__foto img,
 .catalogo__grupo.will-enter .moto.is-active .moto__numeral,
 .catalogo__grupo.will-enter .moto.is-active .moto__texto > * { opacity: 0; }
 /* cada moto entra do seu jeito: do lado para onde está virada, crescendo ou ágil; o texto sobe em sequência */
 .catalogo__grupo.is-visible .moto.is-active .moto__foto img { animation: .95s var(--ease) both; }
 .catalogo__grupo.is-visible .moto.is-active[data-entrada="esquerda"] .moto__foto img { animation-name: moto-esquerda; }
 .catalogo__grupo.is-visible .moto.is-active[data-entrada="direita"] .moto__foto img { animation-name: moto-direita; }
 .catalogo__grupo.is-visible .moto.is-active[data-entrada="expandir"] .moto__foto img { animation-name: moto-expandir; }
 .catalogo__grupo.is-visible .moto.is-active[data-entrada="agil"] .moto__foto img { animation-name: moto-agil; animation-duration: .8s; }
 .catalogo__grupo.is-visible .moto.is-active .moto__numeral { animation: moto-numeral 1.1s var(--ease) both; }
 .catalogo__grupo.is-visible .moto.is-active .moto__texto > * { animation: moto-texto .6s var(--ease) both; }
 .catalogo__grupo.is-visible .moto.is-active .moto__texto > :nth-child(2) { animation-delay: .08s; }
 .catalogo__grupo.is-visible .moto.is-active .moto__texto > :nth-child(3) { animation-delay: .16s; }
 .catalogo__grupo.is-visible .moto.is-active .moto__texto > :nth-child(4) { animation-delay: .24s; }
 .catalogo__grupo.is-visible .moto.is-active .moto__texto > :nth-child(5) { animation-delay: .32s; }
 @keyframes moto-esquerda { from { opacity: 0; transform: translateX(-16%); } }
 @keyframes moto-direita { from { opacity: 0; transform: translateX(16%); } }
 @keyframes moto-expandir { from { opacity: 0; transform: scale(.84); } }
 @keyframes moto-agil { from { opacity: 0; transform: translateX(-20%) rotate(-3deg); } 70% { opacity: 1; transform: translateX(1.5%) rotate(.6deg); } }
 @keyframes moto-numeral { from { opacity: 0; transform: translateY(8%); } }
 @keyframes moto-texto { from { opacity: 0; transform: translateY(14px); } }

 @media (max-width: 899px) {
  .moto { grid-template-columns: minmax(0, 1fr); row-gap: 1.5rem; }
  .moto__foto, .moto__texto { grid-column: 1; }
  .moto__texto { padding-bottom: 0; }
  .catalogo__nav { flex-direction: column; }
  .catalogo__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1rem; }
  .catalogo__tab { font-size: 1.125rem; }
 }

 /* identidade "pincel" nas seções (spec 2026-09-25-identidade-pincel): detalhes; o impacto fica com o hero e os topos */
 /* hero da home: título itálico, pincelada verde atrás de "Rode onde", amarela no canto, grão */
 .hero__title { position: relative; }
 .hero__title::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: calc((min(100vw - 2 * var(--gutter), var(--container)) - 100vw) / 2 - 3rem);
  width: calc((100vw - min(100vw - 2 * var(--gutter), var(--container))) / 2 + 3rem + min(4.6em, 88vw));
  top: -.58em; height: 2em;
  background: url("/img/identidade/pincel-verde.webp") right center / 100% 100% no-repeat;
 }
 .hero__frame::after {
  content: ""; position: absolute; right: -3%; bottom: -4%; z-index: -1; width: min(34vw, 600px); aspect-ratio: 1860 / 640;
  background: url("/img/identidade/pincel-amarelo.webp") center / contain no-repeat; pointer-events: none;
 }
 .hero__media::after { content: ""; position: absolute; inset: 0; background: url("/img/identidade/grao.webp") 0 0 / 320px; opacity: .4; }

 /* faixas escuras: corte diagonal no topo e grão leve */
 .catalogo, .destinos, .historia, .section--rental {
  --corte: clamp(1.5rem, 3.5vw, 4rem);
  clip-path: polygon(0 var(--corte), 100% 0, 100% 100%, 0 100%);
  padding-top: calc(var(--section-y) + var(--corte));
  background: url("/img/identidade/grao.webp") 0 0 / 320px, var(--ink);
 }
 /* logo depois do topo (também escuro) o corte mostraria uma cunha do fundo da página entre os dois */
 .masthead + .destinos, .masthead + .historia { clip-path: none; padding-top: var(--section-y); }
 /* topo seguido de faixa escura: um fio branco na diagonal separa os dois (pedido do cliente: respiro); embaixo do fio, a
    faixa escura sobe pelo canto do topo, como o corte das outras faixas */
 .masthead:has(+ .destinos, + .historia, + .section--contact) { --corte: clamp(.9rem, 2vw, 2.25rem); --fio: clamp(5px, .55vw, 9px); position: relative; }
 .masthead:has(+ .destinos, + .historia, + .section--contact)::before,
 .masthead:has(+ .destinos, + .historia, + .section--contact)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; height: calc(var(--corte) + var(--fio)); pointer-events: none;
 }
 /* desktop: o topo de toda página ocupa a primeira tela inteira (o conteúdo, e o fio branco, começam logo abaixo da dobra) */
 @media (min-width: 900px) {
  .masthead__frame { min-height: max(clamp(480px, 36vw, 660px), calc(100svh - var(--topbar-h) + 4rem)); }
  /* topo mais alto que a foto: a foto nítida vai só até a altura real dela (nunca ampliada) e some embaixo na desfocada */
  .masthead__media { bottom: auto; height: min(100%, var(--foto-alt, 100%)); --some: 78%; }
 }
 .masthead:has(+ .destinos, + .historia, + .section--contact)::before {
  background: var(--on-ink); clip-path: polygon(0 var(--corte), 100% 0, 100% var(--fio), 0 100%);
 }
 .masthead:has(+ .destinos, + .historia, + .section--contact)::after {
  background: url("/img/identidade/grao.webp") 0 0 / 320px, var(--ink); clip-path: polygon(0 100%, 100% var(--fio), 100% 100%);
 }

 /* títulos de seção: o fio amarelo vira uma pincelada curta */
 .section-head__title::after, .rental__title::after {
  content: ""; display: block; width: 116px; height: 42px; margin: .55rem 0 0 -.4rem;
  background: url("/img/identidade/pincel-curto.webp") left center / contain no-repeat;
 }
 .destinos .section-head__title::after { content: none; }
 .destinos .section-head__title::before, .catalogo__title::after, .capitulo__title::after {
  width: 116px; height: 42px; background: url("/img/identidade/pincel-curto.webp") left center / contain no-repeat;
 }
 .destinos .section-head__title::before { margin: 0 0 .6rem -.4rem; }
 .catalogo__title::after, .capitulo__title::after { margin: .55rem 0 0 -.4rem; }
 /* motos disponíveis: pincelada verde atrás do título, vinda da borda */
 .catalogo__title { position: relative; }
 .catalogo__title::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: calc((min(100vw - 2 * var(--gutter), var(--container)) - 100vw) / 2 - 3rem);
  width: calc((100vw - min(100vw - 2 * var(--gutter), var(--container))) / 2 + 3rem + 5.6em); top: -.55em; height: 2em;
  background: url("/img/identidade/pincel-verde.webp") right center / 100% 100% no-repeat;
 }

 /* faixa final (CTA): título itálico com a pincelada verde atrás da primeira linha, grão sobre a foto */
 .fechamento__text { position: relative; z-index: 1; }
 .fechamento__title { position: relative; font-style: italic; }
 .fechamento__title::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: calc((min(100vw - 2 * var(--gutter), var(--container)) - 100vw) / 2 - 3rem);
  width: calc((100vw - min(100vw - 2 * var(--gutter), var(--container))) / 2 + 3rem + min(8.4em, 88vw));
  top: -.72em; height: 2.4em;
  background: url("/img/identidade/pincel-verde.webp") right center / 100% 100% no-repeat;
 }
 .fechamento__media::after { content: ""; position: absolute; inset: 0; z-index: 1; background: url("/img/identidade/grao.webp") 0 0 / 320px; opacity: .35; pointer-events: none; }
}


@layer utilities {
 @media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
   animation-duration: .01ms !important;
   animation-iteration-count: 1 !important;
   transition-duration: .01ms !important;
  }
 }
}

@layer sections {
 /* destinos mais procurados: mapa com pinos e painel da expedição ativa */
 /* home: faixa escura como a de Destinos (grão e curvas de nível), onde os cards da vitrine moram; continua a faixa abaixo do
    hero sem corte (as duas são escuras) e o calendário vem logo depois, sem vazio */
 .section--map {
  position: relative; isolation: isolate; overflow: hidden; color: var(--on-ink);
  padding-block: clamp(2.5rem, 2rem + 2.5vw, 4.5rem) clamp(3rem, 2rem + 3vw, 5rem);
  background: url("/img/identidade/grao.webp") 0 0 / 320px, var(--ink);
 }
 .section--map :focus-visible { outline-color: var(--yellow); }
 /* título como na página Destinos: sem fio em cima, traço amarelo curto */
 .section--map .section-head { border-top: 0; padding-top: 0; }
 .section--map .section-head__title::before { content: ""; display: block; width: 56px; height: 3px; margin-bottom: 1.1rem; background: var(--yellow); }
 .section--map .section-head__title { color: var(--on-ink); }
 .section--map .section-head__label { color: var(--green-400); }
 .section--map .section-head__lead { color: var(--on-ink-muted); }
 .section--map .more-link { color: var(--on-ink); }
 .section--map .more-link:hover { color: var(--yellow); }
 .section--map + .section { padding-top: clamp(3rem, 2rem + 3vw, 5rem); }
 /* home: calendário e depoimentos (duas seções claras seguidas) mais próximos */
 .page-home .section--calendar { padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }
 .page-home .section--calendar + .section { padding-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
 .map-destinos {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
  gap: clamp(2rem, 1rem + 4vw, 5rem);
  /* topo alinhado: o traço sai do pino quase na horizontal, sem cruzar o continente */
  align-items: start;
 }
 /* a moldura carrega a proporção do arquivo: é o sistema de coordenadas dos pinos */
 .map-destinos__stage { position: relative; width: 100%; }
 .map-destinos__stage > picture { display: block; width: 100%; height: 100%; }
 .map-destinos__stage img { width: 100%; height: 100%; object-fit: contain; }
 .map-destinos__link { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
 .map-destinos__link path { fill: none; stroke: var(--yellow); stroke-width: 2; }
 .map-destinos__pins { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
 .map-pin-slot { position: absolute; width: 0; height: 0; }
 .map-pin {
  position: absolute; left: 0; top: 0; transform: translate(-50%, -50%);
  display: grid; place-items: center; width: 44px; height: 44px;
  text-decoration: none;
 }
 .map-pin__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--ink); border: 2px solid #fff; }
 /* placa branca sob o rótulo: leitura garantida sobre qualquer cor do relevo */
 .map-pin__label {
  position: absolute; left: calc(50% + 14px); white-space: nowrap;
  padding: .15rem .4rem; background: #fff; color: var(--ink);
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-bottom: 2px solid transparent;
 }
 .map-pin--left .map-pin__label { left: auto; right: calc(50% + 14px); }
 .map-pin[aria-current="true"] .map-pin__dot { width: 16px; height: 16px; background: var(--yellow); border-color: var(--ink); }
 .map-pin[aria-current="true"] .map-pin__label { border-bottom-color: var(--yellow); }
 .map-pin:hover .map-pin__label { border-bottom-color: var(--ink); }


 @media (max-width: 899px) {
  .map-destinos { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .map-destinos__stage { max-width: 440px; margin-inline: auto; }
  .map-destinos__link { display: none; }
 }
}

@layer sections {
 /* trajeto: base vetorial ampliada na rota, trechos por etapa e lista ao lado */
 .route { padding-block: clamp(3.5rem, 2.5rem + 4vw, 6.5rem); background: var(--bg); border-bottom: 1px solid var(--rule-soft); }
 .route__inner {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: clamp(2rem, 1rem + 3vw, 4.5rem); row-gap: 1.75rem; align-items: start;
 }
 .route__head {
  grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: .5rem 2rem; padding-top: 1rem; border-top: 2px solid var(--fg);
 }
 .route__title { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: .9; text-transform: uppercase; }
 .route__summary { font-family: var(--ff-label); font-size: 1rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-text); }

 .route-map { position: relative; margin: 0; overflow: hidden; background: var(--mapa-mar); border: 1px solid var(--rule); }
 /* trajeto no Google Maps (My Maps incorporado): altura fixa para o dedo rolar a página acima e abaixo do mapa */
 .route-gmap { margin: 0; max-width: 480px; }
 /* print largo: a coluna do mapa inteira */
 .route-gmap--largo { max-width: none; }
 .route-gmap img { width: 100%; height: auto; border: 1px solid var(--rule); }
 .route-gmap__abrir { color: var(--accent-text); }
 .route-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
 /* contorno escuro sob o amarelo: o trecho lê sobre o papel claro e sobre os rios */
 .route-case { fill: none; stroke: var(--ink); stroke-width: 6; stroke-linecap: round; transition: opacity .2s var(--ease), stroke-width .2s var(--ease); }
 .route-leg { fill: none; stroke: var(--yellow); stroke-width: 3; stroke-linecap: round; transition: opacity .2s var(--ease), stroke-width .2s var(--ease); }
 .route-leg--barco { stroke: var(--mapa-traco); stroke-width: 2.5; stroke-dasharray: 7 6; stroke-linecap: butt; }
 .route-map[data-active] .route-leg:not(.is-active),
 .route-map[data-active] .route-case:not(.is-active) { opacity: .25; }
 .route-leg--moto.is-active { stroke-width: 5; }
 .route-case.is-active { stroke-width: 9; }
 .route-leg--barco.is-active { stroke-width: 3.5; }

 .route-map__points, .route-map__countries { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
 .route-country {
  position: absolute; transform: translate(-50%, -50%);
  font-family: var(--ff-label); font-size: .8125rem; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: var(--mapa-pais);
 }
 .route-point { position: absolute; width: 0; height: 0; }
 .route-point__dot {
  position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%;
  background: var(--ink); border: 2px solid #fff; transition: transform .2s var(--ease), background-color .2s var(--ease);
 }
 .route-point--circuito .route-point__dot { background: var(--green-600); border-color: #fff; }
 .route-point--circuito .route-point__dot::after { content: ""; position: absolute; inset: -5px; border: 1px solid var(--green-600); border-radius: 50%; }
 .route-point__name {
  position: absolute; top: 0; transform: translateY(-50%); white-space: nowrap;
  padding: .1rem .4rem; background: #fff; color: var(--ink);
  font-family: var(--ff-label); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  border-bottom: 2px solid transparent;
 }
 .route-point--direita .route-point__name { left: 13px; }
 .route-point--esquerda .route-point__name { right: 13px; }
 .route-point--acima .route-point__name { top: auto; bottom: 18px; left: 0; transform: translateX(-50%); }
 .route-point--abaixo .route-point__name { top: 11px; left: 0; transform: translateX(-50%); }
 .route-point.is-active .route-point__dot { background: var(--yellow); border-color: var(--ink); transform: scale(1.4); }
 .route-point.is-active .route-point__name { border-bottom-color: var(--yellow); }

 /* mini continente: o relevo da home, pequeno e nítido, com o recorte marcado */
 .route-map__locator { position: absolute; width: clamp(64px, 16%, 118px); border: 0; outline: 0; background: transparent; }
 .route-map__locator--br { right: 12px; bottom: 12px; }
 .route-map__locator--bl { left: 12px; bottom: 12px; }
 .route-map__locator--tr { right: 12px; top: 12px; }
 .route-map__locator--tl { left: 12px; top: 12px; }
 .route-map__locator picture, .route-map__locator img { display: block; width: 100%; height: auto; }
 .route-map__box { position: absolute; border: 1.5px solid var(--mapa-traco); }

 .route__list { display: grid; gap: 1.25rem; }
 .route-stages { border-top: 1px solid var(--rule); }
 .route-stage-item { border-bottom: 1px solid var(--rule-soft); }
 .route-stage {
  display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: baseline; gap: .75rem;
  width: 100%; min-height: 50px; padding: .75rem .5rem .75rem .75rem;
  border: 0; border-left: 3px solid transparent; border-radius: 0; background: none; text-align: left;
  transition: border-color .15s var(--ease), background-color .15s var(--ease);
 }
 .route-stage:hover .route-stage__title { text-decoration: underline; text-underline-offset: .2em; }
 .route-stage[aria-pressed="true"] { border-left-color: var(--yellow); background: var(--surface-2); }
 .route-stage__num { font-family: var(--ff-display); font-size: 1.375rem; font-weight: 800; line-height: 1; color: var(--accent-text); }
 .route-stage__title { font-family: var(--ff-label); font-size: 1.0625rem; font-weight: 600; line-height: 1.25; }
 .route-stage__km { font-family: var(--ff-display); font-size: 1.25rem; font-weight: 700; line-height: 1; white-space: nowrap; }
 .route-stage__text { padding: 0 .5rem 1rem 3.75rem; color: var(--fg-muted); }
 .route-total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding-top: .75rem; border-top: 2px solid var(--fg);
  font-family: var(--ff-label); font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
 }
 .route-total strong { font-family: var(--ff-display); font-size: 2rem; font-weight: 800; letter-spacing: 0; }

 /* entrada: o JS mede cada trecho de moto e desenha; o barco aparece na sua vez */
 .route-map.will-draw .route-leg--barco { opacity: 0; }
 .route-map.is-drawn .route-leg--barco { animation: route-show .5s var(--ease) calc(var(--i) * .15s) forwards; }
 @keyframes route-show { to { opacity: 1; } }
 /* nome que colidiria com outro some; o ponto em destaque sempre mostra o seu */
 .route-point.is-crowded .route-point__name { visibility: hidden; }
 .route-point.is-active .route-point__name { visibility: visible; z-index: 1; }

 @media (max-width: 899px) {
  .route__inner { grid-template-columns: minmax(0, 1fr); }
  /* o mapa fica preso sob o cabeçalho enquanto a lista de etapas rola por baixo */
  .route-map:not(.route-map--alta) { position: sticky; top: calc(var(--header-h) + .5rem); z-index: 2; }
  .route-point__name { font-size: .6875rem; padding-inline: .3rem; }
  .route-country { font-size: .6875rem; }
 }
}

@layer sections {
 /* versão Black: o que não é papel de cor. Logo e mapas sem placa: fundo transparente sobre o escuro */
 :root[data-theme="dark"] .field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4f1ea' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
 }
 /* faixas que já eram escuras ganham um fio para não se fundirem com o fundo */
 :root[data-theme="dark"] .section--rental,
 :root[data-theme="dark"] .booking-bar { border-bottom: 1px solid var(--line-ink); }
  :root[data-theme="dark"] .booking { border: 1px solid var(--line-ink); border-top: 6px solid var(--green-600); }

}
