/* ============================================================
   MARATONA DO ALGARVE, Dorsal v2, corpo das páginas convertidas (fase 4)
   Tudo sob main.v2: só atua nas páginas que já passaram ao sistema novo.
   Os tokens de cor e letra vêm do v2-comum.css (:root, --v2-*).
   ============================================================ */

.v2 {
  --v2-areia: #F2F6F8;
  --v2-tinta-2: #3B5063;
  --v2-inclinar: skewX(-8deg);
  --v2-t-12: .75rem; --v2-t-14: .875rem; --v2-t-16: 1rem; --v2-t-18: 1.125rem; --v2-t-21: 1.333rem;
  --v2-t-28: 1.777rem; --v2-t-38: 2.369rem; --v2-t-50: 3.157rem; --v2-t-67: 4.209rem;
  --v2-t-cartaz: clamp(3.5rem, 9vw, 9.5rem);
  --v2-t-seccao: clamp(2.25rem, 5vw, 4.5rem);
  --v2-e-2: 8px; --v2-e-3: 16px; --v2-e-4: 24px; --v2-e-5: 32px; --v2-e-6: 48px; --v2-e-7: 64px; --v2-e-8: 96px; --v2-e-9: 144px;
  font-family: var(--v2-corpo); color: var(--v2-noite); line-height: 1.6;
}
.v2 h1, .v2 h2, .v2 h3, .v2 p, .v2 ul, .v2 ol, .v2 figure { margin: 0; }
.v2 a { color: var(--v2-vivo-texto); text-underline-offset: 3px; }
/* O style.css dá cor fixa aos títulos; aqui herdam a cor da secção (claro ou escuro) */
.v2 h1, .v2 h2, .v2 h3 { color: inherit; }
/* Ligações dentro de texto corrido distinguem-se por mais do que a cor (WCAG 1.4.1) */
.v2 p a:not(.btn), .v2 li a:not(.btn) { text-decoration: underline; }
.v2 img { max-width: 100%; display: block; }
.v2 .caixa { width: min(100% - 48px, 1240px); margin-inline: auto; }

/* Títulos de cartaz, em itálico como nas redes */
.v2 .cartaz { font-family: var(--v2-display); font-weight: 400; text-transform: uppercase; line-height: .92; letter-spacing: .005em; transform: var(--v2-inclinar); transform-origin: left bottom; text-wrap: balance; }
.v2 h1.cartaz { font-size: var(--v2-t-cartaz); }
.v2 h2.cartaz { font-size: var(--v2-t-seccao); }
.v2 .num { font-family: var(--v2-display); font-weight: 400; letter-spacing: .06em; font-variant-numeric: tabular-nums; }

/* Botões: três e mais nenhum */
.v2 .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--v2-e-2); font: 700 var(--v2-t-16)/1 var(--v2-corpo); padding: 14px 22px; border-radius: var(--v2-raio); text-decoration: none; border: 2px solid transparent; box-shadow: none; transition: transform .12s var(--v2-sair); }
.v2 .btn:active { transform: scale(.97); }
.v2 .btn--principal { background: var(--v2-sinal); color: var(--v2-noite); }
.v2 .btn--secundario { border-color: currentColor; color: inherit; background: none; }
.v2 .btn--texto { padding-inline: 0; color: var(--v2-vivo-texto); text-decoration: underline; background: none; }
@media (hover: hover) and (pointer: fine) { .v2 .btn--principal:hover { background: #3BC4EA; } }

/* Hero de página: azul-noite, linhas finas do logótipo, fotografia a sangrar */
.v2 .hero-pag { background: var(--v2-noite); color: #fff; position: relative; overflow: hidden; margin-top: 0; padding-top: var(--hh, 76px); } /* o cabeçalho é fixo: o trilho começa por baixo dele */
.v2 .hero-pag .linhas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.v2 .hero-pag .caixa { position: relative; z-index: 1; }
.v2 .migalhas { font-size: var(--v2-t-14); color: var(--v2-bruma); padding-top: var(--v2-e-5); }
.v2 .migalhas ol { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.v2 .migalhas li + li::before { content: '/'; margin-right: 6px; color: rgba(255,255,255,.35); }
.v2 .migalhas a { color: var(--v2-bruma); }
.v2 .migalhas [aria-current] { color: #fff; }
.v2 .hero-pag__grelha { display: grid; grid-template-columns: 7fr 4fr; gap: var(--v2-e-6); align-items: end; padding-block: var(--v2-e-6) var(--v2-e-8); }
.v2 .hero-pag__lead { color: var(--v2-bruma); font-size: var(--v2-t-18); max-width: 46ch; margin-top: var(--v2-e-4); }
.v2 .hero-pag__foto { position: absolute; top: 0; right: 0; bottom: 0; width: 42%; }
.v2 .hero-pag__foto img { width: 100%; height: 100%; object-fit: cover; }
.v2 .hero-pag__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--v2-noite) 0%, rgba(5,23,38,.25) 55%, rgba(5,23,38,.1) 100%); }

/* Relógio de prova */
.v2 .relogio { display: grid; gap: 4px; }
.v2 .relogio .num { font-size: var(--v2-t-50); line-height: 1; color: #fff; }
.v2 .relogio .num span { color: var(--v2-sinal); }
.v2 .relogio small { font-size: var(--v2-t-12); letter-spacing: .16em; text-transform: uppercase; color: var(--v2-bruma); }

/* Pictogramas por distância */
.v2 .distancias-faixa { display: flex; flex-wrap: wrap; gap: var(--v2-e-5); padding-block: var(--v2-e-5) var(--v2-e-6); border-top: 1px solid rgba(255,255,255,.14); }
.v2 .distancias-faixa a { display: inline-flex; align-items: center; gap: var(--v2-e-2); color: #fff; text-decoration: none; }
.v2 .distancias-faixa svg { width: 26px; height: 30px; flex: none; }
.v2 .distancias-faixa .num { font-size: var(--v2-t-28); white-space: nowrap; }
.v2 .distancias-faixa small { color: var(--v2-bruma); font-size: var(--v2-t-14); }

/* Cápsula de resposta (serve o Google e as IAs) */
.v2 .capsula { background: var(--v2-areia); }
.v2 .capsula .caixa { padding-block: var(--v2-e-5); display: grid; grid-template-columns: 8fr 3fr; gap: var(--v2-e-5); align-items: end; }
.v2 .capsula p { font-size: var(--v2-t-18); max-width: 70ch; }
.v2 .capsula small { color: var(--v2-tinta-2); font-size: var(--v2-t-12); }

/* Secções: o ritmo varia de propósito */
.v2 .s-larga { padding-block: var(--v2-e-9) var(--v2-e-8); }
.v2 .s-media { padding-block: var(--v2-e-8); }
.v2 .fundo-areia { background: var(--v2-areia); }
.v2 .cabeca-seccao { display: grid; gap: var(--v2-e-4); margin-bottom: var(--v2-e-5); }
.v2 .cabeca-seccao p { color: var(--v2-tinta-2); font-size: var(--v2-t-18); max-width: 52ch; }

/* Pistas de preço (ideia 11) */
.v2 .pistas { display: grid; grid-template-columns: 1.3fr 1fr 1.45fr 1fr 1fr; border-top: 3px solid var(--v2-noite); }
.v2 .pistas .linha { display: contents; }
.v2 .pistas .linha > div { padding: 18px 16px; border-bottom: 1px solid var(--v2-linha); }
.v2 .pistas .cab { font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; color: var(--v2-tinta-2); padding-block: 14px; }
.v2 .pistas .cab b { display: block; font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-21); letter-spacing: .02em; color: var(--v2-noite); }
.v2 .pistas .pdist { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.v2 .pistas .pdist svg { width: 20px; height: 24px; flex: none; }
.v2 .pistas .preco { font-family: var(--v2-display); font-size: var(--v2-t-28); line-height: 1; }
.v2 .pistas .passada { color: var(--v2-tinta-2); }
.v2 .pistas .passada .preco { text-decoration: line-through; text-decoration-thickness: 2px; }
.v2 .pistas .agora { background: var(--v2-noite); color: #fff; border-bottom-color: rgba(255,255,255,.12); }
.v2 .pistas .agora.cab { color: var(--v2-sinal); }
.v2 .pistas .agora.cab b { color: #fff; }
.v2 .pistas .agora .preco { font-size: var(--v2-t-38); color: #fff; }
.v2 .pistas .rotulo { display: none; }
.v2 .nota-precos { font-size: var(--v2-t-14); color: var(--v2-tinta-2); margin-top: var(--v2-e-3); max-width: 70ch; }

.v2 .corpo-insc { display: grid; grid-template-columns: 7fr 4fr; gap: var(--v2-e-7); align-items: start; }
.v2 .passos { position: sticky; top: 140px; background: #fff; color: var(--v2-noite); border-radius: var(--v2-raio); padding: var(--v2-e-5) var(--v2-e-4) var(--v2-e-4); box-shadow: 0 0 0 1px var(--v2-linha); }
.v2 .passos::before, .v2 .passos::after { content: ''; position: absolute; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); }
.v2 .passos::before { left: 12px; } .v2 .passos::after { right: 12px; }
.v2 .passos h2 { font-size: var(--v2-t-21); margin-bottom: var(--v2-e-3); }
.v2 .passos ol { padding: 0; list-style: none; display: grid; gap: var(--v2-e-3); counter-reset: p; margin-bottom: var(--v2-e-4); }
.v2 .passos li { counter-increment: p; display: grid; grid-template-columns: 44px 1fr; align-items: baseline; }
.v2 .passos li::before { content: '0' counter(p); font-family: var(--v2-display); font-size: var(--v2-t-28); color: var(--v2-vivo-texto); }
.v2 .passos .btn { width: 100%; }

/* Faixa de lugar */
.v2 .lugar { position: relative; min-height: 520px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; background: var(--v2-noite); }
.v2 .lugar > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v2 .lugar::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,23,38,.8) 0%, rgba(5,23,38,0) 58%); pointer-events: none; }
.v2 .lugar .caixa { position: relative; z-index: 2; padding-block: var(--v2-e-6); display: flex; justify-content: space-between; align-items: end; gap: var(--v2-e-5); flex-wrap: wrap; }
.v2 .lugar__nome { font-size: var(--v2-t-12); letter-spacing: .16em; text-transform: uppercase; color: var(--v2-bruma); }
.v2 .lugar__nome b { display: block; font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-38); color: #fff; transform: var(--v2-inclinar); transform-origin: left; }

/* Condições com alfinetes (ideia 02) */
.v2 .condicoes { display: grid; grid-template-columns: 5fr 6fr; gap: var(--v2-e-7); align-items: center; }
.v2 .condicoes__foto { position: relative; margin-left: calc(-1 * (100vw - min(100vw - 48px, 1240px)) / 2); }
.v2 .condicoes__foto img { width: 100%; height: 520px; object-fit: cover; border-radius: 0 var(--v2-raio) var(--v2-raio) 0; }
.v2 .condicoes__dorsal { position: absolute; right: -40px; bottom: 40px; background: #fff; border-radius: var(--v2-raio); padding: 14px 18px; color: var(--v2-noite); }
.v2 .condicoes__dorsal .num { display: block; font-size: var(--v2-t-50); line-height: 1; }
.v2 .condicoes__dorsal small { display: block; font-size: var(--v2-t-12); letter-spacing: .14em; color: var(--v2-tinta-2); text-transform: uppercase; }
.v2 .alfinetes { list-style: none; padding: 0; display: grid; gap: var(--v2-e-3); }
.v2 .alfinetes li { position: relative; padding-left: 40px; }
.v2 .alfinetes li::before { content: ''; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); box-shadow: 14px 0 0 var(--v2-noite); }

/* Fita de meta (ideia 08): o fecho da página */
.v2 .meta { background: var(--v2-noite); color: #fff; position: relative; overflow: hidden; }
.v2 .meta__fita { height: 14px; background: repeating-linear-gradient(90deg, #fff 0 22px, var(--v2-vivo) 22px 44px); }
.v2 .meta .caixa { display: grid; grid-template-columns: 8fr 4fr; gap: var(--v2-e-6); align-items: end; padding-block: var(--v2-e-8) var(--v2-e-7); }
.v2 .meta h2.cartaz { font-size: var(--v2-t-cartaz); }
.v2 .meta__acoes { display: flex; flex-wrap: wrap; gap: var(--v2-e-3); }
.v2 .meta__km { position: absolute; right: 24px; top: 32px; color: var(--v2-vivo); font-size: var(--v2-t-14); }

@media (max-width: 900px) {
  .v2 .hero-pag__grelha, .v2 .corpo-insc, .v2 .condicoes, .v2 .meta .caixa, .v2 .capsula .caixa { grid-template-columns: 1fr; gap: var(--v2-e-5); }
  .v2 .hero-pag__grelha { padding-block: var(--v2-e-5) var(--v2-e-6); }
  .v2 .hero-pag__foto { position: relative; width: 100%; height: 200px; }
  .v2 .relogio .num { font-size: var(--v2-t-38); }
  .v2 .distancias-faixa { display: grid; grid-template-columns: 1fr 1fr; gap: var(--v2-e-4) var(--v2-e-3); }
  .v2 .distancias-faixa a { align-items: flex-start; }
  .v2 .distancias-faixa small { display: block; }
  .v2 .s-larga { padding-block: var(--v2-e-8) var(--v2-e-7); }
  .v2 .s-media { padding-block: var(--v2-e-7); }
  .v2 .pistas { grid-template-columns: 1fr; border-top: 0; }
  .v2 .pistas .linha:first-child, .v2 .pistas .passada { display: none; }
  .v2 .pistas .linha > div.pdist { border-top: 3px solid var(--v2-noite); margin-top: var(--v2-e-3); }
  .v2 .pistas .agora, .v2 .pistas .depois { display: flex; justify-content: space-between; align-items: baseline; }
  .v2 .pistas .rotulo { display: inline; font-size: var(--v2-t-14); }
  .v2 .pistas .agora .rotulo { color: var(--v2-sinal); }
  .v2 .pistas .depois .rotulo { color: var(--v2-tinta-2); }
  .v2 .pistas .ultima { display: none; }
  .v2 .passos { position: static; }
  .v2 .lugar { min-height: 380px; }
  .v2 .condicoes__foto { margin-left: -24px; margin-right: -24px; }
  .v2 .condicoes__foto img { height: 300px; border-radius: 0; }
  .v2 .condicoes__dorsal { right: 24px; bottom: -28px; }
}
/* Família 3, logística: o que já se sabe e o dorsal por levantar (ideia 10) */
.v2 .leitura { max-width: 66ch; font-size: var(--v2-t-18); }
.v2 .logistica { display: grid; grid-template-columns: 7fr 4fr; gap: var(--v2-e-8); align-items: start; }
.v2 .fonte { font-size: var(--v2-t-14); color: var(--v2-tinta-2); margin-top: var(--v2-e-5); }
.v2 .levantar { position: sticky; top: 140px; border: 2px dashed var(--v2-noite); border-radius: var(--v2-raio); padding: var(--v2-e-6) var(--v2-e-5) var(--v2-e-5); background: #fff; }
.v2 .levantar .furo { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--v2-noite); }
.v2 .levantar .f1 { top: 12px; left: 12px; } .v2 .levantar .f2 { top: 12px; right: 12px; } .v2 .levantar .f3 { bottom: 12px; left: 12px; } .v2 .levantar .f4 { bottom: 12px; right: 12px; }
.v2 .levantar small { font-size: var(--v2-t-12); letter-spacing: .16em; text-transform: uppercase; color: var(--v2-tinta-2); }
.v2 .levantar__n { font-family: var(--v2-display); text-transform: uppercase; font-size: var(--v2-t-50); line-height: .9; transform: var(--v2-inclinar); transform-origin: left; margin: var(--v2-e-2) 0 var(--v2-e-4); }
.v2 .levantar__lista { list-style: none; padding: 0; display: grid; gap: var(--v2-e-2); margin-bottom: var(--v2-e-4); }
.v2 .levantar__lista li { padding-left: 18px; position: relative; }
.v2 .levantar__lista li::before { content: ''; position: absolute; left: 0; top: .6em; width: 8px; height: 2px; background: var(--v2-vivo-texto); }
.v2 .levantar__data { font-size: var(--v2-t-14); color: var(--v2-tinta-2); }
/* Fotografia de lugar ao lado das ligações de "Entretanto" */
.v2 .foto-lado { display: grid; grid-template-columns: 6fr 5fr; gap: var(--v2-e-7); align-items: center; }
.v2 .foto-lado figure { position: relative; margin-left: calc(-1 * (100vw - min(100vw - 48px, 1240px)) / 2); }
.v2 .foto-lado img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 0 var(--v2-raio) var(--v2-raio) 0; }
.v2 .foto-lado .lugar__nome { position: absolute; left: var(--v2-e-4); bottom: var(--v2-e-4); color: #fff; text-shadow: 0 1px 14px rgba(5,23,38,.75); }
.v2 .foto-lado .lugar__nome b { color: #fff; }
.v2 .entretanto-links { display: flex; flex-wrap: wrap; gap: var(--v2-e-2); }
@media (max-width: 900px) {
  .v2 .logistica, .v2 .foto-lado { grid-template-columns: 1fr; gap: var(--v2-e-6); }
  .v2 .levantar { position: static; }
  .v2 .levantar__n { font-size: var(--v2-t-38); }
  .v2 .foto-lado figure { margin-left: -24px; margin-right: -24px; }
  .v2 .foto-lado img { max-height: 380px; border-radius: 0; }
}

/* Família 4, informação: o conteúdo de cada página fica igual, lido com as regras do Dorsal v2 */
.v2 h1.cartaz--longo { font-size: clamp(2.75rem, 6.2vw, 6.25rem); }
.v2 .btn--primary { background: var(--v2-sinal); color: var(--v2-noite); border-color: transparent; box-shadow: none; }
.v2 .btn--outline, .v2 .btn--ghost { background: none; border-color: currentColor; color: inherit; box-shadow: none; }
.v2 .btn--lg { padding: 16px 26px; }
@media (hover: hover) and (pointer: fine) { .v2 .btn--primary:hover { background: #3BC4EA; color: var(--v2-noite); transform: none; } }
.v2-info .container { width: min(100% - 48px, 1240px); max-width: none; margin-inline: auto; padding: 0; }
.v2-info .section { padding-block: var(--v2-e-8); }
.v2-info .section--lg { padding-block: var(--v2-e-9) var(--v2-e-8); }
.v2-info .section--areia, .v2-info .legend-why { background: var(--v2-areia); }
.v2-info h2:not(.cartaz), .v2-info .legend__th { font-family: var(--v2-display); font-weight: 400; text-transform: uppercase; font-size: var(--v2-t-38); line-height: 1; letter-spacing: .005em; color: var(--v2-noite); transform: var(--v2-inclinar); transform-origin: left bottom; text-wrap: balance; }

/* Coluna de leitura, alinhada à esquerda */
.v2-info .prose { max-width: 66ch; margin: 0; }
.v2-info .prose p, .v2-info .legend__text, .v2-info .reg-s p, .v2-info .reg-list li { font-size: var(--v2-t-18); line-height: 1.65; color: var(--v2-noite); }
.v2-info .prose p + p { margin-top: var(--v2-e-3); }
.v2-info .prose .lead { font-size: var(--v2-t-21); line-height: 1.55; color: var(--v2-noite); font-weight: 400; }
.v2-info .prose h2 { margin: var(--v2-e-6) 0 var(--v2-e-3); }
.v2-info .prose h2:first-child { margin-top: 0; }
.v2-info .data-grande { font-family: var(--v2-display); text-transform: uppercase; font-size: var(--v2-t-50) !important; line-height: 1; color: var(--v2-vivo-texto) !important; }

/* Texto e fotografia, com a fotografia a sangrar para a direita */
.v2-info .split { display: grid; grid-template-columns: 7fr 5fr; gap: var(--v2-e-8); align-items: center; }
.v2-info .photo--tall { aspect-ratio: 5 / 4; }
.v2-info .split__media { margin-right: calc(-1 * (100vw - min(100vw - 48px, 1240px)) / 2); }
.v2-info .photo { border-radius: var(--v2-raio) 0 0 var(--v2-raio); background: var(--v2-noite-2); box-shadow: none; }
.v2-info .photo__ph { display: none; }
.v2-info .photo img, .v2-info .photo:hover img { transform: none; transition: none; }
.v2-info .photo__caption { background: linear-gradient(0deg, rgba(5,23,38,.88) 0%, rgba(5,23,38,0) 100%); padding: var(--v2-e-7) var(--v2-e-4) var(--v2-e-4); }
.v2-info .photo__caption h3 { font-family: var(--v2-display); font-weight: 400; text-transform: uppercase; font-size: var(--v2-t-28); line-height: 1; transform: var(--v2-inclinar); transform-origin: left; color: #fff; margin-bottom: var(--v2-e-2); }
.v2-info .photo__caption p { color: var(--v2-bruma); font-size: var(--v2-t-16); }

/* Cápsula de resposta (data e local) */
.v2-info .acap-wrap { background: var(--v2-areia); padding-block: var(--v2-e-5); }
.v2-info .answer-capsule { max-width: none; margin: 0; padding: 0; background: none; border: 0; border-radius: 0; display: grid; grid-template-columns: 8fr 3fr; gap: var(--v2-e-5); align-items: end; }
.v2-info .answer-capsule__text { font-size: var(--v2-t-18); font-weight: 400; max-width: 70ch; color: var(--v2-noite); }
.v2-info .answer-capsule__meta { margin: 0; font-size: var(--v2-t-12); color: var(--v2-tinta-2); }

/* Dorsais com razões (ideia 14), no O evento */
.v2 .razoes { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--v2-e-4); margin-top: var(--v2-e-6); }
.v2 .razao { grid-column: span 2; position: relative; background: #fff; border-radius: var(--v2-raio); padding: var(--v2-e-6) var(--v2-e-5) var(--v2-e-5); box-shadow: 0 0 0 1px var(--v2-linha); }
.v2 .razao:nth-child(n+4) { grid-column: span 3; }
.v2 .razao:last-child { background: var(--v2-noite); color: #fff; box-shadow: none; }
.v2 .razao:last-child p { color: var(--v2-bruma); }
.v2 .razao:last-child a { color: var(--v2-sinal); }
.v2 .razao .furo { position: absolute; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); }
.v2 .razao:last-child .furo { background: var(--v2-sinal); }
.v2 .razao .f1 { left: 12px; } .v2 .razao .f2 { right: 12px; }
.v2 .razao__n { display: block; font-size: var(--v2-t-50); line-height: 1; color: var(--v2-vivo-texto); margin-bottom: var(--v2-e-3); }
.v2 .razao:last-child .razao__n { color: var(--v2-sinal); }
.v2 .razao h3 { font-size: var(--v2-t-21); margin-bottom: var(--v2-e-2); }
.v2 .razao p { color: var(--v2-tinta-2); }

/* Perguntas frequentes: lista de linhas finas, sem caixas */
.v2-info .faq, .v2-info .qa { max-width: 860px; margin: 0; border-top: 3px solid var(--v2-noite); }
.v2-info .faq-item { border: 0; border-bottom: 1px solid var(--v2-linha); border-radius: 0; margin: 0; background: none; }
.v2-info .faq-item__trigger { padding: var(--v2-e-4) 0; font: 700 var(--v2-t-18)/1.4 var(--v2-corpo); color: var(--v2-noite); }
.v2-info .faq-item__trigger[aria-expanded="true"] { color: var(--v2-vivo-texto); }
.v2-info .faq-item__trigger:focus-visible { outline: 2px solid var(--v2-vivo-texto); outline-offset: 4px; }
.v2-info .faq-item__icon { color: var(--v2-vivo-texto); transition: transform .2s var(--v2-sair); }
.v2-info .faq-item__answer { padding: 0; color: var(--v2-tinta-2); font-size: var(--v2-t-18); line-height: 1.65; max-width: 66ch; }
@media (hover: hover) and (pointer: fine) { .v2-info .faq-item__trigger:hover { color: var(--v2-vivo-texto); } }
.v2-info .qa__h { font-size: var(--v2-t-21); padding-top: var(--v2-e-4); color: var(--v2-noite); }
.v2-info .qa__item { border-bottom: 1px solid var(--v2-linha); padding: var(--v2-e-4) 0; margin: 0; }
.v2-info .qa__q { font-weight: 700; font-size: var(--v2-t-18); color: var(--v2-noite); margin-bottom: var(--v2-e-2); }
.v2-info .qa__a { color: var(--v2-tinta-2); font-size: var(--v2-t-16); line-height: 1.65; max-width: 66ch; }

/* Contactos e formulários */
.v2-info .contactos__intro { color: var(--v2-tinta-2); font-size: var(--v2-t-18); max-width: 44ch; margin: var(--v2-e-4) 0 var(--v2-e-5); }
.v2-info .contact-info { gap: var(--v2-e-3); margin-bottom: var(--v2-e-6); }
.v2-info .contact-info a { font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-28); letter-spacing: .02em; color: var(--v2-noite); text-decoration: none; }
.v2-info .contact-info svg { color: var(--v2-vivo-texto); }
.v2-info .social-label { font-size: var(--v2-t-12); letter-spacing: .16em; text-transform: uppercase; color: var(--v2-tinta-2); margin-bottom: var(--v2-e-2); }
.v2-info .sociais { display: flex; gap: var(--v2-e-2); }
.v2-info .social-bola { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--v2-raio); border: 1.5px solid var(--v2-noite); color: var(--v2-noite); transition: background-color .15s var(--v2-sair), color .15s var(--v2-sair); }
@media (hover: hover) and (pointer: fine) { .v2-info .social-bola:hover { background: var(--v2-noite); color: #fff; } }
.v2-info .form { position: relative; background: #fff; border-radius: var(--v2-raio); padding: var(--v2-e-6) var(--v2-e-5) var(--v2-e-5); box-shadow: 0 0 0 1px var(--v2-linha); }
.v2-info .form::before, .v2-info .form::after { content: ''; position: absolute; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); }
.v2-info .form::before { left: 12px; } .v2-info .form::after { right: 12px; }
.v2-info .form__label { color: var(--v2-noite); font-size: var(--v2-t-14); font-weight: 700; }
.v2-info .form__input, .v2-info .form__select, .v2-info .form__textarea { border: 1.5px solid #6B7F8E; border-radius: var(--v2-raio); padding: 14px; font-size: var(--v2-t-16); color: var(--v2-noite); transition: border-color .15s var(--v2-sair), box-shadow .15s var(--v2-sair); }
.v2-info .form__input:focus, .v2-info .form__select:focus, .v2-info .form__textarea:focus { border-color: var(--v2-vivo-texto); box-shadow: 0 0 0 3px rgba(0,146,219,.25); }
.v2-info .form__check { color: var(--v2-tinta-2); }
.v2-info .form__check input { accent-color: var(--v2-vivo-texto); }
.v2-info .form__check__text a { color: var(--v2-vivo-texto); }
.v2-info .form__check--consent, .v2-info .form__check--block { border-radius: var(--v2-raio); border: 1px solid var(--v2-linha); }
.v2-info .form__check--consent { background: var(--v2-areia); }
.v2-info .form__check--block:has(input:checked) { border-color: var(--v2-vivo-texto); box-shadow: none; }
.v2-info .volunteer-intro { text-align: left; max-width: 66ch; margin: 0 0 var(--v2-e-6); }
.v2-info .volunteer-intro__lead { margin: var(--v2-e-3) 0 0; max-width: 66ch; font-size: var(--v2-t-18); color: var(--v2-tinta-2); }
.v2-info .volunteer-form-wrap { max-width: 760px; margin: 0; }

/* Parceiros: grelha de linhas finas, sem cartões a flutuar */
.v2-info .partners { grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: var(--v2-e-6); border-top: 3px solid var(--v2-noite); }
.v2-info .partner { background: none; border: 0; border-bottom: 1px solid var(--v2-linha); border-right: 1px solid var(--v2-linha); border-radius: 0; box-shadow: none; padding: var(--v2-e-6) var(--v2-e-4); min-height: 190px; }
.v2-info .partner:nth-child(4n) { border-right: 0; }
.v2-info .partner:hover { transform: none; box-shadow: none; border-color: var(--v2-linha); }
.v2-info .partner--logo img { height: 56px; max-width: 100%; }
.v2-info .partner__role { font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; color: var(--v2-tinta-2); }
.v2-info .partner__role--org { color: var(--v2-vivo-texto); font-weight: 700; }
.v2-info .join-partners { background: none; box-shadow: none; border: 0; border-radius: 0; padding: 0; grid-template-columns: 1fr; }
.v2-info .join-partners__text { max-width: 66ch; }
.v2-info .join-partners__text p { color: var(--v2-tinta-2); font-size: var(--v2-t-18); margin-top: var(--v2-e-3); }

/* Padrinho e madrinha */
.v2-info .legend__grid { grid-template-columns: 5fr 7fr; gap: var(--v2-e-7); }
.v2-info .legend--alt .legend__grid { grid-template-columns: 7fr 5fr; }
.v2-info .legend__photo { border-radius: var(--v2-raio); box-shadow: none; background: var(--v2-noite-2); }
.v2-info .legend__media:hover .legend__photo img { transform: none; }
.v2-info .legend__role { background: #fff; color: var(--v2-noite); border-radius: var(--v2-raio); box-shadow: 0 0 0 2px var(--v2-noite); font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-21); letter-spacing: .04em; text-transform: uppercase; padding: 8px 16px; }
.v2-info .legend__kicker { color: var(--v2-vivo-texto); font-size: var(--v2-t-12); letter-spacing: .16em; }
.v2-info h2.legend__name { font-family: var(--v2-display); font-weight: 400; text-transform: uppercase; font-size: var(--v2-t-seccao); line-height: .95; color: var(--v2-noite); transform: var(--v2-inclinar); transform-origin: left bottom; }
.v2-info .legend__tldr { border-left: 0; padding-left: 0; font-size: var(--v2-t-21); line-height: 1.55; color: var(--v2-noite); }
.v2-info .legend__text { color: var(--v2-tinta-2); max-width: 66ch; }
.v2-info .legend__stats { background: var(--v2-noite); border-radius: var(--v2-raio); padding: var(--v2-e-5); }
.v2-info .lstat:hover { transform: none; }
.v2-info .lstat__n { font-family: var(--v2-display); font-weight: 400; color: var(--v2-sinal); letter-spacing: .02em; }
.v2-info .lstat__l { color: var(--v2-bruma); font-size: var(--v2-t-14); }
.v2-info .legend__th { font-size: var(--v2-t-28); }
.v2-info .tline::before { width: 1px; background: var(--v2-linha); }
.v2-info .tline__item::before { border: 2px solid var(--v2-noite); box-shadow: none; }
.v2-info .tline__item--gold::before { background: var(--v2-sinal); border-color: var(--v2-sinal); box-shadow: none; }
.v2-info .tline__year, .v2-info .tline__item--gold .tline__year { font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-21); letter-spacing: .04em; color: var(--v2-vivo-texto); }
.v2-info .tline__t { color: var(--v2-noite); }
.v2-info .tline__d { color: var(--v2-tinta-2); }
.v2-info .section__head--center { text-align: left; margin-inline: 0; max-width: none; }
.v2-info .legend-why__lead { text-align: left; margin: var(--v2-e-4) 0 var(--v2-e-6); max-width: 66ch; color: var(--v2-tinta-2); font-size: var(--v2-t-18); }

/* Regulamento: índice fixo à esquerda, texto em coluna de leitura */
.v2-info .reg-doc { grid-template-columns: 3fr 8fr; gap: var(--v2-e-7); }
.v2-info .toc { top: 120px; background: none; border: 0; border-radius: 0; padding: 0; max-height: calc(100vh - 140px); overflow: auto; }
.v2-info .toc__title { color: var(--v2-tinta-2); font-size: var(--v2-t-12); }
.v2-info .toc__list { border-left: 1px solid var(--v2-linha); }
.v2-info .toc__list li a { padding: 6px 0 6px 16px; border: 0; border-radius: 0; color: var(--v2-noite); font-size: var(--v2-t-14); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .v2-info .toc__list li a:hover { background: none; color: var(--v2-vivo-texto); text-decoration: underline; } }
.v2-info .reg-body { max-width: 74ch; }
.v2-info .reg-s { scroll-margin-top: 120px; border-bottom: 1px solid var(--v2-linha); padding-bottom: var(--v2-e-5); margin-bottom: var(--v2-e-5); }
.v2-info .reg-s h2 { font-size: var(--v2-t-28); margin-bottom: var(--v2-e-3); }
.v2-info .reg-s h3 { color: var(--v2-noite); font-size: var(--v2-t-18); }
.v2-info .reg-note { border-left: 0; background: var(--v2-areia); border-radius: var(--v2-raio); color: var(--v2-tinta-2); }
.v2-info .declar { border-left: 0; border-radius: var(--v2-raio); background: var(--v2-areia); box-shadow: inset 0 3px 0 var(--v2-noite); }
.v2-info .declar p { font-style: normal; color: var(--v2-noite); }
.v2-info .rtable-wrap { border: 0; border-radius: 0; border-top: 3px solid var(--v2-noite); }
.v2-info .rtable th, .v2-info .rtable td { border-bottom: 1px solid var(--v2-linha); font-size: var(--v2-t-16); }
.v2-info .rtable thead th { background: none; color: var(--v2-tinta-2); font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; }
.v2-info .rtable tbody th[scope="row"] { color: var(--v2-noite); }
.v2-info .rtable tbody tr:nth-child(even) { background: none; }
.v2-info .rtable--prices td { font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-21); color: var(--v2-noite); }

@media (max-width: 900px) {
  .v2-info .split, .v2-info .legend__grid, .v2-info .legend--alt .legend__grid, .v2-info .reg-doc, .v2-info .answer-capsule { grid-template-columns: 1fr; gap: var(--v2-e-5); }
  .v2-info .legend--alt .legend__media { order: 0; }
  .v2-info .section--lg { padding-block: var(--v2-e-8) var(--v2-e-7); }
  .v2-info .section { padding-block: var(--v2-e-7); }
  .v2-info .split__media { margin-inline: -24px; }
  .v2-info .photo { border-radius: 0; }
  .v2-info h2:not(.cartaz) { font-size: var(--v2-t-28); }
  .v2 .razoes { grid-template-columns: 1fr; }
  .v2 .razao, .v2 .razao:nth-child(n+4) { grid-column: auto; }
  .v2-info .partners { grid-template-columns: 1fr 1fr; }
  .v2-info .partner:nth-child(4n) { border-right: 1px solid var(--v2-linha); }
  .v2-info .partner:nth-child(2n) { border-right: 0; }
  .v2-info .partner { padding: var(--v2-e-5) var(--v2-e-3); min-height: 150px; }
  .v2-info .partner--logo img { height: 40px; }
  .v2-info .toc { position: static; max-height: none; }
  .v2-info .contact-info a { font-size: var(--v2-t-21); }
  .v2-info .form { padding: var(--v2-e-6) var(--v2-e-4) var(--v2-e-4); }
  /* as tabelas do regulamento cabem no ecrã, sem deslizar (o deslize não chegava pelo teclado) */
  .v2-info .rtable { min-width: 0; }
  .v2-info .rtable th, .v2-info .rtable td { padding: 10px 6px; font-size: var(--v2-t-14); overflow-wrap: anywhere; }
  .v2-info .rtable--prices td { font-size: var(--v2-t-16); }
}

/* Notícias: destaque com a foto a sangrar (assinatura do modelo 4) e lista de linhas finas */
.v2 .s-curta { padding-block: var(--v2-e-6) var(--v2-e-9); }
.v2 .hero-pag__data { color: var(--v2-bruma); font-size: var(--v2-t-14); margin-top: var(--v2-e-3); }
.v2 .destaque { display: grid; grid-template-columns: 7fr 5fr; align-items: center; }
.v2 .destaque__foto { margin-left: calc(-1 * (100vw - min(100vw - 48px, 1240px)) / 2); }
.v2 .destaque__foto img { width: 100%; height: 560px; object-fit: cover; border-radius: 0 var(--v2-raio) var(--v2-raio) 0; }
.v2 .destaque__texto { position: relative; display: grid; gap: var(--v2-e-4); justify-items: start; background: var(--v2-noite); color: #fff; padding: var(--v2-e-6); border: 0; border-radius: var(--v2-raio); box-shadow: none; margin-left: calc(-1 * var(--v2-e-8)); }
.v2 .destaque__texto:hover { transform: none; box-shadow: none; }
.v2 .destaque__texto .news-card__tag { margin: 0; color: var(--v2-sinal); }
.v2 .destaque__texto .news-card__title { margin: 0; font-family: var(--v2-display); font-weight: 400; text-transform: uppercase; font-size: var(--v2-t-50); line-height: .95; color: #fff; transform: var(--v2-inclinar); transform-origin: left bottom; }
.v2 .destaque__texto .news-card__title a { color: #fff; text-decoration: none; }
.v2 .destaque__texto .news-card__exc { margin: 0; color: var(--v2-bruma); font-size: var(--v2-t-18); }
.v2 .destaque__texto .news-card__link { background: var(--v2-sinal); color: var(--v2-noite); font: 700 var(--v2-t-16)/1 var(--v2-corpo); padding: 14px 22px; border-radius: var(--v2-raio); text-decoration: none; }
.v2 .lista-noticias { border-top: 3px solid var(--v2-noite); }
.v2 .lista-noticias .news-card { display: grid; grid-template-columns: 2fr 7fr 3fr; grid-template-areas: "tag tit lnk" "tag exc lnk"; column-gap: var(--v2-e-5); row-gap: var(--v2-e-2); padding: var(--v2-e-5) 0; background: none; border: 0; border-bottom: 1px solid var(--v2-linha); border-radius: 0; box-shadow: none; }
.v2 .lista-noticias .news-card:hover { transform: none; box-shadow: none; border-color: var(--v2-linha); }
.v2 .lista-noticias .news-card__tag { grid-area: tag; margin: 0; color: var(--v2-vivo-texto); font-size: var(--v2-t-12); }
.v2 .lista-noticias .news-card__title { grid-area: tit; margin: 0; font: 700 var(--v2-t-21)/1.3 var(--v2-corpo); text-transform: none; transform: none; color: var(--v2-noite); }
.v2 .lista-noticias .news-card__title a { color: inherit; text-decoration: none; }
.v2 .lista-noticias .news-card__exc { grid-area: exc; margin: 0; color: var(--v2-tinta-2); font-size: var(--v2-t-16); max-width: 62ch; }
.v2 .lista-noticias .news-card__link { grid-area: lnk; justify-self: end; align-self: center; color: var(--v2-vivo-texto); font-weight: 700; text-decoration: underline; }
@media (hover: hover) and (pointer: fine) { .v2 .lista-noticias .news-card:hover .news-card__title { text-decoration: underline; } }
.v2-info .article-body { max-width: 66ch; margin: 0; }
.v2-info .article-lead { background: none; border: 0; border-radius: 0; padding: 0; margin-bottom: var(--v2-e-5); font-size: var(--v2-t-21); font-weight: 400; line-height: 1.55; color: var(--v2-noite); }
.v2-info .article-body h2 { margin: var(--v2-e-6) 0 var(--v2-e-3); font-size: var(--v2-t-28); }
.v2-info .article-body p { font-size: var(--v2-t-18); line-height: 1.65; color: var(--v2-noite); }
@media (max-width: 900px) {
  .v2 .destaque { grid-template-columns: 1fr; }
  .v2 .destaque__foto { margin-inline: -24px; }
  .v2 .destaque__foto img { height: 300px; border-radius: 0; }
  .v2 .destaque__texto { margin: -48px 12px 0; padding: var(--v2-e-5); }
  .v2 .destaque__texto .news-card__title { font-size: var(--v2-t-38); }
  .v2 .lista-noticias .news-card { grid-template-columns: 1fr; grid-template-areas: "tag" "tit" "exc" "lnk"; }
  .v2 .lista-noticias .news-card__link { justify-self: start; }
}

/* Turismo: hero de lugar com o loop da costa (camada Algarve) e mosaico de lugares */
.v2 .hero-turismo { min-height: 88vh; justify-content: flex-end; }
.v2 .hero-turismo > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v2 .hero-turismo::after { background: linear-gradient(0deg, rgba(5,23,38,.92) 0%, rgba(5,23,38,.6) 45%, rgba(5,23,38,.4) 100%); }
.v2 .hero-turismo .caixa { display: block; padding-block: 0; }
.v2 .pausa { position: absolute; z-index: 3; right: var(--v2-e-4); top: calc(var(--hh, 76px) + var(--v2-e-4)); display: inline-flex; align-items: center; gap: var(--v2-e-2); background: rgba(5,23,38,.8); color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: var(--v2-raio); padding: 10px 14px; font: 500 var(--v2-t-14)/1 var(--v2-corpo); cursor: pointer; }
.v2 .pausa:focus-visible { outline: 2px solid var(--v2-sinal); outline-offset: 3px; }
.v2-info .section__head { max-width: none; margin-bottom: var(--v2-e-6); }
.v2-info .section__lead { color: var(--v2-tinta-2); font-size: var(--v2-t-18); max-width: 60ch; margin-top: var(--v2-e-3); }
.v2-info .tcards { display: grid; grid-template-columns: 7fr 5fr; grid-template-rows: 300px 260px; gap: var(--v2-e-2); }
.v2-info .tcards .photo { aspect-ratio: auto; height: 100%; border-radius: var(--v2-raio); }
.v2-info .tcards .photo:first-child { grid-row: span 2; }
.v2-info .tcards + .split { margin-top: var(--v2-e-8); }

/* OptViagens: lista, cartão de contacto em dorsal e serviços em linhas finas */
.v2-info .optv-list li { font-size: var(--v2-t-18); color: var(--v2-noite); }
.v2-info .optv-list li svg, .v2-info .optv-dl svg { color: var(--v2-vivo-texto); }
.v2-info .optv-list li strong { color: var(--v2-noite); font-weight: 700; }
.v2-info .optv-actions .btn { flex: 0 0 auto; }
.v2-info .optv-actions .btn svg { width: 18px; height: 18px; }
.v2-info .optv-logo { border: 0; border-radius: var(--v2-raio); box-shadow: 0 0 0 1px var(--v2-linha); }
.v2-info .optv-card { position: relative; border: 0; border-radius: var(--v2-raio); box-shadow: 0 0 0 1px var(--v2-linha); padding: var(--v2-e-6) var(--v2-e-5) var(--v2-e-5); }
.v2-info .optv-card::before, .v2-info .optv-card::after { content: ''; position: absolute; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); }
.v2-info .optv-card::before { left: 12px; } .v2-info .optv-card::after { right: 12px; }
.v2-info .optv-dl .optv-dt { color: var(--v2-tinta-2); font-size: var(--v2-t-12); letter-spacing: .14em; }
.v2-info .optv-dl .optv-dd a { font-family: var(--v2-display); font-weight: 400; font-size: var(--v2-t-21); letter-spacing: .02em; color: var(--v2-noite); text-decoration: none; }
.v2-info .optv-alt, .v2-info .optv-note { color: var(--v2-tinta-2); font-size: var(--v2-t-14); }
.v2-info .optv-alt a { color: var(--v2-vivo-texto); text-decoration: underline; }
.v2-info .optv-note { border-top-color: var(--v2-linha); }
.v2-info .svc-grid { grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 3px solid var(--v2-noite); }
.v2-info .svc { background: none; border: 0; border-bottom: 1px solid var(--v2-linha); border-right: 1px solid var(--v2-linha); border-radius: 0; box-shadow: none; padding: var(--v2-e-5) var(--v2-e-4); }
.v2-info .svc:nth-child(3n) { border-right: 0; }
.v2-info .svc:hover { transform: none; box-shadow: none; }
.v2-info .svc__ico { width: auto; height: auto; background: none; border-radius: 0; color: var(--v2-vivo-texto); }
.v2-info .svc__ico svg { width: 28px; height: 28px; }
.v2-info .svc h3 { font-size: var(--v2-t-21); color: var(--v2-noite); }
.v2-info .svc p { font-size: var(--v2-t-16); color: var(--v2-tinta-2); }
@media (max-width: 900px) {
  .v2 .hero-turismo { min-height: 80vh; }
  .v2 .pausa { right: 12px; }
  .v2-info .tcards { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 180px; }
  .v2-info .tcards .photo:first-child { grid-row: auto; grid-column: span 2; }
  .v2-info .svc-grid { grid-template-columns: 1fr; }
  .v2-info .svc, .v2-info .svc:nth-child(3n) { border-right: 0; }
}

/* Legais: índice feito dos títulos, como no regulamento; 404 com atalhos alinhados à esquerda */
.v2-info .reg-body h2 { font-size: var(--v2-t-28); margin: var(--v2-e-6) 0 var(--v2-e-3); scroll-margin-top: 120px; }
.v2-info .reg-body h2:first-child { margin-top: 0; }
.v2-info .reg-body ul, .v2-info .reg-body ol { padding-left: var(--v2-e-4); display: grid; gap: var(--v2-e-2); margin: var(--v2-e-3) 0; font-size: var(--v2-t-18); }
.v2 .atalhos__t { font-size: var(--v2-t-18); margin-bottom: var(--v2-e-4); }
.v2 .atalhos { display: flex; flex-wrap: wrap; gap: var(--v2-e-2); }

/* Homepage, distâncias e percurso (Dorsal antigo): camada leve para o mesmo sistema.
   Títulos em itálico como nas redes, cabeças de secção alinhadas à esquerda, cápsula e nota sem centrar. */
.v2 .hero-pag__acoes { display: flex; flex-wrap: wrap; gap: var(--v2-e-2); margin-top: var(--v2-e-5); }
.v2 .btn--light { background: #fff; color: var(--v2-noite); border-color: transparent; box-shadow: none; }
body.dorsal main h1, body.dorsal main h2 { transform: skewX(-8deg); transform-origin: left bottom; }
body.dorsal .section__head--center { text-align: left; margin-inline: 0; }
body.dorsal .section__head--center .section__lead { margin-inline: 0; }
body.dorsal .answer-capsule { margin-inline: 0; max-width: none; display: grid; grid-template-columns: 8fr 3fr; gap: 32px; align-items: end; }
body.dorsal .answer-capsule__text { max-width: 70ch; }
body.dorsal .answer-capsule__meta { margin: 0; }
@media (max-width: 900px) { body.dorsal .answer-capsule { grid-template-columns: 1fr; gap: 16px; } }
body.dorsal .nota-dist { max-width: 66ch; margin: var(--v2-e-6, 48px) 0 0; }
body.dorsal .nota-dist p { color: var(--v2-bruma); }
body.dorsal .faq { margin-inline: 0; }
body.dorsal .faq-mais { margin-top: 36px; }
body.dorsal .foto-legenda { position: absolute; z-index: 3; left: 24px; bottom: 24px; margin: 0; color: #fff; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; text-shadow: 0 1px 14px rgba(5,23,38,.75); }
body.dorsal .foto-legenda b { display: block; font-family: 'Anton', 'Arial Narrow', sans-serif; font-weight: 400; font-size: 2.369rem; letter-spacing: .01em; transform: skewX(-8deg); transform-origin: left; }

/* Parceiro oficial (Domitur Travel): selo no hero, cartão de contactos em dorsal, serviços em linhas finas,
   faixa de parceiros oficiais e bloco de grupos no turismo */
.v2 .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.v2 .parceiro-selo { display: grid; gap: var(--v2-e-3); justify-items: start; }
.v2 .parceiro-selo img { width: 240px; height: auto; }
.v2 .parceiro-selo small, .v2 .grupos__selo small { font-size: var(--v2-t-12); letter-spacing: .16em; text-transform: uppercase; color: var(--v2-bruma); }
.v2 .cartao-parceiro { position: sticky; top: 140px; background: #fff; border-radius: var(--v2-raio); box-shadow: 0 0 0 1px var(--v2-linha); padding: var(--v2-e-6) var(--v2-e-5) var(--v2-e-5); display: grid; gap: var(--v2-e-3); justify-items: start; }
.v2 .cartao-parceiro .furo, .v2 .oficial .furo { position: absolute; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-noite); }
.v2 .cartao-parceiro .f1, .v2 .oficial .f1 { left: 12px; } .v2 .cartao-parceiro .f2, .v2 .oficial .f2 { right: 12px; }
.v2 .cartao-parceiro img { width: 200px; height: auto; }
.v2 .cartao-parceiro__papel { font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; color: var(--v2-vivo-texto); font-weight: 700; }
.v2 .cartao-parceiro__sub { color: var(--v2-tinta-2); font-size: var(--v2-t-14); }
.v2 .cartao-parceiro__lista { list-style: none; padding: 0; display: grid; gap: var(--v2-e-3); width: 100%; border-top: 1px solid var(--v2-linha); padding-top: var(--v2-e-3); }
.v2 .cartao-parceiro__lista small { display: block; font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; color: var(--v2-tinta-2); }
.v2 .cartao-parceiro__lista a { font-family: var(--v2-display); font-size: var(--v2-t-21); letter-spacing: .02em; color: var(--v2-noite); text-decoration: none; overflow-wrap: anywhere; }
.v2 .servicos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 3px solid var(--v2-noite); }
.v2 .servicos li { display: grid; gap: var(--v2-e-2); align-content: start; padding: var(--v2-e-4) var(--v2-e-4) var(--v2-e-5) 0; border-bottom: 1px solid var(--v2-linha); font-weight: 700; font-size: var(--v2-t-18); }
.v2 .servicos .num { font-size: var(--v2-t-38); line-height: 1; color: var(--v2-vivo-texto); }
.v2 .servicos__fim { margin-top: var(--v2-e-5); max-width: 66ch; color: var(--v2-tinta-2); font-size: var(--v2-t-18); }
.v2 .duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: var(--v2-e-8); }
.v2 .parceiro-fecho { display: grid; grid-template-columns: 7fr 5fr; gap: var(--v2-e-7); align-items: end; }
.v2 .parceiro-fecho__forte { font-family: var(--v2-display); text-transform: uppercase; font-size: var(--v2-t-28); line-height: 1.05; transform: var(--v2-inclinar); transform-origin: left; color: var(--v2-noite) !important; }
.v2 .parceiro-fecho__assina { margin-top: var(--v2-e-4); font-size: var(--v2-t-12); letter-spacing: .2em; color: var(--v2-tinta-2); }
.v2 .oficiais { margin: var(--v2-e-7) 0 var(--v2-e-8); }
.v2 .oficiais__t, .v2 .apoios-t { margin-bottom: var(--v2-e-4); }
.v2 .oficial { position: relative; display: grid; grid-template-columns: 5fr 7fr; gap: var(--v2-e-6); align-items: center; background: #fff; border-radius: var(--v2-raio); box-shadow: 0 0 0 1px var(--v2-linha); padding: var(--v2-e-6); color: var(--v2-noite); text-decoration: none; transition: box-shadow .15s var(--v2-sair); }
.v2 .oficial img { width: 100%; max-width: 320px; height: auto; }
.v2 .oficial__texto { display: grid; gap: var(--v2-e-2); }
.v2 .oficial__papel { font-size: var(--v2-t-12); letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--v2-vivo-texto); }
.v2 .oficial__frase { font-size: var(--v2-t-21); line-height: 1.4; }
.v2 .oficial__mais { color: var(--v2-vivo-texto); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .v2 .oficial:hover { box-shadow: 0 0 0 2px var(--v2-noite); } }
.v2 .oficial:focus-visible { outline: 2px solid var(--v2-vivo-texto); outline-offset: 4px; }
.v2 .grupos { display: grid; grid-template-columns: 7fr 4fr; gap: var(--v2-e-7); align-items: center; }
.v2 .grupos .btn { margin-top: var(--v2-e-4); }
.v2 .grupos__selo { display: grid; gap: var(--v2-e-3); justify-items: start; background: #fff; border-radius: var(--v2-raio); box-shadow: 0 0 0 1px var(--v2-linha); padding: var(--v2-e-6) var(--v2-e-5); }
.v2 .grupos__selo img { width: 220px; height: auto; }
.v2 .grupos__selo small { color: var(--v2-tinta-2); }
@media (max-width: 900px) {
  .v2 .parceiro-selo img { width: 180px; }
  .v2 .cartao-parceiro { position: static; }
  .v2 .servicos { grid-template-columns: 1fr 1fr; }
  .v2 .servicos li { padding-right: var(--v2-e-3); font-size: var(--v2-t-16); }
  .v2 .duas-colunas, .v2 .parceiro-fecho, .v2 .oficial, .v2 .grupos { grid-template-columns: 1fr; gap: var(--v2-e-5); }
  .v2 .oficial { padding: var(--v2-e-6) var(--v2-e-4) var(--v2-e-4); }
  .v2 .oficial img { max-width: 220px; }
}

/* ============================================================
   Correções de UX e UI (29 set 2026, plano-atual.md)
   ============================================================ */

/* Caixa 1. Alinhamento: a inclinação do bloco (skewX) desalinhava cada linha dos títulos.
   Títulos de secção ficam direitos; o hero e a fita usam itálico por letra, que mantém a margem esquerda. */
.v2 { --v2-inclinar: none; --v2-ligacao: #0073B0; }
body.dorsal main h1, body.dorsal main h2, body.dorsal .foto-legenda b { transform: none; }
.v2 .hero-pag h1.cartaz, .v2 .meta h2.cartaz, body.dorsal .hero__titulo { font-style: italic; }
.v2 .cartaz, .v2 .lugar__nome b, .v2 .levantar__n, .v2 .parceiro-fecho__forte { transform: none; }

/* Caixa 1. Ritmo vertical: três espaços de secção (96, 64 e 0 em desktop; 64, 48 e 0 no telemóvel) */
.v2 .s-larga, .v2 .s-media, .v2-info .section, .v2-info .section--lg, body.dorsal main section.section { padding-block: 96px; }
.v2 .s-curta, .v2-info .acap-wrap, .v2 .capsula .caixa, body.dorsal main .trust { padding-block: 64px; }
.v2 .hero-pag__grelha { padding-bottom: 96px; }
body.dorsal main #distancias, body.dorsal main #distances, body.dorsal main .terr, body.dorsal main section.section.section--lg { padding-block: 96px; }
@media (max-width: 900px) { body.dorsal main #distancias, body.dorsal main #distances, body.dorsal main .terr, body.dorsal main section.section.section--lg { padding-block: 64px; } }
.v2-info h2:not(.cartaz) { margin-bottom: 24px; }
.v2-info .prose h2 { margin-top: 48px; }
.v2-info .prose h2:first-child, .v2-info .reg-body h2:first-child { margin-top: 0; }
.v2 .cabeca-seccao { margin-bottom: 48px; }
@media (max-width: 900px) {
  .v2 .s-larga, .v2 .s-media, .v2-info .section, .v2-info .section--lg, body.dorsal main section.section { padding-block: 64px; }
  .v2 .s-curta, .v2-info .acap-wrap, .v2 .capsula .caixa, body.dorsal main .trust { padding-block: 48px; }
  .v2 .hero-pag__grelha { padding-bottom: 64px; }
}

/* Caixa 1. Texto à esquerda e linhas de leitura até 66 carateres, também nas páginas do Dorsal antigo */
body.dorsal .faq-item__answer p, body.dorsal .pc-data p, body.dorsal .section__lead, body.dorsal main .prose p { max-width: 66ch; }
.v2-info .lstat { text-align: left; }
.v2-info .tline__d, .v2-info .qa__a { max-width: 66ch; }
.v2-info .tline__item { max-width: 72ch; }

/* Caixa 2. Ligações. Navegação (trilho) sem sublinhado; ligações dentro de uma frase distinguem-se
   pela cor (3:1 contra o texto, WCAG G183) e pelo peso, com sublinhado só ao passar ou focar. */
.v2 .migalhas a { text-decoration: none; }
.v2 .migalhas a:hover, .v2 .migalhas a:focus-visible { text-decoration: underline; }
.v2 p a:not(.btn), .v2 li a:not(.btn) { color: var(--v2-ligacao); font-weight: 600; text-decoration: none; }
.v2 p a:not(.btn):hover, .v2 li a:not(.btn):hover, .v2 p a:not(.btn):focus-visible, .v2 li a:not(.btn):focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.v2 .hero-pag p a:not(.btn), .v2 .meta a:not(.btn), .v2 .razao:last-child a { color: var(--v2-sinal); }

/* Caixa 2. Ações isoladas: forma de ação com seta, sem sublinhado, alvo de 44 px */
.v2 .acao, .v2 .oficial__mais, .v2 .acoes a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; color: var(--v2-vivo-texto); text-decoration: none; }
.v2 .acao::after, .v2 .oficial__mais::after, .v2 .acoes a::after { content: '→'; transition: transform .15s var(--v2-sair); }
@media (hover: hover) and (pointer: fine) {
  .v2 .acao:hover::after, .v2 .oficial:hover .oficial__mais::after, .v2 .acoes a:hover::after { transform: translateX(4px); }
}
.v2 .acoes { list-style: none; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--v2-linha); }
.v2 .acoes li { border-bottom: 1px solid var(--v2-linha); padding: 0; }
.v2 .acoes li::before { content: none; }
.v2 .acoes a { width: 100%; justify-content: space-between; padding-block: 12px; color: var(--v2-noite); }
.v2 .news-card__title a { color: inherit; font-weight: inherit; }

/* Caixa 2. Lista de notícias: o título é a ligação; a coluna do «Saber mais» sai */
.v2 .lista-noticias .news-card { grid-template-columns: 2fr 10fr; grid-template-areas: "tag tit" "tag exc" "tag lnk"; }
.v2 .lista-noticias .news-card__link { justify-self: start; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 900px) { .v2 .lista-noticias .news-card { grid-template-columns: 1fr; grid-template-areas: "tag" "tit" "exc" "lnk"; } }

/* Caixa 3. Fita de meta com a fotografia do Algarve em dezembro por trás, e camada escura para o contraste */
.v2 .meta { isolation: isolate; }
.v2 .meta__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.v2 .meta::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,23,38,.94) 0%, rgba(5,23,38,.78) 50%, rgba(5,23,38,.5) 100%); }
@media (max-width: 900px) { .v2 .meta::after { background: linear-gradient(180deg, rgba(5,23,38,.6) 0%, rgba(5,23,38,.92) 60%); } }

/* Caixa 3. Secção do percurso com o loop (marina na homepage, costa no percurso) por trás do texto */
body.dorsal .pc-data--video { position: relative; overflow: hidden; isolation: isolate; min-height: 760px; display: flex; align-items: flex-end; padding-top: 160px; }
body.dorsal .pc-data--video > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
body.dorsal .pc-data--video::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(5,23,38,.96) 0%, rgba(5,23,38,.8) 45%, rgba(5,23,38,.3) 100%); }
body.dorsal .pc-data--video > .container { position: relative; width: 100%; }
body.dorsal .pc-data__lugar { position: absolute; z-index: 2; top: 32px; left: max(24px, calc((100vw - 1240px) / 2 + 24px)); margin: 0; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: #C9D8E2; text-shadow: 0 1px 12px rgba(5,23,38,.8); }
body.dorsal .pc-data__lugar b { display: block; font-family: 'Anton', 'Arial Narrow', sans-serif; font-weight: 400; font-size: 2.369rem; letter-spacing: .01em; color: #fff; }
body.dorsal .pc-data__acao { margin-top: 40px; }
body.dorsal main section.pc-data--video { padding-top: 200px; }
@media (max-width: 900px) { body.dorsal .pc-data--video { min-height: 0; } body.dorsal main section.pc-data--video { padding-top: 160px; } body.dorsal .pc-data__lugar b { font-size: 1.777rem; } }

/* Caixa 4. Domitur na homepage: fundo branco depois da faixa cinzenta da OptViagens */
.v2-home-domitur .fundo-areia { background: #fff; }

/* Caixa 3. Imagem nas páginas de texto: FAQ com foto fixa ao lado, contactos e regulamento com o lugar */
.v2-info .faq-grelha { display: grid; grid-template-columns: 7fr 4fr; gap: 64px; align-items: start; }
.v2-info .faq-foto, .v2-info .contactos-foto, .v2-info .reg-foto { position: relative; margin: 0; }
.v2-info .faq-foto { position: sticky; top: 140px; }
.v2-info .faq-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--v2-raio); }
.v2-info .contactos-foto { margin-top: 48px; }
.v2-info .contactos-foto img, .v2-info .reg-foto img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--v2-raio); }
.v2-info .reg-foto { margin-bottom: 48px; }
.v2-info .faq-foto .lugar__nome, .v2-info .contactos-foto .lugar__nome, .v2-info .reg-foto .lugar__nome { position: absolute; left: 16px; bottom: 16px; color: #C9D8E2; background: rgba(5,23,38,.82); padding: 10px 14px; border-radius: var(--v2-raio); }
.v2-info .faq-foto .lugar__nome b, .v2-info .contactos-foto .lugar__nome b, .v2-info .reg-foto .lugar__nome b { color: #fff; font-size: var(--v2-t-28); }
@media (max-width: 900px) { .v2-info .faq-grelha { grid-template-columns: 1fr; gap: 48px; } .v2-info .faq-foto { position: static; } .v2-info .faq-foto img { aspect-ratio: 16 / 10; } }

/* Caixa 2. Restos da auditoria: ação isolada da faixa de fase, alvos de toque e linhas longas */
body.dorsal .faixa-fase a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; text-decoration: none; }
body.dorsal .faixa-fase a::after { content: '→'; }
body.dorsal .qa__a, body.dorsal .qa__q, .v2-info .tline__c { max-width: 66ch; }
.v2-info .contact-info a, .v2 .cartao-parceiro__lista a { display: inline-flex; align-items: center; min-height: 44px; }
.v2-info .form__check input { width: 24px; height: 24px; }
@media (max-width: 900px) { .v2 .migalhas a { display: inline-flex; align-items: center; min-height: 44px; } .v2 .migalhas { padding-top: 16px; } }

/* Caixa 1 e 2. Coerência entre as páginas do Dorsal antigo e as do v2: um só raio (4 px), botões sem sombra nem comprimido,
   a mesma cor de ação, e a FAQ em linhas finas como na página FAQ */
body.dorsal .btn { border-radius: 4px; box-shadow: none; font-weight: 700; }
body.dorsal .btn--primary, body.dorsal .btn--light, body.dorsal .btn--sinal { background: #09B4E3; color: #051726; box-shadow: none; }
@media (hover: hover) and (pointer: fine) { body.dorsal .btn--primary:hover, body.dorsal .btn--light:hover, body.dorsal .btn--sinal:hover { background: #3BC4EA; color: #051726; transform: none; box-shadow: none; } }
body.dorsal .btn--vazio, body.dorsal .btn--ghost, body.dorsal .btn--outline { border-radius: 4px; }
body.dorsal .faq { border-top: 3px solid #051726; margin-inline: 0; }
body.dorsal .faq-item { border: 0; border-bottom: 1px solid #D3DEE6; border-radius: 0; margin: 0; background: none; box-shadow: none; }
body.dorsal .faq-item__trigger { padding: 24px 0; font-weight: 700; font-size: 1.125rem; }
body.dorsal .faq-item__answer { padding: 0; }
/* Domitur na homepage e no turismo: título e parágrafos com o mesmo ritmo do resto */
.v2 .grupos h2 { margin-bottom: 24px; }
.v2 .grupos p + p { margin-top: 16px; }

/* Caixa 2. Pausa do vídeo também fora do main.v2 (homepage e percurso) */
.pausa { position: absolute; z-index: 3; right: 24px; top: 24px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; background: rgba(5,23,38,.8); color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: 4px; padding: 10px 14px; font: 500 .875rem/1 'Roboto', system-ui, sans-serif; cursor: pointer; }
.pausa:focus-visible { outline: 2px solid #09B4E3; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .v2 .btn { transition: none; } }
