:root{--wine:#7b180f;--wine-dark:#3b110c;--clay:#a84a27;--copper:#b66a37;--sand:#ead9bc;--cream:#f7f1e7;--ink:#241b17;--muted:#6e625b;--white:#fff;--shadow:0 20px 55px rgba(40,20,12,.16)}

*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;line-height:1.6}img{max-width:100%;display:block}a{color:inherit}button,input,textarea{font:inherit}



/* ============================================================

   ESTRUCTURA DE CABECERA Y MARCA

   ============================================================ */

.site-header{

  position:sticky;

  top:0;

  z-index:100;

  height:84px;

  padding:0 clamp(16px, 3vw, 40px);

  display:flex;

  align-items:center;

  justify-content:space-between;

  background:rgba(45,18,13,.95);

  backdrop-filter:blur(12px);

  color:#fff;

  border-bottom:1px solid rgba(255,255,255,.14);

  overflow:visible !important;

}



/* MARCA Y SOLAPA ENMARCADA */

.brand {

  display: flex !important;

  align-items: center !important;

  justify-content: center !important;

  padding: 16px !important;

  background: rgba(35, 12, 8, 0.98) !important;

  border-radius: 0 0 16px 16px !important;

  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6) !important;

  border: 1px solid rgba(255, 255, 255, 0.15) !important;

  border-top: none !important;

  text-decoration: none !important;

  flex: 0 0 auto !important;

  margin-top: 50px !important;

  z-index: 110 !important;

  transition: transform 0.2s ease !important;

}



.brand:hover {

  transform: translateY(3px) !important;

}



.brand span {

  display: none !important;

}



.brand img {

  width: 110px !important;

  height: 110px !important;

  object-fit: contain !important;

  background: #ffffff !important;

  border-radius: 10px !important;

  padding: 6px !important;

  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2) !important;

  display: block !important;

}



/* SELECTOR DE IDIOMAS */

.language-switcher{

  display:flex;

  align-items:center;

  gap:3px;

  padding:4px;

  margin-left: 15px !important;

  margin-right: auto !important;

  border:1px solid rgba(126,62,38,.24);

  border-radius:10px;

  background:#f5efe8;

  box-shadow:0 2px 8px rgba(50,25,15,.07);

  flex-shrink: 0 !important;

}



.lang-btn{

  min-width:34px;

  height:30px;

  padding:0 6px;

  border:0;

  border-radius:6px;

  background:transparent;

  color:#54443d;

  font:700 11px/1 'Montserrat',sans-serif;

  cursor:pointer;

  transition:background .2s ease,color .2s ease;

}

.lang-btn:hover{background:rgba(170,63,43,.10)}

.lang-btn.active{background:#aa3f2b;color:#fff;box-shadow:0 2px 5px rgba(110,38,25,.22)}



/* NAVEGACIÓN DESKTOP */

.main-nav{display:flex;align-items:center;gap:18px;margin-left:auto;flex-shrink:0}

.main-nav a, .nav-rate-link{text-decoration:none;font-size:13px;font-weight:600;color:#fff;white-space:nowrap !important}

.main-nav a:hover{color:var(--sand)}

.nav-cta{padding:10px 16px;border:1px solid var(--sand);border-radius:999px;white-space:nowrap !important}

.nav-toggle{display:none;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer;z-index:120}



/* SECCIONES GENERALES Y HERO */

.hero{min-height:calc(100vh - 84px);position:relative;display:grid;grid-template-columns:1.05fr .7fr;align-items:center;gap:30px;padding:80px clamp(24px,7vw,110px);overflow:hidden;background:url('../images/gall_pic1.webp') center/cover no-repeat}

.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,10,7,.93) 0%,rgba(78,18,12,.75) 48%,rgba(30,12,8,.32) 100%)}

.hero-content,.hero-emblem{position:relative;z-index:2}

.hero-content{max-width:720px;color:#fff}

.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:700;color:var(--copper)}

.hero .eyebrow{color:var(--sand)}

h1,h2,h3{font-family:Cinzel,serif;line-height:1.15;margin-top:0}

h1{font-size:clamp(46px,7vw,88px);margin-bottom:20px;text-wrap:balance}

.hero-content>p:not(.eyebrow){font-size:clamp(17px,2vw,22px);max-width:620px;color:rgba(255,255,255,.84)}

.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}

.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;border-radius:6px;text-decoration:none;border:0;font-weight:700;cursor:pointer}

.primary{background:linear-gradient(135deg,var(--clay),var(--wine));color:#fff;box-shadow:0 12px 30px rgba(90,17,10,.3)}

.ghost{color:#fff;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.06)}

.secondary{background:var(--ink);color:#fff}

.hero-emblem{justify-self:end}

.hero-emblem img{width:min(520px,42vw);filter:drop-shadow(0 30px 35px rgba(0,0,0,.38));border-radius:20px}



.section{padding:100px clamp(24px,7vw,110px)}

.section-heading{max-width:780px;margin-bottom:44px}

.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}

.section-heading h2{font-size:clamp(34px,5vw,58px);margin-bottom:14px}

.section-heading p:last-child{color:var(--muted)}

.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}

.intro-copy{font-size:17px}

.quick-facts{display:grid;gap:10px;margin-top:28px;font-weight:600}

.feature-image{margin:0;position:relative}

.feature-image:before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:2px solid var(--copper);border-radius:16px}

.feature-image img{position:relative;width:100%;border-radius:14px;box-shadow:var(--shadow)}

.rooms{background:#fff}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}

.room-card{background:var(--cream);border-radius:14px;overflow:hidden;box-shadow:0 12px 35px rgba(30,18,12,.09);transition:.25s transform}

.room-card:hover{transform:translateY(-6px)}

.room-card img{width:100%;aspect-ratio:4/3;object-fit:cover}

.room-card div{padding:25px}

.room-card h3{font-size:24px;margin-bottom:8px}

.room-card p{color:var(--muted)}

.room-card span{font-size:12px;font-weight:700;color:var(--wine);text-transform:uppercase}

.services{background:linear-gradient(135deg,var(--wine-dark),#651b12);color:#fff}

.light .eyebrow{color:var(--sand)}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

.service-grid article{padding:28px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);border-radius:12px}

.service-grid article>span{font-size:30px}

.service-grid h3{margin:14px 0 8px}

.service-grid p{margin:0;color:rgba(255,255,255,.72)}

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:14px}

.gallery-item{border:0;padding:0;overflow:hidden;border-radius:12px;cursor:zoom-in;background:#ddd}

.gallery-item.wide{grid-column:span 2;grid-row:span 2}

.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s}

.gallery-item:hover img{transform:scale(1.04)}

.booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;background:#eadcc7}

.booking-copy h2{font-size:clamp(38px,5vw,58px)}

.contact-lines{display:grid;gap:10px;margin-top:30px}

.contact-lines a{font-weight:700;color:var(--wine);text-decoration:none}

.booking-form{padding:34px;background:#fff;border-radius:16px;box-shadow:var(--shadow)}

.booking-form label{display:grid;gap:7px;margin-bottom:15px;font-size:13px;font-weight:700}

.booking-form input,.booking-form textarea{width:100%;border:1px solid #d8cdbc;border-radius:7px;padding:12px;background:#fff}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.booking-form button{width:100%}

.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:0;padding-top:0;padding-bottom:0;background:#fff}

.contact-card{padding:80px clamp(24px,6vw,90px)}

.contact-card h2{font-size:44px}

.contact-card address{font-style:normal;font-size:18px}

.contact-card p a{text-decoration:none;color:var(--wine);font-weight:700}



.whatsapp{position:fixed;right:22px;bottom:22px;z-index:45;padding:13px 18px;background:#1f9d55;color:#fff;border-radius:999px;text-decoration:none;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.2)}

dialog.lightbox{width:min(1000px,90vw);border:0;padding:0;background:transparent}

dialog::backdrop{background:rgba(0,0,0,.84)}

dialog img{width:100%;max-height:85vh;object-fit:contain}

dialog button{position:absolute;right:8px;top:8px;width:42px;height:42px;border:0;border-radius:50%;font-size:28px;cursor:pointer}



/* TARIFARIO Y MODAL */

.nav-rate-link{border:0;padding:0;background:transparent;color:#fff;font-size:13px;font-weight:600;cursor:pointer}

.nav-rate-link:hover{color:var(--sand)}

.rates-button{margin-top:12px;background:transparent;color:var(--wine);border:1px solid var(--wine);box-shadow:none}

.rates-button:hover{background:var(--wine);color:#fff}

dialog.rates-modal{width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:0;border-radius:18px;background:transparent;overflow:visible}

dialog.rates-modal::backdrop{background:rgba(28,11,7,.76);backdrop-filter:blur(4px)}

.rates-panel{position:relative;max-height:calc(100vh - 28px);overflow:auto;padding:38px;background:linear-gradient(145deg,#fff 0%,#f8efe2 100%);border:1px solid rgba(122,57,31,.2);border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.35)}

.rates-panel h2{font-size:clamp(30px,5vw,48px);margin-bottom:10px;color:var(--wine-dark)}

.rates-intro{max-width:620px;margin:0 0 24px;color:var(--muted)}

.rates-close{position:absolute;right:15px;top:15px;width:42px;height:42px;border:0;border-radius:50%;background:var(--wine-dark);color:#fff;font-size:27px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.18)}

.rates-table-wrap{overflow-x-auto;border-radius:12px;border:1px solid #dbc9b2;background:#fff}

.rates-table{width:100%;border-collapse:collapse;min-width:440px}

.rates-table th,.rates-table td{padding:15px 18px;text-align:left;border-bottom:1px solid #eadfce}

.rates-table th{background:var(--wine-dark);color:#fff;font-family:Cinzel,serif;font-size:14px;letter-spacing:.04em}

.rates-table td:last-child{font-weight:800;color:var(--wine)}

.rates-table tr:last-child td{border-bottom:0}

.rates-table .rate-extra td{background:#f5ead9}

.rates-note{margin:18px 0 0;padding:13px 15px;border-left:4px solid var(--copper);background:rgba(182,106,55,.09);font-size:12px;color:#5f5149}

.rates-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}



/* ============================================================

   PIE DE PÁGINA ANCESTRAL MOLLE-DIAGUITA

   ============================================================ */

.main-footer {

  background: linear-gradient(180deg, #24110d 0%, #1a0a09 100%) !important;

  color: var(--sand, #ead9bc) !important;

  padding: 0 0 40px 0 !important;

  margin-top: 0 !important;

  width: 100% !important;

  display: block !important;

  border-top: 3px solid var(--clay, #a84a27) !important;

  box-shadow: inset 0 10px 25px rgba(0,0,0,0.5) !important;

}



.footer-pattern {

  width: 100% !important;

  height: 28px !important;

  overflow: hidden !important;

  background: rgba(168, 74, 39, 0.22) !important;

  border-bottom: 1px solid rgba(234, 217, 188, 0.2) !important;

  margin-bottom: 35px !important;

}



.footer-pattern svg {

  width: 100% !important;

  height: 28px !important;

  display: block !important;

}



.footer-container {

  max-width: 1140px !important;

  margin: 0 auto !important;

  padding: 0 24px !important;

}



.footer-grid {

  display: grid !important;

  grid-template-columns: 1.3fr 0.9fr 1.1fr !important;

  gap: 40px !important;

  align-items: start !important;

  margin-bottom: 30px !important;

}



.footer-brand-box {

  display: flex !important;

  flex-direction: column !important;

  align-items: flex-start !important;

}



.footer-logo {

  max-width: 115px !important;

  height: auto !important;

  background: #ffffff !important;

  border-radius: 10px !important;

  padding: 6px !important;

  box-shadow: 0 4px 15px rgba(0,0,0,0.5) !important;

  margin-bottom: 12px !important;

  border: 1px solid var(--copper) !important;

}



.brand-location {

  font-weight: 700 !important;

  color: #ffffff !important;

  font-size: 0.9rem !important;

  margin: 0 0 6px 0 !important;

}



.brand-desc {

  font-size: 0.82rem !important;

  color: var(--sand, #ead9bc) !important;

  opacity: 0.8 !important;

  line-height: 1.4 !important;

  font-style: italic !important;

  margin: 0 !important;

}



.footer-title {

  font-family: 'Cinzel', serif !important;

  font-size: 1.05rem !important;

  color: var(--sand, #ead9bc) !important;

  margin: 0 0 16px 0 !important;

  text-transform: uppercase !important;

  letter-spacing: 1px !important;

  border-bottom: 1px solid rgba(234, 217, 188, 0.25) !important;

  padding-bottom: 6px !important;

  display: inline-block !important;

}



.footer-nav-box ul {

  list-style: none !important;

  padding: 0 !important;

  margin: 0 !important;

}



.footer-nav-box li {

  margin-bottom: 8px !important;

}



.footer-nav-box a,

.footer-contact-box a {

  color: #ffffff !important;

  text-decoration: none !important;

  font-size: 0.88rem !important;

  opacity: 0.85 !important;

  transition: all 0.2s ease !important;

}



.footer-nav-box a:hover,

.footer-contact-box a:hover {

  color: var(--sand, #ead9bc) !important;

  opacity: 1 !important;

}



.footer-contact-box p {

  font-size: 0.88rem !important;

  margin: 0 0 10px 0 !important;

  color: var(--sand, #ead9bc) !important;

  opacity: 0.9 !important;

}



.footer-petroglyph {

  display: flex !important;

  justify-content: center !important;

  align-items: center !important;

  gap: 16px !important;

  color: var(--copper, #b66a37) !important;

  font-size: 0.75rem !important;

  opacity: 0.6 !important;

  margin: 25px 0 20px 0 !important;

  border-top: 1px dashed rgba(234, 217, 188, 0.15) !important;

  padding-top: 20px !important;

}



.footer-credits {

  text-align: center !important;

  font-size: 0.85rem !important;

  color: var(--sand, #ead9bc) !important;

  opacity: 0.85 !important;

}



.footer-credits p {

  margin: 4px 0 !important;

}



.dev-credits {

  margin-top: 6px !important;

  font-size: 0.8rem !important;

  letter-spacing: 0.5px !important;

}



.dev-credits a {

  color: #ffffff !important;

  font-weight: 700 !important;

  text-decoration: none !important;

  transition: color 0.2s ease !important;

}



.dev-credits a:hover {

  color: var(--sand, #ead9bc) !important;

  text-decoration: underline !important;

}



/* ============================================================

   RESPONSIVO MÓVIL Y MENÚ HAMBURGUESA LIMPIO

   ============================================================ */

@media(max-width: 1180px){

  .site-header{

    height: 76px; 

    padding: 0 20px !important;

  }

  

  .nav-toggle{

    display: block !important; 

    margin-left: auto !important;

    background: transparent;

    border: none;

    color: #ffffff;

    font-size: 30px;

    cursor: pointer;

  }



  .main-nav{

    display: none !important;

    position: absolute !important;

    top: 76px !important;

    left: 0 !important;

    width: 100% !important;

    flex-direction: column !important;

    align-items: stretch !important;

    padding: 20px 30px !important;

    background: #2a100a !important;

    border-bottom: 3px solid var(--clay, #a84a27) !important;

    box-shadow: 0 15px 30px rgba(0,0,0,0.6) !important;

    gap: 12px !important;

    z-index: 100 !important;

  }



  .main-nav.open{

    display: flex !important;

  }



  .main-nav a, 

  .main-nav .nav-rate-link{

    padding: 12px 15px !important;

    width: 100% !important;

    border-bottom: 1px solid rgba(255,255,255,0.08) !important;

    font-size: 15px !important;

    text-align: left !important;

  }



  .nav-cta {

    margin-top: 10px !important;

    text-align: center !important;

  }



  .hero{grid-template-columns:1fr;min-height:auto}

  .hero-emblem{display:none}

  .intro-grid,.booking,.contact{grid-template-columns:1fr}

  .card-grid,.service-grid{grid-template-columns:repeat(2,1fr)}

  .gallery-grid{grid-template-columns:repeat(2,1fr)}

  .contact{padding:0}

  .contact-card{padding:70px 24px}

  

  .brand {

    padding: 10px !important;

    margin-top: 30px !important;

  }

  .brand img {

    width: 75px !important;

    height: 75px !important;

    padding: 3px !important;

  }

}



@media(max-width: 768px){

  .footer-grid {

    grid-template-columns: 1fr !important;

    gap: 30px !important;

    text-align: center !important;

  }



  .footer-brand-box {

    align-items: center !important;

  }



  .footer-title {

    border-bottom: none !important;

  }

}



@media(max-width: 640px){

  .site-header{height:72px;padding:0 15px !important}

  .main-nav{top:72px !important}

  .hero{padding:60px 20px}

  .hero-actions{display:grid}

  .section{padding:60px 20px}

  .card-grid,.service-grid{grid-template-columns:1fr}

  .form-row{grid-template-columns:1fr}

  .booking-form{padding:20px 15px}

  .contact-card h2{font-size:32px}

  .whatsapp{right:15px;bottom:15px}

  

  .language-switcher {

    gap: 2px !important;

    padding: 2px !important;

  }

  .lang-btn {

    min-width: 28px !important;

    height: 28px !important;

    padding: 0 4px !important;

    font-size: 10px !important;

  }

}