* { box-sizing: border-box; }
body { margin: 0; color: #252c21; background: #f6f6ef; font: 16px/1.5 "Inter", "DM Sans", Arial, sans-serif; }
main { width: min(1060px, calc(100% - 36px)); margin: 0 auto; padding: 65px 0; }
h1 { font: 500 clamp(2.2rem, 5vw, 4rem)/1.06 Georgia, serif; letter-spacing: -.05em; margin: 0; }
p { color: #596450; margin: 6px 0 0; }
.companies { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 25px; }
article { background: #fffffb; border: 1px solid #e0e4d8; border-radius: 15px; overflow: hidden; display: flex; flex-direction: column; }
.logo { height: 190px; display: grid; place-items: center; background: #f0f2e9; border-bottom: 1px solid #e0e4d8; }
.logo img { width: 155px; height: 155px; object-fit: contain; }
.logo.dairy { background: #6b7834; }
.logo.dairy img { width: 180px; }
.company { flex: 1; padding: 18px; display: flex; flex-direction: column; align-items: start; }
h2 { font-size: 1.15rem; margin: 0; line-height: 1.25; }
.company p { font-size: .88rem; margin-bottom: 15px; }
.open, .planned { margin-top: auto; font-size: .85rem; font-weight: 650; border-radius: 8px; padding: 9px 12px; }
.open { color: #fff; background: #526340; text-decoration: none; }
.open:hover { background: #35442d; }
.open:focus-visible { outline: 3px solid #889d5f; outline-offset: 3px; }
.planned { color: #45523d; background: #eef0e8; }
@media (max-width: 700px) { main { padding: 25px 0; } .companies { grid-template-columns: 1fr; } .logo { height: 145px; } .logo img { height: 125px; } }
