:root {
    --red:       #e03e2d;
    --red-dark:  #c23222;
    --red-light: #fde8e5;
    --bg:        #faf5f0;
    --bg2:       #f5ede6;
    --dark:      #180e07;
    --text:      #3a2519;
    --muted:     #7a6558;
    --white:     #ffffff;
    --wa-green:  #25D366;
    --radius:    16px;
  }

  *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; }
  img { max-width:100%; height:auto; display:block; }

  ::-webkit-scrollbar { width:6px; }
  ::-webkit-scrollbar-track { background:var(--bg2); }
  ::-webkit-scrollbar-thumb { background:var(--red); border-radius:3px; }

  /* ─── NAVBAR ─── */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(250,245,240,.96); backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(224,62,45,.1);
    height:72px; display:flex; align-items:center;
    justify-content:space-between; padding:0 5%;
  }
  .logo {
    font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:900;
    color:var(--red); text-decoration:none; letter-spacing:-.5px;
  }
  .nav-links { display:flex; list-style:none; gap:2.2rem; align-items:center; }
  .nav-links a {
    text-decoration:none; color:var(--text); font-size:.93rem; font-weight:500;
    position:relative; transition:color .2s;
  }
  .nav-links a::after {
    content:''; position:absolute; bottom:-4px; left:0; right:0; height:2px;
    background:var(--red); border-radius:2px; transform:scaleX(0);
    transition:transform .25s; transform-origin:left;
  }
  .nav-links a:hover { color:var(--red); }
  .nav-links a:hover::after { transform:scaleX(1); }

  /* Groups cart + status indicator */
  .nav-right { display:flex; align-items:center; gap:.85rem; }

  /* ─── STATUS INDICATOR (Ouvert / Fermé) ─── */
  .status-indicator {
    display:flex; align-items:center; gap:.45rem;
    font-size:.78rem; font-weight:600;
    padding:.3rem .85rem; border-radius:50px;
    transition:all .3s;
  }
  .status-indicator.open {
    background:#e8f8ed; color:#1a7a3d;
  }
  .status-indicator.closed {
    background:#fde8e5; color:var(--red-dark);
  }
  .status-dot {
    width:7px; height:7px; border-radius:50%; flex-shrink:0;
  }
  .status-indicator.open .status-dot {
    background:#1a7a3d;
    box-shadow:0 0 0 0 rgba(26,122,61,.6);
    animation:statusPulse 2s infinite;
  }
  .status-indicator.closed .status-dot { background:var(--red); }
  @keyframes statusPulse {
    0%   { box-shadow:0 0 0 0 rgba(26,122,61,.6); }
    70%  { box-shadow:0 0 0 6px rgba(26,122,61,0); }
    100% { box-shadow:0 0 0 0 rgba(26,122,61,0); }
  }

  .btn-cart {
    display:flex; align-items:center; gap:.5rem;
    background:var(--red); color:#fff; border:none;
    padding:.6rem 1.4rem; border-radius:50px;
    font-size:.93rem; font-weight:600; cursor:pointer;
    transition:background .2s, transform .15s; position:relative;
  }
  .btn-cart:hover { background:var(--red-dark); transform:scale(1.03); }
  .cart-badge {
    background:#fff; color:var(--red); border-radius:50%;
    width:20px; height:20px; font-size:.7rem; font-weight:700;
    display:none; align-items:center; justify-content:center;
  }

  .mobile-menu-btn {
    display:none; background:none; border:none;
    color:var(--text); cursor:pointer; padding:.5rem;
    border-radius:8px; transition:background .2s;
  }
  .mobile-menu-btn:hover { background:var(--bg2); }
  .hamburger { width:24px; height:24px; }

  /* ─── HERO ─── */
  .hero {
    position:relative; min-height:100vh;
    display:flex; align-items:center; overflow:hidden;
  }
  .hero-bg {
    position:absolute; inset:0;
    background:url('https://images.unsplash.com/photo-1604329760661-e71dc83f8f26?w=1800&q=85') center/cover no-repeat;
    filter:brightness(.52);
    transform:scale(1.04);
    animation:heroZoom 18s ease-in-out infinite alternate;
  }
  @keyframes heroZoom { from{transform:scale(1.04)} to{transform:scale(1.1)} }

  .hero-content {
    position:relative; z-index:2;
    padding:0 5%; max-width:700px; color:#fff;
    padding-top:72px;
  }
  .hero h1 {
    font-family:'Playfair Display',serif;
    font-size:clamp(3.6rem,8vw,6.8rem);
    font-weight:900; line-height:1;
    margin-bottom:1.2rem;
  }
  .hero p {
    font-size:1.08rem; line-height:1.7;
    color:rgba(255,255,255,.85); margin-bottom:2.2rem; max-width:520px;
  }
  .hero-btns { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3.5rem; }

  .btn-primary {
    background:var(--red); color:#fff; border:none;
    padding:.85rem 2rem; border-radius:50px;
    font-size:.97rem; font-weight:600; cursor:pointer;
    display:inline-flex; align-items:center; gap:.5rem;
    text-decoration:none; transition:background .2s, transform .15s, box-shadow .2s;
  }
  .btn-primary:hover {
    background:var(--red-dark); transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(224,62,45,.4);
  }
  .btn-outline {
    background:rgba(255,255,255,.1); color:#fff;
    border:2px solid rgba(255,255,255,.65);
    padding:.85rem 2rem; border-radius:50px;
    font-size:.97rem; font-weight:600; cursor:pointer;
    text-decoration:none; transition:all .2s; display:inline-flex;
  }
  .btn-outline:hover { background:rgba(255,255,255,.2); border-color:#fff; }

  .hero-stats {
    display:flex; gap:0; align-items:stretch;
    border-top:1px solid rgba(255,255,255,.22); padding-top:1.6rem;
  }
  .stat { padding:0 2rem 0 0; position:relative; }
  .stat:not(:last-child)::after {
    content:''; position:absolute; right:1rem; top:0; bottom:0;
    width:1px; background:rgba(255,255,255,.2);
  }
  .stat:first-child { padding-left:0; }
  .stat-val {
    font-family:'Playfair Display',serif;
    font-size:2.1rem; font-weight:900; color:#fff;
    display:flex; align-items:center; gap:.15rem;
  }
  .star { color:#f5a623; font-size:1.6rem; }
  .stat-lbl { font-size:.78rem; color:rgba(255,255,255,.6); margin-top:.1rem; }

  .hero-scroll {
    position:absolute; bottom:2.5rem; left:50%;
    transform:translateX(-50%); z-index:2;
    display:flex; flex-direction:column; align-items:center;
    gap:.5rem; color:rgba(255,255,255,.65); font-size:.78rem;
    cursor:pointer; letter-spacing:.06em;
  }
  .scroll-mouse {
    width:30px; height:48px;
    border:2px solid rgba(255,255,255,.45); border-radius:15px;
    display:flex; justify-content:center; padding-top:7px;
  }
  .scroll-mouse::after {
    content:''; width:5px; height:9px;
    background:#fff; border-radius:3px;
    animation:scrollDot 1.6s ease-in-out infinite;
  }
  @keyframes scrollDot { 0%{transform:translateY(0);opacity:1} 100%{transform:translateY(14px);opacity:0} }

  /* ─── SECTIONS ─── */
  section { padding:6rem 5%; max-width:1400px; margin:0 auto; }
  .section-center { text-align:center; max-width:800px; margin:0 auto; }
  .badge {
    display:inline-flex; align-items:center; gap:.4rem;
    background:var(--red-light); color:var(--red);
    padding:.38rem 1rem; border-radius:50px;
    font-size:.82rem; font-weight:600; margin-bottom:1.1rem;
  }
  .sec-title {
    font-family:'Playfair Display',serif;
    font-size:clamp(2rem,4vw,3rem); font-weight:900;
    color:var(--dark); margin-bottom:.7rem;
  }
  .sec-sub {
    color:var(--muted); font-size:.97rem; line-height:1.65;
    max-width:600px; margin:0 auto 3rem;
  }

  /* ─── SPÉCIALITÉS ─── */
  #specialites { background:var(--bg); }
  .specials-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.6rem;
    max-width:1200px; margin:0 auto;
  }
  .special-card {
    position:relative; border-radius:20px; overflow:hidden;
    aspect-ratio:4/5; cursor:pointer;
    box-shadow:0 4px 24px rgba(30,10,0,.14);
    transition:transform .28s, box-shadow .28s;
  }
  .special-card:hover { transform:translateY(-6px) scale(1.01); box-shadow:0 16px 48px rgba(30,10,0,.22); }
  .special-card img {
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .55s ease;
  }
  .special-card:hover img { transform:scale(1.06); }
  .special-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(15,6,2,.82) 0%, rgba(15,6,2,.28) 55%, transparent 100%);
  }
  .special-text { position:absolute; bottom:0; left:0; right:0; padding:1.6rem 1.8rem; }
  .special-text h3 {
    font-family:'Playfair Display',serif;
    font-size:1.5rem; font-weight:900; color:#fff; margin-bottom:.3rem;
  }
  .special-text p { font-size:.88rem; color:rgba(255,255,255,.75); }

  /* ─── MENU ─── */
  #menu { background:#fff; }
  .filter-tabs {
    display:flex; gap:.75rem; justify-content:center;
    margin-bottom:2.8rem; flex-wrap:wrap;
  }
  .tab {
    padding:.52rem 1.5rem; border-radius:50px;
    border:2px solid #e2d6cf; background:#fff;
    color:var(--text); font-size:.92rem; font-weight:500;
    cursor:pointer; transition:all .2s;
  }
  .tab:hover, .tab.active {
    background:var(--red); border-color:var(--red); color:#fff;
  }
  .menu-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.4rem;
    max-width:1200px; margin:0 auto;
  }
  .menu-card {
    background:#fff; border-radius:var(--radius); overflow:hidden;
    border:1.5px solid #f0e6e0;
    box-shadow:0 2px 10px rgba(50,20,8,.05);
    transition:transform .22s, box-shadow .22s, border-color .22s;
  }
  .menu-card:hover {
    transform:translateY(-4px); box-shadow:0 10px 32px rgba(50,20,8,.12);
    border-color:var(--red-light);
  }
  .menu-card-img { width:100%; height:195px; object-fit:cover; display:block; }
  .menu-card-body { padding:1.1rem 1.15rem 1.25rem; }
  .menu-card-name {
    font-family:'Playfair Display',serif;
    font-size:1.12rem; font-weight:700; color:var(--dark); margin-bottom:.35rem;
  }
  .menu-card-desc { color:var(--muted); font-size:.82rem; line-height:1.5; margin-bottom:1rem; }
  .menu-card-footer { display:flex; align-items:center; justify-content:space-between; }
  .menu-price {
    font-family:'Playfair Display',serif;
    font-size:1.28rem; font-weight:700; color:var(--red);
  }
  .btn-add {
    width:38px; height:38px; border-radius:50%;
    background:var(--red); color:#fff; border:none;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background .2s, transform .15s; flex-shrink:0;
  }
  .btn-add:hover { background:var(--red-dark); transform:scale(1.15); }

  /* ─── À PROPOS ─── */
  #apropos {
    background:var(--bg2);
    display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center;
  }
  .about-img-wrap { position:relative; border-radius:22px; overflow:hidden; height:500px; }
  .about-img-wrap img { width:100%; height:100%; object-fit:cover; }
  .about-badge {
    position:absolute; bottom:2rem; right:-1.5rem;
    background:var(--red); color:#fff;
    padding:1.2rem 1.8rem; border-radius:16px; text-align:center;
    box-shadow:0 8px 28px rgba(224,62,45,.45);
  }
  .about-badge-num {
    font-family:'Playfair Display',serif;
    font-size:2.2rem; font-weight:900; line-height:1;
  }
  .about-badge-lbl { font-size:.8rem; margin-top:.2rem; opacity:.9; }
  .about-content .sec-title { text-align:left; }
  .about-content .sec-sub { text-align:left; margin:0 0 2rem; }
  .about-features { display:flex; flex-direction:column; gap:1.3rem; margin-bottom:2rem; }
  .feat-row { display:flex; align-items:flex-start; gap:1.1rem; }
  .feat-icon {
    width:52px; height:52px; border-radius:14px;
    background:var(--red-light); color:var(--red);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .feat-icon svg { width:24px; height:24px; }
  .feat-text strong { display:block; font-size:.96rem; color:var(--dark); margin-bottom:.18rem; }
  .feat-text span { font-size:.84rem; color:var(--muted); line-height:1.5; }

  /* ─── TÉMOIGNAGES (NOUVEAU) ─── */
  #temoignages { background:var(--bg); }
  .reviews-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.6rem;
    max-width:1200px; margin:0 auto;
  }
  .review-card {
    background:#fff; border-radius:var(--radius); padding:1.8rem;
    border:1.5px solid #f0e6e0;
    box-shadow:0 2px 12px rgba(50,20,8,.06);
    display:flex; flex-direction:column; gap:1rem;
    transition:transform .22s, box-shadow .22s;
  }
  .review-card:hover {
    transform:translateY(-3px);
    box-shadow:0 8px 28px rgba(50,20,8,.1);
  }
  .review-stars { color:#f5a623; font-size:1.1rem; letter-spacing:.1em; }
  .review-text {
    color:var(--text); font-size:.9rem; line-height:1.65;
    flex:1;
    font-style:italic;
  }
  .review-author { display:flex; align-items:center; gap:.9rem; }
  .review-avatar {
    width:44px; height:44px; border-radius:50%;
    background:var(--red); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:.85rem; flex-shrink:0;
  }
  .review-name { font-weight:600; font-size:.9rem; color:var(--dark); }
  .review-date { font-size:.78rem; color:var(--muted); margin-top:.1rem; }

  /* ─── LIVRAISON ─── */
  #livraison { background:var(--red-light); }
  .delivery-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:2rem;
    max-width:1100px; margin:0 auto;
  }
  .delivery-card { text-align:center; }
  .delivery-icon {
    width:76px; height:76px; border-radius:20px;
    background:var(--red); color:#fff;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 1.1rem;
    box-shadow:0 6px 20px rgba(224,62,45,.32);
  }
  .delivery-icon svg { width:32px; height:32px; }
  /* WhatsApp delivery icon colour override */
  .delivery-icon-wa { background:var(--wa-green); box-shadow:0 6px 20px rgba(37,211,102,.32); }
  .delivery-card strong { display:block; font-size:1rem; font-weight:600; color:var(--dark); margin-bottom:.3rem; }
  .delivery-card span { color:var(--muted); font-size:.88rem; }
  .wa-link {
    color:var(--wa-green); font-weight:700; font-size:.97rem;
    text-decoration:none; display:block; margin-top:.1rem;
  }
  .wa-link:hover { text-decoration:underline; }

  .promo-banner {
    border-radius:22px; padding:3.2rem 2rem; text-align:center;
    background:linear-gradient(135deg,#e03e2d 0%,#c23222 100%);
    box-shadow:0 12px 40px rgba(224,62,45,.35);
  }
  .promo-banner h2 {
    font-family:'Playfair Display',serif;
    font-size:2.1rem; font-weight:900; color:#fff; margin-bottom:.7rem;
  }
  .promo-banner p { font-size:.97rem; color:rgba(255,255,255,.88); margin-bottom:1.6rem; max-width:520px; margin-left:auto; margin-right:auto; }
  .btn-white {
    background:#fff; color:var(--red); border:none;
    padding:.9rem 2.4rem; border-radius:50px;
    font-size:.97rem; font-weight:700; cursor:pointer;
    transition:transform .15s, box-shadow .15s;
  }
  .btn-white:hover { transform:scale(1.04); box-shadow:0 6px 20px rgba(0,0,0,.18); }

  /* ─── FOOTER ─── */
  footer { background:#150a03; color:rgba(255,255,255,.65); padding:4.5rem 5% 2rem; }
  .footer-grid {
    display:grid; grid-template-columns:1.7fr 1fr 1.2fr;
    gap:3.5rem; margin-bottom:3rem;
  }
  .footer-logo {
    font-family:'Playfair Display',serif;
    font-size:1.5rem; font-weight:900; color:var(--red); margin-bottom:.9rem;
  }
  .footer-desc { font-size:.86rem; line-height:1.7; color:rgba(255,255,255,.48); margin-bottom:1.3rem; }
  .social-row { display:flex; gap:.7rem; }
  .social-btn {
    width:40px; height:40px; border-radius:50%;
    background:var(--red); color:#fff; border:none;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background .2s, transform .15s;
    text-decoration:none;
  }
  .social-btn:hover { background:var(--red-dark); transform:scale(1.1); }
  .social-btn-wa { background:var(--wa-green); }
  .social-btn-wa:hover { background:#1fb355; }
  .social-btn svg { width:18px; height:18px; }
  .footer-col h4 { color:#fff; font-size:.97rem; font-weight:700; margin-bottom:1.3rem; }
  .footer-links { list-style:none; display:flex; flex-direction:column; gap:.65rem; }
  .footer-links a {
    text-decoration:none; color:rgba(255,255,255,.48);
    font-size:.88rem; transition:color .2s;
  }
  .footer-links a:hover { color:var(--red); }
  .contact-rows { display:flex; flex-direction:column; gap:.85rem; }
  .contact-row { display:flex; align-items:flex-start; gap:.75rem; font-size:.86rem; color:rgba(255,255,255,.5); }
  .contact-row a { color:rgba(255,255,255,.5); transition:color .2s; }
  .contact-row a:hover { color:var(--red); }
  .contact-row svg { width:17px; height:17px; flex-shrink:0; margin-top:1px; }
  .footer-bottom {
    border-top:1px solid rgba(255,255,255,.08);
    padding-top:1.6rem; text-align:center;
    font-size:.8rem; color:rgba(255,255,255,.28);
  }

  /* ─── CART DRAWER ─── */
  .overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.45);
    z-index:200; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .overlay.open { opacity:1; pointer-events:all; }
  .cart-drawer {
    position:fixed; top:0; right:0;
    width:390px; max-width:100vw; height:100vh;
    background:#fff; z-index:201;
    transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1);
    display:flex; flex-direction:column;
  }
  .cart-drawer.open { transform:translateX(0); }
  .cart-head {
    display:flex; align-items:center; justify-content:space-between;
    padding:1.4rem 1.6rem; border-bottom:1px solid #f2e8e3;
  }
  .cart-head h3 {
    font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--dark);
    display:flex; align-items:center; gap:.6rem;
  }
  .cart-close {
    background:none; border:none; cursor:pointer; color:var(--muted);
    padding:.3rem; border-radius:8px; transition:background .15s; display:flex;
  }
  .cart-close:hover { background:var(--bg2); }
  .cart-close svg { width:20px; height:20px; }
  .cart-body { flex:1; overflow-y:auto; padding:1rem 1.6rem; }
  .cart-empty { text-align:center; color:var(--muted); margin-top:4rem; font-size:.93rem; }
  .cart-empty svg { width:56px; height:56px; margin:0 auto 1rem; display:block; opacity:.35; }
  .cart-item {
    display:flex; align-items:center; gap:1rem;
    padding:.9rem 0; border-bottom:1px solid #f5ece7;
  }
  .cart-item img { width:58px; height:58px; border-radius:12px; object-fit:cover; flex-shrink:0; }
  .ci-info { flex:1; min-width:0; }
  .ci-name { font-weight:600; font-size:.88rem; color:var(--dark); margin-bottom:.2rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .ci-price { color:var(--red); font-weight:700; font-size:.88rem; }
  .ci-qty { display:flex; align-items:center; gap:.5rem; }
  .ci-qty button {
    width:27px; height:27px; border-radius:50%;
    border:1.5px solid #ddd; background:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-size:.95rem; color:var(--text); transition:all .15s;
  }
  .ci-qty button:hover { border-color:var(--red); color:var(--red); }
  .ci-qty span { font-weight:700; font-size:.88rem; min-width:18px; text-align:center; }

  /* ─── CART FOOTER ─── */
  .cart-foot { padding:1.2rem 1.6rem; border-top:1px solid #f2e8e3; }

  /* Promo code input */
  .promo-row {
    display:flex; gap:.5rem; margin-bottom:.8rem;
  }
  #promoInput {
    flex:1; padding:.55rem .9rem; border-radius:50px;
    border:1.5px solid #e2d6cf; font-size:.85rem; font-family:inherit;
    color:var(--text); outline:none; transition:border-color .2s;
  }
  #promoInput:focus { border-color:var(--red); }
  .btn-promo {
    padding:.55rem 1rem; border-radius:50px;
    background:var(--bg2); border:1.5px solid #e2d6cf;
    font-size:.82rem; font-weight:600; color:var(--text); cursor:pointer;
    transition:all .2s; white-space:nowrap;
  }
  .btn-promo:hover { background:var(--red); border-color:var(--red); color:#fff; }
  .promo-applied {
    display:flex; align-items:center; gap:.4rem;
    font-size:.8rem; color:#1a7a3d; font-weight:600;
    background:#e8f8ed; padding:.4rem .9rem; border-radius:50px;
    margin-bottom:.8rem;
  }

  .cart-total-row { display:flex; justify-content:space-between; margin-bottom:.5rem; }
  .total-label { font-size:.9rem; color:var(--muted); }
  .cart-discount-row { display:flex; justify-content:space-between; margin-bottom:.5rem; }
  .discount-label { color:#1a7a3d; font-weight:500; }
  .discount-val { color:#1a7a3d; font-weight:700; font-size:.9rem; }
  .cart-total-final {
    margin-top:.6rem; padding-top:.6rem;
    border-top:1px solid #f2e8e3; margin-bottom:1rem;
  }
  .cart-total-final strong { font-size:1rem; color:var(--dark); }
  .cart-total-final span { font-size:1.15rem; font-weight:700; color:var(--red); }

  /* WhatsApp checkout button */
  .btn-checkout {
    width:100%; background:var(--wa-green); color:#fff; border:none;
    padding:1rem; border-radius:50px; font-size:.97rem; font-weight:700;
    cursor:pointer; transition:background .2s, transform .15s;
    display:flex; align-items:center; justify-content:center; gap:.6rem;
  }
  .btn-checkout:hover { background:#1fb355; transform:scale(1.02); }

  /* Clear cart button */
  .btn-clear-cart {
    width:100%; background:#dc3545; color:#fff; border:none;
    padding:.8rem; border-radius:50px; font-size:.9rem; font-weight:600;
    cursor:pointer; transition:background .2s, transform .15s;
    display:flex; align-items:center; justify-content:center; gap:.5rem;
    margin-bottom:.8rem;
  }
  .btn-clear-cart:hover { background:#c82333; transform:scale(1.02); }

  .checkout-note {
    text-align:center; font-size:.75rem; color:var(--muted);
    margin-top:.6rem;
  }

  /* ─── TOAST ─── */
  .toast {
    position:fixed; bottom:2rem; left:50%;
    transform:translateX(-50%) translateY(60px);
    background:var(--dark); color:#fff;
    padding:.72rem 1.5rem; border-radius:50px;
    font-size:.88rem; z-index:400; white-space:nowrap;
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    display:flex; align-items:center; gap:.5rem;
    pointer-events:none;
  }
  .toast.show { transform:translateX(-50%) translateY(0); }

  /* ─── WHATSAPP FLOATING BUTTON ─── */
  .wa-float {
    position:fixed; bottom:2rem; right:2rem;
    background:var(--wa-green); color:#fff;
    border-radius:50px; z-index:150;
    display:flex; align-items:center; gap:.65rem;
    padding:.85rem 1.4rem;
    box-shadow:0 6px 24px rgba(37,211,102,.45);
    text-decoration:none; font-weight:700; font-size:.9rem;
    transition:transform .2s, box-shadow .2s;
    animation:waFloat 3s ease-in-out infinite;
  }
  .wa-float:hover {
    transform:scale(1.06) translateY(-2px);
    box-shadow:0 10px 32px rgba(37,211,102,.55);
    animation:none;
  }
  @keyframes waFloat {
    0%, 100% { transform:translateY(0); }
    50%       { transform:translateY(-5px); }
  }

  /* ─── ANIMATIONS ─── */
  .reveal { opacity:0; transform:translateY(28px); transition:opacity .55s ease, transform .55s ease; }
  .reveal.visible { opacity:1; transform:translateY(0); }

  /* ─── RESPONSIVE ─── */
  @media(max-width:1100px) {
    .delivery-grid { gap:1.8rem; }
    #apropos { grid-template-columns:1fr; }
    .about-img-wrap { height:340px; }
    .about-badge { right:1rem; }
  }

  @media(max-width:768px) {
    nav { padding:0 4%; }
    .nav-links {
      display:none;
      position:absolute; top:100%; left:0; right:0;
      background:var(--white); border-radius:0 0 16px 16px;
      box-shadow:0 4px 20px rgba(0,0,0,.1);
      flex-direction:column; gap:0; padding:1rem 0;
      border:1px solid rgba(224,62,45,.1); border-top:none;
      transform:translateY(-100%); opacity:0;
      transition:transform .3s ease, opacity .3s ease;
      pointer-events:none;
    }
    .nav-links.open {
      display:flex; transform:translateY(0); opacity:1; pointer-events:auto;
    }
    .nav-links li { width:100%; text-align:center; }
    .nav-links a { display:block; padding:1rem 2rem; border-bottom:1px solid rgba(0,0,0,.05); }
    .status-indicator { display:none; } /* Hidden on mobile nav to save space */
    .mobile-menu-btn { display:block; }
    .specials-grid { grid-template-columns:1fr; }
    .menu-grid { grid-template-columns:1fr; }
    .reviews-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr; gap:2rem; }
    section { padding:4rem 4%; }
    .hero-content { padding-top:80px; }
    /* WhatsApp float — smaller on mobile */
    .wa-float { padding:.75rem 1.2rem; font-size:.82rem; bottom:1.5rem; right:1.2rem; }
  }

  @media(max-width:1024px) {
    .hero h1 { font-size:clamp(2.8rem,6vw,5rem); }
    .hero p { font-size:1rem; }
    .hero-btns { flex-direction:column; align-items:flex-start; gap:.8rem; }
    .hero-stats { flex-wrap:wrap; justify-content:center; }
    .stat { padding:0 1.5rem 0 0; }
    .specials-grid { gap:1.2rem; }
    .menu-grid { gap:1.2rem; }
    .reviews-grid { gap:1.2rem; }
    .delivery-grid { gap:1.5rem; }
    .footer-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
    .about-features { gap:1rem; }
    .feat-row { gap:.8rem; }
  }

  @media(max-width:767px) {
    nav { height:64px; padding:0 3%; }
    .logo { font-size:1.3rem; }
    .btn-cart { padding:.5rem 1.2rem; font-size:.85rem; }
    .hero { min-height:90vh; }
    .hero-content { padding:0 3%; padding-top:70px; }
    .hero h1 { font-size:clamp(2.2rem,8vw,4rem); margin-bottom:1rem; }
    .hero p { font-size:.95rem; margin-bottom:1.8rem; }
    .hero-btns { margin-bottom:2.5rem; }
    .btn-primary, .btn-outline { padding:.7rem 1.5rem; font-size:.9rem; }
    .hero-stats { padding-top:1.2rem; gap:.5rem; }
    .stat { padding:0 1rem 0 0; }
    .stat-val { font-size:1.8rem; }
    .stat-lbl { font-size:.75rem; }
    .hero-scroll { bottom:1.5rem; }
    section { padding:3rem 3%; }
    .sec-title { font-size:clamp(1.8rem,5vw,2.5rem); margin-bottom:.6rem; }
    .sec-sub { font-size:.9rem; margin-bottom:2.5rem; }
    .specials-grid { gap:1rem; }
    .special-card { aspect-ratio:3/4; }
    .filter-tabs { margin-bottom:2rem; flex-wrap:wrap; gap:.5rem; }
    .tab { padding:.45rem 1.2rem; font-size:.88rem; }
    .menu-grid { gap:1rem; }
    .menu-card-img { height:160px; }
    .menu-card-body { padding:.9rem 1rem 1rem; }
    .menu-card-name { font-size:1.05rem; }
    .menu-card-desc { font-size:.8rem; margin-bottom:.8rem; }
    .menu-price { font-size:1.2rem; }
    .btn-add { width:35px; height:35px; }
    #apropos { gap:3rem; }
    .about-img-wrap { height:280px; }
    .about-badge { bottom:1.5rem; right:.5rem; padding:1rem 1.4rem; }
    .about-badge-num { font-size:1.8rem; }
    .review-card { padding:1.4rem; }
    .delivery-grid { gap:1.5rem; }
    .promo-banner { padding:2.5rem 1.5rem; }
    .promo-banner h2 { font-size:1.8rem; margin-bottom:.6rem; }
    .promo-banner p { font-size:.9rem; margin-bottom:1.3rem; }
    footer { padding:3rem 3% 1.5rem; }
    .footer-grid { gap:2rem; }
    .cart-drawer { width:340px; }
  }

  @media(max-width:480px) {
    nav { height:60px; }
    .logo { font-size:1.2rem; }
    .btn-cart { padding:.45rem 1rem; font-size:.8rem; gap:.4rem; }
    .hero { min-height:85vh; }
    .hero h1 { font-size:clamp(2rem,9vw,3.5rem); margin-bottom:.9rem; }
    .hero p { font-size:.9rem; margin-bottom:1.5rem; max-width:100%; }
    .hero-scroll { display:none; }
    section { padding:2.5rem 4%; }
    .reviews-grid { gap:.9rem; }
    .cart-drawer { width:100vw; }
    .promo-row { flex-direction:column; }
    #promoInput, .btn-promo { border-radius:12px; }
    .wa-float-label { display:none; }
    .wa-float { padding:.9rem; border-radius:50%; }
    footer { padding:2.5rem 4% 1.2rem; }
    .footer-grid { gap:1.8rem; }
  }

  @media(max-width:320px) {
    .hero h1 { font-size:clamp(1.8rem,10vw,3rem); }
    .btn-primary, .btn-outline { padding:.6rem 1.1rem; font-size:.8rem; }
    .stat-val { font-size:1.4rem; }
    .promo-banner h2 { font-size:1.4rem; }
  }

  @media(min-width:1440px) {
    nav { padding:0 8%; }
    .hero-content { max-width:800px; }
    .hero h1 { font-size:clamp(4rem,6vw,7rem); }
    section { padding:7rem 8%; }
    .specials-grid { grid-template-columns:repeat(3,1fr); gap:2rem; }
    .menu-grid { grid-template-columns:repeat(4,1fr); gap:2rem; }
    .reviews-grid { grid-template-columns:repeat(3,1fr); gap:2rem; }
    .delivery-grid { grid-template-columns:repeat(4,1fr); gap:2.5rem; }
    .footer-grid { grid-template-columns:1.7fr 1fr 1.2fr; gap:4rem; }
    #apropos { grid-template-columns:1fr 1fr; gap:6rem; }
    .about-img-wrap { height:550px; }
  }

  @media(min-width:1920px) {
    nav { padding:0 12%; }
    .hero-content { max-width:1000px; padding:0 12%; }
    section { padding:8rem 12%; }
    .about-img-wrap { height:600px; }
  }