/*
 Theme Name:   Borecka Nieruchomości
 Theme URI:    https://white-pr.com/
 Description:  Motyw kodowany: sekcje z pól ACF, style na Tailwindzie (assets/css/tailwind.css) nad rdzeniem zmiennych (assets/css/wp-root.css).
 Author:       White-PR
 Author URI:   https://white-pr.com/
 Version:      1.0.0
 Requires at least: 6.0
 Requires PHP: 8.0
 Text Domain:  bn
*/

/* Style projektu idą do assets/css/. Tutaj trafiają WYŁĄCZNIE nadpisania
   bibliotek zewnętrznych (Leaflet, Splide, Tom Select, wtyczka cookies).

   Powód: assets/css/tailwind.css jest w całości opakowany w @layer (Tailwind 4),
   a reguła z warstwy przegrywa z regułą spoza warstw niezależnie od
   specyficzności. Biblioteki warstw nie używają, więc ich reguła wygrywa nawet
   z naszym selektorem dwuczłonowym. Ten plik jest wczytywany po Tailwindzie
   i stoi poza warstwami, więc nadpisanie działa.

   Warunek drugi: arkusz biblioteki musi być wczytany PRZED naszymi (inc/assets.php). */

/* ============================================================================
   MAPA LOKALIZACJI — nadpisania biblioteki
   ============================================================================ */

/* Tło daje sekcja, nie biblioteka: domyślne jest jasnoszare i przebija
   kolor planszy. */
.leaflet-container {
	background: transparent;
	font-family: inherit;
	font-size: inherit;
	outline-offset: 2px;
}

/* Pinezka jest znacznikiem biblioteki, więc jej układ ustawiamy tutaj —
   `.leaflet-marker-icon` narzuca display: block i wymiary z opcji ikony. */
.bn-mapa__pinezka.leaflet-marker-icon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	inline-size: auto;
	block-size: auto;
	white-space: nowrap;
	cursor: pointer;
}

/* Sterowanie przybliżeniem w duchu reszty serwisu: bez zaokrągleń i cienia,
   z tą samą kreską co obramowania sekcji. */
.leaflet-touch .leaflet-bar,
.leaflet-bar {
	border: 1px solid rgb(168 158 147 / 0.5);
	border-radius: 0;
	box-shadow: none;
}

.leaflet-touch .leaflet-bar a,
.leaflet-bar a {
	inline-size: 2rem;
	block-size: 2rem;
	line-height: 2rem;
	background: rgb(250 248 244 / 0.94);
	color: var(--color-granat);
	border-block-end-color: rgb(168 158 147 / 0.4);
	border-radius: 0;
	font-weight: 300;
}

.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background: var(--color-kremowy);
	color: var(--color-zloty-mocny);
}

.leaflet-control-container .leaflet-bottom.leaflet-right {
	margin: 0 1.25rem 1.25rem 0;
}

/* Palec w pionie ma przewijać STRONĘ, nie przesuwać mapę.

   Biblioteka ustawia na kontenerze `touch-action: none`, czyli przejmuje
   wszystkie gesty — na telefonie mapa zajmuje wtedy pół ekranu, którego nie
   da się przewinąć. Zostawiamy jej ruch poziomy i szczypanie; przesunięcie
   mapy w pionie robi się przybliżeniem albo dwoma palcami. */
.leaflet-container.leaflet-touch-drag,
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	touch-action: pan-y pinch-zoom;
}

/* ============================================================================
   FILTR MIASTA — nadpisania biblioteki wyboru (Tom Select)
   ============================================================================ */

/* Pole wygląda jak pigułki filtrów obok: bez zaokrągleń i cienia. */
.bn-filtry__miasto .ts-wrapper.multi .ts-control,
.bn-filtry__miasto .ts-wrapper.multi.input-active .ts-control,
.bn-filtry__miasto .ts-wrapper.multi.focus .ts-control {
  min-block-size: 2.375rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid rgb(168 158 147 / 0.45);
  border-radius: 0;
  background: rgb(250 248 244 / 0.7);
  box-shadow: none;
  color: var(--color-tekst);
  font-family: inherit;
  font-size: var(--fs-drobny);
  font-weight: var(--fw-drobny);
  line-height: 1.5;
  cursor: text;
}

.bn-filtry__miasto .ts-wrapper.multi.focus .ts-control {
  border-color: var(--color-granat);
}

.bn-filtry__miasto .ts-control > input {
  font-size: var(--fs-drobny);
  color: var(--color-tekst);
}

.bn-filtry__miasto .ts-control > input::placeholder {
  color: var(--color-tekst-cichy);
}

/* Wybrane miasto = pigułka zaznaczonej opcji. */
.bn-filtry__miasto .ts-wrapper.multi .ts-control > .item,
.bn-filtry__miasto .ts-wrapper.multi .ts-control > .item.active {
  margin: 0.125rem 0.375rem 0.125rem 0;
  padding: 0.1875rem 0 0.1875rem 0.625rem;
  border: 0;
  border-radius: 0;
  background: var(--color-granat);
  color: var(--color-kremowy);
}

.bn-filtry__miasto .ts-wrapper.plugin-remove_button .item .remove {
  margin-inline-start: 0.375rem;
  padding: 0 0.5rem;
  border-inline-start: 1px solid rgb(255 255 255 / 0.25);
  border-radius: 0;
  color: inherit;
  font-size: 1.1em;
}

.bn-filtry__miasto .ts-wrapper.plugin-remove_button .item .remove:hover {
  background: rgb(255 255 255 / 0.12);
}

.bn-filtry__miasto .ts-dropdown {
  margin-block-start: -1px;
  border: 1px solid var(--color-granat);
  border-radius: 0;
  background: #faf8f4;
  box-shadow: 0 10px 24px rgb(20 30 50 / 0.12);
  color: var(--color-tekst);
  font-size: var(--fs-drobny);
  font-weight: var(--fw-drobny);
}

.bn-filtry__miasto .ts-dropdown .option,
.bn-filtry__miasto .ts-dropdown .no-results {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0.875rem;
}

.bn-filtry__miasto .ts-dropdown .active {
  background: rgb(168 158 147 / 0.18);
  color: var(--color-tekst);
}

.bn-filtry__miasto .ts-dropdown [data-disabled],
.bn-filtry__miasto .ts-dropdown [data-disabled]:hover {
  opacity: 0.42;
  cursor: default;
}


/* ============================================================================
   GDPR COOKIE COMPLIANCE — pasek zgód i okno ustawień
   ============================================================================ */

/* Arkusz wtyczki wczytuje się PO naszym, więc selektory mają prefiks `body`
   (o jeden element mocniejsze od jej reguł), a kolory przycisków, które
   wtyczka wypisuje inline z ustawień, idą z `!important`. */

#moove_gdpr_cookie_info_bar,
#moove_gdpr_cookie_modal,
.gdpr_lightbox {
  z-index: 100000 !important;
}

body #moove_gdpr_cookie_info_bar.moove-gdpr-dark-scheme {
  border-top: 1px solid rgb(248 245 239 / 0.12);
  background-color: var(--color-granat);
  box-shadow: 0 -12px 40px rgb(11 31 56 / 0.3);
  font-family: var(--font-tekst);
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
  padding: 1.125rem 0;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content {
  gap: 1rem 2rem;
  width: var(--box-container);
  max-width: none;
  margin-inline: auto;
  padding: 0;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p {
  margin: 0;
  color: rgb(248 245 239 / 0.8);
  font-family: var(--font-tekst);
  font-size: var(--fs-maly);
  line-height: 1.6;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p strong {
  color: var(--color-kremowy);
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p a,
body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p button.change-settings-button {
  color: var(--color-piasek) !important;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Przyciski jak .btn-jasny: bez zaokrągleń, wersaliki ze światłem. „Akceptuję”
   i „Odrzucam” mają ten sam wygląd — odmowa nie może być mniej widoczna niż zgoda. */
body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton {
  min-height: 2.75rem;
  margin: 0.25rem;
  padding: 0.875rem 1.5rem;
  border-radius: 0;
  font-family: var(--font-tekst);
  font-size: var(--fs-etykieta);
  font-weight: var(--fw-przycisk);
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 1;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton:is(.moove-gdpr-infobar-allow-all, .moove-gdpr-infobar-reject-btn) {
  border: 1px solid var(--color-kremowy);
  background-color: var(--color-kremowy) !important;
  box-shadow: none !important;
  color: var(--color-granat) !important;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton:is(.moove-gdpr-infobar-allow-all, .moove-gdpr-infobar-reject-btn):hover {
  border-color: var(--color-zloty);
  background-color: var(--color-zloty) !important;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton.moove-gdpr-infobar-settings-btn {
  border: 1px solid rgb(248 245 239 / 0.4);
  background-color: transparent !important;
  box-shadow: none !important;
  color: var(--color-kremowy) !important;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton.moove-gdpr-infobar-settings-btn:hover {
  border-color: var(--color-kremowy);
}

/* Pasek wymaga wyboru — zamknięcie bez decyzji zostawiałoby pytanie bez odpowiedzi.
   Opcja wtyczki włącza ten przycisk razem z „X” w oknie ustawień, który zostaje. */
body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-close-btn {
  display: none !important;
}

body #moove_gdpr_cookie_info_bar button:focus-visible {
  outline: 2px solid var(--color-zloty);
  outline-offset: 3px;
}

/* Okno ustawień. */
body #moove_gdpr_cookie_modal .moove-gdpr-modal-content {
  border-radius: 0;
  color: var(--color-grafit);
  font-family: var(--font-tekst);
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-company-logo-holder {
  display: none;
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-modal-left-content {
  background-color: var(--color-tlo);
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-modal-left-content #moove-gdpr-menu li button {
  border-color: transparent;
  border-radius: 0;
  background-color: transparent;
  color: var(--color-tekst-lead);
  font-family: var(--font-tekst);
  font-size: var(--fs-maly);
  font-weight: 600;
  text-transform: none;
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-modal-left-content #moove-gdpr-menu li.menu-item-selected button {
  border-color: var(--color-granat);
  background-color: #fff;
  color: var(--color-granat);
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .gdpr-tab-title-text {
  color: var(--color-grafit);
  font-family: var(--font-naglowki) !important;
  font-weight: 500 !important;
}

/* Przełącznik: wyłączony neutralny zamiast czerwieni wtyczki (czerwień czyta
   się jak błąd, a odmowa jest pełnoprawnym wyborem), włączony w granacie. */
body #moove_gdpr_cookie_modal .cookie-switch .cookie-slider {
  background-color: #b9b4ac;
}

body #moove_gdpr_cookie_modal .cookie-switch input:checked + .cookie-slider {
  background-color: var(--color-granat);
}

body #moove_gdpr_cookie_modal .cookie-switch .cookie-slider::after,
body #moove_gdpr_cookie_modal .cookie-switch .gdpr-sr-label,
body #moove_gdpr_cookie_modal .cookie-switch .gdpr-sr-disable {
  color: var(--color-tekst-cichy);
  font-family: var(--font-tekst);
}

body #moove_gdpr_cookie_modal .cookie-switch input:checked + .cookie-slider::after {
  color: var(--color-granat);
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-tab-main .moove-gdpr-tab-main-content p {
  color: var(--color-tekst);
  font-family: var(--font-tekst);
  font-size: var(--fs-maly);
  line-height: 1.7;
}

body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-tab-main .moove-gdpr-tab-main-content a {
  color: var(--color-granat);
  text-decoration: underline;
}

/* Wtyczka nadaje tym przyciskom zaokrąglenie selektorem dłuższym niż nasz. */
body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-button-holder .mgbutton {
  padding-inline: 1.5rem;
  border-radius: 0 !important;
  font-family: var(--font-tekst);
  font-size: var(--fs-etykieta) !important;
  font-weight: var(--fw-przycisk) !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
}

/* „X” wtyczka stawia na zewnątrz rogu okna — przycisk idzie do środka. */
body #moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-modal-close {
  top: 1rem;
  right: 1rem;
}
