/* =========================================================
   RESPONSIVE – containers & breakpoints
   ========================================================= */
@media (min-width: 1200px) {
  .page-wrapper .container {
    max-width: 1140px;
  }
}

@media (min-width: 1500px) {
  .page-wrapper .container {
    max-width: 1440px;
  }
}

@media (max-width: 1499px) {
  /* Hero */
  .hero .carousel-control-prev i,
  .hero .carousel-control-next i { font-size: 38px; }

  /* Flavours */
  .flavours-intro { padding: 44px 0 62px; }
  .flavours-title { font-size: 39px; margin-bottom: 76px; }
  .drip-copy { font-size: 28px; letter-spacing: 1px; }
  .drip-heading { font-size: 60px; }
  .sauce-tile { width: 221px; }
  .sauce-info .sauce-name { font-size: 21px; }
  .sauce-info p { font-size: 14px; }

  /* Products, rewards, classic to extreme */
  .rewards-text { font-size: 25px; max-width: 410px; }
  .blast-xl { font-size: 108px; }
  .blast-xxl { font-size: 146px; }
  .blast-tray-1, .blast-tray-4 { width: 260px; }
  .blast-tray-2, .blast-tray-3 { width: 280px; }

  /* Footer */
  .footer-title { font-size: 34px; }
}

@media (max-width: 1199px) {
  /* Hero */
  .hero .carousel-control-prev i,
  .hero .carousel-control-next i { font-size: 33px; }

  /* Flavours */
  .flavours-intro { padding: 40px 0 56px; }
  .flavours-title { font-size: 33px; margin-bottom: 64px; }
  .drip-copy { font-size: 24px; }
  .drip-heading { font-size: 50px; }
  .sauce-tile { width: 187px; }
  .sauce-info { padding: 12px 16px; }
  .sauce-info .sauce-name { font-size: 18px; }
  /* Products, rewards, classic to extreme */
  .rewards { padding: 33px 0; }
  .rewards-text { font-size: 21px; max-width: 345px; }
  .flavour-blast { padding: 100px 0 110px; }
  .blast-sm { font-size: 44px; }
  .blast-xl { font-size: 92px; }
  .blast-xxl { font-size: 124px; }
  .blast-stack { font-size: 38px; }
  .blast-tray-1, .blast-tray-4 { width: 220px; }
  .blast-tray-2, .blast-tray-3 { width: 240px; }

  /* Footer */
  .footer-main { padding: 55px 0; }
  .footer-title { font-size: 29px; }
}

@media (max-width: 991px) {
  /* Header */
  .site-logo { height: 62px; }
  /* Mobile menu opens as an overlay so the page content doesn't move */
  .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--white);
    box-shadow: 0 10px 20px rgba(0, 0, 0, .1);
  }
  .navbar-collapse .navbar-nav { padding: 12px 16px 16px; }
  .navbar .nav-link { padding: 10px 0 !important; border-bottom: 1px solid #f1f1f1; }
  .navbar .nav-item .btn-brand { margin-left: 0; margin-top: 16px; width: 100%; }

  /* Hero */
  .hero .carousel-control-prev i,
  .hero .carousel-control-next i { font-size: 26px; }

  /* Flavours */
  .flavours-intro { padding: 40px 0 48px; }
  .flavours-title { font-size: 26px; margin-bottom: 40px; }
  .drip-copy { font-size: 24px; }
  .drip-heading { align-items: center; }
  .sauce-tile { width: 180px; }

  /* Products, rewards, classic to extreme */
  .rewards { padding: 29px 0; }
  .rewards-text { font-size: 18px; max-width: 300px; margin-left: auto; margin-right: auto; }
  .rewards-ticket-lg { font-size: 30px; }
  .store-badges { justify-content: center; }
  .flavour-blast { padding: 190px 0 230px; }
  .blast-sm { font-size: 38px; }
  .blast-xl { font-size: 80px; }
  .blast-xxl { font-size: 108px; }
  .blast-stack { font-size: 32px; }
  .blast-word { filter: drop-shadow(4px -4px 0 var(--white)) drop-shadow(0 0 1px var(--blast-dark)); }
  .blast-tray-1 { width: 210px; top: -160px; left: calc(var(--blast-edge) - 10px); }
  .blast-tray-2 { width: 220px; top: -170px; right: calc(var(--blast-edge) - 10px); }
  .blast-tray-3 { width: 210px; bottom: -215px; left: calc(var(--blast-edge) - 10px); }
  .blast-tray-4 { width: 220px; bottom: -215px; right: calc(var(--blast-edge) - 10px); }

  /* Footer */
  .footer-main { padding: 44px 0; }
  .footer-title { font-size: 26px; }

  /* Inner pages – hero (image on top, text below) */
  .page-hero .row { row-gap: 40px; }
  .page-hero-content { padding-bottom: 15px; }
  .page-hero-content { display: flex; align-items: center; gap: 60px; }
  .page-hero-logo { flex: 1 1 0; padding-right: 0; }
  .page-hero-copy { flex: 0 0 60%; }
  .page-hero-copy > :first-child { margin-top: 0; }
  .about-mark-year { font-size: 110px; }
  .stores-mark-pin { font-size: 70px; }
  .stores-mark-lg { font-size: 64px; }
  .contact-hero-big { font-size: 120px; }
  .contact-hero-bubble { font-size: 32px; }
  .taste-tape-1 { font-size: 42px; }
  .taste-tape-2 { font-size: 64px; }
  .page-hero-title { font-size: 24px; }
  .page-hero-media,
  .page-hero-media img { height: 550px; }
  .page-hero-media img { width: 100%; object-fit: cover; object-position: top left; }

  /* Inner pages – two-column content stacks */
  .page-split { margin: 40px 0 60px; }
  .split-row { flex-direction: column; }
  .split-block .page-text { columns: 2; column-gap: 50px; }
  .page-buttons { justify-content: space-between; }
  .page-buttons .btn-page { width: 49%; }

  /* Our food */
  .food-hero { min-height: 480px; padding: 80px 0; }
  .food-hero-title { font-size: 52px; }
  .food-section,
  .food-sauces { padding: 70px 0; }
  .food-section-title { font-size: 40px; }
  .food-dishes { gap: 70px; }
  .dish { grid-template-columns: 1fr; gap: 40px; }
  .dish:nth-child(even) .dish-media { order: 0; }
  .dish-media { max-width: 560px; }
  .dish-num { font-size: 60px; }
  .sauce-cards { grid-template-columns: repeat(2, 1fr); }

  /* Our stores */
  .stores-find { margin: 40px 0 60px; }
  .stores-find-intro { flex: 1 1 100%; gap: 15px; }
  .stores-find-title { width: 400px; max-width: 400px; font-size: 30px; }
  .stores-find-tagline { width: 180px; max-width: 180px; }
  .finder { grid-template-columns: 1fr; min-height: 0; }
  .finder-panel { border-right: 0; border-bottom: 3px solid var(--primary); }
  .finder-list { max-height: 380px; }
  .finder-map { height: 500px; }
  .finder-detail { left: 12px; right: 12px; width: auto; }
  .stores-soon { margin-top: 40px; }
  .stores-soon .stores-row { gap: 0; }
  .stores-soon-art { flex: 0 0 50%; text-align: left; }
  .stores-soon-art img { max-width: 90%; }
  .stores-soon-content { flex: 0 0 50%; }
  .stores-soon-block { margin-top: 0; }
  .stores-soon-title { width: 400px; max-width: 100%; }
  .stores-franchise { margin: 0 0 60px; }
  .stores-franchise .stores-row { flex-direction: column-reverse; gap: 50px; }
  .stores-franchise-content {
    flex: none;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px 0;
  }
  .stores-franchise-block { display: contents; }
  .stores-franchise-title { flex: 0 0 auto; width: 400px; max-width: 100%; }
  .stores-franchise-text { flex: 0 0 50%; }
  .stores-franchise-buttons { flex: 0 0 46%; flex-direction: column; justify-content: flex-end; margin-top: 0; }
  .stores-franchise-buttons .btn-page { width: 100%; margin-bottom: 15px; }
  .stores-franchise-art { flex: none; text-align: left; }

  /* Franchise */
  .franchise-hero-title { font-size: 36px; margin-top: 30px; }
  .franchise-pillars-grid { gap: 50px 40px; }
  .franchise-pillar-title { font-size: 34px; }
  .franchise-eco-inner { flex-direction: column; align-items: flex-start; }
  .franchise-enquiry-text { padding: 0 5%; }
  .franchise-form { margin: 60px 5% 0; }

  /* Contact */
  .contact-hero { padding: 15px; }
  .contact-hero-inner { min-height: 550px; }
  .contact-main { margin: 40px 0 60px; }
  .contact-row { flex-direction: column; gap: 25px; }
  .contact-title,
  .contact-sub { text-align: center; }
  .contact-intro { padding: 0 17px; }
  .contact-form { margin: 0 40px; }
  .contact-faq-intro { padding: 0 40px; }


  /* Menu */
  .menu-hero-title { min-height: 400px; }
  .menu-hero-heading { font-size: 84px; }
  .menu-flip-sauce { height: 250px; }
  .menu-band { padding: 25px 0; }
  .menu-flip-back { padding: 15px; }
  .menu-flip-sauce .menu-flip-back { padding: 30px; }
  .menu-mains { margin: 40px 0 50px; }
  .menu-mains-grid { grid-template-columns: repeat(2, 1fr); }
  .menu-flip-main .menu-flip-text { font-size: 22px; }
  .menu-signature-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
  .menu-item-title { font-size: 24px; }
  .menu-flip-signature .menu-flip-text { font-size: 20px; }
  .menu-cta { padding: 25px 0; }
  .menu-cta-buttons { gap: 20px; justify-content: space-between; align-items: flex-end; }
  .menu-cta-buttons .btn-page { width: 49%; }
}

@media (max-width: 767px) {
  /* Menu */
  .menu-hero-title { min-height: 250px; }
  .menu-hero-heading { margin: 60px 0; font-size: 42px; letter-spacing: -1px; }
  .menu-flip-sauce { height: 180px; }
  .menu-flip-sauce .menu-flip-front,
  .menu-flip-sauce .menu-flip-back { padding: 20px; }
  .menu-band { padding: 30px 0; }
  .menu-band-title { font-size: 26px; text-align: left; }
  .menu-section-title { font-size: 36px; text-align: center; }
  .menu-item-title { font-size: 18px; margin-bottom: 10px; }
  .menu-flip .menu-flip-text { font-size: 13px; line-height: 1.2; }
  .menu-flip-sauce .menu-flip-text { font-size: 17px; line-height: 23px; }
  .menu-flip-location .menu-flip-text { font-size: 14px; line-height: 1.3; }
  .menu-flip-location .menu-flip-back { padding: 14px 16px; }
  .menu-mains-grid { gap: 25px 10px; }
  .menu-signature { padding: 40px 0; }
  .menu-signature-grid { gap: 25px 10px; margin-top: 25px; }
  .menu-flip-signature .menu-flip-back { padding: 12px; }
  .menu-cta { padding: 20px 0; }
  .menu-cta-buttons { flex-direction: column; align-items: stretch; }
  .menu-cta-buttons .btn-page { width: 100%; }

  /* Hero */
  .hero .carousel-control-prev i,
  .hero .carousel-control-next i { font-size: 22px; }

  /* Flavours */
  .flavours-intro { padding: 36px 0 44px; }
  .flavours-title { font-size: 24px; margin-bottom: 32px; }

  /* Products, rewards, classic to extreme */
  .flavour-blast { padding: 160px 0 190px; }
  .blast-sm { font-size: 30px; }
  .blast-xl { font-size: 62px; }
  .blast-xxl { font-size: 84px; letter-spacing: -2px; }
  .blast-stack { font-size: 25px; margin-bottom: 8px; }
  .blast-row { gap: 10px; }
  .blast-title-outline .blast-word { -webkit-text-stroke-width: 1.5px; }
  .blast-buttons { margin-top: 36px; }
  .blast-buttons .btn-page { font-size: 20px; }
  .blast-tray-1 { width: 170px; top: -135px; }
  .blast-tray-2 { width: 180px; top: -140px; }
  .blast-tray-3 { width: 170px; bottom: -175px; }
  .blast-tray-4 { width: 175px; bottom: -175px; }

  /* Footer */
  .footer-main { padding: 40px 0; }

  /* Inner pages – hero */
  .page-hero .row { row-gap: 20px; }
  .page-hero-content { flex-direction: column; align-items: flex-start; gap: 15px; margin-top: 25px; padding-bottom: 0; }
  .page-hero-logo,
  .page-hero-copy { flex: none; width: 100%; }
  .about-mark-tag { font-size: 18px; }
  .about-mark-year { font-size: 88px; }
  .stores-mark-pin { font-size: 56px; }
  .stores-mark-sm { font-size: 20px; letter-spacing: 4px; }
  .stores-mark-lg { font-size: 52px; }
  .page-hero-media,
  .page-hero-media img { height: 300px; }

  /* Inner pages – two-column content */
  .page-split { margin: 40px 0; }
  .split-row { gap: 20px; }
  .split-block .page-text { columns: 1; }
  .page-buttons { flex-direction: column; }
  .page-buttons .btn-page { width: 100%; }

  /* About us */
  .about-story-block { margin-top: 10px; }
  .about-quality { padding: 0 0 50px; }
  .about-origin { padding: 0 0 60px; }
  .about-origin-caption { margin-top: 22px; }
  .about-origin-grid { grid-template-columns: 1fr 1fr; height: auto; gap: 10px; }
  .about-origin-grid .about-origin-wide { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
  .about-origin-grid img:not(.about-origin-wide) { aspect-ratio: 3 / 4; }

  /* Our food */
  .food-hero { min-height: 420px; padding: 70px 0; }
  .food-hero-title { font-size: 40px; }
  .food-section,
  .food-sauces { padding: 56px 0; }
  .food-section-head { margin-bottom: 40px; }
  .food-section-title { font-size: 34px; }
  .food-dishes { gap: 56px; }
  .dish { gap: 28px; }
  .dish-title { font-size: 30px; }
  .dish-tagline { font-size: 18px; }
  .dish-media img { border-radius: 16px; }
  .sauce-cards { gap: 16px; }
  .sauce-card-body { padding: 14px; }
  .sauce-card-body h3 { font-size: 16px; }
  .food-pattern { padding: 70px 0; }

  /* Our stores */
  .stores-find {
    margin: 20px 0 40px;
    border-top: 15px solid var(--secondary);
    border-bottom: 15px solid var(--secondary);
  }
  .stores-find-head { display: none; }
  .finder { margin: 40px 0; }
  .finder-map { height: 430px; }
  .stores-soon { margin: 40px 0; }
  .stores-soon .stores-row { flex-direction: column; gap: 20px; }
  .stores-soon-art,
  .stores-soon-content { flex: none; }
  .stores-soon-block { margin-top: 20px; }
  .stores-franchise { margin: 40px 0; }
  .stores-franchise .stores-row { gap: 20px; }
  .stores-franchise-content { margin-top: 20px; }
  .stores-franchise-text,
  .stores-franchise-buttons { flex: 0 0 100%; }
  .stores-franchise-buttons { margin-top: 20px; }
  .stores-franchise-buttons .btn-page { margin-bottom: 0; }

  /* Franchise */
  .franchise-hero-text { font-size: 24px; line-height: 1.2; }
  .page-hero-copy > .franchise-hero-text { margin-top: 10px; }
  .franchise-hero-title { font-size: 30px; }
  .franchise-intro,
  .franchise-together,
  .franchise-closing { padding: 60px 0; }
  .franchise-section-title { font-size: 36px; }
  .franchise-section-subtitle span { font-size: 21px; }
  .franchise-pillars { padding: 60px 0; }
  .franchise-pillars-grid { grid-template-columns: 1fr; gap: 40px; }
  .franchise-pillar-title { font-size: 30px; margin-bottom: 14px; }
  .franchise-pillar p { font-size: 16px; }
  .franchise-eco-title { font-size: 26px; }
  .franchise-eco-inner p { font-size: 16px; }
  .franchise-enquiry { padding: 60px 0; }
  .franchise-enquiry-head,
  .franchise-enquiry-head .franchise-section-title,
  .franchise-enquiry-subtitle,
  .franchise-enquiry-text { text-align: left; }
  .franchise-enquiry-subtitle span { font-size: 21px; }
  .franchise-enquiry-text { padding: 0; }
  .franchise-form { grid-template-columns: 1fr; margin: 35px 0 0; }
  .franchise-form-submit { text-align: left; }

  /* Contact */
  .contact-hero { padding: 10px; }
  .contact-hero-inner { min-height: 300px; }
  .contact-main { margin: 40px 0; }
  .contact-row { gap: 20px; }
  .contact-title { font-size: 36px; }
  .contact-title,
  .contact-sub { text-align: left; }
  .contact-sub span { font-size: 21px; line-height: 21px; }
  .contact-intro,
  .contact-faq-intro { padding: 0; }
  .contact-form { margin: 0; }
  .contact-field-half { width: 100%; }
  .contact-hero-big { font-size: 72px; letter-spacing: -1px; }
  .contact-hero-bubble { font-size: 22px; padding: 10px 20px; transform: rotate(-4deg) translateX(-30px); }
  .taste-tape { padding: 10px 20px 8px; }
  .taste-tape-1 { font-size: 28px; transform: rotate(-4deg) translateX(-14px); }
  .taste-tape-2 { font-size: 40px; transform: rotate(3deg) translateX(14px); }
  .rewards-ticket-lg { font-size: 26px; }

}

@media (max-width: 575px) {
  /* Menu – one card per row so the descriptions fit */
  .menu-mains-grid,
  .menu-signature-grid { grid-template-columns: 1fr; }
  .menu-flip .menu-flip-text { font-size: 18px; line-height: 1.3; }
  .menu-flip-back { padding: 30px; }

  /* Flavours */
  .drip-copy { font-size: 20px; letter-spacing: 0.5px; }
  .drip-heading { font-size: 36px; }
  .hero .carousel-item img {height: 200px;object-fit: cover;}
  /* Footer – stack text above icons on phones */
  .footer-connect-row { flex-direction: column; align-items: flex-start; gap: 44px; }
  .footer-contact { text-align: left; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 54px; height: 54px; font-size: 28px; }
  .back-to-top { right: 19px; bottom: 80px; width: 44px; height: 44px; font-size: 20px; }
  .franchise-section-title {font-size: 24px;}

  /* Tighter section spacing on phones */
  .flavours-intro { padding: 28px 0 32px; }
  .flavours-title { margin-bottom: 24px; }
  .rewards { padding: 22px 0; }
  .flavour-blast { padding: 120px 0 140px; }
  .blast-sm { font-size: 22px; }
  .blast-xl { font-size: 44px; }
  .blast-xxl { font-size: 60px; letter-spacing: -1px; }
  .blast-stack { font-size: 18px; margin-bottom: 5px; }
  .blast-row { gap: 7px; }
  .blast-word { filter: drop-shadow(3px -3px 0 var(--white)) drop-shadow(0 0 1px var(--blast-dark)); }
  .blast-buttons { gap: 12px; margin-top: 28px; }
  .blast-buttons .btn-page { font-size: 17px; }
  .blast-tray-1 { width: 130px; top: -105px; left: calc(var(--blast-edge) - 20px); }
  .blast-tray-2 { width: 135px; top: -110px; right: calc(var(--blast-edge) - 20px); }
  .blast-tray-3 { width: 130px; bottom: -125px; left: calc(var(--blast-edge) - 10px); }
  .blast-tray-4 { width: 135px; bottom: -120px; right: calc(var(--blast-edge) - 15px); }
  .footer-main { padding: 44px 0; }

  .page-split { margin: 28px 0; }
  .page-hero-content { margin-top: 18px; }

  .food-hero { min-height: 360px; padding: 56px 0; }
  .food-section,
  .food-sauces { padding: 38px 0; }
  .food-section-head { margin-bottom: 26px; }
  .food-dishes { gap: 40px; }
  .dish { gap: 20px; }
  .food-pattern { padding: 44px 0; }

  .stores-find { margin: 14px 0 28px; }
  .finder { margin: 28px 0; }
  .finder-top { padding: 14px; }
  .finder-card { padding: 14px 16px; }
  .stores-soon,
  .stores-franchise { margin: 28px 0; }

  .franchise-intro,
  .franchise-together,
  .franchise-closing,
  .franchise-benefits,
  .franchise-enquiry { padding: 40px 0; }
  .franchise-pillars { padding: 40px 0; }
  .franchise-pillars-grid { gap: 30px; }
  .franchise-eco { padding: 36px 0; }
  .franchise-form { margin-top: 24px; }
  .contact-main { margin: 28px 0; }
  .contact-taste { padding: 44px 0; }

  .menu-hero-heading { margin: 40px 0; }
  .menu-band { padding: 20px 0; }
  .menu-mains { margin: 28px 0 36px; }
  .menu-signature { padding: 28px 0; }
  .menu-signature-grid { margin-top: 18px; }
  .menu-cta { padding: 16px 0; }

  .express-soon { padding: 56px 0; min-height: 70vh; }
  .express-soon-heading { letter-spacing: -1px; }
}
