.catalog{padding:3.5rem 0 5rem;min-height:70vh}
.catalog h1{max-width:none;font-size:clamp(2.4rem,5vw,4rem)}
.search{max-width:38rem;margin:2.5rem 0 1.5rem}.search label{display:block;margin-bottom:.5rem;font-weight:900}
.search-controls{display:flex;gap:.6rem}.search input{min-width:0;flex:1;padding:.8rem;border:2px solid #74816f;border-radius:12px;font:inherit;background:#fff}
.search button,.pagination button{padding:.75rem 1.1rem;border:2px solid #286000;border-radius:12px;background:#fff;color:#286000;font:inherit;font-weight:900;cursor:pointer}
.search button:hover,.pagination button:hover:not(:disabled){background:#eff8e8}.pagination button:disabled{opacity:.55;cursor:default}
.modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;margin:1.5rem 0;padding:0;list-style:none}
.modules li{padding:1.4rem;border:1px solid #dce4da;border-radius:20px;background:#fff;box-shadow:0 4px 0 #e8eee4}
.modules p{margin:0 0 .5rem;color:#286000;font-weight:900}.modules h2{font-size:1.35rem;line-height:1.3;letter-spacing:-.02em}
.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem}.pagination span{font-weight:800}
@media(max-width:480px){.catalog{padding-top:2rem}.search-controls{flex-wrap:wrap}.search input{flex-basis:100%}}

.modules a{display:inline-block;margin-top:1rem;color:#286000;font-weight:900;text-decoration:underline;text-underline-offset:.2em}
