/* --- Configurações Gerais --- */
body {
    font-family: 'Montserrat', sans-serif;
    margin: 0;
    background-color: #F4F4F2;
    color: #333;
    line-height: 1.6;
}

h1, h2, h3 {
    font-family: 'Playfair Display', serif;
    color: #2E4034;
}

a {
    text-decoration: none;
    color: #8B4513;
}

/* --- Cabeçalho e Navegação --- */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 50px;
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.logo {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    font-weight: 700;
    color: #2E4034;
}

header nav a {
    margin: 0 15px;
    font-weight: 500;
    color: #333;
    transition: color 0.3s;
}

header nav a:hover {
    color: #8B4513;
}

/* --- Página Inicial: Hero --- */
.hero {
    height: 60vh;
    background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('monte_verde.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    padding: 0 20px;
}

.hero h1 {
    font-size: 3em;
    max-width: 800px;
    color: #fff;
}

/* --- Seção da Grade de Chalés --- */
.secao-grid-chales { padding: 50px 20px; text-align: center; }
.grid-chales { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 25px; max-width: 1200px; margin: 40px auto 0; justify-content: center; }
.grid-item { position: relative; display: block; overflow: hidden; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.grid-item:hover { transform: scale(1.03); box-shadow: 0 8px 25px rgba(0,0,0,0.2); }
.grid-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.grid-item:hover img { transform: scale(1.1); }
.grid-item-titulo { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); color: #fff; padding: 30px 20px 20px; font-size: 1.5em; font-family: 'Playfair Display', serif; text-align: left; }

/* --- Seções Sobre e Rodapé --- */
.sobre-nos { padding: 50px; max-width: 800px; margin: 40px auto; text-align: center; background-color: #fff; border-radius: 8px; }
footer { background-color: #2E4034; color: #fff; text-align: center; padding: 20px; margin-top: 40px; }

/* --- PÁGINA DE DETALHES DO CHALÉ --- */
.pagina-chale { max-width: 1100px; margin: 40px auto; padding: 20px; }
.detalhes-chale h1 { text-align: center; font-size: 3em; margin-bottom: 30px; }
.descricao-chale { background-color: #fff; padding: 30px; border-radius: 8px; margin-top: 20px; margin-bottom: 30px; }
.comodidades { list-style: none; padding: 0; columns: 2; -webkit-columns: 2; -moz-columns: 2; }
.comodidades li { margin-bottom: 10px; }
.reserva-container { text-align: center; margin: 40px 0; }
.btn-reserva { background-color: #28a745; color: #fff; padding: 15px 40px; font-size: 1.2em; font-weight: bold; border-radius: 50px; transition: transform 0.3s, background-color 0.3s; box-shadow: 0 4px 15px rgba(40, 167, 69, 0.4); }
.btn-reserva:hover { background-color: #218838; transform: scale(1.05); }

/* --- Seção Outros Chalés (Miniaturas) --- */
.outros-chales { text-align: center; margin-top: 60px; padding-top: 40px; border-top: 1px solid #ddd; }
.miniaturas { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.miniatura-item { display: block; }
.miniatura-item img { width: 300px; height: 220px; object-fit: cover; border-radius: 8px; transition: transform 0.3s, box-shadow 0.3s; }
.miniatura-item span { display: block; margin-top: 10px; font-weight: 500; color: #333; }
.miniatura-item:hover img { transform: scale(1.03); box-shadow: 0 4px 15px rgba(0,0,0,0.2); }

/* --- NOVO: ESTILOS DA GALERIA SLIDESHOW --- */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}
.mySlides { display: none; }
.mySlides img { vertical-align: middle; width: 100%; }
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 20px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
  background-color: rgba(0,0,0,0.3);
}
.next { right: 0; border-radius: 3px 0 0 3px; }
.prev:hover, .next:hover { background-color: rgba(0,0,0,0.8); }
.dot-container { text-align: center; padding: 15px 0; }
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}
.active, .dot:hover { background-color: #717171; }
.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}
@keyframes fade {
  from {opacity: .4}
  to {opacity: 1}
}

/* --- Ajustes de Responsividade --- */
@media (max-width: 992px) { .grid-chales { grid-template-columns: repeat(2, minmax(250px, 1fr)); } }
@media (max-width: 768px) { .grid-chales { grid-template-columns: repeat(2, minmax(200px, 1fr)); } .hero h1 { font-size: 2.2em; } .comodidades { columns: 1; -webkit-columns: 1; -moz-columns: 1; } }
@media (max-width: 576px) { .grid-chales { grid-template-columns: 1fr; padding: 0 15px; } header { padding: 15px 20px; } .logo { font-size: 20px; } header nav a { font-size: 14px; margin: 0 8px; } }