/* --------------------------------------------------
   RESET & BASE
-------------------------------------------------- */
* { margin: 0; padding: 0; box-sizing: border-box; }

/* Body uses Poppins for clean reading */
body {
  font-family: 'Poppins', sans-serif;
  line-height: 1.5;
  color: #333;
}

/* Home key frames start */

/* ─── HERO ANIMATIONS (HOME) ──────────────────────────────────── */
/* Title: drop in from above */
.home-hero-title {
  opacity: 0;
  transform: translateY(-50px);
  animation: homeTitleIn 1s ease-out forwards;
  animation-delay: 0.3s;
}
@keyframes homeTitleIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Paragraph: slide in from the right */
.home-hero-paragraph {
  opacity: 0;
  transform: translateX(50px);
  animation: homeParaIn 1s ease-out forwards;
  animation-delay: 0.6s;
}
@keyframes homeParaIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Button: rise up from below */
.home-hero-button {
  opacity: 0;
  transform: translateY(50px);
  animation: homeBtnIn 1s ease-out forwards;
  animation-delay: 0.9s;
}
@keyframes homeBtnIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ─── MINI-MENU ITEM SCROLL ANIMATION ─────────────────────────── */
/* Initially hidden, slightly down */
.home-menu .menu-item {
  opacity: 0;
  transform: translateY(30px);
  transition: transform 0.6s ease-out, opacity 0.6s ease-out;
}

/* When in-view, slide to natural position and fade in */
.home-menu .menu-item.in-view {
  opacity: 1;
  transform: translateY(0);
}
/* ─── FADE-UP / SLIDE-UP FOR VARIOUS TEXT ───────────────────────── */

/* Initially hide these elements & push them down 30px */
.home-menu-header .menu-title,
.home-menu-header .menu-subtitle,
.home-menu .menu-category,
.footer-heading,
.footer-text,
.hours-list li {
  opacity: 0;
  transform: translateY(30px);
  transition: transform 0.6s ease-out, opacity 0.6s ease-out;
}

/* When in-view, slide them up to natural position and fade in */
.home-menu-header .menu-title.in-view,
.home-menu-header .menu-subtitle.in-view,
.home-menu .menu-category.in-view,
.footer-heading.in-view,
.footer-text.in-view,
.hours-list li.in-view {
  opacity: 1;
  transform: translateY(0);
}


/* Home key frames end */

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* When you add these classes, the animations will run */
.animate-left {
  animation: slideInLeft 1s ease-out forwards;
}

.animate-right {
  animation: slideInRight 1s ease-out forwards;
}
/* ─── Home Hero Section ─────────────────────────────────────────── */
/* --------------------------------------------------
   BANNER SECTION (INDEX TOP HERO)
-------------------------------------------------- */

@media (min-width: 768px) {
  .banner-section {
    flex-direction: row;
    height: 50vh;
    min-height: 400px;
    background-color: #111;
    overflow: visible; /* allow overflow for the oblique edge */
  }
  .banner-image {
    width: 50%;
    height: 100%;
    min-height: 400px;
    /* Create an oblique right edge */
    clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
  }
  .banner-text {
    width: 50%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 1rem 2rem;
    background: #000;
    position: relative;
    z-index: 2;
    /* Optional: add a left-side shadow/glow for separation */
    box-shadow: -12px 0 20px -10px rgba(0,0,0,0.12);
  }
}

.banner-section {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  min-height: 350px;
  overflow: hidden;
}

/* Banner image */
.banner-image {
  background-image: url('/assets/images/mainhero.webp'); /* Change here */
  background-size: cover;
  background-position: center;
  min-height: 250px;
  height: auto;
  flex: 1 1 50%;
}

/* Banner text */
.banner-text {
  background: #111;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 2.5rem 2rem;
  flex: 1 1 50%;
}

.banner-text h1 {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.banner-text p {
  font-size: 1.125rem;
  max-width: 600px;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.btn-banner {
  display: inline-block;
  background: #FFD700;
  color: #000;
  text-decoration: none;
  font-weight: bold;
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  transition: background 0.2s, transform 0.1s ease-in-out, box-shadow 0.1s;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  cursor: pointer;
   clip-path: polygon(
      7px 0,
      calc(100% - 7px) 0,
      100% 7px,
      100% calc(100% - 7px),
      calc(100% - 7px) 100%,
      7px 100%,
      0 calc(100% - 7px),
      0 7px
    );
}

.btn-banner:hover {
  background: #e6c200;
}

.btn-banner:active {
  background: #ccad00;
  transform: scale(0.96);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) inset;
}

/* Responsive: stack vertically on small screens */
@media (max-width: 767.98px) {
  .banner-section {
    flex-direction: column;
    min-height: 0;
    height: auto;
    margin-left: 0;
    left: 0;
    width: 100%;
  }
  .banner-image {
    width: 100%;
    min-height: 200px;
    height: 40vw;
    max-height: 50vw;
  }
  .banner-text {
    width: 100%;
    padding: 2rem 1rem;
  }
  .banner-text h1 {
    font-size: 2rem;
  }
  .banner-text p {
    font-size: 1rem;
  }
}

/* --------------------------------------------------
   NAVBAR
-------------------------------------------------- */
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background: #fff;
  position: relative;
  z-index: 1000;
  border-bottom: 1px solid #eee;
}

/* Site brand – bold Montserrat */
.brand {
  font-family: 'Montserrat', sans-serif;
  text-decoration: none;
  font-size: 1.5rem;
  color: #333;
}

/* Desktop nav links */
.nav-items a {
  margin-left: 1.5rem;
  text-decoration: none;
  color: #333;
  font-size: 1rem;
  position: relative;
}
.nav-items a::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: #333;
  transition: width .3s;
}
.nav-items a:hover::after { width: 100%; }

/* Mobile toggle button */
.nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 22px;
  cursor: pointer;
}
.nav-toggle span {
  display: block;
  height: 3px;
  background: #333;
  border-radius: 2px;
  transition: transform .3s, opacity .3s;
}

/* Overlay */
.nav-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  background: #fff;
  transform: translateX(-100%);
  transition: transform .4s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 900;
}
.nav-overlay.active { transform: translateX(0); }

.nav-items-mobile {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  text-align: center;
}

/* ─── Fix “toggle‐open” menu items to match desktop styling ───────────────── */

/* 1) Base styles for mobile overlay links */
.nav-items-mobile a {
  /* match desktop font family */
  /* slightly larger on small screens, then normalize on desktop */
  font-size: 1.7rem;
  color: #333;
  text-decoration: none;
  position: relative;
  padding: 0.5rem 0;
}

/* 2) Underline indicator (hidden by default) */
.nav-items-mobile a::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: #333;
  transition: width 0.3s ease;
  margin: 0.25rem auto 0;
}

/* --------------------------------------------------
   ORDER-ONLINE  (mobile-first)
-------------------------------------------------- */
.order-overlay{
  position:fixed;left:0;right:0;
  top:var(--order-top,-10px);
  height:calc(100vh - var(--order-top,60px));
  background:#fff;
  display:flex;justify-content:center;align-items:flex-start;
  transform:translateY(-100%);transition:transform .35s ease-in-out;
  z-index:1000;
  
}
@media (min-width: 768px) {
  .order-content {
    clip-path: polygon(
      10px 0,
      calc(100% - 10px) 0,
      100% 10px,
      100% calc(100% - 10px),
      calc(100% - 10px) 100%,
      10px 100%,
      0 calc(100% - 10px),
      0 10px
    );
  }
}

.order-overlay.active{transform:translateY(0);}
@media (max-width: 767.98px) {
  .order-overlay {
    top: 70px;
    height: calc(100vh - 60px);
  }
}
/* main card */
.order-content{
  width:100%;max-width:640px;height:100%;
  padding:0 1rem 2rem;             
  box-sizing:border-box;
  display:flex;flex-direction:column;
}

/* header row */
.order-header{display:flex;justify-content:center;margin-bottom:1.5rem; margin-top: 1rem;}
.order-heading{
  position:relative;font-family:'Poppins',sans-serif;font-size:1.7rem;font-weight:400;margin:0;text-align:center;
}
.order-heading::after{
  content:'';display:block;width:4rem;height:2px;background:#333;margin:.4rem auto 0;
}

/* links */
.order-links{
  flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;
}
.order-link{
  display:flex;align-items:center;gap:.75rem;
  font-family:'Poppins',sans-serif;font-size:1.7rem;font-weight:400;
  color:#333;text-decoration:none;position:relative;transition:color .3s;
}
.order-link:hover{color:#000;}
.order-link::after{
  content:'';display:block;width:0;height:2px;background:#333;margin:.25rem auto 0;transition:width .3s;
}
.order-link:hover::after{width:100%;}
.order-icon{width:36px;height:36px;object-fit:contain;}

/* DESKTOP DROPDOWN */
@media (min-width:768px){
  .order-overlay {
    position: absolute;
    left: auto; 
    right: 1rem;    
    width: auto;
    height: auto;
    background: transparent;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.35s ease-in-out, opacity 0.35s ease-in-out, visibility 0s linear 0.35s;
    z-index: 999;
  }
  .order-overlay.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.35s ease-in-out, opacity 0.35s ease-in-out, visibility 0s linear 0s;
    z-index: 1000;
  }
  .order-content{
    width:360px;height:auto;
    padding:1.5rem 1.25rem 2rem;   /* desktop keeps its top padding */
    background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.15);
  }
  .order-links{gap:1rem;}
  .order-link{font-size:1rem;}
  .order-heading{font-family:'Playfair Display',serif;font-size:1.25rem;text-transform:uppercase;letter-spacing:2px;}
  .order-heading::after{width:5rem;}
}


/* 3) On hover, expand underline—same as desktop */
.nav-items-mobile a:hover::after {
  width: 100%;
}
/* ─── Sticky Navbar on Small Screens ─────────────────────────── */
@media (max-width: 767.98px) {
  .navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1001;           /* above everything else */
  }
  /* push page content down by the navbar’s height (approx. 60px) */
  body {
    padding-top: 60px;
  }
}


/* 4) When the viewport is ≥768px (i.e. desktop), normalize font‐size */
@media (min-width: 768px) {
  .nav-items-mobile a {
    font-size: 1rem;
  }
}

.nav-link-mobile {
  font-size: 2rem;
  text-decoration: none;
  color: #333;
  position: relative;
}
.nav-link-mobile::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: #333;
  margin: .5rem auto 0;
  transition: width .3s;
}
.nav-link-mobile:hover::after { width: 60%; }

/* ── Mobile nav‑toggle + back arrow ───────────────────────── */
.nav-toggle{
  display:flex;flex-direction:column;justify-content:space-between;
  width:30px;height:22px;cursor:pointer;
}
.nav-toggle span{display:block;height:3px;background:#333;border-radius:2px;transition:transform .3s,opacity .3s;}
/* × icon */
.nav-toggle.open span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
/* BACK state */
.nav-toggle .nav-back-icon{display:none;font-size:22px;line-height:22px;color:#333;}
.nav-toggle.back span{display:none;}
.nav-toggle.back .nav-back-icon{display:block;}
.nav-toggle.back{width:22px;height:22px;}

/* Responsive helpers */
.desktop-only { display: flex; }
.mobile-only  { display: none; }
@media (max-width: 768px) {
  .desktop-only { display: none; }
  .mobile-only  { display: flex; }
}

/* --------------------------------------------------
   SECTION 1 : HERO
-------------------------------------------------- */
.first-section { display: flex; flex-wrap: wrap; min-height: 60vh; }
.first-image   { flex: 1 1 100%; background: url("../images/header.jpg") center/cover no-repeat; min-height: 300px; }
.first-content { flex: 1 1 100%; background: #000; display: flex; align-items: center; justify-content: center; padding: 2rem 1.5rem; text-align: center; }
.first-inner   { max-width: 550px; width: 100%; }

/* Headings use elegant Playfair Display */
.first-heading {
  font-family: 'Playfair Display', serif;
  color: #fff;
  font-size: 2.25rem;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.first-tagline {
  color: #e4e4e4;
  font-size: 1.05rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}

.hero-btn {
  display: inline-block;
  background: #fff;
  color: #000;
  text-decoration: none;
  padding: 0.75rem 2rem;
  font-weight: 600;
  border-radius: 4px;
  transition: background 0.3s ease, color 0.3s ease;
}
.hero-btn:hover { background: #e4e4e4; }

/* ≥768 px : split hero 50‑50 */
@media (min-width: 768px) {
  .first-image, .first-content { flex: 0 0 50%; }
}

/* --------------------------------------------------
   SECTION 2 : OUR STORY
-------------------------------------------------- */
.second-section { background: #e9ecef; padding: 2rem 1rem; text-align: center; }
.second-content { max-width: 600px; margin: 0 auto; }
.story-heading  {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  margin-bottom: 1rem;
  letter-spacing: 1px;
}
.story-text { line-height: 1.6; color: #555; }

/* Large‑screen overlay card tweaks */
@media (min-width: 992px) {
  .second-section { background: transparent; position: relative; padding: 0; height: 0; }
  .second-content {
    position: absolute; top: 0; left: 50%; transform: translate(-50%,-50%);
    background: #ece0e0; padding: 1.2rem 2.5rem; border-radius: 8px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.12); width: max-content; max-width: 50vw;
  }
  .menu-section { padding-top: 6rem; }
}

/* --------------------------------------------------
   SECTION 3 : MENU
-------------------------------------------------- */
.menu-section          { background: #F4F1E8; padding: 2rem 0; }
.menu-section .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; }

/* Header */
.menu-header          { text-align: center; margin-bottom: 3rem; }
.menu-brand           { font-size: 0.9rem; letter-spacing: 2px; font-weight: 700; text-transform: uppercase; display: inline-block; }
.menu-rule            { display: block; width: 120px; height: 2px; background: #000; margin: 0.6rem auto; }
.menu-title {
  font-family: 'Playfair Display', serif;
  font-size: 3rem; font-weight: 800; letter-spacing: 3px;
  text-transform: uppercase; margin: 0; line-height: 1;
}
@media (min-width: 992px) { .menu-header { margin-top: 4rem; } }

/* Columns */
.menu-columns { display: flex; flex-direction: column; position: relative; }
.menu-col     { width: 100%; padding: 0 0rem; box-sizing: border-box; }
@media (min-width: 768px) {
  .menu-columns { flex-direction: row; }
  .menu-col     { width: 50%; }
  .menu-columns::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #ccc; }
}
@media (max-width: 767px) {
  .menu-columns::before { display: none; }
  .menu-col-pides::after { content: ''; display: block; width: 100%; height: 1px; background: #ccc; margin: 2rem 0; }
}

/* Category headings */
.menu-category {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem; font-weight: 700; 
  text-transform: uppercase; 
  color: #222;
 
}

/* Menu items */
.menu-item       { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.75rem; }
.menu-item-name  { font-weight: 600; color: #333; }
.menu-item-desc  { font-size: 0.9rem; color: #555; margin-top: 0.25rem; line-height: 1.4; }
.menu-item-price { font-weight: 600; color: darkgreen; white-space: nowrap; margin-left: 1rem; }


/* --------------------------------------------------
   SECTION 4 : SUBSCRIBE
-------------------------------------------------- */
.subscribe-section   { background: #e9ecef; padding: 4rem 0; }
.subscribe-container { max-width: 800px; margin: 0 auto; text-align: center; padding: 0 1rem; }
.subscribe-title {
  font-family: 'Playfair Display', serif;
  font-size: 2rem; text-transform: uppercase; letter-spacing: 2px;
  margin-bottom: 1rem; color: #333;
}
.subscribe-text { font-size: 1rem; color: #555; margin-bottom: 2rem; line-height: 1.6; }
.subscribe-form { display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; }
.subscribe-input {
  flex: 1 1 200px; min-width: 180px; padding: 0.75rem 1rem;
  border: 1px solid #ccc; border-radius: 4px; font-size: 1rem; box-sizing: border-box;
}
.subscribe-input:focus { outline: none; border-color: #666; }
.subscribe-btn {
  flex: 0 0 auto; padding: 0.75rem 2rem; border: none; border-radius: 4px;
  background: #333; color: #fff; font-size: 1rem; cursor: pointer; transition: background 0.3s ease;
}
.subscribe-btn:hover { background: #555; }


/* HOME MENU SECTION */

/*==============================================
  HOME - ABOUT SECTION (Updated Background)
==============================================*/

:root {
  --cut: 80px; /* You can adjust this value to change the angle of the diagonal cut */
}

.home-about-section {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  min-height: 400px;
  margin: 0;
  background: #212121; /* Updated background color */

}

.home-about-text {
 
  color: #fdfdfd;
  padding: 3rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  clip-path: polygon(0 0, calc(100% - var(--cut)), 0, 100% 100%, 0 100%);
}

.home-about-text h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.home-about-text p {
  color: #f1eaea;
  font-size: 1.1rem;
  max-width: 500px;
  margin-bottom: 1.5rem;
}

.home-about-image {

  background: url('/assets/images/pideler.webp') center/cover no-repeat ;
  clip-path: polygon(15% 0%, 100% 0%, 100% 100%, 0% 100%);
}

/* Responsive adjustments */
@media(min-width: 768px) {
  .home-about-text {
    grid-column: 1 / span 5; /* Previously 6 */
  }
  .home-about-image {
    grid-column: 6 / span 7; /* Previously 7 / span 6 */
  }
}
@media(max-width: 767.98px) {
  .home-about-section {
    grid-template-columns: 1fr;
  }

  .home-about-text {
    clip-path: none; /* Remove curve */
    order: 2;
    padding: 2rem 1.5rem;
  }

  .home-about-image {
    clip-path: none; /* Remove curve */
    order: 1;
    min-height: 250px;
  }
}


/* ─── MINI-MENU HEADER & DIVIDER ─────────────────────────────── */
.home-menu-header {
  text-align: center;
  margin-bottom: 2rem;
  
}

.menu-title {
  font-family: 'Rubik', sans-serif;
  font-weight: 700;
  font-size: 2.5rem;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  color: #222;
}

.menu-divider {
  width: 6rem;
  height: 3px;
  background: #84828286;
  margin: 0.5rem auto;
  border-radius: 2px;
}

.menu-subtitle {
  font-size: 1rem;
  color: #000000;
  margin: 0.5rem auto 0 auto;
  max-width: 600px;
  line-height: 1.4;
   font-family: 'Inter', sans-serif;
  font-weight: 400;
}


.home-menu {
  background: linear-gradient(to bottom, #fafafa 0%, #5b575b2f 100%);
  padding: 3rem 1rem;
}

.menu-columns {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

/* vertical divider */
.menu-columns::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 1px;
  background: #ccc;
}

.menu-col {
  flex: 1 1 50%;
  padding: 0 1.5rem;
  box-sizing: border-box;
}
.menu-item-header .sale-price {
  color: red;
  text-decoration: line-through solid red;
  margin-right: 0.5rem; /* space between dashed and sale price */
}
/* hide divider on mobile */
@media (max-width: 767.98px) {
  .menu-columns { flex-direction: column; }
  .menu-columns::before { display: none; }
  .menu-col { width: 100%; padding: 0 1rem; }
}

/* category heading */
.menu-category {
  font-family: 'Rubik', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: #000000;
  
}

/* each item becomes a block */
.menu-item {
  display: block;
  margin-bottom: 1.5rem;
}

/* only header is flex */
.menu-item-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  width: 100%;
  color: darkgreen; /* regular or sale price when no discount */

}

.home-menu-item-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  width: 100%;
  color: rgb(0, 0, 0); /* regular or sale price when no discount */

}

/* name & price styling */
.item-name {
  color: #160c5e;
  font-family: 'Work Sans', sans-serif;
  font-weight: 600;
  display: inline-block;

  /* Underline styling */
  text-decoration-line: underline;
  text-decoration-thickness: 2px;       /* thickness of the line */
  text-decoration-color: purple;  /* same color as the text */
  text-underline-offset: 3px;      
}
.home-item-name {
  color: #000;
  font-family: 'Work Sans', sans-serif;
  font-weight: 600;
  display: inline-block;

  /* Underline styling */
  text-decoration-line: underline;
  text-decoration-thickness: 2px;       /* thickness of the line */
  text-decoration-color: #ccc;  /* same color as the text */
  text-underline-offset: 7px;      
}


.item-price {
  font-family: 'WDXL Lubrifont TC', sans-serif;
  font-weight: 700;
  color: darkgreen; /* regular or sale price when no discount */
}

.home-item-price {
  font-family: 'WDXL Lubrifont TC', sans-serif;
  font-weight: 700;
  color: darkgreen; /* regular or sale price when no discount */
}

.sale-price {
  margin-left: 0.5rem;
  text-decoration: line-through solid red;
  color: red;
  font-weight: normal;
  font-size: 0.9em;
  margin-right: 0.5rem; /* space between dashed and sale price */

  
}

/* description always below, full width */
.menu-item-desc {
  display: block;
  width: 100%;
  clear: both;
  font-size: 0.9rem;
  color: #555;
  margin-top: 0.5rem;
  line-height: 1.4;
}

/* Testimonial */
/* ─── TESTIMONIALS GRID SECTION ───────────────────────────────── */
.testimonials-section {
  background: #f2f2f2;
  padding: 3rem 1rem;
  text-align: center;
}

.testimonials-title {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  margin-bottom: 2rem;
}

/* Grid container */
.testimonials-grid {
  display: grid;
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* 1 col (mobile) */
.testimonials-grid {
  grid-template-columns: 1fr;
}

/* 2 cols (≥768px) */
@media (min-width: 768px) {
  .testimonials-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 3 cols (≥992px) */
@media (min-width: 992px) {
  .testimonials-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* 4 cols (≥1200px) */
@media (min-width: 1200px) {
  .testimonials-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Card styling (unchanged) */
.testimonial-card {
    position: relative;       /* for smooth opacity transition */
  opacity: 1;
  transition: opacity 0.6s ease-in-out;
  background: #fff;
  border-radius: 8px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
/* ─── Fade effect for swapping cards ───────────────────────────── */

.testimonial-card.fading {
  opacity: 0;
}

.testimonial-photo {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 1rem;
}

.testimonial-stars {
  color: #f5a623;
  margin-bottom: 0.75rem;
  font-size: 1rem;
}

.testimonial-name {
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.testimonial-text {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.4;
}
 /* --------------------------------------------------
     FOOTER
  -------------------------------------------------- */
  .site-footer {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
  }
  .footer-top {
    background: #222;
    color: #f1f1f1;
  }
  .footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 1rem;
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
  }
  .footer-column {
    width: 100%;
    padding: 1.5rem;
    box-sizing: border-box;
    text-align: center;
  }
  @media (min-width: 768px) {
    .footer-column {
      width: 33.3333%;
    }
  }
  .footer-divider {
    width: 100%;
    height: 1px;
    margin: 1rem 3rem;
    border: none;
    background: #555;
    display: none;
  }
  .footer-heading {
    font-family: 'Playfair Display', serif;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 1.35rem;
  }
  .footer-text {
    margin: 0.75rem 0;
    line-height: 1.5;
    font-size: 1rem;
  }
  .hours-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .hours-list li {
    margin: 0.6rem 0;
    line-height: 1.5;
    font-size: 1rem;
  }

  /* Social Icons Container */
  .social-icons {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
  }
  .social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #444;
    border-radius: 50%;
    transition: transform 0.3s ease, background 0.3s ease;
    text-decoration: none;
  }
  .social-icons a:hover {
    transform: scale(1.1);
    background: #FFD700;
  }
  .social-icons a i {
    color: #fff;
    font-size: 18px;
    line-height: 1;
  }
  .social-icons a:hover i {
    color: #222;
  }

  .footer-bottom {
    background: #e9ecef;
    color: #333;
    width: 100%;
    text-align: center;
    padding: 1rem 1rem;
    box-sizing: border-box;
  }
.footer-copy {
  margin: 0;
  font-size: 0.9rem;
  color: #555;
  line-height: 1.6;
  text-align: center;
}

.footer-hr {
  display: none;
}

@media (max-width: 767.98px) {
  .footer-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .footer-hr {
    display: block;
    width: 50%;
    height: 1px;
    background: #ccc;
    margin: 0.25rem auto;
    border: none;
  }
}
  .footer-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }
  .footer-contact {
    text-align: center;
  }
  .footer-center-image {
    text-align: center;
  }
  .footer-center-image img {
    max-width: 200px;
    width: 100%;
    height: auto;
    display: inline-block;
    margin: 0 auto;
  }
  .footer-hours {
    text-align: center;
  }
  .footer-logo {
    max-width: 150px;
    height: auto;
    margin: 0 auto 10px;
  }
  .footer-link {
    color: white;
    text-decoration: none;
  }
  .footer-link:hover {
    color: yellow;
  }

  @media (min-width: 768px) {
    .footer-container {
      flex-direction: row;
    }
    .footer-contact {
      order: 1;
      display: block;
    }
    .footer-center-image {
      order: 2;
      display: block;
    }
    .footer-hours {
      order: 3;
      display: block;
    }
    .footer-divider {
      display: none;
    }
  }
  @media (max-width: 767.98px) {
    .footer-container {
      flex-direction: column;
      align-items: stretch;
    }
    .footer-hours {
      order: 2;
      display: block !important;
    }
    .footer-contact {
      order: 1;
      display: block;
    }
    .footer-center-image {
      order: 3;
      display: block;
    }
    .footer-divider {
      display: none !important;
    }
  }

/* ===== Menu & Hero ===== */

/* ─── Hero Section ───────────────────────────────────────────────── */
.menu-hero {
  position: relative;
  left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  width: 100vw;
  height: 300px;
  background-image: url('/assets/images/menu-hero.jpg'); /* Change here */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.menu-hero .hero-overlay {
  position: absolute;
  top:0; left:0; right:0; bottom:0;
  background: rgba(0,0,0,0.4);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  padding: 0 1rem;
}

.menu-hero .hero-overlay h1 {
  font-size: 2.5rem;
  margin: 0;
}

.menu-hero .hero-overlay p {
  font-size: 1.2rem;
  margin-top: 0.5rem;
}

/* ===== Section Wrapper ===== */
.section-menu {
  padding: 0;
  margin: 0;
  background: #fff;

}

/* ===== Inner Container ===== */
.menu-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

/* ─── Category Sections (zebra gradients) ───────────────────────────── */
.category-section {
  position: relative;
  left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  width: 100vw;
  padding: 2rem 0;
}

.category-section:nth-of-type(odd) {
  background: linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%);
   
}

.category-section:nth-of-type(even) {
  background: linear-gradient(135deg, #e0e0e0 0%, #cccccc 100%);
    
}

.category-section .menu-container {
  padding-top: 0;
  padding-bottom: 0;
}

/* ===== Menu Category Header ===== */  
.menu-category {
  position: relative;
  padding-bottom: 0.5rem;     /* space above the line */
  margin-bottom: 1.5rem;      /* space below the line */
}

.menu-category::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  
}

/* Category titles get a gold underline */
.category-title {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, #f0c14b, #e7b32b);
  background-image: url('/assets/images/pattern.webp');
  background-size: cover;
  color: #f2ff00;
  font-size: 1.75rem;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 2rem;

  /* Replace border-radius with clip-path for matching corners */
  clip-path: polygon(
    10px 0,
    calc(100% - 10px) 0,
    100% 10px,
    100% calc(100% - 10px),
    calc(100% - 10px) 100%,
    10px 100%,
    0 calc(100% - 10px),
    0 10px
  );
}

.menu-container .menu-category {
  text-align: center;          /* parent alignment for inline-block child */
}
.category-section .menu-container {
  padding: 0;                   /* if you want the bg flush to edges */
}
@media (max-width: 767.98px) {
  /* give cards some breathing room on the sides */
  .items-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem; /* you can keep or tweak */
    margin: 0 1rem;
  }
.menu-item-card {
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  
  background: #fff;
  clip-path: polygon(
    10px 0,
    calc(100% - 10px) 0,
    100% 10px,
    100% calc(100% - 10px),
    calc(100% - 10px) 100%,
    10px 100%,
    0 calc(100% - 10px),
    0 10px
  );
}

  .menu-item-card.in-view {
   opacity: 1;
  transform: translateY(0);
}

  /* push the category header in from the edges */
  .category-title {
    margin: 0 1rem 1.5rem;
    width: auto; /* let margin define its inset */
  }
  
}


.category-desc {
  margin-bottom: 1rem;
  color: #555;
}

/* ===== Items Grid ===== */
.items-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.5rem;
}

.menu-item-card {
  background: ghostwhite;
  /* Remove border-radius since clip-path will define the corners */
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.2s;

  clip-path: polygon(
    10px 0,
    calc(100% - 10px) 0,
    100% 10px,
    100% calc(100% - 10px),
    calc(100% - 10px) 100%,
    10px 100%,
    0 calc(100% - 10px),
    0 10px
  );
}

/* Loading Spinner Overlay */
.menu-item-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Ccircle cx='25' cy='25' r='20' stroke='%23999' stroke-width='5' fill='none' stroke-linecap='round' stroke-dasharray='90 150'%3E%3CanimateTransform attributeName='transform' type='rotate' dur='0.8s' repeatCount='indefinite' from='0 25 25' to='360 25 25'/%3E%3C/circle%3E%3C/svg%3E")
              center / 40px 40px no-repeat;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}

/* Show spinner when loading */
.item-image.loading + .item-info,
.menu-item-card.loading::after {
  opacity: 1;
}

.item-image.loading { filter: blur(4px); }

/* when image finishes */
.item-image.loaded {
  filter: none;
}
.menu-item-card.loaded::after { opacity: 0; pointer-events:none; }

.menu-item-card:hover {
  transform: translateY(-4px);
}

.item-image {
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.item-info {
  padding: 1rem;
  flex-grow: 1;
    display: flex;
  flex-direction: column;
    text-align: center;
}

.item-name {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

.home-item-name {
  
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}


.item-desc {
  font-size: 0.95rem;
  color:black;
  margin-bottom: 0.75rem;
    text-transform: lowercase;        /* → “this is a sample description.” */
  display: inline-block; 
}
.item-desc::first-letter {
  text-transform: uppercase;        /* → “T” in our example */
}

.item-price {
  font-size: 1.4rem;
  font-weight: bold;
    margin-top: auto;
    text-align: center;

}

.home-item-price {
  font-size: 1.3rem;
  font-weight: bold;
    margin-top: auto;
    text-align: center;

}


/* ─── Modal Overlay & Content ───────────────────────────────────────── */

/* Dark-glass overlay */
.modal{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  background:rgba(0,0,0,0.6);
  display:none;
  align-items:center;
  justify-content:center;
  padding:1rem;
  z-index:1000;
}
.modal.open{display:flex;}

/* Main card */
.modal-content{
  background:#fff;
  border-radius:10px;
  max-width:540px;
  width:100%;
  overflow:hidden;
  box-shadow:0 10px 32px rgba(0,0,0,0.28);
  text-align:left;
}

/* 1) Header row */
.modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0.75rem 1.25rem 0.5rem;
  border-bottom:1px solid #ececec;
}
.modal-header h2{
  margin:0;
  font-size:1.7rem;
  font-weight:600;
  line-height:1.25;
}
.modal-close{
  font-size:2rem;
  line-height:1;
  font-weight:700;
  cursor:pointer;
  color:#707070;
  transition:color .2s;
}
.modal-close:hover{color:#000;}

/* 2) Hero image */
.modal-image {
  width: 100%;
  height: auto;         /* let height scale automatically */
  max-height: 80vh;  
   /* or whatever max you prefer */
  object-fit: contain ;  /* show the full image without cropping */
  display: block;
  background: #fff;     /* optional: a background for letterboxing */
}

/* 3) Description ---------------------------------------------------- */
#modal-desc{
  padding:1rem 1rem 0;   /* remove bottom padding */
  margin:0;              /* reset default <p> margins */
  font-size:1rem;
  line-height:1.55;
  color:#555;
}

/* Divider immediately below description text */
#modal-desc::after{
  content:'';
  display:block;
  height:1px;
  background:#e7e7e7;
  margin-top:.75rem;
}

/* 4) Price row – centered, dark green ------------------------------- */
.modal-price{
  margin:0;                      
  padding:0 1.25rem 1.25rem;     
  text-align:center;
  font-size:1.45rem;
    font-family: 'WDXL Lubrifont TC', sans-serif;
  font-weight:700;
  color:darkgreen; 
}
/* Popup sale price: force red & overlined */
/* ─── POPUP PRICE STYLING ────────────────────────────────────── */


/* original (pre-discount) price */
.modal-original-price {
  display: inline;          /* JS will toggle hide/show */
  color: red;
  text-decoration: line-through solid red;
  margin-right: 0.5rem;
  font-size: 1rem;
}

/* current price (sale or regular) */
.modal-current-price {
  display: inline;
  color: darkgreen;
  font-weight: 700;
  font-size: 1.45rem;
}

/* ensure .modal-content container still uses your existing rules */

/* ─────────────────────────────────────────────────────────────────── */

/* Sale price in menu cards (unchanged) */
.sale-price{
  margin-left:.5rem;
  text-decoration:line-through;
  color:#ad1919;
  font-weight:normal;
  font-size:1rem;
}

/* ─── Small-screen tweaks ------------------------------------------ */
@media (max-width:420px){
  .modal-header h2{font-size:1.5rem;}
  .modal-price{font-size:1.25rem;}
}

/* ─── Two-column layout on narrow screens -------------------------- */
@media (max-width:600px){
  .items-grid{grid-template-columns:repeat(2,1fr);}
}



/*  SUBSCRIPTION SECTION */
/* ===== Subscription Section (normal height & styling) ===== */

.subscription-section {
  position: relative;
  left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  width: 100vw;
  background: #f7f7f7;
  padding: 4rem 1rem;
}

.subscription-content {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.subscription-content h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: #333;
}

/* ─── Form: mobile-first vertical layout ───────────────────────── */

.sub-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1rem;
  align-items: stretch;
}

.sub-form input {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.sub-form button,
#new-sub {
  width: 100%;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  background: #333;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.sub-form button:hover,
#new-sub:hover {
  background: #555;
}

.sub-message {
  color: #d00;
  font-size: 0.95rem;
  min-height: 1.2em;
}
/* Description under the subscribe heading */
.subscription-desc {
  font-size: 1rem;
  color: #555;
  margin: 0 0 1.5rem;
}

/* Page loader */
/* --------------------------------------------------
   GLOBAL PAGE LOADER
-------------------------------------------------- */
#pageLoader {
  position: fixed;
  inset: 0;                        /* full viewport */
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;                   /* above everything */
  transition: opacity 0.6s ease;
}

/* Simple CSS spinner */
#pageLoader .spinner {
  width: 60px;
  height: 60px;
  border: 6px solid #eee;
  border-top-color: #333;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Hide main document while loader active */
body.is-loading > *:not(#pageLoader) {
  visibility: hidden;
}

/* Fade-out class */
#pageLoader.fade-out {
  opacity: 0;
  pointer-events: none;
}


/* ─── Larger screens: horizontal layout & bigger controls ───────── */
@media (min-width: 768px) {
  .sub-form {
    flex-direction: row;
    gap: 1rem;
    justify-content: center;
    align-items: center;
  }

  /* Inputs get a larger fixed minimum width, button remains auto */
  .sub-form input {
    flex: 1 0 400px;
   
    font-size: 1.125rem;
  }

  .sub-form button,
  #new-sub {
    flex: 0 0 auto;
    width: auto;
    font-size: 1.125rem;
  }
  /* Description under the subscribe heading */
.subscription-desc {
  font-size: 1rem;
  color: #555;
  margin: 0 0 1.5rem;
}



/* index Hero section */
}

