:root{--btn-bg: var(--color-accent);--btn-text: #fff;--btn-border: transparent;--btn-ghost-text: var(--color-text);--btn-ghost-border: color-mix(in srgb, var(--color-text) 22%, transparent);--color-primary:#0e2742;--color-accent:#d1b06b;--color-bg:#ffffff;--color-text:#15171a;--radius:18px;--shadow:0 10px 30px rgba(0,0,0,.08);--border:#e7ebf0;--muted:#667085
  --hero-fallback: #dfe7ef;
  --hero-overlay-color: 6, 18, 32;
  --hero-overlay-alpha: 0.50;
}
*{box-sizing:border-box}html,body{height:100%}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.65}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;letter-spacing:.2px}
.container{width:min(1200px, 92%);margin:0 auto}
.navbar{position:sticky;top:0;background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:30}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}
.brand{font-weight:700;text-decoration:none;color:var(--color-primary);display:flex;align-items:center;gap:.6rem}
.brand img{height:40px}
nav a{margin-left:1.1rem;text-decoration:none;color:var(--color-text);font-weight:500;opacity:.92}
nav a:hover{opacity:1}
.btn-accent{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-border);padding:.65rem 1.1rem;border-radius:999px;text-decoration:none;display:inline-flex;gap:.5rem;align-items:center;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.04)}
.btn-ghost{color:var(--btn-ghost-text);background:transparent;border-color:var(--btn-ghost-border);border:1px solid var(--border);padding:.6rem 1.05rem;border-radius:999px;text-decoration:none;color:inherit;background:#fff}
.footer{margin-top:4rem;padding:2.4rem 0;border-top:1px solid var(--border);background:#fafbfc}
.right{display:flex;gap:.6rem;justify-content:flex-end}
.btn{color:var(--color-text);background:#fff;border:1px solid var(--border);padding:.55rem 1rem;border-radius:12px;text-decoration:none;color:inherit;background:#fff}
.flash{padding:.9rem 1.1rem;border-radius:12px;margin:.7rem 0;border:1px solid var(--border);background:#fff}
.hero{position:relative;min-height:88vh;background-color:var(--hero-fallback);background-size:cover;background-position:center;border-bottom:1px solid var(--border)}
.hero .overlay{color:#fff;min-height:88vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.6rem}
.hero h1{font-size:clamp(36px,5vw,60px);margin:0 0 .5rem;font-weight:700}
.hero p{max-width:880px;opacity:.96;font-size:clamp(16px,1.6vw,19px)}
.hero .actions{margin-top:1.3rem;display:flex;gap:.9rem;flex-wrap:wrap}
.section{padding:3rem 0}
.section h2{font-size:clamp(26px,3.2vw,36px);margin:0 0 1rem}
.muted{color:var(--muted)}
.grid-banners{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
figure>img{border-radius:14px;width:100%;height:auto}
.room-list{display:grid;gap:1.2rem}
.room-card{display:grid;grid-template-columns: 1.2fr 1fr;gap:1rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);overflow:hidden;transition:transform .2s ease, box-shadow .2s ease}
.room-card:hover{transform:translateY(-3px);box-shadow:0 18px 46px rgba(0,0,0,.12)}
.room-card .media{position:relative}
.room-card .media img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.room-card .content{padding:1.1rem 1.2rem;display:flex;flex-direction:column;justify-content:center}
.room-card h3{margin:.2rem 0 .5rem}
.room-card .chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.35rem 0 .8rem}
.chip{background:#f6f7f9;border:1px solid var(--border);border-radius:999px;padding:.18rem .6rem;font-size:.9rem}
.room-card .actions{display:flex;gap:.6rem;flex-wrap:wrap}
.room-card .cta{font-weight:700;color:var(--color-primary)}
@media (max-width:900px){.room-card{grid-template-columns:1fr}.room-card .media img{aspect-ratio:3/2}}
.room-detail .gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-bottom:1.2rem}
.room-detail .gallery img{width:100%;border-radius:12px}
.sticky-book{position:sticky;top:82px;align-self:start;border:1px solid var(--border);border-radius:14px;padding:1rem;background:#fff;box-shadow:var(--shadow)}
.page{padding:3rem 0}
.page .lead{color:var(--muted);max-width:780px}
.banner-item img{width:100%;height:auto;border-radius:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
.gallery.admin img{width:100%;max-width:320px;border-radius:10px;border:1px solid var(--border)}


/* --- Carousel (home banners) --- */
.carousel{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}
.carousel-track{display:flex;transition:transform .55s cubic-bezier(.2,.8,.2,1);will-change:transform}
.carousel .slide{min-width:100%;position:relative;aspect-ratio:16/9;background:#eef2f7}
.carousel .slide img{width:100%;height:100%;object-fit:cover;display:block}
.carousel .caption{position:absolute;inset:auto 0 0 0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55));color:#fff;padding:1rem 1.2rem}
.carousel .caption h3{margin:0 0 .25rem;font-size:clamp(18px,2.2vw,24px)}
.carousel .caption p{margin:0;opacity:.92}
.carousel-prev,.carousel-next{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.85);width:42px;height:42px;border-radius:50%;box-shadow:var(--shadow);cursor:pointer;display:grid;place-items:center}
.carousel-prev{left:.6rem}.carousel-next{right:.6rem}
.carousel-prev:hover,.carousel-next:hover{background:#fff}
.carousel-dots{position:absolute;left:0;right:0;bottom:.5rem;display:flex;gap:.4rem;justify-content:center}
.carousel-dots button{width:9px;height:9px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.3);cursor:pointer}
.carousel-dots button.active{background:#fff;border-color:#fff}
@media (max-width:900px){.carousel .caption{padding:.8rem}.carousel-prev,.carousel-next{width:38px;height:38px}}


/* === v7.5: Acomodações compactas === */
.room-list{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
@media (min-width:1280px){.room-list{grid-template-columns:repeat(4,1fr)}}
.room-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:calc(var(--radius) - 4px);background:#fff;box-shadow:var(--shadow);overflow:hidden;transition:transform .18s ease, box-shadow .18s ease}
.room-card:hover{transform:translateY(-3px);box-shadow:0 18px 46px rgba(0,0,0,.12)}
.room-card .media{aspect-ratio:4/3;background:#eef2f7}
.room-card .media img{width:100%;height:100%;object-fit:cover;display:block}
.room-card .content{padding:.8rem .9rem}
.room-card h3{margin:.1rem 0 .25rem;font-size:1.02rem;line-height:1.2}
.room-card p{margin:0 0 .5rem;color:var(--muted);font-size:.95rem}
.room-card .chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.25rem 0 .55rem}
.chip{background:#f6f7f9;border:1px solid var(--border);border-radius:999px;padding:.14rem .5rem;font-size:.82rem}
.room-card .actions{display:flex;gap:.45rem;flex-wrap:wrap}
.room-card .btn-accent,.room-card .btn-ghost{color:var(--btn-ghost-text);background:transparent;border-color:var(--btn-ghost-border);padding:.45rem .75rem;font-size:.9rem;border-radius:10px}


/* --- Navbar Modern --- */
.navbar{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:background .25s ease,border-color .25s ease, box-shadow .25s ease}
.navbar .nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:.8rem}
.navbar .brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}
.navbar .brand img{height:34px;width:auto;display:block}
.navbar .brand-text{font-weight:800;letter-spacing:.2px;font-size:1.05rem}

/* estado padrão (topo transparente) */
body:not(.nav-scrolled) .navbar{background:color-mix(in srgb, var(--color-bg) 60%, transparent);}
/* estado scrolled/fora do herói */
body.nav-scrolled .navbar{background:rgba(255,255,255,.86);border-color:var(--border);box-shadow:0 10px 30px rgba(0,0,0,.08)}

.navbar .menu{display:flex;align-items:center;gap:1rem}
.navbar .links{display:flex;align-items:center;gap:.9rem;margin:0;padding:0;list-style:none}
.navbar .links a{display:inline-flex;align-items:center;padding:.45rem .55rem;border-radius:10px;text-decoration:none;color:var(--color-text);opacity:.9}
.navbar .links a:hover{opacity:1;background:#f2f5f8}
.navbar .actions{display:flex;align-items:center;gap:.5rem}

/* Burger */
.burger{display:none;border:1px solid var(--border);background:#fff;border-radius:10px;width:42px;height:38px;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.burger span{display:block;width:18px;height:2px;background:var(--color-text);transition:transform .25s ease, opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}

/* Mobile menu */
@media (max-width: 980px){
  .burger{display:inline-flex}
  .navbar .menu{position:fixed;inset:68px 0 auto 0;display:grid;grid-template-rows:auto 1fr;gap:1rem;padding:1rem;background:rgba(255,255,255,.98);backdrop-filter:blur(10px);transform:translateY(-8%);opacity:0;pointer-events:none;transition:transform .25s ease, opacity .25s ease;box-shadow:0 18px 46px rgba(0,0,0,.12);border-bottom:1px solid var(--border)}
  .navbar .menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .navbar .links{flex-direction:column;align-items:flex-start;gap:.4rem}
  .navbar .links a{width:100%}
  .navbar .actions{justify-content:flex-start}
}

/* Ativo por seção (via .active) */
.navbar .links a.active{background:#e9eef5;opacity:1}


/* v7.8: ajustes de contraste e contexto */
.on-dark{--btn-ghost-text:#fff;--btn-ghost-border:rgba(255,255,255,.6)}
.on-dark .btn{--btn-text:#fff}


/* === v7.8.2 authoritative buttons (site + admin) === */
.btn{color:var(--color-text);background:#fff;border:1px solid var(--border);padding:.6rem .9rem;border-radius:12px;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;line-height:1}
.btn:hover{box-shadow:0 10px 26px rgba(0,0,0,.08)}
.btn-ghost{color:var(--btn-ghost-text);background:transparent;border:1px solid var(--btn-ghost-border);padding:.55rem .9rem;border-radius:12px;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;line-height:1}
.btn-ghost:hover{background:rgba(0,0,0,.04)}
.btn-accent{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);padding:.6rem 1rem;border-radius:12px;text-decoration:none;display:inline-flex;align-items:center;gap:.55rem;line-height:1;box-shadow:0 12px 28px rgba(0,0,0,.12)}
.btn-accent:hover{opacity:.95}


/* --- Depoimentos --- */
.testimonials{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.testimonial-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:1rem}
.testimonial-card .rating{color:#f0b400;letter-spacing:.5px;margin-bottom:.35rem}
.testimonial-card .rating .off{color:#e2e6eb}
.testimonial-card blockquote{margin:0 0 .6rem;font-size:1rem;line-height:1.5;color:var(--color-text)}
.testimonial-card footer{font-weight:600;color:color-mix(in srgb, var(--color-text) 90%, transparent)}


/* --- Testimonials Carousel --- */
.t-carousel{position:relative;border-radius:var(--radius);overflow:hidden}
.t-track{display:flex;gap:1rem;transition:transform .55s cubic-bezier(.2,.8,.2,1);will-change:transform}
.t-slide{flex:0 0 100%}
@media (min-width: 900px){ .t-slide{flex-basis:50%} }
@media (min-width: 1280px){ .t-slide{flex-basis:33.3333%} }

.t-prev,.t-next{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.9);width:42px;height:42px;border-radius:50%;box-shadow:var(--shadow);cursor:pointer;display:grid;place-items:center}
.t-prev{left:.2rem}.t-next{right:.2rem}
.t-prev:hover,.t-next:hover{background:#fff}
.t-dots{display:flex;gap:.35rem;justify-content:center;margin-top:.6rem}
.t-dots button{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.35);background:rgba(0,0,0,.12);cursor:pointer}
.t-dots button.active{background:var(--color-text);border-color:var(--color-text)}


/* === Ajuste do CAROUSEL no mobile (sem corte + fundo uniforme) === */
@media (max-width: 640px){
  .carousel .slide img{
    object-fit: contain;
    height: auto;
    background-color: var(--hero-fallback);
  }
}
