﻿.warehouse-autocomplete {
  position: fixed;
  z-index: 100000;
  max-height: 320px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid rgba(40, 70, 104, 0.18);
  border-radius: 12px;
  box-shadow: 0 18px 40px rgba(21, 43, 56, 0.16);
  padding: 6px;
}

/* Detail budovy → sekce "Prostory k dispozici": záhlaví sloupců (Prostor, Plocha,
   Výška, Dostupnost) trochu tučnější, aby se odlišilo od dat pod ním. */
.prostor-bottom .variants .head .col {
  font-weight: 600;
}

/* Kontakt hero: telefon/email jsou odkazy uvnitr h1 nadpisu — at zdedi bilou
   barvu nadpisu misto vychozi modre/podtrzene. */
.sub-header h1 a {
  color: #fff;
  text-decoration: none;
}
.sub-header h1 a:hover {
  color: #01AD66;
}

.warehouse-autocomplete[hidden] {
  display: none;
}

.warehouse-autocomplete-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  text-align: left;
  font: inherit;
  color: #1f3147;
  cursor: pointer;
}

.warehouse-autocomplete-item:hover,
.warehouse-autocomplete-item.is-active {
  background: rgba(1, 173, 102, 0.12);
}

.warehouse-autocomplete-label {
  font-weight: 600;
}

.warehouse-autocomplete-tag {
  flex: 0 0 auto;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #7a8795;
}

.warehouse-live-map-error {
  display: flex;
  min-height: 520px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  padding: 32px;
  background: #eef4f2;
  color: #284668;
  text-align: center;
  font-family: Poppins, Rubik, sans-serif;
}

.warehouse-live-map-error strong {
  font-size: 22px;
  font-weight: 700;
}

.warehouse-live-map-error span {
  max-width: 520px;
  color: #667585;
  font-size: 15px;
  line-height: 1.5;
}

.warehouse-detail-map-error {
  border-radius: 12px;
}

.warehouse-live-static-map {
  position: relative;
  width: 100%;
  min-height: 520px;
  overflow: hidden;
  background:
    linear-gradient(0deg, rgba(255, 255, 255, .56) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .56) 1px, transparent 1px),
    linear-gradient(135deg, #dce7df 0%, #edf1ec 42%, #d6e3dc 100%);
  background-size: 46px 46px, 46px 46px, auto;
}

.warehouse-live-static-map::before,
.warehouse-live-static-map::after {
  content: "";
  position: absolute;
  inset: auto;
  pointer-events: none;
}

.warehouse-live-static-map::before {
  width: 68%;
  height: 18px;
  left: 16%;
  top: 47%;
  transform: rotate(-12deg);
  border-radius: 999px;
  background: rgba(180, 195, 183, .5);
}

.warehouse-live-static-map::after {
  width: 34%;
  height: 14px;
  right: 8%;
  top: 34%;
  transform: rotate(28deg);
  border-radius: 999px;
  background: rgba(177, 193, 184, .42);
}

.warehouse-live-map-label {
  position: absolute;
  left: 24px;
  top: 22px;
  z-index: 3;
  display: flex;
  gap: 10px;
  align-items: center;
  max-width: calc(100% - 48px);
  padding: 10px 14px;
  border-radius: 4px;
  color: #142823;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 28px rgba(22, 36, 32, .16);
  font-size: 14px;
  line-height: 1.35;
}

.warehouse-live-pin,
.warehouse-live-cluster {
  position: absolute;
  z-index: 2;
  transform: translate(-50%, -100%);
  display: grid;
  place-items: center;
  text-decoration: none;
}

.warehouse-live-pin {
  width: 38px;
  height: 48px;
  background: url("../../wp-content/themes/warehouseportal.cz/img/icon-marker.svg") center / contain no-repeat;
}

.warehouse-live-pin.is-favorite {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/icon-marker-favorite.svg");
}

.warehouse-live-pin.is-soldout {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/icon-marker-soldout.svg");
}

.warehouse-live-cluster {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  color: #fff;
  background: #173b33;
  box-shadow: 0 10px 28px rgba(22, 36, 32, .22);
  font-size: 14px;
  font-weight: 700;
}

.warehouse-live-pin:hover,
.warehouse-live-cluster:hover {
  z-index: 5;
}

/* Plocha range slider. The theme (style0182.css) only provides the visual
   `!important` overrides for `.noUi-handle` / `.noUi-connect`; it lacks the
   base noUiSlider layout (position/size/radius), which the office portal
   supplies in its own CSS. Replicate that base here so the slider and its
   round handles render correctly (otherwise the handles collapse to 0x0). */
.sf-meta-range .meta-slider {
  position: relative;
  z-index: 10;
  height: 6px;
  width: calc(100% - 20px);
  margin: 24px 10px 30px;
  background: rgba(184, 198, 213, 0.29);
  border-radius: 999px;
  touch-action: none;
}

.meta-slider .noUi-base,
.meta-slider .noUi-connects {
  position: relative;
  width: 100%;
  height: 100%;
}

.meta-slider .noUi-connects {
  overflow: hidden;
  border-radius: 999px;
}

.meta-slider .noUi-connect {
  position: absolute;
  top: 0;
  bottom: 0;
  background: #b8c6d5;
}

/* The search-filter-pro plugin + theme CSS force the noUiSlider handle to be
   positioned from the RIGHT edge of a transform-driven origin
   (`right: -7px !important`, `left: auto`). Our JS-built slider instead
   positions each origin from the LEFT via `style.left = %` (same as the office
   portal), so we must override those right/left anchors with `!important`.

   IMPORTANT: scope these overrides to OUR slider only, via the
   `[data-warehouse-live-range="1"]` marker that setupLiveRange() sets. The
   homepage search box still runs the original search-filter-pro noUiSlider,
   which relies on `transform: translate(...)` to position its handles — these
   overrides must NOT touch it, or its handles collapse to the left edge. */
.sf-meta-range[data-warehouse-live-range="1"] .meta-slider .noUi-origin {
  position: absolute !important;
  top: 0 !important;
  right: auto !important;
  width: 0 !important;
  height: 0 !important;
  transform: none !important;
  transition: none !important;
}

.sf-meta-range[data-warehouse-live-range="1"] .meta-slider .noUi-handle {
  position: absolute !important;
  top: -16px !important;
  left: -19px !important;
  right: auto !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 999px !important;
  border: 1px solid #b7c6d5 !important;
  background: #fff !important;
  box-shadow: 0 2px 22px 0 rgba(166, 160, 160, 0.5) !important;
  cursor: pointer !important;
  z-index: 8 !important;
  pointer-events: auto !important;
  touch-action: none !important;
}

.sf-meta-range[data-warehouse-live-range="1"] .meta-slider .noUi-handle::before,
.sf-meta-range[data-warehouse-live-range="1"] .meta-slider .noUi-handle::after {
  display: none;
}

.warehouse-live-range-input {
  position: absolute;
  left: 0;
  top: -16px;
  z-index: 6;
  width: 100%;
  height: 38px;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  pointer-events: none;
  appearance: none;
  touch-action: none;
}

.warehouse-live-range-input::-webkit-slider-thumb {
  width: 38px;
  height: 38px;
  cursor: pointer;
  pointer-events: auto;
  appearance: none;
}

.warehouse-live-range-input::-moz-range-thumb {
  width: 38px;
  height: 38px;
  cursor: pointer;
  pointer-events: auto;
  border: 0;
  background: transparent;
}

/* Homepage "Hledejte..." search box: the theme places the range labels at
   margin-top:42px, which tucks "105 m²" / "40 000+ m²" right under the 38px
   handles so they overlap. Push them lower for comfortable clearance. Scoped to
   .search-form so the nabidka filter slider is unaffected. */
.search-form .searchandfilter .sf-range-min,
.search-form .searchandfilter .sf-range-max {
  margin-top: 60px;
}

/* The labels anchor at the handle's centre (left:0 sits at the origin, which is
   the middle of the 38px handle), so "105 m²" starts ~19px to the right of the
   handle's left edge. Nudge the min label left so its "1" lines up with the
   left edge of the left handle, and the max label right to match. */
.search-form .searchandfilter .sf-range-min {
  margin-left: -19px;
}

form[data-sf-form-id="165"] .searchandfilter .sf-range-max.sf-text-number {
  right: -19px;
  left: auto;
  width: 120px;
  max-width: none !important;
  margin-right: 0 !important;
  text-align: right;
  white-space: nowrap;
}

form[data-sf-form-id="165"] .sf-field-post-meta-min_plocha .noUi-origin:last-child .noUi-handle {
  right: -18px !important;
}

.warehouse-watermarked-media {
  position: relative;
  overflow: hidden;
}

.warehouse-watermarked-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/logo.svg");
  background-repeat: no-repeat;
  background-position: right 18px bottom 18px;
  background-size: clamp(86px, 18%, 156px) auto;
  opacity: 0.74;
  filter: drop-shadow(0 3px 12px rgba(9, 22, 18, 0.2));
}

.warehouse-watermarked-media figure {
  position: relative;
  z-index: 1;
}

.warehouse-watermarked-media .fancybox,
.warehouse-watermarked-media .link {
  position: absolute;
  inset: 0;
  z-index: 3;
}

/* Watermark only on the opened (fancybox) image, not on thumbnails.
   #fancybox-content (the image) sits at z-index 111102, so the overlay
   must sit above it to be visible. */
#fancybox-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 111103;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/logo.svg");
  background-repeat: no-repeat;
  background-position: right 26px bottom 26px;
  background-size: clamp(110px, 20%, 200px) auto;
  opacity: 0.78;
  filter: drop-shadow(0 3px 12px rgba(9, 22, 18, 0.25));
}

.prostor-gallery .gallery-row {
  display: flex;
  align-items: stretch;
  gap: 15px;
  width: 100%;
}

.prostor-gallery .gallery-row > .half {
  width: calc(50% - 8px);
  margin-right: 0;
  float: none;
}

.prostor-gallery .gallery-row > .half:nth-child(2) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 15px;
}

.prostor-gallery .gallery-row .thumb-item {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  position: relative;
}

.prostor-gallery .gallery-row > .half {
  position: relative;
}

.prostor-gallery .gallery-row .fancybox {
  position: absolute;
  inset: 0;
  z-index: 4;
  cursor: zoom-in;
}

.prostor-gallery .gallery-row .half figure {
  width: 100%;
  height: 462px;
  margin: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.prostor-gallery .gallery-row .thumb-item figure {
  height: 225px;
}

body.portal-gallery-lightbox-open {
  overflow: hidden;
}

.portal-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 42px 82px;
  background: rgba(7, 18, 15, 0.88);
}

.portal-gallery-lightbox::after {
  content: "";
  position: absolute;
  right: 34px;
  bottom: 34px;
  width: clamp(110px, 18vw, 200px);
  height: 72px;
  pointer-events: none;
  z-index: 3;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/logo.svg");
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
  opacity: 0.78;
  filter: drop-shadow(0 3px 12px rgba(9, 22, 18, 0.25));
}

.portal-gallery-lightbox-frame {
  position: relative;
  max-width: min(1180px, 100%);
  max-height: 100%;
  margin: 0;
}

.portal-gallery-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 84px);
  border-radius: 4px;
  object-fit: contain;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
}

.portal-gallery-lightbox-counter {
  position: absolute;
  right: 14px;
  bottom: 12px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.58);
  color: #fff;
  font-size: 13px;
  line-height: 1;
}

.portal-gallery-lightbox-close,
.portal-gallery-lightbox-arrow {
  position: absolute;
  z-index: 4;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: #17324d;
  cursor: pointer;
  transition: transform 140ms ease, opacity 140ms ease, background 140ms ease;
}

.portal-gallery-lightbox-close:hover,
.portal-gallery-lightbox-arrow:hover {
  transform: scale(1.05);
  background: #fff;
}

.portal-gallery-lightbox-close {
  top: 24px;
  right: 28px;
  width: 44px;
  height: 44px;
  font-size: 31px;
  line-height: 42px;
}

.portal-gallery-lightbox-arrow {
  top: 50%;
  width: 54px;
  height: 54px;
  transform: translateY(-50%);
}

.portal-gallery-lightbox-arrow:hover {
  transform: translateY(-50%) scale(1.05);
}

.portal-gallery-lightbox-prev {
  left: 24px;
}

.portal-gallery-lightbox-next {
  right: 24px;
}

.portal-gallery-lightbox-prev::before,
.portal-gallery-lightbox-next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
}

.portal-gallery-lightbox-prev::before {
  transform: translate(-35%, -50%) rotate(-45deg);
}

.portal-gallery-lightbox-next::before {
  transform: translate(-65%, -50%) rotate(135deg);
}

@media (max-width: 900px) {
  .prostor-gallery .gallery-row {
    flex-direction: column;
  }

  .prostor-gallery .gallery-row > .half {
    width: 100%;
  }
}

@media (max-width: 700px) {
  .portal-gallery-lightbox {
    padding: 68px 18px 34px;
  }

  .portal-gallery-lightbox::after {
    right: 20px;
    bottom: 20px;
    width: 120px;
  }

  .portal-gallery-lightbox-arrow {
    width: 44px;
    height: 44px;
  }

  .portal-gallery-lightbox-prev {
    left: 10px;
  }

  .portal-gallery-lightbox-next {
    right: 10px;
  }
}

.warehouse-live-no-results {
  padding: 28px 0;
  color: #243e5f;
  font-size: 16px;
  font-weight: 600;
}

body #op-faq-auto {
  margin: 6px 0 16px !important;
  padding-bottom: 0 !important;
}

body .op-faq {
  --warehouse-live-faq-accent: #01ad66;
  --warehouse-live-faq-ink: #17324d;
  margin: 0 0 16px !important;
  padding: 0 !important;
}

body > footer,
body footer {
  clear: both !important;
  margin-top: 16px !important;
}

body .op-faq__title {
  margin: 0 0 18px !important;
  color: #284668 !important;
  font-family: 'Poppins';
  font-size: 26px !important;
  font-weight: 600 !important;
  line-height: 125% !important;
  letter-spacing: -0.24px;
}

body .op-faq__item {
  margin: 0 0 5px !important;
  overflow: hidden !important;
  border: 1px solid rgba(23, 50, 77, .10) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: 0 6px 14px rgba(21, 43, 69, .04) !important;
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

body .op-faq__item.is-open,
body .op-faq__item[open] {
  border-color: rgba(1, 173, 102, .28) !important;
  box-shadow: 0 14px 32px rgba(21, 43, 69, .08) !important;
}

body .op-faq__question {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 40px;
  padding: 8px 13px !important;
  color: var(--warehouse-live-faq-ink) !important;
  background: transparent !important;
  cursor: pointer;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  list-style: none !important;
  gap: 12px;
}

body .op-faq__question::-webkit-details-marker {
  display: none !important;
}

body .op-faq__question::after {
  content: "+" !important;
  flex: 0 0 22px !important;
  display: grid !important;
  width: 22px !important;
  height: 22px !important;
  place-items: center !important;
  margin-left: auto !important;
  border-radius: 999px !important;
  color: var(--warehouse-live-faq-accent) !important;
  background: rgba(1, 173, 102, .10) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  transition: transform 220ms ease, background-color 220ms ease;
}

body .op-faq__item.is-open .op-faq__question::after,
body .op-faq__item[open] .op-faq__question::after {
  transform: rotate(45deg);
  background: rgba(1, 173, 102, .16) !important;
}


.portal-search-autocomplete-host {
  position: relative;
  display: block;
}

.portal-search-autocomplete {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 120;
  display: grid;
  gap: 0;
  padding: 8px 0;
  border: 1px solid rgba(23, 50, 77, .12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 44px rgba(13, 45, 35, .16);
}

.portal-search-autocomplete__item {
  width: 100%;
  padding: 11px 16px;
  border: 0;
  color: #173b33;
  background: transparent;
  text-align: left;
  font: inherit;
  font-size: 14px;
  line-height: 1.35;
  cursor: pointer;
}

.portal-search-autocomplete__item:hover,
.portal-search-autocomplete__item.is-active {
  color: #173b33;
  background: rgba(1, 173, 102, .10);
}
body .op-faq__answer {
  padding: 0 13px 10px !important;
  color: rgba(23, 50, 77, .78) !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  opacity: 1;
}

body .op-faq__item:not(.is-open) .op-faq__answer {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body .op-faq__answer p {
  margin: 0 0 8px !important;
}

body .op-faq__answer p:last-child {
  margin-bottom: 0 !important;
}

.projects.offers.results .item[hidden],
.warehouse-live-no-results[hidden] {
  display: none !important;
}

.warehouse-live-listing-loading,
.warehouse-live-listing-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 280px;
  padding: 32px 24px;
  text-align: center;
  color: #344454;
  background: #f4f7fa;
  border: 1px solid #d9e2ea;
  border-radius: 24px;
  grid-column: 1 / -1;
}

.warehouse-live-listing-loading {
  font-size: 18px;
  font-weight: 500;
}

.warehouse-live-listing-error strong {
  color: #17365c;
  font-size: 18px;
}

.warehouse-live-listing-error span {
  max-width: 520px;
  font-size: 15px;
  line-height: 1.6;
}

.portal-listing-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 100%;
  padding: 28px 16px 12px;
}

.portal-listing-pagination button {
  border: 0;
  border-radius: 999px;
  padding: 10px 20px;
  background: #00aa73;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.portal-listing-pagination button:disabled {
  opacity: .35;
  cursor: default;
}

section.search-wrap.new-style .search-results .projects.offers.results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 20px;
  width: 100%;
}

section.search-wrap.new-style .search-results .projects.offers.results .item {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
}

section.search-wrap.new-style .search-results .projects.offers.results .item .thumb,
section.search-wrap.new-style .search-results .projects.offers.results .item .thumb figure {
  width: 100%;
}

@media (max-width: 650px) {
  section.search-wrap.new-style .search-results .projects.offers.results {
    grid-template-columns: minmax(0, 1fr);
  }
}

form.searchandfilter ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.header-search-form form.searchandfilter ul {
  display: flex;
  align-items: center;
  width: 100%;
}

.header-search-form form.searchandfilter li {
  margin: 0;
}

.header-search-form form.searchandfilter .sf-field-search {
  flex: 1 1 auto;
}

.header-search-form form.searchandfilter .sf-field-submit {
  flex: 0 0 auto;
}

body.open-mobile header .menu-show {
  border-color: transparent;
  border-radius: 0;
  z-index: 1001;
}

body.open-mobile header .menu-show span:nth-child(2),
body.open-mobile header .menu-show span:nth-child(3) {
  left: 7px;
  width: 26px;
}

body.open-mobile .menu-shadow {
  display: block;
  top: 58px;
  background: transparent;
  backdrop-filter: none;
}

body.open-mobile .mega-menu {
  display: block;
  top: 58px;
  pointer-events: none;
}

body.open-mobile .mega-menu .m-col {
  float: none;
  position: relative;
  width: min(360px, calc(100vw - 44px));
  min-width: 0;
  max-width: none;
  margin: 0 12px 0 auto;
  padding: 34px 34px 30px;
  pointer-events: auto;
  text-align: left;
  overflow: hidden;
  border: 1px solid rgba(1, 173, 102, 0.14);
  border-radius: 22px;
  background: linear-gradient(180deg, #fff 0%, #f7fbf8 100%);
  box-shadow: 0 24px 70px rgba(13, 45, 35, 0.26);
}

.mega-menu .m-col .title {
  margin-bottom: 22px;
  color: #173b33;
  letter-spacing: 0.05em;
  font-size: 19px;
}

.mega-menu .m-col ul li {
  margin-bottom: 8px;
}

.mega-menu .m-col ul li a {
  display: block;
  padding: 11px 13px;
  border-radius: 12px;
  color: #526b61;
  font-size: 18px;
  line-height: 1.35;
  transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.mega-menu .m-col ul li a:hover {
  color: #173b33;
  font-weight: 600;
  background: rgba(1, 173, 102, 0.1);
  transform: translateX(4px);
}

@media (max-width: 767px) {
  body.open-mobile .menu-shadow,
  body.open-mobile .mega-menu {
    top: 52px;
  }

  .warehouse-live-static-map {
    min-height: 430px;
  }

  body.open-mobile .mega-menu .m-col {
    width: calc(100vw - 24px);
    margin: 0 8px 0 auto;
    padding: 28px 24px 24px;
    border-radius: 18px;
  }

  .warehouse-watermarked-media::after {
    background-position: right 12px bottom 12px;
    background-size: clamp(72px, 24%, 120px) auto;
  }

  .warehouse-live-map-label {
    left: 14px;
    right: 14px;
    top: 14px;
    max-width: none;
    font-size: 13px;
  }
}

.warehouse-detail-static-map {
  min-height: 420px;
}

.warehouse-detail-static-map .warehouse-live-pin {
  transform: translate(-50%, -100%);
}

.warehouse-live-chat {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.warehouse-live-chat-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border: 0;
  border-radius: 50%;
  background: #183153;
  color: #fff;
  padding: 10px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 18px 40px rgba(24, 49, 83, 0.22);
}

.warehouse-live-chat-toggle img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.warehouse-live-chat-toggle-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.warehouse-live-chat-panel {
  width: min(380px, calc(100vw - 24px));
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(18, 37, 61, 0.2);
  overflow: hidden;
  border: 1px solid rgba(24, 49, 83, 0.08);
}

.warehouse-live-chat-header {
  position: static;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  width: auto;
  height: auto;
  min-height: 0;
  padding: 16px 18px;
  background: linear-gradient(135deg, #183153 0%, #2f5f9c 100%);
  color: #fff;
}

.warehouse-live-chat-header strong {
  display: block;
}

.warehouse-live-chat-header span {
  font-size: 12px;
  opacity: 0.85;
}

.warehouse-live-chat-messages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 520px;
  overflow-y: auto;
  padding: 16px;
  background: linear-gradient(180deg, #f6f8fb 0%, #ffffff 100%);
}

.warehouse-live-chat-message {
  max-width: 88%;
  padding: 12px 14px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.5;
}

.warehouse-live-chat-message.is-assistant {
  align-self: flex-start;
  background: #fff;
  color: #183153;
  border: 1px solid rgba(24, 49, 83, 0.08);
}

.warehouse-live-chat-message.is-user {
  align-self: flex-end;
  margin-left: auto;
  color: #fff;
  background: #284668;
}

.warehouse-live-chat-typing {
  padding: 14px 16px;
}

.warehouse-live-chat-typing-dots {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.warehouse-live-chat-typing-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8aa0bd;
  display: inline-block;
  animation: warehouse-live-chat-typing 1.2s infinite ease-in-out both;
}

.warehouse-live-chat-typing-dots span:nth-child(1) { animation-delay: -0.32s; }
.warehouse-live-chat-typing-dots span:nth-child(2) { animation-delay: -0.16s; }
.warehouse-live-chat-typing-dots span:nth-child(3) { animation-delay: 0s; }

@keyframes warehouse-live-chat-typing {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
  40% { transform: scale(1); opacity: 1; }
}

.warehouse-live-chat-form {
  padding: 14px;
  border-top: 1px solid rgba(24, 49, 83, 0.08);
  background: #fff;
}

.warehouse-live-chat-inputrow {
  display: flex;
  align-items: center;
  gap: 8px;
}

.warehouse-live-chat-input {
  flex: 1 1 auto;
  width: auto;
  resize: none;
  min-height: 40px;
  max-height: none;
  overflow-y: hidden;
  box-sizing: border-box;
  border: 1px solid rgba(24, 49, 83, 0.14);
  border-radius: 16px;
  padding: 9px 14px;
  font: inherit;
  color: #183153;
  line-height: 1.35;
  text-align: left;
}

.warehouse-live-chat-status {
  display: block;
  margin-top: 8px;
  color: #667085;
  font-size: 12px;
}

.warehouse-live-chat-send {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: #57b35f;
  padding: 0;
  cursor: pointer;
  line-height: 1;
}

.warehouse-live-chat-cta {
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: #57b35f;
  padding: 11px 16px;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
}

.warehouse-live-chat-send:disabled {
  opacity: 0.55;
  cursor: default;
}

.warehouse-live-chat-cta {
  display: inline-flex;
  margin-top: 10px;
}

.warehouse-live-chat-lead {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: min(100%, 320px);
}

/* Formulář navazující na text odpovědi ve stejné bublině — jemný předěl,
   ať působí jako jedna souvislá zpráva. */
.warehouse-live-chat-message p + .warehouse-live-chat-lead,
.warehouse-live-chat-message .warehouse-live-chat-shortlist-wrap + .warehouse-live-chat-lead {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(24, 49, 83, 0.1);
}

.warehouse-live-chat-shortlist-wrap {
  position: relative;
  margin-top: 10px;
}

.warehouse-live-chat-shortlist {
  display: flex;
  flex-direction: row;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}

.warehouse-live-chat-shortlist::-webkit-scrollbar {
  display: none;
}

.warehouse-live-chat-shortlist-item {
  flex: 0 0 200px;
  scroll-snap-align: start;
  padding: 0 0 10px;
  border: 1px solid rgba(24, 49, 83, 0.08);
  border-radius: 14px;
  background: #f8fbff;
  overflow: hidden;
}

.warehouse-live-chat-shortlist-item .warehouse-live-chat-shortlist-title,
.warehouse-live-chat-shortlist-item .warehouse-live-chat-shortlist-meta,
.warehouse-live-chat-shortlist-item .warehouse-live-chat-shortlist-link {
  padding-left: 12px;
  padding-right: 12px;
}

.warehouse-live-chat-shortlist-title {
  font-size: 13px;
  font-weight: 700;
  color: #183153;
}

.warehouse-live-chat-shortlist-meta {
  margin-top: 4px;
  font-size: 12px;
  color: #516276;
  line-height: 1.5;
}

.warehouse-live-chat-shortlist-link {
  display: inline-flex;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #183153;
  text-decoration: none;
}

.warehouse-live-chat-shortlist-photo {
  display: block;
  height: 96px;
  background: rgba(24, 49, 83, 0.06);
  margin-bottom: 8px;
}

.warehouse-live-chat-shortlist-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.warehouse-live-chat-shortlist-arrow {
  position: absolute;
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(24, 49, 83, 0.12);
  background: #ffffff;
  color: #183153;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(24, 49, 83, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
}

.warehouse-live-chat-shortlist-arrow:hover {
  background: #f0f5fc;
}

.warehouse-live-chat-lead-count {
  color: #183153;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
}

.warehouse-live-chat-lead-text {
  color: #516276;
  font-size: 15px;
  line-height: 1.5;
}

.warehouse-live-chat-lead-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.portal-wishlist-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  box-shadow: none;
  line-height: 1;
  transition: transform .15s ease;
}

.prostor-top.with-title .socials {
  display: inline-flex;
  align-items: center;
  gap: 16px;
}

.portal-wishlist-button .wishlist_save_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Draw the star ourselves so it does not depend on Font Awesome (which the
   live pages do not load). Empty star by default, filled/active star when
   the listing is saved. */
.portal-wishlist-button .wishlist_save_icon i {
  display: block;
  width: 28px;
  height: 26px;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/icon-star5dec.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

.portal-wishlist-button .wishlist_save_icon i::before {
  content: none;
}

.portal-wishlist-button:hover .wishlist_save_icon i,
.portal-wishlist-button.is-saved .wishlist_save_icon i,
.portal-wishlist-button.wishlist_saved .wishlist_save_icon i {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/icon-star-item-active.svg");
}

.portal-wishlist-button:disabled {
  opacity: .65;
  cursor: default;
}

.offers .item .thumb .wish {
  z-index: 4;
  pointer-events: auto;
}

.offers .item .thumb .wish .wishlist-button-wrap,
.offers .item .thumb .wish .portal-wishlist-button {
  position: relative;
  z-index: 1001;
  pointer-events: auto;
}

.portal-account-page section.without-sub-header.muj-ucet,
.portal-account-page section.without-sub-header.login-reg-page {
  min-height: calc(100vh - 430px);
}

.portal-account-page section.without-sub-header.login-reg-page .half.text {
  padding-top: 50px;
}

.portal-account-page section.without-sub-header.muj-ucet {
  padding-top: 118px;
  overflow: visible;
}

.portal-account-card {
  min-height: 320px;
}

.portal-account-card h1 {
  margin: 0 0 18px;
}

.portal-account-card h2 {
  margin: 0 0 18px;
  color: #19313a;
  font-size: 24px;
}

.portal-account-forms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 28px;
}

.portal-account-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
  border-radius: 18px;
  background: #fff;
}

.portal-account-form label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #19313a;
  font-size: 14px;
  font-weight: 700;
}

.portal-account-form input {
  width: 100%;
  border: 1px solid rgba(25, 49, 58, .16);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
}

.portal-account-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 30px;
}

.portal-account-saved {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 18px;
}

.portal-account-saved .item {
  width: auto !important;
  margin: 0 !important;
}

.portal-account-status {
  margin: 14px 0 18px;
  font-weight: 700;
}

.portal-account-status.is-error {
  color: #b42318;
}

.portal-account-status.is-success {
  color: #19975a;
}

/* Account dashboard: left nav + content panels */
.portal-account {
  display: flex;
  align-items: flex-start;
  gap: 48px;
}

.portal-account-nav {
  flex: 0 0 220px;
  max-width: 220px;
}

.portal-account-welcome {
  margin: 0 0 22px;
  color: #6b7785;
  font-size: 15px;
}

.portal-account-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.portal-account-nav li {
  margin: 0 0 14px;
}

.portal-account-nav a {
  display: block;
  position: relative;
  padding-left: 18px;
  color: #284668;
  font-weight: 700;
  text-decoration: none;
}

.portal-account-nav a::before {
  content: "\203A";
  position: absolute;
  left: 0;
  top: -1px;
  color: #19975a;
}

.portal-account-nav a.is-active {
  color: #19975a;
}

/* "Smazat účet" nav item + panel: set apart in red, same structure as rest. */
.portal-account-nav a.portal-account-nav-danger,
.portal-account-nav a.portal-account-nav-danger::before,
.portal-account-nav a.portal-account-nav-danger.is-active {
  color: #c0392b;
}

.portal-account-delete-card {
  max-width: 520px;
}
.portal-account-delete-card p {
  margin: 0 0 10px;
  color: #284668;
  line-height: 1.6;
}
.portal-account-delete-hint {
  font-weight: 700;
}
.portal-account-delete-card .update-form {
  margin-top: 18px;
}
/* Match the page's rounded button style; restrained red for a destructive action. */
.portal-account .update-form .portal-account-delete-btn {
  width: 100%;
  border: none;
  border-radius: 30px;
  background: #c0392b;
  padding: 18px 22px;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
.portal-account .update-form .portal-account-delete-btn:hover {
  background: #a93226;
}

.portal-account .page-content {
  flex: 1 1 auto;
}

.portal-account-panel {
  display: none;
}

.portal-account-panel.is-active {
  display: block;
}

.portal-account-panel .section-title {
  margin: 0 0 28px;
  color: #19975a;
}

.portal-account .update-form .inner {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 24px;
}

.portal-account .update-form input:not([type="submit"]) {
  width: 100%;
  border: none;
  border-radius: 10px;
  background: #f1f1f1;
  padding: 18px 22px;
  font: inherit;
  color: #284668;
}

.portal-account .update-form .inner input:not([type="submit"]) {
  float: none;
  margin: 0 !important;
}

.portal-account .update-form input::placeholder {
  color: #9aa3ad;
}

.portal-account .update-form input[type="submit"] {
  width: 100%;
  border: none;
  border-radius: 30px;
  background: #19975a;
  padding: 18px 22px;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.portal-account .update-form input[type="submit"]:hover {
  background: #15834e;
}

@media (max-width: 900px) {
  .portal-account {
    flex-direction: column;
    gap: 28px;
  }

  .portal-account-nav {
    flex-basis: auto;
    max-width: none;
  }
}

.warehouse-live-chat-lead-input {
  width: 100%;
  border: 1px solid rgba(24, 49, 83, 0.14);
  border-radius: 14px;
  padding: 10px 12px;
  font: inherit;
  color: #183153;
  background: #fff;
}

.warehouse-live-chat-lead-note {
  resize: vertical;
  min-height: 72px;
}

.warehouse-live-chat-lead-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.warehouse-live-chat-lead-actions .warehouse-live-chat-send {
  width: auto;
  min-width: 104px;
  height: 42px;
  border-radius: 999px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.warehouse-live-chat-lead-status {
  font-size: 12px;
  color: #667085;
}

.form-wrap.hypo-form .terms .wpcf7-list-item-label {
  margin-left: 0;
}

/* Contact box reuses the theme's .modal styles (capped height + overflow:auto),
   so appending the success status text made a scrollbar appear. It's an inline
   form here, not a real popup — let it grow instead. */
.modal.form-wrap.hypo-form,
.form-wrap.hypo-form {
  max-height: none !important;
  overflow: visible !important;
}

.form-wrap.hypo-form .terms p {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 6px;
  margin: 0;
  line-height: 1.45;
}

.form-wrap.hypo-form .terms .wpcf7-form-control-wrap,
.form-wrap.hypo-form .terms .wpcf7-form-control,
.form-wrap.hypo-form .terms .wpcf7-list-item,
.form-wrap.hypo-form .terms .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: inherit;
}

.form-wrap.hypo-form .terms .wpcf7-list-item {
  margin: 0;
}

.form-wrap.hypo-form .terms a {
  display: inline;
  white-space: normal;
}

.portal-articles-section {
  padding: 88px 0 8px;
  background: #fff;
}

body.warehouse-live-legal-document {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

body.warehouse-live-legal-document > footer {
  margin-top: auto;
}

.portal-articles-section .row {
  position: relative;
}

.portal-articles-head {
  padding-left: 12px;
}

.portal-articles-head h2 {
  margin: 0 0 20px;
  color: #284668;
  font-family: 'Poppins';
  font-size: 26px;
  font-weight: 600;
  line-height: 125%;
  letter-spacing: -0.24px;
}

.portal-articles-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.portal-articles-grid.warehouse-live-articles-carousel {
  --warehouse-live-articles-visible: 4;
  display: block;
  position: relative;
  width: 100%;
  padding-bottom: 72px;
  overflow: visible;
}

.warehouse-live-articles-viewport {
  overflow: hidden;
  width: 100%;
}

.warehouse-live-articles-track {
  display: flex;
  align-items: stretch;
  transition: transform 520ms ease;
  will-change: transform;
}

.warehouse-live-articles-track > .portal-article-card {
  box-sizing: border-box;
  flex: 0 0 calc(100% / var(--warehouse-live-articles-visible));
  max-width: calc(100% / var(--warehouse-live-articles-visible));
  margin: 0;
  padding: 0 12px;
  background: #fff;
  box-shadow: none;
}

.portal-articles-nav {
  position: absolute;
  /* right tuned so the 54px Novinky buttons line up with the 43px offers slick
     arrows above (which sit at right: 0). Combined with the row-width match below,
     this keeps the two arrow rows aligned across widths. */
  right: 28px;
  bottom: -6px;
  z-index: 5;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 0;
}

/* The offers (photos) section uses the theme rule `.offers-wrap .row { max-width:
   1380px }`, while the Novinky section uses the default `.row { max-width: 1340px }` —
   40px narrower. On wide screens that gives the two sections different right edges, so
   the offers slider arrows (top) and the Novinky nav arrows (bottom) don't line up.
   Match the Novinky row to 1380px so both share the same right edge. */
body .portal-articles-section .row {
  max-width: 1380px;
}

.portal-articles-section + .content.light-blue.cta-form {
  margin-top: 8px;
}

.portal-articles-nav button {
  width: 54px;
  height: 54px;
  padding: 0;
  border: 0;
  color: transparent;
  background-color: #fff;
  background-position: center center;
  background-repeat: no-repeat;
  cursor: pointer;
  font-size: 0;
  line-height: 1;
  outline: none;
  transition: all 150ms linear;
}

.portal-articles-nav .portal-articles-prev {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-left-blue.svg");
}

.portal-articles-nav .portal-articles-next {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-right-blue.svg");
}

.portal-articles-nav button:hover {
  opacity: .72;
}

.portal-article-card {
  min-height: 0;
  overflow: hidden;
  border-radius: 26px;
  background: #fff;
  aspect-ratio: 4 / 3;
  box-shadow: 0 18px 40px rgba(21, 43, 56, .08);
}

.portal-article-body {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 18px 18px 16px;
  overflow: hidden;
  border: 2px solid rgba(40, 70, 104, .18);
  border-radius: 26px;
  background: #fff;
}

.portal-article-title-wrap {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 6px 2px 12px;
}

.portal-article-card h3 {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #284668;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.portal-article-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 0;
  padding-top: 12px;
}

.portal-article-meta {
  margin: 0;
  color: #6d7d8f;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
}

.portal-article-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  color: #01ad66;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.portal-article-link:hover {
  text-decoration: underline;
}

.portal-articles-empty {
  grid-column: 1 / -1;
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  color: #516266;
  box-shadow: 0 18px 40px rgba(21, 43, 56, .08);
}

.portal-articles-dialog {
  position: fixed;
  inset: 0;
  z-index: 10030;
  display: none;
}

.portal-articles-dialog.is-open {
  display: block;
}

.portal-articles-dialog-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 24, 38, .72);
}

.portal-articles-dialog-panel {
  position: relative;
  width: min(760px, calc(100% - 32px));
  max-height: calc(100vh - 48px);
  margin: 24px auto;
  overflow: auto;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .28);
}

.portal-articles-dialog-inner {
  padding: 34px 34px 38px;
}

.portal-articles-dialog-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: #eef4f8;
  color: #122033;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

.portal-articles-dialog-date {
  margin: 0 48px 12px 0;
  color: #7a8795;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.portal-articles-dialog h3 {
  margin: 0 48px 18px 0;
  color: #122033;
  font-size: 30px;
  line-height: 1.18;
}

.portal-articles-dialog-body {
  color: #445261;
  font-size: 16px;
  line-height: 1.7;
  white-space: pre-line;
}

.warehouse-live-chat-project-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 12px 0;
}

.warehouse-live-chat-project-link {
  display: block;
  color: #173a63;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.warehouse-live-chat-project-link:hover {
  color: #00a86b;
}

.portal-article-source-link:not([hidden]) {
  display: inline-block;
  margin-top: 24px;
}

body.warehouse-live-dialog-open {
  overflow: hidden;
}

@media (max-width: 700px) {
  .portal-articles-grid {
    grid-template-columns: 1fr;
  }

  .warehouse-live-chat {
    right: 12px;
    left: 12px;
    bottom: 12px;
  }

  .warehouse-live-chat-toggle {
    align-self: flex-end;
  }

  .warehouse-live-chat-panel {
    width: 100%;
  }

  .warehouse-live-chat-header {
    flex-direction: column;
  }

}

.warehouse-live-chat {
  position: fixed;
  right: 20px;
  left: auto;
  bottom: 20px;
  z-index: 10020;
  display: block;
  width: 68px;
  height: 68px;
  font-family: Poppins, Rubik, sans-serif;
  pointer-events: none;
}

.warehouse-live-chat,
.warehouse-live-chat * {
  box-sizing: border-box;
}

.warehouse-live-chat-toggle {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  border: 0;
  border-radius: 50%;
  background: #183153;
  color: #fff;
  padding: 13px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 16px 38px rgba(24, 49, 83, .32);
  pointer-events: auto;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.warehouse-live-chat-toggle:hover {
  transform: translateY(-2px);
  background: #284668;
  box-shadow: 0 20px 46px rgba(24, 49, 83, .38);
}

/* Cervena bublina s poctem neprectenych zprav (na mobilu misto auto-otevreni). */
.warehouse-live-chat-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  background: #e02424;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(224, 36, 36, .4);
}

.warehouse-live-chat-badge[hidden] {
  display: none;
}

.warehouse-live-chat-toggle img {
  display: block;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  object-fit: contain;
}

.warehouse-live-chat-toggle-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.warehouse-live-chat-panel {
  position: absolute;
  right: 0;
  bottom: 86px;
  /* Fixed size, unaffected by browser zoom (no vh/vw units). */
  width: 430px;
  max-width: calc(100vw - 28px);
  display: flex;
  flex-direction: column;
  height: 570px;
  max-height: calc(100vh - 104px);
  border: 1px solid rgba(21, 43, 56, .12);
  border-radius: 20px;
  background: #f7faf8;
  box-shadow: 0 24px 70px rgba(17, 37, 48, .24);
  overflow: hidden;
  pointer-events: auto;
}

.warehouse-live-chat-panel[hidden] {
  display: none !important;
}

.warehouse-live-chat-header {
  position: static;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: auto;
  min-height: 0;
  padding: 18px 18px 16px;
  background: #fff;
  color: #19313a;
  border-bottom: 1px solid rgba(21, 43, 56, .1);
}

.warehouse-live-chat-header strong {
  display: block;
}

.warehouse-live-chat-header strong {
  font-size: 19px;
  line-height: 1.2;
  color: #19313a;
}

.warehouse-live-chat-header span {
  margin-top: 3px;
  color: #65747a;
  font-size: 14px;
  opacity: 1;
}

.warehouse-live-chat-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(21, 43, 56, .08);
  color: inherit;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
  transition: background .15s ease, transform .15s ease;
}

.warehouse-live-chat-close:hover {
  background: rgba(21, 43, 56, .14);
  transform: translateY(-1px);
}

.warehouse-live-chat-messages {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  padding: 18px;
  background: #f4f8f6;
}

.warehouse-live-chat-message {
  max-width: 86%;
  padding: 13px 16px;
  border-radius: 18px;
  font-size: 15px;
  line-height: 1.55;
  box-shadow: 0 8px 20px rgba(21, 43, 56, .06);
}

.warehouse-live-chat-message.is-assistant {
  align-self: flex-start;
  border: 1px solid rgba(21, 43, 56, .08);
  border-bottom-left-radius: 6px;
  background: #fff;
  color: #253b43;
}

.warehouse-live-chat-message.is-user {
  align-self: flex-end;
  margin-left: auto;
  border-bottom-right-radius: 6px;
  background: #284668;
  color: #fff;
  box-shadow: 0 10px 24px rgba(40, 70, 104, .18);
}

.warehouse-live-chat-form {
  flex: 0 0 auto;
  padding: 14px;
  border-top: 1px solid rgba(21, 43, 56, .1);
  background: #fff;
}

.warehouse-live-chat-input,
.warehouse-live-chat-lead-input {
  width: 100%;
  border: 1px solid rgba(21, 43, 56, .14);
  border-radius: 14px;
  background: #f9fbfb;
  padding: 12px 14px;
  font: inherit;
  color: #19313a;
}

.warehouse-live-chat-input {
  min-height: 46px;
  resize: none;
  font-size: 16px;
}

.warehouse-live-chat-input:focus,
.warehouse-live-chat-lead-input:focus {
  outline: 2px solid rgba(0, 174, 104, .24);
  outline-offset: 2px;
}

.warehouse-live-chat-actions,
.warehouse-live-chat-lead-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
}

.warehouse-live-chat-status,
.warehouse-live-chat-lead-status {
  color: #66757a;
  font-size: 12px;
}

.warehouse-live-chat-send,
.warehouse-live-chat-cta {
  border: 0;
  border-radius: 999px;
  background: #00ae68;
  color: #fff;
  padding: 11px 16px;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  box-shadow: 0 10px 20px rgba(0, 174, 104, .2);
}

.warehouse-live-chat-send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
}

.warehouse-live-chat-send:hover,
.warehouse-live-chat-cta:hover {
  background: #008e58;
}

.warehouse-live-chat-send:disabled {
  opacity: .58;
  cursor: default;
}

.warehouse-live-chat-cta {
  display: inline-flex;
  margin-top: 10px;
  border: 1px solid rgba(0, 174, 104, .18);
}

.warehouse-live-chat-lead {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: min(100%, 320px);
}

.warehouse-live-chat-lead-count {
  color: #19313a;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.45;
}

.warehouse-live-chat-lead-text {
  color: #516266;
  font-size: 15px;
  line-height: 1.5;
}

.warehouse-live-chat-lead-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

@media (max-width: 700px) {
  .warehouse-live-chat {
    right: 12px;
    left: auto;
    bottom: 12px;
  }

  .warehouse-live-chat-panel {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 104px);
  }

  .warehouse-live-chat-header {
    flex-direction: column;
    align-items: stretch;
  }

}

@media (max-width: 1020px) {
  .portal-articles-grid.warehouse-live-articles-carousel {
    --warehouse-live-articles-visible: 2;
  }
}

@media (max-width: 640px) {
  .portal-articles-grid.warehouse-live-articles-carousel {
    --warehouse-live-articles-visible: 1;
  }
}

@media (max-width: 800px) {
  body > .mega-menu + .main-box {
    margin-top: 40px;
  }

  body > .mega-menu + .sub-header {
    margin-top: 0;
  }
}

/* Legal documents: footer links + centered modal */
.copy .legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  justify-content: flex-end;
  margin-top: 6px;
}
.copy .legal-links a {
  color: rgba(255, 255, 255, .85);
  text-decoration: underline;
  font-size: 14px;
}
.copy .legal-links a:hover {
  color: #fff;
}

.legal-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.legal-modal[hidden] {
  display: none;
}
.legal-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(9, 22, 18, .6);
}
.legal-modal-dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 820px;
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(9, 22, 18, .35);
  padding: 32px 34px 28px;
}
.legal-modal-close {
  position: absolute;
  top: 16px;
  right: 18px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: #eef4f2;
  color: #173b33;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.legal-modal-close:hover {
  background: #dce7df;
}
.legal-modal-title {
  margin: 0 40px 18px 0;
  color: #173b33;
  font-family: Poppins, Rubik, sans-serif;
  font-size: 24px;
  font-weight: 700;
}
.legal-modal-body {
  overflow-y: auto;
  padding-right: 8px;
  color: #2b3a33;
  font-size: 15px;
  line-height: 1.6;
}
.legal-modal-body h2 {
  margin: 22px 0 10px;
  font-size: 18px;
  color: #173b33;
}
.legal-modal-body p {
  margin: 0 0 12px;
}
.legal-modal-body a {
  color: #19975a;
  text-decoration: underline;
}
body.legal-modal-open {
  overflow: hidden;
}

/* Expanded chat modal */
body.portal-chat-modal-open { overflow: hidden; }

.warehouse-live-chat-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  background: rgba(9, 22, 28, .64);
  backdrop-filter: blur(2px);
  pointer-events: auto;
}

.warehouse-live-chat-backdrop[hidden] { display: none !important; }

.warehouse-live-chat-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.warehouse-live-chat-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(21, 43, 56, .08);
  color: inherit;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}

.warehouse-live-chat-expand:hover {
  background: rgba(21, 43, 56, .14);
  transform: translateY(-1px);
}

.warehouse-live-chat-expand svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.warehouse-live-chat-collapse-icon,
.warehouse-live-chat.is-expanded .warehouse-live-chat-expand-icon { display: none; }
.warehouse-live-chat.is-expanded .warehouse-live-chat-collapse-icon { display: block; }
.warehouse-live-chat.is-expanded .warehouse-live-chat-toggle { visibility: hidden; }

.warehouse-live-chat.is-expanded .warehouse-live-chat-panel {
  position: fixed;
  z-index: 1;
  top: 50%;
  right: auto;
  bottom: auto;
  left: 50%;
  /* Expanded (centered) view: larger but still a fixed size, unaffected by zoom. */
  width: 640px;
  max-width: calc(100vw - 48px);
  height: 720px;
  max-height: calc(100dvh - 48px);
  transform: translate(-50%, -50%);
  box-shadow: 0 32px 100px rgba(4, 13, 18, .42);
}

@media (max-width: 700px) {
  .warehouse-live-chat-header {
    flex-direction: row;
    align-items: center;
  }

  .warehouse-live-chat-header span { display: none; }

  .warehouse-live-chat.is-expanded .warehouse-live-chat-panel {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
    border-radius: 16px;
  }
}

/* Mobile chat: keep the widget compact instead of occupying almost the whole viewport. */
@media (max-width: 700px) {
  .warehouse-live-chat {
    right: 10px;
    bottom: 10px;
    width: 56px;
    height: 56px;
  }

  .warehouse-live-chat-toggle {
    width: 56px;
    height: 56px;
    padding: 10px;
  }

  .warehouse-live-chat-toggle img {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .warehouse-live-chat-panel {
    right: 0;
    bottom: 70px;
    width: min(360px, calc(100vw - 20px));
    height: min(480px, calc(100dvh - 112px));
    max-height: min(480px, calc(100dvh - 112px));
    border-radius: 16px;
  }

  .warehouse-live-chat-header {
    padding: 12px 12px 10px;
    gap: 8px;
  }

  .warehouse-live-chat-header strong {
    font-size: 16px;
  }

  .warehouse-live-chat-messages {
    gap: 9px;
    padding: 12px;
  }

  .warehouse-live-chat-message {
    max-width: 90%;
    padding: 10px 12px;
    border-radius: 15px;
    font-size: 14px;
    line-height: 1.45;
  }

  .warehouse-live-chat-form {
    padding: 10px;
  }

  .warehouse-live-chat-input {
    min-height: 42px;
    font-size: 15px;
  }

  .warehouse-live-chat-send {
    width: 40px;
    height: 40px;
  }

  .warehouse-live-chat.is-expanded .warehouse-live-chat-panel {
    width: min(420px, calc(100vw - 20px));
    height: min(620px, calc(100dvh - 28px));
    border-radius: 16px;
  }
}

@media (max-width: 420px) {
  .warehouse-live-chat-panel {
    width: calc(100vw - 20px);
    height: min(460px, calc(100dvh - 112px));
  }
}
.offers-slider .item .thumb {
  height: 240px;
}

.offers-slider .item .thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Native homepage carousels. These replace the old WordPress/Slick runtime
   so the first render does not wait for another carousel library. */
.warehouse-live-main-carousel {
  position: relative;
}

.warehouse-live-main-carousel > .item {
  display: none;
}

.warehouse-live-main-carousel > .item.is-active {
  display: block;
}

/* Hero text (.inner-text) ma z-index:400 z theme a po lightweight prepisu
   prekryval vyhledavaci box, takze na posuvniku "Plocha" nesly chytit kulicky
   (klik chytal hero text misto handle). Zvedneme jen z-index nad hero text.
   POZOR: nesmime menit `position` — theme dava .search-form position:absolute
   (lezi v hero fotce vlevo nahore). Prepsani na relative shodilo box pod fotku. */
.main-box .search-form {
  z-index: 500;
}

/* Sipky hero slideru — tenke bile sipky vpravo dole, stejne jako na office
   (bez bileho kruhu, bez stinu, dal od sebe). */
body .warehouse-live-main-controls button {
  position: absolute;
  bottom: 40px;
  z-index: 200;
  display: block !important;
  width: 15px;
  height: 30px;
  padding: 0;
  border: 0;
  outline: none;
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 15px auto;
  cursor: pointer;
  font-size: 0;
  opacity: 1 !important;
  visibility: visible !important;
  transition: opacity .2s ease;
}

body .warehouse-live-main-controls .warehouse-live-main-prev {
  right: 140px;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-left.svg");
}

body .warehouse-live-main-controls .warehouse-live-main-next {
  right: 40px;
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-right.svg");
}

body .warehouse-live-main-controls button:hover {
  opacity: .72 !important;
}

.warehouse-live-offers-carousel {
  display: block;
  overflow: visible;
}

.warehouse-live-offers-viewport {
  width: 100%;
  overflow: hidden;
}

.warehouse-live-offers-track {
  display: flex;
  align-items: stretch;
  transition: transform 520ms ease;
  will-change: transform;
}

.warehouse-live-offers-track > .item {
  flex: 0 0 calc(25% - 20px);
  max-width: calc(25% - 20px);
  box-sizing: border-box;
  margin-left: 10px;
  margin-right: 10px;
}

@media (max-width: 1024px) {
  .warehouse-live-offers-track > .item {
    flex-basis: calc(50% - 20px);
    max-width: calc(50% - 20px);
  }
}

@media (max-width: 600px) {
  .warehouse-live-offers-track > .item {
    flex-basis: calc(100% - 20px);
    max-width: calc(100% - 20px);
  }
}

/* Keep the live carousel controls outside the clipped viewport. */
body .warehouse-live-offers-controls {
  display: flex !important;
  justify-content: flex-end;
  gap: 17px;
  width: 100%;
  min-height: 43px;
  margin-top: 20px;
  position: relative;
  z-index: 20;
}

body .warehouse-live-offers-controls button {
  display: block !important;
  flex: 0 0 43px;
  width: 43px;
  height: 43px;
  position: relative;
  padding: 0;
  border: 0;
  outline: none;
  background-color: #fff;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto;
  cursor: pointer;
  font-size: 0;
  opacity: 1 !important;
  visibility: visible !important;
}

body .warehouse-live-offers-controls .warehouse-live-offers-prev {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-left-blue.svg");
}

body .warehouse-live-offers-controls .warehouse-live-offers-next {
  background-image: url("../../wp-content/themes/warehouseportal.cz/img/slider-sipka-right-blue.svg");
}

body .warehouse-live-offers-controls button:hover {
  opacity: .72 !important;
}

.warehouse-live-form-status {
  clear: both;
  padding-top: 10px;
  font-size: 14px;
  line-height: 1.4;
}

.warehouse-live-form-status.is-success {
  color: #176b3a;
}

.warehouse-live-form-status.is-error {
  color: #a42828;
}

/* Box "Zeptejte se" (.makler) na detailu budovy roztahnout na sirku modreho
   tlacitka "Mam zajem..." pod nim (cely sloupec .prostor-right), ne uzsi. */
.prostor-right .makler {
  width: 100%;
  box-sizing: border-box;
}

/* Newsletter input stays visually unchanged while typing or autofilling. */
.newsletter .inner input[type="email"],
.newsletter .inner input[type="email"]:focus,
.newsletter .inner input[type="email"]:active,
.newsletter .inner input[type="email"]:not(:placeholder-shown) {
  background-color: transparent !important;
  color: #fff !important;
  caret-color: #fff;
  height: 68px;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 68px;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0;
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.newsletter .inner input[type="email"]:-webkit-autofill,
.newsletter .inner input[type="email"]:-webkit-autofill:hover,
.newsletter .inner input[type="email"]:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff !important;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  transition: background-color 9999s ease-out 0s;
  caret-color: #fff;
}

/* "Ozvěte se nám" contact box: phone field and submit button share white. */
.cta-form .wpcf7-form input[type="tel"],
.cta-form .wpcf7-form input[type="tel"]:focus,
.cta-form .wpcf7-form input[type="tel"]:active,
.cta-form .wpcf7-form input[type="tel"]:valid,
.cta-form .wpcf7-form input[type="tel"]:not(:placeholder-shown) {
  background-color: #fff !important;
  background-image: none !important;
  color: #31404e !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.cta-form .wpcf7-form input[type="tel"]:-webkit-autofill,
.cta-form .wpcf7-form input[type="tel"]:-webkit-autofill:hover,
.cta-form .wpcf7-form input[type="tel"]:-webkit-autofill:focus {
  -webkit-text-fill-color: #31404e !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
}
.hypo-form textarea[name="your-vzkaz"] {
  line-height: 1.45 !important;
  text-align: center;
  padding: 14px 16px;
}
