/* =========================================================
   Zwierzopunkt Core — style.css (SAFE CLEAN)
   Cel: nie psuć formularzy i wyszukiwarki + naprawić wyniki
   ========================================================= */

/* ---------- Reset / Base ---------- */
:root{
  --zp-bg: #ffffff;
  --zp-text: #1f2937;
  --zp-muted: #6b7280;
  --zp-border: #e5e7eb;
  --zp-border-2: #d1d5db;

  --zp-accent: #09212B;
  --zp-accent-2: #0b2b39;

  --zp-gold: #FFD700;
  --zp-success: #16a34a;
  --zp-danger: #dc2626;

  --zp-soft: #f8fafc;
  --zp-soft-2: #f3f4f6;

  --zp-shadow: 0 10px 25px rgba(0,0,0,0.08);
  --zp-shadow-2: 0 5px 15px rgba(0,0,0,0.08);

  --zp-radius: 10px;
  --zp-radius-sm: 8px;

  --zp-font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Arial,sans-serif;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: var(--zp-font);
  color: var(--zp-text);
  background: var(--zp-bg);
}

a{ color:inherit; }
a:hover{ opacity:0.95; }

.zp-full-width{ width:100%; }

/* ---------- Containers ---------- */
.zp-search-container,
.zp-form{
  max-width: 980px;
  margin: 0 auto;
}

.zp-search-container{
  padding: 10px 0 0;
}

.zp-divider{
  height: 1px;
  background: var(--zp-border);
  margin: 18px 0;
}

/* ---------- Labels / Text ---------- */
.zp-main-label{
  display:block;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--zp-accent);
  letter-spacing: 0.1px;
}

.zp-sub-label{
  display:block;
  font-weight: 600;
  margin: 0 0 6px;
  color: #1f2937;
}

.req{ color: var(--zp-danger); font-weight: 700; }

.zp-link-plain{
  color: var(--zp-accent);
  text-decoration: underline;
}

.zp-no-results{
  background: #fff;
  border: 1px solid var(--zp-border);
  border-radius: var(--zp-radius);
  padding: 18px;
  margin-top: 18px;
  font-family: 'Roboto', var(--zp-font) !important; /* wymuś Roboto (motyw często styluje h3 inną czcionką) */
}

.zp-no-results h3{
  margin: 0;
  font-size: 18px;
  color: #111827;
  font-family: 'Roboto', var(--zp-font) !important;
  font-weight: 700;
}

/* ---------- Inputs ---------- */
.zp-form input[type="text"],
.zp-form input[type="email"],
.zp-form input[type="url"],
.zp-form input[type="time"],
.zp-search-form input[type="text"],
.zp-search-form select,
.zp-form select,
.zp-form textarea{
  width: 100%;
  border: 1px solid var(--zp-border-2);
  border-radius: 8px;
  padding: 12px 12px;
  font-size: 15px;
  outline: none;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}

/* Ograniczenie szerokości selecta wyboru okresu (bezpieczne) */
#zp_premium_period{
  max-width: 50%;
  min-width: 300px;
}
@media(max-width: 600px){
  #zp_premium_period{ max-width: 100%; min-width: 0; }
}

.zp-form input[type="file"]{
  width: 100%;
  padding: 10px 0;
}

.zp-form textarea{
  min-height: 140px;
  line-height: 1.45;
  resize: vertical;
}

.zp-form input:focus,
.zp-search-form input:focus,
.zp-form textarea:focus,
.zp-search-form select:focus{
  border-color: #9ca3af;
  box-shadow: 0 0 0 4px rgba(9,33,43,0.08);
}

/* Błąd walidacji */
.zp-error-border{
  border:1px solid red !important;
  box-shadow: 0 0 5px rgba(255,0,0,0.2) !important;
  border-radius:6px;
}

/* ---------- Buttons ---------- */
.zp-btn,
.zp-btn-search,
.zp-btn-reset,
.zp-btn-gen{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 0;
  border-radius: 10px;
  cursor:pointer;
  font-weight: 800;
  letter-spacing: 0.2px;
  text-decoration:none;
  user-select:none;
}

.zp-btn{
  padding: 12px 16px;
  background: var(--zp-accent);
  color:#fff;
}
.zp-btn:hover{ filter: brightness(1.05); }

.zp-btn-pay{
  background: #111827;
  color: #fff;
}

.zp-btn-gen{
  margin: 6px 0 10px;
  padding: 10px 14px;
  background: #0f172a;
  color:#fff;
  border-radius: 10px;
}

.zp-btn-search{
  padding: 14px 16px;
  background: var(--zp-accent);
  color:#fff;
  border-radius: 10px;
}
.zp-btn-search:hover{ filter: brightness(1.05); }

.zp-btn-reset{
  padding: 14px 16px;
  border-radius: 10px;
  background: #e5e7eb;
  color:#111827;
}
.zp-btn-reset:hover{ background:#dfe3ea; }

.zp-buttons-container{
  display:flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.zp-btn-send{
  background: var(--zp-accent);
  color:#fff;
}

.zp-btn-reset.zp-btn{
  background: #e5e7eb;
  color:#111827;
}

/* ---------- Form layout ---------- */
.zp-form{
  background: #fff;
  border: 1px solid var(--zp-border);
  border-radius: var(--zp-radius);
  padding: 18px;
  box-shadow: var(--zp-shadow);
}

.zp-form-section{
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--zp-border);
}

.zp-form-section:last-child{
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

/* Kontakt grid */
.zp-contact-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.zp-row-item{ min-width: 0; }

/* ---------- Package selector ---------- */
.zp-radio-group{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
}

.zp-radio-card{
  flex: 1;
  min-width: 220px;
  border: 1px solid var(--zp-border-2);
  border-radius: 12px;
  padding: 12px 12px;
  background: #fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap: 10px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.zp-radio-card:hover{
  transform: translateY(-1px);
  box-shadow: var(--zp-shadow-2);
}

.zp-radio-card input{ transform: scale(1.05); }

.zp-radio-card.selected{
  border-color: #111827;
  box-shadow: 0 0 0 4px rgba(17,24,39,0.08);
}

/* Premium rows show animation */
.zp-premium-visible{ display:block!important; animation:fadeIn 0.5s; }
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }

/* ---------- Category tree ---------- */
.zp-tree-container{ width: 100%; }

.zp-tree-box-styled{
  border: 1px solid var(--zp-border-2);
  border-radius: 12px;
  padding: 10px 10px;
  background: var(--zp-soft);
  max-height: 360px;
  overflow:auto;
}

.bf-depth-ul{
  list-style:none;
  margin: 0;
  padding: 0;
}

.bf-cat-parent-li{ margin: 6px 0; }

.bf-cat-parent{
  padding: 10px 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--zp-border);
  cursor:pointer;
  font-weight: 800;
  color: #111827;
  display:flex;
  align-items:center;
  gap: 8px;
}

.bf-cat-parent:hover{ background: #f9fafb; }

.zp-toggle-icon{
  width: 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: #111827;
}

.bf-cat-children{
  margin: 8px 0 8px 18px;
  padding-left: 6px;
  border-left: 2px solid #e5e7eb;
}

.bf-cat-leaf{
  margin: 6px 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--zp-border);
}

.bf-cat-leaf label{
  display:flex;
  align-items:center;
  gap: 10px;
  cursor:pointer;
}

.bf-cat-leaf input{ transform: scale(1.05); }

.zp-cat-name{
  font-weight: 600;
  color: #111827;
}


/* ---------- Selected categories badges ---------- */
.zp-selected-cats{
  margin: 0 0 12px;
}
.zp-selected-cats:empty{
  display: none;
}
.zp-selected-cats-label{
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--zp-accent);
}
.zp-selected-cats-list{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.zp-selected-cat-chip{
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #cfe1e7;
  background: #eef6f8;
  color: #09212B;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

/* ---------- Attributes checkboxes ---------- */
.zp-attrs-grid{
  display:grid;
  gap: 8px;
}

.zp-cols-1{ grid-template-columns: 1fr; }
.zp-cols-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.zp-cols-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }

.zp-attrs-grid label{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 10px;
  border: 1px solid var(--zp-border);
  border-radius: 10px;
  background: #fff;
  cursor:pointer;
}

.zp-attrs-grid label:hover{ background: #f9fafb; }

.zp-attrs-grid input{ transform: scale(1.05); }

/* ---------- Hours (wizualna poprawka) ---------- */
.zp-hours-grid{
  display:grid;
  gap: 8px;
}

.zp-hour-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap: 15px;
  padding: 8px 15px;
  border: 1px solid var(--zp-border);
  border-radius: 10px;
  background:#fff;
  width: 100%;
  max-width: 550px;
}

.zp-day{
  font-weight: 800;
  min-width: 110px;
  color:#111827;
  font-size: 14px;
}

.zp-hour-inputs{
  display:flex;
  align-items:center;
  gap: 6px;
  width: auto;
  justify-content:flex-start;
}

.zp-hour-inputs input[type="time"]{
  width: 105px;
  padding: 6px 4px 6px 8px;
  font-size: 13px;
  text-align: center;
  border-radius: 6px;
  height: 38px;
}

@media(max-width: 600px){
  .zp-hour-row{
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
  }
  .zp-hour-inputs{ margin-top: 5px; }
}

/* ---------- Success box ---------- */
.zp-success-box{
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--zp-border);
  border-radius: var(--zp-radius);
  padding: 18px;
  box-shadow: var(--zp-shadow);
}

.zp-success-icon{
  font-size: 28px;
  margin-bottom: 8px;
}

/* ---------- Search form ---------- */
.zp-search-form{
  background:#fff;
  border: 1px solid var(--zp-border);
  border-radius: var(--zp-radius);
  padding: 18px;
  box-shadow: var(--zp-shadow);
}

.zp-search-row{ margin-bottom: 14px; }

.zp-location-flex{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
}

.zp-loc-input-wrap{ flex: 2; min-width: 240px; }
.zp-loc-radius-wrap{ flex: 1; min-width: 180px; }

.zp-toggle-filters-btn{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--zp-border);
  border-radius: 12px;
  background: var(--zp-soft);
  cursor:pointer;
  font-weight: 800;
  color:#111827;
}
.zp-toggle-filters-btn:hover{ background: #eef2f7; }

.zp-search-filters-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.zp-filter-col{
  border: 1px solid var(--zp-border);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
}

/* Dropdown kategorii w wyszukiwarce */
.zp-cat-dropdown-wrap{ position: relative; }

.zp-cat-dropdown-btn{
  padding: 12px 12px;
  border: 1px solid var(--zp-border-2);
  border-radius: 10px;
  background: #fff;
  cursor:pointer;
  font-weight: 800;
  color:#111827;
}

.zp-cat-dropdown-content{
  position:absolute;
  left:0;
  right:0;
  top: calc(100% + 8px);
  background:#fff;
  border: 1px solid var(--zp-border);
  border-radius: 12px;
  box-shadow: var(--zp-shadow);
  z-index: 50;
  display:none;
  padding: 10px;
}
.zp-cat-dropdown-content.show{ display:block; }

.zp-search-btn-full{ margin-top: 10px; }

/* Wymuś czytelny czarny tekst w polu "q" (bezpieczne) */
.zp-search-row input[name="q"]{ color:#000; }
.zp-search-row input[name="q"]::placeholder{ color:#000; opacity:1; }

/* =========================================================
   WYNIKI WYSZUKIWANIA — NAPRAWA (KLUCZOWE)
   - zero globalnych .zp-card-result / .zp-res-img / .zp-premium-badge
   - wszystko ograniczone do kontenera wyników
   ========================================================= */

/* 1) Lista wyników (to jest Twoja aktualna struktura) */
.zp-results-list-container{
  display:flex;
  flex-direction:column;
  gap: 16px;
  margin-top: 30px;
}

/* Karta */
.zp-results-list-container .zp-card-result{
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;

  padding: 18px 22px;
  padding-right: 160px; /* rezerwacja miejsca pod badge */

  background: #fff;
  border: 1px solid var(--zp-border);
  border-radius: 14px;

  text-decoration: none;
  color: inherit;

  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.zp-results-list-container .zp-card-result:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.10);
}

.zp-results-list-container .zp-card-result.premium{
  border: 2px solid #f78f1e;
  box-shadow: 0 10px 30px rgba(247,143,30,0.18);
}

/* Miniatura (działa i dla background-image, i dla no-img) */
.zp-results-list-container .zp-res-img{
  width: 90px;
  height: 90px;
  min-width: 90px;
  flex: 0 0 90px;

  border-radius: 12px;
  overflow: hidden;

  background-position: center;
  background-size: cover;
  background-color: #f3f4f6;
}

/* Jeśli kiedyś miniatura będzie <img> wewnątrz */
.zp-results-list-container .zp-res-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}

/* Treść */
.zp-results-list-container .zp-res-content{
  min-width: 0;
}

.zp-results-list-container .zp-res-content h3{
  margin: 0 0 6px 0;
  font-size: 20px;
  font-weight: 800;
  color: #0b1220;
  line-height: 1.2;
}

.zp-results-list-container .zp-res-addr{
  margin: 0;
  font-size: 14px;
  color: var(--zp-muted);
}

/* Badge "POLECANE" — zawsze mały chip, nigdy wielki kafel */
.zp-results-list-container .zp-premium-badge{
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 7px 12px !important;
  border-radius: 999px !important;

  background: #f78f1e !important;
  color: #fff !important;

  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .3px !important;
  text-transform: uppercase !important;
  line-height: 1 !important;

  width: auto !important;
  height: auto !important;
  white-space: nowrap !important;

  box-shadow: 0 6px 18px rgba(0,0,0,0.12) !important;
}

/* Mobile */
@media (max-width: 600px){
  .zp-results-list-container .zp-card-result{
    flex-direction: column;
    text-align: center;
    padding-right: 22px;
  }
}

/* 2) Grid wyników (jeśli kiedykolwiek użyjesz .zp-results-grid) */
.zp-results-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 30px;
}

.zp-results-grid .zp-card-result{
  position: relative;
  display:flex;
  flex-direction: column;
  background:#fff;
  border:1px solid var(--zp-border);
  border-radius: 14px;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.zp-results-grid .zp-card-result:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.10);
}

.zp-results-grid .zp-res-img{
  width: 100%;
  height: 160px;
  background-position:center;
  background-size:cover;
  background-color:#f3f4f6;
}

.zp-results-grid .zp-res-content{
  padding: 16px;
}

.zp-results-grid .zp-premium-badge{
  position:absolute !important;
  top: 12px !important;
  right: 12px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background:#f78f1e !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  line-height:1 !important;
  width:auto !important;
  height:auto !important;
  white-space:nowrap !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.12) !important;
}

/* ---------- Single (wizytówka) ---------- */
.zp-single-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 0;
}

.zp-listing-title{
  margin: 0 0 14px;
  font-size: 32px;
  letter-spacing: 0.2px;
  color: #0b1220;
}

.zp-single-section{
  background:#fff;
  border: 1px solid var(--zp-border);
  border-radius: var(--zp-radius);
  padding: 16px;
  box-shadow: var(--zp-shadow-2);
  margin-bottom: 14px;
}

.zp-single-section h3{
  margin: 0 0 10px;
  color: var(--zp-accent);
  font-size: 18px;
}

.zp-tags-list{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zp-tag-cat,
.zp-tag-animal,
.zp-tag-amenity,
.zp-tag-lang{
  display:inline-flex;
  align-items:center;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--zp-border);
  background: var(--zp-soft);
  font-weight: 700;
  font-size: 13px;
  color:#111827;
}

/* Sidebar contact */
.zp-profile-img{
  width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid var(--zp-border);
}

/* Kontakt / godziny */
.zp-card-contact h3,
.zp-card-hours h3{
  margin: 0 0 10px;
  color: var(--zp-accent);
}

.zp-info-row{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--zp-border);
}

.zp-info-row:last-child{ border-bottom: 0; }

.zp-icon-wrapper{
  width: 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.zp-social-link{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--zp-border);
  background: #fff;
  font-weight: 800;
  text-decoration:none;
}

.zp-social-link:hover{ background: var(--zp-soft); }

.zp-social-link svg{
  width: 22px;
  height: 22px;
}

/* Hours table */
.zp-card-hours table{
  width: 100%;
  border-collapse: collapse;
}

.zp-card-hours td{
  padding: 8px 0;
  border-bottom: 1px dashed var(--zp-border);
  font-size: 14px;
}

.zp-card-hours tr:last-child td{ border-bottom: 0; }

/* ---------- Gallery + Lightbox ---------- */
.zp-gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.zp-gallery-item{
  position: relative;
  border-radius: 14px;
  overflow:hidden;
  border: 1px solid var(--zp-border);
  cursor: zoom-in;
  background: #fff;
}

.zp-gallery-item img{
  width: 100%;
  height: 180px;
  object-fit: cover;
  display:block;
}

.zp-zoom-icon{
  position:absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(0,0,0,0.55);
  color:#fff;
  border-radius: 999px;
  padding: 6px 8px;
  font-size: 12px;
}

.zp-lightbox{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,0.75);
  z-index: 9999;
  align-items:center;
  justify-content:center;
  padding: 22px;
}

.zp-lightbox-content{
  max-width: 92vw;
  max-height: 86vh;
  border-radius: 16px;
  box-shadow: var(--zp-shadow);
  border: 1px solid rgba(255,255,255,0.15);
}

.zp-close{
  position: absolute;
  top: 16px;
  right: 18px;
  color:#fff;
  font-size: 32px;
  font-weight: 800;
  cursor:pointer;
}

/* ---------- Gallery edit (formularz) ---------- */
.zp-existing-gallery{
  border: 1px solid var(--zp-border);
  border-radius: 12px;
  padding: 12px;
  background: var(--zp-soft);
  margin-bottom: 12px;
}

.zp-gallery-edit-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.zp-edit-thumb{
  border: 1px solid var(--zp-border);
  border-radius: 12px;
  padding: 10px;
  background:#fff;
}

.zp-edit-thumb img{
  width: 100%;
  height: 70px;
  object-fit: cover;
  border-radius: 10px;
  display:block;
  margin-bottom: 8px;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .zp-search-filters-grid{ grid-template-columns: 1fr; }
  .zp-contact-grid{ grid-template-columns: 1fr; }
}

@media(max-width: 600px){
  .zp-gallery-grid{ grid-template-columns: 1fr; }
  .zp-gallery-edit-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Kontakt w karcie – czarny zamiast zielonego ---------- */
.zp-card-contact a,
.zp-card-contact a:visited,
.zp-card-contact a:hover,
.zp-card-contact a:active{
  color: #111 !important;
  text-decoration: none;
}

.zp-card-contact a:hover{ text-decoration: underline; }

.zp-card-contact .zp-social-link{
  color: #111 !important;
}

/* =========================================================
   DROBNE POPRAWKI TYPOGRAFII + ODSTĘPY (SAFE)
   ========================================================= */

/* 1) Wyniki wyszukiwania – nazwa gabinetu (h3) zawsze Roboto */
.zp-results-list-container .zp-res-content h3,
.zp-results-grid .zp-res-content h3{
  font-family: 'Roboto', var(--zp-font) !important;
  font-weight: 800 !important;
  letter-spacing: 0.1px;
}

/* 2) Ogłoszenie (single) – całość + nagłówki sekcji zawsze Roboto
   (bez zmiany reszty layoutu) */
.zp-single-container,
.zp-single-container *{
  font-family: 'Roboto', var(--zp-font) !important;
}

/* Jeżeli chcesz, żeby nagłówki w single nie były "ozdobne",
   tylko klasyczne i czytelne: */
.zp-single-container .zp-listing-title,
.zp-single-container h1,
.zp-single-container h2,
.zp-single-container h3{
  font-family: 'Roboto', var(--zp-font) !important;
  font-weight: 800 !important;
}

/* 3) Odstęp między "Dane kontaktowe" a "Godziny otwarcia"
   (najbezpieczniej: margines od karty kontaktu) */
.zp-card-contact{
  margin-bottom: 22px !important;
}

/* W razie gdyby w Twoim HTML obie sekcje są jako .zp-single-section w sidebarze,
   ten selektor doda odstęp tylko w sidebarze: */
.zp-single-sidebar .zp-single-section + .zp-single-section{
  margin-top: 22px !important;
}

/* =========================================================
   SINGLE (ogłoszenie) – poprawki nagłówków i odstępów w sidebarze
   ========================================================= */

/* 1) Ujednolicenie wielkości nagłówków sekcji w ogłoszeniu */
.zp-single-container .zp-single-section h3,
.zp-single-container .zp-card-contact h3,
.zp-single-container .zp-card-hours h3{
  font-size: 18px !important;   /* taka sama jak w sekcjach po lewej */
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

/* 2) Odstęp między logo/zdjęciem a "Dane kontaktowe"
   (działa niezależnie czy obraz to .zp-profile-img czy img w .zp-sidebar-logo) */
.zp-single-sidebar .zp-profile-img{
  margin-bottom: 16px !important;
}

.zp-single-sidebar .zp-sidebar-logo{
  margin-bottom: 16px !important;
}

/* Jeśli obrazek jest bezpośrednio w sidebarze (na wszelki wypadek) */
.zp-single-sidebar img{
  margin-bottom: 12px;
}

/* (opcjonalnie) trochę "oddechu" wewnątrz karty kontaktu na górze */
.zp-card-contact{
  padding-top: 18px !important;
}

/* =========================================================
   SINGLE – prawa kolumna: rozdzielenie "Dane kontaktowe" i "Godziny"
   ========================================================= */

/* Zrób z obu sekcji osobne, czytelne „karty” */
.zp-single-sidebar .zp-card-contact,
.zp-single-sidebar .zp-card-hours{
  background: #fff !important;
  border: 1px solid var(--zp-border) !important;
  border-radius: 14px !important;
  padding: 16px 16px !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06) !important;
}

/* Różne, bardzo subtelne tło dla godzin – żeby się nie zlewało */
.zp-single-sidebar .zp-card-hours{
  background: var(--zp-soft) !important;
}

/* Wyraźny odstęp + separator między sekcjami */
.zp-single-sidebar .zp-card-contact{
  margin-bottom: 18px !important;
  position: relative;
}

/* Separator jako cienka linia pod kartą kontaktu (opcjonalnie, ale ładnie) */
.zp-single-sidebar .zp-card-contact::after{
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: -10px;
  height: 1px;
  background: var(--zp-border);
  opacity: 0.9;
}

/* Delikatne wyróżnienie nagłówków w sidebarze (spójne, ale czytelniejsze) */
.zp-single-sidebar .zp-card-contact h3,
.zp-single-sidebar .zp-card-hours h3{
  margin-bottom: 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--zp-border) !important;
}

/* Drobna poprawa czytelności wierszy kontaktu */
.zp-single-sidebar .zp-info-row{
  padding: 10px 0 !important;
  border-bottom: 1px dashed var(--zp-border) !important;
}
.zp-single-sidebar .zp-info-row:last-child{
  border-bottom: 0 !important;
}

/* =========================================================
   ZP – Legacy look for "Dodaj ogłoszenie"
   Zakres: TYLKO formularz #zp-entry-form (wygląd, bez logiki)
   ========================================================= */

/* 0) Twarde zawężenie zasięgu, żeby nie popsuć innych widoków */
#zp-entry-form.zp-form{
  /* stary „bardziej premium” card-look */
  max-width: 900px !important;
  margin: 0 auto 40px auto !important;
  padding: 40px !important;
  border: 1px solid #e1e8ed !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05) !important;
}

/* 1) Sekcje – większe odstępy jak „kiedyś” */
#zp-entry-form .zp-form-section{
  margin-bottom: 30px !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}

/* 2) Etykiety – bardziej klasyczne */
#zp-entry-form .zp-main-label{
  margin-bottom: 10px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #111 !important;
}

#zp-entry-form .zp-sub-label{
  margin-bottom: 6px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #555 !important;
}

#zp-entry-form .req{
  color: #e74c3c !important;
}

/* 3) Pola – stare ograniczenie szerokości + „miękkie” obramowania
      (to zwykle naprawia „pogrubione/czarne” ramki z motywu) */
#zp-entry-form input[type="text"],
#zp-entry-form input[type="email"],
#zp-entry-form input[type="url"],
#zp-entry-form input[type="time"],
#zp-entry-form select,
#zp-entry-form textarea{
  width: 100% !important;
  max-width: 600px !important;
  box-sizing: border-box !important;
  padding: 12px 15px !important;
  border: 1px solid #ccc !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  background: #fff !important;
  color: #000 !important;
  outline: none !important;
}

/* Focus – delikatny (żeby nie robił „grubej poświaty”) */
#zp-entry-form input:focus,
#zp-entry-form select:focus,
#zp-entry-form textarea:focus{
  border-color: #9aa4ad !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.06) !important;
}

/* 4) Select okresu premium – jak było (nie za szeroki) */
#zp-entry-form #zp_premium_period{
  max-width: 400px !important;
  min-width: 0 !important;
}

/* 5) Pakiety (radio cards) – stary styl „kafelków”
      + nie wyłączamy działania inputów (tylko ukrywamy wizualnie) */
#zp-entry-form .zp-radio-group{
  display: flex !important;
  gap: 15px !important;
  width: 100% !important;
  max-width: 600px !important;
  margin-bottom: 10px !important;
}

#zp-entry-form .zp-radio-card{
  flex: 1 !important;
  padding: 20px !important;
  border: 2px solid #ddd !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  text-align: center !important;
  background: #f9f9f9 !important;
  display: block !important;
  user-select: none !important;
  transition: 0.2s !important;
}

/* ukrycie „kółka” radio tylko wizualnie, bez zabijania klikalności */
#zp-entry-form .zp-radio-card input[type="radio"]{
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#zp-entry-form .zp-radio-card span{
  font-weight: 700 !important;
  font-size: 15px !important;
}

/* Stan wybrany – „złoty/pomarańczowy” jak dawniej */
#zp-entry-form .zp-radio-card.selected{
  border-color: #f78f1e !important;
  background: #fffcf5 !important;
  color: #f78f1e !important;
}

/* 6) Dane kontaktowe – stara wersja: 1 kolumna */
#zp-entry-form .zp-contact-grid{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 20px !important;
  width: 100% !important;
}

#zp-entry-form .zp-row-item{
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* 7) Uploady – bardziej „stary” wygląd */
#zp-entry-form input[type="file"]{
  max-width: 400px !important;
  padding: 8px !important;
  border: 1px solid #ddd !important;
  background: #f9f9f9 !important;
  border-radius: 6px !important;
}

/* 8) Przyciski na dole – separacja i oddech jak dawniej */
#zp-entry-form .zp-buttons-container{
  margin-top: 40px !important;
  border-top: 1px solid #eee !important;
  padding-top: 20px !important;
  display: flex !important;
  gap: 15px !important;
  flex-wrap: wrap !important;
}

/* Zachowujemy Twoje klasy .zp-btn* – tylko lekko „legacy” wykończenie */
#zp-entry-form .zp-btn-send{
  border-radius: 6px !important;
}
#zp-entry-form .zp-btn-reset{
  border-radius: 6px !important;
}

/* 9) Mobile – padding mniejszy */
@media (max-width: 768px){
  #zp-entry-form.zp-form{
    padding: 22px !important;
  }
  #zp-entry-form .zp-radio-group{
    flex-direction: column !important;
  }
}
/* =========================================================
   ZP – równe odstępy w "Dane kontaktowe"
   ========================================================= */

#zp-entry-form .zp-contact-grid{
  row-gap: 20px !important;  /* równa przerwa między polami */
}

/* Każdy wiersz kontaktu: stały układ i odstęp label->input */
#zp-entry-form .zp-contact-grid .zp-row-item{
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;       /* równa przerwa label -> input */
  margin: 0 !important;
  padding: 0 !important;
}

/* Wyzeruj "losowe" marginesy na labelkach/tekstach w tej sekcji */
#zp-entry-form .zp-contact-grid .zp-row-item label,
#zp-entry-form .zp-contact-grid .zp-row-item .zp-sub-label,
#zp-entry-form .zp-contact-grid .zp-row-item p,
#zp-entry-form .zp-contact-grid .zp-row-item small{
  margin: 0 !important;
}

/* Ujednolicenie odstępu dla inputów w tej sekcji */
#zp-entry-form .zp-contact-grid .zp-row-item input{
  margin: 0 !important;
}

/* =========================================================
   Poprawki: wyszukiwarka (bez wpływu na resztę strony)
   - wpisywany tekst czarny
   - dropdown Google Places nad innymi elementami
   ========================================================= */
.zp-search-form input[type="text"]{
  color: #111827 !important;
  opacity: 1 !important;
}
.zp-search-form input[type="text"]::placeholder{
  color: #9ca3af !important;
  opacity: 1;
}

/* Google Places dropdown (autocomplete) */
.pac-container{
  z-index: 999999 !important;
  font-family: 'Roboto', var(--zp-font) !important;
}
.pac-item, .pac-item span{
  font-family: 'Roboto', var(--zp-font) !important;
}
/* === Archiwa kategorii i lokalizacji: nagłówki zawsze Roboto === */
.tax-zp_category .entry-title,
.tax-zp_category .page-title,
.tax-zp_category h1,
.tax-zp_location .entry-title,
.tax-zp_location .page-title,
.tax-zp_location h1,
.post-type-archive-zp_specialist .entry-title,
.post-type-archive-zp_specialist .page-title,
.post-type-archive-zp_specialist h1{
  font-family: 'Roboto', var(--zp-font) !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}