
:root{
  --brand:#f14c4f;
  --navy:#1f3a4d;
}

/* Reset */
*{margin:0;padding:0;box-sizing:border-box}
html,body{
  min-height:100%;
  font-family:'Montserrat',sans-serif;
  color:#fff;
  overflow-x:hidden;
}
img{max-width:100%;display:block}

body{
  background:#fff;
}

body.home{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  overflow-y:auto;
}
body.home .video-bg{
  position:fixed;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  z-index:-2;
  overflow:hidden;
}
body.home .video-bg video{
  width:100%;
  height:100%;
  object-fit:cover;
}
body.home .overlay{
  position:fixed;
  inset:0;
  background:rgba(40,61,76,.85);
  z-index:-1;
}

.navbar{
  position:fixed;
  top:0;
  width:100%;
  padding:15px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background-color:var(--navy);
  z-index:100;
}
body.home .navbar{background:transparent}
.nav-logo img{height:40px}
.hamburger{
  display:none;
  font-size:26px;
  cursor:pointer;
  color:#fff;
}
.nav-links{
  list-style:none;
  display:flex;
  gap:25px;
}
.nav-links li a{
  color:#fff;
  text-decoration:none;
  font-weight:700;
  transition:color .3s;
}
.nav-links li a:hover{color:#f16567}
.phone-right a{
  font-weight:700;
  color:#fff;
  text-decoration:none;
}

.top-bar{
  position:absolute;
  top:70px;
  left:0;
  width:100%;
  padding:10px 30px;
  z-index:50;
  font-size:14px;
}
.hours ul{
  list-style:none;
  line-height:1.6;
}

.content{
  position:relative;
  z-index:2;
  min-height:100vh;
  padding-top:180px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  background:transparent;
}
body.home .content{
  flex:1 0 auto;
  min-height:auto;
  padding-bottom:40px;
}
body:not(.home) .content{
  background:#fff;
  color:#444;
}

/* Logo & Buttons */
.main-logo{
  width:1050px;
  max-width:92vw;
  margin-bottom:15px;
  opacity:0;
  animation:popInStay .5s ease-out forwards;
}
@keyframes popInStay{
  0%{opacity:0;transform:scale(.6)}
  100%{opacity:1;transform:scale(1)}
}
.tagline{
  font-size:18px;
  margin-bottom:30px;
  letter-spacing:2px;
}
.btn-con{
  display:flex;
  gap:15px;
  flex-wrap:wrap;
  justify-content:center;
}

.main-btn{
  background-color:var(--brand);
  color:#fff;
  text-decoration:none;
  padding:12px 24px;
  border-radius:50px;
  font-size:16px;
  font-weight:600;
  border:none;
  cursor:pointer;
  transition:background .3s;
}
.main-btn:hover{background-color:#d33b3f}

.content .btn-con .main-btn{
  font-size:28px;
  opacity:0;
  transform:scale(.6);
  animation:popInStay .5s ease-out forwards;
}
.content .btn-con .main-btn:nth-child(1){animation-delay:.6s}
.content .btn-con .main-btn:nth-child(2){animation-delay:.8s}
.content .btn-con .main-btn:nth-child(3){animation-delay:1s}

.address{
  margin-top:40px;
  font-size:14px;
  opacity:.85;
}
.address a{
  color:#fff;
  text-decoration:none;
  font-weight:500;
}
.address a:hover{
  text-decoration:underline;
  color:var(--brand);
}

.site-footer{
  position:relative;
  z-index:5;
  width:100%;
  margin-top:auto;
  padding:18px 20px 22px;
  text-align:center;
  font-size:13px;
  line-height:1.7;
  color:#fff;
  background:var(--navy);
}
body.home .site-footer{
  background:rgba(31,58,77,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.site-footer a{
  color:var(--brand);
  text-decoration:none;
  font-weight:700;
}
.site-footer a:hover{
  color:#ff6b6e;
  text-decoration:underline;
}

/* Coming Soon (Events Page) */
.events-page-content{
  padding-top:180px;
  text-align:center;
  color:#444;
  background:#fff;
  min-height:100vh;
}
.coming-soon{
  font-size:24px;
  font-weight:700;
  margin-top:20px;
}

.catering-hero-video{
  position:relative;
  height:auto;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.catering-hero-video video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}
.catering-hero-overlay{
  width:100%;
  padding:100px 20px 40px;
  text-align:center;
  background:rgba(31,58,77,.75);
  z-index:2;
  position:relative;
}
.catering-hero-overlay h1{
  color:#fff;
  font-size:52px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:2px;
  margin:0;
}

.carousel-overlay-section{
  width:100%;
  background:rgba(0,0,0,.6);
  padding:30px 20px;
  color:#fff;
  text-align:center;
  z-index:2;
  position:relative;
}
.carousel-overlay-section .gallery-grid{
  display:flex;
  justify-content:center;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:10px 0;
}
.carousel-overlay-section .gallery-grid img{
  width:150px;
  height:100px;
  object-fit:cover;
  border-radius:8px;
  box-shadow:0 5px 15px rgba(0,0,0,.3);
  scroll-snap-align:center;
  cursor:pointer;
  transition:transform .3s;
}
.carousel-overlay-section .gallery-grid img:hover{transform:scale(1.05)}
.carousel-caption{
  max-width:800px;
  margin:20px auto 0;
  font-size:18px;
  line-height:1.7;
  color:#f1f1f1;
}

.catering-intro,
.catering-details,
.catering-cta-bar{
  padding:60px 30px;
  background:#fff;
  color:#444;
}
.catering-intro h2{
  font-size:28px;
  margin-bottom:20px;
  color:var(--navy);
}
.catering-intro p{
  font-size:18px;
  max-width:800px;
  margin:0 auto;
  line-height:1.8;
}
.catering-details{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:40px;
  justify-content:center;
}
.details-text{
  flex:1 1 100%;
  font-size:18px;
  line-height:1.8;
  text-align:center;
  max-width:900px;
  margin:0 auto;
}
.details-img{flex:1 1 300px}
.details-img img{
  width:100%;
  border-radius:8px;
  box-shadow:0 5px 25px rgba(0,0,0,.1);
}
.catering-cta-bar{
  text-align:center;
  background:#f9f9f9;
}
.catering-cta-bar h3{
  font-size:24px;
  margin-bottom:20px;
  color:var(--navy);
}

.lightbox{
  display:none;
  position:fixed;
  z-index:1000;
  inset:0;
  width:100vw;
  height:100vh;
  background:rgba(0,0,0,.85);
  justify-content:center;
  align-items:center;
}
.lightbox img{
  max-width:90%;
  max-height:90%;
  border-radius:12px;
}

.menu-toggle{
  display:flex;
  justify-content:center;
  margin-top:40px;
  margin-bottom:30px;
}
.tab-button{
  background:none;
  border:none;
  padding:14px 24px;
  margin:0 10px;
  font-size:16px;
  font-weight:600;
  color:#333;
  border-bottom:2px solid transparent;
  cursor:pointer;
  transition:all .3s;
}
.tab-button:hover,
.tab-button.active{
  border-bottom:2px solid var(--brand);
  color:var(--brand);
}
.tab-content{
  display:none;
  animation:fadeIn .3s ease-in-out;
}
.tab-content.active{display:block}
@keyframes fadeIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
.highlight-bar{display:none}

/* Enhanced carousel style */
.carousel-overlay-section{
  background:rgba(0,0,0,.6);
  color:#fff;
  padding:40px 20px 30px;
  text-align:center;
  z-index:3;
  position:relative;
  margin-top:20px;
}
.carousel-overlay-section .gallery-grid img{
  width:180px;
  height:120px;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
  transition:transform .3s, box-shadow .3s;
}
.carousel-overlay-section .gallery-grid img:hover{
  transform:scale(1.05);
  box-shadow:0 12px 30px rgba(0,0,0,.6);
}
.carousel-caption{
  max-width:800px;
  margin:20px auto 0;
  font-size:18px;
  line-height:1.7;
  color:#f1f1f1;
}

.specials-hero .lead{
  font-size:18px;
  max-width:850px;
  margin:15px auto 0;
  line-height:1.6;
  color:#444;
  text-align:center;
}

.faq{
  background:#f9f9f9;
  padding:50px 25px;
  margin-top:50px;
  border-top:2px solid #eee;
}
.faq h2{
  text-align:center;
  font-size:28px;
  margin-bottom:30px;
  color:var(--navy);
  font-weight:700;
}
.faq h3{
  font-size:20px;
  color:var(--brand);
  margin-bottom:8px;
}
.faq p{
  font-size:16px;
  line-height:1.6;
  margin-bottom:25px;
  color:#444;
}
.faq div{
  max-width:800px;
  margin:0 auto;
}

.specials-page p a{
  color:var(--brand);
  text-decoration:none;
  font-weight:600;
}
.specials-page p a:hover{text-decoration:underline}


.happy-hour-menu{
  background:#f9f9f9;
  padding:80px 20px;
  color:var(--navy);
  text-align:left;
}
.happy-hour-menu .container{
  max-width:900px;
  margin:0 auto;
}
.happy-hour-menu h2{
  font-size:36px;
  text-align:center;
  margin-bottom:50px;
  position:relative;
}
.happy-hour-menu h2::after{
  content:"";
  display:block;
  width:60px;
  height:4px;
  background:var(--brand);
  margin:12px auto 0;
  border-radius:2px;
}
.menu-section{
  margin-bottom:35px;
  padding-bottom:15px;
  border-bottom:1px solid #ddd;
}
.menu-section h3{
  font-size:22px;
  font-weight:700;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:8px;
  color:var(--navy);
}
.menu-section p{
  font-size:16px;
  line-height:1.6;
  color:#444;
}

.events-hero{
  padding-top:180px;
  padding-bottom:60px;
  background:#fff;
  color:var(--navy);
  text-align:center;
}
.events-hero .container{
  max-width:900px;
  margin:0 auto;
  padding:0 20px;
}
.events-hero h1{
  font-size:48px;
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:700;
  margin-bottom:10px;
  color:var(--navy);
}
.events-hero .underline{
  width:80px;
  height:4px;
  background:var(--brand);
  margin:0 auto 30px;
  border-radius:2px;
}
.events-hero .lead{
  font-size:20px;
  line-height:1.8;
  margin-bottom:20px;
  color:#333;
}
.events-hero .subtext{
  font-size:18px;
  line-height:1.7;
  color:#444;
}

.happy-hour-times{
  background:var(--brand);
  color:#fff;
  font-size:16px;
  font-weight:600;
  text-align:center;
  padding:15px 10px;
  letter-spacing:.5px;
  margin-top:30px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.specials-hero{
  padding-top:180px;
  padding-bottom:60px;
  background:#fff;
  color:var(--navy);
  text-align:center;
}
.specials-hero .container{
  max-width:900px;
  margin:0 auto;
  padding:0 20px;
}
.specials-hero h1{
  font-size:48px;
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:700;
  margin-bottom:10px;
}
.specials-hero .underline{
  width:80px;
  height:4px;
  background:var(--brand);
  margin:0 auto 30px;
  border-radius:2px;
}
.specials-hero .lead{
  font-size:20px;
  line-height:1.8;
  color:#333;
}
.highlight-bar{
  background:var(--brand);
  color:#fff;
  font-size:18px;
  font-weight:600;
  text-align:center;
  padding:15px 10px;
  margin:40px 0 0;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.specials-menu{
  background:#f9f9f9;
  padding:60px 20px;
  color:var(--navy);
}
.specials-menu .container{
  max-width:900px;
  margin:0 auto;
}
.specials-menu .menu-section{
  margin-bottom:35px;
  padding-bottom:15px;
  border-bottom:1px solid #ddd;
}
.specials-menu .menu-section h3{
  font-size:22px;
  font-weight:700;
  margin-bottom:8px;
  color:var(--navy);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
}
.specials-menu .menu-section span{
  font-size:16px;
  font-weight:400;
  color:#666;
}
.specials-menu .menu-section p{
  font-size:16px;
  line-height:1.6;
  color:#444;
}

.details-gallery{
  flex:1 1 100%;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow-x:auto;
  padding:20px 0;
}
.gallery-grid{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:10px;
}
.gallery-grid img{
  width:200px;
  height:140px;
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
  cursor:pointer;
  transition:transform .3s, box-shadow .3s;
  scroll-snap-align:center;
}
.gallery-grid img:hover{
  transform:scale(1.1);
  box-shadow:0 12px 30px rgba(0,0,0,.3);
}


.nfl-card{
  width:min(680px,92vw);
  margin:6px auto 10px;
  padding:12px 14px;
  border-radius:16px;
  position:relative;
  backdrop-filter:blur(10px);
  background:linear-gradient(180deg,rgba(13,25,35,.70),rgba(13,25,35,.45));
  box-shadow:0 10px 28px rgba(0,0,0,.30);
  text-align:center;
}
.nfl-badge{
  position:absolute;
  top:-12px;
  left:16px;
  background:linear-gradient(90deg,var(--brand),#ff6b6e);
  color:#fff;
  font-weight:800;
  letter-spacing:.6px;
  padding:5px 10px;
  border-radius:999px;
  font-size:11px;
  box-shadow:0 6px 14px rgba(0,0,0,.25);
}
.nfl-title{
  font-size:clamp(18px,2.4vw,24px);
  font-weight:900;
  margin:2px 0 6px;
}
.nfl-sub{
  opacity:.95;
  font-size:clamp(12px,1.4vw,13px);
  margin-bottom:6px;
}
.nfl-deals{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:6px 0;
}
.deal{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:8px;
}
.price-chip{
  display:inline-block;
  font-weight:900;
  font-size:clamp(15px,2.2vw,20px);
  padding:3px 8px;
  border-radius:999px;
  background:#fff;
  color:#0e1c27;
  margin-bottom:4px;
}
.deal-text{
  display:block;
  font-weight:700;
  margin-bottom:2px;
  font-size:13px;
}
.deal-meta{
  display:block;
  font-size:11px;
  opacity:.85;
}
.nfl-ctas{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:6px;
}
.nfl-note{
  margin-top:6px;
  font-size:11.5px;
  opacity:.9;
}

/* Make buttons small only inside NFL card */
.nfl-card .main-btn{
  font-size:16px;
  padding:9px 16px;
  border-radius:36px;
  animation:none!important;
  transform:none!important;
  opacity:1!important;
}

@media (max-width:768px){
  .main-logo{width:200px}
  .tagline{font-size:14px}
  .btn-con{flex-direction:column;gap:10px}

  .hamburger{display:block}

  .nav-links{
    position:absolute;
    top:70px;
    right:0;
    background:var(--navy);
    flex-direction:column;
    align-items:flex-start;
    width:100%;
    padding:20px;
    display:none;
  }
  .nav-links.active{display:flex}
  .nav-links li{margin-bottom:10px}
  .phone-right{display:none}

  .top-bar{top:120px}
  .catering-hero-overlay h1{
    font-size:32px;
    padding:0 20px;
  }

  .site-footer{
    font-size:12px;
    padding:16px 16px 20px;
  }

  .happy-hour-menu h2{font-size:28px}
  .menu-section h3{font-size:18px}
  .menu-section p{font-size:15px}

  .specials-hero h1{font-size:32px}
  .specials-hero .lead{font-size:16px}
  .highlight-bar{
    font-size:15px;
    padding:12px;
  }
  .specials-menu .menu-section h3{
    font-size:18px;
    flex-direction:column;
    align-items:flex-start;
  }
  .specials-menu .menu-section p{font-size:15px}

  .nfl-card{padding:10px 12px}
  .nfl-deals{grid-template-columns:1fr}
  .nfl-ctas{
    flex-direction:column;
    gap:6px;
  }
  .nfl-badge{
    left:12px;
    font-size:10px;
    padding:4px 9px;
  }
}

.catering-form-section{
  background:linear-gradient(180deg,#ffffff 0%,#f7f7f7 100%);
  padding:70px 20px;
}

.catering-form-wrap{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}

.catering-form-intro{
  color:#1f3a4d;
}

.catering-form-intro h2{
  font-size:38px;
  line-height:1.15;
  margin-bottom:18px;
  color:#1f3a4d;
}

.catering-form-intro p{
  font-size:18px;
  line-height:1.8;
  color:#444;
  max-width:560px;
}

.catering-form{
  background:#ffffff;
  border:1px solid rgba(31,58,77,.10);
  border-radius:16px;
  box-shadow:0 14px 40px rgba(0,0,0,.08);
  padding:28px;
}

.catering-form label{
  display:block;
  margin-bottom:6px;
  font-weight:700;
  color:#1f3a4d;
}

.catering-form input,
.catering-form textarea,
.catering-form select{
  width:100%;
  padding:12px 14px;
  margin-bottom:16px;
  border:1px solid #d4d7dc;
  border-radius:10px;
  font-family:'Montserrat',sans-serif;
  font-size:15px;
  color:#333;
  background:#fff;
}

.catering-form input:focus,
.catering-form textarea:focus,
.catering-form select:focus{
  outline:none;
  border-color:#f14c4f;
  box-shadow:0 0 0 3px rgba(241,76,79,.12);
}

.catering-form textarea{
  min-height:140px;
  resize:vertical;
}

.catering-form button{
  width:100%;
  border:none;
  border-radius:999px;
  background:#f14c4f;
  color:#fff;
  font-size:16px;
  font-weight:700;
  padding:14px 18px;
  cursor:pointer;
  transition:background .3s ease, transform .2s ease;
}

.catering-form button:hover{
  background:#d33b3f;
  transform:translateY(-1px);
}

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

  .catering-form-intro h2{
    font-size:30px;
  }

  .catering-form-intro p{
    font-size:16px;
  }
}

.events-page-links{
  text-align:center;
  margin:20px 0 40px;
  color:#444;
  font-size:16px;
  line-height:1.7;
  padding:0 20px;
}

.events-page-links a{
  color:#f14c4f;
  text-decoration:none;
  font-weight:600;
}

.events-page-links a:hover{
  text-decoration:underline;
}

