/* =====================================================================
   Minas Terra — Layouts de página (site público, autenticação, portal)
   ===================================================================== */

/* ---------- Cabeçalho de página interna ---------- */
.pagina-topo { padding-block: clamp(3rem, 6vw, 6rem) clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--cor-borda); }
.pagina-topo .t-lead { margin-top: var(--s-4); }
.pagina-topo--escura { border: 0; }
.migalhas { display: flex; flex-wrap: wrap; gap: .35rem; font-size: var(--fs-micro); color: var(--cor-texto-suave); margin-bottom: var(--s-4); list-style: none; padding: 0; }
.migalhas li + li::before { content: "/"; margin-right: .35rem; opacity: .6; }
.migalhas a { color: inherit; }

/* ---------- Catálogo ---------- */
.catalogo { display: grid; gap: var(--s-6); padding-block: var(--s-7) var(--s-9); }
@media (min-width: 64rem) { .catalogo { grid-template-columns: 17rem minmax(0, 1fr); align-items: start; } }
.filtros { display: grid; gap: var(--s-5); }
@media (min-width: 64rem) { .filtros { position: sticky; top: 96px; max-height: calc(100svh - 120px); overflow-y: auto; padding-right: var(--s-2); } }
.filtros__grupo { display: grid; gap: var(--s-2); }
.filtros__grupo > span, .filtros__grupo legend { font-weight: 650; font-size: var(--fs-peq); }
.filtros .entrada, .filtros .selecao { min-height: 44px; padding-block: .5rem; }
.filtros__duplo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.filtros details summary { cursor: pointer; font-weight: 650; min-height: var(--alvo-min); display: flex; align-items: center; justify-content: space-between; }
@media (max-width: 63.99rem) {
  .filtros-wrap > details > summary { list-style: none; }
  .filtros-wrap > details:not([open]) .filtros { display: none; }
}
@media (min-width: 64rem) { .filtros-wrap > details > summary { display: none; } }
.resultados__topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s-3); margin-bottom: var(--s-5); }
.grade-cards { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); }
.grade-cards.atualizando { opacity: .4; transition: opacity var(--dur-micro); }
.lista-saidas { display: grid; gap: var(--s-3); list-style: none; padding: 0; }
.saida-linha { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); align-items: center; padding: var(--s-4); background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-3); }
@media (min-width: 48rem) { .saida-linha { grid-template-columns: 5rem 1fr auto auto; } }
.saida-linha__data { text-align: center; line-height: 1; }
.saida-linha__data strong { display: block; font-family: var(--fonte-display); font-size: 2.25rem; }
.saida-linha__data span { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: .08em; color: var(--cor-texto-suave); }
.saida-linha h3 { font-size: 1.0625rem; }
.saida-linha h3 a { color: inherit; text-decoration: none; }
.saida-linha h3 a:hover { text-decoration: underline; }

/* ---------- Página da experiência ---------- */
.exp-hero { position: relative; min-height: min(78svh, 46rem); display: grid; align-items: end; color: var(--marca-papel); background: var(--marca-floresta); overflow: hidden; isolation: isolate; }
.exp-hero__midia { position: absolute; inset: -5% 0; z-index: -2; }
.exp-hero__midia img { width: 100%; height: 100%; object-fit: cover; }
.exp-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(31 43 23 / .45), rgb(31 43 23 / .1) 40%, rgb(20 26 14 / .9)); }
.exp-hero__conteudo { padding-block: 8rem var(--s-7); }
.exp-hero h1 { max-width: 16ch; }
.exp-hero .migalhas { color: rgb(246 242 234 / .8); }
.exp-hero__meta { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5); margin-top: var(--s-5); font-weight: 550; }
.exp-hero__meta span { display: inline-flex; align-items: center; gap: .4rem; }
.exp-hero .dificuldade { --cor-borda: rgb(246 242 234 / .35); }
.exp-layout { display: grid; gap: var(--s-8); padding-block: var(--s-8) var(--s-10); }
@media (min-width: 64rem) { .exp-layout { grid-template-columns: minmax(0, 1fr) 23rem; align-items: start; } }
.exp-secao + .exp-secao { margin-top: var(--s-8); }
.exp-secao > h2 { font-size: clamp(1.75rem, 2.5vw + 1rem, 2.75rem); margin-bottom: var(--s-5); }
.exp-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); gap: var(--s-3); }
.exp-galeria button { padding: 0; border-radius: var(--raio-2); overflow: hidden; aspect-ratio: 4 / 3; }
.exp-galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-saida); }
.exp-galeria button:hover img { transform: scale(1.06); }
.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--raio-3); overflow: hidden; background: #000; }
.video-embed iframe, .video-embed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa-embed { aspect-ratio: 16 / 10; border-radius: var(--raio-3); overflow: hidden; border: 1px solid var(--cor-borda); }
.mapa-embed iframe { width: 100%; height: 100%; border: 0; }
.lista-checks { list-style: none; padding: 0; display: grid; gap: var(--s-2); }
.lista-checks li { display: flex; gap: var(--s-3); align-items: flex-start; }
.lista-checks .icone { color: var(--cor-secundaria); margin-top: .2rem; }
.saidas-escolha { display: grid; gap: var(--s-2); }
.saida-opcao { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border: 1.5px solid var(--cor-borda-forte); border-radius: var(--raio-2); cursor: pointer; }
.saida-opcao:has(input:checked) { border-color: var(--cor-primaria); box-shadow: 0 0 0 1px var(--cor-primaria); }
.saida-opcao:has(input:focus-visible) { outline: 3px solid var(--cor-foco); outline-offset: 2px; }
.saida-opcao input { position: absolute; opacity: 0; }
.saida-opcao[aria-disabled="true"] { opacity: .65; cursor: default; }
.saida-opcao small { display: block; color: var(--cor-texto-suave); }

/* ---------- Home ---------- */
.home-intro { display: grid; gap: var(--s-5); }
@media (min-width: 64rem) { .home-intro { grid-template-columns: 1.1fr 1fr; align-items: end; } }
.categorias-faixa { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); gap: var(--s-3); }
.categoria-card { display: grid; justify-items: start; gap: var(--s-3); padding: var(--s-5); border-radius: var(--raio-3); background: var(--cor-superficie); border: 1px solid var(--cor-borda); text-decoration: none; color: var(--cor-texto); transition: transform var(--dur-comp) var(--ease-saida), border-color var(--dur-micro); }
.categoria-card:hover { transform: translateY(-4px); border-color: var(--cor-texto); }
.categoria-card svg { width: 2.5rem; height: 2.5rem; color: var(--marca-sol); }
.categoria-card strong { font-size: 1.0625rem; }
.diferenciais { display: grid; gap: var(--s-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.diferencial { display: grid; gap: var(--s-3); }
.diferencial svg { width: 2.5rem; height: 2.5rem; color: var(--marca-ambar); }
.niveis { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); align-items: end; }
.nivel { padding: var(--s-5); border-radius: var(--raio-3) var(--raio-3) 0 0; background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-bottom-width: 6px; min-height: calc(7rem + var(--n) * 1.75rem); display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s-2); }
.nivel p { font-size: var(--fs-peq); color: var(--cor-texto-suave); }
.depoimentos { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.depoimento { display: grid; gap: var(--s-4); padding: var(--s-6); border-radius: var(--raio-3); background: var(--cor-superficie); border: 1px solid var(--cor-borda); }
.depoimento blockquote { font-size: 1.125rem; line-height: 1.55; }
.estrelas { display: inline-flex; gap: 2px; color: var(--marca-ambar); }
.estrelas .icone { fill: currentColor; width: 1rem; height: 1rem; }
.equipe-grade { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.pessoa { display: grid; gap: var(--s-3); text-decoration: none; color: inherit; }
.pessoa__foto { aspect-ratio: 4 / 5; border-radius: var(--raio-3); overflow: hidden; background: var(--marca-areia); }
.pessoa__foto img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter 500ms, transform 700ms var(--ease-saida); }
.pessoa:hover .pessoa__foto img, .pessoa:focus-visible .pessoa__foto img { filter: none; transform: scale(1.04); }
.pessoa small { color: var(--cor-texto-suave); }
.cta-faixa { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(5rem, 10vw, 9rem); color: var(--marca-papel); background: var(--marca-floresta); }
.cta-faixa__fundo { position: absolute; inset: -10% 0; z-index: -2; }
.cta-faixa__fundo img { width: 100%; height: 100%; object-fit: cover; }
.cta-faixa::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(20 26 14 / .62); }
.newsletter-form { display: grid; gap: var(--s-3); max-width: 34rem; }
@media (min-width: 40rem) { .newsletter-form .cluster { flex-wrap: nowrap; } }

/* ---------- Autenticação ---------- */
.auth { min-height: calc(100svh - 72px); display: grid; }
@media (min-width: 64rem) { .auth { grid-template-columns: 1fr 1fr; } }
.auth__arte { display: none; position: relative; overflow: hidden; background: var(--marca-floresta); color: var(--marca-papel); }
@media (min-width: 64rem) { .auth__arte { display: grid; align-items: end; padding: var(--s-8); } }
.auth__arte img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.auth__arte p { position: relative; font-family: var(--fonte-display); font-size: clamp(2.5rem, 4vw, 4.5rem); line-height: .95; text-transform: uppercase; max-width: 12ch; text-shadow: 0 2px 24px rgb(0 0 0 / .35); }
.auth__form { display: grid; align-content: center; padding: var(--s-7) var(--gutter); }
.auth__caixa { width: 100%; max-width: 28rem; margin-inline: auto; display: grid; gap: var(--s-5); }
.auth__caixa h1 { font-size: clamp(2.25rem, 4vw, 3.25rem); }
.separador { display: flex; align-items: center; gap: var(--s-3); color: var(--cor-texto-suave); font-size: var(--fs-micro); }
.separador::before, .separador::after { content: ""; flex: 1; height: 1px; background: var(--cor-borda); }
.senha-campo { position: relative; }
.senha-campo .entrada { padding-right: 3.25rem; }
.senha-campo button { position: absolute; right: 4px; top: 4px; width: 40px; height: 40px; border-radius: var(--raio-2); color: var(--cor-texto-suave); }
.forca-senha { height: 4px; border-radius: 2px; background: var(--cor-superficie-2); overflow: hidden; }
.forca-senha span { display: block; height: 100%; width: 0; transition: width var(--dur-comp), background-color var(--dur-comp); }

/* ---------- Portal ---------- */
.portal { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); padding-block: var(--s-6) var(--s-9); }
@media (min-width: 64rem) { .portal { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; } }
.portal-nav { display: flex; gap: var(--s-1); overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
.portal-nav a { display: flex; align-items: center; gap: var(--s-3); padding: .625rem .875rem; border-radius: var(--raio-2); color: var(--cor-texto); text-decoration: none; font-weight: 550; white-space: nowrap; }
.portal-nav a:hover { background: var(--cor-superficie-2); }
.portal-nav a[aria-current="page"] { background: var(--cor-texto); color: var(--cor-fundo); }
.portal-nav .contador { margin-left: auto; min-width: 1.5rem; padding: 0 .4rem; border-radius: var(--raio-pilula); background: var(--marca-sol-escuro); color: #fff; font-size: .75rem; text-align: center; }
@media (min-width: 64rem) { .portal-nav { position: sticky; top: 96px; flex-direction: column; margin: 0; padding: 0; overflow: visible; } }
.portal-titulo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--s-4); margin-bottom: var(--s-6); }
.portal-titulo h1 { font-size: clamp(2rem, 3vw + 1rem, 3.25rem); }
.cartao { background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-3); padding: var(--s-5); }
.cartao > h2, .cartao > h3 { font-family: var(--fonte-texto); font-size: 1.125rem; font-weight: 700; text-transform: none; letter-spacing: 0; line-height: 1.3; margin-bottom: var(--s-4); }
.cartao + .cartao { margin-top: var(--s-5); }
.reserva-item { display: grid; gap: var(--s-4); grid-template-columns: 5.5rem 1fr; padding: var(--s-4); background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-3); }
.reserva-item__img { aspect-ratio: 1; border-radius: var(--raio-2); overflow: hidden; background: var(--marca-areia); }
.reserva-item__img img { width: 100%; height: 100%; object-fit: cover; }
.reserva-item h3 { font-size: 1.0625rem; }
.reserva-item h3 a { color: inherit; }
.dl-grade { display: grid; gap: var(--s-3) var(--s-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.dl-grade dt { font-size: var(--fs-micro); font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--cor-texto-suave); }
.dl-grade dd { margin: .15rem 0 0; font-weight: 550; }
.estatisticas-pessoais { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); }
.estatisticas-pessoais div { padding: var(--s-4); border-radius: var(--raio-3); background: var(--marca-floresta); color: var(--marca-papel); }
.estatisticas-pessoais strong { display: block; font-family: var(--fonte-display); font-size: 2.25rem; color: var(--marca-ambar); line-height: 1.1; }
.conquistas { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); }
.conquista { display: grid; justify-items: center; gap: var(--s-2); padding: var(--s-4); text-align: center; border-radius: var(--raio-3); border: 1px dashed var(--cor-borda-forte); font-size: var(--fs-peq); }
.conquista .icone { width: 2rem; height: 2rem; }
.conquista--obtida { border-style: solid; border-color: var(--marca-ambar); background: color-mix(in srgb, var(--marca-ambar) 12%, var(--cor-superficie)); }
.conquista:not(.conquista--obtida) { color: var(--cor-texto-suave); }

/* ---------- Wizard de reserva ---------- */
.wizard { display: grid; gap: var(--s-6); padding-block: var(--s-6) var(--s-10); }
@media (min-width: 64rem) { .wizard { grid-template-columns: minmax(0, 1fr) 22rem; align-items: start; } }
.wizard__cabecalho { grid-column: 1 / -1; }
.participante-bloco { border: 1px solid var(--cor-borda); border-radius: var(--raio-3); padding: var(--s-5); background: var(--cor-superficie); }
.participante-bloco + .participante-bloco { margin-top: var(--s-5); }
.participante-bloco > legend, .participante-bloco > h3 { font-weight: 700; font-size: 1.125rem; padding: 0 var(--s-2); }
.pergunta-saude { padding: var(--s-4) 0; border-bottom: 1px dashed var(--cor-borda); }
.pergunta-saude:last-of-type { border-bottom: 0; }
.pergunta-saude__detalhe { margin-top: var(--s-3); }
.revisao dl { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: var(--s-2) var(--s-4); }
.revisao dt { color: var(--cor-texto-suave); font-size: var(--fs-peq); }
.revisao dd { margin: 0; font-weight: 550; }
.pix-caixa { display: grid; gap: var(--s-4); justify-items: center; text-align: center; padding: var(--s-6); border: 1px solid var(--cor-borda); border-radius: var(--raio-3); background: var(--cor-superficie); }
.pix-caixa img { width: min(16rem, 100%); image-rendering: pixelated; border-radius: var(--raio-2); background: #fff; padding: 8px; }
.pagamento-ok { text-align: center; display: grid; justify-items: center; gap: var(--s-4); padding: var(--s-8) var(--s-4); }
.pagamento-ok .icone { width: 4rem; height: 4rem; color: var(--cor-sucesso); }

/* ---------- Blog / prosa ---------- */
.artigo { padding-block: var(--s-8) var(--s-10); }
.artigo .prosa { font-size: 1.125rem; margin-inline: auto; }
.artigo .prosa img { border-radius: var(--raio-3); }
.artigo-capa { aspect-ratio: 21 / 9; border-radius: var(--raio-4); overflow: hidden; margin-bottom: var(--s-7); background: var(--marca-areia); }
.artigo-capa img { width: 100%; height: 100%; object-fit: cover; }
.card-artigo { display: grid; gap: var(--s-3); text-decoration: none; color: inherit; }
.card-artigo__img { aspect-ratio: 16 / 10; border-radius: var(--raio-3); overflow: hidden; background: var(--marca-areia); }
.card-artigo__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-saida); }
.card-artigo:hover img { transform: scale(1.05); }
.card-artigo h3 { font-size: 1.25rem; }
.legal .prosa h2 { font-family: var(--fonte-texto); font-size: 1.5rem; font-weight: 700; text-transform: none; letter-spacing: -.01em; line-height: 1.3; }
.legal .prosa h3 { font-size: 1.1875rem; }
.legal__meta { font-size: var(--fs-peq); color: var(--cor-texto-suave); padding: var(--s-4); border-radius: var(--raio-2); background: var(--cor-superficie-2); }

/* ---------- Aviso de cookies ---------- */
.aviso-cookies { position: fixed; z-index: var(--z-toast); inset: auto var(--s-3) var(--s-3) var(--s-3); display: grid; gap: var(--s-3); max-width: 34rem; padding: var(--s-4) var(--s-5); border-radius: var(--raio-3); background: var(--marca-cafe); color: var(--marca-papel); box-shadow: var(--sombra-3); font-size: var(--fs-peq); }
.aviso-cookies a { color: var(--marca-ambar); }
.aviso-cookies .btn--secundario { color: var(--marca-papel); }
@media (min-width: 48rem) { .aviso-cookies { left: auto; right: var(--s-6); bottom: var(--s-6); } }

/* ---------- Diversos ---------- */
.texto-centro { text-align: center; }
.mt-0 { margin-top: 0 !important; } .mt-3 { margin-top: var(--s-3); } .mt-5 { margin-top: var(--s-5); } .mt-7 { margin-top: var(--s-7); }
.suave { color: var(--cor-texto-suave); }
.oculto-mobile { display: none; } @media (min-width: 48rem) { .oculto-mobile { display: initial; } }
.duas-colunas { display: grid; gap: var(--s-6); }
@media (min-width: 64rem) { .duas-colunas { grid-template-columns: 1fr 1fr; } }
.aviso-vazio-home { padding: var(--s-6); border-radius: var(--raio-3); border: 1.5px dashed var(--cor-borda-forte); color: var(--cor-texto-suave); text-align: center; }
.erro-pagina { min-height: 70svh; display: grid; place-items: center; text-align: center; padding: var(--s-9) var(--gutter); }
.erro-pagina strong { font-family: var(--fonte-display); font-size: clamp(6rem, 20vw, 14rem); line-height: .9; color: var(--marca-sol); }
@media print {
  .cabecalho, .rodape, .portal-nav, .aviso-cookies, .toasts, .nao-imprimir, .pular-conteudo { display: none !important; }
  body { background: #fff; }
  .portal { display: block; padding: 0; }
}
