<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>Butter & Sprinkles by Nafisa – Mini Catering Service</title>
  <link rel="preconnect" href="https://fonts.googleapis.com"/>
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
  <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=DM+Sans:wght@300;400;500&display=swap" rel="stylesheet"/>
  <!-- Tally form embed script -->
  <script async src="https://tally.so/widgets/embed.js"></script>
  <style>
    :root {
      --cream: #fdf0df;
      --blush: #ffdfdf;
      --brown: #714323;
      --brown-light: #9a6040;
      --brown-dark: #4e2e14;
      --gold: #ffc96a;
      --white: #ffffff;
      --text: #3a2010;
      --text-muted: #8a6040;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      background-color: var(--cream);
      color: var(--text);
      overflow-x: hidden;
    }

    /* ── TEXTURE ── */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='4' height='4' fill='none'/%3E%3Ccircle cx='1' cy='1' r='0.5' fill='%23714323' opacity='0.04'/%3E%3C/svg%3E");
      pointer-events: none;
      z-index: 0;
    }

    /* ════════════════════════════
       NAVBAR — dark, full-width
    ════════════════════════════ */
    nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 200;
      height: 62px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 4%;
      background: rgba(10, 6, 2, 0.88);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      transition: background 0.3s, box-shadow 0.3s;
    }
    nav.scrolled {
      background: rgba(10, 6, 2, 0.97);
      box-shadow: 0 2px 24px rgba(0,0,0,0.5);
    }

    .nav-logo {
      display: flex;
      align-items: center;
      gap: 0.6rem;
      text-decoration: none;
      flex-shrink: 0;
    }
    .nav-logo img {
      height: 40px; width: 40px;
      object-fit: contain;
      border-radius: 50%;
    }
    .nav-logo-text {
      font-family: 'Playfair Display', serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--white);
      white-space: nowrap;
    }
    .nav-logo-text em { font-style: italic; color: var(--gold); font-weight: 400; }

    .nav-center {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
    }
    .nav-links { display: flex; list-style: none; }
    .nav-links a {
      display: flex;
      align-items: center;
      height: 62px;
      padding: 0 1rem;
      text-decoration: none;
      color: rgba(255,255,255,0.78);
      font-size: 0.875rem;
      font-weight: 400;
      letter-spacing: 0.01em;
      transition: color 0.2s, background 0.2s;
      white-space: nowrap;
    }
    .nav-links a:hover, .nav-links a.active { color: var(--gold); }

    .nav-right { display: flex; align-items: center; gap: 0.8rem; flex-shrink: 0; }
    .nav-search {
      background: none; border: none; cursor: pointer;
      color: rgba(255,255,255,0.65);
      padding: 0.4rem;
      display: flex; align-items: center;
      transition: color 0.2s;
    }
    .nav-search:hover { color: var(--gold); }

    /* ════════════════════════════
       HERO — full-height video bg
    ════════════════════════════ */
    .hero {
      position: relative;
      height: 100vh;
      min-height: 620px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      overflow: hidden;
    }

    /* Looping video */
    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      z-index: 0;
      filter: brightness(0.48) saturate(0.85);
    }

    /* Fallback image (shown while video loads or on mobile) */
    .hero-img-fallback {
      position: absolute;
      inset: 0;
      background: url('images/hero.png') center/cover no-repeat;
      filter: brightness(0.45);
      z-index: 0;
      display: none;
    }

    /* Gradient overlays */
    .hero-overlay {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(to bottom, rgba(113,67,35,0.4) 0%, rgba(78,46,20,0.65) 100%);
      z-index: 1;
    }

    /* Centered content */
    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 780px;
      padding: 0 5%;
      animation: fadeUp 1s 0.15s ease both;
    }

    .hero-badge {
      display: inline-block;
      background: rgba(255,223,223,0.18);
      border: 1px solid rgba(255,223,223,0.45);
      color: var(--blush);
      font-size: 0.75rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      padding: 0.4rem 1.1rem;
      border-radius: 50px;
      margin-bottom: 1.5rem;
      backdrop-filter: blur(6px);
    }

    .hero h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2.4rem, 6vw, 4.4rem);
      font-weight: 700;
      color: var(--white);
      line-height: 1.15;
      margin-bottom: 1.2rem;
    }
    .hero h1 em { font-style: italic; color: var(--gold); }

    .hero p {
      font-size: clamp(0.95rem, 1.4vw, 1.1rem);
      color: rgba(255,255,255,0.85);
      max-width: 560px;
      margin: 0 auto 2.2rem;
      line-height: 1.75;
      font-weight: 300;
    }

    .hero-btns {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
    }
    .btn-primary {
      display: inline-block;
      background: var(--brown); color: var(--white);
      padding: 0.85rem 2rem; border-radius: 50px;
      text-decoration: none; font-size: 0.95rem; font-weight: 500;
      transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
      box-shadow: 0 4px 20px rgba(113,67,35,0.4);
    }
    .btn-primary:hover { background: var(--brown-dark); transform: translateY(-2px); box-shadow: 0 6px 25px rgba(113,67,35,0.5); }
    .btn-ghost {
      border: 2px solid rgba(255,255,255,0.6);
      color: var(--white);
      padding: 0.85rem 2rem; border-radius: 50px;
      text-decoration: none; font-size: 0.95rem; font-weight: 500;
      transition: border-color 0.2s, background 0.2s, transform 0.15s;
      backdrop-filter: blur(4px);
    }
    .btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,0.12); transform: translateY(-2px); }

    /* Scroll indicator */
    .hero-scroll {
      position: absolute;
      bottom: 2rem; left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.4rem;
      color: rgba(255,255,255,0.55);
      font-size: 0.7rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    .hero-scroll-line {
      width: 1px; height: 40px;
      background: linear-gradient(to bottom, rgba(255,255,255,0.55), transparent);
      animation: scrollPulse 1.8s ease-in-out infinite;
    }
    @keyframes scrollPulse {
      0%, 100% { opacity: 0.55; height: 40px; }
      50%       { opacity: 1;    height: 55px; }
    }

    /* Floating WhatsApp bubble */
    .float-wa {
      position: fixed;
      bottom: 1.8rem; right: 1.8rem;
      z-index: 300;
      width: 58px; height: 58px;
      background: #25D366;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 4px 22px rgba(37,211,102,0.5);
      text-decoration: none;
      transition: transform 0.2s, box-shadow 0.2s;
    }
    .float-wa:hover { transform: scale(1.12); box-shadow: 0 6px 30px rgba(37,211,102,0.6); }
    .float-wa svg { width: 30px; height: 30px; fill: #fff; }

    /* ════════════════════════════
       SHARED SECTION STYLES
    ════════════════════════════ */
    section { position: relative; z-index: 1; }

    .section-label {
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--brown);
      font-weight: 500;
      margin-bottom: 0.6rem;
    }
    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.9rem, 4vw, 2.8rem);
      color: var(--brown-dark);
      line-height: 1.25;
    }
    .section-title em { font-style: italic; color: var(--brown); }
    .divider { width: 50px; height: 2px; background: var(--brown); margin: 1.2rem auto; border-radius: 2px; }
    .divider.left { margin: 1.2rem 0; }

    .btn-primary {
      display: inline-block;
      background: var(--brown); color: var(--white);
      padding: 0.85rem 2rem; border-radius: 50px;
      text-decoration: none; font-size: 0.95rem; font-weight: 500;
      transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
      box-shadow: 0 4px 20px rgba(113,67,35,0.35);
    }
    .btn-primary:hover { background: var(--brown-dark); transform: translateY(-2px); box-shadow: 0 6px 25px rgba(113,67,35,0.5); }

    /* ════════════════════════════
       ABOUT
    ════════════════════════════ */
    .about { padding: 6rem 5%; background: var(--cream); }
    .about-inner {
      max-width: 1100px; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 5rem; align-items: center;
    }
    .about-img-wrap { position: relative; }
    .about-img-wrap img { width: 100%; border-radius: 16px; object-fit: cover; aspect-ratio: 4/5; display: block; }
    .about-img-badge {
      position: absolute; bottom: -1.5rem; right: -1.5rem;
      background: var(--brown); color: var(--white);
      padding: 1.2rem 1.5rem; border-radius: 12px;
      text-align: center; box-shadow: 0 8px 30px rgba(113,67,35,0.3);
    }
    .about-img-badge strong { display: block; font-size: 2rem; font-family: 'Playfair Display', serif; }
    .about-img-badge span { font-size: 0.75rem; opacity: 0.85; letter-spacing: 0.05em; }
    .about-text p { color: var(--text-muted); line-height: 1.8; margin-top: 1.2rem; font-size: 1rem; }
    .areas { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.6rem; }
    .area-tag {
      background: var(--blush); color: var(--brown);
      border: 1px solid rgba(113,67,35,0.15);
      padding: 0.35rem 0.85rem; border-radius: 50px;
      font-size: 0.82rem; font-weight: 500;
    }
    .about-cta { margin-top: 2.5rem; }

    /* ════════════════════════════
       MENU
    ════════════════════════════ */
    .menu { padding: 6rem 5%; background: var(--blush); }
    .menu-inner { max-width: 1100px; margin: 0 auto; }
    .menu-header { text-align: center; margin-bottom: 3.5rem; }
    .menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
    .menu-card {
      background: var(--white); border-radius: 16px; overflow: hidden;
      box-shadow: 0 2px 16px rgba(113,67,35,0.08);
      transition: transform 0.25s, box-shadow 0.25s;
    }
    .menu-card:hover { transform: translateY(-6px); box-shadow: 0 12px 35px rgba(113,67,35,0.15); }
    .menu-card-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
    .menu-card-body { padding: 1.2rem 1.3rem 1.4rem; }
    .menu-card-tag { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--brown); font-weight: 600; margin-bottom: 0.4rem; }
    .menu-card-title { font-family: 'Playfair Display', serif; font-size: 1.15rem; color: var(--brown-dark); margin-bottom: 0.5rem; }
    .menu-card-desc { font-size: 0.88rem; color: var(--text-muted); line-height: 1.6; }

    .menu-list-wrap { margin-top: 3.5rem; background: var(--white); border-radius: 20px; padding: 2.5rem; box-shadow: 0 2px 20px rgba(113,67,35,0.07); }
    .menu-list-title { font-family: 'Playfair Display', serif; font-size: 1.35rem; color: var(--brown-dark); margin-bottom: 1.5rem; text-align: center; }
    .menu-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0.8rem 2rem; list-style: none; }
    .menu-list li {
      display: flex; align-items: flex-start; gap: 0.6rem;
      font-size: 0.92rem; color: var(--text); line-height: 1.5;
      padding: 0.5rem 0; border-bottom: 1px solid rgba(113,67,35,0.07);
    }
    .menu-list li::before { content: '✦'; color: var(--brown); font-size: 0.6rem; margin-top: 0.3rem; flex-shrink: 0; }

    /* ════════════════════════════
       GALLERY
    ════════════════════════════ */
    .gallery { padding: 6rem 5%; background: var(--cream); }
    .gallery-inner { max-width: 1100px; margin: 0 auto; }
    .gallery-header { text-align: center; margin-bottom: 3rem; }
    .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
    .gallery-item { overflow: hidden; border-radius: 14px; }
    .gallery-item:first-child { grid-column: span 2; grid-row: span 2; }
    .gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .gallery-item:hover img { transform: scale(1.05); }
    .gallery-item:first-child img { height: 440px; }
    .gallery-item:not(:first-child) img { height: 210px; }

    /* ════════════════════════════
       WHY US
    ════════════════════════════ */
    .why { padding: 5rem 5%; background: var(--brown); }
    .why-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 3fr; gap: 4rem; align-items: center; }
    .why h2 { font-family: 'Playfair Display', serif; font-size: clamp(1.8rem, 3vw, 2.5rem); color: var(--white); line-height: 1.3; }
    .why h2 em { font-style: italic; color: var(--gold); }
    .why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    .why-item { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; padding: 1.5rem; }
    .why-icon { font-size: 1.6rem; margin-bottom: 0.8rem; }
    .why-item h4 { color: var(--white); font-size: 1rem; margin-bottom: 0.4rem; font-weight: 600; }
    .why-item p { color: rgba(255,255,255,0.65); font-size: 0.88rem; line-height: 1.6; }

    /* ════════════════════════════
       CONTACT
    ════════════════════════════ */
    .contact { padding: 6rem 5%; background: var(--blush); }
    .contact-inner { max-width: 700px; margin: 0 auto; text-align: center; }
    .contact-inner p { color: var(--text-muted); margin-top: 1rem; line-height: 1.7; font-size: 1rem; }
    .contact-card { background: var(--white); border-radius: 20px; padding: 2.5rem; margin-top: 3rem; box-shadow: 0 4px 30px rgba(113,67,35,0.1); }
    .contact-name { font-family: 'Playfair Display', serif; font-size: 1.5rem; color: var(--brown-dark); }
    .contact-sub { color: var(--text-muted); font-size: 0.9rem; margin-top: 0.3rem; }
    .contact-number { display: block; font-family: 'Playfair Display', serif; font-size: 1.8rem; color: var(--brown); margin: 1.2rem 0; text-decoration: none; font-weight: 700; }
    .contact-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 0.5rem; }
    .btn-wa {
      background: #25D366; color: #fff;
      padding: 0.85rem 2rem; border-radius: 50px;
      text-decoration: none; font-size: 0.95rem; font-weight: 500;
      display: inline-flex; align-items: center; gap: 0.5rem;
      transition: background 0.2s, transform 0.15s;
      box-shadow: 0 4px 15px rgba(37,211,102,0.3);
    }
    .btn-wa:hover { background: #128C7E; transform: translateY(-2px); }
    .btn-quote { background: var(--brown); color: #fff; padding: 0.85rem 2rem; border-radius: 50px; text-decoration: none; font-size: 0.95rem; font-weight: 500; transition: background 0.2s, transform 0.15s; }
    .btn-quote:hover { background: var(--brown-dark); transform: translateY(-2px); }

    /* ════════════════════════════
       FOOTER
    ════════════════════════════ */
    footer { background: var(--brown-dark); color: rgba(255,255,255,0.6); text-align: center; padding: 2rem 5%; font-size: 0.85rem; }
    footer strong { color: rgba(255,255,255,0.9); }
    .footer-links { margin-top: 0.5rem; display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; }
    .footer-links a { color: rgba(255,255,255,0.5); text-decoration: none; font-size: 0.8rem; transition: color 0.2s; }
    .footer-links a:hover { color: var(--gold); }

    /* ════════════════════════════
       ANIMATIONS
    ════════════════════════════ */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(26px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    /* ════════════════════════════
       RESPONSIVE
    ════════════════════════════ */
    @media (max-width: 900px) {
      .nav-center { display: none; }
    }
    @media (max-width: 768px) {
      .hero-content    { padding: 0 5%; }
      .hero-video      { display: none; }
      .hero-img-fallback { display: block !important; }
      .about-inner     { grid-template-columns: 1fr; gap: 3rem; }
      .about-img-badge { bottom: -1rem; right: -0.5rem; }
      .why-inner       { grid-template-columns: 1fr; }
      .why-grid        { grid-template-columns: 1fr; }
      .gallery-grid    { grid-template-columns: 1fr; }
      .gallery-item:first-child { grid-column: span 1; grid-row: span 1; }
      .gallery-item:first-child img,
      .gallery-item:not(:first-child) img { height: 220px; }
    }

    /* ════════════════════════════
       ORDER / BOOKING CTA STRIP
    ════════════════════════════ */
    .order-strip {
      padding: 5.5rem 5%;
      background: linear-gradient(135deg, var(--brown-dark) 0%, var(--brown) 100%);
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .order-strip::before {
      content: '✦';
      position: absolute;
      font-size: 18rem;
      color: rgba(255,255,255,0.03);
      top: -4rem; left: -3rem;
      line-height: 1;
      pointer-events: none;
    }
    .order-strip-label {
      font-size: 0.72rem;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 500;
      margin-bottom: 0.8rem;
    }
    .order-strip h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.9rem, 4vw, 2.9rem);
      color: var(--white);
      line-height: 1.25;
      margin-bottom: 1rem;
    }
    .order-strip h2 em { font-style: italic; color: var(--gold); }
    .order-strip > p {
      color: rgba(255,255,255,0.7);
      max-width: 520px;
      margin: 0 auto 2.8rem;
      line-height: 1.75;
      font-size: 1rem;
    }
    .order-steps {
      display: flex;
      justify-content: center;
      gap: 2.5rem;
      flex-wrap: wrap;
      margin-bottom: 3rem;
    }
    .order-step {
      display: flex;
      align-items: flex-start;
      gap: 0.9rem;
      max-width: 190px;
      text-align: left;
    }
    .order-step-num {
      flex-shrink: 0;
      width: 36px; height: 36px;
      border-radius: 50%;
      border: 2px solid var(--gold);
      color: var(--gold);
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      font-weight: 700;
      display: flex; align-items: center; justify-content: center;
    }
    .order-step-text { color: rgba(255,255,255,0.7); font-size: 0.87rem; line-height: 1.5; }
    .order-step-text strong { display: block; color: var(--white); font-size: 0.92rem; margin-bottom: 0.2rem; }

    .btn-order {
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      background: var(--gold);
      color: var(--brown-dark);
      padding: 1rem 2.5rem;
      border-radius: 50px;
      text-decoration: none;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: 0.01em;
      cursor: pointer;
      border: none;
      transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
      box-shadow: 0 4px 24px rgba(255,201,106,0.4);
    }
    .btn-order:hover { background: #ffd98a; transform: translateY(-2px); box-shadow: 0 8px 32px rgba(255,201,106,0.5); }

    /* ════════════════════════════
       TALLY FORM MODAL
    ════════════════════════════ */
    .modal-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 500;
      background: rgba(20, 10, 2, 0.78);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      align-items: center;
      justify-content: center;
      padding: 1.2rem;
    }
    .modal-backdrop.open {
      display: flex;
      animation: fadeIn 0.22s ease both;
    }
    .modal-box {
      background: var(--cream);
      border-radius: 20px;
      width: 100%;
      max-width: 780px;
      height: 88vh;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-shadow: 0 24px 64px rgba(0,0,0,0.45);
      animation: slideUp 0.3s ease both;
    }
    .modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1rem 1.4rem;
      border-bottom: 1px solid rgba(113,67,35,0.12);
      flex-shrink: 0;
      background: var(--white);
      gap: 1rem;
    }
    .modal-header-info { min-width: 0; }
    .modal-header-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.05rem;
      color: var(--brown-dark);
      font-weight: 600;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .modal-header-sub { font-size: 0.76rem; color: var(--text-muted); margin-top: 0.1rem; }
    .modal-close {
      flex-shrink: 0;
      background: none; border: none; cursor: pointer;
      width: 36px; height: 36px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      color: var(--text-muted);
      font-size: 1.5rem;
      line-height: 1;
      transition: background 0.2s, color 0.2s;
    }
    .modal-close:hover { background: var(--blush); color: var(--brown); }

    /* Tally iframe container */
    .modal-body {
      flex: 1;
      position: relative;
      overflow: hidden;
    }
    .modal-body iframe {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      border: 0;
    }

    /* After-submit success + WhatsApp prompt */
    .modal-wa-prompt {
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 3rem 2rem 2.5rem;
      gap: 0.8rem;
      height: 100%;
      background: var(--cream);
    }
    .modal-wa-prompt.visible { display: flex; }
    .modal-wa-icon { font-size: 4rem; margin-bottom: 0.4rem; }
    .modal-wa-prompt h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.7rem;
      color: var(--brown-dark);
      line-height: 1.25;
    }
    .modal-wa-prompt p {
      color: var(--text-muted);
      max-width: 400px;
      line-height: 1.75;
      font-size: 0.95rem;
    }
    .modal-wa-prompt .btn-wa {
      margin-top: 0.8rem;
      font-size: 1rem;
      padding: 0.9rem 2.2rem;
      background: #25D366; color: #fff;
      border-radius: 50px; text-decoration: none;
      font-weight: 600;
      display: inline-flex; align-items: center; gap: 0.5rem;
      box-shadow: 0 4px 18px rgba(37,211,102,0.35);
      transition: background 0.2s, transform 0.15s;
    }
    .modal-wa-prompt .btn-wa:hover { background: #128C7E; transform: translateY(-2px); }
    .modal-wa-prompt .btn-close-after {
      margin-top: 0.4rem;
      font-size: 0.85rem;
      color: var(--text-muted);
      background: none; border: none; cursor: pointer;
      text-decoration: underline;
      transition: color 0.2s;
    }
    .modal-wa-prompt .btn-close-after:hover { color: var(--brown); }

    @keyframes fadeIn {
      from { opacity: 0; } to { opacity: 1; }
    }
    @keyframes slideUp {
      from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); }
    }
  </style>
</head>
<body>

<!-- ══════════════════════════════════
     NAVBAR — dark, centered links
══════════════════════════════════ -->
<nav id="navbar">
  <a href="#" class="nav-logo">
    <img src="images/logo.png" alt="Butter & Sprinkles Logo" onerror="this.style.display='none'"/>
    <div class="nav-logo-text">Butter &amp; <em>Sprinkles</em></div>
  </a>

  <div class="nav-center">
    <ul class="nav-links">
      <li><a href="#"        class="active">Home</a></li>
      <li><a href="#about">About</a></li>
      <li><a href="#menu">Menus</a></li>
      <li><a href="#gallery">Gallery</a></li>
      <li><a href="#contact">Contact</a></li>
      <li><a href="#contact">Reviews</a></li>
      <li><a href="#order" style="color:var(--gold);font-weight:600;">Order Now</a></li>
    </ul>
  </div>

  <div class="nav-right">
    <button class="nav-search" aria-label="Search">
      <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
      </svg>
    </button>
  </div>
</nav>

<!-- ══════════════════════════════════
     HERO — looping video background
     Place your video as: images/hero.mp4
     The poster image (hero.jpg) shows
     while the video loads.
══════════════════════════════════ -->
<section class="hero">

  <!-- Fallback: shown on mobile or if video fails -->
  <div class="hero-img-fallback"></div>

  <!-- Background video — autoplay, muted, looping -->
  <video
    class="hero-video"
    src="images/hero.mp4"
    autoplay
    muted
    loop
    playsinline
    preload="auto"
    poster="images/hero.png"
  ></video>

  <!-- Gradient overlay -->
  <div class="hero-overlay"></div>

  <!-- Centered content -->
  <div class="hero-content">
    <div class="hero-badge">✦ Mini Catering Service ✦</div>
    <h1>Food Made with Love,<br/><em>Served with Joy</em></h1>
    <p>From cozy private gatherings to corporate events — Butter &amp; Sprinkles brings warmth and flavour to every celebration across Nilai, Bangi, Sepang &amp; beyond.</p>
    <div class="hero-btns">
      <a href="#menu" class="btn-primary">Explore Our Menu</a>
      <a href="#order" class="btn-ghost" onclick="openOrderModal()">Place an Order</a>
    </div>
  </div>

  <!-- Scroll indicator -->
  <div class="hero-scroll">
    <div class="hero-scroll-line"></div>
    Scroll
  </div>

</section>

<!-- Floating WhatsApp Button -->
<a href="https://wa.me/60136100589?text=Hi%20Kak%20Sya!%20I'm%20interested%20in%20your%20catering%20services." class="float-wa" target="_blank" rel="noopener" aria-label="Chat on WhatsApp">
  <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
    <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/>
  </svg>
</a>

<!-- ══════════════════════════════════
     ABOUT
══════════════════════════════════ -->
<section class="about" id="about">
  <div class="about-inner">
    <div class="about-img-wrap">
      <img src="images/roti-jala.jpeg" alt="Roti Jala by Butter & Sprinkles" onerror="this.src='https://placehold.co/500x625/fdf0df/714323?text=Butter+%26+Sprinkles'"/>
      <div class="about-img-badge">
        <strong>❤</strong>
        <span>Made with heart</span>
      </div>
    </div>
    <div class="about-text">
      <div class="section-label">Our Story</div>
      <h2 class="section-title">Homemade Flavours,<br/><em>Catered Just for You</em></h2>
      <div class="divider left"></div>
      <p>Butter & Sprinkles by Nafisa is a small but passionate catering service dedicated to bringing delicious, home-cooked bites to your special moments. Whether it's a family kenduri, an office lunch, or an intimate birthday gathering — we show up with flavour, care, and a beautiful spread.</p>
      <p>Every dish is prepared fresh, with quality ingredients and the kind of love only a home cook can give.</p>
      <div class="areas">
        <span class="area-tag">📍 Nilai</span>
        <span class="area-tag">📍 Sepang</span>
        <span class="area-tag">📍 Salak Tinggi</span>
        <span class="area-tag">📍 KLIA</span>
        <span class="area-tag">📍 Dengkil</span>
        <span class="area-tag">📍 Bangi</span>
        <span class="area-tag">📍 & Nearby Areas</span>
      </div>
      <div class="about-cta">
        <a href="https://wa.me/60136100589?text=Hi%20Kak%20Sya!%20I'd%20like%20to%20know%20more%20about%20your%20catering." class="btn-primary" target="_blank" rel="noopener">Chat with Kak Sya</a>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════════════════════
     MENU
══════════════════════════════════ -->
<section class="menu" id="menu">
  <div class="menu-inner">
    <div class="menu-header">
      <div class="section-label">What We Offer</div>
      <h2 class="section-title">Our <em>Signature</em> Dishes</h2>
      <div class="divider"></div>
      <p style="color:var(--text-muted);max-width:480px;margin:0 auto;line-height:1.7;font-size:0.95rem;">A curated selection of Malaysian favourites and sweet treats, all prepared fresh for your event.</p>
    </div>

    <div class="menu-grid">
      <div class="menu-card">
        <img class="menu-card-img" src="images/roti-jala.jpeg" alt="Roti Jala" onerror="this.src='https://placehold.co/400x300/fdf0df/714323?text=Roti+Jala'"/>
        <div class="menu-card-body">
          <div class="menu-card-tag">Main Savoury</div>
          <div class="menu-card-title">Roti Jala with Kari</div>
          <div class="menu-card-desc">Served with your choice of Kari Ayam, Kambing, or Daging. A timeless Malaysian classic.</div>
        </div>
      </div>
      <div class="menu-card">
        <img class="menu-card-img" src="images/cucur-udang.jpeg" alt="Cucur Udang" onerror="this.src='https://placehold.co/400x300/fdf0df/714323?text=Cucur+Udang'"/>
        <div class="menu-card-body">
          <div class="menu-card-tag">Savoury Snack</div>
          <div class="menu-card-title">Cucur Udang</div>
          <div class="menu-card-desc">Crispy prawn fritters paired with our signature sambal kacang. Always a crowd favourite.</div>
        </div>
      </div>
      <div class="menu-card">
        <img class="menu-card-img" src="images/waffle.jpeg" alt="Mini Waffle" onerror="this.src='https://placehold.co/400x300/fdf0df/714323?text=Mini+Waffle'"/>
        <div class="menu-card-body">
          <div class="menu-card-tag">Sweet Treat</div>
          <div class="menu-card-title">Mini Waffle</div>
          <div class="menu-card-desc">Bite-sized, golden waffles — perfect for dessert tables, tea parties, and sweet spreads.</div>
        </div>
      </div>
      <div class="menu-card">
        <img class="menu-card-img" src="images/kek-batik.jpg" alt="Kek Batik" onerror="this.src='https://placehold.co/400x300/fdf0df/714323?text=Kek+Batik'"/>
        <div class="menu-card-body">
          <div class="menu-card-tag">Dessert</div>
          <div class="menu-card-title">Kek Batik</div>
          <div class="menu-card-desc">Available in Classic, Chocolate Ganache, or Indulgence. Rich, fudgy, and utterly irresistible.</div>
        </div>
      </div>
    </div>

    <div class="menu-list-wrap">
      <div class="menu-list-title">Full Menu</div>
      <ul class="menu-list">
        <li>Roti Jala + Kari Ayam / Kambing / Daging</li>
        <li>Cucur Udang + Sambal Kacang</li>
        <li>Mini Mantao + Ayam Buttermilk</li>
        <li>Mini Martabak + Kuah Kari</li>
        <li>Mini Waffle</li>
        <li>Mini Strudel</li>
        <li>Cheese Tart</li>
        <li>Kek Batik Classic / Chocolate Ganache / Indulgence</li>
        <li>Apple Pie</li>
        <li>Dadih Susu Segar</li>
        <li>Nasi Tomato + Ayam Masak Merah + Acar</li>
        <li>Nasi Putih (Basmathi) + Ayam Berempah + Kuah Kari + Ulam</li>
      </ul>
    </div>
  </div>
</section>

<!-- ══════════════════════════════════
     GALLERY
══════════════════════════════════ -->
<section class="gallery" id="gallery">
  <div class="gallery-inner">
    <div class="gallery-header">
      <div class="section-label">Our Work</div>
      <h2 class="section-title">A Peek at Our <em>Spreads</em></h2>
      <div class="divider"></div>
    </div>
    <div class="gallery-grid">
      <div class="gallery-item">
        <img src="images/gallery1.jpeg" alt="Catering Spread 1" onerror="this.src='https://placehold.co/700x440/ffdfdf/714323?text=Gallery'"/>
      </div>
      <div class="gallery-item">
        <img src="images/gallery2.jpg"  alt="Catering Spread 2" onerror="this.src='https://placehold.co/350x210/fdf0df/714323?text=Gallery'"/>
      </div>
      <div class="gallery-item">
        <img src="images/gallery3.jpg"  alt="Catering Spread 3" onerror="this.src='https://placehold.co/350x210/ffdfdf/714323?text=Gallery'"/>
      </div>
      <div class="gallery-item">
        <img src="images/gallery4.jpeg" alt="Catering Spread 4" onerror="this.src='https://placehold.co/350x210/ffdfdf/714323?text=Gallery'"/>
      </div>
      <div class="gallery-item">
        <img src="images/gallery5.jpeg" alt="Catering Spread 5" onerror="this.src='https://placehold.co/350x210/ffdfdf/714323?text=Gallery'"/>
      </div>
      <div class="gallery-item">
        <img src="images/gallery6.jpeg"  alt="Catering Spread 6" onerror="this.src='https://placehold.co/350x210/ffdfdf/714323?text=Gallery'"/>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════════════════════
     WHY US
══════════════════════════════════ -->
<section class="why">
  <div class="why-inner">
    <div>
      <h2>Why Choose <em>Butter &amp; Sprinkles?</em></h2>
    </div>
    <div class="why-grid">
      <div class="why-item">
        <div class="why-icon">🍽️</div>
        <h4>Fresh &amp; Homemade</h4>
        <p>Every dish is prepared fresh on the day, using quality ingredients. No shortcuts, just love.</p>
      </div>
      <div class="why-item">
        <div class="why-icon">📍</div>
        <h4>Local Delivery</h4>
        <p>Covering Nilai, Bangi, Sepang, KLIA, Dengkil, Salak Tinggi, and all nearby areas.</p>
      </div>
      <div class="why-item">
        <div class="why-icon">🎉</div>
        <h4>For Any Occasion</h4>
        <p>Private gatherings, corporate events, weddings, kenduri — we cater for all.</p>
      </div>
      <div class="why-item">
        <div class="why-icon">💬</div>
        <h4>Easy Ordering</h4>
        <p>Just drop us a WhatsApp message to get a personalised quote in minutes.</p>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════════════════════
     CONTACT
══════════════════════════════════ -->
<section class="contact" id="contact">
  <div class="contact-inner">
    <div class="section-label">Get in Touch</div>
    <h2 class="section-title">Ready to <em>Book Your Spread?</em></h2>
    <div class="divider"></div>
    <p>Drop us a message and Kak Sya will get back to you with a personalised quote. It's that simple!</p>
    <div class="contact-card">
      <div class="contact-name">Kak Sya</div>
      <div class="contact-sub">Butter &amp; Sprinkles by Nafisa — Mini Catering Service</div>
      <a href="tel:+60136100589" class="contact-number">+60 13-610 0589</a>
      <div class="contact-btns">
        <a href="https://wa.me/60136100589?text=Hi%20Kak%20Sya!%20I'm%20interested%20in%20your%20mini%20catering%20service.%20Can%20I%20get%20a%20quote%3F" class="btn-wa" target="_blank" rel="noopener">
          <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
            <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/>
          </svg>
          WhatsApp Now
        </a>
        <button class="btn-order" onclick="openOrderModal()" style="padding:0.85rem 1.8rem;font-size:0.95rem;">
          <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/></svg>
          Order Now
        </button>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════════════════════
     ORDER / BOOKING CTA STRIP
══════════════════════════════════ -->
<section class="order-strip" id="order">
  <div class="order-strip-label">✦ Place Your Order ✦</div>
  <h2>Ready to <em>Place an Order?</em></h2>
  <p>Fill in our quick order form — it only takes 2 minutes. Once done, send us a WhatsApp and Kak Sya will get back to you with your personalised quote!</p>

  <div class="order-steps">
    <div class="order-step">
      <div class="order-step-num">1</div>
      <div class="order-step-text">
        <strong>Fill the Form</strong>
        Share your event details, menu choices, and date.
      </div>
    </div>
    <div class="order-step">
      <div class="order-step-num">2</div>
      <div class="order-step-text">
        <strong>Send WhatsApp</strong>
        Notify Kak Sya that your form has been submitted.
      </div>
    </div>
    <div class="order-step">
      <div class="order-step-num">3</div>
      <div class="order-step-text">
        <strong>Get Your Quote</strong>
        Kak Sya will reply with a personalised price for you.
      </div>
    </div>
  </div>

  <button class="btn-order" onclick="openOrderModal()">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
    Fill Order Form
  </button>
</section>

<!-- ══════════════════════════════════
     TALLY FORM MODAL
══════════════════════════════════ -->
<div class="modal-backdrop" id="orderModal" role="dialog" aria-modal="true" aria-label="Order Form">

  <div class="modal-box">
    <!-- Header -->
    <div class="modal-header">
      <div class="modal-header-info">
        <div class="modal-header-title">Butter &amp; Sprinkles — Mini Catering Order</div>
        <div class="modal-header-sub">Fill in your details and we'll prepare a quote for you 🍽️</div>
      </div>
      <button class="modal-close" onclick="closeOrderModal()" aria-label="Close">&times;</button>
    </div>

    <!-- Tally iframe (shown initially) -->
    <div class="modal-body" id="modalFormBody">
      <iframe
        data-tally-src="https://tally.so/r/QKYylA?transparentBackground=1"
        width="100%"
        height="100%"
        frameborder="0"
        marginheight="0"
        marginwidth="0"
        title="BUTTER & SPRINKLES – MINI CATERING ORDER"
        id="tallyFrame"
      ></iframe>
    </div>

    <!-- WhatsApp prompt (shown after form submission) -->
    <div class="modal-wa-prompt" id="waPrompt">
      <div class="modal-wa-icon">🎉</div>
      <h3>Thank You!<br/>Your Order is Submitted</h3>
      <p>Your order form has been received. Now, please send Kak Sya a WhatsApp message to let her know you've submitted your form and to request your price quotation!</p>
      <a
        id="waLink"
        href="https://wa.me/60136100589?text=Hi%20Kak%20Sya!%20Saya%20telah%20mengisi%20borang%20pesanan%20Butter%20%26%20Sprinkles.%20Boleh%20saya%20dapatkan%20sebut%20harga%20untuk%20tempahan%20saya%3F%20Terima%20kasih!%20%F0%9F%8D%BD%EF%B8%8F"
        class="btn-wa"
        target="_blank"
        rel="noopener"
      >
        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
          <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/>
        </svg>
        WhatsApp Kak Sya Now
      </a>
      <button class="btn-close-after" onclick="closeOrderModal()">Close this window</button>
    </div>
  </div>

</div>

<!-- ══════════════════════════════════
     FOOTER
══════════════════════════════════ -->
<footer>
  <strong>Butter &amp; Sprinkles by Nafisa</strong> — Mini Catering Service
  <div class="footer-links">
    <a href="#about">About</a>
    <a href="#menu">Menu</a>
    <a href="#gallery">Gallery</a>
    <a href="#order">Order Now</a>
    <a href="#contact">Contact</a>
    <a href="https://wa.me/60136100589" target="_blank" rel="noopener">WhatsApp</a>
  </div>
  <p style="margin-top:1rem;font-size:0.75rem;opacity:0.5;">© 2025 Butter &amp; Sprinkles by Nafisa. All rights reserved.</p>
</footer>

<!-- ══════════════════════════════════
     SCRIPTS
══════════════════════════════════ -->
<script>
  /* ── Navbar scroll effect ── */
  const nav = document.getElementById('navbar');
  window.addEventListener('scroll', () => {
    nav.classList.toggle('scrolled', window.scrollY > 60);
  });

  /* ── Active nav link highlights on scroll ── */
  const sections = document.querySelectorAll('section[id]');
  const navLinks = document.querySelectorAll('.nav-links a[href^="#"]');
  const sectionObserver = new IntersectionObserver((entries) => {
    entries.forEach(e => {
      if (e.isIntersecting) {
        navLinks.forEach(a => a.classList.remove('active'));
        const match = document.querySelector(`.nav-links a[href="#${e.target.id}"]`);
        if (match) match.classList.add('active');
      }
    });
  }, { threshold: 0.4 });
  sections.forEach(s => sectionObserver.observe(s));

  /* ── Fade-in on scroll ── */
  const fadeObserver = new IntersectionObserver((entries) => {
    entries.forEach(e => {
      if (e.isIntersecting) {
        e.target.style.animation = 'fadeUp 0.7s ease both';
        fadeObserver.unobserve(e.target);
      }
    });
  }, { threshold: 0.1 });

  document.querySelectorAll(
    '.menu-card, .why-item, .gallery-item, .about-img-wrap, .about-text, .contact-card'
  ).forEach(el => {
    el.style.opacity = '0';
    fadeObserver.observe(el);
  });

  /* ── Video fallback handling ── */
  const video    = document.querySelector('.hero-video');
  const fallback = document.querySelector('.hero-img-fallback');

  if (video) {
    // If video errors out, show fallback image
    video.addEventListener('error', () => {
      video.style.display = 'none';
      fallback.style.display = 'block';
    });
    // Once video can play, make sure fallback is hidden
    video.addEventListener('canplay', () => {
      fallback.style.display = 'none';
    });
    // Autoplay may be blocked — attempt play on interaction as fallback
    document.addEventListener('click', () => {
      if (video.paused) video.play().catch(() => {});
    }, { once: true });
  }

  /* ── ORDER MODAL ── */
  const modal     = document.getElementById('orderModal');
  const waPrompt  = document.getElementById('waPrompt');
  const formBody  = document.getElementById('modalFormBody');

  function openOrderModal() {
    // Reset to form view each time
    waPrompt.classList.remove('visible');
    formBody.style.display = 'block';
    modal.classList.add('open');
    document.body.style.overflow = 'hidden';
    // Initialize Tally if not yet done
    if (window.Tally) window.Tally.loadEmbeds();
  }

  function closeOrderModal() {
    modal.classList.remove('open');
    document.body.style.overflow = '';
  }

  // Close modal on backdrop click
  modal.addEventListener('click', (e) => {
    if (e.target === modal) closeOrderModal();
  });

  // Close modal on Escape key
  document.addEventListener('keydown', (e) => {
    if (e.key === 'Escape') closeOrderModal();
  });

  /* ── TALLY FORM SUBMIT → show WhatsApp prompt ── */
  window.addEventListener('message', (e) => {
    if (e.data && e.data.type === 'tally-form-submitted') {
      // Hide the form, show WhatsApp nudge
      formBody.style.display = 'none';
      waPrompt.classList.add('visible');
    }
  });
</script>
</body>
</html>
