/* BAWE · Viagem em família — estilos compartilhados */
:root{
  --ambar:#C8841F; --ambar-escuro:#9E6614; --ambar-claro:#F3E1C2;
  --mata:#1F3A2E; --mata-noite:#142820; --mata-claro:#E3E8DF;
  --creme:#F4EDE0; --areia:#EAD7B4; --cacau:#3D2817;
  --salvia:#8A9A7B; --salvia-claro:#E4E9DD; --urucum:#B5532A; --urucum-claro:#F5E0D6;
  --papel:#F4EDE0; --linha:#D9C4A0; --texto:#1F3A2E; --texto-2:#5B4A38;
  --r-s:8px; --r-m:14px; --r-l:22px;
  --sombra:0 1px 0 rgba(31,58,46,.06), 0 8px 24px -12px rgba(31,58,46,.25);
  --f-marca:"Archivo Black", "Archivo", system-ui, sans-serif;
  --f-titulo:"Fraunces", Georgia, serif;
  --f-texto:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--areia);color:var(--texto);font-family:var(--f-texto);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--mata);text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ambar);outline-offset:2px;border-radius:4px}
.oculto{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.num{font-variant-numeric:tabular-nums}

/* Topo com a marca */
.topo{background:var(--salvia);color:var(--mata)}
.topo-in{max-width:720px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.marca{display:inline-flex;align-items:center;font-family:var(--f-marca);font-size:26px;letter-spacing:-.5px;line-height:1;color:var(--mata);text-decoration:none}
.marca .logo{height:34px;width:auto;display:block;overflow:visible}
.idioma{display:flex;gap:4px;background:var(--creme);padding:3px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--mata)}
.idioma button{border:0;background:none;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;color:var(--mata)}
.idioma button[aria-pressed="true"]{background:var(--mata);color:var(--creme)}

.pagina{max-width:720px;margin:0 auto;padding:0 16px 80px}
.abertura{padding:28px 0 8px}
.abertura h1{font-family:var(--f-titulo);font-weight:600;font-size:clamp(28px,6vw,40px);line-height:1.08;letter-spacing:-.5px;margin:0 0 10px;font-variation-settings:"opsz" 96}
.abertura p{margin:0;color:var(--texto-2);max-width:60ch}
.datas{display:inline-flex;gap:8px;align-items:center;margin-top:14px;background:var(--papel);border:1px solid var(--linha);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600}

h2{font-family:var(--f-titulo);font-weight:600;font-size:24px;line-height:1.15;margin:36px 0 6px;letter-spacing:-.2px}
h3{font-family:var(--f-titulo);font-weight:600;font-size:19px;margin:0 0 4px}
.apoio{color:var(--texto-2);margin:0 0 16px;font-size:15px}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 20px;font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;line-height:1.2;min-height:44px}
.btn-pri{background:var(--mata);color:var(--creme)}
.btn-pri:hover{background:var(--mata-noite)}
.btn-ambar{background:var(--ambar);color:var(--mata-noite)}
.btn-ambar:hover{background:var(--ambar-escuro);color:var(--creme)}
.btn-sec{background:transparent;color:var(--mata);box-shadow:inset 0 0 0 1.5px var(--mata)}
.btn-sec:hover{background:var(--mata-claro)}
.btn-link{background:none;border:0;padding:6px 0;color:var(--mata);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-wa{background:#1F3A2E;color:#fff}
.linha-btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Campos */
label{display:block;font-size:14px;font-weight:600;margin:0 0 6px}
.campo{margin:0 0 14px}
input[type=text],input[type=number],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=url],select,textarea{width:100%;background:var(--creme);border:1.5px solid var(--linha);border-radius:var(--r-s);padding:11px 12px;font-size:16px;min-height:44px}
input:focus,select:focus,textarea:focus{border-color:var(--mata);outline:none;box-shadow:0 0 0 3px rgba(200,132,31,.3)}
textarea{min-height:84px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:15px;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--mata);flex:0 0 auto}
.dica{font-size:13px;color:var(--texto-2);margin-top:4px}

/* Cartões */
.cartao{background:var(--papel);border:1px solid var(--linha);border-radius:var(--r-m);padding:18px}
.aviso{background:var(--ambar-claro);border-radius:var(--r-m);padding:14px 16px;font-size:15px;margin:16px 0}
.aviso-erro{background:var(--urucum-claro);color:var(--cacau)}
.faixa-demo{background:var(--mata);color:var(--creme);text-align:center;font-size:13px;padding:7px 16px}

/* Casa */
.casa{background:var(--papel);border:1px solid var(--linha);border-radius:var(--r-l);overflow:hidden;margin:0 0 22px;box-shadow:var(--sombra)}
.casa-foto{aspect-ratio:16/9;background:var(--areia) center/cover no-repeat;position:relative}
.casa-foto .selo{position:absolute;left:12px;bottom:12px;background:var(--creme);color:var(--mata);font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 11px}
.casa-corpo{padding:18px 18px 20px}
.casa-topo{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.casa-codigo{font-family:var(--f-marca);font-size:22px;letter-spacing:-.3px;color:var(--mata);line-height:1}
.casa-cidade{font-size:14px;color:var(--texto-2);margin-top:4px}
.casa-preco{text-align:right;font-size:13px;color:var(--texto-2)}
.casa-preco strong{display:block;font-family:var(--f-titulo);font-size:22px;color:var(--mata);font-weight:600}
.casa-titulo{margin:12px 0 0;font-size:15.5px}
.casa-fatos{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}
.casa-fatos li{background:var(--salvia-claro);color:var(--mata);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:500}
.votos-casa{margin:16px 0 0;padding-top:14px;border-top:1px dashed var(--linha)}
.votos-casa .conta{font-weight:700}
.voto-motivo{font-size:14px;color:var(--texto-2);margin:6px 0 0;padding-left:12px;border-left:3px solid var(--salvia)}
.voto-motivo b{color:var(--mata)}
.casa .acoes{margin-top:16px}
.lider{display:inline-block;background:var(--mata);color:var(--creme);font-size:12.5px;font-weight:600;border-radius:999px;padding:4px 10px;margin-left:6px;vertical-align:2px}

/* A planta da casa: o elemento que a família lembra */
.planta{margin:18px 0 6px}
.planta-casa{position:relative;padding-top:34px}
.planta-telhado{position:absolute;top:0;left:0;right:0;height:36px}
.planta-telhado svg{width:100%;height:100%;display:block}
.andar{border:2px solid var(--mata);border-top:0;background:var(--areia);padding:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.andar:first-of-type{border-top:2px solid var(--mata)}
.andar-nome{grid-column:1/-1;font-size:12.5px;font-weight:700;color:var(--texto-2);margin:0 0 -2px}
.quarto{background:var(--creme);border:1.5px solid var(--linha);border-radius:var(--r-s);padding:10px 11px;min-height:86px}
.quarto.ocupado{border-color:var(--ambar);background:var(--ambar-claro)}
.quarto-nome{font-weight:700;font-size:14px;display:flex;justify-content:space-between;gap:6px}
.quarto-camas{font-size:12px;color:var(--texto-2);margin:2px 0 6px}
.quarto-gente{font-size:13.5px;line-height:1.35}
.quarto-livre{font-size:13px;color:var(--texto-2);font-style:italic}
.chao{height:8px;background:var(--mata);border-radius:0 0 4px 4px}

.porques{list-style:none;padding:0;margin:14px 0 0}
.porques li{padding:9px 0 9px 26px;position:relative;font-size:15px;border-bottom:1px solid var(--linha)}
.porques li:last-child{border-bottom:0}
.porques li::before{content:"";position:absolute;left:4px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--ambar)}
.porques li.alerta::before{background:var(--urucum)}

.divisao{width:100%;border-collapse:collapse;margin:12px 0 4px;font-size:15px}
.divisao th{text-align:left;font-size:13px;color:var(--texto-2);font-weight:600;padding:6px 8px 6px 0;border-bottom:1.5px solid var(--mata)}
.divisao td{padding:10px 8px 10px 0;border-bottom:1px solid var(--linha);vertical-align:top}
.divisao td.v,.divisao th.v{text-align:right;padding-right:0}
.divisao tfoot td{font-weight:700;border-bottom:0}
.detalhe-casa{margin-top:18px;padding-top:4px}

/* Formulário de quem vai */
.nucleo{background:var(--creme);border:1.5px solid var(--linha);border-radius:var(--r-m);padding:14px;margin:0 0 14px}
.nucleo-topo{display:flex;gap:10px;align-items:flex-end}
.nucleo-topo .campo{flex:1;margin:0}
.pessoa{display:grid;grid-template-columns:1fr 84px;gap:8px;align-items:end;padding:12px 0;border-top:1px dashed var(--linha);margin-top:12px}
.pessoa .extras{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.pessoa .extras .check{font-size:14px}
.remover{background:none;border:0;color:var(--urucum);font-weight:600;font-size:14px;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.regras{display:grid;gap:8px}
.opcao-radio{display:flex;gap:10px;align-items:flex-start;background:var(--creme);border:1.5px solid var(--linha);border-radius:var(--r-s);padding:12px;cursor:pointer}
.opcao-radio input{margin-top:3px;accent-color:var(--mata);width:18px;height:18px}
.opcao-radio:has(input:checked){border-color:var(--mata);background:var(--mata-claro)}
.opcao-radio small{display:block;color:var(--texto-2);font-size:13.5px}

/* Janela */
.janela-fundo{position:fixed;inset:0;background:rgba(20,40,32,.55);display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:0}
.janela{background:var(--creme);width:100%;max-width:560px;border-radius:var(--r-l) var(--r-l) 0 0;padding:22px 18px 26px;max-height:92vh;overflow:auto}
@media(min-width:640px){.janela-fundo{align-items:center;padding:16px}.janela{border-radius:var(--r-l)}}
.janela h3{font-size:22px;margin-bottom:12px}

/* Serviços */
.filtros{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.filtros::-webkit-scrollbar{display:none}
.filtro{flex:0 0 auto;border:1.5px solid var(--mata);background:transparent;color:var(--mata);border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px;cursor:pointer}
.filtro[aria-pressed="true"]{background:var(--mata);color:var(--creme)}
.parceiro{background:var(--papel);border:1px solid var(--linha);border-radius:var(--r-m);padding:16px;margin:0 0 12px;display:grid;grid-template-columns:64px 1fr;gap:14px}
.parceiro-foto{width:64px;height:64px;border-radius:50%;background:var(--areia) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-family:var(--f-marca);color:var(--mata);font-size:22px}
.parceiro-cat{font-size:13px;color:var(--texto-2);font-weight:600}
.parceiro p{margin:6px 0 0;font-size:15px}
.parceiro .preco{font-size:14px;font-weight:600;color:var(--cacau)}
.parceiro .acoes{margin-top:12px}
.contato-aberto{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

.rodape{max-width:720px;margin:40px auto 0;padding:24px 16px 40px;border-top:1px solid var(--linha);font-size:14px;color:var(--texto-2)}
.rodape .marca .logo{height:28px}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--mata);color:var(--creme);padding:12px 18px;border-radius:999px;font-size:14.5px;font-weight:600;z-index:80;box-shadow:var(--sombra);max-width:calc(100% - 32px);text-align:center}
.carregando{padding:60px 0;text-align:center;color:var(--texto-2)}

@media (prefers-reduced-motion:no-preference){
  .quarto.ocupado{transition:background .2s}
  .detalhe-casa{animation:abre .25s ease-out}
  @keyframes abre{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}

/* A mais votada */
.vencedora{background:var(--papel);border:2px solid var(--mata);border-radius:var(--r-l);padding:18px;margin:6px 0 22px;box-shadow:var(--sombra)}
.vencedora-topo{display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center}
.vencedora-foto{aspect-ratio:1/1;border-radius:var(--r-m);background:var(--areia) center/cover no-repeat}
.vencedora .casa-codigo{font-size:28px}
.vencedora-votos{margin:8px 0 0;font-size:15px}
.vencedora-votos strong{font-family:var(--f-titulo);font-size:22px;color:var(--ambar-escuro)}
.casa-preco-linha{margin:4px 0 0;font-size:14px;color:var(--texto-2)}
.casa-preco-linha strong{color:var(--mata);font-size:16px}
.vazio-familia{background:var(--papel);border:1.5px dashed var(--linha);border-radius:var(--r-m);padding:18px;color:var(--texto-2)}
.comece{display:block}

/* Ficha que a família vê */
.indica{margin:14px 0 0;padding:12px 14px;background:var(--ambar-claro);border-radius:var(--r-m);font-family:var(--f-titulo);font-size:16.5px;line-height:1.45}
.indica span{display:block;font-family:var(--f-texto);font-size:13px;font-weight:700;color:var(--ambar-escuro);margin-bottom:2px}
.ficha-completa{margin-top:10px;border-top:1px dashed var(--linha);padding-top:6px}
.ficha-completa h4{font-family:var(--f-titulo);font-weight:600;font-size:16.5px;margin:16px 0 6px}
.ficha-completa dl{margin:0}
.ficha-completa dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px;padding:7px 0;border-bottom:1px solid var(--linha);font-size:14.5px}
.ficha-completa dt{color:var(--texto-2)}
.ficha-completa dd{margin:0;font-weight:600;text-align:right}
.lista-quartos{list-style:none;padding:0;margin:0;font-size:14.5px}
.lista-quartos li{padding:7px 0;border-bottom:1px solid var(--linha)}

/* Comentários */
.comentarios{margin-top:16px;padding-top:14px;border-top:1px dashed var(--linha)}
.comentarios h3{font-size:17px;margin-bottom:8px}
.comentario{background:var(--creme);border:1px solid var(--linha);border-radius:var(--r-m);padding:10px 12px;margin:0 0 8px}
.comentario p{margin:0;font-size:15px}
.comentario-quem{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:2px!important}
.comentario .quando{margin-left:auto;font-size:12.5px;color:var(--texto-2)}
.tag-voto{font-size:12px;font-weight:600;background:var(--salvia-claro);color:var(--mata);border-radius:999px;padding:1px 8px}
@media(max-width:400px){.vencedora-topo{grid-template-columns:84px 1fr}.vencedora .casa-codigo{font-size:23px}}

/* Página em areia, cartões em creme. Campos dentro de cartões ganham borda mais firme. */
.casa,.vencedora,.parceiro,.cartao,.nucleo{background:var(--creme)}
input[type=text],input[type=number],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=url],select,textarea{background:var(--creme);border-color:#CDB48A}
.cartao input,.casa input,.nucleo input,.nucleo select,.janela input,.janela select,.janela textarea,.form-painel input,.form-painel select,.form-painel textarea{background:var(--papel)}
.janela{background:var(--creme)}
.datas{background:var(--creme)}
.faixa-demo{background:var(--cacau)}
.rodape{border-top:0}
.pe-pagina{width:100%;max-width:720px;margin:0 auto;padding:120px 16px 28px;font-size:13px}
.pe-pagina a{color:var(--texto-2)}

/* Fotos da casa vindas do Cloudinary */
.galeria-casa{display:none}
.galeria-casa.cheia{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;margin:16px 0 4px}
.galeria-casa a{aspect-ratio:4/3;border-radius:var(--r-s);background:var(--areia) center/cover no-repeat;display:block}
.ficha-completa .sobre{margin:0;font-size:15px;line-height:1.55;white-space:pre-line}
.comodidades{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.comodidades li{border:1px solid var(--linha);border-radius:999px;padding:4px 11px;font-size:13.5px;background:var(--papel)}
/* Pedido escrito pela família */
.campo.pedido{margin-top:12px}
.campo.pedido textarea{background:var(--papel);min-height:64px;resize:vertical}
.pedido-txt{display:inline-block;margin-top:4px;font-style:italic;color:var(--texto-2);font-size:14px}
.porques li.pedido{list-style:none}
/* Página da casa */
.casa-pagina{margin-top:12px;background:var(--creme);border-radius:var(--r-m);overflow:hidden}
.casa-pagina .capa-grande{aspect-ratio:3/2}
.casa-pagina-corpo{padding:20px 18px 26px}
.casa-pagina h1.casa-codigo{font-size:32px;margin:0}
.casa-pagina .casa-cidade{margin:6px 0 0}
.casa-pagina .casa-titulo{font-family:var(--f-titulo);font-size:19px;line-height:1.35;margin:12px 0 0}
.casa-sub{font-family:var(--f-titulo);font-weight:600;font-size:20px;margin:26px 0 0}
.cta-casa{margin-top:26px;padding-top:18px;border-top:1px solid var(--linha)}
.cta-casa .apoio{margin:10px 0 0}
/* Vídeos */
.videos-sec{margin-top:16px}
.videos-sec h3{font-family:var(--f-titulo);font-weight:600;font-size:17px;margin:0 0 8px}
.videos{display:grid;gap:12px}
.video{margin:0;position:relative}
.video video{width:100%;max-height:78vh;border-radius:var(--r-m);background:#1F3A2E;display:block}
.video-caixa{position:relative;aspect-ratio:16/9;border-radius:var(--r-m);overflow:hidden;background:#1F3A2E}
.video.vertical .video-caixa{aspect-ratio:9/16;max-width:380px}
.video.alto .video-caixa{aspect-ratio:9/15}
.video-caixa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-tit{margin:6px 0 0;font-size:14px;color:var(--texto-2)}
.video-tag{position:absolute;z-index:2;left:10px;top:10px;background:var(--ambar);color:var(--mata);font-size:12.5px;font-weight:700;border-radius:999px;padding:4px 10px}
/* Todas as fotos da casa */
.galeria-casa.cheia{position:relative}
.galeria-casa.faixa-fotos.cheia{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;margin:12px -2px 4px;padding-bottom:6px}
.galeria-casa.faixa-fotos a{flex:0 0 42%;scroll-snap-align:start}
@media(min-width:600px){.galeria-casa.faixa-fotos a{flex-basis:30%}}
.n-fotos{position:absolute;right:8px;top:8px;background:rgba(31,58,46,.85);color:var(--creme);font-size:12.5px;font-weight:600;border-radius:999px;padding:3px 9px;pointer-events:none}
.galeria-casa.faixa-fotos .n-fotos{position:sticky;right:0;align-self:flex-start;flex:0 0 auto;margin-left:-70px}
.visor{position:fixed;inset:0;z-index:100;background:rgba(15,28,22,.96);display:flex;align-items:center;justify-content:center}
.visor img{max-width:100vw;max-height:88vh;object-fit:contain}
.visor button{position:absolute;background:none;border:0;color:#F4EDE0;font-size:44px;line-height:1;cursor:pointer;padding:12px}
.visor-x{top:6px;right:8px}
.visor-ant{left:4px;top:50%;transform:translateY(-50%)}
.visor-prox{right:4px;top:50%;transform:translateY(-50%)}
.visor-n{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#F4EDE0;font-size:14px}
/* Acomodações sugeridas (villa ou pousada) */
.acomodacoes{margin:16px 0 0}
.acomodacoes h3{margin:0 0 4px;font-size:17px}
.acomodacoes .apoio{margin:0 0 10px;font-size:14px}
.acom-lista{list-style:none;margin:0;padding:0;border:1px solid var(--linha);border-radius:var(--r-m);overflow:hidden}
.acom-lista li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border-top:1px solid var(--linha)}
.acom-lista li:first-child{border-top:0}
.acom-lista li>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.acom-camas{font-size:13px;color:var(--texto-2)}
.acom-obs{font-size:13px}
.acom-preco{font-weight:700;white-space:nowrap}
.acom-extra{background:var(--papel);font-size:14px;color:var(--texto-2)}
