:root {
  --green: #8bc53f;
  --green-dark: #6ea129;
  --black: #222222;
  --charcoal: #333333;
  --light: #f3f3f3;
  --muted: #777777;
  --white: #ffffff;
  --container: 1180px;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--charcoal);
  background: #efefef;
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(var(--container), 94%); margin: 0 auto; }
.topbar { background: var(--green); color: #fff; font-size: 13px; }
.topbar .container { display:flex; justify-content:space-between; padding:8px 0; }
.header-main { background: #fff; }
.header-main .container { display:flex; align-items:center; justify-content:space-between; gap: 14px; padding: 18px 0; }
.logo-wrap { display:flex; align-items:center; gap: 10px; }
.logo-wrap img { width: 52px; height: 52px; object-fit:contain; }
.logo-wrap .brand-title { font-size: 28px; color: #202020; font-weight: 700; }
.logo-wrap .brand-sub { font-size: 12px; color: var(--muted); }
.search-cart { display:flex; gap:10px; align-items:center; }
.search-cart input { width: 260px; padding:10px; border:1px solid #ddd; }
.nav { background: #3a3a3a; color: #fff; }
.nav .container { display:flex; flex-wrap:wrap; gap:18px; padding:14px 0; font-size:14px; }
.nav a:hover, .nav a.active { color: var(--green); }
.hero { position:relative; min-height:420px; background-size:cover; background-position:center; }
.hero::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,0.24); }
.hero-content { position:relative; z-index:1; color:#fff; padding:70px 0; max-width: 520px; }
.hero-content h1 { font-size: 44px; line-height:1.15; margin:0 0 10px; }
.btn { display:inline-block; background:var(--green); color:#fff; padding:11px 18px; font-weight:700; border:none; cursor:pointer; }
.btn:hover { background:var(--green-dark); }
.section { padding: 36px 0; }
.section.white { background:#fff; }
.section-title { margin:0 0 16px; text-transform:uppercase; font-size:24px; letter-spacing:0.5px; color:#222; }
.grid { display:grid; gap:18px; }
.category-grid { grid-template-columns: repeat(3,1fr); }
.category-card { position:relative; overflow:hidden; }
.category-card img { width:100%; height:260px; object-fit:cover; object-position:center; display:block; background:#f5f5f5; }
.category-card h3 { position:absolute; left:12px; bottom:12px; background:var(--green); color:#fff; padding:8px 10px; margin:0; font-size:14px; }
.products-grid { grid-template-columns: repeat(4,1fr); }
.product-card { background:#fff; border:1px solid #e5e5e5; display:flex; flex-direction:column; }
.product-card .product-image-wrap { display:block; overflow:hidden; background:#f5f5f5; }
.product-card .product-image { width:100%; height:220px; object-fit:cover; object-position:center; }
.product-card .body { padding:12px; flex:1; display:flex; flex-direction:column; }
.product-detail-media { background:#f5f5f5; overflow:hidden; }
.product-detail-media img { width:100%; height:420px; object-fit:cover; object-position:center; }
.product-detail-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:26px; align-items:start; }
.product-card h4 { margin:0 0 6px; font-size:17px; }
.price { color: var(--green-dark); font-weight:700; margin:4px 0 10px; }
.muted { color: var(--muted); }
.bar-grid { grid-template-columns: repeat(3,1fr); }
.info-bar { background: var(--green); color:#fff; text-align:center; padding:20px 12px; font-weight:700; }
.footer { background:#333; color:#ddd; margin-top:30px; }
.footer-top { padding:40px 0; }
.footer-grid { display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap:22px; }
.footer h4 { color:#fff; margin:0 0 10px; text-transform:uppercase; font-size:14px; }
.footer a { color:#ddd; display:block; margin:6px 0; font-size:14px; }
.footer a:hover { color: var(--green); }
.footer-bottom { border-top:1px solid #555; padding:14px 0; font-size:13px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.page-banner { background:#222; color:#fff; padding:36px 0; }
.page-banner h1 { margin:0; text-transform:uppercase; }
.content-page { background:#fff; padding:28px; }
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; }
.contact-content h2, .contact-form-wrap h2 { margin:0 0 14px; font-size:22px; color:#222; text-transform:uppercase; }
.contact-content p { margin:0 0 14px; }
.contact-content ul { margin:0; padding-left:20px; }
.contact-content li { margin-bottom:8px; }
.contact-form-wrap { background:#fafafa; border:1px solid #e5e5e5; padding:22px; }
form { display:grid; gap:12px; }
input, textarea, select { width:100%; padding:10px; border:1px solid #ccc; font-family:inherit; }
.error { color:#be1f1f; font-size:13px; margin-top:4px; }
.field.invalid input, .field.invalid textarea { border-color:#be1f1f; }
.cart-table { width:100%; border-collapse:collapse; background:#fff; }
.cart-table th, .cart-table td { padding:10px; border:1px solid #ddd; text-align:left; }
.checkout-box { margin-top:20px; background:#fff; padding:18px; border:1px solid #ddd; }
.alert-success { background:#e8f6d5; border:1px solid #a9d77b; color:#2d5312; padding:12px; margin-bottom:15px; }
@media (max-width: 980px) {
  .products-grid { grid-template-columns: repeat(3,1fr); }
  .category-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .search-cart input { width: 170px; }
  .products-grid { grid-template-columns: repeat(2,1fr); }
  .bar-grid, .category-grid { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .product-detail-layout { grid-template-columns: 1fr; }
  .product-detail-media img { height: 280px; }
  .hero-content h1 { font-size: 34px; }
}
@media (max-width: 520px) {
  .header-main .container { flex-direction:column; align-items:flex-start; }
  .products-grid { grid-template-columns: 1fr; }
}
