:root { color-scheme: light; font-family: Rubik, system-ui, sans-serif; color: #20382a; background: #fbfaf7; }
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.6; }
a { color: #174b32; text-underline-offset: .2em; }
a:focus-visible { outline: 3px solid #397c58; outline-offset: 3px; }
.site-header, main, footer { padding: 1.25rem max(1.25rem, calc((100% - 68rem) / 2)); }
.site-header { background: #fff; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { font-size: 1.4rem; font-weight: 700; }
nav, footer { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; margin: 1.5rem 0; padding: 0; list-style: none; }
.catalog-card { display: block; overflow: hidden; height: 100%; border: 1px solid #dce4dc; border-radius: 1rem; background: #fff; }
.catalog-card h2, .catalog-card p { margin: .6rem 1rem; }
.catalog-card h2 { font-size: 1.15rem; }
.catalog-card img, .product-image { width: 100%; display: block; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #fff; }
.product { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.5rem; align-items: start; margin: 1rem 0 2rem; }
.product-image { border-radius: 1rem; }
.button { display: inline-block; border-radius: 1.5rem; padding: .75rem 1.25rem; background: #174b32; color: #fff; }
footer { background: #edf3ed; }
