/* Páginas públicas (/jornada, /lugar/*): papel, serifa, oliva e cáqui */
:root {
  --papel: #f4eedf; --papel-2: #ebe2cb; --papel-3: #e2d6b6; --tinta: #2b2a22; --tinta-2: #55513f; --tinta-3: #857e62;
  --oliva: #4f5a2b; --oliva-2: #6c7840; --caqui: #b39c62; --caqui-2: #d6c495; --vinho: #8a3b2e; --linha: #cdbf98;
  --ok: #4f6a32; --parcial: #a77c22; --conflito: #9a3b2b; --neutro: #8b8570;
  --serifa: 'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  --titulo: 'IM Fell English', 'Libre Caslon Text', Georgia, serif;
  --versalete: 'IM Fell English SC', 'IM Fell English', Georgia, serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body.museu { background: var(--papel); color: var(--tinta); font-family: var(--serifa); font-size: 17px; line-height: 1.6;
  background-image: radial-gradient(ellipse at 20% 0%, rgba(255,255,255,.45), transparent 60%), radial-gradient(ellipse at 100% 100%, rgba(179,156,98,.12), transparent 55%); }
.museu a { color: var(--oliva); text-decoration-color: var(--caqui); text-underline-offset: 2px; }
.museu a:hover { color: var(--vinho); }
.museu h1, .museu h2, .museu h3 { font-family: var(--titulo); font-weight: 400; line-height: 1.15; color: var(--tinta); }
.museu h2 { font-size: 1.7rem; margin: 0 0 1rem; padding-bottom: .35rem; border-bottom: 1px solid var(--linha); }
.sobretitulo { font-family: var(--versalete); letter-spacing: .06em; color: var(--tinta-3); margin: 0 0 .2rem; font-size: .95rem; }
.sobretitulo a { color: inherit; }
.lead { font-size: 1.12rem; color: var(--tinta-2); font-style: italic; }
.vazio { color: var(--tinta-3); font-style: italic; }
.dica { color: var(--tinta-3); font-size: .9rem; }
code { font-size: .85em; }

/* topo */
.m-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1.5rem; background: rgba(244,238,223,.94);
  border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 1000; backdrop-filter: blur(4px); flex-wrap: wrap; }
.m-marca { font-family: var(--titulo); font-size: 1.35rem; color: var(--tinta) !important; text-decoration: none; }
.m-marca small { font-family: var(--versalete); color: var(--tinta-3); font-size: .85rem; margin-left: .4rem; letter-spacing: .08em; }
.m-estrela { color: var(--oliva-2); }
.m-nav { display: flex; gap: 1.2rem; flex-wrap: wrap; font-family: var(--versalete); font-size: 1rem; letter-spacing: .03em; }
.m-nav a { text-decoration: none; color: var(--tinta-2); }
.m-nav a:hover { color: var(--oliva); }
.m-nav .m-pesquisa { color: var(--tinta-3); }

/* rodapé */
.m-rodape { margin-top: 3rem; padding: 1.5rem; border-top: 1px solid var(--linha); color: var(--tinta-3); font-size: .85rem; text-align: center; }
.selo-leg { margin-left: 1rem; white-space: nowrap; }
.st { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .3rem; vertical-align: middle; background: var(--neutro); }
.st.ok { background: var(--ok); } .st.parcial { background: var(--parcial); } .st.conflito { background: var(--conflito); }
.m-creditos { font-size: .75rem; }

/* selos discretos */
.m-selo { display: inline-block; font-family: var(--versalete); font-size: .72rem; letter-spacing: .08em; padding: 0 .45rem; border-radius: 2px;
  border: 1px solid currentColor; vertical-align: middle; line-height: 1.5; background: rgba(255,255,255,.35); }
.m-selo.ok { color: var(--ok); } .m-selo.parcial { color: var(--parcial); } .m-selo.conflito { color: var(--conflito); } .m-selo.neutro { color: var(--neutro); }
.m-tag { font-family: var(--versalete); font-size: .72rem; color: var(--oliva-2); border: 1px solid var(--caqui-2); padding: 0 .35rem; border-radius: 2px; }

/* badge de fonte ao fim de cada frase */
.frase .badges { white-space: nowrap; }
.fonte-badge { display: inline-block; font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace; font-size: .62rem; line-height: 1.45; padding: 0 .3rem; margin-left: .2rem;
  vertical-align: .25em; border-radius: 2px; text-decoration: none !important; border: 1px solid; background: rgba(255,255,255,.4); }
.fonte-badge.ok { color: var(--ok) !important; border-color: rgba(79,106,50,.5); }
.fonte-badge.parcial { color: var(--parcial) !important; border-color: rgba(167,124,34,.5); }
.fonte-badge.conflito { color: var(--conflito) !important; border-color: rgba(154,59,43,.55); }
.fonte-badge.neutro { color: var(--neutro) !important; border-color: var(--linha); }
.fonte-badge:hover, .fonte-badge.ativo { background: var(--tinta); color: var(--papel) !important; }

/* gaveta lateral de fonte */
.gaveta { position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 92vw); background: #fbf7ec; border-left: 1px solid var(--linha); box-shadow: -12px 0 30px rgba(43,42,34,.18);
  transform: translateX(105%); transition: transform .25s ease; z-index: 2000; overflow-y: auto; padding: 1.4rem 1.5rem 2rem; font-size: .93rem; }
.gaveta.aberta { transform: none; }
.gaveta-fechar { position: absolute; top: .5rem; right: .7rem; border: 0; background: none; font-size: 1.8rem; cursor: pointer; color: var(--tinta-3); }
.gaveta h3 { font-size: 1.35rem; margin: .2rem 0 .5rem; }
.gaveta h4 { font-family: var(--versalete); font-weight: 400; color: var(--tinta-3); margin: 1.2rem 0 .3rem; letter-spacing: .05em; }
.gaveta ul { padding-left: 1.1rem; margin: 0; }
.g-md { border-left: 3px solid var(--caqui-2); padding-left: .8rem; color: var(--tinta-2); }
.g-md p { margin: .5rem 0; } .g-md ul { padding-left: 1rem; }
.g-md table { font-size: .8rem; }
.g-mais { margin-top: 1.2rem; font-weight: 700; }

/* ---------- JORNADA ---------- */
.pg-jornada .m-rodape { display: none; }
.jornada { position: relative; height: calc(100vh - 56px); min-height: 560px; overflow: hidden; }
.mapa-grande { position: absolute; inset: 0; background: var(--papel-2); }
.leaflet-container { font-family: var(--serifa); background: var(--papel-2); }
.museu .leaflet-tile-pane { filter: sepia(.55) saturate(.75) contrast(.95) brightness(1.02); }
.camada-relevo { mix-blend-mode: multiply; }
.leaflet-control-attribution { background: rgba(244,238,223,.8) !important; font-size: 10px; }
.j-titulo { position: absolute; top: 1.2rem; left: 1.5rem; z-index: 500; max-width: 430px; padding: 1rem 1.3rem; background: rgba(244,238,223,.9);
  border: 1px solid var(--linha); box-shadow: 0 2px 10px rgba(43,42,34,.08); }
.j-titulo h1 { font-size: 2.6rem; margin: 0; }
.j-titulo h1 em { font-size: .6em; color: var(--tinta-3); }
.j-titulo .lead { margin: .4rem 0 0; font-size: .98rem; }
.j-cartao { position: absolute; top: 1.2rem; right: 1.5rem; z-index: 500; width: 380px; max-height: calc(100% - 200px); overflow-y: auto; padding: 1.1rem 1.3rem;
  background: #fbf7ec; border: 1px solid var(--linha); box-shadow: 0 4px 18px rgba(43,42,34,.14); }
.j-cartao h2 { font-size: 1.6rem; border: 0; margin: .1rem 0 .2rem; padding: 0; }
.j-cartao .periodo { font-family: var(--versalete); color: var(--oliva); margin: 0 0 .5rem; letter-spacing: .03em; }
.j-cartao .texto { margin: .4rem 0 .6rem; font-size: .96rem; }
.j-cartao .em-desloc { font-style: italic; color: var(--tinta-3); font-size: .9rem; }
.j-cartao .links { font-size: .88rem; display: flex; flex-wrap: wrap; gap: .3rem .9rem; border-top: 1px dotted var(--linha); padding-top: .5rem; }
.j-cartao .fatos { margin: .4rem 0; font-size: .85rem; }
.j-cartao .fatos li { margin: .15rem 0; list-style: none; }
.j-cartao .fatos { padding: 0; }
.j-tempo { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.6rem; z-index: 500; background: rgba(251,247,236,.95); border: 1px solid var(--linha);
  padding: .7rem 1.2rem .5rem; box-shadow: 0 2px 12px rgba(43,42,34,.1); }
.j-tempo-topo { display: flex; align-items: center; gap: 1rem; }
.j-play { width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 1px solid var(--oliva); background: var(--oliva); color: var(--papel); cursor: pointer; font-size: .9rem; }
.j-play:hover { background: var(--oliva-2); }
.j-data { font-family: var(--titulo); font-size: 1.5rem; min-width: 12rem; }
.j-fase { font-family: var(--versalete); color: var(--tinta-3); letter-spacing: .06em; }
.j-trilho { position: relative; margin-top: .3rem; height: 30px; }
.j-marcas { position: absolute; left: 9px; right: 9px; top: 0; height: 30px; pointer-events: none; }
.j-marcas i { position: absolute; top: 9px; height: 12px; border-radius: 2px; background: var(--caqui-2); opacity: .9; min-width: 3px; }
.j-marcas i.fase-sep { top: 2px; height: 26px; width: 1px; min-width: 1px; background: var(--linha); }
.j-marcas i.atual { background: var(--oliva); }
.j-marcas b { position: absolute; top: -2px; font: 400 .66rem var(--versalete); color: var(--tinta-3); white-space: nowrap; transform: translateX(2px); }
#j-range { position: absolute; inset: 0; width: 100%; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; }
#j-range::-webkit-slider-runnable-track { height: 2px; background: var(--tinta-3); margin-top: 0; }
#j-range::-moz-range-track { height: 2px; background: var(--tinta-3); }
#j-range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--vinho); border: 3px solid #fbf7ec; box-shadow: 0 0 0 1px var(--vinho); margin-top: -8px; }
#j-range::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--vinho); border: 3px solid #fbf7ec; box-shadow: 0 0 0 1px var(--vinho); }
.j-anos { display: flex; justify-content: space-between; font: .72rem var(--versalete); color: var(--tinta-3); letter-spacing: .05em; }
.j-rodape-info { font-size: .72rem; color: var(--tinta-3); margin-top: .2rem; }
.j-rodape-info p { margin: 0; }
.rotulo-lugar { font-family: var(--titulo); font-size: 13px; color: var(--tinta); background: none; border: 0; box-shadow: none; text-shadow: 0 0 3px var(--papel), 0 0 3px var(--papel), 0 0 2px var(--papel); padding: 0; }
.rotulo-lugar::before { display: none; }
.leaflet-tooltip.rotulo-lugar.ativo { font-size: 16px; color: var(--vinho); }
.museu .leaflet-popup-content-wrapper { background: #fbf7ec; border-radius: 2px; }

/* ---------- LUGAR ---------- */
.lugar, .pagina-texto { max-width: 1180px; margin: 0 auto; padding: 1.5rem 1.5rem 0; }
.pagina-texto { max-width: 900px; }
.lugar-hero { display: grid; grid-template-columns: 1.25fr 1fr; gap: 2rem; align-items: stretch; padding: 1.5rem 0 2rem; border-bottom: 3px double var(--linha); }
.lugar-hero h1 { font-size: 3.6rem; margin: .1rem 0 0; }
.lugar-hero .local { font-style: italic; color: var(--tinta-2); margin: 0 0 .8rem; }
.lugar-hero .quando { margin: 0 0 1rem; font-size: 1.02rem; }
.epigrafe { font-family: var(--titulo); font-size: 1.25rem; line-height: 1.45; color: var(--tinta-2); border-left: 3px solid var(--caqui); padding-left: 1rem; margin: 0 0 1rem; }
.resumo { font-size: 1.02rem; }
.coord { font-size: .78rem; color: var(--tinta-3); }
.mapa-lugar { min-height: 340px; border: 1px solid var(--linha); box-shadow: 0 2px 10px rgba(43,42,34,.1); }
.lugar-grade { display: grid; grid-template-columns: minmax(260px, 1fr) 2fr; gap: 2.5rem; padding-top: 2rem; }
.linha-tempo { list-style: none; padding: 0 0 0 1.1rem; margin: 0; border-left: 2px solid var(--caqui-2); }
.linha-tempo li { position: relative; padding: 0 0 1rem .9rem; }
.linha-tempo li::before { content: ''; position: absolute; left: -1.55rem; top: .45rem; width: .7rem; height: .7rem; border-radius: 50%; background: var(--papel); border: 2px solid var(--oliva); }
.linha-tempo time { font-family: var(--versalete); color: var(--oliva); letter-spacing: .04em; font-size: .95rem; }
.linha-tempo p { margin: .1rem 0 0; font-size: .93rem; }
.cartao-narr { background: #fbf7ec; border: 1px solid var(--linha); padding: 1.1rem 1.4rem 1rem; margin-bottom: 1.3rem; box-shadow: 0 1px 0 var(--papel-3), 0 3px 0 -1px #fbf7ec, 0 3px 0 0 var(--linha); }
.cartao-narr header { margin-bottom: .4rem; }
.cartao-narr h3 { font-size: 1.6rem; margin: 0; }
.cartao-narr .periodo { font-family: var(--versalete); color: var(--tinta-3); margin: 0; font-size: .9rem; }
.cartao-narr > p { margin: .5rem 0 0; text-align: justify; hyphens: auto; }
.cartao-narr > p::first-letter { font-family: var(--titulo); font-size: 2.6em; float: left; line-height: .9; padding: .08em .1em 0 0; color: var(--oliva); }
.cartao-fatos ul { padding-left: 1.1rem; font-size: .93rem; }
.acervo, .vizinhos { margin-top: 2.5rem; }
.acervo-lista { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .9rem; }
.acervo-lista a { display: flex; flex-direction: column; height: 100%; padding: .8rem 1rem; background: #fbf7ec; border: 1px solid var(--linha); text-decoration: none; color: var(--tinta); }
.acervo-lista a:hover { border-color: var(--oliva); }
.ac-doc { font-family: var(--titulo); font-size: 1.05rem; line-height: 1.25; }
.ac-pag { font-family: var(--versalete); color: var(--oliva); font-size: .85rem; }
.ac-snip { font-size: .8rem; color: var(--tinta-2); margin-top: .3rem; font-family: Georgia, serif; }
.ac-snip mark { background: var(--caqui-2); color: inherit; padding: 0 .1em; }
.mais { margin-top: .8rem; }
.seq { display: flex; justify-content: space-between; font-family: var(--versalete); font-size: 1.05rem; }
.viz-lista { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .7rem; }
.viz-lista a { display: block; padding: .6rem .8rem; border: 1px solid var(--linha); text-decoration: none; background: rgba(255,255,255,.3); }
.viz-lista b { display: block; font-family: var(--titulo); font-weight: 400; font-size: 1.1rem; color: var(--tinta); }
.viz-lista small, .lista-lugares small { color: var(--tinta-3); }
.lista-lugares { columns: 2; column-gap: 2rem; padding-left: 1.4rem; }
.lista-lugares li { break-inside: avoid; margin-bottom: .5rem; }
.lista-lugares a { text-decoration: none; }
.lista-lugares b { font-family: var(--titulo); font-weight: 400; font-size: 1.15rem; color: var(--tinta); }
.lista-lugares small { display: block; font-size: .8rem; }

@media (max-width: 900px) {
  .lugar-hero, .lugar-grade { grid-template-columns: 1fr; }
  .lugar-hero h1 { font-size: 2.6rem; }
  .mapa-lugar { min-height: 260px; }
  .jornada { height: auto; min-height: 0; display: flex; flex-direction: column; overflow: visible; }
  .mapa-grande { position: relative; height: 55vh; order: 2; }
  .j-titulo, .j-cartao, .j-tempo, .j-rodape-info { position: relative; inset: auto; width: auto; max-width: none; margin: .6rem .8rem; max-height: none; }
  .j-titulo { order: 1; } .j-tempo { order: 3; } .j-cartao { order: 4; } .j-rodape-info { order: 5; }
  .j-titulo h1 { font-size: 2rem; }
  .lista-lugares { columns: 1; }
  .m-topo { padding: .6rem .8rem; }
}
.pg-jornada .leaflet-bottom.leaflet-right .leaflet-control-zoom { margin-bottom: 150px; }
@media (max-width: 900px) { .pg-jornada .leaflet-bottom.leaflet-right .leaflet-control-zoom { margin-bottom: 10px; } }
