﻿:root{
  --primary:#6f2c91;
  --dark:#4b1f63;
  --light:#a86bc4;
  --text:#333;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Montserrat',Arial,sans-serif;color:var(--text);line-height:1.5}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:1130px;margin:0 auto;padding:0 15px}

/* HEADER */
.site-header{background:var(--dark);position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.header-inner{max-width:1130px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 15px}
.logo img{height:48px}
.main-nav .menu{list-style:none;display:flex;align-items:center;gap:4px}
.main-nav .menu>li>a{color:#fff;font-size:13px;font-weight:500;padding:14px 10px;display:block;text-transform:capitalize}
.main-nav .menu>li>a:hover{color:var(--light)}
.caret{font-size:10px}
.nav-search a{font-size:15px}

/* SUBMENÚS */
.has-sub{position:relative}
.submenu,.subsub{list-style:none;position:absolute;background:#fff;min-width:230px;box-shadow:0 8px 24px rgba(0,0,0,.2);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;z-index:1200}
.submenu{top:100%;left:0}
.has-sub:hover>.submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu>li{position:relative;border-bottom:1px solid #eee}
.submenu a{color:var(--dark);padding:11px 15px;display:block;font-size:13px}
.submenu a:hover{background:var(--primary);color:#fff}
.subsub{top:0;left:100%}
.sub-group:hover>.subsub{opacity:1;visibility:visible;transform:translateY(0)}
.group-title{font-weight:600}

/* HERO SLIDER */
.hero-slider{position:relative;height:520px;overflow:hidden;background:#eee}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1s ease}
.slide.active{opacity:1}
.slider-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(75,31,99,.5);
  color:#fff;border:0;font-size:34px;width:48px;height:64px;cursor:pointer}
.slider-nav.prev{left:0}.slider-nav.next{right:0}
.slider-nav:hover{background:var(--primary)}
.slider-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer}
.dot.active{background:#fff}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(4,1fr)}
.card{position:relative;height:160px;background-size:cover;background-position:center;display:flex;
  align-items:center;justify-content:center}
.card::after{content:'';position:absolute;inset:0;background:rgba(111,44,145,.45);transition:.3s}
.card:hover::after{background:rgba(111,44,145,.7)}
.card-title{position:relative;color:#fff;font-weight:700;font-size:20px;letter-spacing:1px;z-index:2}

/* INTRO */
.intro{padding:60px 0;text-align:center}
.intro h2{color:var(--primary);font-size:24px;margin-bottom:18px;font-weight:700}
.intro p{max-width:820px;margin:0 auto;color:#555}

/* RESERVA */
.reserva-block{display:grid;grid-template-columns:1fr 1fr}
.reserva-form{padding:50px;background:#fff}
.reserva-form h3{color:var(--primary);margin-bottom:20px;font-size:22px}
.reserva-form label{display:block;margin-bottom:14px;font-size:13px;color:#666}
.reserva-form input,.reserva-form textarea{width:100%;padding:11px;border:1px solid #ccc;border-radius:3px;
  margin-top:5px;font-family:inherit;font-size:14px}
.reserva-form .hp{display:none}
.req{color:#c0392b}
.btn{background:var(--primary);color:#fff;border:0;padding:12px 34px;border-radius:3px;cursor:pointer;
  font-weight:600;text-transform:uppercase;font-size:13px;transition:.3s}
.btn:hover{background:var(--dark)}
.alert-ok{background:#e6f7ea;color:#1e7d34;padding:10px;border-radius:3px;margin-bottom:14px}
.alert-error{background:#fdecea;color:#c0392b;padding:10px;border-radius:3px;margin-bottom:14px}
.reserva-img .hotspots{height:100%;min-height:420px;background-size:cover;background-position:center;position:relative}
.hotspot{position:absolute;width:26px;height:26px;background:var(--primary);border:3px solid #fff;border-radius:50%;
  cursor:pointer}
.hotspot span{position:absolute;left:34px;top:-2px;background:var(--dark);color:#fff;padding:4px 10px;font-size:12px;
  white-space:nowrap;border-radius:3px;opacity:0;transition:.2s}
.hotspot:hover span{opacity:1}

/* PARTNERS */
.partners{padding:60px 15px}
.partners h2{color:var(--primary);margin-bottom:30px;font-size:22px}
.logos{display:flex;flex-wrap:wrap;gap:35px;align-items:center}
.logo-item img{max-height:80px;filter:grayscale(15%);transition:.3s}
.logo-item img:hover{filter:none}

/* FOOTER */
.site-footer{background:var(--dark);color:#e9dff0;margin-top:40px}
.footer-inner{max-width:1130px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr;gap:40px;padding:50px 15px}
.footer-col h3{color:#fff;font-size:15px;margin-bottom:16px}
.footer-col p{font-size:13px;margin-bottom:6px}
.footer-col a{color:#e9dff0}
.footer-search input{padding:10px;border:0;border-radius:3px 0 0 3px;width:75%}
.footer-search button{padding:10px 14px;border:0;background:var(--primary);color:#fff;border-radius:0 3px 3px 0;cursor:pointer}
.footer-bottom{background:var(--primary)}
.footer-bottom-inner{max-width:1130px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;
  padding:14px 15px;flex-wrap:wrap;gap:10px;font-size:12px;color:#fff}
.footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:14px}
.footer-nav a{color:#fff;font-size:12px}
.scroll-top{position:fixed;bottom:22px;right:22px;background:var(--primary);color:#fff;width:44px;height:44px;
  border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:22px;z-index:900}

/* RESPONSIVE */
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
@media(max-width:980px){
  .menu-toggle{display:block}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--dark)}
  .main-nav.open{display:block}
  .main-nav .menu{flex-direction:column;align-items:stretch}
  .submenu,.subsub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:#5a2477}
  .submenu a{color:#fff}
  .cards{grid-template-columns:repeat(2,1fr)}
  .reserva-block{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
}