/* =========================================================
   Vista Costa Quebrada — hoja de estilos
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Outfit:wght@300;400;500;600&display=swap');

:root{
  --verde-950:#131e17;
  --verde-900:#1a2921;
  --verde-800:#22362a;
  --verde-700:#2e4638;
  --dorado:#c6a15f;
  --dorado-suave:#dcc08a;
  --hueso:#f6f4ee;
  --hueso-2:#eeeade;
  --texto:#1c221c;
  --texto-suave:#525b51;
  --blanco:#ffffff;
  --linea:rgba(19,30,23,0.12);
  --linea-clara:rgba(255,255,255,0.18);
  --sombra:0 24px 60px rgba(19,30,23,0.16);
  --radius-btn:999px;
  --radius:2px;
  --maxw:1320px;
  --nav-h:96px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--hueso);
  color:var(--texto);
  font-family:'Outfit',sans-serif;
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}

h1,h2,h3{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  color:var(--texto);
  margin:0 0 .5em;
  letter-spacing:0.01em;
}

h2{font-size:clamp(2.1rem,3.6vw,3rem);line-height:1.12;}
h3{font-size:1.5rem;}

p{margin:0 0 1em;color:var(--texto-suave);}

a{color:inherit;text-decoration:none;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,64px);}

section{padding:clamp(72px,10vw,140px) 0;}

.section-head{max-width:640px;margin:0 0 56px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head p{font-size:1.08rem;}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 34px;
  border-radius:var(--radius-btn);
  font-family:'Outfit',sans-serif;
  font-size:0.92rem;
  letter-spacing:0.03em;
  font-weight:500;
  white-space:nowrap;
  cursor:pointer;
  border:1px solid transparent;
  transition:transform .35s cubic-bezier(.16,1,.3,1), background-color .3s, color .3s, border-color .3s, box-shadow .3s;
}
.btn:active{transform:scale(0.97);}
.btn--primary{background:var(--dorado);color:var(--verde-950);}
.btn--primary:hover{background:var(--dorado-suave);box-shadow:0 10px 28px rgba(198,161,95,0.35);}
.btn--ghost{background:transparent;color:var(--blanco);border-color:var(--linea-clara);}
.btn--ghost:hover{border-color:var(--blanco);}
.btn--dark{background:var(--verde-900);color:var(--hueso);}
.btn--dark:hover{background:var(--verde-800);}
.btn--block{width:100%;}
.btn:disabled{opacity:0.55;cursor:not-allowed;transform:none;}

/* ---------- Navegación ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  height:var(--nav-h);
  display:flex;align-items:center;
  transition:background-color .4s ease, box-shadow .4s ease, height .3s ease;
}
.nav__inner{
  width:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 clamp(20px,5vw,64px);
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
}
.nav__brand{display:flex;align-items:center;gap:12px;min-width:0;}
.nav__brand img{height:78px;width:auto;flex-shrink:0;}
.nav__brand span{
  font-family:'Cormorant Garamond',serif;
  font-size:1.28rem;color:var(--blanco);letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav.is-solid .nav__brand span{color:var(--texto);}
.nav__links{display:flex;align-items:center;gap:34px;list-style:none;margin:0;padding:0;}
.nav__links a{
  font-size:0.86rem;color:rgba(255,255,255,0.88);letter-spacing:.01em;
  position:relative;padding:6px 0;transition:color .3s;
}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--dorado);transition:width .35s cubic-bezier(.16,1,.3,1);
}
.nav__links a:hover::after,.nav__links a:focus-visible::after{width:100%;}
.nav.is-solid .nav__links a{color:var(--texto);}
.nav__right{display:flex;align-items:center;gap:16px;}

.lang-switch{display:flex;align-items:center;gap:6px;}
.lang-btn{
  padding:3px;background:transparent;border:1px solid transparent;border-radius:4px;
  cursor:pointer;line-height:0;opacity:0.5;transition:opacity .3s, border-color .3s;
}
.lang-btn:hover{opacity:0.85;}
.lang-btn.is-active{opacity:1;border-color:var(--dorado);}
.flag{width:23px;height:16px;display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(19,30,23,0.18);}
.nav.is-solid .lang-btn{opacity:0.6;}
.nav.is-solid .lang-btn.is-active{opacity:1;}

.nav__mobile .lang-switch{gap:10px;margin-bottom:8px;}
.nav__mobile .lang-btn{padding:6px;}
.nav__mobile .flag{width:30px;height:21px;}
.nav__mobile-lang small{display:block;font-size:0.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--texto-suave);margin-bottom:10px;}
.nav__cta{padding:11px 26px;font-size:0.84rem;}
.nav__burger{
  display:none;background:none;border:none;cursor:pointer;
  width:40px;height:40px;position:relative;
}
.nav__burger span{
  position:absolute;left:8px;right:8px;height:1px;background:var(--blanco);
  transition:transform .3s, opacity .3s, background-color .3s;
}
.nav.is-solid .nav__burger span{background:var(--texto);}
.nav__burger span:nth-child(1){top:15px;}
.nav__burger span:nth-child(2){top:20px;}
.nav__burger span:nth-child(3){top:25px;}
.nav.is-open .nav__burger span:nth-child(1){transform:translateY(5px) rotate(45deg);}
.nav.is-open .nav__burger span:nth-child(2){opacity:0;}
.nav.is-open .nav__burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}

.nav:not(.is-solid){background:linear-gradient(to bottom, rgba(19,30,23,0.55), transparent);}
.nav.is-solid{background:rgba(246,244,238,0.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--linea);}

.nav__mobile{
  position:fixed;inset:var(--nav-h) 0 0 0;background:var(--hueso);
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
  z-index:190;padding:32px clamp(20px,5vw,64px);
}
.nav.is-open .nav__mobile{opacity:1;transform:translateY(0);pointer-events:auto;}
.nav__mobile ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.nav__mobile a{display:block;padding:16px 0;font-size:1.4rem;font-family:'Cormorant Garamond',serif;border-bottom:1px solid var(--linea);color:var(--texto);}
.nav__mobile .btn{margin-top:28px;}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100dvh;display:flex;align-items:flex-end;
  overflow:hidden;padding:0;
}
.hero__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 62%;
}
.hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(15,23,17,0.55) 0%, rgba(15,23,17,0.18) 38%, rgba(12,19,14,0.35) 70%, rgba(10,16,12,0.82) 100%);
}
.hero__content{
  position:relative;z-index:2;width:100%;
  max-width:var(--maxw);margin:0 auto;
  padding:0 clamp(20px,5vw,64px) clamp(64px,9vw,108px);
  padding-top:calc(var(--nav-h) + 24px);
}
.hero h1{
  color:var(--blanco);font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.04;
  max-width:14ch;margin-bottom:.32em;
  opacity:0;animation:fade-up .9s cubic-bezier(.16,1,.3,1) .1s forwards;
}
.hero__sub{
  color:rgba(246,244,238,0.88);font-size:1.14rem;max-width:46ch;margin-bottom:2em;
  opacity:0;animation:fade-up .9s cubic-bezier(.16,1,.3,1) .24s forwards;
}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fade-up .9s cubic-bezier(.16,1,.3,1) .38s forwards;}
.hero__badges{
  position:absolute;top:calc(var(--nav-h) + 28px);right:clamp(20px,5vw,64px);z-index:2;
  display:flex;flex-direction:column;align-items:flex-end;gap:10px;
}
.hero__rating{
  display:flex;align-items:center;gap:8px;color:var(--blanco);font-size:0.86rem;
  background:rgba(19,30,23,0.38);border:1px solid var(--linea-clara);
  padding:10px 18px;border-radius:var(--radius-btn);backdrop-filter:blur(6px);
  opacity:0;animation:fade-up .9s cubic-bezier(.16,1,.3,1) .5s forwards;
}
.hero__rating--airbnb{animation-delay:.62s;}
.hero__stars{color:var(--dorado);letter-spacing:1px;}
.hero__laurel{font-size:1rem;color:var(--dorado);}

@keyframes fade-up{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);}
.reveal-stagger.is-visible > *{opacity:1;transform:translateY(0);}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.02s;}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.16s;}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.23s;}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.30s;}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.37s;}
.reveal-stagger.is-visible > *:nth-child(7){transition-delay:.44s;}
.reveal-stagger.is-visible > *:nth-child(8){transition-delay:.51s;}

/* ---------- Intro (split) ---------- */
.intro{background:var(--hueso);}
.intro .container{
  display:grid;grid-template-columns:1fr 0.92fr;gap:clamp(40px,6vw,96px);align-items:center;
}
.intro__eyebrow{display:none;}
.intro__text p{font-size:1.06rem;}
.intro__facts{
  list-style:none;margin:32px 0 0;padding:24px 0 0;border-top:1px solid var(--linea);
  display:grid;grid-template-columns:repeat(2,1fr);gap:18px 24px;
}
.intro__facts li{display:flex;align-items:center;gap:10px;font-size:0.96rem;color:var(--texto);}
.intro__facts i{color:var(--dorado);font-size:1.2rem;}
.intro__image{position:relative;aspect-ratio:4/5;overflow:hidden;box-shadow:var(--sombra);}
.intro__image img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1);}
.intro__image:hover img{transform:scale(1.05);}

/* ---------- Espacios (bento) ---------- */
.rooms{background:var(--verde-950);color:var(--hueso);}
.rooms .section-head h2{color:var(--hueso);}
.rooms .section-head p{color:rgba(246,244,238,0.7);}
.rooms__grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px;
}
.room{
  position:relative;background-size:cover;background-position:center;overflow:hidden;
  grid-column:span 2;grid-row:span 1;
}
.room--large{grid-column:span 2;grid-row:span 2;}
.room::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(19,30,23,0) 40%, rgba(12,18,14,0.86) 100%);
  transition:opacity .4s;
}
.room::after{
  content:"";position:absolute;inset:0;background:rgba(19,30,23,0.06);
  opacity:0;transition:opacity .4s;
}
.room:hover::after{opacity:1;}
.room img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1);}
.room:hover img{transform:scale(1.06);}
.room__label{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:1;
}
.room__label strong{
  display:block;font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--blanco);font-weight:500;
}
.room__label span{display:block;font-size:0.82rem;color:rgba(246,244,238,0.78);margin-top:2px;}

@media (max-width:900px){
  .rooms__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}
  .room{grid-column:span 1;}
  .room--large{grid-column:span 2;grid-row:span 1;}
}

/* ---------- Galeria (masonry) ---------- */
.gallery{background:var(--hueso);}
.gallery__grid{
  columns:4 260px;column-gap:14px;
}
.gallery__item{
  break-inside:avoid;margin-bottom:14px;position:relative;overflow:hidden;cursor:zoom-in;
  border:none;padding:0;background:none;display:block;width:100%;
}
.gallery__item img{width:100%;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1), filter .4s;}
.gallery__item:hover img{transform:scale(1.045);}
.gallery__item::after{
  content:"\2795";position:absolute;top:14px;right:14px;width:34px;height:34px;
  border-radius:50%;background:rgba(19,30,23,0.55);color:var(--blanco);
  display:flex;align-items:center;justify-content:center;font-size:0.8rem;
  opacity:0;transition:opacity .3s;
}
.gallery__item:hover::after{opacity:1;}

/* ---------- Comodidades ---------- */
.amenities{background:var(--hueso-2);}
.amenities__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--linea);border:1px solid var(--linea);
}
.amenity{
  background:var(--hueso-2);padding:28px 26px;display:flex;align-items:center;gap:16px;
  transition:background-color .3s;
}
.amenity:hover{background:var(--hueso);}
.amenity i{font-size:1.5rem;color:var(--dorado);flex-shrink:0;}
.amenity span{font-size:0.98rem;color:var(--texto);}

@media (max-width:820px){
  .amenities__list{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .amenities__list{grid-template-columns:1fr;}
}

/* ---------- Reseñas ---------- */
.reviews{background:var(--verde-900);color:var(--hueso);}
.reviews .container{
  display:grid;grid-template-columns:0.85fr 1fr;gap:clamp(40px,6vw,90px);align-items:start;
}
.reviews__score{margin-bottom:8px;}
.reviews__badge{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;
  padding:8px 16px;border:1px solid rgba(198,161,95,0.4);border-radius:var(--radius-btn);
  font-size:0.82rem;color:var(--dorado-suave);letter-spacing:.01em;
}
.reviews__badge i{color:var(--dorado);font-size:1rem;}
.reviews__number{font-family:'Cormorant Garamond',serif;font-size:5rem;line-height:1;color:var(--blanco);display:block;}
.reviews__stars{color:var(--dorado);font-size:1.3rem;letter-spacing:2px;display:block;margin-top:6px;}
.reviews__count{
  display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:0.92rem;
  color:rgba(246,244,238,0.72);border-bottom:1px solid transparent;transition:color .3s,border-color .3s;
}
.reviews__count i{font-size:0.9rem;}
.reviews__count:hover{color:var(--dorado-suave);border-color:var(--dorado-suave);}
.reviews__quote{
  margin:32px 0 0;padding:24px 0 0;border-top:1px solid rgba(246,244,238,0.16);
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.4rem;line-height:1.45;color:var(--hueso);
}
.reviews__quote cite{display:block;margin-top:14px;font-family:'Outfit',sans-serif;font-style:normal;font-size:0.86rem;color:rgba(246,244,238,0.66);}
.reviews__bars{display:flex;flex-direction:column;gap:16px;}
.bar-row{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:14px;font-size:0.9rem;}
.bar-row span:last-child{text-align:right;color:var(--dorado-suave);}
.bar-track{height:2px;background:rgba(246,244,238,0.16);position:relative;}
.bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--dorado);width:0;transition:width 1s cubic-bezier(.16,1,.3,1);}
.reviews__bars.is-visible .bar-fill{width:var(--w);}

@media (max-width:860px){
  .reviews .container{grid-template-columns:1fr;}
}

/* ---------- Ubicacion ---------- */
.location{background:var(--hueso);}
.location .container{
  display:grid;grid-template-columns:0.95fr 1.1fr;gap:clamp(40px,6vw,90px);align-items:center;
}
.location__text ul{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.location__text li{display:flex;gap:12px;font-size:0.98rem;color:var(--texto);align-items:flex-start;}
.location__text i{color:var(--dorado);font-size:1.15rem;margin-top:2px;}
.location__map{position:relative;aspect-ratio:4/5;overflow:hidden;box-shadow:var(--sombra);border:1px solid var(--linea);}
.location__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(0.25) contrast(1.05);}

@media (max-width:900px){
  .location .container{grid-template-columns:1fr;}
}

/* ---------- Reservas ---------- */
.booking{background:var(--verde-950);color:var(--hueso);}
.booking .section-head h2{color:var(--hueso);}
.booking .section-head p{color:rgba(246,244,238,0.72);}
.booking__panel{
  display:grid;grid-template-columns:1.35fr 1fr;gap:0;
  background:var(--verde-900);border:1px solid rgba(246,244,238,0.12);
}
.booking__calendar{padding:clamp(24px,3vw,44px);border-right:1px solid rgba(246,244,238,0.12);}
.calendar__legend{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:26px;font-size:0.84rem;color:rgba(246,244,238,0.78);}
.calendar__legend span{display:inline-flex;align-items:center;gap:8px;}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.legend-dot.baja{background:#7f9284;}
.legend-dot.media{background:var(--dorado-suave);}
.legend-dot.alta{background:var(--dorado);}

.calendar__controls{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px;}
.calendar__months{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
@media (max-width:760px){.calendar__months{grid-template-columns:1fr;}}

.calendar__month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.calendar__month-head h4{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:500;margin:0;color:var(--hueso);text-transform:capitalize;}
.calendar__nav-btn{
  background:none;border:1px solid rgba(246,244,238,0.24);color:var(--hueso);
  width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:0.9rem;
  display:flex;align-items:center;justify-content:center;transition:border-color .3s,background-color .3s;
}
.calendar__nav-btn:hover{border-color:var(--dorado);background:rgba(198,161,95,0.1);}
.calendar__nav-btn:disabled{opacity:0.25;cursor:not-allowed;}
.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px;}
.calendar__weekdays span{text-align:center;font-size:0.7rem;letter-spacing:.05em;color:rgba(246,244,238,0.5);text-transform:uppercase;}
.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.calendar__day{
  position:relative;aspect-ratio:1;border:none;background:rgba(246,244,238,0.05);color:var(--hueso);
  cursor:pointer;font-family:'Outfit',sans-serif;font-size:0.82rem;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  transition:background-color .25s, color .25s;
}
.calendar__day.is-empty{background:transparent;cursor:default;}
.calendar__day .p{font-size:0.56rem;opacity:0.6;}
.calendar__day.baja{background:rgba(127,146,132,0.16);}
.calendar__day.media{background:rgba(220,192,138,0.14);}
.calendar__day.alta{background:rgba(198,161,95,0.2);}
.calendar__day:hover:not(.is-empty):not(.is-disabled):not(.is-past){background:rgba(198,161,95,0.4);}
.calendar__day.is-disabled,.calendar__day.is-past{opacity:0.28;cursor:not-allowed;text-decoration:line-through;}
.calendar__day.is-selected{background:var(--dorado);color:var(--verde-950);font-weight:500;}
.calendar__day.is-selected .p{color:var(--verde-950);opacity:0.7;}
.calendar__day.is-in-range{background:rgba(198,161,95,0.55);color:var(--verde-950);}

.booking__summary{padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:22px;}
.booking__dates{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.booking__date-box{border:1px solid rgba(246,244,238,0.18);padding:14px 16px;}
.booking__date-box small{display:block;font-size:0.68rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(246,244,238,0.5);margin-bottom:4px;}
.booking__date-box strong{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:500;color:var(--hueso);}
.booking__price-lines{display:flex;flex-direction:column;gap:8px;font-size:0.9rem;color:rgba(246,244,238,0.75);border-top:1px solid rgba(246,244,238,0.14);padding-top:16px;}
.booking__price-lines .line{display:flex;justify-content:space-between;}
.booking__total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid rgba(246,244,238,0.24);padding-top:16px;}
.booking__total strong{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:500;color:var(--dorado);}

.form-grid{display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:0.78rem;letter-spacing:.03em;color:rgba(246,244,238,0.75);}
.field input,.field select,.field textarea{
  background:rgba(246,244,238,0.06);border:1px solid rgba(246,244,238,0.2);
  color:var(--hueso);padding:12px 14px;font-family:'Outfit',sans-serif;font-size:0.92rem;
  border-radius:2px;transition:border-color .3s,background-color .3s;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(246,244,238,0.38);}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--dorado);background:rgba(246,244,238,0.1);
}
.field textarea{resize:vertical;min-height:84px;}
.field small.error{color:#e0a6a6;font-size:0.76rem;display:none;}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#c97575;}
.field.has-error small.error{display:block;}
.hp-field{position:absolute;left:-9999px;top:-9999px;}

.form-status{font-size:0.88rem;padding:12px 14px;border-radius:2px;display:none;}
.form-status.show{display:block;}
.form-status.ok{background:rgba(120,166,130,0.16);color:#bfe0c5;border:1px solid rgba(120,166,130,0.4);}
.form-status.err{background:rgba(201,117,117,0.14);color:#f0bcbc;border:1px solid rgba(201,117,117,0.4);}

@media (max-width:900px){
  .booking__panel{grid-template-columns:1fr;}
  .booking__calendar{border-right:none;border-bottom:1px solid rgba(246,244,238,0.12);}
  .form-row{grid-template-columns:1fr;}
  .booking__dates{grid-template-columns:1fr 1fr;}
}

/* ---------- Footer ---------- */
.footer{background:var(--verde-950);color:rgba(246,244,238,0.78);padding:64px 0 28px;}
.footer__top{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;padding-bottom:48px;
  border-bottom:1px solid rgba(246,244,238,0.12);
}
.footer__brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer__brand img{height:44px;width:auto;}
.footer__brand span{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--hueso);}
.footer__top p{max-width:34ch;font-size:0.92rem;}
.footer h5{font-size:0.78rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(246,244,238,0.5);margin:0 0 18px;font-weight:400;font-family:'Outfit',sans-serif;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.footer a{font-size:0.92rem;transition:color .3s;}
.footer a:hover{color:var(--dorado);}
.footer li a{display:inline-flex;align-items:center;gap:8px;}
.footer li a i{font-size:1.05rem;}
.footer__bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding-top:24px;font-size:0.78rem;color:rgba(246,244,238,0.45);
}

@media (max-width:820px){
  .footer__top{grid-template-columns:1fr;gap:32px;}
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:400;background:rgba(10,16,12,0.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .35s ease;
  padding:40px;
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox img{max-width:100%;max-height:86vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.lightbox__close,.lightbox__prev,.lightbox__next{
  position:absolute;background:rgba(246,244,238,0.08);border:1px solid rgba(246,244,238,0.2);
  color:var(--hueso);width:44px;height:44px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:background-color .3s;
}
.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover{background:rgba(198,161,95,0.3);}
.lightbox__close{top:28px;right:28px;}
.lightbox__prev{left:28px;top:50%;transform:translateY(-50%);}
.lightbox__next{right:28px;top:50%;transform:translateY(-50%);}
.lightbox__counter{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);color:rgba(246,244,238,0.7);font-size:0.82rem;}

@media (max-width:640px){
  .lightbox{padding:16px;}
  .lightbox__prev,.lightbox__next{width:38px;height:38px;}
  .lightbox__close{width:38px;height:38px;top:16px;right:16px;}
}

/* ---------- Responsivo global ---------- */
@media (max-width:980px){
  .nav__links{display:none;}
  .nav__burger{display:block;}
  .lang-switch--desktop{display:none;}
  .intro .container{grid-template-columns:1fr;}
  .intro__image{order:-1;aspect-ratio:16/10;}
}

@media (max-width:640px){
  .hero__badges{display:none;}
  .gallery__grid{columns:2 180px;}
  section{padding:64px 0;}
}

@media (max-width:520px){
  :root{--nav-h:82px;}
  .nav__brand span{display:none;}
  .nav__brand img{height:62px;}
}

/* ---------- Utilidades ---------- */
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
