/* ---------- COLOURS & FONTS ---------- */
:root {
  --clr-primary: #17256a;   /* navy */
  --clr-accent:  #ffd500;   /* yellow */
  --clr-highlight:#e22d30;  /* subtle red */
  --clr-grey-100:#f5f5f5;
  --clr-grey-300:#e0e0e0;

  --ff-heading:"Poppins",sans-serif;
  --ff-body:"Open Sans",sans-serif;

  --fs-body:clamp(.95rem,.35vw + .9rem,1rem);
  --fs-h2:  clamp(1.4rem,1vw + 1rem,1.6rem);
  --fs-h1:  clamp(2rem,3vw + 1rem,2.5rem);
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:400 var(--fs-body)/1.6 var(--ff-body);color:#333;background:#fff}
img{max-width:100%;display:block;object-fit:cover}
a{text-decoration:none;color:inherit}
button{border:none;background:none;font-family:var(--ff-heading);cursor:pointer}
ul{list-style:none}

/* ---------- GLOBAL UTILS ---------- */
.hide-mobile{display:none}@media(min-width:768px){.hide-mobile{display:inline-block}}
.brand-line{height: 4px;background:var(--clr-accent)}
.btn{display:inline-block;padding:.7rem 1.6rem;border-radius:6px;
     font:700 1rem var(--ff-heading);background:var(--clr-accent);color:var(--clr-primary);
     transition:transform .25s,background .25s,color .25s}
.btn:hover,.btn:focus-visible{transform:translateY(-2px) scale(1.04);
     background:var(--clr-primary);color:#fff}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease-out,transform .8s ease-out}
.fade   {transform:translateY(40px)}
.slide-left {transform:translateX(-40px)}
.slide-right{transform:translateX(40px)}
.zoom  {transform:scale(.88)}
.reveal.in-view{opacity:1;transform:none}

/* ---------- NAVBAR ---------- */
.navbar{background:var(--clr-grey-100);border-bottom:1px solid var(--clr-grey-300)}
.nav-container{display:flex;align-items:center;justify-content:space-between;padding:.8rem 6vw}
.logo img {
  height: 150px;         /* common desktop size */
  width: auto;          /* preserve aspect-ratio */
  max-width: 100%;      /* don’t overflow its box */
  display: block;       /* removes stray whitespace under images */
}
.nav-toggle{display:inline-flex;flex-direction:column;gap:4px;width:1.6rem;height:1.25rem;z-index:1001}
.bar{width:100%;height:2px;background:var(--clr-primary);transition:transform .3s,opacity .3s}
.nav-links{position:fixed;inset:0 0 0 35%;background:#fff;padding:5rem 2rem;
           transform:translateX(100%);transition:transform .4s ease-out;
           display:flex;flex-direction:column;gap:1.5rem;font-weight:600;z-index:1000}
.nav-links ul{display:grid;gap:1.25rem}
.nav-links.open{transform:translateX(0);box-shadow:-4px 0 14px rgba(0,0,0,.12)}
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;
                    background:var(--clr-highlight);transition:width .3s}
.nav-links a:hover::after{width:100%}
.nav-toggle[aria-expanded="true"] .bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bar:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(min-width:768px){
  .nav-toggle{display:none}
  .nav-links{all:unset;display:flex;align-items:center;gap:2rem}
  .nav-links ul{display:flex;gap:2rem}
}
/* 1 ▸ shut off the old underline completely */
.nav-links a::after { display:none !important; }

/* 2 ▸ give the new yellow “pills” a little lift on hover / focus */
.main-nav a:hover,
.main-nav a:focus-visible {
  transform: translateY(-2px) scale(1.04);   /* same motion as .btn */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
/* --- NAV LINK “PILL” STYLING ----------------------------------- */
.main-nav a{
  display:inline-block;
  padding:.55rem 1.1rem;
  border:2px solid transparent;
  border-radius:28px;
  font-weight:600;
  transition:background .25s,color .25s,border-color .25s;
}
.main-nav a:hover,
.main-nav a:focus-visible{
  background:var(--clr-accent);
  color:var(--clr-primary);
  border-color:var(--clr-accent);
}

/* make active section stand out (optionally add .active via JS) */
.main-nav a.active{
  background:var(--clr-accent);
  color:var(--clr-primary);
}

/* --- SOCIAL ICONS IN NAV --------------------------------------- */
.nav-social{
  display:flex;
  gap:.75rem;
  margin-inline:1.2rem 0;
}
.nav-social a{
  width:32px;height:32px;
  display:grid;place-items:center;
  border:2px solid var(--clr-accent);
  border-radius:50%;
  transition:background .25s,border-color .25s;
}
.nav-social i{color:var(--clr-accent);font-size:.9rem;transition:color .25s}
.nav-social a:hover,
.nav-social a:focus-visible{
  background:var(--clr-accent);
  border-color:var(--clr-accent);
}
.nav-social a:hover i,
.nav-social a:focus-visible i{color:var(--clr-primary)}
.btn-phone {
  background-color: #e22d30;    /* red */
  color: #fff;                  /* white text/icon */
  padding: 0.5rem 1rem;         /* match your other .btn */
  border-radius: 0.25rem;       /* or whatever your .btn uses */
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;                  /* space between icon and number */
}

/* optional hover state */
.btn-phone:hover {
  background-color: #c71f26;
  text-decoration: none;
}

/* --- RESPONSIVE TWEAKS ----------------------------------------- */
@media (max-width:768px){
  /* stack list items vertically inside the slide-out drawer */
  .main-nav{display:grid;gap:1.1rem;margin-bottom:1.5rem}
  .nav-social{margin-inline:0 0}
  .nav-social a{width:36px;height:36px}
  /* give nav “pills” full-width feel on really narrow screens */
  .main-nav a{padding:.65rem 1.2rem}
}
@media (max-width: 768px){
  /* higher-specificity selector beats .nav-links ul rule */
  .nav-links .nav-social{
    display:flex !important;          /* row-layout */
    flex-direction:row !important;
    justify-content:center;
    gap:.9rem;
    margin-bottom:1.5rem;             /* breath before the SEE MENU CTA */
  }

  /* make each <li> behave like an inline-block */
  .nav-social li{
    display:inline-flex;
  }
}
/* ---------- HERO ---------- */
.hero {
  position: relative;
  height: 65vh;          
  min-height: 320px;     
  background: #c4c4c4 url('images/banner.jpg') center/cover no-repeat;
  display: grid;
  place-items: center;
  text-align: center;
}
.hero-tagline{
  font: 600 clamp(1.1rem, 2vw + .4rem, 1.6rem) var(--ff-heading);
  font-size: 40px;
  color:#fff;
  letter-spacing:.015em;
  margin:.4rem 0 1.2rem;
  text-shadow:0 2px 4px rgba(0,0,0,.4);   /* matches the main heading glow */
}
.hero::after{content:"";position:absolute;inset:0;background:rgba(23,37,106,.24)}
.hero-content{position:relative;z-index:1}
.hero-title{font:700 var(--fs-h1) var(--ff-heading);font-size:100px; letter-spacing:.02em;color:#e22d30;
            text-shadow:0 3px 6px #00000071;margin-bottom:1.4rem}
/* ---------- SPLIT SECTIONS ---------- */
.split{display:flex;flex-direction:column;gap:2rem;align-items:center;
       padding:4rem 6vw;max-width:1200px;margin-inline:auto}
.split--reverse{flex-direction:column-reverse}@media(min-width:900px){.split{flex-direction:row}
  .split--reverse{flex-direction:row-reverse}}
.split__img img{border-radius:12px}
.split__text h2{font:700 var(--fs-h2) var(--ff-heading);color:var(--clr-primary);margin-bottom:.8rem}
.split__text p{margin-bottom:1.2rem}

/* ---------- PARALLAX-STYLE BANNER ---------- */
.banner{height:50vh;background:#c4c4c4 url('images/halal_chicken.jpg') center/cover fixed;
        display:grid;place-items:center}
.banner__text{font:700 1.6rem var(--ff-heading);text-align:center;color:#fff;
              text-shadow:0 3px 6px rgba(0,0,0,.45)}
.halal-logo{
  width: clamp(120px, 40vw, 240px);  
  height: auto;
  display: block;
  margin-inline: auto;                
}
@media (max-width: 599px){
  .hero-title{
    font-size: clamp(1.6rem, 6vw + .5rem, 2rem);  /* was bigger */
    line-height: 1.1;
  }

  /* optional: tighten tagline as well */
  .hero-tagline{
    font-size: clamp(1rem, 3.8vw + .4rem, 1.25rem);
  }
}
/* ---------- GALLERY ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
         gap:1.5rem;padding:4rem 6vw;background:var(--clr-grey-100)}
.gallery__item{position:relative;overflow:hidden;border-radius:12px}
.gallery__item img{transition:transform .5s}
.gallery__item:hover img{transform:scale(1.07)}
.gallery__item figcaption{position:absolute;inset:0;display:grid;place-items:center;
                           font:700 1.2rem var(--ff-heading);color:#fff;
                           background:rgba(23,37,106,.55);opacity:0;transition:opacity .3s}
.gallery__item:hover figcaption{opacity:1}

/* ---------- DEALS ---------- */
.heading{display:flex;align-items:center;gap:.6rem;padding:4rem 6vw 2rem}
.heading-accent{width:22px;height:4px;background:var(--clr-highlight)}
.deal-cards{display:grid;gap:1.5rem;padding-inline:6vw 6vw 6rem}
@media(min-width:600px){.deal-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:992px){.deal-cards{grid-template-columns:repeat(3,1fr)}}
.deal-card{background:#fff;border:2px solid var(--clr-accent);overflow:hidden;border-radius:12px;
           transition:transform .3s,box-shadow .3s,border-color .3s}
.deal-card:hover{transform:translateY(-6px);box-shadow:0 14px 24px rgba(0,0,0,.12);
                 border-color:var(--clr-highlight)}
.deal-card__body{padding:1rem}
.deal-card__body h3{font:700 1.125rem var(--ff-heading);margin-bottom:.4rem}
.price{font-weight:700;color:var(--clr-highlight)}

/* ---------- TAGLINE & FOOTER ---------- */
.tagline{text-align:center;font-weight:600;letter-spacing:.02em;color:var(--clr-primary);font-size: 20px;
         padding:2rem 6vw 4rem}
.footer{background:var(--clr-grey-100);text-align:center;padding:1.5rem;font-size:.875rem}
.site-footer{
  background: var(--clr-primary);
  color:#fff;
  padding:3rem 6vw 2rem;
}
.footer-inner{
  display:grid;
  gap:2rem;
  max-width:1200px;
  margin-inline:auto;
}
@media(min-width:700px){
  .footer-inner{grid-template-columns:2fr 1fr 1fr}
}

/* brand box */
.footer-logo{width: 320px;margin-bottom:1rem}
.footer-brand p{max-width:280px;font-size:.95rem;line-height:1.5}

/* column headings */
.footer-col h3{
  font:700 .95rem var(--ff-heading);
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--clr-accent);          /* yellow bar titles */
  margin-bottom:1rem;
}

/* nav lists */
.footer-col ul{display:grid;gap:.55rem;font-weight:600}
.footer-col a{transition:color .25s}
.footer-col a:hover{color:var(--clr-highlight)} /* subtle red accent on hover */

/* social icons */
.social{
  display:flex;gap:.8rem;margin-top:1.3rem
}
.social a{
  width:34px;height:34px;display:grid;place-items:center;
  border:2px solid var(--clr-accent);border-radius:50%;
  transition:background .3s,border-color .3s
}
.social i{font-size:.9rem;color:var(--clr-accent);transition:color .3s}
.social a:hover{
  background:var(--clr-accent);
  border-color:var(--clr-accent);
}
.social a:hover i{color:var(--clr-primary)}

/* copyright */
.footer-copy{
  margin-top:2.5rem;
  font-size:.875rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,.15);
  padding-top:1.2rem;
  opacity:.8;
}
/* ---------- COOKIE BANNER ---------- */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;display:flex;
               flex-direction:column;gap:1rem;align-items:center;
               padding:1rem 1.2rem;background:var(--clr-primary);color:#fff;
               transform:translateY(100%);transition:transform .4s ease-out;z-index:2000}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner p{max-width:920px;text-align:center}
.cookie-banner a{color:var(--clr-accent);text-decoration:underline}
.cookie-banner .btn{flex-shrink:0}
/* ----------------------------------------------------------------
   MOBILE OPTIMISATIONS  (∼480–599 px and below)
   -------------------------------------------------------------- */
@media (max-width: 599px) {

  /* ----- universal rhythm: shrink paddings & gaps ----- */
  :root{
    --fs-body: clamp(.9rem, 2.5vw + .5rem, 1rem);
    --fs-h2  : clamp(1.2rem, 3vw  + .75rem, 1.4rem);
    --fs-h1  : clamp(1.6rem, 5vw  + .9rem, 2rem);
  }
  section, .split, .gallery, .menu-grid, .features{
    padding-inline: 4vw;
  }

  /* ----- navbar drawer: wider tap-targets ----- */
  .main-nav a         { padding: .75rem 1.25rem; }
  .nav-social a       { width: 40px; height: 40px; }

  /* ----- hero: less vertical hogging, centred CTA ----- */
  .hero      { height: 70vh; min-height: 340px; }
  .hero-title{ margin-bottom: .6rem; text-wrap: balance; }
  .btn.accent,
  .btn.btn-accent{ display: inline-block; margin-top: .6rem; }

  /* ----- split sections: stack neatly ----- */
  .split,
  .split--reverse{
    flex-direction: column !important;
    text-align: center;
  }
  .split__img img{ width: 100%; height: auto; }

  /* ----- badges & features rows: wrap → swipe ----- */
  .badges,
  .features{
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .badges > *,
  .features > *{
    flex: 0 0 auto;
    scroll-snap-align: centre;
  }

  /* ----- deals: 1 card per row, bigger thumb ----- */
  .deal-cards              { grid-template-columns: 1fr; }
  .deal-card img           { height: 48vw; object-fit: cover; }

  /* ----- gallery: 2-col masonry ----- */
  .gallery{
    grid-template-columns: repeat(2, 1fr);
    gap: .8rem;
  }

  /* ----- footer: single column for clarity ----- */
  .footer-inner{ grid-template-columns: 1fr; text-align: center; }
  .footer-col  ul,
  .footer-brand p{ justify-self: center; }

}

/* Slightly wider phones / mini tablets (600-767 px) */
@media (min-width: 600px) and (max-width: 767px){
  .hero{ height: 80vh; }

  .deal-cards{ grid-template-columns: repeat(2, 1fr); }
  .gallery   { grid-template-columns: repeat(3, 1fr); }
}
/* ==============================================================
   LANDSCAPE-PHONE PATCH  (wide ≤ 899 px  &  height ≤ 500 px)
   ============================================================== */
@media (max-width: 899px) and (max-height: 500px) and (orientation: landscape){

  /* 1 ▸ keep text compact so hero doesn’t dominate */
  .hero-title   { font-size: clamp(1.4rem, 4vw + .5rem, 1.9rem); }
  .hero-tagline { font-size: clamp(.95rem, 2.5vw + .4rem, 1.2rem); }
  .hero         { height: 85vh; }                /* slightly shorter */

  /* 2 ▸ stick with the 1-column mobile grids */
  .deal-cards   { grid-template-columns: 1fr; }
  .gallery      { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr; text-align: center; }

  /* 3 ▸ split sections stay stacked, not side-by-side */
  .split, .split--reverse{
    flex-direction: column !important;
    text-align: center;
  }

  /* 4 ▸ navigation drawer still fills 65% but isn’t too tall */
  .nav-links{
    top: 0; bottom: 0;               /* remove potential overflow */
    overflow-y: auto;
  }
}
/* =========================================================
   FOOTER — address & opening-hours styling
   ========================================================= */

.footer-address{
  font-style: normal;        /* keeps address upright */
  line-height: 1.5;
  margin-bottom: .85rem;
}

.footer-phone{
  font-weight: 600;
  margin-bottom: 1.25rem;
}
.footer-phone a{
  color: var(--clr-accent);
}
.footer-phone a:hover{
  color: #fff;
}

.hours-title{
  font: 700 .9rem var(--ff-heading);
  text-transform: uppercase;
  letter-spacing: .02em;
  margin-bottom: .6rem;
  color: var(--clr-accent);
}

/* hours list */
.hours{
  display: grid;
  gap: .45rem;
  font-size: .95rem;
  line-height: 1.4;
  margin-bottom: 1.6rem;
}
.hours span{
  display: inline-block;
  width: 60px;               /* aligns the days */
  font-weight: 600;
  color: #fff;
}

/* two-column hours on wider screens */
@media (min-width: 700px){
  .hours{
    grid-template-columns: repeat(2, max-content);
    column-gap: 1.5rem;
  }
}
/* =========================================================
   LEGAL LINKS UNDER TAGLINE
   ========================================================= */
.legal-links{
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;               /* row-gap  /  column-gap */
  font-size: .9rem;
  margin-top: 1.2rem;
}
.legal-links a{
  display:inline-block;
  padding:.45rem 1rem;                 /* pill shape */
  font:700 1rem var(--ff-heading);     /* bigger & bolder */
  color:var(--clr-primary);
  background:var(--clr-accent);        /* always yellow */
  border-radius:20px;
  transition:background .25s,color .25s,transform .25s;
}

.legal-links a:hover,
.legal-links a:focus-visible{
  background: var(--clr-highlight);   /* red (#e22d30) */
  color: #fff;
  transform: translateY(-2px) scale(1.04);
}
/* stack nicely on phones */
@media (max-width: 699px){
  .legal-links{
    justify-content: center;
  }
}
/* ----------------------------------------------------------------
   COOKIE POLICY — prettier 2-col cards + heading styles
   ---------------------------------------------------------------- */

.cookie-types {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.cookie-card {
  background: var(--clr-grey-100);
  padding: 1.25rem 1rem;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.cookie-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}
.cookie-card h3 {
  font: 700 1.1rem var(--ff-heading);
  color: #e22d30;
  margin-bottom: .6rem;
}

.legal-page h2 {
  font: 700 var(--fs-h2) var(--ff-heading);
  color: #17256a;
  margin-top: 2.5rem;
  margin-bottom: .8rem;
  border-bottom: 2px solid var(--clr-grey-300);
  display: inline-block;
}

.legal-page p {
  line-height: 1.58;
  margin-bottom: 1rem;
}

@media (max-width: 600px) {
  .cookie-types {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   ORDER PAGE STYLES
   ========================================================================== */

/* Utility to hide until toggled via JS */
.hidden { display: none !important; }

/* 1. Shortcut Bar */
.order-nav {
  background: #fff;
  padding: 1rem 6vw;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  margin-bottom: 2rem;
}
.order-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
}
.order-shortcuts button {
  font: 600 .95rem var(--ff-heading);
  padding: .5rem 1.2rem;
  border: 2px solid var(--clr-accent);
  border-radius: 28px;
  background: none;
  color: var(--clr-accent);
  transition: background .25s,color .25s,transform .2s;
}
.order-shortcuts button:hover,
.order-shortcuts button.active {
  background: var(--clr-accent);
  color: var(--clr-primary);
  transform: translateY(-2px);
}

/* 2. Category Grid */
.category-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-bottom: 2.5rem;
}
.category-card {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
  cursor: pointer;
  transition: transform .3s, box-shadow .3s;
}
.category-card img {
  width: 100%;
  height: auto;
  display: block;
}
.category-card h3 {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: .6rem .8rem;
  background: rgba(23,37,106,.7);
  color: #fff;
  font: 700 1.1rem var(--ff-heading);
  text-align: center;
}
.category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}

/* 3. Product List */
.product-list {
  margin-bottom: 3rem;
}
.product-list {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 700px) {
  .product-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .product-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.product-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,.06);
  display: flex;
  flex-direction: column;
  transition: transform .3s, box-shadow .3s;
}
.product-card img {
  width: 100%;
  object-fit: cover;
}
.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.product-body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
  flex: 1;
}
.product-body h4 {
  font: 700 1.1rem var(--ff-heading);
  margin: 0;
  color: var(--clr-primary);
}
.product-body .price {
  font-weight: 700;
  color: var(--clr-accent);
}
.tooltip-btn {
  position: relative;
  background: none;
  border: none;
  font-size: 1rem;
  color: var(--clr-primary);
  cursor: pointer;
  margin-bottom: .6rem;
}
.tooltip-btn .tooltip {
  display: none;
  position: absolute;
  top: 110%;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border: 1px solid var(--clr-grey-300);
  padding: .6rem;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  white-space: nowrap;
  font-size: .85rem;
  z-index: 10;
}
.tooltip-btn:hover .tooltip,
.tooltip-btn:focus .tooltip {
  display: block;
}

/* 4. Cart Drawer */
.cart-drawer {
  position: fixed;
  top: 0; right: 0;
  width: 300px;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 16px rgba(0,0,0,.1);
  padding: 2rem 1.5rem;
  transform: translateX(100%);
  transition: transform .4s ease-out;
  z-index: 2000;
  display: flex;
  flex-direction: column;
}
.cart-drawer.open {
  transform: translateX(0);
}
.cart-drawer h2 {
  font: 700 1.4rem var(--ff-heading);
  margin-bottom: 1rem;
}
.cart-items {
  flex: 1;
  overflow-y: auto;
  margin-bottom: 1rem;
  gap: .8rem;
}
.cart-items li {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
}
.cart-total {
  font: 700 1.2rem var(--ff-heading);
  margin-bottom: 1rem;
}
.cart-drawer .checkout {
  align-self: stretch;
}
/* ==========================================================================
   ORDER PAGE (STRIPPED-DOWN): DELIVERY BANNER + MENU ACCORDION
   ========================================================================== */

/* — Delivery banner — */
.delivery-banner {
  background: var(--clr-highlight);   /* red */
  color: #fff;
  text-align: center;
  padding: 3rem 6vw;
  margin-bottom: 3rem;
}
.delivery-banner h1 {
  font: 700 clamp(1.5rem,4vw + 1rem,2.25rem) var(--ff-heading);
  margin-bottom: 1.5rem;
}
.delivery-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
.delivery-buttons .btn-outline {
  border-color: #fff;
  color: #fff;
  background: none;
  padding: .75rem 1.5rem;
  font: 600 1rem var(--ff-heading);
  transition: background .25s,color .25s,transform .2s;
}
.delivery-buttons .btn-outline:hover,
.delivery-buttons .btn-outline:focus-visible {
  background: #fff;
  color: var(--clr-highlight);
  transform: translateY(-2px) scale(1.02);
}

/* — Menu accordion — */
.menu-accordion h2 {
  text-align: center;
  font: 700 clamp(1.75rem,4vw + 1rem,2.5rem) var(--ff-heading);
  margin-bottom: 2rem;
  color: var(--clr-primary);
}
.menu-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
}
.menu-grid details {
  border: 2px solid var(--clr-grey-300);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  transition: box-shadow .3s;
}
.menu-grid details:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.menu-grid summary {
  cursor: pointer;
  padding: .85rem 1rem;
  font: 600 var(--fs-body) var(--ff-body);
  list-style: none;
  position: relative;
}
.menu-grid summary::marker { content: none; } /* remove default arrow */
.menu-grid summary::-webkit-details-marker { display: none; }
.menu-grid summary::before {
  content: "_+"; /* custom plus arrow */
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 700;
  color: var(--clr-highlight);
}
.menu-grid details[open] summary::before {
  content: "\2212"; /* minus sign */
  color: var(--clr-highlight);
}
.menu-grid details[open] {
  background: var(--clr-grey-100);
}
.menu-grid details ul {
  margin: 0;
  padding: 0 1rem 1rem 1.5rem;
  list-style: disc;
}
.menu-grid details ul li {
  margin-bottom: .5rem;
  line-height: 1.4;
}

/* — Responsive tweaks — */
@media (max-width: 600px) {
  .delivery-banner { padding: 2.5rem 4vw; }
  .menu-grid { grid-template-columns: 1fr; }
}
/* ==========================================================================
   ORDER PAGE REFINEMENTS 
   ========================================================================== */

/* 1. Desktop-only extra spacing before the footer */
@media (min-width: 900px) {
  .order-page {
    margin-bottom: 6rem; /* gives breathing room above the footer */
  }
}

/* 2. Slimmer Delivery banner */
.delivery-banner {
  padding: 2.5rem 6vw;       /* less tall */
  margin-bottom: 3rem;       /* space before menu */
}
.delivery-banner h1 {
  font-size: clamp(1.5rem, 3.5vw + .8rem, 2rem);
  margin-bottom: 1.2rem;
}
.delivery-buttons .btn-outline {
  padding: .6rem 1.4rem;
  font-size: .95rem;
  border-width: 2px;
}

/* 3. Tighter “Our Dixy Menu” heading */
.menu-accordion h2 {
  margin-bottom: 1.5rem;
  letter-spacing: .03em;
}

/* 4. Make <details> summaries look like pills */
.menu-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
}
.menu-grid details {
  background: none;
  border: none;
}
.menu-grid summary {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.2rem;
  background: #fff;
  border: 1px solid var(--clr-grey-300);
  border-radius: 6px;
  font: 600 var(--fs-body) var(--ff-body);
  cursor: pointer;
  transition: background .25s, color .25s, box-shadow .25s, transform .25s;
  position: relative;
}
.menu-grid summary:hover {
  background: var(--clr-accent);
  color: var(--clr-primary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

/* remove default arrow and custom plus/minus */
.menu-grid summary::-webkit-details-marker,
.menu-grid summary::marker {
  display: none;
}

/* Add a simple plus/minus icon via ::after */
.menu-grid summary::after {
  content: '+';
  font-weight: 700;
  margin-left: .6rem;
  color: var(--clr-highlight);
}
.menu-grid details[open] summary::after {
  content: '–';
}

/* Expand panel styling */
.menu-grid details[open] summary {
  background: var(--clr-highlight);
  color: #fff;
  border-color: var(--clr-highlight);
  box-shadow: none;
}
.menu-grid details[open] summary:hover {
  background: var(--clr-highlight);
  color: #fff;
  transform: none;
}
.menu-grid details ul {
  margin: .5rem 0 1rem 1.2rem;
  padding: 0;
  list-style: disc;
}
.menu-grid details ul li {
  margin-bottom: .4rem;
  line-height: 1.4;
}

/* 5. Responsive tweaks */
@media (max-width: 600px) {
  .delivery-banner {
    padding: 2rem 4vw;
    margin-bottom: 2.5rem;
  }
  .menu-grid {
    grid-template-columns: 1fr;
  }
}
/* ====================================================================
   ORDER PAGE – DELIVERY BUTTONS + MENU SHOWCASE
   ==================================================================== */

/*  general heading helper  */
.section-heading{
  text-align:center;
  font:700 clamp(1.6rem,4vw + 1rem,2.3rem) var(--ff-heading);
  color:var(--clr-primary);
  margin-bottom:2rem;
}

/* —— delivery buttons —— */
.delivery-options{
  margin-block:3rem 4rem;
}
.platform-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:center;
}
.platform-btn{
  display:inline-block;
  font:700 1rem var(--ff-heading);
  padding:.85rem 2.4rem;
  border-radius:40px;
  background:var(--clr-accent);
  color:var(--clr-primary);
  transition:background .25s,transform .25s;
  box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.platform-btn:hover,
.platform-btn:focus-visible{
  background:#e22d30;
  color:#fff;
  transform:translateY(-3px);
}

/* —— menu showcase —— */
.menu-showcase{
  margin-bottom:5rem;            /* extra breathing-room above footer */
}
.menu-grid{
  display:grid;
  gap:2rem;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
}
.menu-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.06);
  transition:transform .3s,box-shadow .3s;
}
.menu-card img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.menu-card span{
  font:600 1.05rem var(--ff-body);
  padding:1rem .5rem 1.35rem;
  color:var(--clr-primary);
}
.menu-card:hover{
  transform:translateY(-6px);
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}

/* —— responsive tweaks —— */
@media(max-width:600px){
  .platform-btn{ padding:.75rem 1.6rem; }
  .menu-grid{ gap:1.3rem; }
}
.platform-btn img{
  height: 38px;        /* tweak if a logo looks cramped or tiny */
  width: auto;
  display: block;
  filter: none;        /* keeps original brand colours */
}
/* — centering thumbnails inside button — */
.menu-card{
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 14px rgba(0,0,0,.06);
  transition:transform .3s,box-shadow .3s;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:1rem;
}
.menu-card img{
  width:100%;
  max-width:140px;     /* keeps image nice and centred */
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}
.menu-card span{
  margin-top:.75rem;
  font:600 1.05rem var(--ff-body);
  color:var(--clr-primary);
}
.menu-card:hover{
  transform:translateY(-6px);
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}

/* — submenu collapse animation — */
.submenu{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .45s ease, opacity .45s ease;
  background:var(--clr-grey-100);
  border-radius:0 0 12px 12px;
  margin-top:.25rem;
}
.menu-item.open .submenu{
  opacity:1;
  max-height:320px;   /* big enough for longest list */
}
.submenu ul{
  padding:1rem 1.25rem;
  margin:0;
  list-style:disc;
}
.submenu li{
  margin-bottom:.4rem;
  line-height:1.4;
}

/* keep grid responsive */
.menu-grid{
  display:grid;
  gap:1.75rem;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
}
/* =========================================================
   PRETTIER SUB-MENU LIST ITEMS
   ========================================================= */
.submenu ul{
  list-style: none;   
  padding: 1rem 1.6rem;             /* a bit wider */
}

.submenu li{
  position: relative;
   padding: .5rem .25rem .5rem 1.75rem;/* space for custom bullet */
  font: 600 1.05rem var(--ff-body);   /* bolder & bigger */
  line-height: 1.45;
  color: var(--clr-primary);
  transition: background .25s, transform .2s;
  cursor: pointer;                  /* feels tappable */
}

/* yellow bullet dot */
.submenu li::before{
  content: '';
  position: absolute;
  top: 50%; left: 0;
  width: .55rem; height: .55rem;
  border-radius: 50%;
  background: var(--clr-accent);     /* bright yellow */
  transform: translateY(-50%);
}

/* hover / focus effect */
.submenu li:hover,
.submenu li:focus-visible{
  background: rgba(23,37,106,.06);   /* soft navy tint */
  transform: translateX(2px);        /* tiny nudge */
}
