*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  font-family:'Montserrat', sans-serif;
  background:url('background.jpg') center center/cover no-repeat;
  min-height:100vh;
  color:white;
overflow-y:auto;
overflow-x:hidden;
  position:relative;
}

.overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.72);
}

.hero{
  position:relative;
  z-index:2;
  min-height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:20px;
}

.content{
  max-width:500px;
  animation:fade 1s ease;
}

h1{
  font-size:72px;
  letter-spacing:14px;
  font-weight:700;
  margin-bottom:10px;
}

h2{
  font-size:22px;
  letter-spacing:12px;
  font-weight:300;
  margin-bottom:40px;
}

.info{
  font-size:15px;
  line-height:1.8;
  color:rgba(255,255,255,0.8);
  margin-bottom:18px;
}

.hours{
  font-size:13px;
  letter-spacing:2px;
  color:rgba(255,255,255,0.6);
  margin-bottom:45px;
}

.buttons{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.btn{
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.05);
  color:white;
  padding:18px;
  text-decoration:none;
  letter-spacing:3px;
  font-size:11px;
  font-weight:500;
  transition:0.4s ease;
  cursor:pointer;
  backdrop-filter:blur(10px);
}

.btn:hover{
  background:white;
  color:black;
  transform:translateY(-2px);
}

.reservation-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.88);
  backdrop-filter:blur(12px);
  z-index:999;
  display:none;
  justify-content:center;
  align-items:center;
  padding:20px;
overflow-y:auto;
}

.reservation-container{
  width:100%;
  max-width:420px;
  position:relative;
}

.close-btn,
.back-btn{
  background:none;
  border:none;
  color:white;
  font-size:24px;
  cursor:pointer;
  margin-bottom:25px;
}

.step{
  display:none;
  animation:slide 0.4s ease;
}

.step.active{
  display:block;
}

h3{
  font-size:38px;
  line-height:1.2;
  margin-bottom:35px;
  font-weight:600;
}

.grid-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.option-btn{
  min-height:110px;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.05);
  color:white;
  font-size:30px;
  font-weight:600;
  cursor:pointer;
  transition:0.35s ease;
  backdrop-filter:blur(8px);
}

.option-btn:hover,
.option-btn.active-option{
  background:white;
  color:black;
}

.large-btn{
  grid-column:span 2;
}

input{
  width:100%;
  padding:18px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  color:white;
  font-size:16px;
  outline:none;
  margin-top:20px;
}

input::placeholder{
  color:rgba(255,255,255,0.5);
}

input[type="date"]{
  cursor:pointer;
}

input[type="date"]::-webkit-calendar-picker-indicator{
  filter:invert(1);
  cursor:pointer;
}

.confirm-btn{
  width:100%;
  padding:18px;
  border:none;
  background:white;
  color:black;
  letter-spacing:3px;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:0.3s ease;
  margin-top:10px;
}

.confirm-btn:hover{
  transform:translateY(-2px);
}

@keyframes fade{

  from{
    opacity:0;
  }

  to{
    opacity:1;
  }

}

@keyframes slide{

  from{
    opacity:0;
    transform:translateX(30px);
  }

  to{
    opacity:1;
    transform:translateX(0);
  }

}

@media(max-width:768px){

  h1{
    font-size:48px;
    letter-spacing:10px;
  }

  h2{
    font-size:18px;
    letter-spacing:8px;
  }

  h3{
    font-size:30px;
  }

}