:root {
  --c-cream: #FBFDE2;  /* very light */
  --c-yellow: #F9DD29; /* primary accent */
  --c-peach: #E6B48B;  /* soft accent */
  --c-orange: #D28345; /* mid accent */
  --c-rust:  #A14E20;  /* dark accent */
  --c-brown: #49260A;  /* darkest text */

  --bg: var(--c-cream);
  --text: var(--c-brown);
  --muted: #6b5b4f;
  --card: #ffffff;
  --ring: rgba(0,0,0,.12);
  --shadow: 0 10px 30px rgba(0,0,0,.08);
  --radius: 18px;
}

/* changed: apply theme gradient background to page */
/* Background: cream with soft shaded gradient */
html, body {
  height: 100%;
  width: 100%;
  margin: 0;
  background: linear-gradient(180deg, #FBFDE2 0%, #F8F6D9 45%, #EFE6C2 100%);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* Navbar styles are now handled in navbar.html component */
/* This ensures consistent color palette across all pages */

/* If you lock body scroll when menu opens, use this class */
body.nav-menu-open { overflow: hidden; }

/* =============================
   RESET + BASE
   ============================= */
html,body { height:100%; width:100%; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { margin:0; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

/* container */
.container { max-width:1100px; margin:0 auto; padding: 0 16px; }

/* Images */
img { max-width:100%; height:auto; display:block; }
a {
  color: inherit; 
  text-decoration: none;
}
.tabs {
  display: flex; 
  gap: 6px; 
  align-items: center; 
  flex-wrap: wrap;
}
.tab {
  padding: 10px 14px; 
  border-radius: 999px; 
  background: transparent; 
  border: 1px solid transparent; 
  font-weight: 600; 
  color: var(--text); 
  opacity: .9;
}
.tab.active {
  background: var(--c-yellow); 
  border-color: #0000;
}
.scan-btn {
  display: flex; 
  align-items: center; 
  gap: 10px; 
  padding: 10px 14px; 
  border-radius: 999px; 
  background: var(--c-rust); 
  color: #fff; 
  box-shadow: var(--shadow);
}
.scan-btn svg {
  width: 18px;
  height: 18px;
}

/* =============================
   NAVBAR - Styles moved to navbar.html component
   ============================= */
/* All navbar styles are now handled in the navbar component */
/* This ensures consistent color palette and styling across all pages */

/* Responsive navbar styles are now handled in navbar.html component */

/* =============================
   HERO
   ============================= */
.hero {
  padding: 34px 0 20px;
}
.hero-card {
  background: linear-gradient(160deg, color-mix(in oklab, var(--c-yellow), #fff 12%), color-mix(in oklab, var(--c-peach), #fff 15%));
  border-radius: var(--radius);
  padding: 28px; 
  display: grid; 
  grid-template-columns: 1.2fr .8fr; 
  gap: 24px; 
  box-shadow: var(--shadow); 
  border: 1px solid var(--ring);
}
.hero h1 {
  margin: 0 0 6px; 
  font-size: clamp(22px, 3.2vw, 36px); 
  line-height: 1.15;
}
.hero p {
  margin: 0; 
  max-width: 55ch;
}

.stats {
  display: grid; 
  grid-template-columns: repeat(3, 1fr); 
  gap: 14px; 
  margin-top: 18px;
}
.stat {
  background: #fff; 
  border: 1px solid var(--ring); 
  border-radius: 14px; 
  padding: 14px; 
  text-align: center;
}
.stat .num {
  font-weight: 900; 
  font-size: clamp(22px, 4vw, 36px); 
  color: var(--c-rust);
}
.stat .label {
  font-weight: 600; 
  opacity: .8;
}

.address {
  background: #fff; 
  border: 1px solid var(--ring); 
  border-radius: 14px; 
  padding: 16px; 
  display: flex; 
  gap: 12px; 
  align-items: flex-start;
}
.addr-icon {
  width: 38px;
  height: 38px; 
  border-radius: 10px; 
  background: var(--c-orange); 
  display: grid; 
  place-items: center; 
  color: #fff;
}

/* =============================
   SECTIONS
   ============================= */
.section {
  padding: 22px 0;
}
.section h2 {
  margin: 0 0 12px; 
  font-size: clamp(18px, 2.2vw, 24px);
}
.grid {
  display: grid; 
  gap: 14px;
}
.grid.cards {
  grid-template-columns: repeat(4, 1fr);
}
.grid.cards .card {
  background: var(--card); 
  border: 1px solid var(--ring); 
  border-radius: 14px; 
  padding: 14px; 
  display: flex; 
  flex-direction: column; 
  gap: 8px;
}
.card .title {
  font-weight: 700;
}
.card .meta {
  font-size: .95rem; 
  opacity: .85;
}

.grid.vouchers {
  grid-template-columns: repeat(4, 1fr);
}
.voucher {
  background: var(--card); 
  border: 1px dashed var(--c-orange); 
  border-radius: 16px; 
  padding: 16px; 
  position: relative; 
  overflow: hidden;
}
.voucher::after {
  content: ""; 
  position: absolute; 
  inset: 0; 
  background: linear-gradient(90deg, #0000, #0001, #0000);
}
.voucher .badge {
  display: inline-block; 
  background: var(--c-yellow); 
  color: #000; 
  font-weight: 800; 
  padding: 6px 10px; 
  border-radius: 999px; 
  margin-bottom: 8px;
}
.voucher .store {
  font-weight: 800; 
  color: var(--c-rust);
}

/* =============================
   FOOTER
   ============================= */
footer {
  padding: 40px 0; 
  color: #fff; 
  background: linear-gradient(120deg, var(--c-rust), var(--c-brown)); 
  margin-top: 30px;
}
footer .wrap {
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  gap: 16px; 
  flex-wrap: wrap;
}
footer small {
  opacity: .9;
}

/* =============================
   RESPONSIVE
   ============================= */
@media (max-width: 1024px) {
  .grid.cards {
    grid-template-columns: repeat(3, 1fr);
  }
  .grid.vouchers {
    grid-template-columns: repeat(3, 1fr);
  }
  .hero-card {
    grid-template-columns: 1fr;
  }
}
/* Mobile navbar styles are now handled in navbar.html component */
@media (max-width: 720px) {
  .tabs {
    display: none;
  }
  .grid.cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid.vouchers {
    grid-template-columns: repeat(2, 1fr);
  }
  .stats {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 460px) {
  .grid.cards, .grid.vouchers {
    grid-template-columns: 1fr;
  }
  .stats {
    grid-template-columns: 1fr;
  }
}

/* Prevent horizontal overflow caused by long elements */
* { max-width: 100vw; }

/* Improve touch targets */
.tab, .btn, .scan-btn, select { min-height:44px; }

/* Ensure forms/cards fit small screens */
.profile-card, .card, .hero-card { width:100%; box-sizing:border-box; }

/* Small font-size tuning on tiny devices */
@media (max-width:420px) {
  body { font-size:15px; }
  .logo-img { width:34px; height:34px; }
  .container { padding:0 12px; }
}

/* Prevent horizontal scroll */
html,body { width:100%; overflow-x:hidden; }
* { box-sizing:border-box; max-width:100%; }

/* when menu open, lock background scroll */
body.nav-menu-open { overflow:hidden; }

/* Navbar toggle styles are now handled in navbar.html component */


/* Navbar open states are now handled in navbar.html component */