diff --git a/contracts/templates/contracts/search.html b/contracts/templates/contracts/search.html
index e6eaf277859a0d3f759889fdac87b537268f8df4..825d2708e9b4d496fdf8a2ed59558a4ec81f8bc6 100644
--- a/contracts/templates/contracts/search.html
+++ b/contracts/templates/contracts/search.html
@@ -4,25 +4,27 @@
 {% block content %}
     {% include "contracts/includes/double_heading.html" with icon="ico--search" heading="Vyhledávání" subheading="dle názvu smlouvy" %}
 
-    <div class="flex flex-row justify-center">
-        <form method="post">
+    <form method="get" class="flex justify-center mb-10">
+        <div class="flex flex-row border border-black">
             {% csrf_token %}
             <input
+                id="q"
+                name="q"
                 class="bg-grey-150 w-56 h-10 px-4 text-lg xl:h-14 xl:px-5"
                 type="text"
-                value="{% if query %}{{ query }}{% endif %}"
+                value="{% if query_is_set %}{{ query }}{% endif %}"
                 placeholder="Hledaný název"
                 aria-label="Vyhledávací box"
             >
             <button type="submit" class="btn text-lg">
-                <div class="btn__body">
+                <div class="btn__body h-10 w-12 min-h-0 min-w-0 xl:h-14 xl:w-14">
                     <i class="ico--search"></i>
                 </div>
             </button>
-        </form>
-    </div>
+        </div>
+    </form>
 
-    {% if query %}
+    {% if query_is_set %}
         <h2 class="text-lg font-bold mb-10">
             Výsledky vyhledávání
         </h2>
diff --git a/contracts/urls.py b/contracts/urls.py
index 0ba41911b3d892c0f2ed4d0c8c15753949ea824d..91c6fac6c94d1e46250f321a3b3575a3a82f0fa7 100644
--- a/contracts/urls.py
+++ b/contracts/urls.py
@@ -5,6 +5,11 @@ from . import models, views
 app_name = "contracts"
 urlpatterns = [
     path("", views.index, name="index"),
+    path(
+        "contracts/search",
+        views.search,
+        name="search",
+    ),
     path("contracts/<int:id>", views.view_contract, name="view_contract"),
     path(
         "contracts/filing-areas/<int:id>",
diff --git a/contracts/views.py b/contracts/views.py
index ce58d095df50b363dad399dd44f5acd56db9c062..924951d94767d6367b12adc516a0e667b74a045d 100644
--- a/contracts/views.py
+++ b/contracts/views.py
@@ -4,6 +4,7 @@ import requests
 from django.conf import settings
 from django.core.paginator import Paginator
 from django.db import models
+from django.db.models.functions import Lower
 from django.http import HttpResponse
 from django.shortcuts import get_object_or_404, render
 from django_downloadview import ObjectDownloadView
@@ -47,11 +48,11 @@ def get_pagination(request, objects) -> tuple:
     return page, paginator
 
 
-def get_paginated_contracts(request, filter=None) -> tuple:
+def get_paginated_contracts(request, filter=None, annotations=None) -> tuple:
     if filter is None:
         filter = models.Q()
 
-    filter = models.Q(is_approved=True)
+    filter = filter & models.Q(is_approved=True)
 
     if not request.user.has_perm("contracts.view_confidential"):
         additional_filter = models.Q(is_public=True)
@@ -61,8 +62,13 @@ def get_paginated_contracts(request, filter=None) -> tuple:
 
         filter = filter & additional_filter
 
+    contracts = get_objects_for_user(request.user, "contracts.view_contract")
+
+    if annotations is not None:
+        contracts = contracts.annotate(**annotations)
+
     contracts = (
-        get_objects_for_user(request.user, "contracts.view_contract")
+        contracts
         .filter(filter)
         .order_by("-valid_start_date")
         .all()
@@ -124,16 +130,29 @@ def search(request):
     page = paginator = None
     title = "Vyhledávání"
 
-    if query is not None:
-        title = f"Vyhledávání - {query}"
+    # Query is defined and is more than spaces
+    query_is_set = query is not None and len(query.replace(" ", "")) != 0
+
+    if query_is_set:
+        title = f"Vyhledávání - „{query}“"
+
+        lower_query = query.lower()
 
         # WARNING: PostgreSQL-dependent
         page, paginator = get_paginated_contracts(
             request,
-            models.Q(name__search=query)
+            (
+                models.Q(lower_name__contains=lower_query)
+                | models.Q(lower_summary__contains=lower_query)
+            ),
+            {
+                "lower_name": Lower("name"),
+                "lower_summary": Lower("summary"),
+            }
         )
 
     return render(
+        request,
         "contracts/search.html",
         {
             **get_base_context(request),
@@ -142,6 +161,7 @@ def search(request):
             "page": page,
             "paginator": paginator,
             "query": query,
+            "query_is_set": query_is_set,
         }
     )
 
diff --git a/shared/templates/shared/includes/base.html b/shared/templates/shared/includes/base.html
index 81c1643e1bb58085ada43b2058813e9fb1deec21..58c3b668b4993b37b0df6ed9425f8740881522bf 100644
--- a/shared/templates/shared/includes/base.html
+++ b/shared/templates/shared/includes/base.html
@@ -59,7 +59,7 @@
                         <div class="container container--default navbar__content" :class="{'navbar__content--initialized': true}">
                             <div class="navbar__brand my-4 flex items-center lg:pr-8 lg:my-0">
                                 <a href="/">
-                                    <img src="https://styleguide.pirati.cz/2.11.x/images/logo-round-white.svg" class="w-8" />
+                                    <img src="https://styleguide.pirati.cz/2.12.x/images/logo-round-white.svg" class="w-8" />
                                 </a>
                                 <a href="/" class="pl-4 font-bold text-xl hover:no-underline lg:border-r lg:border-grey-300 lg:pr-8">Registr smluv</a>
                             </div>
@@ -85,8 +85,8 @@
                                     {% endif %}
                                     <li class="navbar-menu__item">
                                         <a
-                                            href="#TODO"
-                                            data-href="#TODO"
+                                            href="{% url "contracts:search" %}"
+                                            data-href="{% url "contracts:search" %}"
                                             class="navbar-menu__link flex items-center gap-2"
                                         >
                                             <i class="ico--search text-sm"></i>Hledat