/* ─────────────────────────────────────────────────────────────────────────────────────────────
   GD GAFANHA · BASQUETEBOL — o site institucional (13/10/2026)

   A IDENTIDADE SAI DO ESCUDO: o azul-marinho da bola, o vermelho do escudo, o branco, e as três
   faixas de água por baixo do moliceiro — a Ria. As «ondas» atravessam o site como assinatura.
   Letra: Barlow Condensed (títulos, maiúsculas, como nos boletins de jogo) e Inter (texto).
   Alojadas no próprio site: nenhum pedido a terceiros, nada a declarar em cookies.
   Laranja nunca como cor de letra (regra da app).
   ───────────────────────────────────────────────────────────────────────────────────────────── */

@font-face { font-family: 'Barlow Condensed'; font-weight: 600; font-display: swap; src: url('/fontes/barlow-condensed-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-weight: 700; font-display: swap; src: url('/fontes/barlow-condensed-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-weight: 800; font-display: swap; src: url('/fontes/barlow-condensed-latin-800-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 400; font-display: swap; src: url('/fontes/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 500; font-display: swap; src: url('/fontes/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 600; font-display: swap; src: url('/fontes/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 700; font-display: swap; src: url('/fontes/inter-latin-700-normal.woff2') format('woff2'); }

:root {
  --marinho: #16204a;      /* o fundo forte: a bola do escudo, escurecida */
  --azul: #2c3977;         /* o azul do escudo */
  --azul-vivo: #3b4ea3;
  --vermelho: #c1272d;     /* o escudo */
  --vermelho-escuro: #9e1f24;
  --branco: #ffffff;
  --papel: #f4f5f8;
  --tinta: #141a2e;
  --cinza: #5a6275;
  --linha: #dfe3ec;
  --verde: #1d7a4f;
  --titulos: 'Barlow Condensed', 'Arial Narrow', system-ui, sans-serif;
  --texto: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --largura: 1200px;
  --raio: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--texto); color: var(--tinta); background: var(--papel); font-size: 16px; line-height: 1.6;
       -webkit-font-smoothing: antialiased; }
a { color: var(--azul); }
img { max-width: 100%; display: block; }
h1, h2, h3 { font-family: var(--titulos); text-transform: uppercase; letter-spacing: .01em; line-height: 1; margin: 0; }
.saltar { position: absolute; left: -999px; top: 0; }
.saltar:focus { left: 12px; top: 12px; background: #fff; padding: 10px 14px; z-index: 100; }
:focus-visible { outline: 3px solid var(--vermelho); outline-offset: 2px; }
.dentro { max-width: var(--largura); margin: 0 auto; padding: 0 20px; }

/* ── Topo ──────────────────────────────────────────────────────────────────────────────────── */
.faixa-topo { background: var(--marinho); color: rgba(255,255,255,.75); font-size: 12.5px; letter-spacing: .04em; }
.faixa-topo__dentro { max-width: var(--largura); margin: 0 auto; padding: 7px 20px; display: flex; justify-content: space-between; gap: 12px; }
.faixa-topo a { color: #fff; text-decoration: none; font-weight: 600; }
.faixa-topo a:hover { text-decoration: underline; }
@media (max-width: 640px) { .faixa-topo__dentro > span { display: none; } .faixa-topo__dentro { justify-content: flex-end; } }

.cabeca { background: #fff; position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 var(--linha), 0 6px 20px rgba(22,32,74,.06); }
.cabeca::after { content: ''; display: block; height: 4px; background: linear-gradient(90deg, var(--vermelho) 0 33%, var(--azul) 33% 100%); }
.cabeca__dentro { max-width: var(--largura); margin: 0 auto; padding: 10px 20px; display: flex; align-items: center; gap: 24px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--marinho); flex-shrink: 0; }
.marca img { width: 56px; height: 56px; }
.marca__texto { display: flex; flex-direction: column; align-items: flex-start; line-height: .95; }
.marca__texto strong { font-family: var(--titulos); font-weight: 800; font-size: 28px; text-transform: uppercase; letter-spacing: .01em; }
.marca__texto em { font-style: normal; font-family: var(--titulos); font-weight: 600; font-size: 15px; letter-spacing: .32em;
                   text-transform: uppercase; color: var(--vermelho); }
.menu { display: flex; gap: 2px; margin-left: auto; align-items: center; }
.menu a { font-family: var(--titulos); font-weight: 700; font-size: 18px; text-transform: uppercase; letter-spacing: .04em;
          color: var(--marinho); text-decoration: none; padding: 10px 12px; position: relative; }
.menu a::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 3px; background: var(--vermelho);
                 transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.menu a:hover::after, .menu a.activo::after { transform: scaleX(1); }
.menu a.menu__destaque { background: var(--vermelho); color: #fff; margin-left: 10px; padding: 10px 18px; border-radius: var(--raio); }
.menu a.menu__destaque::after { display: none; }
.menu a.menu__destaque:hover { background: var(--vermelho-escuro); }
.menu-botao { display: none; margin-left: auto; background: none; border: 0; padding: 10px; cursor: pointer; align-items: center; gap: 4px; flex-direction: column; }
.menu-botao span { display: block; width: 26px; height: 3px; background: var(--marinho); border-radius: 2px; }
.menu-botao b { font-family: var(--titulos); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--marinho); }
@media (max-width: 960px) {
  .menu-botao { display: flex; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--marinho); flex-direction: column;
          align-items: stretch; padding: 8px 12px 16px; }
  .menu.aberto { display: flex; }
  .menu a { color: #fff; font-size: 22px; padding: 12px 8px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .menu a::after { display: none; }
  .menu a.menu__destaque { margin: 12px 0 0; text-align: center; }
  .marca__texto strong { font-size: 24px; }
}

.aviso-ensaio { display: none; background: #ffe9a8; color: var(--tinta); text-align: center; padding: 6px; font-size: 13.5px; font-weight: 600; }
body.ensaio .aviso-ensaio { display: block; }

/* ── Peças comuns ──────────────────────────────────────────────────────────────────────────── */
.ondas { display: grid; gap: 7px; }
.ondas i { display: block; height: 4px; background: currentColor; border-radius: 4px; }
.ondas i:nth-child(2) { width: 82%; } .ondas i:nth-child(3) { width: 64%; }

.secao { padding: 72px 0; }
.secao--branca { background: #fff; }
.secao--marinho { background: var(--marinho); color: #fff; }
.secao__cabeca { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; }
.secao__titulo { font-size: clamp(38px, 5vw, 56px); font-weight: 800; color: var(--marinho); }
.secao--marinho .secao__titulo { color: #fff; }
.secao__titulo::before { content: '»'; color: var(--vermelho); margin-right: 10px; }
.secao__mais { font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 17px;
               color: var(--vermelho); text-decoration: none; }
.secao__mais:hover { text-decoration: underline; }
.secao--marinho .secao__mais { color: #fff; }
.etiqueta { display: inline-block; font-family: var(--titulos); font-weight: 700; font-size: 14px; letter-spacing: .1em;
            text-transform: uppercase; background: var(--vermelho); color: #fff; padding: 4px 10px; border-radius: 2px; }
.botao { display: inline-flex; align-items: center; gap: 10px; font-family: var(--titulos); font-weight: 700; font-size: 19px;
         text-transform: uppercase; letter-spacing: .05em; padding: 14px 26px; border-radius: var(--raio); text-decoration: none;
         transition: transform .15s, background .15s; }
.botao:hover { transform: translateY(-2px); }
.botao--vermelho { background: var(--vermelho); color: #fff; } .botao--vermelho:hover { background: var(--vermelho-escuro); }
.botao--branco { background: #fff; color: var(--marinho); }
.botao--contorno { border: 2px solid currentColor; color: #fff; }
.vazio { color: var(--cinza); font-size: 17px; }
.secao--marinho .vazio { color: rgba(255,255,255,.7); }
.a-carregar { min-height: 60vh; display: grid; place-items: center; }
.a-carregar span { width: 42px; height: 42px; border-radius: 50%; border: 4px solid var(--linha); border-top-color: var(--vermelho); animation: roda 1s linear infinite; }
@keyframes roda { to { transform: rotate(360deg); } }

/* ── O destaque (hero) ─────────────────────────────────────────────────────────────────────── */
.destaque { position: relative; overflow: hidden; color: #fff;
            background:
              radial-gradient(1200px 500px at 85% 20%, rgba(59,78,163,.55), transparent 60%),
              linear-gradient(160deg, #1d2a63 0%, var(--marinho) 55%, #0e1533 100%); }
.destaque__quadra { position: absolute; inset: 0; opacity: .09; pointer-events: none; }
.destaque__escudo { position: absolute; right: -140px; top: 50%; width: 760px; transform: translateY(-50%); opacity: .07; pointer-events: none; }
.destaque__faixa { position: absolute; left: -10%; right: -10%; bottom: 90px; height: 120px; background: var(--vermelho);
                   transform: skewY(-4deg); opacity: .9; mix-blend-mode: multiply; }
.destaque__dentro { position: relative; max-width: var(--largura); margin: 0 auto; padding: 72px 20px 110px;
                    display: grid; grid-template-columns: 1.25fr .9fr; gap: 48px; align-items: center; }
.destaque__eyebrow { display: flex; gap: 12px; align-items: center; margin-bottom: 18px; flex-wrap: wrap; }
.destaque__eyebrow span:last-child { font-family: var(--titulos); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: 15px; opacity: .85; }
.destaque h1 { font-size: clamp(56px, 9vw, 112px); font-weight: 800; line-height: .88; }
.destaque h1 span { display: block; color: transparent; -webkit-text-stroke: 2px #fff; }
.destaque__lede { font-size: 19px; line-height: 1.55; max-width: 560px; margin: 22px 0 30px; color: rgba(255,255,255,.88); }
.destaque__accoes { display: flex; gap: 12px; flex-wrap: wrap; }
.destaque .ondas { position: absolute; left: 20px; bottom: 34px; width: 180px; color: rgba(255,255,255,.35); }
@media (max-width: 900px) {
  .destaque__dentro { grid-template-columns: 1fr; padding: 48px 20px 120px; gap: 36px; }
  .destaque__escudo { width: 520px; right: -200px; top: 30%; }
}

/* O próximo jogo, no destaque */
.proximo { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(6px);
           border-radius: 8px; padding: 24px; position: relative; }
.proximo__rotulo { font-family: var(--titulos); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 15px; color: rgba(255,255,255,.75); }
.proximo__equipa { font-family: var(--titulos); font-weight: 700; font-size: 20px; text-transform: uppercase; margin-top: 2px; }
.proximo__duelo { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin: 22px 0; text-align: center; }
.proximo__lado img, .proximo__lado .iniciais { width: 86px; height: 86px; margin: 0 auto 10px; object-fit: contain; }
.proximo__lado strong { font-family: var(--titulos); font-size: 20px; text-transform: uppercase; line-height: 1.05; display: block; }
.proximo__vs { font-family: var(--titulos); font-weight: 800; font-size: 28px; color: var(--vermelho); background: #fff; border-radius: 50%;
               width: 52px; height: 52px; display: grid; place-items: center; }
.proximo__quando { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.16); padding-top: 16px; text-align: center; }
.proximo__quando div + div { border-left: 1px solid rgba(255,255,255,.16); }
.proximo__quando b { display: block; font-family: var(--titulos); font-size: 30px; font-weight: 800; line-height: 1; }
.proximo__quando small { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.proximo__local { margin-top: 14px; font-size: 14px; color: rgba(255,255,255,.8); text-align: center; }
.iniciais { border-radius: 50%; background: rgba(255,255,255,.12); border: 2px solid rgba(255,255,255,.35); display: grid; place-items: center;
            font-family: var(--titulos); font-weight: 800; font-size: 30px; color: #fff; }

/* ── A fita dos resultados ─────────────────────────────────────────────────────────────────── */
.fita { background: var(--vermelho); color: #fff; overflow: hidden; }
.fita__dentro { max-width: var(--largura); margin: 0 auto; padding: 0 20px; display: flex; align-items: stretch; }
.fita__titulo { font-family: var(--titulos); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: 17px;
                background: var(--vermelho-escuro); padding: 14px 18px; display: flex; align-items: center; white-space: nowrap; margin-left: -20px; }
.fita__lista { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.fita__lista::-webkit-scrollbar { display: none; }
.fita__pista { display: flex; width: max-content; }
.fita__item--copia { display: none; }
.fita__pausa { display: none; flex: 0 0 48px; border: 0; background: var(--vermelho-escuro); color: #fff; cursor: pointer; margin-right: -20px;
               align-items: center; justify-content: center; }
.fita__pausa span { width: 12px; height: 14px; border-left: 4px solid #fff; border-right: 4px solid #fff; }
.fita--parada .fita__pausa span { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent #fff; }
.fita__pausa:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }
.fita--anda .fita__lista { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%);
                           mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); }
.fita--anda .fita__item--copia { display: flex; }
.fita--anda .fita__pausa { display: flex; }
.fita--anda .fita__pista { animation: fita-anda var(--fita-tempo, 40s) linear infinite; }
.fita--anda:hover .fita__pista, .fita--anda:focus-within .fita__pista, .fita--parada .fita__pista { animation-play-state: paused; }
@keyframes fita-anda { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .fita--anda .fita__pista { animation: none; }
  .fita--anda .fita__item--copia, .fita--anda .fita__pausa { display: none; }
  .fita--anda .fita__lista { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}
.fita__item { padding: 12px 22px; border-right: 1px solid rgba(255,255,255,.2); white-space: nowrap; font-size: 14px; display: flex; gap: 10px; align-items: center; }
.fita__item small { opacity: .8; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.fita__item b { font-family: var(--titulos); font-size: 20px; font-weight: 800; }
.vd { font-family: var(--titulos); font-weight: 800; font-size: 13px; padding: 2px 7px; border-radius: 2px; background: #fff; }
.vd--v { color: var(--verde); } .vd--d { color: var(--vermelho); } .vd--e { color: var(--cinza); }

/* ── Notícias ──────────────────────────────────────────────────────────────────────────────── */
.noticias { display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; }
.noticias__lado { display: grid; gap: 16px; }
@media (max-width: 860px) { .noticias { grid-template-columns: 1fr; } }
.noticia-cartao { background: #fff; border-radius: 6px; overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column;
                  box-shadow: 0 1px 2px rgba(22,32,74,.06); transition: transform .2s, box-shadow .2s; }
.noticia-cartao:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(22,32,74,.14); }
.capa { position: relative; background: linear-gradient(135deg, var(--azul), var(--marinho)); color: #fff; aspect-ratio: 16/9; overflow: hidden;
        display: flex; align-items: flex-end; padding: 20px; }
.capa::before { content: ''; position: absolute; right: -40px; bottom: -60px; width: 260px; height: 260px; background: url('/marca-agua.png') center/contain no-repeat; opacity: .14; }
.capa::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: var(--vermelho); }
.capa__texto { position: relative; font-family: var(--titulos); font-weight: 800; text-transform: uppercase; font-size: 26px; line-height: 1; max-width: 85%; }
.noticia-cartao--grande .capa { aspect-ratio: auto; min-height: 340px; }
.noticia-cartao--grande .capa__texto { font-size: clamp(34px, 4vw, 52px); }
.noticia-cartao__corpo { padding: 18px 20px 22px; display: grid; gap: 8px; }
.noticia-cartao__meta { font-size: 13px; color: var(--cinza); letter-spacing: .02em; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.noticia-cartao__meta .etiqueta { font-size: 12px; padding: 2px 8px; }
.noticia-cartao h3 { font-size: 26px; color: var(--marinho); line-height: 1.02; }
.noticia-cartao p { margin: 0; color: var(--cinza); }
.noticias__lado .noticia-cartao { flex-direction: row; }
.noticias__lado .capa { width: 38%; aspect-ratio: auto; min-height: 120px; padding: 12px; flex-shrink: 0; }
.noticias__lado .capa::before { width: 140px; height: 140px; right: -30px; bottom: -40px; }
.noticias__lado .capa__texto { font-size: 15px; }
.noticias__lado h3 { font-size: 21px; }
.noticias-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }

/* ── Números ───────────────────────────────────────────────────────────────────────────────── */
.numeros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); }
.numeros div { padding: 30px 20px; text-align: center; }
.numeros div + div { border-left: 1px solid rgba(255,255,255,.15); }
.numeros b { display: block; font-family: var(--titulos); font-weight: 800; font-size: clamp(48px, 6vw, 76px); line-height: .9; }
.numeros small { font-family: var(--titulos); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: 15px; color: rgba(255,255,255,.75); }
@media (max-width: 700px) { .numeros { grid-template-columns: 1fr 1fr; } .numeros div:nth-child(3) { border-left: 0; } .numeros div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.15); } }

/* ── O programa ────────────────────────────────────────────────────────────────────────────── */
.programa { position: relative; overflow: hidden; }
.programa__escudo { position: absolute; left: -180px; top: 40px; width: 560px; opacity: .06; pointer-events: none; }
.pilares { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; position: relative; }
@media (max-width: 860px) { .pilares { grid-template-columns: 1fr; } }
.pilar { border-top: 4px solid var(--vermelho); padding-top: 18px; }
.pilar span { font-family: var(--titulos); font-weight: 800; font-size: 54px; color: rgba(255,255,255,.18); line-height: .8; }
.pilar h3 { font-size: 30px; margin: 10px 0 10px; }
.pilar p { margin: 0; color: rgba(255,255,255,.82); }
.programa__intro { font-size: 20px; max-width: 760px; color: rgba(255,255,255,.88); margin: 0; }

/* ── Calendário ────────────────────────────────────────────────────────────────────────────── */
.jogos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.jogo { background: #fff; border-radius: 6px; display: grid; grid-template-columns: 96px 1fr auto; align-items: stretch; overflow: hidden;
        box-shadow: 0 1px 2px rgba(22,32,74,.06); }
.jogo__data { background: var(--marinho); color: #fff; display: grid; place-items: center; text-align: center; padding: 12px 6px; }
.jogo__data b { display: block; font-family: var(--titulos); font-weight: 800; font-size: 40px; line-height: .9; }
.jogo__data small { font-family: var(--titulos); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 14px; }
.jogo--resultado .jogo__data { background: var(--azul); }
.jogo__meio { padding: 14px 18px; display: grid; gap: 6px; align-content: center; min-width: 0; }
.jogo__equipa { font-family: var(--titulos); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 14px; color: var(--vermelho); }
.jogo__prova { font-size: 12.5px; color: var(--tinta-2, #4a5468); margin-top: 1px; line-height: 1.3; }
.jogo__prova b { font-weight: 700; color: var(--marinho); }
.jogo__duelo { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; }
.jogo__lado { display: flex; align-items: center; gap: 10px; min-width: 0; }
.jogo__lado:last-child { flex-direction: row-reverse; text-align: right; }
.jogo__lado img, .jogo__lado .iniciais { width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; }
.jogo__lado .iniciais { background: var(--papel); border-color: var(--linha); color: var(--marinho); font-size: 16px; }
.jogo__lado span { font-family: var(--titulos); font-weight: 700; font-size: 21px; text-transform: uppercase; line-height: 1; overflow: hidden; text-overflow: ellipsis; }
.jogo__placar { font-family: var(--titulos); font-weight: 800; font-size: 30px; color: var(--marinho); white-space: nowrap; }
.jogo__placar--vs { font-size: 20px; color: var(--cinza); }
.jogo__info { font-size: 13px; color: var(--cinza); }
.jogo__fim { display: grid; place-items: center; padding: 0 18px; }
.casa-fora { font-family: var(--titulos); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; padding: 4px 9px;
             border: 2px solid var(--marinho); color: var(--marinho); border-radius: 2px; }
.casa-fora--casa { background: var(--marinho); color: #fff; }
@media (max-width: 640px) {
  .jogo { grid-template-columns: 72px 1fr; }
  .jogo__fim { display: none; }
  .jogo__data b { font-size: 32px; }
  .jogo__lado span { font-size: 17px; }
  .jogo__lado img, .jogo__lado .iniciais { width: 30px; height: 30px; }
  .jogo__placar { font-size: 24px; }
}
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.filtros a { font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 16px; text-decoration: none;
             padding: 8px 14px; border: 2px solid var(--marinho); color: var(--marinho); border-radius: var(--raio); }
.filtros a.activo, .filtros a:hover { background: var(--marinho); color: #fff; }
.mes { font-family: var(--titulos); font-weight: 800; font-size: 28px; color: var(--marinho); text-transform: uppercase; margin: 34px 0 12px;
       display: flex; align-items: center; gap: 14px; }
.mes::after { content: ''; flex: 1; height: 2px; background: var(--linha); }
.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 960px) { .duas-colunas { grid-template-columns: 1fr; } }
/* PRÓXIMOS JOGOS E ÚLTIMOS RESULTADOS LADO A LADO, linha a linha (Bruno, 21/10/2026): o 2.º jogo
   de uma coluna começa à altura do 2.º da outra, seja qual for o tamanho de cada cartão. As duas
   colunas partilham as linhas da grelha de fora (subgrid); a lista deixa de ser caixa própria. */
.duas-colunas--alinhadas { grid-template-rows: auto repeat(4, auto); row-gap: 10px; }
.duas-colunas--alinhadas > div { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 10px; }
.duas-colunas--alinhadas > div > .subtitulo { margin-bottom: 4px; }
.duas-colunas--alinhadas .jogos { display: contents; }
.duas-colunas--alinhadas .jogos > li { height: 100%; box-sizing: border-box; }
@media (max-width: 960px) {
  .duas-colunas--alinhadas { grid-template-rows: none; }
  .duas-colunas--alinhadas > div { grid-row: auto; grid-template-rows: none; }
}
.subtitulo { font-family: var(--titulos); font-weight: 800; font-size: 26px; text-transform: uppercase; color: var(--marinho); margin: 0 0 14px; }

/* ── Equipas ───────────────────────────────────────────────────────────────────────────────── */
.equipas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.equipa { position: relative; overflow: hidden; display: block; text-decoration: none; background: #fff; border-radius: 6px; padding: 24px 22px 20px;
          color: var(--marinho); box-shadow: 0 1px 2px rgba(22,32,74,.06); transition: transform .2s, box-shadow .2s; min-height: 170px; }
.equipa:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(22,32,74,.14); }
.equipa::after { content: ''; position: absolute; right: -30px; bottom: -40px; width: 150px; height: 150px; background: url('/marca-agua.png') center/contain no-repeat;
                 filter: invert(18%) sepia(40%) saturate(2000%) hue-rotate(215deg); opacity: .08; }
.equipa__escalao { font-family: var(--titulos); font-weight: 800; font-size: 58px; line-height: .85; text-transform: uppercase; }
.equipa__nome { font-family: var(--titulos); font-weight: 700; font-size: 19px; text-transform: uppercase; margin-top: 8px; color: var(--cinza); }
.equipa__genero { position: absolute; top: 18px; right: 18px; }
.equipa__ir { margin-top: 18px; font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--vermelho); font-size: 15px; }
.grupo-equipas + .grupo-equipas { margin-top: 44px; }

/* ── Parceiros ─────────────────────────────────────────────────────────────────────────────── */
.parceiros { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.parceiro { background: #fff; border-radius: 6px; height: 120px; display: grid; place-items: center; padding: 18px; box-shadow: 0 1px 2px rgba(22,32,74,.06); }
.parceiro a, .parceiro > span { display: grid; place-items: center; width: 100%; height: 100%; text-decoration: none; color: var(--marinho);
                                font-family: var(--titulos); font-weight: 700; font-size: 20px; text-transform: uppercase; text-align: center; }
.parceiro img { max-height: 78px; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.parceiro:hover img { filter: none; opacity: 1; }
.parceiro--principal { grid-column: span 2; height: 160px; }
.parceiro--principal img { max-height: 110px; }
@media (max-width: 520px) { .parceiro--principal { grid-column: span 1; } }
.convite { margin-top: 36px; display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap;
           background: #fff; border-left: 6px solid var(--vermelho); padding: 22px 26px; border-radius: 4px; }
.convite p { margin: 0; font-size: 18px; max-width: 640px; }

/* ── Junta-te ──────────────────────────────────────────────────────────────────────────────── */
.junta { position: relative; overflow: hidden; background: var(--vermelho); color: #fff; }
.junta::before { content: ''; position: absolute; right: -80px; top: -80px; width: 480px; height: 480px; background: url('/marca-agua.png') center/contain no-repeat; opacity: .14; }
.junta__dentro { position: relative; max-width: var(--largura); margin: 0 auto; padding: 72px 20px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: center; }
.junta h2 { font-size: clamp(48px, 7vw, 88px); font-weight: 800; line-height: .9; }
.junta p { font-size: 19px; margin: 18px 0 0; max-width: 560px; }
.junta__accoes { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
@media (max-width: 860px) { .junta__dentro { grid-template-columns: 1fr; } }

/* ── Páginas interiores ────────────────────────────────────────────────────────────────────── */
.titulo-pagina { background: linear-gradient(160deg, #1d2a63, var(--marinho)); color: #fff; position: relative; overflow: hidden; }
.titulo-pagina__escudo { position: absolute; right: -60px; top: -60px; width: 340px; opacity: .08; }
.titulo-pagina__dentro { position: relative; max-width: var(--largura); margin: 0 auto; padding: 56px 20px 48px; }
.titulo-pagina h1 { font-size: clamp(48px, 7vw, 84px); font-weight: 800; }
.titulo-pagina p { margin: 12px 0 0; font-size: 18px; color: rgba(255,255,255,.82); max-width: 640px; }
.titulo-pagina .ondas { width: 140px; color: var(--vermelho); margin-top: 22px; }
.artigo { background: #fff; max-width: 820px; margin: -32px auto 0; position: relative; padding: 40px clamp(20px, 5vw, 56px) 48px; border-radius: 6px;
          box-shadow: 0 10px 40px rgba(22,32,74,.1); }
.artigo__meta { font-size: 14px; color: var(--cinza); display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 18px; }
.artigo h1 { font-size: clamp(38px, 5vw, 58px); font-weight: 800; color: var(--marinho); margin-bottom: 24px; }
.artigo p { font-size: 18px; line-height: 1.75; margin: 0 0 18px; }
.artigo__voltar { display: inline-block; margin-top: 18px; font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--vermelho); text-decoration: none; }
.texto-clube { max-width: 820px; font-size: 18px; line-height: 1.75; }
.contactos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.contacto { background: #fff; border-radius: 6px; padding: 24px; border-top: 4px solid var(--vermelho); }
.contacto small { font-family: var(--titulos); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cinza); font-size: 14px; }
.contacto a, .contacto span { display: block; margin-top: 6px; font-family: var(--titulos); font-weight: 700; font-size: 26px; color: var(--marinho); text-decoration: none; word-break: break-word; }

/* ── Rodapé ────────────────────────────────────────────────────────────────────────────────── */
.rodape { background: var(--marinho); color: rgba(255,255,255,.8); position: relative; padding-top: 56px; }
.rodape > .ondas { position: absolute; top: 24px; left: 20px; width: 160px; color: var(--vermelho); }
.rodape__dentro { max-width: var(--largura); margin: 0 auto; padding: 0 20px 40px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; }
@media (max-width: 860px) { .rodape__dentro { grid-template-columns: 1fr 1fr; } .rodape__marca { grid-column: 1 / -1; } }
.rodape__marca { display: flex; gap: 16px; align-items: flex-start; }
.rodape__marca strong { display: block; font-family: var(--titulos); font-weight: 800; font-size: 30px; text-transform: uppercase; color: #fff; line-height: .95; }
.rodape__marca span { font-family: var(--titulos); font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: #fff; opacity: .8; }
.rodape__marca p { margin: 10px 0 0; font-size: 14px; }
.rodape__col { display: grid; gap: 8px; align-content: start; }
.rodape__col h2 { font-size: 18px; letter-spacing: .1em; color: #fff; margin-bottom: 6px; }
.rodape__col a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 15px; }
.rodape__col a:hover { color: #fff; text-decoration: underline; }
.rodape__nota { font-size: 13px; color: rgba(255,255,255,.6); }
.rodape__base { border-top: 1px solid rgba(255,255,255,.12); padding: 18px 20px; text-align: center; font-size: 13px; color: rgba(255,255,255,.6); }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Utilitários (o site não usa estilos dentro das páginas: a política de segurança não os deixa). */
.espaco { height: 44px; }
.secao--colada { padding-top: 0; }
.titulo-pagina__dentro--alto { padding-bottom: 72px; }
.programa__intro--espaco { margin-bottom: 28px; }
.sr { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ── O separador do torneio (20/10/2026) ─────────────────────────────────────────────────────
   Usa as peças do site (títulos condensados, etiquetas, botões, a fita das ondas) e acrescenta
   o que o torneio tem de próprio: separadores, tabelas de classificação, formulários, a ficha da
   equipa e a mesa, que tem de se usar com o dedo num telemóvel ao lado do campo. */
.tn-topo { background: linear-gradient(160deg, #1d2a63, var(--marinho)); color: #fff; position: relative; overflow: hidden; }
.tn-topo__dentro { position: relative; max-width: var(--largura); margin: 0 auto; padding: 40px 20px 24px; }
.tn-topo__linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.tn-topo h1 { font-size: clamp(36px, 6vw, 68px); font-weight: 800; margin-top: 14px; max-width: 900px; }
.tn-topo__quando { margin: 10px 0 0; font-size: 18px; color: rgba(255,255,255,.85); }
.tn-linguas { display: flex; gap: 4px; }
.tn-lingua { color: #fff; text-decoration: none; font-family: var(--titulos); font-weight: 700; letter-spacing: .06em; padding: 4px 9px; border: 1px solid rgba(255,255,255,.35); border-radius: var(--raio); }
.tn-lingua.activo, .tn-lingua:hover { background: #fff; color: var(--marinho); }
.tn-separadores { background: rgba(0,0,0,.18); position: relative; }
.tn-separadores__dentro { max-width: var(--largura); margin: 0 auto; padding: 0 12px; display: flex; overflow-x: auto; scrollbar-width: none; }
.tn-separadores__dentro::-webkit-scrollbar { display: none; }
.tn-separadores a { color: rgba(255,255,255,.8); text-decoration: none; font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 17px; padding: 14px 12px; white-space: nowrap; border-bottom: 4px solid transparent; }
.tn-separadores a.activo, .tn-separadores a:hover { color: #fff; border-bottom-color: var(--vermelho); }
.tn-grelha { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
@media (max-width: 900px) { .tn-grelha { grid-template-columns: 1fr; } }
.tn-texto p { margin: 0 0 12px; font-size: 17px; }
.tn-accoes { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0 8px; }
.tn-botao-contorno { border: 2px solid var(--marinho); color: var(--marinho); background: #fff; }
.tn-bloco { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; margin: 20px 0; }
.tn-h2 { font-size: 26px; font-weight: 800; color: var(--marinho); margin-bottom: 12px; }
.tn-h1 { font-size: clamp(30px, 5vw, 48px); font-weight: 800; color: var(--marinho); margin: 8px 0 4px; }
.tn-factos { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 0 0 8px; }
.tn-factos > div, .tn-resumo > div { background: var(--marinho); color: #fff; border-radius: var(--raio); padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.tn-factos small, .tn-resumo small { font-family: var(--titulos); text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.7); font-size: 13px; margin-top: 4px; }
.tn-factos b, .tn-resumo b { font-family: var(--titulos); font-size: 22px; font-weight: 700; line-height: 1.1; }
.tn-factos span { font-size: 14px; color: rgba(255,255,255,.8); }
.tn-lado .tn-factos { grid-template-columns: 1fr; }
.tn-precos { display: flex; gap: 10px; }
.tn-preco { flex: 1; border: 2px solid var(--marinho); border-radius: var(--raio); padding: 12px; text-align: center; }
.tn-preco small { display: block; font-family: var(--titulos); text-transform: uppercase; font-weight: 700; color: var(--marinho); }
.tn-preco b { display: block; font-family: var(--titulos); font-size: 34px; color: var(--vermelho); line-height: 1.1; }
.tn-preco span { font-size: 13px; color: var(--cinza); }
.tn-dia h3 { font-size: 20px; color: var(--vermelho); margin: 14px 0 6px; }
.tn-dia ul, .tn-lista { list-style: none; margin: 0; padding: 0; }
.tn-dia li { display: flex; gap: 14px; padding: 7px 0; border-bottom: 1px solid var(--linha); }
.tn-dia li b { font-family: var(--titulos); font-size: 19px; min-width: 52px; color: var(--marinho); }
.tn-lista li { padding: 6px 0; border-bottom: 1px solid var(--linha); }
.tn-contacto { display: flex; flex-direction: column; margin-bottom: 10px; }
.tn-contacto small { color: var(--cinza); }
.tn-morada { margin: 0 0 12px; }
.tn-nota { color: var(--cinza); font-size: 14px; }
.tn-aviso { background: #fff4d6; border-left: 4px solid #b98900; padding: 10px 12px; }
.tn-erro { color: var(--vermelho-escuro); font-weight: 600; min-height: 1em; }
.tn-msg { min-height: 1em; font-weight: 600; color: var(--verde); }
.tn-ok { color: var(--verde); font-weight: 700; }
.tn-espera { color: #8a5a00; font-weight: 700; }
.tn-rodape { padding: 0 20px 40px; font-size: 14px; color: var(--cinza); }
/* Jogos */
.tn-jogos { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 8px; }
.tn-jogo { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); display: flex; align-items: stretch; }
.tn-jogo--vivo { border-color: var(--vermelho); box-shadow: 0 0 0 2px rgba(193,39,45,.15); }
.tn-jogo__hora { background: var(--marinho); color: #fff; padding: 10px; min-width: 84px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.tn-jogo__hora b { font-family: var(--titulos); font-size: 24px; }
.tn-jogo__hora small { font-size: 12px; color: rgba(255,255,255,.75); }
.tn-jogo__meio { flex: 1; padding: 10px 14px; min-width: 0; }
.tn-jogo__meta { font-size: 13px; color: var(--cinza); text-transform: uppercase; letter-spacing: .03em; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.tn-jogo__duelo { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; margin-top: 6px; }
.tn-jogo__eq { display: flex; align-items: center; gap: 8px; font-weight: 600; min-width: 0; }
.tn-jogo__eq span { overflow: hidden; text-overflow: ellipsis; }
.tn-jogo__eq--b { justify-content: flex-end; text-align: right; }
.tn-ganhou { color: var(--marinho); font-weight: 800; }
.tn-jogo__placar { font-family: var(--titulos); font-size: 28px; font-weight: 800; color: var(--marinho); min-width: 84px; text-align: center; }
.tn-jogo__nota { font-size: 13px; color: var(--cinza); text-align: center; }
.tn-escudo { width: 30px; height: 30px; object-fit: contain; flex-shrink: 0; }
.tn-escudo--iniciais { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--papel); border: 1px solid var(--linha); font-family: var(--titulos); font-weight: 700; font-size: 13px; color: var(--marinho); }
.tn-vivo { background: var(--vermelho); color: #fff; padding: 2px 8px; border-radius: 999px; font-weight: 700; animation: tn-pisca 1.6s infinite; }
.tn-final { background: var(--marinho); color: #fff; padding: 2px 8px; border-radius: 999px; font-weight: 700; }
@keyframes tn-pisca { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .tn-vivo { animation: none; } }
@media (max-width: 560px) { .tn-jogo__hora { min-width: 64px; } .tn-jogo__placar { font-size: 22px; min-width: 60px; } .tn-escudo { width: 24px; height: 24px; } }
/* Tabelas */
.tn-rolar { overflow-x: auto; }
.tn-tabela { width: 100%; border-collapse: collapse; background: #fff; font-size: 15px; }
.tn-tabela th { font-family: var(--titulos); text-transform: uppercase; letter-spacing: .05em; background: var(--marinho); color: #fff; padding: 8px 6px; font-weight: 700; }
.tn-tabela td { padding: 7px 6px; border-bottom: 1px solid var(--linha); text-align: center; vertical-align: middle; }
.tn-tabela .tn-esq { text-align: left; }
.tn-tabela td.tn-esq { display: table-cell; }
.tn-tabela td .tn-escudo { display: inline-block; vertical-align: middle; width: 22px; height: 22px; }
.tn-tabela-bloco { margin-bottom: 28px; }
.tn-org input, .tn-org select, .tn-ficha input { width: 100%; min-width: 70px; padding: 6px; border: 1px solid var(--linha); border-radius: var(--raio); font: inherit; font-size: 14px; }
.tn-detalhe td { background: var(--papel); text-align: left; }
/* Equipas */
.tn-equipas { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.tn-equipa { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; display: flex; gap: 12px; align-items: center; }
.tn-equipa .tn-escudo { width: 46px; height: 46px; }
.tn-equipa div { display: flex; flex-direction: column; }
.tn-equipa small { color: var(--cinza); }
/* Formulários */
.tn-estreito { max-width: 760px; }
.tn-form { display: grid; gap: 14px; }
.tn-form label, .tn-bloco > label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 14px; color: var(--tinta); }
.tn-form input, .tn-form select, .tn-form textarea, .tn-bloco textarea { padding: 10px; border: 1px solid #c9cfdb; border-radius: var(--raio); font: inherit; font-weight: 400; background: #fff; min-height: 44px; }
.tn-form fieldset { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 14px; }
.tn-form legend { font-weight: 600; font-size: 14px; }
.tn-escolha { flex-direction: row !important; align-items: center; gap: 10px !important; font-weight: 400 !important; padding: 6px 0; }
.tn-caixa { flex-direction: row !important; align-items: center; gap: 8px !important; font-weight: 400 !important; }
.tn-caixa input { min-height: 0; width: 20px; height: 20px; }
.tn-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 640px) { .tn-duas { grid-template-columns: 1fr; } }
.tn-form--linha { grid-template-columns: repeat(auto-fit, minmax(150px, auto)); align-items: end; }
.tn-inline { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px !important; }
.tn-num { width: 70px !important; min-width: 0 !important; }
.tn-ob { color: var(--vermelho); }
.tn-escondido { position: absolute; left: -9999px; }
.tn-consentimento { background: var(--papel); border-radius: var(--raio); padding: 12px; }
.tn-mini { font: inherit; font-size: 14px; font-weight: 600; padding: 6px 12px; min-height: 36px; border: 1px solid var(--marinho); color: var(--marinho); background: #fff; border-radius: var(--raio); cursor: pointer; }
.tn-mini:hover { background: var(--marinho); color: #fff; }
.tn-gravar { display: flex; gap: 14px; align-items: center; margin-top: 12px; }
.tn-feito { background: #e8f5ee; border: 2px solid var(--verde); border-radius: var(--raio); padding: 20px; margin-top: 20px; }
.tn-link { word-break: break-all; font-weight: 600; }
/* A equipa */
.tn-eq-cabeca { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.tn-estado { font-family: var(--titulos); font-weight: 700; text-transform: uppercase; padding: 6px 12px; border-radius: var(--raio); }
.tn-estado--pendente { background: #fff4d6; color: #6b4600; }
.tn-estado--confirmada { background: #e8f5ee; color: var(--verde); }
.tn-estado--desistiu { background: var(--linha); color: var(--cinza); }
.tn-resumo { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 16px 0; }
.tn-avisos { background: #fff4d6; border-left: 4px solid #b98900; margin: 10px 0; padding: 10px 10px 10px 28px; }
.tn-regulamento h3 { margin-top: 26px; }
/* A mesa — feita para o dedo */
.tn-mesa__topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 12px 0; flex-wrap: wrap; }
.tn-mesa__periodo { font-family: var(--titulos); font-size: 24px; font-weight: 800; color: var(--marinho); text-transform: uppercase; }
.tn-mesa__relogio { font-family: var(--titulos); font-size: 64px; font-weight: 800; color: var(--marinho); font-variant-numeric: tabular-nums; }
.tn-mesa__estado { font-size: 13px; color: var(--cinza); }
.tn-mesa__controlos { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.tn-empate { background: #fff4d6; padding: 14px; border-radius: var(--raio); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.tn-empate p { width: 100%; margin: 0; font-weight: 700; }
.tn-paineis { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 760px) { .tn-paineis { grid-template-columns: 1fr; } }
.tn-painel { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; }
.tn-painel__nome { display: flex; justify-content: space-between; align-items: center; font-family: var(--titulos); font-size: 22px; font-weight: 800; color: var(--marinho); text-transform: uppercase; }
.tn-painel__nome b { font-size: 46px; color: var(--vermelho); }
.tn-painel__nums { display: grid; grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: 6px; margin: 10px 0; }
.tn-num-botao { min-height: 56px; border: 2px solid var(--linha); background: var(--papel); border-radius: var(--raio); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; font: inherit; }
.tn-num-botao b { font-family: var(--titulos); font-size: 24px; color: var(--marinho); }
.tn-num-botao small { font-size: 11px; color: var(--cinza); }
.tn-num-botao.activo { border-color: var(--vermelho); background: #fdecec; }
.tn-excluido { background: #3a3f4f !important; }
.tn-excluido b, .tn-excluido small { color: #fff !important; }
.tn-painel__accoes { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.tn-accao { min-height: 56px; border: none; border-radius: var(--raio); background: var(--marinho); color: #fff; font-family: var(--titulos); font-size: 22px; font-weight: 800; cursor: pointer; }
.tn-accao--falta { background: var(--vermelho); }
.tn-accao:disabled { opacity: .35; cursor: not-allowed; }
.tn-painel__faltas { font-size: 13px; color: var(--cinza); margin-top: 8px; }
.tn-jogo-botao { width: 100%; text-align: left; border: none; background: none; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; font: inherit; cursor: pointer; }
.tn-jogo-botao:disabled { opacity: .5; cursor: not-allowed; }
@media print {
  .faixa-topo, .cabeca, .rodape, .tn-topo, .tn-mini, .botao, .tn-form, .tn-msg { display: none !important; }
  .tn-bloco { border: none; page-break-inside: avoid; }
}

/* ── Conteúdo verdadeiro e acertos de desenho (21/10/2026) ─────────────────────────────────── */
/* O resultado (V/D/E) nos cartões: uma pastilha que se lê, e não uma letra solta no canto. */
.jogo__fim .vd { font-size: 15px; padding: 6px 10px; border-radius: 4px; color: #fff; }
.jogo__fim .vd--v { background: var(--verde); } .jogo__fim .vd--d { background: var(--vermelho); } .jogo__fim .vd--e { background: var(--cinza); }
/* Os nomes das equipas não partem em três linhas: no máximo duas, e mais pequenos nas duas colunas. */
.jogo__lado span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; line-height: 1.05; }
.duas-colunas .jogo__lado span { font-size: 18px; }
.duas-colunas .jogo__lado img, .duas-colunas .jogo__lado .iniciais { width: 32px; height: 32px; }
/* O torneio em destaque na página inicial. */
.torneio-destaque { background: linear-gradient(120deg, #0b1230, var(--marinho) 60%, #1d2a63); color: #fff; }
.torneio-destaque__dentro { max-width: var(--largura); margin: 0 auto; padding: 48px 20px; display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: center; }
.torneio-destaque__logo { width: 100%; max-width: 260px; filter: drop-shadow(0 12px 30px rgba(0,0,0,.35)); }
.torneio-destaque h2 { font-size: clamp(32px, 4.4vw, 54px); font-weight: 800; margin: 14px 0 8px; }
.torneio-destaque__quando { font-size: 19px; margin: 0; color: rgba(255,255,255,.88); }
.torneio-destaque__prazo { margin: 10px 0 0; font-family: var(--titulos); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #ffd7d9; }
@media (max-width: 760px) { .torneio-destaque__dentro { grid-template-columns: 1fr; text-align: center; } .torneio-destaque__logo { margin: 0 auto; max-width: 200px; } .torneio-destaque .destaque__accoes { justify-content: center; } }
/* A página do clube: o texto e os marcos lado a lado. */
.clube { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
@media (max-width: 900px) { .clube { grid-template-columns: 1fr; } }
.clube__texto p { font-size: 18px; margin: 0 0 16px; }
.marcos { list-style: none; margin: 0; padding: 0; border-left: 3px solid var(--vermelho); }
.marcos li { position: relative; padding: 0 0 22px 24px; }
.marcos li::before { content: ''; position: absolute; left: -9px; top: 4px; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 3px solid var(--vermelho); }
.marcos b { font-family: var(--titulos); font-size: 24px; color: var(--marinho); }
.marcos p { margin: 4px 0 0; }
/* Os escalões e os anos de nascimento. */
.tabela-escaloes { width: 100%; max-width: 860px; border-collapse: collapse; background: #fff; }
.tabela-escaloes th { text-align: left; font-family: var(--titulos); text-transform: uppercase; letter-spacing: .06em; background: var(--marinho); color: #fff; padding: 10px 14px; }
.tabela-escaloes td { padding: 10px 14px; border-bottom: 1px solid var(--linha); }
.nota { color: var(--cinza); font-size: 15px; }
.contacto .nota { margin: 6px 0 0; }
/* O logótipo do torneio no topo do separador. */
.tn-topo__titulo { display: flex; align-items: center; gap: 24px; margin-top: 10px; }
.tn-topo__titulo h1 { margin-top: 0; }
.tn-topo__logo { width: 130px; flex-shrink: 0; filter: drop-shadow(0 8px 20px rgba(0,0,0,.35)); }
@media (max-width: 700px) { .tn-topo__logo { width: 84px; } .tn-topo__titulo { gap: 14px; } }
/* A caixa que depende da de cima (o pequeno-almoço depende de dormir cá na sexta). */
.tn-caixa--dentro { margin-left: 28px; }
.tn-caixa:has(input:disabled) { opacity: .55; }

/* Encontro de minibasquete que já se realizou: sem resultado, no espírito do minibasquete. */
.realizado { font-family: var(--titulos); font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--marinho); border: 1px solid var(--linha); border-radius: 2px; padding: 3px 7px; }

/* Escalões e horários (22/10/2026): o género por baixo do escalão; cada treino numa linha; no
   telemóvel a tabela rola de lado em vez de esmagar as horas. */
.tabela-rola { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabela-escaloes td { vertical-align: top; }
.tabela-escaloes td > small { display: block; color: var(--cinzento, #5b6b7f); font-size: 13px; margin-top: 2px; }
.tabela-escaloes .treinos + .treinos { margin-top: 8px; }
.tabela-escaloes .treinos small { display: block; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--marinho); }
.tabela-escaloes .treinos span { display: block; white-space: nowrap; }

.tn-aviso-traducao { font-size: 13px; color: var(--marinho); background: #f3f6fa; border-left: 3px solid var(--marinho); padding: 8px 12px; margin: 0 0 18px; }

/* O pedido de treino de experiência (22/10/2026) */
.pedido { background: #fff; border-radius: 6px; padding: 24px; border-top: 4px solid var(--vermelho); }
.pedido .tn-form label small { font-weight: 400; color: #5b6475; }
.pedido__escondido { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pedido__sim { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-weight: 400 !important; }
.pedido__sim input { min-height: 0 !important; width: 20px; height: 20px; margin-top: 2px; flex: none; }
.pedido__erro { color: var(--vermelho); }
.pedido .tn-form--linha { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: end; }
.pedido [data-pedido-escalao]:empty { display: none; }
