/* 9º Seminário Nacional de Obras Públicas e Manutenção Predial — Foz do Iguaçu/PR, 24 a 26/05/2027
   v2 · direção "Prancha técnica": petróleo-canteiro + laranja→amarelo da engrenagem, claros em "concreto".
   Motivos (cada um só onde a RETOMADA permite): (a) carimbo de prancha — pé do hero e resumo da inscrição;
   (b) linha de cota — hero, régua do Ambiente, cabeçalho dos dias da programação da home; (c) papel milimetrado — Oficinas;
   (d) arco da engrenagem — retratos; (e) seta ascendente — números de "O evento" (e marcador do público-alvo);
   (f) curvas da arte — hero e topo das internas; (g) fio em degradê — barra fixa, painel de preço, rodapé.
   Fontes: Hanken Grotesk (texto e títulos, pesos leves) + Encode Sans Condensed (só numerais, horários e datas). */

/* ================================================================ ordinal (º e ª)
   Na Hanken Grotesk e na Encode Sans Condensed o º parece sinal de grau ("9°"). Esta família pega SÓ U+00AA e U+00BA
   (unicode-range) de uma fonte do sistema em que o º é um "o" pequeno elevado (Arial; no Windows ele não tem traço). O build.py
   põe cada º/ª visível num <span class="ord"> e o CSS desenha o traço embaixo — lê como ordinal. O HTML continua com o
   caractere real º (SEO e leitor de tela). Helvetica fica de fora de propósito: o º dela já vem sublinhado (traço duplo). */
@font-face {
  font-family: "Ordinal NP"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: local("Arial"), local("ArialMT"), local("Segoe UI"), local("SegoeUI"), local("Roboto"), local("Roboto-Regular"),
       local("Liberation Sans"), local("LiberationSans");
  unicode-range: U+00AA, U+00BA;
}
.ord { position: relative; font-family: "Ordinal NP", var(--f-texto); }
.ord::after { content: ""; position: absolute; left: .04em; right: .04em; bottom: .58em; height: .06em; min-height: 1px; background: currentColor; }
.num .ord, .hero-data .ord, .pi-h .ord, .ag-h .ord { font-family: "Ordinal NP", var(--f-num); }

/* ================================================================ tokens */
:root {
  --c950: #071F24;
  --c900: #0B3238;
  --c850: #0E3F45;
  --c800: #12505A;
  --c700: #1C6670;
  --laranja: #EF8E1F;
  --laranja-2: #D27A14;
  --amarelo: #F6C21C;
  --teal: #1FB5AA;
  --verde: #2F6B47;
  --grad: linear-gradient(90deg, #EF8E1F 0%, #F6C21C 100%);
  --teal-escuro: #0B6A66;
  --concreto: #F3F2EE;
  --linha: #DEDAD1;
  --linha-forte: #CBC5B8;
  --tit: #0B3238;
  --corpo: #3A4F52;
  --apoio: #5F6E6C;
  --e-tit: #FFFFFF;
  --e-corpo: #C9D8D8;
  --e-apoio: rgba(255, 255, 255, .66);
  --e-linha: rgba(255, 255, 255, .14);
  --foco: #0B6A66;

  --f-texto: "Ordinal NP", "Hanken Grotesk", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-num: "Ordinal NP", "Encode Sans Condensed", "Hanken Grotesk", "Arial Narrow", sans-serif;

  --max: 1320px;
  --gut: clamp(16px, 4vw, 32px);
  --topbar-h: 36px;
  --cab-h: 76px;
  --barra-h: 0px;
  --hero-max: 560px;      /* até 1440: a foto hero-1440 tem 562 px de altura — o hero nunca a amplia */
}
@media (min-width: 1441px) { :root { --hero-max: 680px; } }

/* ================================================================ base */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--cab-h) + 16px);
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: #FFFFFF;
  color: var(--corpo);
  font-family: var(--f-texto);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
@supports (overflow: clip) { body { overflow-x: clip; } }
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
strong, b { font-weight: 560; }
cite { font-style: italic; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }
.ic { flex: none; }
.nq { white-space: nowrap; }
.sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 3px; }
.topbar, .cabecalho, .hero, .s-escuro, .topo, .painel, .rodape, .barra { --foco: #F6C21C; }

.pular {
  position: absolute; left: 12px; top: -80px; z-index: 100;
  padding: 12px 18px; background: var(--amarelo); color: var(--c900); font-weight: 560; text-decoration: none; border-radius: 4px;
}
.pular:focus { top: 12px; }

.envolve { width: 100%; max-width: calc(var(--max) + 2 * var(--gut)); margin-inline: auto; padding-inline: var(--gut); }

/* ================================================================ tipografia e peças */
.secao { padding-block: clamp(64px, 7vw, 112px); }
.s-claro { background: #FFFFFF; }
.s-concreto { background: var(--concreto); }
.s-escuro { background: var(--c850); color: var(--e-corpo); }

.rotulo { font-size: 15px; font-weight: 500; line-height: 1.4; color: var(--teal-escuro); margin-bottom: 12px; }
.s-escuro .rotulo, .painel .rotulo { color: var(--amarelo); }
.titulo {
  font-size: clamp(30px, 1.9vw + 16px, 46px); font-weight: 420; line-height: 1.12; letter-spacing: -.015em;
  color: var(--tit); text-wrap: balance;
}
.s-escuro .titulo, .painel .titulo { color: #FFFFFF; }
.titulo-menor { font-size: clamp(26px, 1.2vw + 16px, 34px); }
.lead { font-size: 19px; line-height: 1.6; color: var(--tit); font-weight: 400; }
.sub-t { font-size: 20px; font-weight: 500; line-height: 1.3; color: var(--tit); margin-bottom: 12px; }
.s-escuro .sub-t, .painel .sub-t { color: #FFFFFF; }
.cab-secao { margin-bottom: clamp(32px, 4vw, 52px); max-width: 860px; }
.cab-linha { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 32px; flex-wrap: wrap; }
.aviso { font-size: 14px; line-height: 1.55; color: var(--apoio); max-width: 86ch; margin-top: 28px; }
.s-escuro .aviso { color: var(--e-apoio); }
.aviso-centro { margin-inline: auto; text-align: center; }

.acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.acoes-centro { justify-content: center; }

.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 22px; border-radius: 5px; border: 1px solid transparent;
  font-family: var(--f-texto); font-size: 16px; font-weight: 560; line-height: 1.2; text-decoration: none; text-align: center;
  cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.botao .ic { width: 18px; height: 18px; }
.botao-marca { background: var(--grad); background-color: var(--laranja); color: var(--c900); }
.botao-marca:hover { background: var(--amarelo); }
.botao-escuro { background: var(--c900); color: #FFFFFF; }
.botao-escuro:hover { background: var(--c700); }
.botao-contorno { background: transparent; border-color: rgba(11, 50, 56, .38); color: var(--tit); }
.botao-contorno:hover { border-color: var(--tit); background: rgba(11, 50, 56, .05); }
.botao-claro, .s-escuro .botao-contorno, .painel .botao-contorno { border-color: rgba(255, 255, 255, .42); color: #FFFFFF; }
.botao-claro:hover, .s-escuro .botao-contorno:hover, .painel .botao-contorno:hover { border-color: #FFFFFF; background: rgba(255, 255, 255, .08); }
.botao-peq { min-height: 44px; padding: 0 16px; font-size: 15px; }
.link-seta {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  color: var(--teal-escuro); font-weight: 500; text-decoration: none;
}
.link-seta:hover { text-decoration: underline; }
.link-seta .ic { width: 18px; height: 18px; }

/* ================================================================ topbar + cabeçalho */
.topbar { background: var(--c950); color: var(--e-apoio); font-size: 14px; line-height: 1.3; }
.topbar-in { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 36px; }
.topbar ul { display: flex; gap: 22px; }
.topbar a { white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; color: var(--e-corpo); text-decoration: none; padding-block: 8px; }
.topbar a:hover { color: #FFFFFF; }
.topbar .ic { color: var(--amarelo); width: 15px; height: 15px; }

.cabecalho { position: sticky; top: 0; z-index: 50; background: var(--c900); border-bottom: 1px solid var(--e-linha); }
.cab-in { display: flex; align-items: center; justify-content: space-between; gap: 28px; height: 76px; }
.marca { display: flex; align-items: center; min-height: 44px; flex: none; }
.marca img { height: 44px; width: auto; }
.menu { display: flex; align-items: center; gap: 20px; }
.menu ul { display: flex; gap: 2px; }
.menu ul a {
  position: relative; display: flex; align-items: center; min-height: 44px; padding: 0 13px;
  color: rgba(255, 255, 255, .88); font-size: 16px; font-weight: 500; text-decoration: none;
}
.menu ul a:hover, .menu ul a[aria-current="page"] { color: #FFFFFF; }
.menu ul a::after {
  content: ""; position: absolute; left: 13px; right: 13px; bottom: 5px; height: 2px;
  background: var(--amarelo); transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.menu ul a:hover::after, .menu ul a[aria-current="page"]::after { transform: scaleX(1); }
.menu-inv { min-height: 46px; padding: 0 20px; }
.menu-botao { display: none; }

/* ================================================================ (b) linha de cota */
.cota {
  --cota-linha: rgba(11, 50, 56, .42); --cota-tick: var(--laranja-2); --cota-txt: var(--teal-escuro);
  position: relative; display: flex; align-items: center; gap: 10px; height: 22px; padding-inline: 1px;
}
.cota-escura { --cota-linha: rgba(255, 255, 255, .5); --cota-tick: var(--laranja); --cota-txt: rgba(255, 255, 255, .88); }
.cota::before, .cota::after { content: ""; position: absolute; top: 2px; bottom: 2px; width: 1px; background: var(--cota-linha); }
.cota::before { left: 0; }
.cota::after { right: 0; }
.cota-l { position: relative; flex: 1 1 0; min-width: 10px; height: 1px; background: var(--cota-linha); transform-origin: left center; transition: transform .9s cubic-bezier(.3, .7, .2, 1); }
.cota-l:first-child::before, .cota-l:last-child::after {
  content: ""; position: absolute; top: -5.5px; width: 1.5px; height: 12px; background: var(--cota-tick); transform: rotate(45deg);
}
.cota-l:first-child::before { left: -.75px; }
.cota-l:last-child::after { right: -.75px; }
.cota-l:last-child { transition-delay: .3s; }
.cota-rot { flex: none; font-size: 14px; font-weight: 500; line-height: 1; color: var(--cota-txt); white-space: nowrap; }
.js [data-cota].a-desenhar .cota-l, .js [data-cota].a-desenhar .rg-linha { transform: scaleX(0); }
@keyframes cota-traco { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.js .hero .cota-l { animation: cota-traco .9s cubic-bezier(.3, .7, .2, 1) .25s both; }
.js .hero .cota-l:last-child { animation-delay: .55s; }

/* ================================================================ (f) curvas da arte */
.curvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.cv-sombra { fill: var(--c900); opacity: .62; }
.cv-faixa { fill: var(--teal); opacity: .13; }
.cv-pe1 { fill: var(--teal); opacity: .16; }
.cv-pe2 { fill: var(--c900); opacity: .34; }

/* ================================================================ hero */
.hero {
  position: relative; display: grid; grid-template-rows: 1fr auto;
  min-height: clamp(470px, calc(100vh - var(--topbar-h) - var(--cab-h)), var(--hero-max));
  min-height: clamp(470px, calc(100svh - var(--topbar-h) - var(--cab-h)), var(--hero-max));
  background: var(--c900); color: #FFFFFF; isolation: isolate; overflow: hidden;
}
.hero-foto { position: absolute; inset: 0; z-index: 0; }
.hero-foto img {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 2560px; height: 100%; max-height: 1000px;
  object-fit: cover; object-position: 62% 30%;
}
.hero-foto::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(11, 50, 56, .9) 0%, rgba(11, 50, 56, .72) 30%, rgba(11, 50, 56, .2) 52%, rgba(11, 50, 56, 0) 66%);
}
.hero-in { position: relative; z-index: 2; display: flex; align-items: center; padding-block: 28px; }
.hero-texto { max-width: 600px; }
.hero-tag { max-width: 340px; font-size: 17px; line-height: 1.4; color: var(--e-corpo); }
.hero-tag strong { color: #FFFFFF; font-weight: 560; }
.hero h1 { margin: 18px 0 22px; line-height: 0; }
.hero h1 img { width: clamp(300px, 26vw, 400px); height: auto; }
.hero-quando { display: inline-block; }
.hero-quando .cota { margin-bottom: 6px; }
.hero-data {
  display: flex; align-items: baseline; gap: 12px;
  font-family: var(--f-num); font-size: 40px; font-weight: 400; line-height: 1.05; color: #FFFFFF; white-space: nowrap;
}
.hd-sep { color: var(--laranja); font-weight: 300; }
.hero-onde { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin-top: 12px; font-size: 17px; line-height: 1.4; color: #FFFFFF; font-weight: 500; }
.hero-onde .nq { display: inline-flex; align-items: center; gap: 6px; }
.hero-onde .ic { color: var(--laranja); width: 20px; height: 20px; }
.hd-ponto { color: var(--laranja); margin: 0 1px; }
.hero-pres { padding-left: 16px; border-left: 1px solid rgba(255, 255, 255, .3); color: var(--e-corpo); font-weight: 400; }
.hero-acoes { margin-top: 26px; }

/* (a) carimbo de prancha — encaixado no pé do hero */
.carimbo-faixa { position: relative; z-index: 2; }
.carimbo {
  display: grid; grid-template-columns: 1.1fr 1.45fr .8fr 1.35fr 112px;
  border: 1px solid rgba(255, 255, 255, .3); border-bottom: 0; background: rgba(7, 31, 36, .94);
}
.cb-cel { min-width: 0; padding: 12px 18px 14px; border-left: 1px solid var(--e-linha); }
.cb-cel:first-child { border-left: 0; }
.carimbo dt { font-size: 13px; line-height: 1.3; color: var(--e-apoio); margin-bottom: 4px; }
.carimbo dd { font-size: 17px; font-weight: 500; line-height: 1.3; color: #FFFFFF; }
.carimbo dd small { display: block; font-size: 14px; font-weight: 400; color: var(--e-corpo); margin-top: 2px; }
.cb-marca { display: grid; place-items: center; padding: 10px 14px; }
.cb-marca img { width: 70px; height: auto; }
.ct-carimbo .ct-rot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ct-carimbo .ct-nums { display: flex; gap: 14px; }
.ct-carimbo .ct-n { font-family: var(--f-num); font-size: 26px; font-weight: 400; line-height: 1; color: #FFFFFF; }
.ct-carimbo .ct-u { font-size: 14px; font-weight: 400; color: var(--e-corpo); margin-left: 4px; }
.ct-carimbo .ct-fim { font-size: 15px; font-weight: 400; }
.contagem.acabou .ct-nums { display: none; }

/* carimbo claro (resumo da inscrição) */
.carimbo-claro {
  grid-template-columns: 2.1fr 1.25fr 1.45fr .95fr 1.15fr;
  background: #FFFFFF; border: 1px solid var(--tit); margin-bottom: clamp(40px, 5vw, 64px);
}
.carimbo-claro .cb-cel { border-left-color: var(--linha-forte); padding: 14px 20px 16px; }
.carimbo-claro dt { color: var(--apoio); }
.carimbo-claro dd { color: var(--tit); }
.carimbo-claro dd small { color: var(--corpo); }
.carimbo-claro .cb-inv dd > .nq { font-family: var(--f-num); font-size: 24px; font-weight: 400; line-height: 1.1; }

/* ================================================================ o evento + (e) seta ascendente */
.evento-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.evento-texto p + p { margin-top: 16px; }
.evento-texto .titulo { margin-bottom: 24px; }
.chamada { font-size: 19px; font-weight: 500; color: var(--tit); }
/* (e) seta ascendente: faixa própria acima da grade (não cruza texto nem fios) */
.seta-faixa { margin-bottom: 22px; }
.seta-ev { width: 100%; height: auto; max-height: 90px; overflow: visible; }
.sv-linha { fill: none; stroke: var(--laranja); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s cubic-bezier(.45, .1, .25, 1); }
.sv-ponta { fill: var(--laranja); transition: opacity .35s ease 1.25s; }
.js [data-seta].a-desenhar .sv-linha { stroke-dashoffset: 1; }
.js [data-seta].a-desenhar .sv-ponta { opacity: 0; }
.numeros { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--linha); }
.numeros li { display: flex; flex-direction: column; align-items: flex-start; padding: 26px 26px 28px; min-height: 172px; justify-content: flex-end; }

.numeros li:nth-child(odd) { border-right: 1px solid var(--linha); padding-left: 0; }
.numeros li { min-height: 150px; }
.numeros li:nth-child(n+3) { border-top: 1px solid var(--linha); }
.num { font-family: var(--f-num); font-size: clamp(56px, 4.6vw, 76px); font-weight: 300; line-height: 1; color: var(--tit); display: flex; align-items: flex-start; }
.num-suf { margin-left: .03em; }
.num-rot { margin-top: 8px; font-size: 16px; line-height: 1.35; color: var(--corpo); }

/* ================================================================ programação (home): 3 dias em lista compacta */
.pdias { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--linha-forte); }
.pdia { padding: 28px 28px 8px; border-left: 1px solid var(--linha-forte); }
.pdia:first-child { border-left: 0; padding-left: 0; }
.pdia:last-child { padding-right: 0; }
.pdia-cab { margin-bottom: 16px; }
.pdia-t { font-size: 26px; font-weight: 450; line-height: 1.2; color: var(--tit); }
.pdia-data { font-family: var(--f-num); font-weight: 400; color: var(--teal-escuro); }
.pdia-sub { margin: 4px 0 14px; font-size: 15px; color: var(--apoio); }
.plista li { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--linha); }
.pi-h { font-family: var(--f-num); font-size: 16px; line-height: 1.5; color: var(--teal-escuro); white-space: nowrap; }
.pi-c { display: block; min-width: 0; font-size: 15.5px; line-height: 1.45; color: var(--corpo); }
.pi-t { display: block; color: var(--tit); font-size: 16px; font-weight: 500; line-height: 1.42; text-decoration: none; }
.pi-t:hover { text-decoration: underline; color: var(--teal-escuro); }
.pi-q { display: block; margin-top: 4px; font-size: 14px; color: var(--corpo); }
.pi-q.embreve, .pi-q .embreve { color: var(--apoio); }
.pi-of { display: block; }
.pi-of + .pi-of { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--linha-forte); }
.pi-pausa { padding-block: 7px !important; }
.pi-pausa .pi-h, .pi-pausa .pi-c { font-size: 14px; color: var(--apoio); }
.pi-ex { color: var(--apoio); }

/* ================================================================ oficinas: (c) papel milimetrado */
.s-milimetrado {
  background-color: var(--c850);
  background-image:
    linear-gradient(rgba(255, 255, 255, .065) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .065) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px);
  background-size: 40px 40px, 40px 40px, 8px 8px, 8px 8px;
  background-position: -1px -1px;
}
.of-cert { font-size: 16px; color: var(--e-corpo); padding-bottom: 6px; }
.turnos { display: grid; gap: 24px; }
.turno { display: grid; grid-template-columns: 290px minmax(0, 1fr); border: 1px solid rgba(255, 255, 255, .24); background: var(--c850); }
.turno-cab { padding: 26px 28px 28px; border-right: 1px solid var(--e-linha); }
.turno-t { font-size: 26px; font-weight: 420; line-height: 1.2; color: #FFFFFF; }
.turno-h { font-family: var(--f-num); font-size: 22px; line-height: 1.3; color: var(--amarelo); margin-top: 2px; }
.turno-ag { margin-top: 16px; }
.turno-ag li { font-size: 14.5px; line-height: 1.45; color: var(--e-corpo); padding: 6px 0; border-top: 1px solid var(--e-linha); }
.ta-h { font-family: var(--f-num); color: #FFFFFF; margin-right: 4px; }
.turno-ofs { display: grid; grid-template-columns: 1fr 1fr; }
.of {
  display: flex; flex-direction: column; gap: 10px; padding: 26px 28px 24px;
  color: #FFFFFF; text-decoration: none; border-left: 1px solid var(--e-linha); transition: background-color .2s ease;
}
.of:first-child { border-left: 0; }
.of:hover { background: var(--c800); }
.of-n { display: flex; align-items: baseline; gap: 8px; font-size: 15px; color: var(--e-apoio); }
.of-num { font-family: var(--f-num); font-size: 46px; font-weight: 300; line-height: 1; color: var(--laranja); }
.of-t { font-size: 20px; line-height: 1.38; font-weight: 400; text-wrap: pretty; }
.of-q { font-size: 14.5px; color: var(--e-apoio); }
.of-ir { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 500; color: var(--amarelo); }
.of-ir .ic { width: 18px; height: 18px; transition: transform .2s ease; }
.of:hover .of-ir .ic { transform: translateX(3px); }

/* ================================================================ palestrantes: (d) retrato com o arco da engrenagem */
.retrato { position: relative; width: 220px; aspect-ratio: 1; flex: none; }
.retrato img { position: absolute; inset: 10%; width: 80%; height: 80%; border-radius: 50%; object-fit: cover; object-position: 50% 22%; background: var(--concreto); }
.arco { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.arco path { fill: none; stroke: var(--laranja); stroke-width: 11; }
.pal-cargo { margin-top: 4px; font-size: 16px; font-weight: 500; line-height: 1.45; color: var(--teal-escuro); }
.pal-papel::after { content: " · "; }
.pal-temas { margin-top: 6px; }

/* carrossel da home (sem biblioteca): trilho com scroll-snap; --n cartões por vista; fio fino no meio do vão entre cartões.
   Poucos cartões (tudo cabe): o JS põe .car-cabe, some com setas/indicador e o cartão "em breve" cresce até o fim da linha. */
.carrossel { --n: 4; --gap: 48px; --vis: min(var(--n), var(--itens, 99)); position: relative; }
.car-trilho {
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  margin: -8px -6px; padding: 8px 6px; scroll-padding-inline: 6px; scrollbar-width: thin;
}
.js .car-trilho { scrollbar-width: none; }
.js .car-trilho::-webkit-scrollbar { display: none; }
.car-trilho:focus-visible { outline-offset: -2px; }
.car-lista { display: flex; gap: var(--gap); }
.car-item { position: relative; flex: 0 0 calc((100% - (var(--vis) - 1) * var(--gap)) / var(--vis)); min-width: 0; scroll-snap-align: start; }
.car-item + .car-item::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(var(--gap) / -2); width: 1px; background: var(--linha); }
.retrato-card { width: min(100%, 236px); margin-bottom: 18px; }   /* foto de ~189 px (srcset 400/1080-1100) */
.retrato-card img { -webkit-user-drag: none; }
.pcard-nome { font-size: 23px; font-weight: 450; line-height: 1.2; color: var(--tit); }
.pcard-cargo { margin-top: 6px; font-size: 15.5px; font-weight: 500; line-height: 1.45; color: var(--teal-escuro); }
.pcard-link { margin-top: 8px; }
/* "Demais palestrantes em breve" (r5): largura de UM cartão, só texto no meio da altura, separado pelo mesmo fio dos outros.
   (Antes: bloco concreto que crescia até o fim da linha — no desktop virava um retângulo cinza vazio de meia linha.) */
.car-breve { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; padding-block: 24px; }
.car-breve-t { font-size: 22px; font-weight: 420; line-height: 1.3; color: var(--tit); max-width: 20ch; text-wrap: balance; }
.carrossel.car-cabe .car-lista { justify-content: flex-start; }
.carrossel.car-cabe:not(:has(.car-breve)) .car-lista { justify-content: center; }
.car-pode-arrastar .car-trilho { cursor: grab; }
.car-arrastando .car-trilho { cursor: grabbing; scroll-snap-type: none; user-select: none; -webkit-user-select: none; }
.car-arrastando .car-item a { pointer-events: none; }
/* padding à direita (r5): o botão do WhatsApp (fixo, 74 px da borda) não pode ficar em cima da barra de posição */
.car-ctrl { display: flex; align-items: center; gap: 20px; margin-top: 36px; padding-right: max(0px, calc(88px - (100vw - 100%) / 2)); }
.car-pos { flex: none; min-width: 7.2em; font-family: var(--f-num); font-size: 18px; font-weight: 400; line-height: 1; color: var(--tit); font-variant-numeric: tabular-nums; }
.car-barra { position: relative; flex: 1 1 auto; height: 3px; }
.car-barra::before { content: ""; position: absolute; left: 0; right: 0; top: 1px; height: 1px; background: var(--linha-forte); }
.car-barra > span { position: absolute; top: 0; left: 0; width: 25%; height: 3px; background: var(--laranja-2); transition: transform .2s ease-out; }
.car-setas { display: flex; gap: 8px; flex: none; }
.car-seta {
  display: grid; place-items: center; width: 48px; height: 48px; padding: 0;
  background: transparent; border: 1px solid rgba(11, 50, 56, .38); border-radius: 5px; color: var(--tit); cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}
.car-seta:hover:not(:disabled) { border-color: var(--tit); background: rgba(11, 50, 56, .05); }
.car-seta:disabled { opacity: .32; cursor: default; }
@media (max-width: 1199px) { .carrossel { --n: 3; --gap: 40px; } }
@media (max-width: 991px) { .carrossel { --n: 2; --gap: 40px; } }
@media (max-width: 599px) { .carrossel { --n: 1.25; --gap: 28px; } .car-ctrl { gap: 14px; margin-top: 28px; } .car-pos { min-width: 4.6em; } .pcard-nome { font-size: 22px; } }
@media (max-width: 374px) { .car-barra { display: none; } }   /* 320: não sobra largura para a barra; fica o indicador "02 / 02" */
@media (max-width: 760px), (max-height: 500px) and (orientation: landscape) { .car-ctrl { padding-right: max(0px, calc(72px - (100vw - 100%) / 2)); } }
.pal-temas li { border-top: 1px solid var(--linha); }
.pal-temas a { display: block; padding: 10px 0; font-size: 15.5px; line-height: 1.45; font-weight: 500; color: var(--tit); text-decoration: none; }
.pal-temas a:hover { color: var(--teal-escuro); text-decoration: underline; }
.breve-linha { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--linha); font-size: 17px; color: var(--apoio); }
.breve-linha-acoes { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 24px; border-top-color: var(--linha-forte); margin-top: clamp(40px, 5vw, 64px); padding-top: 22px; }
.breve-linha-acoes p { font-size: 17px; }
.breve-linha-acoes .acoes { margin-top: 0; }

/* ================================================================ público-alvo */
.publico-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); gap: clamp(40px, 6vw, 80px); align-items: center; }
.publico-texto .titulo { margin-bottom: 24px; }
.lista-seta { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
.lista-seta li { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid var(--e-linha); font-size: 17px; line-height: 1.45; color: #FFFFFF; }
.lista-seta li:last-child { grid-column: 1 / -1; }
.seta-mini { flex: none; width: 22px; height: 16px; margin-top: 3px; }
.seta-mini path { fill: none; stroke: var(--amarelo); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.publico-foto img { width: 100%; border-radius: 2px; }

/* ================================================================ local do evento + ambiente (b2) */
.local-grade { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); align-items: center; }
.mabu-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mabu-fotos figure { overflow: hidden; }
.mabu-fotos img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.mf-1 { grid-column: 1 / -1; }
.local-texto .titulo { margin-bottom: 20px; }
.endereco { margin-top: 24px; }
.endereco > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid var(--linha-forte); }
.endereco dt { font-size: 14px; color: var(--apoio); padding-top: 2px; }
.endereco dd { font-size: 17px; line-height: 1.5; color: var(--tit); }
.endereco a { font-family: var(--f-num); font-size: 19px; text-decoration: none; display: inline-flex; min-height: 28px; align-items: center; }
.endereco a:hover { text-decoration: underline; }

.ambiente {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 72px); align-items: center;
  margin-top: clamp(48px, 6vw, 80px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--linha-forte);
}
.secao > .envolve > .ambiente:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.amb-dest { font-size: 20px; line-height: 1.4; color: var(--tit); margin-bottom: 10px; }
.regua { --rg-cor: rgba(11, 50, 56, .45); padding-top: 4px; }
.rg-cotas { position: relative; height: 56px; }
.rg-cota { position: absolute; bottom: 0; left: calc(var(--ini) * 10%); width: calc((var(--fim) - var(--ini)) * 10%); display: flex; flex-direction: column; align-items: center; gap: 9px; }
.rg-cota::before, .rg-cota::after { content: ""; position: absolute; bottom: -22px; height: 30px; width: 1px; background: var(--rg-cor); }
.rg-cota::before { left: 0; }
.rg-cota::after { right: 0; }
.rg-rot { font-size: 14.5px; font-weight: 500; line-height: 1.3; color: var(--teal-escuro); text-align: center; }
.rg-linha { position: relative; display: block; width: 100%; height: 1px; background: var(--rg-cor); transform-origin: left center; transition: transform .9s cubic-bezier(.3, .7, .2, 1); }
.rg-cota + .rg-cota .rg-linha { transition-delay: .35s; }
.rg-linha::before, .rg-linha::after { content: ""; position: absolute; top: -5.5px; width: 1.5px; height: 12px; background: var(--laranja-2); transform: rotate(45deg); }
.rg-linha::before { left: -.75px; }
.rg-linha::after { right: -.75px; }
.rg-trilho { position: relative; height: 10px; margin-top: 14px; background: #E2DED4; }
.s-claro .rg-trilho { background: var(--concreto); }
.rg-bloco { position: absolute; top: 0; bottom: 0; left: calc(var(--ini) * 10%); width: calc((var(--fim) - var(--ini)) * 10%); background: var(--c850); }
.rg-escala { display: flex; justify-content: space-between; margin-top: 0; }
.rg-escala li { position: relative; width: 0; display: flex; justify-content: center; padding-top: 10px; }
.rg-escala li::before { content: ""; position: absolute; top: 0; left: 0; width: 1px; height: 6px; background: var(--rg-cor); }
.rg-escala span { font-family: var(--f-num); font-size: 14px; color: var(--apoio); white-space: nowrap; }

/* ================================================================ 8 motivos */
.motivos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.motivo { padding: 28px 28px 32px; border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); }
.motivo:nth-child(4n+1) { border-left: 0; padding-left: 0; }
.motivo-n { display: block; font-family: var(--f-num); font-size: 44px; font-weight: 300; line-height: 1; color: var(--teal-escuro); }
.motivo h3 { margin: 16px 0 6px; font-size: 19px; font-weight: 500; line-height: 1.3; color: var(--tit); }
.motivo p { font-size: 16px; line-height: 1.55; }

/* ================================================================ investimento: painel (g) + pagamento */
.invest-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
.painel { position: relative; padding: 36px 36px 34px; background: var(--c900); border: 1px solid var(--e-linha); color: var(--e-corpo); }
.painel::before { content: ""; position: absolute; top: -1px; left: -1px; right: -1px; height: 3px; background: var(--grad); }
.preco { margin-top: 18px; display: flex; align-items: flex-start; gap: 8px; font-family: var(--f-num); color: #FFFFFF; line-height: 1; white-space: nowrap; }
.preco-rs { font-size: 26px; margin-top: 10px; }
.preco-v { font-size: clamp(60px, 5vw, 78px); font-weight: 400; }
.preco-cent { font-size: .45em; vertical-align: top; margin-left: 2px; }
.preco-sub { margin-top: 6px; font-size: 16px; color: var(--e-apoio); }
.painel .sub-t { margin-top: 26px; font-size: 18px; }
.lista-marcada li { position: relative; padding: 9px 0 9px 22px; border-top: 1px solid var(--e-linha); font-size: 16px; line-height: 1.5; }
.lista-marcada li::before { content: ""; position: absolute; left: 0; top: 18px; width: 8px; height: 8px; background: var(--amarelo); }

.pagamento p { font-size: 16px; line-height: 1.6; }
.pagamento dl { margin-top: 18px; }
.pagamento dl > div { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linha-forte); }
.pagamento dt { font-size: 14px; color: var(--apoio); }
.pagamento dd { font-size: 17px; line-height: 1.45; color: var(--tit); font-weight: 500; overflow-wrap: anywhere; }
.s-escuro .pagamento dl > div { border-top-color: var(--e-linha); }
.s-escuro .pagamento dt { color: var(--e-apoio); }
.s-escuro .pagamento dd { color: #FFFFFF; }
.copiar-item {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px;
  background: transparent; border: 1px solid rgba(11, 50, 56, .3); border-radius: 4px; color: var(--tit);
  font-size: 14px; font-weight: 500; cursor: pointer; transition: border-color .2s ease, background-color .2s ease;
}
.copiar-item:hover { border-color: var(--tit); }
.copiar-item svg { width: 16px; height: 16px; }
.copiar-item .ic-ok, .copiar-item.ok .ic-copiar { display: none; }
.copiar-item.ok .ic-ok { display: block; }
.s-escuro .copiar-item { border-color: rgba(255, 255, 255, .34); color: #FFFFFF; }
.s-escuro .copiar-item:hover { border-color: #FFFFFF; }
.copiar-tudo { margin-top: 18px; }
.copiar-aviso { min-height: 1.5em; margin-top: 8px; font-size: 14px !important; color: var(--teal-escuro); }
.s-escuro .copiar-aviso { color: var(--amarelo); }

/* ================================================================ edições anteriores: vídeo (fachada leve) + galeria */
.edicoes-grade { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 48px); align-items: start; }
.video { position: relative; aspect-ratio: 16 / 9; background: var(--c900); overflow: hidden; }
.video-capa { position: absolute; inset: 0; display: block; color: #FFFFFF; text-decoration: none; }
.video-capa img { width: 100%; height: 100%; object-fit: cover; }
.video-capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7, 31, 36, .78) 0%, rgba(7, 31, 36, .1) 50%, rgba(7, 31, 36, 0) 100%); }
.video-play {
  position: absolute; left: 50%; top: 50%; z-index: 1; transform: translate(-50%, -50%);
  display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%;
  background: var(--laranja); color: var(--c900); transition: background-color .2s ease;
}
.video-play svg { margin-left: 3px; }
.video-capa:hover .video-play { background: var(--amarelo); }
.video-rot { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; font-size: 16px; font-weight: 500; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* popup do vídeo (<dialog> criado pelo site.js) */
html.com-modal { overflow: hidden; }
.video-modal { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: clamp(16px, 4vw, 48px); border: 0; background: transparent; color: #FFFFFF; }
.video-modal[open] { display: grid; place-items: center; animation: modal-entra .22s ease both; }
.video-modal::backdrop { background: rgba(7, 31, 36, .9); }
.video-modal-caixa { display: flex; flex-direction: column; width: min(1120px, 100%, calc((100vh - 150px) * 16 / 9)); }
.video-modal-fechar {
  align-self: flex-end; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 12px; padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, .45); border-radius: 2px; background: transparent; color: #FFFFFF;
  font: inherit; font-size: 16px; font-weight: 500; cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.video-modal-fechar:hover { background: var(--laranja); border-color: var(--laranja); color: var(--c900); }
.video-modal-fechar:focus-visible { outline: 2px solid var(--amarelo); outline-offset: 3px; }
.video-modal-quadro { position: relative; aspect-ratio: 16 / 9; background: #000000; }
.video-modal-quadro iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@keyframes modal-entra { from { opacity: 0; } to { opacity: 1; } }
.galeria-caixa .sub-t { font-size: 18px; margin-bottom: 14px; }
.galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.galeria img { width: 100%; aspect-ratio: 1; object-fit: cover; }

/* ================================================================ rodapé (g) */
.rodape { position: relative; background: var(--c950); color: var(--e-corpo); font-size: 15px; line-height: 1.55; padding-top: clamp(48px, 5vw, 72px); padding-bottom: 24px; }
.rodape::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad); }
.com-barra .rodape { padding-bottom: calc(24px + var(--barra-h)); }
.rod-grade { display: grid; grid-template-columns: 1.5fr 1fr 1.3fr .8fr; gap: 40px; }
.rod-logo { width: 210px; height: auto; margin-bottom: 16px; }
.realizacao { margin-top: 22px; }
.realizacao p { font-size: 13px; color: var(--e-apoio); margin-bottom: 8px; }
.realizacao img { width: 120px; height: auto; }
.rodape h2 { font-size: 16px; font-weight: 500; color: #FFFFFF; margin-bottom: 12px; }
.rodape nav a, .rod-contato a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; text-decoration: none; color: var(--e-corpo); }
.rodape nav a:hover, .rod-contato a:hover { color: #FFFFFF; text-decoration: underline; }
.rod-contato .ic { color: var(--amarelo); }
.rod-endereco { margin-top: 10px; font-size: 14px; color: var(--e-apoio); }
.redes { display: flex; gap: 10px; }
.redes a {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .24); color: #FFFFFF; transition: background-color .2s ease, border-color .2s ease;
}
.redes a:hover { background: var(--c800); border-color: var(--amarelo); }
.redes-claro a { border-color: var(--linha-forte); color: var(--tit); }
.redes-claro a:hover { background: var(--concreto); border-color: var(--teal-escuro); }
.rod-base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--e-linha); font-size: 14px; color: var(--e-apoio); }
.rod-base a { color: var(--e-corpo); text-decoration: none; display: inline-flex; min-height: 36px; align-items: center; }
.rod-base a:hover { text-decoration: underline; }

/* ================================================================ barra fixa de inscrição (g) + WhatsApp */
.barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  background: var(--c900); color: #FFFFFF;
  transform: translateY(110%); visibility: hidden;
  transition: transform .35s ease, visibility 0s linear .35s;
}
.barra::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad); }
.barra-on .barra { transform: none; visibility: visible; transition: transform .35s ease, visibility 0s; }
.barra-in { display: flex; align-items: center; gap: 18px; padding-block: 13px 12px; }
.barra-simbolo { width: auto; height: 36px; flex: none; }
.barra-txt { display: flex; flex-direction: column; flex: 1 1 auto; line-height: 1.3; min-width: 0; }
.barra-txt strong { font-size: 16px; font-weight: 500; color: #FFFFFF; }
.barra-data { font-size: 14px; color: var(--e-apoio); }
.barra-preco-cel { display: none; white-space: nowrap; }
.barra-preco { flex: none; margin-left: auto; text-align: right; white-space: nowrap; font-family: var(--f-num); font-size: 30px; font-weight: 400; line-height: 1; }
.barra-preco small { display: block; font-family: var(--f-texto); font-size: 13px; color: var(--e-apoio); margin-top: 4px; }
.barra .botao { flex: none; }

.whats {
  position: fixed; right: 18px; bottom: 18px; z-index: 45;
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
  background: #25D366; color: #FFFFFF; box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s, bottom .35s ease;
}
.rolou .whats { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease, transform .3s ease, visibility 0s, bottom .35s ease; }
.barra-on .whats { bottom: calc(var(--barra-h) + 14px); }
.no-js .whats { opacity: 1; visibility: visible; transform: none; }

/* ================================================================ páginas internas: topo */
.topo { position: relative; display: grid; min-height: 300px; background: var(--c900); color: #FFFFFF; isolation: isolate; overflow: hidden; }
.topo-foto { position: absolute; inset: 0; z-index: 0; }
.topo-foto img {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 1920px; height: 100%; object-fit: cover; object-position: 62% 40%;
}
.topo-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 50, 56, .82) 0%, rgba(11, 50, 56, .55) 40%, rgba(11, 50, 56, 0) 70%); }
.curvas-topo .cv-faixa { opacity: .1; }
.topo-in { position: relative; z-index: 2; align-self: end; padding-block: 52px 46px; }
.trilha ol { display: flex; flex-wrap: wrap; align-items: center; font-size: 14.5px; color: var(--e-apoio); }
.trilha li { display: flex; align-items: center; }
.trilha li + li::before { content: "›"; margin: 0 10px; color: var(--laranja); }
.trilha a { color: var(--e-corpo); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.trilha a:hover { color: #FFFFFF; text-decoration: underline; }
.topo h1 { margin-top: 4px; font-size: clamp(38px, 2.6vw + 20px, 60px); font-weight: 400; line-height: 1.08; letter-spacing: -.02em; }
.topo-sub { margin-top: 10px; font-size: 17px; color: var(--e-corpo); }
.topo + .secao { padding-top: clamp(48px, 5vw, 80px); }

/* ================================================================ programação (página): acordeão */
.prog-ferr { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 24px; margin-bottom: 28px; }
.prog-intro { font-size: 16px; color: var(--apoio); }
.prog-ferr-botoes { display: flex; flex-wrap: wrap; gap: 10px; }
.ac-lista { display: grid; gap: 14px; }
.ac { border: 1px solid var(--linha-forte); background: #FFFFFF; }
.ac-cab { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; gap: 20px; align-items: center; padding: 20px 24px; cursor: pointer; list-style: none; }
.ac-cab::-webkit-details-marker { display: none; }
.ac-cab:hover .ac-tit { color: var(--teal-escuro); }
.ac[open] > .ac-cab { border-bottom: 1px solid var(--linha); }
.ac-n { font-family: var(--f-num); font-size: 52px; font-weight: 300; line-height: 1; color: var(--teal-escuro); text-align: center; }
.ac-rot { display: block; font-size: 14.5px; font-weight: 500; color: var(--teal-escuro); }
.ac-tit { font-size: clamp(22px, 1vw + 14px, 27px); font-weight: 450; line-height: 1.2; color: var(--tit); text-wrap: balance; }
.ac-sub { display: block; margin-top: 2px; font-size: 15.5px; color: var(--apoio); }
.ac-icone { position: relative; width: 44px; height: 44px; border: 1px solid var(--linha-forte); border-radius: 50%; }
.ac-icone::before, .ac-icone::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.5px; background: var(--tit); transform: translate(-50%, -50%); transition: transform .25s ease; }
.ac-icone::after { transform: translate(-50%, -50%) rotate(90deg); }
.ac[open] .ac-icone::after { transform: translate(-50%, -50%) rotate(0deg); }
.ac-desc { padding: 4px 24px 22px calc(24px + 64px + 20px); }
.agenda > li { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 20px; padding: 16px 0; border-top: 1px solid var(--linha); }
.agenda > li:first-child { border-top: 0; }
.ag-h { font-family: var(--f-num); font-size: 17px; line-height: 1.5; color: var(--teal-escuro); white-space: nowrap; }
.ag-c { min-width: 0; }
.ag-c > p { font-size: 17px; color: var(--corpo); }
.tm-t { font-size: 19px; font-weight: 500; line-height: 1.4; color: var(--tit); text-wrap: pretty; }
.tm-q { margin-top: 4px; font-size: 15px; color: var(--corpo); }
.tm-q.embreve { color: var(--apoio); }
.tm-tipo { font-weight: 500; }
.ag-pausa { padding-block: 9px !important; }
.ag-pausa .ag-h, .ag-pausa .ag-c > p { font-size: 15px; color: var(--apoio); }
.ag-ex { color: var(--apoio); }
.ag-par-rot { font-size: 14.5px; font-weight: 500; color: var(--teal-escuro); margin-bottom: 10px; }
.ag-ofs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ag-of { padding: 16px 18px 18px; background: var(--concreto); border-top: 2px solid var(--c850); }
.ag-ofn { font-family: var(--f-num); font-size: 18px; color: var(--teal-escuro); margin-bottom: 4px; }
.ag-of .tm-t { font-size: 18px; }
.ag-tema:target .tm-t, .ag-of:target .tm-t { color: var(--teal-escuro); }

.fecho-grade { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: end; }
.minis { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 26px; }
.mini { display: flex; gap: 16px; align-items: center; }
.retrato-mini { width: 120px; }
.retrato-mini .arco path { stroke-width: 13; }
.mini-nome { font-size: 20px; font-weight: 500; color: var(--tit); }
.mini-cargo { font-size: 15px; line-height: 1.45; }
.fecho-cta { padding-left: clamp(0px, 3vw, 40px); border-left: 1px solid var(--linha-forte); }
.fecho-preco { display: flex; flex-direction: column; }
.fp-rot { font-size: 15px; font-weight: 500; color: var(--teal-escuro); }
.fp-v { font-family: var(--f-num); font-size: 48px; line-height: 1.1; color: var(--tit); white-space: nowrap; }
.fp-sub { font-size: 15px; color: var(--apoio); }
.fecho-cta .acoes { margin-top: 20px; }

/* ================================================================ palestrantes (página) */
.pal-pag-grade { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); align-items: start; }
.retrato-grande { width: 360px; }
.pal-pag-txt .titulo { margin-bottom: 4px; }
.pal-pag-txt .pal-cargo { font-size: 18px; }
.pal-bio-c { margin-top: 22px; max-width: 74ch; font-size: 17px; line-height: 1.72; }
.pal-pag-txt .sub-t { margin-top: 32px; font-size: 18px; }
.pal-temas-g { max-width: 74ch; }
.pal-temas-g a { font-size: 17px; }


/* ================================================================ hospedagem: tabela */
.tabela-caixa { max-width: 920px; }
.tabela { width: 100%; border-collapse: collapse; background: #FFFFFF; border: 1px solid var(--linha-forte); }
.tabela caption { caption-side: top; text-align: left; padding-bottom: 12px; font-size: 15px; font-weight: 500; color: var(--teal-escuro); }
.tabela th, .tabela td { padding: 16px 22px; text-align: left; border-top: 1px solid var(--linha); vertical-align: middle; }
.tabela thead th { font-size: 14px; font-weight: 500; color: var(--apoio); border-top: 0; background: #FFFFFF; }
.tabela tbody th { font-size: 18px; font-weight: 500; color: var(--tit); }
.tb-num { font-family: var(--f-num); font-size: 21px; color: var(--tit); white-space: nowrap; }
.amb-acoes { margin-top: 40px; }

/* hospedagem: outros hotéis de Foz (20) — grupos por região do endereço; cada hotel é uma ficha entre fios (sem cartão) */
.cab-hoteis { max-width: 900px; }
.hoteis-intro { margin-top: 18px; max-width: 72ch; font-size: 17px; }
.hoteis-intro strong { color: var(--tit); font-weight: 500; }
.hoteis-nav { margin-bottom: clamp(32px, 4vw, 48px); }
.hoteis-nav ul { display: flex; flex-wrap: wrap; row-gap: 4px; }
.hoteis-nav a {
  display: inline-flex; align-items: baseline; gap: 10px; padding: 12px 22px 12px 0; margin-right: 22px;
  border-right: 1px solid var(--linha); color: var(--tit); font-size: 16px; font-weight: 500; line-height: 1.3; text-decoration: none;
}
.hoteis-nav li:last-child a { border-right: 0; margin-right: 0; }
.hoteis-nav a:hover { color: var(--teal-escuro); text-decoration: underline; }
.hg-n { font-family: var(--f-num); font-weight: 400; color: var(--teal-escuro); }
.hgrupo { scroll-margin-top: calc(var(--cab-h) + 16px); }
.hgrupo + .hgrupo { margin-top: clamp(48px, 5vw, 72px); }
.hgrupo-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; padding-bottom: 14px; border-bottom: 1px solid var(--tit); }
.hgrupo-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; font-size: clamp(22px, .8vw + 15px, 27px); font-weight: 450; line-height: 1.2; color: var(--tit); }
.hgrupo-t .hg-n { font-size: 17px; }
.hgrupo-sub { font-size: 15px; line-height: 1.5; color: var(--apoio); }
.hoteis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; }
.hotel { display: flex; flex-direction: column; min-width: 0; padding: 22px 0 24px; border-bottom: 1px solid var(--linha); }
.hotel-n { font-size: 19px; font-weight: 500; line-height: 1.3; color: var(--tit); text-wrap: balance; }
.hotel-e { margin-top: 6px; font-size: 15.5px; line-height: 1.5; color: var(--corpo); }
.hotel-rot { display: block; font-size: 13px; line-height: 1.3; color: var(--apoio); }
.hotel-t { margin-top: 14px; }
.hotel-t a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; font-family: var(--f-num); font-size: 19px; color: var(--tit); text-decoration: none; }
.hotel-t a:hover { text-decoration: underline; }
.hotel-t .ic { color: var(--teal-escuro); }
.hotel-site .link-seta { font-size: 15.5px; }
.hotel-site .link-seta .ic { width: 16px; height: 16px; }
.hotel-mapa { margin-top: auto; padding-top: 8px; }
.hotel-mapa-l { display: flex; flex-wrap: wrap; }
.hotel-mapa-l a {
  display: inline-flex; align-items: center; min-height: 36px; padding-right: 11px; margin-right: 11px; border-right: 1px solid var(--linha);
  font-size: 15px; color: var(--teal-escuro); text-decoration: underline; text-decoration-color: rgba(11, 106, 102, .35);
}
.hotel-mapa-l a:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.hotel-mapa-l a:hover { text-decoration-color: currentColor; }
/* (r6) foto no topo da ficha: 3:2 para todas (fotos da mesma linha na mesma altura), canto de 2px como as outras fotos,
   sem sombra nem zoom. max-width inline = largura nativa (nunca amplia); no celular a ficha limita a foto a 460 px. */
.hotel-foto { margin-bottom: 18px; }
.hotel-foto img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 2px; background: var(--concreto); }
/* sem foto: painel concreto com a fachada em traço de prancha + rótulo — parece intencional, não imagem quebrada */
.hotel-sem-foto {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  width: 100%; aspect-ratio: 3 / 2; background: var(--concreto); border: 1px solid var(--linha); border-radius: 2px;
}
.hotel-sf-desenho { width: 64%; max-width: 240px; height: auto; }
.hotel-sf-rot { font-size: 14px; line-height: 1.3; color: var(--apoio); }
@media (max-width: 1199px) { .hoteis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991px) { .hoteis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .hoteis { grid-template-columns: minmax(0, 1fr); }
  .hotel-foto { max-width: 460px; }
  .hgrupo-cab { flex-direction: column; }
  .hoteis-nav ul { flex-direction: column; row-gap: 0; border-bottom: 1px solid var(--linha); }
  .hoteis-nav a { display: flex; justify-content: space-between; margin-right: 0; padding: 12px 0; border-right: 0; border-top: 1px solid var(--linha); }
}

/* palestrantes.html: índice de nomes (só aparece com 4+ palestrantes) */
.pal-indice-sec { padding-block: clamp(36px, 4vw, 56px); }
.pal-ind-n { margin-left: 8px; font-family: var(--f-num); font-weight: 400; color: var(--teal-escuro); }
.pal-indice { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; }
.pal-indice li { border-top: 1px solid var(--linha-forte); }
.pal-indice a { display: flex; flex-direction: column; min-height: 44px; padding: 10px 0 12px; text-decoration: none; }
.ind-nome { font-size: 17px; font-weight: 500; line-height: 1.35; color: var(--tit); }
.pal-indice a:hover .ind-nome { color: var(--teal-escuro); text-decoration: underline; }
.ind-cargo { font-size: 14.5px; line-height: 1.4; color: var(--apoio); }
@media (max-width: 991px) { .pal-indice { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .pal-indice { grid-template-columns: minmax(0, 1fr); } }

/* ================================================================ contato + inscrição */
.contato-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.contato-redes-t { margin: 26px 0 10px; font-size: 15px; font-weight: 500; color: var(--apoio); }
.contatos li { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 16px; padding: 14px 0; border-top: 1px solid var(--linha); }
.contatos li:first-child { border-top: 0; padding-top: 0; }
.ct-ic { grid-row: span 2; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--linha-forte); border-radius: 50%; color: var(--teal-escuro); }
.ct-ic .ic { width: 18px; height: 18px; }
.contatos .rot { font-size: 14px; color: var(--apoio); }
.contatos .val { font-size: 18px; color: var(--tit); text-decoration: none; overflow-wrap: anywhere; display: inline-flex; align-items: center; min-height: 32px; }
.contatos a.val:hover { text-decoration: underline; }
.contatos .val-txt { display: block; font-size: 17px; line-height: 1.5; }
.local-grade-ctt .acoes + .acoes { margin-top: 12px; }
.ctt-foto img { width: 100%; }

.invest-pag .painel { height: 100%; }
.quando-grade { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px 56px; align-items: center; }
.contagem-grande .ct-rot { display: block; font-size: 15px; font-weight: 500; color: var(--teal-escuro); margin-bottom: 10px; }
.contagem-grande .ct-nums { display: flex; }
.contagem-grande .ct-bloco { display: flex; flex-direction: column; padding: 0 26px; border-left: 1px solid var(--linha-forte); }
.contagem-grande .ct-bloco:first-child { padding-left: 0; border-left: 0; }
.contagem-grande .ct-n { font-family: var(--f-num); font-size: clamp(52px, 5vw, 76px); font-weight: 300; line-height: 1; color: var(--tit); }
.contagem-grande .ct-u { font-size: 15px; color: var(--apoio); margin-top: 4px; }
.contagem-grande .ct-fim { font-size: 20px; color: var(--tit); }

/* ================================================================ entrada suave ao rolar (uma vez) */
.js .revela.oculto { opacity: 0; transform: translateY(18px); }
.revela.visto { transition: opacity .7s ease, transform .7s ease; }

/* ================================================================ responsivo */
/* desktop largo: acima de 2560 a foto do hero fica no tamanho nativo, com as bordas esfumadas no fundo */
@media (min-width: 2561px) {
  .hero-foto img { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); }
}
@media (min-width: 1921px) {
  .topo-foto img { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); }
}
/* 761–1440: hero-1440 (562 px de altura) — nunca mais alta que o nativo; se o hero crescer, o pé esfuma no petróleo */
@media (min-width: 761px) and (max-width: 1440px) {
  .hero-foto img { max-height: 562px; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
}
/* notebooks baixos (1366×657, 1280×610): hero + carimbo cabem na tela */
@media (min-width: 1001px) and (max-height: 760px) {
  .hero-in { padding-block: 22px; }
  .hero-tag { font-size: 16px; }
  .hero h1 { margin: 14px 0 16px; }
  .hero h1 img { width: clamp(270px, 22vw, 310px); }
  .hero-data { font-size: 36px; }
  .hero-acoes { margin-top: 20px; }
}
@media (min-width: 1001px) and (max-height: 680px) {
  .hero-in { padding-block: 16px; }
  .hero-tag { max-width: 560px; font-size: 15px; }
  .hero h1 { margin: 10px 0 12px; }
  .hero h1 img { width: 256px; }
  .hero-data { font-size: 33px; }
  .hero-onde { margin-top: 8px; font-size: 16px; }
  .hero-acoes { margin-top: 16px; }
  .cb-cel { padding: 10px 18px 11px; }
  .carimbo dd small { margin-top: 0; }
}

@media (max-width: 1240px) {
  .carimbo { grid-template-columns: 1.1fr 1.4fr .85fr 1.4fr; }
  .cb-marca { display: none; }
  .pdia { padding-inline: 22px; }
  .plista li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .turno { grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 1180px) {
  .motivos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .motivo:nth-child(4n+1) { border-left: 1px solid var(--linha); padding-left: 28px; }
  .motivo:nth-child(odd) { border-left: 0; padding-left: 0; }
  .rod-grade { grid-template-columns: 1.2fr 1fr 1.3fr; }
  .rod-grade > div:last-child { grid-column: 1; }
  .carimbo-claro { grid-template-columns: 1fr 1fr 1fr; }
  .carimbo-claro .cb-evento { grid-column: 1 / -1; border-bottom: 1px solid var(--linha-forte); }
  .carimbo-claro .cb-cel:nth-child(5) { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--linha-forte); }
  .carimbo-claro .cb-cel:nth-child(2) { border-left: 0; }
}

@media (max-width: 1100px) {
  :root { --cab-h: 68px; }
  .cab-in { height: 68px; }
  .marca img { height: 40px; }
  .menu-botao {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -6px;
    background: transparent; border: 1px solid var(--e-linha); border-radius: 6px; cursor: pointer;
  }
  .menu-botao span, .menu-botao span::before, .menu-botao span::after {
    display: block; width: 20px; height: 2px; background: #FFFFFF; border-radius: 2px; transition: transform .25s ease, opacity .2s ease;
  }
  .menu-botao span { position: relative; }
  .menu-botao span::before, .menu-botao span::after { content: ""; position: absolute; left: 0; }
  .menu-botao span::before { top: -6px; }
  .menu-botao span::after { top: 6px; }
  .menu-aberto .menu-botao span { background: transparent; }
  .menu-aberto .menu-botao span::before { transform: translateY(6px) rotate(45deg); }
  .menu-aberto .menu-botao span::after { transform: translateY(-6px) rotate(-45deg); }
  .menu {
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 14px;
    padding: 12px var(--gut) 22px; background: var(--c850); border-top: 1px solid var(--e-linha); border-bottom: 1px solid var(--e-linha);
    max-height: calc(100vh - var(--cab-h) - var(--topbar-h)); max-height: calc(100dvh - var(--cab-h) - var(--topbar-h));
    overflow-y: auto; overscroll-behavior: contain;
    display: none;
  }
  .menu-aberto .menu { display: flex; }
  .menu ul { flex-direction: column; gap: 0; }
  .menu ul li + li { border-top: 1px solid var(--e-linha); }
  .menu ul a { min-height: 52px; padding: 0 2px; font-size: 17px; }
  .menu ul a::after { left: 2px; right: auto; width: 28px; bottom: 10px; }
  html.menu-aberto { overflow: hidden; }
  .menu-aberto body::after { content: ""; position: fixed; inset: 0; z-index: 49; background: rgba(7, 31, 36, .72); }
  .no-js .menu-botao { display: none; }
  .no-js .cab-in { height: auto; flex-wrap: wrap; padding-block: 10px; }
  .no-js .menu { display: flex; position: static; flex-direction: row; flex-wrap: wrap; padding: 0; border: 0; max-height: none; }
  .no-js .menu ul { flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 1000px) {
  .topbar .tb-email { display: none; }
  .evento-grade, .publico-grade, .local-grade, .ambiente, .invest-grade, .edicoes-grade, .contato-grade, .fecho-grade { grid-template-columns: minmax(0, 1fr); }
  .numeros-caixa { max-width: 560px; }
  .publico-foto { max-width: 720px; }
  .pdias { grid-template-columns: minmax(0, 1fr); border-top: 0; }
  .pdia { padding: 26px 0 10px; border-left: 0; border-top: 1px solid var(--linha-forte); }
  .pdia:first-child { padding-left: 0; }
  .plista li { grid-template-columns: 120px minmax(0, 1fr); gap: 14px; }
  .pdia-cab .cota { max-width: 420px; }
  .turno { grid-template-columns: minmax(0, 1fr); }
  .turno-cab { border-right: 0; border-bottom: 1px solid var(--e-linha); display: grid; grid-template-columns: auto 1fr; column-gap: 24px; align-items: baseline; }
  .turno-ag { grid-column: 1 / -1; }
  .fecho-cta { padding-left: 0; border-left: 0; padding-top: 28px; border-top: 1px solid var(--linha-forte); }
  .pal-pag-grade { grid-template-columns: 280px minmax(0, 1fr); }
  .retrato-grande { width: 280px; }
  .quando-grade { grid-template-columns: minmax(0, 1fr); }

  /* hero em tablet: texto sobre a foto, carimbo em 2×2 */
  .hero { min-height: 0; }
  .hero-foto::after { background: linear-gradient(90deg, rgba(11, 50, 56, .92) 0%, rgba(11, 50, 56, .7) 45%, rgba(11, 50, 56, .25) 80%); }
  .hero-in { padding-block: 44px 40px; }
  .hero h1 img { width: 320px; }
  .carimbo { grid-template-columns: 1fr 1fr; }
  .cb-cel:nth-child(3) { border-left: 0; }
  .cb-cel:nth-child(n+3) { border-top: 1px solid var(--e-linha); }
}

@media (max-width: 760px) {
  /* celular: foto do engenheiro (retrato 4:5) atrás de todo o hero; o texto fica no alto, onde a foto é mais escura */
  .hero-foto img { object-position: 50% 100%; max-height: none; }
  .hero-foto::after { background: linear-gradient(180deg, rgba(11, 50, 56, .88) 0%, rgba(11, 50, 56, .7) 52%, rgba(11, 50, 56, .35) 78%, rgba(11, 50, 56, .6) 100%); }
  .cv-sombra, .cv-faixa { display: none; }
  .hero-in { padding-block: 32px 52px; }   /* r5: era 96 — em 390×844 o carimbo passava 30 px da tela */
  .hero-tag { font-size: 16px; }
  .hero h1 { margin: 14px 0 18px; }
  .hero h1 img { width: min(300px, 82vw); }
  .hero-data { font-size: 34px; gap: 10px; }
  .hero-acoes .botao { flex: 1 1 200px; }
  .plista li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .turno-ofs { grid-template-columns: minmax(0, 1fr); }
  .of { border-left: 0; border-top: 1px solid var(--e-linha); }
  .of:first-child { border-top: 0; }
  .lista-seta { grid-template-columns: minmax(0, 1fr); }
  .ac-cab { grid-template-columns: 40px minmax(0, 1fr) 44px; gap: 14px; padding: 16px; }
  .ac-n { font-size: 40px; }
  .ac-desc { padding: 4px 16px 18px; }
  .agenda > li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ag-ofs { grid-template-columns: minmax(0, 1fr); }
  .minis { grid-template-columns: minmax(0, 1fr); }
  .pal-pag-grade { grid-template-columns: minmax(0, 1fr); }
  .retrato-grande { width: min(300px, 80vw); }
  .rod-grade { grid-template-columns: 1fr 1fr; }
  .rod-marca { grid-column: 1 / -1; }
  .rod-grade > div:last-child { grid-column: auto; }
  .whats { width: 48px; height: 48px; right: 12px; bottom: 12px; }
  .whats svg { width: 26px; height: 26px; }
  .barra-on .whats { bottom: calc(var(--barra-h) + 10px); }
  /* barra fixa: só nome, preço e botão */
  .barra-in { gap: 12px; padding-block: 12px 10px; }
  .barra-pre, .barra-preco, .barra-data { display: none; }
  .barra-preco-cel { display: block; font-family: var(--f-num); font-size: 21px; line-height: 1.15; color: #FFFFFF; }
  .barra-txt strong { font-size: 14px; }
  .barra .botao { margin-left: auto; padding: 0 16px; min-height: 46px; font-size: 15px; }
  /* tabela de diárias vira lista por apartamento */
  .tabela, .tabela tbody, .tabela tr, .tabela th, .tabela td { display: block; }
  .tabela { border: 0; background: transparent; }
  .tabela thead { display: none; }
  .tabela caption { display: block; }
  .tabela tbody tr { background: #FFFFFF; border: 1px solid var(--linha-forte); margin-bottom: 12px; }
  .tabela tbody th { padding: 14px 18px; border-top: 0; border-bottom: 1px solid var(--linha); }
  .tabela td { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 18px; border-top: 0; }
  .tabela td + td { border-top: 1px solid var(--linha); }
  .tabela td::before { content: attr(data-rot); font-size: 14px; color: var(--apoio); }
}

@media (max-width: 600px) {
  :root { --topbar-h: 0px; }
  .topbar { display: none; }
  .secao { padding-block: 56px; }
  .numeros li { padding: 20px 16px 22px; min-height: 140px; }
  .motivos { grid-template-columns: minmax(0, 1fr); }
  .motivo, .motivo:nth-child(4n+1), .motivo:nth-child(odd) { border-left: 0; padding: 22px 0 24px; }
  .motivo-n { font-size: 38px; }
  .painel { padding: 28px 20px 26px; }
  .pagamento dl > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pagamento dt { grid-column: 1 / -1; }
  .contagem-grande .ct-bloco { padding: 0 16px; }
  .galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rg-escala li:nth-child(even) span { visibility: hidden; }
  .rg-cotas { height: 64px; }
  .carimbo-claro { grid-template-columns: 1fr 1fr; }
  .carimbo-claro .cb-cel:nth-child(4) { border-left: 0; border-top: 1px solid var(--linha-forte); }
  .carimbo-claro .cb-cel:nth-child(3) { border-left: 1px solid var(--linha-forte); }
  .carimbo-claro .cb-cel:nth-child(2), .carimbo-claro .cb-cel:nth-child(3) { border-top: 0; }
  .carimbo-claro .cb-cel:nth-child(5) { grid-column: auto; border-left: 1px solid var(--linha-forte); }
  .video-play { width: 60px; height: 60px; }
  .video-rot { font-size: 15px; left: 16px; bottom: 12px; }
  .topo { min-height: 240px; }
  .topo-in { padding-block: 36px 32px; }
}

@media (max-width: 480px) {
  .hero-data { font-size: 30px; }
  .hero-pres { flex-basis: 100%; padding-left: 0; border-left: 0; }
  .carimbo dd { font-size: 16px; }
  .cb-cel { padding: 10px 12px 12px; }
  .ct-carimbo .ct-nums { gap: 8px; }
  .ct-carimbo .ct-n { font-size: 22px; }
  .ct-carimbo .ct-u { font-size: 13px; margin-left: 2px; }
  .barra-simbolo { display: none; }
  .barra .botao { padding: 0 14px; }
  .barra .botao .ic { display: none; }
  .rod-grade { grid-template-columns: minmax(0, 1fr); }
  .breve-linha-acoes .acoes .botao, .acoes-centro .botao { flex: 1 1 100%; }
  .breve-linha-acoes .acoes { width: 100%; }
  .num { font-size: 52px; }
  .endereco > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
@media (max-width: 360px) {
  .titulo { font-size: 27px; }
  .hero-data { font-size: 27px; gap: 8px; }
  .contagem-grande .ct-n { font-size: 44px; }
  .barra .botao { width: 104px; padding: 0 10px; white-space: normal; line-height: 1.15; }
  .ac-cab { grid-template-columns: minmax(0, 1fr) 44px; }
  .ac-n { display: none; }
}

/* celular deitado (844×390, 667×375) — r5: cabeçalho fixo + barra + topbar tomavam ~40% da tela.
   Aqui: sem topbar, cabeçalho rola com a página (não fixo), barra fina de uma linha, hero mais baixo. */
@media (max-height: 500px) and (orientation: landscape) and (max-width: 1100px) {
  :root { --topbar-h: 0px; }
  .topbar { display: none; }
  .cabecalho { position: relative; }
  html { scroll-padding-top: 16px; }
  .hgrupo { scroll-margin-top: 16px; }
  .menu { max-height: calc(100vh - var(--cab-h)); max-height: calc(100dvh - var(--cab-h)); }
  .hero-in { padding-block: 22px 26px; }
  .hero-tag { max-width: none; font-size: 15px; }
  .hero h1 { margin: 10px 0 12px; }
  .hero h1 img { width: 230px; }
  .hero-data { font-size: 30px; }
  .hero-onde { margin-top: 8px; font-size: 16px; }
  .hero-acoes { margin-top: 16px; }
  .hero-acoes .botao { flex: 0 1 auto; min-height: 46px; }
  .topo { min-height: 0; }
  .topo-in { padding-block: 28px 26px; }
  .whats { width: 48px; height: 48px; right: 12px; bottom: 12px; }
  .whats svg { width: 26px; height: 26px; }
  .barra-on .whats { bottom: calc(var(--barra-h) + 10px); }
  .barra-in { gap: 14px; padding-block: 8px 7px; }
  .barra-simbolo { height: 28px; }
  .barra-pre, .barra-preco, .barra-data { display: none; }
  .barra-txt { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 14px; }
  .barra-txt strong { font-size: 15px; }
  .barra-preco-cel { display: block; font-family: var(--f-num); font-size: 20px; line-height: 1.15; color: #FFFFFF; }
  .barra .botao { margin-left: auto; padding: 0 16px; min-height: 44px; font-size: 15px; }
}

/* alvos de toque ≥ 44 px no celular e no tablet (inclusive deitado) */
@media (max-width: 1180px) {
  .endereco a, .contatos a.val, .rodape nav a, .rod-contato a, .rod-base a, .topbar a, .hotel-t a, .hotel-mapa-l a { min-height: 44px; }
  .hotel-mapa-l a { min-width: 44px; }
  .topbar a { padding-block: 0; }
  .trilha a, .rodape nav a { min-width: 44px; }
  .trilha a { justify-content: center; }
  .trilha li + li::before { margin: 0 8px 0 6px; }
}
@media (max-width: 400px) {
  /* celular estreito: o carimbo mostra dias e horas (os minutos não cabem na meia célula) */
  .cb-cel { padding: 10px 10px 12px; }
  .ct-carimbo .ct-bloco:nth-child(3) { display: none; }
}
@media (max-width: 420px) {
  .carimbo-claro { grid-template-columns: minmax(0, 1fr); }
  .carimbo-claro .cb-cel, .carimbo-claro .cb-cel:nth-child(n) { grid-column: auto; border-left: 0; border-top: 1px solid var(--linha-forte); }
  .carimbo-claro .cb-cel:first-child { border-top: 0; border-bottom: 0; }
}

/* ================================================================ movimento reduzido: estado final, sem transições */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .js .revela.oculto { opacity: 1; transform: none; }
  .js [data-cota].a-desenhar .cota-l, .js [data-cota].a-desenhar .rg-linha { transform: none; }
  .js [data-seta].a-desenhar .seta-ev path { stroke-dashoffset: 0; }
}
