/* ============ VARIABLES ============ */
:root{
  --navy: #243C53;
  --navy-dark: #1C3142;
  --terracotta: #C48E62;
  --terracotta-dark: #B07D54;
  --cream: #F8F5F0;
  --cream-light: #F8F9FA;
  --text-dark: #333;
  --text-blue: #333;
  --text-muted: #666;
  --white: #ffffff;
  --navbar-height: 80px;
  --font-display: 'Poppins', sans-serif;
  --font-body: 'Montserrat', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  color: var(--text-dark);
  line-height:1.6;
  background:#fff;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
button{cursor:pointer;font-family:inherit;border:none;background:none;}
ul{list-style:none;}

.section-title{
  text-align:center;
  font-family:var(--font-display);
  font-weight:300;
  font-size:2.5rem;
  letter-spacing:2px;
  color: var(--text-blue);
}
.section-title.light{color:#fff;}

.title-underline{
  width:60px;height:3px;
  background:var(--terracotta);
  margin:14px auto 0;
}
.title-underline.light{background:var(--terracotta);}
.title-underline.blue{background:#4A90D9;}

#quienes-somos,#galeria,#servicios,#restaurantes,#tour{scroll-margin-top:80px}

/* ============ NAVBAR CALAMA ============ */
.modern-navbar .nav-list{gap:2rem;}
.modern-navbar .nav-link{
  font-size:0.72rem;
  letter-spacing:0.6px;
  white-space:nowrap;
}
@media (min-width:993px) and (max-width:1280px){
  .modern-navbar .nav-list{gap:1.5rem;}
  .modern-navbar .nav-link{font-size:0.68rem;}
}

/* ============ HERO ============ */
.hero{
  position:relative;
  width:100%;
  height:100vh;
  overflow:hidden;
  background:#000;
}
.hero-slides{position:absolute;inset:0;}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.5s ease-in-out;
}
.hero-slide.active{opacity:1;}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.25) 40%, rgba(0,0,0,0.55) 100%);
  z-index:1;
}
.hero-content{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  text-align:center;
  color:#fff;
  z-index:5;
  width:90%;
  max-width:900px;
  padding:0 2rem;
}
.hero-content h1{
  font-family:var(--font-display);
  font-weight:300;
  font-size:3.5rem;
  letter-spacing:3px;
  text-transform:uppercase;
  text-shadow:0 2px 12px rgba(0,0,0,0.7);
  line-height:1.2;
}
.hero-content p{
  margin-top:1rem;
  font-size:1.2rem;
  letter-spacing:1px;
  font-weight:300;
  opacity:0.95;
  text-shadow:0 1px 8px rgba(0,0,0,0.7);
}
.hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:50px;height:50px;
  border-radius:50%;
  background:var(--terracotta);
  border:2px solid rgba(255,255,255,0.3);
  color:#fff;
  font-size:0.9rem;
  display:flex;align-items:center;justify-content:center;
  z-index:6;
  transition:all .3s;
}
.hero-arrow:hover{transform:translateY(-50%) scale(1.1);}
.hero-arrow-left{left:3rem;}
.hero-arrow-right{right:3rem;}
.hero-dots{
  position:absolute;
  bottom:3rem;left:50%;
  transform:translateX(-50%);
  display:flex;gap:1rem;
  z-index:6;
}
.dot{
  width:12px;height:12px;border-radius:50%;
  border:2px solid rgba(255,255,255,0.5);
  background:transparent;
  cursor:pointer;
  transition:all .3s;
}
.dot.active{
  background:#fff;
  border-color:#fff;
  width:40px;border-radius:20px;
}

/* ============ INTRO ============ */
.intro{
  background:var(--cream);
  text-align:center;
  padding:3rem 20px;
  scroll-margin-top:var(--navbar-height);
}
.intro-logos{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin-bottom:1rem;
  flex-wrap:wrap;
}
.intro-lrh-logo{height:42px;width:auto;}
.intro-ascend-logo{height:38px;width:auto;}
.intro-hotel-logo{height:48px;width:auto;}
.intro-divider{
  width:60px;height:3px;
  background:var(--terracotta);
  margin:0 auto 2rem;
}
.intro-text{
  max-width:800px;
  margin:0 auto;
  color:#666;
  font-size:1rem;
  line-height:1.8;
}
.intro-text strong{color:var(--terracotta-dark);font-weight:600;}

/* ============ GALERIA ============ */
.galeria{
  padding:4rem 20px;
  text-align:center;
  scroll-margin-top:var(--navbar-height);
}
.galeria-badge{
  display:inline-block;
  background:var(--terracotta);
  color:#fff;
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.5px;
  padding:10px 24px;
  border-radius:26px;
  margin:24px 0 22px;
}
.galeria-text{
  max-width:900px;
  margin:0 auto 2rem;
  color:#666;
  font-size:1rem;
  line-height:1.8;
}
.galeria-text strong{color:var(--terracotta-dark);}

.gallery-viewer{max-width:1200px;margin:0 auto;}
.gallery-grid+.gallery-grid{margin-top:12px;}
.gallery-block-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:stretch;
}
.gallery-col-large,.gallery-col-small{flex:1 1 100%;min-width:0;height:fit-content;}
.gallery-item{
  position:relative;
  overflow:hidden;
  cursor:pointer;
  border-radius:8px;
  width:100%;height:100%;
}
.gallery-item-large{height:400px;max-width:100%;width:100%;}
.gallery-small-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  height:100%;
}
.gallery-item-small{height:154px;max-width:100%;width:100%;}
.gallery-item img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .3s ease;
  display:block;
}
/* Santiago reserva: ver la imagen completa sin cortar, con cover */
.galeria .gallery-item img{
  object-fit:contain !important;
  object-position:center !important;
  background-color:#f0f0f0;
}
.overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,0.3), rgba(0,0,0,0.6));
  opacity:0;
  transition:opacity .3s ease;
  display:flex;align-items:center;justify-content:center;
}
.gallery-item:hover .overlay{opacity:1;}
.gallery-item:hover img{transform:scale(1.05);}
.expand-btn{
  width:50px;height:50px;
  border:2px solid white;
  background:transparent;
  color:#fff;
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.expand-btn:hover{background:#fff;color:#333;}
.gallery-controls{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  margin-top:2rem;
  flex-wrap:wrap;
}
.gallery-controls[hidden]{display:none!important;}
.galeria-more{
  width:48px;height:48px;
  border-radius:50%;
  border:1.5px solid #d0d0d0;
  background:rgba(255,255,255,0.95);
  color:#666;
  font-size:1.4rem;
  box-shadow:0 2px 8px rgba(0,0,0,0.08);
  transition:all .3s;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.galeria-more:hover{border-color:var(--terracotta);color:var(--terracotta);}
@media (max-width:768px){
  .gallery-controls{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }
  .galeria-more{
    aspect-ratio:1/1;
    max-width:120px;
    height:auto;
  }
}
@media (max-width:480px){
  .gallery-controls{
    gap:8px;
    max-width:220px;
  }
  .galeria-more{
    max-width:100px;
    font-size:1.2rem;
  }
}
.gallery-empty{color:#888;padding:2rem;}

@media (min-width:992px){
  .gallery-block-row{flex-wrap:nowrap;}
  .gallery-col-large,.gallery-col-small{flex:1 1 calc(50% - 6px);}
  .gallery-item-large{height:496px;max-width:100%;width:100%;}
  .gallery-item-small{height:242px;max-width:100%;width:100%;}
}
@media (max-width:991px){
  .gallery-item-large{height:260px;max-width:100%;width:100%;}
  .gallery-item-small{height:140px;max-width:100%;width:100%;}
}
@media (max-width:576px){
  .gallery-item-small{height:120px;max-width:100%;width:100%;}
  .gallery-item-large{height:200px;max-width:100%;width:100%;}
}

/* ============ DARK SECTION ============ */
.dark-section{
  background:var(--navy);
  padding:4rem 20px 2rem;
}
.valoraciones{text-align:center;margin-bottom:4rem;}
.valoraciones-sub{
  color:#cdd6de;
  font-size:1rem;
  margin-top:16px;
}
.rating-cards{
  display:flex;
  justify-content:center;
  gap:24px;
  flex-wrap:wrap;
  margin-top:40px;
}
.stats-panel{
  background:rgba(255,255,255,0.98);
  border-radius:30px;
  padding:2.5rem 2rem;
  width:100%;
  max-width:320px;
  min-height:420px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  transition:transform .3s ease, box-shadow .3s ease;
}
.stats-panel:hover{transform:translateY(-8px);}
.stats-panel .platform-logo{
  margin-bottom:1.25rem;
  display:flex;
  align-items:center;
  justify-content:center;
  height:auto;
  max-width:none;
}
.stats-panel .logo-svg{width:120px;height:120px;object-fit:contain;}
.rating-display{margin-bottom:.5rem;}
.rating-number{
  font-family:var(--font-display);
  font-size:2.5rem;
  font-weight:700;
  color:#1a1a2e;
  line-height:1;
}
.platform-description{
  font-size:.9rem;
  color:#666;
  line-height:1.5;
  padding:0 .5rem;
  margin-bottom:1.25rem;
}
.rating-label{
  padding:.5rem 1.25rem;
  border-radius:25px;
  font-size:.8rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:1px;
  background:linear-gradient(135deg,#f0f0f0,#e0e0e0);
  color:#666;
  margin-bottom:1.25rem;
}
.rating-label.excellent,
.rating-label.good{
  background:linear-gradient(135deg,#c48e62,#edc198);
  color:#fff;
}
.btn-view-more{
  background:#243d53;
  border:none;
  border-radius:50px;
  padding:.75rem 2rem;
  font-weight:600;
  font-size:.85rem;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#fff;
  cursor:pointer;
  transition:all .3s ease;
  box-shadow:0 4px 15px rgba(36,61,83,.3);
  font-family:var(--font-body);
}
.btn-view-more:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(36,61,83,.4);
  background:#1a2d3d;
}
.rating-card{
  background:#fff;
  border-radius:8px;
  padding:34px 30px;
  width:260px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.platform-logo{height:48px;width:auto;max-width:120px;object-fit:contain;}
.rating-score{
  font-family:var(--font-display);
  font-size:1.8rem;
  font-weight:600;
  color:var(--text-blue);
}
.rating-label{
  font-size:0.82rem;
  color:#8a93a0;
  max-width:190px;
  line-height:1.5;
}
.badge-pill{
  background:var(--terracotta);
  color:#fff;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.5px;
  padding:6px 16px;
  border-radius:14px;
  margin-top:4px;
  text-transform:capitalize;
}
.badge-satisfactorio{background:#6c757d;}
.btn-dark{
  background:var(--navy);
  color:#fff;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.5px;
  padding:8px 18px;
  border-radius:14px;
  margin-top:4px;
  text-transform:capitalize;
}

/* ============ MODAL VALORACIONES ============ */
.booking-modal-overlay{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background-color:rgba(0,0,0,.7);
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:9999;
  animation:ratingFadeIn .3s ease;
}
.booking-modal-overlay[hidden]{display:none;}
.booking-modal-container{
  background:#fff;
  border-radius:15px;
  max-width:90%;
  max-height:90vh;
  overflow-y:auto;
  position:relative;
  animation:ratingSlideUp .3s ease;
}
.booking-container{
  width:100%;
  max-width:700px;
  background:#fff;
  border-radius:15px;
  overflow:hidden;
}
.modal-header{
  padding:1.5rem 2rem;
  background:linear-gradient(135deg,#243c53,#1a2d3d);
  color:#fff;
  border-top:4px solid #c48e62;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}
.header-left{flex:1;}
.header-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.5rem;
}
.modal-title{font-size:1.5rem;font-weight:600;margin:0;}
.hotel-name{font-size:.85rem;opacity:.8;margin:0;margin-top:.5rem;text-align:left;}
.close-button{
  background:rgba(255,255,255,.1);
  border:none;
  border-radius:50%;
  width:36px;
  height:36px;
  min-width:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#fff;
  transition:all .3s ease;
  flex-shrink:0;
}
.close-button:hover{background:rgba(255,255,255,.2);transform:rotate(90deg);}
.modal-body{padding:2rem;}
.rating-header{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  align-items:center;
  margin-bottom:2rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid #eee;
}
.main-rating{display:flex;align-items:center;gap:1rem;}
.rating-badge{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:70px;
  min-height:70px;
  padding:12px 16px;
  border-radius:8px;
}
.rating-value{font-size:2rem;font-weight:700;color:#fff;line-height:1;}
.rating-info{display:flex;flex-direction:column;text-align:left;}
.rating-description{font-size:1.25rem;font-weight:600;color:#1a1a2e;margin:0 0 .25rem;}
.reviews-count{font-size:.9rem;color:#666;margin:0;}
.objective-section{flex:1;min-width:200px;}
.objective-text{
  margin:0;
  font-size:.9rem;
  color:#555;
  line-height:1.5;
  padding:.75rem 1rem;
  background:#f8f9fa;
  border-radius:8px;
  border-left:3px solid #c48e62;
  text-align:left;
}
.categories-section{margin-bottom:1.5rem;}
.categories-title{
  font-size:1rem;
  font-weight:600;
  color:#1a1a2e;
  margin:0 0 1.25rem;
}
.categories-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
}
.category-column{display:flex;flex-direction:column;gap:1rem;}
.category-item{display:flex;flex-direction:column;gap:.5rem;}
.category-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;}
.category-name{
  font-size:.85rem;
  color:#444;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.category-name i{font-size:1rem;color:#888;}
.category-score{
  display:flex;
  align-items:baseline;
  gap:2px;
  font-weight:600;
  color:#243d53;
  white-space:nowrap;
}
.score-scale{font-size:.75rem;font-weight:400;color:#6c757d;}
.category-bar-container{background:#e9ecef;border-radius:4px;height:8px;overflow:hidden;}
.category-bar{height:100%;border-radius:4px;transition:width .5s ease-out;}
.category-note{
  display:flex;
  align-items:center;
  gap:.25rem;
  font-size:.75rem;
  color:#dc3545;
}
.category-note i{font-size:1rem;}
.modal-footer{padding-top:1.5rem;border-top:1px solid #eee;}
.disclaimer{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.8rem;
  color:#666;
  margin:0;
}
.disclaimer i{color:#28a745;font-size:1rem;}
@keyframes ratingFadeIn{from{opacity:0}to{opacity:1}}
@keyframes ratingSlideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:767px){
  .stats-panel{min-height:auto;padding:2rem 1.5rem;max-width:340px;border-radius:20px;}
  .logo-svg{width:80px;height:80px;}
  .rating-number{font-size:2rem;}
  .categories-grid{grid-template-columns:1fr;gap:1rem;}
  .rating-header{flex-direction:column;align-items:flex-start;gap:1rem;}
  .modal-header{padding:1.25rem 1.5rem;flex-direction:column;}
  .modal-body{padding:1.5rem;}
  .modal-title{font-size:1.25rem;}
  .hotel-name{font-size:.8rem;}
  .booking-modal-container{border-radius:12px;margin:10px;}
}
@media (max-width:480px){
  .stats-panel{padding:1.75rem 1.25rem;max-width:300px;border-radius:16px;}
  .logo-svg{width:70px;height:70px;}
  .rating-number{font-size:1.8rem;}
  .rating-display{gap:.75rem;}
  .rating-badge{min-width:60px;min-height:60px;padding:10px 12px;}
  .rating-value{font-size:1.6rem;}
  .rating-description{font-size:1.1rem;}
  .btn-view-more{padding:.6rem 1.5rem;font-size:.8rem;}
  .category-name{font-size:.8rem;}
  .category-score{font-size:.85rem;}
  .close-button{width:32px;height:32px;min-width:32px;}
  .modal-header{padding:1rem 1.25rem;}
  .modal-body{padding:1.25rem;}
  .modal-title{font-size:1.15rem;}
}
@media (max-width:360px){
  .stats-panel{padding:1.5rem 1rem;max-width:270px;border-radius:14px;}
  .logo-svg{width:60px;height:60px;}
  .rating-number{font-size:1.6rem;}
  .rating-value{font-size:1.4rem;}
  .btn-view-more{padding:.5rem 1.2rem;font-size:.75rem;}
}

.marcas{text-align:center;margin-bottom:3rem;}
.marcas-logos{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:50px;
  flex-wrap:wrap;
  margin-top:36px;
}
.marca-img{height:200px;width:200px;object-fit:contain;}

.servicios{
  border-top:1px solid rgba(255,255,255,0.12);
  padding-top:3rem;
  text-align:center;
  padding-bottom:3rem;
  scroll-margin-top:var(--navbar-height);
}
.servicios-grid{
  max-width:1100px;
  margin:40px auto 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.servicio-card{
  background:#fff;
  border-radius:8px;
  padding:30px;
  display:flex;
  gap:14px;
  align-items:flex-start;
  text-align:left;
}
.servicio-icon{
  width:44px;height:44px;
  border-radius:50%;
  background:linear-gradient(135deg,#d6a978,#c1875a);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.servicio-card h4{
  font-family:var(--font-display);
  font-size:1rem;
  color:var(--text-blue);
  letter-spacing:0.5px;
  margin-bottom:6px;
}
.servicio-card p{
  font-size:0.95rem;
  color:#8a93a0;
  line-height:1.6;
}

/* ============ RESTAURANTES ============ */
.restaurantes{
  background:var(--cream-light);
  padding:4rem 20px;
  text-align:center;
  scroll-margin-top:var(--navbar-height);
}
.restaurante-content{
  margin:40px auto 0;
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:50px;
  text-align:left;
  width:100%;
  padding:0 20px;
}
.restaurante-info{flex:1 1 0; min-width:0; width:100%;}
.restaurante-info h3{
  font-family:var(--font-display);
  color:var(--text-blue);
  font-size:1.5rem;
  letter-spacing:0.5px;
  margin-bottom:14px;
  word-break:break-word;
  overflow-wrap:break-word;
}
.restaurante-info p{
  color:#666;
  font-size:1rem;
  line-height:1.8;
  margin-bottom:24px;
  max-width:none;
  word-break:break-word;
  overflow-wrap:break-word;
}
.restaurante-info p strong{color:var(--terracotta-dark);}
.restaurante-thumbs{display:flex;gap:10px;flex-wrap:nowrap;justify-content:flex-start;align-items:center;}
.thumb{
  position:relative;
  width:190px;
  height:auto;
  aspect-ratio:4 / 3;
  border-radius:8px;
  overflow:hidden;
  cursor:pointer;
  flex-shrink:1;
  min-width:140px;
}
.thumb img{width:100%;height:100%;object-fit:cover;}
.thumb-overlay::after{
  content:'';
  position:absolute;inset:0;
  background:rgba(70,90,200,0.35);
}
.zoom-icon{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  color:#fff;
  z-index:2;
}
.restaurante-logo{flex:1;display:flex;justify-content:center;}
.logo-circle{
  width:480px;height:480px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 10px 40px rgba(0,0,0,0.08);
  display:flex;
  align-items:center;
  justify-content:center;
  /*padding:40px;*/
}
.rafaella-logo-img{width:70%;height:auto;object-fit:contain;}

/* ============ TOURS ============ */
.tours{
  padding:4rem 20px;
  max-width:1100px;
  margin:0 auto;
  text-align:left;
  scroll-margin-top:var(--navbar-height);
}
.tours .section-title{
}
.tours-tabs{
  display:flex;
  justify-content:flex-start;
  gap:12px;
  margin:36px 0 36px;
  flex-wrap:wrap;
}
.tour-tab{
  padding:10px 20px;
  border-radius:26px;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.5px;
  color:#666;
  background:#f5f5f5;
  transition:all .3s;
}
.tour-tab.active{
  background:#4A90D9;
  color:#fff;
}
.tour-panel{display:none;}
.tour-panel.active{
  display:flex;
  text-align:left;
  gap:50px;
  align-items:stretch;
}
.tour-info{flex:1 1 0; min-width:0; width:100%;}
.tour-info h3{
  font-family:var(--font-display);
  color:var(--text-blue);
  font-size:1.3rem;
  margin-bottom:14px;
  word-break:break-word;
  overflow-wrap:break-word;
}
.tour-info > p{
  color:var(--terracotta-dark);
  font-size:0.95rem;
  line-height:1.7;
  margin-bottom:24px;
  max-width:none;
  word-break:break-word;
  overflow-wrap:break-word;
}
.tour-info h4{
  font-size:0.85rem;
  color:var(--text-blue);
  letter-spacing:0.5px;
  margin-bottom:12px;
}
.tour-includes li{
  font-size:0.85rem;
  color:var(--text-blue);
  padding-left:22px;
  position:relative;
  margin-bottom:10px;
}
.tour-includes li::before{
  content:'✓';
  color:#3DAA5C;
  position:absolute;left:0;
  font-weight:700;
}
.tour-image-wrap{flex:1;display:flex;justify-content:center;}
.tour-slider{
  position:relative;
  width:100%;
  max-width:420px;
  height:auto;
  aspect-ratio:1 / 1;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,0.15);
}
.tour-slide{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity .6s ease;
}
.tour-slide.active{opacity:1;}
.tour-arrow{
  position:absolute;
  top:50%;transform:translateY(-50%);
  width:40px;height:40px;
  border-radius:50%;
  background:rgba(255,255,255,0.85);
  color:#333;
  display:flex;align-items:center;justify-content:center;
  font-size:0.8rem;
  z-index:5;
}
.tour-arrow-left{left:14px;}
.tour-arrow-right{right:14px;}
.tour-dots{
  position:absolute;
  bottom:16px;left:50%;
  transform:translateX(-50%);
  display:flex;gap:6px;
  z-index:5;
}
.tdot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,0.5);
  cursor:pointer;
}
.tdot.active{background:#fff;width:24px;border-radius:4px;}

/* ============ LIGHTBOX ============ */
.image-modal{
  display:none;
  position:fixed;
  z-index:9999;
  inset:0;
  background:rgba(0,0,0,0.9);
  align-items:center;
  justify-content:center;
}
.image-modal.active{display:flex;}
.modal-container{position:relative;max-width:90%;max-height:90vh;display:flex;align-items:center;justify-content:center;}
.image-wrapper img{max-width:90vw;max-height:85vh;width:auto;height:auto;border-radius:8px;}
.close-btn,.nav-btn{
  position:absolute !important;
  color:#fff;
  background:rgba(0,0,0,0.5);
  border:none;
  cursor:pointer;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:all .3s;
}
.close-btn{top:20px;right:20px;width:50px;height:50px;font-size:1.5rem;z-index:20;}
.nav-btn{top:50%;transform:translateY(-50%);width:64px;height:64px;z-index:20;font-size:1.8rem;box-shadow:0 2px 10px rgba(0,0,0,.5);background:rgba(0,0,0,.6);}
.nav-btn:hover{background:rgba(0,0,0,.9);transform:translateY(-50%) scale(1.05);}
.prev-btn{left:20px;}
.next-btn{right:20px;}
.modal-navigation{
  position:absolute;
  bottom:24px;left:50%;transform:translateX(-50%);
  background:rgba(0,0,0,.85);
  color:#fff;
  padding:10px 20px;
  border-radius:24px;
  font-size:.95rem;
  white-space:nowrap;
  z-index:20;
  box-shadow:0 2px 10px rgba(0,0,0,.5);
  pointer-events:none;
}

@media (max-width:768px){
  .close-btn{top:12px;right:12px;width:42px;height:42px;font-size:1.2rem;}
  .nav-btn{width:42px;height:42px;}
  .prev-btn{left:10px;}
  .next-btn{right:10px;}
  .modal-navigation{bottom:12px;right:12px;padding:6px 12px;font-size:.8rem;}
  .image-wrapper img{max-width:92vw;max-height:80vh;border-radius:6px;}
}

@media (max-width:480px){
  .close-btn{top:8px;right:8px;width:36px;height:36px;font-size:1rem;}
  .nav-btn{width:36px;height:36px;}
  .prev-btn{left:6px;}
  .next-btn{right:6px;}
  .modal-navigation{bottom:8px;left:50%;transform:translateX(-50%);padding:5px 10px;font-size:.7rem;}
  .image-wrapper img{max-width:94vw;max-height:78vh;}
  .modal-container{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto;
    gap:8px;
    padding:8px;
  }
  .image-wrapper{
    grid-column:1 / -1;
    order:-1;
  }
  .image-wrapper img{
    max-width:100%;
    max-height:55vh;
  }
  .modal-navigation{
    position:relative;
    bottom:auto;
    right:auto;
    grid-column:2;
    grid-row:2;
    justify-self:end;
    align-self:center;
  }
}

/* ============ RESPONSIVE ============ */
@media (max-width:1200px){
  .restaurante-content{gap:36px;}
  .restaurante-thumbs .thumb{width:170px;min-width:130px;}
  .tour-panel.active{gap:40px;}
  .tour-info h3{font-size:1.2rem;}
  .tour-info > p{font-size:.9rem;}
  .tour-slider{max-width:380px;}
}

@media (max-width:1100px){
  .restaurante-content{flex-direction:row;align-items:stretch;gap:32px;padding:0 20px;}
  .restaurante-info{flex:1 1 0;min-width:0;}
  .restaurante-logo{flex:0 0 auto;align-self:center;}
  .restaurante-thumbs{gap:8px;}
  .restaurante-thumbs .thumb{width:155px;min-width:120px;}
  .logo-circle{width:260px;height:260px;}
  .tour-image-wrap{transform:none;}
  .tour-slider{max-width:100%;height:auto;aspect-ratio:1 / 1;}
  .tour-panel.active{flex-direction:row;gap:32px;}
  .tours .section-title{transform:none;}
  .tour-info h3{font-size:1.15rem;}
  .tour-info > p{font-size:.88rem;}
}

@media (max-width:980px){
  .restaurante-content{flex-direction:row;align-items:stretch;gap:28px;padding:0 16px;}
  .restaurante-info{flex:1 1 0;min-width:0;}
  .restaurante-logo{flex:0 0 auto;align-self:center;}
  .restaurante-thumbs{gap:6px;}
  .restaurante-thumbs .thumb{width:140px;min-width:110px;}
  .logo-circle{width:200px;height:200px;}
  .restaurante-info h3{font-size:1.35rem;}
  .restaurante-info p{font-size:.95rem;}
  .servicios-grid{grid-template-columns:1fr 1fr;}
  .tour-panel.active{flex-direction:row;gap:28px;}
  .tour-image-wrap{transform:none;}
  .tours .section-title{transform:none;}
  .tour-info h3{font-size:1.05rem;}
  .tour-info > p{font-size:.85rem;line-height:1.65;}
  .tour-info h4{font-size:.8rem;}
  .tour-includes li{font-size:.8rem;padding-left:20px;margin-bottom:8px;}
  .tour-tab{padding:8px 16px;font-size:.72rem;}
}

@media (max-width:850px){
  .restaurante-content{flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:0 20px;}
  .restaurante-info, .restaurante-logo{width:100%;max-width:600px;}
  .restaurante-thumbs{flex-wrap:wrap;justify-content:center;gap:12px;}
  .restaurante-thumbs .thumb{flex:1 1 calc(33.333% - 12px);max-width:180px;min-width:140px;}
  .logo-circle{width:240px;height:240px;}
  .tour-panel.active{flex-direction:column;gap:24px;}
  .tour-slider{max-width:100%;height:auto;aspect-ratio:1 / 1;}
  .tour-image-wrap{transform:none;}
  .tours .section-title{transform:none;}
  .tour-tabs{flex-direction:column;align-items:center;gap:8px;}
}

@media (max-width:1024px){
  .hero-content h1{font-size:2.5rem;}
  .hero-content p{font-size:1rem;}
  .hero-arrow{width:40px;height:40px;}
  .hero-arrow-left{left:1.5rem;}
  .hero-arrow-right{right:1.5rem;}
  .section-title{font-size:2rem;}
}

@media (max-width:768px){
  .hero{
    height:55vh;
    min-height:380px;
    max-height:520px;
  }
  .hero-content{
    text-align:center;
    padding:0 1rem;
  }
  .hero-content h1{
    font-size:1.5rem;letter-spacing:1px;line-height:1.2;
    text-align:center;
    margin:0 auto;
  }
  .hero-content p{
    font-size:0.85rem;
    text-align:center;
  }
  .hero-arrow{width:32px;height:32px;}
  .hero-arrow-left{left:1rem;}
  .hero-arrow-right{right:1rem;}
  .hero-dots{bottom:1.25rem;gap:0.6rem;}
  .dot{width:9px;height:9px;}
  .dot.active{width:28px;}
  .servicios-grid{grid-template-columns:1fr;}
  .rating-cards{gap:16px;}
  .restaurante-thumbs{flex-wrap:wrap;justify-content:center;}
  .thumb{
    width:100%;
    min-width:0;
    aspect-ratio:4 / 3;
  }
  .restaurante-logo{width:100%;}
  .logo-circle{width:100%;max-width:280px;height:auto;aspect-ratio:1/1;}
  .tour-slider{max-width:100%;height:auto;aspect-ratio:1 / 1;}
  .tour-arrow{display:none;}
  .tour-panel.active{flex-direction:column;gap:20px;}
  .tours-tabs{flex-direction:column;align-items:center;gap:8px;}
  .tour-tab{padding:10px 18px;font-size:.75rem;}
  .tour-info h3{font-size:1.1rem;}
  .tour-info > p{font-size:.88rem;line-height:1.65;}
  .tour-info h4{font-size:.8rem;}
  .tour-includes li{font-size:.8rem;}
  .intro{padding:2rem 16px;}
  .intro-text{font-size:.95rem;line-height:1.75;}
  .galeria{padding:3rem 16px;}
  .dark-section{padding:3rem 16px 1.5rem;}
  .valoraciones{margin-bottom:3rem;}
  .marcas{margin-bottom:2rem;}
  .marcas-logos{gap:30px;margin-top:24px;}
  .marca-img{height:140px;width:140px;}
  .restaurantes{padding:3rem 16px;}
  .tours{padding:3rem 16px;}
  .section-title{font-size:1.8rem;}
  .title-underline{width:50px;height:3px;}
}

@media (max-width:480px){
  .hero{
    height:50vh;
    min-height:320px;
    max-height:420px;
  }
  .hero-content{
    text-align:center;
    padding:0 1rem;
  }
  .hero-content h1{
    font-size:1.25rem;letter-spacing:.5px;
    text-align:center;
    margin:0 auto;
  }
  .hero-content p{
    font-size:0.78rem;
    text-align:center;
  }
  .hero-arrow{display:none;}
  .hero-dots{bottom:1rem;gap:0.5rem;}
  .dot{width:8px;height:8px;}
  .dot.active{width:24px;}
  .intro{padding:1.75rem 12px;}
  .intro-text{font-size:.9rem;line-height:1.7;}
  .intro-hotel-logo{height:36px;}
  .intro-divider{margin:0 auto 1.25rem;}
  .galeria{padding:2.5rem 12px;}
  .galeria-badge{font-size:.7rem;padding:8px 18px;margin:16px 0 14px;}
  .galeria-text{font-size:.92rem;line-height:1.7;}
  .dark-section{padding:2.5rem 12px 1.25rem;}
  .valoraciones{margin-bottom:2.5rem;}
  .valoraciones-sub{font-size:.9rem;}
  .rating-cards{gap:12px;}
  .marcas{margin-bottom:1.5rem;}
  .marcas-logos{gap:20px;margin-top:18px;}
  .marca-img{height:100px;width:100px;}
  .section-title{font-size:1.5rem;letter-spacing:1px;}
  .title-underline{width:40px;height:2px;}
  .servicios{padding-top:2rem;padding-bottom:2rem;}
  .restaurantes{padding:2.5rem 12px;}
  .tours{padding:2.5rem 12px;}
  .tour-tab{padding:8px 14px;font-size:.72rem;}
  .tour-info h3{font-size:1rem;}
  .tour-info > p{font-size:.85rem;line-height:1.6;}
  .tour-info h4{font-size:.78rem;}
  .tour-includes li{font-size:.78rem;padding-left:18px;margin-bottom:6px;}
  .tour-panel.active{flex-direction:column;gap:18px;}
  .tour-slider{max-width:100%;height:auto;aspect-ratio:1 / 1;}
  .restaurante-info h3{font-size:1.2rem;}
  .restaurante-info p{font-size:.92rem;}
  .logo-circle{width:100%;max-width:220px;height:auto;aspect-ratio:1/1;}
  .footer-content{gap:20px;padding-bottom:20px;}
  .footer-brand .hotel-name{font-size:18px;letter-spacing:1.5px;}
  .contact-bar{flex-direction:column;gap:12px;}
  .separator{display:none;}
  .contact-link{font-size:12px;}
  .contact-link svg{width:16px;height:16px;}
  .copyright{font-size:11px;}
}

@media (max-width:360px){
  .hero{
    min-height:280px;
    max-height:360px;
  }
  .hero-content{
    text-align:center;
    padding:0 1rem;
  }
  .hero-content h1{
    font-size:1.1rem;
    text-align:center;
    margin:0 auto;
  }
  .hero-content p{
    font-size:0.72rem;
    text-align:center;
  }
  .hero-dots{bottom:0.8rem;gap:0.4rem;}
  .dot{width:7px;height:7px;}
  .dot.active{width:20px;}
  .intro{padding:1.5rem 10px;}
  .intro-text{font-size:.85rem;line-height:1.65;}
  .galeria{padding:2rem 10px;}
  .galeria-text{font-size:.85rem;}
  .dark-section{padding:2rem 10px 1rem;}
  .section-title{font-size:1.3rem;letter-spacing:.5px;}
  .title-underline{width:35px;height:2px;}
  .servicios{padding-top:1.5rem;padding-bottom:1.5rem;}
  .restaurantes{padding:2rem 10px;}
  .tours{padding:2rem 10px;}
  .tour-tab{padding:7px 12px;font-size:.68rem;}
  .tour-info h3{font-size:1rem;}
  .tour-info > p{font-size:.8rem;line-height:1.55;}
  .tour-info h4{font-size:.75rem;}
  .tour-includes li{font-size:.75rem;padding-left:16px;margin-bottom:5px;}
  .tour-panel.active{flex-direction:column;gap:16px;}
  .tour-slider{max-width:100%;height:auto;aspect-ratio:1 / 1;}
  .restaurante-info h3{font-size:1.1rem;}
  .restaurante-info p{font-size:.85rem;}
  .marca-img{height:80px;width:80px;}
  .footer-brand .hotel-name{font-size:16px;letter-spacing:1px;}
  .tagline{font-size:10px;}
  .contact-link{font-size:11px;}
}
