/* Calendário de Experiências — Busca de disponibilidade. Herda tokens do tema (--se-*) com valores de reserva. */
.se-busca, .se-busca-painel { --b-terra: var(--se-terra, #76290C); --b-noite: var(--se-noite, #0E1920); --b-creme: var(--se-creme, #FFEDCE); --b-creme-40: var(--se-creme-40, #FFF8EB); --b-linha: var(--se-linha, #DCDCDC); --b-muted: var(--se-noite-60, #6E7579);
	position: relative; font-family: var(--se-font-texto, Inter, system-ui, sans-serif); color: var(--b-noite); }
.se-busca-painel { font-family: var(--se-font-texto, Inter, system-ui, sans-serif); }
.se-busca__painel.is-para-cima { transform-origin: bottom center; }
.se-busca__barra { display: grid; grid-template-columns: 1.4fr 1fr auto; align-items: stretch; background: #fff; border-radius: 18px; padding: 8px; gap: 4px; box-shadow: 0 20px 60px rgba(14,25,32,.18); }
.se-busca__campo { display: grid; gap: 4px; text-align: left; background: none; border: 0; border-radius: 12px; padding: 12px 20px; cursor: pointer; color: inherit; font: inherit; min-height: 64px; transition: background .2s; position: relative; }
.se-busca__campo:hover, .se-busca__campo[aria-expanded="true"] { background: var(--b-creme-40); }
.se-busca__campo + .se-busca__campo::before { content: ""; position: absolute; left: -2px; top: 16px; bottom: 16px; width: 1px; background: var(--b-linha); }
.se-busca__rotulo { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); display: flex; gap: 8px; }
.se-busca__rotulo [data-noites] { color: var(--b-terra); letter-spacing: .04em; text-transform: none; font-weight: 600; }
.se-busca__texto { font-size: 16px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.se-busca__enviar { align-self: center; margin: 0 4px; }
.se-busca__nota { margin: 10px 4px 0; font-size: 13px; opacity: .85; display: flex; gap: 16px; flex-wrap: wrap; }
.se-busca__nota a { color: inherit; }
.se-busca__codigo { display: flex; gap: 8px; align-items: center; }
.se-busca__codigo input { border: 1px solid var(--b-linha); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: 14px; line-height: 1.3; width: 160px; height: 38px; background: #fff; color: var(--b-noite); -webkit-appearance: none; appearance: none; box-sizing: border-box; }

/* Painéis */
.se-busca__painel { position: absolute; z-index: 1000; top: calc(100% + 10px); left: 0; background: #fff; border-radius: 20px; box-shadow: 0 30px 80px rgba(14,25,32,.25); padding: 24px; color: var(--b-noite); }
.se-busca__painel[hidden] { display: none; }
.se-busca__painel--datas { width: min(760px, calc(100vw - 32px)); }
.se-busca__painel--hospedes { width: min(380px, calc(100vw - 32px)); }

.se-busca__painel-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.se-busca__painel-topo button { background: none; border: 1px solid var(--b-linha); border-radius: 999px; width: 40px; height: 40px; cursor: pointer; font-size: 18px; color: var(--b-noite); }
.se-busca__painel-topo button:disabled { opacity: .3; cursor: default; }
.se-busca__fechar { display: none; }
.se-busca__cab { display: none; }
.se-busca__meses { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.se-mes__titulo { margin: 0 0 12px; text-align: center; font-weight: 600; text-transform: capitalize; }
.se-mes__grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px 0; }
.se-mes__sem { text-align: center; font-size: 12px; color: var(--b-muted); padding-bottom: 6px; }
.se-dia { position: relative; aspect-ratio: 1; min-width: 0; padding: 0; border: 0; background: none; font: inherit; font-size: 14px; cursor: pointer; color: var(--b-noite); display: grid; place-items: center; border-radius: 0; }
.se-dia > span { width: 40px; height: 40px; max-width: 100%; display: grid; place-items: center; border-radius: 999px; transition: background .15s, color .15s; position: relative; z-index: 1; }
.se-dia:not([disabled]):hover > span { background: var(--b-creme); }
.se-dia[disabled] { color: #c3c6c8; cursor: default; text-decoration: line-through; text-decoration-color: rgba(0,0,0,.15); }
.se-dia[data-hoje] > span { box-shadow: inset 0 0 0 1px var(--b-noite); }
.se-dia.is-meio { background: var(--b-creme); }
.se-dia.is-entrada, .se-dia.is-saida, .se-dia.is-previa { background: linear-gradient(90deg, transparent 50%, var(--b-creme) 50%); }
.se-dia.is-saida, .se-dia.is-previa { background: linear-gradient(90deg, var(--b-creme) 50%, transparent 50%); }
.se-dia.is-entrada.is-saida { background: none; }
.se-dia.is-entrada > span, .se-dia.is-saida > span { background: var(--b-terra) !important; color: var(--b-creme); font-weight: 600; }
.se-dia.is-previa > span { box-shadow: inset 0 0 0 2px var(--b-terra); }
.se-dia__pacote { position: absolute; bottom: 4px; left: 50%; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--cor, var(--b-terra)); z-index: 2; }
.se-dia.is-entrada .se-dia__pacote, .se-dia.is-saida .se-dia__pacote { background: var(--b-creme); }
.se-dia--vazio { pointer-events: none; }
.se-busca__rodape { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--b-linha); flex-wrap: wrap; }
.se-busca__rodape p { margin: 0; font-size: 14px; }
.se-busca__rodape-acoes { display: flex; gap: 8px; }
.se-busca__aviso { margin: 12px 0 0; padding: 10px 14px; border-radius: 12px; background: var(--b-creme-40); font-size: 14px; }
.se-busca__aviso a { color: var(--b-terra); }
.se-busca__legenda { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--b-muted); }
.se-busca__legenda i { width: 6px; height: 6px; border-radius: 50%; background: var(--b-terra); display: inline-block; }

/* Hóspedes */
.se-hosp__linha { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--b-linha); }
.se-hosp__linha small { display: block; color: var(--b-muted); font-size: 13px; }
.se-hosp__passo { display: flex; align-items: center; gap: 14px; }
.se-hosp__passo button { width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--b-linha); background: #fff; cursor: pointer; font-size: 20px; line-height: 1; color: var(--b-noite); }
.se-hosp__passo button:disabled { opacity: .3; cursor: default; }
.se-hosp__passo output { min-width: 20px; text-align: center; font-weight: 600; font-size: 18px; }
.se-hosp__idades { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 0; }
.se-hosp__idades[hidden] { display: none; }
.se-idade { display: grid; gap: 4px; font-size: 13px; color: var(--b-muted); }
.se-idade select { font: inherit; font-size: 15px; color: var(--b-noite); padding: 10px 12px; border: 1px solid var(--b-linha); border-radius: 10px; background: #fff; min-height: 44px; }
.se-idade select.is-erro { border-color: #B3261E; box-shadow: 0 0 0 3px rgba(179,38,30,.12); }
.se-hosp__grupo { font-size: 13px; margin: 8px 0 0; color: var(--b-muted); }
.se-hosp__grupo a { color: var(--b-terra); }
.se-hosp__confirmar { margin-top: 16px; width: 100%; }

/* Celular: barra vertical + painéis em tela cheia */
@media (max-width: 768px) {
	.se-busca__barra { grid-template-columns: 1fr 1fr; }
	.se-busca__enviar { grid-column: 1 / -1; margin: 4px; }
	.se-busca__campo { padding: 10px 14px; min-height: 58px; }
	.se-busca__texto { font-size: 15px; }
	.se-busca__painel { position: fixed; inset: 0; top: 0; width: 100% !important; border-radius: 0; padding: 20px 16px 120px; overflow-y: auto; z-index: 1000; }
	.se-busca__fechar { display: inline-grid; place-items: center; }
	.se-busca__cab { display: flex; justify-content: space-between; align-items: center; margin: 0 0 12px; font-weight: 600; font-size: 18px; }
	.se-busca__cab button { background: none; border: 1px solid var(--b-linha); border-radius: 999px; width: 44px; height: 44px; font-size: 18px; cursor: pointer; color: var(--b-noite); }
	.se-busca__meses { grid-template-columns: 1fr; gap: 24px; }
	.se-busca__rodape { position: fixed; z-index: 5; left: 0; right: 0; bottom: 0; background: #fff; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); margin: 0; box-shadow: 0 -8px 24px rgba(14,25,32,.1); }
	.se-dia > span { width: 44px; height: 44px; }
	.se-busca__codigo input { font-size: 16px; width: 150px; } /* 16px: o iPhone não dá zoom ao tocar */
	.se-reserva-modal .se-busca__barra { grid-template-columns: 1fr; } /* na janela, datas e hóspedes um embaixo do outro: o período cabe inteiro */
	.se-reserva-modal .se-busca__campo + .se-busca__campo::before { left: 14px; right: 14px; top: -1px; bottom: auto; width: auto; height: 1px; }
}
@media (prefers-reduced-motion: no-preference) {
	.se-busca__painel:not([hidden]) { animation: se-painel .28s cubic-bezier(.22,.61,.36,1); }
	@keyframes se-painel { from { opacity: 0; transform: translateY(8px); } }
}

/* Janela de reserva (botões "Reservar" em páginas sem busca) */
.se-reserva-modal { position: fixed; inset: 0; z-index: 900; background: rgba(14,25,32,.55); display: grid; align-items: start; justify-items: center; padding: clamp(16px, 8vh, 96px) 16px 16px; opacity: 0; transition: opacity .25s; }
.se-reserva-modal.is-aberto { opacity: 1; }
.se-reserva-modal[hidden] { display: none; }
.se-reserva-modal__caixa { width: min(980px, 100%); background: var(--se-creme-40, #FFF8EB); border-radius: 24px; padding: clamp(20px, 3vw, 32px); box-shadow: 0 30px 80px rgba(14,25,32,.3); display: grid; gap: 16px; transform: translateY(-12px); transition: transform .3s cubic-bezier(.22,.61,.36,1); }
.se-reserva-modal.is-aberto .se-reserva-modal__caixa { transform: none; }
.se-reserva-modal__topo { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.se-reserva-modal__titulo { margin: 0; font: 700 clamp(22px, .8vw + 14px, 28px)/1.15 var(--se-font-titulo, Inter); color: var(--se-noite, #0E1920); }
.se-reserva-modal__fechar { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--se-linha, #DCDCDC); background: #fff; cursor: pointer; font-size: 16px; color: var(--se-noite, #0E1920); padding: 0; display: grid; place-items: center; -webkit-appearance: none; appearance: none; }
.se-reserva-modal .se-busca__nota { color: var(--se-noite-60, #6E7579); }
html.se-modal-aberto { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .se-reserva-modal, .se-reserva-modal__caixa { transition: none; } }

/* Barra fixa de reserva (computador) */
.se-barra-reserva { display: none; }
@media (min-width: 1024px) {
	.se-barra-reserva { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: rgba(255,255,255,.97); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-top: 1px solid var(--se-linha, #DCDCDC); box-shadow: 0 -12px 40px rgba(14,25,32,.12); transform: translateY(110%); visibility: hidden; transition: transform .35s cubic-bezier(.22,.61,.36,1), visibility 0s linear .35s; }
	.se-barra-reserva.is-visivel { transform: none; visibility: visible; transition: transform .35s cubic-bezier(.22,.61,.36,1), visibility 0s; }
	.se-barra-reserva__in { display: grid; grid-template-columns: auto minmax(0, 880px); justify-content: center; align-items: center; gap: 32px; max-width: 1240px; margin: 0 auto; padding: 10px 24px; }
	.se-barra-reserva__titulo { margin: 0; display: grid; gap: 2px; font: 700 20px/1.15 var(--se-font-titulo, Inter); color: var(--se-noite, #0E1920); white-space: nowrap; }
	.se-barra-reserva__titulo small { font: 500 11px/1.4 var(--se-font-texto, Inter); letter-spacing: .12em; text-transform: uppercase; color: var(--se-terra, #76290C); }
	.se-barra-reserva .se-busca__barra { box-shadow: none; border: 1px solid var(--se-linha, #DCDCDC); border-radius: 14px; padding: 4px; }
	.se-barra-reserva .se-busca__campo { min-height: 50px; padding: 6px 18px; gap: 2px; }
	.se-barra-reserva .se-busca__rotulo { font-size: 11px; }
	.se-barra-reserva .se-busca__texto { font-size: 15px; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: reduce) { .se-barra-reserva, .se-barra-reserva.is-visivel { transition: none; } }
@media print { .se-barra-reserva { display: none !important; } }
