/* Novas reservas e campanhas; isolado das regras visuais existentes. */
.sloop-reserva-section {
  position: relative;
  overflow: hidden;
  background: linear-gradient(115deg, rgba(47, 27, 24, .82), rgba(16, 13, 13, .96));
  border-top: 1px solid rgba(255, 237, 221, .08);
  border-bottom: 1px solid rgba(255, 237, 221, .08);
}
.sloop-reserva-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr); gap: clamp(32px, 7vw, 100px); align-items: center; }
.sloop-reserva-copy > p { max-width: 520px; color: #d7c8bd; line-height: 1.75; }
.sloop-reserva-form { display: grid; gap: 16px; padding: clamp(22px, 4vw, 36px); border: 1px solid rgba(255, 237, 221, .16); border-radius: 12px; background: rgba(15, 12, 12, .78); box-shadow: 0 22px 60px rgba(0, 0, 0, .28); }
.sloop-reserva-form label { display: grid; gap: 7px; color: #f2e3d6; font-size: 12px; font-weight: 700; }
.sloop-reserva-form input, .sloop-reserva-form select { width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid rgba(255, 237, 221, .19); border-radius: 6px; background: #171212; color: #fff5ea; font: inherit; color-scheme: dark; }
.sloop-reserva-form input:focus, .sloop-reserva-form select:focus { outline: 2px solid #e9aa58; outline-offset: 2px; }
.sloop-reserva-form input:disabled, .sloop-reserva-form select:disabled { opacity: .6; }
.sloop-reserva-form-intro { display: flex; gap: 12px; align-items: center; padding-bottom: 13px; border-bottom: 1px solid rgba(255, 237, 221, .12); }
.sloop-reserva-form-intro > span { color: #e9aa58; font-size: 26px; }
.sloop-reserva-form-intro div { display: grid; gap: 4px; }
.sloop-reserva-form-intro strong { color: #fff0dd; font-size: 12px; letter-spacing: .04em; }
.sloop-reserva-form-intro small, .sloop-reserva-nota { color: #bdaba0; font-size: 11px; line-height: 1.5; }
.sloop-reserva-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sloop-reserva-disponibilidade { min-height: 1.2em; margin: 0; color: #f2c58a; font-size: 12px; line-height: 1.5; }
.sloop-reserva-submit { width: 100%; justify-content: center; }
.sloop-reserva-nota { margin: -7px 0 0; text-align: center; }
.sloop-reserva-promocao { display: flex; gap: 15px; align-items: center; max-width: 540px; margin-top: 30px; padding: 18px; border: 1px solid rgba(250, 184, 71, .35); border-left: 4px solid #e9aa58; border-radius: 8px; background: rgba(250, 184, 71, .08); }
.sloop-reserva-promocao[hidden] { display: none; }
.sloop-reserva-promocao-selo { flex: 0 0 auto; color: #ffce88; font: 900 29px/1 'Barlow Condensed', sans-serif; }
.sloop-reserva-promocao strong { color: #fff1cf; font-size: 14px; }
.sloop-reserva-promocao p { margin: 5px 0; color: #f6e5d5; font-size: 13px; line-height: 1.55; }
.sloop-reserva-promocao small { color: #d9beab; font-size: 11px; line-height: 1.5; }
.sloop-reserva-promocao .sloop-reserva-condicoes { display: block; margin: 8px 0 4px; color: #ffcb82; font-weight: 800; }

.sloop-campanha-backdrop { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; overflow-y: auto; padding: 22px; background: rgba(9, 7, 7, .82); backdrop-filter: blur(7px); animation: sloop-campanha-fade .2s ease-out; }
.sloop-campanha-modal { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(280px, 1.1fr); width: min(760px, 100%); max-height: min(680px, calc(100dvh - 44px)); overflow: auto; border: 1px solid rgba(255, 237, 221, .2); border-radius: 12px; background: #171111; color: #f6efe7; box-shadow: 0 30px 90px rgba(0, 0, 0, .55); }
.sloop-campanha-modal:not(.has-image) { grid-template-columns: minmax(0, 1fr); }
.sloop-campanha-imagem { width: 100%; height: 100%; min-height: 320px; object-fit: cover; background: #241815; }
.sloop-campanha-conteudo { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(28px, 5vw, 48px); }
.sloop-campanha-selo { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 18px; border: 1px solid rgba(250, 184, 71, .65); border-radius: 50%; color: #ffd08b; font: 900 20px/1 'Barlow Condensed', sans-serif; }
.sloop-campanha-conteudo h2 { margin: 0 0 12px; color: #fff4e8; font: 800 clamp(26px, 3.2vw, 38px)/1.05 'Barlow Condensed', Impact, sans-serif; text-transform: uppercase; }
.sloop-campanha-conteudo p { color: #d7c8bd; line-height: 1.65; }
.sloop-campanha-mensagem { margin: 8px 0 20px; color: #ffcb82; font-size: 13px; line-height: 1.55; }
.sloop-campanha-acao { margin-top: 15px; text-decoration: none; }
.sloop-campanha-fechar { position: absolute; z-index: 1; top: 10px; right: 10px; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(15, 12, 12, .86); color: #fff; font-size: 27px; cursor: pointer; }
.sloop-campanha-fechar:focus-visible, .sloop-campanha-acao:focus-visible { outline: 2px solid #ffcb82; outline-offset: 3px; }
@keyframes sloop-campanha-fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 760px) {
  .sloop-reserva-grid { grid-template-columns: 1fr; gap: 28px; }
  .sloop-reserva-form { width: min(100%, 560px); margin-inline: auto; }
  .sloop-campanha-modal { grid-template-columns: 1fr; max-width: 500px; }
  .sloop-campanha-imagem { height: min(34vh, 240px); min-height: 0; }
  .sloop-campanha-conteudo { padding: 25px; }
  .sloop-campanha-selo { width: 46px; height: 46px; margin-bottom: 12px; font-size: 17px; }
}
@media (max-width: 420px) {
  .sloop-reserva-fields { grid-template-columns: 1fr; }
  .sloop-campanha-backdrop { padding: 12px; }
  .sloop-campanha-modal { max-height: calc(100dvh - 24px); }
}
@media (prefers-reduced-motion: reduce) { .sloop-campanha-backdrop { animation: none; } }
