/* -------------------------------------------------------
   Shwapno-like homepage (original layout inspired)
   Note: This is a clean-room UI (no proprietary assets).
-------------------------------------------------------- */

:root{
  --brand-red:#e31c24;
  --brand-red-dark:#c9141b;
  --brand-yellow:#ffcc00;
  --text:#1b1b1b;
  --muted:#6b7280;
  --bg:#f3f4f6;
  --card:#ffffff;
  --border:#e5e7eb;
  --shadow: 0 6px 20px rgba(0,0,0,.05);
}

*{ box-sizing:border-box; }

html,body{ height:100%; overflow-x:hidden; }

body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background: var(--bg);
}

a{ color:inherit; text-decoration:none; }

img,svg{ max-width:100%; }
img{ height:auto; }

.container{
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
}

.site-header{
  position: sticky;
  top:0;
  z-index: 50;
}

/* Mobile info strip (hidden on desktop) */
.infobar{
  display:none;
  background: var(--brand-red);
  color:#fff;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.infobar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 6px 0;
  font-weight: 900;
  font-size: 12px;
}

.infobar-pill{
  background:#fff;
  color: var(--brand-red);

  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 1000;
  font-size: 12px;
}

/* Hamburger (only shown on small screens) */
.hamburger{
  display:none;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.10);
  cursor:pointer;
  position: relative;
}

.hamburger-lines,
.hamburger-lines::before,
.hamburger-lines::after{
  content:"";
  position:absolute;
  left: 10px;
  right: 10px;
  height: 2px;
  background:#fff;
  border-radius: 999px;
}

.hamburger-lines{ top: 19px; }
.hamburger-lines::before{ top: -6px; }
.hamburger-lines::after{ top: 6px; }

/* Mobile drawer */
.drawer-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 60;
  display:none;
}

.mobile-drawer{
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: min(320px, 86vw);
  background: #fff;
  z-index: 61;
  box-shadow: 0 20px 60px rgba(0,0,0,.22);
  transform: translateX(-102%);
  transition: transform .18s ease;
  display:flex;
  flex-direction:column;
}

body.drawer-open .mobile-drawer{ transform: translateX(0); }
body.drawer-open .drawer-backdrop{ display:block; }
body.drawer-open{ overflow:hidden; }

.drawer-head{
  background: var(--brand-red);
  color:#fff;
  padding: 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}

.drawer-title{ font-weight: 1000; letter-spacing:.3px; }

.drawer-close{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.10);
  color:#fff;
  cursor:pointer;
  font-weight: 1000;
}

.drawer-body{
  padding: 12px;
  overflow:auto;
}

.drawer-section{ margin-bottom: 16px; }
.drawer-label{ font-weight: 1000; font-size: 12px; color:#111; margin: 0 0 8px; }

.drawer-cat-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap: 6px;
}

.drawer-cat-list a{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background:#fff;
  font-weight: 900;
  font-size: 13px;
}

.drawer-cat-list a:hover{ background:#f3f4f6; }

.drawer-cat-icon{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid var(--border);
  object-fit: cover;
  background:#fff;
}

.drawer-links{ display:flex; flex-wrap:wrap; gap: 8px; }
.drawer-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background:#fff;
  font-weight: 1000;
  font-size: 13px;
}
.drawer-links a:hover{ background:#f3f4f6; }

/* Floating cart (mobile) */
.floating-cart{
  position: fixed;
  right: 12px;
  bottom: 16px;
  z-index: 55;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: #111;
  color:#fff;
  display:none;
  align-items:center;
  justify-content:center;
  border: 2px solid var(--brand-red);
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
}

.floating-cart-count{
  position:absolute;
  top: -8px;
  right: -8px;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--brand-red);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight: 1000;
  font-size: 12px;
}

.topbar{
  background: var(--brand-red);
  color:#fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
}

.topbar-inner{
  display:flex;
  align-items:center;
  gap:16px;
  padding: 10px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 800;
  letter-spacing: .3px;
}

.brand-mark{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius: 8px;
  background:#fff;
  color: var(--brand-red);
  font-weight:900;
}

.brand-text{
  font-size: 18px;
}

.searchbar{
  flex:1;
  display:flex;
  align-items:center;
  gap:0;
  background:#fff;
  border-radius: 999px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.35);
}

.searchbar input{
  flex:1;
  min-width: 0;
  border:0;
  outline:0;
  padding: 10px 14px;
  font-size: 14px;
}

.searchbar button{
  border:0;
  background: var(--brand-yellow);
  color:#111;
  font-weight: 800;
  padding: 10px 14px;
  cursor:pointer;
}

.header-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.header-actions a{
  color:#fff;
  font-weight: 700;
  font-size: 13px;
  padding: 8px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.25);
}

.header-actions a:hover{
  background: rgba(255,255,255,.12);
}

/* Icons are used mainly on mobile (we hide on desktop for a cleaner header) */
.action-ico{ display:none; }

.cart-badge{
  display:inline-grid;
  place-items:center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background:#fff;
  color: var(--brand-red);
  font-size: 12px;
  font-weight: 900;
  margin-left: 6px;
}

.navrow{
  background:#ffffff;
  border-bottom: 1px solid var(--border);
}

.navrow-inner{
  display:flex;
  align-items:center;
  gap: 14px;
  padding: 10px 0;
  overflow:auto;
  scrollbar-width: none;
}

.navrow-inner::-webkit-scrollbar{ display:none; }

.nav-item{
  font-size: 13px;
  font-weight: 700;
  color:#111;
  padding: 6px 10px;
  border-radius: 999px;
  background:#f3f4f6;
  white-space:nowrap;
}

.nav-item:hover{
  background:#e5e7eb;
}

/* Layout */
.page{
  padding: 14px 0 40px;
}

/*
 * Main layout: place the sidebar and content side by side on desktop.
 * On small screens (see media query below) this switches to columnar
 * stacking so the content appears below the sidebar/drawer.
 */
.layout{
  display:flex;
  flex-direction:row;
  gap: 14px;
  /* Prevent sidebar from stretching to match the height of the content.
     By default flex containers stretch items along the cross axis. Setting
     align-items:flex-start ensures each child’s height is determined by
     its content, so the category sidebar occupies only the height it needs
     and the product grid can start right below the hero. */
  align-items:flex-start;
}

/*
 * Sidebar styles
 *
 * The sidebar appears on the left of the homepage on larger screens and
 * contains a vertical list of all categories. Previously this list was
 * horizontally scrollable, which works well on mobile but looks odd on
 * desktop. To better match the reference design the sidebar now has a
 * fixed width and the category list is displayed vertically. On small
 * screens the sidebar is hidden and categories can be accessed via the
 * hamburger menu (see media queries below).
 */
.sidebar{
  /* On desktop give the sidebar a fixed width so the page layout
     resembles the PC version with a left column. */
  /* Keep the sidebar within the recommended 240–300px range for optimal
     readability on desktop screens. See: https://uxplanet.org/best-ux-practices-for-designing-a-sidebar-9174ee0ecaa2 (Optimal Sidebar Width). */
  width: 240px;
  flex-shrink: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  padding: 12px 12px 8px;
  position: static;
  max-height: none;
  overflow: hidden;
}

.sidebar-title{
  font-weight: 900;
  font-size: 13px;
  letter-spacing: .3px;
  margin-bottom: 8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.sidebar-title span{
  color: var(--brand-red);
}

/* Category list defaults to a vertical stack on desktop */
.cat-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow-y:auto;
  max-height: 600px;
}

/* Individual items don’t need flex-basis when stacked */
.cat-list li{
  flex: 0 0 auto;
}

.cat-list a{
  display:flex;
  gap:10px;
  align-items:center;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
  color:#111;
  background:#fff;
  border: 1px solid var(--border);
  white-space:nowrap;
  transition: background .1s ease;
}

.cat-list a:hover{
  background: #f3f4f6;
}

.cat-icon{
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid var(--border);
  object-fit: cover;
  background: #fff;
}

/*
 * Category collapse/expand behaviour
 *
 * When the wrapper has the class `collapsed`, we hide items after the first 8
 * so the sidebar doesn’t become overly long. A toggle button below the list
 * allows the user to expand the full list. The button is hidden when the
 * wrapper is in the expanded state.
 */
.cat-list-wrapper{
  display:block;
}

/* Hide items beyond the 8th when collapsed */
.cat-list-wrapper.collapsed .cat-list li:nth-child(n+9){
  display:none;
}

/* Show all items when expanded */
.cat-list-wrapper.expanded .cat-list li{
  display:flex;
}

/* Show more button styles */
.show-more-btn{
  margin-top: 8px;
  padding: 6px 10px;
  border: none;
  background: none;
  color: var(--brand-red);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  text-align:left;
}
.show-more-btn:hover{
  text-decoration: underline;
}

/* Hide the button when expanded */
.cat-list-wrapper.expanded + .show-more-btn{
  display:none;
}

.content{
  flex: 1;
  min-width: 0;
}

/*
 * Hero column
 *
 * Holds the hero banner and quick tiles. It behaves similar to .content in the
 * top row, taking up the remaining width next to the sidebar. Without this
 * flex rule, the hero area would not expand to fill available space.
 */
.hero-col{
  flex: 1;
  min-width: 0;
}

/* Hero */
.hero{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow:hidden;
  box-shadow: var(--shadow);
}

.hero img{
  display:block;
  width:100%;
  height: auto;
}

.hero-meta{
  padding: 10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.hero-meta .pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff1f2;
  color: var(--brand-red);
  border:1px solid #fecdd3;
  font-weight: 900;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
}

/* Quick category tiles (below hero) */
.quick-tiles{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.tile{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow:hidden;
  box-shadow: var(--shadow);
  position: relative;
}

.tile img{
  width:100%;
  height: 120px;
  object-fit: cover;
  display:block;
}

.tile .tile-caption{
  padding: 10px 12px;
  font-weight: 900;
  font-size: 13px;
}

.tile .tile-badge{
  position:absolute;
  top: 10px;
  left: 10px;
  background: var(--brand-red);
  color:#fff;
  font-weight: 900;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(227,28,36,.25);
}

/* Section headers */
.home-section{
  margin-top: 16px;
}

.section-head{
  position: relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin: 18px 0 10px;
}

.section-head h2{
  margin:0;
  font-size: 14px;
  letter-spacing: .9px;
  text-transform: uppercase;
  font-weight: 1000;
}

.section-head::after{
  content:"";
  position:absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 4px;
  border-radius: 999px;
  background: var(--brand-red);
}

.section-head .see-all{
  position:absolute;
  right:0;
  font-size: 13px;
  font-weight: 900;
  color: var(--brand-red);
  border:1px solid #fecdd3;
  background:#fff1f2;
  padding: 6px 10px;
  border-radius: 999px;
}

.section-head .see-all:hover{
  background:#ffe4e6;
}

/* Product grid and card */
.product-grid{
  margin-top: 18px;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

/* Promo grid used in the mid-page promo strip */
.product-grid--promo{
  grid-template-columns: repeat(4, 1fr);
  margin-top: 10px;
}

.product-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 10px;
  display:flex;
  flex-direction:column;
  min-height: 275px;
  position: relative;
}

.prod-badge{
  position:absolute;
  top: 10px;
  left: 10px;
  background: var(--brand-red);
  color:#fff;
  font-weight: 1000;
  font-size: 11px;
  padding: 4px 7px;
  border-radius: 8px;
}

.prod-img{
  width:100%;
  height: 128px;
  object-fit: contain;
  background:#fff;
  border-radius: 10px;
  border: 1px solid #f3f4f6;
}

.prod-title{
  margin-top: 10px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  min-height: 32px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.prod-unit{
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}

.prod-prices{
  margin-top: 8px;
  display:flex;
  align-items:baseline;
  gap: 8px;
}

.prod-price{
  color: var(--brand-red);
  font-weight: 1000;
  font-size: 14px;
}

.prod-old{
  color: #9ca3af;
  font-weight: 900;
  font-size: 12px;
  text-decoration: line-through;
}

.btn-add{
  margin-top: auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  border: 0;
  background: var(--brand-red);
  color:#fff;
  font-weight: 1000;
  padding: 9px 14px;
  border-radius: 999px;
  font-size: 13px;
}

.btn-add:hover{ background: var(--brand-red-dark); }

.qty{
  display:none;
  margin-top:auto;
  align-items:center;
  gap: 8px;
}

.qty button{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background:#fff;
  cursor:pointer;
  font-weight: 1000;
}

.qty .count{
  min-width: 28px;
  text-align:center;
  font-weight: 1000;
}

.product-card.in-cart .btn-add{ display:none; }
.product-card.in-cart .qty{ display:flex; }

/* Promo band (optional) */
.promo-band{
  margin-top: 16px;
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 10px;
}

.promo-strip{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 10px;
}

.promo-strip .strip-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom: 6px;
}

.promo-strip .strip-head h3{
  margin:0;
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .5px;
  text-transform: uppercase;
}

.promo-side{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow:hidden;
  box-shadow: var(--shadow);
}

.promo-side img{
  width:100%;
  height: 100%;
  object-fit: cover;
  display:block;
}


/* Mobile bottom navigation */
.bottom-nav{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 56;
  background: #ffffff;
  border-top: 1px solid var(--border);
  box-shadow: 0 -10px 30px rgba(0,0,0,.10);
  display:none;
}

.bottom-nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap: 2px;
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
}

.bottom-nav a{
  flex:1;
  min-width: 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 4px;
  padding: 6px 0;
  color: var(--muted);
  font-weight: 900;
  font-size: 11px;
  border-radius: 12px;
}

.bottom-nav a svg{
  width: 22px;
  height: 22px;
  display:block;
}

.bottom-nav a.active{
  color: var(--brand-red);
}

.bottom-nav a:hover{
  background:#f3f4f6;
}

@media (max-width: 768px){
  .bottom-nav{ display:block; }
  body{ padding-bottom: 76px; }
  .floating-cart{ bottom: 88px; }
}

/* Footer */
.site-footer{
  margin-top: 40px;
  padding: 22px 0;
  background:#ffffff;
  border-top: 1px solid var(--border);
}

.footer-grid{
  display:grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 16px;
}

.footer-title{
  font-weight: 1000;
  margin-bottom: 8px;
}

.footer-links{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap: 6px;
  color: var(--muted);
  font-weight: 700;
  font-size: 13px;
}

/* Responsive */
@media (max-width: 1200px){
  .product-grid{ grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 980px){
  .layout{ flex-direction:column; }
  /* On mobile/tablet we keep the page clean like the reference UI.
     Categories are available from the hamburger drawer. */
  .sidebar{ display:none; }

  .hamburger{ display:inline-block; }

  /* Default mobile grids (category/section/search pages) */
  .product-grid{ grid-template-columns: repeat(3, 1fr); }
  .product-grid--promo{ grid-template-columns: repeat(3, 1fr); }

  /* Home page sections become horizontal sliders on mobile/tablet:
     - shows ~2.5 products in the viewport
     - remaining items slide horizontally
  */
  .product-grid.is-slider{
    display:flex;
    overflow-x:auto;
    gap: 10px;
    padding: 2px 2px 10px;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 6px;
    scrollbar-width: none;
  }

  .product-grid.is-slider::-webkit-scrollbar{ display:none; }

  .product-grid.is-slider > .product-card{
    flex: 0 0 calc((100% - 20px) / 2.5);
    scroll-snap-align: start;
  }

  /* Under the hero banner we keep 4 tiles in a row */
  .quick-tiles{ grid-template-columns: repeat(4, 1fr); }

  .promo-band{ grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------
   Happy Hour Promotion
   This block appears at the top of the homepage when an active sale
   exists. It consists of a left advertisement image and a right panel
   with a countdown timer and product slider. The design roughly follows
   the layout shown in the user’s reference screenshot.
-------------------------------------------------------------------- */
.happy-hour-block{
  display:flex;
  align-items:stretch;
  gap: 20px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  box-shadow: var(--shadow);
  margin-bottom: 20px;
}

.happy-hour-block .hh-left{
  flex: 0 0 300px;
  max-width: 300px;
}

.happy-hour-block .hh-left img{
  width:100%;
  height:auto;
  border-radius: 12px;
  object-fit:cover;
}

.happy-hour-block .hh-right{
  flex: 1;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.hh-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom: 12px;
}

.hh-title{
  margin:0;
  font-size: 20px;
  font-weight: 1000;
}

.hh-timer{
  display:flex;
  align-items:center;
  gap:4px;
  font-weight: 1000;
  font-size: 12px;
  color:#fff;
}

.hh-timer .hh-time{
  background: var(--brand-red);
  color:#fff;
  padding: 4px 6px;
  border-radius: 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width: 42px;
}

.hh-timer .hh-time .num{
  font-size: 16px;
  line-height:1;
}

.hh-timer .hh-time .lbl{
  font-size: 9px;
  line-height:1;
  text-transform: uppercase;
}

.hh-timer .hh-left-text{
  background: var(--brand-yellow);
  color: var(--brand-red-dark);
  padding: 4px 6px;
  border-radius: 6px;
  font-weight: 900;
  font-size: 12px;
  margin-left: 4px;
}

/* Grid for happy hour items: 4 columns on large screens */
.hh-items{
  margin-top: 8px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

@media (max-width: 1024px){
  .happy-hour-block{
    flex-direction: column;
  }
  .happy-hour-block .hh-left{
    max-width: 100%;
  }
  .hh-items{
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 640px){
  .hh-items{
    display:flex;
    overflow-x:auto;
    gap:10px;
    padding-bottom:10px;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 6px;
    scrollbar-width: none;
  }
  .hh-items > .product-card{
    flex: 0 0 calc((100% - 20px) / 2.5);
    scroll-snap-align: start;
  }
  .hh-items::-webkit-scrollbar{ display:none; }
}

@media (max-width: 640px){
  /* Keep the entire header on ONE line (hamburger + logo + search + icons)
     so the searchbar doesn't jump to the next line. */
  .topbar-inner{
    flex-wrap:nowrap;
    gap: 8px;
    padding: 8px 0;
  }

  .hamburger{ width: 38px; height: 38px; }
  .brand-mark{ width: 30px; height: 30px; border-radius: 8px; }

  .searchbar{
    order:0;
    min-width: 0;
  }
  .searchbar input{
    padding: 8px 10px;
    font-size: 13px;
  }
  .searchbar button{
    width: 42px;
    padding: 0;
    font-size: 0;
    display:grid;
    place-items:center;
  }
  .searchbar button::before{
    content:"🔍";
    font-size: 16px;
    line-height: 1;
  }

  /* Header bits like the mobile screenshot */
  .infobar{ display:block; }
  .hamburger{ display:inline-block; }
  .floating-cart{ display:flex; }

  .brand-text{ display:none; }
  .action-ico{ display:inline; }
  .header-actions .action-text{ display:none; }
  .header-actions a{ padding: 6px 8px; }
  .header-actions .action-lang{ display:none; }
  /* Keep header compact on mobile */
  .header-actions .action-register{ display:none; }
  .header-actions .action-logout{ display:none; }

  .navrow-inner{ padding: 6px 0; }
  .nav-item{ font-size: 12px; padding: 5px 8px; }

  .hero-meta{ display:none; }

  .quick-tiles{ gap: 8px; }
  .tile img{ height: 78px; }
  .tile .tile-caption{ padding: 8px 8px; font-size: 11px; text-align:center; }
  .tile .tile-badge{ display:none; }

  /* Keep 3 columns; fall back to 2 columns only on very small screens */
  .product-grid{ grid-template-columns: repeat(3, 1fr); }

  /* Product cards become compact (3-across) like the mobile reference */
  .product-card{ min-height: 220px; padding: 8px; border-radius: 12px; }
  .prod-img{ height: 96px; border-radius: 10px; }
  .prod-title{ font-size: 11px; min-height: 28px; }
  .prod-unit{ font-size: 11px; }
  .prod-price{ font-size: 13px; }
  .prod-old{ font-size: 11px; }

  .prod-badge{ top: 8px; left: 8px; font-size: 10px; padding: 4px 6px; border-radius: 8px; }

  /* Replace the big 'Add' button with a floating + icon */
  .btn-add{
    margin-top: 0;
    position:absolute;
    right: 8px;
    bottom: 8px;
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 999px;
    font-size: 0;
    line-height: 0;
  }

  .btn-add::before{
    content:"+";
    font-size: 18px;
    font-weight: 1000;
    line-height: 34px;
  }

  .qty{
    margin-top: 0;
    position:absolute;
    right: 8px;
    bottom: 8px;
    background:#fff;
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 6px;
    box-shadow: 0 10px 24px rgba(0,0,0,.08);
    gap: 6px;
  }
  .qty button{ width: 28px; height: 28px; border-radius: 999px; }
  .qty .count{ min-width: 18px; font-size: 12px; }

  /* Reduce side padding so cards feel closer to the reference */
  .container{ width: calc(100% - 16px); }

  /* Footer stacks */
  .footer-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 420px){
  .product-grid{ grid-template-columns: repeat(2, 1fr); }
  .product-grid--promo{ grid-template-columns: repeat(2, 1fr); }
  .quick-tiles{ grid-template-columns: repeat(2, 1fr); }
}

/* -------------------------------------------------------
   Product / Category / Cart pages (same visual system)
-------------------------------------------------------- */

.breadcrumbs{
  margin: 12px 0;
  font-size: 12px;
  color: var(--muted);
  font-weight: 800;
}

.breadcrumbs a{ color: var(--muted); }
.breadcrumbs .sep{ margin: 0 8px; color:#cbd5e1; }
.breadcrumbs .current{ color:#111; }

.notice-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 16px;
}

.product-top{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 14px;
  display:grid;
  grid-template-columns: 380px 1fr 320px;
  gap: 14px;
  align-items:start;
}

.product-gallery{
  position: relative;
  background:#fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  padding: 12px;
}

.product-gallery .main-image{
  width:100%;
  height: 320px;
  object-fit: contain;
  display:block;
}

.zoom-btn{
  position:absolute;
  right: 12px;
  bottom: 12px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background:#fff;
  cursor:pointer;
  box-shadow: var(--shadow);
  display:grid;
  place-items:center;
}

.gallery-thumbs{
  margin-top: 12px;
  display:flex;
  gap: 10px;
}

.gallery-thumbs button{
  width: 62px;
  height: 62px;
  border: 1px solid var(--border);
  background:#fff;
  border-radius: 14px;
  padding: 6px;
  cursor:pointer;
}

.gallery-thumbs img{
  width:100%;
  height:100%;
  object-fit: contain;
}

.product-detail{ padding: 4px 2px; }

.pd-title{
  margin: 4px 0 6px;
  font-size: 20px;
  font-weight: 1000;
}

.pd-meta{
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}

.countdown{
  margin: 10px 0 12px;
  display:inline-flex;
  align-items:center;
  gap: 8px;
  background: var(--brand-yellow);
  color:#111;
  font-weight: 1000;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 10px;
}

.pd-prices2{
  display:flex;
  align-items:baseline;
  gap: 10px;
  margin: 10px 0 14px;
}

.pd-old2{
  font-size: 14px;
  font-weight: 900;
  color:#9ca3af;
  text-decoration: line-through;
}

.pd-price2{
  font-size: 22px;
  font-weight: 1000;
  color: var(--brand-red);
}

.pd-unit{
  font-size: 13px;
  color: var(--muted);
  font-weight: 900;
}

.pd-buy{ margin-top: 6px; }

/* Reuse cart button styles but don't draw card look in detail area */
.pd-buybox.product-card{
  border: 0;
  box-shadow: none;
  padding: 0;
  min-height: auto;
  background: transparent;
}

.pd-add.btn-add{
  padding: 12px 18px;
  font-size: 14px;
}

.pd-tags{ margin-top: 16px; }
.tag-title{ font-weight: 1000; font-size: 13px; margin-bottom: 8px; }

.tag-chip{
  display:inline-block;
  margin: 0 8px 8px 0;
  background:#eff6ff;
  border: 1px solid #bfdbfe;
  color:#1d4ed8;
  font-weight: 900;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 10px;
}

.info-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 12px;
}

.info-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  font-size: 13px;
  font-weight: 900;
}

.info-row .muted{ color: var(--muted); font-weight: 800; }
.info-row .ok{ color:#16a34a; font-weight: 1000; }

.info-desc{
  margin: 10px 0 8px;
  font-size: 13px;
  color:#374151;
  font-weight: 700;
  line-height: 1.5;
}

.share-row{
  display:flex;
  gap: 8px;
  margin: 10px 0;
}

.share-btn{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  font-weight: 1000;
}

.pay-group{ margin-top: 12px; }
.pay-title{ font-size: 12px; font-weight: 1000; margin-bottom: 8px; }

.pay-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.pay-tile{
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  background:#fff;
  font-weight: 1000;
  font-size: 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.pay-badge{ font-size: 11px; color: var(--muted); font-weight: 900; }

.detail-block{
  margin-top: 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  overflow:hidden;
}

.detail-tab{
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
}

.tab-pill{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  background:#fff1f2;
  border: 1px solid #fecdd3;
  color: var(--brand-red);
  font-weight: 1000;
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 999px;
}

.detail-body{
  padding: 16px;
  text-align:center;
  color: var(--muted);
  font-weight: 900;
}

/* Cart */
.cart-layout{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 14px;
}

.cart-card,
.summary-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 14px;
}

.cart-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.cart-table{ display:flex; flex-direction:column; gap: 8px; }

.cart-row{
  display:grid;
  grid-template-columns: 2.2fr .7fr .7fr .8fr 34px;
  gap: 10px;
  align-items:center;
  background:#fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
}

.cart-row--head{
  background:#f3f4f6;
  border-style:dashed;
  font-weight: 1000;
  font-size: 12px;
  color:#111;
}

.cart-prod{ display:flex; align-items:center; gap: 10px; }

.cart-img{
  width: 56px;
  height: 56px;
  object-fit: contain;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  background:#fff;
}

.cart-name{ font-weight: 1000; font-size: 13px; display:inline-block; margin-bottom:2px; }
.cart-unit{ font-size: 12px; color: var(--muted); font-weight: 800; }

.cart-price,
.cart-line{
  font-weight: 1000;
  font-size: 13px;
  text-align:right;
}

.cart-price{ text-align:center; }
.cart-line{ color: var(--brand-red); }

.cart-qty{ display:flex; justify-content:center; }

.qty-input{
  width: 72px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid var(--border);
  font-weight: 1000;
  text-align:center;
}

.link-danger{
  color: var(--brand-red);
  font-weight: 1000;
}

.cart-remove{ display:flex; justify-content:center; }

.btn-outline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  cursor:pointer;
  border: 1px solid var(--border);
  background:#fff;
  color:#111;
  font-weight: 1000;
  padding: 9px 14px;
  border-radius: 999px;
  font-size: 13px;
}

.btn-outline:hover{ background:#f3f4f6; }

.cart-footer{
  margin-top: 12px;
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  align-items:center;
  justify-content:flex-end;
}

.summary-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  font-weight: 900;
  font-size: 13px;
  color:#111;
  padding: 8px 0;
  border-bottom: 1px dashed var(--border);
}

.summary-total{
  border-bottom: 0;
  font-size: 14px;
  color: var(--brand-red);
}

@media (max-width: 1100px){
  .product-top{ grid-template-columns: 340px 1fr; }
  .product-top .info-card{ grid-column: 1 / -1; }
}

@media (max-width: 760px){
  .product-top{ grid-template-columns: 1fr; }
  .product-gallery .main-image{ height: 260px; }
  .cart-layout{ grid-template-columns: 1fr; }
}

/* -------------------------------------------------------
   Checkout / Order pages
-------------------------------------------------------- */

.checkout-layout{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 14px;
}

.checkout-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 14px;
}

.form-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form-group{ margin-bottom: 12px; }

.form-group label{
  display:block;
  font-weight: 1000;
  font-size: 12px;
  margin-bottom: 6px;
  color:#111;
}

.form-group input,
.form-group textarea,
.form-group select{
  width:100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  font-weight: 900;
  font-size: 13px;
  outline: none;
  background:#fff;
}

.form-group textarea{ min-height: 92px; resize: vertical; }

.radio-list{ display:flex; flex-direction:column; gap: 8px; }

.radio-item{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background:#fff;
  font-weight: 1000;
}

.radio-item input{ margin: 0; }

.error-box{
  background:#fff1f2;
  border: 1px solid #fecdd3;
  color:#9f1239;
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 12px;
}

@media (max-width: 760px){
  .checkout-layout{ grid-template-columns: 1fr; }
  .form-row{ grid-template-columns: 1fr; }
}
