/* =========================================================
   THEME
========================================================= */
:root{
  --gold:#c9a646;
  --gold2:#b89234;
  --text:#111827;
  --muted:#6b7280;
  --bg:#f8fafc;
  --card:#ffffff;
  --line:rgba(15,23,42,.10);

  --header-h:200px;
  --header-h-sm:96px;

  --logo-h:140px;
  --logo-h-sm:72px;

  --radius:20px;
  --pill:999px;

  --shadow: 0 12px 35px rgba(0,0,0,.08);
  --shadow-soft: 0 10px 28px rgba(0,0,0,.06);
}

/* Base */
html{ scroll-behavior:smooth; }
body{
  font-family:'Poppins',sans-serif;
  background:var(--bg);
  color:var(--text);
  margin:0;
}
a{ text-decoration:none; }
.section{ padding: 92px 0; }
@media (max-width: 991.98px){ .section{ padding: 76px 0; } }

.section-title{ font-weight:900; letter-spacing:.2px; }
.section-sub{ color:var(--muted); }

/* Badge dourado */
.badge-gold{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background: rgba(201,166,70,.14);
  color: var(--gold2);
  border: 1px solid rgba(201,166,70,.28);
  border-radius: var(--pill);
  padding: .42rem .75rem;
  font-weight:800;
}

/* =========================================================
   HEADER / NAVBAR (MAIS PRESENTE, MENOS “OPACO”)
========================================================= */
.navbar-calema{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92));
  height: var(--header-h);
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 999;
  display:flex;
  align-items:center;

  border-bottom: 1px solid rgba(0,0,0,.08);
  box-shadow:
    0 10px 35px rgba(0,0,0,.08),
    0 1px 0 rgba(255,255,255,.65) inset;

  background-image:
    radial-gradient(700px 160px at 20% 0%, rgba(201,166,70,.18), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92));

  backdrop-filter: blur(10px);
  transition: height .24s ease, box-shadow .24s ease, background .24s ease;
}

.navbar-calema.is-compact{
  height: var(--header-h-sm);
  box-shadow:
    0 12px 30px rgba(0,0,0,.10),
    0 1px 0 rgba(255,255,255,.65) inset;
}

.navbar-calema .container{
  height:100%;
  display:flex;
  align-items:center;
}

/* LOGO com mais destaque */
.navbar-brand{ display:flex; align-items:center; gap:10px; }
.navbar-brand img{
  height: var(--logo-h);
  object-fit: contain;
  transition: height .24s ease, filter .24s ease, transform .24s ease;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.10));
}
.navbar-calema.is-compact .navbar-brand img{

  height: var(--logo-h-sm);
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.12));
}

/* LINKS do menu: mais “premium” */
.navbar-nav{ gap: 6px; }

.nav-link{
  color: #111827 !important;
  font-weight: 800;
  font-size: 15px;
  letter-spacing:.2px;
  padding: 10px 14px !important;
  border-radius: var(--pill);
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.nav-link:hover{
  background: rgba(201,166,70,.14);
  color: var(--gold2) !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(0,0,0,.06);
}

.nav-link.active{
  background: linear-gradient(180deg, rgba(201,166,70,.26), rgba(201,166,70,.12));
  color: var(--gold2) !important;
  box-shadow:
    inset 0 0 0 1px rgba(201,166,70,.42),
    0 10px 18px rgba(0,0,0,.06);
}

/* WhatsApp escrito (pill) */
.nav-whatsapp{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 14px;
  border-radius: var(--pill);
  color: #0f172a;
  font-weight: 900;
  letter-spacing:.15px;

  background: rgba(37,211,102,.10);
  border: 1px solid rgba(37,211,102,.22);

  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  white-space: nowrap;
}

.nav-whatsapp .ico{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(37,211,102,.16);
  border: 1px solid rgba(37,211,102,.18);
  color: #16a34a;
  font-size: 18px;
  flex: 0 0 auto;
}

.nav-whatsapp .txt{
  font-size: 14px;
  color: #0f172a;
}

.nav-whatsapp:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(0,0,0,.10);
  background: rgba(37,211,102,.14);
  border-color: rgba(37,211,102,.30);
  color:#0f172a;
}

/* Botão Reservar: mais destacado (menos “apagado”) */
.btn-reservar{
  padding: 10px 16px;
  border-radius: var(--pill);
  font-weight: 900;
  border: 1px solid rgba(201,166,70,.62);
  background: linear-gradient(180deg, rgba(201,166,70,.30), rgba(201,166,70,.12));
  color: #111827;
  box-shadow: 0 12px 22px rgba(201,166,70,.18);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.btn-reservar:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 28px rgba(201,166,70,.24);
  background: linear-gradient(180deg, rgba(201,166,70,.38), rgba(201,166,70,.16));
}

/* Toggler */
.navbar-toggler{ border:none; }
.navbar-toggler:focus{ box-shadow:none; }

/* MENU MOBILE: mais vivo e com borda dourada */
@media (max-width: 991.98px){
  .navbar-collapse{
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.96));
    border: 1px solid rgba(201,166,70,.18);
    border-radius: 18px;
    padding: 14px;
    box-shadow: 0 20px 50px rgba(0,0,0,.14);
    margin-top: 12px;
  }

  .nav-whatsapp{
    width: 100%;
    justify-content: center;
  }

  .btn-reservar{
    width:100%;
  }
}

/* =========================================================
   HERO SLIDER (AGORA SLIDE LATERAL, igual acomodações)
========================================================= */
.slider-wrap{
  padding-top: var(--header-h);
  position: relative;
}

#calemaCarousel{ width:100%; }

.carousel-calema .carousel-item{
  height: calc(100vh - var(--header-h));
  min-height: 560px;
  position: relative;
  overflow: hidden;
  transition: transform .70s cubic-bezier(.22,.61,.36,1);
}

.carousel-calema .slide-bg{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.08);
  will-change: transform;
}

.carousel-calema .carousel-item.active .slide-bg{
  animation: kenburns 9s ease-in-out forwards;
}
@keyframes kenburns{
  0%   { transform: scale(1.08) translate3d(0,0,0); }
  100% { transform: scale(1.16) translate3d(-1.5%, -1%, 0); }
}

.carousel-calema .slide-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,10,10,.74) 0%, rgba(10,10,10,.44) 55%, rgba(10,10,10,.20) 100%),
    radial-gradient(800px 420px at 20% 35%, rgba(201,166,70,.18), transparent 58%);
}

.carousel-calema .carousel-caption{
  position:absolute;
  inset: 0;
  padding: 0;
  display:flex !important;
  align-items:center;
  text-align:left;
  z-index: 2;
}

.slide-content{ max-width: 760px; padding: 0 12px; }

.slide-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius: var(--pill);
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);

  font-weight: 800;
  letter-spacing:.2px;
}

.slide-title{
  color:#fff;
  font-weight: 900;
  line-height: 1.04;
  letter-spacing:.2px;
  margin: 14px 0 14px 0;
  text-shadow: 0 18px 45px rgba(0,0,0,.35);
}

.slide-sub{
  color: rgba(255,255,255,.86);
  font-size: 18px;
  max-width: 650px;
}

.slide-cta{
  margin-top: 22px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.btn-hero-primary{
  border-radius: var(--pill);
  padding: 12px 18px;
  font-weight: 900;
  border: 1px solid rgba(201,166,70,.72);
  background: linear-gradient(180deg, rgba(201,166,70,.32), rgba(201,166,70,.14));
  color:#fff;
}
.btn-hero-primary:hover{
  background: linear-gradient(180deg, rgba(201,166,70,.40), rgba(201,166,70,.18));
  color:#fff;
}
.btn-hero-ghost{
  border-radius: var(--pill);
  padding: 12px 18px;
  font-weight: 900;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  color:#fff;
}
.btn-hero-ghost:hover{
  background: rgba(255,255,255,.12);
  color:#fff;
}

/* animação texto do HERO */
.carousel-calema .carousel-item .slide-kicker,
.carousel-calema .carousel-item .slide-title,
.carousel-calema .carousel-item .slide-sub,
.carousel-calema .carousel-item .slide-cta{
  opacity: 0;
  transform: translateX(18px);
}
.carousel-calema .carousel-item.active .slide-kicker{ animation: heroIn .30s cubic-bezier(.22,.61,.36,1) .06s forwards; }
.carousel-calema .carousel-item.active .slide-title{  animation: heroIn .34s cubic-bezier(.22,.61,.36,1) .10s forwards; }
.carousel-calema .carousel-item.active .slide-sub{    animation: heroIn .34s cubic-bezier(.22,.61,.36,1) .14s forwards; }
.carousel-calema .carousel-item.active .slide-cta{    animation: heroIn .34s cubic-bezier(.22,.61,.36,1) .18s forwards; }

@keyframes heroIn{
  to{ opacity:1; transform: translateX(0); }
}

/* indicadores hero */
.carousel-calema .carousel-indicators [data-bs-target]{
  width: 10px;
  height: 10px;
  border-radius: var(--pill);
  background-color: rgba(255,255,255,.55);
  opacity: .75;
}
.carousel-calema .carousel-indicators .active{
  background-color: rgba(201,166,70,.95);
  opacity: 1;
}

/* Faixa inferior no hero */
.hero-strip{
  position:absolute;
  left:0;
  right:0;
  bottom: 18px;
  z-index: 5;
  pointer-events: none;
}
.hero-strip .strip-card{
  pointer-events: auto;
  border-radius: 18px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  box-shadow: 0 18px 45px rgba(0,0,0,.25);
  padding: 14px 16px;
}
.strip-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}
.strip-item{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#fff;
}
.strip-dot{
  margin-top: 6px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(201,166,70,.95);
  box-shadow: 0 0 0 4px rgba(201,166,70,.18);
  flex: 0 0 auto;
}
.strip-item .t{ font-weight: 900; line-height:1.1; }
.strip-item .d{ color: rgba(255,255,255,.78); font-size: 13px; margin-top: 2px; }

@media (max-width: 991.98px){
  .carousel-calema .carousel-item{ min-height: 620px; }
  .strip-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 575.98px){
  .slide-sub{ font-size: 16px; }
  .hero-strip{ bottom: 12px; }
}

/* HERO - setas externas */
.carousel-calema .carousel-control-prev,
.carousel-calema .carousel-control-next{ display:none; }

.hero-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:54px;
  height:54px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:20;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.hero-nav:hover{
  background:rgba(201,166,70,.20);
  transform:translateY(-50%) scale(1.04);
  box-shadow:0 18px 42px rgba(0,0,0,.40);
}
.hero-nav.prev{ left:12px; }
.hero-nav.next{ right:12px; }
.hero-nav .chev{
  width:12px;
  height:12px;
  border-top:3px solid #fff;
  border-right:3px solid #fff;
}
.hero-nav.prev .chev{ transform:rotate(-135deg); margin-left:4px; }
.hero-nav.next .chev{ transform:rotate(45deg);  margin-right:4px; }

/* =========================================================
   CARDS / BLOCS
========================================================= */
.card-calema{
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 22px;
  overflow: hidden;
  background: var(--card);
  box-shadow: var(--shadow-soft);
}
.card-calema .img{
  height: 240px;
  background-size: cover;
  background-position: center;
}
.card-calema .p-4{ padding: 22px !important; }

.info-tile{
  border:1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  background: #fff;
  padding: 16px;
  box-shadow: 0 10px 22px rgba(0,0,0,.04);
}

/* =========================================================
   ACOMODAÇÕES - CAROUSEL PREMIUM (card inteiro desliza)
========================================================= */
.acom-section{
  position: relative;
  background-image: url('../imagens/intro-bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.acom-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 450px at 20% 30%, rgba(201,166,70,.28), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.60), rgba(0,0,0,.95));
}
.acom-section .container{ position: relative; z-index: 2; }
.acom-section .section-title,
.acom-section .section-sub{ color:#fff; }
.acom-section .section-sub{ opacity:.88; }

.acom-carousel-wrap{
  position: relative;
  padding: 0 82px;
}
@media (max-width: 991.98px){ .acom-carousel-wrap{ padding: 0 58px; } }
@media (max-width: 575.98px){ .acom-carousel-wrap{ padding: 0 46px; } }

.acom-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 34px rgba(0,0,0,.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.acom-nav:hover{
  background: rgba(201,166,70,.20);
  box-shadow: 0 18px 42px rgba(0,0,0,.40);
  transform: translateY(-50%) scale(1.03);
}
.acom-nav.prev{ left: 12px; }
.acom-nav.next{ right: 12px; }
@media (max-width: 991.98px){
  .acom-nav{ width: 48px; height: 48px; }
  .acom-nav.prev{ left: 6px; }
  .acom-nav.next{ right: 6px; }
}
.acom-nav .chev{
  width: 12px;
  height: 12px;
  border-top: 3px solid rgba(255,255,255,.92);
  border-right: 3px solid rgba(255,255,255,.92);
}
.acom-nav.prev .chev{ transform: rotate(-135deg); margin-left: 4px; }
.acom-nav.next .chev{ transform: rotate(45deg);  margin-right: 4px; }

#acomCarousel{
  border-radius: 26px;
  overflow: hidden;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  box-shadow: 0 22px 60px rgba(0,0,0,.35);
}
#acomCarousel .carousel-inner{ overflow:hidden; }
#acomCarousel .carousel-item{
  transition: transform .70s cubic-bezier(.22,.61,.36,1);
}

.acom-card{ padding: 26px; }
@media (max-width: 991.98px){ .acom-card{ padding: 18px; } }

.acom-title{
  color:#fff;
  font-weight: 900;
  letter-spacing:.2px;
  line-height:1.12;
}
.acom-desc{
  color: rgba(255,255,255,.86);
  font-size: 15px;
  line-height: 1.6;
}
.acom-list{
  margin: 14px 0 0 0;
  padding-left: 18px;
  color: rgba(255,255,255,.82);
  font-size: 14px;
}
.acom-list li{ margin: 6px 0; }

.acom-photo{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 5px 15px rgba(0,0,0,.28);
  min-height: 320px;
  height: 100%;
}
@media (max-width: 991.98px){ .acom-photo{ min-height: 260px; } }
.acom-photo::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(201,166,70,.16), rgba(0,0,0,.38));
  z-index: 1;
  pointer-events:none;
}
.acom-photo .bg{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
}

.acom-badge{
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(201,166,70,.22);
  border: 1px solid rgba(201,166,70,.38);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0,0,0,.25);
  backdrop-filter: blur(10px);
}

/* =========================================================
   GALERIA NAS ACOMODAÇÕES (foto principal + thumbs) ✅ NOVO
========================================================= */
.acom-gallery{
  height: 100%;
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 12px;
}

.acom-thumbs{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.acom-thumb{
  width: 86px;
  height: 74px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  overflow: hidden;
  position: relative;
  cursor: pointer;

  box-shadow: 0 12px 26px rgba(0,0,0,.20);
  transition: transform .16s ease, box-shadow .20s ease, border-color .20s ease, background .20s ease;
}

.acom-thumb::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.00), rgba(0,0,0,.30));
  opacity: .65;
  pointer-events:none;
}

.acom-thumb .bg{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
}

.acom-thumb:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(0,0,0,.26);
  border-color: rgba(201,166,70,.40);
  background: rgba(201,166,70,.10);
}

.acom-thumb.is-active{
  border-color: rgba(201,166,70,.70);
  box-shadow: 0 18px 40px rgba(201,166,70,.16), 0 18px 40px rgba(0,0,0,.28);
}

.acom-thumb.is-active::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: 14px;
  box-shadow: inset 0 0 0 2px rgba(201,166,70,.55);
  pointer-events:none;
}

/* Foto principal: animação suave ao trocar */
.acom-photo .bg{
  transition: opacity .22s ease, transform .30s ease;
}
.acom-photo.is-swapping .bg{
  opacity: .15;
  transform: scale(1.06);
}

/* MOBILE: thumbs viram faixa horizontal abaixo da foto */
@media (max-width: 991.98px){
  .acom-gallery{
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }

  .acom-thumbs{
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 6px;
    gap: 10px;
    -webkit-overflow-scrolling: touch;
  }

  .acom-thumbs::-webkit-scrollbar{ height: 8px; }
  .acom-thumbs::-webkit-scrollbar-thumb{
    background: rgba(255,255,255,.18);
    border-radius: 999px;
  }

  .acom-thumb{
    flex: 0 0 auto;
    width: 84px;
    height: 68px;
  }
}

/* =========================================================
   BOOKING STRIP
========================================================= */
.booking-strip{
  position: relative;
  background-image: url('../imagens/rodape-bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 50px 0;
  overflow: hidden;
}
.booking-strip::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,10,10,.78) 0%, rgba(10,10,10,.55) 55%, rgba(10,10,10,.40) 100%),
    radial-gradient(700px 260px at 18% 50%, rgba(201,166,70,.22), transparent 60%);
}
.booking-strip .container{ position: relative; z-index: 2; }
.booking-strip .booking-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 45px rgba(0,0,0,.18);
}
.booking-strip .booking-title{
  color:#fff;
  font-weight: 900;
  letter-spacing:.2px;
  margin:0;
  line-height:1.15;
  font-size: 18px;
}
.booking-strip .booking-text{
  color: rgba(255,255,255,.82);
  margin: 4px 0 0 0;
  font-size: 13px;
}
.booking-strip .booking-right{
  display:flex;
  align-items:center;
  gap:12px;
  flex: 0 0 auto;
}
.booking-strip .btn-book{
  border-radius: var(--pill);
  padding: 12px 18px;
  font-weight: 900;
  border: 1px solid rgba(201,166,70,.78);
  background: linear-gradient(180deg, rgba(201,166,70,.36), rgba(201,166,70,.14));
  color:#fff;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.booking-strip .btn-book:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(0,0,0,.28);
  background: linear-gradient(180deg, rgba(201,166,70,.46), rgba(201,166,70,.18));
  color:#fff;
}
@media (max-width: 991.98px){
  .booking-strip .booking-inner{ flex-direction: column; align-items: flex-start; }
  .booking-strip .booking-right{ width: 100%; }
  .booking-strip .btn-book{ width: 100%; text-align: center; }
}

/* =========================================================
   CONTATO / FOOTER
========================================================= */
.contact-box{
  border-radius: 24px;
  border: 1px solid rgba(0,0,0,.06);
  background: var(--card);
  box-shadow: var(--shadow-soft);
  padding: 22px;
}
.mini-line{
  height:1px;
  background: rgba(0,0,0,.08);
  margin: 16px 0;
}

/* =========================================================
   ACOMODAÇÕES - MOBILE RESPONSIVO (badge some no mobile)
========================================================= */
@media (max-width: 991.98px){
  .acom-card{ padding: 16px; }
  .acom-photo{ min-height: 220px; }

  .acom-title{
    font-size: 22px;
    line-height: 1.15;
  }
  .acom-desc{ font-size: 14px; }
  .acom-list{ font-size: 13px; }

  #acomodacoes .btn-hero-primary,
  #acomodacoes .btn-hero-ghost{
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 575.98px){
  .acom-badge{ display:none !important; }

  .acom-nav{
    width: 44px;
    height: 44px;
  }
  .acom-nav .chev{
    width: 10px;
    height: 10px;
    border-top-width: 3px;
    border-right-width: 3px;
  }

  .acom-carousel-wrap{ padding: 0 40px; }

  .acom-photo{
    min-height: 200px;
    border-radius: 18px;
  }

  .acom-title{ font-size: 20px; }
  .acom-desc{ font-size: 13.8px; }
}

@media (max-width: 991.98px){
  #acomodacoes .row.align-items-stretch{
    align-items: stretch !important;
  }
}

/* Indicadores do ACOM */
#acomCarousel .carousel-indicators.acom-indicators{
  position: static;
  margin: 14px 0 0 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}
#acomCarousel .carousel-indicators.acom-indicators [data-bs-target]{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,.55);
  opacity: .75;
  margin: 0;
}
#acomCarousel .carousel-indicators.acom-indicators .active{
  background: rgba(201,166,70,.95);
  opacity: 1;
}

/* =========================================================
   FOOTER CALEMA PREMIUM
========================================================= */
.footer-calema{
  background:#ffffff;
  border-top:1px solid rgba(0,0,0,.06);
  padding:70px 0 30px;
}

.footer-logo{
  height:70px;
  object-fit:contain;
}

.footer-text{
  color:var(--muted);
  font-size:14px;
  max-width:320px;
}

.footer-title{
  font-weight:900;
  margin-bottom:18px;
  color:var(--text);
}

.footer-social{
  display:flex;
  gap:12px;
}

.footer-social a{
  width:46px;
  height:46px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(201,166,70,.12);
  border:1px solid rgba(201,166,70,.25);
  color:var(--gold2);
  font-size:20px;
  transition:.25s;
}
.footer-social a:hover{
  background:var(--gold);
  color:#fff;
  transform:translateY(-3px);
}

.footer-contact{
  font-size:14px;
  color:var(--muted);
  line-height:1.7;
}

.footer-line{
  height:1px;
  background:rgba(0,0,0,.08);
  margin:14px 0;
}

.footer-bottom{
  border-top:1px solid rgba(0,0,0,.06);
  padding-top:20px;
  text-align:center;
  font-size:13px;
  color:var(--muted);
}

@media (max-width:991.98px){
  .footer-logo{ height:60px; }
  .footer-text{ max-width:100%; }
  .footer-social{ margin-bottom:10px; }
}

.footer-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.footer-item i{
  font-size:18px;
  color: var(--gold2);
  margin-top: 2px;
}
.footer-link{
  color: var(--muted);
  font-weight: 700;
  text-decoration: none;
}
.footer-link:hover{
  color: var(--gold2);
  text-decoration: underline;
}

/* =========================================================
   FLOAT BUTTONS (UP FIXO EMBAIXO + WHATS SOBE)  ✅ FIX FINAL
========================================================= */
.float-buttons{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1200;
  width: 64px;
}

/* UP fixo embaixo */
.back-to-top{
  position: absolute;
  right: 0;
  bottom: 0;

  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(201,166,70,.38);
  background: #fff;
  color: var(--gold2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;

  box-shadow: 0 18px 45px rgba(0,0,0,.16);

  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;

  transition:
    opacity .25s ease,
    transform .25s cubic-bezier(.22,.61,.36,1),
    background .18s ease;
}

.back-to-top.is-visible{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.back-to-top:hover{
  background: rgba(201,166,70,.14);
  transform: translateY(-2px);
}

/* WHATSAPP (base no bottom, sobe quando UP aparece) */
.float-whatsapp{
  position: absolute;
  right: 0;
  bottom: 0;

  width: 60px;
  height: 60px;
  border-radius: 999px;
  background: #25D366;
  color: #fff;

  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;

  box-shadow: 0 18px 45px rgba(0,0,0,.25);

  transition:
    bottom .35s cubic-bezier(.22,.61,.36,1),
    transform .18s ease,
    box-shadow .25s;
}

.float-whatsapp:hover{
  transform: scale(1.08);
  color: #fff;
}

/* pulso */
.float-whatsapp::before,
.float-whatsapp::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  border:2px solid rgba(37,211,102,.6);
  animation: whatsappPulse 2s infinite;
}
.float-whatsapp::after{ animation-delay:1s; }

@keyframes whatsappPulse{
  0%{ transform:scale(1); opacity:.7; }
  70%{ transform:scale(1.7); opacity:0; }
  100%{ opacity:0; }
}

/* Quando UP aparece: Whats sobe e deixa gap */
.float-whatsapp.raise{
  bottom: 72px;
}

/* MOBILE */
@media (max-width:575.98px){
  .float-buttons{
    right: 14px;
    bottom: 14px;
    width: 60px;
  }

  .float-whatsapp{
    width: 56px;
    height: 56px;
    font-size: 26px;
  }

  .back-to-top{
    width: 46px;
    height: 46px;
    font-size: 22px;
  }

  .float-whatsapp.raise{
    bottom: 64px;
  }
}
/* =========================================================
   HOTEL - FEATURE CARDS (3 cards premium com hover) ✅
========================================================= */
.feature-card{
  position: relative;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,.96));
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 14px 38px rgba(0,0,0,.06);
  padding: 18px 18px 16px 18px;
  overflow: hidden;
  transition: transform .22s cubic-bezier(.22,.61,.36,1), box-shadow .22s ease, border-color .22s ease;
}

/* brilho dourado suave */
.feature-card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(520px 180px at 18% 0%, rgba(201,166,70,.22), transparent 60%),
    radial-gradient(520px 180px at 85% 110%, rgba(201,166,70,.14), transparent 55%);
  opacity: .75;
  pointer-events:none;
}

/* linha topo dourada sutil */
.feature-card::after{
  content:"";
  position:absolute;
  left: 18px;
  right: 18px;
  top: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(201,166,70,.0), rgba(201,166,70,.75), rgba(201,166,70,.0));
  opacity: .55;
  pointer-events:none;
}

.feature-card:hover{
  transform: translateY(-6px);
  border-color: rgba(201,166,70,.35);
  box-shadow: 0 22px 60px rgba(0,0,0,.10);
}

.feature-top{
  position: relative;
  display:flex;
  align-items:center;
  gap: 12px;
  z-index: 1;
}

.feature-icon{
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(201,166,70,.14);
  border: 1px solid rgba(201,166,70,.22);
  color: var(--gold2);
  font-size: 22px;
  box-shadow: 0 14px 28px rgba(201,166,70,.10);
  flex: 0 0 auto;
}

.feature-title{
  font-weight: 900;
  letter-spacing: .2px;
  color: var(--text);
  font-size: 18px;
  line-height: 1.2;
}

.feature-sub{
  color: var(--muted);
  font-weight: 700;
  font-size: 13px;
  margin-top: 2px;
}

.feature-text{
  position: relative;
  z-index: 1;
  margin-top: 12px;
  color: rgba(15,23,42,.78);
  font-size: 14px;
  line-height: 1.65;
}

.feature-tags{
  position: relative;
  z-index: 1;
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.feature-tags .tag{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(248,250,252,.9);
  color: rgba(15,23,42,.78);
  font-weight: 800;
  font-size: 12px;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.feature-card:hover .feature-tags .tag{
  border-color: rgba(201,166,70,.22);
  background: rgba(201,166,70,.08);
}

.feature-tags .tag i{
  color: var(--gold2);
  font-size: 14px;
}

/* Responsivo: mantém 3 no desktop, 2 no tablet, 1 no mobile */
@media (max-width: 991.98px){
  .feature-title{ font-size: 17px; }
}

/* =========================================================
   FIX LOGO MOBILE (menor no topo + menor ainda no compact) ✅
========================================================= */
@media (max-width: 991.98px){
  :root{
    --header-h: 128px;
    --header-h-sm: 84px;
    --logo-h: 78px;
    --logo-h-sm: 56px;
  }

  .navbar-brand img{
    height: var(--logo-h);
    max-height: 78px;
    width: auto;
  }

  .navbar-calema.is-compact .navbar-brand img{
    height: var(--logo-h-sm);
    max-height: 56px;
  }

  .navbar-brand{ gap: 8px; }
}

@media (max-width: 575.98px){
  :root{
    --header-h: 118px;
    --header-h-sm: 78px;
    --logo-h: 70px;
    --logo-h-sm: 50px;
  }

  .navbar-brand img{ max-height: 70px; }
  .navbar-calema.is-compact .navbar-brand img{ max-height: 50px; }

  .navbar-calema .container{
    padding-left: 12px;
    padding-right: 12px;
  }
}
/* =========================================================
   LOADING (PULSO SIMPLES) ✅
========================================================= */
#pageLoader{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;

  background: linear-gradient(180deg, rgba(248,250,252,.96), rgba(248,250,252,.90));
  backdrop-filter: blur(10px);

  transition: opacity .28s ease, visibility .28s ease;
}

#pageLoader.is-hide{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader-dot{
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--gold2);
  box-shadow:
    0 16px 40px rgba(201,166,70,.18),
    0 0 0 10px rgba(201,166,70,.12);
  animation: loaderPulse 1s ease-in-out infinite;
}

@keyframes loaderPulse{
  0%   { transform: scale(.86); opacity: .65; }
  50%  { transform: scale(1.10); opacity: 1; }
  100% { transform: scale(.86); opacity: .65; }
}

/* respeita "reduzir movimento" */
@media (prefers-reduced-motion: reduce){
  .loader-dot{ animation: none; }
}
body.is-loading{
  overflow: hidden;
}