/* ============================================================
   #reserva: de coluna sticky de 300px na lateral direita para
   barra horizontal fixa no fundo da tela — igual ao widget de
   busca do Booking.com (tarefa #22/#24), so que sempre grudada
   no rodape da viewport (#27), em qualquer largura de tela.

   A barra (form) fica fixa desde o carregamento da pagina — nao
   depende de rolagem. Os selos de confianca (.reserva-extra) e as
   abas de secao NAO sao fixos: ficam no fluxo normal, logo apos a
   galeria (onde a barra "nasceria" se nao fosse sempre-fixa).

   Carrega por ultimo no header.php: vence style.min.css e
   hero-booking.css em regras de mesma especificidade.
   ============================================================ */

/* ---------- reset da antiga sidebar (300px, position:absolute) ---------- */
body.single-hotel #reserva {
  position: static; float: left; /* mantem float:left = resto dos .block do tema */
}
body.single-hotel #reserva section {
  position: static; top: auto; right: auto; width: 100%; margin-right: 0;
  border-radius: 0; box-shadow: none; background: transparent;
}
/* a faixa azul vai de ponta a ponta, como o #header — quem se limita aos
   1220px do tema e o conteudo dentro dela (.reserva-bar) e os selos abaixo */
body.single-hotel #reserva section article {
  display: block; width: 100%; max-width: none; margin: 0; padding: 0;
}
body.single-hotel #reserva .reserva-extra {
  width: 1220px; max-width: 100%; margin: 0 auto;
}

/* o tema tinha "aside#reserva{display:none}" abaixo de 1220px (era so pro
   #float-reservar antigo) — a barra agora precisa ficar visivel sempre */
aside#reserva { display: block !important; }
#float-reservar { display: none !important; } /* markup antigo, nao existe mais */

/* ---------- neutraliza a classe .mobile ----------
   style.css/style.min.css ainda trazem "#reserva.mobile{position:absolute
   !important; top:0; z-index:9900}", do tempo em que o #float-reservar abria a
   coluna lateral por cima da pagina. Se alguem voltar a por essa classe no
   #reserva, a barra sai do fluxo e cobre a galeria. Aqui a especificidade e
   maior, entao o layout da barra prevalece. */
body.single-hotel #reserva.mobile { position: static !important; top: auto; z-index: auto; }
body.single-hotel #reserva.mobile section { position: static; top: auto; left: auto; width: 100%; margin: 0; }

/* a barra e alvo de ancora (CTA do pop-up de mapa e do lightbox de fotos):
   para abaixo do #header fixo, como as demais secoes (polimento.css) */
body.single-hotel #reserva { scroll-margin-top: 90px; }

/* ---------- a barra: so o form (datas + hospedes + botao) ----------
   Faixa azul de largura total, igual ao #header. Altura reduzida e visual
   mais minimalista (tarefa #26, com novo corte a pedido do cliente em
   27/07): padding menor, sombra mais discreta e rotulos compactos (ver
   ".reserva-bar strong" abaixo). */
body.single-hotel #reserva .reserva-sticky-wrap {
  margin: 16px 0; padding: 10px; background-color: var(--blue);
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

/* ---------- fixa no FUNDO da tela desde o carregamento da pagina (#25/#27) ----------
   A barra (form) e SEMPRE fixa, colada no rodape da viewport, em qualquer
   largura de tela — nao depende mais de rolagem (script no fim de
   parts/reserva.php poe ".qs-fixed" direto no load). Os selos de confianca
   e as abas de secao seguem no fluxo normal.

   Ate 27/07 ela nascia no fluxo (logo abaixo da galeria) e so virava fixa
   depois que o visitante rolava, colada no topo (abaixo do #header). Virou
   sempre-fixa, no fundo, a pedido do cliente — sem tratamento especial por
   tamanho de tela: o layout responsivo abaixo (1100/680px) ja cuida de
   encolher/empilhar os campos, entao "sempre fixa" vale em qualquer largura.

   Como a barra sai do fluxo assim que a pagina carrega (nunca mais fica
   "no meio da pagina"), o <body> ganha um padding-bottom do tamanho dela
   (--qs-reserva-h, medido pelo JS) pra nao esconder o rodape do site atras
   dela pra sempre. */
body.single-hotel { padding-bottom: var(--qs-reserva-h, 74px); }
body.single-hotel #reserva .reserva-sticky-wrap.qs-fixed {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 8000;
  margin: 0; border-top: 1px solid rgba(255,255,255,.22);
}

/* na pagina de hotel o botao Reservar de verdade e o da barra (fixa no
   fundo); o do header some sempre aqui, nao so quando a barra esta fixa —
   os dois juntos, em qualquer estado, seriam redundantes. */
body.single-hotel #qs-header-reservar { display: none; }

/* dentro da faixa (fixa ou nao) o form segue a mesma coluna de 1220px do tema.
   O <form> do tema vinha com largura propria (1407px numa tela de 1440): dava
   uns 4px de desvio entre a barra e os .container das secoes de baixo. O
   style.css original tambem poe "border-bottom:1px solid #00457A" nesse
   <form> (sobrava da versao antiga, coluna de 300px) — sem largura de 100%
   real ela sobrava como uma linha solta, descolada do resto da barra. */
#reserva .reserva-sticky-wrap form { width: 100%; max-width: none; margin: 0; padding: 0; border-bottom: none; }
#reserva .reserva-bar {
  width: 1220px; max-width: 100%; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px;
}
#reserva .reserva-bar > label,
#reserva .reserva-bar > div { width: auto; margin: 0; padding: 0; }

/* rotulo compacto de 1 linha so: o <br> que separava "Criancas(s)" da idade
   vira invisivel (o texto continua no DOM, so nao quebra linha) e a idade
   segue no mesmo renglon, bem pequena. Isso tira a necessidade do antigo
   "min-height:34px" (reservado pra igualar rotulo de 1 e de 2 linhas) —
   agora os 4 campos (Periodo/Adulto/Criancas/Bebe) tem a mesma altura de
   rotulo, sem truque nenhum. */
#reserva .reserva-bar strong {
  display: block; margin-bottom: 3px;
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .03em; line-height: 1.2; color: rgba(255,255,255,.75);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#reserva .reserva-bar strong br { display: none; }
#reserva .reserva-bar strong small {
  margin-left: 3px; font-size: 9px; font-weight: 600;
  text-transform: none; letter-spacing: 0; color: rgba(255,255,255,.55);
}

/* datas: 2 chips lado a lado sobre o mesmo input do daterangepicker */
#reserva .reserva-dates { position: relative; flex: 2 1 300px; }
/* ancorado por baixo (bottom, nao top): assim cobre os chips em qualquer
   estado, sem depender da altura do rotulo */
#reserva .reserva-dates input[name=dates] {
  position: absolute; bottom: 0; left: 0; z-index: 2;
  width: 100%; height: 33px; padding: 0; background: none; opacity: 0; cursor: pointer;
}
#reserva .reserva-dates-chips { display: flex; height: 33px; background: #fff; border-radius: 5px; overflow: hidden; }
#reserva .reserva-date-chip { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 12px; }
#reserva .reserva-date-chip + .reserva-date-chip { border-left: 1px solid #e1e1e1; }
#reserva .reserva-date-chip small { display: block; font-weight: 600; font-size: 9px; letter-spacing: .02em; text-transform: uppercase; color: #8a8a8a; line-height: 1.3; }
#reserva .reserva-date-chip b { display: block; font-weight: bold; font-size: 13px; color: var(--darkblue); text-transform: capitalize; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* hospedes: Adulto(s) + Criancas + Bebes lado a lado */
#reserva .reserva-guests { flex: 2 1 320px; display: flex; gap: 8px; }
#reserva .reserva-guests label { flex: 1 1 0; min-width: 0; width: auto; margin: 0; padding: 0; }

/* campo numerico: 45px (original) -> 33px (mesma altura dos chips de data e
   do botao, uma unica linha de base pra tudo). Sobrescreve o "45px" do
   style.css original (selecionador identico, carrega depois -> ganha). */
#reserva section form label span.qtd { height: 33px; }
#reserva section form label span.qtd input[type=text] { height: 33px; }
#reserva .reserva-guests label span.qtd input[type=text] { padding: 0 62px 0 10px; font-size: 14px; }

/* steppers +/- lado a lado (em vez de empilhados) — cabem numa caixa baixa
   sem se sobrepor, e ficam mais faceis de mirar com o dedo/mouse. Selecionador
   com mais classes que o de polimento.css pra ganhar a especificidade mesmo
   se aquele arquivo carregar depois — inclusive "top", que la e declarado
   direto nas variantes .mais/.menos (nao no seletor base), entao precisa ser
   repetido aqui nas mesmas variantes pra nao perder so essa propriedade. */
#reserva .reserva-guests label span.qtd b {
  display: flex; align-items: center; justify-content: center;
  position: absolute; top: 50%; width: 22px; height: 22px;
  transform: translateY(-50%); border-radius: 4px; right: 4px;
}
#reserva .reserva-guests label span.qtd b.menos { top: 50%; right: 30px; }
#reserva .reserva-guests label span.qtd b.mais  { top: 50%; right: 4px; }
#reserva .reserva-guests label span.qtd b img { width: 9px; }
#reserva .reserva-guests label span.qtd b:hover { background: rgba(0,0,0,.06); }

/* botao: o MESMO Reservar/Book/Reserva de sempre, agora dentro da barra.
   O style.css original centraliza o texto com line-height:42px (a altura
   de entao) — sem atualizar junto quando a altura do botao mudou pra 33px
   aqui, o texto ficava alto demais dentro da caixa, desalinhado. */
#reserva .reserva-submit { flex: 0 0 auto; }
#reserva .reserva-submit input[type=submit] { height: 33px; line-height: 33px; padding: 0 22px; white-space: nowrap; }

/* extra: selos de confianca + "por que reservar", logo abaixo da barra */
#reserva .reserva-extra { padding: 0 0 24px; }
/* abaixo de 1220 o .container do tema ganha padding 0 20px; a barra e os selos
   nao sao .container, entao precisam do mesmo respiro pra nao encostar na borda */
@media (max-width: 1260px) {
  #reserva .reserva-extra { padding: 0 20px 24px; }
}

/* ---------- intermediario (681-1100px): o botao quebra de linha ----------
   Quando nao cabe tudo numa linha so, o Reservar cai pra segunda — nesse
   caso ele ocupa a largura toda, em vez de ficar sozinho e torto na ponta. */
@media (max-width: 1100px) and (min-width: 681px) {
  #reserva .reserva-submit { flex: 1 1 100%; }
  #reserva .reserva-submit input[type=submit] { width: 100%; }
}

/* ---------- mobile (<=680px): tambem fixa no fundo, form reduzido em 3 linhas ----------
   Ate 27/07 essa largura era a excecao (barra sempre no fluxo, nunca fixa,
   "tomaria metade da tela"). Agora fixa igual as demais telas — so quebra
   em 3 linhas pra caber: datas (2 chips lado a lado), hospedes (3 colunas
   compactas), botao. */
@media (max-width: 680px) {
  body.single-hotel #reserva .reserva-sticky-wrap.qs-fixed {
    padding: 10px 16px;
  }
  #reserva .reserva-extra { padding: 0 20px 18px; }

  #reserva .reserva-bar { gap: 10px; align-items: flex-end; }
  #reserva .reserva-dates { flex: 1 1 100%; }
  #reserva .reserva-guests { flex: 1 1 100%; gap: 6px; }
  #reserva .reserva-submit { flex: 1 1 100%; }
  #reserva .reserva-submit input[type=submit] { width: 100%; }

  #reserva .reserva-guests label span.qtd input[type=text] { padding: 0 56px 0 8px; font-size: 13px; }
  #reserva .reserva-date-chip { padding: 0 10px; }
}

/* ---------- botao flutuante de contato (plugin ar-contactus) acima da barra ----------
   O widget de WhatsApp nasce com "bottom:20px" e z-index de 1.000.000, entao
   ficava por cima da barra de reserva (fixa no fundo, z-index 8000) — no
   celular chegava a cobrir os campos. Sobe o botao pra altura da barra
   (--qs-reserva-h, medida pelo JS em parts/reserva.php) mais uma folga.

   Sem media query: a barra e fixa em qualquer largura, entao a sobreposicao
   existia no desktop tambem. O CSS do plugin entra pelo wp_head (depois dos
   nossos arquivos), por isso a regra precisa de mais especificidade que a
   dele (".arcu-widget.arcu-message") — os :not resolvem isso e ainda deixam
   de fora os estados abertos, em que abaixo de 428px o proprio plugin cola o
   painel no fundo da tela (left/right/bottom:0, em tela cheia). */
body.single-hotel .arcu-widget.arcu-message:not(.opened):not(.open):not(.popup-opened) {
  bottom: calc(var(--qs-reserva-h, 74px) + 14px);
}

/* ---------- neutraliza o gutter de 330/340px reservado pra antiga sidebar ----------
   Varios blocos do tema reservavam espaco a direita pro #reserva, que agora e
   uma barra full-width acima deles, nao mais uma coluna lateral.

   Zera so no desktop: abaixo de 1220px o proprio tema aplica
   ".container{padding:0 20px}" (responsive.css) e esse padding simetrico deve
   continuar valendo. Usar "padding-right:20px" aqui, sem media query, deixava
   o conteudo dessas secoes terminando 20px antes das demais — a pagina inteira
   ficava 10px fora de centro. */
@media (min-width: 1221px) {
  body.single-hotel .block-descricao .container,
  body.single-hotel .block-servicos .container,
  body.single-hotel .block-localizacao .container,
  body.single-hotel .promo .container,
  body.single-hotel .block-suites .container,
  body.single-hotel .block-extra .container,
  body.single-hotel .block-outro .container,
  body.single-hotel .block-proximidades .container,
  body.single-hotel .block-regras .container,
  body.single-hotel .block-faq .container,
  body.single-hotel .qs-login-economize .container,
  body.single-hotel .block-comodidades .container { padding-right: 0; }
}
