:root{
  --page-max-width: 1100px;
  --bg: #faf7f4;
  --card-bg: #ffffff;
  --muted: #6b6b6b;
  --accent: #6aa84f;
  --accent-2: #3b7d3b;
  --radius: 12px;
  --gap: 1rem;
  --space-lg: 2rem;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  background:var(--bg);
  color:#222;
  -webkit-font-smoothing:antialiased;
}

.container{
  max-width:var(--page-max-width);
  margin:0 auto;
  padding:0 1rem;
}

.site-header{
  background:linear-gradient(90deg, rgba(255,255,255,0.85), rgba(255,255,255,0.7));
  border-bottom:1px solid rgba(0,0,0,0.04);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1rem}
.brand{font-weight:700;color:var(--accent-2);text-decoration:none;font-size:1.125rem}
.site-nav a{color:var(--muted);text-decoration:none;padding:0.25rem 0.5rem}

.hero{
  padding:var(--space-lg) 0;
  background:linear-gradient(180deg, rgba(106,168,79,0.08), transparent);
}
.hero-title{margin:0 0 0.5rem 0;font-size:1.75rem}
.hero-subtitle{margin:0;color:var(--muted)}

.products-section{padding:var(--space-lg) 0}
.products-section h3{margin:0 0 1rem 0}

.product-grid{list-style:none;padding:0;margin:0;display:grid;gap:var(--gap);grid-template-columns:repeat(1,1fr)}

@media(min-width:640px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1000px){
  .product-grid{grid-template-columns:repeat(3,1fr)}
}

.product-item{list-style:none}
.product-card{
  background:var(--card-bg);
  border-radius:var(--radius);
  padding:1rem;
  box-shadow:0 6px 18px rgba(20,20,20,0.06);
  display:flex;flex-direction:column;gap:0.5rem;min-height:100%;
}
.product-image{width:100%;height:auto;border-radius:8px;object-fit:cover}
.product-meta{display:flex;justify-content:space-between;align-items:center;gap:0.5rem}
.product-name{margin:0;font-size:1.05rem}
.product-description{margin:0;color:var(--muted);font-size:0.95rem}
.price{font-weight:700;color:var(--accent-2)}
.availability{font-size:0.9rem;color:var(--muted)}
.more-info{color:var(--accent);text-decoration:none}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
