@media only screen and (min-width: 1600px) and (max-width: 1800px) {
}

@media only screen and (min-width: 1600px) and (max-width: 1700px) {
}

@media only screen and (min-width: 1400px) and (max-width: 1600px) {
}

/*  Medidum Screen: 1400px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 1400px) and (max-width: 1692px) {
}

/*  Medidum Screen: 1400px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 1200px) and (max-width: 1400px) {
  .ct-mini-menu-item {
    width: 100%;
  }

  .product .product-thumb img {
    height: 220px;
  }

  .product {
    height: 420px;
  }

  .contact-page .card {
    width: 100%;
  }

  .product-thumb img {
    width: 100%;
    height: 100%;
  }

  .related-products .product .product-thumb img {
    height: 250px;
  }
}

/*  Tablet PC: 992px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 992px) and (max-width: 1199.98px) {
  .ct-mini-menu-item {
    width: 100%;
  }

  .contact-page .card {
    width: 100%;
    height: 100%;
  }

  .product-thumb img {
    width: 100%;
    height: 100%;
  }

  .related-products .menu-v2 {
    row-gap: 20px;
  }

  .auth-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .auth-description {
    width: 100%;
  }

  .auth-form {
    width: 100%;
  }

  .checkout-billing .order-summary {
    width: 100%;
  }
}

/*  Tablet Mobile: 768px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 768px) and (max-width: 991.98px) {
  .banner .title {
    font-size: 42px;
  }

  .banner-inner .gap40px {
    gap: 20px;
  }

  .banner-inner .gap20px {
    gap: 10px;
  }

  .ct-mini-menu-item {
    width: 100%;
    justify-content: space-between;
  }

  .product-thumb img {
    height: 100%;
  }

  .related-products .menu-v2 {
    row-gap: 20px;
  }

  .contact-info .row {
    row-gap: 20px;
  }
  .contact-wrapper .row {
    row-gap: 20px;
  }

  .auth-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .auth-description {
    width: 100%;
  }

  .auth-form {
    width: 100%;
  }

  .checkout-billing .order-summary {
    width: 100%;
  }
}

/*  Mobile : 576px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 576px) and (max-width: 767.98px) {
  .banner .title {
    font-size: 32px;
  }

  .banner-inner .gap40px {
    gap: 20px;
  }

  .banner-inner .gap20px {
    gap: 10px;
  }

  .can-sticky + .banner.banner-1 .banner-inner,
  .header-absolute + .banner.banner-1 .banner-inner {
    padding: 120px 0 40px;
  }

  .ct-mini-menu-item {
    width: 100%;
    justify-content: space-between;
  }

  .footer-widget ul {
    margin: 0;
    justify-content: center;
    gap: 20px;
  }

  .footer-widget {
    text-align: left;
  }

  .footer-widget .first_widget {
    align-items: start !important;
  }

  .related-products .menu-v2 {
    row-gap: 20px;
  }

  .contact-info .row {
    row-gap: 20px;
  }
  .contact-wrapper .row {
    row-gap: 20px;
  }

  .contact-page .card {
    width: 100%;
  }

  .checkout-billing .order-summary {
    width: 100%;
  }

  .auth-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .auth-description {
    width: 100%;
  }

  .auth-form {
    width: 100%;
  }
}

/*  Mobile Small Device: 450px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 450px) and (max-width: 575.98px) {
  .banner .title {
    font-size: 28px;
  }

  .banner-inner .gap40px {
    gap: 20px;
  }

  .banner-inner .gap20px {
    gap: 10px;
  }

  .can-sticky + .banner.banner-1 .banner-inner,
  .header-absolute + .banner.banner-1 .banner-inner {
    padding: 120px 0 40px;
  }

  .menu_card {
    padding: 10px;
  }

  .ct-mini-menu-item {
    width: 100%;
    justify-content: space-between;
  }

  .footer-widget ul {
    margin: 0;
    justify-content: center;
    gap: 20px;
  }

  .footer-widget {
    text-align: left;
  }

  .footer-widget .first_widget {
    align-items: start !important;
  }

  .related-products .menu-v2 {
    row-gap: 20px;
  }

  .contact-info .row {
    row-gap: 20px;
  }
  .contact-wrapper .row {
    row-gap: 20px;
  }

  .contact-page .card {
    width: 100%;
  }

  .checkout-billing .order-summary {
    width: 100%;
  }

  .auth-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .auth-description {
    width: 100%;
  }

  .auth-form {
    width: 100%;
  }

  .product .product-controls a {
    display: flex !important;
  }

  .slick-slide {
    outline: none;
    margin: 0 10px;
  }

  .auth-form .register_text {
    flex-direction: column;
  }

  .forgot-password-page {
    width: 100%;
  }
}

/*  Mobile Small Device: 320px.
    Gutters: 24px.
    Outer margins: 28px.
    Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
@media only screen and (min-width: 320px) and (max-width: 449.98px) {
  .banner .title {
    font-size: 28px;
    line-height: 40px;
  }

  .banner-inner .gap40px {
    gap: 20px;
  }

  .banner-inner .gap20px {
    gap: 10px;
  }

  .can-sticky + .banner.banner-1 .banner-inner,
  .header-absolute + .banner.banner-1 .banner-inner {
    padding: 230px 0 40px;
  }

  .menu_card {
    padding: 10px;
  }

  .ct-mini-menu-item {
    width: 100%;
    justify-content: space-between;
  }

  .footer-widget ul {
    margin: 0;
    justify-content: center;
    gap: 20px;
  }

  .footer-widget {
    text-align: left;
  }

  .footer-widget .first_widget {
    align-items: start !important;
  }

  .related-products .menu-v2 {
    row-gap: 20px;
  }

  .contact-info .row {
    row-gap: 20px;
  }
  .contact-wrapper .row {
    row-gap: 20px;
  }

  .contact-page .card {
    width: 100%;
  }

  .checkout-billing .order-summary {
    width: 100%;
  }

  .auth-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .auth-description {
    width: 100%;
  }

  .auth-form {
    width: 100%;
  }

  .product .product-controls a {
    display: flex !important;
  }

  .slick-slide {
    outline: none;
    margin: 0 10px;
  }

  .auth-form .register_text {
    flex-direction: column;
  }

  .main-header.header-4 {
    height: 200px;
  }

  .navbar {
    justify-content: center;
  }

  .gallery-title {
    flex-direction: column;
  }

  .menu_page,
  .about-us-page {
    padding-top: 220px;
  }

  .ct-menu-categories .section-title-wrap {
    flex-direction: column;
  }

  .product-thumb img {
    height: 100%;
  }

  .cart-sidebar {
    width: 100%;
  }

  .cart-sidebar-header {
    width: 100%;
  }

  .cart-sidebar-body {
    padding: 0 10px;
    padding-top: 20px;
}
  .contact-wrapper {
    padding: 180px 0 0px 0;
  }
  .login_page, 
  .contact-page,
  .checkout-page {
    padding-top: 220px;
  }

  .auth-form {
    padding: 60px 10px;
}

.forgot-password-page {
  width: 100%;
  padding: 50px 20px;
}
}

/* ======================================================
   CONSOLIDATED MOBILE-FIRST FIXES
   (Uses max-width to work alongside all existing rules)
   ====================================================== */

/* ── Shared: container padding on mobile ── */
@media (max-width: 991px) {
  .container { padding-left: 16px; padding-right: 16px; }
}

/* ======================================================
   FRONTEND HEADER FIXES
   ====================================================== */

/*
 * On mobile the header uses  position:absolute  (class header-absolute).
 * We switch it to position:fixed so it stays at the top while scrolling,
 * then give it a reduced, non-wrapping height.
 */
@media (max-width: 991px) {
  /* Switch to fixed so it doesn't scroll away */
  .main-header.header-absolute {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1050 !important;
    width: 100% !important;
  }

  /* Reduce header height on tablet */
  .main-header.header-4 {
    height: 70px !important;
    display: flex;
    align-items: center;
  }

  /* Make the inner navbar a single row, no wrapping */
  .main-header .navbar {
    height: 70px !important;
    padding: 0 !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: space-between;
  }

  /* Logo max height */
  .navbar-brand { padding: 0 !important; flex-shrink: 0; }
  .navbar-brand img { max-height: 42px !important; width: auto !important; }

  /* Desktop nav: hide on tablet/mobile */
  .navbar-nav { display: none !important; }

  /* Header controls: compact gap */
  .header-controls { flex-shrink: 0; }
  .header-controls-inner {
    gap: 12px !important;
    align-items: center;
    margin: 0 !important;
  }

  /* Cart wrapper: remove excessive padding */
  .header-controls-inner li.cart-dropdown-wrapper,
  .header-controls-inner li.search-dropdown-wrapper {
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1 !important;
  }

  /* Cart item count badge: reposition */
  .cart-item-count {
    top: -6px !important;
    right: -6px !important;
  }

  /* Language + user items */
  .header-controls-inner .menu-item-has-children,
  .header-controls-inner .cart-trigger {
    flex-direction: row !important;
    gap: 4px !important;
    align-items: center !important;
  }

  /* Aside toggler – visible on mobile */
  .aside-toggler { display: flex !important; }

  /* Left group (toggler + logo): don't grow, don't shrink past content */
  .main-header .navbar > .d-flex {
    flex-shrink: 0;
    gap: 10px !important;
  }
}

@media (max-width: 767px) {
  .main-header.header-4 { height: 64px !important; }
  .main-header .navbar { height: 64px !important; }
  .navbar-brand img { max-height: 36px !important; }

  /* Even tighter controls gap on phone */
  .header-controls-inner { gap: 8px !important; }

  /* Hide text labels next to icons to save space */
  .header-controls-inner li span:not(.cart-item-count):not(.cart-item-count-static) {
    display: none !important;
  }

  /* Keep icon + badge visible */
  .header-controls-inner li svg,
  .header-controls-inner li i { display: inline-block !important; }
}

@media (max-width: 480px) {
  .main-header.header-4 { height: 58px !important; }
  .main-header .navbar { height: 58px !important; }
  .navbar-brand img { max-height: 32px !important; }
  .header-controls-inner { gap: 6px !important; }
}

/* ──────────────────────────────────────────────────────
   MOBILE ASIDE (NAV SIDEBAR) FIXES
   - Start below the fixed header so it doesn't cover it
   - Make aside-scroll scrollable
   - Keep aside-toggler (hamburger) always visible
   ────────────────────────────────────────────────────── */

@media (max-width: 991px) {
  /*
   * Move the aside below the fixed header (70px).
   * The header has z-index: 1050, the aside z-index: 998,
   * so the header always stays on top of the aside.
   */
  .main-aside {
    top: 70px !important;
    height: calc(100vh - 70px) !important;
    z-index: 998 !important;
  }

  /* Scrollable content area inside the aside */
  .main-aside .aside-scroll {
    flex: 1 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    max-height: 100% !important;
  }

  /* Aside overlay: keeps full-screen dark backdrop,
     but the header (z:1050) stays on top of it (z:997) */
  .aside-overlay {
    top: 0 !important;
    z-index: 997 !important;
  }

  /* Aside toggler (hamburger): always visible inside header */
  .aside-toggler {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 8px !important;
    background: rgba(15, 118, 110, 0.08) !important;
    color: var(--primary-color, #0f766e) !important;
    flex-shrink: 0 !important;
  }
  .aside-toggler i {
    font-size: 18px !important;
    color: var(--primary-color, #0f766e) !important;
    line-height: 1 !important;
  }
  .aside-toggler:hover {
    background: rgba(15, 118, 110, 0.15) !important;
  }

  /* Aside nav links: larger touch targets */
  .main-aside ul .menu-item a {
    padding: 14px 20px !important;
    font-size: 15px !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: #1d2228 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
  }
  .main-aside ul .menu-item a i {
    color: var(--primary-color, #0f766e) !important;
    font-size: 16px !important;
    width: 20px !important;
    text-align: center !important;
  }
  .main-aside ul .menu-item a:hover {
    color: var(--primary-color, #0f766e) !important;
    background: rgba(15, 118, 110, 0.05) !important;
  }

  /* Aside brand logo at top of drawer */
  .main-aside .navbar-brand {
    padding: 16px 20px !important;
    border-bottom: 1px solid rgba(0,0,0,0.08) !important;
    display: block !important;
    width: 100% !important;
  }
  .main-aside .navbar-brand img {
    max-height: 40px !important;
    width: auto !important;
  }
}

@media (max-width: 767px) {
  .main-aside {
    top: 64px !important;
    height: calc(100vh - 64px) !important;
    width: 260px !important;
  }
}

@media (max-width: 480px) {
  .main-aside {
    top: 58px !important;
    height: calc(100vh - 58px) !important;
    width: 240px !important;
  }
  .aside-toggler {
    width: 36px !important;
    height: 36px !important;
  }
  .aside-toggler i { font-size: 16px !important; }
}

/* ──────────────────────────────────────────────────────
   MENU PAGE & ABOUT PAGE – padding-top to clear fixed header
   ────────────────────────────────────────────────────── */
/*
 * Desktop: header-absolute keeps header at top, page has 180px top padding.
 * Mobile: header becomes fixed (70px), so we only need 70px padding + ~16px breathing room.
 * We override the 180px rule only for ≤991px.
 */
@media (max-width: 991px) {
  .menu_page,
  .about-us-page { padding-top: 86px !important; }

  /* Product-single page (food details) */
  .product-single { padding-top: 86px !important; }
}

@media (max-width: 767px) {
  .menu_page,
  .about-us-page { padding-top: 76px !important; }
  .product-single { padding-top: 76px !important; }
}

@media (max-width: 480px) {
  .menu_page,
  .about-us-page { padding-top: 68px !important; }
  .product-single { padding-top: 68px !important; }
}

/* ── Menu Page – Category Section ── */
@media (max-width: 991px) {
  .ct-menu-categories {
    padding-top: 16px;
    padding-bottom: 8px;
  }
  .menu-category-slider .slick-slide { margin: 0 6px; }
}

@media (max-width: 767px) {
  /* Enough space for floating category thumbs */
  .ct-menu-categories { padding-top: 20px; }
  .menu-category-slider { padding-top: 0; }
  /* Hide item count text to save space */
  .menu-category-desc p { display: none !important; }
  .menu-category-desc h6 { margin-top: 2px !important; }
  .section-title-wrap .title { font-size: 26px !important; }
}

@media (max-width: 480px) {
  .section-title-wrap .title { font-size: 22px !important; }
}

/* ── Menu Product Grid ── */
@media (max-width: 991px) {
  .menu-container .col-xl-3,
  .menu-container .col-lg-4 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

@media (max-width: 575px) {
  .menu-container .col-xl-3,
  .menu-container .col-lg-4,
  .menu-container .col-md-6 {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    padding: 4px !important;
  }
  .menu-container.row { margin: 0 -4px; }
  .product { border-radius: 14px !important; }
  .product-body { padding: 8px 6px 6px !important; }
  .product h4 a { font-size: 0.85rem !important; }
  .product-price { font-size: 0.9rem !important; }
}

/* ── Related Products ── */
@media (max-width: 767px) {
  .related-products h3 { font-size: 22px !important; }
  .related-products .col-xl-3,
  .related-products .col-lg-4,
  .related-products .col-md-6 {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
}

/* ── Cart Sidebar ── */
@media (max-width: 575px) {
  .cart-sidebar { width: 100% !important; border-radius: 0 !important; }
  .cart-sidebar-header { padding: 14px 16px !important; }
  .cart-sidebar-body { padding: 10px 14px !important; }
}

/* ── Checkout Page ── */
@media (max-width: 767px) {
  .checkout-billing .checkout-form,
  .checkout-billing .order-summary { width: 100% !important; }
  .checkout-billing { flex-direction: column !important; }
}

/* ── Single Product (Food Details) Page ── */
@media (max-width: 767px) {
  .product-single .col-md-5,
  .product-single .col-md-7 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .product-single .product-thumb img {
    width: 100% !important;
    height: auto !important;
    max-height: 260px !important;
    object-fit: cover !important;
    border-radius: 14px;
  }
  .product-single .product-content { margin-top: 16px; }

  .atc-form .d-flex.gap20px {
    flex-wrap: wrap;
    gap: 10px !important;
  }
  .btn-custom.primary.single_order,
  .btn-custom.primary.go_to_checkout {
    width: 100%;
    justify-content: center;
  }
  /* Product single title */
  .product-single .title { font-size: 28px !important; line-height: 1.3 !important; }
  /* Special instructions textarea */
  .atc-form textarea { width: 100% !important; }
}

/* ── Footer ── */
@media (max-width: 767px) {
  .ct-footer .footer-middle { padding: 30px 0 16px; }
  .footer-widget { margin-bottom: 20px; }
  .footer-widget ul { gap: 10px; }
  .footer-bottom { text-align: center; }
}

/* ── Auth Pages (Login / Register) ── */
@media (max-width: 767px) {
  .auth-wrapper {
    flex-direction: column !important;
    border-radius: 16px !important;
  }
  .auth-description { display: none; }
  .auth-form { width: 100% !important; padding: 30px 20px !important; }
}

/* ── Quantity Controls ── */
@media (max-width: 480px) {
  .qty { gap: 4px; }
  .qty input { width: 40px !important; font-size: 14px !important; }
  .call_qty { width: 32px !important; height: 32px !important; font-size: 14px !important; }
}

/* ── General utility: prevent horizontal overflow ── */
@media (max-width: 767px) {
  body { overflow-x: hidden !important; }
  .row { --bs-gutter-x: 1rem; }
}
