:root{
  --gold:#CAAC47;
  --green:#246332;
  --blue:#325C80;
  --black:#1B1B1B;
  --off:#F9F9F9;
  --cream:#EFE8D8;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--off);
  color:var(--black);
  font-family:'Montserrat', Arial, sans-serif;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.topbar{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  width:min(1180px,92%);
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 18px;
  border-radius:999px;
  background:rgba(27,27,27,.72);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.12);
}
.brand img{width:78px}
nav{display:flex;gap:24px;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.nav-cta{
  background:var(--gold);
  color:#111;
  padding:12px 18px;
  border-radius:999px;
  font-weight:800;
}

.hero{
  position:relative;
  min-height:100vh;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#fff;
  text-align:center;
}
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,.45), rgba(0,0,0,.80));
}
.hero-content{
  position:relative;
  z-index:2;
  width:min(900px,90%);
  padding-top:90px;
  padding-bottom:90px;
}
.hero-logo{
  width:min(330px,70vw);
  margin:0 auto 18px;
}
.eyebrow{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:13px;
  font-weight:800;
}
.eyebrow.dark{color:var(--green)}
.hero h1{
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(54px,9vw,126px);
  line-height:1.05;
  letter-spacing:.01em;
  margin:20px 0;
  text-transform:uppercase;
}
.hero-text{
  max-width:680px;
  margin:0 auto 32px;
  font-size:clamp(17px,2vw,24px);
  line-height:1.5;
  opacity:.9;
}
.hero-actions,.menu-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 28px;
  border-radius:999px;
  font-weight:900;
  transition:.25s ease;
}
.btn.primary{background:var(--gold);color:#111}
.btn.secondary{border:1px solid rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.08)}
.btn:hover{transform:translateY(-2px)}
.scroll{
  position:absolute;
  bottom:26px;
  z-index:2;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:11px;
  opacity:.7;
}

.intro{
  display:grid;
  grid-template-columns:1.5fr .7fr;
  gap:40px;
  padding:120px 8%;
  background:var(--off);
}
.intro h2,.section-head h2,.instagram h2{
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(42px,6vw,82px);
  line-height:.95;
  text-transform:uppercase;
  margin:12px 0 22px;
}
.intro p{
  font-size:18px;
  line-height:1.8;
  max-width:850px;
  color:rgba(27,27,27,.72);
  margin-bottom:16px;
}
.intro-card{
  align-self:stretch;
  border-radius:40px;
  background:var(--green);
  color:white;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:48px;
  min-height:320px;
  box-shadow:0 30px 80px rgba(0,0,0,.16);
}
.intro-card span{
  font-family:'Anton';
  font-size:150px;
  color:var(--gold);
  line-height:.8;
  margin-bottom:16px;
}
.intro-card p{color:#fff;font-size:24px;font-weight:800;line-height:1.2}

.highlights{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--black);
}
.highlight{
  background:var(--green);
  color:#fff;
  padding:60px 8vw;
}
.highlight:nth-child(2){background:var(--blue)}
.highlight:nth-child(3){background:var(--black)}
.highlight h3{
  font-family:'Anton';
  font-size:44px;
  color:var(--gold);
  margin-bottom:14px;
}
.highlight p{line-height:1.7;color:rgba(255,255,255,.78)}

.menu-section{
  padding:120px 8%;
  background:var(--cream);
  position:relative;
}
.section-head{
  text-align:center;
  max-width:880px;
  margin:0 auto 52px;
}
.section-head p{
  font-size:18px;
  line-height:1.6;
  color:rgba(27,27,27,.72);
}
.section-head.light p{color:rgba(255,255,255,.78)}
.section-head.light h2{color:#fff}

.menu-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  max-width:1180px;
  margin:0 auto 36px;
}
.menu-card{
  min-height:280px;
  background:white;
  border-radius:32px;
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  box-shadow:0 20px 50px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.05);
}
.menu-card.featured{
  background:var(--green);
  color:#fff;
}
.menu-card span{
  color:var(--gold);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}
.menu-card h3{
  font-family:'Anton';
  font-size:34px;
  line-height:1;
  margin:18px 0 12px;
}
.menu-card p{line-height:1.6;color:rgba(27,27,27,.68)}
.menu-card.featured p{color:rgba(255,255,255,.78)}
.menu-card strong{
  font-size:24px;
  color:var(--green);
}
.menu-card.featured strong{color:var(--gold)}

.units{
  padding:120px 8%;
  background:var(--black);
}
.unit-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  max-width:1220px;
  margin:0 auto;
}
.unit-card{
  background:#fff;
  border-radius:34px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:360px;
}
.unit-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.unit-card div{padding:34px;display:flex;flex-direction:column;justify-content:center}
.unit-label{
  color:var(--gold);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:12px;
  margin-bottom:14px;
}
.unit-card h3{
  font-family:'Anton';
  font-size:48px;
  margin-bottom:18px;
}
.unit-card p{line-height:1.6;color:rgba(27,27,27,.72)}
.unit-card a{
  margin-top:20px;
  color:var(--green);
  font-weight:900;
  font-size:20px;
}

.reviews{
  padding:120px 8%;
  background:var(--off);
}
.review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  max-width:1100px;
  margin:0 auto;
}
.review-card{
  background:white;
  border-radius:30px;
  padding:34px;
  box-shadow:0 20px 55px rgba(0,0,0,.08);
}
.stars{color:var(--gold);font-size:24px;margin-bottom:18px}
.review-card p{line-height:1.7;font-size:18px;margin-bottom:22px}
.review-card strong{color:var(--green)}

.instagram{
  padding:100px 8%;
  background:linear-gradient(135deg,var(--green),#12371f);
  color:white;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px;
}
.instagram h2{max-width:780px}
.instagram-link{
  background:var(--gold);
  color:#111;
  padding:20px 30px;
  border-radius:999px;
  font-weight:900;
  font-size:22px;
  white-space:nowrap;
}

footer{
  padding:70px 8%;
  background:#050505;
  color:white;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
footer img{width:140px}
footer p{opacity:.6}

@media(max-width:900px){
  nav{display:none}
  .topbar{top:10px;width:94%}
  .intro,.unit-card{grid-template-columns:1fr}
  .highlights,.menu-grid,.review-grid,.unit-grid{grid-template-columns:1fr}
  .instagram,footer{flex-direction:column;align-items:flex-start}
  .hero h1{font-size:58px}
  .unit-card img{height:260px}
}


/* Reservas */
.reservation-section{
  padding:120px 8%;
  background:#F9F9F9;
}

.reservation-form{
  max-width:1050px;
  margin:0 auto;
  background:#ffffff;
  border-radius:36px;
  padding:38px;
  box-shadow:0 24px 70px rgba(0,0,0,.10);
  border:1px solid rgba(0,0,0,.06);
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
}

.reservation-form label{
  display:flex;
  flex-direction:column;
  gap:9px;
  font-weight:800;
  color:#1B1B1B;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.reservation-form input,
.reservation-form select,
.reservation-form textarea{
  width:100%;
  border:1px solid rgba(27,27,27,.14);
  background:#F9F9F9;
  color:#1B1B1B;
  border-radius:18px;
  padding:16px 18px;
  font:inherit;
  outline:none;
  text-transform:none;
  letter-spacing:0;
  font-weight:500;
}

.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus{
  border-color:#CAAC47;
  box-shadow:0 0 0 4px rgba(202,172,71,.16);
}

.reservation-form .full{
  grid-column:1 / -1;
}

.reservation-btn{
  width:100%;
  margin-top:26px;
  border:0;
  cursor:pointer;
  font-family:'Montserrat', Arial, sans-serif;
  font-size:16px;
}

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

  .reservation-form{
    padding:24px;
    border-radius:26px;
  }
}


.hero-video-wrapper{
position:absolute;
inset:0;
}

.hero-video{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
opacity:0;
transition:opacity 1.2s ease;
}

.active-video{
opacity:1;
}

.hero h1{
font-size:clamp(40px,6.5vw,88px)!important;
line-height:1.05!important;
max-width:880px;
margin:20px auto;
}

.maps-buttons{
display:flex;
gap:10px;
margin-top:18px;
flex-wrap:wrap;
}

.maps-buttons a{
background:#CAAC47;
color:#111;
padding:10px 16px;
border-radius:999px;
font-weight:800;
font-size:14px;
}

@media(max-width:768px){

.hero h1{
font-size:38px!important;
line-height:1.08!important;
}

.hero-text{
font-size:16px!important;
max-width:90%;
}

.hero-logo{
width:190px!important;
}

}
