Index: src/main/java/mk/petsitter/controller/BookingController.java
===================================================================
--- src/main/java/mk/petsitter/controller/BookingController.java	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/java/mk/petsitter/controller/BookingController.java	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -47,8 +47,5 @@
         model.addAttribute("pets", petService.getPetsByOwner(user.getUserId()));
         model.addAttribute("serviceType", serviceType);
-        petSitterRepository.findById(sitterId).ifPresent(sitter -> {
-            model.addAttribute("sitter", sitter);
-            model.addAttribute("availableServices", sitter.getOfferedServices());
-        });
+        petSitterRepository.findById(sitterId).ifPresent(sitter -> model.addAttribute("sitter", sitter));
         return "book-sitter";
     }
@@ -72,7 +69,4 @@
         if (petIds == null || petIds.isEmpty()) {
             return "redirect:/book?sitterId=" + sitterId + "&error=NoPets";
-        }
-        if (serviceType == null || serviceType.isEmpty()) {
-            return "redirect:/book?sitterId=" + sitterId + "&error=NoService";
         }
         
Index: src/main/java/mk/petsitter/model/Booking.java
===================================================================
--- src/main/java/mk/petsitter/model/Booking.java	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/java/mk/petsitter/model/Booking.java	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -45,7 +45,11 @@
     private List<Pet> pets;
 
-    @ManyToOne
-    @JoinColumn(name = "service_id", nullable = false)
-    private Service service;
+    @ManyToMany
+    @JoinTable(
+        name = "booking_services",
+        joinColumns = @JoinColumn(name = "booking_id"),
+        inverseJoinColumns = @JoinColumn(name = "service_id")
+    )
+    private List<Service> services;
 
     @OneToOne(mappedBy = "booking")
Index: src/main/java/mk/petsitter/repository/BookingRepository.java
===================================================================
--- src/main/java/mk/petsitter/repository/BookingRepository.java	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/java/mk/petsitter/repository/BookingRepository.java	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -17,5 +17,5 @@
     List<Booking> findBySitter_UserIdOrderByDateFromDesc(String sitterId);
 
-    @EntityGraph(attributePaths = {"owner", "sitter", "service", "review", "payment"})
+    @EntityGraph(attributePaths = {"owner", "sitter", "review", "payment"})
     @Query("SELECT b FROM Booking b")
     List<Booking> findAllWithDetails();
Index: src/main/java/mk/petsitter/service/BookingService.java
===================================================================
--- src/main/java/mk/petsitter/service/BookingService.java	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/java/mk/petsitter/service/BookingService.java	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -66,18 +66,4 @@
         }
 
-        // Each booking requires exactly one service
-        if (serviceType == null || serviceType.isEmpty()) {
-            logger.error("VALIDATION FAILED: No service selected for booking");
-            throw new IllegalArgumentException("A service must be selected");
-        }
-
-        mk.petsitter.model.Service service = serviceRepository.findAll().stream()
-                .filter(s -> s.getType().equals(serviceType))
-                .findFirst()
-                .orElseThrow(() -> {
-                    logger.error("VALIDATION FAILED: Service not found with type: {}", serviceType);
-                    return new IllegalArgumentException("Invalid service selected");
-                });
-
         // 3. Entity Construction
         Booking booking = new Booking();
@@ -88,5 +74,11 @@
         booking.setAddress(address);
         booking.setPets(pets);
-        booking.setService(service);
+        
+        if (serviceType != null && !serviceType.isEmpty()) {
+            serviceRepository.findAll().stream()
+                .filter(s -> s.getType().equals(serviceType))
+                .findFirst()
+                .ifPresent(service -> booking.setServices(List.of(service)));
+        }
         
         // 4. Write Operation
Index: src/main/resources/templates/admin-bookings.html
===================================================================
--- src/main/resources/templates/admin-bookings.html	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/resources/templates/admin-bookings.html	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -37,5 +37,5 @@
                         <td class="small"><span th:text="${booking.dateFrom} + ' to ' + ${booking.dateTo}"></span><br><em class="text-muted" th:text="${booking.dateTo.toEpochDay() - booking.dateFrom.toEpochDay() + 1} + ' day(s)'"></em></td>
                         <td class="small" th:text="${booking.address}"></td>
-                        <td class="small"><span th:if="${booking.service != null}" th:text="${booking.service.type}"></span><em class="text-muted" th:if="${booking.service == null}">None</em></td>
+                        <td class="small"><span th:each="service, i : ${booking.services}"><span th:text="${service.type}"></span><span th:if="${!i.last}">, </span></span><em class="text-muted" th:if="${booking.services == null or booking.services.empty}">None</em></td>
                         <td class="small"><span th:each="pet, i : ${booking.pets}"><span th:text="${pet.name}"></span><span th:if="${!i.last}">, </span></span></td>
                         <td class="small"><span th:if="${booking.payment != null}" th:text="${booking.payment.amount} + ' MKD'"></span><em class="text-muted" th:if="${booking.payment == null}">Unpaid</em></td>
Index: src/main/resources/templates/book-sitter.html
===================================================================
--- src/main/resources/templates/book-sitter.html	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/resources/templates/book-sitter.html	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -24,21 +24,11 @@
         <div class="card p-4 p-md-5 bg-white">
             <h2 class="fw-bold text-dark text-center mb-1">Book <span th:text="${sitter.firstName}"></span> <span th:text="${sitter.lastName}"></span></h2>
-            <p class="text-center text-muted mb-4">One service per booking, for one or more of your pets.</p>
+            <p class="text-center text-muted mb-4" th:if="${serviceType != null and !serviceType.empty}">Requested Service: <strong class="text-teal" th:text="${serviceType}"></strong></p>
             
-            <div th:if="${param.error != null and param.error[0] == 'NoPets'}" class="alert alert-danger py-2" role="alert">You must select at least 1 pet for this booking!</div>
-            <div th:if="${param.error != null and param.error[0] == 'NoService'}" class="alert alert-danger py-2" role="alert">You must select a service for this booking!</div>
-            <div th:if="${availableServices == null or availableServices.empty}" class="alert alert-warning py-2" role="alert">This sitter does not offer any services yet.</div>
+            <div th:if="${param.error}" class="alert alert-danger py-2" role="alert">You must select at least 1 pet for this booking!</div>
             
             <form action="/book" method="post">
                 <input type="hidden" name="sitterId" th:value="${sitter.userId}"/>
-                
-                <div class="mb-4">
-                    <label class="form-label text-muted fw-semibold">Service:</label>
-                    <select class="form-select bg-light" id="serviceType" name="serviceType" required>
-                        <option value="" disabled th:selected="${serviceType == null or serviceType.empty}">Choose a service...</option>
-                        <option th:each="service : ${availableServices}" th:value="${service.type}" th:text="${service.type}" th:selected="${service.type == serviceType}"></option>
-                    </select>
-                    <div class="form-text">The selected service applies to every pet in this booking. For a different service, create a separate booking.</div>
-                </div>
+                <input type="hidden" name="serviceType" th:value="${serviceType}" th:if="${serviceType != null and !serviceType.empty}"/>
                 
                 <div class="row mb-3">
Index: src/main/resources/templates/my-bookings.html
===================================================================
--- src/main/resources/templates/my-bookings.html	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/resources/templates/my-bookings.html	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -37,5 +37,5 @@
                         <p class="mb-1 small"><strong>Dates:</strong> <span th:text="${booking.dateFrom}"></span> to <span th:text="${booking.dateTo}"></span></p>
                         <p class="mb-1 small text-muted"><i class="bi bi-geo-alt-fill me-1"></i><span th:text="${booking.address}"></span></p>
-                        <p class="mb-1 small" th:if="${booking.service != null}"><strong>Service:</strong> <span th:text="${booking.service.type}"></span></p>
+                        <p class="mb-1 small" th:if="${booking.services != null and !booking.services.empty}"><strong>Service:</strong> <span th:each="service, i : ${booking.services}"><span th:text="${service.type}"></span><span th:if="${!i.last}">, </span></span></p>
                         <p class="mb-3 small"><strong>Pets:</strong> <span th:each="pet, i : ${booking.pets}"><span th:text="${pet.name}"></span><span th:if="${!i.last}">, </span></span></p>
                         
@@ -66,5 +66,5 @@
                         <p class="mb-1 small"><strong>Dates:</strong> <span th:text="${booking.dateFrom}"></span> to <span th:text="${booking.dateTo}"></span></p>
                         <p class="mb-1 small text-muted"><i class="bi bi-geo-alt-fill me-1"></i><span th:text="${booking.address}"></span></p>
-                        <p class="mb-1 small" th:if="${booking.service != null}"><strong>Service:</strong> <span th:text="${booking.service.type}"></span></p>
+                        <p class="mb-1 small" th:if="${booking.services != null and !booking.services.empty}"><strong>Service:</strong> <span th:each="service, i : ${booking.services}"><span th:text="${service.type}"></span><span th:if="${!i.last}">, </span></span></p>
                         <p class="mb-3 small"><strong>Pets:</strong> <span th:each="pet, i : ${booking.pets}"><span th:text="${pet.name}"></span><span th:if="${!i.last}">, </span></span></p>
                         
Index: src/main/resources/templates/requests.html
===================================================================
--- src/main/resources/templates/requests.html	(revision 32aee05bd46c121844aa355a9334f77a348f9708)
+++ src/main/resources/templates/requests.html	(revision eb23edcf8434843044d0b7fcb505f34b16dc9d59)
@@ -37,5 +37,5 @@
                         <p class="mb-1 small"><strong>Dates:</strong> <span th:text="${booking.dateFrom}"></span> to <span th:text="${booking.dateTo}"></span></p>
                         <p class="mb-1 small text-muted"><i class="bi bi-geo-alt-fill me-1"></i><span th:text="${booking.address}"></span></p>
-                        <p class="mb-1 small" th:if="${booking.service != null}"><strong>Service:</strong> <span th:text="${booking.service.type}"></span></p>
+                        <p class="mb-1 small" th:if="${booking.services != null and !booking.services.empty}"><strong>Service:</strong> <span th:each="service, i : ${booking.services}"><span th:text="${service.type}"></span><span th:if="${!i.last}">, </span></span></p>
                         <p class="mb-3 small"><strong>Pets:</strong> <span th:each="pet, i : ${booking.pets}"><span th:text="${pet.name + ' (' + pet.petType.species + ')'}"></span><span th:if="${!i.last}">, </span></span></p>
                         
@@ -69,5 +69,5 @@
                         <p class="mb-1 small"><strong>Dates:</strong> <span th:text="${booking.dateFrom}"></span> to <span th:text="${booking.dateTo}"></span></p>
                         <p class="mb-1 small text-muted"><i class="bi bi-geo-alt-fill me-1"></i><span th:text="${booking.address}"></span></p>
-                        <p class="mb-1 small" th:if="${booking.service != null}"><strong>Service:</strong> <span th:text="${booking.service.type}"></span></p>
+                        <p class="mb-1 small" th:if="${booking.services != null and !booking.services.empty}"><strong>Service:</strong> <span th:each="service, i : ${booking.services}"><span th:text="${service.type}"></span><span th:if="${!i.last}">, </span></span></p>
                         <p class="mb-3 small"><strong>Pets:</strong> <span th:each="pet, i : ${booking.pets}"><span th:text="${pet.name + ' (' + pet.petType.species + ')'}"></span><span th:if="${!i.last}">, </span></span></p>
                         
